layer at (0,0) size 785x1036
  RenderView at (0,0) size 785x600
layer at (0,0) size 785x1036
  RenderBlock {HTML} at (0,0) size 785x1036
    RenderBody {BODY} at (8,8) size 769x1020
      RenderBlock (anonymous) at (0,0) size 769x20
        RenderText {#text} at (0,0) size 658x19
          text run at (0,0) width 658: "This example tests that word-break properly shrinks a cell to one character per line when it is set to break-all."
      RenderTable {TABLE} at (0,20) size 769x110 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 767x108
          RenderTableRow {TR} at (0,0) size 767x108
            RenderTableCell {TD} at (0,0) size 20x108 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
              RenderText {#text} at (6,6) size 8x96
                text run at (6,6) width 8: "N"
                text run at (6,22) width 8: "a"
                text run at (6,38) width 8: "r"
                text run at (6,54) width 8: "r"
                text run at (6,70) width 8: "o"
                text run at (6,86) width 8: "w"
            RenderTableCell {TD} at (20,40) size 747x28 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
              RenderText {#text} at (6,6) size 168x16
                text run at (6,6) width 168: "This cell should grow"
      RenderBlock (anonymous) at (0,130) size 769x40
        RenderBR {BR} at (0,0) size 0x19
        RenderText {#text} at (0,20) size 415x19
          text run at (0,20) width 415: "This test checks that word-break is ignored when white-space is pre."
      RenderBlock {PRE} at (0,183) size 110x26 [border: (5px solid #000000)]
        RenderText {#text} at (5,5) size 448x16
          text run at (5,5) width 448: "Thislongwordshouldnotgetbrokenbutshouldstickoutofthepre."
          text run at (453,5) width 0: " "
      RenderBlock (anonymous) at (0,222) size 769x60
        RenderBR {BR} at (0,0) size 0x19
        RenderText {#text} at (0,20) size 768x39
          text run at (0,20) width 453: "The next two examples test our custom break-word value for word-break. "
          text run at (453,20) width 304: "We should get the same results as break-all for the"
          text run at (0,40) width 768: "first test, but we should break up the word in the second test (since our behavior matches word-wrap: break-word in that case)."
      RenderTable {TABLE} at (0,282) size 769x110 [border: (1px outset #808080)]
        RenderTableSection {TBODY} at (1,1) size 767x108
          RenderTableRow {TR} at (0,0) size 767x108
            RenderTableCell {TD} at (0,0) size 20x108 [border: (1px inset #808080)] [r=0 c=0 rs=1 cs=1]
              RenderText {#text} at (6,6) size 8x96
                text run at (6,6) width 8: "N"
                text run at (6,22) width 8: "a"
                text run at (6,38) width 8: "r"
                text run at (6,54) width 8: "r"
                text run at (6,70) width 8: "o"
                text run at (6,86) width 8: "w"
            RenderTableCell {TD} at (20,40) size 747x28 [border: (1px inset #808080)] [r=0 c=1 rs=1 cs=1]
              RenderText {#text} at (6,6) size 168x16
                text run at (6,6) width 168: "This cell should grow"
      RenderBlock (anonymous) at (0,392) size 769x20
        RenderBR {BR} at (0,0) size 0x19
      RenderBlock {PRE} at (0,425) size 110x90 [border: (5px solid #000000)]
        RenderText {#text} at (5,5) size 96x80
          text run at (5,5) width 96: "Thislongword"
          text run at (5,21) width 96: "shouldnotget"
          text run at (5,37) width 96: "brokenbutsho"
          text run at (5,53) width 96: "uldstickouto"
          text run at (5,69) width 64: "fthepre."
          text run at (69,69) width 0: " "
      RenderBlock (anonymous) at (0,528) size 769x60
        RenderBR {BR} at (0,0) size 0x19
        RenderText {#text} at (0,20) size 756x39
          text run at (0,20) width 596: "This test makes sure floating and positioned elements do the right thing with word-break: break-all. "
          text run at (596,20) width 160: "The minimum width should"
          text run at (0,40) width 239: "be less than the containing block width. "
          text run at (239,40) width 459: "The breaking should be \"dumb\" and just occur when the end of the line is hit."
      RenderBlock {DIV} at (0,588) size 304x52 [border: (2px solid #000000)]
        RenderBlock (floating) {DIV} at (2,2) size 300x48
          RenderText {#text} at (0,0) size 296x48
            text run at (0,0) width 296: "Eventhoughthishasareallylongword itsh"
            text run at (0,16) width 296: "ouldnotstick out oftheenclosing300pxb"
            text run at (0,32) width 40: "lock."
        RenderBR {BR} at (302,2) size 0x16
      RenderBlock (anonymous) at (0,640) size 769x20
        RenderBR {BR} at (0,0) size 0x19
      RenderBlock (anonymous) at (0,764) size 769x80
        RenderBR {BR} at (0,0) size 0x19
        RenderText {#text} at (0,20) size 768x59
          text run at (0,20) width 615: "This test makes sure floating and positioned elements do the right thing with word-break: break-word. "
          text run at (615,20) width 117: "The minimum width"
          text run at (0,40) width 282: "should be less than the containing block width. "
          text run at (282,40) width 486: "The breaking should be \"smart\" and be like word-wrap: break-word, with words"
          text run at (0,60) width 428: "preferring to wrap first before allowing break opportunities within them."
      RenderBlock {DIV} at (0,844) size 304x52 [border: (2px solid #000000)]
        RenderBlock (floating) {DIV} at (2,2) size 300x48
          RenderText {#text} at (0,0) size 256x48
            text run at (0,0) width 256: "Eventhoughthishasareallylongword"
            text run at (0,16) width 160: "itshouldnotstick out"
            text run at (0,32) width 200: "oftheenclosing300pxblock."
        RenderBR {BR} at (302,2) size 0x16
      RenderBlock (anonymous) at (0,896) size 769x20
        RenderBR {BR} at (0,0) size 0x19
layer at (8,668) size 304x104
  RenderBlock (relative positioned) {DIV} at (0,660) size 304x104 [border: (2px solid #000000)]
layer at (10,670) size 300x48
  RenderBlock (positioned) {DIV} at (2,2) size 300x48
    RenderText {#text} at (0,0) size 296x48
      text run at (0,0) width 296: "Eventhoughthishasareallylongword itsh"
      text run at (0,16) width 296: "ouldnotstick out oftheenclosing300pxb"
      text run at (0,32) width 40: "lock."
layer at (8,924) size 304x104
  RenderBlock (relative positioned) {DIV} at (0,916) size 304x104 [border: (2px solid #000000)]
layer at (10,926) size 300x48
  RenderBlock (positioned) {DIV} at (2,2) size 300x48
    RenderText {#text} at (0,0) size 256x48
      text run at (0,0) width 256: "Eventhoughthishasareallylongword"
      text run at (0,16) width 160: "itshouldnotstick out"
      text run at (0,32) width 200: "oftheenclosing300pxblock."
