layer at (0,0) size 800x600
  RenderView at (0,0) size 800x600
layer at (0,0) size 480x360
  RenderSVGRoot {svg} at (0.50,0.50) size 479x359
    RenderSVGContainer {g} at (30,15) size 405x268
      RenderSVGContainer {g} at (30,15) size 405x268
        RenderPath {rect} at (125,16) size 8x17 [fill={[type=SOLID] [color=#ADD8E6]}] [data="M125.00,16.00L133.00,16.00L133.00,33.00L125.00,33.00"]
        RenderPath {rect} at (91.88,20.10) size 14.14x14.14 [fill={[type=SOLID] [color=#ADD8E6]}] [data="M91.88,20.10L106.02,20.10L106.02,34.24L91.88,34.24"]
        RenderPath {line} at (62,29.50) size 356x1 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M62.00,30.00L418.00,30.00"]
        RenderPath {line} at (132.50,15) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M133.00,30.00L133.00,15.00"]
        RenderPath {line} at (124.50,15) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M125.00,30.00L125.00,15.00"]
        RenderPath {line} at (189,29.50) size 60x1 [stroke={[type=SOLID] [color=#00FF00]}] [fill={[type=SOLID] [color=#000000]}] [data="M189.00,30.00L249.00,30.00"]
        RenderSVGText {text} at (62,30) size 356x22 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 32x17
            chunk 1 (middle anchor) text run 1 at (62.00,30.00) startOffset 0 endOffset 5 width 32.00: "This "
          RenderSVGTSpan {tspan} at (0,0) size 20x18
            RenderSVGInlineText {#text} at (29,-10) size 20x18
              chunk 1 (middle anchor) text run 2 at (94.00,30.00) startOffset 0 endOffset 2 width 11.00: "is"
          RenderSVGInlineText {#text} at (43,-14) size 313x17
            chunk 1 (middle anchor) text run 3 at (105.00,30.00) startOffset 0 endOffset 47 width 313.00: " a test of the interface SVGTextContentElement."
        RenderSVGText {text} at (30,60) size 227x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 227x17
            chunk 1 text run 1 at (30.00,60.00) startOffset 0 endOffset 34 width 227.00: ".getCharNumAtPosition() result: 30"
        RenderSVGText {text} at (30,80) size 246x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 246x17
            chunk 1 text run 1 at (30.00,80.00) startOffset 0 endOffset 36 width 246.00: ".getComputedTextLength() result: 356"
        RenderSVGText {text} at (30,100) size 296x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 296x17
            chunk 1 text run 1 at (30.00,100.00) startOffset 0 endOffset 46 width 296.00: ".getEndPositionOfChar(11) result ('e'): 133,30"
        RenderSVGText {text} at (30,120) size 292x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 292x17
            chunk 1 text run 1 at (30.00,120.00) startOffset 0 endOffset 46 width 292.00: ".getExtentOfChar(11) result ('e'): 125,16,8,17"
        RenderSVGText {text} at (30,140) size 206x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 206x17
            chunk 1 text run 1 at (30.00,140.00) startOffset 0 endOffset 30 width 206.00: ".getNumberOfChars() result: 54"
        RenderSVGText {text} at (30,160) size 208x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 208x17
            chunk 1 text run 1 at (30.00,160.00) startOffset 0 endOffset 32 width 208.00: ".getRotationOfChar(5) result: 45"
        RenderSVGText {text} at (30,180) size 301x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 301x17
            chunk 1 text run 1 at (30.00,180.00) startOffset 0 endOffset 48 width 301.00: ".getStartPositionOfChar(11) result ('e'): 125,30"
        RenderSVGText {text} at (30,200) size 310x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 310x17
            chunk 1 text run 1 at (30.00,200.00) startOffset 0 endOffset 50 width 310.00: ".getSubStringLength(22,9) result ('interface'): 60"
        RenderSVGText {text} at (30,220) size 405x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 405x17
            chunk 1 text run 1 at (30.00,220.00) startOffset 0 endOffset 64 width 405.00: ".selectSubString(18,3) result: the word 'the' should be selected"
        RenderSVGText {text} at (30,240) size 224x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 224x17
            chunk 1 text run 1 at (30.00,240.00) startOffset 0 endOffset 35 width 224.00: ".textLength.baseVal.value result: 0"
        RenderSVGText {text} at (30,260) size 223x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 223x17
            chunk 1 text run 1 at (30.00,260.00) startOffset 0 endOffset 35 width 223.00: ".textLength.animVal.value result: 0"
        RenderSVGText {text} at (30,280) size 381x17 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,-14) size 381x17
            chunk 1 text run 1 at (30.00,280.00) startOffset 0 endOffset 59 width 381.00: ".lengthAdjust.baseVal and .lengthAdjust.animVal result: 1,1"
    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.1 $"
    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"]
selection start: position 11 of child 2 {#text} of child 7 {text} of child 3 {g} of child 35 {g} of child 1 {svg} of document
selection end:   position 14 of child 2 {#text} of child 7 {text} of child 3 {g} of child 35 {g} of child 1 {svg} of document
