0
1
2
3
(GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 800.00 600.00)
  (visible rect 0.00, 0.00 800.00 x 600.00)
  (coverage rect 0.00, 0.00 800.00 x 600.00)
  (intersects coverage rect 1)
  (contentsScale 2.00)
  (children 1
    (GraphicsLayer
      (bounds 800.00 600.00)
      (contentsOpaque 1)
      (visible rect 0.00, 0.00 800.00 x 600.00)
      (coverage rect 0.00, 0.00 800.00 x 600.00)
      (intersects coverage rect 1)
      (contentsScale 2.00)
      (tile cache coverage 0, 0 800 x 600)
      (tile size 800 x 600)
      (top left tile 0, 0 tiles grid 1 x 1)
      (in window 1)
      (children 1
        (GraphicsLayer
          (bounds 800.00 600.00)
          (drawsContent 1)
          (visible rect 0.00, 0.00 800.00 x 600.00)
          (coverage rect 0.00, 0.00 800.00 x 600.00)
          (intersects coverage rect 1)
          (contentsScale 2.00)
          (children 6
            (GraphicsLayer
              (bounds 50.00 50.00)
              (contentsOpaque 1)
              (transform [0.87 0.50 0.00 0.00] [-0.50 0.87 0.00 0.00] [0.00 0.00 1.00 0.00] [175.00 0.00 -5.00 1.00])
              (visible rect 0.00, 0.00 50.00 x 50.00)
              (coverage rect -160.71, -296.65 992.82 x 919.62)
              (intersects coverage rect 1)
              (contentsScale 2.00)
            )
            (GraphicsLayer
              (position 250.00 0.00)
              (bounds 50.00 50.00)
              (contentsOpaque 1)
              (transform [0.87 0.50 0.00 0.00] [-0.50 0.87 0.00 0.00] [0.00 0.00 1.00 0.00] [175.00 0.00 -5.00 1.00])
              (visible rect 0.00, 0.00 50.00 x 50.00)
              (coverage rect -377.21, -171.65 992.82 x 919.62)
              (intersects coverage rect 1)
              (contentsScale 2.00)
            )
            (GraphicsLayer
              (bounds 800.00 600.00)
              (drawsContent 1)
              (visible rect 0.00, 0.00 800.00 x 600.00)
              (coverage rect 0.00, 0.00 800.00 x 600.00)
              (intersects coverage rect 1)
              (contentsScale 2.00)
            )
            (GraphicsLayer
              (position 5.00 5.00)
              (bounds 210.00 210.00)
              (drawsContent 1)
              (visible rect 0.00, 0.00 210.00 x 210.00)
              (coverage rect -5.00, -5.00 800.00 x 600.00)
              (intersects coverage rect 1)
              (contentsScale 2.00)
            )
            (GraphicsLayer
              (position 255.00 5.00)
              (bounds 210.00 210.00)
              (drawsContent 1)
              (visible rect 0.00, 0.00 210.00 x 210.00)
              (coverage rect -255.00, -5.00 800.00 x 600.00)
              (intersects coverage rect 1)
              (contentsScale 2.00)
              (children 1
                (GraphicsLayer
                  (offsetFromRenderer width=5 height=5)
                  (position 5.00 5.00)
                  (bounds 200.00 200.00)
                  (visible rect 0.00, 0.00 200.00 x 200.00)
                  (coverage rect 0.00, 0.00 200.00 x 200.00)
                  (intersects coverage rect 1)
                  (contentsScale 2.00)
                  (children 1
                    (GraphicsLayer
                      (offsetFromRenderer width=5 height=5)
                      (anchor 0.00 0.00)
                      (bounds 200.00 400.00)
                      (drawsContent 1)
                      (visible rect 0.00, 0.00 200.00 x 200.00)
                      (coverage rect 0.00, 0.00 200.00 x 200.00)
                      (intersects coverage rect 1)
                      (contentsScale 2.00)
                    )
                  )
                )
              )
            )
            (GraphicsLayer
              (position 255.00 255.00)
              (bounds 210.00 210.00)
              (drawsContent 1)
              (visible rect 0.00, 0.00 210.00 x 210.00)
              (coverage rect -255.00, -255.00 800.00 x 600.00)
              (intersects coverage rect 1)
              (contentsScale 2.00)
              (children 1
                (GraphicsLayer
                  (offsetFromRenderer width=5 height=5)
                  (position 5.00 5.00)
                  (bounds 200.00 200.00)
                  (visible rect 0.00, 0.00 200.00 x 200.00)
                  (coverage rect 0.00, 0.00 200.00 x 200.00)
                  (intersects coverage rect 1)
                  (contentsScale 2.00)
                  (children 1
                    (GraphicsLayer
                      (offsetFromRenderer width=5 height=5)
                      (anchor 0.00 0.00)
                      (bounds 200.00 400.00)
                      (drawsContent 1)
                      (visible rect 0.00, 0.00 200.00 x 200.00)
                      (coverage rect 0.00, 0.00 200.00 x 200.00)
                      (intersects coverage rect 1)
                      (contentsScale 2.00)
                    )
                  )
                )
              )
            )
          )
        )
      )
    )
  )
)



(Frame scrolling node
  (scrollable area size 800 600)
  (contents size 800 600)
  (parent relative scrollable rect at (0,0) size 800x600)
  (scrollable area parameters 
    (horizontal scroll elasticity 1)
    (vertical scroll elasticity 1)
    (horizontal scrollbar mode 0)
    (vertical scrollbar mode 0))
  (layout viewport at (0,0) size 800x600)
  (min layout viewport origin (0,0))
  (max layout viewport origin (0,0))
  (behavior for fixed 0)
  (children 2
    (Overflow scrolling node
      (scrollable area size 200 200)
      (contents size 200 400)
      (parent relative scrollable rect at (260,10) size 200x200)
      (scrollable area parameters 
        (horizontal scroll elasticity 1)
        (vertical scroll elasticity 1)
        (horizontal scrollbar mode 0)
        (vertical scrollbar mode 0)
        (has enabled vertical scrollbar 1))
    )
    (Overflow scrolling node
      (scrollable area size 200 200)
      (contents size 200 400)
      (parent relative scrollable rect at (260,260) size 200x200)
      (scrollable area parameters 
        (horizontal scroll elasticity 1)
        (vertical scroll elasticity 1)
        (horizontal scrollbar mode 0)
        (vertical scrollbar mode 0)
        (has enabled vertical scrollbar 1))
    )
  )
)


