<?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>177507</bug_id>
          
          <creation_ts>2017-09-26 14:21:52 -0700</creation_ts>
          <short_desc>REGRESSION(r222518): Break the High Sierra build (Requested by yusukesuzuki on #webkit).</short_desc>
          <delta_ts>2017-09-27 12:14:56 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>177281</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1352838</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 14:21:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/222518 broke the build:
Break the High Sierra build (Requested by yusukesuzuki 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>1352840</commentid>
    <comment_count>1</comment_count>
      <attachid>321870</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 14:22:10 -0700</bug_when>
    <thetext>Created attachment 321870
ROLLOUT of r222518

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>1352845</commentid>
    <comment_count>2</comment_count>
      <attachid>321870</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 14:25:47 -0700</bug_when>
    <thetext>Comment on attachment 321870
ROLLOUT of r222518

Clearing flags on attachment: 321870

Committed r222523: &lt;http://trac.webkit.org/changeset/222523&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352846</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-26 14:25:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353231</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:14:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/34692862&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321870</attachid>
            <date>2017-09-26 14:22:10 -0700</date>
            <delta_ts>2017-09-26 14:25:47 -0700</delta_ts>
            <desc>ROLLOUT of r222518</desc>
            <filename>bug-177507-20170926172209.patch</filename>
            <type>text/plain</type>
            <size>62826</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
OGVjNjZiMDcwMjUyMzZmOTVmNDNhNmU1YjIyZTgyODk2ODZkZjI5Li42NTFjOWNjOTk3ZmM2YWIy
NmYwYTcxNGQ3Y2E2MTZmNjg4ZmRiM2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNy0wOS0yNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIyMjUxOC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzUwNworCisgICAg
ICAgIEJyZWFrIHRoZSBIaWdoIFNpZXJyYSBidWlsZCAoUmVxdWVzdGVkIGJ5IHl1c3VrZXN1enVr
aSBvbgorICAgICAgICAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisK
KyAgICAgICAgIkFkZCBBYm92ZS9CZWxvdyBjb21wYXJpc29ucyBmb3IgVUludDMyIHBhdHRlcm5z
IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3Mjgx
CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIyMjUxOAorCiAyMDE3
LTA5LTI2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAg
IEFkZCBBYm92ZS9CZWxvdyBjb21wYXJpc29ucyBmb3IgVUludDMyIHBhdHRlcm5zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAppbmRleCA5
YmMxMTdmMTk5MTRjNTM5ZTJkY2FlMzM3MmUzMWE0OWFkNmMyZWExLi41YWI3YjgxMzQ3YTBiNWVk
MTFhMzE0ODNlMWFhMjVkOWYzZGEyYWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKQEAgLTM2MCwxNiArMzYwLDYgQEAgdm9pZCBC
eXRlY29kZUR1bXBlcjxCbG9jaz46OnByaW50Q29uZGl0aW9uYWxKdW1wKFByaW50U3RyZWFtJiBv
dXQsIGNvbnN0IHR5cGVuYW0KIH0KIAogdGVtcGxhdGU8Y2xhc3MgQmxvY2s+Ci12b2lkIEJ5dGVj
b2RlRHVtcGVyPEJsb2NrPjo6cHJpbnRDb21wYXJlSnVtcChQcmludFN0cmVhbSYgb3V0LCBjb25z
dCB0eXBlbmFtZSBCbG9jazo6SW5zdHJ1Y3Rpb24qLCBjb25zdCB0eXBlbmFtZSBCbG9jazo6SW5z
dHJ1Y3Rpb24qJiBpdCwgaW50IGxvY2F0aW9uLCBjb25zdCBjaGFyKiBvcCkKLXsKLSAgICBpbnQg
cjAgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsK
LSAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgcHJpbnRMb2NhdGlvbkFu
ZE9wKG91dCwgbG9jYXRpb24sIGl0LCBvcCk7Ci0gICAgb3V0LnByaW50ZigiJXMsICVzLCAlZCgt
PiVkKSIsIHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSwg
b2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIEJsb2NrPgog
dm9pZCBCeXRlY29kZUR1bXBlcjxCbG9jaz46OnByaW50R2V0QnlJZE9wKFByaW50U3RyZWFtJiBv
dXQsIGludCBsb2NhdGlvbiwgY29uc3QgdHlwZW5hbWUgQmxvY2s6Okluc3RydWN0aW9uKiYgaXQp
CiB7CiAgICAgY29uc3QgY2hhciogb3A7CkBAIC04NDQsMTQgKzgzNCw2IEBAIHZvaWQgQnl0ZWNv
ZGVEdW1wZXI8QmxvY2s+OjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgdHlw
ZW5hbWUgQmxvY2s6CiAgICAgICAgIHByaW50QmluYXJ5T3Aob3V0LCBsb2NhdGlvbiwgaXQsICJn
cmVhdGVyZXEiKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2Ugb3BfYmVsb3c6IHsK
LSAgICAgICAgcHJpbnRCaW5hcnlPcChvdXQsIGxvY2F0aW9uLCBpdCwgImJlbG93Iik7Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIG9wX2JlbG93ZXE6IHsKLSAgICAgICAgcHJpbnRC
aW5hcnlPcChvdXQsIGxvY2F0aW9uLCBpdCwgImJlbG93ZXEiKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgfQogICAgIGNhc2Ugb3BfaW5jOiB7CiAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVy
YW5kOwogICAgICAgICBwcmludExvY2F0aW9uT3BBbmRSZWdpc3Rlck9wZXJhbmQob3V0LCBsb2Nh
dGlvbiwgaXQsICJpbmMiLCByMCk7CkBAIC0xMjE1LDQzICsxMTk3LDY3IEBAIHZvaWQgQnl0ZWNv
ZGVEdW1wZXI8QmxvY2s+OjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgdHlw
ZW5hbWUgQmxvY2s6CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIG9wX2psZXNzOiB7
Ci0gICAgICAgIHByaW50Q29tcGFyZUp1bXAob3V0LCBiZWdpbiwgaXQsIGxvY2F0aW9uLCAiamxl
c3MiKTsKKyAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgIGludCBy
MSA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9w
ZXJhbmQ7CisgICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGxvY2F0aW9uLCBpdCwgImps
ZXNzIik7CisgICAgICAgIG91dC5wcmludGYoIiVzLCAlcywgJWQoLT4lZCkiLCByZWdpc3Rlck5h
bWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24g
KyBvZmZzZXQpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBvcF9qbGVzc2VxOiB7
Ci0gICAgICAgIHByaW50Q29tcGFyZUp1bXAob3V0LCBiZWdpbiwgaXQsIGxvY2F0aW9uLCAiamxl
c3NlcSIpOworICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgaW50
IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUu
b3BlcmFuZDsKKyAgICAgICAgcHJpbnRMb2NhdGlvbkFuZE9wKG91dCwgbG9jYXRpb24sIGl0LCAi
amxlc3NlcSIpOworICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVkKC0+JWQpIiwgcmVnaXN0
ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0
aW9uICsgb2Zmc2V0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ugb3BfamdyZWF0
ZXI6IHsKLSAgICAgICAgcHJpbnRDb21wYXJlSnVtcChvdXQsIGJlZ2luLCBpdCwgbG9jYXRpb24s
ICJqZ3JlYXRlciIpOworICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAg
ICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgIGludCBvZmZzZXQgPSAoKytp
dCktPnUub3BlcmFuZDsKKyAgICAgICAgcHJpbnRMb2NhdGlvbkFuZE9wKG91dCwgbG9jYXRpb24s
IGl0LCAiamdyZWF0ZXIiKTsKKyAgICAgICAgb3V0LnByaW50ZigiJXMsICVzLCAlZCgtPiVkKSIs
IHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSwgb2Zmc2V0
LCBsb2NhdGlvbiArIG9mZnNldCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIG9w
X2pncmVhdGVyZXE6IHsKLSAgICAgICAgcHJpbnRDb21wYXJlSnVtcChvdXQsIGJlZ2luLCBpdCwg
bG9jYXRpb24sICJqZ3JlYXRlcmVxIik7CisgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVy
YW5kOworICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgaW50IG9m
ZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICBwcmludExvY2F0aW9uQW5kT3Aob3V0
LCBsb2NhdGlvbiwgaXQsICJqZ3JlYXRlcmVxIik7CisgICAgICAgIG91dC5wcmludGYoIiVzLCAl
cywgJWQoLT4lZCkiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIxKS5k
YXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgY2FzZSBvcF9qbmxlc3M6IHsKLSAgICAgICAgcHJpbnRDb21wYXJlSnVtcChvdXQsIGJl
Z2luLCBpdCwgbG9jYXRpb24sICJqbmxlc3MiKTsKKyAgICAgICAgaW50IHIwID0gKCsraXQpLT51
Lm9wZXJhbmQ7CisgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICBp
bnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgIHByaW50TG9jYXRpb25BbmRP
cChvdXQsIGxvY2F0aW9uLCBpdCwgImpubGVzcyIpOworICAgICAgICBvdXQucHJpbnRmKCIlcywg
JXMsICVkKC0+JWQpIiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSku
ZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGNhc2Ugb3Bfam5sZXNzZXE6IHsKLSAgICAgICAgcHJpbnRDb21wYXJlSnVtcChvdXQs
IGJlZ2luLCBpdCwgbG9jYXRpb24sICJqbmxlc3NlcSIpOworICAgICAgICBpbnQgcjAgPSAoKytp
dCktPnUub3BlcmFuZDsKKyAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAg
ICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgcHJpbnRMb2NhdGlv
bkFuZE9wKG91dCwgbG9jYXRpb24sIGl0LCAiam5sZXNzZXEiKTsKKyAgICAgICAgb3V0LnByaW50
ZigiJXMsICVzLCAlZCgtPiVkKSIsIHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgpLCByZWdpc3Rlck5h
bWUocjEpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBjYXNlIG9wX2puZ3JlYXRlcjogewotICAgICAgICBwcmludENvbXBhcmVK
dW1wKG91dCwgYmVnaW4sIGl0LCBsb2NhdGlvbiwgImpuZ3JlYXRlciIpOworICAgICAgICBpbnQg
cjAgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJh
bmQ7CisgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgcHJp
bnRMb2NhdGlvbkFuZE9wKG91dCwgbG9jYXRpb24sIGl0LCAiam5ncmVhdGVyIik7CisgICAgICAg
IG91dC5wcmludGYoIiVzLCAlcywgJWQoLT4lZCkiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBvcF9qbmdyZWF0ZXJlcTogewotICAgICAgICBw
cmludENvbXBhcmVKdW1wKG91dCwgYmVnaW4sIGl0LCBsb2NhdGlvbiwgImpuZ3JlYXRlcmVxIik7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIG9wX2piZWxvdzogewotICAgICAgICBw
cmludENvbXBhcmVKdW1wKG91dCwgYmVnaW4sIGl0LCBsb2NhdGlvbiwgImpiZWxvdyIpOwotICAg
ICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBvcF9qYmVsb3dlcTogewotICAgICAgICBwcmlu
dENvbXBhcmVKdW1wKG91dCwgYmVnaW4sIGl0LCBsb2NhdGlvbiwgImpiZWxvd2VxIik7CisgICAg
ICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICBpbnQgcjEgPSAoKytpdCkt
PnUub3BlcmFuZDsKKyAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAg
ICAgICBwcmludExvY2F0aW9uQW5kT3Aob3V0LCBsb2NhdGlvbiwgaXQsICJqbmdyZWF0ZXJlcSIp
OworICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVkKC0+JWQpIiwgcmVnaXN0ZXJOYW1lKHIw
KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zm
c2V0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ugb3BfbG9vcF9oaW50OiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5oCmluZGV4
IDdjZDA4Yzk1MjE3ZDRmYzVhYmI3YzM0Nzg2NjFmOTZmNzg2NjM4ODAuLjhmZTYwMzM3ZmE5MTAz
YWUyOTQ5ZjE5NjEyMGFiNmZhY2YxNTZkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5oCkBAIC02Nyw3ICs2Nyw2IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwcmludFVuYXJ5T3AoUHJpbnRTdHJlYW0mIG91dCwgaW50IGxvY2F0aW9uLCBjb25z
dCBJbnN0cnVjdGlvbiomIGl0LCBjb25zdCBjaGFyKiBvcCk7CiAgICAgdm9pZCBwcmludEJpbmFy
eU9wKFByaW50U3RyZWFtJiBvdXQsIGludCBsb2NhdGlvbiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiBp
dCwgY29uc3QgY2hhciogb3ApOwogICAgIHZvaWQgcHJpbnRDb25kaXRpb25hbEp1bXAoUHJpbnRT
dHJlYW0mIG91dCwgY29uc3QgSW5zdHJ1Y3Rpb24qLCBjb25zdCBJbnN0cnVjdGlvbiomIGl0LCBp
bnQgbG9jYXRpb24sIGNvbnN0IGNoYXIqIG9wKTsKLSAgICB2b2lkIHByaW50Q29tcGFyZUp1bXAo
UHJpbnRTdHJlYW0mIG91dCwgY29uc3QgSW5zdHJ1Y3Rpb24qLCBjb25zdCBJbnN0cnVjdGlvbiom
IGl0LCBpbnQgbG9jYXRpb24sIGNvbnN0IGNoYXIqIG9wKTsKICAgICB2b2lkIHByaW50R2V0QnlJ
ZE9wKFByaW50U3RyZWFtJiBvdXQsIGludCBsb2NhdGlvbiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiBp
dCk7CiAgICAgdm9pZCBwcmludEdldEJ5SWRDYWNoZVN0YXR1cyhQcmludFN0cmVhbSYgb3V0LCBp
bnQgbG9jYXRpb24sIGNvbnN0IFN0dWJJbmZvTWFwJik7CiAgICAgdm9pZCBwcmludFB1dEJ5SWRD
YWNoZVN0YXR1cyhQcmludFN0cmVhbSYgb3V0LCBpbnQgbG9jYXRpb24sIGNvbnN0IFN0dWJJbmZv
TWFwJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVMaXN0Lmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0
Lmpzb24KaW5kZXggOTRmM2ZmYmE4ODIyYTJjOTIxNWNmOTJkZjZhMGU3MDc2Y2JiMDlmYi4uOTEy
NzBkNmJiZjllMzdjMGZlN2JlOTU1YWJiYmI5ZWMxMGQ0YjI2OSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpAQCAtMzIsOCArMzIsNiBA
QAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfbGVzc2VxIiwgImxlbmd0aCIgOiA0IH0sCiAg
ICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9ncmVhdGVyIiwgImxlbmd0aCIgOiA0IH0sCiAgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF9ncmVhdGVyZXEiLCAibGVuZ3RoIiA6IDQgfSwKLSAgICAg
ICAgICAgIHsgIm5hbWUiIDogIm9wX2JlbG93IiwgImxlbmd0aCIgOiA0IH0sCi0gICAgICAgICAg
ICB7ICJuYW1lIiA6ICJvcF9iZWxvd2VxIiwgImxlbmd0aCIgOiA0IH0sCiAgICAgICAgICAgICB7
ICJuYW1lIiA6ICJvcF9pbmMiLCAibGVuZ3RoIiA6IDIgfSwKICAgICAgICAgICAgIHsgIm5hbWUi
IDogIm9wX2RlYyIsICJsZW5ndGgiIDogMiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3Bf
dG9fbnVtYmVyIiwgImxlbmd0aCIgOiA0IH0sCkBAIC0xMTMsOCArMTExLDYgQEAKICAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX2pubGVzc2VxIiwgImxlbmd0aCIgOiA0IH0sCiAgICAgICAgICAg
ICB7ICJuYW1lIiA6ICJvcF9qbmdyZWF0ZXIiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAg
IHsgIm5hbWUiIDogIm9wX2puZ3JlYXRlcmVxIiwgImxlbmd0aCIgOiA0IH0sCi0gICAgICAgICAg
ICB7ICJuYW1lIiA6ICJvcF9qYmVsb3ciLCAibGVuZ3RoIiA6IDQgfSwKLSAgICAgICAgICAgIHsg
Im5hbWUiIDogIm9wX2piZWxvd2VxIiwgImxlbmd0aCIgOiA0IH0sCiAgICAgICAgICAgICB7ICJu
YW1lIiA6ICJvcF9sb29wX2hpbnQiLCAibGVuZ3RoIiA6IDEgfSwKICAgICAgICAgICAgIHsgIm5h
bWUiIDogIm9wX3N3aXRjaF9pbW0iLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5h
bWUiIDogIm9wX3N3aXRjaF9jaGFyIiwgImxlbmd0aCIgOiA0IH0sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCmluZGV4IDk3NDlhZjdhNDNkZGIw
OTU5ZWUyYjhlZDlhMTk5YzIyMzgxZGMwYWEuLjIyZWQ4ZGYxMjMxYTA3OWI0NGY2MDUxZmUxZWIw
NTE5ZTUzYzRiMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZVVzZURlZi5oCkBAIC04NSw4ICs4NSw2IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29k
ZU9mZnNldChCbG9jayogY29kZUJsb2NrLCBPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3RpCiAg
ICAgY2FzZSBvcF9qbmdyZWF0ZXI6CiAgICAgY2FzZSBvcF9qbmdyZWF0ZXJlcToKICAgICBjYXNl
IG9wX2psZXNzOgotICAgIGNhc2Ugb3BfamJlbG93OgotICAgIGNhc2Ugb3BfamJlbG93ZXE6CiAg
ICAgY2FzZSBvcF9zZXRfZnVuY3Rpb25fbmFtZToKICAgICBjYXNlIG9wX2xvZ19zaGFkb3dfY2hp
Y2tlbl90YWlsOiB7CiAgICAgICAgIEFTU0VSVChvcGNvZGVMZW5ndGhzW29wY29kZUlEXSA+IDIp
OwpAQCAtMjM5LDggKzIzNyw2IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldChC
bG9jayogY29kZUJsb2NrLCBPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3RpCiAgICAgY2FzZSBv
cF9sZXNzZXE6CiAgICAgY2FzZSBvcF9ncmVhdGVyOgogICAgIGNhc2Ugb3BfZ3JlYXRlcmVxOgot
ICAgIGNhc2Ugb3BfYmVsb3c6Ci0gICAgY2FzZSBvcF9iZWxvd2VxOgogICAgIGNhc2Ugb3BfbnN0
cmljdGVxOgogICAgIGNhc2Ugb3Bfc3RyaWN0ZXE6CiAgICAgY2FzZSBvcF9uZXE6CkBAIC0zNDcs
OCArMzQzLDYgQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KEJsb2NrKiBjb2Rl
QmxvY2ssIE9wY29kZUlEIG9wY29kZUlELCBJbnN0cnVjdGkKICAgICBjYXNlIG9wX2pubGVzc2Vx
OgogICAgIGNhc2Ugb3Bfam5ncmVhdGVyOgogICAgIGNhc2Ugb3Bfam5ncmVhdGVyZXE6Ci0gICAg
Y2FzZSBvcF9qYmVsb3c6Ci0gICAgY2FzZSBvcF9qYmVsb3dlcToKICAgICBjYXNlIG9wX2xvb3Bf
aGludDoKICAgICBjYXNlIG9wX3N3aXRjaF9pbW06CiAgICAgY2FzZSBvcF9zd2l0Y2hfY2hhcjoK
QEAgLTQ2OSw4ICs0NjMsNiBAQCB2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQoQmxv
Y2sqIGNvZGVCbG9jaywgT3Bjb2RlSUQgb3Bjb2RlSUQsIEluc3RydWN0aQogICAgIGNhc2Ugb3Bf
bGVzc2VxOgogICAgIGNhc2Ugb3BfZ3JlYXRlcjoKICAgICBjYXNlIG9wX2dyZWF0ZXJlcToKLSAg
ICBjYXNlIG9wX2JlbG93OgotICAgIGNhc2Ugb3BfYmVsb3dlcToKICAgICBjYXNlIG9wX25lcV9u
dWxsOgogICAgIGNhc2Ugb3BfZXFfbnVsbDoKICAgICBjYXNlIG9wX25vdDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAppbmRleCA3NThkMzQwMTI0NmI1YjAyMjJmN2FlMDhh
ZmE4N2M1ZGU1NThjNzY4Li43OWI1ZDdmM2ViZTdiYTg5YzgyZTgyNjUxNDM0OTAxNTcyMTMwZDk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCkBAIC0xNTEsOCArMTUx
LDYgQEAgaW5saW5lIGJvb2wgaXNCcmFuY2goT3Bjb2RlSUQgb3Bjb2RlSUQpCiAgICAgY2FzZSBv
cF9qbmxlc3NlcToKICAgICBjYXNlIG9wX2puZ3JlYXRlcjoKICAgICBjYXNlIG9wX2puZ3JlYXRl
cmVxOgotICAgIGNhc2Ugb3BfamJlbG93OgotICAgIGNhc2Ugb3BfamJlbG93ZXE6CiAgICAgY2Fz
ZSBvcF9zd2l0Y2hfaW1tOgogICAgIGNhc2Ugb3Bfc3dpdGNoX2NoYXI6CiAgICAgY2FzZSBvcF9z
d2l0Y2hfc3RyaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1ByZWNpc2VKdW1wVGFyZ2V0c0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9QcmVjaXNlSnVtcFRhcmdldHNJbmxpbmVzLmgKaW5kZXggMzY3MjVmOThmZjQ5Nzc0MTYz
MmNiMGJiYTMzZWFkYmI4YmY1Zjc2Mi4uNDJhYzVlZDNhNDZhYzMxYjAzOTlhMWJlOThjYjE1NGU2
NDE1NWZkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWNp
c2VKdW1wVGFyZ2V0c0lubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvUHJlY2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oCkBAIC01NSw4ICs1NSw2IEBAIGlubGluZSB2
b2lkIGV4dHJhY3RTdG9yZWRKdW1wVGFyZ2V0c0ZvckJ5dGVjb2RlT2Zmc2V0KEJsb2NrKiBjb2Rl
QmxvY2ssIEluc3RydWN0CiAgICAgY2FzZSBvcF9qbmxlc3NlcToKICAgICBjYXNlIG9wX2puZ3Jl
YXRlcjoKICAgICBjYXNlIG9wX2puZ3JlYXRlcmVxOgotICAgIGNhc2Ugb3BfamJlbG93OgotICAg
IGNhc2Ugb3BfamJlbG93ZXE6CiAgICAgICAgIGZ1bmN0aW9uKGN1cnJlbnRbM10udS5vcGVyYW5k
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBvcF9zd2l0Y2hfaW1tOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNw
cAppbmRleCA3ZjY4N2M2OGI2YzgwMzcyOWVjOGRlNzhmNjA2OGJiZTdhOWUzN2MyLi4yZWYzNDU2
OWYyM2IyYWRkMGFlNmUzZmQ2Y2RmNWVlZDU1NWFhODE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAt
MTM2NCw3ICsxMzY0LDcgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXAoTGFiZWwm
IHRhcmdldCkKIAogdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZlRydWUoUmVnaXN0
ZXJJRCogY29uZCwgTGFiZWwmIHRhcmdldCkKIHsKLSAgICBhdXRvIGZ1c2VDb21wYXJlQW5kSnVt
cCA9IFsmXSAoT3Bjb2RlSUQganVtcElEKSB7CisgICAgaWYgKG1fbGFzdE9wY29kZUlEID09IG9w
X2xlc3MpIHsKICAgICAgICAgaW50IGRzdEluZGV4OwogICAgICAgICBpbnQgc3JjMUluZGV4Owog
ICAgICAgICBpbnQgc3JjMkluZGV4OwpAQCAtMTM3NSwzMyArMTM3NSw2MyBAQCB2b2lkIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0SnVtcElmVHJ1ZShSZWdpc3RlcklEKiBjb25kLCBMYWJlbCYgdGFy
Z2V0KQogICAgICAgICAgICAgcmV3aW5kQmluYXJ5T3AoKTsKIAogICAgICAgICAgICAgc2l6ZV90
IGJlZ2luID0gaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpOwotICAgICAgICAgICAgZW1pdE9wY29kZShq
dW1wSUQpOworICAgICAgICAgICAgZW1pdE9wY29kZShvcF9qbGVzcyk7CiAgICAgICAgICAgICBp
bnN0cnVjdGlvbnMoKS5hcHBlbmQoc3JjMUluZGV4KTsKICAgICAgICAgICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZChzcmMySW5kZXgpOwogICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5k
KHRhcmdldC5iaW5kKGJlZ2luLCBpbnN0cnVjdGlvbnMoKS5zaXplKCkpKTsKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Owot
Ci0gICAgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX2xlc3MpIHsKLSAgICAgICAgaWYgKGZ1c2VD
b21wYXJlQW5kSnVtcChvcF9qbGVzcykpCiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
ICAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX2xlc3NlcSkgewotICAgICAgICBp
ZiAoZnVzZUNvbXBhcmVBbmRKdW1wKG9wX2psZXNzZXEpKQorICAgICAgICBpbnQgZHN0SW5kZXg7
CisgICAgICAgIGludCBzcmMxSW5kZXg7CisgICAgICAgIGludCBzcmMySW5kZXg7CisKKyAgICAg
ICAgcmV0cmlldmVMYXN0QmluYXJ5T3AoZHN0SW5kZXgsIHNyYzFJbmRleCwgc3JjMkluZGV4KTsK
KworICAgICAgICBpZiAoY29uZC0+aW5kZXgoKSA9PSBkc3RJbmRleCAmJiBjb25kLT5pc1RlbXBv
cmFyeSgpICYmICFjb25kLT5yZWZDb3VudCgpKSB7CisgICAgICAgICAgICByZXdpbmRCaW5hcnlP
cCgpOworCisgICAgICAgICAgICBzaXplX3QgYmVnaW4gPSBpbnN0cnVjdGlvbnMoKS5zaXplKCk7
CisgICAgICAgICAgICBlbWl0T3Bjb2RlKG9wX2psZXNzZXEpOworICAgICAgICAgICAgaW5zdHJ1
Y3Rpb25zKCkuYXBwZW5kKHNyYzFJbmRleCk7CisgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5h
cHBlbmQoc3JjMkluZGV4KTsKKyAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0YXJn
ZXQuYmluZChiZWdpbiwgaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpKSk7CiAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX2dyZWF0
ZXIpIHsKLSAgICAgICAgaWYgKGZ1c2VDb21wYXJlQW5kSnVtcChvcF9qZ3JlYXRlcikpCisgICAg
ICAgIGludCBkc3RJbmRleDsKKyAgICAgICAgaW50IHNyYzFJbmRleDsKKyAgICAgICAgaW50IHNy
YzJJbmRleDsKKworICAgICAgICByZXRyaWV2ZUxhc3RCaW5hcnlPcChkc3RJbmRleCwgc3JjMUlu
ZGV4LCBzcmMySW5kZXgpOworCisgICAgICAgIGlmIChjb25kLT5pbmRleCgpID09IGRzdEluZGV4
ICYmIGNvbmQtPmlzVGVtcG9yYXJ5KCkgJiYgIWNvbmQtPnJlZkNvdW50KCkpIHsKKyAgICAgICAg
ICAgIHJld2luZEJpbmFyeU9wKCk7CisKKyAgICAgICAgICAgIHNpemVfdCBiZWdpbiA9IGluc3Ry
dWN0aW9ucygpLnNpemUoKTsKKyAgICAgICAgICAgIGVtaXRPcGNvZGUob3BfamdyZWF0ZXIpOwor
ICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHNyYzFJbmRleCk7CisgICAgICAgICAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoc3JjMkluZGV4KTsKKyAgICAgICAgICAgIGluc3RydWN0
aW9ucygpLmFwcGVuZCh0YXJnZXQuYmluZChiZWdpbiwgaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpKSk7
CiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1fbGFzdE9w
Y29kZUlEID09IG9wX2dyZWF0ZXJlcSkgewotICAgICAgICBpZiAoZnVzZUNvbXBhcmVBbmRKdW1w
KG9wX2pncmVhdGVyZXEpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAobV9s
YXN0T3Bjb2RlSUQgPT0gb3BfYmVsb3cpIHsKLSAgICAgICAgaWYgKGZ1c2VDb21wYXJlQW5kSnVt
cChvcF9qYmVsb3cpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0gZWxzZSBpZiAobV9sYXN0
T3Bjb2RlSUQgPT0gb3BfYmVsb3dlcSkgewotICAgICAgICBpZiAoZnVzZUNvbXBhcmVBbmRKdW1w
KG9wX2piZWxvd2VxKSkKKyAgICAgICAgaW50IGRzdEluZGV4OworICAgICAgICBpbnQgc3JjMUlu
ZGV4OworICAgICAgICBpbnQgc3JjMkluZGV4OworCisgICAgICAgIHJldHJpZXZlTGFzdEJpbmFy
eU9wKGRzdEluZGV4LCBzcmMxSW5kZXgsIHNyYzJJbmRleCk7CisKKyAgICAgICAgaWYgKGNvbmQt
PmluZGV4KCkgPT0gZHN0SW5kZXggJiYgY29uZC0+aXNUZW1wb3JhcnkoKSAmJiAhY29uZC0+cmVm
Q291bnQoKSkgeworICAgICAgICAgICAgcmV3aW5kQmluYXJ5T3AoKTsKKworICAgICAgICAgICAg
c2l6ZV90IGJlZ2luID0gaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpOworICAgICAgICAgICAgZW1pdE9w
Y29kZShvcF9qZ3JlYXRlcmVxKTsKKyAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChz
cmMxSW5kZXgpOworICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHNyYzJJbmRleCk7
CisgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodGFyZ2V0LmJpbmQoYmVnaW4sIGlu
c3RydWN0aW9ucygpLnNpemUoKSkpOwogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAg
ICAgfSBlbHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9lcV9udWxsICYmIHRhcmdldC5pc0Zv
cndhcmQoKSkgewogICAgICAgICBpbnQgZHN0SW5kZXg7CiAgICAgICAgIGludCBzcmNJbmRleDsK
QEAgLTE0NDMsNyArMTQ3Myw3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRKdW1wSWZU
cnVlKFJlZ2lzdGVySUQqIGNvbmQsIExhYmVsJiB0YXJnZXQpCiAKIHZvaWQgQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRKdW1wSWZGYWxzZShSZWdpc3RlcklEKiBjb25kLCBMYWJlbCYgdGFyZ2V0KQog
ewotICAgIGF1dG8gZnVzZUNvbXBhcmVBbmRKdW1wID0gWyZdIChPcGNvZGVJRCBqdW1wSUQsIGJv
b2wgcmVwbGFjZU9wZXJhbmRzKSB7CisgICAgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX2xlc3Mg
JiYgdGFyZ2V0LmlzRm9yd2FyZCgpKSB7CiAgICAgICAgIGludCBkc3RJbmRleDsKICAgICAgICAg
aW50IHNyYzFJbmRleDsKICAgICAgICAgaW50IHNyYzJJbmRleDsKQEAgLTE0NTQsMzYgKzE0ODQs
NjMgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZkZhbHNlKFJlZ2lzdGVySUQq
IGNvbmQsIExhYmVsJiB0YXJnZXQpCiAgICAgICAgICAgICByZXdpbmRCaW5hcnlPcCgpOwogCiAg
ICAgICAgICAgICBzaXplX3QgYmVnaW4gPSBpbnN0cnVjdGlvbnMoKS5zaXplKCk7Ci0gICAgICAg
ICAgICBlbWl0T3Bjb2RlKGp1bXBJRCk7Ci0gICAgICAgICAgICAvLyBTaW5jZSBvcF9iZWxvdyBh
bmQgb3BfYmVsb3dlcSBvbmx5IGFjY2VwdHMgSW50MzIsIHJlcGxhY2luZyBvcGVyYW5kcyBpcyBu
b3Qgb2JzZXJ2YWJsZSB0byB1c2Vycy4KLSAgICAgICAgICAgIGlmIChyZXBsYWNlT3BlcmFuZHMp
Ci0gICAgICAgICAgICAgICAgc3RkOjpzd2FwKHNyYzFJbmRleCwgc3JjMkluZGV4KTsKKyAgICAg
ICAgICAgIGVtaXRPcGNvZGUob3Bfam5sZXNzKTsKICAgICAgICAgICAgIGluc3RydWN0aW9ucygp
LmFwcGVuZChzcmMxSW5kZXgpOwogICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHNy
YzJJbmRleCk7CiAgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodGFyZ2V0LmJpbmQo
YmVnaW4sIGluc3RydWN0aW9ucygpLnNpemUoKSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH07Ci0KLSAgICBpZiAobV9s
YXN0T3Bjb2RlSUQgPT0gb3BfbGVzcyAmJiB0YXJnZXQuaXNGb3J3YXJkKCkpIHsKLSAgICAgICAg
aWYgKGZ1c2VDb21wYXJlQW5kSnVtcChvcF9qbmxlc3MsIGZhbHNlKSkKICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobV9sYXN0T3Bjb2RlSUQgPT0gb3BfbGVz
c2VxICYmIHRhcmdldC5pc0ZvcndhcmQoKSkgewotICAgICAgICBpZiAoZnVzZUNvbXBhcmVBbmRK
dW1wKG9wX2pubGVzc2VxLCBmYWxzZSkpCisgICAgICAgIGludCBkc3RJbmRleDsKKyAgICAgICAg
aW50IHNyYzFJbmRleDsKKyAgICAgICAgaW50IHNyYzJJbmRleDsKKworICAgICAgICByZXRyaWV2
ZUxhc3RCaW5hcnlPcChkc3RJbmRleCwgc3JjMUluZGV4LCBzcmMySW5kZXgpOworCisgICAgICAg
IGlmIChjb25kLT5pbmRleCgpID09IGRzdEluZGV4ICYmIGNvbmQtPmlzVGVtcG9yYXJ5KCkgJiYg
IWNvbmQtPnJlZkNvdW50KCkpIHsKKyAgICAgICAgICAgIHJld2luZEJpbmFyeU9wKCk7CisKKyAg
ICAgICAgICAgIHNpemVfdCBiZWdpbiA9IGluc3RydWN0aW9ucygpLnNpemUoKTsKKyAgICAgICAg
ICAgIGVtaXRPcGNvZGUob3Bfam5sZXNzZXEpOworICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCku
YXBwZW5kKHNyYzFJbmRleCk7CisgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoc3Jj
MkluZGV4KTsKKyAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0YXJnZXQuYmluZChi
ZWdpbiwgaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpKSk7CiAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KICAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX2dyZWF0ZXIgJiYgdGFy
Z2V0LmlzRm9yd2FyZCgpKSB7Ci0gICAgICAgIGlmIChmdXNlQ29tcGFyZUFuZEp1bXAob3Bfam5n
cmVhdGVyLCBmYWxzZSkpCisgICAgICAgIGludCBkc3RJbmRleDsKKyAgICAgICAgaW50IHNyYzFJ
bmRleDsKKyAgICAgICAgaW50IHNyYzJJbmRleDsKKworICAgICAgICByZXRyaWV2ZUxhc3RCaW5h
cnlPcChkc3RJbmRleCwgc3JjMUluZGV4LCBzcmMySW5kZXgpOworCisgICAgICAgIGlmIChjb25k
LT5pbmRleCgpID09IGRzdEluZGV4ICYmIGNvbmQtPmlzVGVtcG9yYXJ5KCkgJiYgIWNvbmQtPnJl
ZkNvdW50KCkpIHsKKyAgICAgICAgICAgIHJld2luZEJpbmFyeU9wKCk7CisKKyAgICAgICAgICAg
IHNpemVfdCBiZWdpbiA9IGluc3RydWN0aW9ucygpLnNpemUoKTsKKyAgICAgICAgICAgIGVtaXRP
cGNvZGUob3Bfam5ncmVhdGVyKTsKKyAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChz
cmMxSW5kZXgpOworICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHNyYzJJbmRleCk7
CisgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodGFyZ2V0LmJpbmQoYmVnaW4sIGlu
c3RydWN0aW9ucygpLnNpemUoKSkpOwogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAg
ICAgfSBlbHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9ncmVhdGVyZXEgJiYgdGFyZ2V0Lmlz
Rm9yd2FyZCgpKSB7Ci0gICAgICAgIGlmIChmdXNlQ29tcGFyZUFuZEp1bXAob3Bfam5ncmVhdGVy
ZXEsIGZhbHNlKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9IGVsc2UgaWYgKG1fbGFzdE9w
Y29kZUlEID09IG9wX2JlbG93ICYmIHRhcmdldC5pc0ZvcndhcmQoKSkgewotICAgICAgICBpZiAo
ZnVzZUNvbXBhcmVBbmRKdW1wKG9wX2piZWxvd2VxLCB0cnVlKSkKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX2JlbG93ZXEgJiYgdGFyZ2V0
LmlzRm9yd2FyZCgpKSB7Ci0gICAgICAgIGlmIChmdXNlQ29tcGFyZUFuZEp1bXAob3BfamJlbG93
LCB0cnVlKSkKKyAgICAgICAgaW50IGRzdEluZGV4OworICAgICAgICBpbnQgc3JjMUluZGV4Owor
ICAgICAgICBpbnQgc3JjMkluZGV4OworCisgICAgICAgIHJldHJpZXZlTGFzdEJpbmFyeU9wKGRz
dEluZGV4LCBzcmMxSW5kZXgsIHNyYzJJbmRleCk7CisKKyAgICAgICAgaWYgKGNvbmQtPmluZGV4
KCkgPT0gZHN0SW5kZXggJiYgY29uZC0+aXNUZW1wb3JhcnkoKSAmJiAhY29uZC0+cmVmQ291bnQo
KSkgeworICAgICAgICAgICAgcmV3aW5kQmluYXJ5T3AoKTsKKworICAgICAgICAgICAgc2l6ZV90
IGJlZ2luID0gaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpOworICAgICAgICAgICAgZW1pdE9wY29kZShv
cF9qbmdyZWF0ZXJlcSk7CisgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoc3JjMUlu
ZGV4KTsKKyAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmMySW5kZXgpOworICAg
ICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHRhcmdldC5iaW5kKGJlZ2luLCBpbnN0cnVj
dGlvbnMoKS5zaXplKCkpKTsKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0g
ZWxzZSBpZiAobV9sYXN0T3Bjb2RlSUQgPT0gb3Bfbm90KSB7CiAgICAgICAgIGludCBkc3RJbmRl
eDsKICAgICAgICAgaW50IHNyY0luZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDc3YTI0NzI2NmNhM2Y4NGFmNWQz
NGQ3NDViZjI0OTg3NGI3NjMzNTIuLjBiNmE5NGEwMDE0OWExYzJlY2U4MDFkMzMxZTYzODI1MzVl
OWNlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHAKQEAgLTE5ODEsNjggKzE5ODEsNiBAQCBSZWdpc3RlcklEKiBCaW5hcnlP
cE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3Rl
cklEKgogewogICAgIE9wY29kZUlEIG9wY29kZUlEID0gdGhpcy0+b3Bjb2RlSUQoKTsKIAotICAg
IGlmIChvcGNvZGVJRCA9PSBvcF9sZXNzIHx8IG9wY29kZUlEID09IG9wX2xlc3NlcSB8fCBvcGNv
ZGVJRCA9PSBvcF9ncmVhdGVyIHx8IG9wY29kZUlEID09IG9wX2dyZWF0ZXJlcSkgewotICAgICAg
ICBlbnVtIGNsYXNzIFVJbnQzMlJlc3VsdCB7Ci0gICAgICAgICAgICBVSW50MzIsCi0gICAgICAg
ICAgICBDb25zdGFudCwKLSAgICAgICAgfTsKLSAgICAgICAgYXV0byBpc1VJbnQzMiA9IFsmXSAo
RXhwcmVzc2lvbk5vZGUqIG5vZGUpIC0+IHN0ZDo6b3B0aW9uYWw8VUludDMyUmVzdWx0PiB7Ci0g
ICAgICAgICAgICBpZiAobm9kZS0+aXNCaW5hcnlPcE5vZGUoKSAmJiBzdGF0aWNfY2FzdDxCaW5h
cnlPcE5vZGUqPihub2RlKS0+b3Bjb2RlSUQoKSA9PSBvcF91cnNoaWZ0KQotICAgICAgICAgICAg
ICAgIHJldHVybiBVSW50MzJSZXN1bHQ6OlVJbnQzMjsKLSAgICAgICAgICAgIGlmIChub2RlLT5p
c051bWJlcigpICYmIHN0YXRpY19jYXN0PE51bWJlck5vZGUqPihub2RlKS0+aXNJbnRlZ2VyTm9k
ZSgpKSB7Ci0gICAgICAgICAgICAgICAgaW50MzJfdCB2YWx1ZSA9IHN0YXRpY19jYXN0PGludDMy
X3Q+KHN0YXRpY19jYXN0PEludGVnZXJOb2RlKj4obm9kZSktPnZhbHVlKCkpOwotICAgICAgICAg
ICAgICAgIGlmICh2YWx1ZSA+PSAwKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUludDMy
UmVzdWx0OjpDb25zdGFudDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgICAgIH07Ci0gICAgICAgIGF1dG8gbGVmdFJlc3VsdCA9IGlzVUludDMy
KG1fZXhwcjEpOwotICAgICAgICBhdXRvIHJpZ2h0UmVzdWx0ID0gaXNVSW50MzIobV9leHByMik7
Ci0gICAgICAgIGlmICgobGVmdFJlc3VsdCAmJiByaWdodFJlc3VsdCkgJiYgKGxlZnRSZXN1bHQu
dmFsdWUoKSA9PSBVSW50MzJSZXN1bHQ6OlVJbnQzMiB8fCByaWdodFJlc3VsdC52YWx1ZSgpID09
IFVJbnQzMlJlc3VsdDo6VUludDMyKSkgewotICAgICAgICAgICAgYXV0byogbGVmdCA9IG1fZXhw
cjE7Ci0gICAgICAgICAgICBhdXRvKiByaWdodCA9IG1fZXhwcjI7Ci0gICAgICAgICAgICBpZiAo
bGVmdC0+aXNCaW5hcnlPcE5vZGUoKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChzdGF0aWNf
Y2FzdDxCaW5hcnlPcE5vZGUqPihsZWZ0KS0+b3Bjb2RlSUQoKSA9PSBvcF91cnNoaWZ0KTsKLSAg
ICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxCaW5hcnlPcE5vZGUqPihsZWZ0KS0+bV9zaG91bGRU
b1Vuc2lnbmVkUmVzdWx0ID0gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAo
cmlnaHQtPmlzQmluYXJ5T3BOb2RlKCkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoc3RhdGlj
X2Nhc3Q8QmluYXJ5T3BOb2RlKj4ocmlnaHQpLT5vcGNvZGVJRCgpID09IG9wX3Vyc2hpZnQpOwot
ICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEJpbmFyeU9wTm9kZSo+KHJpZ2h0KS0+bV9zaG91
bGRUb1Vuc2lnbmVkUmVzdWx0ID0gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBS
ZWZQdHI8UmVnaXN0ZXJJRD4gc3JjMSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lk
ZShsZWZ0LCBtX3JpZ2h0SGFzQXNzaWdubWVudHMsIHJpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7
Ci0gICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc3JjMiA9IGdlbmVyYXRvci5lbWl0Tm9k
ZShyaWdodCk7Ci0gICAgICAgICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKHBvc2l0
aW9uKCksIHBvc2l0aW9uKCksIHBvc2l0aW9uKCkpOwotCi0gICAgICAgICAgICAvLyBTaW5jZSB0
aGUgYm90aCBzaWRlcyBvbmx5IGFjY2VwdCBJbnQzMiwgcmVwbGFjaW5nIG9wZXJhbmRzIGlzIG5v
dCBvYnNlcnZhYmxlIHRvIHVzZXJzLgotICAgICAgICAgICAgYm9vbCByZXBsYWNlT3BlcmFuZHMg
PSBmYWxzZTsKLSAgICAgICAgICAgIE9wY29kZUlEIHJlc3VsdE9wID0gb3Bjb2RlSUQ7Ci0gICAg
ICAgICAgICBzd2l0Y2ggKG9wY29kZUlEKSB7Ci0gICAgICAgICAgICBjYXNlIG9wX2xlc3M6Ci0g
ICAgICAgICAgICAgICAgcmVzdWx0T3AgPSBvcF9iZWxvdzsKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIGNhc2Ugb3BfbGVzc2VxOgotICAgICAgICAgICAgICAgIHJlc3VsdE9w
ID0gb3BfYmVsb3dlcTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Ug
b3BfZ3JlYXRlcjoKLSAgICAgICAgICAgICAgICByZXN1bHRPcCA9IG9wX2JlbG93OwotICAgICAg
ICAgICAgICAgIHJlcGxhY2VPcGVyYW5kcyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICBjYXNlIG9wX2dyZWF0ZXJlcToKLSAgICAgICAgICAgICAgICByZXN1bHRP
cCA9IG9wX2JlbG93ZXE7Ci0gICAgICAgICAgICAgICAgcmVwbGFjZU9wZXJhbmRzID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIE9wZXJhbmRUeXBlcyBvcGVyYW5kVHlwZXMobGVmdC0+cmVzdWx0RGVzY3JpcHRvcigp
LCByaWdodC0+cmVzdWx0RGVzY3JpcHRvcigpKTsKLSAgICAgICAgICAgIGlmIChyZXBsYWNlT3Bl
cmFuZHMpIHsKLSAgICAgICAgICAgICAgICBzdGQ6OnN3YXAoc3JjMSwgc3JjMik7Ci0gICAgICAg
ICAgICAgICAgb3BlcmFuZFR5cGVzID0gT3BlcmFuZFR5cGVzKHJpZ2h0LT5yZXN1bHREZXNjcmlw
dG9yKCksIGxlZnQtPnJlc3VsdERlc2NyaXB0b3IoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRCaW5hcnlPcChyZXN1bHRPcCwgZ2VuZXJhdG9yLmZp
bmFsRGVzdGluYXRpb24oZHN0LCBzcmMxLmdldCgpKSwgc3JjMS5nZXQoKSwgc3JjMi5nZXQoKSwg
b3BlcmFuZFR5cGVzKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIGlmIChvcGNvZGVJRCA9PSBv
cF9hZGQgJiYgbV9leHByMS0+aXNBZGQoKSAmJiBtX2V4cHIxLT5yZXN1bHREZXNjcmlwdG9yKCku
ZGVmaW5pdGVseUlzU3RyaW5nKCkpIHsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9u
SW5mbyhwb3NpdGlvbigpLCBwb3NpdGlvbigpLCBwb3NpdGlvbigpKTsKICAgICAgICAgcmV0dXJu
IGVtaXRTdHJjYXQoZ2VuZXJhdG9yLCBkc3QpOwpAQCAtMjA3OCwxMCArMjAxNiw4IEBAIFJlZ2lz
dGVySUQqIEJpbmFyeU9wTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5l
cmF0b3IsIFJlZ2lzdGVySUQqCiAgICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdFVuYXJ5T3Ao
b3Bfbm90LCBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIHRtcC5nZXQoKSksIHRtcC5n
ZXQoKSk7CiAgICAgfQogICAgIFJlZ2lzdGVySUQqIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Qmlu
YXJ5T3Aob3Bjb2RlSUQsIGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwgc3JjMS5nZXQo
KSksIHNyYzEuZ2V0KCksIHNyYzIuZ2V0KCksIE9wZXJhbmRUeXBlcyhsZWZ0LT5yZXN1bHREZXNj
cmlwdG9yKCksIHJpZ2h0LT5yZXN1bHREZXNjcmlwdG9yKCkpKTsKLSAgICBpZiAobV9zaG91bGRU
b1Vuc2lnbmVkUmVzdWx0KSB7Ci0gICAgICAgIGlmIChvcGNvZGVJRCA9PSBvcF91cnNoaWZ0ICYm
IGRzdCAhPSBnZW5lcmF0b3IuaWdub3JlZFJlc3VsdCgpKQotICAgICAgICAgICAgcmV0dXJuIGdl
bmVyYXRvci5lbWl0VW5hcnlPcChvcF91bnNpZ25lZCwgcmVzdWx0LCByZXN1bHQpOwotICAgIH0K
KyAgICBpZiAob3Bjb2RlSUQgPT0gb3BfdXJzaGlmdCAmJiBkc3QgIT0gZ2VuZXJhdG9yLmlnbm9y
ZWRSZXN1bHQoKSkKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0VW5hcnlPcChvcF91bnNp
Z25lZCwgcmVzdWx0LCByZXN1bHQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaAppbmRleCA1NmU1YWM1ODQyZDhiZDQ1ZDNmNWNjOWJjNmIzNWIzYjA0NDI1OGYyLi5i
ZWExNjg5YWFiZDUzMDM4MDYyZWVjODA5M2ExNjA2NmY4Y2QxYjZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oCkBAIC0xNDA3LDQ4ICsxNDA3LDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3Ry
YWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAg
ICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKG1fZ3JhcGgsIFNwZWNTdHJpbmdJZGVudCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KLQotICAgIGNhc2UgQ29tcGFyZUJlbG93OgotICAgIGNhc2UgQ29t
cGFyZUJlbG93RXE6IHsKLSAgICAgICAgSlNWYWx1ZSBsZWZ0Q29uc3QgPSBmb3JOb2RlKG5vZGUt
PmNoaWxkMSgpKS52YWx1ZSgpOwotICAgICAgICBKU1ZhbHVlIHJpZ2h0Q29uc3QgPSBmb3JOb2Rl
KG5vZGUtPmNoaWxkMigpKS52YWx1ZSgpOwotICAgICAgICBpZiAobGVmdENvbnN0ICYmIHJpZ2h0
Q29uc3QpIHsKLSAgICAgICAgICAgIGlmIChsZWZ0Q29uc3QuaXNJbnQzMigpICYmIHJpZ2h0Q29u
c3QuaXNJbnQzMigpKSB7Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgYSA9IHN0YXRpY19jYXN0
PHVpbnQzMl90PihsZWZ0Q29uc3QuYXNJbnQzMigpKTsKLSAgICAgICAgICAgICAgICB1aW50MzJf
dCBiID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJpZ2h0Q29uc3QuYXNJbnQzMigpKTsKLSAgICAg
ICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKLSAgICAgICAgICAgICAgICBjYXNlIENv
bXBhcmVCZWxvdzoKLSAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29s
ZWFuKGEgPCBiKSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
IGNhc2UgQ29tcGFyZUJlbG93RXE6Ci0gICAgICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5v
ZGUsIGpzQm9vbGVhbihhIDw9IGIpKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0K
LSAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpID09IG5vZGUtPmNoaWxkMigpKSB7Ci0gICAgICAg
ICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKLSAgICAgICAgICAgIGNhc2UgQ29tcGFyZUJlbG93
OgotICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihmYWxzZSkpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDb21wYXJlQmVsb3dFcToK
LSAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4odHJ1ZSkpOwotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAg
ICBERkdfQ1JBU0gobV9ncmFwaCwgbm9kZSwgIlVuZXhwZWN0ZWQgbm9kZSB0eXBlIik7Ci0gICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0Jvb2xlYW4pOwotICAg
ICAgICBicmVhazsKLSAgICB9Ci0KKyAgICAgICAgICAgIAogICAgIGNhc2UgQ29tcGFyZUxlc3M6
CiAgICAgY2FzZSBDb21wYXJlTGVzc0VxOgogICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXI6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDll
ZWMxNGYyZGZhZTZjZjVhYjUzNjg5ODYyODk5ZTcyZDUyNDI2YzQuLmQ0ODExNzMzYzU3NjFiYzBl
MWIwMjdiYWI0MzI1MjliMzVkYjExMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC00NzQ5LDIwICs0NzQ5LDYgQEAgYm9vbCBCeXRl
Q29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIE5FWFRf
T1BDT0RFKG9wX2dyZWF0ZXJlcSk7CiAgICAgICAgIH0KIAotICAgICAgICBjYXNlIG9wX2JlbG93
OiB7Ci0gICAgICAgICAgICBOb2RlKiBvcDEgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKLSAgICAgICAgICAgIE5vZGUqIG9wMiA9IGdldChW
aXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwotICAgICAg
ICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
KSwgYWRkVG9HcmFwaChDb21wYXJlQmVsb3csIG9wMSwgb3AyKSk7Ci0gICAgICAgICAgICBORVhU
X09QQ09ERShvcF9iZWxvdyk7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIG9wX2JlbG93ZXE6
IHsKLSAgICAgICAgICAgIE5vZGUqIG9wMSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwotICAgICAgICAgICAgTm9kZSogb3AyID0gZ2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7Ci0gICAgICAg
ICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQp
LCBhZGRUb0dyYXBoKENvbXBhcmVCZWxvd0VxLCBvcDEsIG9wMikpOwotICAgICAgICAgICAgTkVY
VF9PUENPREUob3BfYmVsb3dlcSk7Ci0gICAgICAgIH0KLQogICAgICAgICBjYXNlIG9wX2VxOiB7
CiAgICAgICAgICAgICBOb2RlKiBvcDEgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKICAgICAgICAgICAgIE5vZGUqIG9wMiA9IGdldChWaXJ0
dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwpAQCAtNTIwOCwy
NSArNTE5NCw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGlt
aXQpCiAgICAgICAgICAgICBhZGRUb0dyYXBoKEJyYW5jaCwgT3BJbmZvKGJyYW5jaERhdGEobV9j
dXJyZW50SW5kZXggKyBPUENPREVfTEVOR1RIKG9wX2puZ3JlYXRlcmVxKSwgbV9jdXJyZW50SW5k
ZXggKyByZWxhdGl2ZU9mZnNldCkpLCBjb25kaXRpb24pOwogICAgICAgICAgICAgTEFTVF9PUENP
REUob3Bfam5ncmVhdGVyZXEpOwogICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBvcF9qYmVsb3c6
IHsKLSAgICAgICAgICAgIHVuc2lnbmVkIHJlbGF0aXZlT2Zmc2V0ID0gY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZDsKLSAgICAgICAgICAgIE5vZGUqIG9wMSA9IGdldChWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOwotICAgICAgICAgICAgTm9k
ZSogb3AyID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVy
YW5kKSk7Ci0gICAgICAgICAgICBOb2RlKiBjb25kaXRpb24gPSBhZGRUb0dyYXBoKENvbXBhcmVC
ZWxvdywgb3AxLCBvcDIpOwotICAgICAgICAgICAgYWRkVG9HcmFwaChCcmFuY2gsIE9wSW5mbyhi
cmFuY2hEYXRhKG1fY3VycmVudEluZGV4ICsgcmVsYXRpdmVPZmZzZXQsIG1fY3VycmVudEluZGV4
ICsgT1BDT0RFX0xFTkdUSChvcF9qYmVsb3cpKSksIGNvbmRpdGlvbik7Ci0gICAgICAgICAgICBM
QVNUX09QQ09ERShvcF9qYmVsb3cpOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBvcF9qYmVs
b3dlcTogewotICAgICAgICAgICAgdW5zaWduZWQgcmVsYXRpdmVPZmZzZXQgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgICAgICAgICAgTm9kZSogb3AxID0gZ2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7Ci0gICAgICAgICAg
ICBOb2RlKiBvcDIgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51
Lm9wZXJhbmQpKTsKLSAgICAgICAgICAgIE5vZGUqIGNvbmRpdGlvbiA9IGFkZFRvR3JhcGgoQ29t
cGFyZUJlbG93RXEsIG9wMSwgb3AyKTsKLSAgICAgICAgICAgIGFkZFRvR3JhcGgoQnJhbmNoLCBP
cEluZm8oYnJhbmNoRGF0YShtX2N1cnJlbnRJbmRleCArIHJlbGF0aXZlT2Zmc2V0LCBtX2N1cnJl
bnRJbmRleCArIE9QQ09ERV9MRU5HVEgob3BfamJlbG93ZXEpKSksIGNvbmRpdGlvbik7Ci0gICAg
ICAgICAgICBMQVNUX09QQ09ERShvcF9qYmVsb3dlcSk7Ci0gICAgICAgIH0KLQorICAgICAgICAg
ICAgCiAgICAgICAgIGNhc2Ugb3Bfc3dpdGNoX2ltbTogewogICAgICAgICAgICAgU3dpdGNoRGF0
YSYgZGF0YSA9ICptX2dyYXBoLm1fc3dpdGNoRGF0YS5hZGQoKTsKICAgICAgICAgICAgIGRhdGEu
a2luZCA9IFN3aXRjaEltbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJp
bGl0aWVzLmNwcAppbmRleCBhMDA0OTQ5NmExODVlNzU0YTNlNDcwYmVhYTc0Y2JlNWUzYzJjNDEw
Li40MjRhNjNiNTNmNzQzZTlhNmZiOGQ2NGNmYjZmODMwYzI4MGZiZjA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBAIC0xNTEsOCArMTUxLDYg
QEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRCBvcGNvZGVJRCwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIEluc3RydWMKICAgICBjYXNlIG9wX2xlc3NlcToKICAgICBjYXNl
IG9wX2dyZWF0ZXI6CiAgICAgY2FzZSBvcF9ncmVhdGVyZXE6Ci0gICAgY2FzZSBvcF9iZWxvdzoK
LSAgICBjYXNlIG9wX2JlbG93ZXE6CiAgICAgY2FzZSBvcF9lcToKICAgICBjYXNlIG9wX2VxX251
bGw6CiAgICAgY2FzZSBvcF9zdHJpY3RlcToKQEAgLTE5NCw4ICsxOTIsNiBAQCBDYXBhYmlsaXR5
TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3Bfam5sZXNzZXE6CiAgICAgY2FzZSBvcF9qbmdyZWF0
ZXI6CiAgICAgY2FzZSBvcF9qbmdyZWF0ZXJlcToKLSAgICBjYXNlIG9wX2piZWxvdzoKLSAgICBj
YXNlIG9wX2piZWxvd2VxOgogICAgIGNhc2Ugb3BfbG9vcF9oaW50OgogICAgIGNhc2Ugb3BfY2hl
Y2tfdHJhcHM6CiAgICAgY2FzZSBvcF9ub3A6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oCmluZGV4IDY4YWIyNDNlMTY0NGVmMGIyN2EwYTMyNDA4ZDgyZjI2OTFkNTc2
NTUuLjU2NjQ5MGIxM2E4MzVjMzYyNWM0ZDk2Njc1ZDUxMWViNjFhYzQxODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xNDg2LDExICsxNDg2LDYgQEAg
dm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0
b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgfQogICAgICAgICBkZWYoUHVyZVZhbHVl
KG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwotCi0gICAgY2FzZSBDb21wYXJlQmVsb3c6Ci0gICAg
Y2FzZSBDb21wYXJlQmVsb3dFcToKLSAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlKSk7Ci0gICAg
ICAgIHJldHVybjsKICAgICAgICAgCiAgICAgY2FzZSBDb21wYXJlRXE6CiAgICAgY2FzZSBDb21w
YXJlTGVzczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dD
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCBiNDRk
Nzc4NjcyMmIwNjU4YjcxNjc5NGExODVhNDhiMzlmMjVmYTFlLi41OGE3NWY1ZTg1Y2UyNGU4Zjgz
ZTgxNGYwYzZhMWQ0NTkyYTYyYzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0MuY3BwCkBAIC0xNDMsOCArMTQzLDYgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2Rl
KiBub2RlKQogICAgIGNhc2UgQ29tcGFyZUxlc3NFcToKICAgICBjYXNlIENvbXBhcmVHcmVhdGVy
OgogICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXJFcToKLSAgICBjYXNlIENvbXBhcmVCZWxvdzoKLSAg
ICBjYXNlIENvbXBhcmVCZWxvd0VxOgogICAgIGNhc2UgQ29tcGFyZUVxOgogICAgIGNhc2UgQ29t
cGFyZVN0cmljdEVxOgogICAgIGNhc2UgQ29tcGFyZUVxUHRyOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggMjg0YTI0OTNjNDI1MzFkYjI5MWYxZTI2
NTE4Y2JkNDI2N2ViNzEzMy4uZjE4ZjE4OTllZGJlZWJiNzBhMmMzYzczYWJhYzVjNWM4ZmI4OWE5
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0x
NDIsNiArMTQyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBub2RlLT5zZXRBcml0aE1v
ZGUoQXJpdGg6OkNoZWNrT3ZlcmZsb3cpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICAgICAgbm9kZS0+c2V0QXJpdGhNb2RlKEFyaXRoOjpEb092ZXJmbG93KTsKKyAgICAgICAgICAg
ICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwogICAgICAgICAgICAgICAg
IG5vZGUtPnNldFJlc3VsdChlbmFibGVJbnQ1MigpID8gTm9kZVJlc3VsdEludDUyIDogTm9kZVJl
c3VsdERvdWJsZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTE1NzIs
MTMgKzE1NzMsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAot
ICAgICAgICBjYXNlIENvbXBhcmVCZWxvdzoKLSAgICAgICAgY2FzZSBDb21wYXJlQmVsb3dFcTog
ewotICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQxKCkpOwotICAgICAg
ICAgICAgZml4RWRnZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLQogICAgICAgICBjYXNlIFBoaToKICAgICAgICAgY2FzZSBVcHNpbG9u
OgogICAgICAgICBjYXNlIEVudHJ5U3dpdGNoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdJbnRlZ2VyUmFuZ2VPcHRpbWl6YXRpb25QaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmNwcApp
bmRleCBmYjNmNGQ5YTQwMzlkZWZkMDcwMzYyYTM5MWExZTZkMDI0OWI1YjViLi40YTM4MzFlYjE2
MGRjNDk3NjRlODczOTBlODhhZjVhYTk1ZTg2ZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNl
LmNwcApAQCAtMTE0MCw3ICsxMTQwLDYgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAg
ICAgcmVsYXRpb25zaGlwRm9yVHJ1ZSA9IFJlbGF0aW9uc2hpcDo6c2FmZUNyZWF0ZSgKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hbC0+Y2hpbGQxKCkubm9kZSgpLCBtX3plcm8s
IFJlbGF0aW9uc2hpcDo6Tm90RXF1YWwsIDApOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBDb21wYXJlQmVsb3cg
YW5kIENvbXBhcmVCZWxvd0VxLgogICAgICAgICAgICAgICAgICAgICAgICAgTm9kZSogY29tcGFy
ZSA9IHRlcm1pbmFsLT5jaGlsZDEoKS5ub2RlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBz
d2l0Y2ggKGNvbXBhcmUtPm9wKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ29t
cGFyZUVxOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDJlYjFh
YWM2ZTFjZTcyZmFlNGE2N2I5OTA0M2VmNTQ4MzNhNGJkZTUuLjgxOTkwYjhkYTU1YjEwNDRjOWYx
NDVhMGU5NGU1OGViYzViNGQxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVU
eXBlLmgKQEAgLTEyMSw3ICsxMjEsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAgICAgLyogQml0d2lzZSBvcGVyYXRvcnMgY2FsbCBUb0ludDMyIG9uIHRoZWlyIG9wZXJhbmRz
LiAqL1wKICAgICBtYWNybyhWYWx1ZVRvSW50MzIsIE5vZGVSZXN1bHRJbnQzMikgXAogICAgIC8q
IFVzZWQgdG8gYm94IHRoZSByZXN1bHQgb2YgVVJTaGlmdCBub2RlcyAocmVzdWx0IGhhcyByYW5n
ZSAwLi4yXjMyLTEpLiAqL1wKLSAgICBtYWNybyhVSW50MzJUb051bWJlciwgTm9kZVJlc3VsdE51
bWJlcikgXAorICAgIG1hY3JvKFVJbnQzMlRvTnVtYmVyLCBOb2RlUmVzdWx0TnVtYmVyIHwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAogICAgIC8qIENvbnZlcnRzIGJvb2xlYW5zIHRvIG51bWJlcnMgYnV0
IHBhc3NlcyBldmVyeXRoaW5nIGVsc2UgdGhyb3VnaC4gKi9cCiAgICAgbWFjcm8oQm9vbGVhblRv
TnVtYmVyLCBOb2RlUmVzdWx0SlMpIFwKICAgICBcCkBAIC0yODYsOCArMjg2LDYgQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKENvbXBhcmVMZXNzRXEsIE5vZGVS
ZXN1bHRCb29sZWFuIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENvbXBhcmVHcmVh
dGVyLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhD
b21wYXJlR3JlYXRlckVxLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwK
LSAgICBtYWNybyhDb21wYXJlQmVsb3csIE5vZGVSZXN1bHRCb29sZWFuKSBcCi0gICAgbWFjcm8o
Q29tcGFyZUJlbG93RXEsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oQ29tcGFyZUVx
LCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDb21w
YXJlU3RyaWN0RXEsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oQ29tcGFyZUVxUHRy
LCBOb2RlUmVzdWx0Qm9vbGVhbikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBkNjQxNTRm
NzI1MTYyYzk1NDg3Y2E2NzRjZjYwYTJmNDIzYmQ2MmU2Li5iYjNhMTFmZWRlZjJkNDFmMTA4NGE1
MzkwMGQ4NThiNzYzOTlhYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtODE4LDggKzgx
OCw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQ29tcGFyZUxlc3NFcToKICAgICAgICAgY2Fz
ZSBDb21wYXJlR3JlYXRlcjoKICAgICAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgotICAgICAg
ICBjYXNlIENvbXBhcmVCZWxvdzoKLSAgICAgICAgY2FzZSBDb21wYXJlQmVsb3dFcToKICAgICAg
ICAgY2FzZSBDb21wYXJlRXE6CiAgICAgICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxOgogICAgICAg
ICBjYXNlIENvbXBhcmVFcVB0cjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZl
VG9FeGVjdXRlLmgKaW5kZXggNWM3MWQ2MjU4Yzc0NDAyZmNjMGVlNTI5NTdhZTJiMDc0NTFiZjg5
OS4uMmU1NGNiMGIwNjVkOWJjNDk2YmMwOGJmNWY3MGIxNGFhNjA2YTkwYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTI2Niw4ICsyNjYsNiBA
QCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3Jh
cGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDb21wYXJlTGVzc0VxOgogICAgIGNhc2UgQ29tcGFy
ZUdyZWF0ZXI6CiAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgotICAgIGNhc2UgQ29tcGFyZUJl
bG93OgotICAgIGNhc2UgQ29tcGFyZUJlbG93RXE6CiAgICAgY2FzZSBDb21wYXJlRXE6CiAgICAg
Y2FzZSBDb21wYXJlU3RyaWN0RXE6CiAgICAgY2FzZSBDb21wYXJlRXFQdHI6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDkxN2NlNjk1
MDQ5MjA1ZmY3MmFjY2U5MjU3MDlhMzZlZTJkNGYxNGQuLmE5MzdiYWYwNzNjYTNjZDU5MjBkMTgz
ZWJlMzBjZmJlMmQ5YWMzOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCkBAIC01NzEwLDExICs1NzEwLDYgQEAgYm9vbCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGFyZShOb2RlKiBub2RlLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRp
dGlvbiBjb24KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVDb21wYXJlVW5zaWduZWQoTm9kZSogbm9kZSwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9u
YWxDb25kaXRpb24gY29uZGl0aW9uKQotewotICAgIGNvbXBpbGVJbnQzMkNvbXBhcmUobm9kZSwg
Y29uZGl0aW9uKTsKLX0KLQogYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmljdEVxKE5v
ZGUqIG5vZGUpCiB7CiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSwgd2UgaGF2ZSBvcF9qbGVzcywg
b3BfamdyZWF0ZXIgZXRjLiBCdXQgd2UgZG9uJ3QgaGF2ZSBvcF9qZXEsIG9wX2pzdHJpY3RlcSBl
dGMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5k
ZXggNWE4MDUxN2MyZTQ1MGUyMzk2ZThkOTJmODViMWQ1YjllMTMxOTY4MS4uOWYwNDdlNTMwNzhl
OTE1ZDczZmNhOTZkZDU2YThlMzgxODQ3M2M1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMjcyMCw3ICsyNzIwLDYgQEAgcHVibGljOgog
ICAgIH0KICAgICAKICAgICBib29sIGNvbXBhcmUoTm9kZSosIE1hY3JvQXNzZW1ibGVyOjpSZWxh
dGlvbmFsQ29uZGl0aW9uLCBNYWNyb0Fzc2VtYmxlcjo6RG91YmxlQ29uZGl0aW9uLCBTX0pJVE9w
ZXJhdGlvbl9FSkopOwotICAgIHZvaWQgY29tcGlsZUNvbXBhcmVVbnNpZ25lZChOb2RlKiwgTWFj
cm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24pOwogICAgIGJvb2wgY29tcGlsZVBlZXBI
b2xlQnJhbmNoKE5vZGUqLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiwgTWFj
cm9Bc3NlbWJsZXI6OkRvdWJsZUNvbmRpdGlvbiwgU19KSVRPcGVyYXRpb25fRUpKKTsKICAgICB2
b2lkIGNvbXBpbGVQZWVwSG9sZUludDMyQnJhbmNoKE5vZGUqLCBOb2RlKiBicmFuY2hOb2RlLCBK
SVRDb21waWxlcjo6UmVsYXRpb25hbENvbmRpdGlvbik7CiAgICAgdm9pZCBjb21waWxlUGVlcEhv
bGVJbnQ1MkJyYW5jaChOb2RlKiwgTm9kZSogYnJhbmNoTm9kZSwgSklUQ29tcGlsZXI6OlJlbGF0
aW9uYWxDb25kaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggYWFlNzgxNjJhYzRhOWIzYzBkMjEwNjRjNjRj
MTdiOWEyOGMzZTQwMy4uMTMwNzViNmIyMmNhYjU3YzY2MGZlZmJlZDZlYzA2ZTAxN2IzMWQ0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCkBAIC0yNTIyLDE0ICsyNTIyLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBicmVhazsKIAot
ICAgIGNhc2UgQ29tcGFyZUJlbG93OgotICAgICAgICBjb21waWxlQ29tcGFyZVVuc2lnbmVkKG5v
ZGUsIEpJVENvbXBpbGVyOjpCZWxvdyk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBDb21w
YXJlQmVsb3dFcToKLSAgICAgICAgY29tcGlsZUNvbXBhcmVVbnNpZ25lZChub2RlLCBKSVRDb21w
aWxlcjo6QmVsb3dPckVxdWFsKTsKLSAgICAgICAgYnJlYWs7Ci0KICAgICBjYXNlIENvbXBhcmVF
cToKICAgICAgICAgaWYgKGNvbXBhcmUobm9kZSwgSklUQ29tcGlsZXI6OkVxdWFsLCBKSVRDb21w
aWxlcjo6RG91YmxlRXF1YWwsIG9wZXJhdGlvbkNvbXBhcmVFcSkpCiAgICAgICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAppbmRleCAyOWNiMmJmMDJlNDA4NDI5ZWU5MGZmZjljYjhkY2MyMzJkMjZhYmM2Li4wNmRh
NGRjNzU5OTE1NjBmNTgzYTkzOTA0YTUxOTA1M2Y4MjUyMDZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTI2NjQsMTQgKzI2
NjQsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBDb21wYXJlQmVsb3c6Ci0g
ICAgICAgIGNvbXBpbGVDb21wYXJlVW5zaWduZWQobm9kZSwgSklUQ29tcGlsZXI6OkJlbG93KTsK
LSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIENvbXBhcmVCZWxvd0VxOgotICAgICAgICBjb21w
aWxlQ29tcGFyZVVuc2lnbmVkKG5vZGUsIEpJVENvbXBpbGVyOjpCZWxvd09yRXF1YWwpOwotICAg
ICAgICBicmVhazsKLQogICAgIGNhc2UgQ29tcGFyZUVxOgogICAgICAgICBpZiAoY29tcGFyZShu
b2RlLCBKSVRDb21waWxlcjo6RXF1YWwsIEpJVENvbXBpbGVyOjpEb3VibGVFcXVhbCwgb3BlcmF0
aW9uQ29tcGFyZUVxKSkKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwCmluZGV4IDlk
MDBiMTJmMmYzMTMwMWY1NzM4NTdhYTkzNWJhNGZmZmQ1OWZhMWEuLmY5MTU4NDFhOWQ0NmIxN2Iw
NjM5OGI0M2M2ZjI2ZTc3NzBkNTdkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcApAQCAtMjY1LDY3ICsyNjUs
NiBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KLQotICAgICAgICBjYXNlIENvbXBhcmVFcToKLSAgICAgICAgY2FzZSBDb21wYXJlTGVzczoK
LSAgICAgICAgY2FzZSBDb21wYXJlTGVzc0VxOgotICAgICAgICBjYXNlIENvbXBhcmVHcmVhdGVy
OgotICAgICAgICBjYXNlIENvbXBhcmVHcmVhdGVyRXE6IHsKLSAgICAgICAgICAgIGlmIChtX25v
ZGUtPmlzQmluYXJ5VXNlS2luZChJbnQzMlVzZSkpIHsKLSAgICAgICAgICAgICAgICBlbnVtIGNs
YXNzIFVJbnQzMlJlc3VsdCB7IFVJbnQzMiwgQ29uc3RhbnQgfTsKLSAgICAgICAgICAgICAgICBh
dXRvIGlzVUludDMyID0gWyZdIChFZGdlJiBlZGdlKSAtPiBzdGQ6Om9wdGlvbmFsPFVJbnQzMlJl
c3VsdD4gewotICAgICAgICAgICAgICAgICAgICBpZiAoZWRnZS0+b3AoKSA9PSBVSW50MzJUb051
bWJlcikKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVSW50MzJSZXN1bHQ6OlVJbnQz
MjsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGVkZ2UtPmlzSW50MzJDb25zdGFudCgpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWRnZS0+YXNJbnQzMigpID49IDApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVJbnQzMlJlc3VsdDo6Q29uc3RhbnQ7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLSAgICAgICAgICAgICAgICB9OwotCi0gICAgICAgICAgICAgICAgYXV0byBjaGlsZDFSZXN1
bHQgPSBpc1VJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgICAgICBhdXRvIGNo
aWxkMlJlc3VsdCA9IGlzVUludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgICAg
IGlmICgoY2hpbGQxUmVzdWx0ICYmIGNoaWxkMlJlc3VsdCkgJiYgKGNoaWxkMVJlc3VsdC52YWx1
ZSgpID09IFVJbnQzMlJlc3VsdDo6VUludDMyIHx8IGNoaWxkMlJlc3VsdC52YWx1ZSgpID09IFVJ
bnQzMlJlc3VsdDo6VUludDMyKSkgewotICAgICAgICAgICAgICAgICAgICBOb2RlVHlwZSBvcCA9
IG1fbm9kZS0+b3AoKTsKLSAgICAgICAgICAgICAgICAgICAgYm9vbCByZXBsYWNlT3BlcmFuZHMg
PSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChtX25vZGUtPm9wKCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlRXE6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBvcCA9IENvbXBhcmVFcTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgICAgICBjYXNlIENvbXBhcmVMZXNzOgotICAgICAgICAgICAgICAgICAgICAgICAg
b3AgPSBDb21wYXJlQmVsb3c7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICAgICAgY2FzZSBDb21wYXJlTGVzc0VxOgotICAgICAgICAgICAgICAgICAgICAg
ICAgb3AgPSBDb21wYXJlQmVsb3dFcTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVHcmVhdGVyOgotICAgICAgICAgICAgICAg
ICAgICAgICAgb3AgPSBDb21wYXJlQmVsb3c7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXBs
YWNlT3BlcmFuZHMgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXJFcToKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG9wID0gQ29tcGFyZUJlbG93RXE7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXBs
YWNlT3BlcmFuZHMgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgICAgICAgYXV0byBleHRyYWN0Q2hpbGQgPSBbJl0gKEVkZ2UmIGVkZ2UpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChlZGdlLT5vcCgpID09IFVJbnQzMlRvTnVtYmVyKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlZGdlLT5jaGlsZDEoKS5ub2RlKCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWRnZS5ub2RlKCk7Ci0gICAgICAgICAgICAg
ICAgICAgIH07Ci0KLSAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5zZXRPcChvcCk7Ci0gICAg
ICAgICAgICAgICAgICAgIG1fbm9kZS0+Y2hpbGQxKCkgPSBFZGdlKGV4dHJhY3RDaGlsZChtX25v
ZGUtPmNoaWxkMSgpKSwgSW50MzJVc2UpOwotICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNo
aWxkMigpID0gRWRnZShleHRyYWN0Q2hpbGQobV9ub2RlLT5jaGlsZDIoKSksIEludDMyVXNlKTsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGxhY2VPcGVyYW5kcykKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHN0ZDo6c3dhcChtX25vZGUtPmNoaWxkMSgpLCBtX25vZGUtPmNoaWxkMigpKTsK
LSAgICAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgICAgICAg
ICAgCiAgICAgICAgIGNhc2UgRmx1c2g6IHsKICAgICAgICAgICAgIEFTU0VSVChtX2dyYXBoLm1f
Zm9ybSAhPSBTU0EpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdW
YWxpZGF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcApp
bmRleCA2NDM4NmI2ZjUzNDdmMTc5NmJkMWIzNDk3Mjk0MTNlN2NhMTYzOWQ1Li5jOWFiMmI0OTM5
MzZiZjlmYjNkNDM2ZmY3ZThkY2ExNTJjN2U2MmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ZhbGlkYXRlLmNwcApAQCAtMjY3LDggKzI2Nyw2IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgICAgICBjYXNlIENvbXBhcmVMZXNzRXE6CiAgICAgICAgICAgICAgICAgY2FzZSBDb21wYXJl
R3JlYXRlcjoKICAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVHcmVhdGVyRXE6Ci0gICAgICAg
ICAgICAgICAgY2FzZSBDb21wYXJlQmVsb3c6Ci0gICAgICAgICAgICAgICAgY2FzZSBDb21wYXJl
QmVsb3dFcToKICAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVFcToKICAgICAgICAgICAgICAg
ICBjYXNlIENvbXBhcmVTdHJpY3RFcToKICAgICAgICAgICAgICAgICBjYXNlIFN0ckNhdDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA2OTI2
ZTFlYTQ4MzRkMWU2Y2U2Zjk5ZTJjZmU1NTkwZmE3YzZmMThmLi4xMzA5ZTllYWExOTExNTcyZGFh
ZDFiOTZhZmFjZjI3ZmRlZGE4YTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDYXBhYmlsaXRpZXMuY3BwCkBAIC0yODQsOCArMjg0LDYgQEAgaW5saW5lIENhcGFiaWxpdHlM
ZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDb21wYXJlTGVzc0VxOgogICAg
IGNhc2UgQ29tcGFyZUdyZWF0ZXI6CiAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgotICAgIGNh
c2UgQ29tcGFyZUJlbG93OgotICAgIGNhc2UgQ29tcGFyZUJlbG93RXE6CiAgICAgY2FzZSBDb21w
YXJlU3RyaWN0RXE6CiAgICAgY2FzZSBEZWZpbmVEYXRhUHJvcGVydHk6CiAgICAgY2FzZSBEZWZp
bmVBY2Nlc3NvclByb3BlcnR5OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCmluZGV4IDRkNDliZGY0NzFhYjBkNjNlMjlhMmFmYjdmYmJlZDE4ZGQzMTA4
YTcuLjFjZWJjMDEwNWE0MjVkNDJmYmU4Njc1Y2JiOGRkMWU0MzQ2ZTcyNTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTkzMiwxMiArOTMy
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgogICAgICAgICAg
ICAgY29tcGlsZUNvbXBhcmVHcmVhdGVyRXEoKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIENvbXBhcmVCZWxvdzoKLSAgICAgICAgICAgIGNvbXBpbGVDb21wYXJlQmVsb3coKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENvbXBhcmVCZWxvd0VxOgotICAgICAg
ICAgICAgY29tcGlsZUNvbXBhcmVCZWxvd0VxKCk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBDb21wYXJlRXFQdHI6CiAgICAgICAgICAgICBjb21waWxlQ29tcGFyZUVxUHRyKCk7
CiAgICAgICAgICAgICBicmVhazsKQEAgLTYzNDQsMTYgKzYzMzgsNiBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgb3BlcmF0aW9uQ29tcGFyZVN0cmluZ0dyZWF0ZXJFcSwKICAgICAgICAgICAgIG9w
ZXJhdGlvbkNvbXBhcmVHcmVhdGVyRXEpOwogICAgIH0KLQotICAgIHZvaWQgY29tcGlsZUNvbXBh
cmVCZWxvdygpCi0gICAgewotICAgICAgICBzZXRCb29sZWFuKG1fb3V0LmJlbG93KGxvd0ludDMy
KG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dJbnQzMihtX25vZGUtPmNoaWxkMigpKSkpOwotICAgIH0K
LSAgICAKLSAgICB2b2lkIGNvbXBpbGVDb21wYXJlQmVsb3dFcSgpCi0gICAgewotICAgICAgICBz
ZXRCb29sZWFuKG1fb3V0LmJlbG93T3JFcXVhbChsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKSwg
bG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSkpKTsKLSAgICB9CiAgICAgCiAgICAgdm9pZCBjb21w
aWxlTG9naWNhbE5vdCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IDRh
NGJiOGRjZjM5NDY3ZDQ1MzY5NmQyMDNkNzY0MjlhMDUzODQ0MDcuLjVlY2YzYTYyYjI3OWI5N2Nk
MGUxZTg1NWQxMmQyOTMzNDNkYzhhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAg
LTMwMSw4ICszMDEsNiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAg
ICAgIERFRklORV9PUChvcF9nZXRfc2NvcGUpCiAgICAgICAgIERFRklORV9PUChvcF9lcSkKICAg
ICAgICAgREVGSU5FX09QKG9wX2VxX251bGwpCi0gICAgICAgIERFRklORV9PUChvcF9iZWxvdykK
LSAgICAgICAgREVGSU5FX09QKG9wX2JlbG93ZXEpCiAgICAgICAgIERFRklORV9PUChvcF90cnlf
Z2V0X2J5X2lkKQogICAgICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CiAgICAgICAgIGNh
c2Ugb3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQ6CkBAIC0zMzMsOCArMzMxLDYgQEAgdm9pZCBKSVQ6
OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3Bfam5sZXNzZXEp
CiAgICAgICAgIERFRklORV9PUChvcF9qbmdyZWF0ZXIpCiAgICAgICAgIERFRklORV9PUChvcF9q
bmdyZWF0ZXJlcSkKLSAgICAgICAgREVGSU5FX09QKG9wX2piZWxvdykKLSAgICAgICAgREVGSU5F
X09QKG9wX2piZWxvd2VxKQogICAgICAgICBERUZJTkVfT1Aob3BfanRydWUpCiAgICAgICAgIERF
RklORV9PUChvcF9sb29wX2hpbnQpCiAgICAgICAgIERFRklORV9PUChvcF9jaGVja190cmFwcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDZkMDg2YzQxMWZiZTgxNTU4NzllODNjMDZmNDIy
NzZlOWQ5NTc3NmQuLjdjYmFlMzU0MzU4ZTRlYjAyYjc3ZGI0OTAyMWIxNGI5ZjYzMGU5ZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNDYwLDggKzQ2MCw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAKICAgICAgICAgdm9pZCBlbWl0X2NvbXBh
cmVBbmRKdW1wKE9wY29kZUlELCBpbnQgb3AxLCBpbnQgb3AyLCB1bnNpZ25lZCB0YXJnZXQsIFJl
bGF0aW9uYWxDb25kaXRpb24pOwotICAgICAgICB2b2lkIGVtaXRfY29tcGFyZVVuc2lnbmVkKGlu
dCBkc3QsIGludCBvcDEsIGludCBvcDIsIFJlbGF0aW9uYWxDb25kaXRpb24pOwotICAgICAgICB2
b2lkIGVtaXRfY29tcGFyZVVuc2lnbmVkQW5kSnVtcChpbnQgb3AxLCBpbnQgb3AyLCB1bnNpZ25l
ZCB0YXJnZXQsIFJlbGF0aW9uYWxDb25kaXRpb24pOwogICAgICAgICB2b2lkIGVtaXRfY29tcGFy
ZUFuZEp1bXBTbG93KGludCBvcDEsIGludCBvcDIsIHVuc2lnbmVkIHRhcmdldCwgRG91YmxlQ29u
ZGl0aW9uLCBzaXplX3QgKEpJVF9PUEVSQVRJT04gKm9wZXJhdGlvbikoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSwgYm9vbCBpbnZlcnQsIFZlY3RvcjxTbG93Q2Fz
ZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgYXNzZXJ0U3RhY2tQ
b2ludGVyT2Zmc2V0KCk7CkBAIC01MDEsOCArNDk5LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHZvaWQgZW1pdF9vcF9nZXRfc2NvcGUoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBl
bWl0X29wX2VxKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9lcV9udWxsKElu
c3RydWN0aW9uKik7Ci0gICAgICAgIHZvaWQgZW1pdF9vcF9iZWxvdyhJbnN0cnVjdGlvbiopOwot
ICAgICAgICB2b2lkIGVtaXRfb3BfYmVsb3dlcShJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lk
IGVtaXRfb3BfdHJ5X2dldF9ieV9pZChJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRf
b3BfZ2V0X2J5X2lkKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9nZXRfYnlf
aWRfd2l0aF90aGlzKEluc3RydWN0aW9uKik7CkBAIC01MzMsOCArNTI5LDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9qbmxlc3NlcShJbnN0cnVjdGlvbiopOwogICAg
ICAgICB2b2lkIGVtaXRfb3Bfam5ncmVhdGVyKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQg
ZW1pdF9vcF9qbmdyZWF0ZXJlcShJbnN0cnVjdGlvbiopOwotICAgICAgICB2b2lkIGVtaXRfb3Bf
amJlbG93KEluc3RydWN0aW9uKik7Ci0gICAgICAgIHZvaWQgZW1pdF9vcF9qYmVsb3dlcShJbnN0
cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfanRydWUoSW5zdHJ1Y3Rpb24qKTsKICAg
ICAgICAgdm9pZCBlbWl0X29wX2xvb3BfaGludChJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lk
IGVtaXRfb3BfY2hlY2tfdHJhcHMoSW5zdHJ1Y3Rpb24qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCmluZGV4IGMxY2EyNzVjMGY5ZGE2MGEyOTBjNzQwNTgw
YWFhZDMyZGRmMTI1N2UuLjU4ZmRiMTBkMWQ5ZDI4NTgzYTUxOThkMDZhMTk4YjEwODYzNmQzZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcApAQCAtMTk3
LDQwICsxOTcsNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bfam5ncmVhdGVyZXEoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYQogICAgIGVtaXRfY29tcGFyZUFu
ZEp1bXBTbG93KG9wMSwgb3AyLCB0YXJnZXQsIERvdWJsZUxlc3NUaGFuT3JVbm9yZGVyZWQsIG9w
ZXJhdGlvbkNvbXBhcmVHcmVhdGVyRXEsIHRydWUsIGl0ZXIpOwogfQogCi12b2lkIEpJVDo6ZW1p
dF9vcF9iZWxvdyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQotewotICAgIGludCBk
c3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwotICAgIGludCBvcDEgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwotICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIGVtaXRfY29tcGFyZVVuc2lnbmVkKGRzdCwgb3AxLCBv
cDIsIEJlbG93KTsKLX0KLQotdm9pZCBKSVQ6OmVtaXRfb3BfYmVsb3dlcShJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQotewotICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kOwotICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVy
YW5kOwotICAgIGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAg
IGVtaXRfY29tcGFyZVVuc2lnbmVkKGRzdCwgb3AxLCBvcDIsIEJlbG93T3JFcXVhbCk7Ci19Ci0K
LXZvaWQgSklUOjplbWl0X29wX2piZWxvdyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQotewotICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwotICAg
IGludCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwotICAgIHVuc2lnbmVk
IHRhcmdldCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0KLSAgICBlbWl0X2Nv
bXBhcmVVbnNpZ25lZEFuZEp1bXAob3AxLCBvcDIsIHRhcmdldCwgQmVsb3cpOwotfQotCi12b2lk
IEpJVDo6ZW1pdF9vcF9qYmVsb3dlcShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQot
ewotICAgIGludCBvcDEgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwotICAgIGlu
dCBvcDIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwotICAgIHVuc2lnbmVkIHRh
cmdldCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0KLSAgICBlbWl0X2NvbXBh
cmVVbnNpZ25lZEFuZEp1bXAob3AxLCBvcDIsIHRhcmdldCwgQmVsb3dPckVxdWFsKTsKLX0KLQog
I2lmIFVTRShKU1ZBTFVFNjQpCiAKIHZvaWQgSklUOjplbWl0X29wX3Vuc2lnbmVkKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC0yOTgsNDAgKzI2NCw2IEBAIHZvaWQgSklUOjpl
bWl0X2NvbXBhcmVBbmRKdW1wKE9wY29kZUlELCBpbnQgb3AxLCBpbnQgb3AyLCB1bnNpZ25lZCB0
YXJnZXQsIFJlbGF0CiAgICAgfQogfQogCi12b2lkIEpJVDo6ZW1pdF9jb21wYXJlVW5zaWduZWRB
bmRKdW1wKGludCBvcDEsIGludCBvcDIsIHVuc2lnbmVkIHRhcmdldCwgUmVsYXRpb25hbENvbmRp
dGlvbiBjb25kaXRpb24pCi17Ci0gICAgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMikpIHsK
LSAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDEsIHJlZ1QwKTsKLSAgICAgICAgaW50
MzJfdCBvcDJpbW0gPSBnZXRPcGVyYW5kQ29uc3RhbnRJbnQob3AyKTsKLSAgICAgICAgYWRkSnVt
cChicmFuY2gzMihjb25kaXRpb24sIHJlZ1QwLCBJbW0zMihvcDJpbW0pKSwgdGFyZ2V0KTsKLSAg
ICB9IGVsc2UgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMSkpIHsKLSAgICAgICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3RlcihvcDIsIHJlZ1QxKTsKLSAgICAgICAgaW50MzJfdCBvcDFpbW0gPSBn
ZXRPcGVyYW5kQ29uc3RhbnRJbnQob3AxKTsKLSAgICAgICAgYWRkSnVtcChicmFuY2gzMihjb21t
dXRlKGNvbmRpdGlvbiksIHJlZ1QxLCBJbW0zMihvcDFpbW0pKSwgdGFyZ2V0KTsKLSAgICB9IGVs
c2UgewotICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhvcDEsIHJlZ1QwLCBvcDIsIHJl
Z1QxKTsKLSAgICAgICAgYWRkSnVtcChicmFuY2gzMihjb25kaXRpb24sIHJlZ1QwLCByZWdUMSks
IHRhcmdldCk7Ci0gICAgfQotfQotCi12b2lkIEpJVDo6ZW1pdF9jb21wYXJlVW5zaWduZWQoaW50
IGRzdCwgaW50IG9wMSwgaW50IG9wMiwgUmVsYXRpb25hbENvbmRpdGlvbiBjb25kaXRpb24pCi17
Ci0gICAgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMikpIHsKLSAgICAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcihvcDEsIHJlZ1QwKTsKLSAgICAgICAgaW50MzJfdCBvcDJpbW0gPSBnZXRP
cGVyYW5kQ29uc3RhbnRJbnQob3AyKTsKLSAgICAgICAgY29tcGFyZTMyKGNvbmRpdGlvbiwgcmVn
VDAsIEltbTMyKG9wMmltbSksIHJlZ1QwKTsKLSAgICB9IGVsc2UgaWYgKGlzT3BlcmFuZENvbnN0
YW50SW50KG9wMSkpIHsKLSAgICAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihvcDIsIHJlZ1Qw
KTsKLSAgICAgICAgaW50MzJfdCBvcDFpbW0gPSBnZXRPcGVyYW5kQ29uc3RhbnRJbnQob3AxKTsK
LSAgICAgICAgY29tcGFyZTMyKGNvbW11dGUoY29uZGl0aW9uKSwgcmVnVDAsIEltbTMyKG9wMWlt
bSksIHJlZ1QwKTsKLSAgICB9IGVsc2UgewotICAgICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
cyhvcDEsIHJlZ1QwLCBvcDIsIHJlZ1QxKTsKLSAgICAgICAgY29tcGFyZTMyKGNvbmRpdGlvbiwg
cmVnVDAsIHJlZ1QxLCByZWdUMCk7Ci0gICAgfQotICAgIGVtaXRUYWdCb29sKHJlZ1QwKTsKLSAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7Ci19Ci0KIHZvaWQgSklUOjplbWl0X2NvbXBh
cmVBbmRKdW1wU2xvdyhpbnQgb3AxLCBpbnQgb3AyLCB1bnNpZ25lZCB0YXJnZXQsIERvdWJsZUNv
bmRpdGlvbiBjb25kaXRpb24sIHNpemVfdCAoSklUX09QRVJBVElPTiAqb3BlcmF0aW9uKShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpLCBib29sIGludmVydCwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBDT01QSUxFX0FTU0VS
VChPUENPREVfTEVOR1RIKG9wX2psZXNzKSA9PSBPUENPREVfTEVOR1RIKG9wX2psZXNzZXEpLCBP
UENPREVfTEVOR1RIX29wX2psZXNzZXFfZXF1YWxzX29wX2psZXNzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcAppbmRleCAwZTE4N2M4NDZl
ZmMwNzIzNmM2MmUxMzllNzE1ODk1OTU3Y2NhNDBiLi5kMjcxZDQ4YTAzM2RlZDI0MGUyYjY2MTQ4
NjA4YmE5YWRhODhhODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VEFyaXRobWV0aWMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRB
cml0aG1ldGljMzJfNjQuY3BwCkBAIC05MiwzNiArOTIsNiBAQCB2b2lkIEpJVDo6ZW1pdF9jb21w
YXJlQW5kSnVtcChPcGNvZGVJRCBvcGNvZGUsIGludCBvcDEsIGludCBvcDIsIHVuc2lnbmVkIHRh
cmdldAogICAgIGVuZC5saW5rKHRoaXMpOwogfQogCi12b2lkIEpJVDo6ZW1pdF9jb21wYXJlVW5z
aWduZWRBbmRKdW1wKGludCBvcDEsIGludCBvcDIsIHVuc2lnbmVkIHRhcmdldCwgUmVsYXRpb25h
bENvbmRpdGlvbiBjb25kaXRpb24pCi17Ci0gICAgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9w
MSkpIHsKLSAgICAgICAgZW1pdExvYWQob3AyLCByZWdUMywgcmVnVDIpOwotICAgICAgICBhZGRK
dW1wKGJyYW5jaDMyKGNvbW11dGUoY29uZGl0aW9uKSwgcmVnVDIsIEltbTMyKGdldENvbnN0YW50
T3BlcmFuZChvcDEpLmFzSW50MzIoKSkpLCB0YXJnZXQpOwotICAgIH0gZWxzZSBpZiAoaXNPcGVy
YW5kQ29uc3RhbnRJbnQob3AyKSkgewotICAgICAgICBlbWl0TG9hZChvcDEsIHJlZ1QxLCByZWdU
MCk7Ci0gICAgICAgIGFkZEp1bXAoYnJhbmNoMzIoY29uZGl0aW9uLCByZWdUMCwgSW1tMzIoZ2V0
Q29uc3RhbnRPcGVyYW5kKG9wMikuYXNJbnQzMigpKSksIHRhcmdldCk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgZW1pdExvYWQyKG9wMSwgcmVnVDEsIHJlZ1QwLCBvcDIsIHJlZ1QzLCByZWdUMik7
Ci0gICAgICAgIGFkZEp1bXAoYnJhbmNoMzIoY29uZGl0aW9uLCByZWdUMCwgcmVnVDIpLCB0YXJn
ZXQpOwotICAgIH0KLX0KLQotCi12b2lkIEpJVDo6ZW1pdF9jb21wYXJlVW5zaWduZWQoaW50IGRz
dCwgaW50IG9wMSwgaW50IG9wMiwgUmVsYXRpb25hbENvbmRpdGlvbiBjb25kaXRpb24pCi17Ci0g
ICAgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KG9wMSkpIHsKLSAgICAgICAgZW1pdExvYWQob3Ay
LCByZWdUMywgcmVnVDIpOwotICAgICAgICBjb21wYXJlMzIoY29tbXV0ZShjb25kaXRpb24pLCBy
ZWdUMiwgSW1tMzIoZ2V0Q29uc3RhbnRPcGVyYW5kKG9wMSkuYXNJbnQzMigpKSwgcmVnVDApOwot
ICAgIH0gZWxzZSBpZiAoaXNPcGVyYW5kQ29uc3RhbnRJbnQob3AyKSkgewotICAgICAgICBlbWl0
TG9hZChvcDEsIHJlZ1QxLCByZWdUMCk7Ci0gICAgICAgIGNvbXBhcmUzMihjb25kaXRpb24sIHJl
Z1QwLCBJbW0zMihnZXRDb25zdGFudE9wZXJhbmQob3AyKS5hc0ludDMyKCkpLCByZWdUMCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgZW1pdExvYWQyKG9wMSwgcmVnVDEsIHJlZ1QwLCBvcDIsIHJl
Z1QzLCByZWdUMik7Ci0gICAgICAgIGNvbXBhcmUzMihjb25kaXRpb24sIHJlZ1QwLCByZWdUMiwg
cmVnVDApOwotICAgIH0KLSAgICBlbWl0U3RvcmVCb29sKGRzdCwgcmVnVDApOwotfQotCiB2b2lk
IEpJVDo6ZW1pdF9jb21wYXJlQW5kSnVtcFNsb3coaW50IG9wMSwgaW50IG9wMiwgdW5zaWduZWQg
dGFyZ2V0LCBEb3VibGVDb25kaXRpb24sIHNpemVfdCAoSklUX09QRVJBVElPTiAqb3BlcmF0aW9u
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpLCBib29sIGludmVy
dCwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBpZiAoaXNP
cGVyYW5kQ29uc3RhbnRDaGFyKG9wMSkgfHwgaXNPcGVyYW5kQ29uc3RhbnRDaGFyKG9wMikpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
LmFzbQppbmRleCBhYjg4OGQzMmJlMGZhOTYxNTYzNTA2NzY3N2JlZmQyOGJhYTEyMjczLi41ZGRl
NjY0OTRiMWYxNjg0Y2UwYjI4ZTBiMmQ3ZTcxZTA4OTI4MjU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0xMzk4LDE4
ICsxMzk4LDYgQEAgX2xsaW50X29wX2dyZWF0ZXJlcToKICAgICBkaXNwYXRjaChjb25zdGV4cHIg
b3BfZ3JlYXRlcmVxX2xlbmd0aCkKIAogCi1fbGxpbnRfb3BfYmVsb3c6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGNvbXBhcmVVbnNpZ25lZCgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCByZXN1bHQpIGNpYiBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCkKLQotCi1fbGxpbnRfb3BfYmVs
b3dlcToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZVVuc2lnbmVkKAotICAgICAg
ICBtYWNybyAobGVmdCwgcmlnaHQsIHJlc3VsdCkgY2liZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBl
bmQpCi0KLQogX2xsaW50X29wX21vZDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2FsbE9w
Y29kZVNsb3dQYXRoKF9zbG93X3BhdGhfbW9kKQpAQCAtMTU4OSwxOCArMTU3Nyw2IEBAIF9sbGlu
dF9vcF9qbmdyZWF0ZXJlcToKICAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmdyZWF0ZXJlcSkK
IAogCi1fbGxpbnRfb3BfamJlbG93OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJl
VW5zaWduZWRKdW1wKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmliIGxl
ZnQsIHJpZ2h0LCB0YXJnZXQgZW5kKQotCi0KLV9sbGludF9vcF9qYmVsb3dlcToKLSAgICB0cmFj
ZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZVVuc2lnbmVkSnVtcCgKLSAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCB0YXJnZXQpIGJpYmVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kKQotCi0KIF9s
bGludF9vcF9sb29wX2hpbnQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGNoZWNrU3dpdGNo
VG9KSVRGb3JMb29wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggNGE0NzU4MmQ3ZGY0OGIwMDE3MTM5
ZjNiYjMyZTQ5NzBiNTZmN2NlNC4uMTE0YTk3OGIwMjhiM2QwMDcyMzViMzE5N2U4M2QyNGM4ZDk5
ODMzZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTE3OTYsMzIgKzE3OTYsNiBAQCBfbGxpbnRfb3Bf
am5lcV9wdHI6CiAgICAgZGlzcGF0Y2goY29uc3RleHByIG9wX2puZXFfcHRyX2xlbmd0aCkKIAog
Ci1tYWNybyBjb21wYXJlVW5zaWduZWRKdW1wKGludGVnZXJDb21wYXJlKQotICAgIGxvYWRpIDRb
UENdLCB0MgotICAgIGxvYWRpIDhbUENdLCB0MwotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUo
dDIsIHQwLCB0MSkKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlMlJlZyh0MywgdDIsIHQzKQot
ICAgIGludGVnZXJDb21wYXJlKHQxLCB0MywgLmp1bXBUYXJnZXQpCi0gICAgZGlzcGF0Y2goNCkK
LQotLmp1bXBUYXJnZXQ6Ci0gICAgZGlzcGF0Y2hCcmFuY2goMTJbUENdKQotZW5kCi0KLQotbWFj
cm8gY29tcGFyZVVuc2lnbmVkKGludGVnZXJDb21wYXJlQW5kU2V0KQotICAgIGxvYWRpIDEyW1BD
XSwgdDIKLSAgICBsb2FkaSA4W1BDXSwgdDAKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQy
LCB0MywgdDEpCi0gICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZTJSZWcodDAsIHQyLCB0MCkKLSAg
ICBpbnRlZ2VyQ29tcGFyZUFuZFNldCh0MCwgdDEsIHQwKQotICAgIGxvYWRpIDRbUENdLCB0Mgot
ICAgIHN0b3JlaSBCb29sZWFuVGFnLCBUYWdPZmZzZXRbY2ZyLCB0MiwgOF0KLSAgICBzdG9yZWkg
dDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MiwgOF0KLSAgICBkaXNwYXRjaCg0KQotZW5kCi0KLQog
bWFjcm8gY29tcGFyZShpbnRlZ2VyQ29tcGFyZSwgZG91YmxlQ29tcGFyZSwgc2xvd1BhdGgpCiAg
ICAgbG9hZGkgNFtQQ10sIHQyCiAgICAgbG9hZGkgOFtQQ10sIHQzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IGRj
ZjBmYWI5Yzc2YzE3MmYwMzUwMTA4Njg1ZjQ0OGUxYzBiMGQ4ODEuLmUzN2EwZjY5NTNjYzEwYTE5
YTM5ZWRmYzgwZWZiMTM0ZTIzYTU3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0xODEzLDMzICsxODEzLDYg
QEAgbWFjcm8gY29tcGFyZShpbnRlZ2VyQ29tcGFyZSwgZG91YmxlQ29tcGFyZSwgc2xvd1BhdGgp
CiBlbmQKIAogCi1tYWNybyBjb21wYXJlVW5zaWduZWRKdW1wKGludGVnZXJDb21wYXJlKQotICAg
IGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKLSAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24o
MiwgdDMpCi0gICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCi0gICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZSh0MywgdDEpCi0gICAgaW50ZWdlckNvbXBhcmUodDAsIHQxLCAuanVtcFRh
cmdldCkKLSAgICBkaXNwYXRjaCg0KQotCi0uanVtcFRhcmdldDoKLSAgICBkaXNwYXRjaEludElu
ZGlyZWN0KDMpCi1lbmQKLQotCi1tYWNybyBjb21wYXJlVW5zaWduZWQoaW50ZWdlckNvbXBhcmVB
bmRTZXQpCi0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigz
LCB0MCkKLSAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDIpCi0gICAgbG9hZGlzRnJvbUlu
c3RydWN0aW9uKDEsIHQzKQotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQxKQotICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQotICAgIGludGVnZXJDb21wYXJlQW5kU2V0
KHQwLCB0MSwgdDApCi0gICAgb3JxIFZhbHVlRmFsc2UsIHQwCi0gICAgc3RvcmVxIHQwLCBbY2Zy
LCB0MywgOF0KLSAgICBkaXNwYXRjaCg0KQotZW5kCi0KLQogX2xsaW50X29wX3N3aXRjaF9pbW06
CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigzLCB0MikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCBiNjZmODg0NTRjNDAzMDM4NjM3
M2U2N2MxZDY4OGY3ZmJmZWNkYmQ0Li5kNmZlYzMwMmZiYzNhMzM3YmUzNDQ4NjExMTBmNGQ3MmNi
YTU0MGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC0xODgsNyArMTg4
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0ltcG9ydE5vZGUo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNOZXdUYXJn
ZXQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNCeXRl
Y29kZUludHJpbnNpY05vZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNCaW5hcnlPcE5vZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBlbWl0Qnl0ZWNvZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBMYWJlbCYsIExhYmVsJiwgRmFsbFRocm91Z2hNb2RlKTsKIApAQCAtMTA2NSw4
ICsxMDY0LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBsaHMo
KSB7IHJldHVybiBtX2V4cHIxOyB9OwogICAgICAgICBFeHByZXNzaW9uTm9kZSogcmhzKCkgeyBy
ZXR1cm4gbV9leHByMjsgfTsKIAotICAgICAgICBib29sIGlzQmluYXJ5T3BOb2RlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCB0
cnlGb2xkVG9CcmFuY2goQnl0ZWNvZGVHZW5lcmF0b3ImLCBUcmlTdGF0ZSYgYnJhbmNoQ29uZGl0
aW9uLCBFeHByZXNzaW9uTm9kZSomIGJyYW5jaEV4cHJlc3Npb24pOwogICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92
ZXJyaWRlOwpAQCAtMTA4MSw3ICsxMDc4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE9w
Y29kZUlEIG1fb3Bjb2RlSUQ7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBib29sIG1fcmlnaHRI
YXNBc3NpZ25tZW50czsKLSAgICAgICAgYm9vbCBtX3Nob3VsZFRvVW5zaWduZWRSZXN1bHQgeyB0
cnVlIH07CiAgICAgfTsKIAogICAgIGNsYXNzIFBvd05vZGUgOiBwdWJsaWMgQmluYXJ5T3BOb2Rl
IHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMGIyYTY0MGEyOTgxNmUzNDMwNjM3YTRhZTYxYmFlZDcxZmY0Y2EyMC4uM2Q2MTY3OWE4NTQw
ZTliODE2M2U3MDliMGYwMjAxOTYxZGMzMTI0YSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wOS0yNiAg
Q29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjIyMjUxOC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NzUwNworCisgICAgICAgIEJyZWFrIHRoZSBIaWdoIFNpZXJy
YSBidWlsZCAoUmVxdWVzdGVkIGJ5IHl1c3VrZXN1enVraSBvbgorICAgICAgICAjd2Via2l0KS4K
KworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIkFkZCBBYm92ZS9CZWxv
dyBjb21wYXJpc29ucyBmb3IgVUludDMyIHBhdHRlcm5zIgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MjgxCisgICAgICAgIGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzIyMjUxOAorCiAyMDE3LTA5LTI2ICBZdXN1a2UgU3V6dWtpICA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIEFkZCBBYm92ZS9CZWxvdyBjb21wYXJp
c29ucyBmb3IgVUludDMyIHBhdHRlcm5zCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy91aW50
MzItY29tcGFyaXNvbi1qdW1wLmpzIGIvSlNUZXN0cy9zdHJlc3MvdWludDMyLWNvbXBhcmlzb24t
anVtcC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGE2YmU5ZjcxYTQ3YjJjNmU2
ZGZjM2Y0ZTA5ZTZmMTkyZjgxZmI0NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVzcy91aW50MzItY29tcGFyaXNvbi1qdW1wLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsMTQxICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwg
ZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiBhYm92ZShh
LCB0cmFwKSB7Ci0gICAgbGV0IHJlc3VsdCA9IDA7Ci0gICAgZm9yIChsZXQgaSA9IDA7IChhID4+
PiAwKSA+IChpID4+PiAwKTsgKytpKSB7Ci0gICAgICAgIHJlc3VsdCArPSBpOwotICAgICAgICBp
ZiAoaSA9PT0gdHJhcCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gcmVz
dWx0OwotfQotbm9JbmxpbmUoYWJvdmUpOwotCi1mdW5jdGlvbiBhYm92ZU9yRXF1YWwoYSwgdHJh
cCkgewotICAgIGxldCByZXN1bHQgPSAwOwotICAgIGZvciAobGV0IGkgPSAwOyAoYSA+Pj4gMCkg
Pj0gKGkgPj4+IDApOyArK2kpIHsKLSAgICAgICAgcmVzdWx0ICs9IGk7Ci0gICAgICAgIGlmIChp
ID09PSB0cmFwKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7
Ci19Ci1ub0lubGluZShhYm92ZU9yRXF1YWwpOwotCi1mdW5jdGlvbiBiZWxvdyhhLCB0cmFwKSB7
Ci0gICAgbGV0IHJlc3VsdCA9IDA7Ci0gICAgZm9yIChsZXQgaSA9IDA7IChpID4+PiAwKSA8IChh
ID4+PiAwKTsgKytpKSB7Ci0gICAgICAgIHJlc3VsdCArPSBpOwotICAgICAgICBpZiAoaSA9PT0g
dHJhcCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQot
bm9JbmxpbmUoYmVsb3cpOwotCi1mdW5jdGlvbiBiZWxvd09yRXF1YWwoYSwgdHJhcCkgewotICAg
IGxldCByZXN1bHQgPSAwOwotICAgIGZvciAobGV0IGkgPSAwOyAoaSA+Pj4gMCkgPD0gKGEgPj4+
IDApOyArK2kpIHsKLSAgICAgICAgcmVzdWx0ICs9IGk7Ci0gICAgICAgIGlmIChpID09PSB0cmFw
KQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci1ub0lu
bGluZShiZWxvd09yRXF1YWwpOwotCi1mdW5jdGlvbiBub3RBYm92ZShhLCB0cmFwKSB7Ci0gICAg
bGV0IHJlc3VsdCA9IDA7Ci0gICAgZm9yIChsZXQgaSA9IDA7IChhID4+PiAwKSA+IChpID4+PiAw
KSAmJiBhOyArK2kpIHsKLSAgICAgICAgcmVzdWx0ICs9IGk7Ci0gICAgICAgIGlmIChpID09PSB0
cmFwKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci1u
b0lubGluZShub3RBYm92ZSk7Ci0KLWZ1bmN0aW9uIG5vdEFib3ZlT3JFcXVhbChhLCB0cmFwKSB7
Ci0gICAgbGV0IHJlc3VsdCA9IDA7Ci0gICAgZm9yIChsZXQgaSA9IDA7IChhID4+PiAwKSA+PSAo
aSA+Pj4gMCkgJiYgYTsgKytpKSB7Ci0gICAgICAgIHJlc3VsdCArPSBpOwotICAgICAgICBpZiAo
aSA9PT0gdHJhcCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0
OwotfQotbm9JbmxpbmUobm90QWJvdmVPckVxdWFsKTsKLQotZnVuY3Rpb24gbm90QmVsb3coYSwg
dHJhcCkgewotICAgIGxldCByZXN1bHQgPSAwOwotICAgIGZvciAobGV0IGkgPSAwOyAoaSA+Pj4g
MCkgPCAoYSA+Pj4gMCkgJiYgYTsgKytpKSB7Ci0gICAgICAgIHJlc3VsdCArPSBpOwotICAgICAg
ICBpZiAoaSA9PT0gdHJhcCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4g
cmVzdWx0OwotfQotbm9JbmxpbmUobm90QmVsb3cpOwotCi1mdW5jdGlvbiBub3RCZWxvd09yRXF1
YWwoYSwgdHJhcCkgewotICAgIGxldCByZXN1bHQgPSAwOwotICAgIGZvciAobGV0IGkgPSAwOyAo
aSA+Pj4gMCkgPD0gKGEgPj4+IDApICYmIGE7ICsraSkgewotICAgICAgICByZXN1bHQgKz0gaTsK
LSAgICAgICAgaWYgKGkgPT09IHRyYXApCi0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0gICAg
cmV0dXJuIHJlc3VsdDsKLX0KLW5vSW5saW5lKG5vdEJlbG93T3JFcXVhbCk7Ci0KLWZvciAodmFy
IGkgPSAwOyBpIDwgMWUyOyArK2kpIHsKLSAgICBzaG91bGRCZShhYm92ZSgwLCAtMSksIDApOwot
ICAgIHNob3VsZEJlKGFib3ZlKDIwMDAwLCAtMSksIDE5OTk5MDAwMCk7Ci0gICAgc2hvdWxkQmUo
YWJvdmUoLTEsIDEwMDAwKSwgNTAwMDUwMDApOwotfQotCi1mb3IgKHZhciBpID0gMDsgaSA8IDFl
MjsgKytpKSB7Ci0gICAgc2hvdWxkQmUoYWJvdmVPckVxdWFsKDAsIC0xKSwgMCk7Ci0gICAgc2hv
dWxkQmUoYWJvdmVPckVxdWFsKDIwMDAwLCAtMSksIDIwMDAxMDAwMCk7Ci0gICAgc2hvdWxkQmUo
YWJvdmVPckVxdWFsKC0xLCAxMDAwMCksIDUwMDA1MDAwKTsKLX0KLQotZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTI7ICsraSkgewotICAgIHNob3VsZEJlKGJlbG93KDAsIC0xKSwgMCk7Ci0gICAgc2hv
dWxkQmUoYmVsb3coMjAwMDAsIC0xKSwgMTk5OTkwMDAwKTsKLSAgICBzaG91bGRCZShiZWxvdygt
MSwgMTAwMDApLCA1MDAwNTAwMCk7Ci19Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMWUyOyArK2kp
IHsKLSAgICBzaG91bGRCZShiZWxvd09yRXF1YWwoMCwgLTEpLCAwKTsKLSAgICBzaG91bGRCZShi
ZWxvd09yRXF1YWwoMjAwMDAsIC0xKSwgMjAwMDEwMDAwKTsKLSAgICBzaG91bGRCZShiZWxvd09y
RXF1YWwoLTEsIDEwMDAwKSwgNTAwMDUwMDApOwotfQotCi1mb3IgKHZhciBpID0gMDsgaSA8IDFl
MjsgKytpKSB7Ci0gICAgc2hvdWxkQmUobm90QWJvdmUoMCwgLTEpLCAwKTsKLSAgICBzaG91bGRC
ZShub3RBYm92ZSgyMDAwMCwgLTEpLCAxOTk5OTAwMDApOwotICAgIHNob3VsZEJlKG5vdEFib3Zl
KC0xLCAxMDAwMCksIDUwMDA1MDAwKTsKLX0KLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTI7ICsr
aSkgewotICAgIHNob3VsZEJlKG5vdEFib3ZlT3JFcXVhbCgwLCAtMSksIDApOwotICAgIHNob3Vs
ZEJlKG5vdEFib3ZlT3JFcXVhbCgyMDAwMCwgLTEpLCAyMDAwMTAwMDApOwotICAgIHNob3VsZEJl
KG5vdEFib3ZlT3JFcXVhbCgtMSwgMTAwMDApLCA1MDAwNTAwMCk7Ci19Ci0KLWZvciAodmFyIGkg
PSAwOyBpIDwgMWUyOyArK2kpIHsKLSAgICBzaG91bGRCZShub3RCZWxvdygwLCAtMSksIDApOwot
ICAgIHNob3VsZEJlKG5vdEJlbG93KDIwMDAwLCAtMSksIDE5OTk5MDAwMCk7Ci0gICAgc2hvdWxk
QmUobm90QmVsb3coLTEsIDEwMDAwKSwgNTAwMDUwMDApOwotfQotCi1mb3IgKHZhciBpID0gMDsg
aSA8IDFlMjsgKytpKSB7Ci0gICAgc2hvdWxkQmUobm90QmVsb3dPckVxdWFsKDAsIC0xKSwgMCk7
Ci0gICAgc2hvdWxkQmUobm90QmVsb3dPckVxdWFsKDIwMDAwLCAtMSksIDIwMDAxMDAwMCk7Ci0g
ICAgc2hvdWxkQmUobm90QmVsb3dPckVxdWFsKC0xLCAxMDAwMCksIDUwMDA1MDAwKTsKLX0KLQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdWludDMyLWNvbXBhcmlzb24uanMgYi9KU1Rlc3Rz
L3N0cmVzcy91aW50MzItY29tcGFyaXNvbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDdiZWM2YTY5ODI0ZWUyNjY1MmIzZTE2YTVjNDk4MjVjYWE5YjZlZi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVzcy91aW50MzIt
Y29tcGFyaXNvbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLWZ1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
LSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1m
dW5jdGlvbiBhYm92ZShhLCBiKSB7Ci0gICAgcmV0dXJuIChhID4+PiAwKSA+IChiID4+PiAwKTsK
LX0KLW5vSW5saW5lKGFib3ZlKTsKLQotZnVuY3Rpb24gYWJvdmVPckVxdWFsKGEsIGIpIHsKLSAg
ICByZXR1cm4gKGEgPj4+IDApID49IChiID4+PiAwKTsKLX0KLW5vSW5saW5lKGFib3ZlT3JFcXVh
bCk7Ci0KLWZ1bmN0aW9uIGJlbG93KGEsIGIpIHsKLSAgICByZXR1cm4gKGEgPj4+IDApIDwgKGIg
Pj4+IDApOwotfQotbm9JbmxpbmUoYmVsb3cpOwotCi1mdW5jdGlvbiBiZWxvd09yRXF1YWwoYSwg
YikgewotICAgIHJldHVybiAoYSA+Pj4gMCkgPD0gKGIgPj4+IDApOwotfQotbm9JbmxpbmUoYmVs
b3dPckVxdWFsKTsKLQotKGZ1bmN0aW9uIGFib3ZlVGVzdCgpIHsKLSAgICBmb3IgKGxldCBpID0g
MDsgaSA8IDFlNTsgKytpKSB7Ci0gICAgICAgIHNob3VsZEJlKGFib3ZlKDAsIDIwKSwgZmFsc2Up
OwotICAgICAgICBzaG91bGRCZShhYm92ZSgwLCAwKSwgZmFsc2UpOwotICAgICAgICBzaG91bGRC
ZShhYm92ZSgwLCAtMCksIGZhbHNlKTsKLSAgICAgICAgc2hvdWxkQmUoYWJvdmUoLTEsIDApLCB0
cnVlKTsKLSAgICAgICAgc2hvdWxkQmUoYWJvdmUoLTEsIC0xKSwgZmFsc2UpOwotICAgICAgICBz
aG91bGRCZShhYm92ZSgtMSwgMSksIHRydWUpOwotICAgICAgICBzaG91bGRCZShhYm92ZSgxLCAt
MSksIGZhbHNlKTsKLSAgICAgICAgc2hvdWxkQmUoYWJvdmUoMSwgMHhmZmZmZmZmZiksIGZhbHNl
KTsKLSAgICAgICAgc2hvdWxkQmUoYWJvdmUoMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiksIGZhbHNl
KTsKLSAgICAgICAgc2hvdWxkQmUoYWJvdmUoLTEsIDB4ZmZmZmZmZmYpLCBmYWxzZSk7Ci0gICAg
ICAgIHNob3VsZEJlKGFib3ZlKC0xLCAweGZmZmZmZmZmZiksIGZhbHNlKTsKLSAgICB9Ci19KCkp
OwotCi0oZnVuY3Rpb24gYWJvdmVPckVxdWFsVGVzdCgpIHsKLSAgICBmb3IgKGxldCBpID0gMDsg
aSA8IDFlNTsgKytpKSB7Ci0gICAgICAgIHNob3VsZEJlKGFib3ZlT3JFcXVhbCgwLCAyMCksIGZh
bHNlKTsKLSAgICAgICAgc2hvdWxkQmUoYWJvdmVPckVxdWFsKDAsIDApLCB0cnVlKTsKLSAgICAg
ICAgc2hvdWxkQmUoYWJvdmVPckVxdWFsKDAsIC0wKSwgdHJ1ZSk7Ci0gICAgICAgIHNob3VsZEJl
KGFib3ZlT3JFcXVhbCgtMSwgMCksIHRydWUpOwotICAgICAgICBzaG91bGRCZShhYm92ZU9yRXF1
YWwoLTEsIC0xKSwgdHJ1ZSk7Ci0gICAgICAgIHNob3VsZEJlKGFib3ZlT3JFcXVhbCgtMSwgMSks
IHRydWUpOwotICAgICAgICBzaG91bGRCZShhYm92ZU9yRXF1YWwoMSwgLTEpLCBmYWxzZSk7Ci0g
ICAgICAgIHNob3VsZEJlKGFib3ZlT3JFcXVhbCgxLCAweGZmZmZmZmZmKSwgZmFsc2UpOwotICAg
ICAgICBzaG91bGRCZShhYm92ZU9yRXF1YWwoMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiksIHRydWUp
OwotICAgICAgICBzaG91bGRCZShhYm92ZU9yRXF1YWwoLTEsIDB4ZmZmZmZmZmYpLCB0cnVlKTsK
LSAgICAgICAgc2hvdWxkQmUoYWJvdmVPckVxdWFsKC0xLCAweGZmZmZmZmZmZiksIHRydWUpOwot
ICAgIH0KLX0oKSk7Ci0KLShmdW5jdGlvbiBiZWxvd1Rlc3QoKSB7Ci0gICAgZm9yIChsZXQgaSA9
IDA7IGkgPCAxZTU7ICsraSkgewotICAgICAgICBzaG91bGRCZShiZWxvdygwLCAyMCksIHRydWUp
OwotICAgICAgICBzaG91bGRCZShiZWxvdygwLCAwKSwgZmFsc2UpOwotICAgICAgICBzaG91bGRC
ZShiZWxvdygwLCAtMCksIGZhbHNlKTsKLSAgICAgICAgc2hvdWxkQmUoYmVsb3coLTEsIDApLCBm
YWxzZSk7Ci0gICAgICAgIHNob3VsZEJlKGJlbG93KC0xLCAtMSksIGZhbHNlKTsKLSAgICAgICAg
c2hvdWxkQmUoYmVsb3coLTEsIDEpLCBmYWxzZSk7Ci0gICAgICAgIHNob3VsZEJlKGJlbG93KDEs
IC0xKSwgdHJ1ZSk7Ci0gICAgICAgIHNob3VsZEJlKGJlbG93KDEsIDB4ZmZmZmZmZmYpLCB0cnVl
KTsKLSAgICAgICAgc2hvdWxkQmUoYmVsb3coMHhmZmZmZmZmZiwgMHhmZmZmZmZmZiksIGZhbHNl
KTsKLSAgICAgICAgc2hvdWxkQmUoYmVsb3coLTEsIDB4ZmZmZmZmZmYpLCBmYWxzZSk7Ci0gICAg
ICAgIHNob3VsZEJlKGJlbG93KC0xLCAweGZmZmZmZmZmZiksIGZhbHNlKTsKLSAgICB9Ci19KCkp
OwotCi0oZnVuY3Rpb24gYmVsb3dPckVxdWFsVGVzdCgpIHsKLSAgICBmb3IgKGxldCBpID0gMDsg
aSA8IDFlNTsgKytpKSB7Ci0gICAgICAgIHNob3VsZEJlKGJlbG93T3JFcXVhbCgwLCAyMCksIHRy
dWUpOwotICAgICAgICBzaG91bGRCZShiZWxvd09yRXF1YWwoMCwgMCksIHRydWUpOwotICAgICAg
ICBzaG91bGRCZShiZWxvd09yRXF1YWwoMCwgLTApLCB0cnVlKTsKLSAgICAgICAgc2hvdWxkQmUo
YmVsb3dPckVxdWFsKC0xLCAwKSwgZmFsc2UpOwotICAgICAgICBzaG91bGRCZShiZWxvd09yRXF1
YWwoLTEsIC0xKSwgdHJ1ZSk7Ci0gICAgICAgIHNob3VsZEJlKGJlbG93T3JFcXVhbCgtMSwgMSks
IGZhbHNlKTsKLSAgICAgICAgc2hvdWxkQmUoYmVsb3dPckVxdWFsKDEsIC0xKSwgdHJ1ZSk7Ci0g
ICAgICAgIHNob3VsZEJlKGJlbG93T3JFcXVhbCgxLCAweGZmZmZmZmZmKSwgdHJ1ZSk7Ci0gICAg
ICAgIHNob3VsZEJlKGJlbG93T3JFcXVhbCgweGZmZmZmZmZmLCAweGZmZmZmZmZmKSwgdHJ1ZSk7
Ci0gICAgICAgIHNob3VsZEJlKGJlbG93T3JFcXVhbCgtMSwgMHhmZmZmZmZmZiksIHRydWUpOwot
ICAgICAgICBzaG91bGRCZShiZWxvd09yRXF1YWwoLTEsIDB4ZmZmZmZmZmZmKSwgdHJ1ZSk7Ci0g
ICAgfQotfSgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>