This layer should not have backing store.
This layer should not have backing store.
(GraphicsLayer
  (anchor 0.00 0.00)
  (bounds 800.00 600.00)
  (children 1
    (GraphicsLayer
      (bounds 800.00 600.00)
      (contentsOpaque 1)
      (children 1
        (GraphicsLayer
          (position 8.00 8.00)
          (bounds 342.00 240.00)
          (children 1
            (GraphicsLayer
              (offsetFromRenderer width=1 height=1)
              (position 1.00 1.00)
              (bounds 340.00 238.00)
              (children 1
                (GraphicsLayer
                  (position 20.00 38.00)
                  (bounds 320.00 180.00)
                  (children 1
                    (GraphicsLayer
                      (offsetFromRenderer width=1 height=1)
                      (position 1.00 1.00)
                      (bounds 340.00 178.00)
                      (children 1
                        (GraphicsLayer
                          (position 30.00 48.00)
                          (bounds 100.00 100.00)
                          (contentsOpaque 1)
                        )
                      )
                    )
                  )
                )
              )
            )
          )
        )
      )
    )
  )
)

