


Initial

(GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 785.00 626.00)
  (children 1
    (GraphicsLayer
      (bounds 785.00 626.00)
      (contentsOpaque 1)
      (children 3
        (GraphicsLayer
          (position 18.00 10.00)
          (anchor 0.50 0.50)
          (bounds 749.00 144.00)
          (children 1
            (GraphicsLayer
              (position 20.00 20.00)
              (bounds 100.00 100.00)
              (contentsVisible 0)
            )
          )
        )
        (GraphicsLayer
          (offsetFromRenderer width=-4 height=-4)
          (position 14.00 160.00)
          (anchor 0.50 0.50)
          (bounds 757.00 152.00)
          (contentsVisible 0)
          (children 1
            (GraphicsLayer
              (position 24.00 24.00)
              (bounds 100.00 100.00)
              (contentsVisible 0)
            )
          )
        )
        (GraphicsLayer
          (offsetFromRenderer width=-4 height=-4)
          (position 14.00 314.00)
          (anchor 0.50 0.50)
          (bounds 757.00 152.00)
          (contentsVisible 0)
          (children 1
            (GraphicsLayer
              (position 24.00 24.00)
              (bounds 100.00 100.00)
            )
          )
        )
      )
    )
  )
)
After step 1

(GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 785.00 1411.00)
  (children 1
    (GraphicsLayer
      (bounds 785.00 1411.00)
      (contentsOpaque 1)
      (children 3
        (GraphicsLayer
          (position 18.00 10.00)
          (anchor 0.50 0.50)
          (bounds 749.00 144.00)
          (children 1
            (GraphicsLayer
              (position 20.00 20.00)
              (bounds 100.00 100.00)
            )
          )
        )
        (GraphicsLayer
          (offsetFromRenderer width=-4 height=-4)
          (position 14.00 160.00)
          (anchor 0.50 0.50)
          (bounds 757.00 152.00)
          (contentsVisible 0)
          (children 1
            (GraphicsLayer
              (position 24.00 24.00)
              (bounds 100.00 100.00)
              (contentsVisible 0)
            )
          )
        )
        (GraphicsLayer
          (offsetFromRenderer width=-4 height=-4)
          (position 14.00 314.00)
          (anchor 0.50 0.50)
          (bounds 757.00 152.00)
          (contentsVisible 0)
          (children 1
            (GraphicsLayer
              (position 24.00 24.00)
              (bounds 100.00 100.00)
            )
          )
        )
      )
    )
  )
)
After step 2

(GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 785.00 2180.00)
  (children 1
    (GraphicsLayer
      (bounds 785.00 2180.00)
      (contentsOpaque 1)
      (children 3
        (GraphicsLayer
          (position 18.00 10.00)
          (anchor 0.50 0.50)
          (bounds 749.00 144.00)
          (children 1
            (GraphicsLayer
              (position 20.00 20.00)
              (bounds 100.00 100.00)
            )
          )
        )
        (GraphicsLayer
          (offsetFromRenderer width=-4 height=-4)
          (position 14.00 160.00)
          (anchor 0.50 0.50)
          (bounds 757.00 152.00)
          (drawsContent 1)
          (children 1
            (GraphicsLayer
              (position 24.00 24.00)
              (bounds 100.00 100.00)
            )
          )
        )
        (GraphicsLayer
          (offsetFromRenderer width=-4 height=-4)
          (position 14.00 314.00)
          (anchor 0.50 0.50)
          (bounds 757.00 152.00)
          (contentsVisible 0)
          (children 1
            (GraphicsLayer
              (position 24.00 24.00)
              (bounds 100.00 100.00)
            )
          )
        )
      )
    )
  )
)

