layer at (0,0) size 480x360
  RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
  RenderSVGRoot {svg} at (0,0) size 480x360
    RenderSVGText {text} at (10,304) size 264x45 contains 1 chunk(s)
      RenderSVGInlineText {#text} at (0,0) size 264x45
        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.6 $"
    RenderSVGRect {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
    RenderSVGText {text} at (173,11) size 134x17 contains 1 chunk(s)
      RenderSVGInlineText {#text} at (0,0) size 133x17
        chunk 1 (middle anchor) text run 1 at (173.50,25.00) startOffset 0 endOffset 18 width 133.00: "<animateTransform>"
    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
      RenderSVGContainer {g} at (0,0) size 45x45
        RenderSVGEllipse {circle} at (0,0) size 41x41 [stroke={[type=SOLID] [color=#C0C0C0] [stroke width=2.00]}] [cx=0.00] [cy=0.00] [r=40.00]
        RenderSVGPath {line} at (0,0) size 45x1 [stroke={[type=SOLID] [color=#C0C0C0]}] [x1=-45.00] [y1=0.00] [x2=45.00] [y2=0.00]
        RenderSVGPath {line} at (0,0) size 1x45 [stroke={[type=SOLID] [color=#C0C0C0]}] [x1=0.00] [y1=-45.00] [x2=0.00] [y2=45.00]
    RenderSVGContainer {g} at (8,56) size 466x242
      RenderSVGContainer {g} at (8,56) size 104x97 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,90.00)}]
        RenderSVGRect {rect} at (43,73) size 34x34 [stroke={[type=SOLID] [color=#808080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#E6E6E6]}] [x=-15.00] [y=-15.00] [width=30.00] [height=30.00]
        RenderSVGRect {rect} at (26,56) size 68x68 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#FFB400] [stroke width=4.00]}] [x=-15.00] [y=-15.00] [width=30.00] [height=30.00]
        RenderSVGText {text} at (-52,46) size 104x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 104x17
            chunk 1 (middle anchor) text run 1 at (-52.00,60.00) startOffset 0 endOffset 16 width 104.00: "additive=replace"
      RenderSVGContainer {g} at (126,56) size 108x97 [transform={m=((1.00,0.00)(0.00,1.00)) t=(180.00,90.00)}]
        RenderSVGRect {rect} at (153,73) size 54x34 [transform={m=((1.00,0.00)(0.58,1.00)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#808080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#E6E6E6]}] [x=-15.00] [y=-15.00] [width=30.00] [height=30.00]
        RenderSVGRect {rect} at (126,56) size 108x68 [transform={m=((1.15,2.00)(-2.00,0.00)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#FFB400] [stroke width=4.00]}] [x=-15.00] [y=-15.00] [width=30.00] [height=30.00]
        RenderSVGText {text} at (-43,46) size 86x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 85x17
            chunk 1 (middle anchor) text run 1 at (-42.50,60.00) startOffset 0 endOffset 12 width 85.00: "additive=sum"
      RenderSVGContainer {g} at (244,56) size 112x112 [transform={m=((1.00,0.00)(0.00,1.00)) t=(300.00,90.00)}]
        RenderSVGRect {rect} at (283,73) size 34x34 [stroke={[type=SOLID] [color=#808080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#E6E6E6]}] [x=-15.00] [y=-15.00] [width=30.00] [height=30.00]
        RenderSVGRect {rect} at (266,56) size 68x68 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#FFB400] [stroke width=4.00]}] [x=-15.00] [y=-15.00] [width=30.00] [height=30.00]
        RenderSVGText {text} at (-56,46) size 112x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 111x17
            chunk 1 (middle anchor) text run 1 at (-55.50,60.00) startOffset 0 endOffset 15 width 111.00: "accumulate=none"
        RenderSVGText {text} at (-52,61) size 104x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 104x17
            chunk 1 (middle anchor) text run 1 at (-52.00,75.00) startOffset 0 endOffset 16 width 104.00: "additive=replace"
      RenderSVGContainer {g} at (367,56) size 106x112 [transform={m=((1.00,0.00)(0.00,1.00)) t=(420.00,90.00)}]
        RenderSVGRect {rect} at (411,81) size 18x18 [stroke={[type=SOLID] [color=#808080] [stroke width=2.00]}] [fill={[type=SOLID] [color=#E6E6E6]}] [x=-7.50] [y=-7.50] [width=15.00] [height=15.00]
        RenderSVGRect {rect} at (386,56) size 68x68 [transform={m=((4.00,0.00)(0.00,4.00)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#FFB400] [stroke width=2.00]}] [x=-7.50] [y=-7.50] [width=15.00] [height=15.00]
        RenderSVGText {text} at (-53,46) size 106x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 106x17
            chunk 1 (middle anchor) text run 1 at (-53.00,60.00) startOffset 0 endOffset 14 width 106.00: "accumulate=sum"
        RenderSVGText {text} at (-52,61) size 104x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 104x17
            chunk 1 (middle anchor) text run 1 at (-52.00,75.00) startOffset 0 endOffset 16 width 104.00: "additive=replace"
      RenderSVGContainer {g} at (244,186) size 112x112 [transform={m=((1.00,0.00)(0.00,1.00)) t=(300.00,220.00)}]
        RenderSVGRect {rect} at (273,203) size 54x34 [transform={m=((1.00,0.00)(0.58,1.00)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#808080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#E6E6E6]}] [x=-15.00] [y=-15.00] [width=30.00] [height=30.00]
        RenderSVGRect {rect} at (246,186) size 108x68 [transform={m=((2.00,0.00)(1.15,2.00)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#FFB400] [stroke width=4.00]}] [x=-15.00] [y=-15.00] [width=30.00] [height=30.00]
        RenderSVGText {text} at (-56,46) size 112x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 111x17
            chunk 1 (middle anchor) text run 1 at (-55.50,60.00) startOffset 0 endOffset 15 width 111.00: "accumulate=none"
        RenderSVGText {text} at (-43,61) size 86x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 85x17
            chunk 1 (middle anchor) text run 1 at (-42.50,75.00) startOffset 0 endOffset 12 width 85.00: "additive=sum"
      RenderSVGContainer {g} at (366,186) size 108x112 [transform={m=((1.00,0.00)(0.00,1.00)) t=(420.00,220.00)}]
        RenderSVGRect {rect} at (406,211) size 28x18 [transform={m=((1.00,0.00)(0.58,1.00)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#808080] [stroke width=2.00]}] [fill={[type=SOLID] [color=#E6E6E6]}] [x=-7.50] [y=-7.50] [width=15.00] [height=15.00]
        RenderSVGRect {rect} at (366,186) size 108x68 [transform={m=((4.00,0.00)(2.31,4.00)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#FFB400] [stroke width=2.00]}] [x=-7.50] [y=-7.50] [width=15.00] [height=15.00]
        RenderSVGText {text} at (-53,46) size 106x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 106x17
            chunk 1 (middle anchor) text run 1 at (-53.00,60.00) startOffset 0 endOffset 14 width 106.00: "accumulate=sum"
        RenderSVGText {text} at (-43,61) size 86x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 85x17
            chunk 1 (middle anchor) text run 1 at (-42.50,75.00) startOffset 0 endOffset 12 width 85.00: "additive=sum"
