<?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>122697</bug_id>
          
          <creation_ts>2013-10-12 11:24:08 -0700</creation_ts>
          <short_desc>Move more code to RenderTextLineBoxes</short_desc>
          <delta_ts>2013-10-12 11:43:54 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>939101</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-10-12 11:24:08 -0700</bug_when>
    <thetext>there is more</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939104</commentid>
    <comment_count>1</comment_count>
      <attachid>214060</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-10-12 11:28:05 -0700</bug_when>
    <thetext>Created attachment 214060
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939107</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-10-12 11:43:54 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/157345</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214060</attachid>
            <date>2013-10-12 11:28:05 -0700</date>
            <delta_ts>2013-10-12 11:34:26 -0700</delta_ts>
            <desc>patch</desc>
            <filename>rendertextlineboxes-more.patch</filename>
            <type>text/plain</type>
            <size>10945</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzM0MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEzLTEwLTEyICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIG1vcmUgY29kZSB0byBS
ZW5kZXJUZXh0TGluZUJveGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjI2OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHRMaW5lQm94ZXM6OmJvdW5kaW5nQm94KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRleHRMaW5lQm94ZXM6OnZpc3VhbE92ZXJmbG93Qm91bmRpbmdCb3gpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dExpbmVCb3hlczo6aGFzUmVuZGVyZWRUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRMaW5lQm94ZXM6OmNhcmV0TWluT2Zmc2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRMaW5lQm94ZXM6OmNhcmV0TWF4T2Zmc2V0KToK
KyAgICAgICAgCisgICAgICAgICAgICBNb3ZlZCB0aGVzZS4KKwogMjAxMy0wOS0yNyAgSmVzc2lj
YSBQZWFzZSAgPGplc3NpY2Ffbl9wZWFzZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBz
dGF0aWMgY2FzdCBBU1NFUlRzIHdpdGggQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlzaW9uIDE1
NzM0MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQ2LDcgKzI0Niw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6cmVtb3ZlQW5kRGVz
dHJveVRleHRCb3gKICAgICAgICAgfSBlbHNlIGlmIChwYXJlbnQoKSkKICAgICAgICAgICAgIHBh
cmVudCgpLT5kaXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGlsZCh0aGlzKTsKICAgICB9Ci0gICAgZGVs
ZXRlVGV4dEJveGVzKCk7CisgICAgbV9saW5lQm94ZXMuZGVsZXRlQWxsKCp0aGlzKTsKIH0KIAog
dm9pZCBSZW5kZXJUZXh0Ojp3aWxsQmVEZXN0cm95ZWQoKQpAQCAtMTMzNyw3ICsxMzM3LDcgQEAg
U3RyaW5nIFJlbmRlclRleHQ6OnRleHRXaXRob3V0Q29udmVydGluZwogdm9pZCBSZW5kZXJUZXh0
OjpkaXJ0eUxpbmVCb3hlcyhib29sIGZ1bGxMYXlvdXQpCiB7CiAgICAgaWYgKGZ1bGxMYXlvdXQp
Ci0gICAgICAgIGRlbGV0ZVRleHRCb3hlcygpOworICAgICAgICBtX2xpbmVCb3hlcy5kZWxldGVB
bGwoKnRoaXMpOwogICAgIGVsc2UgaWYgKCFtX2xpbmVzRGlydHkpIHsKICAgICAgICAgZm9yIChJ
bmxpbmVUZXh0Qm94KiBib3ggPSBmaXJzdFRleHRCb3goKTsgYm94OyBib3ggPSBib3gtPm5leHRU
ZXh0Qm94KCkpCiAgICAgICAgICAgICBib3gtPmRpcnR5TGluZUJveGVzKCk7CkBAIC0xNDE1LDUz
ICsxNDE1LDEyIEBAIGZsb2F0IFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHUKIAog
SW50UmVjdCBSZW5kZXJUZXh0OjpsaW5lc0JvdW5kaW5nQm94KCkgY29uc3QKIHsKLSAgICBJbnRS
ZWN0IHJlc3VsdDsKLSAgICAKLSAgICBBU1NFUlQoIWZpcnN0VGV4dEJveCgpID09ICFsYXN0VGV4
dEJveCgpKTsgIC8vIEVpdGhlciBib3RoIGFyZSBudWxsIG9yIGJvdGggZXhpc3QuCi0gICAgaWYg
KGZpcnN0VGV4dEJveCgpICYmIGxhc3RUZXh0Qm94KCkpIHsKLSAgICAgICAgLy8gUmV0dXJuIHRo
ZSB3aWR0aCBvZiB0aGUgbWluaW1hbCBsZWZ0IHNpZGUgYW5kIHRoZSBtYXhpbWFsIHJpZ2h0IHNp
ZGUuCi0gICAgICAgIGZsb2F0IGxvZ2ljYWxMZWZ0U2lkZSA9IDA7Ci0gICAgICAgIGZsb2F0IGxv
Z2ljYWxSaWdodFNpZGUgPSAwOwotICAgICAgICBmb3IgKElubGluZVRleHRCb3gqIGN1cnIgPSBm
aXJzdFRleHRCb3goKTsgY3VycjsgY3VyciA9IGN1cnItPm5leHRUZXh0Qm94KCkpIHsKLSAgICAg
ICAgICAgIGlmIChjdXJyID09IGZpcnN0VGV4dEJveCgpIHx8IGN1cnItPmxvZ2ljYWxMZWZ0KCkg
PCBsb2dpY2FsTGVmdFNpZGUpCi0gICAgICAgICAgICAgICAgbG9naWNhbExlZnRTaWRlID0gY3Vy
ci0+bG9naWNhbExlZnQoKTsKLSAgICAgICAgICAgIGlmIChjdXJyID09IGZpcnN0VGV4dEJveCgp
IHx8IGN1cnItPmxvZ2ljYWxSaWdodCgpID4gbG9naWNhbFJpZ2h0U2lkZSkKLSAgICAgICAgICAg
ICAgICBsb2dpY2FsUmlnaHRTaWRlID0gY3Vyci0+bG9naWNhbFJpZ2h0KCk7Ci0gICAgICAgIH0K
LSAgICAgICAgCi0gICAgICAgIGJvb2wgaXNIb3Jpem9udGFsID0gc3R5bGUoKS0+aXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKTsKLSAgICAgICAgCi0gICAgICAgIGZsb2F0IHggPSBpc0hvcml6b250
YWwgPyBsb2dpY2FsTGVmdFNpZGUgOiBmaXJzdFRleHRCb3goKS0+eCgpOwotICAgICAgICBmbG9h
dCB5ID0gaXNIb3Jpem9udGFsID8gZmlyc3RUZXh0Qm94KCktPnkoKSA6IGxvZ2ljYWxMZWZ0U2lk
ZTsKLSAgICAgICAgZmxvYXQgd2lkdGggPSBpc0hvcml6b250YWwgPyBsb2dpY2FsUmlnaHRTaWRl
IC0gbG9naWNhbExlZnRTaWRlIDogbGFzdFRleHRCb3goKS0+bG9naWNhbEJvdHRvbSgpIC0geDsK
LSAgICAgICAgZmxvYXQgaGVpZ2h0ID0gaXNIb3Jpem9udGFsID8gbGFzdFRleHRCb3goKS0+bG9n
aWNhbEJvdHRvbSgpIC0geSA6IGxvZ2ljYWxSaWdodFNpZGUgLSBsb2dpY2FsTGVmdFNpZGU7Ci0g
ICAgICAgIHJlc3VsdCA9IGVuY2xvc2luZ0ludFJlY3QoRmxvYXRSZWN0KHgsIHksIHdpZHRoLCBo
ZWlnaHQpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBtX2xpbmVC
b3hlcy5ib3VuZGluZ0JveCgqdGhpcyk7CiB9CiAKIExheW91dFJlY3QgUmVuZGVyVGV4dDo6bGlu
ZXNWaXN1YWxPdmVyZmxvd0JvdW5kaW5nQm94KCkgY29uc3QKIHsKLSAgICBpZiAoIWZpcnN0VGV4
dEJveCgpKQotICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwotCi0gICAgLy8gUmV0dXJuIHRo
ZSB3aWR0aCBvZiB0aGUgbWluaW1hbCBsZWZ0IHNpZGUgYW5kIHRoZSBtYXhpbWFsIHJpZ2h0IHNp
ZGUuCi0gICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdFNpZGUgPSBMYXlvdXRVbml0OjptYXgoKTsK
LSAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodFNpZGUgPSBMYXlvdXRVbml0OjptaW4oKTsKLSAg
ICBmb3IgKElubGluZVRleHRCb3gqIGN1cnIgPSBmaXJzdFRleHRCb3goKTsgY3VycjsgY3VyciA9
IGN1cnItPm5leHRUZXh0Qm94KCkpIHsKLSAgICAgICAgbG9naWNhbExlZnRTaWRlID0gbWluKGxv
Z2ljYWxMZWZ0U2lkZSwgY3Vyci0+bG9naWNhbExlZnRWaXN1YWxPdmVyZmxvdygpKTsKLSAgICAg
ICAgbG9naWNhbFJpZ2h0U2lkZSA9IG1heChsb2dpY2FsUmlnaHRTaWRlLCBjdXJyLT5sb2dpY2Fs
UmlnaHRWaXN1YWxPdmVyZmxvdygpKTsKLSAgICB9Ci0gICAgCi0gICAgTGF5b3V0VW5pdCBsb2dp
Y2FsVG9wID0gZmlyc3RUZXh0Qm94KCktPmxvZ2ljYWxUb3BWaXN1YWxPdmVyZmxvdygpOwotICAg
IExheW91dFVuaXQgbG9naWNhbFdpZHRoID0gbG9naWNhbFJpZ2h0U2lkZSAtIGxvZ2ljYWxMZWZ0
U2lkZTsKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSBsYXN0VGV4dEJveCgpLT5sb2dp
Y2FsQm90dG9tVmlzdWFsT3ZlcmZsb3coKSAtIGxvZ2ljYWxUb3A7Ci0gICAgCi0gICAgTGF5b3V0
UmVjdCByZWN0KGxvZ2ljYWxMZWZ0U2lkZSwgbG9naWNhbFRvcCwgbG9naWNhbFdpZHRoLCBsb2dp
Y2FsSGVpZ2h0KTsKLSAgICBpZiAoIXN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkp
Ci0gICAgICAgIHJlY3QgPSByZWN0LnRyYW5zcG9zZWRSZWN0KCk7Ci0gICAgcmV0dXJuIHJlY3Q7
CisgICAgcmV0dXJuIG1fbGluZUJveGVzLnZpc3VhbE92ZXJmbG93Qm91bmRpbmdCb3goKnRoaXMp
OwogfQogCiBMYXlvdXRSZWN0IFJlbmRlclRleHQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBh
aW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0
CkBAIC0xNTI4LDM0ICsxNDg3LDE3IEBAIExheW91dFJlY3QgUmVuZGVyVGV4dDo6c2VsZWN0aW9u
UmVjdEZvclIKIAogaW50IFJlbmRlclRleHQ6OmNhcmV0TWluT2Zmc2V0KCkgY29uc3QKIHsKLSAg
ICBJbmxpbmVUZXh0Qm94KiBib3ggPSBmaXJzdFRleHRCb3goKTsKLSAgICBpZiAoIWJveCkKLSAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgaW50IG1pbk9mZnNldCA9IGJveC0+c3RhcnQoKTsKLSAgICBm
b3IgKGJveCA9IGJveC0+bmV4dFRleHRCb3goKTsgYm94OyBib3ggPSBib3gtPm5leHRUZXh0Qm94
KCkpCi0gICAgICAgIG1pbk9mZnNldCA9IG1pbjxpbnQ+KG1pbk9mZnNldCwgYm94LT5zdGFydCgp
KTsKLSAgICByZXR1cm4gbWluT2Zmc2V0OworICAgIHJldHVybiBtX2xpbmVCb3hlcy5jYXJldE1p
bk9mZnNldCgpOwogfQogCiBpbnQgUmVuZGVyVGV4dDo6Y2FyZXRNYXhPZmZzZXQoKSBjb25zdAog
ewotICAgIElubGluZVRleHRCb3gqIGJveCA9IGxhc3RUZXh0Qm94KCk7Ci0gICAgaWYgKCFsYXN0
VGV4dEJveCgpKQotICAgICAgICByZXR1cm4gdGV4dExlbmd0aCgpOwotCi0gICAgaW50IG1heE9m
ZnNldCA9IGJveC0+c3RhcnQoKSArIGJveC0+bGVuKCk7Ci0gICAgZm9yIChib3ggPSBib3gtPnBy
ZXZUZXh0Qm94KCk7IGJveDsgYm94ID0gYm94LT5wcmV2VGV4dEJveCgpKQotICAgICAgICBtYXhP
ZmZzZXQgPSBtYXg8aW50PihtYXhPZmZzZXQsIGJveC0+c3RhcnQoKSArIGJveC0+bGVuKCkpOwot
ICAgIHJldHVybiBtYXhPZmZzZXQ7CisgICAgcmV0dXJuIG1fbGluZUJveGVzLmNhcmV0TWF4T2Zm
c2V0KCp0aGlzKTsKIH0KIAogYm9vbCBSZW5kZXJUZXh0OjpoYXNSZW5kZXJlZFRleHQoKSBjb25z
dAogewotICAgIGZvciAoSW5saW5lVGV4dEJveCogYm94ID0gZmlyc3RUZXh0Qm94KCk7IGJveDsg
Ym94ID0gYm94LT5uZXh0VGV4dEJveCgpKSB7Ci0gICAgICAgIGlmIChib3gtPmxlbigpKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gbV9saW5lQm94ZXMuaGFzUmVuZGVyZWRUZXh0KCk7CiB9CiAKIGludCBSZW5kZXJUZXh0Ojpw
cmV2aW91c09mZnNldChpbnQgY3VycmVudCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuaAkocmV2aXNpb24gMTU3MzQwKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDcgKzE3NCw2IEBAIHBy
aXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVl
c3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiwgY29uc3QgTGF5b3V0
UG9pbnQmLCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERSBGSU5BTCB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgZGVsZXRlVGV4dEJveGVzKCkgeyBtX2xp
bmVCb3hlcy5kZWxldGVBbGwoKnRoaXMpOyB9CiAgICAgYm9vbCBjb250YWluc09ubHlXaGl0ZXNw
YWNlKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbikgY29uc3Q7CiAgICAgZmxvYXQgd2lkdGhG
cm9tQ2FjaGUoY29uc3QgRm9udCYsIGludCBzdGFydCwgaW50IGxlbiwgZmxvYXQgeFBvcywgSGFz
aFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93
KikgY29uc3Q7CiAgICAgYm9vbCBpc0FsbEFTQ0lJKCkgY29uc3QgeyByZXR1cm4gbV9pc0FsbEFT
Q0lJOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hl
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRM
aW5lQm94ZXMuY3BwCShyZXZpc2lvbiAxNTczNDApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dExpbmVCb3hlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJSZW5kZXJUZXh0TGluZUJveGVzLmgiCiAKICNpbmNsdWRlICJJbmxpbmVU
ZXh0Qm94LmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC0xMDYsNyArMTA3LDcgQEAgdm9pZCBSZW5kZXJUZXh0TGluZUJveGVzOjpkZWxldGVB
bGwoUmVuZAogewogICAgIGlmICghbV9maXJzdCkKICAgICAgICAgcmV0dXJuOwotICAgIFJlbmRl
ckFyZW5hJiBhcmVuYSA9IHJlbmRlcmVyLnJlbmRlckFyZW5hKCk7CisgICAgYXV0byYgYXJlbmEg
PSByZW5kZXJlci5yZW5kZXJBcmVuYSgpOwogICAgIElubGluZVRleHRCb3gqIG5leHQ7CiAgICAg
Zm9yIChhdXRvIGN1cnJlbnQgPSBtX2ZpcnN0OyBjdXJyZW50OyBjdXJyZW50ID0gbmV4dCkgewog
ICAgICAgICBuZXh0ID0gY3VycmVudC0+bmV4dFRleHRCb3goKTsKQEAgLTEzMiw2ICsxMzMsODUg
QEAgSW5saW5lVGV4dEJveCogUmVuZGVyVGV4dExpbmVCb3hlczo6ZmluZAogICAgIHJldHVybiBj
dXJyZW50OwogfQogCitJbnRSZWN0IFJlbmRlclRleHRMaW5lQm94ZXM6OmJvdW5kaW5nQm94KGNv
bnN0IFJlbmRlclRleHQmIHJlbmRlcmVyKSBjb25zdAoreworICAgIGlmICghbV9maXJzdCkKKyAg
ICAgICAgcmV0dXJuIEludFJlY3QoKTsKKworICAgIC8vIFJldHVybiB0aGUgd2lkdGggb2YgdGhl
IG1pbmltYWwgbGVmdCBzaWRlIGFuZCB0aGUgbWF4aW1hbCByaWdodCBzaWRlLgorICAgIGZsb2F0
IGxvZ2ljYWxMZWZ0U2lkZSA9IDA7CisgICAgZmxvYXQgbG9naWNhbFJpZ2h0U2lkZSA9IDA7Cisg
ICAgZm9yIChhdXRvIGN1cnJlbnQgPSBtX2ZpcnN0OyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVu
dC0+bmV4dFRleHRCb3goKSkgeworICAgICAgICBpZiAoY3VycmVudCA9PSBtX2ZpcnN0IHx8IGN1
cnJlbnQtPmxvZ2ljYWxMZWZ0KCkgPCBsb2dpY2FsTGVmdFNpZGUpCisgICAgICAgICAgICBsb2dp
Y2FsTGVmdFNpZGUgPSBjdXJyZW50LT5sb2dpY2FsTGVmdCgpOworICAgICAgICBpZiAoY3VycmVu
dCA9PSBtX2ZpcnN0IHx8IGN1cnJlbnQtPmxvZ2ljYWxSaWdodCgpID4gbG9naWNhbFJpZ2h0U2lk
ZSkKKyAgICAgICAgICAgIGxvZ2ljYWxSaWdodFNpZGUgPSBjdXJyZW50LT5sb2dpY2FsUmlnaHQo
KTsKKyAgICB9CisgICAgCisgICAgYm9vbCBpc0hvcml6b250YWwgPSByZW5kZXJlci5zdHlsZSgp
LT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOworICAgIAorICAgIGZsb2F0IHggPSBpc0hvcml6
b250YWwgPyBsb2dpY2FsTGVmdFNpZGUgOiBtX2ZpcnN0LT54KCk7CisgICAgZmxvYXQgeSA9IGlz
SG9yaXpvbnRhbCA/IG1fZmlyc3QtPnkoKSA6IGxvZ2ljYWxMZWZ0U2lkZTsKKyAgICBmbG9hdCB3
aWR0aCA9IGlzSG9yaXpvbnRhbCA/IGxvZ2ljYWxSaWdodFNpZGUgLSBsb2dpY2FsTGVmdFNpZGUg
OiBtX2xhc3QtPmxvZ2ljYWxCb3R0b20oKSAtIHg7CisgICAgZmxvYXQgaGVpZ2h0ID0gaXNIb3Jp
em9udGFsID8gbV9sYXN0LT5sb2dpY2FsQm90dG9tKCkgLSB5IDogbG9naWNhbFJpZ2h0U2lkZSAt
IGxvZ2ljYWxMZWZ0U2lkZTsKKyAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChGbG9hdFJlY3Qo
eCwgeSwgd2lkdGgsIGhlaWdodCkpOworfQorCitMYXlvdXRSZWN0IFJlbmRlclRleHRMaW5lQm94
ZXM6OnZpc3VhbE92ZXJmbG93Qm91bmRpbmdCb3goY29uc3QgUmVuZGVyVGV4dCYgcmVuZGVyZXIp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2ZpcnN0KQorICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgp
OworCisgICAgLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiB0aGUgbWluaW1hbCBsZWZ0IHNpZGUgYW5k
IHRoZSBtYXhpbWFsIHJpZ2h0IHNpZGUuCisgICAgYXV0byBsb2dpY2FsTGVmdFNpZGUgPSBMYXlv
dXRVbml0OjptYXgoKTsKKyAgICBhdXRvIGxvZ2ljYWxSaWdodFNpZGUgPSBMYXlvdXRVbml0Ojpt
aW4oKTsKKyAgICBmb3IgKGF1dG8gY3VycmVudCA9IG1fZmlyc3Q7IGN1cnJlbnQ7IGN1cnJlbnQg
PSBjdXJyZW50LT5uZXh0VGV4dEJveCgpKSB7CisgICAgICAgIGxvZ2ljYWxMZWZ0U2lkZSA9IHN0
ZDo6bWluKGxvZ2ljYWxMZWZ0U2lkZSwgY3VycmVudC0+bG9naWNhbExlZnRWaXN1YWxPdmVyZmxv
dygpKTsKKyAgICAgICAgbG9naWNhbFJpZ2h0U2lkZSA9IHN0ZDo6bWF4KGxvZ2ljYWxSaWdodFNp
ZGUsIGN1cnJlbnQtPmxvZ2ljYWxSaWdodFZpc3VhbE92ZXJmbG93KCkpOworICAgIH0KKyAgICAK
KyAgICBhdXRvIGxvZ2ljYWxUb3AgPSBtX2ZpcnN0LT5sb2dpY2FsVG9wVmlzdWFsT3ZlcmZsb3co
KTsKKyAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IGxvZ2ljYWxSaWdodFNpZGUgLSBsb2dpY2FsTGVm
dFNpZGU7CisgICAgYXV0byBsb2dpY2FsSGVpZ2h0ID0gbV9sYXN0LT5sb2dpY2FsQm90dG9tVmlz
dWFsT3ZlcmZsb3coKSAtIGxvZ2ljYWxUb3A7CisgICAgCisgICAgTGF5b3V0UmVjdCByZWN0KGxv
Z2ljYWxMZWZ0U2lkZSwgbG9naWNhbFRvcCwgbG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0KTsK
KyAgICBpZiAoIXJlbmRlcmVyLnN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisg
ICAgICAgIHJlY3QgPSByZWN0LnRyYW5zcG9zZWRSZWN0KCk7CisgICAgcmV0dXJuIHJlY3Q7Cit9
CisKK2Jvb2wgUmVuZGVyVGV4dExpbmVCb3hlczo6aGFzUmVuZGVyZWRUZXh0KCkgY29uc3QKK3sK
KyAgICBmb3IgKGF1dG8gYm94ID0gbV9maXJzdDsgYm94OyBib3ggPSBib3gtPm5leHRUZXh0Qm94
KCkpIHsKKyAgICAgICAgaWYgKGJveC0+bGVuKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitpbnQgUmVuZGVyVGV4dExpbmVCb3hlczo6
Y2FyZXRNaW5PZmZzZXQoKSBjb25zdAoreworICAgIGF1dG8gYm94ID0gbV9maXJzdDsKKyAgICBp
ZiAoIWJveCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaW50IG1pbk9mZnNldCA9IGJveC0+c3Rh
cnQoKTsKKyAgICBmb3IgKGJveCA9IGJveC0+bmV4dFRleHRCb3goKTsgYm94OyBib3ggPSBib3gt
Pm5leHRUZXh0Qm94KCkpCisgICAgICAgIG1pbk9mZnNldCA9IHN0ZDo6bWluPGludD4obWluT2Zm
c2V0LCBib3gtPnN0YXJ0KCkpOworICAgIHJldHVybiBtaW5PZmZzZXQ7Cit9CisKK2ludCBSZW5k
ZXJUZXh0TGluZUJveGVzOjpjYXJldE1heE9mZnNldChjb25zdCBSZW5kZXJUZXh0JiByZW5kZXJl
cikgY29uc3QKK3sKKyAgICBhdXRvIGJveCA9IG1fbGFzdDsKKyAgICBpZiAoIWJveCkKKyAgICAg
ICAgcmV0dXJuIHJlbmRlcmVyLnRleHRMZW5ndGgoKTsKKworICAgIGludCBtYXhPZmZzZXQgPSBi
b3gtPnN0YXJ0KCkgKyBib3gtPmxlbigpOworICAgIGZvciAoYm94ID0gYm94LT5wcmV2VGV4dEJv
eCgpOyBib3g7IGJveCA9IGJveC0+cHJldlRleHRCb3goKSkKKyAgICAgICAgbWF4T2Zmc2V0ID0g
c3RkOjptYXg8aW50PihtYXhPZmZzZXQsIGJveC0+c3RhcnQoKSArIGJveC0+bGVuKCkpOworICAg
IHJldHVybiBtYXhPZmZzZXQ7Cit9CisKICNpZiAhQVNTRVJUX0RJU0FCTEVECiBSZW5kZXJUZXh0
TGluZUJveGVzOjp+UmVuZGVyVGV4dExpbmVCb3hlcygpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmgJKHJldmlzaW9uIDE1NzM0MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDkgKzI2LDEyIEBACiAjaWZuZGVmIFJlbmRlclRleHRMaW5lQm94ZXNf
aAogI2RlZmluZSBSZW5kZXJUZXh0TGluZUJveGVzX2gKIAorI2luY2x1ZGUgIkxheW91dFJlY3Qu
aCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbmxpbmVUZXh0Qm94OworY2xhc3Mg
UmVuZGVyU3R5bGU7CiBjbGFzcyBSZW5kZXJUZXh0OwogCiBjbGFzcyBSZW5kZXJUZXh0TGluZUJv
eGVzIHsKQEAgLTQ4LDYgKzUxLDEzIEBAIHB1YmxpYzoKIAogICAgIElubGluZVRleHRCb3gqIGZp
bmROZXh0KGludCBvZmZzZXQsIGludCYgcG9zaXRpb24pIGNvbnN0OwogCisgICAgYm9vbCBoYXNS
ZW5kZXJlZFRleHQoKSBjb25zdDsKKyAgICBpbnQgY2FyZXRNaW5PZmZzZXQoKSBjb25zdDsKKyAg
ICBpbnQgY2FyZXRNYXhPZmZzZXQoY29uc3QgUmVuZGVyVGV4dCYpIGNvbnN0OworCisgICAgSW50
UmVjdCBib3VuZGluZ0JveChjb25zdCBSZW5kZXJUZXh0JikgY29uc3Q7CisgICAgTGF5b3V0UmVj
dCB2aXN1YWxPdmVyZmxvd0JvdW5kaW5nQm94KGNvbnN0IFJlbmRlclRleHQmKSBjb25zdDsKKwog
I2lmICFBU1NFUlRfRElTQUJMRUQKICAgICB+UmVuZGVyVGV4dExpbmVCb3hlcygpOwogI2VuZGlm
Cg==
</data>
<flag name="review"
          id="236549"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>