layer at (0,0) size 800x785
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x785
  RenderBlock {HTML} at (0,0) size 800x785
    RenderBody {BODY} at (8,8) size 784x769 [bgcolor=#CCCCCC]
      RenderBlock {P} at (0,0) size 784x20
        RenderText {#text} at (0,0) size 363x19
          text run at (0,0) width 363: "The style declarations which apply to the text below are:"
      RenderBlock {PRE} at (0,36) size 784x84
        RenderText {#text} at (0,0) size 430x84
          text run at (0,0) width 422: ".zero {background-color: silver; border-top-width: 0;}"
          text run at (0,14) width 398: ".one {border-top-width: 25px; border-style: solid;}"
          text run at (0,28) width 406: ".two {border-top-width: thick; border-style: solid;}"
          text run at (0,42) width 430: ".three {border-top-width: medium; border-style: solid;}"
          text run at (0,56) width 406: ".four {border-top-width: thin; border-style: solid;}"
          text run at (0,70) width 242: ".five {border-top-width: 25px;}"
      RenderBlock {HR} at (0,133) size 784x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,151) size 784x20
        RenderText {#text} at (0,0) size 160x19
          text run at (0,0) width 160: "(These will only work if "
        RenderInline {CODE} at (0,0) size 95x14
          RenderText {#text} at (159,5) size 95x14
            text run at (159,5) width 95: "border-style"
        RenderText {#text} at (253,0) size 92x19
          text run at (253,0) width 92: " is supported.)"
      RenderBlock {P} at (0,187) size 784x20 [bgcolor=#C0C0C0]
        RenderText {#text} at (0,0) size 208x19
          text run at (0,0) width 208: "This element has a class of zero."
      RenderBlock {P} at (0,223) size 784x48 [border: (25px solid #000000) (3px solid #000000)]
        RenderText {#text} at (3,25) size 383x19
          text run at (3,25) width 383: "This paragraph should have a top border width of 25 pixels."
      RenderBlock {P} at (0,287) size 784x28 [border: (5px solid #000000) (3px solid #000000)]
        RenderText {#text} at (3,5) size 340x19
          text run at (3,5) width 340: "This paragraph should have a thick top border width."
      RenderBlock {P} at (0,331) size 784x26 [border: (3px solid #000000)]
        RenderText {#text} at (3,3) size 360x19
          text run at (3,3) width 360: "This paragraph should have a medium top border width."
      RenderBlock {P} at (0,373) size 784x24 [border: (1px solid #000000) (3px solid #000000)]
        RenderText {#text} at (3,1) size 332x19
          text run at (3,1) width 332: "This paragraph should have a thin top border width."
      RenderBlock {P} at (0,413) size 784x20
        RenderText {#text} at (0,0) size 534x19
          text run at (0,0) width 534: "This paragraph should have no border and no extra \"padding\" on its top side, as no "
        RenderInline {CODE} at (0,0) size 95x14
          RenderText {#text} at (533,5) size 95x14
            text run at (533,5) width 95: "border-style"
        RenderText {#text} at (627,0) size 55x19
          text run at (627,0) width 55: " was set."
      RenderTable {TABLE} at (0,449) size 704x320 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 702x318
          RenderTableRow {TR} at (0,0) size 702x28
            RenderTableCell {TD} at (0,0) size 702x28 [bgcolor=#C0C0C0] [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=2]
              RenderInline {STRONG} at (0,0) size 161x19
                RenderText {#text} at (4,4) size 161x19
                  text run at (4,4) width 161: "TABLE Testing Section"
          RenderTableRow {TR} at (0,28) size 702x290
            RenderTableCell {TD} at (0,159) 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 690x290 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 682x20
                RenderText {#text} at (0,0) size 160x19
                  text run at (0,0) width 160: "(These will only work if "
                RenderInline {CODE} at (0,0) size 95x14
                  RenderText {#text} at (159,5) size 95x14
                    text run at (159,5) width 95: "border-style"
                RenderText {#text} at (253,0) size 92x19
                  text run at (253,0) width 92: " is supported.)"
              RenderBlock {P} at (4,40) size 682x20 [bgcolor=#C0C0C0]
                RenderText {#text} at (0,0) size 208x19
                  text run at (0,0) width 208: "This element has a class of zero."
              RenderBlock {P} at (4,76) size 682x48 [border: (25px solid #000000) (3px solid #000000)]
                RenderText {#text} at (3,25) size 383x19
                  text run at (3,25) width 383: "This paragraph should have a top border width of 25 pixels."
              RenderBlock {P} at (4,140) size 682x28 [border: (5px solid #000000) (3px solid #000000)]
                RenderText {#text} at (3,5) size 340x19
                  text run at (3,5) width 340: "This paragraph should have a thick top border width."
              RenderBlock {P} at (4,184) size 682x26 [border: (3px solid #000000)]
                RenderText {#text} at (3,3) size 360x19
                  text run at (3,3) width 360: "This paragraph should have a medium top border width."
              RenderBlock {P} at (4,226) size 682x24 [border: (1px solid #000000) (3px solid #000000)]
                RenderText {#text} at (3,1) size 332x19
                  text run at (3,1) width 332: "This paragraph should have a thin top border width."
              RenderBlock {P} at (4,266) size 682x20
                RenderText {#text} at (0,0) size 534x19
                  text run at (0,0) width 534: "This paragraph should have no border and no extra \"padding\" on its top side, as no "
                RenderInline {CODE} at (0,0) size 95x14
                  RenderText {#text} at (533,5) size 95x14
                    text run at (533,5) width 95: "border-style"
                RenderText {#text} at (627,0) size 55x19
                  text run at (627,0) width 55: " was set."
