layer at (0,0) size 480x360
  RenderView at (0,0) size 480x360
layer at (0,0) size 480x360
  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
      RenderSVGInlineText {#text} at (0,-36) size 264x46
        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.8 $"
    RenderPath {rect} at (0.50,0.50) size 479x359 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
    RenderSVGText {text} at (124,25) size 232x18 contains 1 chunk(s)
      RenderSVGInlineText {#text} at (0,-14) size 232x18
        chunk 1 (middle anchor) text run 1 at (124.00,25.00) startOffset 0 endOffset 33 width 232.00: "<animateTransform> shape elements"
    RenderSVGContainer {g} at (24.31,59.50) size 436.19x224.50
      RenderSVGContainer {g} at (29.50,59.50) size 61x94.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,90.00)}]
        RenderPath {path} at (29.50,59.50) size 61x61 [stroke={[type=SOLID] [color=#FFB400]}] [fill={[type=SOLID] [color=#E6E6E6]}] [data="M0.00,0.00C20.00,0.00,30.00,-10.00,30.00,-30.00C10.00,-30.00,0.00,-20.00,0.00,0.00C0.00,-20.00,-10.00,-30.00,-30.00,-30.00C-30.00,-10.00,-20.00,0.00,0.00,0.00C-20.00,0.00,-30.00,10.00,-30.00,30.00C-10.00,30.00,0.00,20.00,0.00,0.00C0.00,20.00,10.00,30.00,30.00,30.00C30.00,10.00,20.00,0.00,0.00,0.00"]
        RenderSVGText {text} at (-23,60) size 45x18 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (1,-14) size 45x18
            chunk 1 (middle anchor) text run 1 at (-22.50,60.00) startOffset 0 endOffset 6 width 45.00: "<path>"
      RenderSVGContainer {g} at (149.50,69.50) size 61x84.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(180.00,90.00)}]
        RenderPath {rect} at (149.50,69.50) size 61x41 [stroke={[type=SOLID] [color=#FFB400]}] [fill={[type=SOLID] [color=#E6E6E6]}] [data="M-30.00,-20.00L30.00,-20.00L30.00,20.00L-30.00,20.00"]
        RenderSVGText {text} at (-21,60) size 41x18 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (1,-14) size 41x18
            chunk 1 (middle anchor) text run 1 at (-20.50,60.00) startOffset 0 endOffset 6 width 41.00: "<rect>"
      RenderSVGContainer {g} at (269.50,59.50) size 61.00x94.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(300.00,90.00)}]
        RenderPath {circle} at (269.50,59.50) size 61.00x61.00 [stroke={[type=SOLID] [color=#FFB400]}] [fill={[type=SOLID] [color=#E6E6E6]}] [data="M30.00,0.00L29.94,1.88L29.76,3.76L29.47,5.62L29.06,7.46L28.53,9.27L27.89,11.04L27.14,12.77L26.29,14.45L25.33,16.07L24.27,17.63L23.12,19.12L21.87,20.54L20.54,21.87L19.12,23.12L17.63,24.27L16.07,25.33L14.45,26.29L12.77,27.14L11.04,27.89L9.27,28.53L7.46,29.06L5.62,29.47L3.76,29.76L1.88,29.94L-0.00,30.00L-1.88,29.94L-3.76,29.76L-5.62,29.47L-7.46,29.06L-9.27,28.53L-11.04,27.89L-12.77,27.14L-14.45,26.29L-16.07,25.33L-17.63,24.27L-19.12,23.12L-20.54,21.87L-21.87,20.54L-23.12,19.12L-24.27,17.63L-25.33,16.07L-26.29,14.45L-27.14,12.77L-27.89,11.04L-28.53,9.27L-29.06,7.46L-29.47,5.62L-29.76,3.76L-29.94,1.88L-30.00,-0.00L-29.94,-1.88L-29.76,-3.76L-29.47,-5.62L-29.06,-7.46L-28.53,-9.27L-27.89,-11.04L-27.14,-12.77L-26.29,-14.45L-25.33,-16.07L-24.27,-17.63L-23.12,-19.12L-21.87,-20.54L-20.54,-21.87L-19.12,-23.12L-17.63,-24.27L-16.07,-25.33L-14.45,-26.29L-12.77,-27.14L-11.04,-27.89L-9.27,-28.53L-7.46,-29.06L-5.62,-29.47L-3.76,-29.76L-1.88,-29.94L0.00,-30.00L1.88,-29.94L3.76,-29.76L5.62,-29.47L7.46,-29.06L9.27,-28.53L11.04,-27.89L12.77,-27.14L14.45,-26.29L16.07,-25.33L17.63,-24.27L19.12,-23.12L20.54,-21.87L21.87,-20.54L23.12,-19.12L24.27,-17.63L25.33,-16.07L26.29,-14.45L27.14,-12.77L27.89,-11.04L28.53,-9.27L29.06,-7.46L29.47,-5.62L29.76,-3.76L29.94,-1.88"]
        RenderSVGText {text} at (-26,60) size 52x18 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 52x18
            chunk 1 (middle anchor) text run 1 at (-26.00,60.00) startOffset 0 endOffset 8 width 52.00: "<circle>"
      RenderSVGContainer {g} at (379.50,69.50) size 81.00x84.50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(420.00,90.00)}]
        RenderPath {ellipse} at (379.50,69.50) size 81.00x41.00 [stroke={[type=SOLID] [color=#FFB400]}] [fill={[type=SOLID] [color=#E6E6E6]}] [data="M40.00,0.00L39.92,1.26L39.68,2.51L39.29,3.75L38.74,4.97L38.04,6.18L37.19,7.36L36.19,8.52L35.05,9.64L33.77,10.72L32.36,11.76L30.82,12.75L29.16,13.69L27.38,14.58L25.50,15.41L23.51,16.18L21.43,16.89L19.27,17.53L17.03,18.10L14.72,18.60L12.36,19.02L9.95,19.37L7.50,19.65L5.01,19.84L2.51,19.96L-0.00,20.00L-2.51,19.96L-5.01,19.84L-7.50,19.65L-9.95,19.37L-12.36,19.02L-14.72,18.60L-17.03,18.10L-19.27,17.53L-21.43,16.89L-23.51,16.18L-25.50,15.41L-27.38,14.58L-29.16,13.69L-30.82,12.75L-32.36,11.76L-33.77,10.72L-35.05,9.64L-36.19,8.52L-37.19,7.36L-38.04,6.18L-38.74,4.97L-39.29,3.75L-39.68,2.51L-39.92,1.26L-40.00,-0.00L-39.92,-1.26L-39.68,-2.51L-39.29,-3.75L-38.74,-4.97L-38.04,-6.18L-37.19,-7.36L-36.19,-8.52L-35.05,-9.64L-33.77,-10.72L-32.36,-11.76L-30.82,-12.75L-29.16,-13.69L-27.38,-14.58L-25.50,-15.41L-23.51,-16.18L-21.43,-16.89L-19.27,-17.53L-17.03,-18.10L-14.72,-18.60L-12.36,-19.02L-9.95,-19.37L-7.50,-19.65L-5.01,-19.84L-2.51,-19.96L0.00,-20.00L2.51,-19.96L5.01,-19.84L7.50,-19.65L9.95,-19.37L12.36,-19.02L14.72,-18.60L17.03,-18.10L19.27,-17.53L21.43,-16.89L23.51,-16.18L25.50,-15.41L27.38,-14.58L29.16,-13.69L30.82,-12.75L32.36,-11.76L33.77,-10.72L35.05,-9.64L36.19,-8.52L37.19,-7.36L38.04,-6.18L38.74,-4.97L39.29,-3.75L39.68,-2.51L39.92,-1.26"]
        RenderSVGText {text} at (-29,60) size 58x18 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 58x18
            chunk 1 (middle anchor) text run 1 at (-29.00,60.00) startOffset 0 endOffset 9 width 58.00: "<ellipse>"
      RenderSVGContainer {g} at (24.31,194.31) size 71.38x89.69 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,220.00)}]
        RenderPath {line} at (24.31,194.31) size 71.38x51.38 [stroke={[type=SOLID] [color=#FFB400] [stroke width=10.00] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [data="M-30.00,-20.00L30.00,20.00"]
        RenderSVGText {text} at (-21,60) size 41x18 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (1,-14) size 41x18
            chunk 1 (middle anchor) text run 1 at (-20.50,60.00) startOffset 0 endOffset 6 width 41.00: "<line>"
      RenderSVGContainer {g} at (145,193.62) size 70x90.38 [transform={m=((1.00,0.00)(0.00,1.00)) t=(180.00,220.00)}]
        RenderPath {polyline} at (145,193.62) size 70x52.75 [stroke={[type=SOLID] [color=#FFB400] [stroke width=10.00] [line cap=ROUND] [line join=ROUND]}] [data="M-30.00,20.00L-30.00,-20.00L30.00,20.00L30.00,-20.00"]
        RenderSVGText {text} at (-35,60) size 69x18 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (1,-14) size 69x18
            chunk 1 (middle anchor) text run 1 at (-34.50,60.00) startOffset 0 endOffset 10 width 69.00: "<polyline>"
      RenderSVGContainer {g} at (265,199.07) size 70x84.93 [transform={m=((1.00,0.00)(0.00,1.00)) t=(300.00,220.00)}]
        RenderPath {polygon} at (269.50,199.07) size 61x41.87 [stroke={[type=SOLID] [color=#FFB400]}] [fill={[type=SOLID] [color=#E6E6E6]}] [data="M-30.00,20.00L-30.00,-20.00L30.00,20.00L30.00,-20.00"]
        RenderSVGText {text} at (-35,60) size 70x18 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 70x18
            chunk 1 (middle anchor) text run 1 at (-35.00,60.00) startOffset 0 endOffset 9 width 70.00: "<polygon>"
