layer at (0,0) size 800x600
  RenderView at (0,0) size 800x600
layer at (0,0) size 800x321
  RenderBlock {HTML} at (0,0) size 800x321
    RenderBody {BODY} at (8,16) size 784x297
      RenderBlock {P} at (0,0) size 784x40
        RenderText {#text} at (0,0) size 642x19
          text run at (0,0) width 402: "The background color of this paragraph should turn to green when "
          text run at (402,0) width 240: "the mouse pointer hovers either its text ("
        RenderInline {STRONG} at (0,0) size 30x19
          RenderText {#text} at (642,0) size 30x19
            text run at (642,0) width 30: "here"
        RenderText {#text} at (672,0) size 782x39
          text run at (672,0) width 110: ") or its whitespace"
          text run at (0,20) width 80: "background, "
        RenderInline {STRONG} at (0,0) size 30x19
          RenderText {#text} at (80,20) size 30x19
            text run at (80,20) width 30: "here"
        RenderText {#text} at (110,20) size 3x19
          text run at (110,20) width 3: ":"
      RenderBlock {ADDRESS} at (0,56) size 784x20
        RenderText {#text} at (0,0) size 163x19
          text run at (0,0) width 163: "The background color of "
        RenderInline {A} at (0,0) size 115x19 [color=#0000EE]
          RenderText {#text} at (163,0) size 81x19
            text run at (163,0) width 81: "this anchor ("
          RenderInline {STRONG} at (0,0) size 29x19
            RenderText {#text} at (244,0) size 29x19
              text run at (244,0) width 29: "here"
          RenderText {#text} at (273,0) size 5x19
            text run at (273,0) width 5: ")"
        RenderText {#text} at (278,0) size 395x19
          text run at (278,0) width 395: " should turn to green when the pointing device hovers over it."
      RenderTable {TABLE} at (0,76) size 291x221
        RenderTableSection {TBODY} at (0,0) size 291x221
          RenderTableRow {TR} at (0,5) size 291x22
            RenderTableCell {TD} at (5,5) size 94x22 [r=0 c=0 rs=1 cs=1]
              RenderText {#text} at (1,1) size 67x19
                text run at (1,1) width 67: "The cells in"
            RenderTableCell {TD} at (104,5) size 85x22 [r=0 c=1 rs=1 cs=1]
              RenderText {#text} at (1,1) size 53x19
                text run at (1,1) width 53: "this table"
            RenderTableCell {TD} at (194,5) size 92x22 [r=0 c=2 rs=1 cs=1]
              RenderText {#text} at (1,1) size 58x19
                text run at (1,1) width 58: "should go"
          RenderTableRow {TR} at (0,32) size 291x22
            RenderTableCell {TD} at (5,32) size 94x22 [r=1 c=0 rs=1 cs=1]
              RenderText {#text} at (1,1) size 69x19
                text run at (1,1) width 69: "green when"
            RenderTableCell {TD} at (104,32) size 85x22 [r=1 c=1 rs=1 cs=1]
              RenderText {#text} at (1,1) size 60x19
                text run at (1,1) width 60: "you hover"
            RenderTableCell {TD} at (194,32) size 92x22 [r=1 c=2 rs=1 cs=1]
              RenderText {#text} at (1,1) size 69x19
                text run at (1,1) width 69: "the pointing"
          RenderTableRow {TR} at (0,59) size 291x22
            RenderTableCell {TD} at (5,59) size 94x22 [r=2 c=0 rs=1 cs=1]
              RenderText {#text} at (1,1) size 70x19
                text run at (1,1) width 70: "device over"
            RenderTableCell {TD} at (104,59) size 85x22 [r=2 c=1 rs=1 cs=1]
              RenderText {#text} at (1,1) size 38x19
                text run at (1,1) width 38: "them ("
              RenderInline {STRONG} at (0,0) size 30x19
                RenderText {#text} at (39,1) size 30x19
                  text run at (39,1) width 30: "here"
              RenderText {#text} at (69,1) size 9x19
                text run at (69,1) width 9: ")."
            RenderTableCell {TD} at (194,69) size 92x2 [r=2 c=2 rs=1 cs=1]
          RenderTableRow {TR} at (0,86) size 291x22
            RenderTableCell {TD} at (5,86) size 94x22 [r=3 c=0 rs=1 cs=1]
              RenderText {#text} at (1,1) size 71x19
                text run at (1,1) width 71: "The rows in"
            RenderTableCell {TD} at (104,86) size 85x22 [r=3 c=1 rs=1 cs=1]
              RenderText {#text} at (1,1) size 53x19
                text run at (1,1) width 53: "this table"
            RenderTableCell {TD} at (194,86) size 92x22 [r=3 c=2 rs=1 cs=1]
              RenderText {#text} at (1,1) size 58x19
                text run at (1,1) width 58: "should go"
          RenderTableRow {TR} at (0,113) size 291x22
            RenderTableCell {TD} at (5,113) size 94x22 [r=4 c=0 rs=1 cs=1]
              RenderText {#text} at (1,1) size 65x19
                text run at (1,1) width 65: "dark green"
            RenderTableCell {TD} at (104,113) size 85x22 [r=4 c=1 rs=1 cs=1]
              RenderText {#text} at (1,1) size 54x19
                text run at (1,1) width 54: "when the"
            RenderTableCell {TD} at (194,113) size 92x22 [r=4 c=2 rs=1 cs=1]
              RenderText {#text} at (1,1) size 90x19
                text run at (1,1) width 90: "pointing device"
          RenderTableRow {TR} at (0,140) size 291x22
            RenderTableCell {TD} at (5,140) size 94x22 [r=5 c=0 rs=1 cs=1]
              RenderText {#text} at (1,1) size 62x19
                text run at (1,1) width 62: "is over the"
            RenderTableCell {TD} at (104,140) size 85x22 [r=5 c=1 rs=1 cs=1]
              RenderText {#text} at (1,1) size 53x19
                text run at (1,1) width 53: "five pixel"
            RenderTableCell {TD} at (194,140) size 92x22 [r=5 c=2 rs=1 cs=1]
              RenderText {#text} at (1,1) size 90x19
                text run at (1,1) width 90: "border spacing"
          RenderTableRow {TR} at (0,167) size 291x22
            RenderTableCell {TD} at (5,167) size 94x22 [r=6 c=0 rs=1 cs=1]
              RenderText {#text} at (1,1) size 82x19
                text run at (1,1) width 82: "and when it is"
            RenderTableCell {TD} at (104,167) size 85x22 [r=6 c=1 rs=1 cs=1]
              RenderText {#text} at (1,1) size 83x19
                text run at (1,1) width 83: "over the cells."
            RenderTableCell {TD} at (194,177) size 92x2 [r=6 c=2 rs=1 cs=1]
          RenderTableRow {TR} at (0,194) size 291x22
            RenderTableCell {TD} at (5,194) size 94x22 [r=7 c=0 rs=1 cs=1]
              RenderText {#text} at (1,1) size 58x19
                text run at (1,1) width 58: "Including "
              RenderInline {STRONG} at (0,0) size 30x19
                RenderText {#text} at (59,1) size 30x19
                  text run at (59,1) width 30: "here"
              RenderText {#text} at (89,1) size 4x19
                text run at (89,1) width 4: ","
            RenderTableCell {TD} at (104,204) size 85x2 [r=7 c=1 rs=1 cs=1]
            RenderTableCell {TD} at (194,194) size 92x22 [r=7 c=2 rs=1 cs=1]
              RenderText {#text} at (1,1) size 67x19
                text run at (1,1) width 67: "blank cells."
