<?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>207433</bug_id>
          
          <creation_ts>2020-02-08 13:45:43 -0800</creation_ts>
          <short_desc>[LFC][BFC] Replace &quot;estimated&quot; term with &quot;precomputed&quot;</short_desc>
          <delta_ts>2020-02-08 20:12:37 -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>1616602</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-02-08 13:45:43 -0800</bug_when>
    <thetext>Those vertical position values are not estimations (or at least they should not be)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616603</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-08 13:46:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/59288794&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616638</commentid>
    <comment_count>2</comment_count>
      <attachid>390190</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-08 17:43:52 -0800</bug_when>
    <thetext>Created attachment 390190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616649</commentid>
    <comment_count>3</comment_count>
      <attachid>390193</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-08 19:51:53 -0800</bug_when>
    <thetext>Created attachment 390193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616650</commentid>
    <comment_count>4</comment_count>
      <attachid>390193</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-08 20:12:35 -0800</bug_when>
    <thetext>Comment on attachment 390193
Patch

Clearing flags on attachment: 390193

Committed r256100: &lt;https://trac.webkit.org/changeset/256100&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616651</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-08 20:12:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390190</attachid>
            <date>2020-02-08 17:43:52 -0800</date>
            <delta_ts>2020-02-08 19:51:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207433-20200208174352.patch</filename>
            <type>text/plain</type>
            <size>24125</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1Mzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU2YzlkNzQzMTllYTVh
NTY5ZGRlZjcwMzZkYjNiMzk2NzQ2YTlkNy4uNWRlM2FlZTNjM2FiZjY1YjY3NmZhZTE4YmI2YTRi
NzBiNTYwMWFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIwLTAyLTA4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bQkZDXSBSZXBsYWNl
ICJlc3RpbWF0ZWQiIHRlcm0gd2l0aCAicHJlY29tcHV0ZWQiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0MzMKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU5Mjg4Nzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSB0ZXJtICJwcmUtY29tcHV0ZWQiIGRlc2NyaWJlcyBiZXR0ZXIgd2hhdCB0aGlz
IHZhbHVlIGlzLgorCisgICAgICAgICogbGF5b3V0L01hcmdpblR5cGVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkVzdGltYXRlZE1hcmdpbkJlZm9yZTo6dXNlZFZhbHVlIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojp1c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9hdEF2b2lkZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwcmVjb21wdXRlVmVy
dGljYWxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6OnByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6cHJlY29tcHV0ZVZl
cnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlSGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6c2V0UHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpoYXNQcmVjb21wdXRlZE1hcmdp
bkJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVz
dGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpzZXRFc3RpbWF0ZWRNYXJn
aW5CZWZvcmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpoYXNFc3RpbWF0ZWRNYXJnaW5CZWZvcmUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5o
OgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1h
cmdpbkNvbGxhcHNlOjpoYXNDbGVhcmFuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6dXBkYXRlTWFyZ2lu
QWZ0ZXJGb3JQcmV2aW91c1NpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZVZhbHVl
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6Ok1hcmdpbkNvbGxhcHNlOjpwcmVjb21wdXRlZE1hcmdpbkJlZm9yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpl
c3RpbWF0ZWRNYXJnaW5CZWZvcmUpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9kaXNwbGF5
dHJlZS9EaXNwbGF5Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6Qm94
KToKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRIYXNQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OmludmFsaWRhdGVQcmVjb21wdXRlZE1hcmdp
bkJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnRvcCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnRvcExlZnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRWZXJ0aWNhbE1hcmdpbik6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5OjpCb3g6OnNldEhhc0VzdGltYXRlZE1hcmdpbkJlZm9yZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OmludmFsaWRhdGVFc3RpbWF0ZWRNYXJn
aW5CZWZvcmUpOiBEZWxldGVkLgorCiAyMDIwLTAyLTA4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bQkZDXSBQcmUtY29tcHV0ZSB2ZXJ0aWNhbCBwb3Np
dGlvbiBvbmx5IHdoZW4gd2UgcmVhbGx5IG5lZWQgaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTWFyZ2luVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9NYXJnaW5U
eXBlcy5oCmluZGV4IGU1OWRhNjUwNWM0YWMwODg4M2RiYWU3YjZiODZlMzhkMjQ2ODJkZWIuLjA1
MDAyNGMyY2RhOTg0MTkzOTYzYmY3YjBlNTAzMWY5ZWFmMDI0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9NYXJnaW5UeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9NYXJnaW5UeXBlcy5oCkBAIC03NSw3ICs3NSw3IEBAIHN0cnVjdCBVc2VkSG9yaXpvbnRhbE1h
cmdpbiB7CiAgICAgTGF5b3V0VW5pdCBlbmQ7CiB9OwogCi1zdHJ1Y3QgRXN0aW1hdGVkTWFyZ2lu
QmVmb3JlIHsKK3N0cnVjdCBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSB7CiAgICAgTGF5b3V0VW5p
dCB1c2VkVmFsdWUoKSBjb25zdCB7IHJldHVybiBjb2xsYXBzZWRWYWx1ZS52YWx1ZU9yKG5vbkNv
bGxhcHNlZFZhbHVlKTsgfQogICAgIExheW91dFVuaXQgbm9uQ29sbGFwc2VkVmFsdWU7CiAgICAg
T3B0aW9uYWw8TGF5b3V0VW5pdD4gY29sbGFwc2VkVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmNwcAppbmRleCA4OTU0YjQ2ZTExOTBiYTdjNDRiMjRiMGQ2MTIyMWZlMTFiZTAwNmY0
Li4zNjJkYTQwNWRiMDhmZjU0NDI2ZjgwZWVmNTEyMDA0NzA2ZTY1NTMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tG
b3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCBPcHRpb25hbDxMYXlvdXRV
bml0PiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojp1c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9hdEF2
b2lkZXIoYwogICAgIEFTU0VSVChsYXlvdXRCb3guaXNGbG9hdEF2b2lkZXIoKSk7CiAgICAgaWYg
KGZsb2F0aW5nQ29udGV4dC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgLy8g
VmVydGljYWwgc3RhdGljIHBvc2l0aW9uIGlzIG5vdCBjb21wdXRlZCB5ZXQsIHNvIGxldCdzIGp1
c3QgZXN0aW1hdGUgaXQgZm9yIG5vdy4KKyAgICAvLyBWZXJ0aWNhbCBzdGF0aWMgcG9zaXRpb24g
aXMgbm90IGNvbXB1dGVkIHlldCwgc28gbGV0J3MganVzdCBwcmUtY29tcHV0ZSBpdCBmb3Igbm93
LgogICAgIGF1dG8gdmVydGljYWxQb3NpdGlvbiA9IG1hcFRvcFRvRm9ybWF0dGluZ0NvbnRleHRS
b290KGxheW91dEJveCk7CiAgICAgYXV0byBjb25zdHJhaW50cyA9IGZsb2F0aW5nQ29udGV4dC5j
b25zdHJhaW50cyh7IHZlcnRpY2FsUG9zaXRpb24gfSk7CiAgICAgaWYgKCFjb25zdHJhaW50cy5s
ZWZ0ICYmICFjb25zdHJhaW50cy5yaWdodCkKQEAgLTIzMywyNyArMjMzLDI3IEBAIHZvaWQgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbihjb25z
dCBCb3gmIGxheW91dEJvCiAgICAgZm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChsYXlvdXRC
b3gpLnNldExlZnQoZ2VvbWV0cnkoKS5zdGF0aWNIb3Jpem9udGFsUG9zaXRpb24obGF5b3V0Qm94
LCBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKSk7CiB9CiAKLXZvaWQgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24oY29u
c3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYgaG9yaXpvbnRh
bENvbnN0cmFpbnRzLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJiB2ZXJ0aWNhbENvbnN0cmFp
bnRzKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwcmVjb21wdXRlVmVydGljYWxQb3Np
dGlvbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBo
b3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmIHZlcnRpY2Fs
Q29uc3RyYWludHMpCiB7CiAgICAgYXV0byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gZ2VvbWV0
cnkoKS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFp
bnRzKTsKICAgICBhdXRvIHVzZWROb25Db2xsYXBzZWRNYXJnaW4gPSBVc2VkVmVydGljYWxNYXJn
aW46Ok5vbkNvbGxhcHNlZFZhbHVlcyB7IGNvbXB1dGVkVmVydGljYWxNYXJnaW4uYmVmb3JlLnZh
bHVlT3IoMCksIGNvbXB1dGVkVmVydGljYWxNYXJnaW4uYWZ0ZXIudmFsdWVPcigwKSB9OwotICAg
IGF1dG8gZXN0aW1hdGVkTWFyZ2luQmVmb3JlID0gbWFyZ2luQ29sbGFwc2UoKS5lc3RpbWF0ZWRN
YXJnaW5CZWZvcmUobGF5b3V0Qm94LCB1c2VkTm9uQ29sbGFwc2VkTWFyZ2luKTsKLSAgICBzZXRF
c3RpbWF0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94LCBlc3RpbWF0ZWRNYXJnaW5CZWZvcmUpOwor
ICAgIGF1dG8gcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgPSBtYXJnaW5Db2xsYXBzZSgpLnByZWNv
bXB1dGVkTWFyZ2luQmVmb3JlKGxheW91dEJveCwgdXNlZE5vbkNvbGxhcHNlZE1hcmdpbik7Cisg
ICAgc2V0UHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94LCBwcmVjb21wdXRlZE1hcmdp
bkJlZm9yZSk7CiAKICAgICBhdXRvJiBkaXNwbGF5Qm94ID0gZm9ybWF0dGluZ1N0YXRlKCkuZGlz
cGxheUJveChsYXlvdXRCb3gpOwotICAgIGF1dG8gbm9uQ29sbGFwc2VkVmFsdWVzID0gVXNlZFZl
cnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgeyBlc3RpbWF0ZWRNYXJnaW5CZWZvcmUu
bm9uQ29sbGFwc2VkVmFsdWUsIHsgfSB9OwotICAgIGF1dG8gY29sbGFwc2VkVmFsdWVzID0gVXNl
ZFZlcnRpY2FsTWFyZ2luOjpDb2xsYXBzZWRWYWx1ZXMgeyBlc3RpbWF0ZWRNYXJnaW5CZWZvcmUu
Y29sbGFwc2VkVmFsdWUsIHsgfSwgZXN0aW1hdGVkTWFyZ2luQmVmb3JlLmlzQ29sbGFwc2VkVGhy
b3VnaCB9OworICAgIGF1dG8gbm9uQ29sbGFwc2VkVmFsdWVzID0gVXNlZFZlcnRpY2FsTWFyZ2lu
OjpOb25Db2xsYXBzZWRWYWx1ZXMgeyBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZS5ub25Db2xsYXBz
ZWRWYWx1ZSwgeyB9IH07CisgICAgYXV0byBjb2xsYXBzZWRWYWx1ZXMgPSBVc2VkVmVydGljYWxN
YXJnaW46OkNvbGxhcHNlZFZhbHVlcyB7IHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlLmNvbGxhcHNl
ZFZhbHVlLCB7IH0sIHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlLmlzQ29sbGFwc2VkVGhyb3VnaCB9
OwogICAgIGF1dG8gdmVydGljYWxNYXJnaW4gPSBVc2VkVmVydGljYWxNYXJnaW4geyBub25Db2xs
YXBzZWRWYWx1ZXMsIGNvbGxhcHNlZFZhbHVlcyB9OwogICAgIGRpc3BsYXlCb3guc2V0VmVydGlj
YWxNYXJnaW4odmVydGljYWxNYXJnaW4pOwogICAgIGRpc3BsYXlCb3guc2V0VG9wKHZlcnRpY2Fs
UG9zaXRpb25XaXRoTWFyZ2luKGxheW91dEJveCwgdmVydGljYWxNYXJnaW4sIHZlcnRpY2FsQ29u
c3RyYWludHMpKTsKICNpZiBBU1NFUlRfRU5BQkxFRAotICAgIGRpc3BsYXlCb3guc2V0SGFzRXN0
aW1hdGVkTWFyZ2luQmVmb3JlKCk7CisgICAgZGlzcGxheUJveC5zZXRIYXNQcmVjb21wdXRlZE1h
cmdpbkJlZm9yZSgpOwogI2VuZGlmCiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMoY29uc3QgQm94JiBs
YXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBo
b3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0
cmFpbnRzPiYgdmVydGljYWxDb25zdHJhaW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6cHJlY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMoY29uc3QgQm94JiBsYXlv
dXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jp
em9udGFsQ29uc3RyYWludHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFp
bnRzPiYgdmVydGljYWxDb25zdHJhaW50cykKIHsKLSAgICAvLyBXZSBvbmx5IG5lZWQgdG8gZXN0
aW1hdGUgbWFyZ2luIHRvcCBmb3IgZmxvYXQgcmVsYXRlZCBsYXlvdXQgKGZvcm1hdHRpbmcgY29u
dGV4dCByb290cyBhdm9pZCBmbG9hdHMpLgorICAgIC8vIFdlIG9ubHkgbmVlZCB0byBwcmUtY29t
cHV0ZSB0aGUgbWFyZ2luIHRvcCBmb3IgZmxvYXQgcmVsYXRlZCBsYXlvdXQgKGZvcm1hdHRpbmcg
Y29udGV4dCByb290cyBhdm9pZCBmbG9hdHMpLgogICAgIEFTU0VSVChsYXlvdXRCb3guaXNGbG9h
dEF2b2lkZXIoKSB8fCBsYXlvdXRCb3guZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dCgpKTsKIAogICAgIC8vIEluIG9yZGVyIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBhIGJveCBzaG91
bGQgYXZvaWQgYSBmbG9hdCwgd2UgbmVlZCB0byBrbm93IHRoZSBmaW5hbCBwb3NpdGlvbnMgb2Yg
Ym90aCAoaWdub3JlIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGZvciBub3cpLgpAQCAtMjY3LDggKzI2
Nyw4IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRp
Y2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMoY29uc3QKICAgICAvLyBUaGUgaWRlYSBoZXJlIGlzIHRo
YXQgYXMgbG9uZyBhcyB3ZSBkb24ndCBjcm9zcyB0aGUgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0
IGJvdW5kYXJ5LCB3ZSBzaG91bGQgYmUgYWJsZSB0byBwcmUtY29tcHV0ZSB0aGUgZmluYWwgdG9w
IHBvc2l0aW9uLgogICAgIC8vIEZJWE1FOiB3ZSBjdXJyZW50bHkgZG9uJ3QgYWNjb3VudCBmb3Ig
dGhlICJjbGVhciIgcHJvcGVydHkgd2hlbiBjb21wdXRpbmcgdGhlIGZpbmFsIHBvc2l0aW9uIGZv
ciBhbiBhbmNlc3Rvci4KICAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gbGF5b3V0Qm94LmNvbnRh
aW5pbmdCbG9jaygpOyBhbmNlc3RvciAmJiAhYW5jZXN0b3ItPmVzdGFibGlzaGVzQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dCgpOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5jb250YWluaW5nQmxvY2soKSkg
ewotICAgICAgICAvLyBGSVhNRTogd2l0aCBpbmNyZW1lbnRhbCBsYXlvdXQsIHdlIG1pZ2h0IGFj
dHVhbGx5IGhhdmUgYSB2YWxpZCAobm9uLWVzdGltYXRlZCkgbWFyZ2luIHRvcCBhcyB3ZWxsLgot
ICAgICAgICBpZiAoaGFzRXN0aW1hdGVkTWFyZ2luQmVmb3JlKCphbmNlc3RvcikpCisgICAgICAg
IC8vIEZJWE1FOiB3aXRoIGluY3JlbWVudGFsIGxheW91dCwgd2UgbWlnaHQgYWN0dWFsbHkgaGF2
ZSBhIHZhbGlkIChub24tcHJlY29tcHV0ZWQpIG1hcmdpbiB0b3AgYXMgd2VsbC4KKyAgICAgICAg
aWYgKGhhc1ByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKCphbmNlc3RvcikpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yQW5jZXN0b3IgPSBb
Jl0gewogICAgICAgICAgICAgYXV0byogY29udGFpbmluZ0Jsb2NrID0gbGF5b3V0Qm94LmNvbnRh
aW5pbmdCbG9jaygpOwpAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMoY29uc3QK
ICAgICAgICAgICAgIGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9IGxheW91dEJveC5jb250YWluaW5n
QmxvY2soKTsKICAgICAgICAgICAgIHJldHVybiBjb250YWluaW5nQmxvY2sgPT0gJnJvb3QoKSA/
IHZlcnRpY2FsQ29uc3RyYWludHMucm9vdCA6IEdlb21ldHJ5Ojp2ZXJ0aWNhbENvbnN0cmFpbnRz
Rm9ySW5GbG93KGdlb21ldHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2spKTsKICAgICAgICAgfTsK
LSAgICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24oKmFuY2VzdG9yLCBob3Jp
em9udGFsQ29uc3RyYWludHNGb3JBbmNlc3RvcigpLCB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yQW5j
ZXN0b3IoKSk7CisgICAgICAgIHByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uKCphbmNlc3Rvciwg
aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yQW5jZXN0b3IoKSwgdmVydGljYWxDb25zdHJhaW50c0Zv
ckFuY2VzdG9yKCkpOwogICAgIH0KIH0KIApAQCAtMjg4LDggKzI4OCw4IEBAIHZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6cHJlY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5n
Um9vdChjb25zdCBGCiAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0QXZvaWRlcigpICYmICFsYXlv
dXRCb3guaGFzRmxvYXRDbGVhcigpKQogICAgICAgICByZXR1cm47CiAgICAgLy8gV2UgbmVlZCB0
aGUgZmluYWwgdmVydGljYWwgcG9zaXRpb24gd2hlbiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGlu
aGVyaXRzIGZsb2F0cyBmcm9tIHRoZSBwYXJlbnQgRkMuCi0gICAgY29tcHV0ZUVzdGltYXRlZFZl
cnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWlu
dHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwotICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBv
c2l0aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jaywg
dmVydGljYWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2spOworICAgIHByZWNvbXB1dGVWZXJ0
aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRz
LCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAgICBwcmVjb21wdXRlVmVydGljYWxQb3NpdGlvbihs
YXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2ssIHZlcnRpY2Fs
Q29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKTsKICAgICBpZiAobGF5b3V0Qm94Lmhhc0Zsb2F0
Q2xlYXIoKSkgewogICAgICAgICAvLyBpZiB3ZSBqdXN0IGxldCB0aGUgYm94IHNpdCBhdCB0aGUg
c3RhdGljIHZlcnRpY2FsIHBvc2l0aW9uLCB3ZSBtaWdodCBmaW5kIHVucmVsYXRlZCBmbG9hdCBi
b3hlcyB0aGVyZSAoYm94ZXMgdGhhdCB3ZSBuZWVkIHRvIGNsZWFyKS4KICAgICAgICAgY29tcHV0
ZVZlcnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKGZsb2F0aW5nQ29udGV4dCwgbGF5b3V0Qm94
KTsKQEAgLTMwNCwxNCArMzA0LDE0IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhjb25zdCBGbG9hdGluZ0NvbnRleHQmCiAgICAgLy8g
dG8gYSBkaWZmZXJlbnQgc2V0IG9mIGNvbnRhaW5pbmcgYmxvY2tzIChidXQgdGhleSBhbGwgZGVz
Y2VuZGFudHMgb2YgdGhlIEJGQyByb290KS4KICAgICAvLyBIb3dldmVyIGFjY29yZGluZyB0byB0
aGUgQkZDIHJ1bGVzLCBhdCB0aGlzIHBvaW50IG9mIHRoZSBsYXlvdXQgZmxvdyB3ZSBkb24ndCB5
ZXQgaGF2ZSBjb21wdXRlZCB2ZXJ0aWNhbCBwb3NpdGlvbnMgZm9yIHRoZSBhbmNlc3RvcnMuCiAg
ICAgaWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKSB7Ci0gICAgICAgIGNvbXB1
dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGxheW91dEJveCwgaG9yaXpv
bnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAgICAgICAgcHJlY29tcHV0
ZVZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3Ry
YWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwogICAgICAgICBmb3JtYXR0aW5nU3RhdGUoKS5k
aXNwbGF5Qm94KGxheW91dEJveCkuc2V0VG9wTGVmdChmbG9hdGluZ0NvbnRleHQucG9zaXRpb25G
b3JGbG9hdChsYXlvdXRCb3gpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBOb24t
ZmxvYXQgcG9zaXRpb25lZCBmbG9hdCBhdm9pZGVycyAoZm9ybWF0dGluZyBjb250ZXh0IHJvb3Rz
IGFuZCBjbGVhciBib3hlcykgc2hvdWxkIGJlIGZpbmUgdW5sZXNzIHRoZXJlIGFyZSBmbG9hdHMg
aW4gdGhpcyBjb250ZXh0LgogICAgIGlmIChmbG9hdGluZ0NvbnRleHQuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47Ci0gICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNl
c3RvcnMobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWlu
dHMpOworICAgIHByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGxheW91dEJv
eCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKICAgICBpZiAo
bGF5b3V0Qm94Lmhhc0Zsb2F0Q2xlYXIoKSkKICAgICAgICAgcmV0dXJuIGNvbXB1dGVWZXJ0aWNh
bFBvc2l0aW9uRm9yRmxvYXRDbGVhcihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCk7CiAKQEAg
LTQxNywxNCArNDE3LDE0IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhl
aWdodEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QKIAogICAgIC8vIE91dCBv
ZiBmbG93IGJveGVzIGRvbid0IG5lZWQgdmVydGljYWwgYWRqdXN0bWVudCBhZnRlciBtYXJnaW4g
Y29sbGFwc2luZy4KICAgICBpZiAobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7
Ci0gICAgICAgIEFTU0VSVCghaGFzRXN0aW1hdGVkTWFyZ2luQmVmb3JlKGxheW91dEJveCkpOwor
ICAgICAgICBBU1NFUlQoIWhhc1ByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGxheW91dEJveCkpOwog
ICAgICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hIZWlnaHQoY29udGVudEhlaWdodEFuZE1h
cmdpbi5jb250ZW50SGVpZ2h0KTsKICAgICAgICAgZGlzcGxheUJveC5zZXRWZXJ0aWNhbE1hcmdp
bih2ZXJ0aWNhbE1hcmdpbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQo
IWhhc0VzdGltYXRlZE1hcmdpbkJlZm9yZShsYXlvdXRCb3gpIHx8IGVzdGltYXRlZE1hcmdpbkJl
Zm9yZShsYXlvdXRCb3gpLnVzZWRWYWx1ZSgpID09IHZlcnRpY2FsTWFyZ2luLmJlZm9yZSgpKTsK
LSAgICByZW1vdmVFc3RpbWF0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94KTsKKyAgICBBU1NFUlQo
IWhhc1ByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGxheW91dEJveCkgfHwgcHJlY29tcHV0ZWRNYXJn
aW5CZWZvcmUobGF5b3V0Qm94KS51c2VkVmFsdWUoKSA9PSB2ZXJ0aWNhbE1hcmdpbi5iZWZvcmUo
KSk7CisgICAgcmVtb3ZlUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94KTsKICAgICBk
aXNwbGF5Qm94LnNldFRvcCh2ZXJ0aWNhbFBvc2l0aW9uV2l0aE1hcmdpbihsYXlvdXRCb3gsIHZl
cnRpY2FsTWFyZ2luLCB2ZXJ0aWNhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jaykpOwogICAg
IGRpc3BsYXlCb3guc2V0Q29udGVudEJveEhlaWdodChjb250ZW50SGVpZ2h0QW5kTWFyZ2luLmNv
bnRlbnRIZWlnaHQpOwogICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4odmVydGljYWxN
YXJnaW4pOwpAQCAtNTQwLDE4ICs1NDAsMTggQEAgTGF5b3V0VW5pdCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojp2ZXJ0aWNhbFBvc2l0aW9uV2l0aE1hcmdpbihjb25zdCBCb3gmIGxheW91dEIKICAg
ICByZXR1cm4gY29udGFpbmluZ0Jsb2NrQ29udGVudEJveFRvcCArIHZlcnRpY2FsTWFyZ2luLmJl
Zm9yZSgpOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnNldEVzdGltYXRlZE1h
cmdpbkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgRXN0aW1hdGVkTWFyZ2luQmVm
b3JlJiBlc3RpbWF0ZWRNYXJnaW5CZWZvcmUpCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OnNldFByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBQ
cmVjb21wdXRlZE1hcmdpbkJlZm9yZSYgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUpCiB7CiAgICAg
Ly8gQ2FuJ3QgY3Jvc3MgZm9ybWF0dGluZyBjb250ZXh0IGJvdW5kYXJ5LgogICAgIEFTU0VSVCgm
bGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JCb3gobGF5b3V0Qm94KSA9PSAmZm9ybWF0
dGluZ1N0YXRlKCkpOwotICAgIG1fZXN0aW1hdGVkTWFyZ2luQmVmb3JlTGlzdC5zZXQoJmxheW91
dEJveCwgZXN0aW1hdGVkTWFyZ2luQmVmb3JlKTsKKyAgICBtX3ByZWNvbXB1dGVkTWFyZ2luQmVm
b3JlTGlzdC5zZXQoJmxheW91dEJveCwgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUpOwogfQogCi1i
b29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Omhhc0VzdGltYXRlZE1hcmdpbkJlZm9yZShjb25z
dCBCb3gmIGxheW91dEJveCkgY29uc3QKK2Jvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6aGFz
UHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CiB7CiAg
ICAgLy8gQ2FuJ3QgY3Jvc3MgZm9ybWF0dGluZyBjb250ZXh0IGJvdW5kYXJ5LgogICAgIEFTU0VS
VCgmbGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JCb3gobGF5b3V0Qm94KSA9PSAmZm9y
bWF0dGluZ1N0YXRlKCkpOwotICAgIHJldHVybiBtX2VzdGltYXRlZE1hcmdpbkJlZm9yZUxpc3Qu
Y29udGFpbnMoJmxheW91dEJveCk7CisgICAgcmV0dXJuIG1fcHJlY29tcHV0ZWRNYXJnaW5CZWZv
cmVMaXN0LmNvbnRhaW5zKCZsYXlvdXRCb3gpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5oCmluZGV4IDFjMWZiN2MxOTkwOTgzYjg2M2JiODYzYzVmNmYzMGNiYjMyMWQxMDIuLmY0
NDY1ZTk2YTk1MmY0NWEwNjJjM2NhZTY0NjYzMTBkMTI2NjE4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5oCkBAIC02Nyw4ICs2Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRl
UG9zaXRpb25Ub0F2b2lkRmxvYXRzKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYs
IGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiwgY29uc3QgQ29u
c3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+Jik7CiAgICAgdm9pZCBjb21wdXRlVmVy
dGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIoY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3Qg
Qm94Jik7CiAKLSAgICB2b2lkIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0
IEJveCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYsIGNvbnN0IFZlcnRpY2FsQ29uc3Ry
YWludHMmKTsKLSAgICB2b2lkIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5j
ZXN0b3JzKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3Ry
YWludHM+JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+Jik7Cisg
ICAgdm9pZCBwcmVjb21wdXRlVmVydGljYWxQb3NpdGlvbihjb25zdCBCb3gmLCBjb25zdCBIb3Jp
em9udGFsQ29uc3RyYWludHMmLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJik7CisgICAgdm9p
ZCBwcmVjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckFuY2VzdG9ycyhjb25zdCBCb3gmLCBjb25z
dCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNvbnN0IENvbnN0cmFp
bnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwogICAgIHZvaWQgcHJlY29tcHV0ZVZlcnRp
Y2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdChjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25z
dCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNv
bnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwogCiAgICAgSW50cmlu
c2ljV2lkdGhDb25zdHJhaW50cyBjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSBv
dmVycmlkZTsKQEAgLTEwNCw3ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIHB1YmxpYzoKICAgICAg
ICAgVXNlZFZlcnRpY2FsTWFyZ2luOjpDb2xsYXBzZWRWYWx1ZXMgY29sbGFwc2VkVmVydGljYWxW
YWx1ZXMoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMp
OwogCi0gICAgICAgIEVzdGltYXRlZE1hcmdpbkJlZm9yZSBlc3RpbWF0ZWRNYXJnaW5CZWZvcmUo
Y29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOworICAg
ICAgICBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25z
dCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7CiAgICAgICAg
IExheW91dFVuaXQgbWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaChjb25zdCBC
b3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7CiAgICAgICAgIHN0
YXRpYyB2b2lkIHVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nKEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQmLCBjb25zdCBNYXJnaW5Db2xsYXBzZSYsIGNvbnN0IEJveCYpOwogICAgICAg
ICBzdGF0aWMgdm9pZCB1cGRhdGVQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luVmFsdWVzKEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQmLCBjb25zdCBNYXJnaW5Db2xsYXBzZSYsIGNvbnN0IEJveCYpOwpAQCAt
MTU4LDIwICsxNTgsMTkgQEAgcHJpdmF0ZToKICAgICB9OwogICAgIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OlF1aXJrcyBxdWlya3MoKSBjb25zdCB7IHJldHVybiBRdWlya3MoKnRoaXMpOyB9CiAK
LSAgICB2b2lkIHNldEVzdGltYXRlZE1hcmdpbkJlZm9yZShjb25zdCBCb3gmLCBjb25zdCBFc3Rp
bWF0ZWRNYXJnaW5CZWZvcmUmKTsKLSAgICB2b2lkIHJlbW92ZUVzdGltYXRlZE1hcmdpbkJlZm9y
ZShjb25zdCBCb3gmIGxheW91dEJveCkgeyBtX2VzdGltYXRlZE1hcmdpbkJlZm9yZUxpc3QucmVt
b3ZlKCZsYXlvdXRCb3gpOyB9Ci0gICAgYm9vbCBoYXNFc3RpbWF0ZWRNYXJnaW5CZWZvcmUoY29u
c3QgQm94JikgY29uc3Q7CisgICAgdm9pZCBzZXRQcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25z
dCBCb3gmLCBjb25zdCBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSYpOworICAgIHZvaWQgcmVtb3Zl
UHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gpIHsgbV9wcmVjb21w
dXRlZE1hcmdpbkJlZm9yZUxpc3QucmVtb3ZlKCZsYXlvdXRCb3gpOyB9CisgICAgYm9vbCBoYXNQ
cmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25zdCBCb3gmKSBjb25zdDsKICAgICBPcHRpb25hbDxM
YXlvdXRVbml0PiB1c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9hdEF2b2lkZXIoY29uc3QgRmxvYXRp
bmdDb250ZXh0JiwgY29uc3QgQm94JikgY29uc3Q7CiAjaWYgQVNTRVJUX0VOQUJMRUQKLSAgICBF
c3RpbWF0ZWRNYXJnaW5CZWZvcmUgZXN0aW1hdGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5
b3V0Qm94KSBjb25zdCB7IHJldHVybiBtX2VzdGltYXRlZE1hcmdpbkJlZm9yZUxpc3QuZ2V0KCZs
YXlvdXRCb3gpOyB9Ci0gICAgYm9vbCBoYXNQcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25zdCBC
b3gmKSBjb25zdDsKKyAgICBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBwcmVjb21wdXRlZE1hcmdp
bkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gbV9wcmVjb21wdXRl
ZE1hcmdpbkJlZm9yZUxpc3QuZ2V0KCZsYXlvdXRCb3gpOyB9CiAjZW5kaWYKIAogICAgIGNvbnN0
IEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBk
b3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRp
bmdTdGF0ZSgpKTsgfQogICAgIEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUo
KSB7IHJldHVybiBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRl
eHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsgfQogCiBwcml2YXRlOgotICAgIEhhc2hNYXA8Y29uc3Qg
Qm94KiwgRXN0aW1hdGVkTWFyZ2luQmVmb3JlPiBtX2VzdGltYXRlZE1hcmdpbkJlZm9yZUxpc3Q7
CisgICAgSGFzaE1hcDxjb25zdCBCb3gqLCBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZT4gbV9wcmVj
b21wdXRlZE1hcmdpbkJlZm9yZUxpc3Q7CiB9OwogCiBpbmxpbmUgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6Okdlb21ldHJ5KGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmIGJs
b2NrRm9ybWF0dGluZ0NvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAppbmRleCAzNjYx
YzQ3ODc5MjE3ZjRlNjQzNDRmYzZjODkyMTkxMTJjNmRiZjhmLi4zM2VlNzg5ZjZlMWRiMzMyNzc1
NTAxMWI2NDY5NjMwYTM5MDdiYzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKQEAgLTg1
LDcgKzg1LDcgQEAgYm9vbCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6
aGFzQ2xlYXJhbmNlKGNvbnN0IEJveCYgbGF5b3V0Qm94KQogewogICAgIGlmICghbGF5b3V0Qm94
Lmhhc0Zsb2F0Q2xlYXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIC8vIEZJWE1FOiBj
b21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290IGxvZ2ljIGVu
ZHMgdXAgY2FsbGluZyBpbnRvIHRoaXMgZnVuY3Rpb24gd2hlbiB0aGUgbGF5b3V0Qm94IChmaXJz
dCBpbmZsb3cgY2hpbGQpIGhhcworICAgIC8vIEZJWE1FOiBwcmVjb21wdXRlZFZlcnRpY2FsUG9z
aXRpb25Gb3JGb3JtYXR0aW5nUm9vdCBsb2dpYyBlbmRzIHVwIGNhbGxpbmcgaW50byB0aGlzIGZ1
bmN0aW9uIHdoZW4gdGhlIGxheW91dEJveCAoZmlyc3QgaW5mbG93IGNoaWxkKSBoYXMKICAgICAv
LyBub3QgYmVlbiBsYWlkIG91dC4KICAgICBpZiAoIWxheW91dFN0YXRlKCkuaGFzRGlzcGxheUJv
eChsYXlvdXRCb3gpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00NzIsNyArNDcyLDcgQEAg
dm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6dXBkYXRlTWFyZ2lu
QWZ0ZXJGb3JQcmV2aW91c1NpYmxpbmcKICAgICAvLyA0LiBJZiBzbywgdXBkYXRlIHRoZSBwb3Np
dGl2ZS9uZWdhdGl2ZSBjYWNoZS4KICAgICAvLyA1LiBJbiBjYXNlIG9mIGNvbGxhcHNlZCB0aHJv
dWdoIG1hcmdpbnMgY2hlY2sgaWYgdGhlIGJlZm9yZSBtYXJnaW4gY29sbGFwZXMgd2l0aCB0aGUg
cHJldmlvdXMgaW5mbG93IHNpYmxpbmcncyBhZnRlciBtYXJnaW4uCiAgICAgLy8gNi4gSWYgc28s
IGp1bXAgdG8gIzIuCi0gICAgLy8gNy4gTm8gbmVlZCB0byBwcm9wYWdhdGUgdG8gcGFyZW50IGJl
Y2F1c2UgaXRzIG1hcmdpbiBpcyBub3QgY29tcHV0ZWQgeWV0IChlc3RpbWF0ZWQgYXQgbW9zdCku
CisgICAgLy8gNy4gTm8gbmVlZCB0byBwcm9wYWdhdGUgdG8gcGFyZW50IGJlY2F1c2UgaXRzIG1h
cmdpbiBpcyBub3QgY29tcHV0ZWQgeWV0IChwcmUtY29tcHV0ZWQgYXQgbW9zdCkuCiAgICAgYXV0
byogY3VycmVudEJveCA9ICZsYXlvdXRCb3g7CiAgICAgYXV0byYgYmxvY2tGb3JtYXR0aW5nU3Rh
dGUgPSBibG9ja0Zvcm1hdHRpbmdDb250ZXh0LmZvcm1hdHRpbmdTdGF0ZSgpOwogICAgIHdoaWxl
IChtYXJnaW5Db2xsYXBzZS5tYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUHJldmlvdXNTaWJsaW5n
TWFyZ2luQWZ0ZXIoKmN1cnJlbnRCb3gpKSB7CkBAIC01MTMsNyArNTEzLDcgQEAgUG9zaXRpdmVB
bmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
TWFyZ2luQ29sbGFwc2UKICAgICAgICAgYXV0byBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxN
YXJnaW4gPSBibG9ja0Zvcm1hdHRpbmdTdGF0ZS5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxN
YXJnaW4obGF5b3V0Qm94KTsKICAgICAgICAgcmV0dXJuIG1hcmdpblR5cGUgPT0gTWFyZ2luVHlw
ZTo6QmVmb3JlID8gcG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luLmJlZm9yZSA6IHBv
c2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbi5hZnRlcjsgCiAgICAgfQotICAgIC8vIFRo
aXMgaXMgdGhlIGVzdGltYXRlIHBhdGguIFdlIGRvbid0IHlldCBoYXZlIHBvc2l0aXZlL25lZ2F0
aXZlIG1hcmdpbiBjb21wdXRlZC4KKyAgICAvLyBUaGlzIGlzIHRoZSBwcmUtY29tcHV0ZWQgcGF0
aC4gV2UgZG9uJ3QgeWV0IGhhdmUgcG9zaXRpdmUvbmVnYXRpdmUgbWFyZ2luIGNvbXB1dGVkLgog
ICAgIGF1dG8gY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbiA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2Vv
bWV0cnkoKS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCwgR2VvbWV0cnk6Omhvcml6
b250YWxDb25zdHJhaW50c0ZvckluRmxvdyhmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9y
Qm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpKSk7CiAgICAgYXV0byBub25Db2xsYXBz
ZWRNYXJnaW4gPSBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyB7IGNvbXB1
dGVkVmVydGljYWxNYXJnaW4uYmVmb3JlLnZhbHVlT3IoMCksIGNvbXB1dGVkVmVydGljYWxNYXJn
aW4uYWZ0ZXIudmFsdWVPcigwKSB9OyAKIApAQCAtNTcxLDEwICs1NzEsMTAgQEAgUG9zaXRpdmVB
bmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
TWFyZ2luQ29sbGFwc2UKICAgICByZXR1cm4gY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFy
Z2luKGxhc3RDaGlsZENvbGxhcHNlZE1hcmdpbkFmdGVyKCksIG5vbkNvbGxhcHNlZEFmdGVyKTsK
IH0KIAotRXN0aW1hdGVkTWFyZ2luQmVmb3JlIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdp
bkNvbGxhcHNlOjplc3RpbWF0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gsIFVz
ZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIHVzZWROb25Db2xsYXBzZWRNYXJn
aW4pCitQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJn
aW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gs
IFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIHVzZWROb25Db2xsYXBzZWRN
YXJnaW4pCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Jsb2NrTGV2ZWxCb3goKSk7Ci0gICAg
Ly8gRG9uJ3QgZXN0aW1hdGUgdmVydGljYWwgbWFyZ2lucyBmb3Igb3V0IG9mIGZsb3cgYm94ZXMu
CisgICAgLy8gRG9uJ3QgcHJlLWNvbXB1dGUgdmVydGljYWwgbWFyZ2lucyBmb3Igb3V0IG9mIGZs
b3cgYm94ZXMuCiAgICAgQVNTRVJUKGxheW91dEJveC5pc0luRmxvdygpIHx8IGxheW91dEJveC5p
c0Zsb2F0aW5nUG9zaXRpb25lZCgpKTsKICAgICBBU1NFUlQoIWxheW91dEJveC5yZXBsYWNlZCgp
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3Bs
YXlCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3gu
Y3BwCmluZGV4IDc1YmVkYTkxMTdkZTU4N2I0ZDBmNzdmNTI5Mzk1MjM1M2E2YjljMWUuLjg4NzU3
NjZlYzM2NDA5MTJmMjk4OGU1NWE4NzA0MjI5NWQyMmE0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAg
Qm94OjpCb3goY29uc3QgQm94JiBvdGhlcikKICAgICAsIG1faGFzVmFsaWRQYWRkaW5nKG90aGVy
Lm1faGFzVmFsaWRQYWRkaW5nKQogICAgICwgbV9oYXNWYWxpZENvbnRlbnRIZWlnaHQob3RoZXIu
bV9oYXNWYWxpZENvbnRlbnRIZWlnaHQpCiAgICAgLCBtX2hhc1ZhbGlkQ29udGVudFdpZHRoKG90
aGVyLm1faGFzVmFsaWRDb250ZW50V2lkdGgpCi0gICAgLCBtX2hhc0VzdGltYXRlZE1hcmdpbkJl
Zm9yZShvdGhlci5tX2hhc0VzdGltYXRlZE1hcmdpbkJlZm9yZSkKKyAgICAsIG1faGFzUHJlY29t
cHV0ZWRNYXJnaW5CZWZvcmUob3RoZXIubV9oYXNQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSkKICNl
bmRpZgogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVl
L0Rpc3BsYXlCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5
Qm94LmgKaW5kZXggMjBiNzk3OWM3YTZiMDA4MTE0NzAwMDIzYjE4MzJlZjI5ZmExNTkzMi4uNzBm
ZWI2NTNiYjViZjFhNTZkMTk0YmM5NWRmM2YyOTNhM2NlMGE5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oCkBAIC0xMTMsNyArMTEzLDcgQEAg
cHVibGljOgogICAgIFJlY3QgY29udGVudEJveCgpIGNvbnN0OwogCiAjaWYgQVNTRVJUX0VOQUJM
RUQKLSAgICB2b2lkIHNldEhhc0VzdGltYXRlZE1hcmdpbkJlZm9yZSgpIHsgbV9oYXNFc3RpbWF0
ZWRNYXJnaW5CZWZvcmUgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRIYXNQcmVjb21wdXRlZE1hcmdp
bkJlZm9yZSgpIHsgbV9oYXNQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSA9IHRydWU7IH0KICNlbmRp
ZgogCiAgICAgdm9pZCBzZXRUb3BMZWZ0KGNvbnN0IExheW91dFBvaW50Jik7CkBAIC0xNDAsNyAr
MTQwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGludmFsaWRhdGVNYXJnaW4oKTsKICAgICB2b2lk
IGludmFsaWRhdGVCb3JkZXIoKSB7IG1faGFzVmFsaWRCb3JkZXIgPSBmYWxzZTsgfQogICAgIHZv
aWQgaW52YWxpZGF0ZVBhZGRpbmcoKSB7IG1faGFzVmFsaWRQYWRkaW5nID0gZmFsc2U7IH0KLSAg
ICB2b2lkIGludmFsaWRhdGVFc3RpbWF0ZWRNYXJnaW5CZWZvcmUoKSB7IG1faGFzRXN0aW1hdGVk
TWFyZ2luQmVmb3JlID0gZmFsc2U7IH0KKyAgICB2b2lkIGludmFsaWRhdGVQcmVjb21wdXRlZE1h
cmdpbkJlZm9yZSgpIHsgbV9oYXNQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSA9IGZhbHNlOyB9CiAK
ICAgICB2b2lkIHNldEhhc1ZhbGlkVG9wKCkgeyBtX2hhc1ZhbGlkVG9wID0gdHJ1ZTsgfQogICAg
IHZvaWQgc2V0SGFzVmFsaWRMZWZ0KCkgeyBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7IH0KQEAgLTE3
OSw3ICsxNzksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNWYWxpZFBhZGRpbmcgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9oYXNWYWxpZENvbnRlbnRIZWlnaHQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9oYXNWYWxpZENvbnRlbnRXaWR0aCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hhc0VzdGlt
YXRlZE1hcmdpbkJlZm9yZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1ByZWNvbXB1dGVkTWFy
Z2luQmVmb3JlIHsgZmFsc2UgfTsKICNlbmRpZiAvLyBBU1NFUlRfRU5BQkxFRAogfTsKIApAQCAt
MTkzLDcgKzE5Myw3IEBAIGlubGluZSB2b2lkIEJveDo6aW52YWxpZGF0ZU1hcmdpbigpCiAKIGlu
bGluZSBMYXlvdXRVbml0IEJveDo6dG9wKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9oYXNWYWxp
ZFRvcCAmJiAobV9oYXNFc3RpbWF0ZWRNYXJnaW5CZWZvcmUgfHwgbV9oYXNWYWxpZFZlcnRpY2Fs
TWFyZ2luKSk7CisgICAgQVNTRVJUKG1faGFzVmFsaWRUb3AgJiYgKG1faGFzUHJlY29tcHV0ZWRN
YXJnaW5CZWZvcmUgfHwgbV9oYXNWYWxpZFZlcnRpY2FsTWFyZ2luKSk7CiAgICAgcmV0dXJuIG1f
dG9wTGVmdC55KCk7CiB9CiAKQEAgLTIwNSw3ICsyMDUsNyBAQCBpbmxpbmUgTGF5b3V0VW5pdCBC
b3g6OmxlZnQoKSBjb25zdAogCiBpbmxpbmUgTGF5b3V0UG9pbnQgQm94Ojp0b3BMZWZ0KCkgY29u
c3QKIHsKLSAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCAmJiAobV9oYXNFc3RpbWF0ZWRNYXJnaW5C
ZWZvcmUgfHwgbV9oYXNWYWxpZFZlcnRpY2FsTWFyZ2luKSk7CisgICAgQVNTRVJUKG1faGFzVmFs
aWRUb3AgJiYgKG1faGFzUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgfHwgbV9oYXNWYWxpZFZlcnRp
Y2FsTWFyZ2luKSk7CiAgICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0ICYmIG1faGFzVmFsaWRIb3Jp
em9udGFsTWFyZ2luKTsKICAgICByZXR1cm4gbV90b3BMZWZ0OwogfQpAQCAtMjc2LDcgKzI3Niw3
IEBAIGlubGluZSB2b2lkIEJveDo6c2V0VmVydGljYWxNYXJnaW4oTGF5b3V0OjpVc2VkVmVydGlj
YWxNYXJnaW4gbWFyZ2luKQogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgc2V0SGFzVmFsaWRWZXJ0
aWNhbE1hcmdpbigpOwogICAgIHNldEhhc1ZhbGlkVmVydGljYWxOb25Db2xsYXBzZWRNYXJnaW4o
KTsKLSAgICBpbnZhbGlkYXRlRXN0aW1hdGVkTWFyZ2luQmVmb3JlKCk7CisgICAgaW52YWxpZGF0
ZVByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKCk7CiAjZW5kaWYKICAgICBtX3ZlcnRpY2FsTWFyZ2lu
ID0gbWFyZ2luOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390193</attachid>
            <date>2020-02-08 19:51:53 -0800</date>
            <delta_ts>2020-02-08 20:12:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207433-20200208195152.patch</filename>
            <type>text/plain</type>
            <size>24125</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ5ZjdkMGRiMzQ0MGY5
ODExYWZlODJlOWJkMGIzMjY3Y2VlMzdhYy4uOGExMDNiNjU1OGE1NmU4MDBhZmY0N2U4MmYyZDNl
ZDc4YWEyMjljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIwLTAyLTA4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bQkZDXSBSZXBsYWNl
ICJlc3RpbWF0ZWQiIHRlcm0gd2l0aCAicHJlY29tcHV0ZWQiCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0MzMKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU5Mjg4Nzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisg
ICAgICAgIFRoZSB0ZXJtICJwcmUtY29tcHV0ZWQiIGRlc2NyaWJlcyBiZXR0ZXIgd2hhdCB0aGlz
IHZhbHVlIGlzLgorCisgICAgICAgICogbGF5b3V0L01hcmdpblR5cGVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkVzdGltYXRlZE1hcmdpbkJlZm9yZTo6dXNlZFZhbHVlIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojp1c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9hdEF2b2lkZXIgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwcmVjb21wdXRlVmVy
dGljYWxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6OnByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6cHJlY29tcHV0ZVZl
cnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlSGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6c2V0UHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpoYXNQcmVjb21wdXRlZE1hcmdp
bkJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVz
dGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpzZXRFc3RpbWF0ZWRNYXJn
aW5CZWZvcmUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpoYXNFc3RpbWF0ZWRNYXJnaW5CZWZvcmUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5o
OgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1h
cmdpbkNvbGxhcHNlOjpoYXNDbGVhcmFuY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6dXBkYXRlTWFyZ2lu
QWZ0ZXJGb3JQcmV2aW91c1NpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZVZhbHVl
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6Ok1hcmdpbkNvbGxhcHNlOjpwcmVjb21wdXRlZE1hcmdpbkJlZm9yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpl
c3RpbWF0ZWRNYXJnaW5CZWZvcmUpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9kaXNwbGF5
dHJlZS9EaXNwbGF5Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkJveDo6Qm94
KToKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRIYXNQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OmludmFsaWRhdGVQcmVjb21wdXRlZE1hcmdp
bkJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnRvcCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OnRvcExlZnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6Qm94OjpzZXRWZXJ0aWNhbE1hcmdpbik6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5OjpCb3g6OnNldEhhc0VzdGltYXRlZE1hcmdpbkJlZm9yZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3g6OmludmFsaWRhdGVFc3RpbWF0ZWRNYXJn
aW5CZWZvcmUpOiBEZWxldGVkLgorCiAyMDIwLTAyLTA4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bQkZDXSBQcmUtY29tcHV0ZSB2ZXJ0aWNhbCBwb3Np
dGlvbiBvbmx5IHdoZW4gd2UgcmVhbGx5IG5lZWQgaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTWFyZ2luVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9NYXJnaW5U
eXBlcy5oCmluZGV4IGU1OWRhNjUwNWM0YWMwODg4M2RiYWU3YjZiODZlMzhkMjQ2ODJkZWIuLjA1
MDAyNGMyY2RhOTg0MTkzOTYzYmY3YjBlNTAzMWY5ZWFmMDI0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9NYXJnaW5UeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9NYXJnaW5UeXBlcy5oCkBAIC03NSw3ICs3NSw3IEBAIHN0cnVjdCBVc2VkSG9yaXpvbnRhbE1h
cmdpbiB7CiAgICAgTGF5b3V0VW5pdCBlbmQ7CiB9OwogCi1zdHJ1Y3QgRXN0aW1hdGVkTWFyZ2lu
QmVmb3JlIHsKK3N0cnVjdCBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSB7CiAgICAgTGF5b3V0VW5p
dCB1c2VkVmFsdWUoKSBjb25zdCB7IHJldHVybiBjb2xsYXBzZWRWYWx1ZS52YWx1ZU9yKG5vbkNv
bGxhcHNlZFZhbHVlKTsgfQogICAgIExheW91dFVuaXQgbm9uQ29sbGFwc2VkVmFsdWU7CiAgICAg
T3B0aW9uYWw8TGF5b3V0VW5pdD4gY29sbGFwc2VkVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmNwcAppbmRleCA4OTU0YjQ2ZTExOTBiYTdjNDRiMjRiMGQ2MTIyMWZlMTFiZTAwNmY0
Li4zNjJkYTQwNWRiMDhmZjU0NDI2ZjgwZWVmNTEyMDA0NzA2ZTY1NTMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tG
b3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCBPcHRpb25hbDxMYXlvdXRV
bml0PiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojp1c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9hdEF2
b2lkZXIoYwogICAgIEFTU0VSVChsYXlvdXRCb3guaXNGbG9hdEF2b2lkZXIoKSk7CiAgICAgaWYg
KGZsb2F0aW5nQ29udGV4dC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgLy8g
VmVydGljYWwgc3RhdGljIHBvc2l0aW9uIGlzIG5vdCBjb21wdXRlZCB5ZXQsIHNvIGxldCdzIGp1
c3QgZXN0aW1hdGUgaXQgZm9yIG5vdy4KKyAgICAvLyBWZXJ0aWNhbCBzdGF0aWMgcG9zaXRpb24g
aXMgbm90IGNvbXB1dGVkIHlldCwgc28gbGV0J3MganVzdCBwcmUtY29tcHV0ZSBpdCBmb3Igbm93
LgogICAgIGF1dG8gdmVydGljYWxQb3NpdGlvbiA9IG1hcFRvcFRvRm9ybWF0dGluZ0NvbnRleHRS
b290KGxheW91dEJveCk7CiAgICAgYXV0byBjb25zdHJhaW50cyA9IGZsb2F0aW5nQ29udGV4dC5j
b25zdHJhaW50cyh7IHZlcnRpY2FsUG9zaXRpb24gfSk7CiAgICAgaWYgKCFjb25zdHJhaW50cy5s
ZWZ0ICYmICFjb25zdHJhaW50cy5yaWdodCkKQEAgLTIzMywyNyArMjMzLDI3IEBAIHZvaWQgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbihjb25z
dCBCb3gmIGxheW91dEJvCiAgICAgZm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChsYXlvdXRC
b3gpLnNldExlZnQoZ2VvbWV0cnkoKS5zdGF0aWNIb3Jpem9udGFsUG9zaXRpb24obGF5b3V0Qm94
LCBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKSk7CiB9CiAKLXZvaWQgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24oY29u
c3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYgaG9yaXpvbnRh
bENvbnN0cmFpbnRzLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJiB2ZXJ0aWNhbENvbnN0cmFp
bnRzKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwcmVjb21wdXRlVmVydGljYWxQb3Np
dGlvbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBo
b3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmIHZlcnRpY2Fs
Q29uc3RyYWludHMpCiB7CiAgICAgYXV0byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gZ2VvbWV0
cnkoKS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFp
bnRzKTsKICAgICBhdXRvIHVzZWROb25Db2xsYXBzZWRNYXJnaW4gPSBVc2VkVmVydGljYWxNYXJn
aW46Ok5vbkNvbGxhcHNlZFZhbHVlcyB7IGNvbXB1dGVkVmVydGljYWxNYXJnaW4uYmVmb3JlLnZh
bHVlT3IoMCksIGNvbXB1dGVkVmVydGljYWxNYXJnaW4uYWZ0ZXIudmFsdWVPcigwKSB9OwotICAg
IGF1dG8gZXN0aW1hdGVkTWFyZ2luQmVmb3JlID0gbWFyZ2luQ29sbGFwc2UoKS5lc3RpbWF0ZWRN
YXJnaW5CZWZvcmUobGF5b3V0Qm94LCB1c2VkTm9uQ29sbGFwc2VkTWFyZ2luKTsKLSAgICBzZXRF
c3RpbWF0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94LCBlc3RpbWF0ZWRNYXJnaW5CZWZvcmUpOwor
ICAgIGF1dG8gcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgPSBtYXJnaW5Db2xsYXBzZSgpLnByZWNv
bXB1dGVkTWFyZ2luQmVmb3JlKGxheW91dEJveCwgdXNlZE5vbkNvbGxhcHNlZE1hcmdpbik7Cisg
ICAgc2V0UHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94LCBwcmVjb21wdXRlZE1hcmdp
bkJlZm9yZSk7CiAKICAgICBhdXRvJiBkaXNwbGF5Qm94ID0gZm9ybWF0dGluZ1N0YXRlKCkuZGlz
cGxheUJveChsYXlvdXRCb3gpOwotICAgIGF1dG8gbm9uQ29sbGFwc2VkVmFsdWVzID0gVXNlZFZl
cnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgeyBlc3RpbWF0ZWRNYXJnaW5CZWZvcmUu
bm9uQ29sbGFwc2VkVmFsdWUsIHsgfSB9OwotICAgIGF1dG8gY29sbGFwc2VkVmFsdWVzID0gVXNl
ZFZlcnRpY2FsTWFyZ2luOjpDb2xsYXBzZWRWYWx1ZXMgeyBlc3RpbWF0ZWRNYXJnaW5CZWZvcmUu
Y29sbGFwc2VkVmFsdWUsIHsgfSwgZXN0aW1hdGVkTWFyZ2luQmVmb3JlLmlzQ29sbGFwc2VkVGhy
b3VnaCB9OworICAgIGF1dG8gbm9uQ29sbGFwc2VkVmFsdWVzID0gVXNlZFZlcnRpY2FsTWFyZ2lu
OjpOb25Db2xsYXBzZWRWYWx1ZXMgeyBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZS5ub25Db2xsYXBz
ZWRWYWx1ZSwgeyB9IH07CisgICAgYXV0byBjb2xsYXBzZWRWYWx1ZXMgPSBVc2VkVmVydGljYWxN
YXJnaW46OkNvbGxhcHNlZFZhbHVlcyB7IHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlLmNvbGxhcHNl
ZFZhbHVlLCB7IH0sIHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlLmlzQ29sbGFwc2VkVGhyb3VnaCB9
OwogICAgIGF1dG8gdmVydGljYWxNYXJnaW4gPSBVc2VkVmVydGljYWxNYXJnaW4geyBub25Db2xs
YXBzZWRWYWx1ZXMsIGNvbGxhcHNlZFZhbHVlcyB9OwogICAgIGRpc3BsYXlCb3guc2V0VmVydGlj
YWxNYXJnaW4odmVydGljYWxNYXJnaW4pOwogICAgIGRpc3BsYXlCb3guc2V0VG9wKHZlcnRpY2Fs
UG9zaXRpb25XaXRoTWFyZ2luKGxheW91dEJveCwgdmVydGljYWxNYXJnaW4sIHZlcnRpY2FsQ29u
c3RyYWludHMpKTsKICNpZiBBU1NFUlRfRU5BQkxFRAotICAgIGRpc3BsYXlCb3guc2V0SGFzRXN0
aW1hdGVkTWFyZ2luQmVmb3JlKCk7CisgICAgZGlzcGxheUJveC5zZXRIYXNQcmVjb21wdXRlZE1h
cmdpbkJlZm9yZSgpOwogI2VuZGlmCiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMoY29uc3QgQm94JiBs
YXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBo
b3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0
cmFpbnRzPiYgdmVydGljYWxDb25zdHJhaW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6cHJlY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMoY29uc3QgQm94JiBsYXlv
dXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jp
em9udGFsQ29uc3RyYWludHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFp
bnRzPiYgdmVydGljYWxDb25zdHJhaW50cykKIHsKLSAgICAvLyBXZSBvbmx5IG5lZWQgdG8gZXN0
aW1hdGUgbWFyZ2luIHRvcCBmb3IgZmxvYXQgcmVsYXRlZCBsYXlvdXQgKGZvcm1hdHRpbmcgY29u
dGV4dCByb290cyBhdm9pZCBmbG9hdHMpLgorICAgIC8vIFdlIG9ubHkgbmVlZCB0byBwcmUtY29t
cHV0ZSB0aGUgbWFyZ2luIHRvcCBmb3IgZmxvYXQgcmVsYXRlZCBsYXlvdXQgKGZvcm1hdHRpbmcg
Y29udGV4dCByb290cyBhdm9pZCBmbG9hdHMpLgogICAgIEFTU0VSVChsYXlvdXRCb3guaXNGbG9h
dEF2b2lkZXIoKSB8fCBsYXlvdXRCb3guZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dCgpKTsKIAogICAgIC8vIEluIG9yZGVyIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBhIGJveCBzaG91
bGQgYXZvaWQgYSBmbG9hdCwgd2UgbmVlZCB0byBrbm93IHRoZSBmaW5hbCBwb3NpdGlvbnMgb2Yg
Ym90aCAoaWdub3JlIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGZvciBub3cpLgpAQCAtMjY3LDggKzI2
Nyw4IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRp
Y2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMoY29uc3QKICAgICAvLyBUaGUgaWRlYSBoZXJlIGlzIHRo
YXQgYXMgbG9uZyBhcyB3ZSBkb24ndCBjcm9zcyB0aGUgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0
IGJvdW5kYXJ5LCB3ZSBzaG91bGQgYmUgYWJsZSB0byBwcmUtY29tcHV0ZSB0aGUgZmluYWwgdG9w
IHBvc2l0aW9uLgogICAgIC8vIEZJWE1FOiB3ZSBjdXJyZW50bHkgZG9uJ3QgYWNjb3VudCBmb3Ig
dGhlICJjbGVhciIgcHJvcGVydHkgd2hlbiBjb21wdXRpbmcgdGhlIGZpbmFsIHBvc2l0aW9uIGZv
ciBhbiBhbmNlc3Rvci4KICAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gbGF5b3V0Qm94LmNvbnRh
aW5pbmdCbG9jaygpOyBhbmNlc3RvciAmJiAhYW5jZXN0b3ItPmVzdGFibGlzaGVzQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dCgpOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5jb250YWluaW5nQmxvY2soKSkg
ewotICAgICAgICAvLyBGSVhNRTogd2l0aCBpbmNyZW1lbnRhbCBsYXlvdXQsIHdlIG1pZ2h0IGFj
dHVhbGx5IGhhdmUgYSB2YWxpZCAobm9uLWVzdGltYXRlZCkgbWFyZ2luIHRvcCBhcyB3ZWxsLgot
ICAgICAgICBpZiAoaGFzRXN0aW1hdGVkTWFyZ2luQmVmb3JlKCphbmNlc3RvcikpCisgICAgICAg
IC8vIEZJWE1FOiB3aXRoIGluY3JlbWVudGFsIGxheW91dCwgd2UgbWlnaHQgYWN0dWFsbHkgaGF2
ZSBhIHZhbGlkIChub24tcHJlY29tcHV0ZWQpIG1hcmdpbiB0b3AgYXMgd2VsbC4KKyAgICAgICAg
aWYgKGhhc1ByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKCphbmNlc3RvcikpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yQW5jZXN0b3IgPSBb
Jl0gewogICAgICAgICAgICAgYXV0byogY29udGFpbmluZ0Jsb2NrID0gbGF5b3V0Qm94LmNvbnRh
aW5pbmdCbG9jaygpOwpAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMoY29uc3QK
ICAgICAgICAgICAgIGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9IGxheW91dEJveC5jb250YWluaW5n
QmxvY2soKTsKICAgICAgICAgICAgIHJldHVybiBjb250YWluaW5nQmxvY2sgPT0gJnJvb3QoKSA/
IHZlcnRpY2FsQ29uc3RyYWludHMucm9vdCA6IEdlb21ldHJ5Ojp2ZXJ0aWNhbENvbnN0cmFpbnRz
Rm9ySW5GbG93KGdlb21ldHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2spKTsKICAgICAgICAgfTsK
LSAgICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24oKmFuY2VzdG9yLCBob3Jp
em9udGFsQ29uc3RyYWludHNGb3JBbmNlc3RvcigpLCB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yQW5j
ZXN0b3IoKSk7CisgICAgICAgIHByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uKCphbmNlc3Rvciwg
aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yQW5jZXN0b3IoKSwgdmVydGljYWxDb25zdHJhaW50c0Zv
ckFuY2VzdG9yKCkpOwogICAgIH0KIH0KIApAQCAtMjg4LDggKzI4OCw4IEBAIHZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6cHJlY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5n
Um9vdChjb25zdCBGCiAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0QXZvaWRlcigpICYmICFsYXlv
dXRCb3guaGFzRmxvYXRDbGVhcigpKQogICAgICAgICByZXR1cm47CiAgICAgLy8gV2UgbmVlZCB0
aGUgZmluYWwgdmVydGljYWwgcG9zaXRpb24gd2hlbiB0aGUgZm9ybWF0dGluZyBjb250ZXh0IGlu
aGVyaXRzIGZsb2F0cyBmcm9tIHRoZSBwYXJlbnQgRkMuCi0gICAgY29tcHV0ZUVzdGltYXRlZFZl
cnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWlu
dHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwotICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBv
c2l0aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jaywg
dmVydGljYWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2spOworICAgIHByZWNvbXB1dGVWZXJ0
aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRz
LCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAgICBwcmVjb21wdXRlVmVydGljYWxQb3NpdGlvbihs
YXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2ssIHZlcnRpY2Fs
Q29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKTsKICAgICBpZiAobGF5b3V0Qm94Lmhhc0Zsb2F0
Q2xlYXIoKSkgewogICAgICAgICAvLyBpZiB3ZSBqdXN0IGxldCB0aGUgYm94IHNpdCBhdCB0aGUg
c3RhdGljIHZlcnRpY2FsIHBvc2l0aW9uLCB3ZSBtaWdodCBmaW5kIHVucmVsYXRlZCBmbG9hdCBi
b3hlcyB0aGVyZSAoYm94ZXMgdGhhdCB3ZSBuZWVkIHRvIGNsZWFyKS4KICAgICAgICAgY29tcHV0
ZVZlcnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKGZsb2F0aW5nQ29udGV4dCwgbGF5b3V0Qm94
KTsKQEAgLTMwNCwxNCArMzA0LDE0IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhjb25zdCBGbG9hdGluZ0NvbnRleHQmCiAgICAgLy8g
dG8gYSBkaWZmZXJlbnQgc2V0IG9mIGNvbnRhaW5pbmcgYmxvY2tzIChidXQgdGhleSBhbGwgZGVz
Y2VuZGFudHMgb2YgdGhlIEJGQyByb290KS4KICAgICAvLyBIb3dldmVyIGFjY29yZGluZyB0byB0
aGUgQkZDIHJ1bGVzLCBhdCB0aGlzIHBvaW50IG9mIHRoZSBsYXlvdXQgZmxvdyB3ZSBkb24ndCB5
ZXQgaGF2ZSBjb21wdXRlZCB2ZXJ0aWNhbCBwb3NpdGlvbnMgZm9yIHRoZSBhbmNlc3RvcnMuCiAg
ICAgaWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKSB7Ci0gICAgICAgIGNvbXB1
dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGxheW91dEJveCwgaG9yaXpv
bnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAgICAgICAgcHJlY29tcHV0
ZVZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3Ry
YWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwogICAgICAgICBmb3JtYXR0aW5nU3RhdGUoKS5k
aXNwbGF5Qm94KGxheW91dEJveCkuc2V0VG9wTGVmdChmbG9hdGluZ0NvbnRleHQucG9zaXRpb25G
b3JGbG9hdChsYXlvdXRCb3gpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBOb24t
ZmxvYXQgcG9zaXRpb25lZCBmbG9hdCBhdm9pZGVycyAoZm9ybWF0dGluZyBjb250ZXh0IHJvb3Rz
IGFuZCBjbGVhciBib3hlcykgc2hvdWxkIGJlIGZpbmUgdW5sZXNzIHRoZXJlIGFyZSBmbG9hdHMg
aW4gdGhpcyBjb250ZXh0LgogICAgIGlmIChmbG9hdGluZ0NvbnRleHQuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47Ci0gICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNl
c3RvcnMobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWlu
dHMpOworICAgIHByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGxheW91dEJv
eCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKICAgICBpZiAo
bGF5b3V0Qm94Lmhhc0Zsb2F0Q2xlYXIoKSkKICAgICAgICAgcmV0dXJuIGNvbXB1dGVWZXJ0aWNh
bFBvc2l0aW9uRm9yRmxvYXRDbGVhcihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCk7CiAKQEAg
LTQxNywxNCArNDE3LDE0IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhl
aWdodEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QKIAogICAgIC8vIE91dCBv
ZiBmbG93IGJveGVzIGRvbid0IG5lZWQgdmVydGljYWwgYWRqdXN0bWVudCBhZnRlciBtYXJnaW4g
Y29sbGFwc2luZy4KICAgICBpZiAobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7
Ci0gICAgICAgIEFTU0VSVCghaGFzRXN0aW1hdGVkTWFyZ2luQmVmb3JlKGxheW91dEJveCkpOwor
ICAgICAgICBBU1NFUlQoIWhhc1ByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGxheW91dEJveCkpOwog
ICAgICAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hIZWlnaHQoY29udGVudEhlaWdodEFuZE1h
cmdpbi5jb250ZW50SGVpZ2h0KTsKICAgICAgICAgZGlzcGxheUJveC5zZXRWZXJ0aWNhbE1hcmdp
bih2ZXJ0aWNhbE1hcmdpbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQo
IWhhc0VzdGltYXRlZE1hcmdpbkJlZm9yZShsYXlvdXRCb3gpIHx8IGVzdGltYXRlZE1hcmdpbkJl
Zm9yZShsYXlvdXRCb3gpLnVzZWRWYWx1ZSgpID09IHZlcnRpY2FsTWFyZ2luLmJlZm9yZSgpKTsK
LSAgICByZW1vdmVFc3RpbWF0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94KTsKKyAgICBBU1NFUlQo
IWhhc1ByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGxheW91dEJveCkgfHwgcHJlY29tcHV0ZWRNYXJn
aW5CZWZvcmUobGF5b3V0Qm94KS51c2VkVmFsdWUoKSA9PSB2ZXJ0aWNhbE1hcmdpbi5iZWZvcmUo
KSk7CisgICAgcmVtb3ZlUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94KTsKICAgICBk
aXNwbGF5Qm94LnNldFRvcCh2ZXJ0aWNhbFBvc2l0aW9uV2l0aE1hcmdpbihsYXlvdXRCb3gsIHZl
cnRpY2FsTWFyZ2luLCB2ZXJ0aWNhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jaykpOwogICAg
IGRpc3BsYXlCb3guc2V0Q29udGVudEJveEhlaWdodChjb250ZW50SGVpZ2h0QW5kTWFyZ2luLmNv
bnRlbnRIZWlnaHQpOwogICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4odmVydGljYWxN
YXJnaW4pOwpAQCAtNTQwLDE4ICs1NDAsMTggQEAgTGF5b3V0VW5pdCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojp2ZXJ0aWNhbFBvc2l0aW9uV2l0aE1hcmdpbihjb25zdCBCb3gmIGxheW91dEIKICAg
ICByZXR1cm4gY29udGFpbmluZ0Jsb2NrQ29udGVudEJveFRvcCArIHZlcnRpY2FsTWFyZ2luLmJl
Zm9yZSgpOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnNldEVzdGltYXRlZE1h
cmdpbkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgRXN0aW1hdGVkTWFyZ2luQmVm
b3JlJiBlc3RpbWF0ZWRNYXJnaW5CZWZvcmUpCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OnNldFByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBQ
cmVjb21wdXRlZE1hcmdpbkJlZm9yZSYgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUpCiB7CiAgICAg
Ly8gQ2FuJ3QgY3Jvc3MgZm9ybWF0dGluZyBjb250ZXh0IGJvdW5kYXJ5LgogICAgIEFTU0VSVCgm
bGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JCb3gobGF5b3V0Qm94KSA9PSAmZm9ybWF0
dGluZ1N0YXRlKCkpOwotICAgIG1fZXN0aW1hdGVkTWFyZ2luQmVmb3JlTGlzdC5zZXQoJmxheW91
dEJveCwgZXN0aW1hdGVkTWFyZ2luQmVmb3JlKTsKKyAgICBtX3ByZWNvbXB1dGVkTWFyZ2luQmVm
b3JlTGlzdC5zZXQoJmxheW91dEJveCwgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUpOwogfQogCi1i
b29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Omhhc0VzdGltYXRlZE1hcmdpbkJlZm9yZShjb25z
dCBCb3gmIGxheW91dEJveCkgY29uc3QKK2Jvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6aGFz
UHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CiB7CiAg
ICAgLy8gQ2FuJ3QgY3Jvc3MgZm9ybWF0dGluZyBjb250ZXh0IGJvdW5kYXJ5LgogICAgIEFTU0VS
VCgmbGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JCb3gobGF5b3V0Qm94KSA9PSAmZm9y
bWF0dGluZ1N0YXRlKCkpOwotICAgIHJldHVybiBtX2VzdGltYXRlZE1hcmdpbkJlZm9yZUxpc3Qu
Y29udGFpbnMoJmxheW91dEJveCk7CisgICAgcmV0dXJuIG1fcHJlY29tcHV0ZWRNYXJnaW5CZWZv
cmVMaXN0LmNvbnRhaW5zKCZsYXlvdXRCb3gpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5oCmluZGV4IDFjMWZiN2MxOTkwOTgzYjg2M2JiODYzYzVmNmYzMGNiYjMyMWQxMDIuLmY0
NDY1ZTk2YTk1MmY0NWEwNjJjM2NhZTY0NjYzMTBkMTI2NjE4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5oCkBAIC02Nyw4ICs2Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRl
UG9zaXRpb25Ub0F2b2lkRmxvYXRzKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYs
IGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiwgY29uc3QgQ29u
c3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+Jik7CiAgICAgdm9pZCBjb21wdXRlVmVy
dGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIoY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3Qg
Qm94Jik7CiAKLSAgICB2b2lkIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0
IEJveCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYsIGNvbnN0IFZlcnRpY2FsQ29uc3Ry
YWludHMmKTsKLSAgICB2b2lkIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5j
ZXN0b3JzKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3Ry
YWludHM+JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+Jik7Cisg
ICAgdm9pZCBwcmVjb21wdXRlVmVydGljYWxQb3NpdGlvbihjb25zdCBCb3gmLCBjb25zdCBIb3Jp
em9udGFsQ29uc3RyYWludHMmLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJik7CisgICAgdm9p
ZCBwcmVjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckFuY2VzdG9ycyhjb25zdCBCb3gmLCBjb25z
dCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNvbnN0IENvbnN0cmFp
bnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwogICAgIHZvaWQgcHJlY29tcHV0ZVZlcnRp
Y2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdChjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25z
dCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNv
bnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwogCiAgICAgSW50cmlu
c2ljV2lkdGhDb25zdHJhaW50cyBjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSBv
dmVycmlkZTsKQEAgLTEwNCw3ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIHB1YmxpYzoKICAgICAg
ICAgVXNlZFZlcnRpY2FsTWFyZ2luOjpDb2xsYXBzZWRWYWx1ZXMgY29sbGFwc2VkVmVydGljYWxW
YWx1ZXMoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMp
OwogCi0gICAgICAgIEVzdGltYXRlZE1hcmdpbkJlZm9yZSBlc3RpbWF0ZWRNYXJnaW5CZWZvcmUo
Y29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOworICAg
ICAgICBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25z
dCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7CiAgICAgICAg
IExheW91dFVuaXQgbWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaChjb25zdCBC
b3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7CiAgICAgICAgIHN0
YXRpYyB2b2lkIHVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nKEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQmLCBjb25zdCBNYXJnaW5Db2xsYXBzZSYsIGNvbnN0IEJveCYpOwogICAgICAg
ICBzdGF0aWMgdm9pZCB1cGRhdGVQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luVmFsdWVzKEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQmLCBjb25zdCBNYXJnaW5Db2xsYXBzZSYsIGNvbnN0IEJveCYpOwpAQCAt
MTU4LDIwICsxNTgsMTkgQEAgcHJpdmF0ZToKICAgICB9OwogICAgIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OlF1aXJrcyBxdWlya3MoKSBjb25zdCB7IHJldHVybiBRdWlya3MoKnRoaXMpOyB9CiAK
LSAgICB2b2lkIHNldEVzdGltYXRlZE1hcmdpbkJlZm9yZShjb25zdCBCb3gmLCBjb25zdCBFc3Rp
bWF0ZWRNYXJnaW5CZWZvcmUmKTsKLSAgICB2b2lkIHJlbW92ZUVzdGltYXRlZE1hcmdpbkJlZm9y
ZShjb25zdCBCb3gmIGxheW91dEJveCkgeyBtX2VzdGltYXRlZE1hcmdpbkJlZm9yZUxpc3QucmVt
b3ZlKCZsYXlvdXRCb3gpOyB9Ci0gICAgYm9vbCBoYXNFc3RpbWF0ZWRNYXJnaW5CZWZvcmUoY29u
c3QgQm94JikgY29uc3Q7CisgICAgdm9pZCBzZXRQcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25z
dCBCb3gmLCBjb25zdCBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSYpOworICAgIHZvaWQgcmVtb3Zl
UHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gpIHsgbV9wcmVjb21w
dXRlZE1hcmdpbkJlZm9yZUxpc3QucmVtb3ZlKCZsYXlvdXRCb3gpOyB9CisgICAgYm9vbCBoYXNQ
cmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25zdCBCb3gmKSBjb25zdDsKICAgICBPcHRpb25hbDxM
YXlvdXRVbml0PiB1c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9hdEF2b2lkZXIoY29uc3QgRmxvYXRp
bmdDb250ZXh0JiwgY29uc3QgQm94JikgY29uc3Q7CiAjaWYgQVNTRVJUX0VOQUJMRUQKLSAgICBF
c3RpbWF0ZWRNYXJnaW5CZWZvcmUgZXN0aW1hdGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5
b3V0Qm94KSBjb25zdCB7IHJldHVybiBtX2VzdGltYXRlZE1hcmdpbkJlZm9yZUxpc3QuZ2V0KCZs
YXlvdXRCb3gpOyB9Ci0gICAgYm9vbCBoYXNQcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25zdCBC
b3gmKSBjb25zdDsKKyAgICBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBwcmVjb21wdXRlZE1hcmdp
bkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gbV9wcmVjb21wdXRl
ZE1hcmdpbkJlZm9yZUxpc3QuZ2V0KCZsYXlvdXRCb3gpOyB9CiAjZW5kaWYKIAogICAgIGNvbnN0
IEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBk
b3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRp
bmdTdGF0ZSgpKTsgfQogICAgIEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUo
KSB7IHJldHVybiBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRl
eHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsgfQogCiBwcml2YXRlOgotICAgIEhhc2hNYXA8Y29uc3Qg
Qm94KiwgRXN0aW1hdGVkTWFyZ2luQmVmb3JlPiBtX2VzdGltYXRlZE1hcmdpbkJlZm9yZUxpc3Q7
CisgICAgSGFzaE1hcDxjb25zdCBCb3gqLCBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZT4gbV9wcmVj
b21wdXRlZE1hcmdpbkJlZm9yZUxpc3Q7CiB9OwogCiBpbmxpbmUgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6Okdlb21ldHJ5KGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmIGJs
b2NrRm9ybWF0dGluZ0NvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAppbmRleCAzNjYx
YzQ3ODc5MjE3ZjRlNjQzNDRmYzZjODkyMTkxMTJjNmRiZjhmLi4zM2VlNzg5ZjZlMWRiMzMyNzc1
NTAxMWI2NDY5NjMwYTM5MDdiYzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKQEAgLTg1
LDcgKzg1LDcgQEAgYm9vbCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6
aGFzQ2xlYXJhbmNlKGNvbnN0IEJveCYgbGF5b3V0Qm94KQogewogICAgIGlmICghbGF5b3V0Qm94
Lmhhc0Zsb2F0Q2xlYXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIC8vIEZJWE1FOiBj
b21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290IGxvZ2ljIGVu
ZHMgdXAgY2FsbGluZyBpbnRvIHRoaXMgZnVuY3Rpb24gd2hlbiB0aGUgbGF5b3V0Qm94IChmaXJz
dCBpbmZsb3cgY2hpbGQpIGhhcworICAgIC8vIEZJWE1FOiBwcmVjb21wdXRlZFZlcnRpY2FsUG9z
aXRpb25Gb3JGb3JtYXR0aW5nUm9vdCBsb2dpYyBlbmRzIHVwIGNhbGxpbmcgaW50byB0aGlzIGZ1
bmN0aW9uIHdoZW4gdGhlIGxheW91dEJveCAoZmlyc3QgaW5mbG93IGNoaWxkKSBoYXMKICAgICAv
LyBub3QgYmVlbiBsYWlkIG91dC4KICAgICBpZiAoIWxheW91dFN0YXRlKCkuaGFzRGlzcGxheUJv
eChsYXlvdXRCb3gpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00NzIsNyArNDcyLDcgQEAg
dm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6dXBkYXRlTWFyZ2lu
QWZ0ZXJGb3JQcmV2aW91c1NpYmxpbmcKICAgICAvLyA0LiBJZiBzbywgdXBkYXRlIHRoZSBwb3Np
dGl2ZS9uZWdhdGl2ZSBjYWNoZS4KICAgICAvLyA1LiBJbiBjYXNlIG9mIGNvbGxhcHNlZCB0aHJv
dWdoIG1hcmdpbnMgY2hlY2sgaWYgdGhlIGJlZm9yZSBtYXJnaW4gY29sbGFwZXMgd2l0aCB0aGUg
cHJldmlvdXMgaW5mbG93IHNpYmxpbmcncyBhZnRlciBtYXJnaW4uCiAgICAgLy8gNi4gSWYgc28s
IGp1bXAgdG8gIzIuCi0gICAgLy8gNy4gTm8gbmVlZCB0byBwcm9wYWdhdGUgdG8gcGFyZW50IGJl
Y2F1c2UgaXRzIG1hcmdpbiBpcyBub3QgY29tcHV0ZWQgeWV0IChlc3RpbWF0ZWQgYXQgbW9zdCku
CisgICAgLy8gNy4gTm8gbmVlZCB0byBwcm9wYWdhdGUgdG8gcGFyZW50IGJlY2F1c2UgaXRzIG1h
cmdpbiBpcyBub3QgY29tcHV0ZWQgeWV0IChwcmUtY29tcHV0ZWQgYXQgbW9zdCkuCiAgICAgYXV0
byogY3VycmVudEJveCA9ICZsYXlvdXRCb3g7CiAgICAgYXV0byYgYmxvY2tGb3JtYXR0aW5nU3Rh
dGUgPSBibG9ja0Zvcm1hdHRpbmdDb250ZXh0LmZvcm1hdHRpbmdTdGF0ZSgpOwogICAgIHdoaWxl
IChtYXJnaW5Db2xsYXBzZS5tYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUHJldmlvdXNTaWJsaW5n
TWFyZ2luQWZ0ZXIoKmN1cnJlbnRCb3gpKSB7CkBAIC01MTMsNyArNTEzLDcgQEAgUG9zaXRpdmVB
bmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
TWFyZ2luQ29sbGFwc2UKICAgICAgICAgYXV0byBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxN
YXJnaW4gPSBibG9ja0Zvcm1hdHRpbmdTdGF0ZS5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxN
YXJnaW4obGF5b3V0Qm94KTsKICAgICAgICAgcmV0dXJuIG1hcmdpblR5cGUgPT0gTWFyZ2luVHlw
ZTo6QmVmb3JlID8gcG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luLmJlZm9yZSA6IHBv
c2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbi5hZnRlcjsgCiAgICAgfQotICAgIC8vIFRo
aXMgaXMgdGhlIGVzdGltYXRlIHBhdGguIFdlIGRvbid0IHlldCBoYXZlIHBvc2l0aXZlL25lZ2F0
aXZlIG1hcmdpbiBjb21wdXRlZC4KKyAgICAvLyBUaGlzIGlzIHRoZSBwcmUtY29tcHV0ZWQgcGF0
aC4gV2UgZG9uJ3QgeWV0IGhhdmUgcG9zaXRpdmUvbmVnYXRpdmUgbWFyZ2luIGNvbXB1dGVkLgog
ICAgIGF1dG8gY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbiA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2Vv
bWV0cnkoKS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCwgR2VvbWV0cnk6Omhvcml6
b250YWxDb25zdHJhaW50c0ZvckluRmxvdyhmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9y
Qm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpKSk7CiAgICAgYXV0byBub25Db2xsYXBz
ZWRNYXJnaW4gPSBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyB7IGNvbXB1
dGVkVmVydGljYWxNYXJnaW4uYmVmb3JlLnZhbHVlT3IoMCksIGNvbXB1dGVkVmVydGljYWxNYXJn
aW4uYWZ0ZXIudmFsdWVPcigwKSB9OyAKIApAQCAtNTcxLDEwICs1NzEsMTAgQEAgUG9zaXRpdmVB
bmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
TWFyZ2luQ29sbGFwc2UKICAgICByZXR1cm4gY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFy
Z2luKGxhc3RDaGlsZENvbGxhcHNlZE1hcmdpbkFmdGVyKCksIG5vbkNvbGxhcHNlZEFmdGVyKTsK
IH0KIAotRXN0aW1hdGVkTWFyZ2luQmVmb3JlIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdp
bkNvbGxhcHNlOjplc3RpbWF0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gsIFVz
ZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIHVzZWROb25Db2xsYXBzZWRNYXJn
aW4pCitQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJn
aW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gs
IFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIHVzZWROb25Db2xsYXBzZWRN
YXJnaW4pCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Jsb2NrTGV2ZWxCb3goKSk7Ci0gICAg
Ly8gRG9uJ3QgZXN0aW1hdGUgdmVydGljYWwgbWFyZ2lucyBmb3Igb3V0IG9mIGZsb3cgYm94ZXMu
CisgICAgLy8gRG9uJ3QgcHJlLWNvbXB1dGUgdmVydGljYWwgbWFyZ2lucyBmb3Igb3V0IG9mIGZs
b3cgYm94ZXMuCiAgICAgQVNTRVJUKGxheW91dEJveC5pc0luRmxvdygpIHx8IGxheW91dEJveC5p
c0Zsb2F0aW5nUG9zaXRpb25lZCgpKTsKICAgICBBU1NFUlQoIWxheW91dEJveC5yZXBsYWNlZCgp
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3Bs
YXlCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3gu
Y3BwCmluZGV4IDc1YmVkYTkxMTdkZTU4N2I0ZDBmNzdmNTI5Mzk1MjM1M2E2YjljMWUuLjg4NzU3
NjZlYzM2NDA5MTJmMjk4OGU1NWE4NzA0MjI5NWQyMmE0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5Qm94LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAg
Qm94OjpCb3goY29uc3QgQm94JiBvdGhlcikKICAgICAsIG1faGFzVmFsaWRQYWRkaW5nKG90aGVy
Lm1faGFzVmFsaWRQYWRkaW5nKQogICAgICwgbV9oYXNWYWxpZENvbnRlbnRIZWlnaHQob3RoZXIu
bV9oYXNWYWxpZENvbnRlbnRIZWlnaHQpCiAgICAgLCBtX2hhc1ZhbGlkQ29udGVudFdpZHRoKG90
aGVyLm1faGFzVmFsaWRDb250ZW50V2lkdGgpCi0gICAgLCBtX2hhc0VzdGltYXRlZE1hcmdpbkJl
Zm9yZShvdGhlci5tX2hhc0VzdGltYXRlZE1hcmdpbkJlZm9yZSkKKyAgICAsIG1faGFzUHJlY29t
cHV0ZWRNYXJnaW5CZWZvcmUob3RoZXIubV9oYXNQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSkKICNl
bmRpZgogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVl
L0Rpc3BsYXlCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5
Qm94LmgKaW5kZXggMjBiNzk3OWM3YTZiMDA4MTE0NzAwMDIzYjE4MzJlZjI5ZmExNTkzMi4uNzBm
ZWI2NTNiYjViZjFhNTZkMTk0YmM5NWRmM2YyOTNhM2NlMGE5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlCb3guaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUJveC5oCkBAIC0xMTMsNyArMTEzLDcgQEAg
cHVibGljOgogICAgIFJlY3QgY29udGVudEJveCgpIGNvbnN0OwogCiAjaWYgQVNTRVJUX0VOQUJM
RUQKLSAgICB2b2lkIHNldEhhc0VzdGltYXRlZE1hcmdpbkJlZm9yZSgpIHsgbV9oYXNFc3RpbWF0
ZWRNYXJnaW5CZWZvcmUgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRIYXNQcmVjb21wdXRlZE1hcmdp
bkJlZm9yZSgpIHsgbV9oYXNQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSA9IHRydWU7IH0KICNlbmRp
ZgogCiAgICAgdm9pZCBzZXRUb3BMZWZ0KGNvbnN0IExheW91dFBvaW50Jik7CkBAIC0xNDAsNyAr
MTQwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGludmFsaWRhdGVNYXJnaW4oKTsKICAgICB2b2lk
IGludmFsaWRhdGVCb3JkZXIoKSB7IG1faGFzVmFsaWRCb3JkZXIgPSBmYWxzZTsgfQogICAgIHZv
aWQgaW52YWxpZGF0ZVBhZGRpbmcoKSB7IG1faGFzVmFsaWRQYWRkaW5nID0gZmFsc2U7IH0KLSAg
ICB2b2lkIGludmFsaWRhdGVFc3RpbWF0ZWRNYXJnaW5CZWZvcmUoKSB7IG1faGFzRXN0aW1hdGVk
TWFyZ2luQmVmb3JlID0gZmFsc2U7IH0KKyAgICB2b2lkIGludmFsaWRhdGVQcmVjb21wdXRlZE1h
cmdpbkJlZm9yZSgpIHsgbV9oYXNQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSA9IGZhbHNlOyB9CiAK
ICAgICB2b2lkIHNldEhhc1ZhbGlkVG9wKCkgeyBtX2hhc1ZhbGlkVG9wID0gdHJ1ZTsgfQogICAg
IHZvaWQgc2V0SGFzVmFsaWRMZWZ0KCkgeyBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7IH0KQEAgLTE3
OSw3ICsxNzksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNWYWxpZFBhZGRpbmcgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9oYXNWYWxpZENvbnRlbnRIZWlnaHQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9oYXNWYWxpZENvbnRlbnRXaWR0aCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hhc0VzdGlt
YXRlZE1hcmdpbkJlZm9yZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1ByZWNvbXB1dGVkTWFy
Z2luQmVmb3JlIHsgZmFsc2UgfTsKICNlbmRpZiAvLyBBU1NFUlRfRU5BQkxFRAogfTsKIApAQCAt
MTkzLDcgKzE5Myw3IEBAIGlubGluZSB2b2lkIEJveDo6aW52YWxpZGF0ZU1hcmdpbigpCiAKIGlu
bGluZSBMYXlvdXRVbml0IEJveDo6dG9wKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9oYXNWYWxp
ZFRvcCAmJiAobV9oYXNFc3RpbWF0ZWRNYXJnaW5CZWZvcmUgfHwgbV9oYXNWYWxpZFZlcnRpY2Fs
TWFyZ2luKSk7CisgICAgQVNTRVJUKG1faGFzVmFsaWRUb3AgJiYgKG1faGFzUHJlY29tcHV0ZWRN
YXJnaW5CZWZvcmUgfHwgbV9oYXNWYWxpZFZlcnRpY2FsTWFyZ2luKSk7CiAgICAgcmV0dXJuIG1f
dG9wTGVmdC55KCk7CiB9CiAKQEAgLTIwNSw3ICsyMDUsNyBAQCBpbmxpbmUgTGF5b3V0VW5pdCBC
b3g6OmxlZnQoKSBjb25zdAogCiBpbmxpbmUgTGF5b3V0UG9pbnQgQm94Ojp0b3BMZWZ0KCkgY29u
c3QKIHsKLSAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCAmJiAobV9oYXNFc3RpbWF0ZWRNYXJnaW5C
ZWZvcmUgfHwgbV9oYXNWYWxpZFZlcnRpY2FsTWFyZ2luKSk7CisgICAgQVNTRVJUKG1faGFzVmFs
aWRUb3AgJiYgKG1faGFzUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgfHwgbV9oYXNWYWxpZFZlcnRp
Y2FsTWFyZ2luKSk7CiAgICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0ICYmIG1faGFzVmFsaWRIb3Jp
em9udGFsTWFyZ2luKTsKICAgICByZXR1cm4gbV90b3BMZWZ0OwogfQpAQCAtMjc2LDcgKzI3Niw3
IEBAIGlubGluZSB2b2lkIEJveDo6c2V0VmVydGljYWxNYXJnaW4oTGF5b3V0OjpVc2VkVmVydGlj
YWxNYXJnaW4gbWFyZ2luKQogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgc2V0SGFzVmFsaWRWZXJ0
aWNhbE1hcmdpbigpOwogICAgIHNldEhhc1ZhbGlkVmVydGljYWxOb25Db2xsYXBzZWRNYXJnaW4o
KTsKLSAgICBpbnZhbGlkYXRlRXN0aW1hdGVkTWFyZ2luQmVmb3JlKCk7CisgICAgaW52YWxpZGF0
ZVByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKCk7CiAjZW5kaWYKICAgICBtX3ZlcnRpY2FsTWFyZ2lu
ID0gbWFyZ2luOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>