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
    RenderSVGContainer {g} at (35,5) size 411x294
      RenderSVGText {text} at (65,5) size 307x14 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 307x14
          chunk 1 text run 1 at (65.00,16.00) startOffset 0 endOffset 69 width 306.58: "Link test of the 'view' element and its attributes, 1 of 2, internal."
      RenderSVGContainer {g} at (150,130) size 125x110 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-150.00,75.00)}]
        RenderSVGRect {rect} at (150,130) size 125x85 [fill={[type=SOLID] [color=#AAAAAA]}] [x=300.00] [y=55.00] [width=125.00] [height=85.00]
        RenderSVGContainer {a} at (170,130) size 104x19
          RenderSVGText {text} at (320,55) size 104x19 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 104x18
              chunk 1 text run 1 at (320.00,70.00) startOffset 0 endOffset 15 width 103.97: "Go to Rectangle"
        RenderSVGContainer {a} at (170,150) size 85x19
          RenderSVGText {text} at (320,75) size 85x19 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 85x18
              chunk 1 text run 1 at (320.00,90.00) startOffset 0 endOffset 13 width 84.44: "Go to Ellipse"
        RenderSVGContainer {a} at (170,170) size 80x19
          RenderSVGText {text} at (320,95) size 80x19 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 80x18
              chunk 1 text run 1 at (320.00,110.00) startOffset 0 endOffset 12 width 79.09: "Go to Circle"
        RenderSVGContainer {a} at (170,190) size 94x19
          RenderSVGText {text} at (320,115) size 94x19 contains 1 chunk(s)
            RenderSVGInlineText {#text} at (0,0) size 94x18
              chunk 1 text run 1 at (320.00,130.00) startOffset 0 endOffset 13 width 93.34: "Go to Polygon"
        RenderSVGText {text} at (315,139) size 95x14 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 95x14
            chunk 1 text run 1 at (315.00,150.00) startOffset 0 endOffset 20 width 94.80: "Click element's line"
        RenderSVGText {text} at (315,151) size 84x14 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 84x14
            chunk 1 text run 1 at (315.00,162.00) startOffset 0 endOffset 19 width 84.00: "to link to its view"
      RenderSVGRect {rect} at (295,36) size 135x68 [fill={[type=SOLID] [color=#FF0000]}] [x=295.00] [y=36.00] [width=135.00] [height=68.00]
      RenderSVGText {text} at (340,101) size 64x19 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 64x18
          chunk 1 text run 1 at (340.00,116.00) startOffset 0 endOffset 9 width 63.97: "Rectangle"
      RenderSVGRect {rect} at (291,28) size 143x93 [stroke={[type=SOLID] [color=#000000]}] [x=292.00] [y=29.00] [width=141.00] [height=91.00]
      RenderSVGText {text} at (302,121) size 116x12 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 116x12
          chunk 1 text run 1 at (302.00,130.00) startOffset 0 endOffset 29 width 115.24: "No view attributes except id."
      RenderSVGEllipse {ellipse} at (298,219) size 144x64 [fill={[type=SOLID] [color=#0000FF]}] [cx=370.00] [cy=251.00] [rx=72.00] [ry=32.00]
      RenderSVGText {text} at (355,280) size 45x19 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 45x18
          chunk 1 text run 1 at (355.00,295.00) startOffset 0 endOffset 7 width 44.44: "Ellipse"
      RenderSVGRect {rect} at (294,215) size 152x84 [stroke={[type=SOLID] [color=#000000]}] [x=295.00] [y=216.00] [width=150.00] [height=82.00]
      RenderSVGText {text} at (315,205) size 111x12 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 111x12
          chunk 1 text run 1 at (315.00,214.00) startOffset 0 endOffset 27 width 110.26: "viewBox, should fill frame."
      RenderSVGEllipse {circle} at (49,32) size 72x72 [fill={[type=SOLID] [color=#FFFF00]}] [cx=85.00] [cy=68.00] [r=36.00]
      RenderSVGText {text} at (70,101) size 40x19 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 40x18
          chunk 1 text run 1 at (70.00,116.00) startOffset 0 endOffset 6 width 39.09: "Circle"
      RenderSVGRect {rect} at (35,28) size 100x93 [stroke={[type=SOLID] [color=#000000]}] [x=36.00] [y=29.00] [width=98.00] [height=91.00]
      RenderSVGText {text} at (36,119) size 100x12 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 100x12
          chunk 1 text run 1 at (36.00,128.00) startOffset 0 endOffset 21 width 99.43: "viewBox & non-uniform"
      RenderSVGText {text} at (36,128) size 84x12 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 84x12
          chunk 1 text run 1 at (36.00,137.00) startOffset 0 endOffset 19 width 83.30: "preserveAspectRatio"
      RenderSVGPath {polygon} at (39,211) size 95x72 [fill={[type=SOLID] [color=#008000]}] [points="87 211 134 238 116 283 57 283 39 238 87 211"]
      RenderSVGText {text} at (65,280) size 54x19 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 54x18
          chunk 1 text run 1 at (65.00,295.00) startOffset 0 endOffset 7 width 53.34: "Polygon"
      RenderSVGRect {rect} at (35,207) size 102x91 [stroke={[type=SOLID] [color=#000000]}] [x=36.00] [y=208.00] [width=100.00] [height=89.00]
      RenderSVGText {text} at (46,188) size 78x12 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 78x12
          chunk 1 text run 1 at (46.00,197.00) startOffset 0 endOffset 18 width 77.20: "viewTarget, should"
      RenderSVGText {text} at (46,197) size 72x12 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 72x12
          chunk 1 text run 1 at (46.00,206.00) startOffset 0 endOffset 17 width 71.39: "highlight polygon"
    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 263.34: "$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]
