Blocked access to external URL http://example.org/image.jpg
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
    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    RenderSVGContainer {g} at (10,49) size 417x230
      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
        RenderSVGRect {rect} at (0,0) size 1x1 [fill={[type=SOLID] [color=#000000]}] [x=0.00] [y=0.00] [width=1.00] [height=1.00]
        RenderSVGGradientStop {stop} [offset=0.00] [color=#000000]
        RenderSVGImage {image} at (0,0) size 1x1
        RenderSVGResourceRadialGradient {radialGradient} [id="g"] [gradientUnits=objectBoundingBox] [center=(0.50,0.50)] [focal=(0.50,0.50)] [radius=0.50] [focalRadius=0.00]
        RenderSVGText {text}
        RenderSVGText {text} at (0,-15) size 73x19 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 73x18
            chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 8 width 73.00: "sometext"
        RenderSVGResourceMarker {marker} [id="m"] [markerUnits=strokeWidth] [ref at (0,0)] [angle=0.00]
        RenderSVGViewportContainer {svg} at (0,0) size 0x0
        RenderSVGResourceFilter {filter} [id="f"] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
        RenderSVGPath {polygon} at (0,0) size 0x0 [fill={[type=SOLID] [color=#000000]}] [points=""]
      RenderSVGContainer {g} at (10,49) size 145x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,50.00)}]
        RenderSVGRect {rect} at (10,51) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 135x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 135x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 30 width 135.00: "r.x.baseVal.value == 0: PASSED"
      RenderSVGContainer {g} at (10,59) size 291x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,60.00)}]
        RenderSVGRect {rect} at (10,61) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 281x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 281x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 57 width 281.00: "r.x.baseVal.unitType == 1 (SVG_LENGTHTYPE_NUMBER): PASSED"
      RenderSVGContainer {g} at (10,69) size 240x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,70.00)}]
        RenderSVGRect {rect} at (10,71) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 230x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 230x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 52 width 230.00: "v.width.baseVal.valueInSpecifiedUnits == 100: PASSED"
      RenderSVGContainer {g} at (10,79) size 332x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,80.00)}]
        RenderSVGRect {rect} at (10,81) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 322x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 322x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 65 width 322.00: "v.width.baseVal.unitType == 2 (SVG_LENGTHTYPE_PERCENTAGE): PASSED"
      RenderSVGContainer {g} at (10,89) size 297x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,90.00)}]
        RenderSVGRect {rect} at (10,91) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 287x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 287x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 65 width 287.00: "tt.textLength.baseVal.value == tt.getComputedTextLength(): PASSED"
      RenderSVGContainer {g} at (10,99) size 141x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,100.00)}]
        RenderSVGRect {rect} at (10,101) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 131x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 131x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 29 width 131.00: "s.offset.baseVal == 0: PASSED"
      RenderSVGContainer {g} at (10,109) size 191x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,110.00)}]
        RenderSVGRect {rect} at (10,111) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 181x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 181x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 40 width 181.00: "c.preserveAlpha.baseVal == false: PASSED"
      RenderSVGContainer {g} at (10,119) size 163x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,120.00)}]
        RenderSVGRect {rect} at (10,121) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 153x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 153x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 33 width 153.00: "c.className.baseVal == \"\": PASSED"
      RenderSVGContainer {g} at (10,129) size 131x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,130.00)}]
        RenderSVGRect {rect} at (10,131) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 121x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 121x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 28 width 121.00: "i.href.baseVal == \"\": PASSED"
      RenderSVGContainer {g} at (10,139) size 213x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,140.00)}]
        RenderSVGRect {rect} at (10,141) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 203x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 203x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 45 width 203.00: "i.requiredFeatures.numberOfItems == 0: PASSED"
      RenderSVGContainer {g} at (10,149) size 233x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,150.00)}]
        RenderSVGRect {rect} at (10,151) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 223x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 223x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 49 width 223.00: "c.kernelMatrix.baseVal.numberOfItems == 0: PASSED"
      RenderSVGContainer {g} at (10,159) size 186x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,160.00)}]
        RenderSVGRect {rect} at (10,161) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 176x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 176x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 38 width 176.00: "t.x.baseVal.numberOfItems == 0: PASSED"
      RenderSVGContainer {g} at (10,169) size 172x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,170.00)}]
        RenderSVGRect {rect} at (10,171) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 162x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 162x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 35 width 162.00: "p.points.numberOfItems == 0: PASSED"
      RenderSVGContainer {g} at (10,179) size 358x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,180.00)}]
        RenderSVGRect {rect} at (10,181) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 348x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 348x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 70 width 348.00: "g.gradientUnits.baseVal == 2 (SVG_UNIT_TYPE_OBJECTBOUNDINGBOX): PASSED"
      RenderSVGContainer {g} at (10,189) size 144x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,190.00)}]
        RenderSVGRect {rect} at (10,191) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 134x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 134x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 29 width 134.00: "c.orderX.baseVal == 0: PASSED"
      RenderSVGContainer {g} at (10,199) size 190x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,200.00)}]
        RenderSVGRect {rect} at (10,201) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 180x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 180x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 40 width 180.00: "m.orientAngle.baseVal.value == 0: PASSED"
      RenderSVGContainer {g} at (10,209) size 353x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,210.00)}]
        RenderSVGRect {rect} at (10,211) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 343x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 343x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 71 width 343.00: "m.orientAngle.baseVal.unitType == 1 (SVG_ANGLETYPE_UNSPECIFIED): PASSED"
      RenderSVGContainer {g} at (10,219) size 225x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,220.00)}]
        RenderSVGRect {rect} at (10,221) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 215x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 215x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 49 width 215.00: "v.viewBox.baseVal.[x,y,width,height] == 0: PASSED"
      RenderSVGContainer {g} at (10,229) size 220x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,230.00)}]
        RenderSVGRect {rect} at (10,231) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 210x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 210x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 46 width 210.00: "t.transform.baseVal.numberOfItems == 0: PASSED"
      RenderSVGContainer {g} at (10,239) size 417x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,240.00)}]
        RenderSVGRect {rect} at (10,241) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 407x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 407x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 83 width 407.00: "v.preserveAspectRatio.baseVal.align == 6 (SVG_PRESERVEASPECTRATIO_XMIDYMID): PASSED"
      RenderSVGContainer {g} at (10,249) size 381x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,250.00)}]
        RenderSVGRect {rect} at (10,251) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 371x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 371x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 77 width 371.00: "v.preserveAspectRatio.baseVal.meetOrSlice == 1 (SVG_MEETORSLICE_MEET): PASSED"
      RenderSVGContainer {g} at (10,259) size 275x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,260.00)}]
        RenderSVGRect {rect} at (10,261) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 265x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 265x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 50 width 265.00: "v.zoomAndPan == 2 (SVG_ZOOMANDPAN_MAGNIFY): PASSED"
      RenderSVGContainer {g} at (10,269) size 99x10 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,270.00)}]
        RenderSVGRect {rect} at (10,271) size 5x5 [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=1.00] [width=5.00] [height=5.00]
        RenderSVGText {text} at (10,-1) size 89x10 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 89x9
            chunk 1 text run 1 at (10.00,7.00) startOffset 0 endOffset 19 width 89.00: "Test status: PASSED"
    RenderSVGContainer {g} at (10,314) size 231x33
      RenderSVGText {text} at (10,314) size 231x33 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 231x32
          chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 231.00: "$Revision: 1.9 $"
    RenderSVGRect {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00]
    RenderSVGContainer {g} at (0,0) size 480x23
      RenderSVGRect {rect} at (0,0) size 480x22 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [x=1.00] [y=1.00] [width=478.00] [height=20.00]
      RenderSVGText {text} at (205,2) size 70x20 contains 1 chunk(s)
        RenderSVGInlineText {#text} at (0,0) size 70x20
          chunk 1 (middle anchor) text run 1 at (205.00,18.00) startOffset 0 endOffset 5 width 70.00: "DRAFT"
