<?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>155097</bug_id>
          
          <creation_ts>2016-03-06 15:08:54 -0800</creation_ts>
          <short_desc>REGRESSION(r197645): &quot;Doesn&apos;t build properly when building entire webkit&quot; (Requested by saamyjoon on #webkit).</short_desc>
          <delta_ts>2016-03-06 15:12:02 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>155002</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1171468</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-06 15:08:54 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/197645 broke the build:
&quot;Doesn&apos;t build properly when building entire webkit&quot; (Requested by saamyjoon on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171469</commentid>
    <comment_count>1</comment_count>
      <attachid>273149</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-06 15:09:31 -0800</bug_when>
    <thetext>Created attachment 273149
ROLLOUT of r197645

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171470</commentid>
    <comment_count>2</comment_count>
      <attachid>273149</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-06 15:11:58 -0800</bug_when>
    <thetext>Comment on attachment 273149
ROLLOUT of r197645

Clearing flags on attachment: 273149

Committed r197646: &lt;http://trac.webkit.org/changeset/197646&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171471</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-06 15:12:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273149</attachid>
            <date>2016-03-06 15:09:31 -0800</date>
            <delta_ts>2016-03-06 15:11:58 -0800</delta_ts>
            <desc>ROLLOUT of r197645</desc>
            <filename>bug-155097-20160306150917.patch</filename>
            <type>text/plain</type>
            <size>58631</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NWY3NmZmM2U5ZTVmNzc0ZTJkM2RjODA2NGJkNDgxYmQ4YTlhNjdiLi5mOThkY2M0ZTZiOGFiMjQ4
MDViZjA3MDE3ZDg5YWRmMmQ4MTU1ZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNi0wMy0wNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5NzY0NS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTA5NworCisgICAg
ICAgICJEb2Vzbid0IGJ1aWxkIHByb3Blcmx5IHdoZW4gYnVpbGRpbmcgZW50aXJlIHdlYmtpdCIK
KyAgICAgICAgKFJlcXVlc3RlZCBieSBzYWFteWpvb24gb24gI3dlYmtpdCkuCisKKyAgICAgICAg
UmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJbW0dldFByb3RvdHlwZU9mXV0gc2hvdWxk
IGJlIGEgZnVsbHkgdmlydHVhbCBtZXRob2QgaW4gdGhlCisgICAgICAgIG1ldGhvZCB0YWJsZSIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTAwMgor
ICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xOTc2NDUKKwogMjAxNi0w
My0wNiAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbW0dldFBy
b3RvdHlwZU9mXV0gc2hvdWxkIGJlIGEgZnVsbHkgdmlydHVhbCBtZXRob2QgaW4gdGhlIG1ldGhv
ZCB0YWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJl
Zi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcAppbmRleCBh
OGVhZjA1NjM0YjM3YjM2NDUwMGRkNWMxNDZkNTVkODk4ODcyZGU3Li4xNTM0YmRjOGU1OWE1MWQz
Mjg3NzMzNGViOWFlOTExYTA0NWJmNjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTT2JqZWN0UmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
T2JqZWN0UmVmLmNwcApAQCAtMjY3LDggKzI2Nyw4IEBAIEpTVmFsdWVSZWYgSlNPYmplY3RHZXRQ
cm90b3R5cGUoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0KQogICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IHRvSlMoY3R4KTsKICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKGV4ZWMpOwog
Ci0gICAgSlNPYmplY3QqIGpzT2JqZWN0ID0gdG9KUyhvYmplY3QpOyAKLSAgICByZXR1cm4gdG9S
ZWYoZXhlYywganNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpKTsKKyAgICBKU09iamVjdCog
anNPYmplY3QgPSB0b0pTKG9iamVjdCk7CisgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIGpzT2JqZWN0
LT5wcm90b3R5cGUoKSk7CiB9CiAKIHZvaWQgSlNPYmplY3RTZXRQcm90b3R5cGUoSlNDb250ZXh0
UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1ZhbHVlUmVmIHZhbHVlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggNjFiZTA5MDQ4NjEzODU5
OTRhNTc3ZWZlN2VmYmIwNzRjZmZjN2M4ZS4uZDJjMTQ0NzkwMzY4ZGQ2NmQ1OWU4YmI1Yjg0Nzgz
ZTY1OTk2ODVmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCkBAIC0xMzkyLDE1ICsxMzkyLDYgQEAgaW50NjRfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNvbnZlcnREb3VibGVUb0ludDUyKGRvdWJsZSB2YWx1ZSkKICAgICByZXR1cm4gdHJ5Q29udmVy
dFRvSW50NTIodmFsdWUpOwogfQogCi1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWZh
dWx0SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIHZhbHVlLCBKU0NlbGwqIHBy
b3RvKSAvLyBSZXR1cm5zIGpzQm9vbGVhbihUcnVlfEZhbHNlKSBvbiA2NC1iaXQuCi17Ci0gICAg
Vk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgZXhlYyk7Ci0gICAgaWYgKEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2UoZXhlYywgdmFs
dWUsIHByb3RvKSkKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVyTG9nREZHKEV4ZWNTdGF0
ZSogZXhlYykgCiB7CiAgICAgZXhlYy0+dm0oKS50eXBlUHJvZmlsZXJMb2coKS0+cHJvY2Vzc0xv
Z0VudHJpZXMoQVNDSUlMaXRlcmFsKCJMb2cgRnVsbCwgY2FsbGVkIGZyb20gaW5zaWRlIERGRy4i
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IGM4MThm
N2Y4ODFiNGI0YjA4ZGZlMGM4YTMwMzI5NDE3NWEyNDE4NGMuLmQzYzU2ZGY5NzRjODMxOGYxZWIw
MTYxZmNlMzBlYmJkZjY0NzE3NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5oCkBAIC0xNTUsOCArMTU1LDYgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkxvYWRWYXJhcmdzKEV4ZWNTdGF0ZSosIGludDMyX3QgZmlyc3RFbGVtZW50RGVzdCwgRW4KIGlu
dDY0X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db252ZXJ0Qm94ZWREb3VibGVUb0ludDUyKEVu
Y29kZWRKU1ZhbHVlKTsKIGludDY0X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db252ZXJ0RG91
YmxlVG9JbnQ1Mihkb3VibGUpOwogCi1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWZh
dWx0SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgSlNDZWxsKiB2YWx1ZSwgSlNDZWxsKiBwcm90byk7
Ci0KIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVyTG9nREZH
KEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIAogdm9pZCBKSVRfT1BFUkFUSU9OIGRlYnVnT3Bl
cmF0aW9uUHJpbnRTcGVjdWxhdGlvbkZhaWx1cmUoRXhlY1N0YXRlKiwgdm9pZCosIHZvaWQqKSBX
VEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCmluZGV4IGZiYzFkMjliN2IyNzUyYjZhZWMxNGY4YTBhZWZiYjUzMWY1YjgxOWEu
LjA5OTEzZWFlZmMxNjRkZGUyNjk0YjE2M2EyOGY0ZWUwZTA0MWI2YWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0yNzQwLDggKzI3
NDAsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZkZvck9iamVjdChO
b2RlKiwgR1BSUmVnIHZhbHVlUmVnLCBHUFJSZWcgcAogICAgIAogICAgIC8vIFdhbGsgdXAgdGhl
IHByb3RvdHlwZSBjaGFpbiBvZiB0aGUgdmFsdWUgKGluIHNjcmF0Y2hSZWcpLCBjb21wYXJpbmcg
dG8gcHJvdG90eXBlUmVnLgogICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBsb29wKCZtX2ppdCk7
Ci0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgcGVyZm9ybURlZmF1bHRIYXNJbnN0YW5jZSA9IG1f
aml0LmJyYW5jaDgoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLAotICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhzY3JhdGNoUmVnLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1
c3RlZEltbTMyKFByb3h5T2JqZWN0VHlwZSkpOwogICAgIG1faml0LmVtaXRMb2FkU3RydWN0dXJl
KHNjcmF0Y2hSZWcsIHNjcmF0Y2hSZWcsIHNjcmF0Y2gyUmVnKTsKICAgICBtX2ppdC5sb2FkUHRy
KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNjcmF0Y2hSZWcsIFN0cnVjdHVyZTo6cHJvdG90eXBl
T2Zmc2V0KCkgKyBDZWxsUGF5bG9hZE9mZnNldCksIHNjcmF0Y2hSZWcpOwogICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIGlzSW5zdGFuY2UgPSBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6
OkVxdWFsLCBzY3JhdGNoUmVnLCBwcm90b3R5cGVSZWcpOwpAQCAtMjc1NywxOCArMjc1NSw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mRm9yT2JqZWN0KE5vZGUqLCBH
UFJSZWcgdmFsdWVSZWcsIEdQUlJlZyBwCiAjZWxzZQogICAgIG1faml0Lm1vdmUoTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMigwKSwgc2NyYXRjaFJlZyk7CiAjZW5kaWYKLSAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3QgZG9uZUp1bXBzOyAKLSAgICBkb25lSnVtcHMuYXBwZW5kKG1faml0
Lmp1bXAoKSk7Ci0KLSAgICBwZXJmb3JtRGVmYXVsdEhhc0luc3RhbmNlLmxpbmsoJm1faml0KTsK
LSAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhzY3JhdGNoUmVnKTsKLSAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvbkRlZmF1bHRIYXNJbnN0YW5jZSwgc2NyYXRjaFJlZywgdmFsdWVSZWcsIHBy
b3RvdHlwZVJlZyk7IAotICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMoc2NyYXRjaFJlZyk7Ci0g
ICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgIG1faml0
Lm9yMzIoVHJ1c3RlZEltbTMyKFZhbHVlRmFsc2UpLCBzY3JhdGNoUmVnKTsKLSNlbmRpZgotICAg
IGRvbmVKdW1wcy5hcHBlbmQobV9qaXQuanVtcCgpKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBwdXRSZXN1bHQgPSBtX2ppdC5qdW1wKCk7CiAgICAgCiAgICAgaXNJbnN0YW5jZS5saW5rKCZt
X2ppdCk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTI3NzcsNyArMjc2NCw3IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mRm9yT2JqZWN0KE5vZGUqLCBHUFJSZWcgdmFs
dWVSZWcsIEdQUlJlZyBwCiAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKDEpLCBzY3JhdGNoUmVnKTsKICNlbmRpZgogICAgIAotICAgIGRvbmVKdW1wcy5saW5rKCZt
X2ppdCk7CisgICAgcHV0UmVzdWx0LmxpbmsoJm1faml0KTsKIH0KIAogdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUluZm9GbGFncyhOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDRkZTg5M2M3YTY0MTIw
MDllYzYxNzk4ZDQyYzZmZTk0NTQ3NzkxNTQuLjBkM2RiMGIzNWFkOGY5YWU5OWM1NTJjODQ4YWIz
Mzc0ZWYzMTdlNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKQEAgLTU5NDcsOCArNTk0Nyw2IEBAIHByaXZhdGU6CiAgICAgICAgIExCYXNpY0Js
b2NrIGxvb3AgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkluc3RhbmNlT2YgbG9vcCIpKTsKICAg
ICAgICAgTEJhc2ljQmxvY2sgbm90WWV0SW5zdGFuY2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
Ikluc3RhbmNlT2Ygbm90IHlldCBpbnN0YW5jZSIpKTsKICAgICAgICAgTEJhc2ljQmxvY2sgY29u
dGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJJbnN0YW5jZU9mIGNvbnRpbnVhdGlv
biIpKTsKLSAgICAgICAgTEJhc2ljQmxvY2sgbG9hZFByb3RvdHlwZURpcmVjdCA9IEZUTF9ORVdf
QkxPQ0sobV9vdXQsICgiSW5zdGFuY2VvZiBkZWZhdWx0UHJvdG90eXBlRnVuY3Rpb24iKSk7Ci0g
ICAgICAgIExCYXNpY0Jsb2NrIGRlZmF1bHRIYXNJbnN0YW5jZVNsb3cgPSBGVExfTkVXX0JMT0NL
KG1fb3V0LCAoIkluc3RhbmNlb2YgZGVmYXVsdFByb3RvdHlwZUZ1bmN0aW9uIikpOwogICAgICAg
ICAKICAgICAgICAgTFZhbHVlIGNvbmRpdGlvbjsKICAgICAgICAgaWYgKG1fbm9kZS0+Y2hpbGQx
KCkudXNlS2luZCgpID09IFVudHlwZWRVc2UpCkBAIC01OTY2LDE0ICs1OTY0LDggQEAgcHJpdmF0
ZToKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgb3JpZ2luYWxWYWx1ZSA9IG1fb3V0LmFuY2hvcihj
ZWxsKTsKICAgICAgICAgbV9vdXQuanVtcChsb29wKTsKICAgICAgICAgCi0gICAgICAgIG1fb3V0
LmFwcGVuZFRvKGxvb3AsIGxvYWRQcm90b3R5cGVEaXJlY3QpOworICAgICAgICBtX291dC5hcHBl
bmRUbyhsb29wLCBub3RZZXRJbnN0YW5jZSk7CiAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IG1fb3V0
LnBoaShtX291dC5pbnQ2NCwgb3JpZ2luYWxWYWx1ZSk7Ci0gICAgICAgIExWYWx1ZSB0eXBlID0g
bV9vdXQubG9hZDhaZXJvRXh0MzIodmFsdWUsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSk7
Ci0gICAgICAgIG1fb3V0LmJyYW5jaCgKLSAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKHR5cGUs
IG1fb3V0LmNvbnN0SW50MzIoUHJveHlPYmplY3RUeXBlKSksCi0gICAgICAgICAgICB1c3VhbGx5
KGxvYWRQcm90b3R5cGVEaXJlY3QpLCByYXJlbHkoZGVmYXVsdEhhc0luc3RhbmNlU2xvdykpOwot
Ci0gICAgICAgIG1fb3V0LmFwcGVuZFRvKGxvYWRQcm90b3R5cGVEaXJlY3QsIG5vdFlldEluc3Rh
bmNlKTsKICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IGxvYWRTdHJ1Y3R1cmUodmFsdWUpOwog
ICAgICAgICBMVmFsdWUgY3VycmVudFByb3RvdHlwZSA9IG1fb3V0LmxvYWQ2NChzdHJ1Y3R1cmUs
IG1faGVhcHMuU3RydWN0dXJlX3Byb3RvdHlwZSk7CiAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGlz
SW5zdGFuY2VSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQuYm9vbGVhblRydWUpOwpAQCAtNTk4
MSwyMiArNTk3MywxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQuZXF1YWwoY3VycmVu
dFByb3RvdHlwZSwgcHJvdG90eXBlKSwKICAgICAgICAgICAgIHVuc3VyZShjb250aW51YXRpb24p
LCB1bnN1cmUobm90WWV0SW5zdGFuY2UpKTsKICAgICAgICAgCi0gICAgICAgIG1fb3V0LmFwcGVu
ZFRvKG5vdFlldEluc3RhbmNlLCBkZWZhdWx0SGFzSW5zdGFuY2VTbG93KTsKKyAgICAgICAgbV9v
dXQuYXBwZW5kVG8obm90WWV0SW5zdGFuY2UsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgIFZhbHVl
RnJvbUJsb2NrIG5vdEluc3RhbmNlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmJvb2xlYW5G
YWxzZSk7CiAgICAgICAgIG1fb3V0LmFkZEluY29taW5nVG9QaGkodmFsdWUsIG1fb3V0LmFuY2hv
cihjdXJyZW50UHJvdG90eXBlKSk7CiAgICAgICAgIG1fb3V0LmJyYW5jaChpc0NlbGwoY3VycmVu
dFByb3RvdHlwZSksIHVuc3VyZShsb29wKSwgdW5zdXJlKGNvbnRpbnVhdGlvbikpOwotCi0gICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGRlZmF1bHRIYXNJbnN0YW5jZVNsb3csIGNvbnRpbnVhdGlvbik7
Ci0gICAgICAgIC8vIFdlIGNhbiB1c2UgdGhlIHZhbHVlIHRoYXQgd2UncmUgbG9vcGluZyB3aXRo
IGJlY2F1c2Ugd2UKLSAgICAgICAgLy8gY2FuIGp1c3QgY29udGludWUgb2ZmIGZyb20gd2hlcmV2
ZXIgd2UgYmFpbGVkIGZyb20gdGhlCi0gICAgICAgIC8vIGxvb3AuCi0gICAgICAgIFZhbHVlRnJv
bUJsb2NrIGRlZmF1bHRIYXNJbnN0YW5jZVJlc3VsdCA9IG1fb3V0LmFuY2hvcigKLSAgICAgICAg
ICAgIHZtQ2FsbChtX291dC5ib29sZWFuLCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uRGVmYXVs
dEhhc0luc3RhbmNlKSwgbV9jYWxsRnJhbWUsIHZhbHVlLCBwcm90b3R5cGUpKTsKLSAgICAgICAg
bV9vdXQuanVtcChjb250aW51YXRpb24pOwogICAgICAgICAKICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgIHNldEJvb2xlYW4oCi0gICAgICAg
ICAgICBtX291dC5waGkobV9vdXQuYm9vbGVhbiwgbm90Q2VsbFJlc3VsdCwgaXNJbnN0YW5jZVJl
c3VsdCwgbm90SW5zdGFuY2VSZXN1bHQsIGRlZmF1bHRIYXNJbnN0YW5jZVJlc3VsdCkpOworICAg
ICAgICAgICAgbV9vdXQucGhpKG1fb3V0LmJvb2xlYW4sIG5vdENlbGxSZXN1bHQsIGlzSW5zdGFu
Y2VSZXN1bHQsIG5vdEluc3RhbmNlUmVzdWx0KSk7CiAgICAgfQogCiAgICAgdm9pZCBjb21waWxl
SW5zdGFuY2VPZkN1c3RvbSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cAppbmRleCA2MDk0OTc2YjJiNmMwYzExOGM5ZDQwYTQ0OTVkMDg1NTJhZmVhM2RmLi4xZmE0ZWJj
ZTU0OWFmNWIwYWZjYzIyZDEwMzdmOTMxZDRmMzJmYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTE1Myw4ICsxNTMsNiBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgbW92ZShU
cnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih0cnVlKSkpLCByZWdUMCk7CiAg
ICAgTGFiZWwgbG9vcCh0aGlzKTsKIAotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDgoRXF1YWwsIEFk
ZHJlc3MocmVnVDIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIo
UHJveHlPYmplY3RUeXBlKSkpOwotCiAgICAgLy8gTG9hZCB0aGUgcHJvdG90eXBlIG9mIHRoZSBv
YmplY3QgaW4gcmVnVDIuICBJZiB0aGlzIGlzIGVxdWFsIHRvIHJlZ1QxIC0gV0lOIQogICAgIC8v
IE90aGVyd2lzZSwgY2hlY2sgaWYgd2UndmUgaGl0IG51bGwgLSBpZiB3ZSBoYXZlIHRoZW4gZHJv
cCBvdXQgb2YgdGhlIGxvb3AsIGlmIG5vdCBnbyBhZ2Fpbi4KICAgICBlbWl0TG9hZFN0cnVjdHVy
ZShyZWdUMiwgcmVnVDIsIHJlZ1QzKTsKQEAgLTg1OSw3ICs4NTcsNiBAQCB2b2lkIEpJVDo6ZW1p
dFNsb3dfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0
b3I8U2xvd0NhcwogICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIHZhbHVlKTsKICAg
ICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBwcm90byk7CiAgICAgbGlua1Nsb3dDYXNl
KGl0ZXIpOwotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKHZhbHVlLCByZWdUMCk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm90bywgcmVn
VDEpOwogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSW5zdGFuY2VPZiwgZHN0LCByZWdUMCwg
cmVnVDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3Bw
CmluZGV4IGE5OWQ3ZjA4ZTk0YzExNDNiNGFjNTI5Y2VmMWFlYjBhYWFmNjk3MGUuLmIyN2FmY2Qx
MDE1NDY5NWIwOTI5MjBmNjM3YzNmYjdkNTU2ZjlkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTIzMyw4ICsyMzMsNiBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgbW92ZShUcnVzdGVkSW1tMzIoMSksIHJlZ1QwKTsKICAgICBMYWJlbCBsb29wKHRoaXMpOwog
Ci0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoOChFcXVhbCwgQWRkcmVzcyhyZWdUMiwgSlNDZWxsOjp0
eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihQcm94eU9iamVjdFR5cGUpKSk7Ci0K
ICAgICAvLyBMb2FkIHRoZSBwcm90b3R5cGUgb2YgdGhlIGNlbGwgaW4gcmVnVDIuICBJZiB0aGlz
IGlzIGVxdWFsIHRvIHJlZ1QxIC0gV0lOIQogICAgIC8vIE90aGVyd2lzZSwgY2hlY2sgaWYgd2Un
dmUgaGl0IG51bGwgLSBpZiB3ZSBoYXZlIHRoZW4gZHJvcCBvdXQgb2YgdGhlIGxvb3AsIGlmIG5v
dCBnbyBhZ2Fpbi4KICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJl
SURPZmZzZXQoKSksIHJlZ1QyKTsKQEAgLTI2NSw3ICsyNjMsNiBAQCB2b2lkIEpJVDo6ZW1pdFNs
b3dfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8
U2xvd0NhcwogICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIHZhbHVlKTsKICAgICBs
aW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBwcm90byk7CiAgICAgbGlua1Nsb3dDYXNlKGl0
ZXIpOwotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKIAogICAgIGVtaXRMb2FkKHZhbHVlLCByZWdU
MSwgcmVnVDApOwogICAgIGVtaXRMb2FkKHByb3RvLCByZWdUMywgcmVnVDIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggNjlmMzcwYjNlOGQ3MjY0
ZjM1MDg4NWMzYjhhNjE2NGI5MWQ3ODZiOC4uN2E4OGNhNDI4MmNlM2RhMTVjODI3OGVjODY3MWQ1
NDc5OTlkYzRmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCkBAIC0xNzc5LDYgKzE3NzksOCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkluc3RhbmNlT2YoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZQogICAgIEpT
VmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKICAgICBKU1ZhbHVl
IHByb3RvID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRQcm90byk7CiAgICAgCisgICAgQVNTRVJU
KCF2YWx1ZS5pc09iamVjdCgpIHx8ICFwcm90by5pc09iamVjdCgpKTsKKwogICAgIGJvb2wgcmVz
dWx0ID0gSlNPYmplY3Q6OmRlZmF1bHRIYXNJbnN0YW5jZShleGVjLCB2YWx1ZSwgcHJvdG8pOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlc3VsdCkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCA2M2EyYjljYmUyYTBhZGJj
MjNkZDljYzAxZWFhM2I3ZWQzMzIxYThhLi4xYzRjMWE2ZTA4ZDg5Nzc0Yzk2MzNkOWJlYTY0YzI0
MTY1MmQ5YmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApA
QCAtMTk2LDcgKzE5Niw2IEBAIHR5cGVkZWYgaW50NjRfdCBKSVRfT1BFUkFUSU9OKCpRX0pJVE9w
ZXJhdGlvbl9EKShkb3VibGUpOwogdHlwZWRlZiBpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpaX0pJ
VE9wZXJhdGlvbl9EKShkb3VibGUpOwogdHlwZWRlZiBpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpa
X0pJVE9wZXJhdGlvbl9FKShFeGVjU3RhdGUqKTsKIHR5cGVkZWYgaW50MzJfdCBKSVRfT1BFUkFU
SU9OICgqWl9KSVRPcGVyYXRpb25fRUMpKEV4ZWNTdGF0ZSosIEpTQ2VsbCopOwotdHlwZWRlZiBp
bnQzMl90IEpJVF9PUEVSQVRJT04gKCpaX0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpT
Q2VsbCosIEpTQ2VsbCopOwogdHlwZWRlZiBpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpaX0pJVE9w
ZXJhdGlvbl9FR0MpKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKik7CiB0eXBl
ZGVmIGludDMyX3QgSklUX09QRVJBVElPTiAoKlpfSklUT3BlcmF0aW9uX0VTSnNzKShFeGVjU3Rh
dGUqLCBzaXplX3QsIEpTU3RyaW5nKik7CiB0eXBlZGVmIGludDMyX3QgSklUX09QRVJBVElPTiAo
KlpfSklUT3BlcmF0aW9uX0VKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCmluZGV4IGJlZmVlZjlkMGVkNzAzOTFmM2FkY2NlODNjZGQyZTNmZmQxZjYzZGMu
LmM0NWJiZWMxMjliNmI3YjgwNTNmZGEwNWU1YWIwNmI4YWY4N2VjMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwCkBAIC0xMjI4LDcgKzEyMjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uQ3JlYXRlUHJveHkoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghdGFyZ2V0Lmlz
T2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAgICAgSlNPYmplY3QqIGpzVGFyZ2V0ID0gYXNPYmplY3QodGFyZ2V0LmFzQ2VsbCgpKTsKLSAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTUHJveHk6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT52
bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGpzVGFyZ2V0LT5nZXRQcm90b3R5cGVE
aXJlY3QoKSk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU1Byb3h5OjpjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBqc1RhcmdldC0+
cHJvdG90eXBlKCkpOwogICAgIEpTUHJveHkqIHByb3h5ID0gSlNQcm94eTo6Y3JlYXRlKGV4ZWMt
PnZtKCksIHN0cnVjdHVyZSwganNUYXJnZXQpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cHJveHkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRo
cy5jcHAKaW5kZXggZjY2YzdkYTg5M2EyYzdhZTFmOGU2NjViMzhhYmM0NzYwY2VkZDY0Yy4uNzY1
ODc3OTk3ZDdiNTA2MWFmOTU1ZTgyYTRiMDc5MGYyZTM5OGMyNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC01MjYsNiArNTI2LDcgQEAg
TExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2YpCiAgICAgTExJTlRfQkVH
SU4oKTsKICAgICBKU1ZhbHVlIHZhbHVlID0gTExJTlRfT1BfQygyKS5qc1ZhbHVlKCk7CiAgICAg
SlNWYWx1ZSBwcm90byA9IExMSU5UX09QX0MoMykuanNWYWx1ZSgpOworICAgIEFTU0VSVCghdmFs
dWUuaXNPYmplY3QoKSB8fCAhcHJvdG8uaXNPYmplY3QoKSk7CiAgICAgTExJTlRfUkVUVVJOKGpz
Qm9vbGVhbihKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBwcm90bykp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtCmluZGV4IGU4YWU3ZTUwMGY3YjEwZWUwMmY5NGQ2NzY1ZmE5NDdkOTQ3Nzg3
YjYuLjg4NzA4MDhjNDhmZjQzMzU4YzI5ODRjMmRlZDMwYTczNzUxNGYxMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAg
LTE3MDYsMTEgKzE3MDYsNiBAQCBfbGxpbnRfb3BfY29weV9yZXN0OgogICAgIGNhbGxTbG93UGF0
aChfc2xvd19wYXRoX2NvcHlfcmVzdCkKICAgICBkaXNwYXRjaCg0KQogCi1fbGxpbnRfb3BfaW5z
dGFuY2VvZjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfaW5zdGFuY2VvZikKLSAgICBkaXNwYXRjaCg0KQotCiAKICMgTGFzdGx5LCBtYWtl
IHN1cmUgdGhhdCB3ZSBjYW4gbGluayBldmVuIHRob3VnaCB3ZSBkb24ndCBzdXBwb3J0IGFsbCBv
cGNvZGVzLgogIyBUaGVzZSBvcGNvZGVzIHNob3VsZCBuZXZlciBhcmlzZSB3aGVuIHVzaW5nIExM
SW50IG9yIGVpdGhlciBKSVQuIFdlIGFzc2VydApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCA1NjQ5Nzk3
ZTIyYzU4OGExMGRhNTIxYWI0NmEwOWVkMGRlNzc1NGRlLi43ZjkzMWU1NTE2MTM3MDg5MDU4MDQ3
YjZlNzNmMTE5NTczYTFjZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMTIwNiw2ICsxMjA2LDM0
IEBAIF9sbGludF9vcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOgogICAgIHN0b3JlaSAxLCBQYXls
b2FkT2Zmc2V0W2NmciwgdDMsIDhdCiAgICAgZGlzcGF0Y2goNCkKIAorX2xsaW50X29wX2luc3Rh
bmNlb2Y6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgICMgQWN0dWFsbHkgZG8gdGhlIHdvcmsu
CisgICAgbG9hZGkgMTJbUENdLCB0MAorICAgIGxvYWRpIDRbUENdLCB0MworICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGVQYXlsb2FkKHQwLCBDZWxsVGFnLCB0MSwgLm9wSW5zdGFuY2VvZlNsb3cp
CisgICAgYmJiIEpTQ2VsbDo6bV90eXBlW3QxXSwgT2JqZWN0VHlwZSwgLm9wSW5zdGFuY2VvZlNs
b3cKKyAgICBsb2FkaSA4W1BDXSwgdDAKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9h
ZCh0MCwgQ2VsbFRhZywgdDIsIC5vcEluc3RhbmNlb2ZTbG93KQorICAgIAorICAgICMgUmVnaXN0
ZXIgc3RhdGU6IHQxID0gcHJvdG90eXBlLCB0MiA9IHZhbHVlCisgICAgbW92ZSAxLCB0MAorLm9w
SW5zdGFuY2VvZkxvb3A6CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QyXSwgdDIK
KyAgICBsb2FkaSBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlICsgUGF5bG9hZE9mZnNldFt0Ml0sIHQy
CisgICAgYnBlcSB0MiwgdDEsIC5vcEluc3RhbmNlb2ZEb25lCisgICAgYnRpbnogdDIsIC5vcElu
c3RhbmNlb2ZMb29wCisKKyAgICBtb3ZlIDAsIHQwCisub3BJbnN0YW5jZW9mRG9uZToKKyAgICBz
dG9yZWkgQm9vbGVhblRhZywgVGFnT2Zmc2V0W2NmciwgdDMsIDhdCisgICAgc3RvcmVpIHQwLCBQ
YXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLm9wSW5zdGFuY2Vv
ZlNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW5zdGFuY2VvZikKKyAg
ICBkaXNwYXRjaCg0KQorCiBfbGxpbnRfb3BfaW5zdGFuY2VvZl9jdXN0b206CiAgICAgdHJhY2VF
eGVjdXRpb24oKQogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2luc3RhbmNlb2Zf
Y3VzdG9tKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjY0LmFzbQppbmRleCAwZTQ3YWYzYjNiZjQwYzNkNWU0ZWI3ZmRkN2EwZGUwZjBj
NDc5OTU4Li4yMzg1MDQ0ODY4MGJlYTA1NmJiMWEwYTk5NDhmYjM2YmMyZDgxOGY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbQpAQCAtMTA5Myw2ICsxMDkzLDM0IEBAIF9sbGludF9vcF9vdmVycmlkZXNfaGFzX2luc3Rh
bmNlOgogICAgIGRpc3BhdGNoKDQpCiAKIAorX2xsaW50X29wX2luc3RhbmNlb2Y6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgICMgQWN0dWFsbHkgZG8gdGhlIHdvcmsuCisgICAgbG9hZGlzRnJv
bUluc3RydWN0aW9uKDMsIHQwKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQwLCB0
MSwgLm9wSW5zdGFuY2VvZlNsb3cpCisgICAgYmJiIEpTQ2VsbDo6bV90eXBlW3QxXSwgT2JqZWN0
VHlwZSwgLm9wSW5zdGFuY2VvZlNsb3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDAp
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDAsIHQyLCAub3BJbnN0YW5jZW9mU2xv
dykKKyAgICAKKyAgICAjIFJlZ2lzdGVyIHN0YXRlOiB0MSA9IHByb3RvdHlwZSwgdDIgPSB2YWx1
ZQorICAgIG1vdmUgMSwgdDAKKy5vcEluc3RhbmNlb2ZMb29wOgorICAgIGxvYWRTdHJ1Y3R1cmVB
bmRDbG9iYmVyRmlyc3RBcmcodDIsIHQzKQorICAgIGxvYWRxIFN0cnVjdHVyZTo6bV9wcm90b3R5
cGVbdDNdLCB0MgorICAgIGJxZXEgdDIsIHQxLCAub3BJbnN0YW5jZW9mRG9uZQorICAgIGJ0cXog
dDIsIHRhZ01hc2ssIC5vcEluc3RhbmNlb2ZMb29wCisKKyAgICBtb3ZlIDAsIHQwCisub3BJbnN0
YW5jZW9mRG9uZToKKyAgICBvcnEgVmFsdWVGYWxzZSwgdDAKKyAgICBsb2FkaXNGcm9tSW5zdHJ1
Y3Rpb24oMSwgdDMpCisgICAgc3RvcmVxIHQwLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg0
KQorCisub3BJbnN0YW5jZW9mU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9pbnN0YW5jZW9mKQorICAgIGRpc3BhdGNoKDQpCisKIF9sbGludF9vcF9pbnN0YW5jZW9mX2N1
c3RvbToKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaW5zdGFuY2VvZl9jdXN0b20pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggOGVjYzdlYTFmMWFiNmU1YjMxMDYwY2Y1MjVk
YTdjMjRhN2MxOTg0YS4uY2YyNGNmNmNiMzlkYzA0MGU0ODNhNTM1OTZjMTQwNjE3Y2M2ZTBmYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNw
cApAQCAtMTg0LDcgKzE4NCw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHN0ZDo6cGFpcjxTcGVj
aWVzQ29uc3RydWN0UmVzdWx0LCBKU09iamVjdCo+IHNwZWNpZXNDb25zdHJ1CiAgICAgICAgIC8v
IEZhc3QgcGF0aCBpbiB0aGUgbm9ybWFsIGNhc2Ugd2hlcmUgdGhlIHVzZXIgaGFzIG5vdCBzZXQg
YW4gb3duIGNvbnN0cnVjdG9yIGFuZCB0aGUgQXJyYXkucHJvdG90eXBlLmNvbnN0cnVjdG9yIGlz
IG5vcm1hbC4KICAgICAgICAgLy8gV2UgbmVlZCBwcm90b3R5cGUgY2hlY2sgZm9yIHN1YmNsYXNz
ZXMgb2YgQXJyYXksIHdoaWNoIGFyZSBBcnJheSBvYmplY3RzIGJ1dCBoYXZlIGEgZGlmZmVyZW50
IHByb3RvdHlwZSBieSBkZWZhdWx0LgogICAgICAgICBpZiAoTElLRUxZKCF0aGlzT2JqZWN0LT5o
YXNDdXN0b21Qcm9wZXJ0aWVzKCkKLSAgICAgICAgICAgICYmIHRoaXNPYmplY3QtPmdsb2JhbE9i
amVjdCgpLT5hcnJheVByb3RvdHlwZSgpID09IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVj
dCgpCisgICAgICAgICAgICAmJiB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+YXJyYXlQcm90
b3R5cGUoKSA9PSB0aGlzT2JqZWN0LT5wcm90b3R5cGUoKQogICAgICAgICAgICAgJiYgIXRoaXNP
YmplY3QtPmdsb2JhbE9iamVjdCgpLT5hcnJheVByb3RvdHlwZSgpLT5kaWRDaGFuZ2VDb25zdHJ1
Y3Rvck9yU3BlY2llc1Byb3BlcnRpZXMoKSkpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3BhaXIoU3BlY2llc0NvbnN0cnVjdFJlc3VsdDo6RmFzdFBhdGgsIG51bGxwdHIpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCmluZGV4IDQ4NGU3MzdmZjM1N2I5
NjkzNmY0NDgzZjhiYmNmNGVkNzNiNDFhOTguLjIyYmM0M2Q5Yjk4MjdjYjlmMWQwMjc2ZjcwOWY3
ZWE2YzIxMDM3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Ns
YXNzSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5o
CkBAIC0xMTIsOSArMTEyLDYgQEAgc3RydWN0IE1ldGhvZFRhYmxlIHsKICAgICB0eXBlZGVmIGJv
b2wgKCpTZXRQcm90b3R5cGVGdW5jdGlvblB0cikoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBKU1Zh
bHVlLCBib29sIHNob3VsZFRocm93SWZDYW50U2V0KTsKICAgICBTZXRQcm90b3R5cGVGdW5jdGlv
blB0ciBzZXRQcm90b3R5cGU7CiAKLSAgICB0eXBlZGVmIEpTVmFsdWUgKCpHZXRQcm90b3R5cGVG
dW5jdGlvblB0cikoSlNPYmplY3QqLCBFeGVjU3RhdGUqKTsKLSAgICBHZXRQcm90b3R5cGVGdW5j
dGlvblB0ciBnZXRQcm90b3R5cGU7Ci0KICAgICB0eXBlZGVmIHZvaWQgKCpEdW1wVG9TdHJlYW1G
dW5jdGlvblB0cikoY29uc3QgSlNDZWxsKiwgUHJpbnRTdHJlYW0mKTsKICAgICBEdW1wVG9TdHJl
YW1GdW5jdGlvblB0ciBkdW1wVG9TdHJlYW07CiAKQEAgLTE2OSw3ICsxNjYsNiBAQCBzdHJ1Y3Qg
TWV0aG9kVGFibGUgewogICAgICAgICAmQ2xhc3NOYW1lOjpwcmV2ZW50RXh0ZW5zaW9ucywgXAog
ICAgICAgICAmQ2xhc3NOYW1lOjppc0V4dGVuc2libGUsIFwKICAgICAgICAgJkNsYXNzTmFtZTo6
c2V0UHJvdG90eXBlLCBcCi0gICAgICAgICZDbGFzc05hbWU6OmdldFByb3RvdHlwZSwgXAogICAg
ICAgICAmQ2xhc3NOYW1lOjpkdW1wVG9TdHJlYW0sIFwKICAgICAgICAgJkNsYXNzTmFtZTo6ZXN0
aW1hdGVkU2l6ZSBcCiAgICAgfSwgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCmluZGV4IDk3N2ZhYjk2ZmZhY2YwZmU0NTQ2OTJl
NGUwZjFhZGVmNjU4ZTI3MTIuLjI2NzlhZjdmYWI3NjlhN2U5N2VhOTU0OTJhNjhmMGNkOWE0Mzc5
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5jcHAKQEAgLTE2OCw3ICsxNjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uUHJvdG9GdW5jQmluZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgfQogCiAgICAg
SlNTdHJpbmcqIG5hbWUgPSB0YXJnZXQuZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5u
YW1lKS50b1N0cmluZyhleGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQm91bmRG
dW5jdGlvbjo6Y3JlYXRlKHZtLCBleGVjLCBnbG9iYWxPYmplY3QsIHRhcmdldE9iamVjdCwgZXhl
Yy0+YXJndW1lbnQoMCksIGJvdW5kQXJncywgbGVuZ3RoLCBuYW1lLT52YWx1ZShleGVjKSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNCb3VuZEZ1bmN0aW9uOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgdGFyZ2V0T2JqZWN0LCBleGVjLT5hcmd1bWVudCgwKSwgYm91bmRBcmdzLCBs
ZW5ndGgsIG5hbWUtPnZhbHVlKGV4ZWMpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3Rv
dHlwZS5jcHAKaW5kZXggMDNkOThkZWQyYTRkY2YzOGY4ZmUxYjVkN2ExMjZlMjY4YTM0OGQ2My4u
MWMyZmVhOWY1Yzc2ODFlNzYyMDc2ZTFhZTVjNGVkMjZlMmI4NDJmMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuY3Bw
CkBAIC0xMjksOSArMTI5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsQ29s
bGF0b3JQcm90b3R5cGVHZXR0ZXJDb21wYXJlKEV4ZWNTdGF0ZSogc3RhdGUKICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dPdXRPZk1lbW9yeUVycm9yKHN0YXRlKSk7CiAK
ICAgICAgICAgLy8gYy4gTGV0IGJjIGJlIEJvdW5kRnVuY3Rpb25DcmVhdGUoRiwgwqt0aGlzIHZh
bHVlwrspLgotICAgICAgICBib3VuZENvbXBhcmUgPSBKU0JvdW5kRnVuY3Rpb246OmNyZWF0ZSh2
bSwgc3RhdGUsIGdsb2JhbE9iamVjdCwgdGFyZ2V0T2JqZWN0LCBjb2xsYXRvciwgYm91bmRBcmdz
LCAyLCBBU0NJSUxpdGVyYWwoImNvbXBhcmUiKSk7Ci0gICAgICAgIGlmICh2bS5leGNlcHRpb24o
KSkKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKKyAgICAg
ICAgYm91bmRDb21wYXJlID0gSlNCb3VuZEZ1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgdGFyZ2V0T2JqZWN0LCBjb2xsYXRvciwgYm91bmRBcmdzLCAyLCBBU0NJSUxpdGVyYWwoImNv
bXBhcmUiKSk7CiAgICAgICAgIC8vIGQuIFNldCBjb2xsYXRvci5bW2JvdW5kQ29tcGFyZV1dIHRv
IGJjLgogICAgICAgICBjb2xsYXRvci0+c2V0Qm91bmRDb21wYXJlKHZtLCBib3VuZENvbXBhcmUp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IGQyYzU0ZDY0Y2JiYmNmMTAw
MmY2ZTUyNjFkMTdlNTg2Y2NlYTkzNzIuLmZmNDhlYzQ1NWRhZDE0NTUxY2JiMWQyMzNlN2ViMmI4
MGMwN2UyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcApAQCAtMTM0LDkgKzEzNCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBl
R2V0dGVyRm9ybWF0KEV4ZWNTdGF0ZSoKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodGhyb3dPdXRPZk1lbW9yeUVycm9yKHN0YXRlKSk7CiAKICAgICAgICAgLy8gYy4gTGV0IGJm
IGJlIEJvdW5kRnVuY3Rpb25DcmVhdGUoRiwgwqt0aGlzIHZhbHVlwrspLgotICAgICAgICBib3Vu
ZEZvcm1hdCA9IEpTQm91bmRGdW5jdGlvbjo6Y3JlYXRlKHZtLCBzdGF0ZSwgZ2xvYmFsT2JqZWN0
LCB0YXJnZXRPYmplY3QsIGR0ZiwgYm91bmRBcmdzLCAxLCBBU0NJSUxpdGVyYWwoImZvcm1hdCIp
KTsKLSAgICAgICAgaWYgKHZtLmV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAgICAgICBib3VuZEZvcm1hdCA9IEpTQm91bmRGdW5j
dGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHRhcmdldE9iamVjdCwgZHRmLCBib3VuZEFy
Z3MsIDEsIEFTQ0lJTGl0ZXJhbCgiZm9ybWF0IikpOwogICAgICAgICAvLyBkLiBTZXQgZHRmLltb
Ym91bmRGb3JtYXRdXSB0byBiZi4KICAgICAgICAgZHRmLT5zZXRCb3VuZEZvcm1hdCh2bSwgYm91
bmRGb3JtYXQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKaW5kZXggNGJiMmVlNDkyMmZl
YjBmNTE4NzBhOTEwZGIxMmU1Mjg3MWJkZGQ1Mi4uNThjNjRjNTNkNjU1OTBlMzg2NGM2YTY0OTUz
MGFjNzVkODY5NmEyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTEyMiw5ICsxMjIsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVH
ZXR0ZXJGb3JtYXQoRXhlY1N0YXRlKiBzdAogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh0aHJvd091dE9mTWVtb3J5RXJyb3Ioc3RhdGUpKTsKIAogICAgICAgICAvLyBjLiBMZXQg
YmYgYmUgQm91bmRGdW5jdGlvbkNyZWF0ZShGLCDCq3RoaXMgdmFsdWXCuykuCi0gICAgICAgIGJv
dW5kRm9ybWF0ID0gSlNCb3VuZEZ1bmN0aW9uOjpjcmVhdGUodm0sIHN0YXRlLCBnbG9iYWxPYmpl
Y3QsIHRhcmdldE9iamVjdCwgbmYsIGJvdW5kQXJncywgMSwgQVNDSUlMaXRlcmFsKCJmb3JtYXQi
KSk7Ci0gICAgICAgIGlmICh2bS5leGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKKyAgICAgICAgYm91bmRGb3JtYXQgPSBKU0JvdW5kRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCB0YXJnZXRPYmplY3QsIG5mLCBib3VuZEFy
Z3MsIDEsIEFTQ0lJTGl0ZXJhbCgiZm9ybWF0IikpOwogICAgICAgICAvLyBkLiBTZXQgbmYuW1ti
b3VuZEZvcm1hdF1dIHRvIGJmLgogICAgICAgICBuZi0+c2V0Qm91bmRGb3JtYXQodm0sIGJvdW5k
Rm9ybWF0KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JvdW5kRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
b3VuZEZ1bmN0aW9uLmNwcAppbmRleCA5MTQzNzg1ZDQ2NzFhYjQ0NTE3ODUyNjJhOTI1YWM3NmQ2
Yjc2MjQ1Li42OTBjYjkxODkyOGE1ZjZjNzcxOGY0NWQ5NDQyNjRhNDYxOGE4MmE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKQEAg
LTg3LDExICs4Nyw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaGFzSW5zdGFuY2VC
b3VuZEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQm9vbGVhbihib3VuZE9iamVjdC0+dGFyZ2V0RnVuY3Rpb24oKS0+aGFzSW5zdGFuY2UoZXhl
YywgdmFsdWUpKSk7CiB9CiAKLWlubGluZSBTdHJ1Y3R1cmUqIGdldEJvdW5kRnVuY3Rpb25TdHJ1
Y3R1cmUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiB0YXJnZXRGdW5jdGlvbikKK2lubGluZSBTdHJ1Y3R1cmUqIGdldEJvdW5k
RnVuY3Rpb25TdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U09iamVjdCogdGFyZ2V0RnVuY3Rpb24pCiB7Ci0gICAgSlNWYWx1ZSBwcm90b3R5cGUgPSB0YXJn
ZXRGdW5jdGlvbi0+Z2V0UHJvdG90eXBlKHZtLCBleGVjKTsKLSAgICBpZiAoVU5MSUtFTFkodm0u
ZXhjZXB0aW9uKCkpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBKU1ZhbHVlIHByb3Rv
dHlwZSA9IHRhcmdldEZ1bmN0aW9uLT5zdHJ1Y3R1cmUodm0pLT5zdG9yZWRQcm90b3R5cGUoKTsK
ICAgICBKU0Z1bmN0aW9uKiB0YXJnZXRKU0Z1bmN0aW9uID0ganNEeW5hbWljQ2FzdDxKU0Z1bmN0
aW9uKj4odGFyZ2V0RnVuY3Rpb24pOwogCiAgICAgLy8gV2Ugb25seSBjYWNoZSB0aGUgc3RydWN0
dXJlIG9mIHRoZSBib3VuZCBmdW5jdGlvbiBpZiB0aGUgYmluZGVlIGlzIGEgSlNGdW5jdGlvbiBz
aW5jZSB0aGVyZQpAQCAtMTE5LDE1ICsxMTcsMTMgQEAgaW5saW5lIFN0cnVjdHVyZSogZ2V0Qm91
bmRGdW5jdGlvblN0cnVjdHVyZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmoK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1KU0JvdW5kRnVuY3Rpb24qIEpTQm91bmRGdW5jdGlv
bjo6Y3JlYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU09iamVjdCogdGFyZ2V0RnVuY3Rpb24sIEpTVmFsdWUgYm91bmRUaGlzLCBKU1Zh
bHVlIGJvdW5kQXJncywgaW50IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBuYW1lKQorSlNCb3VuZEZ1
bmN0aW9uKiBKU0JvdW5kRnVuY3Rpb246OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiB0YXJnZXRGdW5jdGlvbiwgSlNWYWx1ZSBib3VuZFRoaXMs
IEpTVmFsdWUgYm91bmRBcmdzLCBpbnQgbGVuZ3RoLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAg
ICAgQ29uc3RydWN0RGF0YSBjb25zdHJ1Y3REYXRhOwogICAgIENvbnN0cnVjdFR5cGUgY29uc3Ry
dWN0VHlwZSA9IEpTQzo6Z2V0Q29uc3RydWN0RGF0YSh0YXJnZXRGdW5jdGlvbiwgY29uc3RydWN0
RGF0YSk7CiAgICAgYm9vbCBjYW5Db25zdHJ1Y3QgPSBjb25zdHJ1Y3RUeXBlICE9IENvbnN0cnVj
dFR5cGU6Ok5vbmU7CiAgICAgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IHZtLmdldEhv
c3RGdW5jdGlvbihib3VuZEZ1bmN0aW9uQ2FsbCwgY2FuQ29uc3RydWN0ID8gYm91bmRGdW5jdGlv
bkNvbnN0cnVjdCA6IGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCBBU0NJSUxpdGVyYWwo
IkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kIHJlc3VsdCIpKTsKLSAgICBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSA9IGdldEJvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUodm0sIGV4ZWMsIGdsb2JhbE9iamVjdCwg
dGFyZ2V0RnVuY3Rpb24pOwotICAgIGlmIChVTkxJS0VMWSh2bS5leGNlcHRpb24oKSkpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2V0Qm91bmRG
dW5jdGlvblN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCB0YXJnZXRGdW5jdGlvbik7CiAgICAg
SlNCb3VuZEZ1bmN0aW9uKiBmdW5jdGlvbiA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpT
Qm91bmRGdW5jdGlvbj4odm0uaGVhcCkpIEpTQm91bmRGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0
LCBzdHJ1Y3R1cmUsIHRhcmdldEZ1bmN0aW9uLCBib3VuZFRoaXMsIGJvdW5kQXJncyk7CiAKICAg
ICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24odm0sIGV4ZWN1dGFibGUsIGxlbmd0aCwgbWFrZVN0
cmluZygiYm91bmQgIiwgbmFtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JvdW5kRnVuY3Rpb24uaAppbmRleCA4OWViYThkZDc1NTNhMDIxOWQzYmQ4MGY4MmViNzky
NDE1MDdlZmJmLi4zMjBiYTYzMGEzZGQ2ZWI1MjhkYzI4N2U0ZWM2YzdlOWZhYmU5NzY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaApAQCAt
NDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Z1bmN0aW9uIEJhc2U7CiAgICAg
Y29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gfkltcGxlbWVudHNEZWZhdWx0
SGFzSW5zdGFuY2UgJiBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAotICAgIHN0YXRpYyBKU0JvdW5k
RnVuY3Rpb24qIGNyZWF0ZShWTSYsIEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNPYmpl
Y3QqIHRhcmdldEZ1bmN0aW9uLCBKU1ZhbHVlIGJvdW5kVGhpcywgSlNWYWx1ZSBib3VuZEFyZ3Ms
IGludCwgY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIEpTQm91bmRGdW5jdGlvbiogY3JlYXRl
KFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogdGFyZ2V0RnVuY3Rpb24sIEpTVmFsdWUg
Ym91bmRUaGlzLCBKU1ZhbHVlIGJvdW5kQXJncywgaW50LCBjb25zdCBTdHJpbmcmKTsKICAgICAK
ICAgICBzdGF0aWMgYm9vbCBjdXN0b21IYXNJbnN0YW5jZShKU09iamVjdCosIEV4ZWNTdGF0ZSos
IEpTVmFsdWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NKU1ZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
Y3BwCmluZGV4IGMzZmRhYzc4YzVhNDkxYTVkZjEyMTU2MTc4OGJiM2VmNmRiMjdhMzkuLmI5ZGQw
YTQxN2Q4MDNiMGU0NWRhZWNlMjg4NDQ1ZWUxMmRmNTc4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCBK
U1ZhbHVlOjpwdXRUb1ByaW1pdGl2ZShFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUKICAgICBKU1ZhbHVlIHByb3RvdHlwZTsKICAgICBpZiAocHJvcGVy
dHlOYW1lICE9IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS51bmRlcnNjb3JlUHJvdG8pIHsKICAgICAg
ICAgZm9yICg7ICFvYmotPnN0cnVjdHVyZSgpLT5oYXNSZWFkT25seU9yR2V0dGVyU2V0dGVyUHJv
cGVydGllc0V4Y2x1ZGluZ1Byb3RvKCk7IG9iaiA9IGFzT2JqZWN0KHByb3RvdHlwZSkpIHsKLSAg
ICAgICAgICAgIHByb3RvdHlwZSA9IG9iai0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7CisgICAgICAg
ICAgICBwcm90b3R5cGUgPSBvYmotPnByb3RvdHlwZSgpOwogICAgICAgICAgICAgaWYgKHByb3Rv
dHlwZS5pc051bGwoKSkgewogICAgICAgICAgICAgICAgIGlmIChzbG90LmlzU3RyaWN0TW9kZSgp
KQogICAgICAgICAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBTdHJpY3RNb2RlUmVh
ZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwpAQCAtMTc4LDkgKzE3OCw3IEBAIHZvaWQgSlNWYWx1
ZTo6cHV0VG9QcmltaXRpdmUoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIHBy
b3RvdHlwZSA9IG9iai0+Z2V0UHJvdG90eXBlKHZtLCBleGVjKTsKLSAgICAgICAgaWYgKHZtLmV4
Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBwcm90b3R5cGUgPSBvYmot
PnByb3RvdHlwZSgpOwogICAgICAgICBpZiAocHJvdG90eXBlLmlzTnVsbCgpKQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAK
aW5kZXggMjQzYjgwNTMwMGY2MWE3N2QwZDJhOGI5NTE2YzMwOWY4Nzc1ZTljOC4uNDhmNWExYTI2
M2RiNWZhMzIyMzY1ZDJkOTM0YWNjOGMyNzY2ZTQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NlbGwuY3BwCkBAIC0yODUsOSArMjg1LDQgQEAgYm9vbCBKU0NlbGw6OnNldFBy
b3RvdHlwZShKU09iamVjdCosIEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGJvb2wpCiAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotSlNWYWx1ZSBKU0NlbGw6OmdldFByb3RvdHlw
ZShKU09iamVjdCosIEV4ZWNTdGF0ZSopCi17Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCmluZGV4IDQzZGEwNDkzN2MxODNiMTk5MDExMjJlNDEzODJjMGI0YjU4ZWQ0NmQu
LmUwZGQxNjQ0YTY3M2U4Nzc2ODZjYmM4ZWQzNWVhYzg1MzYxZDc2MjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC0yMDksNyArMjA5LDYgQEAgcHJvdGVjdGVkOgog
ICAgIHN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIGJvb2wgcHJldmVudEV4dGVuc2lvbnMo
SlNPYmplY3QqLCBFeGVjU3RhdGUqKTsKICAgICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19DUkFT
SCBib29sIGlzRXh0ZW5zaWJsZShKU09iamVjdCosIEV4ZWNTdGF0ZSopOwogICAgIHN0YXRpYyBO
T19SRVRVUk5fRFVFX1RPX0NSQVNIIGJvb2wgc2V0UHJvdG90eXBlKEpTT2JqZWN0KiwgRXhlY1N0
YXRlKiwgSlNWYWx1ZSwgYm9vbCk7Ci0gICAgc3RhdGljIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0gg
SlNWYWx1ZSBnZXRQcm90b3R5cGUoSlNPYmplY3QqLCBFeGVjU3RhdGUqKTsKIAogICAgIHN0YXRp
YyBTdHJpbmcgY2xhc3NOYW1lKGNvbnN0IEpTT2JqZWN0Kik7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIGJvb2wgY3VzdG9tSGFzSW5zdGFuY2UoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBK
U1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAppbmRleCAyM2MwNzBkYTViYmYzMWNmMjc0NDVlZTQ1ZDRlOWMyYTNiMTM4ZjVhLi4y
ZjYwZjE2YzY1MjQxNDE5NzJjMDk2YzJmYzQ1MjVkNjJjZGI1NzE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC02MTMsNyArNjEz
LDcgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBq
c05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICAgICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24odm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgIiR2bSIpLCBkb2xsYXJW
TSwgRG9udEVudW0pOwogICAgIH0KIAotICAgIHJlc2V0UHJvdG90eXBlKHZtLCBnZXRQcm90b3R5
cGVEaXJlY3QoKSk7CisgICAgcmVzZXRQcm90b3R5cGUodm0sIHByb3RvdHlwZSgpKTsKIH0KIAog
Ym9vbCBKU0dsb2JhbE9iamVjdDo6aGFzTGVnYWN5UHJvZmlsZXIoKSBjb25zdApAQCAtNjY5LDgg
KzY2OSw4IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmFkZEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lCiBzdGF0aWMgaW5saW5lIEpTT2JqZWN0
KiBsYXN0SW5Qcm90b3R5cGVDaGFpbihKU09iamVjdCogb2JqZWN0KQogewogICAgIEpTT2JqZWN0
KiBvID0gb2JqZWN0OwotICAgIHdoaWxlIChvLT5nZXRQcm90b3R5cGVEaXJlY3QoKS5pc09iamVj
dCgpKQotICAgICAgICBvID0gYXNPYmplY3Qoby0+Z2V0UHJvdG90eXBlRGlyZWN0KCkpOworICAg
IHdoaWxlIChvLT5wcm90b3R5cGUoKS5pc09iamVjdCgpKQorICAgICAgICBvID0gYXNPYmplY3Qo
by0+cHJvdG90eXBlKCkpOwogICAgIHJldHVybiBvOwogfQogCkBAIC03MjYsNyArNzI2LDcgQEAg
aW5saW5lIHZvaWQgT2JqZWN0c1dpdGhCcm9rZW5JbmRleGluZ0ZpbmRlcjo6dmlzaXQoSlNDZWxs
KiBjZWxsKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAg
IEpTVmFsdWUgcHJvdG90eXBlVmFsdWUgPSBjdXJyZW50LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsK
KyAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGVWYWx1ZSA9IGN1cnJlbnQtPnByb3RvdHlwZSgpOwog
ICAgICAgICBpZiAocHJvdG90eXBlVmFsdWUuaXNOdWxsKCkpCiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY3VycmVudCA9IGFzT2JqZWN0KHByb3RvdHlwZVZhbHVlKTsKQEAgLTc4NSwyMCAr
Nzg1LDIwIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmhhdmVBQmFkVGltZShWTSYgdm0pCiBib29s
IEpTR2xvYmFsT2JqZWN0OjpvYmplY3RQcm90b3R5cGVJc1NhbmUoKQogewogICAgIHJldHVybiAh
aGFzSW5kZXhlZFByb3BlcnRpZXMobV9vYmplY3RQcm90b3R5cGUtPmluZGV4aW5nVHlwZSgpKQot
ICAgICAgICAmJiBtX29iamVjdFByb3RvdHlwZS0+Z2V0UHJvdG90eXBlRGlyZWN0KCkuaXNOdWxs
KCk7CisgICAgICAgICYmIG1fb2JqZWN0UHJvdG90eXBlLT5wcm90b3R5cGUoKS5pc051bGwoKTsK
IH0KIAogYm9vbCBKU0dsb2JhbE9iamVjdDo6YXJyYXlQcm90b3R5cGVDaGFpbklzU2FuZSgpCiB7
CiAgICAgcmV0dXJuICFoYXNJbmRleGVkUHJvcGVydGllcyhtX2FycmF5UHJvdG90eXBlLT5pbmRl
eGluZ1R5cGUoKSkKLSAgICAgICAgJiYgbV9hcnJheVByb3RvdHlwZS0+Z2V0UHJvdG90eXBlRGly
ZWN0KCkgPT0gbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkKKyAgICAgICAgJiYgbV9hcnJheVByb3Rv
dHlwZS0+cHJvdG90eXBlKCkgPT0gbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkKICAgICAgICAgJiYg
b2JqZWN0UHJvdG90eXBlSXNTYW5lKCk7CiB9CiAKIGJvb2wgSlNHbG9iYWxPYmplY3Q6OnN0cmlu
Z1Byb3RvdHlwZUNoYWluSXNTYW5lKCkKIHsKICAgICByZXR1cm4gIWhhc0luZGV4ZWRQcm9wZXJ0
aWVzKG1fc3RyaW5nUHJvdG90eXBlLT5pbmRleGluZ1R5cGUoKSkKLSAgICAgICAgJiYgbV9zdHJp
bmdQcm90b3R5cGUtPmdldFByb3RvdHlwZURpcmVjdCgpID09IG1fb2JqZWN0UHJvdG90eXBlLmdl
dCgpCisgICAgICAgICYmIG1fc3RyaW5nUHJvdG90eXBlLT5wcm90b3R5cGUoKSA9PSBtX29iamVj
dFByb3RvdHlwZS5nZXQoKQogICAgICAgICAmJiBvYmplY3RQcm90b3R5cGVJc1NhbmUoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5k
ZXggZjdiZWU4MDUxZDg3ZDc4ZDEwZWM2NDUxNzRhZWJiYzQwNDJmODE5OS4uYWY1NGU1ZjE1YmFm
ODE3NDhmNTJmZWQzNWZjZDM4MGRjM2JlNjgwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0zNzksNyArMzc5LDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICBzdHJ1Y3R1cmUoKS0+c2V0R2xvYmFsT2JqZWN0KHZtLCB0aGlzKTsKICAgICAg
ICAgbV9ydW50aW1lRmxhZ3MgPSBtX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlLT5qYXZhU2NyaXB0
UnVudGltZUZsYWdzKHRoaXMpOwogICAgICAgICBpbml0KHZtKTsKLSAgICAgICAgc2V0R2xvYmFs
VGhpcyh2bSwgSlNQcm94eTo6Y3JlYXRlKHZtLCBKU1Byb3h5OjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMsIGdldFByb3RvdHlwZURpcmVjdCgpLCBQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSksIHRo
aXMpKTsKKyAgICAgICAgc2V0R2xvYmFsVGhpcyh2bSwgSlNQcm94eTo6Y3JlYXRlKHZtLCBKU1By
b3h5OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIHByb3RvdHlwZSgpLCBQdXJlRm9yd2FyZGlu
Z1Byb3h5VHlwZSksIHRoaXMpKTsKICAgICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNPYmplY3QqIHRoaXNWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCA3Mzc0ZWM0
ZjM5NWI1NzcxNzU5NzBiMWE3NjFiM2RkZWZjZDkxOTA3Li44ZTk0NzA0OGQ2Y2IzNjUwOWFhMWIw
NDc4OThhYmI5M2IyZTEzZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC03ODQsOSArNzg0LDgg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3Io
RXhlY1N0YXRlKiBleGVjKQogCiBjbGFzcyBHbG9iYWxGdW5jUHJvdG9HZXR0ZXJGdW5jdG9yIHsK
IHB1YmxpYzoKLSAgICBHbG9iYWxGdW5jUHJvdG9HZXR0ZXJGdW5jdG9yKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIHRoaXNPYmplY3QpCi0gICAgICAgIDogbV9leGVjKGV4ZWMpCi0gICAgICAg
ICwgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZShmYWxzZSkKKyAgICBHbG9iYWxGdW5jUHJvdG9HZXR0
ZXJGdW5jdG9yKEpTT2JqZWN0KiB0aGlzT2JqZWN0KQorICAgICAgICA6IG1faGFzU2tpcHBlZEZp
cnN0RnJhbWUoZmFsc2UpCiAgICAgICAgICwgbV90aGlzT2JqZWN0KHRoaXNPYmplY3QpCiAgICAg
ICAgICwgbV9yZXN1bHQoSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpKQogICAgIHsKQEAg
LTgwMiwxMyArODAxLDEyIEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX3Ro
aXNPYmplY3QtPmFsbG93c0FjY2Vzc0Zyb20odmlzaXRvci0+Y2FsbEZyYW1lKCkpKQotICAgICAg
ICAgICAgbV9yZXN1bHQgPSBKU1ZhbHVlOjplbmNvZGUobV90aGlzT2JqZWN0LT5nZXRQcm90b3R5
cGUobV9leGVjLT52bSgpLCBtX2V4ZWMpKTsKKyAgICAgICAgICAgIG1fcmVzdWx0ID0gSlNWYWx1
ZTo6ZW5jb2RlKG1fdGhpc09iamVjdC0+cHJvdG90eXBlKCkpOwogCiAgICAgICAgIHJldHVybiBT
dGFja1Zpc2l0b3I6OkRvbmU7CiAgICAgfQogCiBwcml2YXRlOgotICAgIEV4ZWNTdGF0ZSogbV9l
eGVjOwogICAgIGJvb2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZTsKICAgICBKU09iamVjdCogbV90
aGlzT2JqZWN0OwogICAgIEVuY29kZWRKU1ZhbHVlIG1fcmVzdWx0OwpAQCAtODI0LDEwICs4MjIs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b0dldHRlcihF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCF0aGlzT2JqZWN0KQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNWYWx1ZSgpLnN5bnRoZXNpemVQcm90b3R5cGUoZXhlYykp
OwogCi0gICAgR2xvYmFsRnVuY1Byb3RvR2V0dGVyRnVuY3RvciBmdW5jdG9yKGV4ZWMsIHRoaXNP
YmplY3QpOwotICAgIC8vIFRoaXMgY2FuIHRocm93IGJ1dCBpdCdzIGp1c3QgdW5uZWVkZWQgZXh0
cmEgd29yayB0byBjaGVjayBmb3IgaXQuIFRoZSByZXR1cm4KLSAgICAvLyB2YWx1ZSBmcm9tIHRo
aXMgZnVuY3Rpb24gaXMgb25seSB1c2VkIGFzIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBhIGhvc3Qg
Y2FsbC4KLSAgICAvLyBUaGVyZWZvcmUsIHRoZSByZXR1cm4gdmFsdWUgaXMgb25seSB1c2VkIGlm
IHRoZXJlIHdhc24ndCBhbiBleGNlcHRpb24uCisgICAgR2xvYmFsRnVuY1Byb3RvR2V0dGVyRnVu
Y3RvciBmdW5jdG9yKHRoaXNPYmplY3QpOwogICAgIGV4ZWMtPml0ZXJhdGUoZnVuY3Rvcik7CiAg
ICAgcmV0dXJuIGZ1bmN0b3IucmVzdWx0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5jcHAKaW5kZXggYzBjMDllYTFh
MmNiNjAzNWE2OTU5YmQyYmViMDU5YjNhZmM4MzQzNi4uZTk5YmJiYTg5ZDlkZDY5NDM5NzdjMTIy
ODUyMTA0N2RkNWQ3NDJlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmNwcApAQCAtNzYsNyArNzYsNyBAQCBib29sIEpT
TGV4aWNhbEVudmlyb25tZW50OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBleGVjLAogICAgIC8vIFdlIGRvbid0IGNhbGwgdGhyb3VnaCB0byBKU09iamVj
dCBiZWNhdXNlIHRoZXJlJ3Mgbm8gd2F5IHRvIGdpdmUgYSAKICAgICAvLyBsZXhpY2FsIGVudmly
b25tZW50IG9iamVjdCBnZXR0ZXIgcHJvcGVydGllcyBvciBhIHByb3RvdHlwZS4KICAgICBBU1NF
UlQoIXRoaXNPYmplY3QtPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKSk7Ci0gICAgQVNTRVJU
KHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpLmlzTnVsbCgpKTsKKyAgICBBU1NFUlQo
dGhpc09iamVjdC0+cHJvdG90eXBlKCkuaXNOdWxsKCkpOwogICAgIHJldHVybiBmYWxzZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDIxNjdi
NGJiZDMxZWFhYzlkNzI1NWNlZDA0ZjdmZGI1NTM5NGY5YjEuLjJmNTJhMWY5NWJhYTAxNjk2ZTQy
MjljYzllYmFkNDMyZjg3MWU3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAKQEAgLTI3Miw3ICsyNzIsNyBAQCBTdHJpbmcgSlNPYmplY3Q6OmNhbGN1bGF0
ZWRDbGFzc05hbWUoSlNPYmplY3QqIG9iamVjdCkKIHsKICAgICBTdHJpbmcgcHJvdG90eXBlRnVu
Y3Rpb25OYW1lOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG9iamVjdC0+Z2xvYmFsT2JqZWN0KCkt
Pmdsb2JhbEV4ZWMoKTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChvYmplY3QtPmdldFByb3RvdHlw
ZURpcmVjdCgpLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5KTsK
KyAgICBQcm9wZXJ0eVNsb3Qgc2xvdChvYmplY3QtPnN0cnVjdHVyZSgpLT5zdG9yZWRQcm90b3R5
cGUoKSwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSk7CiAgICAg
UHJvcGVydHlOYW1lIGNvbnN0cnVjdG9yKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jb25zdHJ1Y3Rv
cik7CiAgICAgaWYgKG9iamVjdC0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGNvbnN0cnVjdG9yLCBz
bG90KSkgewogICAgICAgICBpZiAoc2xvdC5pc1ZhbHVlKCkpIHsKQEAgLTQzMCwxNCArNDMwLDEx
IEBAIHZvaWQgSlNPYmplY3Q6OnB1dElubGluZVNsb3coRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICAgICAgaWYgKG9iai0+dHlwZSgpID09IFByb3h5T2JqZWN0VHlwZSAmJiBwcm9wZXJ0eU5hbWUg
IT0gdm0ucHJvcGVydHlOYW1lcy0+dW5kZXJzY29yZVByb3RvKSB7Ci0gICAgICAgICAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkbid0IHVuY29uZGl0aW9uYWxseSBwZXJmb3JtIFtbU2V0XV0gaGVyZS4K
LSAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZG8gbW9yZSBiZWNhdXNlIHRoaXMgaXMgb2JzZXJ2
YWJsZSBiZWhhdmlvci4KLSAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTUwMTIKICAgICAgICAgICAgIFByb3h5T2JqZWN0KiBwcm94eSA9IGpz
Q2FzdDxQcm94eU9iamVjdCo+KG9iaik7CiAgICAgICAgICAgICBwcm94eS0+UHJveHlPYmplY3Q6
OnB1dChwcm94eSwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBvYmotPmdl
dFByb3RvdHlwZURpcmVjdCgpOworICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IG9iai0+cHJv
dG90eXBlKCk7CiAgICAgICAgIGlmIChwcm90b3R5cGUuaXNOdWxsKCkpCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgb2JqID0gYXNPYmplY3QocHJvdG90eXBlKTsKQEAgLTEyMDQsNyArMTIw
MSw3IEBAIGJvb2wgSlNPYmplY3Q6OnNldFByb3RvdHlwZVdpdGhDeWNsZUNoZWNrKFZNJiB2bSwg
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHByb3RvCiB7CiAgICAgQVNTRVJUKG1ldGhvZFRhYmxl
KHZtKS0+dG9UaGlzKHRoaXMsIGV4ZWMsIE5vdFN0cmljdE1vZGUpID09IHRoaXMpOwogCi0gICAg
aWYgKHRoaXMtPmdldFByb3RvdHlwZURpcmVjdCgpID09IHByb3RvdHlwZSkKKyAgICBpZiAodGhp
cy0+cHJvdG90eXBlKCkgPT0gcHJvdG90eXBlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IGJvb2wgaXNFeHRlbnNpYmxlID0gdGhpcy0+aXNFeHRlbnNpYmxlKGV4ZWMpOwpAQCAtMTIxOCwx
NiArMTIxNSwxMyBAQCBib29sIEpTT2JqZWN0OjpzZXRQcm90b3R5cGVXaXRoQ3ljbGVDaGVjayhW
TSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBwcm90bwogICAgIH0KIAogICAgIEpTVmFs
dWUgbmV4dFByb3RvdHlwZSA9IHByb3RvdHlwZTsKLSAgICBNZXRob2RUYWJsZTo6R2V0UHJvdG90
eXBlRnVuY3Rpb25QdHIgZGVmYXVsdEdldFByb3RvdHlwZSA9IEpTT2JqZWN0OjpnZXRQcm90b3R5
cGU7CiAgICAgd2hpbGUgKG5leHRQcm90b3R5cGUgJiYgbmV4dFByb3RvdHlwZS5pc09iamVjdCgp
KSB7CiAgICAgICAgIGlmIChuZXh0UHJvdG90eXBlID09IHRoaXMpIHsKICAgICAgICAgICAgIGlm
IChzaG91bGRUaHJvd0lmQ2FudFNldCkKICAgICAgICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlv
bihleGVjLCBjcmVhdGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoImN5Y2xpYyBfX3Byb3RvX18g
dmFsdWUiKSkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAg
IGlmIChVTkxJS0VMWShhc09iamVjdChuZXh0UHJvdG90eXBlKS0+bWV0aG9kVGFibGUodm0pLT5n
ZXRQcm90b3R5cGUgIT0gZGVmYXVsdEdldFByb3RvdHlwZSkpCi0gICAgICAgICAgICBicmVhazsg
Ly8gV2UncmUgZG9uZS4gU2V0IHRoZSBwcm90b3R5cGUuCi0gICAgICAgIG5leHRQcm90b3R5cGUg
PSBhc09iamVjdChuZXh0UHJvdG90eXBlKS0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7CisgICAgICAg
IG5leHRQcm90b3R5cGUgPSBhc09iamVjdChuZXh0UHJvdG90eXBlKS0+cHJvdG90eXBlKCk7CiAg
ICAgfQogICAgIHNldFByb3RvdHlwZURpcmVjdCh2bSwgcHJvdG90eXBlKTsKICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTEyMzgsMTEgKzEyMzIsNiBAQCBib29sIEpTT2JqZWN0OjpzZXRQcm90b3R5cGUo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHByb3RvdHlwZQogICAg
IHJldHVybiBvYmplY3QtPnNldFByb3RvdHlwZVdpdGhDeWNsZUNoZWNrKGV4ZWMtPnZtKCksIGV4
ZWMsIHByb3RvdHlwZSwgc2hvdWxkVGhyb3dJZkNhbnRTZXQpOwogfQogCi1KU1ZhbHVlIEpTT2Jq
ZWN0OjpnZXRQcm90b3R5cGUoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKikKLXsKLSAgICBy
ZXR1cm4gb2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLX0KLQogYm9vbCBKU09iamVjdDo6
c2V0UHJvdG90eXBlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHByb3RvdHlwZSwg
Ym9vbCBzaG91bGRUaHJvd0lmQ2FudFNldCkKIHsKICAgICByZXR1cm4gbWV0aG9kVGFibGUodm0p
LT5zZXRQcm90b3R5cGUodGhpcywgZXhlYywgcHJvdG90eXBlLCBzaG91bGRUaHJvd0lmQ2FudFNl
dCk7CkBAIC0xNTgzLDE5ICsxNTcyLDEyIEBAIGJvb2wgSlNPYmplY3Q6OmRlZmF1bHRIYXNJbnN0
YW5jZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEpTVmFsdWUgcHJvdG8pCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAg
IEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgd2hpbGUgKHRydWUpIHsK
LSAgICAgICAgSlNWYWx1ZSBvYmplY3RWYWx1ZSA9IG9iamVjdC0+Z2V0UHJvdG90eXBlKHZtLCBl
eGVjKTsKLSAgICAgICAgaWYgKFVOTElLRUxZKHZtLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFvYmplY3RWYWx1ZS5pc09iamVjdCgpKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBvYmplY3QgPSBhc09iamVjdChvYmplY3RW
YWx1ZSk7CisgICAgd2hpbGUgKChvYmplY3QgPSBvYmplY3QtPnByb3RvdHlwZSgpLmdldE9iamVj
dCgpKSkgewogICAgICAgICBpZiAocHJvdG8gPT0gb2JqZWN0KQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxz
ZTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcml2YXRlRnVuY0lu
c3RhbmNlT2YoRXhlY1N0YXRlKiBleGVjKQpAQCAtMTYwOCwyOSArMTU5MCwyNCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VPZihFeGVjU3Rh
dGUqIGV4ZWMpCiAKIHZvaWQgSlNPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
RW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBv
YmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIGV4ZWMs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOwotICAgIGlmIChVTkxJS0VMWSh2bS5leGNlcHRpb24oKSkp
CisgICAgb2JqZWN0LT5tZXRob2RUYWJsZShleGVjLT52bSgpKS0+Z2V0T3duUHJvcGVydHlOYW1l
cyhvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEpTVmFsdWUgbmV4
dFByb3RvID0gb2JqZWN0LT5nZXRQcm90b3R5cGUodm0sIGV4ZWMpOwotICAgIGlmIChVTkxJS0VM
WSh2bS5leGNlcHRpb24oKSkpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAobmV4dFByb3RvLmlz
TnVsbCgpKQorICAgIGlmIChvYmplY3QtPnByb3RvdHlwZSgpLmlzTnVsbCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBKU09iamVjdCogcHJvdG90eXBlID0gYXNPYmplY3QobmV4dFByb3RvKTsK
KyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBhc09i
amVjdChvYmplY3QtPnByb3RvdHlwZSgpKTsKICAgICB3aGlsZSgxKSB7CiAgICAgICAgIGlmIChw
cm90b3R5cGUtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lcygpKSB7CiAgICAgICAgICAgICBwcm90b3R5cGUtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0UHJv
cGVydHlOYW1lcyhwcm90b3R5cGUsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgcHJvdG90eXBlLT5tZXRob2RUYWJsZSh2
bSktPmdldE93blByb3BlcnR5TmFtZXMocHJvdG90eXBlLCBleGVjLCBwcm9wZXJ0eU5hbWVzLCBt
b2RlKTsKLSAgICAgICAgaWYgKFVOTElLRUxZKHZtLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgbmV4dFByb3RvID0gcHJvdG90eXBlLT5nZXRQcm90b3R5cGUodm0s
IGV4ZWMpOwotICAgICAgICBpZiAoVU5MSUtFTFkodm0uZXhjZXB0aW9uKCkpKQorICAgICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBKU1ZhbHVlIG5leHRQcm90byA9IHByb3RvdHlwZS0+cHJvdG90eXBlKCk7CiAgICAg
ICAgIGlmIChuZXh0UHJvdG8uaXNOdWxsKCkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
cHJvdG90eXBlID0gYXNPYmplY3QobmV4dFByb3RvKTsKQEAgLTIwNTAsNyArMjAyNyw3IEBAIGJv
b2wgSlNPYmplY3Q6OmF0dGVtcHRUb0ludGVyY2VwdFB1dEJ5SW5kZXhPbkhvbGVGb3JQcm90b3R5
cGUoRXhlY1N0YXRlKiBleGVjLCBKCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQogICAgICAgICAKLSAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGVWYWx1ZSA9IGN1cnJlbnQtPmdl
dFByb3RvdHlwZURpcmVjdCgpOworICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZVZhbHVlID0gY3Vy
cmVudC0+cHJvdG90eXBlKCk7CiAgICAgICAgIGlmIChwcm90b3R5cGVWYWx1ZS5pc051bGwoKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCkBAIC0yMDYwLDcgKzIwMzcsNyBA
QCBib29sIEpTT2JqZWN0OjphdHRlbXB0VG9JbnRlcmNlcHRQdXRCeUluZGV4T25Ib2xlRm9yUHJv
dG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSgogCiBib29sIEpTT2JqZWN0OjphdHRlbXB0VG9JbnRl
cmNlcHRQdXRCeUluZGV4T25Ib2xlKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1
ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKIHsKLSAgICBKU1ZhbHVlIHByb3RvdHlwZVZhbHVl
ID0gZ2V0UHJvdG90eXBlRGlyZWN0KCk7CisgICAgSlNWYWx1ZSBwcm90b3R5cGVWYWx1ZSA9IHBy
b3RvdHlwZSgpOwogICAgIGlmIChwcm90b3R5cGVWYWx1ZS5pc051bGwoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIApAQCAtMzA1MiwxNiArMzAyOSwxMyBAQCB2b2lkIEpTT2JqZWN0Ojpn
ZXRHZW5lcmljUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcgogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgb2JqZWN0LT5tZXRob2RU
YWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWVz
LCBFbnVtZXJhdGlvbk1vZGUobW9kZSwgSlNPYmplY3RQcm9wZXJ0aWVzTW9kZTo6RXhjbHVkZSkp
OwotICAgIGlmIChVTkxJS0VMWSh2bS5leGNlcHRpb24oKSkpCisgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSlNWYWx1ZSBuZXh0
UHJvdG8gPSBvYmplY3QtPmdldFByb3RvdHlwZSh2bSwgZXhlYyk7Ci0gICAgaWYgKFVOTElLRUxZ
KHZtLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChuZXh0UHJvdG8uaXNO
dWxsKCkpCisgICAgaWYgKG9iamVjdC0+cHJvdG90eXBlKCkuaXNOdWxsKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBhc09iamVjdChuZXh0UHJvdG8pOwor
ICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBhc09iamVjdChvYmplY3QtPnByb3RvdHlwZSgpKTsK
ICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBpZiAocHJvdG90eXBlLT5zdHJ1Y3R1cmUodm0p
LT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMoKSkgewogICAgICAgICAgICAg
cHJvdG90eXBlLT5tZXRob2RUYWJsZSh2bSktPmdldFByb3BlcnR5TmFtZXMocHJvdG90eXBlLCBl
eGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKQEAgLTMwNzAsOSArMzA0NCw3IEBAIHZvaWQgSlNP
YmplY3Q6OmdldEdlbmVyaWNQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVyCiAgICAgICAgIHByb3RvdHlwZS0+bWV0aG9kVGFibGUodm0pLT5nZXRP
d25Qcm9wZXJ0eU5hbWVzKHByb3RvdHlwZSwgZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiAg
ICAgICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIG5leHRQcm90byA9IHByb3RvdHlwZS0+Z2V0UHJvdG90eXBlKHZtLCBl
eGVjKTsKLSAgICAgICAgaWYgKFVOTElLRUxZKHZtLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgSlNWYWx1ZSBuZXh0UHJvdG8gPSBwcm90b3R5cGUtPnByb3RvdHlw
ZSgpOwogICAgICAgICBpZiAobmV4dFByb3RvLmlzTnVsbCgpKQogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIHByb3RvdHlwZSA9IGFzT2JqZWN0KG5leHRQcm90byk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCA3OTZjODQxY2MwNDMzNDQzOTFiMjM0YjBj
ZmU4OTlkMmNkYjUyYTZjLi45ZGEwNWRhN2ZiNzI5NjIzNWE4NWNkNWY4YmQ0ZDk5YmNlYjQ0ZmZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEwMywxOSAr
MTAzLDcgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBTdHJpbmcgY2xh
c3NOYW1lKGNvbnN0IEpTT2JqZWN0Kik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0
cmluZyBjYWxjdWxhdGVkQ2xhc3NOYW1lKEpTT2JqZWN0Kik7CiAKLSAgICAvLyBUaGlzIGlzIHRo
ZSBmdWxseSB2aXJ0dWFsIFtbR2V0UHJvdG90eXBlT2ZdXSBpbnRlcm5hbCBmdW5jdGlvbiBkZWZp
bmVkCi0gICAgLy8gaW4gdGhlIEVDTUFTY3JpcHQgNiBzcGVjaWZpY2F0aW9uLiBVc2UgdGhpcyB3
aGVuIGRvaW5nIGEgW1tHZXRQcm90b3R5cGVPZl1dIAotICAgIC8vIG9wZXJhdGlvbiBhcyBkaWN0
YXRlZCBpbiB0aGUgc3BlY2lmaWNhdGlvbi4KLSAgICBKU1ZhbHVlIGdldFByb3RvdHlwZShWTSYs
IEV4ZWNTdGF0ZSopOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBKU1ZhbHVlIGdldFBy
b3RvdHlwZShKU09iamVjdCosIEV4ZWNTdGF0ZSopOwotICAgIC8vIFRoaXMgZ2V0cyB0aGUgcHJv
dG90eXBlIGRpcmVjdGx5IG9mZiBvZiB0aGUgc3RydWN0dXJlLiBUaGlzIGRvZXMgbm90IGRvCi0g
ICAgLy8gZHluYW1pYyBkaXNwYXRjaCBvbiB0aGUgZ2V0UHJvdG90eXBlIG1ldGhvZCB0YWJsZSBt
ZXRob2QuIEl0IGlzIG5vdCB2YWxpZCAKLSAgICAvLyB0byB1c2UgdGhpcyB3aGVuIHBlcmZvcm1p
bmcgYSBbW0dldFByb3RvdHlwZU9mXV0gb3BlcmF0aW9uIGluIHRoZSBzcGVjaWZpY2F0aW9uLgot
ICAgIC8vIEl0IGlzIHZhbGlkIHRvIHVzZSB0aG91Z2ggd2hlbiB5b3Uga25vdyB0aGF0IHlvdSB3
YW50IHRvIGRpcmVjdGx5IGdldCBpdAotICAgIC8vIHdpdGhvdXQgY29uc3VsdGluZyB0aGUgbWV0
aG9kIHRhYmxlLiBUaGlzIGlzIGFraW4gdG8gZ2V0dGluZyB0aGUgW1tQcm90b3R5cGVdXQotICAg
IC8vIGludGVybmFsIGZpZWxkIGRpcmVjdGx5IGFzIGRlc2NyaWJlZCBpbiB0aGUgc3BlY2lmaWNh
dGlvbi4KLSAgICBKU1ZhbHVlIGdldFByb3RvdHlwZURpcmVjdCgpIGNvbnN0OwotCisgICAgSlNW
YWx1ZSBwcm90b3R5cGUoKSBjb25zdDsKICAgICAvLyBUaGlzIHNldHMgdGhlIHByb3RvdHlwZSB3
aXRob3V0IGNoZWNraW5nIGZvciBjeWNsZXMgYW5kIHdpdGhvdXQKICAgICAvLyBkb2luZyBkeW5h
bWljIGRpc3BhdGNoIG9uIFtbU2V0UHJvdG90eXBlT2ZdXSBvcGVyYXRpb24gaW4gdGhlIHNwZWNp
ZmljYXRpb24uCiAgICAgLy8gSXQgaXMgbm90IHZhbGlkIHRvIHVzZSB0aGlzIHdoZW4gcGVyZm9y
bWluZyBhIFtbU2V0UHJvdG90eXBlT2ZdXSBvcGVyYXRpb24gaW4KQEAgLTc3MSw3ICs3NTksNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgewogICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAg
ICAgICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICAgICAgQVNTRVJUKGdldFByb3Rv
dHlwZURpcmVjdCgpLmlzTnVsbCgpIHx8IEhlYXA6OmhlYXAodGhpcykgPT0gSGVhcDo6aGVhcChn
ZXRQcm90b3R5cGVEaXJlY3QoKSkpOworICAgICAgICBBU1NFUlQocHJvdG90eXBlKCkuaXNOdWxs
KCkgfHwgSGVhcDo6aGVhcCh0aGlzKSA9PSBIZWFwOjpoZWFwKHByb3RvdHlwZSgpKSk7CiAgICAg
ICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+aXNPYmplY3QoKSk7CiAgICAgICAgIEFTU0VSVChjbGFz
c0luZm8oKSk7CiAgICAgfQpAQCAtMTEzNiwyMCArMTEyNCwxMSBAQCBpbmxpbmUgSlNPYmplY3Q6
OkpTT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ1dHRlcmZseSogYnV0dGVy
Zmx5KQogICAgIHZtLmhlYXAuYXNjcmliZU93bmVyKHRoaXMsIGJ1dHRlcmZseSk7CiB9CiAKLWlu
bGluZSBKU1ZhbHVlIEpTT2JqZWN0OjpnZXRQcm90b3R5cGVEaXJlY3QoKSBjb25zdAoraW5saW5l
IEpTVmFsdWUgSlNPYmplY3Q6OnByb3RvdHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0cnVj
dHVyZSgpLT5zdG9yZWRQcm90b3R5cGUoKTsKIH0KIAotaW5saW5lIEpTVmFsdWUgSlNPYmplY3Q6
OmdldFByb3RvdHlwZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBhdXRvIGdldFBy
b3RvdHlwZU1ldGhvZCA9IG1ldGhvZFRhYmxlKHZtKS0+Z2V0UHJvdG90eXBlOwotICAgIE1ldGhv
ZFRhYmxlOjpHZXRQcm90b3R5cGVGdW5jdGlvblB0ciBkZWZhdWx0R2V0UHJvdG90eXBlID0gSlNP
YmplY3Q6OmdldFByb3RvdHlwZTsKLSAgICBpZiAoTElLRUxZKGdldFByb3RvdHlwZU1ldGhvZCA9
PSBkZWZhdWx0R2V0UHJvdG90eXBlKSkKLSAgICAgICAgcmV0dXJuIGdldFByb3RvdHlwZURpcmVj
dCgpOwotICAgIHJldHVybiBnZXRQcm90b3R5cGVNZXRob2QodGhpcywgZXhlYyk7Ci19Ci0KIC8v
IEl0IGlzIHNhZmUgdG8gY2FsbCB0aGlzIG1ldGhvZCB3aXRoIGEgUHJvcGVydHlOYW1lIHRoYXQg
aXMgYWN0dWFsbHkgYW4gaW5kZXgsCiAvLyBidXQgaWYgc28gd2lsbCBhbHdheXMgcmV0dXJuIGZh
bHNlIChkb2Vzbid0IHNlYXJjaCBpbmRleCBzdG9yYWdlKS4KIEFMV0FZU19JTkxJTkUgYm9vbCBK
U09iamVjdDo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eVNsb3QoVk0mIHZtLCBTdHJ1Y3R1cmUmIHN0
cnVjdHVyZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpA
QCAtMTIyNSw3ICsxMjA0LDYgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRQcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGUKICAgICAgICAgICAg
IC8vIHBhcnNpbmcgdGhlIGludCBhZ2Fpbi4KICAgICAgICAgICAgIHJldHVybiBvYmplY3QtPmdl
dE5vbkluZGV4UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAg
IH0KLSAgICAgICAgQVNTRVJUKG9iamVjdC0+dHlwZSgpICE9IFByb3h5T2JqZWN0VHlwZSk7CiAg
ICAgICAgIFN0cnVjdHVyZSYgc3RydWN0dXJlID0gKnN0cnVjdHVyZUlEVGFibGUuZ2V0KG9iamVj
dC0+c3RydWN0dXJlSUQoKSk7CiAgICAgICAgIGlmIChvYmplY3QtPmdldE93bk5vbkluZGV4UHJv
cGVydHlTbG90KHZtLCBzdHJ1Y3R1cmUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTEyNDUsMjEgKzEyMjMsMTEgQEAgQUxXQVlTX0lOTElORSBib29s
IEpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9w
ZXJ0eU4KICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8mIHN0cnVjdHVyZUlEVGFi
bGUgPSB2bS5oZWFwLnN0cnVjdHVyZUlEVGFibGUoKTsKICAgICBKU09iamVjdCogb2JqZWN0ID0g
dGhpczsKLSAgICBNZXRob2RUYWJsZTo6R2V0UHJvdG90eXBlRnVuY3Rpb25QdHIgZGVmYXVsdEdl
dFByb3RvdHlwZSA9IEpTT2JqZWN0OjpnZXRQcm90b3R5cGU7CiAgICAgd2hpbGUgKHRydWUpIHsK
ICAgICAgICAgU3RydWN0dXJlJiBzdHJ1Y3R1cmUgPSAqc3RydWN0dXJlSURUYWJsZS5nZXQob2Jq
ZWN0LT5zdHJ1Y3R1cmVJRCgpKTsKICAgICAgICAgaWYgKHN0cnVjdHVyZS5jbGFzc0luZm8oKS0+
bWV0aG9kVGFibGUuZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKFVO
TElLRUxZKHZtLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgSlNWYWx1ZSBwcm90b3R5cGU7Ci0gICAgICAgIGlmIChMSUtFTFkoc3RydWN0dXJlLmNsYXNz
SW5mbygpLT5tZXRob2RUYWJsZS5nZXRQcm90b3R5cGUgPT0gZGVmYXVsdEdldFByb3RvdHlwZSB8
fCBzbG90LmludGVybmFsTWV0aG9kVHlwZSgpID09IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRo
b2RUeXBlOjpWTUlucXVpcnkpKQotICAgICAgICAgICAgcHJvdG90eXBlID0gc3RydWN0dXJlLnN0
b3JlZFByb3RvdHlwZSgpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHByb3RvdHlwZSA9
IG9iamVjdC0+Z2V0UHJvdG90eXBlKHZtLCBleGVjKTsKLSAgICAgICAgICAgIGlmICh2bS5leGNl
cHRpb24oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KKyAgICAg
ICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBzdHJ1Y3R1cmUuc3RvcmVkUHJvdG90eXBlKCk7CiAgICAg
ICAgIGlmICghcHJvdG90eXBlLmlzT2JqZWN0KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIG9iamVjdCA9IGFzT2JqZWN0KHByb3RvdHlwZSk7CkBAIC0xMjc0LDI2ICsxMjQy
LDE0IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6Z2V0Tm9uSW5kZXhQcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ICAgICBhdXRvJiBzdHJ1Y3R1cmVJRFRhYmxlID0gdm0uaGVhcC5zdHJ1Y3R1cmVJRFRhYmxlKCk7
CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IHRoaXM7Ci0gICAgTWV0aG9kVGFibGU6OkdldFByb3Rv
dHlwZUZ1bmN0aW9uUHRyIGRlZmF1bHRHZXRQcm90b3R5cGUgPSBKU09iamVjdDo6Z2V0UHJvdG90
eXBlOwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIFN0cnVjdHVyZSYgc3RydWN0dXJlID0g
KnN0cnVjdHVyZUlEVGFibGUuZ2V0KG9iamVjdC0+c3RydWN0dXJlSUQoKSk7CiAgICAgICAgIGlm
IChMSUtFTFkoIVR5cGVJbmZvOjpvdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LT5p
bmxpbmVUeXBlRmxhZ3MoKSkpKSB7CiAgICAgICAgICAgICBpZiAob2JqZWN0LT5nZXRPd25Ob25J
bmRleFByb3BlcnR5U2xvdCh2bSwgc3RydWN0dXJlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
aWYgKHN0cnVjdHVyZS5jbGFzc0luZm8oKS0+bWV0aG9kVGFibGUuZ2V0T3duUHJvcGVydHlTbG90
KG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWSh2bS5leGNlcHRpb24oKSkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIEpTVmFsdWUgcHJv
dG90eXBlOwotICAgICAgICBpZiAoTElLRUxZKHN0cnVjdHVyZS5jbGFzc0luZm8oKS0+bWV0aG9k
VGFibGUuZ2V0UHJvdG90eXBlID09IGRlZmF1bHRHZXRQcm90b3R5cGUgfHwgc2xvdC5pbnRlcm5h
bE1ldGhvZFR5cGUoKSA9PSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1
aXJ5KSkKLSAgICAgICAgICAgIHByb3RvdHlwZSA9IHN0cnVjdHVyZS5zdG9yZWRQcm90b3R5cGUo
KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBwcm90b3R5cGUgPSBvYmplY3QtPmdldFBy
b3RvdHlwZSh2bSwgZXhlYyk7Ci0gICAgICAgICAgICBpZiAodm0uZXhjZXB0aW9uKCkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAo
c3RydWN0dXJlLmNsYXNzSW5mbygpLT5tZXRob2RUYWJsZS5nZXRPd25Qcm9wZXJ0eVNsb3Qob2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0gc3RydWN0dXJlLnN0b3JlZFByb3RvdHlwZSgp
OwogICAgICAgICBpZiAoIXByb3RvdHlwZS5pc09iamVjdCgpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICBvYmplY3QgPSBhc09iamVjdChwcm90b3R5cGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAppbmRleCBmM2QyYjgy
OGMzZjA5Mzg1MjMyNGQ1ZjY5MWUwYzg1OGEyNDYzZTEzLi5kYjE3MGYyOThjYjI1NTljN2UzN2Ex
MmVlMTEwMmMwMDkwYzUwOGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdElubGluZXMuaApAQCAtNDIsNyArNDIsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wg
SlNPYmplY3Q6OmNhblBlcmZvcm1GYXN0UHV0SW5saW5lKEV4ZWNTdGF0ZSogZXhlYywgVk0mIHZt
LCBQcgogICAgICAgICBpZiAob2JqLT5zdHJ1Y3R1cmUodm0pLT5oYXNSZWFkT25seU9yR2V0dGVy
U2V0dGVyUHJvcGVydGllc0V4Y2x1ZGluZ1Byb3RvKCkgfHwgb2JqLT50eXBlKCkgPT0gUHJveHlP
YmplY3RUeXBlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIHByb3RvdHlw
ZSA9IG9iai0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7CisgICAgICAgIHByb3RvdHlwZSA9IG9iai0+
cHJvdG90eXBlKCk7CiAgICAgICAgIGlmIChwcm90b3R5cGUuaXNOdWxsKCkpCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNQcm94eS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3h5LmNw
cAppbmRleCA0MGQzMWZkNmUyZWMxZGVkZGZhMTgyNDA2NzVhYWU4ZjNlODNkZTM3Li45MzdjMDg4
NzQ1ZjhiYjdjZmZiZGY3YWUxOTNjNTJiZTVjZjdiN2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1Byb3h5LmNwcApAQCAtNDcsNyArNDcsNyBAQCB2b2lkIEpTUHJveHk6OnNl
dFRhcmdldChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQVNT
RVJUX0FSRyhnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCk7CiAgICAgbV90YXJnZXQuc2V0KHZt
LCB0aGlzLCBnbG9iYWxPYmplY3QpOwotICAgIHNldFByb3RvdHlwZURpcmVjdCh2bSwgZ2xvYmFs
T2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKSk7CisgICAgc2V0UHJvdG90eXBlRGlyZWN0KHZt
LCBnbG9iYWxPYmplY3QtPnByb3RvdHlwZSgpKTsKIAogICAgIFByb3RvdHlwZU1hcCYgcHJvdG90
eXBlTWFwID0gdm0ucHJvdG90eXBlTWFwOwogICAgIGlmICghcHJvdG90eXBlTWFwLmlzUHJvdG90
eXBlKHRoaXMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOTZlM2ZlMTdiMWM4Mzc2
MWNhM2U2YjQ0YWNmMzBmODc4YjIyZWU1Ni4uODQzZTQzN2EyZjRkN2NlMzMwNzc2MjlmYzUxODFi
MTI5MTMzODYwNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3BwCkBAIC03Nyw3ICs3Nyw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFR5cGVkQXJyYXlW
aWV3KEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAob2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRD
b25zdHJ1Y3REYXRhKG9iamVjdCwgZGF0YSkgPT0gQ29uc3RydWN0VHlwZTo6Tm9uZSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihleGVjLCAibmV3LnRhcmdl
dCBwYXNzZWQgdG8gVHlwZWRBcnJheSBpcyBub3QgYSB2YWxpZCBjb25zdHJ1Y3Rvci4iKSk7CiAK
LSAgICBmb3IgKDsgIXZhbHVlLmlzTnVsbCgpOyB2YWx1ZSA9IGpzQ2FzdDxKU09iamVjdCo+KHZh
bHVlKS0+Z2V0UHJvdG90eXBlRGlyZWN0KCkpIHsKKyAgICBmb3IgKDsgIXZhbHVlLmlzTnVsbCgp
OyB2YWx1ZSA9IGpzQ2FzdDxKU09iamVjdCo+KHZhbHVlKS0+cHJvdG90eXBlKCkpIHsKICAgICAg
ICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKj4odmFsdWUp
KQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihleGVj
LCAiVW5hYmxlIHRvIGZpbmQgVHlwZWRBcnJheSBjb25zdHJ1Y3RvciB0aGF0IGluaGVyaXRzIGZy
b20gVHlwZWRBcnJheS4iKSk7CiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I8SlNJbnQ4QXJyYXk+Kj4odmFsdWUpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4
IGRhZjFkNmU5YWEwMDk3M2YxZDIzODQ0MGEzYmJhOGNkYmE0ZjNiYzguLmJjMGEyNTIzYTAwMzk4
ZDE3NmYwMzQ1MmI4MTE0NGQxYjZhODI2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTE1MCw5ICsxNTAsOCBAQCBD
YWxsVHlwZSBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEm
IGNhbGxEYXRhKQogCiBjbGFzcyBPYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mRnVuY3Rv
ciB7CiBwdWJsaWM6Ci0gICAgT2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZkZ1bmN0b3Io
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0KQotICAgICAgICA6IG1fZXhlYyhleGVj
KQotICAgICAgICAsIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUoZmFsc2UpCisgICAgT2JqZWN0Q29u
c3RydWN0b3JHZXRQcm90b3R5cGVPZkZ1bmN0b3IoSlNPYmplY3QqIG9iamVjdCkKKyAgICAgICAg
OiBtX2hhc1NraXBwZWRGaXJzdEZyYW1lKGZhbHNlKQogICAgICAgICAsIG1fb2JqZWN0KG9iamVj
dCkKICAgICAgICAgLCBtX3Jlc3VsdChqc1VuZGVmaW5lZCgpKQogICAgIHsKQEAgLTE2OCwxMiAr
MTY3LDExIEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX29iamVjdC0+YWxs
b3dzQWNjZXNzRnJvbSh2aXNpdG9yLT5jYWxsRnJhbWUoKSkpCi0gICAgICAgICAgICBtX3Jlc3Vs
dCA9IG1fb2JqZWN0LT5nZXRQcm90b3R5cGUobV9leGVjLT52bSgpLCBtX2V4ZWMpOworICAgICAg
ICAgICAgbV9yZXN1bHQgPSBtX29iamVjdC0+cHJvdG90eXBlKCk7CiAgICAgICAgIHJldHVybiBT
dGFja1Zpc2l0b3I6OkRvbmU7CiAgICAgfQogCiBwcml2YXRlOgotICAgIEV4ZWNTdGF0ZSogbV9l
eGVjOwogICAgIGJvb2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZTsKICAgICBKU09iamVjdCogbV9v
YmplY3Q7CiAgICAgSlNWYWx1ZSBtX3Jlc3VsdDsKQEAgLTE4MSwxMCArMTc5LDcgQEAgcHJpdmF0
ZToKIAogSlNWYWx1ZSBvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIG9iamVjdCkKIHsKLSAgICBPYmplY3RDb25zdHJ1Y3RvckdldFByb3Rv
dHlwZU9mRnVuY3RvciBmdW5jdG9yKGV4ZWMsIG9iamVjdCk7Ci0gICAgLy8gVGhpcyBjYW4gdGhy
b3cgYnV0IGl0J3MganVzdCB1bm5lZWRlZCBleHRyYSB3b3JrIHRvIGNoZWNrIGZvciBpdC4gVGhl
IHJldHVybgotICAgIC8vIHZhbHVlIGZyb20gdGhpcyBmdW5jdGlvbiBpcyBvbmx5IHVzZWQgYXMg
dGhlIHJldHVybiB2YWx1ZSBmcm9tIGEgaG9zdCBjYWxsLgotICAgIC8vIFRoZXJlZm9yZSwgdGhl
IHJldHVybiB2YWx1ZSBpcyBvbmx5IHVzZWQgaWYgdGhlcmUgd2Fzbid0IGFuIGV4Y2VwdGlvbi4K
KyAgICBPYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mRnVuY3RvciBmdW5jdG9yKG9iamVj
dCk7CiAgICAgZXhlYy0+aXRlcmF0ZShmdW5jdG9yKTsKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1
bHQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90
b3R5cGUuY3BwCmluZGV4IDhhNjc1YjBjY2M3ZTU0NTkwMGE3ZDlhNGQ1ZWY2MzdhNjYwMzQ0ODYu
LjMyNmM3NWViYTUwOThkMWU2YjhlYTM2ZjkxOGMwZTUyYzQyYzQ2ZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtMTAxLDE5
ICsxMDEsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNJ
c1Byb3RvdHlwZU9mKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDAp
LmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZh
bHNlKSk7CiAKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIEpTVmFsdWUgdiA9IGFzT2Jq
ZWN0KGV4ZWMtPmFyZ3VtZW50KDApKS0+Z2V0UHJvdG90eXBlKHZtLCBleGVjKTsKLSAgICBpZiAo
VU5MSUtFTFkodm0uZXhjZXB0aW9uKCkpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVmFsdWUoKSk7CisgICAgSlNWYWx1ZSB2ID0gYXNPYmplY3QoZXhlYy0+YXJndW1lbnQoMCkp
LT5wcm90b3R5cGUoKTsKIAogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIGlmICghdi5pc09i
amVjdCgpKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFs
c2UpKTsKICAgICAgICAgaWYgKHYgPT0gdGhpc09iaikKICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNCb29sZWFuKHRydWUpKTsKLSAgICAgICAgdiA9IGFzT2JqZWN0KHYpLT5n
ZXRQcm90b3R5cGUodm0sIGV4ZWMpOwotICAgICAgICBpZiAoVU5MSUtFTFkodm0uZXhjZXB0aW9u
KCkpKQotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAg
ICAgICB2ID0gYXNPYmplY3QodiktPnByb3RvdHlwZSgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCmluZGV4IDlmYjZhMTE4MGU2
MmZiNDI5N2NiNWY4MjcyYzUwZDE0ZTNmMDVkYmYuLjAxNmEyNjg2ZWFiZGMyNWI4Zjc1MjljNmRk
YzY2MjZkOTQ0N2YyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3h5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94
eU9iamVjdC5jcHAKQEAgLTkwLDEwICs5MCwxMSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcGVy
Zm9ybVByb3h5R2V0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLAog
ICAgIC8vIEZJWE1FOiBtYWtlIGl0IHNvIHRoYXQgY3VzdG9tIGdldHRlcnMgdGFrZSBib3RoIHRo
ZSB8dGhpc3wgdmFsdWUgYW5kIHRoZSBzbG90QmFzZSAocHJvcGVydHkgaG9sZGVyKS4KICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MzIwCiAgICAgd2hp
bGUgKHRydWUpIHsKLSAgICAgICAgaWYgKExJS0VMWShwcm94eU9iamVjdEFzT2JqZWN0LT50eXBl
KCkgPT0gUHJveHlPYmplY3RUeXBlKSkKKyAgICAgICAgaWYgKExJS0VMWShwcm94eU9iamVjdEFz
T2JqZWN0LT5pbmhlcml0cyhQcm94eU9iamVjdDo6aW5mbygpKSkpCiAgICAgICAgICAgICBicmVh
azsKIAotICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHByb3h5T2JqZWN0QXNPYmplY3QtPmdl
dFByb3RvdHlwZURpcmVjdCgpOworICAgICAgICBTdHJ1Y3R1cmUmIHN0cnVjdHVyZSA9ICp2bS5o
ZWFwLnN0cnVjdHVyZUlEVGFibGUoKS5nZXQocHJveHlPYmplY3RBc09iamVjdC0+c3RydWN0dXJl
SUQoKSk7CisgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0gc3RydWN0dXJlLnN0b3JlZFByb3Rv
dHlwZSgpOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChwcm90b3R5cGUuaXNPYmplY3QoKSk7CiAg
ICAgICAgIHByb3h5T2JqZWN0QXNPYmplY3QgPSBhc09iamVjdChwcm90b3R5cGUpOwogICAgIH0K
QEAgLTEwMDUsOSArMTAwNiw3IEBAIGJvb2wgUHJveHlPYmplY3Q6OnBlcmZvcm1TZXRQcm90b3R5
cGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHByb3RvdHlwZSwgYm9vbCBzCiAgICAgaWYgKHRh
cmdldElzRXh0ZW5zaWJsZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBKU1ZhbHVlIHRh
cmdldFByb3RvdHlwZSA9IHRhcmdldC0+Z2V0UHJvdG90eXBlKHZtLCBleGVjKTsKLSAgICBpZiAo
dm0uZXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBKU1ZhbHVlIHRhcmdl
dFByb3RvdHlwZSA9IHRhcmdldC0+cHJvdG90eXBlKCk7CiAgICAgaWYgKCFzYW1lVmFsdWUoZXhl
YywgcHJvdG90eXBlLCB0YXJnZXRQcm90b3R5cGUpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgQVNDSUlMaXRlcmFsKCJQcm94eSAnc2V0UHJvdG90eXBlT2YnIHRyYXAgcmV0dXJu
ZWQgdHJ1ZSB3aGVuIGl0cyB0YXJnZXQgaXMgbm9uLWV4dGVuc2libGUgYW5kIHRoZSBuZXcgcHJv
dG90eXBlIHZhbHVlIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgY3VycmVudCBwcm90b3R5cGUgdmFs
dWUuIEl0IHNob3VsZCBoYXZlIHJldHVybmVkIGZhbHNlLiIpKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5l
cy5oCmluZGV4IGRlNzViNGY0NTBhZWIxMzhmY2E5Nzc1MTU5ZjBjMGE4ZTc4ODFhZGIuLjIxYmNh
YTUxNzhiYjNmMTM0ODQxYjU4M2UyZjhiNDQwYjdiZGZhMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgKQEAgLTIxMCw3ICsyMTAsNyBA
QCBpbmxpbmUgYm9vbCBTdHJ1Y3R1cmU6OmlzVmFsaWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlQ2hhaW4qIGNhYwogICAgICAgICBpZiAoYXNPYmplY3QocHJvdG90eXBl
KS0+c3RydWN0dXJlKCkgIT0gY2FjaGVkU3RydWN0dXJlLT5nZXQoKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgKytjYWNoZWRTdHJ1Y3R1cmU7Ci0gICAgICAgIHByb3RvdHlw
ZSA9IGFzT2JqZWN0KHByb3RvdHlwZSktPmdldFByb3RvdHlwZURpcmVjdCgpOworICAgICAgICBw
cm90b3R5cGUgPSBhc09iamVjdChwcm90b3R5cGUpLT5wcm90b3R5cGUoKTsKICAgICB9CiAgICAg
cmV0dXJuIHByb3RvdHlwZS5pc051bGwoKSAmJiAhKmNhY2hlZFN0cnVjdHVyZTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHktaGFzLXByb3Bl
cnR5LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1oYXMtcHJv
cGVydHkuanMKaW5kZXggNGY1MWRmODA5MGZkYWU5ZGJkYTQzMzUzMzdmZTU3ODYzYjI3ZWViNy4u
ZDc3NDk0OTM2MzVmOTU4ODIyZDJlMzdhOWYyMWY5OWM3NjIxNzE5NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1oYXMtcHJvcGVydHkuanMKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1oYXMtcHJvcGVydHku
anMKQEAgLTM2Nyw3OSArMzY3LDMgQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKICAgICAgICAgYXNz
ZXJ0KHRocmV3KTsKICAgICB9CiB9Ci0KLXsKLSAgICBsZXQgZTEgPSBudWxsOwotICAgIGxldCBl
MiA9IG51bGw7Ci0gICAgbGV0IHQxID0ge307Ci0gICAgbGV0IGNhbGxlZDEgPSBmYWxzZTsKLSAg
ICBsZXQgaDEgPSB7Ci0gICAgICAgIGhhczogZnVuY3Rpb24odGhlVGFyZ2V0LCBwcm9wTmFtZSkg
ewotICAgICAgICAgICAgY2FsbGVkMSA9IHRydWU7Ci0gICAgICAgICAgICBlMSA9IG5ldyBFcnJv
cjsKLSAgICAgICAgICAgIHRocm93IGUxOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICB9Ci0gICAgfTsKLSAgICBsZXQgcDEgPSBuZXcgUHJveHkodDEsIGgxKTsKLQotICAgIGxl
dCB0MiA9IHt9OwotICAgIHQyLl9fcHJvdG9fXyA9IHAxOwotICAgIGxldCBoMiA9IHsKLSAgICAg
ICAgaGFzOiBmdW5jdGlvbih0aGVUYXJnZXQsIHByb3BOYW1lKSB7Ci0gICAgICAgICAgICBlMiA9
IG5ldyBFcnJvcjsKLSAgICAgICAgICAgIHRocm93IGUyOwotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICB9Ci0gICAgfTsKLSAgICBsZXQgcDIgPSBuZXcgUHJveHkodDIsIGgyKTsK
LSAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDsgaSsrKSB7Ci0gICAgICAgIGxldCB0aHJldyA9
IGZhbHNlOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgMTAgaW4gcDI7Ci0gICAgICAgIH0g
Y2F0Y2goZSkgewotICAgICAgICAgICAgYXNzZXJ0KGUgPT09IGUyKTsKLSAgICAgICAgICAgIHRo
cmV3ID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBhc3NlcnQodGhyZXcpOwotICAgICAgICBh
c3NlcnQoIWNhbGxlZDEpOwotICAgIH0KLX0KLQotewotICAgIGxldCBlMSA9IG51bGw7Ci0gICAg
bGV0IGUyID0gbnVsbDsKLSAgICBsZXQgdDEgPSB7fTsKLSAgICBsZXQgY2FsbGVkMSA9IGZhbHNl
OwotICAgIGxldCBoMSA9IHsKLSAgICAgICAgaGFzOiBmdW5jdGlvbih0aGVUYXJnZXQsIHByb3BO
YW1lKSB7Ci0gICAgICAgICAgICBjYWxsZWQxID0gdHJ1ZTsKLSAgICAgICAgICAgIGUxID0gbmV3
IEVycm9yOwotICAgICAgICAgICAgdGhyb3cgZTE7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIH0KLSAgICB9OwotICAgIGxldCBwMSA9IG5ldyBQcm94eSh0MSwgaDEpOwotCi0g
ICAgbGV0IHQyID0ge307Ci0gICAgdDIuX19wcm90b19fID0gcDE7Ci0gICAgbGV0IGgyID0gewot
ICAgICAgICBoYXM6IGZ1bmN0aW9uKHRoZVRhcmdldCwgcHJvcE5hbWUpIHsKLSAgICAgICAgICAg
IGUyID0gbmV3IEVycm9yOwotICAgICAgICAgICAgdGhyb3cgZTI7Ci0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9OwotICAgIGxldCBwMiA9IG5ldyBQcm94eSh0Miwg
aDIpOwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyBpKyspIHsKLSAgICAgICAgbGV0IHRo
cmV3ID0gZmFsc2U7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAiZm9vIiBpbiBwMjsKLSAg
ICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAgICBhc3NlcnQoZSA9PT0gZTIpOwotICAgICAg
ICAgICAgdGhyZXcgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGFzc2VydCh0aHJldyk7Ci0g
ICAgICAgIGFzc2VydCghY2FsbGVkMSk7Ci0gICAgfQotfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>