layer at (0,0) size 785x777
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x777
  RenderBlock {HTML} at (0,0) size 785x777
    RenderBody {BODY} at (8,8) size 769x761 [bgcolor=#008000]
      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 769x64
        RenderText {#text} at (0,0) size 648x64
          text run at (0,0) width 648: "BODY {background: green url(../resources/oransqr.gif) repeat-x center top fixed;}"
          text run at (648,0) width 0: " "
          text run at (0,16) width 568: ".one {background: lime url(../resources/oransqr.gif) repeat-y 100% 0%;}"
          text run at (568,16) width 0: " "
          text run at (0,32) width 592: ".two {background: lime url(../resources/oransqr.gif) repeat-y center top;}"
          text run at (592,32) width 0: " "
          text run at (0,48) width 592: ".three {background: lime url(../resources/oransqr.gif) repeat-x left top;}"
          text run at (592,48) width 0: " "
      RenderBlock {HR} at (0,113) size 769x2 [border: (1px inset #000000)]
      RenderBlock {P} at (0,131) size 769x60
        RenderText {#text} at (0,0) size 695x19
          text run at (0,0) width 695: "This document should have a green background with an orange strip running across the entire top of the page, since "
        RenderInline {CODE} at (0,0) size 64x16
          RenderText {#text} at (695,3) size 64x16
            text run at (695,3) width 64: "repeat-x"
        RenderText {#text} at (0,20) size 746x39
          text run at (0,20) width 276: "indicates tiling in both directions of the x-axis. "
          text run at (276,20) width 284: "Furthermore, the strip should be fixed in place. "
          text run at (560,20) width 186: "I'll have to add extra text at the"
          text run at (0,40) width 369: "end of this page to make it long enough to scroll conveniently."
      RenderBlock {P} at (0,207) size 769x60 [bgcolor=#00FF00]
        RenderText {#text} at (0,0) size 756x59
          text run at (0,0) width 709: "This paragraph should have a lime background and an orange strip which starts at the top right and runs to the bottom."
          text run at (0,20) width 756: "Therefore, extra text would be in order, so that we can intelligently evaluate the performance of your browser in handling these"
          text run at (0,40) width 80: "declarations. "
          text run at (80,40) width 296: "Hey, I didn't say the page would be pretty, did I?"
      RenderBlock {P} at (0,283) size 769x60 [bgcolor=#00FF00]
        RenderText {#text} at (0,0) size 756x59
          text run at (0,0) width 720: "This paragraph should have a lime background and an orange strip which starts at the center top and runs to the bottom."
          text run at (0,20) width 756: "Therefore, extra text would be in order, so that we can intelligently evaluate the performance of your browser in handling these"
          text run at (0,40) width 80: "declarations. "
          text run at (80,40) width 296: "Hey, I didn't say the page would be pretty, did I?"
      RenderBlock {P} at (0,359) size 769x60 [bgcolor=#00FF00]
        RenderText {#text} at (0,0) size 756x59
          text run at (0,0) width 708: "This paragraph should have a lime background and an orange strip which starts at the top left and runs to the top right."
          text run at (0,20) width 756: "Therefore, extra text would be in order, so that we can intelligently evaluate the performance of your browser in handling these"
          text run at (0,40) width 80: "declarations. "
          text run at (80,40) width 296: "Hey, I didn't say the page would be pretty, did I?"
      RenderTable {TABLE} at (0,435) size 769x326 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 767x324
          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 767x296
            RenderTableCell {TD} at (0,162) 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 755x296 [border: (1px inset #808080)] [r=1 c=1 rs=1 cs=1]
              RenderBlock {P} at (4,4) size 747x60
                RenderText {#text} at (0,0) size 691x19
                  text run at (0,0) width 691: "This document should have a green background with an orange strip running across the entire top of the page, since"
                RenderInline {CODE} at (0,0) size 64x16
                  RenderText {#text} at (0,23) size 64x16
                    text run at (0,23) width 64: "repeat-x"
                RenderText {#text} at (64,20) size 717x39
                  text run at (64,20) width 280: " indicates tiling in both directions of the x-axis. "
                  text run at (344,20) width 284: "Furthermore, the strip should be fixed in place. "
                  text run at (628,20) width 89: "I'll have to add"
                  text run at (0,40) width 466: "extra text at the end of this page to make it long enough to scroll conveniently."
              RenderBlock {P} at (4,80) size 747x60 [bgcolor=#00FF00]
                RenderText {#text} at (0,0) size 721x59
                  text run at (0,0) width 709: "This paragraph should have a lime background and an orange strip which starts at the top right and runs to the bottom."
                  text run at (0,20) width 721: "Therefore, extra text would be in order, so that we can intelligently evaluate the performance of your browser in handling"
                  text run at (0,40) width 115: "these declarations. "
                  text run at (115,40) width 296: "Hey, I didn't say the page would be pretty, did I?"
              RenderBlock {P} at (4,156) size 747x60 [bgcolor=#00FF00]
                RenderText {#text} at (0,0) size 721x59
                  text run at (0,0) width 720: "This paragraph should have a lime background and an orange strip which starts at the center top and runs to the bottom."
                  text run at (0,20) width 721: "Therefore, extra text would be in order, so that we can intelligently evaluate the performance of your browser in handling"
                  text run at (0,40) width 115: "these declarations. "
                  text run at (115,40) width 296: "Hey, I didn't say the page would be pretty, did I?"
              RenderBlock {P} at (4,232) size 747x60 [bgcolor=#00FF00]
                RenderText {#text} at (0,0) size 721x59
                  text run at (0,0) width 708: "This paragraph should have a lime background and an orange strip which starts at the top left and runs to the top right."
                  text run at (0,20) width 721: "Therefore, extra text would be in order, so that we can intelligently evaluate the performance of your browser in handling"
                  text run at (0,40) width 115: "these declarations. "
                  text run at (115,40) width 296: "Hey, I didn't say the page would be pretty, did I?"
