The yellow box should be large enough to scroll off the bottom. There should be a red box on the first page and a blue box near the bottom of the yellow box. This tests that we can support very large compositing layers.

(GraphicsLayer
  (bounds 785.00 5111.00)
  (children 1
    (GraphicsLayer
      (bounds 785.00 5111.00)
      (contentsOpaque 1)
      (children 1
        (GraphicsLayer
          (position 8.00 68.00)
          (bounds 502.00 5002.00)
          (drawsContent 1)
          (children 2
            (GraphicsLayer
              (position 51.00 101.00)
              (bounds 200.00 200.00)
              (drawsContent 1)
            )
            (GraphicsLayer
              (position 51.00 4701.00)
              (bounds 200.00 200.00)
              (drawsContent 1)
            )
          )
        )
      )
    )
  )
)

