layer at (0,0) size 800x600
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
  RenderSVGRoot {svg} at (0,0) size 800x600
    RenderSVGContainer {g} at (0,0) size 800x600
      RenderSVGContainer {g} at (50,30) size 152x456
        RenderSVGRect {rect} at (96,30) size 91x340 [stroke={[type=SOLID] [color=#DFDFDF] [stroke width=4.00]}] [fill={[type=SOLID] [color=#DFDFDF]}] [x=60.00] [y=20.00] [width=50.00] [height=200.00]
        RenderSVGPath {line} at (66,363) size 101x7 [stroke={[type=SOLID] [color=#880000] [stroke width=4.00]}] [x1=40.00] [y1=220.00] [x2=100.00] [y2=220.00]
        RenderSVGPath {line} at (66,196) size 101x8 [stroke={[type=SOLID] [color=#880000] [stroke width=4.00]}] [x1=40.00] [y1=120.00] [x2=100.00] [y2=120.00]
        RenderSVGRect {rect} at (96,30) size 91x340 [stroke={[type=SOLID] [color=#008855] [stroke width=4.00]}] [fill={[type=SOLID] [color=#00FF55]}] [x=60.00] [y=20.00] [width=50.00] [height=200.00]
        RenderSVGText {text} at (30,257) size 91x35 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 91x34
            chunk 1 text run 1 at (30.00,285.00) startOffset 0 endOffset 6 width 90.60: "anim.5"
      RenderSVGContainer {g} at (233,30) size 152x456 [transform={m=((1.00,0.00)(0.00,1.00)) t=(110.00,0.00)}]
        RenderSVGRect {rect} at (280,30) size 90x340 [stroke={[type=SOLID] [color=#DFDFDF] [stroke width=4.00]}] [fill={[type=SOLID] [color=#DFDFDF]}] [x=60.00] [y=20.00] [width=50.00] [height=200.00]
        RenderSVGPath {line} at (250,363) size 100x7 [stroke={[type=SOLID] [color=#880000] [stroke width=4.00]}] [x1=40.00] [y1=220.00] [x2=100.00] [y2=220.00]
        RenderSVGPath {line} at (250,196) size 100x8 [stroke={[type=SOLID] [color=#880000] [stroke width=4.00]}] [x1=40.00] [y1=120.00] [x2=100.00] [y2=120.00]
        RenderSVGRect {rect} at (280,30) size 90x374 [stroke={[type=SOLID] [color=#008855] [stroke width=4.00]}] [fill={[type=SOLID] [color=#00FF55]}] [x=60.00] [y=20.00] [width=50.00] [height=220.00]
        RenderSVGText {text} at (30,257) size 91x35 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 91x34
            chunk 1 text run 1 at (30.00,285.00) startOffset 0 endOffset 6 width 90.60: "anim.6"
      RenderSVGContainer {g} at (416,30) size 152x456 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}]
        RenderSVGRect {rect} at (463,30) size 91x340 [stroke={[type=SOLID] [color=#DFDFDF] [stroke width=4.00]}] [fill={[type=SOLID] [color=#DFDFDF]}] [x=60.00] [y=20.00] [width=50.00] [height=200.00]
        RenderSVGPath {line} at (433,363) size 101x7 [stroke={[type=SOLID] [color=#880000] [stroke width=4.00]}] [x1=40.00] [y1=220.00] [x2=100.00] [y2=220.00]
        RenderSVGPath {line} at (433,196) size 101x8 [stroke={[type=SOLID] [color=#880000] [stroke width=4.00]}] [x1=40.00] [y1=120.00] [x2=100.00] [y2=120.00]
        RenderSVGRect {rect} at (463,30) size 91x340 [stroke={[type=SOLID] [color=#008855] [stroke width=4.00]}] [fill={[type=SOLID] [color=#00FF55]}] [x=60.00] [y=20.00] [width=50.00] [height=200.00]
        RenderSVGText {text} at (30,257) size 91x35 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 91x34
            chunk 1 text run 1 at (30.00,285.00) startOffset 0 endOffset 6 width 90.60: "anim.7"
      RenderSVGContainer {g} at (600,30) size 152x456 [transform={m=((1.00,0.00)(0.00,1.00)) t=(330.00,0.00)}]
        RenderSVGRect {rect} at (646,30) size 91x340 [stroke={[type=SOLID] [color=#DFDFDF] [stroke width=4.00]}] [fill={[type=SOLID] [color=#DFDFDF]}] [x=60.00] [y=20.00] [width=50.00] [height=200.00]
        RenderSVGPath {line} at (616,363) size 101x7 [stroke={[type=SOLID] [color=#880000] [stroke width=4.00]}] [x1=40.00] [y1=220.00] [x2=100.00] [y2=220.00]
        RenderSVGPath {line} at (616,196) size 101x8 [stroke={[type=SOLID] [color=#880000] [stroke width=4.00]}] [x1=40.00] [y1=120.00] [x2=100.00] [y2=120.00]
        RenderSVGRect {rect} at (646,30) size 91x374 [stroke={[type=SOLID] [color=#008855] [stroke width=4.00]}] [fill={[type=SOLID] [color=#00FF55]}] [x=60.00] [y=20.00] [width=50.00] [height=220.00]
        RenderSVGText {text} at (30,257) size 91x35 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 91x34
            chunk 1 text run 1 at (30.00,285.00) startOffset 0 endOffset 6 width 90.60: "anim.8"
      RenderSVGText {text} at (10,303) size 289x46 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 289x45
          chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 288.60: "$Revision: 1.8 $"
      RenderSVGRect {rect} at (0,0) size 800x600 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
