<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>8910</bug_id>
          
          <creation_ts>2006-05-14 19:42:05 -0700</creation_ts>
          <short_desc>Various code cleanups in RenderBox</short_desc>
          <delta_ts>2006-05-31 22:30:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>42326</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-05-14 19:42:05 -0700</bug_when>
    <thetext>mostly deals with calcWidth()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42327</commentid>
    <comment_count>1</comment_count>
      <attachid>8312</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-05-14 19:45:48 -0700</bug_when>
    <thetext>Created attachment 8312
patch

cleanup and slight optimizations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42330</commentid>
    <comment_count>2</comment_count>
      <attachid>8312</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-14 20:23:41 -0700</bug_when>
    <thetext>Comment on attachment 8312
patch

I&apos;m not fond of adding parentheses around the equality comparisons in if statements. I don&apos;t like formatting where a continued if condition has the same indenting level as the code that will execute if the if is true. I typically indent the if condition an extra level to avoid this.

In headers, I like leaving out the parameter name if it&apos;s completely redundant with the type, so all those &quot;WidthType widthType&quot; should just be &quot;WidthType&quot;.

+            int maxW =  calcWidthUsing(MaxWidth, containerWidth);

Two spaces here after the = sign, should just be one.

I don&apos;t understand why we&apos;d set m_marginLeft and m_marginRight to 0 just before setting them inside the width.isAuto() case. Can those lines go inside the else?

The changes look good otherwise. I like the continued cleanup of calcWidthUsing. I&apos;m tempted to say review+, but since this is all about style I think I&apos;ll say review- for the m_marginLeft/Right thing if for nowthing else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42368</commentid>
    <comment_count>3</comment_count>
      <attachid>8317</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-05-15 05:46:20 -0700</bug_when>
    <thetext>Created attachment 8317
patch 2

updated to address darin&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42387</commentid>
    <comment_count>4</comment_count>
      <attachid>8317</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-15 11:28:58 -0700</bug_when>
    <thetext>Comment on attachment 8317
patch 2

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8312</attachid>
            <date>2006-05-14 19:45:48 -0700</date>
            <delta_ts>2006-05-15 05:46:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>boxwidthclean.diff</filename>
            <type>text/plain</type>
            <size>9471</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiAxNDM2NSkKKysrIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNyArMTE4LDcgQEAgcHVi
bGljOgogICAgIC8vIG9mIGEgY29udGFpbmluZyBibG9jaykuICBIVE1MNCBidXR0b25zLCA8c2Vs
ZWN0PnMsIDxpbnB1dD5zLCBsZWdlbmRzLCBhbmQgZmxvYXRpbmcvY29tcGFjdCBlbGVtZW50cyBk
byB0aGlzLgogICAgIGJvb2wgc2l6ZXNUb0ludHJpbnNpY1dpZHRoKFdpZHRoVHlwZSB3aWR0aFR5
cGUpIGNvbnN0OwogCi0gICAgaW50IGNhbGNXaWR0aFVzaW5nKFdpZHRoVHlwZSB3aWR0aFR5cGUs
IGludCBjdywgTGVuZ3RoVHlwZSYgbGVuZ3RoVHlwZSk7CisgICAgaW50IGNhbGNXaWR0aFVzaW5n
KFdpZHRoVHlwZSB3aWR0aFR5cGUsIGludCBjdyk7CiAgICAgaW50IGNhbGNIZWlnaHRVc2luZyhj
b25zdCBMZW5ndGgmIGhlaWdodCk7CiAgICAgaW50IGNhbGNSZXBsYWNlZFdpZHRoVXNpbmcoV2lk
dGhUeXBlIHdpZHRoVHlwZSkgY29uc3Q7CiAgICAgaW50IGNhbGNSZXBsYWNlZEhlaWdodFVzaW5n
KEhlaWdodFR5cGUgaGVpZ2h0VHlwZSkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAJKHJldmlzaW9uIDE0MzY1KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTUxLDggKzE1MSw3IEBAIHZvaWQgUmVuZGVyQm94OjpkZXN0cm95
KCkKIAogaW50IFJlbmRlckJveDo6Y29udGVudFdpZHRoKCkgY29uc3QKIHsKLSAgICBpbnQgdyA9
IG1fd2lkdGggLSBib3JkZXJMZWZ0KCkgLSBib3JkZXJSaWdodCgpOwotICAgIHcgLT0gcGFkZGlu
Z0xlZnQoKSArIHBhZGRpbmdSaWdodCgpOworICAgIGludCB3ID0gbV93aWR0aCAtIChib3JkZXJM
ZWZ0KCkgKyBib3JkZXJSaWdodCgpICsgcGFkZGluZ0xlZnQoKSArIHBhZGRpbmdSaWdodCgpKTsK
IAogICAgIGlmIChpbmNsdWRlU2Nyb2xsYmFyU2l6ZSgpKQogICAgICAgICB3IC09IG1fbGF5ZXIt
PnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKQEAgLTE2Miw4ICsxNjEsNyBAQCBpbnQgUmVuZGVy
Qm94Ojpjb250ZW50V2lkdGgoKSBjb25zdAogCiBpbnQgUmVuZGVyQm94Ojpjb250ZW50SGVpZ2h0
KCkgY29uc3QKIHsKLSAgICBpbnQgaCA9IG1faGVpZ2h0IC0gYm9yZGVyVG9wKCkgLSBib3JkZXJC
b3R0b20oKTsKLSAgICBoIC09IHBhZGRpbmdUb3AoKSArIHBhZGRpbmdCb3R0b20oKTsKKyAgICBp
bnQgaCA9IG1faGVpZ2h0IC0gKGJvcmRlclRvcCgpICsgYm9yZGVyQm90dG9tKCkgKyBwYWRkaW5n
VG9wKCkgKyBwYWRkaW5nQm90dG9tKCkpOwogCiAgICAgaWYgKGluY2x1ZGVTY3JvbGxiYXJTaXpl
KCkpCiAgICAgICAgIGggLT0gbV9sYXllci0+aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgpOwpA
QCAtMTgxLDEyICsxNzksMTMgQEAgaW50IFJlbmRlckJveDo6b3ZlcnJpZGVIZWlnaHQoKSBjb25z
dAogICAgIHJldHVybiBtX292ZXJyaWRlU2l6ZSA9PSAtMSA/IG1faGVpZ2h0IDogbV9vdmVycmlk
ZVNpemU7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRQb3MoIGludCB4UG9zLCBpbnQgeVBvcyAp
Cit2b2lkIFJlbmRlckJveDo6c2V0UG9zKGludCB4UG9zLCBpbnQgeVBvcykKIHsKICAgICBpZiAo
eFBvcyA9PSBtX3ggJiYgeVBvcyA9PSBtX3kpCiAgICAgICAgIHJldHVybjsgLy8gT3B0aW1pemUg
Zm9yIHRoZSBjYXNlIHdoZXJlIHdlIGRvbid0IG1vdmUgYXQgYWxsLgogICAgIAotICAgIG1feCA9
IHhQb3M7IG1feSA9IHlQb3M7CisgICAgbV94ID0geFBvczsKKyAgICBtX3kgPSB5UG9zOwogfQog
CiBpbnQgUmVuZGVyQm94Ojp3aWR0aCgpIGNvbnN0CkBAIC05MzYsOTIgKzkzNSw4NCBAQCB2b2lk
IFJlbmRlckJveDo6cmVsYXRpdmVQb3NpdGlvbk9mZnNldChpCiAKIHZvaWQgUmVuZGVyQm94Ojpj
YWxjV2lkdGgoKQogewotICAgIGlmIChpc1Bvc2l0aW9uZWQoKSkKKyAgICBpZiAoaXNQb3NpdGlv
bmVkKCkpIHsKICAgICAgICAgY2FsY0Fic29sdXRlSG9yaXpvbnRhbCgpOwotICAgIGVsc2UKLSAg
ICB7Ci0gICAgICAgIC8vIFRoZSBwYXJlbnQgYm94IGlzIGZsZXhpbmcgdXMsIHNvIGl0IGhhcyBp
bmNyZWFzZWQgb3IgZGVjcmVhc2VkIG91ciB3aWR0aC4gIFVzZSB0aGUgd2lkdGgKLSAgICAgICAg
Ly8gZnJvbSB0aGUgc3R5bGUgY29udGV4dC4KLSAgICAgICAgaWYgKG1fb3ZlcnJpZGVTaXplICE9
IC0xICYmIHBhcmVudCgpLT5pc0ZsZXhpYmxlQm94KCkgJiYgcGFyZW50KCktPnN0eWxlKCktPmJv
eE9yaWVudCgpID09IEhPUklaT05UQUwKLSAgICAgICAgICAgICYmIHBhcmVudCgpLT5pc0ZsZXhp
bmdDaGlsZHJlbigpKSB7Ci0gICAgICAgICAgICBtX3dpZHRoID0gbV9vdmVycmlkZVNpemU7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIGluVmVydGljYWxC
b3ggPSBwYXJlbnQoKS0+aXNGbGV4aWJsZUJveCgpICYmIHBhcmVudCgpLT5zdHlsZSgpLT5ib3hP
cmllbnQoKSA9PSBWRVJUSUNBTDsKLSAgICAgICAgYm9vbCBzdHJldGNoaW5nID0gcGFyZW50KCkt
PnN0eWxlKCktPmJveEFsaWduKCkgPT0gQlNUUkVUQ0g7Ci0gICAgICAgIGJvb2wgdHJlYXRBc1Jl
cGxhY2VkID0gaXNSZXBsYWNlZCgpICYmICFpc0lubGluZUJsb2NrT3JJbmxpbmVUYWJsZSgpICYm
Ci0gICAgICAgICAgICAoIWluVmVydGljYWxCb3ggfHwgIXN0cmV0Y2hpbmcpOwotICAgICAgICBM
ZW5ndGggdzsKLSAgICAgICAgaWYgKHRyZWF0QXNSZXBsYWNlZCkKLSAgICAgICAgICAgIHcgPSBM
ZW5ndGgoIGNhbGNSZXBsYWNlZFdpZHRoKCksIEZpeGVkICk7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHcgPSBzdHlsZSgpLT53aWR0aCgpOwotCi0gICAgICAgIExlbmd0aCBtbCA9IHN0eWxl
KCktPm1hcmdpbkxlZnQoKTsKLSAgICAgICAgTGVuZ3RoIG1yID0gc3R5bGUoKS0+bWFyZ2luUmln
aHQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICAvLyBUaGUgcGFyZW50IGJv
eCBpcyBmbGV4aW5nIHVzLCBzbyBpdCBoYXMgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBvdXIKKyAg
ICAvLyB3aWR0aC4gIFVzZSB0aGUgd2lkdGggZnJvbSB0aGUgc3R5bGUgY29udGV4dC4KKyAgICBp
ZiAoKG1fb3ZlcnJpZGVTaXplICE9IC0xKSAmJiAocGFyZW50KCktPnN0eWxlKCktPmJveE9yaWVu
dCgpID09IEhPUklaT05UQUwpCisgICAgICAgICYmIHBhcmVudCgpLT5pc0ZsZXhpYmxlQm94KCkg
JiYgcGFyZW50KCktPmlzRmxleGluZ0NoaWxkcmVuKCkpIHsKKyAgICAgICAgbV93aWR0aCA9IG1f
b3ZlcnJpZGVTaXplOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgICAgIFJlbmRlckJs
b2NrICpjYiA9IGNvbnRhaW5pbmdCbG9jaygpOwotICAgICAgICBpbnQgY3cgPSBjb250YWluaW5n
QmxvY2tXaWR0aCgpOworICAgIGJvb2wgaW5WZXJ0aWNhbEJveCA9IHBhcmVudCgpLT5pc0ZsZXhp
YmxlQm94KCkgJiYgKHBhcmVudCgpLT5zdHlsZSgpLT5ib3hPcmllbnQoKSA9PSBWRVJUSUNBTCk7
CisgICAgYm9vbCBzdHJldGNoaW5nID0gKHBhcmVudCgpLT5zdHlsZSgpLT5ib3hBbGlnbigpID09
IEJTVFJFVENIKTsKKyAgICBib29sIHRyZWF0QXNSZXBsYWNlZCA9IGlzUmVwbGFjZWQoKSAmJiAh
aXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUoKSAmJiAoIWluVmVydGljYWxCb3ggfHwgIXN0cmV0
Y2hpbmcpOworICAgIAorICAgIExlbmd0aCB3aWR0aCA9ICh0cmVhdEFzUmVwbGFjZWQpID8gTGVu
Z3RoKGNhbGNSZXBsYWNlZFdpZHRoKCksIEZpeGVkKSA6IHN0eWxlKCktPndpZHRoKCk7CisgICAg
CisgICAgUmVuZGVyQmxvY2sqIGNiID0gY29udGFpbmluZ0Jsb2NrKCk7CisgICAgaW50IGNvbnRh
aW5lcldpZHRoID0gbWF4KDAsIGNvbnRhaW5pbmdCbG9ja1dpZHRoKCkpOwogCi0gICAgICAgIGlm
IChjdzwwKSBjdyA9IDA7CisgICAgTGVuZ3RoIG1hcmdpbkxlZnQgPSBzdHlsZSgpLT5tYXJnaW5M
ZWZ0KCk7CisgICAgTGVuZ3RoIG1hcmdpblJpZ2h0ID0gc3R5bGUoKS0+bWFyZ2luUmlnaHQoKTsK
IAotICAgICAgICBtX21hcmdpbkxlZnQgPSAwOwotICAgICAgICBtX21hcmdpblJpZ2h0ID0gMDsK
KyAgICBpZiAoaXNJbmxpbmUoKSAmJiAhaXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUoKSkgewor
ICAgICAgICAvLyBqdXN0IGNhbGN1bGF0ZSBtYXJnaW5zCisgICAgICAgIG1fbWFyZ2luTGVmdCA9
IG1hcmdpbkxlZnQuY2FsY01pblZhbHVlKGNvbnRhaW5lcldpZHRoKTsKKyAgICAgICAgbV9tYXJn
aW5SaWdodCA9IG1hcmdpblJpZ2h0LmNhbGNNaW5WYWx1ZShjb250YWluZXJXaWR0aCk7CisgICAg
ICAgIGlmICh0cmVhdEFzUmVwbGFjZWQpCisgICAgICAgICAgICBtX3dpZHRoID0gbWF4KHdpZHRo
LnZhbHVlKCkgKyBib3JkZXJMZWZ0KCkgKyBib3JkZXJSaWdodCgpICsgcGFkZGluZ0xlZnQoKSAr
IHBhZGRpbmdSaWdodCgpLCBtX21pbldpZHRoKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybjsK
KyAgICB9CiAKLSAgICAgICAgaWYgKGlzSW5saW5lKCkgJiYgIWlzSW5saW5lQmxvY2tPcklubGlu
ZVRhYmxlKCkpIHsKLSAgICAgICAgICAgIC8vIGp1c3QgY2FsY3VsYXRlIG1hcmdpbnMKLSAgICAg
ICAgICAgIG1fbWFyZ2luTGVmdCA9IG1sLmNhbGNNaW5WYWx1ZShjdyk7Ci0gICAgICAgICAgICBt
X21hcmdpblJpZ2h0ID0gbXIuY2FsY01pblZhbHVlKGN3KTsKLSAgICAgICAgICAgIGlmICh0cmVh
dEFzUmVwbGFjZWQpIHsKLSAgICAgICAgICAgICAgICBtX3dpZHRoID0gdy5jYWxjVmFsdWUoY3cp
ICsgYm9yZGVyTGVmdCgpICsgYm9yZGVyUmlnaHQoKSArIHBhZGRpbmdMZWZ0KCkgKyBwYWRkaW5n
UmlnaHQoKTsKLSAgICAgICAgICAgICAgICBtX3dpZHRoID0gbWF4KG1fd2lkdGgsIG1fbWluV2lk
dGgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgTGVuZ3RoVHlwZSB3aWR0aFR5cGUsIG1pbldpZHRoVHlw
ZSwgbWF4V2lkdGhUeXBlOwotICAgICAgICAgICAgaWYgKHRyZWF0QXNSZXBsYWNlZCkgewotICAg
ICAgICAgICAgICAgIG1fd2lkdGggPSB3LmNhbGNWYWx1ZShjdykgKyBib3JkZXJMZWZ0KCkgKyBi
b3JkZXJSaWdodCgpICsgcGFkZGluZ0xlZnQoKSArIHBhZGRpbmdSaWdodCgpOwotICAgICAgICAg
ICAgICAgIHdpZHRoVHlwZSA9IHcudHlwZSgpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBtX3dpZHRoID0gY2FsY1dpZHRoVXNpbmcoV2lkdGgsIGN3LCB3aWR0aFR5cGUp
OwotICAgICAgICAgICAgICAgIGludCBtaW5XID0gY2FsY1dpZHRoVXNpbmcoTWluV2lkdGgsIGN3
LCBtaW5XaWR0aFR5cGUpOwotICAgICAgICAgICAgICAgIGludCBtYXhXID0gc3R5bGUoKS0+bWF4
V2lkdGgoKS52YWx1ZSgpID09IHVuZGVmaW5lZExlbmd0aAotICAgICAgICAgICAgICAgICAgICA/
IG1fd2lkdGggOiBjYWxjV2lkdGhVc2luZyhNYXhXaWR0aCwgY3csIG1heFdpZHRoVHlwZSk7Ci0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKG1fd2lkdGggPiBtYXhXKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIG1fd2lkdGggPSBtYXhXOwotICAgICAgICAgICAgICAgICAgICB3
aWR0aFR5cGUgPSBtYXhXaWR0aFR5cGU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIGlmIChtX3dpZHRoIDwgbWluVykgewotICAgICAgICAgICAgICAgICAgICBtX3dpZHRoID0g
bWluVzsKLSAgICAgICAgICAgICAgICAgICAgd2lkdGhUeXBlID0gbWluV2lkdGhUeXBlOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAg
aWYgKHdpZHRoVHlwZSA9PSBBdXRvKSB7Ci0gICAgICAgICAgICAgICAgbV9tYXJnaW5MZWZ0ID0g
bWwuY2FsY01pblZhbHVlKGN3KTsKLSAgICAgICAgICAgICAgICBtX21hcmdpblJpZ2h0ID0gbXIu
Y2FsY01pblZhbHVlKGN3KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBjYWxjSG9yaXpvbnRhbE1hcmdpbnMobWwsbXIsY3cp
OworICAgIC8vIFdpZHRoIGNhbGN1bGF0aW9ucworICAgIGlmICh0cmVhdEFzUmVwbGFjZWQpCisg
ICAgICAgIG1fd2lkdGggPSB3aWR0aC52YWx1ZSgpICsgYm9yZGVyTGVmdCgpICsgYm9yZGVyUmln
aHQoKSArIHBhZGRpbmdMZWZ0KCkgKyBwYWRkaW5nUmlnaHQoKTsKKyAgICBlbHNlIHsKKyAgICAg
ICAgLy8gQ2FsY3VsYXRlIFdpZHRoCisgICAgICAgIG1fd2lkdGggPSBjYWxjV2lkdGhVc2luZyhX
aWR0aCwgY29udGFpbmVyV2lkdGgpOworICAgICAgICAKKyAgICAgICAgLy8gQ2FsY3VsYXRlIE1h
eFdpZHRoCisgICAgICAgIGlmIChzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkgIT0gdW5kZWZp
bmVkTGVuZ3RoKSB7CisgICAgICAgICAgICBpbnQgbWF4VyA9ICBjYWxjV2lkdGhVc2luZyhNYXhX
aWR0aCwgY29udGFpbmVyV2lkdGgpOworICAgICAgICAgICAgaWYgKG1fd2lkdGggPiBtYXhXKSB7
CisgICAgICAgICAgICAgICAgbV93aWR0aCA9IG1heFc7CisgICAgICAgICAgICAgICAgd2lkdGgg
PSBzdHlsZSgpLT5tYXhXaWR0aCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKGN3ICYmIGN3ICE9IG1fd2lkdGggKyBtX21hcmdpbkxlZnQgKyBtX21hcmdpblJpZ2h0
ICYmICFpc0Zsb2F0aW5nKCkgJiYgIWlzSW5saW5lKCkgJiYKLSAgICAgICAgICAgICFjYi0+aXNG
bGV4aWJsZUJveCgpKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoY2ItPnN0eWxlKCktPmRp
cmVjdGlvbigpPT1MVFIpCi0gICAgICAgICAgICAgICAgbV9tYXJnaW5SaWdodCA9IGN3IC0gbV93
aWR0aCAtIG1fbWFyZ2luTGVmdDsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBt
X21hcmdpbkxlZnQgPSBjdyAtIG1fd2lkdGggLSBtX21hcmdpblJpZ2h0OworICAgICAgICAvLyBD
YWxjdWxhdGUgTWluV2lkdGgKKyAgICAgICAgaW50IG1pblcgPSBjYWxjV2lkdGhVc2luZyhNaW5X
aWR0aCwgY29udGFpbmVyV2lkdGgpOyAgICAgICAgCisgICAgICAgIGlmIChtX3dpZHRoIDwgbWlu
VykgeworICAgICAgICAgICAgbV93aWR0aCA9IG1pblc7CisgICAgICAgICAgICB3aWR0aCA9IHN0
eWxlKCktPm1pbldpZHRoKCk7CiAgICAgICAgIH0KICAgICB9CisgICAgCisgICAgLy8gTWFyZ2lu
IGNhbGN1bGF0aW9ucworICAgIG1fbWFyZ2luTGVmdCA9IDA7CisgICAgbV9tYXJnaW5SaWdodCA9
IDA7CisgICAgaWYgKHdpZHRoLmlzQXV0bygpKSB7CisgICAgICAgIG1fbWFyZ2luTGVmdCA9IG1h
cmdpbkxlZnQuY2FsY01pblZhbHVlKGNvbnRhaW5lcldpZHRoKTsKKyAgICAgICAgbV9tYXJnaW5S
aWdodCA9IG1hcmdpblJpZ2h0LmNhbGNNaW5WYWx1ZShjb250YWluZXJXaWR0aCk7CisgICAgfSBl
bHNlCisgICAgICAgIGNhbGNIb3Jpem9udGFsTWFyZ2lucyhtYXJnaW5MZWZ0LCBtYXJnaW5SaWdo
dCwgY29udGFpbmVyV2lkdGgpOworCisgICAgaWYgKGNvbnRhaW5lcldpZHRoICYmIGNvbnRhaW5l
cldpZHRoICE9IChtX3dpZHRoICsgbV9tYXJnaW5MZWZ0ICsgbV9tYXJnaW5SaWdodCkgJiYKKyAg
ICAgICAgIWlzRmxvYXRpbmcoKSAmJiAhaXNJbmxpbmUoKSAmJiAhY2ItPmlzRmxleGlibGVCb3go
KSkgeworICAgICAgICBpZiAoY2ItPnN0eWxlKCktPmRpcmVjdGlvbigpID09IExUUikKKyAgICAg
ICAgICAgIG1fbWFyZ2luUmlnaHQgPSBjb250YWluZXJXaWR0aCAtIG1fd2lkdGggLSBtX21hcmdp
bkxlZnQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fbWFyZ2luTGVmdCA9IGNvbnRhaW5l
cldpZHRoIC0gbV93aWR0aCAtIG1fbWFyZ2luUmlnaHQ7CisgICAgfQogfQogCi1pbnQgUmVuZGVy
Qm94OjpjYWxjV2lkdGhVc2luZyhXaWR0aFR5cGUgd2lkdGhUeXBlLCBpbnQgY3csIExlbmd0aFR5
cGUmIGxlbmd0aFR5cGUpCitpbnQgUmVuZGVyQm94OjpjYWxjV2lkdGhVc2luZyhXaWR0aFR5cGUg
d2lkdGhUeXBlLCBpbnQgY3cpCiB7CiAgICAgaW50IHdpZHRoID0gbV93aWR0aDsKICAgICBMZW5n
dGggdzsKQEAgLTEwMzIsOCArMTAyMyw2IEBAIGludCBSZW5kZXJCb3g6OmNhbGNXaWR0aFVzaW5n
KFdpZHRoVHlwZSAKICAgICBlbHNlCiAgICAgICAgIHcgPSBzdHlsZSgpLT5tYXhXaWR0aCgpOwog
Ci0gICAgbGVuZ3RoVHlwZSA9IHcudHlwZSgpOwotCiAgICAgaWYgKHcuaXNJbnRyaW5zaWNPckF1
dG8oKSkgewogICAgICAgICBpbnQgbWFyZ2luTGVmdCA9IHN0eWxlKCktPm1hcmdpbkxlZnQoKS5j
YWxjTWluVmFsdWUoY3cpOwogICAgICAgICBpbnQgbWFyZ2luUmlnaHQgPSBzdHlsZSgpLT5tYXJn
aW5SaWdodCgpLmNhbGNNaW5WYWx1ZShjdyk7CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzNjkpCisrKyBXZWJDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDA2LTA1LTE0ICBT
YW0gV2VpbmlnICA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgcGF0Y2ggZm9yIDxodHRwOi8vYnVnemlsbGEub3Bl
bmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTg5MTA+CisgICAgICAgIEJ1ZyA4OTEwOiBWYXJp
b3VzIGNvZGUgY2xlYW51cHMgaW4gUmVuZGVyQm94CisgICAgICAgIAorICAgICAgICBDbGVhbiB1
cCB3aXRoIHNvbWUgc2xpZ2h0IG9wdGltaXphdGlvbnMuCisKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGVudFdpZHRo
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGVudEhlaWdodCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldFBvcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3g6OmNhbGNXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNhbGNXaWR0aFVz
aW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisKIDIwMDYtMDUtMTQgIFN0
ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggV2luZG93
cyBidWlsZC4K
</data>
<flag name="review"
          id="2338"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8317</attachid>
            <date>2006-05-15 05:46:20 -0700</date>
            <delta_ts>2006-05-15 11:28:58 -0700</delta_ts>
            <desc>patch 2</desc>
            <filename>boxwidthclean2.diff</filename>
            <type>text/plain</type>
            <size>9636</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiAxNDM3NikKKysrIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsOSArMTE2LDkgQEAgcHVi
bGljOgogCiAgICAgLy8gV2hldGhlciBvciBub3QgdGhlIGVsZW1lbnQgc2hyaW5rcyB0byBpdHMg
aW50cmluc2ljIHdpZHRoIChyYXRoZXIgdGhhbiBmaWxsaW5nIHRoZSB3aWR0aAogICAgIC8vIG9m
IGEgY29udGFpbmluZyBibG9jaykuICBIVE1MNCBidXR0b25zLCA8c2VsZWN0PnMsIDxpbnB1dD5z
LCBsZWdlbmRzLCBhbmQgZmxvYXRpbmcvY29tcGFjdCBlbGVtZW50cyBkbyB0aGlzLgotICAgIGJv
b2wgc2l6ZXNUb0ludHJpbnNpY1dpZHRoKFdpZHRoVHlwZSB3aWR0aFR5cGUpIGNvbnN0OworICAg
IGJvb2wgc2l6ZXNUb0ludHJpbnNpY1dpZHRoKFdpZHRoVHlwZSkgY29uc3Q7CiAKLSAgICBpbnQg
Y2FsY1dpZHRoVXNpbmcoV2lkdGhUeXBlIHdpZHRoVHlwZSwgaW50IGN3LCBMZW5ndGhUeXBlJiBs
ZW5ndGhUeXBlKTsKKyAgICBpbnQgY2FsY1dpZHRoVXNpbmcoV2lkdGhUeXBlLCBpbnQgY3cpOwog
ICAgIGludCBjYWxjSGVpZ2h0VXNpbmcoY29uc3QgTGVuZ3RoJiBoZWlnaHQpOwogICAgIGludCBj
YWxjUmVwbGFjZWRXaWR0aFVzaW5nKFdpZHRoVHlwZSB3aWR0aFR5cGUpIGNvbnN0OwogICAgIGlu
dCBjYWxjUmVwbGFjZWRIZWlnaHRVc2luZyhIZWlnaHRUeXBlIGhlaWdodFR5cGUpIGNvbnN0OwpJ
bmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiAxNDM3NikKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw4ICsxNTEsNyBA
QCB2b2lkIFJlbmRlckJveDo6ZGVzdHJveSgpCiAKIGludCBSZW5kZXJCb3g6OmNvbnRlbnRXaWR0
aCgpIGNvbnN0CiB7Ci0gICAgaW50IHcgPSBtX3dpZHRoIC0gYm9yZGVyTGVmdCgpIC0gYm9yZGVy
UmlnaHQoKTsKLSAgICB3IC09IHBhZGRpbmdMZWZ0KCkgKyBwYWRkaW5nUmlnaHQoKTsKKyAgICBp
bnQgdyA9IG1fd2lkdGggLSAoYm9yZGVyTGVmdCgpICsgYm9yZGVyUmlnaHQoKSArIHBhZGRpbmdM
ZWZ0KCkgKyBwYWRkaW5nUmlnaHQoKSk7CiAKICAgICBpZiAoaW5jbHVkZVNjcm9sbGJhclNpemUo
KSkKICAgICAgICAgdyAtPSBtX2xheWVyLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CkBAIC0x
NjIsOCArMTYxLDcgQEAgaW50IFJlbmRlckJveDo6Y29udGVudFdpZHRoKCkgY29uc3QKIAogaW50
IFJlbmRlckJveDo6Y29udGVudEhlaWdodCgpIGNvbnN0CiB7Ci0gICAgaW50IGggPSBtX2hlaWdo
dCAtIGJvcmRlclRvcCgpIC0gYm9yZGVyQm90dG9tKCk7Ci0gICAgaCAtPSBwYWRkaW5nVG9wKCkg
KyBwYWRkaW5nQm90dG9tKCk7CisgICAgaW50IGggPSBtX2hlaWdodCAtIChib3JkZXJUb3AoKSAr
IGJvcmRlckJvdHRvbSgpICsgcGFkZGluZ1RvcCgpICsgcGFkZGluZ0JvdHRvbSgpKTsKIAogICAg
IGlmIChpbmNsdWRlU2Nyb2xsYmFyU2l6ZSgpKQogICAgICAgICBoIC09IG1fbGF5ZXItPmhvcml6
b250YWxTY3JvbGxiYXJIZWlnaHQoKTsKQEAgLTE4MSwxMiArMTc5LDEzIEBAIGludCBSZW5kZXJC
b3g6Om92ZXJyaWRlSGVpZ2h0KCkgY29uc3QKICAgICByZXR1cm4gbV9vdmVycmlkZVNpemUgPT0g
LTEgPyBtX2hlaWdodCA6IG1fb3ZlcnJpZGVTaXplOwogfQogCi12b2lkIFJlbmRlckJveDo6c2V0
UG9zKCBpbnQgeFBvcywgaW50IHlQb3MgKQordm9pZCBSZW5kZXJCb3g6OnNldFBvcyhpbnQgeFBv
cywgaW50IHlQb3MpCiB7CiAgICAgaWYgKHhQb3MgPT0gbV94ICYmIHlQb3MgPT0gbV95KQogICAg
ICAgICByZXR1cm47IC8vIE9wdGltaXplIGZvciB0aGUgY2FzZSB3aGVyZSB3ZSBkb24ndCBtb3Zl
IGF0IGFsbC4KICAgICAKLSAgICBtX3ggPSB4UG9zOyBtX3kgPSB5UG9zOworICAgIG1feCA9IHhQ
b3M7CisgICAgbV95ID0geVBvczsKIH0KIAogaW50IFJlbmRlckJveDo6d2lkdGgoKSBjb25zdApA
QCAtOTM2LDkyICs5MzUsODUgQEAgdm9pZCBSZW5kZXJCb3g6OnJlbGF0aXZlUG9zaXRpb25PZmZz
ZXQoaQogCiB2b2lkIFJlbmRlckJveDo6Y2FsY1dpZHRoKCkKIHsKLSAgICBpZiAoaXNQb3NpdGlv
bmVkKCkpCisgICAgaWYgKGlzUG9zaXRpb25lZCgpKSB7CiAgICAgICAgIGNhbGNBYnNvbHV0ZUhv
cml6b250YWwoKTsKLSAgICBlbHNlCi0gICAgewotICAgICAgICAvLyBUaGUgcGFyZW50IGJveCBp
cyBmbGV4aW5nIHVzLCBzbyBpdCBoYXMgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBvdXIgd2lkdGgu
ICBVc2UgdGhlIHdpZHRoCi0gICAgICAgIC8vIGZyb20gdGhlIHN0eWxlIGNvbnRleHQuCi0gICAg
ICAgIGlmIChtX292ZXJyaWRlU2l6ZSAhPSAtMSAmJiBwYXJlbnQoKS0+aXNGbGV4aWJsZUJveCgp
ICYmIHBhcmVudCgpLT5zdHlsZSgpLT5ib3hPcmllbnQoKSA9PSBIT1JJWk9OVEFMCi0gICAgICAg
ICAgICAmJiBwYXJlbnQoKS0+aXNGbGV4aW5nQ2hpbGRyZW4oKSkgewotICAgICAgICAgICAgbV93
aWR0aCA9IG1fb3ZlcnJpZGVTaXplOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0K
LSAgICAgICAgYm9vbCBpblZlcnRpY2FsQm94ID0gcGFyZW50KCktPmlzRmxleGlibGVCb3goKSAm
JiBwYXJlbnQoKS0+c3R5bGUoKS0+Ym94T3JpZW50KCkgPT0gVkVSVElDQUw7Ci0gICAgICAgIGJv
b2wgc3RyZXRjaGluZyA9IHBhcmVudCgpLT5zdHlsZSgpLT5ib3hBbGlnbigpID09IEJTVFJFVENI
OwotICAgICAgICBib29sIHRyZWF0QXNSZXBsYWNlZCA9IGlzUmVwbGFjZWQoKSAmJiAhaXNJbmxp
bmVCbG9ja09ySW5saW5lVGFibGUoKSAmJgotICAgICAgICAgICAgKCFpblZlcnRpY2FsQm94IHx8
ICFzdHJldGNoaW5nKTsKLSAgICAgICAgTGVuZ3RoIHc7Ci0gICAgICAgIGlmICh0cmVhdEFzUmVw
bGFjZWQpCi0gICAgICAgICAgICB3ID0gTGVuZ3RoKCBjYWxjUmVwbGFjZWRXaWR0aCgpLCBGaXhl
ZCApOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB3ID0gc3R5bGUoKS0+d2lkdGgoKTsKLQot
ICAgICAgICBMZW5ndGggbWwgPSBzdHlsZSgpLT5tYXJnaW5MZWZ0KCk7Ci0gICAgICAgIExlbmd0
aCBtciA9IHN0eWxlKCktPm1hcmdpblJpZ2h0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgCisgICAgLy8gVGhlIHBhcmVudCBib3ggaXMgZmxleGluZyB1cywgc28gaXQgaGFzIGluY3Jl
YXNlZCBvciBkZWNyZWFzZWQgb3VyCisgICAgLy8gd2lkdGguICBVc2UgdGhlIHdpZHRoIGZyb20g
dGhlIHN0eWxlIGNvbnRleHQuCisgICAgaWYgKG1fb3ZlcnJpZGVTaXplICE9IC0xICYmIHBhcmVu
dCgpLT5zdHlsZSgpLT5ib3hPcmllbnQoKSA9PSBIT1JJWk9OVEFMCisgICAgICAgICAgICAmJiBw
YXJlbnQoKS0+aXNGbGV4aWJsZUJveCgpICYmIHBhcmVudCgpLT5pc0ZsZXhpbmdDaGlsZHJlbigp
KSB7CisgICAgICAgIG1fd2lkdGggPSBtX292ZXJyaWRlU2l6ZTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KIAotICAgICAgICBSZW5kZXJCbG9jayAqY2IgPSBjb250YWluaW5nQmxvY2soKTsKLSAg
ICAgICAgaW50IGN3ID0gY29udGFpbmluZ0Jsb2NrV2lkdGgoKTsKKyAgICBib29sIGluVmVydGlj
YWxCb3ggPSBwYXJlbnQoKS0+aXNGbGV4aWJsZUJveCgpICYmIChwYXJlbnQoKS0+c3R5bGUoKS0+
Ym94T3JpZW50KCkgPT0gVkVSVElDQUwpOworICAgIGJvb2wgc3RyZXRjaGluZyA9IChwYXJlbnQo
KS0+c3R5bGUoKS0+Ym94QWxpZ24oKSA9PSBCU1RSRVRDSCk7CisgICAgYm9vbCB0cmVhdEFzUmVw
bGFjZWQgPSBpc1JlcGxhY2VkKCkgJiYgIWlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCkgJiYg
KCFpblZlcnRpY2FsQm94IHx8ICFzdHJldGNoaW5nKTsKKyAgICAKKyAgICBMZW5ndGggd2lkdGgg
PSAodHJlYXRBc1JlcGxhY2VkKSA/IExlbmd0aChjYWxjUmVwbGFjZWRXaWR0aCgpLCBGaXhlZCkg
OiBzdHlsZSgpLT53aWR0aCgpOworICAgIAorICAgIFJlbmRlckJsb2NrKiBjYiA9IGNvbnRhaW5p
bmdCbG9jaygpOworICAgIGludCBjb250YWluZXJXaWR0aCA9IG1heCgwLCBjb250YWluaW5nQmxv
Y2tXaWR0aCgpKTsKIAotICAgICAgICBpZiAoY3c8MCkgY3cgPSAwOworICAgIExlbmd0aCBtYXJn
aW5MZWZ0ID0gc3R5bGUoKS0+bWFyZ2luTGVmdCgpOworICAgIExlbmd0aCBtYXJnaW5SaWdodCA9
IHN0eWxlKCktPm1hcmdpblJpZ2h0KCk7CiAKLSAgICAgICAgbV9tYXJnaW5MZWZ0ID0gMDsKLSAg
ICAgICAgbV9tYXJnaW5SaWdodCA9IDA7CisgICAgaWYgKGlzSW5saW5lKCkgJiYgIWlzSW5saW5l
QmxvY2tPcklubGluZVRhYmxlKCkpIHsKKyAgICAgICAgLy8ganVzdCBjYWxjdWxhdGUgbWFyZ2lu
cworICAgICAgICBtX21hcmdpbkxlZnQgPSBtYXJnaW5MZWZ0LmNhbGNNaW5WYWx1ZShjb250YWlu
ZXJXaWR0aCk7CisgICAgICAgIG1fbWFyZ2luUmlnaHQgPSBtYXJnaW5SaWdodC5jYWxjTWluVmFs
dWUoY29udGFpbmVyV2lkdGgpOworICAgICAgICBpZiAodHJlYXRBc1JlcGxhY2VkKQorICAgICAg
ICAgICAgbV93aWR0aCA9IG1heCh3aWR0aC52YWx1ZSgpICsgYm9yZGVyTGVmdCgpICsgYm9yZGVy
UmlnaHQoKSArIHBhZGRpbmdMZWZ0KCkgKyBwYWRkaW5nUmlnaHQoKSwgbV9taW5XaWR0aCk7Cisg
ICAgICAgIAorICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgICAgIGlmIChpc0lubGluZSgp
ICYmICFpc0lubGluZUJsb2NrT3JJbmxpbmVUYWJsZSgpKSB7Ci0gICAgICAgICAgICAvLyBqdXN0
IGNhbGN1bGF0ZSBtYXJnaW5zCi0gICAgICAgICAgICBtX21hcmdpbkxlZnQgPSBtbC5jYWxjTWlu
VmFsdWUoY3cpOwotICAgICAgICAgICAgbV9tYXJnaW5SaWdodCA9IG1yLmNhbGNNaW5WYWx1ZShj
dyk7Ci0gICAgICAgICAgICBpZiAodHJlYXRBc1JlcGxhY2VkKSB7Ci0gICAgICAgICAgICAgICAg
bV93aWR0aCA9IHcuY2FsY1ZhbHVlKGN3KSArIGJvcmRlckxlZnQoKSArIGJvcmRlclJpZ2h0KCkg
KyBwYWRkaW5nTGVmdCgpICsgcGFkZGluZ1JpZ2h0KCk7Ci0gICAgICAgICAgICAgICAgbV93aWR0
aCA9IG1heChtX3dpZHRoLCBtX21pbldpZHRoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIExlbmd0aFR5
cGUgd2lkdGhUeXBlLCBtaW5XaWR0aFR5cGUsIG1heFdpZHRoVHlwZTsKLSAgICAgICAgICAgIGlm
ICh0cmVhdEFzUmVwbGFjZWQpIHsKLSAgICAgICAgICAgICAgICBtX3dpZHRoID0gdy5jYWxjVmFs
dWUoY3cpICsgYm9yZGVyTGVmdCgpICsgYm9yZGVyUmlnaHQoKSArIHBhZGRpbmdMZWZ0KCkgKyBw
YWRkaW5nUmlnaHQoKTsKLSAgICAgICAgICAgICAgICB3aWR0aFR5cGUgPSB3LnR5cGUoKTsKLSAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbV93aWR0aCA9IGNhbGNXaWR0aFVz
aW5nKFdpZHRoLCBjdywgd2lkdGhUeXBlKTsKLSAgICAgICAgICAgICAgICBpbnQgbWluVyA9IGNh
bGNXaWR0aFVzaW5nKE1pbldpZHRoLCBjdywgbWluV2lkdGhUeXBlKTsKLSAgICAgICAgICAgICAg
ICBpbnQgbWF4VyA9IHN0eWxlKCktPm1heFdpZHRoKCkudmFsdWUoKSA9PSB1bmRlZmluZWRMZW5n
dGgKLSAgICAgICAgICAgICAgICAgICAgPyBtX3dpZHRoIDogY2FsY1dpZHRoVXNpbmcoTWF4V2lk
dGgsIGN3LCBtYXhXaWR0aFR5cGUpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IGlmIChtX3dpZHRoID4gbWF4VykgewotICAgICAgICAgICAgICAgICAgICBtX3dpZHRoID0gbWF4
VzsKLSAgICAgICAgICAgICAgICAgICAgd2lkdGhUeXBlID0gbWF4V2lkdGhUeXBlOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAobV93aWR0aCA8IG1pblcpIHsKLSAgICAg
ICAgICAgICAgICAgICAgbV93aWR0aCA9IG1pblc7Ci0gICAgICAgICAgICAgICAgICAgIHdpZHRo
VHlwZSA9IG1pbldpZHRoVHlwZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICh3aWR0aFR5cGUgPT0gQXV0bykgewotICAgICAg
ICAgICAgICAgIG1fbWFyZ2luTGVmdCA9IG1sLmNhbGNNaW5WYWx1ZShjdyk7Ci0gICAgICAgICAg
ICAgICAgbV9tYXJnaW5SaWdodCA9IG1yLmNhbGNNaW5WYWx1ZShjdyk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY2FsY0hv
cml6b250YWxNYXJnaW5zKG1sLG1yLGN3KTsKKyAgICAvLyBXaWR0aCBjYWxjdWxhdGlvbnMKKyAg
ICBpZiAodHJlYXRBc1JlcGxhY2VkKQorICAgICAgICBtX3dpZHRoID0gd2lkdGgudmFsdWUoKSAr
IGJvcmRlckxlZnQoKSArIGJvcmRlclJpZ2h0KCkgKyBwYWRkaW5nTGVmdCgpICsgcGFkZGluZ1Jp
Z2h0KCk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIENhbGN1bGF0ZSBXaWR0aAorICAgICAgICBt
X3dpZHRoID0gY2FsY1dpZHRoVXNpbmcoV2lkdGgsIGNvbnRhaW5lcldpZHRoKTsKKyAgICAgICAg
CisgICAgICAgIC8vIENhbGN1bGF0ZSBNYXhXaWR0aAorICAgICAgICBpZiAoc3R5bGUoKS0+bWF4
V2lkdGgoKS52YWx1ZSgpICE9IHVuZGVmaW5lZExlbmd0aCkgeworICAgICAgICAgICAgaW50IG1h
eFcgPSBjYWxjV2lkdGhVc2luZyhNYXhXaWR0aCwgY29udGFpbmVyV2lkdGgpOworICAgICAgICAg
ICAgaWYgKG1fd2lkdGggPiBtYXhXKSB7CisgICAgICAgICAgICAgICAgbV93aWR0aCA9IG1heFc7
CisgICAgICAgICAgICAgICAgd2lkdGggPSBzdHlsZSgpLT5tYXhXaWR0aCgpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGN3ICYmIGN3ICE9IG1fd2lkdGggKyBtX21h
cmdpbkxlZnQgKyBtX21hcmdpblJpZ2h0ICYmICFpc0Zsb2F0aW5nKCkgJiYgIWlzSW5saW5lKCkg
JiYKLSAgICAgICAgICAgICFjYi0+aXNGbGV4aWJsZUJveCgpKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBpZiAoY2ItPnN0eWxlKCktPmRpcmVjdGlvbigpPT1MVFIpCi0gICAgICAgICAgICAgICAg
bV9tYXJnaW5SaWdodCA9IGN3IC0gbV93aWR0aCAtIG1fbWFyZ2luTGVmdDsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBtX21hcmdpbkxlZnQgPSBjdyAtIG1fd2lkdGggLSBtX21h
cmdpblJpZ2h0OworICAgICAgICAvLyBDYWxjdWxhdGUgTWluV2lkdGgKKyAgICAgICAgaW50IG1p
blcgPSBjYWxjV2lkdGhVc2luZyhNaW5XaWR0aCwgY29udGFpbmVyV2lkdGgpOyAgICAgICAgCisg
ICAgICAgIGlmIChtX3dpZHRoIDwgbWluVykgeworICAgICAgICAgICAgbV93aWR0aCA9IG1pblc7
CisgICAgICAgICAgICB3aWR0aCA9IHN0eWxlKCktPm1pbldpZHRoKCk7CiAgICAgICAgIH0KICAg
ICB9CisgICAgCisgICAgLy8gTWFyZ2luIGNhbGN1bGF0aW9ucworICAgIGlmICh3aWR0aC5pc0F1
dG8oKSkgeworICAgICAgICBtX21hcmdpbkxlZnQgPSBtYXJnaW5MZWZ0LmNhbGNNaW5WYWx1ZShj
b250YWluZXJXaWR0aCk7CisgICAgICAgIG1fbWFyZ2luUmlnaHQgPSBtYXJnaW5SaWdodC5jYWxj
TWluVmFsdWUoY29udGFpbmVyV2lkdGgpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fbWFyZ2lu
TGVmdCA9IDA7CisgICAgICAgIG1fbWFyZ2luUmlnaHQgPSAwOworICAgICAgICBjYWxjSG9yaXpv
bnRhbE1hcmdpbnMobWFyZ2luTGVmdCwgbWFyZ2luUmlnaHQsIGNvbnRhaW5lcldpZHRoKTsKKyAg
ICB9CisgICAgCisgICAgaWYgKGNvbnRhaW5lcldpZHRoICYmIGNvbnRhaW5lcldpZHRoICE9ICht
X3dpZHRoICsgbV9tYXJnaW5MZWZ0ICsgbV9tYXJnaW5SaWdodCkKKyAgICAgICAgICAgICYmICFp
c0Zsb2F0aW5nKCkgJiYgIWlzSW5saW5lKCkgJiYgIWNiLT5pc0ZsZXhpYmxlQm94KCkpIHsKKyAg
ICAgICAgaWYgKGNiLT5zdHlsZSgpLT5kaXJlY3Rpb24oKSA9PSBMVFIpCisgICAgICAgICAgICBt
X21hcmdpblJpZ2h0ID0gY29udGFpbmVyV2lkdGggLSBtX3dpZHRoIC0gbV9tYXJnaW5MZWZ0Owor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBtX21hcmdpbkxlZnQgPSBjb250YWluZXJXaWR0aCAt
IG1fd2lkdGggLSBtX21hcmdpblJpZ2h0OworICAgIH0KIH0KIAotaW50IFJlbmRlckJveDo6Y2Fs
Y1dpZHRoVXNpbmcoV2lkdGhUeXBlIHdpZHRoVHlwZSwgaW50IGN3LCBMZW5ndGhUeXBlJiBsZW5n
dGhUeXBlKQoraW50IFJlbmRlckJveDo6Y2FsY1dpZHRoVXNpbmcoV2lkdGhUeXBlIHdpZHRoVHlw
ZSwgaW50IGN3KQogewogICAgIGludCB3aWR0aCA9IG1fd2lkdGg7CiAgICAgTGVuZ3RoIHc7CkBA
IC0xMDMyLDggKzEwMjQsNiBAQCBpbnQgUmVuZGVyQm94OjpjYWxjV2lkdGhVc2luZyhXaWR0aFR5
cGUgCiAgICAgZWxzZQogICAgICAgICB3ID0gc3R5bGUoKS0+bWF4V2lkdGgoKTsKIAotICAgIGxl
bmd0aFR5cGUgPSB3LnR5cGUoKTsKLQogICAgIGlmICh3LmlzSW50cmluc2ljT3JBdXRvKCkpIHsK
ICAgICAgICAgaW50IG1hcmdpbkxlZnQgPSBzdHlsZSgpLT5tYXJnaW5MZWZ0KCkuY2FsY01pblZh
bHVlKGN3KTsKICAgICAgICAgaW50IG1hcmdpblJpZ2h0ID0gc3R5bGUoKS0+bWFyZ2luUmlnaHQo
KS5jYWxjTWluVmFsdWUoY3cpOwpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mzc2KQorKysgV2ViQ29yZS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAwNi0wNS0xNSAgU2FtIFdlaW5p
ZyAgPHNhbS53ZWluaWdAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHBhdGNoIGZvciA8aHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4u
b3JnL3Nob3dfYnVnLmNnaT9pZD04OTEwPgorICAgICAgICBCdWcgODkxMDogVmFyaW91cyBjb2Rl
IGNsZWFudXBzIGluIFJlbmRlckJveAorICAgICAgICAKKyAgICAgICAgQ2xlYW4gdXAgd2l0aCBz
b21lIHNsaWdodCBvcHRpbWl6YXRpb25zLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRlbnRXaWR0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRlbnRIZWlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94OjpzZXRQb3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpjYWxj
V2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpjYWxjV2lkdGhVc2luZyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorCiAyMDA2LTA1LTE1ICBBbmRlcnMgQ2Fy
bHNzb24gIDxhY2FybHNzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2ll
ai4K
</data>
<flag name="review"
          id="2340"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>