<?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>150526</bug_id>
          
          <creation_ts>2015-10-23 18:20:56 -0700</creation_ts>
          <short_desc>REGRESSION(r191500): Broke two JSC regression tests (Requested by msaboff on #webkit).</short_desc>
          <delta_ts>2015-10-23 18:27:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>148860</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ggaren</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1136222</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-23 18:20:56 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/191500 broke the build:
Broke two JSC regression tests (Requested by msaboff 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>1136223</commentid>
    <comment_count>1</comment_count>
      <attachid>263972</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-23 18:21:28 -0700</bug_when>
    <thetext>Created attachment 263972
ROLLOUT of r191500

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>1136225</commentid>
    <comment_count>2</comment_count>
      <attachid>263972</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-23 18:27:06 -0700</bug_when>
    <thetext>Comment on attachment 263972
ROLLOUT of r191500

Clearing flags on attachment: 263972

Committed r191529: &lt;http://trac.webkit.org/changeset/191529&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136226</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-23 18:27:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263972</attachid>
            <date>2015-10-23 18:21:28 -0700</date>
            <delta_ts>2015-10-23 18:27:06 -0700</delta_ts>
            <desc>ROLLOUT of r191500</desc>
            <filename>bug-150526-20151023182043.patch</filename>
            <type>text/plain</type>
            <size>64699</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZDE2YTY1OThjNTU2ZDkxYzI0NmI4M2RjOTIwOWQxYTI1ZDEwMWFjLi4wMzZiZTc5NzRkMDIwZWJh
Nzc3OTgxMjljOTZkNjQ1ODRkMjk2ODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNS0xMC0yMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5MTUwMC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDUyNgorCisgICAg
ICAgIEJyb2tlIHR3byBKU0MgcmVncmVzc2lvbiB0ZXN0cyAoUmVxdWVzdGVkIGJ5IG1zYWJvZmYg
b24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisg
ICAgICAgICJbRVM2XSBBZGQgREZHL0ZUTCBzdXBwb3J0IGZvciBhY2Nlc3NvciBwdXQgb3BlcmF0
aW9ucyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
ODg2MAorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xOTE1MDAKKwog
MjAxNS0xMC0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAg
ICAgICBbRVM2XSBBZGQgREZHL0ZUTCBzdXBwb3J0IGZvciBhY2Nlc3NvciBwdXQgb3BlcmF0aW9u
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCmluZGV4IDY4NjhhYTNjOWE4NDkzYzMxMzY5ZjdiNmNlYTM1ZWI0
YjRhNWI2NTUuLmYyOGNjN2FmZjA2Yjk5MzMzNTA0ZmZhNTY0YTRjM2M3ZDFlNTI2YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmgKQEAgLTIzNjMsMTUgKzIzNjMsNiBAQCBib29sIEFic3RyYWN0SW50ZXJw
cmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVy
TGltaQogICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBjbG9iYmVy
TGltaXQpOwogICAgICAgICBicmVhazsKICAgICB9Ci0KLSAgICBjYXNlIFB1dEdldHRlckJ5SWQ6
Ci0gICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgotICAgIGNhc2UgUHV0R2V0dGVyU2V0dGVyQnlJZDoK
LSAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgotICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6IHsKLSAg
ICAgICAgY2xvYmJlcldvcmxkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgY2xvYmJlckxpbWl0KTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQogICAgICAgICAKICAgICBjYXNlIEluOiB7CiAgICAgICAg
IC8vIEZJWE1FOiBXZSBjYW4gZGV0ZXJtaW5lIHdoZW4gdGhlIHByb3BlcnR5IGRlZmluaXRlbHkg
ZXhpc3RzIGJhc2VkIG9uIGFic3RyYWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGE3ZmNiMmE2ZTBkYzQ4NDkwMTFjNjhkNjVkOGNm
YTc4NmY5NzE1ZDIuLjY5ZjU0ZjFkMzUxMDUwNjcwYTUwN2IyNGYzZjc2OTQ1YWQ2YjZhMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBA
IC0zNzQ5LDM4ICszNzQ5LDYgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNp
Z25lZCBsaW1pdCkKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9ieV9pZCk7CiAgICAg
ICAgIH0KIAotICAgICAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfaWQ6Ci0gICAgICAgIGNhc2Ug
b3BfcHV0X3NldHRlcl9ieV9pZDogewotICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldChWaXJ0
dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOwotICAgICAgICAg
ICAgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciA9IG1faW5saW5lU3RhY2tUb3AtPm1faWRlbnRp
ZmllclJlbWFwW2N1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmRdOwotICAgICAgICAgICAg
dW5zaWduZWQgYXR0cmlidXRlcyA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0g
ICAgICAgICAgICBOb2RlKiBhY2Nlc3NvciA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzRdLnUub3BlcmFuZCkpOwotICAgICAgICAgICAgTm9kZVR5cGUgb3AgPSAob3Bj
b2RlSUQgPT0gb3BfcHV0X2dldHRlcl9ieV9pZCkgPyBQdXRHZXR0ZXJCeUlkIDogUHV0U2V0dGVy
QnlJZDsKLSAgICAgICAgICAgIGFkZFRvR3JhcGgob3AsIE9wSW5mbyhpZGVudGlmaWVyTnVtYmVy
KSwgT3BJbmZvKGF0dHJpYnV0ZXMpLCBiYXNlLCBhY2Nlc3Nvcik7Ci0gICAgICAgICAgICBORVhU
X09QQ09ERShvcF9wdXRfZ2V0dGVyX2J5X2lkKTsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2Ug
b3BfcHV0X2dldHRlcl9zZXR0ZXI6IHsKLSAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmly
dHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKLSAgICAgICAg
ICAgIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIgPSBtX2lubGluZVN0YWNrVG9wLT5tX2lkZW50
aWZpZXJSZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kXTsKLSAgICAgICAgICAg
IHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwot
ICAgICAgICAgICAgTm9kZSogZ2V0dGVyID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bNF0udS5vcGVyYW5kKSk7Ci0gICAgICAgICAgICBOb2RlKiBzZXR0ZXIgPSBnZXQo
VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls1XS51Lm9wZXJhbmQpKTsKLSAgICAg
ICAgICAgIGFkZFRvR3JhcGgoUHV0R2V0dGVyU2V0dGVyQnlJZCwgT3BJbmZvKGlkZW50aWZpZXJO
dW1iZXIpLCBPcEluZm8oYXR0cmlidXRlcyksIGJhc2UsIGdldHRlciwgc2V0dGVyKTsKLSAgICAg
ICAgICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9nZXR0ZXJfc2V0dGVyKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9ieV92YWw6Ci0gICAgICAgIGNhc2Ugb3BfcHV0X3Nl
dHRlcl9ieV92YWw6IHsKLSAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVhbFJlZ2lz
dGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKTsKLSAgICAgICAgICAgIE5vZGUq
IHN1YnNjcmlwdCA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUu
b3BlcmFuZCkpOwotICAgICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlcyA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBOb2RlKiBhY2Nlc3NvciA9IGdldChW
aXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkpOwotICAgICAg
ICAgICAgTm9kZVR5cGUgb3AgPSAob3Bjb2RlSUQgPT0gb3BfcHV0X2dldHRlcl9ieV92YWwpID8g
UHV0R2V0dGVyQnlWYWwgOiBQdXRTZXR0ZXJCeVZhbDsKLSAgICAgICAgICAgIGFkZFRvR3JhcGgo
b3AsIE9wSW5mbyhhdHRyaWJ1dGVzKSwgYmFzZSwgc3Vic2NyaXB0LCBhY2Nlc3Nvcik7Ci0gICAg
ICAgICAgICBORVhUX09QQ09ERShvcF9wdXRfZ2V0dGVyX2J5X3ZhbCk7Ci0gICAgICAgIH0KLQog
ICAgICAgICBjYXNlIG9wX3Byb2ZpbGVfdHlwZTogewogICAgICAgICAgICAgTm9kZSogdmFsdWVU
b1Byb2ZpbGUgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQpKTsKICAgICAgICAgICAgIGFkZFRvR3JhcGgoUHJvZmlsZVR5cGUsIE9wSW5mbyhjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5sb2NhdGlvbiksIHZhbHVlVG9Qcm9maWxlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA5Nzg4YTQ4NGEx
M2FiYTJmOTFlZTExMzA1MGU2ZTU5YWM2YWI4NDMxLi5kYWZlNWU4MjNjOGM5MGE4NDJmZjQ5YTJh
ZmM5Y2JiMDU5ZmU2M2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBh
YmlsaXRpZXMuY3BwCkBAIC0xNTQsMTEgKzE1NCw2IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmls
aXR5TGV2ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBJbnN0cnVj
CiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgog
ICAgIGNhc2Ugb3BfcHV0X2J5X2lkOgotICAgIGNhc2Ugb3BfcHV0X2dldHRlcl9ieV9pZDoKLSAg
ICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlfaWQ6Ci0gICAgY2FzZSBvcF9wdXRfZ2V0dGVyX3NldHRl
cjoKLSAgICBjYXNlIG9wX3B1dF9nZXR0ZXJfYnlfdmFsOgotICAgIGNhc2Ugb3BfcHV0X3NldHRl
cl9ieV92YWw6CiAgICAgY2FzZSBvcF9qbXA6CiAgICAgY2FzZSBvcF9qdHJ1ZToKICAgICBjYXNl
IG9wX2pmYWxzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5k
ZXggNmZmNDQ1NmZiOWNkNTVhYjM2NWNlODhlZmI2YTQyMWRmN2M1ZGEyZi4uNmM4NWQ1OWUzMTA1
MzljOWFhYmI0MmNmMWRhMWVjMWNlY2VmMmU5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKQEAgLTM3OSwxMSArMzc5LDYgQEAgdm9pZCBjbG9iYmVyaXplKEdy
YXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdy
aXRlRnUKICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgY2FzZSBQdXRCeUlkRmx1c2g6CiAgICAgY2Fz
ZSBQdXRCeUlkRGlyZWN0OgotICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKLSAgICBjYXNlIFB1dFNl
dHRlckJ5SWQ6Ci0gICAgY2FzZSBQdXRHZXR0ZXJTZXR0ZXJCeUlkOgotICAgIGNhc2UgUHV0R2V0
dGVyQnlWYWw6Ci0gICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKICAgICBjYXNlIEFycmF5UHVzaDoK
ICAgICBjYXNlIEFycmF5UG9wOgogICAgIGNhc2UgQ2FsbDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRG9lc0dDLmNwcAppbmRleCAwZTllMWQ4YmNiNDkyODFhMThlYmEwZjVhYTVjOGMyMmYw
NjA4NjVjLi41YzU3ZTAyMmEwZGJiZDMzZjFkZTY0ODViZDUwMTZhZDc5NDBmYzk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC05NSwxMSArOTUsNiBAQCBib29s
IGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQdXRCeUlkOgogICAg
IGNhc2UgUHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKLSAgICBjYXNlIFB1
dEdldHRlckJ5SWQ6Ci0gICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgotICAgIGNhc2UgUHV0R2V0dGVy
U2V0dGVyQnlJZDoKLSAgICBjYXNlIFB1dEdldHRlckJ5VmFsOgotICAgIGNhc2UgUHV0U2V0dGVy
QnlWYWw6CiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6
CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAppbmRleCA0OTFmYmMxY2M5MzAwYzg2MThhMmZhN2JmZDZiMTUyNTZlMmNm
YTVkLi5lYjY0MTViM2Y0Y2Q2ZGUwMjZhYTlhOTZiNDY2YTNhMTU1MDUxZmViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTEwNTcsMjUgKzEwNTcs
NiBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBj
YXNlIFB1dEdldHRlckJ5SWQ6Ci0gICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDogewotICAgICAg
ICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAg
IGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgUHV0R2V0dGVyU2V0dGVyQnlJZDogewotICAg
ICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKLSAg
ICAgICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDogewotICAgICAgICAgICAgZml4RWRnZTxLbm93bkNl
bGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNl
Pihub2RlLT5jaGlsZDMoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCiAgICAg
ICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAgICAgICAgZml4RWRnZTxGdW5jdGlvblVz
ZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZS5oCmluZGV4IDk0YWRiZTYxNDZlZjg3ZWQzZDk3NWZjZDEwYWIwNTA4YjI3ZWJi
M2EuLmFjMWE3NTdjZTQ3NTE5M2IzM2MzOTIzMWY1NjQ3ZjY4ZWJkY2M1NmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC04NTMsOSArODUzLDYgQEAgc3RydWN0IE5vZGUgewog
ICAgICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgICAg
ICBjYXNlIFB1dEJ5SWREaXJlY3Q6Ci0gICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKLSAgICAg
ICAgY2FzZSBQdXRTZXR0ZXJCeUlkOgotICAgICAgICBjYXNlIFB1dEdldHRlclNldHRlckJ5SWQ6
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTg2NywzNyArODY0LDYgQEAgc3RydWN0IE5vZGUgewogICAgICAg
ICBBU1NFUlQoaGFzSWRlbnRpZmllcigpKTsKICAgICAgICAgcmV0dXJuIG1fb3BJbmZvOwogICAg
IH0KLQotICAgIGJvb2wgaGFzQWNjZXNzb3JBdHRyaWJ1dGVzKCkKLSAgICB7Ci0gICAgICAgIHN3
aXRjaCAob3AoKSkgewotICAgICAgICBjYXNlIFB1dEdldHRlckJ5SWQ6Ci0gICAgICAgIGNhc2Ug
UHV0U2V0dGVyQnlJZDoKLSAgICAgICAgY2FzZSBQdXRHZXR0ZXJTZXR0ZXJCeUlkOgotICAgICAg
ICBjYXNlIFB1dEdldHRlckJ5VmFsOgotICAgICAgICBjYXNlIFB1dFNldHRlckJ5VmFsOgotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpbnQzMl90IGFjY2Vzc29yQXR0cmli
dXRlcygpCi0gICAgewotICAgICAgICBBU1NFUlQoaGFzQWNjZXNzb3JBdHRyaWJ1dGVzKCkpOwot
ICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKLSAgICAgICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgotICAg
ICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6Ci0gICAgICAgIGNhc2UgUHV0R2V0dGVyU2V0dGVyQnlJ
ZDoKLSAgICAgICAgICAgIHJldHVybiBtX29wSW5mbzI7Ci0gICAgICAgIGNhc2UgUHV0R2V0dGVy
QnlWYWw6Ci0gICAgICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6Ci0gICAgICAgICAgICByZXR1cm4g
bV9vcEluZm87Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICB9CiAg
ICAgCiAgICAgYm9vbCBoYXNQcm9tb3RlZExvY2F0aW9uRGVzY3JpcHRvcigpCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IGMwNDk4YWVjMjkyNjE3OWQy
MTRiMjEyMTJiZGYzNDk1NzU5MGJhMmIuLjEzNDlhNWRmOWVlYmE1MTA5NTRhMTEwNzQzZTQ1MDY2
ZmIzMzNhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTE3
OSwxMyArMTc5LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3Jv
KEdldEJ5SWQsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhH
ZXRCeUlkRmx1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNy
byhQdXRCeUlkLCBOb2RlTXVzdEdlbmVyYXRlKSBcCi0gICAgbWFjcm8oUHV0QnlJZEZsdXNoLCBO
b2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oUHV0QnlJZEZsdXNoLCBOb2RlTXVzdEdlbmVy
YXRlIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKFB1dEJ5SWREaXJlY3QsIE5vZGVN
dXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhQdXRHZXR0ZXJCeUlkLCBOb2RlTXVzdEdlbmVyYXRl
KSBcCi0gICAgbWFjcm8oUHV0U2V0dGVyQnlJZCwgTm9kZU11c3RHZW5lcmF0ZSkgXAotICAgIG1h
Y3JvKFB1dEdldHRlclNldHRlckJ5SWQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhQ
dXRHZXR0ZXJCeVZhbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAotICAgIG1hY3JvKFB1dFNldHRlckJ5
VmFsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tTdHJ1Y3R1cmUsIE5vZGVN
dXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhHZXRFeGVjdXRhYmxlLCBOb2RlUmVzdWx0SlMpIFwK
ICAgICBtYWNybyhQdXRTdHJ1Y3R1cmUsIE5vZGVNdXN0R2VuZXJhdGUpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAKaW5kZXggZDcyZGE5N2M2MDc5NDhjZmJiNjI1NzZkOGUxMzkyZjA3ZDk1MWFmYS4u
YTQxNTA3NTFhN2ZhNTAxMmJkZDc2M2YxMDVhYzc4MDE2YTQ1MzcwMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAKQEAgLTY1MSwxMSArNjUxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBQdXRC
eUlkRGlyZWN0OgogICAgICAgICBjYXNlIFB1dEJ5T2Zmc2V0OgogICAgICAgICBjYXNlIE11bHRp
UHV0QnlPZmZzZXQ6Ci0gICAgICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKLSAgICAgICAgY2FzZSBQ
dXRTZXR0ZXJCeUlkOgotICAgICAgICBjYXNlIFB1dEdldHRlclNldHRlckJ5SWQ6Ci0gICAgICAg
IGNhc2UgUHV0R2V0dGVyQnlWYWw6Ci0gICAgICAgIGNhc2UgUHV0U2V0dGVyQnlWYWw6CiAgICAg
ICAgIGNhc2UgREZHOjpKdW1wOgogICAgICAgICBjYXNlIEJyYW5jaDoKICAgICAgICAgY2FzZSBT
d2l0Y2g6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4
ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmlu
ZGV4IDQyYWJhZDAyMmM2Y2E0NWJlNjM4NzA5N2FjZGFjNjkyNzQ2NjU3ZjMuLjllMzU4MGVjNDQ0
NWJiZDZhZGZiYzllNWUwOGI4MzY3NmNkNTM0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC0xODgsMTEgKzE4OCw2IEBAIGJvb2wgc2FmZVRv
RXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZSkKICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgY2FzZSBQdXRCeUlkRmx1c2g6CiAgICAgY2FzZSBQ
dXRCeUlkRGlyZWN0OgotICAgIGNhc2UgUHV0R2V0dGVyQnlJZDoKLSAgICBjYXNlIFB1dFNldHRl
ckJ5SWQ6Ci0gICAgY2FzZSBQdXRHZXR0ZXJTZXR0ZXJCeUlkOgotICAgIGNhc2UgUHV0R2V0dGVy
QnlWYWw6Ci0gICAgY2FzZSBQdXRTZXR0ZXJCeVZhbDoKICAgICBjYXNlIENoZWNrU3RydWN0dXJl
OgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICBjYXNlIEdldEJ1dHRlcmZseToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggZjBi
YmJiYWJmMThjYjdiMjNkOTU1N2FmYjJjZWMyNzlkNmIxYzBmMS4uZWIyNTg1ZDQxNTNkZjExMjFl
MDg3NGUwYzliNmEzZTllOWZkNzZjNCAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTY3NDEsNjEgKzY3NDEsNiBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjp3cml0ZUJhcnJpZXIoR1BSUmVnIG93bmVyR1BSLCBHUFJSZWcgc2NyYXRjaDEs
IEdQUlJlZyBzY3JhdAogICAgIG93bmVySXNSZW1lbWJlcmVkT3JJbkVkZW4ubGluaygmbV9qaXQp
OwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeUlkKE5vZGUq
IG5vZGUpCi17Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGls
ZDEoKSk7Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYWNjZXNzb3IodGhpcywgbm9kZS0+Y2hp
bGQyKCkpOwotCi0gICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICBjYWxsT3BlcmF0aW9uKG5vZGUt
Pm9wKCkgPT0gUHV0R2V0dGVyQnlJZCA/IG9wZXJhdGlvblB1dEdldHRlckJ5SWQgOiBvcGVyYXRp
b25QdXRTZXR0ZXJCeUlkLCBOb1Jlc3VsdCwgYmFzZS5ncHIoKSwgaWRlbnRpZmllclVJRChub2Rl
LT5pZGVudGlmaWVyTnVtYmVyKCkpLCBub2RlLT5hY2Nlc3NvckF0dHJpYnV0ZXMoKSwgYWNjZXNz
b3IuZ3ByKCkpOwotICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0KLSAgICBub1Jlc3VsdChu
b2RlKTsKLX0KLQotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEdldHRlclNldHRlckJ5
SWQoTm9kZSogbm9kZSkKLXsKLSAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5v
ZGUtPmNoaWxkMSgpKTsKLSAgICBKU1ZhbHVlT3BlcmFuZCBnZXR0ZXIodGhpcywgbm9kZS0+Y2hp
bGQyKCkpOwotICAgIEpTVmFsdWVPcGVyYW5kIHNldHRlcih0aGlzLCBub2RlLT5jaGlsZDMoKSk7
Ci0KLSAgICBmbHVzaFJlZ2lzdGVycygpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIE5vUmVzdWx0LCBiYXNlLmdwcigpLCBp
ZGVudGlmaWVyVUlEKG5vZGUtPmlkZW50aWZpZXJOdW1iZXIoKSksIG5vZGUtPmFjY2Vzc29yQXR0
cmlidXRlcygpLCBnZXR0ZXIuZ3ByKCksIHNldHRlci5ncHIoKSk7Ci0jZWxzZQotICAgIC8vIFRo
ZXNlIEpTVmFsdWVzIG1heSBiZSBKU1VuZGVmaW5lZCBPUiBKU0Z1bmN0aW9uKi4KLSAgICAvLyBB
dCB0aGF0IHRpbWUsCi0gICAgLy8gMS4gSWYgdGhlIEpTVmFsdWUgaXMgSlNVbmRlZmluZWQsIGl0
cyBwYXlsb2FkIGJlY29tZXMgbnVsbHB0ci4KLSAgICAvLyAyLiBJZiB0aGUgSlNWYWx1ZSBpcyBK
U0Z1bmN0aW9uKiwgaXRzIHBheWxvYWQgYmVjb21lcyBKU0Z1bmN0aW9uKi4KLSAgICAvLyBTbyBl
eHRyYWN0IHBheWxvYWQgYW5kIHBhc3MgaXQgdG8gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLiBU
aGlzIGhhY2sgaXMgdXNlZCBhcyB0aGUgc2FtZSB3YXkgaW4gYmFzZWxpbmUgSklULgotICAgIEpT
VmFsdWVSZWdzIGdldHRlclJlZ3MgPSBnZXR0ZXIuanNWYWx1ZVJlZ3MoKTsKLSAgICBKU1ZhbHVl
UmVncyBzZXR0ZXJSZWdzID0gc2V0dGVyLmpzVmFsdWVSZWdzKCk7Ci0gICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIsIE5vUmVzdWx0LCBiYXNlLmdwcigpLCBpZGVudGlm
aWVyVUlEKG5vZGUtPmlkZW50aWZpZXJOdW1iZXIoKSksIG5vZGUtPmFjY2Vzc29yQXR0cmlidXRl
cygpLCBnZXR0ZXJSZWdzLnBheWxvYWRHUFIoKSwgc2V0dGVyUmVncy5wYXlsb2FkR1BSKCkpOwot
I2VuZGlmCi0gICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKLQotICAgIG5vUmVzdWx0KG5vZGUp
OwotfQotCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QWNjZXNzb3JCeVZhbChOb2Rl
KiBub2RlKQotewotICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOwotICAgIEpTVmFsdWVPcGVyYW5kIHN1YnNjcmlwdCh0aGlzLCBub2RlLT5jaGlsZDIo
KSk7Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYWNjZXNzb3IodGhpcywgbm9kZS0+Y2hpbGQz
KCkpOwotCi0gICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICBhdXRvIG9wZXJhdGlvbiA9IG5vZGUt
Pm9wKCkgPT0gUHV0R2V0dGVyQnlWYWwgPyBvcGVyYXRpb25QdXRHZXR0ZXJCeVZhbCA6IG9wZXJh
dGlvblB1dFNldHRlckJ5VmFsOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb24sIE5vUmVzdWx0LCBiYXNlLmdwcigpLCBzdWJzY3JpcHQuZ3ByKCksIG5vZGUt
PmFjY2Vzc29yQXR0cmlidXRlcygpLCBhY2Nlc3Nvci5ncHIoKSk7Ci0jZWxzZQotICAgIEpTVmFs
dWVSZWdzIHN1YnNjcmlwdFJlZ3MgPSBzdWJzY3JpcHQuanNWYWx1ZVJlZ3MoKTsKLSAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbiwgTm9SZXN1bHQsIGJhc2UuZ3ByKCksIHN1YnNjcmlwdFJlZ3Mu
dGFnR1BSKCksIHN1YnNjcmlwdFJlZ3MucGF5bG9hZEdQUigpLCBub2RlLT5hY2Nlc3NvckF0dHJp
YnV0ZXMoKSwgYWNjZXNzb3IuZ3ByKCkpOwotI2VuZGlmCi0gICAgbV9qaXQuZXhjZXB0aW9uQ2hl
Y2soKTsKLQotICAgIG5vUmVzdWx0KG5vZGUpOwotfQotCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
REZHCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCmluZGV4IGRhZTBjNjkzMjdlNGQyNTBhMDdmODViOTU3YTE1OWQ4M2JjZDM4OTguLjQ1
ODhiNWNmZDkyNDFjMmYyNzFhNDA1ZjcwMzViZjc3OTAzYWMwNzYgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTExNTUsMTYgKzExNTUsMzUg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24s
IHJlc3VsdCk7CiAgICAgfQogCi0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihW
X0pJVE9wZXJhdGlvbl9FQ0laQyBvcGVyYXRpb24sIEdQUlJlZyByZWdPcDEsIFVuaXF1ZWRTdHJp
bmdJbXBsKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIEdQUlJlZyByZWdPcDQpCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBlPgorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oRnVuY3Rpb25UeXBlIG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcpCiAgICAgewotICAgICAg
ICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRy
KGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCk7Ci0gICAgICAgIHJldHVybiBh
cHBlbmRDYWxsKG9wZXJhdGlvbik7CisgICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbik7CiAgICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBlLCB0eXBl
bmFtZS4uLiBBcmdzPgotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rp
b25UeXBlIG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3MuLi4gYXJncykKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTE+CisgICAgSklU
Q29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihGdW5jdGlvblR5cGUgb3BlcmF0aW9uLCBOb1Jl
c3VsdFRhZywgQXJndW1lbnRUeXBlMSBhcmcxKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uLCBhcmcxKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RnVuY3Rpb25UeXBlLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUxLCB0eXBlbmFtZSBBcmd1bWVudFR5
cGUyPgorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rpb25UeXBlIG9w
ZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSwgQXJndW1lbnRUeXBlMiBh
cmcyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCBhcmcx
LCBhcmcyKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBlLCB0eXBl
bmFtZSBBcmd1bWVudFR5cGUxLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUyLCB0eXBlbmFtZSBBcmd1
bWVudFR5cGUzPgorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rpb25U
eXBlIG9wZXJhdGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSwgQXJndW1lbnRU
eXBlMiBhcmcyLCBBcmd1bWVudFR5cGUzIGFyZzMpCisgICAgeworICAgICAgICByZXR1cm4gY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb24sIGFyZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGUsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTEsIHR5cGVu
YW1lIEFyZ3VtZW50VHlwZTIsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTMsIHR5cGVuYW1lIEFyZ3Vt
ZW50VHlwZTQ+CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihGdW5jdGlvblR5
cGUgb3BlcmF0aW9uLCBOb1Jlc3VsdFRhZywgQXJndW1lbnRUeXBlMSBhcmcxLCBBcmd1bWVudFR5
cGUyIGFyZzIsIEFyZ3VtZW50VHlwZTMgYXJnMywgQXJndW1lbnRUeXBlNCBhcmc0KQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCBhcmcxLCBhcmcyLCBhcmcz
LCBhcmc0KTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBlLCB0eXBl
bmFtZSBBcmd1bWVudFR5cGUxLCB0eXBlbmFtZSBBcmd1bWVudFR5cGUyLCB0eXBlbmFtZSBBcmd1
bWVudFR5cGUzLCB0eXBlbmFtZSBBcmd1bWVudFR5cGU0LCB0eXBlbmFtZSBBcmd1bWVudFR5cGU1
PgorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRnVuY3Rpb25UeXBlIG9wZXJh
dGlvbiwgTm9SZXN1bHRUYWcsIEFyZ3VtZW50VHlwZTEgYXJnMSwgQXJndW1lbnRUeXBlMiBhcmcy
LCBBcmd1bWVudFR5cGUzIGFyZzMsIEFyZ3VtZW50VHlwZTQgYXJnNCwgQXJndW1lbnRUeXBlNSBh
cmc1KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCBhcmdz
Li4uKTsKKyAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCBhcmcxLCBhcmcy
LCBhcmczLCBhcmc0LCBhcmc1KTsKICAgICB9CiAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKERfSklUT3BlcmF0aW9uX1paIG9wZXJhdGlvbiwgRlBSUmVnIHJlc3VsdCwgR1BS
UmVnIGFyZzEsIEdQUlJlZyBhcmcyKQpAQCAtMTUxNSwxNiArMTUzNCw2IEBAIHB1YmxpYzoKICAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihhcmcx
KSwgYXJnMiwgVHJ1c3RlZEltbTMyKGFyZzMpLCBhcmc0LCBUcnVzdGVkSW1tMzIoYXJnNSkpOwog
ICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOwogICAgIH0KLSAgICBKSVRDb21w
aWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSlpDIG9wZXJhdGlvbiwg
R1BSUmVnIHJlZ09wMSwgR1BSUmVnIHJlZ09wMiwgaW50MzJfdCBvcDMsIEdQUlJlZyByZWdPcDQp
Ci0gICAgewotICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3Ax
LCByZWdPcDIsIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQpOwotICAgICAgICByZXR1cm4gYXBw
ZW5kQ2FsbChvcGVyYXRpb24pOwotICAgIH0KLSAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpKSiBvcGVyYXRpb24sIEdQUlJlZyByZWdPcDEsIFVu
aXF1ZWRTdHJpbmdJbXBsKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIEdQUlJlZyByZWdPcDQsIEdQ
UlJlZyByZWdPcDUpCi0gICAgewotICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRyKGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyks
IHJlZ09wNCwgcmVnT3A1KTsKLSAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsK
LSAgICB9CiAjZWxzZSAvLyBVU0UoSlNWQUxVRTMyXzY0KQogCiAvLyBFbmNvZGVkSlNWYWx1ZSBp
biBKU1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlci4gV2hlbiBiZWluZyBjb21waWxlZCBp
biBBUk0gRUFCSSwgaXQgbXVzdCBiZSBhbGlnbmVkIGV2ZW4tbnVtYmVyZWQgcmVnaXN0ZXIgKHIw
LCByMiBvciBbc3BdKS4KQEAgLTE4NDYsMTYgKzE4NTUsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
aml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIoYXJnMSksIGFyZzJQ
YXlsb2FkLCBhcmcyVGFnLCBUcnVzdGVkSW1tMzIoYXJnMyksIGFyZzQsIFRydXN0ZWRJbW0zMihh
cmc1KSk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CiAgICAgfQotICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKWkMgb3Bl
cmF0aW9uLCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCwg
aW50MzJfdCBhcmczLCBHUFJSZWcgYXJnNCkKLSAgICB7Ci0gICAgICAgIG1faml0LnNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZElt
bTMyKGFyZzMpLCBhcmc0KTsKLSAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsK
LSAgICB9Ci0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FQ0laQ0Mgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgVW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50
T3AyLCBpbnQzMl90IG9wMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1KQotICAgIHsKLSAgICAg
ICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIFRydXN0ZWRJbW1QdHIo
aWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgYXJnNCwgYXJnNSk7Ci0gICAgICAgIHJldHVy
biBhcHBlbmRDYWxsKG9wZXJhdGlvbik7Ci0gICAgfQogI3VuZGVmIEVBQklfMzJCSVRfRFVNTVlf
QVJHCiAjdW5kZWYgU0g0XzMyQklUX0RVTU1ZX0FSRwogICAgIApAQCAtMjI0NCw5ICsyMjQzLDYg
QEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZVR5cGVPZihOb2RlKik7CiAgICAgdm9pZCBjb21w
aWxlQ2hlY2tTdHJ1Y3R1cmUoTm9kZSosIEdQUlJlZyBjZWxsR1BSLCBHUFJSZWcgdGVtcEdQUik7
CiAgICAgdm9pZCBjb21waWxlQ2hlY2tTdHJ1Y3R1cmUoTm9kZSopOwotICAgIHZvaWQgY29tcGls
ZVB1dEFjY2Vzc29yQnlJZChOb2RlKik7Ci0gICAgdm9pZCBjb21waWxlUHV0R2V0dGVyU2V0dGVy
QnlJZChOb2RlKik7Ci0gICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JCeVZhbChOb2RlKik7CiAg
ICAgCiAgICAgdm9pZCBtb3ZlVHJ1ZVRvKEdQUlJlZyk7CiAgICAgdm9pZCBtb3ZlRmFsc2VUbyhH
UFJSZWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAKaW5kZXggMjk1OTAwMzkyNzQyY2IzZTdlNTk4NjAwMTQwZTZjYzJhNGNj
MjM3OS4uYTQ0MTU3YmJiNzhlMmNjN2RhNzA3OTcyYWY4NmFmZGM4MmRkZTA4NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CkBAIC00MTcwLDIzICs0MTcwLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
KiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBjYXNlIFB1dEdldHRlckJ5SWQ6
Ci0gICAgY2FzZSBQdXRTZXR0ZXJCeUlkOiB7Ci0gICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvckJ5
SWQobm9kZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGNhc2UgUHV0R2V0dGVyU2V0
dGVyQnlJZDogewotICAgICAgICBjb21waWxlUHV0R2V0dGVyU2V0dGVyQnlJZChub2RlKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKLSAgICBjYXNl
IFB1dFNldHRlckJ5VmFsOiB7Ci0gICAgICAgIGNvbXBpbGVQdXRBY2Nlc3NvckJ5VmFsKG5vZGUp
OwotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAgICBjYXNlIEdldEdsb2JhbExleGljYWxWYXJp
YWJsZToKICAgICBjYXNlIEdldEdsb2JhbFZhcjogewogICAgICAgICBHUFJUZW1wb3JhcnkgcmVz
dWx0UGF5bG9hZCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDk5YWFkZGZhNTEwZWVkNDNkMTVlOWQyMWM4NmJlYTE2
ZGE0MmUxY2EuLmM0M2VmODQ2NmNmNzAyM2I1M2Q3ZjM1MGIxMDZiN2JhNDMxMzExZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApA
QCAtNDE2MiwyMyArNDE2Miw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSog
bm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2FzZSBQdXRHZXR0ZXJCeUlkOgot
ICAgIGNhc2UgUHV0U2V0dGVyQnlJZDogewotICAgICAgICBjb21waWxlUHV0QWNjZXNzb3JCeUlk
KG5vZGUpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBjYXNlIFB1dEdldHRlclNldHRl
ckJ5SWQ6IHsKLSAgICAgICAgY29tcGlsZVB1dEdldHRlclNldHRlckJ5SWQobm9kZSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLQotICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6Ci0gICAgY2FzZSBQ
dXRTZXR0ZXJCeVZhbDogewotICAgICAgICBjb21waWxlUHV0QWNjZXNzb3JCeVZhbChub2RlKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgY2FzZSBHZXRHbG9iYWxMZXhpY2FsVmFyaWFi
bGU6CiAgICAgY2FzZSBHZXRHbG9iYWxWYXI6IHsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3Vs
dCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNw
cAppbmRleCA1ZGQ3NjMyNWFjZmM0YWY5ZDcxYTVmMGJlYTFhNWNjNGEyNTIwMjAzLi4yYTA0MjE4
NmIxYjFjNWNlMzA4OGJjY2U1NjU1ZDIyMDJjZWNmYWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0yMDQsMTEgKzIwNCw2IEBAIGlubGlu
ZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgRm9yd2Fy
ZFZhcmFyZ3M6CiAgICAgY2FzZSBTd2l0Y2g6CiAgICAgY2FzZSBUeXBlT2Y6Ci0gICAgY2FzZSBQ
dXRHZXR0ZXJCeUlkOgotICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKLSAgICBjYXNlIFB1dEdldHRl
clNldHRlckJ5SWQ6Ci0gICAgY2FzZSBQdXRHZXR0ZXJCeVZhbDoKLSAgICBjYXNlIFB1dFNldHRl
ckJ5VmFsOgogICAgICAgICAvLyBUaGVzZSBhcmUgT0suCiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQXJpdGhTdWI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElu
dHJpbnNpY1JlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmlu
c2ljUmVwb3NpdG9yeS5oCmluZGV4IDhlMzM1MjJhNWM3OTdmNDRhODYyNmFjNTQ2MGVhMTc2Nzgx
YzI1M2EuLjQzZGRmYzM5NDNjNDU3MzQ3OWFjNjY3MDY4MWU3OTIxMjcyMzUxYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCkBA
IC0xMTgsOSArMTE4LDYgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1h
Y3JvKFZfSklUT3BlcmF0aW9uX0osIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50NjQpKSBcCiAg
ICAgbWFjcm8oVl9KSVRPcGVyYXRpb25fWiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnQzMikp
IFwKICAgICBtYWNybyhWX0pJVE9wZXJhdGlvbl9FLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGlu
dFB0cikpIFwKLSAgICBtYWNybyhWX0pJVE9wZXJhdGlvbl9FQ0laQywgZnVuY3Rpb25UeXBlKHZv
aWRUeXBlLCBpbnRQdHIsIGludFB0ciwgaW50UHRyLCBpbnQzMiwgaW50UHRyKSkgXAotICAgIG1h
Y3JvKFZfSklUT3BlcmF0aW9uX0VDSVpKSiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnRQdHIs
IGludFB0ciwgaW50UHRyLCBpbnQzMiwgaW50NjQsIGludDY0KSkgXAotICAgIG1hY3JvKFZfSklU
T3BlcmF0aW9uX0VDSlpDLCBmdW5jdGlvblR5cGUodm9pZFR5cGUsIGludFB0ciwgaW50UHRyLCBp
bnQ2NCwgaW50MzIsIGludFB0cikpIFwKICAgICBtYWNybyhaX0pJVE9wZXJhdGlvbl9ELCBmdW5j
dGlvblR5cGUoaW50MzIsIGRvdWJsZVR5cGUpKSBcCiAgICAgbWFjcm8oWl9KSVRPcGVyYXRpb25f
RUMsIGZ1bmN0aW9uVHlwZShpbnQzMiwgaW50UHRyLCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oWl9K
SVRPcGVyYXRpb25fRUdDLCBmdW5jdGlvblR5cGUoaW50MzIsIGludFB0ciwgaW50UHRyLCBpbnRQ
dHIpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9MTFZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwCmluZGV4IDc4YTBmZDgxNjQxM2Y0NmZjZWVjOTI3Y2Q4NmY5N2ExNWQ3YTg3NWUuLjQ1YjQ1
ZjUwZDQ3OWRjYzMxMDk5MTg0NTdlOGQxYzUwNmE4YzM3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC01NjUsMTcgKzU2NSw2IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgICAgICAgICAgY29tcGls
ZVB1dEJ5SWQoKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFB1dEdldHRlckJ5
SWQ6Ci0gICAgICAgIGNhc2UgUHV0U2V0dGVyQnlJZDoKLSAgICAgICAgICAgIGNvbXBpbGVQdXRB
Y2Nlc3NvckJ5SWQoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFB1dEdldHRl
clNldHRlckJ5SWQ6Ci0gICAgICAgICAgICBjb21waWxlUHV0R2V0dGVyU2V0dGVyQnlJZCgpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUHV0R2V0dGVyQnlWYWw6Ci0gICAgICAg
IGNhc2UgUHV0U2V0dGVyQnlWYWw6Ci0gICAgICAgICAgICBjb21waWxlUHV0QWNjZXNzb3JCeVZh
bCgpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgogICAg
ICAgICAgICAgY29tcGlsZUdldEJ1dHRlcmZseSgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0z
MDEwLDM4ICsyOTk5LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgfQotCi0gICAgdm9pZCBjb21waWxlUHV0QWNjZXNzb3JCeUlkKCkKLSAgICB7Ci0gICAg
ICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgTFZh
bHVlIGFjY2Vzc29yID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgYXV0byB1
aWQgPSBtX2dyYXBoLmlkZW50aWZpZXJzKClbbV9ub2RlLT5pZGVudGlmaWVyTnVtYmVyKCldOwot
ICAgICAgICB2bUNhbGwoCi0gICAgICAgICAgICBtX291dC5vcGVyYXRpb24obV9ub2RlLT5vcCgp
ID09IFB1dEdldHRlckJ5SWQgPyBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkIDogb3BlcmF0aW9uUHV0
U2V0dGVyQnlJZCksCi0gICAgICAgICAgICBtX2NhbGxGcmFtZSwgYmFzZSwgbV9vdXQuY29uc3RJ
bnRQdHIodWlkKSwgbV9vdXQuY29uc3RJbnQzMihtX25vZGUtPmFjY2Vzc29yQXR0cmlidXRlcygp
KSwgYWNjZXNzb3IpOwotICAgIH0KLQotICAgIHZvaWQgY29tcGlsZVB1dEdldHRlclNldHRlckJ5
SWQoKQotICAgIHsKLSAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQx
KCkpOwotICAgICAgICBMVmFsdWUgZ2V0dGVyID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigp
KTsKLSAgICAgICAgTFZhbHVlIHNldHRlciA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDMoKSk7
Ci0gICAgICAgIGF1dG8gdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW21fbm9kZS0+aWRlbnRp
Zmllck51bWJlcigpXTsKLSAgICAgICAgdm1DYWxsKAotICAgICAgICAgICAgbV9vdXQub3BlcmF0
aW9uKG9wZXJhdGlvblB1dEdldHRlclNldHRlciksCi0gICAgICAgICAgICBtX2NhbGxGcmFtZSwg
YmFzZSwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSwgbV9vdXQuY29uc3RJbnQzMihtX25vZGUtPmFj
Y2Vzc29yQXR0cmlidXRlcygpKSwgZ2V0dGVyLCBzZXR0ZXIpOwotCi0gICAgfQotCi0gICAgdm9p
ZCBjb21waWxlUHV0QWNjZXNzb3JCeVZhbCgpCi0gICAgewotICAgICAgICBMVmFsdWUgYmFzZSA9
IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIExWYWx1ZSBzdWJzY3JpcHQgPSBs
b3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICBMVmFsdWUgYWNjZXNzb3IgPSBs
b3dDZWxsKG1fbm9kZS0+Y2hpbGQzKCkpOwotICAgICAgICB2bUNhbGwoCi0gICAgICAgICAgICBt
X291dC5vcGVyYXRpb24obV9ub2RlLT5vcCgpID09IFB1dEdldHRlckJ5VmFsID8gb3BlcmF0aW9u
UHV0R2V0dGVyQnlWYWwgOiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbCksCi0gICAgICAgICAgICBt
X2NhbGxGcmFtZSwgYmFzZSwgc3Vic2NyaXB0LCBtX291dC5jb25zdEludDMyKG1fbm9kZS0+YWNj
ZXNzb3JBdHRyaWJ1dGVzKCkpLCBhY2Nlc3Nvcik7Ci0gICAgfQogICAgIAogICAgIHZvaWQgY29t
cGlsZUFycmF5UHVzaCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggNDEwYThj
YmJhNGNjY2MxZTRkNjFkZDJkODgzYzRmMDNiNjY5NDdlYS4uOTIwZGFlMjJjZjllNmMzM2FhNmRj
YWZlOGNmZjFlYTIwZTVkMWExZCAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC03NjIsMTMg
Kzc2Miw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0UpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDLCBSZWdpc3RlcklEKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0Ms
IFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpDLCBSZWdpc3RlcklELCBVbmlxdWVkU3Ry
aW5nSW1wbCosIGludDMyX3QsIFJlZ2lzdGVySUQpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpDQywgUmVnaXN0ZXJJRCwgVW5p
cXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKLSNpZiBV
U0UoSlNWQUxVRTY0KQotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VDSlpDLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBS
ZWdpc3RlcklEKTsKLSNlbHNlCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRUNJWkMsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIq
LCBpbnQzMl90LCBSZWdpc3RlcklEKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQ0MsIFJlZ2lzdGVySUQsIGNvbnN0IElkZW50
aWZpZXIqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FQ0paQywgUmVnaXN0
ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7Ci0jZW5k
aWYKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJh
dGlvbl9FRSwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVpTeW10YWJKLCBpbnQsIFN5bWJvbFRhYmxlKiwgUmVn
aXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRVpTeW10YWJKLCBpbnQsIFN5bWJvbFRhYmxlKiwgUmVnaXN0ZXJJRCk7CkBA
IC03NzksMTAgKzc3NSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbHNlCiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKFZfSklUT3BlcmF0
aW9uX0VKLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICNlbmRpZgorICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSiwgUmVnaXN0
ZXJJRCwgY29uc3QgSWRlbnRpZmllciosIGludDMyX3QsIFJlZ2lzdGVySUQpOworICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSWRaSkos
IFJlZ2lzdGVySUQsIGNvbnN0IElkZW50aWZpZXIqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdp
c3RlcklEKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FSkpaSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgaW50MzJfdCwgUmVnaXN0
ZXJJRCk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihGX0pJVE9wZXJhdGlvbl9FRkpaWiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJ
RCwgaW50MzJfdCwgUmVnaXN0ZXJJRCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVNzaUpKSSwgU3RydWN0dXJlU3R1YkluZm8qLCBS
ZWdpc3RlcklELCBSZWdpc3RlcklELCBVbmlxdWVkU3RyaW5nSW1wbCopOwotICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDSVpKSiwgUmVn
aXN0ZXJJRCwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3Rl
cklEKTsKICNlbHNlCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRVNzaUpKSSwgU3RydWN0dXJlU3R1YkluZm8qLCBSZWdpc3RlcklELCBS
ZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBVbmlxdWVkU3RyaW5nSW1wbCopOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IGI1ZWEwODEz
NGI4NDQ4MmY5NWE2YTQ3ODE2NjBkMjM0MTdjOGExZTIuLmEzNGI3YTBjOWRkZjVlZmY5NjY2NGU5
MzQxYzI2ZjQ0OTU2NDFkNTYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5o
CkBAIC00MDYsMTEgKzQwNiw2IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
SklUOjpjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlCiAgICAgcmV0dXJu
IGFwcGVuZENhbGxXaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb24pOwog
fQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihWX0pJVE9wZXJhdGlvbl9FQ0laQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBVbmlx
dWVkU3RyaW5nSW1wbCogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkK
LXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCBUcnVzdGVkSW1tUHRy
KGlkZW50T3AyKSwgVHJ1c3RlZEltbTMyKG9wMyksIHJlZ09wNCk7Ci0gICAgcmV0dXJuIGFwcGVu
ZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKLX0KIAogI2lmIFVTRShKU1ZBTFVF
NjQpCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihaX0pJVE9wZXJhdGlvbl9FSlpaIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIGludDMyX3QgYXJn
MiwgaW50MzJfdCBhcmczKQpAQCAtNTQ2LDEzICs1NDEsMTkgQEAgQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUogb3Bl
cmF0aW8KICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24p
OwogfQogCi1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laSkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwg
VW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50T3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdP
cDQsIFJlZ2lzdGVySUQgcmVnT3A1KQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpJZFpKIG9wZXJhdGlvbiwgUmVn
aXN0ZXJJRCByZWdPcDEsIGNvbnN0IElkZW50aWZpZXIqIGlkZW50T3AyLCBpbnQzMl90IG9wMywg
UmVnaXN0ZXJJRCByZWdPcDQpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJl
Z09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQp
OworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Cit9
CisKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VKSWRaSkogb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29u
c3QgSWRlbnRpZmllciogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCwg
UmVnaXN0ZXJJRCByZWdPcDUpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJl
Z09wMSwgVHJ1c3RlZEltbVB0cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQs
IHJlZ09wNSk7CiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0
aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUNKWkMgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09w
MSwgUmVnaXN0ZXJJRCByZWdPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCkKK0FM
V0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklU
T3BlcmF0aW9uX0VKSlpKIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVySUQg
cmVnT3AyLCBpbnQzMl90IG9wMywgUmVnaXN0ZXJJRCByZWdPcDQpCiB7CiAgICAgc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVn
T3A0KTsKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24p
OwpAQCAtNjc0LDcgKzY3NSwxMyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aQogICAgIHJldHVy
biBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0VDSVpDQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBVbmlxdWVkU3RyaW5nSW1w
bCogaWRlbnRPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCwgUmVnaXN0ZXJJRCBy
ZWdPcDUpCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbihWX0pJVE9wZXJhdGlvbl9FQ0laQyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBj
b25zdCBJZGVudGlmaWVyKiBpZGVudE9wMiwgaW50MzJfdCBvcDMsIFJlZ2lzdGVySUQgcmVnT3A0
KQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIFRydXN0ZWRJbW1Q
dHIoaWRlbnRPcDIpLCBUcnVzdGVkSW1tMzIob3AzKSwgcmVnT3A0KTsKKyAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworfQorCitBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9F
Q0laQ0Mgb3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgY29uc3QgSWRlbnRpZmllciogaWRl
bnRPcDIsIGludDMyX3Qgb3AzLCBSZWdpc3RlcklEIHJlZ09wNCwgUmVnaXN0ZXJJRCByZWdPcDUp
CiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgVHJ1c3RlZEltbVB0
cihpZGVudE9wMiksIFRydXN0ZWRJbW0zMihvcDMpLCByZWdPcDQsIHJlZ09wNSk7CiAgICAgcmV0
dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDFmODRkNjYzMzJhYTJmY2Qw
MDU0YWZlYzg4MjA0YTdmYzI4M2JiMGUuLjJiNTMwZjVmNzhjOWY0Zjc0OWRlYmIwNDc4ZGIxNmYx
MjhiMjg3MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cApAQCAtMTM1Myw3OCArMTM1MywxMDkgQEAgc3RhdGljIHZvaWQgcHV0QWNjZXNzb3JCeVZhbChF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlLCBKU1ZhbHVlIHN1YnNjcmlwdCwKICAgICAg
ICAgYmFzZS0+cHV0U2V0dGVyKGV4ZWMsIHByb3BlcnR5S2V5LCBhY2Nlc3NvciwgYXR0cmlidXRl
KTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0
YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgaW50MzJf
dCBvcHRpb25zLCBKU0NlbGwqIGdldHRlcikKKyNpZiBVU0UoSlNWQUxVRTY0KQordm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMy
X3Qgb3B0aW9ucywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEdldHRlclZhbHVlKQogewogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0s
IGV4ZWMpOwogCi0gICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOwotICAg
IEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKKyAgICBBU1NFUlQoSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3QoKSk7CisgICAgSlNPYmpl
Y3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZhbHVl
KSk7CiAKLSAgICBBU1NFUlQoZ2V0dGVyLT5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5wdXRH
ZXR0ZXIoZXhlYywgdWlkLCBnZXR0ZXIsIG9wdGlvbnMpOworICAgIEpTVmFsdWUgZ2V0dGVyID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRHZXR0ZXJWYWx1ZSk7CisgICAgQVNTRVJUKGdldHRlci5p
c09iamVjdCgpKTsKKyAgICBiYXNlT2JqLT5wdXRHZXR0ZXIoZXhlYywgKmlkZW50aWZpZXIsIGFz
T2JqZWN0KGdldHRlciksIG9wdGlvbnMpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0U2V0dGVyQnlJZChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBVbmlxdWVk
U3RyaW5nSW1wbCogdWlkLCBpbnQzMl90IG9wdGlvbnMsIEpTQ2VsbCogc2V0dGVyKQordm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGlu
dDMyX3Qgb3B0aW9ucywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNldHRlclZhbHVlKQogewogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigm
dm0sIGV4ZWMpOwogCi0gICAgQVNTRVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOwot
ICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKKyAgICBBU1NFUlQo
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3QoKSk7CisgICAgSlNP
YmplY3QqIGJhc2VPYmogPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZh
bHVlKSk7CiAKLSAgICBBU1NFUlQoc2V0dGVyLT5pc09iamVjdCgpKTsKLSAgICBiYXNlT2JqLT5w
dXRTZXR0ZXIoZXhlYywgdWlkLCBzZXR0ZXIsIG9wdGlvbnMpOworICAgIEpTVmFsdWUgc2V0dGVy
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7CisgICAgQVNTRVJUKHNldHRl
ci5pc09iamVjdCgpKTsKKyAgICBiYXNlT2JqLT5wdXRTZXR0ZXIoZXhlYywgKmlkZW50aWZpZXIs
IGFzT2JqZWN0KHNldHRlciksIG9wdGlvbnMpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0R2V0dGVyQnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIGdl
dHRlcikKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT2JqZWN0VmFsdWUsIElkZW50aWZpZXIq
IGlkZW50aWZpZXIsIGludDMyX3QgYXR0cmlidXRlLAorICAgIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRHZXR0ZXJWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNldHRlclZhbHVlKQogewogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigm
dm0sIGV4ZWMpOwogCi0gICAgcHV0QWNjZXNzb3JCeVZhbChleGVjLCBhc09iamVjdChiYXNlKSwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBhdHRyaWJ1dGUsIGFzT2JqZWN0KGdl
dHRlciksIEFjY2Vzc29yVHlwZTo6R2V0dGVyKTsKKyAgICBBU1NFUlQoSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPYmplY3RWYWx1ZSkuaXNPYmplY3QoKSk7CisgICAgSlNPYmplY3QqIGJhc2VPYmog
PSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9iamVjdFZhbHVlKSk7CisKKyAgICBH
ZXR0ZXJTZXR0ZXIqIGFjY2Vzc29yID0gR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSk7CisKKyAgICBKU1ZhbHVlIGdldHRlciA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkR2V0dGVyVmFsdWUpOworICAgIEpTVmFsdWUgc2V0dGVyID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRTZXR0ZXJWYWx1ZSk7CisgICAgQVNTRVJUKGdldHRlci5pc09iamVjdCgp
IHx8IGdldHRlci5pc1VuZGVmaW5lZCgpKTsKKyAgICBBU1NFUlQoc2V0dGVyLmlzT2JqZWN0KCkg
fHwgc2V0dGVyLmlzVW5kZWZpbmVkKCkpOworICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8
fCBzZXR0ZXIuaXNPYmplY3QoKSk7CisKKyAgICBpZiAoIWdldHRlci5pc1VuZGVmaW5lZCgpKQor
ICAgICAgICBhY2Nlc3Nvci0+c2V0R2V0dGVyKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCksIGFzT2JqZWN0KGdldHRlcikpOworICAgIGlmICghc2V0dGVyLmlzVW5kZWZpbmVkKCkpCisg
ICAgICAgIGFjY2Vzc29yLT5zZXRTZXR0ZXIodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSwgYXNPYmplY3Qoc2V0dGVyKSk7CisgICAgYmFzZU9iai0+cHV0RGlyZWN0QWNjZXNzb3IoZXhl
YywgKmlkZW50aWZpZXIsIGFjY2Vzc29yLCBhdHRyaWJ1dGUpOwogfQogCi12b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBK
U0NlbGwqIHNldHRlcikKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeVZh
bChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEdldHRlcikKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKyAgICBKU09iamVjdCogYmFzZSA9IGFz
T2JqZWN0KEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSkpOworICAgIEpTVmFsdWUgc3Vic2Ny
aXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOworICAgIEpTT2JqZWN0KiBn
ZXR0ZXIgPSBhc09iamVjdChKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEdldHRlcikpOworICAgIHB1
dEFjY2Vzc29yQnlWYWwoZXhlYywgYmFzZSwgc3Vic2NyaXB0LCBhdHRyaWJ1dGUsIGdldHRlciwg
QWNjZXNzb3JUeXBlOjpHZXR0ZXIpOworfQogCi0gICAgcHV0QWNjZXNzb3JCeVZhbChleGVjLCBh
c09iamVjdChiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBhdHRyaWJ1
dGUsIGFzT2JqZWN0KHNldHRlciksIEFjY2Vzc29yVHlwZTo6U2V0dGVyKTsKK3ZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBpbnQz
Ml90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNldHRlcikKK3sKKyAgICBWTSYg
dm0gPSBleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBl
eGVjKTsKKyAgICBKU09iamVjdCogYmFzZSA9IGFzT2JqZWN0KEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkQmFzZSkpOworICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRTdWJzY3JpcHQpOworICAgIEpTT2JqZWN0KiBzZXR0ZXIgPSBhc09iamVjdChKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFNldHRlcikpOworICAgIHB1dEFjY2Vzc29yQnlWYWwoZXhlYywgYmFzZSwg
c3Vic2NyaXB0LCBhdHRyaWJ1dGUsIHNldHRlciwgQWNjZXNzb3JUeXBlOjpTZXR0ZXIpOwogfQog
Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0
ZXJTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0lt
cGwqIHVpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRHZXR0ZXJW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFNldHRlclZhbHVlKQorI2Vsc2UKK3ZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxs
KiBvYmplY3QsIElkZW50aWZpZXIqIGlkZW50aWZpZXIsIGludDMyX3Qgb3B0aW9ucywgSlNDZWxs
KiBnZXR0ZXIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKICAgICBBU1NFUlQob2JqZWN0ICYmIG9iamVj
dC0+aXNPYmplY3QoKSk7Ci0gICAgSlNPYmplY3QqIGJhc2VPYmogPSBhc09iamVjdChvYmplY3Qp
OworICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKIAotICAgIEdl
dHRlclNldHRlciogYWNjZXNzb3IgPSBHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICBBU1NFUlQoZ2V0dGVyLT5pc09iamVjdCgpKTsKKyAg
ICBiYXNlT2JqLT5wdXRHZXR0ZXIoZXhlYywgKmlkZW50aWZpZXIsIGdldHRlciwgb3B0aW9ucyk7
Cit9CiAKLSAgICBKU1ZhbHVlIGdldHRlciA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkR2V0dGVy
VmFsdWUpOwotICAgIEpTVmFsdWUgc2V0dGVyID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTZXR0
ZXJWYWx1ZSk7Ci0gICAgQVNTRVJUKGdldHRlci5pc09iamVjdCgpIHx8IGdldHRlci5pc1VuZGVm
aW5lZCgpKTsKLSAgICBBU1NFUlQoc2V0dGVyLmlzT2JqZWN0KCkgfHwgc2V0dGVyLmlzVW5kZWZp
bmVkKCkpOwotICAgIEFTU0VSVChnZXR0ZXIuaXNPYmplY3QoKSB8fCBzZXR0ZXIuaXNPYmplY3Qo
KSk7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlJZChFeGVjU3RhdGUq
IGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBJZGVudGlmaWVyKiBpZGVudGlmaWVyLCBpbnQzMl90IG9w
dGlvbnMsIEpTQ2VsbCogc2V0dGVyKQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogCi0gICAgaWYgKCFnZXR0
ZXIuaXNVbmRlZmluZWQoKSkKLSAgICAgICAgYWNjZXNzb3ItPnNldEdldHRlcih2bSwgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhc09iamVjdChnZXR0ZXIpKTsKLSAgICBpZiAoIXNldHRl
ci5pc1VuZGVmaW5lZCgpKQotICAgICAgICBhY2Nlc3Nvci0+c2V0U2V0dGVyKHZtLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCksIGFzT2JqZWN0KHNldHRlcikpOwotICAgIGJhc2VPYmotPnB1
dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHVpZCwgYWNjZXNzb3IsIGF0dHJpYnV0ZSk7CisgICAgQVNT
RVJUKG9iamVjdCAmJiBvYmplY3QtPmlzT2JqZWN0KCkpOworICAgIEpTT2JqZWN0KiBiYXNlT2Jq
ID0gb2JqZWN0LT5nZXRPYmplY3QoKTsKKworICAgIEFTU0VSVChzZXR0ZXItPmlzT2JqZWN0KCkp
OworICAgIGJhc2VPYmotPnB1dFNldHRlcihleGVjLCAqaWRlbnRpZmllciwgc2V0dGVyLCBvcHRp
b25zKTsKIH0KIAotI2Vsc2UKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJT
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIG9iamVjdCwgVW5pcXVlZFN0cmluZ0ltcGwq
IHVpZCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCogZ2V0dGVyLCBKU0NlbGwqIHNldHRlcikK
K3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBKU0NlbGwqIG9iamVjdCwgSWRlbnRpZmllciogaWRlbnRpZmllciwgaW50MzJfdCBhdHRy
aWJ1dGUsIEpTQ2VsbCogZ2V0dGVyLCBKU0NlbGwqIHNldHRlcikKIHsKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsK
IAogICAgIEFTU0VSVChvYmplY3QgJiYgb2JqZWN0LT5pc09iamVjdCgpKTsKLSAgICBKU09iamVj
dCogYmFzZU9iaiA9IGFzT2JqZWN0KG9iamVjdCk7CisgICAgSlNPYmplY3QqIGJhc2VPYmogPSBv
YmplY3QtPmdldE9iamVjdCgpOwogCiAgICAgR2V0dGVyU2V0dGVyKiBhY2Nlc3NvciA9IEdldHRl
clNldHRlcjo6Y3JlYXRlKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOwogCkBAIC0x
NDM2LDggKzE0NjcsMjUgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogb2JqZWN0LCBVbmkKICAgICAgICAgYWNjZXNz
b3ItPnNldEdldHRlcih2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBnZXR0ZXItPmdl
dE9iamVjdCgpKTsKICAgICBpZiAoc2V0dGVyKQogICAgICAgICBhY2Nlc3Nvci0+c2V0U2V0dGVy
KHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHNldHRlci0+Z2V0T2JqZWN0KCkpOwot
ICAgIGJhc2VPYmotPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMsIHVpZCwgYWNjZXNzb3IsIGF0dHJp
YnV0ZSk7CisgICAgYmFzZU9iai0+cHV0RGlyZWN0QWNjZXNzb3IoZXhlYywgKmlkZW50aWZpZXIs
IGFjY2Vzc29yLCBhdHRyaWJ1dGUpOworfQorCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
UHV0R2V0dGVyQnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIGJhc2UsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRTdWJzY3JpcHQsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqIGdldHRlcikK
K3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIoJnZtLCBleGVjKTsKKworICAgIHB1dEFjY2Vzc29yQnlWYWwoZXhlYywgYXNPYmplY3Qo
YmFzZSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KSwgYXR0cmlidXRlLCBhc09i
amVjdChnZXR0ZXIpLCBBY2Nlc3NvclR5cGU6OkdldHRlcik7CiB9CisKK3ZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgaW50MzJfdCBhdHRyaWJ1dGUsIEpT
Q2VsbCogc2V0dGVyKQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOworCisgICAgcHV0QWNjZXNzb3JCeVZhbChl
eGVjLCBhc09iamVjdChiYXNlKSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpLCBh
dHRyaWJ1dGUsIGFzT2JqZWN0KHNldHRlciksIEFjY2Vzc29yVHlwZTo6U2V0dGVyKTsKK30KKwog
I2VuZGlmCiAKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUq
IGV4ZWMsIGludDMyX3Qgc2NvcGVSZWcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5oCmluZGV4IGY2YzU3ZjNkMWNiN2U0NTYyMjYzNjJhOTJhMGZkMDk5NDA1OTlkNDUu
LmFhY2EzNWEyMWQwOTdhNjZiNDgxZmE1MjA1YzY4NTEzMjMzY2Q1NmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC0xODksOSArMTg5LDggQEAgdHlwZWRl
ZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQykoRXhlY1N0YXRlKiwgSlND
ZWxsKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDYiko
RXhlY1N0YXRlKiwgQ29kZUJsb2NrKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZf
SklUT3BlcmF0aW9uX0VDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKik7CiB0eXBlZGVm
IHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSWNmKShFeGVjU3RhdGUqLCBK
U0NlbGwqLCBJbmxpbmVDYWxsRnJhbWUqKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgq
Vl9KSVRPcGVyYXRpb25fRUNJWkMpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJ
bXBsKiwgaW50MzJfdCwgSlNDZWxsKik7Ci10eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZf
SklUT3BlcmF0aW9uX0VDSVpDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0lt
cGwqLCBpbnQzMl90LCBKU0NlbGwqLCBKU0NlbGwqKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXRpb25fRUNJWkpKKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVk
U3RyaW5nSW1wbCosIGludDMyX3QsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Cit0
eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSVpDKShFeGVjU3Rh
dGUqLCBKU0NlbGwqLCBJZGVudGlmaWVyKiwgaW50MzJfdCwgSlNDZWxsKik7Cit0eXBlZGVmIHZv
aWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VDSVpDQykoRXhlY1N0YXRlKiwgSlND
ZWxsKiwgSWRlbnRpZmllciosIGludDMyX3QsIEpTQ2VsbCosIEpTQ2VsbCopOwogdHlwZWRlZiB2
b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0paQykoRXhlY1N0YXRlKiwgSlND
ZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIEpTQ2VsbCopOwogdHlwZWRlZiB2b2lkIEpJ
VF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FQ0NJY2YpKEV4ZWNTdGF0ZSosIEpTQ2VsbCos
IEpTQ2VsbCosIElubGluZUNhbGxGcmFtZSopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04g
KCpWX0pJVE9wZXJhdGlvbl9FQ0pKKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpOwpAQCAtMjAxLDYgKzIwMCw5IEBAIHR5cGVkZWYgdm9pZCBKSVRf
T1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNDKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBKU0Nl
bGwqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRVpTeW10
YWJKKShFeGVjU3RhdGUqLCBpbnQzMl90LCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1ZhbHVlKTsK
IHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUopKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRP
cGVyYXRpb25fRUpDSSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTQ2VsbCosIFVuaXF1
ZWRTdHJpbmdJbXBsKik7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0
aW9uX0VKSWRaSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQz
Ml90LCBFbmNvZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklU
T3BlcmF0aW9uX0VKSWRaSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVy
KiwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKK3R5cGVkZWYgdm9p
ZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKWkopKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUpOwogdHlw
ZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSkpKKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVk
ZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSkFwKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVBy
b2ZpbGUqKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpK
SkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBCeVZhbEluZm8qKTsKQEAgLTMxMSwxNCArMzEzLDE4IEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EZWJ1ZyhFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiBT
bG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3Rh
dGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiAjZW5kaWYKIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRCeUluZGV4KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBF
bmNvZGVkSlNWYWx1ZSk7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlJ
ZChFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3Qgb3B0aW9u
cywgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dFNldHRlckJ5SWQoRXhlY1N0YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltcGwqLCBpbnQz
Ml90IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRHZXR0ZXJCeVZhbChFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1
ZSwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRTZXR0ZXJCeVZhbChFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNv
ZGVkSlNWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1dGUsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKICNp
ZiBVU0UoSlNWQUxVRTY0KQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNl
dHRlcihFeGVjU3RhdGUqLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCosIGludDMyX3QgYXR0
cmlidXRlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKK3Zv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgaW50MzJfdCBvcHRpb25zLCBFbmNvZGVkSlNWYWx1ZSkg
V1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFNldHRlckJ5SWQo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBpbnQzMl90IG9wdGlvbnMs
IEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVy
KiwgaW50MzJfdCBhdHRyaWJ1dGUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RG
X0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlckJ5VmFsKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCBhdHRyaWJ1
dGUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0U2V0dGVyQnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBpbnQzMl90IGF0dHJpYnV0ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsK
ICNlbHNlCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNT
dGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgaW50MzJfdCBhdHRyaWJ1dGUsIEpT
Q2VsbCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRHZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBpbnQzMl90
IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25QdXRTZXR0ZXJCeUlkKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIElkZW50aWZpZXIqLCBpbnQz
Ml90IG9wdGlvbnMsIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSWRlbnRpZmllcios
IGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqLCBKU0NlbGwqKSBXVEZfSU5URVJOQUw7Cit2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyQnlWYWwoRXhlY1N0YXRlKiwgSlNDZWxs
KiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqKSBXVEZfSU5URVJO
QUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0U2V0dGVyQnlWYWwoRXhlY1N0YXRl
KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QgYXR0cmlidXRlLCBKU0NlbGwqKSBX
VEZfSU5URVJOQUw7CiAjZW5kaWYKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXNoRnVu
Y3Rpb25OYW1lU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJfdCwgU3ltYm9sVGFibGUqLCBFbmNvZGVk
SlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBvcFNj
b3BlKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggMzE3OWY5OGU1ODAzMGQ2
MWYwZWI2Y2ExNGY5YjMyNDg2YTQ0NDRiNC4uYjE0NmIyMDk4NzY4YjJhOGZjNmE5OTFkNDNkZWI0
NTE1NDY0ZTIxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9w
ZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHAKQEAgLTQ5Miw3ICs0OTIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0
dGVyX2J5X2lkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7CiAg
ICAgaW50MzJfdCBvcHRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQs
IHJlZ1QxKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHJlZ1Qw
LCBtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
KS5pbXBsKCksIG9wdGlvbnMsIHJlZ1QxKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1
dEdldHRlckJ5SWQsIHJlZ1QwLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZCksIG9wdGlvbnMsIHJlZ1QxKTsKIH0KIAogdm9pZCBKSVQ6OmVt
aXRfb3BfcHV0X3NldHRlcl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpA
QCAtNTAwLDcgKzUwMCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKICAgICBpbnQzMl90IG9w
dGlvbnMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCwgcmVnVDEpOwotICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwgcmVnVDAsIG1fY29kZUJsb2Nr
LT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpLmltcGwoKSwgb3B0
aW9ucywgcmVnVDEpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0U2V0dGVyQnlJZCwg
cmVnVDAsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kKSwgb3B0aW9ucywgcmVnVDEpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0
dGVyX3NldHRlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtNTA5LDcgKzUw
OSw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfc2V0dGVyKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50MzJfdCBhdHRyaWJ1dGUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzRdLnUub3BlcmFuZCwgcmVnVDEpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIoY3VycmVudEluc3RydWN0aW9uWzVdLnUub3BlcmFuZCwgcmVnVDIpOwotICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCByZWdUMCwgbV9jb2RlQmxvY2stPmlkZW50
aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkuaW1wbCgpLCBhdHRyaWJ1dGUs
IHJlZ1QxLCByZWdUMik7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXRHZXR0ZXJTZXR0
ZXIsIHJlZ1QwLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZCksIGF0dHJpYnV0ZSwgcmVnVDEsIHJlZ1QyKTsKIH0KIAogdm9pZCBKSVQ6OmVt
aXRfb3BfcHV0X2dldHRlcl9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJf
NjQuY3BwCmluZGV4IDY4OTJlMDk2MDBkMTFlODU5M2NkODA4YjVkNjhhZWE2NmUyYjRlMWMuLmQw
NDc3ZmQxOTQ2ZDJlZDUwMDhlODdjMTRlYThjMjhiZmJiYWYyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtNjYs
NyArNjYsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX2J5X2lkKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAKICAgICBlbWl0TG9hZFBheWxvYWQoYmFzZSwgcmVnVDEp
OwogICAgIGVtaXRMb2FkUGF5bG9hZChnZXR0ZXIsIHJlZ1QzKTsKLSAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvblB1dEdldHRlckJ5SWQsIHJlZ1QxLCBtX2NvZGVCbG9jay0+aWRlbnRpZmllcihw
cm9wZXJ0eSkuaW1wbCgpLCBvcHRpb25zLCByZWdUMyk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25QdXRHZXR0ZXJCeUlkLCByZWdUMSwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKHByb3Bl
cnR5KSwgb3B0aW9ucywgcmVnVDMpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfc2V0dGVy
X2J5X2lkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC03OCw3ICs3OCw3IEBA
IHZvaWQgSklUOjplbWl0X29wX3B1dF9zZXR0ZXJfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIAogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMSk7CiAgICAgZW1p
dExvYWRQYXlsb2FkKHNldHRlciwgcmVnVDMpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
UHV0U2V0dGVyQnlJZCwgcmVnVDEsIG1fY29kZUJsb2NrLT5pZGVudGlmaWVyKHByb3BlcnR5KS5p
bXBsKCksIG9wdGlvbnMsIHJlZ1QzKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dFNl
dHRlckJ5SWQsIHJlZ1QxLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIocHJvcGVydHkpLCBvcHRp
b25zLCByZWdUMyk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9nZXR0ZXJfc2V0dGVyKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgSklU
OjplbWl0X29wX3B1dF9nZXR0ZXJfc2V0dGVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgZW1pdExvYWRQYXlsb2FkKGJhc2UsIHJlZ1QxKTsKICAgICBlbWl0TG9hZFBheWxv
YWQoZ2V0dGVyLCByZWdUMyk7CiAgICAgZW1pdExvYWRQYXlsb2FkKHNldHRlciwgcmVnVDQpOwot
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCByZWdUMSwgbV9jb2Rl
QmxvY2stPmlkZW50aWZpZXIocHJvcGVydHkpLmltcGwoKSwgYXR0cmlidXRlLCByZWdUMywgcmVn
VDQpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyLCByZWdUMSwg
Jm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKHByb3BlcnR5KSwgYXR0cmlidXRlLCByZWdUMywgcmVn
VDQpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfZ2V0dGVyX2J5X3ZhbChJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9kZmctcHV0LWFjY2Vzc29ycy1ieS1pZC1jbGFzcy5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1hY2Nlc3NvcnMtYnktaWQtY2xhc3Mu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiN2FjNWI1M2YwOTJmZGZiODMyNjkx
MjlmYWNmODFhMThhMmE0YjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LWFjY2Vz
c29ycy1ieS1pZC1jbGFzcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLWZ1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBl
Y3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwot
fQotCi1mdW5jdGlvbiB0ZXN0QXR0cmlidXRlKG9iamVjdCwgbmFtZSwgdHlwZSkgewotICAgIHNo
b3VsZEJlKFJlZmxlY3QuaGFzKG9iamVjdCwgbmFtZSksIHRydWUpOwotICAgIGxldCBkZXNjID0g
UmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBuYW1lKTsKLSAgICBzaG91
bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwgdHJ1ZSk7Ci0gICAgc2hvdWxkQmUoZGVzYy5lbnVtZXJh
YmxlLCBmYWxzZSk7Ci0gICAgaWYgKHR5cGUgPT09ICdnZXQnKSB7Ci0gICAgICAgIHNob3VsZEJl
KHR5cGVvZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7Ci0gICAgICAgIHNob3VsZEJlKHR5cGVvZiBk
ZXNjLnNldCwgJ3VuZGVmaW5lZCcpOwotICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NldCcpIHsK
LSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAndW5kZWZpbmVkJyk7Ci0gICAgICAg
IHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9uJyk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rpb24nKTsKLSAgICAgICAgc2hv
dWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsKLSAgICB9Ci19Ci1ub0lubGluZSh0
ZXN0QXR0cmlidXRlKTsKLQotZnVuY3Rpb24gZ2V0dGVyKCkKLXsKLSAgICBjbGFzcyBDb2NvYSB7
Ci0gICAgICAgIGdldCBoZWxsbygpIHsKLSAgICAgICAgICAgIHJldHVybiA0MjsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIGxldCBvYmplY3QgPSBuZXcgQ29jb2EoKTsKLSAgICB0ZXN0QXR0cmli
dXRlKG9iamVjdC5fX3Byb3RvX18sICdoZWxsbycsICdnZXQnKTsKLSAgICByZXR1cm4gb2JqZWN0
LmhlbGxvOwotfQotbm9JbmxpbmUoZ2V0dGVyKTsKLQotZnVuY3Rpb24gc2V0dGVyKCkKLXsKLSAg
ICBjbGFzcyBDb2NvYSB7Ci0gICAgICAgIGNvbnN0cnVjdG9yKCkgewotICAgICAgICAgICAgdGhp
cy52YWx1ZSA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgc2V0IGhlbGxvKHZhbHVlKSB7Ci0gICAg
ICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBsZXQg
b2JqZWN0ID0gbmV3IENvY29hKCk7Ci0gICAgdGVzdEF0dHJpYnV0ZShvYmplY3QuX19wcm90b19f
LCAnaGVsbG8nLCAnc2V0Jyk7Ci0gICAgb2JqZWN0LmhlbGxvID0gNDI7Ci0gICAgcmV0dXJuIG9i
amVjdC52YWx1ZTsKLQotfQotbm9JbmxpbmUoc2V0dGVyKTsKLQotZnVuY3Rpb24gYWNjZXNzb3Jz
KCkKLXsKLSAgICBjbGFzcyBDb2NvYSB7Ci0gICAgICAgIGNvbnN0cnVjdG9yKCkgewotICAgICAg
ICAgICAgdGhpcy52YWx1ZSA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgZ2V0IGhlbGxvKCkgewot
ICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7Ci0gICAgICAgIH0KLSAgICAgICAgc2V0IGhl
bGxvKHZhbHVlKSB7Ci0gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBsZXQgb2JqZWN0ID0gbmV3IENvY29hKCk7Ci0gICAgdGVzdEF0dHJpYnV0
ZShvYmplY3QuX19wcm90b19fLCAnaGVsbG8nLCAnZ2V0c2V0Jyk7Ci0gICAgb2JqZWN0LmhlbGxv
ID0gNDI7Ci0gICAgcmV0dXJuIG9iamVjdC5oZWxsbzsKLX0KLW5vSW5saW5lKGFjY2Vzc29ycyk7
Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgewotICAgIHNob3VsZEJlKGdldHRl
cigpLCA0Mik7Ci0gICAgc2hvdWxkQmUoc2V0dGVyKCksIDQyKTsKLSAgICBzaG91bGRCZShhY2Nl
c3NvcnMoKSwgNDIpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9kZmctcHV0LWFjY2Vzc29ycy1ieS1pZC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1hY2Nlc3NvcnMtYnktaWQuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGI0NmRjNzhkNTk1ZDc5NTNlNTU5MTExM2QzNzY0ZTM3OTZhMTdiMmIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LWFjY2Vzc29ycy1ieS1pZC5qcworKysg
L2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhw
ZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiB0ZXN0QXR0cmli
dXRlKG9iamVjdCwgbmFtZSwgdHlwZSkgewotICAgIHNob3VsZEJlKFJlZmxlY3QuaGFzKG9iamVj
dCwgbmFtZSksIHRydWUpOwotICAgIGxldCBkZXNjID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Iob2JqZWN0LCBuYW1lKTsKLSAgICBzaG91bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwg
dHJ1ZSk7Ci0gICAgc2hvdWxkQmUoZGVzYy5lbnVtZXJhYmxlLCB0cnVlKTsKLSAgICBpZiAodHlw
ZSA9PT0gJ2dldCcpIHsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rp
b24nKTsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAndW5kZWZpbmVkJyk7Ci0g
ICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2V0JykgewotICAgICAgICBzaG91bGRCZSh0eXBlb2Yg
ZGVzYy5nZXQsICd1bmRlZmluZWQnKTsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0
LCAnZnVuY3Rpb24nKTsKLSAgICB9IGVsc2UgewotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVz
Yy5nZXQsICdmdW5jdGlvbicpOwotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdm
dW5jdGlvbicpOwotICAgIH0KLX0KLW5vSW5saW5lKHRlc3RBdHRyaWJ1dGUpOwotCi1mdW5jdGlv
biBnZXR0ZXIoKQotewotICAgIHZhciBvYmplY3QgPSB7Ci0gICAgICAgIGdldCBoZWxsbygpIHsK
LSAgICAgICAgICAgIHJldHVybiA0MjsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICB0ZXN0QXR0
cmlidXRlKG9iamVjdCwgJ2hlbGxvJywgJ2dldCcpOwotICAgIHJldHVybiBvYmplY3QuaGVsbG87
Ci19Ci1ub0lubGluZShnZXR0ZXIpOwotCi1mdW5jdGlvbiBzZXR0ZXIoKQotewotICAgIHZhciBv
YmplY3QgPSB7Ci0gICAgICAgIHZhbHVlOiAwLAotICAgICAgICBzZXQgaGVsbG8odmFsdWUpIHsK
LSAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgfQotICAgIH07Ci0KLSAg
ICB0ZXN0QXR0cmlidXRlKG9iamVjdCwgJ2hlbGxvJywgJ3NldCcpOwotICAgIG9iamVjdC5oZWxs
byA9IDQyOwotICAgIHJldHVybiBvYmplY3QudmFsdWU7Ci0KLX0KLW5vSW5saW5lKHNldHRlcik7
Ci0KLWZ1bmN0aW9uIGFjY2Vzc29ycygpCi17Ci0gICAgdmFyIG9iamVjdCA9IHsKLSAgICAgICAg
dmFsdWU6IDAsCi0gICAgICAgIGdldCBoZWxsbygpIHsKLSAgICAgICAgICAgIHJldHVybiB0aGlz
LnZhbHVlOwotICAgICAgICB9LAotICAgICAgICBzZXQgaGVsbG8odmFsdWUpIHsKLSAgICAgICAg
ICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICB0ZXN0QXR0
cmlidXRlKG9iamVjdCwgJ2hlbGxvJywgJ2dldHNldCcpOwotICAgIG9iamVjdC5oZWxsbyA9IDQy
OwotICAgIHJldHVybiBvYmplY3QuaGVsbG87Ci19Ci1ub0lubGluZShhY2Nlc3NvcnMpOwotCi1m
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKLSAgICBzaG91bGRCZShnZXR0ZXIoKSwg
NDIpOwotICAgIHNob3VsZEJlKHNldHRlcigpLCA0Mik7Ci0gICAgc2hvdWxkQmUoYWNjZXNzb3Jz
KCksIDQyKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZGZnLXB1dC1nZXR0ZXItYnktaWQtY2xhc3MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LWlkLWNsYXNzLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ZjRkNmU2ZWVhMmU2NGYyMjQ4NDgzY2RiZDY2NjM0YzM1NmI0ZjVm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1nZXR0ZXItYnktaWQtY2xhc3MuanMK
KysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWws
IGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93
IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKLX0KLQotZnVuY3Rpb24gdGVzdEF0
dHJpYnV0ZShvYmplY3QsIG5hbWUsIHR5cGUpIHsKLSAgICBzaG91bGRCZShSZWZsZWN0Lmhhcyhv
YmplY3QsIG5hbWUpLCB0cnVlKTsKLSAgICBsZXQgZGVzYyA9IFJlZmxlY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKG9iamVjdCwgbmFtZSk7Ci0gICAgc2hvdWxkQmUoZGVzYy5jb25maWd1cmFi
bGUsIHRydWUpOwotICAgIHNob3VsZEJlKGRlc2MuZW51bWVyYWJsZSwgZmFsc2UpOwotICAgIGlm
ICh0eXBlID09PSAnZ2V0JykgewotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdm
dW5jdGlvbicpOwotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICd1bmRlZmluZWQn
KTsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzZXQnKSB7Ci0gICAgICAgIHNob3VsZEJlKHR5
cGVvZiBkZXNjLmdldCwgJ3VuZGVmaW5lZCcpOwotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVz
Yy5zZXQsICdmdW5jdGlvbicpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNob3VsZEJlKHR5cGVv
ZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7Ci0gICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNl
dCwgJ2Z1bmN0aW9uJyk7Ci0gICAgfQotfQotbm9JbmxpbmUodGVzdEF0dHJpYnV0ZSk7Ci0KLWZ1
bmN0aW9uIGdldHRlcihuYW1lKQotewotICAgIGNsYXNzIENvY29hIHsKLSAgICAgICAgY29uc3Ry
dWN0b3IoKSB7Ci0gICAgICAgICAgICB0aGlzLm9rID0gNDI7Ci0gICAgICAgIH0KLSAgICAgICAg
Z2V0IGhlbGxvKCkgewotICAgICAgICAgICAgcmV0dXJuIHRoaXMub2s7Ci0gICAgICAgIH0KLSAg
ICAgICAgZ2V0IFtuYW1lXSgpIHsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGxldCBvYmplY3Qg
PSBuZXcgQ29jb2EoKTsKLSAgICB0ZXN0QXR0cmlidXRlKG9iamVjdC5fX3Byb3RvX18sICdoZWxs
bycsICdnZXQnKTsKLSAgICB0ZXN0QXR0cmlidXRlKG9iamVjdC5fX3Byb3RvX18sICdkdW1teScs
ICdnZXQnKTsKLSAgICByZXR1cm4gb2JqZWN0LmhlbGxvOwotfQotbm9JbmxpbmUoZ2V0dGVyKTsK
LQotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQotICAgIHNob3VsZEJlKGdldHRlcign
ZHVtbXknKSwgNDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9kZmctcHV0LWdldHRlci1ieS1pZC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZGZnLXB1dC1nZXR0ZXItYnktaWQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDQ1ODkzZTc0NDFmZDcwZDJkNmQwZjA3ZGM5MWMwY2RlMmRiNzVhMTAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LWdldHRlci1ieS1pZC5qcworKysgL2Rldi9udWxsCkBA
IC0xLDM5ICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAg
ICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQg
dmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiB0ZXN0QXR0cmlidXRlKG9iamVjdCwg
bmFtZSwgdHlwZSkgewotICAgIHNob3VsZEJlKFJlZmxlY3QuaGFzKG9iamVjdCwgbmFtZSksIHRy
dWUpOwotICAgIGxldCBkZXNjID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2Jq
ZWN0LCBuYW1lKTsKLSAgICBzaG91bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwgdHJ1ZSk7Ci0gICAg
c2hvdWxkQmUoZGVzYy5lbnVtZXJhYmxlLCB0cnVlKTsKLSAgICBpZiAodHlwZSA9PT0gJ2dldCcp
IHsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rpb24nKTsKLSAgICAg
ICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAndW5kZWZpbmVkJyk7Ci0gICAgfSBlbHNlIGlm
ICh0eXBlID09PSAnc2V0JykgewotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICd1
bmRlZmluZWQnKTsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24n
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5j
dGlvbicpOwotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicpOwot
ICAgIH0KLX0KLW5vSW5saW5lKHRlc3RBdHRyaWJ1dGUpOwotCi1mdW5jdGlvbiBnZXR0ZXIobmFt
ZSkKLXsKLSAgICB2YXIgb2JqZWN0ID0gewotICAgICAgICBnZXQgaGVsbG8oKSB7Ci0gICAgICAg
ICAgICByZXR1cm4gdGhpcy5vazsKLSAgICAgICAgfSwKLSAgICAgICAgW25hbWVdOiA0MgotICAg
IH07Ci0KLSAgICB0ZXN0QXR0cmlidXRlKG9iamVjdCwgJ2hlbGxvJywgJ2dldCcpOwotICAgIHJl
dHVybiBvYmplY3QuaGVsbG87Ci19Ci1ub0lubGluZShnZXR0ZXIpOwotCi1mb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpCi0gICAgc2hvdWxkQmUoZ2V0dGVyKCdvaycpLCA0Mik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVy
LWJ5LXZhbC1jbGFzcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZn
LXB1dC1nZXR0ZXItYnktdmFsLWNsYXNzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwZWI1YzQxODVkZjBmZTM4ZDkyOWJjNDNhZDdjYjY1MWUwZGQ1ZTJjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZGZnLXB1dC1nZXR0ZXItYnktdmFsLWNsYXNzLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsNDIgKzAsMCBAQAotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewot
ICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jh
ZCB2YWx1ZTogJyArIGFjdHVhbCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RBdHRyaWJ1dGUob2JqZWN0
LCBuYW1lLCB0eXBlKSB7Ci0gICAgc2hvdWxkQmUoUmVmbGVjdC5oYXMob2JqZWN0LCBuYW1lKSwg
dHJ1ZSk7Ci0gICAgbGV0IGRlc2MgPSBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihv
YmplY3QsIG5hbWUpOwotICAgIHNob3VsZEJlKGRlc2MuY29uZmlndXJhYmxlLCB0cnVlKTsKLSAg
ICBzaG91bGRCZShkZXNjLmVudW1lcmFibGUsIGZhbHNlKTsKLSAgICBpZiAodHlwZSA9PT0gJ2dl
dCcpIHsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rpb24nKTsKLSAg
ICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAndW5kZWZpbmVkJyk7Ci0gICAgfSBlbHNl
IGlmICh0eXBlID09PSAnc2V0JykgewotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQs
ICd1bmRlZmluZWQnKTsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rp
b24nKTsKLSAgICB9IGVsc2UgewotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5nZXQsICdm
dW5jdGlvbicpOwotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicp
OwotICAgIH0KLX0KLW5vSW5saW5lKHRlc3RBdHRyaWJ1dGUpOwotCi1mdW5jdGlvbiBnZXR0ZXIo
bmFtZSkKLXsKLSAgICBjbGFzcyBDb2NvYSB7Ci0gICAgICAgIGNvbnN0cnVjdG9yKCkgewotICAg
ICAgICAgICAgdGhpcy5vayA9IDQyOwotICAgICAgICB9Ci0gICAgICAgIGdldCBbbmFtZV0oKSB7
Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5vazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGxl
dCBvYmplY3QgPSBuZXcgQ29jb2EoKTsKLSAgICB0ZXN0QXR0cmlidXRlKG9iamVjdC5fX3Byb3Rv
X18sICdoZWxsbycsICdnZXQnKTsKLSAgICByZXR1cm4gb2JqZWN0LmhlbGxvOwotfQotbm9Jbmxp
bmUoZ2V0dGVyKTsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQotICAgIHNob3Vs
ZEJlKGdldHRlcignaGVsbG8nKSwgNDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LWdldHRlci1ieS12YWwuanMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LXZhbC5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzRiNjE0YThjY2UzYzZjMWYxNWVmOGU3NTkxYWMzNjU1YTRm
NzdiZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtZ2V0dGVyLWJ5LXZhbC5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwg
ZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiB0ZXN0QXR0
cmlidXRlKG9iamVjdCwgbmFtZSwgdHlwZSkgewotICAgIHNob3VsZEJlKFJlZmxlY3QuaGFzKG9i
amVjdCwgbmFtZSksIHRydWUpOwotICAgIGxldCBkZXNjID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3Iob2JqZWN0LCBuYW1lKTsKLSAgICBzaG91bGRCZShkZXNjLmNvbmZpZ3VyYWJs
ZSwgdHJ1ZSk7Ci0gICAgc2hvdWxkQmUoZGVzYy5lbnVtZXJhYmxlLCB0cnVlKTsKLSAgICBpZiAo
dHlwZSA9PT0gJ2dldCcpIHsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVu
Y3Rpb24nKTsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAndW5kZWZpbmVkJyk7
Ci0gICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2V0JykgewotICAgICAgICBzaG91bGRCZSh0eXBl
b2YgZGVzYy5nZXQsICd1bmRlZmluZWQnKTsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Mu
c2V0LCAnZnVuY3Rpb24nKTsKLSAgICB9IGVsc2UgewotICAgICAgICBzaG91bGRCZSh0eXBlb2Yg
ZGVzYy5nZXQsICdmdW5jdGlvbicpOwotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQs
ICdmdW5jdGlvbicpOwotICAgIH0KLX0KLW5vSW5saW5lKHRlc3RBdHRyaWJ1dGUpOwotCi1mdW5j
dGlvbiBnZXR0ZXIobmFtZSkKLXsKLSAgICB2YXIgb2JqZWN0ID0gewotICAgICAgICBvazogNDIs
Ci0gICAgICAgIGdldCBbbmFtZV0oKSB7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5vazsKLSAg
ICAgICAgfQotICAgIH07Ci0KLSAgICB0ZXN0QXR0cmlidXRlKG9iamVjdCwgJ2hlbGxvJywgJ2dl
dCcpOwotICAgIHJldHVybiBvYmplY3QuaGVsbG87Ci19Ci1ub0lubGluZShnZXR0ZXIpOwotCi1m
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCi0gICAgc2hvdWxkQmUoZ2V0dGVyKCdoZWxs
bycpLCA0Mik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2RmZy1wdXQtc2V0dGVyLWJ5LWlkLWNsYXNzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9kZmctcHV0LXNldHRlci1ieS1pZC1jbGFzcy5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYmI1Yjc5ZDk5MmIxMzk5ZjAzZjNjZGU4Mjg4MzZhMTA5NTNhZjJhMy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtc2V0dGVyLWJ5LWlkLWNsYXNzLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgewotICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQotICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RBdHRy
aWJ1dGUob2JqZWN0LCBuYW1lLCB0eXBlKSB7Ci0gICAgc2hvdWxkQmUoUmVmbGVjdC5oYXMob2Jq
ZWN0LCBuYW1lKSwgdHJ1ZSk7Ci0gICAgbGV0IGRlc2MgPSBSZWZsZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihvYmplY3QsIG5hbWUpOwotICAgIHNob3VsZEJlKGRlc2MuY29uZmlndXJhYmxl
LCB0cnVlKTsKLSAgICBzaG91bGRCZShkZXNjLmVudW1lcmFibGUsIGZhbHNlKTsKLSAgICBpZiAo
dHlwZSA9PT0gJ2dldCcpIHsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVu
Y3Rpb24nKTsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAndW5kZWZpbmVkJyk7
Ci0gICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2V0JykgewotICAgICAgICBzaG91bGRCZSh0eXBl
b2YgZGVzYy5nZXQsICd1bmRlZmluZWQnKTsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Mu
c2V0LCAnZnVuY3Rpb24nKTsKLSAgICB9IGVsc2UgewotICAgICAgICBzaG91bGRCZSh0eXBlb2Yg
ZGVzYy5nZXQsICdmdW5jdGlvbicpOwotICAgICAgICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQs
ICdmdW5jdGlvbicpOwotICAgIH0KLX0KLW5vSW5saW5lKHRlc3RBdHRyaWJ1dGUpOwotCi1mdW5j
dGlvbiBnZXR0ZXIobmFtZSkKLXsKLSAgICBjbGFzcyBDb2NvYSB7Ci0gICAgICAgIGNvbnN0cnVj
dG9yKCkgewotICAgICAgICAgICAgdGhpcy5vayA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgc2V0
IGhlbGxvKHZhbHVlKSB7Ci0gICAgICAgICAgICB0aGlzLm9rID0gdmFsdWU7Ci0gICAgICAgIH0K
LSAgICAgICAgZ2V0IFtuYW1lXSgpIHsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGxldCBvYmpl
Y3QgPSBuZXcgQ29jb2EoKTsKLSAgICB0ZXN0QXR0cmlidXRlKG9iamVjdC5fX3Byb3RvX18sICdo
ZWxsbycsICdzZXQnKTsKLSAgICB0ZXN0QXR0cmlidXRlKG9iamVjdC5fX3Byb3RvX18sICdkdW1t
eScsICdnZXQnKTsKLSAgICBvYmplY3QuaGVsbG8gPSA0MjsKLSAgICByZXR1cm4gb2JqZWN0Lm9r
OwotfQotbm9JbmxpbmUoZ2V0dGVyKTsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytp
KQotICAgIHNob3VsZEJlKGdldHRlcignZHVtbXknKSwgNDIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LXNldHRlci1ieS1pZC5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1zZXR0ZXItYnktaWQuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmNmYzYjk4Y2MxMWQ1MTgxYTIwMDNmOWVj
OWJjNmNjZjE1OWNhMzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LXNldHRlci1i
eS1pZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlv
biB0ZXN0QXR0cmlidXRlKG9iamVjdCwgbmFtZSwgdHlwZSkgewotICAgIHNob3VsZEJlKFJlZmxl
Y3QuaGFzKG9iamVjdCwgbmFtZSksIHRydWUpOwotICAgIGxldCBkZXNjID0gUmVmbGVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBuYW1lKTsKLSAgICBzaG91bGRCZShkZXNjLmNv
bmZpZ3VyYWJsZSwgdHJ1ZSk7Ci0gICAgc2hvdWxkQmUoZGVzYy5lbnVtZXJhYmxlLCB0cnVlKTsK
LSAgICBpZiAodHlwZSA9PT0gJ2dldCcpIHsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Mu
Z2V0LCAnZnVuY3Rpb24nKTsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAndW5k
ZWZpbmVkJyk7Ci0gICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2V0JykgewotICAgICAgICBzaG91
bGRCZSh0eXBlb2YgZGVzYy5nZXQsICd1bmRlZmluZWQnKTsKLSAgICAgICAgc2hvdWxkQmUodHlw
ZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsKLSAgICB9IGVsc2UgewotICAgICAgICBzaG91bGRC
ZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5jdGlvbicpOwotICAgICAgICBzaG91bGRCZSh0eXBlb2Yg
ZGVzYy5zZXQsICdmdW5jdGlvbicpOwotICAgIH0KLX0KLW5vSW5saW5lKHRlc3RBdHRyaWJ1dGUp
OwotCi1mdW5jdGlvbiBzZXR0ZXIobmFtZSkKLXsKLSAgICB2YXIgb2JqZWN0ID0gewotICAgICAg
ICBzZXQgaGVsbG8odmFsdWUpIHsKLSAgICAgICAgICAgIHRoaXMub2sgPSB2YWx1ZTsKLSAgICAg
ICAgfSwKLSAgICAgICAgW25hbWVdOiAwCi0gICAgfTsKLQotICAgIHRlc3RBdHRyaWJ1dGUob2Jq
ZWN0LCAnaGVsbG8nLCAnc2V0Jyk7Ci0gICAgb2JqZWN0LmhlbGxvID0gNDI7Ci0gICAgcmV0dXJu
IG9iamVjdC5vazsKLQotfQotbm9JbmxpbmUoc2V0dGVyKTsKLQotZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgKytpKQotICAgIHNob3VsZEJlKHNldHRlcignb2snKSwgNDIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZmctcHV0LXNldHRlci1ieS12
YWwtY2xhc3MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQt
c2V0dGVyLWJ5LXZhbC1jbGFzcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjI5
YzllY2ZkNDNmZmFjNGI1MDhjMzc0YjA5MGY3Y2I5MzAzMzBiZi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2RmZy1wdXQtc2V0dGVyLWJ5LXZhbC1jbGFzcy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDQ0ICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBp
ZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFs
dWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiB0ZXN0QXR0cmlidXRlKG9iamVjdCwgbmFt
ZSwgdHlwZSkgewotICAgIHNob3VsZEJlKFJlZmxlY3QuaGFzKG9iamVjdCwgbmFtZSksIHRydWUp
OwotICAgIGxldCBkZXNjID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0
LCBuYW1lKTsKLSAgICBzaG91bGRCZShkZXNjLmNvbmZpZ3VyYWJsZSwgdHJ1ZSk7Ci0gICAgc2hv
dWxkQmUoZGVzYy5lbnVtZXJhYmxlLCBmYWxzZSk7Ci0gICAgaWYgKHR5cGUgPT09ICdnZXQnKSB7
Ci0gICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7Ci0gICAgICAg
IHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ3VuZGVmaW5lZCcpOwotICAgIH0gZWxzZSBpZiAo
dHlwZSA9PT0gJ3NldCcpIHsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAndW5k
ZWZpbmVkJyk7Ci0gICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9uJyk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2MuZ2V0LCAnZnVuY3Rp
b24nKTsKLSAgICAgICAgc2hvdWxkQmUodHlwZW9mIGRlc2Muc2V0LCAnZnVuY3Rpb24nKTsKLSAg
ICB9Ci19Ci1ub0lubGluZSh0ZXN0QXR0cmlidXRlKTsKLQotZnVuY3Rpb24gc2V0dGVyKG5hbWUp
Ci17Ci0gICAgY2xhc3MgQ29jb2EgewotICAgICAgICBjb25zdHJ1Y3RvcigpIHsKLSAgICAgICAg
ICAgIHRoaXMub2sgPSAwOwotICAgICAgICB9Ci0gICAgICAgIHNldCBbbmFtZV0odmFsdWUpIHsK
LSAgICAgICAgICAgIHRoaXMub2sgPSB2YWx1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGxl
dCBvYmplY3QgPSBuZXcgQ29jb2EoKTsKLSAgICB0ZXN0QXR0cmlidXRlKG9iamVjdC5fX3Byb3Rv
X18sICdoZWxsbycsICdzZXQnKTsKLSAgICBvYmplY3QuaGVsbG8gPSA0MjsKLSAgICByZXR1cm4g
b2JqZWN0Lm9rOwotCi19Ci1ub0lubGluZShzZXR0ZXIpOwotCi1mb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwOyArK2kpCi0gICAgc2hvdWxkQmUoc2V0dGVyKCdoZWxsbycpLCA0Mik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy1wdXQtc2V0dGVyLWJ5
LXZhbC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZnLXB1dC1zZXR0
ZXItYnktdmFsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTM1NDZiNjJmMDY1
Nzk1Y2MxOGY1ODFlMGI2NjdmYzI2NWY0MGRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZn
LXB1dC1zZXR0ZXItYnktdmFsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewotICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3RBdHRyaWJ1dGUob2JqZWN0LCBuYW1lLCB0eXBlKSB7Ci0gICAg
c2hvdWxkQmUoUmVmbGVjdC5oYXMob2JqZWN0LCBuYW1lKSwgdHJ1ZSk7Ci0gICAgbGV0IGRlc2Mg
PSBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIG5hbWUpOwotICAgIHNo
b3VsZEJlKGRlc2MuY29uZmlndXJhYmxlLCB0cnVlKTsKLSAgICBzaG91bGRCZShkZXNjLmVudW1l
cmFibGUsIHRydWUpOwotICAgIGlmICh0eXBlID09PSAnZ2V0JykgewotICAgICAgICBzaG91bGRC
ZSh0eXBlb2YgZGVzYy5nZXQsICdmdW5jdGlvbicpOwotICAgICAgICBzaG91bGRCZSh0eXBlb2Yg
ZGVzYy5zZXQsICd1bmRlZmluZWQnKTsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzZXQnKSB7
Ci0gICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ3VuZGVmaW5lZCcpOwotICAgICAg
ICBzaG91bGRCZSh0eXBlb2YgZGVzYy5zZXQsICdmdW5jdGlvbicpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIHNob3VsZEJlKHR5cGVvZiBkZXNjLmdldCwgJ2Z1bmN0aW9uJyk7Ci0gICAgICAgIHNo
b3VsZEJlKHR5cGVvZiBkZXNjLnNldCwgJ2Z1bmN0aW9uJyk7Ci0gICAgfQotfQotbm9JbmxpbmUo
dGVzdEF0dHJpYnV0ZSk7Ci0KLWZ1bmN0aW9uIHNldHRlcihuYW1lKQotewotICAgIHZhciBvYmpl
Y3QgPSB7Ci0gICAgICAgIG9rOiAwLAotICAgICAgICBzZXQgW25hbWVdKHZhbHVlKSB7Ci0gICAg
ICAgICAgICB0aGlzLm9rID0gdmFsdWU7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgdGVzdEF0
dHJpYnV0ZShvYmplY3QsICdoZWxsbycsICdzZXQnKTsKLSAgICBvYmplY3QuaGVsbG8gPSA0MjsK
LSAgICByZXR1cm4gb2JqZWN0Lm9rOwotCi19Ci1ub0lubGluZShzZXR0ZXIpOwotCi1mb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCi0gICAgc2hvdWxkQmUoc2V0dGVyKCdoZWxsbycpLCA0
Mik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>