layer at (0,0) size 785x791
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x790
  RenderBlock {HTML} at (0,0) size 785x791
    RenderBody {BODY} at (8,8) size 769x775 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 769x20
        RenderText {#text} at (0,0) size 337x19
          text run at (0,0) width 337: "The style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,36) size 769x112
        RenderText {#text} at (0,0) size 560x112
          text run at (0,0) width 208: "P.one {line-height: 200%;}"
          text run at (208,0) width 0: " "
          text run at (0,16) width 552: "SPAN.two {border-style: solid; border-width: 10px; border-color: red;"
          text run at (552,16) width 0: " "
          text run at (0,32) width 304: "          padding: 2pt; margin: 30pt;}"
          text run at (304,32) width 0: " "
          text run at (0,48) width 360: "P.three {font-size: 10pt; line-height: 12pt;}"
          text run at (360,48) width 0: " "
          text run at (0,64) width 560: "SPAN.four {border-style: solid; border-width: 12px; border-color: red;"
          text run at (560,64) width 0: " "
          text run at (0,80) width 192: "          padding: 2pt;}"
          text run at (192,80) width 0: " "
          text run at (0,96) width 0: " "
      RenderBlock {HR} at (0,161) size 769x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,179) size 769x192
        RenderText {#text} at (0,6) size 179x19
          text run at (0,6) width 179: "This is a paragraph that has a "
        RenderInline {SPAN} at (0,0) size 763x173 [border: (10px solid #FF0000)]
          RenderText {#text} at (231,6) size 763x147
            text run at (231,6) width 532: "very long span in it, and the span has a 10px red border separated from the span by 2pt,"
            text run at (0,38) width 133: "and a margin of 30pt. "
            text run at (133,38) width 621: "The padding and border should be present on all sides of the span (although vertical lines should appear"
            text run at (0,70) width 421: "only at the beginning and the end of the whole span, not on each line). "
            text run at (421,70) width 342: "The padding, border, and margin should all be noticeable"
            text run at (0,102) width 223: "at the beginning and end of the span. "
            text run at (223,102) width 527: "However, the line height should not be changed by any of them, so the margin should be"
            text run at (0,134) width 374: "unnoticeable and the border should overlap text on other lines."
        RenderText {#text} at (426,134) size 730x51
          text run at (426,134) width 5: " "
          text run at (430,134) width 300: "The line spacing in the whole paragraph should be"
          text run at (0,166) width 132: "200% of the font size."
      RenderBlock {P} at (0,387) size 769x64
        RenderText {#text} at (0,0) size 160x15
          text run at (0,0) width 160: "This is a paragraph that has a "
        RenderInline {SPAN} at (0,0) size 757x93 [border: (12px solid #FF0000)]
          RenderText {#text} at (174,0) size 757x63
            text run at (174,0) width 548: "very long span in it, and the span has a 12px red border separated from the span by 2pt of padding (the"
            text run at (0,16) width 752: "difference between the line-height and the font-size), which should overlap with the lines of text above and below the span, since the padding"
            text run at (0,32) width 237: "and border should not effect the line height. "
            text run at (237,32) width 520: "The span's border should have vertical lines only at the beginning and end of the whole span, not"
            text run at (0,48) width 67: "on each line."
        RenderText {#text} at (81,48) size 406x15
          text run at (81,48) width 4: " "
          text run at (84,48) width 403: "The line spacing in the whole paragraph should be 12pt, with font-size 10pt."
      RenderTable {TABLE} at (0,464) size 769x311 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 767x308
          RenderTableRow {TR} at (0,0) size 767x28
            RenderTableCell {TD} at (0,0) size 767x28 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderInline {STRONG} at (0,0) size 159x19
                RenderText {#text} at (4,4) size 159x19
                  text run at (4,4) width 159: "TABLE Testing Section"
          RenderTableRow {TR} at (0,28) size 767x280
            RenderTableCell {TD} at (0,154) size 12x28 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=1 c=0 rs=1 cs=1]
              RenderText {#text} at (4,4) size 4x19
                text run at (4,4) width 4: " "
            RenderTableCell {TD} at (12,28) size 755x280 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 747x192
                RenderText {#text} at (0,6) size 179x19
                  text run at (0,6) width 179: "This is a paragraph that has a "
                RenderInline {SPAN} at (0,0) size 744x173 [border: (10px solid #FF0000)]
                  RenderText {#text} at (231,6) size 744x147
                    text run at (231,6) width 504: "very long span in it, and the span has a 10px red border separated from the span by"
                    text run at (0,38) width 161: "2pt, and a margin of 30pt. "
                    text run at (161,38) width 575: "The padding and border should be present on all sides of the span (although vertical lines should"
                    text run at (0,70) width 467: "appear only at the beginning and the end of the whole span, not on each line). "
                    text run at (467,70) width 277: "The padding, border, and margin should all be"
                    text run at (0,102) width 288: "noticeable at the beginning and end of the span. "
                    text run at (288,102) width 421: "However, the line height should not be changed by any of them, so the"
                    text run at (0,134) width 480: "margin should be unnoticeable and the border should overlap text on other lines."
                RenderText {#text} at (532,134) size 709x51
                  text run at (532,134) width 5: " "
                  text run at (536,134) width 173: "The line spacing in the whole"
                  text run at (0,166) width 259: "paragraph should be 200% of the font size."
              RenderBlock {P} at (4,212) size 747x64
                RenderText {#text} at (0,0) size 160x15
                  text run at (0,0) width 160: "This is a paragraph that has a "
                RenderInline {SPAN} at (0,0) size 722x93 [border: (12px solid #FF0000)]
                  RenderText {#text} at (174,0) size 722x63
                    text run at (174,0) width 548: "very long span in it, and the span has a 12px red border separated from the span by 2pt of padding (the"
                    text run at (0,16) width 705: "difference between the line-height and the font-size), which should overlap with the lines of text above and below the span, since the"
                    text run at (0,32) width 284: "padding and border should not effect the line height. "
                    text run at (284,32) width 432: "The span's border should have vertical lines only at the beginning and end of the"
                    text run at (0,48) width 155: "whole span, not on each line."
                RenderText {#text} at (169,48) size 406x15
                  text run at (169,48) width 4: " "
                  text run at (172,48) width 403: "The line spacing in the whole paragraph should be 12pt, with font-size 10pt."
