<?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>216881</bug_id>
          
          <creation_ts>2020-09-23 08:29:34 -0700</creation_ts>
          <short_desc>[LFC][IFC] Precompute the collapsible trailing width for LineBreaker</short_desc>
          <delta_ts>2020-09-23 12:35:19 -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>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>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>1691119</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-09-23 08:29:34 -0700</bug_when>
    <thetext>instead of looping through the candidate runs in LineBreaker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691121</commentid>
    <comment_count>1</comment_count>
      <attachid>409477</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-23 08:37:31 -0700</bug_when>
    <thetext>Created attachment 409477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691191</commentid>
    <comment_count>2</comment_count>
      <attachid>409477</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-09-23 11:28:20 -0700</bug_when>
    <thetext>Comment on attachment 409477
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=409477&amp;action=review

&gt; Source/WebCore/layout/inlineformatting/InlineLineBuilder.cpp:240
&gt; +    if (isFullyCollapsible())
&gt; +        m_collapsibleTrailingWidth += logicalWidth;
&gt; +    else {

Can this early return avoiding the else branch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691208</commentid>
    <comment_count>3</comment_count>
      <attachid>409493</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-23 12:02:54 -0700</bug_when>
    <thetext>Created attachment 409493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691210</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-09-23 12:03:40 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #2)
&gt; Comment on attachment 409477 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=409477&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/inlineformatting/InlineLineBuilder.cpp:240
&gt; &gt; +    if (isFullyCollapsible())
&gt; &gt; +        m_collapsibleTrailingWidth += logicalWidth;
&gt; &gt; +    else {
&gt; 
&gt; Can this early return avoiding the else branch?
absolutely!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691221</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-23 12:34:49 -0700</bug_when>
    <thetext>Committed r267494: &lt;https://trac.webkit.org/changeset/267494&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409493.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691223</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-23 12:35:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/69451507&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409477</attachid>
            <date>2020-09-23 08:37:31 -0700</date>
            <delta_ts>2020-09-23 12:02:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216881-20200923083730.patch</filename>
            <type>text/plain</type>
            <size>14654</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA2N2Q1ZWRjNDQ5NTNi
NzkzMzNlZmZiYmI1ZGEyMzdiOGNhOTYyNy4uYzk0ODRmMWNiZWI4NWY1MzNjMWI3N2Y4Nzc3N2Qz
NTljODE4NzQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA5LTIzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBQcmVjb21w
dXRlIHRoZSBjb2xsYXBzaWJsZSB0cmFpbGluZyB3aWR0aCBmb3IgTGluZUJyZWFrZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjg4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCdzIGp1c3QgY29t
cHV0ZSB0aGUgY29sbGFwc2libGUgdHJhaWxpbmcgd2lkdGggd2hpbGUgYWRkaW5nIGlubGluZSBj
b250ZW50IHRvIExpbmVDYW5kaWRhdGUgaW5zdGVhZCBvZgorICAgICAgICByZXZlcnNlIGxvb3Bp
bmcgdGhyb3VnaCB0aGUgcnVucyBpbiBMaW5lQnJlYWtlci4KKyAgICAgICAgVGhpcyBpcyBhbHNv
IGluIHByZXBhcmF0aW9uIGZvciByZWR1Y2luZyB0aGUgbnVtYmVyIG9mIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkIGNhbGxz
LgorCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpDb250aW51b3VzQ29udGVudDo6aGFzVHJh
aWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpDb250aW51b3VzQ29udGVudDo6aXNGdWxseUNvbGxhcHNpYmxlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OnNob3VsZEtlZXBFbmRPZkxpbmVXaGl0ZXNw
YWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OnNob3Vs
ZFdyYXBJbmxpbmVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFr
ZXI6OnRyeVdyYXBwaW5nSW5saW5lQ29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkNvbnRpbnVvdXNDb250ZW50OjpDb250aW51b3VzQ29udGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkNvbnRpbnVvdXNDb250ZW50Ojpub25Db2xsYXBzaWJsZUxvZ2ljYWxX
aWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkNvbnRpbnVvdXNDb250ZW50
Ojppc1RyYWlsaW5nQ29udGVudEZ1bGx5Q29sbGFwc2libGUgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpDb250aW51b3VzQ29udGVudDo6VHJhaWxpbmdDb2xsYXBz
aWJsZUNvbnRlbnQ6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5oOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29udGVudDo6Y29sbGFwc2libGVUcmFpbGluZ1dpZHRoIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29u
dGVudDo6YXBwZW5kSW5saW5lSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVD
YW5kaWRhdGU6OklubGluZUNvbnRlbnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGluZUJ1aWxkZXI6OmhhbmRsZUZsb2F0c0FuZElubGluZUNvbnRlbnQpOgorCiAyMDIwLTA5
LTIzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZD
XSBSZW1vdmUgcmVkdW5kYW50IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmxheW91dEZvcm1hdHRp
bmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkIGZyb20gTGluZTo6UnVuOjpoYXNUcmFpbGluZ0xl
dHRlclNwYWNpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcAppbmRleCBkMzEyMWY5ZmU1ZGExMmQ3
YTY2ZjgzMzE0MzZjYjlkNWNhNzA2NDMxLi4yMjA5MTNlMTBhOWM5ZTY5YjUyOGNmOGVhZjc1ZTdk
YjQ0OGVkMWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3BwCkBAIC0zMiw3ICszMiw2IEBACiAj
aW5jbHVkZSAiSHlwaGVuYXRpb24uaCIKICNpbmNsdWRlICJJbmxpbmVJdGVtLmgiCiAjaW5jbHVk
ZSAiSW5saW5lVGV4dEl0ZW0uaCIKLSNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgi
CiAjaW5jbHVkZSAiVGV4dFV0aWwuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzIsMjMg
KzcxLDE2IEBAIHN0cnVjdCBDb250aW51b3VzQ29udGVudCB7CiAgICAgYm9vbCBoYXNOb25Db250
ZW50UnVuc09ubHkoKSBjb25zdDsKICAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fY2FuZGlkYXRlQ29udGVudC5sb2dpY2FsV2lkdGg7IH0KICAgICBJ
bmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9jYW5kaWRhdGVD
b250ZW50LmxvZ2ljYWxMZWZ0OyB9Ci0gICAgSW5saW5lTGF5b3V0VW5pdCBub25Db2xsYXBzaWJs
ZUxvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGxvZ2ljYWxXaWR0aCgpIC0gbV90cmFpbGlu
Z0NvbGxhcHNpYmxlQ29udGVudC53aWR0aDsgfQorICAgIElubGluZUxheW91dFVuaXQgbm9uQ29s
bGFwc2libGVMb2dpY2FsV2lkdGgoKSBjb25zdDsKIAotICAgIGJvb2wgaGFzVHJhaWxpbmdDb2xs
YXBzaWJsZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiAhIW1fdHJhaWxpbmdDb2xsYXBzaWJsZUNv
bnRlbnQud2lkdGg7IH0KLSAgICBib29sIGlzVHJhaWxpbmdDb250ZW50RnVsbHlDb2xsYXBzaWJs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQuaXNGdWxseUNv
bGxhcHNpYmxlOyB9CisgICAgYm9vbCBoYXNUcmFpbGluZ0NvbGxhcHNpYmxlQ29udGVudCgpIGNv
bnN0IHsgcmV0dXJuICEhbV9jYW5kaWRhdGVDb250ZW50LmNvbGxhcHNpYmxlVHJhaWxpbmdXaWR0
aDsgfQorICAgIGJvb2wgaXNGdWxseUNvbGxhcHNpYmxlKCkgY29uc3QgeyByZXR1cm4gIW5vbkNv
bGxhcHNpYmxlTG9naWNhbFdpZHRoKCk7IH0KIAogICAgIE9wdGlvbmFsPHNpemVfdD4gZmlyc3RU
ZXh0UnVuSW5kZXgoKSBjb25zdDsKICAgICBPcHRpb25hbDxzaXplX3Q+IGxhc3RDb250ZW50UnVu
SW5kZXgoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBjb25zdCBMaW5lQnJlYWtlcjo6Q2FuZGlk
YXRlQ29udGVudCYgbV9jYW5kaWRhdGVDb250ZW50OwotICAgIHN0cnVjdCBUcmFpbGluZ0NvbGxh
cHNpYmxlQ29udGVudCB7Ci0gICAgICAgIHZvaWQgcmVzZXQoKTsKLQotICAgICAgICBib29sIGlz
RnVsbHlDb2xsYXBzaWJsZSB7IGZhbHNlIH07Ci0gICAgICAgIElubGluZUxheW91dFVuaXQgd2lk
dGggeyAwIH07Ci0gICAgfTsKLSAgICBUcmFpbGluZ0NvbGxhcHNpYmxlQ29udGVudCBtX3RyYWls
aW5nQ29sbGFwc2libGVDb250ZW50OwogfTsKIAogc3RydWN0IFdyYXBwZWRUZXh0Q29udGVudCB7
CkBAIC0xMDcsOCArOTksOCBAQCBib29sIExpbmVCcmVha2VyOjppc0NvbnRlbnRXcmFwcGluZ0Fs
bG93ZWQoY29uc3QgQ29udGludW91c0NvbnRlbnQmIGNvbnRpbnVvdXNDbwogCiBib29sIExpbmVC
cmVha2VyOjpzaG91bGRLZWVwRW5kT2ZMaW5lV2hpdGVzcGFjZShjb25zdCBDb250aW51b3VzQ29u
dGVudCYgY29udGludW91c0NvbnRlbnQpIGNvbnN0CiB7Ci0gICAgLy8gR3JhYiB0aGUgc3R5bGUg
YW5kIGNoZWNrIGZvciB3aGl0ZS1zcGFjZSBwcm9wZXJ0eSB0byBkZWNpZGVkIHdoZXRoZXIgd2Ug
c2hvdWxkIGxldCB0aGlzIHdoaXRlc3BhY2UgY29udGVudCBvdmVyZmxvdyB0aGUgY3VycmVudCBs
aW5lLgotICAgIC8vIE5vdGUgdGhhdCB0aGUgImtlZXAiIGluIHRoZSBjb250ZXh0IG1lYW5zIHdl
IGxldCB0aGUgd2hpdGVzcGFjZSBjb250ZW50IHNpdCBvbiB0aGUgY3VycmVudCBsaW5lLgorICAg
IC8vIEdyYWIgdGhlIHN0eWxlIGFuZCBjaGVjayBmb3Igd2hpdGUtc3BhY2UgcHJvcGVydHkgdG8g
ZGVjaWRlIHdoZXRoZXIgd2Ugc2hvdWxkIGxldCB0aGlzIHdoaXRlc3BhY2UgY29udGVudCBvdmVy
ZmxvdyB0aGUgY3VycmVudCBsaW5lLgorICAgIC8vIE5vdGUgdGhhdCB0aGUgImtlZXAiIGluIHRo
aXMgY29udGV4dCBtZWFucyB3ZSBsZXQgdGhlIHdoaXRlc3BhY2UgY29udGVudCBzaXQgb24gdGhl
IGN1cnJlbnQgbGluZS4KICAgICAvLyBJdCBtaWdodCB2ZXJ5IHdlbGwgZ2V0IGNvbGxhcHNlZCB3
aGVuIHdlIGNsb3NlIHRoZSBsaW5lIChub3JtYWwvbm93cmFwL3ByZS1saW5lKS4KICAgICAvLyBT
ZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy10ZXh0LTMvI3doaXRlLXNwYWNlLXByb3BlcnR5
CiAgICAgYXV0byB3aGl0ZXNwYWNlID0gY29udGludW91c0NvbnRlbnQucnVucygpWypjb250aW51
b3VzQ29udGVudC5maXJzdFRleHRSdW5JbmRleCgpXS5pbmxpbmVJdGVtLnN0eWxlKCkud2hpdGVT
cGFjZSgpOwpAQCAtMTIxLDcgKzExMyw3IEBAIExpbmVCcmVha2VyOjpSZXN1bHQgTGluZUJyZWFr
ZXI6OnNob3VsZFdyYXBJbmxpbmVDb250ZW50KGNvbnN0IENhbmRpZGF0ZUNvbnRlbnQmCiAgICAg
ICAgIGlmIChjYW5kaWRhdGVDb250ZW50LmxvZ2ljYWxXaWR0aCA8PSBsaW5lU3RhdHVzLmF2YWls
YWJsZVdpZHRoKQogICAgICAgICAgICAgcmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpL
ZWVwIH07CiAjaWYgVVNFX0ZMT0FUX0FTX0lOTElORV9MQVlPVVRfVU5JVAotICAgICAgICAvLyBQ
cmVmZXJyZWQgd2lkdGggY29tcHV0YXRpb24gc3VtcyB1cCBmbG9hdHMgd2hpbGUgbGluZSBicmVh
a2VyIHN1YnN0cmFjdHMgdGhlbS4gVGhpcyBjYW4gbGVhZCB0byBlcHNpbG9uLXNjYWxlIGRpZmZl
cmVuY2VzLgorICAgICAgICAvLyBQcmVmZXJyZWQgd2lkdGggY29tcHV0YXRpb24gc3VtcyB1cCBm
bG9hdHMgd2hpbGUgbGluZSBicmVha2VyIHN1YnRyYWN0cyB0aGVtLiBUaGlzIGNhbiBsZWFkIHRv
IGVwc2lsb24tc2NhbGUgZGlmZmVyZW5jZXMuCiAgICAgICAgIGlmIChXVEY6OmFyZUVzc2VudGlh
bGx5RXF1YWwoY2FuZGlkYXRlQ29udGVudC5sb2dpY2FsV2lkdGgsIGxpbmVTdGF0dXMuYXZhaWxh
YmxlV2lkdGgpKQogICAgICAgICAgICAgcmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpL
ZWVwIH07CiAjZW5kaWYKQEAgLTE2Miw3ICsxNTQsNyBAQCBMaW5lQnJlYWtlcjo6UmVzdWx0IExp
bmVCcmVha2VyOjp0cnlXcmFwcGluZ0lubGluZUNvbnRlbnQoY29uc3QgQ2FuZGlkYXRlQ29udGVu
dAogICAgICAgICBpZiAoY29udGludW91c0NvbnRlbnQubm9uQ29sbGFwc2libGVMb2dpY2FsV2lk
dGgoKSA8PSBsaW5lU3RhdHVzLmF2YWlsYWJsZVdpZHRoKQogICAgICAgICAgICAgcmV0dXJuIHsg
UmVzdWx0OjpBY3Rpb246OktlZXAsIElzRW5kT2ZMaW5lIH07CiAgICAgICAgIC8vIE5vdyBjaGVj
ayBpZiB3ZSBjYW4gdHJpbSB0aGUgbGluZSB0b28uCi0gICAgICAgIGlmIChsaW5lU3RhdHVzLmxp
bmVIYXNGdWxseUNvbGxhcHNpYmxlVHJhaWxpbmdSdW4gJiYgY29udGludW91c0NvbnRlbnQuaXNU
cmFpbGluZ0NvbnRlbnRGdWxseUNvbGxhcHNpYmxlKCkpIHsKKyAgICAgICAgaWYgKGxpbmVTdGF0
dXMubGluZUhhc0Z1bGx5Q29sbGFwc2libGVUcmFpbGluZ1J1biAmJiBjb250aW51b3VzQ29udGVu
dC5pc0Z1bGx5Q29sbGFwc2libGUoKSkgewogICAgICAgICAgICAgLy8gSWYgdGhpcyBuZXcgY29u
dGVudCBpcyBmdWxseSBjb2xsYXBzaWJsZSwgaXQgc2hvdWxkIHN1cmVseSBmaXQuCiAgICAgICAg
ICAgICByZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6S2VlcCwgSXNFbmRPZkxpbmUgfTsKICAgICAg
ICAgfQpAQCAtMzU1LDM1ICszNDcsMTIgQEAgT3B0aW9uYWw8TGluZUJyZWFrZXI6OlBhcnRpYWxS
dW4+IExpbmVCcmVha2VyOjp0cnlCcmVha2luZ1RleHRSdW4oY29uc3QgUnVuJiBvdmUKIENvbnRp
bnVvdXNDb250ZW50OjpDb250aW51b3VzQ29udGVudChjb25zdCBMaW5lQnJlYWtlcjo6Q2FuZGlk
YXRlQ29udGVudCYgY2FuZGlkYXRlQ29udGVudCkKICAgICA6IG1fY2FuZGlkYXRlQ29udGVudChj
YW5kaWRhdGVDb250ZW50KQogewotICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHRyYWlsaW5nIGNvbGxh
cHNpYmxlIHN0YXRlLgotICAgIGZvciAoYXV0byYgcnVuIDogV1RGOjptYWtlUmV2ZXJzZWRSYW5n
ZShydW5zKCkpKSB7Ci0gICAgICAgIGF1dG8mIGlubGluZUl0ZW0gPSBydW4uaW5saW5lSXRlbTsK
LSAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNCb3goKSkgewotICAgICAgICAgICAgLy8gV2UgZGlk
IHJlYWNoIGEgbm9uLWNvbGxhcHNpYmxlIGNvbnRlbnQuIFdlIGhhdmUgYWxsIHRoZSB0cmFpbGlu
ZyB3aGl0ZXNwYWNlIG5vdy4KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAg
IGlmIChpbmxpbmVJdGVtLmlzVGV4dCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBpbmxpbmVUZXh0
SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKTsKLSAgICAgICAgICAg
IGF1dG8gaXNGdWxseUNvbGxhcHNpYmxlID0gWyZdIHsKLSAgICAgICAgICAgICAgICByZXR1cm4g
aW5saW5lVGV4dEl0ZW0uaXNXaGl0ZXNwYWNlKCkgJiYgIVRleHRVdGlsOjpzaG91bGRQcmVzZXJ2
ZVRyYWlsaW5nV2hpdGVzcGFjZShpbmxpbmVUZXh0SXRlbS5zdHlsZSgpKTsKLSAgICAgICAgICAg
IH07Ci0gICAgICAgICAgICBpZiAoaXNGdWxseUNvbGxhcHNpYmxlKCkpIHsKLSAgICAgICAgICAg
ICAgICBtX3RyYWlsaW5nQ29sbGFwc2libGVDb250ZW50LndpZHRoICs9IHJ1bi5sb2dpY2FsV2lk
dGg7Ci0gICAgICAgICAgICAgICAgbV90cmFpbGluZ0NvbGxhcHNpYmxlQ29udGVudC5pc0Z1bGx5
Q29sbGFwc2libGUgPSB0cnVlOwotICAgICAgICAgICAgICAgIC8vIExldCdzIHNlZSBpZiB3ZSd2
ZSBnb3QgbW9yZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGNvbnRlbnQuCi0gICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIVJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3Jh
dGlvbkVuYWJsZWQoKSkgewotICAgICAgICAgICAgICAgIC8vIEEgcnVuIHdpdGggdHJhaWxpbmcg
bGV0dGVyIHNwYWNpbmcgaXMgcGFydGlhbGx5IGNvbGxhcHNpYmxlLgotICAgICAgICAgICAgICAg
IGlmIChhdXRvIGNvbGxhcHNpYmxlV2lkdGggPSBpbmxpbmVUZXh0SXRlbS5zdHlsZSgpLmxldHRl
clNwYWNpbmcoKSkgewotICAgICAgICAgICAgICAgICAgICBtX3RyYWlsaW5nQ29sbGFwc2libGVD
b250ZW50LndpZHRoICs9IGNvbGxhcHNpYmxlV2lkdGg7Ci0gICAgICAgICAgICAgICAgICAgIG1f
dHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQuaXNGdWxseUNvbGxhcHNpYmxlID0gZmFsc2U7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gRW5kIG9mIHdo
aXRlc3BhY2UgY29udGVudC4KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQor
fQorCitJbmxpbmVMYXlvdXRVbml0IENvbnRpbnVvdXNDb250ZW50Ojpub25Db2xsYXBzaWJsZUxv
Z2ljYWxXaWR0aCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGxvZ2ljYWxXaWR0aCgpID49IG1fY2Fu
ZGlkYXRlQ29udGVudC5jb2xsYXBzaWJsZVRyYWlsaW5nV2lkdGgpOworICAgIHJldHVybiBsb2dp
Y2FsV2lkdGgoKSAtIG1fY2FuZGlkYXRlQ29udGVudC5jb2xsYXBzaWJsZVRyYWlsaW5nV2lkdGg7
CiB9CiAKIGJvb2wgQ29udGludW91c0NvbnRlbnQ6Omhhc1RleHRDb250ZW50T25seSgpIGNvbnN0
CkBAIC00NDYsMTIgKzQxNSw2IEBAIGJvb2wgQ29udGludW91c0NvbnRlbnQ6Omhhc05vbkNvbnRl
bnRSdW5zT25seSgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQ29udGludW91
c0NvbnRlbnQ6OlRyYWlsaW5nQ29sbGFwc2libGVDb250ZW50OjpyZXNldCgpCi17Ci0gICAgaXNG
dWxseUNvbGxhcHNpYmxlID0gZmFsc2U7Ci0gICAgd2lkdGggPSAwX2x1OwotfQotCiB9CiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUxpbmVCcmVha2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lQnJlYWtlci5oCmluZGV4IDBhNjI5MGVkMDk5M2Q2N2E0MTVkMmMwNDM2
YWU4NzI5ZmY1N2VlYjIuLjE3ZDUzMmQyNThkYTA3MTRiODExZmRlZGE2NjU5MGVjMzk3NjhlMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmVCcmVha2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lTGluZUJyZWFrZXIuaApAQCAtNzYsMTAgKzc2LDIxIEBAIHB1YmxpYzoKICAgICB9
OwogICAgIHVzaW5nIFJ1bkxpc3QgPSBWZWN0b3I8UnVuLCAzPjsKIAorICAgIC8vIFRoaXMgc3Ry
dWN0IHJlcHJlc2VudHMgdGhlIGFtb3VudCBvZiBjb250ZW50IGNvbW1pdHRlZCB0byBsaW5lIGJy
ZWFraW5nIGF0IGEgdGltZSBlLmcuCisgICAgLy8gPGRpdj50ZXh0IGNvbnRlbnQgPHNwYW4+c3Bh
bjE8L3NwYW4+YmV0d2VlbjxzcGFuPnNwYW4yPC9zcGFuPjwvZGl2PgorICAgIC8vIFt0ZXh0XVsg
XVtjb250ZW50XVsgXVtjb250YWluZXIgc3RhcnRdW3NwYW4xXVtjb250YWluZXIgZW5kXVtiZXR3
ZWVuXVtjb250YWluZXIgc3RhcnRdW3NwYW4yXVtjb250YWluZXIgZW5kXQorICAgIC8vIGNhbmRp
ZGF0ZSBjb250ZW50IGF0IGEgdGltZToKKyAgICAvLyAxLiBbdGV4dF0KKyAgICAvLyAyLiBbIF0K
KyAgICAvLyAzLiBbY29udGVudF0KKyAgICAvLyA0LiBbIF0KKyAgICAvLyA1LiBbY29udGFpbmVy
IHN0YXJ0XVtzcGFuMV1bY29udGFpbmVyIGVuZF1bYmV0d2Vlbl1bY29udGFpbmVyIHN0YXJ0XVtz
cGFuMl1bY29udGFpbmVyIGVuZF0KKyAgICAvLyBzZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzcy10ZXh0LTMvI2xpbmUtYnJlYWstZGV0YWlscwogICAgIHN0cnVjdCBDYW5kaWRhdGVDb250
ZW50IHsKICAgICAgICAgY29uc3QgUnVuTGlzdCYgcnVuczsKICAgICAgICAgSW5saW5lTGF5b3V0
VW5pdCBsb2dpY2FsTGVmdCB7IDAgfTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
V2lkdGggeyAwIH07CisgICAgICAgIElubGluZUxheW91dFVuaXQgY29sbGFwc2libGVUcmFpbGlu
Z1dpZHRoIHsgMCB9OwogICAgIH07CiAgICAgc3RydWN0IExpbmVTdGF0dXMgewogICAgICAgICBJ
bmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoIHsgMCB9OwpAQCAtOTIsMTUgKzEwMyw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEh5cGhlbmF0aW9uRGlzYWJsZWQoKSB7IG5faHlwaGVuYXRp
b25Jc0Rpc2FibGVkID0gdHJ1ZTsgfQogCiBwcml2YXRlOgotICAgIC8vIFRoaXMgc3RydWN0IHJl
cHJlc2VudHMgdGhlIGFtb3VudCBvZiBjb250ZW50IGNvbW1pdHRlZCB0byBsaW5lIGJyZWFraW5n
IGF0IGEgdGltZSBlLmcuCi0gICAgLy8gdGV4dCBjb250ZW50IDxzcGFuPnNwYW4xPC9zcGFuPmJl
dHdlZW48c3Bhbj5zcGFuMjwvc3Bhbj4KLSAgICAvLyBbdGV4dF1bIF1bY29udGVudF1bIF1bY29u
dGFpbmVyIHN0YXJ0XVtzcGFuMV1bY29udGFpbmVyIGVuZF1bYmV0d2Vlbl1bY29udGFpbmVyIHN0
YXJ0XVtzcGFuMl1bY29udGFpbmVyIGVuZF0KLSAgICAvLyAtPiBjb250ZW50IGNodW5rcyAtPgot
ICAgIC8vIFt0ZXh0XQotICAgIC8vIFsgXQotICAgIC8vIFtjb250ZW50XQotICAgIC8vIFtjb250
YWluZXIgc3RhcnRdW3NwYW4xXVtjb250YWluZXIgZW5kXVtiZXR3ZWVuXVtjb250YWluZXIgc3Rh
cnRdW3NwYW4yXVtjb250YWluZXIgZW5kXQotICAgIC8vIHNlZSBodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3NzLXRleHQtMy8jbGluZS1icmVhay1kZXRhaWxzCiAgICAgT3B0aW9uYWw8V3JhcHBl
ZFRleHRDb250ZW50PiB3cmFwVGV4dENvbnRlbnQoY29uc3QgQ29udGludW91c0NvbnRlbnQmLCBj
b25zdCBMaW5lU3RhdHVzJikgY29uc3Q7CiAgICAgUmVzdWx0IHRyeVdyYXBwaW5nSW5saW5lQ29u
dGVudChjb25zdCBDYW5kaWRhdGVDb250ZW50JiwgY29uc3QgTGluZVN0YXR1cyYpIGNvbnN0Owog
ICAgIE9wdGlvbmFsPFBhcnRpYWxSdW4+IHRyeUJyZWFraW5nVGV4dFJ1bihjb25zdCBSdW4mIG92
ZXJmbG93UnVuLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0
IGF2YWlsYWJsZVdpZHRoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCAwZjQz
YzBlNTQwNTRmYjg5M2NmZjhhYzE1NjgwMjY1ZmU0Y2FjNjRlLi44NjRiNjBjOTcxNTI3MGU0MTJh
MjhkOTNmYmQ5ZTJkYmI0NmM0MmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC0xODIs
NiArMTgyLDcgQEAgc3RydWN0IExpbmVDYW5kaWRhdGUgewogICAgIHN0cnVjdCBJbmxpbmVDb250
ZW50IHsKICAgICAgICAgY29uc3QgTGluZUJyZWFrZXI6OlJ1bkxpc3QmIHJ1bnMoKSBjb25zdCB7
IHJldHVybiBtX2lubGluZVJ1bnM7IH0KICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
V2lkdGgoKSBjb25zdCB7IHJldHVybiBtX0xvZ2ljYWxXaWR0aDsgfQorICAgICAgICBJbmxpbmVM
YXlvdXRVbml0IGNvbGxhcHNpYmxlVHJhaWxpbmdXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY29s
bGFwc2libGVUcmFpbGluZ1dpZHRoOyB9CiAgICAgICAgIGNvbnN0IElubGluZUl0ZW0qIHRyYWls
aW5nTGluZUJyZWFrKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ0xpbmVCcmVhazsgfQogCiAg
ICAgICAgIHZvaWQgYXBwZW5kSW5saW5lSXRlbShjb25zdCBJbmxpbmVJdGVtJiwgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwpAQCAtMTkyLDYgKzE5Myw3IEBAIHN0cnVjdCBMaW5lQ2Fu
ZGlkYXRlIHsKICAgICAgICAgdm9pZCBzZXRUcmFpbGluZ0xpbmVCcmVhayhjb25zdCBJbmxpbmVJ
dGVtJiBsaW5lQnJlYWtJdGVtKSB7IG1fdHJhaWxpbmdMaW5lQnJlYWsgPSAmbGluZUJyZWFrSXRl
bTsgfQogCiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV9Mb2dpY2FsV2lkdGggeyAwIH07Cisg
ICAgICAgIElubGluZUxheW91dFVuaXQgbV9jb2xsYXBzaWJsZVRyYWlsaW5nV2lkdGggeyAwIH07
CiAgICAgICAgIExpbmVCcmVha2VyOjpSdW5MaXN0IG1faW5saW5lUnVuczsKICAgICAgICAgY29u
c3QgSW5saW5lSXRlbSogbV90cmFpbGluZ0xpbmVCcmVhayB7IG51bGxwdHIgfTsKICAgICB9OwpA
QCAtMjIzLDExICsyMjUsMzkgQEAgaW5saW5lIHZvaWQgTGluZUNhbmRpZGF0ZTo6SW5saW5lQ29u
dGVudDo6YXBwZW5kSW5saW5lSXRlbShjb25zdCBJbmxpbmVJdGVtJiBpbmwKIHsKICAgICBtX0xv
Z2ljYWxXaWR0aCArPSBsb2dpY2FsV2lkdGg7CiAgICAgbV9pbmxpbmVSdW5zLmFwcGVuZCh7IGlu
bGluZUl0ZW0sIGxvZ2ljYWxXaWR0aCB9KTsKKworICAgIGF1dG8gaXNGdWxseUNvbGxhcHNpYmxl
ID0gWyZdIHsKKyAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNCb3goKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNUZXh0KCkpIHsKKyAgICAgICAg
ICAgIGF1dG8mIGlubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGlu
ZUl0ZW0pOworICAgICAgICAgICAgcmV0dXJuIGlubGluZVRleHRJdGVtLmlzV2hpdGVzcGFjZSgp
ICYmICFUZXh0VXRpbDo6c2hvdWxkUHJlc2VydmVUcmFpbGluZ1doaXRlc3BhY2UoaW5saW5lVGV4
dEl0ZW0uc3R5bGUoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfTsK
KyAgICBpZiAoaXNGdWxseUNvbGxhcHNpYmxlKCkpCisgICAgICAgIG1fY29sbGFwc2libGVUcmFp
bGluZ1dpZHRoICs9IGxvZ2ljYWxXaWR0aDsKKyAgICBlbHNlIHsKKyAgICAgICAgYXV0byBwYXJ0
aWFsbHlDb2xsYXBzaWJsZVRyYWlsaW5nV2lkdGggPSBbJl0oKSAtPiBJbmxpbmVMYXlvdXRVbml0
IHsKKyAgICAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLmxheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkKCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgICAgIGlmICghaW5saW5lSXRlbS5pc1RleHQo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICAgICAgaWYgKGF1dG8gbGV0
dGVyU3BhY2luZyA9IGlubGluZUl0ZW0uc3R5bGUoKS5sZXR0ZXJTcGFjaW5nKCk7IGxldHRlclNw
YWNpbmcgPiAwKQorICAgICAgICAgICAgICAgIHJldHVybiBsZXR0ZXJTcGFjaW5nOworICAgICAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgfTsKKyAgICAgICAgaWYgKGF1dG8gY29sbGFwc2li
bGVUcmFpbGluZ1dpZHRoID0gcGFydGlhbGx5Q29sbGFwc2libGVUcmFpbGluZ1dpZHRoKCkpCisg
ICAgICAgICAgICBtX2NvbGxhcHNpYmxlVHJhaWxpbmdXaWR0aCA9IGNvbGxhcHNpYmxlVHJhaWxp
bmdXaWR0aDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9jb2xsYXBzaWJsZVRyYWlsaW5n
V2lkdGggPSB7IH07CisgICAgfQogfQogCiBpbmxpbmUgdm9pZCBMaW5lQ2FuZGlkYXRlOjpJbmxp
bmVDb250ZW50OjpyZXNldCgpCiB7CiAgICAgbV9Mb2dpY2FsV2lkdGggPSB7IH07CisgICAgbV9j
b2xsYXBzaWJsZVRyYWlsaW5nV2lkdGggPSB7IH07CiAgICAgbV9pbmxpbmVSdW5zLmNsZWFyKCk7
CiAgICAgbV90cmFpbGluZ0xpbmVCcmVhayA9IHsgfTsKIH0KQEAgLTU1Myw4ICs1ODMsOCBAQCBM
aW5lQnVpbGRlcjo6UmVzdWx0IExpbmVCdWlsZGVyOjpoYW5kbGVGbG9hdHNBbmRJbmxpbmVDb250
ZW50KExpbmVCcmVha2VyJiBsaW5lQgogICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSBtX2xpbmUu
YXZhaWxhYmxlV2lkdGgoKSAtIGZsb2F0Q29udGVudC5pbnRydXNpdmVXaWR0aCgpOwogICAgIGF1
dG8gaXNMaW5lQ29uc2lkZXJlZEVtcHR5ID0gbV9saW5lLmlzVmlzdWFsbHlFbXB0eSgpICYmICFt
X2NvbnRlbnRJc0NvbnN0cmFpbmVkQnlGbG9hdDsKICAgICBhdXRvIGxpbmVTdGF0dXMgPSBMaW5l
QnJlYWtlcjo6TGluZVN0YXR1cyB7IGF2YWlsYWJsZVdpZHRoLCBtX2xpbmUudHJpbW1hYmxlVHJh
aWxpbmdXaWR0aCgpLCBtX2xpbmUuaXNUcmFpbGluZ1J1bkZ1bGx5VHJpbW1hYmxlKCksIGlzTGlu
ZUNvbnNpZGVyZWRFbXB0eSB9OwotICAgIGF1dG8gY2FuZGlkYXRlSW5saW5lQ29udGVudExvZ2lj
YWxMZWZ0ID0gbV9saW5lLmNvbnRlbnRMb2dpY2FsV2lkdGgoKTsgCi0gICAgYXV0byByZXN1bHQg
PSBsaW5lQnJlYWtlci5zaG91bGRXcmFwSW5saW5lQ29udGVudCh7IGNhbmRpZGF0ZVJ1bnMsIGNh
bmRpZGF0ZUlubGluZUNvbnRlbnRMb2dpY2FsTGVmdCwgY2FuZGlkYXRlSW5saW5lQ29udGVudC5s
b2dpY2FsV2lkdGgoKSB9LCBsaW5lU3RhdHVzKTsKKyAgICBhdXRvIGNvbnRlbnRMb2dpY2FsTGVm
dCA9IG1fbGluZS5jb250ZW50TG9naWNhbFdpZHRoKCk7CisgICAgYXV0byByZXN1bHQgPSBsaW5l
QnJlYWtlci5zaG91bGRXcmFwSW5saW5lQ29udGVudCh7IGNhbmRpZGF0ZVJ1bnMsIGNvbnRlbnRM
b2dpY2FsTGVmdCwgY2FuZGlkYXRlSW5saW5lQ29udGVudC5sb2dpY2FsV2lkdGgoKSwgY2FuZGlk
YXRlSW5saW5lQ29udGVudC5jb2xsYXBzaWJsZVRyYWlsaW5nV2lkdGgoKSB9LCBsaW5lU3RhdHVz
KTsKICAgICBpZiAocmVzdWx0Lmxhc3RXcmFwT3Bwb3J0dW5pdHlJdGVtKQogICAgICAgICBtX2xh
c3RXcmFwT3Bwb3J0dW5pdHlJdGVtID0gcmVzdWx0Lmxhc3RXcmFwT3Bwb3J0dW5pdHlJdGVtOwog
ICAgIGlmIChyZXN1bHQuYWN0aW9uID09IExpbmVCcmVha2VyOjpSZXN1bHQ6OkFjdGlvbjo6S2Vl
cCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409493</attachid>
            <date>2020-09-23 12:02:54 -0700</date>
            <delta_ts>2020-09-23 12:34:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216881-20200923120253.patch</filename>
            <type>text/plain</type>
            <size>14563</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdlYzAzYjIyN2RkYWEx
YWJkZWY3NTdkN2ZkOTdkM2JhZDkxZTQ3Ny4uNWZlZWE2MzQ4MDE0OWE5MTk2ZmY0OTljMDg4NTU3
YTU4ZjQzOGM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA5LTIzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBQcmVjb21w
dXRlIHRoZSBjb2xsYXBzaWJsZSB0cmFpbGluZyB3aWR0aCBmb3IgTGluZUJyZWFrZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjg4MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIExldCdzIGp1c3QgY29t
cHV0ZSB0aGUgY29sbGFwc2libGUgdHJhaWxpbmcgd2lkdGggd2hpbGUgYWRkaW5nIGlubGluZSBj
b250ZW50IHRvIExpbmVDYW5kaWRhdGUgaW5zdGVhZCBvZgorICAgICAgICByZXZlcnNlIGxvb3Bp
bmcgdGhyb3VnaCB0aGUgcnVucyBpbiBMaW5lQnJlYWtlci4KKyAgICAgICAgVGhpcyBpcyBhbHNv
IGluIHByZXBhcmF0aW9uIGZvciByZWR1Y2luZyB0aGUgbnVtYmVyIG9mIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkIGNhbGxz
LgorCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpDb250aW51b3VzQ29udGVudDo6aGFzVHJh
aWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpDb250aW51b3VzQ29udGVudDo6aXNGdWxseUNvbGxhcHNpYmxlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OnNob3VsZEtlZXBFbmRPZkxpbmVXaGl0ZXNw
YWNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OnNob3Vs
ZFdyYXBJbmxpbmVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFr
ZXI6OnRyeVdyYXBwaW5nSW5saW5lQ29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkNvbnRpbnVvdXNDb250ZW50OjpDb250aW51b3VzQ29udGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkNvbnRpbnVvdXNDb250ZW50Ojpub25Db2xsYXBzaWJsZUxvZ2ljYWxX
aWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkNvbnRpbnVvdXNDb250ZW50
Ojppc1RyYWlsaW5nQ29udGVudEZ1bGx5Q29sbGFwc2libGUgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpDb250aW51b3VzQ29udGVudDo6VHJhaWxpbmdDb2xsYXBz
aWJsZUNvbnRlbnQ6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5oOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29udGVudDo6Y29sbGFwc2libGVUcmFpbGluZ1dpZHRoIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29u
dGVudDo6YXBwZW5kSW5saW5lSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVD
YW5kaWRhdGU6OklubGluZUNvbnRlbnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGluZUJ1aWxkZXI6OmhhbmRsZUZsb2F0c0FuZElubGluZUNvbnRlbnQpOgorCiAyMDIwLTA5
LTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgd2ViYXVkaW8v
QXVkaW9CdWZmZXJTb3VyY2UvYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tyYXRlLmh0bWwgaXMg
Y3Jhc2hpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcAppbmRleCBkMzEyMWY5ZmU1ZGExMmQ3YTY2
ZjgzMzE0MzZjYjlkNWNhNzA2NDMxLi4yMjA5MTNlMTBhOWM5ZTY5YjUyOGNmOGVhZjc1ZTdkYjQ0
OGVkMWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lQnJlYWtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3BwCkBAIC0zMiw3ICszMiw2IEBACiAjaW5j
bHVkZSAiSHlwaGVuYXRpb24uaCIKICNpbmNsdWRlICJJbmxpbmVJdGVtLmgiCiAjaW5jbHVkZSAi
SW5saW5lVGV4dEl0ZW0uaCIKLSNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiVGV4dFV0aWwuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzIsMjMgKzcx
LDE2IEBAIHN0cnVjdCBDb250aW51b3VzQ29udGVudCB7CiAgICAgYm9vbCBoYXNOb25Db250ZW50
UnVuc09ubHkoKSBjb25zdDsKICAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fY2FuZGlkYXRlQ29udGVudC5sb2dpY2FsV2lkdGg7IH0KICAgICBJbmxp
bmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9jYW5kaWRhdGVDb250
ZW50LmxvZ2ljYWxMZWZ0OyB9Ci0gICAgSW5saW5lTGF5b3V0VW5pdCBub25Db2xsYXBzaWJsZUxv
Z2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGxvZ2ljYWxXaWR0aCgpIC0gbV90cmFpbGluZ0Nv
bGxhcHNpYmxlQ29udGVudC53aWR0aDsgfQorICAgIElubGluZUxheW91dFVuaXQgbm9uQ29sbGFw
c2libGVMb2dpY2FsV2lkdGgoKSBjb25zdDsKIAotICAgIGJvb2wgaGFzVHJhaWxpbmdDb2xsYXBz
aWJsZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiAhIW1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRl
bnQud2lkdGg7IH0KLSAgICBib29sIGlzVHJhaWxpbmdDb250ZW50RnVsbHlDb2xsYXBzaWJsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQuaXNGdWxseUNvbGxh
cHNpYmxlOyB9CisgICAgYm9vbCBoYXNUcmFpbGluZ0NvbGxhcHNpYmxlQ29udGVudCgpIGNvbnN0
IHsgcmV0dXJuICEhbV9jYW5kaWRhdGVDb250ZW50LmNvbGxhcHNpYmxlVHJhaWxpbmdXaWR0aDsg
fQorICAgIGJvb2wgaXNGdWxseUNvbGxhcHNpYmxlKCkgY29uc3QgeyByZXR1cm4gIW5vbkNvbGxh
cHNpYmxlTG9naWNhbFdpZHRoKCk7IH0KIAogICAgIE9wdGlvbmFsPHNpemVfdD4gZmlyc3RUZXh0
UnVuSW5kZXgoKSBjb25zdDsKICAgICBPcHRpb25hbDxzaXplX3Q+IGxhc3RDb250ZW50UnVuSW5k
ZXgoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBjb25zdCBMaW5lQnJlYWtlcjo6Q2FuZGlkYXRl
Q29udGVudCYgbV9jYW5kaWRhdGVDb250ZW50OwotICAgIHN0cnVjdCBUcmFpbGluZ0NvbGxhcHNp
YmxlQ29udGVudCB7Ci0gICAgICAgIHZvaWQgcmVzZXQoKTsKLQotICAgICAgICBib29sIGlzRnVs
bHlDb2xsYXBzaWJsZSB7IGZhbHNlIH07Ci0gICAgICAgIElubGluZUxheW91dFVuaXQgd2lkdGgg
eyAwIH07Ci0gICAgfTsKLSAgICBUcmFpbGluZ0NvbGxhcHNpYmxlQ29udGVudCBtX3RyYWlsaW5n
Q29sbGFwc2libGVDb250ZW50OwogfTsKIAogc3RydWN0IFdyYXBwZWRUZXh0Q29udGVudCB7CkBA
IC0xMDcsOCArOTksOCBAQCBib29sIExpbmVCcmVha2VyOjppc0NvbnRlbnRXcmFwcGluZ0FsbG93
ZWQoY29uc3QgQ29udGludW91c0NvbnRlbnQmIGNvbnRpbnVvdXNDbwogCiBib29sIExpbmVCcmVh
a2VyOjpzaG91bGRLZWVwRW5kT2ZMaW5lV2hpdGVzcGFjZShjb25zdCBDb250aW51b3VzQ29udGVu
dCYgY29udGludW91c0NvbnRlbnQpIGNvbnN0CiB7Ci0gICAgLy8gR3JhYiB0aGUgc3R5bGUgYW5k
IGNoZWNrIGZvciB3aGl0ZS1zcGFjZSBwcm9wZXJ0eSB0byBkZWNpZGVkIHdoZXRoZXIgd2Ugc2hv
dWxkIGxldCB0aGlzIHdoaXRlc3BhY2UgY29udGVudCBvdmVyZmxvdyB0aGUgY3VycmVudCBsaW5l
LgotICAgIC8vIE5vdGUgdGhhdCB0aGUgImtlZXAiIGluIHRoZSBjb250ZXh0IG1lYW5zIHdlIGxl
dCB0aGUgd2hpdGVzcGFjZSBjb250ZW50IHNpdCBvbiB0aGUgY3VycmVudCBsaW5lLgorICAgIC8v
IEdyYWIgdGhlIHN0eWxlIGFuZCBjaGVjayBmb3Igd2hpdGUtc3BhY2UgcHJvcGVydHkgdG8gZGVj
aWRlIHdoZXRoZXIgd2Ugc2hvdWxkIGxldCB0aGlzIHdoaXRlc3BhY2UgY29udGVudCBvdmVyZmxv
dyB0aGUgY3VycmVudCBsaW5lLgorICAgIC8vIE5vdGUgdGhhdCB0aGUgImtlZXAiIGluIHRoaXMg
Y29udGV4dCBtZWFucyB3ZSBsZXQgdGhlIHdoaXRlc3BhY2UgY29udGVudCBzaXQgb24gdGhlIGN1
cnJlbnQgbGluZS4KICAgICAvLyBJdCBtaWdodCB2ZXJ5IHdlbGwgZ2V0IGNvbGxhcHNlZCB3aGVu
IHdlIGNsb3NlIHRoZSBsaW5lIChub3JtYWwvbm93cmFwL3ByZS1saW5lKS4KICAgICAvLyBTZWUg
aHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy10ZXh0LTMvI3doaXRlLXNwYWNlLXByb3BlcnR5CiAg
ICAgYXV0byB3aGl0ZXNwYWNlID0gY29udGludW91c0NvbnRlbnQucnVucygpWypjb250aW51b3Vz
Q29udGVudC5maXJzdFRleHRSdW5JbmRleCgpXS5pbmxpbmVJdGVtLnN0eWxlKCkud2hpdGVTcGFj
ZSgpOwpAQCAtMTIxLDcgKzExMyw3IEBAIExpbmVCcmVha2VyOjpSZXN1bHQgTGluZUJyZWFrZXI6
OnNob3VsZFdyYXBJbmxpbmVDb250ZW50KGNvbnN0IENhbmRpZGF0ZUNvbnRlbnQmCiAgICAgICAg
IGlmIChjYW5kaWRhdGVDb250ZW50LmxvZ2ljYWxXaWR0aCA8PSBsaW5lU3RhdHVzLmF2YWlsYWJs
ZVdpZHRoKQogICAgICAgICAgICAgcmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpLZWVw
IH07CiAjaWYgVVNFX0ZMT0FUX0FTX0lOTElORV9MQVlPVVRfVU5JVAotICAgICAgICAvLyBQcmVm
ZXJyZWQgd2lkdGggY29tcHV0YXRpb24gc3VtcyB1cCBmbG9hdHMgd2hpbGUgbGluZSBicmVha2Vy
IHN1YnN0cmFjdHMgdGhlbS4gVGhpcyBjYW4gbGVhZCB0byBlcHNpbG9uLXNjYWxlIGRpZmZlcmVu
Y2VzLgorICAgICAgICAvLyBQcmVmZXJyZWQgd2lkdGggY29tcHV0YXRpb24gc3VtcyB1cCBmbG9h
dHMgd2hpbGUgbGluZSBicmVha2VyIHN1YnRyYWN0cyB0aGVtLiBUaGlzIGNhbiBsZWFkIHRvIGVw
c2lsb24tc2NhbGUgZGlmZmVyZW5jZXMuCiAgICAgICAgIGlmIChXVEY6OmFyZUVzc2VudGlhbGx5
RXF1YWwoY2FuZGlkYXRlQ29udGVudC5sb2dpY2FsV2lkdGgsIGxpbmVTdGF0dXMuYXZhaWxhYmxl
V2lkdGgpKQogICAgICAgICAgICAgcmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpLZWVw
IH07CiAjZW5kaWYKQEAgLTE2Miw3ICsxNTQsNyBAQCBMaW5lQnJlYWtlcjo6UmVzdWx0IExpbmVC
cmVha2VyOjp0cnlXcmFwcGluZ0lubGluZUNvbnRlbnQoY29uc3QgQ2FuZGlkYXRlQ29udGVudAog
ICAgICAgICBpZiAoY29udGludW91c0NvbnRlbnQubm9uQ29sbGFwc2libGVMb2dpY2FsV2lkdGgo
KSA8PSBsaW5lU3RhdHVzLmF2YWlsYWJsZVdpZHRoKQogICAgICAgICAgICAgcmV0dXJuIHsgUmVz
dWx0OjpBY3Rpb246OktlZXAsIElzRW5kT2ZMaW5lIH07CiAgICAgICAgIC8vIE5vdyBjaGVjayBp
ZiB3ZSBjYW4gdHJpbSB0aGUgbGluZSB0b28uCi0gICAgICAgIGlmIChsaW5lU3RhdHVzLmxpbmVI
YXNGdWxseUNvbGxhcHNpYmxlVHJhaWxpbmdSdW4gJiYgY29udGludW91c0NvbnRlbnQuaXNUcmFp
bGluZ0NvbnRlbnRGdWxseUNvbGxhcHNpYmxlKCkpIHsKKyAgICAgICAgaWYgKGxpbmVTdGF0dXMu
bGluZUhhc0Z1bGx5Q29sbGFwc2libGVUcmFpbGluZ1J1biAmJiBjb250aW51b3VzQ29udGVudC5p
c0Z1bGx5Q29sbGFwc2libGUoKSkgewogICAgICAgICAgICAgLy8gSWYgdGhpcyBuZXcgY29udGVu
dCBpcyBmdWxseSBjb2xsYXBzaWJsZSwgaXQgc2hvdWxkIHN1cmVseSBmaXQuCiAgICAgICAgICAg
ICByZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6S2VlcCwgSXNFbmRPZkxpbmUgfTsKICAgICAgICAg
fQpAQCAtMzU1LDM1ICszNDcsMTIgQEAgT3B0aW9uYWw8TGluZUJyZWFrZXI6OlBhcnRpYWxSdW4+
IExpbmVCcmVha2VyOjp0cnlCcmVha2luZ1RleHRSdW4oY29uc3QgUnVuJiBvdmUKIENvbnRpbnVv
dXNDb250ZW50OjpDb250aW51b3VzQ29udGVudChjb25zdCBMaW5lQnJlYWtlcjo6Q2FuZGlkYXRl
Q29udGVudCYgY2FuZGlkYXRlQ29udGVudCkKICAgICA6IG1fY2FuZGlkYXRlQ29udGVudChjYW5k
aWRhdGVDb250ZW50KQogewotICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHRyYWlsaW5nIGNvbGxhcHNp
YmxlIHN0YXRlLgotICAgIGZvciAoYXV0byYgcnVuIDogV1RGOjptYWtlUmV2ZXJzZWRSYW5nZShy
dW5zKCkpKSB7Ci0gICAgICAgIGF1dG8mIGlubGluZUl0ZW0gPSBydW4uaW5saW5lSXRlbTsKLSAg
ICAgICAgaWYgKGlubGluZUl0ZW0uaXNCb3goKSkgewotICAgICAgICAgICAgLy8gV2UgZGlkIHJl
YWNoIGEgbm9uLWNvbGxhcHNpYmxlIGNvbnRlbnQuIFdlIGhhdmUgYWxsIHRoZSB0cmFpbGluZyB3
aGl0ZXNwYWNlIG5vdy4KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGlm
IChpbmxpbmVJdGVtLmlzVGV4dCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBpbmxpbmVUZXh0SXRl
bSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKTsKLSAgICAgICAgICAgIGF1
dG8gaXNGdWxseUNvbGxhcHNpYmxlID0gWyZdIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gaW5s
aW5lVGV4dEl0ZW0uaXNXaGl0ZXNwYWNlKCkgJiYgIVRleHRVdGlsOjpzaG91bGRQcmVzZXJ2ZVRy
YWlsaW5nV2hpdGVzcGFjZShpbmxpbmVUZXh0SXRlbS5zdHlsZSgpKTsKLSAgICAgICAgICAgIH07
Ci0gICAgICAgICAgICBpZiAoaXNGdWxseUNvbGxhcHNpYmxlKCkpIHsKLSAgICAgICAgICAgICAg
ICBtX3RyYWlsaW5nQ29sbGFwc2libGVDb250ZW50LndpZHRoICs9IHJ1bi5sb2dpY2FsV2lkdGg7
Ci0gICAgICAgICAgICAgICAgbV90cmFpbGluZ0NvbGxhcHNpYmxlQ29udGVudC5pc0Z1bGx5Q29s
bGFwc2libGUgPSB0cnVlOwotICAgICAgICAgICAgICAgIC8vIExldCdzIHNlZSBpZiB3ZSd2ZSBn
b3QgbW9yZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGNvbnRlbnQuCi0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlv
bkVuYWJsZWQoKSkgewotICAgICAgICAgICAgICAgIC8vIEEgcnVuIHdpdGggdHJhaWxpbmcgbGV0
dGVyIHNwYWNpbmcgaXMgcGFydGlhbGx5IGNvbGxhcHNpYmxlLgotICAgICAgICAgICAgICAgIGlm
IChhdXRvIGNvbGxhcHNpYmxlV2lkdGggPSBpbmxpbmVUZXh0SXRlbS5zdHlsZSgpLmxldHRlclNw
YWNpbmcoKSkgewotICAgICAgICAgICAgICAgICAgICBtX3RyYWlsaW5nQ29sbGFwc2libGVDb250
ZW50LndpZHRoICs9IGNvbGxhcHNpYmxlV2lkdGg7Ci0gICAgICAgICAgICAgICAgICAgIG1fdHJh
aWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQuaXNGdWxseUNvbGxhcHNpYmxlID0gZmFsc2U7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gRW5kIG9mIHdoaXRl
c3BhY2UgY29udGVudC4KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQorfQor
CitJbmxpbmVMYXlvdXRVbml0IENvbnRpbnVvdXNDb250ZW50Ojpub25Db2xsYXBzaWJsZUxvZ2lj
YWxXaWR0aCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGxvZ2ljYWxXaWR0aCgpID49IG1fY2FuZGlk
YXRlQ29udGVudC5jb2xsYXBzaWJsZVRyYWlsaW5nV2lkdGgpOworICAgIHJldHVybiBsb2dpY2Fs
V2lkdGgoKSAtIG1fY2FuZGlkYXRlQ29udGVudC5jb2xsYXBzaWJsZVRyYWlsaW5nV2lkdGg7CiB9
CiAKIGJvb2wgQ29udGludW91c0NvbnRlbnQ6Omhhc1RleHRDb250ZW50T25seSgpIGNvbnN0CkBA
IC00NDYsMTIgKzQxNSw2IEBAIGJvb2wgQ29udGludW91c0NvbnRlbnQ6Omhhc05vbkNvbnRlbnRS
dW5zT25seSgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQ29udGludW91c0Nv
bnRlbnQ6OlRyYWlsaW5nQ29sbGFwc2libGVDb250ZW50OjpyZXNldCgpCi17Ci0gICAgaXNGdWxs
eUNvbGxhcHNpYmxlID0gZmFsc2U7Ci0gICAgd2lkdGggPSAwX2x1OwotfQotCiB9CiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUxpbmVCcmVha2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lQnJlYWtlci5oCmluZGV4IDBhNjI5MGVkMDk5M2Q2N2E0MTVkMmMwNDM2YWU4
NzI5ZmY1N2VlYjIuLjE3ZDUzMmQyNThkYTA3MTRiODExZmRlZGE2NjU5MGVjMzk3NjhlMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxp
bmVCcmVha2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZUJyZWFrZXIuaApAQCAtNzYsMTAgKzc2LDIxIEBAIHB1YmxpYzoKICAgICB9Owog
ICAgIHVzaW5nIFJ1bkxpc3QgPSBWZWN0b3I8UnVuLCAzPjsKIAorICAgIC8vIFRoaXMgc3RydWN0
IHJlcHJlc2VudHMgdGhlIGFtb3VudCBvZiBjb250ZW50IGNvbW1pdHRlZCB0byBsaW5lIGJyZWFr
aW5nIGF0IGEgdGltZSBlLmcuCisgICAgLy8gPGRpdj50ZXh0IGNvbnRlbnQgPHNwYW4+c3BhbjE8
L3NwYW4+YmV0d2VlbjxzcGFuPnNwYW4yPC9zcGFuPjwvZGl2PgorICAgIC8vIFt0ZXh0XVsgXVtj
b250ZW50XVsgXVtjb250YWluZXIgc3RhcnRdW3NwYW4xXVtjb250YWluZXIgZW5kXVtiZXR3ZWVu
XVtjb250YWluZXIgc3RhcnRdW3NwYW4yXVtjb250YWluZXIgZW5kXQorICAgIC8vIGNhbmRpZGF0
ZSBjb250ZW50IGF0IGEgdGltZToKKyAgICAvLyAxLiBbdGV4dF0KKyAgICAvLyAyLiBbIF0KKyAg
ICAvLyAzLiBbY29udGVudF0KKyAgICAvLyA0LiBbIF0KKyAgICAvLyA1LiBbY29udGFpbmVyIHN0
YXJ0XVtzcGFuMV1bY29udGFpbmVyIGVuZF1bYmV0d2Vlbl1bY29udGFpbmVyIHN0YXJ0XVtzcGFu
Ml1bY29udGFpbmVyIGVuZF0KKyAgICAvLyBzZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
cy10ZXh0LTMvI2xpbmUtYnJlYWstZGV0YWlscwogICAgIHN0cnVjdCBDYW5kaWRhdGVDb250ZW50
IHsKICAgICAgICAgY29uc3QgUnVuTGlzdCYgcnVuczsKICAgICAgICAgSW5saW5lTGF5b3V0VW5p
dCBsb2dpY2FsTGVmdCB7IDAgfTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lk
dGggeyAwIH07CisgICAgICAgIElubGluZUxheW91dFVuaXQgY29sbGFwc2libGVUcmFpbGluZ1dp
ZHRoIHsgMCB9OwogICAgIH07CiAgICAgc3RydWN0IExpbmVTdGF0dXMgewogICAgICAgICBJbmxp
bmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoIHsgMCB9OwpAQCAtOTIsMTUgKzEwMyw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEh5cGhlbmF0aW9uRGlzYWJsZWQoKSB7IG5faHlwaGVuYXRpb25J
c0Rpc2FibGVkID0gdHJ1ZTsgfQogCiBwcml2YXRlOgotICAgIC8vIFRoaXMgc3RydWN0IHJlcHJl
c2VudHMgdGhlIGFtb3VudCBvZiBjb250ZW50IGNvbW1pdHRlZCB0byBsaW5lIGJyZWFraW5nIGF0
IGEgdGltZSBlLmcuCi0gICAgLy8gdGV4dCBjb250ZW50IDxzcGFuPnNwYW4xPC9zcGFuPmJldHdl
ZW48c3Bhbj5zcGFuMjwvc3Bhbj4KLSAgICAvLyBbdGV4dF1bIF1bY29udGVudF1bIF1bY29udGFp
bmVyIHN0YXJ0XVtzcGFuMV1bY29udGFpbmVyIGVuZF1bYmV0d2Vlbl1bY29udGFpbmVyIHN0YXJ0
XVtzcGFuMl1bY29udGFpbmVyIGVuZF0KLSAgICAvLyAtPiBjb250ZW50IGNodW5rcyAtPgotICAg
IC8vIFt0ZXh0XQotICAgIC8vIFsgXQotICAgIC8vIFtjb250ZW50XQotICAgIC8vIFtjb250YWlu
ZXIgc3RhcnRdW3NwYW4xXVtjb250YWluZXIgZW5kXVtiZXR3ZWVuXVtjb250YWluZXIgc3RhcnRd
W3NwYW4yXVtjb250YWluZXIgZW5kXQotICAgIC8vIHNlZSBodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3NzLXRleHQtMy8jbGluZS1icmVhay1kZXRhaWxzCiAgICAgT3B0aW9uYWw8V3JhcHBlZFRl
eHRDb250ZW50PiB3cmFwVGV4dENvbnRlbnQoY29uc3QgQ29udGludW91c0NvbnRlbnQmLCBjb25z
dCBMaW5lU3RhdHVzJikgY29uc3Q7CiAgICAgUmVzdWx0IHRyeVdyYXBwaW5nSW5saW5lQ29udGVu
dChjb25zdCBDYW5kaWRhdGVDb250ZW50JiwgY29uc3QgTGluZVN0YXR1cyYpIGNvbnN0OwogICAg
IE9wdGlvbmFsPFBhcnRpYWxSdW4+IHRyeUJyZWFraW5nVGV4dFJ1bihjb25zdCBSdW4mIG92ZXJm
bG93UnVuLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGF2
YWlsYWJsZVdpZHRoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCAwZjQzYzBl
NTQwNTRmYjg5M2NmZjhhYzE1NjgwMjY1ZmU0Y2FjNjRlLi4wZmY5ZGY3MGQwZjBjOGVjYzhjMmY4
ZGFmZjg2NTMzYTg0NmYzNDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC0xODIsNiAr
MTgyLDcgQEAgc3RydWN0IExpbmVDYW5kaWRhdGUgewogICAgIHN0cnVjdCBJbmxpbmVDb250ZW50
IHsKICAgICAgICAgY29uc3QgTGluZUJyZWFrZXI6OlJ1bkxpc3QmIHJ1bnMoKSBjb25zdCB7IHJl
dHVybiBtX2lubGluZVJ1bnM7IH0KICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX0xvZ2ljYWxXaWR0aDsgfQorICAgICAgICBJbmxpbmVMYXlv
dXRVbml0IGNvbGxhcHNpYmxlVHJhaWxpbmdXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY29sbGFw
c2libGVUcmFpbGluZ1dpZHRoOyB9CiAgICAgICAgIGNvbnN0IElubGluZUl0ZW0qIHRyYWlsaW5n
TGluZUJyZWFrKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ0xpbmVCcmVhazsgfQogCiAgICAg
ICAgIHZvaWQgYXBwZW5kSW5saW5lSXRlbShjb25zdCBJbmxpbmVJdGVtJiwgSW5saW5lTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGgpOwpAQCAtMTkyLDYgKzE5Myw3IEBAIHN0cnVjdCBMaW5lQ2FuZGlk
YXRlIHsKICAgICAgICAgdm9pZCBzZXRUcmFpbGluZ0xpbmVCcmVhayhjb25zdCBJbmxpbmVJdGVt
JiBsaW5lQnJlYWtJdGVtKSB7IG1fdHJhaWxpbmdMaW5lQnJlYWsgPSAmbGluZUJyZWFrSXRlbTsg
fQogCiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV9Mb2dpY2FsV2lkdGggeyAwIH07CisgICAg
ICAgIElubGluZUxheW91dFVuaXQgbV9jb2xsYXBzaWJsZVRyYWlsaW5nV2lkdGggeyAwIH07CiAg
ICAgICAgIExpbmVCcmVha2VyOjpSdW5MaXN0IG1faW5saW5lUnVuczsKICAgICAgICAgY29uc3Qg
SW5saW5lSXRlbSogbV90cmFpbGluZ0xpbmVCcmVhayB7IG51bGxwdHIgfTsKICAgICB9OwpAQCAt
MjIzLDExICsyMjUsNDEgQEAgaW5saW5lIHZvaWQgTGluZUNhbmRpZGF0ZTo6SW5saW5lQ29udGVu
dDo6YXBwZW5kSW5saW5lSXRlbShjb25zdCBJbmxpbmVJdGVtJiBpbmwKIHsKICAgICBtX0xvZ2lj
YWxXaWR0aCArPSBsb2dpY2FsV2lkdGg7CiAgICAgbV9pbmxpbmVSdW5zLmFwcGVuZCh7IGlubGlu
ZUl0ZW0sIGxvZ2ljYWxXaWR0aCB9KTsKKworICAgIGF1dG8gaXNGdWxseUNvbGxhcHNpYmxlID0g
WyZdIHsKKyAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNCb3goKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNUZXh0KCkpIHsKKyAgICAgICAgICAg
IGF1dG8mIGlubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0
ZW0pOworICAgICAgICAgICAgcmV0dXJuIGlubGluZVRleHRJdGVtLmlzV2hpdGVzcGFjZSgpICYm
ICFUZXh0VXRpbDo6c2hvdWxkUHJlc2VydmVUcmFpbGluZ1doaXRlc3BhY2UoaW5saW5lVGV4dEl0
ZW0uc3R5bGUoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfTsKKyAg
ICBpZiAoaXNGdWxseUNvbGxhcHNpYmxlKCkpIHsKKyAgICAgICAgbV9jb2xsYXBzaWJsZVRyYWls
aW5nV2lkdGggKz0gbG9naWNhbFdpZHRoOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
YXV0byBwYXJ0aWFsbHlDb2xsYXBzaWJsZVRyYWlsaW5nV2lkdGggPSBbJl0oKSAtPiBJbmxpbmVM
YXlvdXRVbml0IHsKKyAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQoKSkKKyAg
ICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGlmICghaW5saW5lSXRlbS5pc1RleHQoKSkK
KyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGlmIChhdXRvIGxldHRlclNwYWNpbmcg
PSBpbmxpbmVJdGVtLnN0eWxlKCkubGV0dGVyU3BhY2luZygpOyBsZXR0ZXJTcGFjaW5nID4gMCkK
KyAgICAgICAgICAgIHJldHVybiBsZXR0ZXJTcGFjaW5nOworICAgICAgICByZXR1cm4geyB9Owor
ICAgIH07CisgICAgaWYgKGF1dG8gY29sbGFwc2libGVUcmFpbGluZ1dpZHRoID0gcGFydGlhbGx5
Q29sbGFwc2libGVUcmFpbGluZ1dpZHRoKCkpIHsKKyAgICAgICAgbV9jb2xsYXBzaWJsZVRyYWls
aW5nV2lkdGggPSBjb2xsYXBzaWJsZVRyYWlsaW5nV2lkdGg7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgbV9jb2xsYXBzaWJsZVRyYWlsaW5nV2lkdGggPSB7IH07CiB9CiAKIGlubGluZSB2
b2lkIExpbmVDYW5kaWRhdGU6OklubGluZUNvbnRlbnQ6OnJlc2V0KCkKIHsKICAgICBtX0xvZ2lj
YWxXaWR0aCA9IHsgfTsKKyAgICBtX2NvbGxhcHNpYmxlVHJhaWxpbmdXaWR0aCA9IHsgfTsKICAg
ICBtX2lubGluZVJ1bnMuY2xlYXIoKTsKICAgICBtX3RyYWlsaW5nTGluZUJyZWFrID0geyB9Owog
fQpAQCAtNTUzLDggKzU4NSw4IEBAIExpbmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1aWxkZXI6Omhh
bmRsZUZsb2F0c0FuZElubGluZUNvbnRlbnQoTGluZUJyZWFrZXImIGxpbmVCCiAgICAgYXV0byBh
dmFpbGFibGVXaWR0aCA9IG1fbGluZS5hdmFpbGFibGVXaWR0aCgpIC0gZmxvYXRDb250ZW50Lmlu
dHJ1c2l2ZVdpZHRoKCk7CiAgICAgYXV0byBpc0xpbmVDb25zaWRlcmVkRW1wdHkgPSBtX2xpbmUu
aXNWaXN1YWxseUVtcHR5KCkgJiYgIW1fY29udGVudElzQ29uc3RyYWluZWRCeUZsb2F0OwogICAg
IGF1dG8gbGluZVN0YXR1cyA9IExpbmVCcmVha2VyOjpMaW5lU3RhdHVzIHsgYXZhaWxhYmxlV2lk
dGgsIG1fbGluZS50cmltbWFibGVUcmFpbGluZ1dpZHRoKCksIG1fbGluZS5pc1RyYWlsaW5nUnVu
RnVsbHlUcmltbWFibGUoKSwgaXNMaW5lQ29uc2lkZXJlZEVtcHR5IH07Ci0gICAgYXV0byBjYW5k
aWRhdGVJbmxpbmVDb250ZW50TG9naWNhbExlZnQgPSBtX2xpbmUuY29udGVudExvZ2ljYWxXaWR0
aCgpOyAKLSAgICBhdXRvIHJlc3VsdCA9IGxpbmVCcmVha2VyLnNob3VsZFdyYXBJbmxpbmVDb250
ZW50KHsgY2FuZGlkYXRlUnVucywgY2FuZGlkYXRlSW5saW5lQ29udGVudExvZ2ljYWxMZWZ0LCBj
YW5kaWRhdGVJbmxpbmVDb250ZW50LmxvZ2ljYWxXaWR0aCgpIH0sIGxpbmVTdGF0dXMpOworICAg
IGF1dG8gY29udGVudExvZ2ljYWxMZWZ0ID0gbV9saW5lLmNvbnRlbnRMb2dpY2FsV2lkdGgoKTsK
KyAgICBhdXRvIHJlc3VsdCA9IGxpbmVCcmVha2VyLnNob3VsZFdyYXBJbmxpbmVDb250ZW50KHsg
Y2FuZGlkYXRlUnVucywgY29udGVudExvZ2ljYWxMZWZ0LCBjYW5kaWRhdGVJbmxpbmVDb250ZW50
LmxvZ2ljYWxXaWR0aCgpLCBjYW5kaWRhdGVJbmxpbmVDb250ZW50LmNvbGxhcHNpYmxlVHJhaWxp
bmdXaWR0aCgpIH0sIGxpbmVTdGF0dXMpOwogICAgIGlmIChyZXN1bHQubGFzdFdyYXBPcHBvcnR1
bml0eUl0ZW0pCiAgICAgICAgIG1fbGFzdFdyYXBPcHBvcnR1bml0eUl0ZW0gPSByZXN1bHQubGFz
dFdyYXBPcHBvcnR1bml0eUl0ZW07CiAgICAgaWYgKHJlc3VsdC5hY3Rpb24gPT0gTGluZUJyZWFr
ZXI6OlJlc3VsdDo6QWN0aW9uOjpLZWVwKSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>