<?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>204550</bug_id>
          
          <creation_ts>2019-11-23 12:36:10 -0800</creation_ts>
          <short_desc>[LFC][IFC] Defer run height/baseline adjustment computation until Line::close</short_desc>
          <delta_ts>2019-11-23 13:36:42 -0800</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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1593223</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-11-23 12:36:10 -0800</bug_when>
    <thetext>Currently we measure and adjust the baseline/line height on each append ([foo][ ][bar] &lt;- 3 times) We can actually do it in one go after we&apos;ve merged the runs ([foo bar]).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593224</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-23 12:36:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/57454497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593225</commentid>
    <comment_count>2</comment_count>
      <attachid>384241</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-11-23 12:50:43 -0800</bug_when>
    <thetext>Created attachment 384241
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593230</commentid>
    <comment_count>3</comment_count>
      <attachid>384241</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-23 13:36:40 -0800</bug_when>
    <thetext>Comment on attachment 384241
Patch

Clearing flags on attachment: 384241

Committed r252835: &lt;https://trac.webkit.org/changeset/252835&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593231</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-23 13:36:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384241</attachid>
            <date>2019-11-23 12:50:43 -0800</date>
            <delta_ts>2019-11-23 13:36:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204550-20191123125018.patch</filename>
            <type>text/plain</type>
            <size>12560</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQ1Y2MyMTFhYjZiNDUy
Y2RjMWEyMzgxODg4YjczN2VkZjFhNGQyOS4uMzg5M2I2M2U3MzdkYjFhYmFiMDRiY2E4NTBjYjdk
Mjk0OTYzMTJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTExLTIzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBEZWZlciBy
dW4gaGVpZ2h0L2Jhc2VsaW5lIGFkanVzdG1lbnQgY29tcHV0YXRpb24gdW50aWwgTGluZTo6Y2xv
c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDU1
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTc0NTQ0OTc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IHdlIG1lYXN1cmUgcnVuIGhl
aWdodCBhbmQgYWRqdXN0IHRoZSBsaW5lJ3MgYmFzZWxpbmUvaGVpZ2h0IG9uIGV2ZXJ5IGFwcGVu
ZC4KKyAgICAgICAgV2UgY291bGQgZG8gYWxsIHRoYXQgaW4gTGluZTo6Y2xvc2UgYWZ0ZXIgd2Un
dmUgbWVyZ2VkIHRoZSBuZWlnaGJvcmluZyBydW5zLgorICAgICAgICAoW3RleHRdWyBdW2NvbnRl
bnRdIHZzLiBbdGV4dCBjb250ZW50XSkKKyAgICAgICAgVGhpcyBpcyBhYm91dCB+NSUgd2luIG9u
IGxpbmUtbGF5b3V0LXNpbXBsZS5odG1sCisKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YWxp
Z25Db250ZW50VmVydGljYWxseSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFw
cGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZElubGluZUNvbnRh
aW5lclN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5kSW5saW5l
Q29udGFpbmVyRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YXBwZW5kVGV4
dENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjphcHBlbmROb25SZXBs
YWNlZElubGluZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZExp
bmVCcmVhayk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFkanVzdEJhc2VsaW5l
QW5kTGluZUhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OnJ1bkNvbnRl
bnRIZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjphbGlnbkNv
bnRlbnRWZXJ0aWNhbGx5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGluZTo6aW5saW5lSXRlbUNvbnRlbnRIZWlnaHQgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGluZTo6UnVuOjpzZXRMb2dpY2FsSGVpZ2h0KToKKwogMjAxOS0xMS0yMiAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gUmVt
b3ZlIHVubmVjZXNzYXJ5IExpbmU6Omhhc0NvbnRlbnQoKSBjYWxscyBpbiBMaW5lTGF5b3V0Ojpw
bGFjZUlubGluZUl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lTGluZS5jcHAKaW5kZXggOGRlNmMxZjZiMmY3Yjg1YmI5YWIyNjcwMWZj
ODYwN2U5NmY0ZGJiOS4uZTIzZDliN2Y1OWQxZWI0YjRlYTAwODVlMDllOWYwYzU0MmY5MWQ4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
TGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lTGluZS5jcHAKQEAgLTMxNSw5ICszMTUsMTQgQEAgTGluZTo6UnVuTGlzdCBMaW5lOjpjbG9z
ZShJc0xhc3RMaW5lV2l0aElubGluZUNvbnRlbnQgaXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW4K
ICAgICByZXR1cm4gcnVuTGlzdDsKIH0KIAotdm9pZCBMaW5lOjphbGlnbkNvbnRlbnRWZXJ0aWNh
bGx5KFJ1bkxpc3QmIHJ1bkxpc3QpIGNvbnN0Cit2b2lkIExpbmU6OmFsaWduQ29udGVudFZlcnRp
Y2FsbHkoUnVuTGlzdCYgcnVuTGlzdCkKIHsKICAgICBBU1NFUlQoIW1fc2tpcEFsaWdubWVudCk7
CisgICAgZm9yIChhdXRvJiBydW4gOiBydW5MaXN0KSB7CisgICAgICAgIGFkanVzdEJhc2VsaW5l
QW5kTGluZUhlaWdodChydW4pOworICAgICAgICBydW4uc2V0TG9naWNhbEhlaWdodChydW5Db250
ZW50SGVpZ2h0KHJ1bikpOworICAgIH0KKwogICAgIGZvciAoYXV0byYgcnVuIDogcnVuTGlzdCkg
ewogICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxUb3A7CiAgICAgICAgIGF1dG8mIGxheW91dEJv
eCA9IHJ1bi5sYXlvdXRCb3goKTsKQEAgLTQ3OSwxMCArNDg0LDEwIEBAIHZvaWQgTGluZTo6bW92
ZUxvZ2ljYWxSaWdodChMYXlvdXRVbml0IGRlbHRhKQogCiB2b2lkIExpbmU6OmFwcGVuZChjb25z
dCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCkKIHsKKyAg
ICBpZiAoaW5saW5lSXRlbS5pc1RleHQoKSkKKyAgICAgICAgcmV0dXJuIGFwcGVuZFRleHRDb250
ZW50KGRvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKSwgbG9naWNhbFdpZHRoKTsK
ICAgICBpZiAoaW5saW5lSXRlbS5pc0ZvcmNlZExpbmVCcmVhaygpKQogICAgICAgICByZXR1cm4g
YXBwZW5kTGluZUJyZWFrKGlubGluZUl0ZW0pOwotICAgIGlmIChpczxJbmxpbmVUZXh0SXRlbT4o
aW5saW5lSXRlbSkpCi0gICAgICAgIHJldHVybiBhcHBlbmRUZXh0Q29udGVudChkb3duY2FzdDxJ
bmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSksIGxvZ2ljYWxXaWR0aCk7CiAgICAgaWYgKGlubGlu
ZUl0ZW0uaXNDb250YWluZXJTdGFydCgpKQogICAgICAgICByZXR1cm4gYXBwZW5kSW5saW5lQ29u
dGFpbmVyU3RhcnQoaW5saW5lSXRlbSwgbG9naWNhbFdpZHRoKTsKICAgICBpZiAoaW5saW5lSXRl
bS5pc0NvbnRhaW5lckVuZCgpKQpAQCAtNTAzLDIwICs1MDgsMTMgQEAgdm9pZCBMaW5lOjphcHBl
bmROb25CcmVha2FibGVTcGFjZShjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBE
aXNwbGF5OjoKIHZvaWQgTGluZTo6YXBwZW5kSW5saW5lQ29udGFpbmVyU3RhcnQoY29uc3QgSW5s
aW5lSXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpCiB7CiAgICAgLy8g
VGhpcyBpcyByZWFsbHkganVzdCBhIHBsYWNlaG9sZGVyIHRvIG1hcmsgdGhlIHN0YXJ0IG9mIHRo
ZSBpbmxpbmUgbGV2ZWwgY29udGFpbmVyIDxzcGFuPi4KLSAgICBhdXRvIGxvZ2ljYWxSZWN0ID0g
RGlzcGxheTo6UmVjdCB7IDAsIGNvbnRlbnRMb2dpY2FsV2lkdGgoKSwgbG9naWNhbFdpZHRoLCAw
IH07Ci0KLSAgICBpZiAoIW1fc2tpcEFsaWdubWVudCkgewotICAgICAgICBhZGp1c3RCYXNlbGlu
ZUFuZExpbmVIZWlnaHQoaW5saW5lSXRlbSk7Ci0gICAgICAgIGxvZ2ljYWxSZWN0LnNldEhlaWdo
dChpbmxpbmVJdGVtQ29udGVudEhlaWdodChpbmxpbmVJdGVtKSk7Ci0gICAgfQotICAgIGFwcGVu
ZE5vbkJyZWFrYWJsZVNwYWNlKGlubGluZUl0ZW0sIGxvZ2ljYWxSZWN0KTsKKyAgICBhcHBlbmRO
b25CcmVha2FibGVTcGFjZShpbmxpbmVJdGVtLCBEaXNwbGF5OjpSZWN0IHsgMCwgY29udGVudExv
Z2ljYWxXaWR0aCgpLCBsb2dpY2FsV2lkdGgsIHsgfSB9KTsKIH0KIAogdm9pZCBMaW5lOjphcHBl
bmRJbmxpbmVDb250YWluZXJFbmQoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGgpCiB7CiAgICAgLy8gVGhpcyBpcyByZWFsbHkganVzdCBhIHBsYWNl
aG9sZGVyIHRvIG1hcmsgdGhlIGVuZCBvZiB0aGUgaW5saW5lIGxldmVsIGNvbnRhaW5lciA8L3Nw
YW4+LgotICAgIGF1dG8gbG9naWNhbFJlY3QgPSBEaXNwbGF5OjpSZWN0IHsgMCwgY29udGVudExv
Z2ljYWxSaWdodCgpLCBsb2dpY2FsV2lkdGgsIG1fc2tpcEFsaWdubWVudCA/IExheW91dFVuaXQo
KSA6IGlubGluZUl0ZW1Db250ZW50SGVpZ2h0KGlubGluZUl0ZW0pIH07Ci0gICAgYXBwZW5kTm9u
QnJlYWthYmxlU3BhY2UoaW5saW5lSXRlbSwgbG9naWNhbFJlY3QpOworICAgIGFwcGVuZE5vbkJy
ZWFrYWJsZVNwYWNlKGlubGluZUl0ZW0sIERpc3BsYXk6OlJlY3QgeyAwLCBjb250ZW50TG9naWNh
bFJpZ2h0KCksIGxvZ2ljYWxXaWR0aCwgeyB9IH0pOwogfQogCiB2b2lkIExpbmU6OmFwcGVuZFRl
eHRDb250ZW50KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRVbml0IGxv
Z2ljYWxXaWR0aCkKQEAgLTU1NCwxOCArNTUyLDExIEBAIHZvaWQgTGluZTo6YXBwZW5kVGV4dENv
bnRlbnQoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZUl0ZW0sIExheW91dFVuaXQgbG9naWNh
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH07CiAKLSAgICBhdXRvIGxvZ2ljYWxSZWN0ID0g
RGlzcGxheTo6UmVjdCB7IH07Ci0gICAgbG9naWNhbFJlY3Quc2V0TGVmdChjb250ZW50TG9naWNh
bFdpZHRoKCkpOwotICAgIGxvZ2ljYWxSZWN0LnNldFdpZHRoKGxvZ2ljYWxXaWR0aCk7Ci0gICAg
aWYgKCFtX3NraXBBbGlnbm1lbnQpIHsKLSAgICAgICAgYWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVp
Z2h0KGlubGluZUl0ZW0pOwotICAgICAgICBsb2dpY2FsUmVjdC5zZXRIZWlnaHQoaW5saW5lSXRl
bUNvbnRlbnRIZWlnaHQoaW5saW5lSXRlbSkpOwotICAgIH0KLQogICAgIGF1dG8gY29sbGFwc2Vk
UnVuID0gaW5saW5lSXRlbS5pc0NvbGxhcHNpYmxlKCkgJiYgaW5saW5lSXRlbS5sZW5ndGgoKSA+
IDE7CiAgICAgYXV0byBjb250ZW50U3RhcnQgPSBpbmxpbmVJdGVtLnN0YXJ0KCk7CiAgICAgYXV0
byBjb250ZW50TGVuZ3RoID0gIGNvbGxhcHNlZFJ1biA/IDEgOiBpbmxpbmVJdGVtLmxlbmd0aCgp
OwotICAgIGF1dG8gbGluZVJ1biA9IG1ha2VVbmlxdWU8SW5saW5lSXRlbVJ1bj4oaW5saW5lSXRl
bSwgbG9naWNhbFJlY3QsIERpc3BsYXk6OlJ1bjo6VGV4dENvbnRleHQgeyBjb250ZW50U3RhcnQs
IGNvbnRlbnRMZW5ndGgsIGlubGluZUl0ZW0ubGF5b3V0Qm94KCkudGV4dENvbnRleHQoKS0+Y29u
dGVudC5zdWJzdHJpbmcoY29udGVudFN0YXJ0LCBjb250ZW50TGVuZ3RoKSB9KTsKKyAgICBhdXRv
IGxpbmVSdW4gPSBtYWtlVW5pcXVlPElubGluZUl0ZW1SdW4+KGlubGluZUl0ZW0sIERpc3BsYXk6
OlJlY3QgeyAwLCBjb250ZW50TG9naWNhbFdpZHRoKCksIGxvZ2ljYWxXaWR0aCwgeyB9IH0sCisg
ICAgICAgIERpc3BsYXk6OlJ1bjo6VGV4dENvbnRleHQgeyBjb250ZW50U3RhcnQsIGNvbnRlbnRM
ZW5ndGgsIGlubGluZUl0ZW0ubGF5b3V0Qm94KCkudGV4dENvbnRleHQoKS0+Y29udGVudC5zdWJz
dHJpbmcoY29udGVudFN0YXJ0LCBjb250ZW50TGVuZ3RoKSB9KTsKIAogICAgIGF1dG8gY29sbGFw
c2VzVG9aZXJvQWR2YW5jZVdpZHRoID0gd2lsbENvbGxhcHNlQ29tcGxldGVseSgpOwogICAgIGlm
IChjb2xsYXBzZXNUb1plcm9BZHZhbmNlV2lkdGgpCkBAIC01ODQsMTkgKzU3NSw4IEBAIHZvaWQg
TGluZTo6YXBwZW5kVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZUl0ZW0s
IExheW91dFVuaXQgbG9naWNhCiAKIHZvaWQgTGluZTo6YXBwZW5kTm9uUmVwbGFjZWRJbmxpbmVC
b3goY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgp
CiB7Ci0gICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5
Rm9yQm94KGlubGluZUl0ZW0ubGF5b3V0Qm94KCkpOwotICAgIGF1dG8gaG9yaXpvbnRhbE1hcmdp
biA9IGJveEdlb21ldHJ5Lmhvcml6b250YWxNYXJnaW4oKTsKLSAgICBhdXRvIGxvZ2ljYWxSZWN0
ID0gRGlzcGxheTo6UmVjdCB7IH07Ci0KLSAgICBsb2dpY2FsUmVjdC5zZXRMZWZ0KGNvbnRlbnRM
b2dpY2FsV2lkdGgoKSArIGhvcml6b250YWxNYXJnaW4uc3RhcnQpOwotICAgIGxvZ2ljYWxSZWN0
LnNldFdpZHRoKGxvZ2ljYWxXaWR0aCk7Ci0gICAgaWYgKCFtX3NraXBBbGlnbm1lbnQpIHsKLSAg
ICAgICAgYWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KGlubGluZUl0ZW0pOwotICAgICAgICBh
dXRvIHJ1bkhlaWdodCA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goaW5saW5l
SXRlbS5sYXlvdXRCb3goKSkubWFyZ2luQm94SGVpZ2h0KCk7Ci0gICAgICAgIGxvZ2ljYWxSZWN0
LnNldEhlaWdodChydW5IZWlnaHQpOwotICAgIH0KLQotICAgIG1faW5saW5lSXRlbVJ1bnMuYXBw
ZW5kKG1ha2VVbmlxdWU8SW5saW5lSXRlbVJ1bj4oaW5saW5lSXRlbSwgbG9naWNhbFJlY3QpKTsK
KyAgICBhdXRvIGhvcml6b250YWxNYXJnaW4gPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5
Rm9yQm94KGlubGluZUl0ZW0ubGF5b3V0Qm94KCkpLmhvcml6b250YWxNYXJnaW4oKTsKKyAgICBt
X2lubGluZUl0ZW1SdW5zLmFwcGVuZChtYWtlVW5pcXVlPElubGluZUl0ZW1SdW4+KGlubGluZUl0
ZW0sIERpc3BsYXk6OlJlY3QgeyAwLCBjb250ZW50TG9naWNhbFdpZHRoKCkgKyBob3Jpem9udGFs
TWFyZ2luLnN0YXJ0LCBsb2dpY2FsV2lkdGgsIHsgfSB9KSk7CiAgICAgbV9saW5lQm94LmV4cGFu
ZEhvcml6b250YWxseShsb2dpY2FsV2lkdGggKyBob3Jpem9udGFsTWFyZ2luLnN0YXJ0ICsgaG9y
aXpvbnRhbE1hcmdpbi5lbmQpOwogICAgIG1fbGluZUJveC5zZXRJc0NvbnNpZGVyZWROb25FbXB0
eSgpOwogICAgIG1fdHJpbW1hYmxlQ29udGVudC5jbGVhcigpOwpAQCAtNjEyLDI1ICs1OTIsMjgg
QEAgdm9pZCBMaW5lOjphcHBlbmRSZXBsYWNlZElubGluZUJveChjb25zdCBJbmxpbmVJdGVtJiBp
bmxpbmVJdGVtLCBMYXlvdXRVbml0IGxvZ2kKIAogdm9pZCBMaW5lOjphcHBlbmRMaW5lQnJlYWso
Y29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSkKIHsKLSAgICBhdXRvIGxvZ2ljYWxSZWN0ID0g
RGlzcGxheTo6UmVjdCB7IH07Ci0gICAgbG9naWNhbFJlY3Quc2V0TGVmdChjb250ZW50TG9naWNh
bFdpZHRoKCkpOwotICAgIGxvZ2ljYWxSZWN0LnNldFdpZHRoKHsgfSk7Ci0gICAgaWYgKCFtX3Nr
aXBBbGlnbm1lbnQpIHsKLSAgICAgICAgYWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KGlubGlu
ZUl0ZW0pOwotICAgICAgICBsb2dpY2FsUmVjdC5zZXRIZWlnaHQobG9naWNhbEhlaWdodCgpKTsK
LSAgICB9CiAgICAgbV9saW5lQm94LnNldElzQ29uc2lkZXJlZE5vbkVtcHR5KCk7Ci0gICAgbV9p
bmxpbmVJdGVtUnVucy5hcHBlbmQobWFrZVVuaXF1ZTxJbmxpbmVJdGVtUnVuPihpbmxpbmVJdGVt
LCBsb2dpY2FsUmVjdCkpOworICAgIG1faW5saW5lSXRlbVJ1bnMuYXBwZW5kKG1ha2VVbmlxdWU8
SW5saW5lSXRlbVJ1bj4oaW5saW5lSXRlbSwgRGlzcGxheTo6UmVjdCB7IDAsIGNvbnRlbnRMb2dp
Y2FsV2lkdGgoKSwgeyB9LCB7IH0gfSkpOwogfQogCi12b2lkIExpbmU6OmFkanVzdEJhc2VsaW5l
QW5kTGluZUhlaWdodChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtKQordm9pZCBMaW5lOjph
ZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29uc3QgUnVuJiBydW4pCiB7Ci0gICAgQVNTRVJU
KCFpbmxpbmVJdGVtLmlzQ29udGFpbmVyRW5kKCkpOwotICAgIGF1dG8mIGxheW91dEJveCA9IGlu
bGluZUl0ZW0ubGF5b3V0Qm94KCk7Ci0gICAgYXV0byYgc3R5bGUgPSBsYXlvdXRCb3guc3R5bGUo
KTsKICAgICBhdXRvJiBiYXNlbGluZSA9IG1fbGluZUJveC5iYXNlbGluZSgpOworICAgIGlmIChy
dW4uaXNUZXh0KCkgfHwgcnVuLmlzRm9yY2VkTGluZUJyZWFrKCkpIHsKKyAgICAgICAgLy8gRm9y
IHRleHQgY29udGVudCB3ZSBzZXQgdGhlIGJhc2VsaW5lIGVpdGhlciB0aHJvdWdoIHRoZSBpbml0
aWFsIHN0cnV0IChzZXQgYnkgdGhlIGZvcm1hdHRpbmcgY29udGV4dCByb290KSBvcgorICAgICAg
ICAvLyB0aHJvdWdoIHRoZSBpbmxpbmUgY29udGFpbmVyIChzdGFydCkgLXNlZSBhYm92ZS4gTm9y
bWFsbHkgdGhlIHRleHQgY29udGVudCBpdHNlbGYgZG9lcyBub3Qgc3RyZXRjaCB0aGUgbGluZS4K
KyAgICAgICAgaWYgKCFtX2luaXRpYWxTdHJ1dCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgbV9saW5lQm94LnNldEFzY2VudElmR3JlYXRlcihtX2luaXRpYWxTdHJ1dC0+YXNjZW50KCkp
OworICAgICAgICBtX2xpbmVCb3guc2V0RGVzY2VudElmR3JlYXRlcihtX2luaXRpYWxTdHJ1dC0+
ZGVzY2VudCgpKTsKKyAgICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIo
YmFzZWxpbmUuaGVpZ2h0KCkpOworICAgICAgICBtX2luaXRpYWxTdHJ1dCA9IHsgfTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KIAotICAgIGlmIChpbmxpbmVJdGVtLmlzQ29udGFpbmVyU3RhcnQo
KSkgeworICAgIGF1dG8mIGxheW91dEJveCA9IHJ1bi5sYXlvdXRCb3goKTsKKyAgICBhdXRvJiBz
dHlsZSA9IGxheW91dEJveC5zdHlsZSgpOworICAgIGlmIChydW4uaXNDb250YWluZXJTdGFydCgp
KSB7CiAgICAgICAgIC8vIElubGluZSBjb250YWluZXJzIHN0cmV0Y2ggdGhlIGxpbmUgYnkgdGhl
aXIgZm9udCBzaXplLgogICAgICAgICAvLyBWZXJ0aWNhbCBtYXJnaW5zLCBwYWRkaW5ncyBhbmQg
Ym9yZGVycyBkb24ndCBjb250cmlidXRlIHRvIHRoZSBsaW5lIGhlaWdodC4KICAgICAgICAgYXV0
byYgZm9udE1ldHJpY3MgPSBzdHlsZS5mb250TWV0cmljcygpOwpAQCAtNjQ3LDE5ICs2MzAsMTIg
QEAgdm9pZCBMaW5lOjphZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29uc3QgSW5saW5lSXRl
bSYgaW5saW5lSXRlbSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChpbmxpbmVJ
dGVtLmlzVGV4dCgpIHx8IGlubGluZUl0ZW0uaXNGb3JjZWRMaW5lQnJlYWsoKSkgewotICAgICAg
ICAvLyBGb3IgdGV4dCBjb250ZW50IHdlIHNldCB0aGUgYmFzZWxpbmUgZWl0aGVyIHRocm91Z2gg
dGhlIGluaXRpYWwgc3RydXQgKHNldCBieSB0aGUgZm9ybWF0dGluZyBjb250ZXh0IHJvb3QpIG9y
Ci0gICAgICAgIC8vIHRocm91Z2ggdGhlIGlubGluZSBjb250YWluZXIgKHN0YXJ0KSAtc2VlIGFi
b3ZlLiBOb3JtYWxseSB0aGUgdGV4dCBjb250ZW50IGl0c2VsZiBkb2VzIG5vdCBzdHJldGNoIHRo
ZSBsaW5lLgotICAgICAgICBpZiAoIW1faW5pdGlhbFN0cnV0KQotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBtX2xpbmVCb3guc2V0QXNjZW50SWZHcmVhdGVyKG1faW5pdGlhbFN0cnV0LT5h
c2NlbnQoKSk7Ci0gICAgICAgIG1fbGluZUJveC5zZXREZXNjZW50SWZHcmVhdGVyKG1faW5pdGlh
bFN0cnV0LT5kZXNjZW50KCkpOwotICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElm
R3JlYXRlcihiYXNlbGluZS5oZWlnaHQoKSk7Ci0gICAgICAgIG1faW5pdGlhbFN0cnV0ID0geyB9
OworICAgIGlmIChydW4uaXNDb250YWluZXJFbmQoKSkgeworICAgICAgICAvLyBUaGUgbGluZSdz
IGJhc2VsaW5lIGFuZCBoZWlnaHQgaGF2ZSBhbHJlYWR5IGJlZW4gYWRqdXN0ZWQgYXQgQ29udGFp
bmVyU3RhcnQuCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoaW5saW5lSXRlbS5p
c0JveCgpKSB7CisgICAgaWYgKHJ1bi5pc0JveCgpKSB7CiAgICAgICAgIGF1dG8mIGJveEdlb21l
dHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChsYXlvdXRCb3gpOwogICAg
ICAgICBhdXRvIG1hcmdpbkJveEhlaWdodCA9IGJveEdlb21ldHJ5Lm1hcmdpbkJveEhlaWdodCgp
OwogCkBAIC03MDgsMTcgKzY4NCwxNyBAQCB2b2lkIExpbmU6OmFkanVzdEJhc2VsaW5lQW5kTGlu
ZUhlaWdodChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtKQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi1MYXlvdXRVbml0IExpbmU6OmlubGluZUl0ZW1Db250ZW50SGVpZ2h0KGNv
bnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0pIGNvbnN0CitMYXlvdXRVbml0IExpbmU6OnJ1bkNv
bnRlbnRIZWlnaHQoY29uc3QgUnVuJiBydW4pIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFtX3NraXBB
bGlnbm1lbnQpOwotICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gaW5saW5lSXRlbS5zdHlsZSgpLmZv
bnRNZXRyaWNzKCk7Ci0gICAgaWYgKGlubGluZUl0ZW0uaXNGb3JjZWRMaW5lQnJlYWsoKSB8fCBp
czxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSkpCisgICAgYXV0byYgZm9udE1ldHJpY3MgPSBy
dW4ubGF5b3V0Qm94KCkuc3R5bGUoKS5mb250TWV0cmljcygpOworICAgIGlmIChydW4uaXNUZXh0
KCkgfHwgcnVuLmlzRm9yY2VkTGluZUJyZWFrKCkpCiAgICAgICAgIHJldHVybiBmb250TWV0cmlj
cy5oZWlnaHQoKTsKIAotICAgIGlmIChpbmxpbmVJdGVtLmlzQ29udGFpbmVyU3RhcnQoKSB8fCBp
bmxpbmVJdGVtLmlzQ29udGFpbmVyRW5kKCkpCisgICAgaWYgKHJ1bi5pc0NvbnRhaW5lclN0YXJ0
KCkgfHwgcnVuLmlzQ29udGFpbmVyRW5kKCkpCiAgICAgICAgIHJldHVybiBmb250TWV0cmljcy5o
ZWlnaHQoKTsKIAotICAgIGF1dG8mIGxheW91dEJveCA9IGlubGluZUl0ZW0ubGF5b3V0Qm94KCk7
CisgICAgYXV0byYgbGF5b3V0Qm94ID0gcnVuLmxheW91dEJveCgpOwogICAgIGF1dG8mIGJveEdl
b21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChsYXlvdXRCb3gpOwog
ICAgIGlmIChsYXlvdXRCb3gucmVwbGFjZWQoKSB8fCBsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0
aW9uZWQoKSkKICAgICAgICAgcmV0dXJuIGJveEdlb21ldHJ5LmNvbnRlbnRCb3hIZWlnaHQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxp
bmUuaAppbmRleCA3MDc3MTkxZTg1OTM5ZmRjNzM4ZGE1NTUwMmU3YmU3OTllOThhNDJmLi42ZDlh
NGQ1ODNiNWMzY2M2NjAyMzYwNDBkMTcxZDI0NzZkZWY2NGFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5oCkBAIC05MSw2ICs5
MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdm9pZCBhZGp1c3RMb2dpY2FsVG9wKExheW91dFVuaXQg
bG9naWNhbFRvcCkgeyBtX2xvZ2ljYWxSZWN0LnNldFRvcChsb2dpY2FsVG9wKTsgfQogICAgICAg
ICB2b2lkIG1vdmVIb3Jpem9udGFsbHkoTGF5b3V0VW5pdCBvZmZzZXQpIHsgbV9sb2dpY2FsUmVj
dC5tb3ZlSG9yaXpvbnRhbGx5KG9mZnNldCk7IH0KICAgICAgICAgdm9pZCBtb3ZlVmVydGljYWxs
eShMYXlvdXRVbml0IG9mZnNldCkgeyBtX2xvZ2ljYWxSZWN0Lm1vdmVWZXJ0aWNhbGx5KG9mZnNl
dCk7IH0KKyAgICAgICAgdm9pZCBzZXRMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbG9naWNhbEhl
aWdodCkgeyBtX2xvZ2ljYWxSZWN0LnNldEhlaWdodChsb2dpY2FsSGVpZ2h0KTsgfQogCiAgICAg
ICAgIGJvb2wgaGFzRXhwYW5zaW9uT3Bwb3J0dW5pdHkoKSBjb25zdCB7IHJldHVybiBtX2V4cGFu
c2lvbk9wcG9ydHVuaXR5Q291bnQ7IH0KICAgICAgICAgT3B0aW9uYWw8RXhwYW5zaW9uQmVoYXZp
b3I+IGV4cGFuc2lvbkJlaGF2aW9yKCkgY29uc3Q7CkBAIC0xMzUsMTAgKzEzNiwxMCBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCByZW1vdmVUcmFpbGluZ1RyaW1tYWJsZUNvbnRlbnQoKTsKICAgICB2
b2lkIGFsaWduQ29udGVudEhvcml6b250YWxseShSdW5MaXN0JiwgSXNMYXN0TGluZVdpdGhJbmxp
bmVDb250ZW50KSBjb25zdDsKLSAgICB2b2lkIGFsaWduQ29udGVudFZlcnRpY2FsbHkoUnVuTGlz
dCYpIGNvbnN0OworICAgIHZvaWQgYWxpZ25Db250ZW50VmVydGljYWxseShSdW5MaXN0Jik7CiAK
LSAgICB2b2lkIGFkanVzdEJhc2VsaW5lQW5kTGluZUhlaWdodChjb25zdCBJbmxpbmVJdGVtJik7
Ci0gICAgTGF5b3V0VW5pdCBpbmxpbmVJdGVtQ29udGVudEhlaWdodChjb25zdCBJbmxpbmVJdGVt
JikgY29uc3Q7CisgICAgdm9pZCBhZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29uc3QgUnVu
Jik7CisgICAgTGF5b3V0VW5pdCBydW5Db250ZW50SGVpZ2h0KGNvbnN0IFJ1biYpIGNvbnN0Owog
ICAgIGJvb2wgaXNWaXN1YWxseUVtcHR5KCkgY29uc3Q7CiAKICAgICBib29sIGlzVGV4dEFsaWdu
SnVzdGlmeSgpIGNvbnN0IHsgcmV0dXJuIG1faG9yaXpvbnRhbEFsaWdubWVudCA9PSBUZXh0QWxp
Z25Nb2RlOjpKdXN0aWZ5OyB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>