
(Frame scrolling node
  (scrollable area size 800 600)
  (contents size 800 1016)
  (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,416))
  (behavior for fixed 0)
  (children 1
    (Fixed node
      (anchor edges: AnchorEdgeLeft AnchorEdgeTop)
      (viewport rect at last layout at (0,0) size 800x600)
      (layer position at last layout (8,10))
      (children 1
        (Frame hosting node
          (parent relative scrollable rect at (29,29) size 500x300)
          (children 1
            (Frame scrolling node
              (scrollable area size 500 300)
              (contents size 500 420)
              (parent relative scrollable rect at (0,0) size 500x300)
              (scrollable area parameters 
                (horizontal scroll elasticity 1)
                (vertical scroll elasticity 1)
                (horizontal scrollbar mode 1)
                (vertical scrollbar mode 1))
              (layout viewport at (0,0) size 500x300)
              (min layout viewport origin (0,0))
              (max layout viewport origin (0,120))
              (behavior for fixed 0)
              (children 2
                (Overflow scrolling node
                  (scrollable area size 400 300)
                  (contents size 400 1760)
                  (parent relative scrollable rect at (10,10) size 400x300)
                  (scrollable area parameters 
                    (horizontal scroll elasticity 1)
                    (vertical scroll elasticity 1)
                    (horizontal scrollbar mode 0)
                    (vertical scrollbar mode 0)
                    (has enabled vertical scrollbar 1))
                  (children 1
                    (Sticky node
                      (anchor edges: AnchorEdgeTop AnchorEdgeBottom)
                      (top offset 10.00)
                      (bottom offset 10.00)
                      (containing block rect at (2,2) size 400x1760)
                      (sticky box rect at (0,830) size 100x100)
                      (constraining rect at (0,0) size 400x300)
                      (sticky offset at last layout width=0 height=-640)
                      (layer position at last layout (0,190))
                    )
                  )
                )
                (Sticky node
                  (anchor edges: AnchorEdgeTop AnchorEdgeBottom)
                  (top offset 10.00)
                  (bottom offset 10.00)
                  (containing block rect at (8,8) size 484x404)
                  (sticky box rect at (8,312) size 100x100)
                  (constraining rect at (0,0) size 500x300)
                  (sticky offset at last layout width=0 height=-122)
                  (layer position at last layout (8,190))
                )
              )
            )
          )
        )
      )
    )
  )
)

