layer at (0,0) size 785x961
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x961
  RenderBlock {HTML} at (0,0) size 785x961
    RenderBody {BODY} at (8,8) size 769x945 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 769x18
        RenderText {#text} at (0,0) size 355x18
          text run at (0,0) width 355: "The style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,34) size 769x150
        RenderText {#text} at (0,0) size 728x150
          text run at (0,0) width 624: "<LINK rel=\"stylesheet\" type=\"text/css\" href=\"linktest.css\" title=\"Default SS\">"
          text run at (624,0) width 0: " "
          text run at (0,15) width 728: "<LINK rel=\"alternate stylesheet\" type=\"text/css\" href=\"linktest2.css\" title=\"Alternate SS\">"
          text run at (728,15) width 0: " "
          text run at (0,30) width 208: "@import url(imptest1.css);"
          text run at (208,30) width 0: " "
          text run at (0,45) width 192: "@import \"imptest1a.css\";"
          text run at (192,45) width 0: " "
          text run at (0,60) width 128: "UL {color: red;}"
          text run at (128,60) width 0: " "
          text run at (0,75) width 176: ".four {color: purple;}"
          text run at (176,75) width 0: " "
          text run at (0,90) width 208: "@import url(imptest2.css);"
          text run at (208,90) width 0: " "
          text run at (0,105) width 32: "<!--"
          text run at (32,105) width 0: " "
          text run at (0,120) width 168: "P.six {color: green;}"
          text run at (168,120) width 0: " "
          text run at (0,135) width 24: "-->"
          text run at (24,135) width 0: " "
      RenderBlock {HR} at (0,197) size 769x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,215) size 769x18
        RenderText {#text} at (0,0) size 404x18
          text run at (0,0) width 404: "This sentence should be underlined due to the linked style sheet "
        RenderInline {CODE} at (0,0) size 96x15
          RenderText {#text} at (404,2) size 96x15
            text run at (404,2) width 96: "linktest.css"
        RenderText {#text} at (500,0) size 254x18
          text run at (500,0) width 254: ", the reference to which is shown above."
      RenderBlock {P} at (0,249) size 769x36
        RenderText {#text} at (0,0) size 442x18
          text run at (0,0) width 442: "This sentence should NOT be underlined due to the linked style sheet "
        RenderInline {CODE} at (0,0) size 104x15
          RenderText {#text} at (442,2) size 104x15
            text run at (442,2) width 104: "linktest2.css"
        RenderText {#text} at (546,0) size 8x18
          text run at (546,0) width 8: ", "
        RenderInline {STRONG} at (0,0) size 41x18
          RenderText {#text} at (554,0) size 41x18
            text run at (554,0) width 41: "unless"
        RenderText {#text} at (595,0) size 741x36
          text run at (595,0) width 146: " the external style sheet"
          text run at (0,18) width 325: "\"Alternate SS\" has been selected via the user agent."
      RenderBlock {UL} at (0,301) size 769x54 [color=#FF0000]
        RenderListItem {LI} at (40,0) size 729x18 [color=#008000]
          RenderListMarker at (-17,0) size 7x18: bullet
          RenderText {#text} at (0,0) size 390x18
            text run at (0,0) width 390: "This sentence should be green due to an imported style sheet ["
          RenderInline {CODE} at (0,0) size 208x15
            RenderText {#text} at (390,2) size 208x15
              text run at (390,2) width 208: "@import url(imptest1.css);"
          RenderText {#text} at (598,0) size 9x18
            text run at (598,0) width 9: "]."
        RenderListItem {LI} at (40,18) size 729x18 [color=#800080]
          RenderListMarker at (-17,0) size 7x18: bullet
          RenderText {#text} at (0,0) size 395x18
            text run at (0,0) width 395: "This sentence should be purple due to an imported style sheet ["
          RenderInline {CODE} at (0,0) size 184x15
            RenderText {#text} at (395,2) size 184x15
              text run at (395,2) width 184: "@import \"imptest1a.css\""
          RenderText {#text} at (579,0) size 9x18
            text run at (579,0) width 9: "]."
        RenderListItem {LI} at (40,36) size 729x18 [color=#008000]
          RenderListMarker at (-17,0) size 7x18: bullet
          RenderText {#text} at (0,0) size 393x18
            text run at (0,0) width 393: "This sentence should be green thanks to the STYLE attribute ["
          RenderInline {CODE} at (0,0) size 168x15
            RenderText {#text} at (393,2) size 168x15
              text run at (393,2) width 168: "STYLE=\"color: green;\""
          RenderText {#text} at (561,0) size 9x18
            text run at (561,0) width 9: "]."
      RenderBlock {P} at (0,371) size 769x18 [color=#800080]
        RenderText {#text} at (0,0) size 500x18
          text run at (0,0) width 500: "This sentence should be purple, and it doesn't have a terminating paragraph tag."
      RenderBlock {OL} at (0,405) size 769x54
        RenderListItem {LI} at (40,0) size 729x18
          RenderListMarker at (-20,0) size 16x18: "1"
          RenderText {#text} at (0,0) size 201x18
            text run at (0,0) width 201: "This list should NOT be purple."
        RenderListItem {LI} at (40,18) size 729x18
          RenderListMarker at (-20,0) size 16x18: "2"
          RenderText {#text} at (0,0) size 172x18
            text run at (0,0) width 172: "It should, instead, be black."
        RenderListItem {LI} at (40,36) size 729x18
          RenderListMarker at (-20,0) size 16x18: "3"
          RenderText {#text} at (0,0) size 501x18
            text run at (0,0) width 501: "If it IS purple, then the browser hasn't correctly parsed the preceding paragraph."
      RenderBlock {P} at (0,475) size 769x36
        RenderText {#text} at (0,0) size 697x18
          text run at (0,0) width 197: "This sentence should be black. "
          text run at (197,0) width 500: "If it is red, then the browser has inappropriately imported the styles from the file"
        RenderInline {TT} at (0,0) size 96x15
          RenderText {#text} at (0,20) size 96x15
            text run at (0,20) width 96: "imptest2.css"
        RenderText {#text} at (96,18) size 33x18
          text run at (96,18) width 33: " (see "
        RenderInline {A} at (0,0) size 68x18 [color=#0000FF]
          RenderText {#text} at (129,18) size 68x18
            text run at (129,18) width 68: "section 3.0"
        RenderText {#text} at (197,18) size 275x18
          text run at (197,18) width 275: " of the CSS1 specification for more details)."
      RenderBlock {P} at (0,527) size 769x18 [color=#008000]
        RenderText {#text} at (0,0) size 203x18
          text run at (0,0) width 203: "This paragraph should be green."
      RenderTable {TABLE} at (0,561) size 769x384 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 767x382
          RenderTableRow {TR} at (0,0) size 767x26
            RenderTableCell {TD} at (0,0) size 767x26 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderInline {STRONG} at (0,0) size 163x18
                RenderText {#text} at (4,4) size 163x18
                  text run at (4,4) width 163: "TABLE Testing Section"
          RenderTableRow {TR} at (0,26) size 767x356
            RenderTableCell {TD} at (0,191) size 12x26 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
              RenderText {#text} at (4,4) size 4x18
                text run at (4,4) width 4: " "
            RenderTableCell {TD} at (12,26) size 755x356 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 747x36
                RenderText {#text} at (0,0) size 404x18
                  text run at (0,0) width 404: "This sentence should be underlined due to the linked style sheet "
                RenderInline {CODE} at (0,0) size 96x15
                  RenderText {#text} at (404,2) size 96x15
                    text run at (404,2) width 96: "linktest.css"
                RenderText {#text} at (500,0) size 708x36
                  text run at (500,0) width 208: ", the reference to which is shown"
                  text run at (0,18) width 42: "above."
              RenderBlock {P} at (4,56) size 747x36
                RenderText {#text} at (0,0) size 442x18
                  text run at (0,0) width 442: "This sentence should NOT be underlined due to the linked style sheet "
                RenderInline {CODE} at (0,0) size 104x15
                  RenderText {#text} at (442,2) size 104x15
                    text run at (442,2) width 104: "linktest2.css"
                RenderText {#text} at (546,0) size 8x18
                  text run at (546,0) width 8: ", "
                RenderInline {STRONG} at (0,0) size 41x18
                  RenderText {#text} at (554,0) size 41x18
                    text run at (554,0) width 41: "unless"
                RenderText {#text} at (595,0) size 741x36
                  text run at (595,0) width 146: " the external style sheet"
                  text run at (0,18) width 325: "\"Alternate SS\" has been selected via the user agent."
              RenderBlock {UL} at (4,108) size 747x54 [color=#FF0000]
                RenderListItem {LI} at (40,0) size 707x18 [color=#008000]
                  RenderListMarker at (-17,0) size 7x18: bullet
                  RenderText {#text} at (0,0) size 390x18
                    text run at (0,0) width 390: "This sentence should be green due to an imported style sheet ["
                  RenderInline {CODE} at (0,0) size 208x15
                    RenderText {#text} at (390,2) size 208x15
                      text run at (390,2) width 208: "@import url(imptest1.css);"
                  RenderText {#text} at (598,0) size 9x18
                    text run at (598,0) width 9: "]."
                RenderListItem {LI} at (40,18) size 707x18 [color=#800080]
                  RenderListMarker at (-17,0) size 7x18: bullet
                  RenderText {#text} at (0,0) size 395x18
                    text run at (0,0) width 395: "This sentence should be purple due to an imported style sheet ["
                  RenderInline {CODE} at (0,0) size 184x15
                    RenderText {#text} at (395,2) size 184x15
                      text run at (395,2) width 184: "@import \"imptest1a.css\""
                  RenderText {#text} at (579,0) size 9x18
                    text run at (579,0) width 9: "]."
                RenderListItem {LI} at (40,36) size 707x18 [color=#008000]
                  RenderListMarker at (-17,0) size 7x18: bullet
                  RenderText {#text} at (0,0) size 393x18
                    text run at (0,0) width 393: "This sentence should be green thanks to the STYLE attribute ["
                  RenderInline {CODE} at (0,0) size 168x15
                    RenderText {#text} at (393,2) size 168x15
                      text run at (393,2) width 168: "STYLE=\"color: green;\""
                  RenderText {#text} at (561,0) size 9x18
                    text run at (561,0) width 9: "]."
              RenderBlock {P} at (4,178) size 747x18 [color=#800080]
                RenderText {#text} at (0,0) size 500x18
                  text run at (0,0) width 500: "This sentence should be purple, and it doesn't have a terminating paragraph tag."
              RenderBlock {OL} at (4,212) size 747x54
                RenderListItem {LI} at (40,0) size 707x18
                  RenderListMarker at (-20,0) size 16x18: "1"
                  RenderText {#text} at (0,0) size 201x18
                    text run at (0,0) width 201: "This list should NOT be purple."
                RenderListItem {LI} at (40,18) size 707x18
                  RenderListMarker at (-20,0) size 16x18: "2"
                  RenderText {#text} at (0,0) size 172x18
                    text run at (0,0) width 172: "It should, instead, be black."
                RenderListItem {LI} at (40,36) size 707x18
                  RenderListMarker at (-20,0) size 16x18: "3"
                  RenderText {#text} at (0,0) size 501x18
                    text run at (0,0) width 501: "If it IS purple, then the browser hasn't correctly parsed the preceding paragraph."
              RenderBlock {P} at (4,282) size 747x36
                RenderText {#text} at (0,0) size 697x18
                  text run at (0,0) width 197: "This sentence should be black. "
                  text run at (197,0) width 500: "If it is red, then the browser has inappropriately imported the styles from the file"
                RenderInline {TT} at (0,0) size 96x15
                  RenderText {#text} at (0,20) size 96x15
                    text run at (0,20) width 96: "imptest2.css"
                RenderText {#text} at (96,18) size 33x18
                  text run at (96,18) width 33: " (see "
                RenderInline {A} at (0,0) size 68x18 [color=#0000FF]
                  RenderText {#text} at (129,18) size 68x18
                    text run at (129,18) width 68: "section 3.0"
                RenderText {#text} at (197,18) size 275x18
                  text run at (197,18) width 275: " of the CSS1 specification for more details)."
              RenderBlock {P} at (4,334) size 747x18 [color=#008000]
                RenderText {#text} at (0,0) size 203x18
                  text run at (0,0) width 203: "This paragraph should be green."
