<?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>266140</bug_id>
          
          <creation_ts>2023-12-09 03:09:45 -0800</creation_ts>
          <short_desc>REGRESSION(271796@main): broken watchos build</short_desc>
          <delta_ts>2023-12-09 03:14:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>266080</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>d_degazio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1998290</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-12-09 03:09:45 -0800</bug_when>
    <thetext>https://commits.webkit.org/271796@main introduced a regression:
broken watchos build

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>1998292</commentid>
    <comment_count>1</comment_count>
      <attachid>468952</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-12-09 03:09:51 -0800</bug_when>
    <thetext>Created attachment 468952
REVERT of 271796@main

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 revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert 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>1998293</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-12-09 03:13:25 -0800</bug_when>
    <thetext>Committed 271799@main (56577b8c411c): &lt;https://commits.webkit.org/271799@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 468952.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1998294</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-12-09 03:14:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/119428944&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468952</attachid>
            <date>2023-12-09 03:09:51 -0800</date>
            <delta_ts>2023-12-09 03:13:25 -0800</delta_ts>
            <desc>REVERT of 271796@main</desc>
            <filename>bug-266140-20231209110950.patch</filename>
            <type>text/plain</type>
            <size>73007</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSBiNzk3ODNhNmE1NmZlMGI0YzIxMzBiOWYyYWYzOGQzYjlkOTg1ODQzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBTYXQsIDkgRGVjIDIwMjMgMTE6MDk6NDggKzAwMDAKU3ViamVjdDogW1BBVENIXSBV
bnJldmlld2VkLCByZXZlcnRpbmcgMjcxNzk2QG1haW4uCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjY2MTQwCgpicm9rZW4gd2F0Y2hvcyBidWlsZAoKUmV2ZXJ0ZWQg
Y2hhbmdlc2V0OgoKIkludHJvZHVjZSBjb21waWxlLXRpbWUgY2hlY2tpbmcgYW5kIGFsdGVybmF0
ZSBhbGxvY2F0aW9uIGZvciBjb21wYWN0IHBvaW50ZXIgdHlwZXMiCmh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjYwODAKaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcv
MjcxNzk2QG1haW4KLS0tCiAuLi4vYnl0ZWNvZGUvQ2FsbExpbmtJbmZvQmFzZS5oICAgICAgICAg
ICAgICAgfCAgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
aCAgICB8ICAgMiArLQogLi4uL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUNhbGxGcmFt
ZS5oIHwgICA0IC0KIC4uLi9ieXRlY29kZS9JbmxpbmVDYWxsRnJhbWVTZXQuaCAgICAgICAgICAg
ICB8ICAgNSArLQogLi4uL1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaCAgICAgICAg
IHwgICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oICAg
fCAgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oICAgICAgICB8
ICAgNiArLQogLi4uL2hlYXAvRmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuY3BwIHwg
ICA4ICstCiAuLi4vaGVhcC9Jc29BbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmNwcCAgICAgICAgfCAg
IDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0NlbGxTZXQuY3BwICAgICB8ICAg
MiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQ2VsbFNldC5oICAgICAgIHwgICAy
ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5oICAgICAgfCAgIDQg
Ky0KIC4uLi9KYXZhU2NyaXB0Q29yZS9oZWFwL1ByZWNpc2VBbGxvY2F0aW9uLmggICB8ICAgMiAr
LQogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Vic3BhY2UuaCAgICAgICAgIHwgICAyICst
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Jhc2VsaW5lSklUQ29kZS5oICAgfCAgIDIgKy0K
IC4uLi9qaXQvRXhlY3V0YWJsZU1lbW9yeUhhbmRsZS5oICAgICAgICAgICAgICB8ICAgMiArLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmggICAgICAgICAgIHwgIDY3IC0tLS0t
LS0KIC4uLi9qaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaCAgICAgICAgICB8ICAgNCAr
LQogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xhc3NJbmZvLmggICAgIHwgICAyIC0K
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCAgICAgICB8ICAgMSAtCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCAgICAgICAgfCAgIDEgLQogLi4u
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVR5cGVEZWZpbml0aW9uLmggIHwgICAyICstCiBTb3Vy
Y2UvV1RGL3d0Zi9CYWcuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIFNvdXJj
ZS9XVEYvd3RmL0NvbXBhY3RQb2ludGVyVHVwbGUuaCAgICAgICAgICB8ICAgMSAtCiBTb3VyY2Uv
V1RGL3d0Zi9Db21wYWN0UHRyLmggICAgICAgICAgICAgICAgICAgfCAgIDEgLQogU291cmNlL1dU
Ri93dGYvRGVidWdIZWFwLmggICAgICAgICAgICAgICAgICAgIHwgICA3IC0KIFNvdXJjZS9XVEYv
d3RmL0Zhc3RNYWxsb2MuY3BwICAgICAgICAgICAgICAgICB8IDE0NSArLS0tLS0tLS0tLS0tLS0K
IFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaCAgICAgICAgICAgICAgICAgICB8IDE2NyArLS0t
LS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XVEYvd3RmL0lzb01hbGxvYy5oICAgICAgICAgICAgICAg
ICAgICB8ICAxNSArLQogU291cmNlL1dURi93dGYvSXNvTWFsbG9jSW5saW5lcy5oICAgICAgICAg
ICAgIHwgIDE1ICstCiBTb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2NhdG9ySGFuZGxlLmggICAgICAg
ICAgfCAgIDQgKy0KIFNvdXJjZS9XVEYvd3RmL1BhY2tlZC5oICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMiAtCiBTb3VyY2UvV1RGL3d0Zi9TZW50aW5lbExpbmtlZExpc3QuaCAgICAgICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaCAgICAgICAgICAgICAgICAgICAgICB8
ICAgNiArLQogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmggICAgICAgICAgICAgIHwg
ICA0ICstCiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oICAgICAgICAgICAgICAgfCAg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oICAgICAgICAgICAgICAgICB8ICAg
NCArLQogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCAgICAgICAgICAgICAgICAgICAgIHwgICA3
IC0KIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCAgICAgICAgICAgICB8ICAgNCAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgICAgIHwgICAyICst
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggICAgICAgfCAgIDIgKy0K
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQWxsb2NhdGlvbkNvdW50cy5oICAgICB8ICA0MSArKy0t
LQogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Jc29IZWFwLmNwcCAgICAgICAgICAgIHwgIDQwICst
LS0tCiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0lzb0hlYXAuaCAgICAgICAgICAgICAgfCAxMTMg
KysrLS0tLS0tLS0tCiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0lzb0hlYXBJbmxpbmVzLmggICAg
ICAgfCAgNzIgKysrKy0tLS0KIC4uLi9UZXN0cy9XVEYvQWxpZ25lZFJlZkxvZ2dlci5oICAgICAg
ICAgICAgICB8ICAgMiAtCiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db21wYWN0UHRy
LmNwcCAgfCAgIDEgLQogLi4uL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbXBhY3RSZWZQdHIu
Y3BwIHwgICAxIC0KIC4uLi9UZXN0cy9XVEYvQ29tcGFjdFVuaXF1ZVB0clR1cGxlLmNwcCAgICAg
ICB8ICAgMiArLQogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFja2VkLmNwcCAgICAg
IHwgIDI4ICsrLQogLi4uL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1BhY2tlZFJlZlB0ci5jcHAg
IHwgICAxIC0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZkxvZ2dlci5oICAgICB8
ICAgMyAtCiA1MiBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKSwgNjkzIGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlu
a0luZm9CYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZv
QmFzZS5oCmluZGV4IDYxNzQxZWJlZDBlNS4uMTU1OTI1MjQxNDFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvQmFzZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm9CYXNlLmgKQEAgLTMxLDcgKzMx
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIFZNOwogCi1jbGFzcyBDYWxsTGlua0luZm9C
YXNlIDogcHVibGljIEJhc2ljUmF3U2VudGluZWxOb2RlPENhbGxMaW5rSW5mb0Jhc2U+IHsKK2Ns
YXNzIENhbGxMaW5rSW5mb0Jhc2UgOiBwdWJsaWMgUGFja2VkUmF3U2VudGluZWxOb2RlPENhbGxM
aW5rSW5mb0Jhc2U+IHsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIENhbGxTaXRlVHlwZSA6IHVp
bnQ4X3QgewogICAgICAgICBDYWxsTGlua0luZm8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggNjdiOGQ2OGZmZmU0Li5lN2NkMTkxMGRlM2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTk1Miw3ICs5NTIs
NyBAQCBwcml2YXRlOgogICAgIFZNKiBjb25zdCBtX3ZtOwogCiAgICAgY29uc3Qgdm9pZCogY29u
c3QgbV9pbnN0cnVjdGlvbnNSYXdQb2ludGVyIHsgbnVsbHB0ciB9OwotICAgIFNlbnRpbmVsTGlu
a2VkTGlzdDxDYWxsTGlua0luZm9CYXNlLCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxDYWxsTGlua0lu
Zm9CYXNlPj4gbV9pbmNvbWluZ0NhbGxzOworICAgIFNlbnRpbmVsTGlua2VkTGlzdDxDYWxsTGlu
a0luZm9CYXNlLCBQYWNrZWRSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJbmZvQmFzZT4+IG1faW5j
b21pbmdDYWxsczsKICAgICB1aW50MTZfdCBtX29wdGltaXphdGlvbkRlbGF5Q291bnRlciB7IDAg
fTsKICAgICB1aW50MTZfdCBtX3Jlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyIHsgMCB9OwogICAg
IFN0cnVjdHVyZVdhdGNocG9pbnRNYXAgbV9sbGludEdldEJ5SWRXYXRjaHBvaW50TWFwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUNhbGxGcmFtZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUNhbGxGcmFtZS5oCmluZGV4
IGY3ODc3NmVkODljNS4uNzYxMmE4Y2E2MjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvSW5saW5lQ2FsbEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0lubGluZUNhbGxGcmFtZS5oCkBAIC00MCwxMSArNDAsNyBAQCBzdHJ1Y3Qg
SW5saW5lQ2FsbEZyYW1lOwogY2xhc3MgQ2FsbEZyYW1lOwogY2xhc3MgSlNGdW5jdGlvbjsKIAot
REVDTEFSRV9DT01QQUNUX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihJbmxpbmVDYWxs
RnJhbWUpOwotCiBzdHJ1Y3QgSW5saW5lQ2FsbEZyYW1lIHsKLSAgICBXVEZfTUFLRV9TVFJVQ1Rf
RkFTVF9DT01QQUNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihJbmxpbmVDYWxsRnJh
bWUpOwotCiAgICAgZW51bSBLaW5kIHsKICAgICAgICAgQ2FsbCwKICAgICAgICAgQ29uc3RydWN0
LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUNhbGxG
cmFtZVNldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUNhbGxGcmFt
ZVNldC5oCmluZGV4IGIxNmQzZjZkYzViZS4uODhjNTVlM2I2OGIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5saW5lQ2FsbEZyYW1lU2V0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUNhbGxGcmFtZVNldC5oCkBAIC00MSwx
MyArNDEsMTIgQEAgcHVibGljOgogICAgIAogICAgIElubGluZUNhbGxGcmFtZSogYWRkKCk7CiAg
ICAgCi0gICAgdXNpbmcgRnJhbWVCYWcgPSBCYWc8SW5saW5lQ2FsbEZyYW1lLCBSYXdQdHJUcmFp
dHM8SW5saW5lQ2FsbEZyYW1lPiwgSW5saW5lQ2FsbEZyYW1lTWFsbG9jPjsKLSAgICB0eXBlZGVm
IEZyYW1lQmFnOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB0eXBlZGVmIEJhZzxJbmxpbmVDYWxs
RnJhbWU+OjppdGVyYXRvciBpdGVyYXRvcjsKICAgICBpdGVyYXRvciBiZWdpbigpIHsgcmV0dXJu
IG1fZnJhbWVzLmJlZ2luKCk7IH0KICAgICBpdGVyYXRvciBlbmQoKSB7IHJldHVybiBtX2ZyYW1l
cy5lbmQoKTsgfQogCiBwcml2YXRlOgotICAgIEZyYW1lQmFnIG1fZnJhbWVzOworICAgIEJhZzxJ
bmxpbmVDYWxsRnJhbWU+IG1fZnJhbWVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFy
aW5nV2F0Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVy
ZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaAppbmRleCAyOGE5MGY2YTAxNGQuLjk1MjM0NWI5YTk1
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJDbGVhcmluZ1dhdGNocG9pbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGZpcmVJbnRlcm5hbChWTSYsIGNvbnN0IEZpcmVEZXRhaWwmKTsKIAog
cHJpdmF0ZToKLSAgICBXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1YkluZm8qIG1faG9sZGVyOwor
ICAgIFBhY2tlZFB0cjxXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1YkluZm8+IG1faG9sZGVyOwog
ICAgIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uIG1fa2V5OwogfTsKIApAQCAtNzUsNyArNzUsNyBA
QCBwdWJsaWM6CiAKIAogcHJpdmF0ZToKLSAgICBXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1Yklu
Zm8qIG1faG9sZGVyOworICAgIFBhY2tlZFB0cjxXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1Yklu
Zm8+IG1faG9sZGVyOwogfTsKIAogY2xhc3MgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZv
IGZpbmFsIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRj
aHBvaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCmlu
ZGV4IDUzMDI3ODFlYWJkMi4uOWUxMTBiNzZiOWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9XYXRjaHBvaW50LmgKQEAgLTExMSw3ICsxMTEsNyBAQCBjbGFzcyBXYXRjaHBv
aW50U2V0OwogCiBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihXYXRjaHBv
aW50KTsKIAotY2xhc3MgV2F0Y2hwb2ludCA6IHB1YmxpYyBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxX
YXRjaHBvaW50PiB7CitjbGFzcyBXYXRjaHBvaW50IDogcHVibGljIFBhY2tlZFJhd1NlbnRpbmVs
Tm9kZTxXYXRjaHBvaW50PiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2F0Y2hwb2ludCk7
CiAgICAgV1RGX01BS0VfTk9OTU9WQUJMRShXYXRjaHBvaW50KTsKICAgICBXVEZfTUFLRV9TVFJV
Q1RfRkFTVF9BTExPQ0FURURfV0lUSF9IRUFQX0lERU5USUZJRVIoV2F0Y2hwb2ludCk7CkBAIC0y
NzQsNyArMjc0LDcgQEAgcHJpdmF0ZToKICAgICBpbnQ4X3QgbV9zdGF0ZTsKICAgICBpbnQ4X3Qg
bV9zZXRJc05vdEVtcHR5OwogCi0gICAgU2VudGluZWxMaW5rZWRMaXN0PFdhdGNocG9pbnQsIEJh
c2ljUmF3U2VudGluZWxOb2RlPFdhdGNocG9pbnQ+PiBtX3NldDsKKyAgICBTZW50aW5lbExpbmtl
ZExpc3Q8V2F0Y2hwb2ludCwgUGFja2VkUmF3U2VudGluZWxOb2RlPFdhdGNocG9pbnQ+PiBtX3Nl
dDsKIH07CiAKIC8vIElubGluZVdhdGNocG9pbnRTZXQgaXMgYSBsb3ctb3ZlcmhlYWQsIG5vbi1j
b3B5YWJsZSB3YXRjaHBvaW50IHNldCBpbiB3aGljaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0pJVENvZGUuaAppbmRleCAzYWE2NzFjZjhhZjcuLjUzYzIyNWVlMTNiZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKQEAgLTk0LDcgKzk0LDcgQEAgY2xhc3MgTGlua2Vy
SVIgewogcHVibGljOgogICAgIHVzaW5nIENvbnN0YW50ID0gdW5zaWduZWQ7CiAKLSAgICBlbnVt
IGNsYXNzIFR5cGUgOiB1aW50OF90IHsKKyAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50MTZfdCB7
CiAgICAgICAgIEludmFsaWQsCiAgICAgICAgIENhbGxMaW5rSW5mbywKICAgICAgICAgQ2VsbFBv
aW50ZXIsCkBAIC0xMTUsMTIgKzExNSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIE9iamVjdFByb3Rv
dHlwZUNoYWluSXNTYW5lV2F0Y2hwb2ludFNldCwKICAgICB9OwogCi0gICAgdXNpbmcgVmFsdWUg
PSBKSVRDb25zdGFudDxUeXBlPjsKKyAgICB1c2luZyBWYWx1ZSA9IENvbXBhY3RQb2ludGVyVHVw
bGU8dm9pZCosIFR5cGU+OwogCiAgICAgc3RydWN0IFZhbHVlSGFzaCB7CiAgICAgICAgIHN0YXRp
YyB1bnNpZ25lZCBoYXNoKGNvbnN0IFZhbHVlJiBwKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gcC5oYXNoKCk7CisgICAgICAgICAgICByZXR1cm4gY29tcHV0ZUhhc2gocC50eXBlKCks
IHAucG9pbnRlcigpKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNv
bnN0IFZhbHVlJiBhLCBjb25zdCBWYWx1ZSYgYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0Zhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Zhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmNw
cAppbmRleCBlM2NkMjMwOWEwM2QuLjZkZTQ4OGQ2NTJkOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvRmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Zhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxs
b2NhdG9yLmNwcApAQCAtNDYsNyArNDYsNyBAQCB2b2lkKiBGYXN0TWFsbG9jQWxpZ25lZE1lbW9y
eUFsbG9jYXRvcjo6dHJ5QWxsb2NhdGVBbGlnbmVkTWVtb3J5KHNpemVfdCBhbGlnbm1lbgogI2lm
IEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04pCiAgICAgcmV0dXJuIG1faGVhcC5tZW1hbGln
bihhbGlnbm1lbnQsIHNpemUsIHRydWUpOwogI2Vsc2UKLSAgICByZXR1cm4gdHJ5RmFzdENvbXBh
Y3RBbGlnbmVkTWFsbG9jKGFsaWdubWVudCwgc2l6ZSk7CisgICAgcmV0dXJuIHRyeUZhc3RBbGln
bmVkTWFsbG9jKGFsaWdubWVudCwgc2l6ZSk7CiAjZW5kaWYKIAogfQpAQCAtNzEsNyArNzEsNyBA
QCB2b2lkKiBGYXN0TWFsbG9jQWxpZ25lZE1lbW9yeUFsbG9jYXRvcjo6dHJ5QWxsb2NhdGVNZW1v
cnkoc2l6ZV90IHNpemUpCiAjaWYgRU5BQkxFKE1BTExPQ19IRUFQX0JSRUFLRE9XTikKICAgICBy
ZXR1cm4gbV9oZWFwLm1hbGxvYyhzaXplKTsKICNlbHNlCi0gICAgcmV0dXJuIEZhc3RDb21wYWN0
TWFsbG9jOjp0cnlNYWxsb2Moc2l6ZSk7CisgICAgcmV0dXJuIEZhc3RNYWxsb2M6OnRyeU1hbGxv
YyhzaXplKTsKICNlbmRpZgogfQogCkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgRmFzdE1hbGxvY0Fs
aWduZWRNZW1vcnlBbGxvY2F0b3I6OmZyZWVNZW1vcnkodm9pZCogcG9pbnRlcikKICNpZiBFTkFC
TEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKQogICAgIHJldHVybiBtX2hlYXAuZnJlZShwb2ludGVy
KTsKICNlbHNlCi0gICAgRmFzdENvbXBhY3RNYWxsb2M6OmZyZWUocG9pbnRlcik7CisgICAgRmFz
dE1hbGxvYzo6ZnJlZShwb2ludGVyKTsKICNlbmRpZgogfQogCkBAIC04OSw3ICs4OSw3IEBAIHZv
aWQqIEZhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yOjp0cnlSZWFsbG9jYXRlTWVtb3J5
KHZvaWQqIHBvaW50ZXIsIHNpemVfCiAjaWYgRU5BQkxFKE1BTExPQ19IRUFQX0JSRUFLRE9XTikK
ICAgICByZXR1cm4gbV9oZWFwLnJlYWxsb2MocG9pbnRlciwgc2l6ZSk7CiAjZWxzZQotICAgIHJl
dHVybiBGYXN0Q29tcGFjdE1hbGxvYzo6dHJ5UmVhbGxvYyhwb2ludGVyLCBzaXplKTsKKyAgICBy
ZXR1cm4gRmFzdE1hbGxvYzo6dHJ5UmVhbGxvYyhwb2ludGVyLCBzaXplKTsKICNlbmRpZgogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29BbGlnbmVkTWVtb3J5
QWxsb2NhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0FsaWduZWRNZW1v
cnlBbGxvY2F0b3IuY3BwCmluZGV4IGUxMDVkNDE0NjEwMC4uM2E5MjI1YzViYzAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29BbGlnbmVkTWVtb3J5QWxsb2NhdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29BbGlnbmVkTWVtb3J5QWxs
b2NhdG9yLmNwcApAQCAtNTIsNyArNTIsNyBAQCB2b2lkKiBJc29BbGlnbmVkTWVtb3J5QWxsb2Nh
dG9yOjp0cnlBbGxvY2F0ZU1lbW9yeShzaXplX3Qgc2l6ZSkKICNpZiBFTkFCTEUoTUFMTE9DX0hF
QVBfQlJFQUtET1dOKQogICAgIHJldHVybiBtX2hlYXAubWFsbG9jKHNpemUpOwogI2Vsc2UKLSAg
ICByZXR1cm4gRmFzdENvbXBhY3RNYWxsb2M6OnRyeU1hbGxvYyhzaXplKTsKKyAgICByZXR1cm4g
RmFzdE1hbGxvYzo6dHJ5TWFsbG9jKHNpemUpOwogI2VuZGlmCiB9CiAKQEAgLTc2LDcgKzc2LDcg
QEAgdm9pZCogSXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvcjo6dHJ5TWFsbG9jQmxvY2soKQogI2lm
IEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04pCiAgICAgcmV0dXJuIG1faGVhcC5tZW1hbGln
bihNYXJrZWRCbG9jazo6YmxvY2tTaXplLCBNYXJrZWRCbG9jazo6YmxvY2tTaXplLCB0cnVlKTsK
ICNlbHNlCi0gICAgcmV0dXJuIHRyeUZhc3RDb21wYWN0QWxpZ25lZE1hbGxvYyhNYXJrZWRCbG9j
azo6YmxvY2tTaXplLCBNYXJrZWRCbG9jazo6YmxvY2tTaXplKTsKKyAgICByZXR1cm4gdHJ5RmFz
dEFsaWduZWRNYWxsb2MoTWFya2VkQmxvY2s6OmJsb2NrU2l6ZSwgTWFya2VkQmxvY2s6OmJsb2Nr
U2l6ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSXNvQ2VsbFNldC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0
LmNwcAppbmRleCA1MjU1ZTJlZjIxMjYuLjgzYWI1NTU2NmY4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQ2VsbFNldC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSXNvQ2VsbFNldC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgSXNvQ2VsbFNldDo6
SXNvQ2VsbFNldChJc29TdWJzcGFjZSYgc3Vic3BhY2UpCiBJc29DZWxsU2V0Ojp+SXNvQ2VsbFNl
dCgpCiB7CiAgICAgaWYgKGlzT25MaXN0KCkpCi0gICAgICAgIEJhc2ljUmF3U2VudGluZWxOb2Rl
PElzb0NlbGxTZXQ+OjpyZW1vdmUoKTsKKyAgICAgICAgUGFja2VkUmF3U2VudGluZWxOb2RlPElz
b0NlbGxTZXQ+OjpyZW1vdmUoKTsKIH0KIAogUmVmPFNoYXJlZFRhc2s8TWFya2VkQmxvY2s6Okhh
bmRsZSooKT4+IElzb0NlbGxTZXQ6OnBhcmFsbGVsTm90RW1wdHlNYXJrZWRCbG9ja1NvdXJjZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0LmgKaW5kZXggMzdmOTZlMmJmZDk1
Li45NDc4YjYwYjk4ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lz
b0NlbGxTZXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29DZWxsU2V0LmgK
QEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgSXNvU3Vic3BhY2U7CiAvLyBDcmVhdGUgYSBzZXQgb2Yg
Y2VsbHMgdGhhdCBhcmUgaW4gYW4gSXNvU3Vic3BhY2UuIFRoaXMgYWxsb3dzIGNvbmN1cnJlbnQg
TygxKSBzZXQgaW5zZXJ0aW9uIGFuZAogLy8gcmVtb3ZhbC4gRWFjaCBzdWNoIHNldCBzaG91bGQg
YmUgdGhvdWdodCBvZiBhcyBhIDAuOCUgaW5jcmVhc2UgaW4gb2JqZWN0IHNpemUgZm9yIG9iamVj
dHMgaW4gdGhhdAogLy8gSXNvU3Vic3BhY2UgKGl0J3MgbGlrZSBhZGRpbmcgMSBiaXQgZXZlcnkg
MTYgYnl0ZXMsIG9yIDEgYml0IGV2ZXJ5IDEyOCBiaXRzKS4KLWNsYXNzIElzb0NlbGxTZXQgZmlu
YWwgOiBwdWJsaWMgQmFzaWNSYXdTZW50aW5lbE5vZGU8SXNvQ2VsbFNldD4geworY2xhc3MgSXNv
Q2VsbFNldCBmaW5hbCA6IHB1YmxpYyBQYWNrZWRSYXdTZW50aW5lbE5vZGU8SXNvQ2VsbFNldD4g
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElzb0NlbGxTZXQpOwogICAgIFdURl9NQUtFX05P
Tk1PVkFCTEUoSXNvQ2VsbFNldCk7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SXNvU3Vic3BhY2UuaAppbmRleCBkOTllMjIwNDAzN2IuLjE1MDY4M2QzYTA5NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5oCkBAIC02Niw4ICs2Niw4IEBAIHByaXZh
dGU6CiAKICAgICBCbG9ja0RpcmVjdG9yeSBtX2RpcmVjdG9yeTsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SXNvTWVtb3J5QWxsb2NhdG9yQmFzZT4gbV9pc29BbGlnbmVkTWVtb3J5QWxsb2NhdG9yOwot
ICAgIFNlbnRpbmVsTGlua2VkTGlzdDxQcmVjaXNlQWxsb2NhdGlvbiwgQmFzaWNSYXdTZW50aW5l
bE5vZGU8UHJlY2lzZUFsbG9jYXRpb24+PiBtX2xvd2VyVGllckZyZWVMaXN0OwotICAgIFNlbnRp
bmVsTGlua2VkTGlzdDxJc29DZWxsU2V0LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxJc29DZWxsU2V0
Pj4gbV9jZWxsU2V0czsKKyAgICBTZW50aW5lbExpbmtlZExpc3Q8UHJlY2lzZUFsbG9jYXRpb24s
IFBhY2tlZFJhd1NlbnRpbmVsTm9kZTxQcmVjaXNlQWxsb2NhdGlvbj4+IG1fbG93ZXJUaWVyRnJl
ZUxpc3Q7CisgICAgU2VudGluZWxMaW5rZWRMaXN0PElzb0NlbGxTZXQsIFBhY2tlZFJhd1NlbnRp
bmVsTm9kZTxJc29DZWxsU2V0Pj4gbV9jZWxsU2V0czsKIH07CiAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUHJlY2lzZUFsbG9jYXRpb24uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1ByZWNpc2VBbGxvY2F0aW9uLmgKaW5kZXggZDJkZTc2Y2Q0NWUzLi5l
NzlhMjdiYjNmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1ByZWNp
c2VBbGxvY2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUHJlY2lzZUFs
bG9jYXRpb24uaApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBTbG90VmlzaXRvcjsKIC8vIG9iamVj
dHMgZGlyZWN0bHkgdXNpbmcgbWFsbG9jLCBhbmQgcHV0IHRoZSBQcmVjaXNlQWxsb2NhdGlvbiBo
ZWFkZXIganVzdCBiZWZvcmUgdGhlbS4gV2UgY2FuIGRldGVjdAogLy8gd2hlbiBhIEhlYXBDZWxs
KiBpcyBhIFByZWNpc2VBbGxvY2F0aW9uIGJlY2F1c2UgaXQgd2lsbCBoYXZlIHRoZSBNYXJrZWRC
bG9jazo6YXRvbVNpemUgLyAyIGJpdCBzZXQuCiAKLWNsYXNzIFByZWNpc2VBbGxvY2F0aW9uIDog
cHVibGljIEJhc2ljUmF3U2VudGluZWxOb2RlPFByZWNpc2VBbGxvY2F0aW9uPiB7CitjbGFzcyBQ
cmVjaXNlQWxsb2NhdGlvbiA6IHB1YmxpYyBQYWNrZWRSYXdTZW50aW5lbE5vZGU8UHJlY2lzZUFs
bG9jYXRpb24+IHsKIHB1YmxpYzoKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFj
dG9yOwogICAgIGZyaWVuZCBjbGFzcyBJc29TdWJzcGFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9TdWJzcGFjZS5oCmluZGV4IDBiYzZjMWViNTM5MS4uMjk1YjkyNjZlNTI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdWJzcGFjZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1N1YnNwYWNlLmgKQEAgLTExMSw3ICsxMTEsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgCiAgICAgQmxvY2tEaXJlY3RvcnkqIG1fZmlyc3REaXJlY3RvcnkgeyBudWxscHRyIH07
CiAgICAgQmxvY2tEaXJlY3RvcnkqIG1fZGlyZWN0b3J5Rm9yRW1wdHlBbGxvY2F0aW9uIHsgbnVs
bHB0ciB9OyAvLyBVc2VzIHRoZSBNYXJrZWRTcGFjZSBsaW5rZWQgbGlzdCBvZiBibG9ja3MuCi0g
ICAgU2VudGluZWxMaW5rZWRMaXN0PFByZWNpc2VBbGxvY2F0aW9uLCBCYXNpY1Jhd1NlbnRpbmVs
Tm9kZTxQcmVjaXNlQWxsb2NhdGlvbj4+IG1fcHJlY2lzZUFsbG9jYXRpb25zOworICAgIFNlbnRp
bmVsTGlua2VkTGlzdDxQcmVjaXNlQWxsb2NhdGlvbiwgUGFja2VkUmF3U2VudGluZWxOb2RlPFBy
ZWNpc2VBbGxvY2F0aW9uPj4gbV9wcmVjaXNlQWxsb2NhdGlvbnM7CiAKICAgICBib29sIG1faXNJ
c29TdWJzcGFjZSB7IGZhbHNlIH07CiAgICAgdWludDhfdCBtX3JlbWFpbmluZ0xvd2VyVGllckNl
bGxDb3VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQmFz
ZWxpbmVKSVRDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Jhc2VsaW5lSklUQ29k
ZS5oCmluZGV4IDRiNzM3ZTUxZWY5ZC4uMDdjZGY3MzVhM2QwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Jhc2VsaW5lSklUQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQmFzZWxpbmVKSVRDb2RlLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgog
ICAgICAgICBGdW5jdGlvbkV4cHIsCiAgICAgfTsKIAotICAgIHVzaW5nIFZhbHVlID0gSklUQ29u
c3RhbnQ8VHlwZT47CisgICAgdXNpbmcgVmFsdWUgPSBDb21wYWN0UG9pbnRlclR1cGxlPHZvaWQq
LCBUeXBlPjsKIAogICAgIEpJVENvbnN0YW50UG9vbCgpID0gZGVmYXVsdDsKICAgICBKSVRDb25z
dGFudFBvb2woSklUQ29uc3RhbnRQb29sJiYpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZU1lbW9yeUhhbmRsZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlTWVtb3J5SGFuZGxlLmgKaW5kZXggMTQyNzk4YTBm
MTdmLi4zZWI2ZTQ3MTAzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZU1lbW9yeUhhbmRsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
RXhlY3V0YWJsZU1lbW9yeUhhbmRsZS5oCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogI2lmIEVOQUJMRShMSUJQQVNfSklUX0hFQVApICYmIEVOQUJMRShKSVQpCiBERUNMQVJFX0FM
TE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKTsKIGNs
YXNzIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gewotICAgIFdURl9NQUtFX0ZBU1RfQ09NUEFDVF9BTExP
Q0FURURfV0lUSF9IRUFQX0lERU5USUZJRVIoRXhlY3V0YWJsZU1lbW9yeUhhbmRsZSk7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURURfV0lUSF9IRUFQX0lERU5USUZJRVIoRXhlY3V0YWJsZU1l
bW9yeUhhbmRsZSk7CiAKIHB1YmxpYzoKICAgICB1c2luZyBNZW1vcnlQdHIgPSBDb2RlUHRyPFdU
Rjo6SGFuZGxlTWVtb3J5UHRyVGFnPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKaW5k
ZXggMjhlNjA3MjhjNDEwLi5jM2VjZTIzNDU5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q29kZS5oCkBAIC03Miw3MyArNzIsNiBAQCBlbnVtIGNsYXNzIEpJVFR5cGUgOiB1aW50OF90IHsK
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgd2lkdGhPZkpJVFR5cGUgPSAzOwogc3RhdGljX2Fz
c2VydChXVEY6OmdldE1TQlNldENvbnN0ZXhwcihzdGF0aWNfY2FzdDxzdGQ6OnVuZGVybHlpbmdf
dHlwZV90PEpJVFR5cGU+PihKSVRUeXBlOjpGVExKSVQpKSArIDEgPT0gd2lkdGhPZkpJVFR5cGUp
OwogCi0jaWYgVVNFKEpTVkFMVUU2NCkKLXRlbXBsYXRlPHR5cGVuYW1lIEJ5dGVTaXplZEVudW1U
eXBlPgotY2xhc3MgSklUQ29uc3RhbnQgewotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEJ5dGVT
aXplZEVudW1UeXBlKSA9PSAxKTsKLSAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ2NF90IHR5cGVT
aGlmdCA9IDQ4OwotICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDY0X3QgdHlwZU1hc2sgPSAweGZm
dWxsIDw8IHR5cGVTaGlmdDsKLSAgICB1aW50NjRfdCBtX2VuY29kZWRQb2ludGVyOwotCi0gICAg
aW5saW5lIHVpbnQ2NF90IGVuY29kZSh2b2lkKiBwb2ludGVyLCBCeXRlU2l6ZWRFbnVtVHlwZSB0
eXBlKQotICAgIHsKLSAgICAgICAgdWludDY0X3QgcG9pbnRlckJpdHMgPSBiaXR3aXNlX2Nhc3Q8
dWludDY0X3Q+KHBvaW50ZXIpOwotICAgICAgICByZXR1cm4gcG9pbnRlckJpdHMgfCBzdGF0aWNf
Y2FzdDx1aW50NjRfdD4odHlwZSkgPDwgNDg7Ci0gICAgfQotcHVibGljOgotICAgIGlubGluZSBK
SVRDb25zdGFudCgpCi0gICAgICAgIDogbV9lbmNvZGVkUG9pbnRlcigwKQotICAgIHsgfQotCi0g
ICAgaW5saW5lIEpJVENvbnN0YW50KHZvaWQqIHBvaW50ZXIsIEJ5dGVTaXplZEVudW1UeXBlIHR5
cGUpCi0gICAgICAgIDogbV9lbmNvZGVkUG9pbnRlcihlbmNvZGUocG9pbnRlciwgdHlwZSkpCi0g
ICAgeyB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPdGhlclBvaW50ZXJUeXBlPgotICAgIEpJ
VENvbnN0YW50KENvbXBhY3RQb2ludGVyVHVwbGU8T3RoZXJQb2ludGVyVHlwZSwgQnl0ZVNpemVk
RW51bVR5cGU+IG90aGVyKQotICAgICAgICA6IG1fZW5jb2RlZFBvaW50ZXIoZW5jb2RlKG90aGVy
LnBvaW50ZXIoKSwgb3RoZXIudHlwZSgpKSkKLSAgICB7IH0KLQotICAgIGlubGluZSB1aW50MzJf
dCBoYXNoKCkgY29uc3QgeyByZXR1cm4gY29tcHV0ZUhhc2gobV9lbmNvZGVkUG9pbnRlcik7IH0K
LSAgICBpbmxpbmUgdm9pZCogcG9pbnRlcigpIGNvbnN0IHsgcmV0dXJuIGJpdHdpc2VfY2FzdDx2
b2lkKj4obV9lbmNvZGVkUG9pbnRlciAmIH50eXBlTWFzayk7IH0KLSAgICB2b2lkIHNldFBvaW50
ZXIodm9pZCogcG9pbnRlcikgeyBtX2VuY29kZWRQb2ludGVyID0gZW5jb2RlKHBvaW50ZXIsIHR5
cGUoKSk7IH0KLSAgICBpbmxpbmUgQnl0ZVNpemVkRW51bVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEJ5dGVTaXplZEVudW1UeXBlPigobV9lbmNvZGVkUG9pbnRlciAmIHR5
cGVNYXNrKSA+PiB0eXBlU2hpZnQpOyB9Ci0gICAgdm9pZCBzZXRUeXBlKEJ5dGVTaXplZEVudW1U
eXBlIHR5cGUpIHsgbV9lbmNvZGVkUG9pbnRlciA9IGVuY29kZShwb2ludGVyKCksIHR5cGUpOyB9
Ci0KLSAgICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEpJVENvbnN0YW50JiwgY29uc3Qg
SklUQ29uc3RhbnQmKSA9IGRlZmF1bHQ7Ci19OwotI2Vsc2UKLXRlbXBsYXRlPHR5cGVuYW1lIEJ5
dGVTaXplZEVudW1UeXBlPgotY2xhc3MgSklUQ29uc3RhbnQgewotICAgIHZvaWQqIG1fcG9pbnRl
cjsKLSAgICBCeXRlU2l6ZWRFbnVtVHlwZSBtX3R5cGU7Ci1wdWJsaWM6Ci0gICAgaW5saW5lIEpJ
VENvbnN0YW50KCkKLSAgICAgICAgOiBtX3BvaW50ZXIobnVsbHB0cikKLSAgICB7IH0KLQotICAg
IGlubGluZSBKSVRDb25zdGFudCh2b2lkKiBwb2ludGVyLCBCeXRlU2l6ZWRFbnVtVHlwZSB0eXBl
KQotICAgICAgICA6IG1fcG9pbnRlcihwb2ludGVyKQotICAgICAgICAsIG1fdHlwZSh0eXBlKQot
ICAgIHsgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgT3RoZXJQb2ludGVyVHlwZT4KLSAgICBK
SVRDb25zdGFudChDb21wYWN0UG9pbnRlclR1cGxlPE90aGVyUG9pbnRlclR5cGUsIEJ5dGVTaXpl
ZEVudW1UeXBlPiBvdGhlcikKLSAgICAgICAgOiBtX3BvaW50ZXIob3RoZXIucG9pbnRlcigpKQot
ICAgICAgICAsIG1fdHlwZShvdGhlci50eXBlKCkpCi0gICAgeyB9Ci0KLSAgICBpbmxpbmUgdWlu
dDMyX3QgaGFzaCgpIGNvbnN0IHsgcmV0dXJuIGNvbXB1dGVIYXNoKG1fcG9pbnRlcikgKiAzMSAr
IGNvbXB1dGVIYXNoKCh1bnNpZ25lZCltX3R5cGUpOyB9Ci0gICAgaW5saW5lIHZvaWQqIHBvaW50
ZXIoKSBjb25zdCB7IHJldHVybiBtX3BvaW50ZXI7IH0KLSAgICB2b2lkIHNldFBvaW50ZXIodm9p
ZCogcG9pbnRlcikgeyBtX3BvaW50ZXIgPSBwb2ludGVyOyB9Ci0gICAgaW5saW5lIEJ5dGVTaXpl
ZEVudW1UeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICB2b2lkIHNldFR5
cGUoQnl0ZVNpemVkRW51bVR5cGUgdHlwZSkgeyBtX3R5cGUgPSB0eXBlOyB9Ci0KLSAgICBmcmll
bmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEpJVENvbnN0YW50JiwgY29uc3QgSklUQ29uc3RhbnQm
KSA9IGRlZmF1bHQ7Ci19OwotI2VuZGlmCi0KLQogY2xhc3MgSklUQ29kZSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxKSVRDb2RlPiB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8UHRyVGFn
IHRhZz4gdXNpbmcgQ29kZVJlZiA9IE1hY3JvQXNzZW1ibGVyQ29kZVJlZjx0YWc+OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Qb2x5bW9ycGhpY0NhbGxTdHViUm91dGlu
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Qb2x5bW9ycGhpY0NhbGxTdHViUm91dGlu
ZS5oCmluZGV4IDA3NDFiYjUyMWEwNy4uODBkMDljNDYxYTc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Qb2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5oCkBAIC01
MCwxMSArNTAsMTEgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgdW5saW5rSW1wbChWTSYpOwog
Ci0gICAgYm9vbCBoYXNDYWxsTGlua0luZm8oQ2FsbExpbmtJbmZvKiBpbmZvKSB7IHJldHVybiBt
X2NhbGxMaW5rSW5mbyA9PSBpbmZvOyB9CisgICAgYm9vbCBoYXNDYWxsTGlua0luZm8oQ2FsbExp
bmtJbmZvKiBpbmZvKSB7IHJldHVybiBtX2NhbGxMaW5rSW5mby5nZXQoKSA9PSBpbmZvOyB9CiAg
ICAgdm9pZCBjbGVhckNhbGxMaW5rSW5mbygpOwogICAgIAogcHJpdmF0ZToKLSAgICBDYWxsTGlu
a0luZm8qIG1fY2FsbExpbmtJbmZvOworICAgIFBhY2tlZFB0cjxDYWxsTGlua0luZm8+IG1fY2Fs
bExpbmtJbmZvOwogfTsKIAogY2xhc3MgUG9seW1vcnBoaWNDYWxsQ2FzZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCmluZGV4IDFjNzkwNGNhMzFjMS4uZWRiMTcy
NDAxZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0lu
Zm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaApAQCAt
MTc4LDggKzE3OCw2IEBAIHN0cnVjdCBNZXRob2RUYWJsZSB7CiAgICAgQ2xhc3NOYW1lOjppc1Jl
c2l6YWJsZU9yR3Jvd2FibGVTaGFyZWRUeXBlZEFycmF5LCBcCiAKIHN0cnVjdCBDTEFTU19JTkZP
X0FMSUdOTUVOVCBDbGFzc0luZm8gewotICAgIFdURl9BTExPV19TVFJVQ1RfQ09NUEFDVF9QT0lO
VEVSUzsKLQogICAgIHVzaW5nIENoZWNrSlNDYXN0U25pcHBldEZ1bmN0aW9uUHRyID0gUmVmPFNu
aXBwZXQ+ICgqKSh2b2lkKTsKIAogICAgIC8vIEEgc3RyaW5nIGRlbm90aW5nIHRoZSBjbGFzcyBu
YW1lLiBFeGFtcGxlOiAiV2luZG93Ii4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuaAppbmRleCA4NzI5NTVjMTg0YmEuLmRmZjE3MGQxYzYyMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtMzcsNyArMzcsNiBAQCBjbGFzcyBKU0FycmF5IDog
cHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNF
eHRyYWN0b3I7CiAgICAgZnJpZW5kIGNsYXNzIFdhbGtlcjsKICAgICBmcmllbmQgY2xhc3MgSklU
OwotICAgIFdURl9BTExPV19DT01QQUNUX1BPSU5URVJTOwogCiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bC5oCmluZGV4IDIwMGIyNWM0OWE3OS4uNzMzMjRlYWU1YWNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuaApAQCAtOTAsNyArOTAsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiB2b2lkKiB0cnlBbGxvY2F0ZUNlbGwoVk0mLCBHQ0RlZmVycmFsQ29udGV4dCosIHNpemVfdCA9
IHNpegogI2VuZGlmCiAKIGNsYXNzIEpTQ2VsbCA6IHB1YmxpYyBIZWFwQ2VsbCB7Ci0gICAgV1RG
X0FMTE9XX0NPTVBBQ1RfUE9JTlRFUlM7CiAgICAgZnJpZW5kIGNsYXNzIEpTVmFsdWU7CiAgICAg
ZnJpZW5kIGNsYXNzIE1hcmtlZEJsb2NrOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVHlwZURlZmluaXRpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UeXBlRGVmaW5pdGlvbi5oCmluZGV4IGQ2
YmRmMjEzNDkwZS4uNmNmZTE3NDdkNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtVHlwZURlZmluaXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtVHlwZURlZmluaXRpb24uaApAQCAtNjY5LDcgKzY2OSw3IEBAIGVudW0gY2xhc3Mg
UlRUS2luZCA6IHVpbnQ4X3QgewogfTsKIAogY2xhc3MgUlRUX0FMSUdOTUVOVCBSVFQgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UlRUPiB7Ci0gICAgV1RGX01BS0VfRkFTVF9DT01QQUNU
X0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIAogcHVibGljOgogICAg
IFJUVCgpID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQmFnLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9CYWcuaAppbmRleCBiOWUzNzBlNDUxOWQuLjQzMzk3ZGZiNDM0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQmFnLmgKKysrIGIvU291cmNlL1dURi93dGYvQmFnLmgKQEAg
LTMyLDggKzMyLDEwIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCitERUNMQVJFX0FMTE9DQVRPUl9X
SVRIX0hFQVBfSURFTlRJRklFUihCYWdOb2RlKTsKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFBhc3NlZFB0clRyYWl0cyA9IFJhd1B0clRyYWl0czxUPj4KIGNsYXNzIEJhZ05vZGUgewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKEJhZ05vZGUp
OwogcHVibGljOgogICAgIHVzaW5nIFB0clRyYWl0cyA9IHR5cGVuYW1lIFBhc3NlZFB0clRyYWl0
czo6dGVtcGxhdGUgUmViaW5kVHJhaXRzPEJhZ05vZGU+OwogCkBAIC00Niw3ICs0OCw3IEBAIHB1
YmxpYzoKICAgICB0eXBlbmFtZSBQdHJUcmFpdHM6OlN0b3JhZ2VUeXBlIG1fbmV4dCB7IG51bGxw
dHIgfTsKIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFBhc3NlZFB0clRyYWl0
cyA9IFJhd1B0clRyYWl0czxUPiwgdHlwZW5hbWUgTWFsbG9jID0gRmFzdE1hbGxvYz4KK3RlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFBhc3NlZFB0clRyYWl0cyA9IFJhd1B0clRyYWl0czxU
Pj4KIGNsYXNzIEJhZyBmaW5hbCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQmFnKTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTg5LDggKzkxLDcgQEAgcHVibGljOgogICAg
ICAgICB3aGlsZSAoaGVhZCkgewogICAgICAgICAgICAgTm9kZSogY3VycmVudCA9IGhlYWQ7CiAg
ICAgICAgICAgICBoZWFkID0gTm9kZTo6UHRyVHJhaXRzOjp1bndyYXAoY3VycmVudC0+bV9uZXh0
KTsKLSAgICAgICAgICAgIGN1cnJlbnQtPn5Ob2RlKCk7Ci0gICAgICAgICAgICBNYWxsb2M6OmZy
ZWUoY3VycmVudCk7CisgICAgICAgICAgICBkZWxldGUgY3VycmVudDsKICAgICAgICAgfQogICAg
ICAgICBtX2hlYWQgPSBudWxscHRyOwogICAgIH0KQEAgLTk4LDggKzk5LDcgQEAgcHVibGljOgog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CiAgICAgVCogYWRkKEFyZ3MmJi4uLiBhcmdz
KQogICAgIHsKLSAgICAgICAgTm9kZSogbmV3Tm9kZSA9IHN0YXRpY19jYXN0PE5vZGUqPihNYWxs
b2M6Om1hbGxvYyhzaXplb2YoTm9kZSkpKTsKLSAgICAgICAgbmV3IChOb3ROdWxsLCBuZXdOb2Rl
KSBOb2RlKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgICAgIE5vZGUqIG5ld05v
ZGUgPSBuZXcgTm9kZShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwogICAgICAgICBuZXdO
b2RlLT5tX25leHQgPSB1bndyYXBwZWRIZWFkKCk7CiAgICAgICAgIG1faGVhZCA9IG5ld05vZGU7
CiAgICAgICAgIHJldHVybiAmbmV3Tm9kZS0+bV9pdGVtOwpAQCAtMTI3LDcgKzEyNyw3IEBAIHB1
YmxpYzoKICAgICAgICAgZnJpZW5kIGJvb2wgb3BlcmF0b3I9PShpdGVyYXRvciwgaXRlcmF0b3Ip
ID0gZGVmYXVsdDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lLCB0
eXBlbmFtZSwgdHlwZW5hbWU+IGZyaWVuZCBjbGFzcyBXVEY6OkJhZzsKKyAgICAgICAgdGVtcGxh
dGU8dHlwZW5hbWUsIHR5cGVuYW1lPiBmcmllbmQgY2xhc3MgV1RGOjpCYWc7CiAgICAgICAgIE5v
ZGUqIG1fbm9kZTsKICAgICB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ29t
cGFjdFBvaW50ZXJUdXBsZS5oIGIvU291cmNlL1dURi93dGYvQ29tcGFjdFBvaW50ZXJUdXBsZS5o
CmluZGV4IGMzYmMzNTUzZDYwZC4uNTkyMjMwNDFlY2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9Db21wYWN0UG9pbnRlclR1cGxlLmgKKysrIGIvU291cmNlL1dURi93dGYvQ29tcGFjdFBv
aW50ZXJUdXBsZS5oCkBAIC00Nyw3ICs0Nyw2IEBAIGNsYXNzIENvbXBhY3RQb2ludGVyVHVwbGUg
ZmluYWwgewogcHVibGljOgogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFR5cGUpIDw9IDIpOwog
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19wb2ludGVyPFBvaW50ZXJUeXBlPjo6dmFsdWUpOwot
ICAgIHN0YXRpY19hc3NlcnQoOjphbGxvd0NvbXBhY3RQb2ludGVyczxQb2ludGVyVHlwZT4oKSk7
CiAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ludGVncmFsPFR5cGU+Ojp2YWx1ZSB8fCBzdGQ6
OmlzX2VudW08VHlwZT46OnZhbHVlKTsKICAgICB1c2luZyBVbnNpZ25lZFR5cGUgPSBzdGQ6Om1h
a2VfdW5zaWduZWRfdDxzdGQ6OmNvbmRpdGlvbmFsX3Q8c3RkOjppc19zYW1lX3Y8VHlwZSwgYm9v
bD4sIHVpbnQ4X3QsIFR5cGU+PjsKICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihVbnNpZ25lZFR5
cGUpID09IHNpemVvZihUeXBlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db21wYWN0
UHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Db21wYWN0UHRyLmgKaW5kZXggY2YwYzQ5ZGE2ZTI1Li40
ZDYwMGVmNTljNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NvbXBhY3RQdHIuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9Db21wYWN0UHRyLmgKQEAgLTY1LDcgKzY1LDYgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpczMyQml0ID0gZmFsc2U7CiAjZW5kaWYKICAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgaXNDb21wYWN0ZWRUeXBlID0gdHJ1ZTsKLSAgICBzdGF0aWNf
YXNzZXJ0KDo6YWxsb3dDb21wYWN0UG9pbnRlcnM8VCo+KCkpOwogCiAgICAgQUxXQVlTX0lOTElO
RSBjb25zdGV4cHIgQ29tcGFjdFB0cigpID0gZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvRGVidWdIZWFwLmggYi9Tb3VyY2UvV1RGL3d0Zi9EZWJ1Z0hlYXAuaAppbmRleCBl
ZmViZDQwODVhNDkuLjUwNzA3MTBlYTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGVi
dWdIZWFwLmgKKysrIGIvU291cmNlL1dURi93dGYvRGVidWdIZWFwLmgKQEAgLTM4LDcgKzM4LDYg
QEAKIG5hbWVzcGFjZSBXVEYgewogCiAjZGVmaW5lIERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVB
UF9JREVOVElGSUVSKFR5cGUpIERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVS
X0FORF9FWFBPUlQoVHlwZSwgV1RGX0VYUE9SVF9QUklWQVRFKQotI2RlZmluZSBERUNMQVJFX0NP
TVBBQ1RfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFR5cGUpIERFQ0xBUkVfQ09NUEFD
VF9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVJfQU5EX0VYUE9SVChUeXBlLCBXVEZfRVhQ
T1JUX1BSSVZBVEUpCiAKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKQogCkBAIC05
NywxMiArOTYsNiBAQCBwcml2YXRlOgogI2RlZmluZSBERUZJTkVfQUxMT0NBVE9SX1dJVEhfSEVB
UF9JREVOVElGSUVSKFR5cGUpIFwKICAgICBzdHJ1Y3QgTWFrZURlYnVnSGVhcE1hbGxvY2VkSW1w
bE1hY3JvU2VtaWNvbG9uaWZpZXIjI1R5cGUgeyB9CiAKLSNkZWZpbmUgREVDTEFSRV9DT01QQUNU
X0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUl9BTkRfRVhQT1JUKFR5cGUsIEV4cG9ydCkg
XAotICAgIHVzaW5nIFR5cGUjI01hbGxvYyA9IEZhc3RDb21wYWN0TWFsbG9jCi0KLSNkZWZpbmUg
REVGSU5FX0NPTVBBQ1RfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFR5cGUpIFwKLSAg
ICBzdHJ1Y3QgTWFrZURlYnVnSGVhcE1hbGxvY2VkSW1wbE1hY3JvU2VtaWNvbG9uaWZpZXIjI1R5
cGUgeyB9Ci0KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwIGIvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAK
aW5kZXggMzhmZDE5ZGMxY2QzLi44M2VhY2U1NjFlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0Zhc3RNYWxsb2MuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCkBA
IC0xMzUsMjQgKzEzNSw2IEBAIHZvaWQqIGZhc3RNZW1EdXAoY29uc3Qgdm9pZCogbWVtLCBzaXpl
X3QgYnl0ZXMpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotY2hhciogZmFzdENvbXBhY3RTdHJE
dXAoY29uc3QgY2hhciogc3JjKQotewotICAgIHNpemVfdCBsZW4gPSBzdHJsZW4oc3JjKSArIDE7
Ci0gICAgY2hhciogZHVwID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGZhc3RDb21wYWN0TWFsbG9jKGxl
bikpOwotICAgIG1lbWNweShkdXAsIHNyYywgbGVuKTsKLSAgICByZXR1cm4gZHVwOwotfQotCi12
b2lkKiBmYXN0Q29tcGFjdE1lbUR1cChjb25zdCB2b2lkKiBtZW0sIHNpemVfdCBieXRlcykKLXsK
LSAgICBpZiAoIW1lbSB8fCAhYnl0ZXMpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
dm9pZCogcmVzdWx0ID0gZmFzdENvbXBhY3RNYWxsb2MoYnl0ZXMpOwotICAgIG1lbWNweShyZXN1
bHQsIG1lbSwgYnl0ZXMpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IFdURgogCiAjaWYgVVNFKFNZU1RFTV9NQUxMT0MpCkBAIC0zMzksMTcgKzMyMSw2IEBAIHZvaWQg
ZmFzdERpc2FibGVTY2F2ZW5nZXIoKSB7IH0KIAogdm9pZCBmYXN0TWFsbG9jRHVtcE1hbGxvY1N0
YXRzKCkgeyB9CiAKLXZvaWQqIGZhc3RDb21wYWN0TWFsbG9jKHNpemVfdCBzaXplKSB7IHJldHVy
biBmYXN0TWFsbG9jKHNpemUpOyB9Ci12b2lkKiBmYXN0Q29tcGFjdFplcm9lZE1hbGxvYyhzaXpl
X3Qgc2l6ZSkgeyByZXR1cm4gZmFzdFplcm9lZE1hbGxvYyhzaXplKTsgfQotdm9pZCogZmFzdENv
bXBhY3RDYWxsb2Moc2l6ZV90IG51bUVsZW1lbnRzLCBzaXplX3QgZWxlbWVudFNpemUpIHsgcmV0
dXJuIGZhc3RDYWxsb2MobnVtRWxlbWVudHMsIGVsZW1lbnRTaXplKTsgfQotdm9pZCogZmFzdENv
bXBhY3RSZWFsbG9jKHZvaWQqIHB0ciwgc2l6ZV90IHNpemUpIHsgcmV0dXJuIGZhc3RSZWFsbG9j
KHB0ciwgc2l6ZSk7IH0KLVRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RDb21wYWN0TWFsbG9j
KHNpemVfdCBzaXplKSB7IHJldHVybiB0cnlGYXN0TWFsbG9jKHNpemUpOyB9Ci1UcnlNYWxsb2NS
ZXR1cm5WYWx1ZSB0cnlGYXN0Q29tcGFjdFplcm9lZE1hbGxvYyhzaXplX3Qgc2l6ZSkgeyByZXR1
cm4gdHJ5RmFzdFplcm9lZE1hbGxvYyhzaXplKTsgfQotVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5
RmFzdENvbXBhY3RDYWxsb2Moc2l6ZV90IG51bUVsZW1lbnRzLCBzaXplX3QgZWxlbWVudFNpemUp
IHsgcmV0dXJuIHRyeUZhc3RDYWxsb2MobnVtRWxlbWVudHMsIGVsZW1lbnRTaXplKTsgfQotVHJ5
TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENvbXBhY3RSZWFsbG9jKHZvaWQqIHB0ciwgc2l6ZV90
IHNpemUpIHsgcmV0dXJuIHRyeUZhc3RSZWFsbG9jKHB0ciwgc2l6ZSk7IH0KLXZvaWQqIGZhc3RD
b21wYWN0QWxpZ25lZE1hbGxvYyhzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkgeyByZXR1
cm4gZmFzdEFsaWduZWRNYWxsb2MoYWxpZ25tZW50LCBzaXplKTsgfQotdm9pZCogdHJ5RmFzdENv
bXBhY3RBbGlnbmVkTWFsbG9jKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKSB7IHJldHVy
biB0cnlGYXN0QWxpZ25lZE1hbGxvYyhhbGlnbm1lbnQsIHNpemUpOyB9Ci0KIH0gLy8gbmFtZXNw
YWNlIFdURgogCiAjZWxzZSAvLyBVU0UoU1lTVEVNX01BTExPQykKQEAgLTU5OCw3ICs1NjksNyBA
QCB2b2lkKiBmYXN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXpl
KQogICAgIHZvaWQqIHJlc3VsdCA9IGZhc3RaZXJvZWRNYWxsb2MoY2hlY2tlZFNpemUpOwogICAg
IGlmICghcmVzdWx0KQogICAgICAgICBDUkFTSCgpOwotICAgIEJQUk9GSUxFX0FMTE9DQVRJT04o
Tk9OX0pTX0NFTEwsIHJlc3VsdCwgY2hlY2tlZFNpemUpOworICAgIEJQUk9GSUxFX0FMTE9DQVRJ
T04oTk9OX0pTX0NFTEwsIHJlc3VsdCwgc2l6ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApA
QCAtNzAxLDExOSArNjcyLDcgQEAgVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Mo
dm9pZCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQo
bmV3U2l6ZSk7CiAgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHZvaWQqIHJlc3VsdCA9IGJtYWxs
b2M6OmFwaTo6dHJ5UmVhbGxvYyhvYmplY3QsIG5ld1NpemUpOwotICAgIEJQUk9GSUxFX1RSWV9B
TExPQ0FUSU9OKE5PTl9KU19DRUxMLCByZXN1bHQsIG5ld1NpemUpOwotICAgIHJldHVybiByZXN1
bHQ7Ci19Ci0KLXZvaWQqIGZhc3RDb21wYWN0TWFsbG9jKHNpemVfdCBzaXplKQotewotICAgIEFT
U0VSVF9JU19XSVRISU5fTElNSVQoc2l6ZSk7Ci0gICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VT
Y29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwotICAgIHZv
aWQqIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6bWFsbG9jKHNpemUpOwotI2lmIEVOQUJMRShNQUxM
T0NfSEVBUF9CUkVBS0RPV04pICYmIFRSQUNLX01BTExPQ19DQUxMU1RBQ0sKLSAgICBpZiAoIUF2
b2lkUmVjb3JkaW5nU2NvcGU6OmF2b2lkUmVjb3JkaW5nQ291bnQoKSkKLSAgICAgICAgTWFsbG9j
Q2FsbFRyYWNrZXI6OnNpbmdsZXRvbigpLnJlY29yZE1hbGxvYyhyZXN1bHQsIHNpemUpOwotI2Vu
ZGlmCi0gICAgQlBST0ZJTEVfQUxMT0NBVElPTihDT01QQUNUSUJMRSwgcmVzdWx0LCBzaXplKTsK
LSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkKiBmYXN0Q29tcGFjdFplcm9lZE1hbGxvYyhz
aXplX3Qgc2l6ZSkKLXsKLSAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKHNpemUpOwotICAgIEFT
U0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25TY29wZUNvdW50KTsKLSAgICB2b2lkKiByZXN1bHQgPSBibWFsbG9jOjphcGk6Onplcm9lZE1h
bGxvYyhzaXplKTsKLSNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19N
QUxMT0NfQ0FMTFNUQUNLCi0gICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29y
ZGluZ0NvdW50KCkpCi0gICAgICAgIE1hbGxvY0NhbGxUcmFja2VyOjpzaW5nbGV0b24oKS5yZWNv
cmRNYWxsb2MocmVzdWx0LCBzaXplKTsKLSNlbmRpZgotICAgIEJQUk9GSUxFX0FMTE9DQVRJT04o
Q09NUEFDVElCTEUsIHJlc3VsdCwgc2l6ZSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotVHJ5
TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENvbXBhY3RaZXJvZWRNYWxsb2Moc2l6ZV90IHNpemUp
Ci17Ci0gICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKHNpemUpOwotICAgIEFTU0VSVCghZm9yYmlk
TWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50
KTsKLSAgICByZXR1cm4gYm1hbGxvYzo6YXBpOjp0cnlaZXJvZWRNYWxsb2Moc2l6ZSk7Ci19Ci0K
LXZvaWQqIGZhc3RDb21wYWN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1l
bnRTaXplKQotewotICAgIEFTU0VSVF9JU19XSVRISU5fTElNSVQobnVtRWxlbWVudHMgKiBlbGVt
ZW50U2l6ZSk7Ci0gICAgQ2hlY2tlZDxzaXplX3Q+IGNoZWNrZWRTaXplID0gZWxlbWVudFNpemU7
Ci0gICAgY2hlY2tlZFNpemUgKj0gbnVtRWxlbWVudHM7Ci0gICAgdm9pZCogcmVzdWx0ID0gZmFz
dFplcm9lZE1hbGxvYyhjaGVja2VkU2l6ZSk7Ci0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIENS
QVNIKCk7Ci0gICAgQlBST0ZJTEVfQUxMT0NBVElPTihDT01QQUNUSUJMRSwgcmVzdWx0LCBlbGVt
ZW50U2l6ZSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCogZmFzdENvbXBhY3RSZWFs
bG9jKHZvaWQqIG9iamVjdCwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVNTRVJUX0lTX1dJVEhJTl9M
SU1JVChzaXplKTsKLSAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQgfHwgZGlz
YWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudCk7Ci0gICAgdm9pZCogcmVzdWx0ID0gYm1h
bGxvYzo6YXBpOjpyZWFsbG9jKG9iamVjdCwgc2l6ZSk7Ci0jaWYgRU5BQkxFKE1BTExPQ19IRUFQ
X0JSRUFLRE9XTikgJiYgVFJBQ0tfTUFMTE9DX0NBTExTVEFDSwotICAgIGlmICghQXZvaWRSZWNv
cmRpbmdTY29wZTo6YXZvaWRSZWNvcmRpbmdDb3VudCgpKQotICAgICAgICBNYWxsb2NDYWxsVHJh
Y2tlcjo6c2luZ2xldG9uKCkucmVjb3JkUmVhbGxvYyhvYmplY3QsIHJlc3VsdCwgc2l6ZSk7Ci0j
ZW5kaWYKLSAgICBCUFJPRklMRV9BTExPQ0FUSU9OKENPTVBBQ1RJQkxFLCByZXN1bHQsIHNpemUp
OwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXZvaWQqIGZhc3RDb21wYWN0QWxpZ25lZE1hbGxv
YyhzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBBU1NFUlRfSVNfV0lUSElO
X0xJTUlUKHNpemUpOwotICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBk
aXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKLSAgICB2b2lkKiByZXN1bHQgPSBi
bWFsbG9jOjphcGk6Om1lbWFsaWduKGFsaWdubWVudCwgc2l6ZSk7Ci0jaWYgRU5BQkxFKE1BTExP
Q19IRUFQX0JSRUFLRE9XTikgJiYgVFJBQ0tfTUFMTE9DX0NBTExTVEFDSwotICAgIGlmICghQXZv
aWRSZWNvcmRpbmdTY29wZTo6YXZvaWRSZWNvcmRpbmdDb3VudCgpKQotICAgICAgICBNYWxsb2ND
YWxsVHJhY2tlcjo6c2luZ2xldG9uKCkucmVjb3JkTWFsbG9jKHJlc3VsdCwgc2l6ZSk7Ci0jZW5k
aWYKLSAgICBCUFJPRklMRV9BTExPQ0FUSU9OKENPTVBBQ1RJQkxFLCByZXN1bHQsIHNpemUpOwot
ICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXZvaWQqIHRyeUZhc3RDb21wYWN0QWxpZ25lZE1hbGxv
YyhzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBGQUlMX0lGX0VYQ0VFRFNf
TElNSVQoc2l6ZSk7Ci0gICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRp
c2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwotICAgIHZvaWQqIHJlc3VsdCA9IGJt
YWxsb2M6OmFwaTo6dHJ5TWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKLSNpZiBFTkFCTEUoTUFM
TE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFDS19NQUxMT0NfQ0FMTFNUQUNLCi0gICAgaWYgKCFB
dm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJlY29yZGluZ0NvdW50KCkpCi0gICAgICAgIE1hbGxv
Y0NhbGxUcmFja2VyOjpzaW5nbGV0b24oKS5yZWNvcmRNYWxsb2MocmVzdWx0LCBzaXplKTsKLSNl
bmRpZgotICAgIEJQUk9GSUxFX0FMTE9DQVRJT04oQ09NUEFDVElCTEUsIHJlc3VsdCwgc2l6ZSk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENv
bXBhY3RNYWxsb2Moc2l6ZV90IHNpemUpCi17Ci0gICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKHNp
emUpOwotICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKLSAgICB2b2lkKiByZXN1bHQgPSBibWFsbG9jOjph
cGk6OnRyeU1hbGxvYyhzaXplKTsKLSAgICBCUFJPRklMRV9BTExPQ0FUSU9OKENPTVBBQ1RJQkxF
LCByZXN1bHQsIHNpemUpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLVRyeU1hbGxvY1JldHVy
blZhbHVlIHRyeUZhc3RDb21wYWN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVs
ZW1lbnRTaXplKQotewotICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChudW1FbGVtZW50cyAqIGVs
ZW1lbnRTaXplKTsKLSAgICBDaGVja2VkU2l6ZSBjaGVja2VkU2l6ZSA9IGVsZW1lbnRTaXplOwot
ICAgIGNoZWNrZWRTaXplICo9IG51bUVsZW1lbnRzOwotICAgIGlmIChjaGVja2VkU2l6ZS5oYXNP
dmVyZmxvd2VkKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiB0cnlGYXN0
Q29tcGFjdFplcm9lZE1hbGxvYyhjaGVja2VkU2l6ZSk7Ci19Ci0KLVRyeU1hbGxvY1JldHVyblZh
bHVlIHRyeUZhc3RDb21wYWN0UmVhbGxvYyh2b2lkKiBvYmplY3QsIHNpemVfdCBuZXdTaXplKQot
ewotICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChuZXdTaXplKTsKLSAgICBBU1NFUlQoIWZvcmJp
ZE1hbGxvY1VzZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3Vu
dCk7Ci0gICAgdm9pZCogcmVzdWx0ID0gYm1hbGxvYzo6YXBpOjp0cnlSZWFsbG9jKG9iamVjdCwg
bmV3U2l6ZSk7Ci0gICAgQlBST0ZJTEVfQUxMT0NBVElPTihDT01QQUNUSUJMRSwgcmVzdWx0LCBu
ZXdTaXplKTsKKyAgICBCUFJPRklMRV9UUllfQUxMT0NBVElPTihOT05fSlNfQ0VMTCwgcmVzdWx0
LCBzaXplKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9GYXN0TWFsbG9jLmggYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKaW5kZXggMzU4
NDIyNGE2MjMyLi4zMmRkNjU3MTQ2OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RN
YWxsb2MuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKQEAgLTEwNywyMiArMTA3
LDYgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQqIGZhc3RBbGlnbmVkTWFsbG9jKHNpemVfdCBh
bGlnbm1lbnQsIHNpemVfdCkgUkVUVVJOU19OT04KIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkKiB0
cnlGYXN0QWxpZ25lZE1hbGxvYyhzaXplX3QgYWxpZ25tZW50LCBzaXplX3QpOwogV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgZmFzdEFsaWduZWRGcmVlKHZvaWQqKTsKIAotLy8gVGhlc2UgZnVuY3Rp
b25zIGJlaGF2ZSBsaWtlIHRoZWlyIG5vbi1jb21wYWN0IGNvdW50ZXJwYXJ0cywgYnV0IGd1YXJh
bnRlZQotLy8gdGhhdCB0aGUgcG9pbnRlciByZXR1cm5lZCBjYW4gYmUgc3RvcmVkIGFzIGEgQ29t
cGFjdFB0ciBvciBQYWNrZWRQdHIuCi0KLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkKiBmYXN0Q29t
cGFjdE1hbGxvYyhzaXplX3QpIFJFVFVSTlNfTk9OTlVMTDsKLVdURl9FWFBPUlRfUFJJVkFURSB2
b2lkKiBmYXN0Q29tcGFjdFplcm9lZE1hbGxvYyhzaXplX3QpIFJFVFVSTlNfTk9OTlVMTDsKLVdU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkKiBmYXN0Q29tcGFjdENhbGxvYyhzaXplX3QgbnVtRWxlbWVu
dHMsIHNpemVfdCBlbGVtZW50U2l6ZSkgUkVUVVJOU19OT05OVUxMOwotV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQqIGZhc3RDb21wYWN0UmVhbGxvYyh2b2lkKiwgc2l6ZV90KSBSRVRVUk5TX05PTk5V
TEw7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENvbXBh
Y3RNYWxsb2Moc2l6ZV90KTsKLVdURl9FWFBPUlRfUFJJVkFURSBUcnlNYWxsb2NSZXR1cm5WYWx1
ZSB0cnlGYXN0Q29tcGFjdFplcm9lZE1hbGxvYyhzaXplX3QpOwotV1RGX0VYUE9SVF9QUklWQVRF
IFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RDb21wYWN0Q2FsbG9jKHNpemVfdCBudW1FbGVt
ZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKTsKLVdURl9FWFBPUlRfUFJJVkFURSBUcnlNYWxsb2NS
ZXR1cm5WYWx1ZSB0cnlGYXN0Q29tcGFjdFJlYWxsb2Modm9pZCosIHNpemVfdCk7Ci1XVEZfRVhQ
T1JUX1BSSVZBVEUgY2hhciogZmFzdENvbXBhY3RTdHJEdXAoY29uc3QgY2hhciopIFJFVFVSTlNf
Tk9OTlVMTDsKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkKiBmYXN0Q29tcGFjdE1lbUR1cChjb25z
dCB2b2lkKiwgc2l6ZV90KTsKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkKiBmYXN0Q29tcGFjdEFs
aWduZWRNYWxsb2Moc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90KSBSRVRVUk5TX05PTk5VTEw7Ci1X
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCogdHJ5RmFzdENvbXBhY3RBbGlnbmVkTWFsbG9jKHNpemVf
dCBhbGlnbm1lbnQsIHNpemVfdCk7Ci0KIFdURl9FWFBPUlRfUFJJVkFURSBzaXplX3QgZmFzdE1h
bGxvY1NpemUoY29uc3Qgdm9pZCopOwogCiAvLyBGSVhNRTogVGhpcyBpcyBub24taGVscGZ1bDsg
ZmFzdE1hbGxvY0dvb2RTaXplIHdpbGwgYmUgcmVtb3ZlZCBzb29uLgpAQCAtMjcyLDQzICsyNTYs
NiBAQCBzdHJ1Y3QgRmFzdE1hbGxvYyB7CiAgICAgc3RhdGljIHZvaWQgZnJlZSh2b2lkKiBwKSB7
IGZhc3RGcmVlKHApOyB9CiB9OwogCi1zdHJ1Y3QgRmFzdENvbXBhY3RNYWxsb2MgewotICAgIHN0
YXRpYyB2b2lkKiBtYWxsb2Moc2l6ZV90IHNpemUpIHsgcmV0dXJuIGZhc3RDb21wYWN0TWFsbG9j
KHNpemUpOyB9Ci0KLSAgICBzdGF0aWMgdm9pZCogdHJ5TWFsbG9jKHNpemVfdCBzaXplKQotICAg
IHsKLSAgICAgICAgYXV0byByZXN1bHQgPSB0cnlGYXN0Q29tcGFjdE1hbGxvYyhzaXplKTsKLSAg
ICAgICAgdm9pZCogcmVhbFJlc3VsdDsKLSAgICAgICAgaWYgKHJlc3VsdC5nZXRWYWx1ZShyZWFs
UmVzdWx0KSkKLSAgICAgICAgICAgIHJldHVybiByZWFsUmVzdWx0OwotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICB9Ci0KLSAgICBzdGF0aWMgdm9pZCogemVyb2VkTWFsbG9jKHNpemVfdCBz
aXplKSB7IHJldHVybiBmYXN0Q29tcGFjdFplcm9lZE1hbGxvYyhzaXplKTsgfQotCi0gICAgc3Rh
dGljIHZvaWQqIHRyeVplcm9lZE1hbGxvYyhzaXplX3Qgc2l6ZSkKLSAgICB7Ci0gICAgICAgIGF1
dG8gcmVzdWx0ID0gdHJ5RmFzdENvbXBhY3RaZXJvZWRNYWxsb2Moc2l6ZSk7Ci0gICAgICAgIHZv
aWQqIHJlYWxSZXN1bHQ7Ci0gICAgICAgIGlmIChyZXN1bHQuZ2V0VmFsdWUocmVhbFJlc3VsdCkp
Ci0gICAgICAgICAgICByZXR1cm4gcmVhbFJlc3VsdDsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgfQotCi0gICAgc3RhdGljIHZvaWQqIHJlYWxsb2Modm9pZCogcCwgc2l6ZV90IHNpemUp
IHsgcmV0dXJuIGZhc3RDb21wYWN0UmVhbGxvYyhwLCBzaXplKTsgfQotCi0gICAgc3RhdGljIHZv
aWQqIHRyeVJlYWxsb2Modm9pZCogcCwgc2l6ZV90IHNpemUpCi0gICAgewotICAgICAgICBhdXRv
IHJlc3VsdCA9IHRyeUZhc3RDb21wYWN0UmVhbGxvYyhwLCBzaXplKTsKLSAgICAgICAgdm9pZCog
cmVhbFJlc3VsdDsKLSAgICAgICAgaWYgKHJlc3VsdC5nZXRWYWx1ZShyZWFsUmVzdWx0KSkKLSAg
ICAgICAgICAgIHJldHVybiByZWFsUmVzdWx0OwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICB9Ci0KLSAgICBzdGF0aWMgdm9pZCBmcmVlKHZvaWQqIHApIHsgZmFzdEZyZWUocCk7IH0KLX07
Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgRmFzdEZyZWUgewogICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSk7CkBAIC0zMzUs
NDcgKzI4Miw5IEBAIHN0cnVjdCBGYXN0RnJlZTxUW10+IHsKIHVzaW5nIFdURjo6ZmFzdFNldE1h
eFNpbmdsZUFsbG9jYXRpb25TaXplOwogI2VuZGlmCiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1z
dHJ1Y3QgQWxsb3dDb21wYWN0UG9pbnRlcnMgOiBzdGQ6OmZhbHNlX3R5cGUgeyB9OwotCi0jZGVm
aW5lIFdURl9BTExPV19DT01QQUNUX1BPSU5URVJTX1RPX0lOQ09NUExFVEVfVFlQRShjbGFzc05h
bWUpIFwKLXRlbXBsYXRlPD4gXAotc3RydWN0IEFsbG93Q29tcGFjdFBvaW50ZXJzPGNsYXNzTmFt
ZSo+IDogc3RkOjp0cnVlX3R5cGUgeyB9Ci0KLSNkZWZpbmUgV1RGX0FMTE9XX0NPTVBBQ1RfUE9J
TlRFUlNfSU1QTCBcCi0gICAgY29uc3RleHByIHN0YXRpYyBib29sIGFsbG93Q29tcGFjdFBvaW50
ZXJzID0gdHJ1ZQotCi0jZGVmaW5lIFdURl9BTExPV19DT01QQUNUX1BPSU5URVJTIFwKLXB1Ymxp
YzogXAotICAgIFdURl9BTExPV19DT01QQUNUX1BPSU5URVJTX0lNUEw7IFwKLXByaXZhdGU6IFwK
LXVzaW5nIF9fdGhpc0lzQWxzb0hlcmVUb0ZvcmNlQVNlbWljb2xvbkFmdGVyVGhpc01hY3JvIFVO
VVNFRF9UWVBFX0FMSUFTID0gaW50Ci0KLSNkZWZpbmUgV1RGX0FMTE9XX1NUUlVDVF9DT01QQUNU
X1BPSU5URVJTIFwKLXB1YmxpYzogXAotICAgIFdURl9BTExPV19DT01QQUNUX1BPSU5URVJTX0lN
UEw7IFwKLXVzaW5nIF9fdGhpc0lzQWxzb0hlcmVUb0ZvcmNlQVNlbWljb2xvbkFmdGVyVGhpc01h
Y3JvIFVOVVNFRF9UWVBFX0FMSUFTID0gaW50Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1pbmxp
bmUgY29uc3RleHByIHN0ZDo6ZW5hYmxlX2lmX3Q8V1RGOjpJc1R5cGVDb21wbGV0ZTxzdGQ6OnJl
bW92ZV9wb2ludGVyX3Q8VD4+LCBib29sPiBhbGxvd0NvbXBhY3RQb2ludGVycygpCi17Ci0gICAg
cmV0dXJuIHN0ZDo6cmVtb3ZlX3BvaW50ZXJfdDxUPjo6YWxsb3dDb21wYWN0UG9pbnRlcnM7Ci19
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1pbmxpbmUgY29uc3RleHByIHN0ZDo6ZW5hYmxlX2lm
X3Q8IVdURjo6SXNUeXBlQ29tcGxldGU8c3RkOjpyZW1vdmVfcG9pbnRlcl90PFQ+PiwgYm9vbD4g
YWxsb3dDb21wYWN0UG9pbnRlcnMoKQotewotICAgIC8vIFdlIHdhbnQgdG8gc3VwcG9ydCBjb21w
YWN0IHBvaW50ZXJzIHRvIGluY29tcGxldGUgdHlwZXMgdG9vLCBzbyB3ZSBoYXZlIHRoaXMgZmFs
bGJhY2s6Ci0gICAgLy8gaWYgYSB0eXBlIGlzIGluY29tcGxldGUsIEFsbG93Q29tcGFjdFBvaW50
ZXJzIGNhbiBiZSBzcGVjaWFsaXplZCBvbiBpdHMgcG9pbnRlciB0eXBlLAotICAgIC8vIGluIHdo
aWNoIGNhc2Ugd2UnbGwgcmV0dXJuIGl0cyB2YWx1ZS4gVGhpcyBpcyBtb3N0bHkgYWNjb21wbGlz
aGVkIHVzaW5nIHRoZSBiZWxvdwotICAgIC8vIFdURl9BTExPV19DT01QQUNUX1BPSU5URVJTX1RP
X0lOQ09NUExFVEVfVFlQRSBtYWNyby4KLSAgICByZXR1cm4gQWxsb3dDb21wYWN0UG9pbnRlcnM8
c3RkOjpyZW1vdmVfY29uc3RfdDxzdGQ6OnJlbW92ZV9wb2ludGVyX3Q8VD4+Kj46OnZhbHVlOwot
fQotCiB1c2luZyBXVEY6OkRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFk
U2NvcGU7CiB1c2luZyBXVEY6OkZhc3RBbGxvY2F0b3I7CiB1c2luZyBXVEY6OkZhc3RNYWxsb2M7
Ci11c2luZyBXVEY6OkZhc3RDb21wYWN0TWFsbG9jOwogdXNpbmcgV1RGOjpGYXN0RnJlZTsKIHVz
aW5nIFdURjo6Rm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlOwogdXNpbmcgV1RG
Ojppc0Zhc3RNYWxsb2NFbmFibGVkOwpAQCAtMzk0LDE3ICszMDMsNiBAQCB1c2luZyBXVEY6OnRy
eUZhc3RNYWxsb2M7CiB1c2luZyBXVEY6OnRyeUZhc3RaZXJvZWRNYWxsb2M7CiB1c2luZyBXVEY6
OmZhc3RBbGlnbmVkTWFsbG9jOwogdXNpbmcgV1RGOjpmYXN0QWxpZ25lZEZyZWU7Ci11c2luZyBX
VEY6OmZhc3RDb21wYWN0Q2FsbG9jOwotdXNpbmcgV1RGOjpmYXN0Q29tcGFjdE1hbGxvYzsKLXVz
aW5nIFdURjo6ZmFzdENvbXBhY3RNZW1EdXA7Ci11c2luZyBXVEY6OmZhc3RDb21wYWN0UmVhbGxv
YzsKLXVzaW5nIFdURjo6ZmFzdENvbXBhY3RTdHJEdXA7Ci11c2luZyBXVEY6OmZhc3RDb21wYWN0
WmVyb2VkTWFsbG9jOwotdXNpbmcgV1RGOjp0cnlGYXN0Q29tcGFjdEFsaWduZWRNYWxsb2M7Ci11
c2luZyBXVEY6OnRyeUZhc3RDb21wYWN0Q2FsbG9jOwotdXNpbmcgV1RGOjp0cnlGYXN0Q29tcGFj
dE1hbGxvYzsKLXVzaW5nIFdURjo6dHJ5RmFzdENvbXBhY3RaZXJvZWRNYWxsb2M7Ci11c2luZyBX
VEY6OmZhc3RDb21wYWN0QWxpZ25lZE1hbGxvYzsKIAogI2lmIENPTVBJTEVSKEdDQ19DT01QQVRJ
QkxFKSAmJiBPUyhEQVJXSU4pCiAjZGVmaW5lIFdURl9QUklWQVRFX0lOTElORSBfX3ByaXZhdGVf
ZXh0ZXJuX18gaW5saW5lIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKQpAQCAtNDUwLDQx
ICszNDgsNiBAQCB1c2luZyBXVEY6OmZhc3RDb21wYWN0QWxpZ25lZE1hbGxvYzsKICAgICB9IFwK
ICAgICB1c2luZyB3ZWJraXRGYXN0TWFsbG9jZWQgPSBpbnQ7IFwKIAotI2RlZmluZSBXVEZfTUFL
RV9GQVNUX0NPTVBBQ1RfQUxMT0NBVEVEX0lNUEwgXAotICAgIFdURl9BTExPV19DT01QQUNUX1BP
SU5URVJTX0lNUEw7IFwKLSAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90LCB2b2lkKiBwKSB7
IHJldHVybiBwOyB9IFwKLSAgICB2b2lkKiBvcGVyYXRvciBuZXdbXShzaXplX3QsIHZvaWQqIHAp
IHsgcmV0dXJuIHA7IH0gXAotICAgIFwKLSAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90IHNp
emUpIFwKLSAgICB7IFwKLSAgICAgICAgcmV0dXJuIDo6V1RGOjpmYXN0Q29tcGFjdE1hbGxvYyhz
aXplKTsgXAotICAgIH0gXAotICAgIFwKLSAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiBw
KSBcCi0gICAgeyBcCi0gICAgICAgIDo6V1RGOjpmYXN0RnJlZShwKTsgXAotICAgIH0gXAotICAg
IFwKLSAgICB2b2lkKiBvcGVyYXRvciBuZXdbXShzaXplX3Qgc2l6ZSkgXAotICAgIHsgXAotICAg
ICAgICByZXR1cm4gOjpXVEY6OmZhc3RDb21wYWN0TWFsbG9jKHNpemUpOyBcCi0gICAgfSBcCi0g
ICAgXAotICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlW10odm9pZCogcCkgXAotICAgIHsgXAotICAg
ICAgICA6OldURjo6ZmFzdEZyZWUocCk7IFwKLSAgICB9IFwKLSAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90LCBOb3ROdWxsVGFnLCB2b2lkKiBsb2NhdGlvbikgXAotICAgIHsgXAotICAgICAg
ICBBU1NFUlQobG9jYXRpb24pOyBcCi0gICAgICAgIHJldHVybiBsb2NhdGlvbjsgXAotICAgIH0g
XAotICAgIHN0YXRpYyB2b2lkIGZyZWVBZnRlckRlc3RydWN0aW9uKHZvaWQqIHApIFwKLSAgICB7
IFwKLSAgICAgICAgOjpXVEY6OmZhc3RGcmVlKHApOyBcCi0gICAgfSBcCi0gICAgdXNpbmcgd2Vi
a2l0RmFzdE1hbGxvY2VkID0gaW50OyBcCi0KIC8vIEZJWE1FOiBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRCBzaG91bGQgdGFrZSBjbGFzcyBuYW1lIHNvIHRoYXQgd2UgY2FuIGNyZWF0ZSBtYWxsb2Nf
em9uZSBwZXIgdGhpcyBtYWNyby4KIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDU3MDIKICNkZWZpbmUgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQgXApAQCAtNDk3
LDE2ICszNjAsNiBAQCB1c2luZyBfX3RoaXNJc0hlcmVUb0ZvcmNlQVNlbWljb2xvbkFmdGVyVGhp
c01hY3JvIFVOVVNFRF9UWVBFX0FMSUFTID0gaW50CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RURfSU1QTCBcCiB1c2luZyBfX3RoaXNJc0hlcmVUb0ZvcmNlQVNlbWljb2xvbkFmdGVyVGhpc01h
Y3JvIFVOVVNFRF9UWVBFX0FMSUFTID0gaW50CiAKLSNkZWZpbmUgV1RGX01BS0VfRkFTVF9DT01Q
QUNUX0FMTE9DQVRFRCBcCi1wdWJsaWM6IFwKLSAgICBXVEZfTUFLRV9GQVNUX0NPTVBBQ1RfQUxM
T0NBVEVEX0lNUEwgXAotcHJpdmF0ZTogXAotdXNpbmcgX190aGlzSXNIZXJlVG9Gb3JjZUFTZW1p
Y29sb25BZnRlclRoaXNNYWNybyBVTlVTRURfVFlQRV9BTElBUyA9IGludAotCi0jZGVmaW5lIFdU
Rl9NQUtFX1NUUlVDVF9GQVNUX0NPTVBBQ1RfQUxMT0NBVEVEIFwKLSAgICBXVEZfTUFLRV9GQVNU
X0NPTVBBQ1RfQUxMT0NBVEVEX0lNUEwgXAotdXNpbmcgX190aGlzSXNIZXJlVG9Gb3JjZUFTZW1p
Y29sb25BZnRlclRoaXNNYWNybyBVTlVTRURfVFlQRV9BTElBUyA9IGludAotCiAjaWYgRU5BQkxF
KE1BTExPQ19IRUFQX0JSRUFLRE9XTikKIAogI2RlZmluZSBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RF9XSVRIX0hFQVBfSURFTlRJRklFUl9JTVBMKGNsYXNzbmFtZSkgXApAQCAtNTU3LDEyICs0MTAs
MTIgQEAgdXNpbmcgX190aGlzSXNIZXJlVG9Gb3JjZUFTZW1pY29sb25BZnRlclRoaXNNYWNybyBV
TlVTRURfVFlQRV9BTElBUyA9IGludAogCiAjZWxzZQogCi0jZGVmaW5lIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSX0lNUEwoY2xhc3NOYW1lKSBcCisjZGVmaW5l
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSX0lNUEwoY2xhc3Nu
YW1lKSBcCiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURURfSU1QTAogCi0jZGVmaW5lIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKGNsYXNzTmFtZSkgXAorI2Rl
ZmluZSBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihjbGFzc25h
bWUpIFwKIHB1YmxpYzogXAotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9J
REVOVElGSUVSX0lNUEwoY2xhc3NOYW1lKSBcCisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURURf
V0lUSF9IRUFQX0lERU5USUZJRVJfSU1QTChjbGFzc25hbWUpIFwKIHByaXZhdGU6IFwKIHVzaW5n
IF9fdGhpc0lzSGVyZVRvRm9yY2VBU2VtaWNvbG9uQWZ0ZXJUaGlzTWFjcm8gVU5VU0VEX1RZUEVf
QUxJQVMgPSBpbnQKIApAQCAtNTcxLDE4ICs0MjQsNCBAQCBwdWJsaWM6IFwKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUl9JTVBMKGNsYXNzTmFtZSkgXAog
dXNpbmcgX190aGlzSXNIZXJlVG9Gb3JjZUFTZW1pY29sb25BZnRlclRoaXNNYWNybyBVTlVTRURf
VFlQRV9BTElBUyA9IGludAogCi0jZGVmaW5lIFdURl9NQUtFX0ZBU1RfQ09NUEFDVF9BTExPQ0FU
RURfV0lUSF9IRUFQX0lERU5USUZJRVJfSU1QTChjbGFzc05hbWUpIFwKLSAgICBXVEZfTUFLRV9G
QVNUX0NPTVBBQ1RfQUxMT0NBVEVEX0lNUEwKLQotI2RlZmluZSBXVEZfTUFLRV9GQVNUX0NPTVBB
Q1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKGNsYXNzTmFtZSkgXAotcHVibGljOiBc
Ci0gICAgV1RGX01BS0VfRkFTVF9DT01QQUNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklF
Ul9JTVBMKGNsYXNzTmFtZSkgXAotcHJpdmF0ZTogXAotdXNpbmcgX190aGlzSXNIZXJlVG9Gb3Jj
ZUFTZW1pY29sb25BZnRlclRoaXNNYWNybyBVTlVTRURfVFlQRV9BTElBUyA9IGludAotCi0jZGVm
aW5lIFdURl9NQUtFX1NUUlVDVF9GQVNUX0NPTVBBQ1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9JREVO
VElGSUVSKGNsYXNzTmFtZSkgXAotcHVibGljOiBcCi0gICAgV1RGX01BS0VfRkFTVF9DT01QQUNU
X0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUl9JTVBMKGNsYXNzTmFtZSkgXAotdXNpbmcg
X190aGlzSXNIZXJlVG9Gb3JjZUFTZW1pY29sb25BZnRlclRoaXNNYWNybyBVTlVTRURfVFlQRV9B
TElBUyA9IGludAotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0lzb01hbGxv
Yy5oIGIvU291cmNlL1dURi93dGYvSXNvTWFsbG9jLmgKaW5kZXggMDYzN2QzYjAzOTg5Li5mZjFk
MzNjZGQyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0lzb01hbGxvYy5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0lzb01hbGxvYy5oCkBAIC0yNSwxNiArMjUsMTUgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3JiaWRI
ZWFwQWxsb2NhdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogCiAjaWYgVVNFKFNZ
U1RFTV9NQUxMT0MpIHx8ICFVU0UoSVNPX01BTExPQykKIAorI2luY2x1ZGUgPHd0Zi9GYXN0TWFs
bG9jLmg+CisKICNkZWZpbmUgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChuYW1lKSBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRAogI2RlZmluZSBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0VYUE9SVChuYW1l
LCBleHBvcnRNYWNybykgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQKLSNkZWZpbmUgV1RGX01BS0Vf
Q09NUEFDVF9JU09fQUxMT0NBVEVEKG5hbWUpIFdURl9NQUtFX0ZBU1RfQ09NUEFDVF9BTExPQ0FU
RUQKLSNkZWZpbmUgV1RGX01BS0VfQ09NUEFDVF9JU09fQUxMT0NBVEVEX0VYUE9SVChuYW1lLCBl
eHBvcnRNYWNybykgV1RGX01BS0VfRkFTVF9DT01QQUNUX0FMTE9DQVRFRAogI2RlZmluZSBXVEZf
TUFLRV9JU09fTk9OQUxMT0NBVEFCTEUobmFtZSkgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT04K
IAogI2Vsc2UKQEAgLTQzLDE0ICs0Miw4IEBACiAKICNkZWZpbmUgV1RGX05PRVhQT1JUCiAKLSNk
ZWZpbmUgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChuYW1lKSBNQUtFX0JJU09fTUFMTE9DRUQobmFt
ZSwgSXNvSGVhcCwgV1RGX05PRVhQT1JUKQotI2RlZmluZSBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0VYUE9SVChuYW1lLCBleHBvcnRNYWNybykgTUFLRV9CSVNPX01BTExPQ0VEKG5hbWUsIElzb0hl
YXAsIGV4cG9ydE1hY3JvKQotI2RlZmluZSBXVEZfTUFLRV9DT01QQUNUX0lTT19BTExPQ0FURUQo
bmFtZSkgXAotICAgIFdURl9BTExPV19DT01QQUNUX1BPSU5URVJTOyBcCi0gICAgTUFLRV9CSVNP
X01BTExPQ0VEKG5hbWUsIENvbXBhY3RJc29IZWFwLCBXVEZfTk9FWFBPUlQpCi0jZGVmaW5lIFdU
Rl9NQUtFX0NPTVBBQ1RfSVNPX0FMTE9DQVRFRF9FWFBPUlQobmFtZSwgZXhwb3J0TWFjcm8pIFwK
LSAgICBXVEZfQUxMT1dfQ09NUEFDVF9QT0lOVEVSUzsgXAotICAgIE1BS0VfQklTT19NQUxMT0NF
RChuYW1lLCBDb21wYWN0SXNvSGVhcCwgZXhwb3J0TWFjcm8pCisjZGVmaW5lIFdURl9NQUtFX0lT
T19BTExPQ0FURUQobmFtZSkgTUFLRV9CSVNPX01BTExPQ0VEKG5hbWUsIFdURl9OT0VYUE9SVCkK
KyNkZWZpbmUgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9FWFBPUlQobmFtZSwgZXhwb3J0TWFjcm8p
IE1BS0VfQklTT19NQUxMT0NFRChuYW1lLCBleHBvcnRNYWNybykKICNkZWZpbmUgV1RGX01BS0Vf
SVNPX05PTkFMTE9DQVRBQkxFKG5hbWUpIFdURl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSXNvTWFsbG9jSW5saW5lcy5oIGIvU291
cmNlL1dURi93dGYvSXNvTWFsbG9jSW5saW5lcy5oCmluZGV4IDViNDUxYTI4NDE3Mi4uZmRjNjE1
ZDVjMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Jc29NYWxsb2NJbmxpbmVzLmgKKysr
IGIvU291cmNlL1dURi93dGYvSXNvTWFsbG9jSW5saW5lcy5oCkBAIC0yNSwyOCArMjUsMjMgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUg
PHd0Zi9QbGF0Zm9ybS5oPgogCiAjaWYgVVNFKFNZU1RFTV9NQUxMT0MpIHx8ICFVU0UoSVNPX01B
TExPQykKIAorI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisKICNkZWZpbmUgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTkxJTkUobmFtZSkgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQKICNkZWZp
bmUgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKG5hbWUpIHN0cnVjdCBXVEZJc29NYWxsb2NT
ZW1pY29sb25pZmllciMjbmFtZSB7IH0KICNkZWZpbmUgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMX1RFTVBMQVRFKG5hbWUpIHN0cnVjdCBXVEZJc29NYWxsb2NTZW1pY29sb25pZmllciMjbmFt
ZSB7IH0KLSNkZWZpbmUgV1RGX01BS0VfQ09NUEFDVF9JU09fQUxMT0NBVEVEX0lOTElORShuYW1l
KSBXVEZfTUFLRV9GQVNUX0NPTVBBQ1RfQUxMT0NBVEVECi0jZGVmaW5lIFdURl9NQUtFX0NPTVBB
Q1RfSVNPX0FMTE9DQVRFRF9JTVBMKG5hbWUpIHN0cnVjdCBXVEZJc29NYWxsb2NTZW1pY29sb25p
ZmllciMjbmFtZSB7IH0KLSNkZWZpbmUgV1RGX01BS0VfQ09NUEFDVF9JU09fQUxMT0NBVEVEX0lN
UExfVEVNUExBVEUobmFtZSkgc3RydWN0IFdURklzb01hbGxvY1NlbWljb2xvbmlmaWVyIyNuYW1l
IHsgfQogCiAjZWxzZQogCiAjaW5jbHVkZSA8Ym1hbGxvYy9Jc29IZWFwSW5saW5lcy5oPgogCi0j
ZGVmaW5lIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU5MSU5FKG5hbWUpIE1BS0VfQklTT19NQUxM
T0NFRF9JTkxJTkUobmFtZSwgSXNvSGVhcCkKLSNkZWZpbmUgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKG5hbWUpIE1BS0VfQklTT19NQUxMT0NFRF9JTVBMKG5hbWUsIElzb0hlYXApCi0jZGVm
aW5lIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTF9URU1QTEFURShuYW1lKSBNQUtFX0JJU09f
TUFMTE9DRURfSU1QTF9URU1QTEFURShuYW1lLCBJc29IZWFwKQotI2RlZmluZSBXVEZfTUFLRV9D
T01QQUNUX0lTT19BTExPQ0FURURfSU5MSU5FKG5hbWUpIE1BS0VfQklTT19NQUxMT0NFRF9JTkxJ
TkUobmFtZSwgQ29tcGFjdElzb0hlYXApCi0jZGVmaW5lIFdURl9NQUtFX0NPTVBBQ1RfSVNPX0FM
TE9DQVRFRF9JTVBMKG5hbWUpIE1BS0VfQklTT19NQUxMT0NFRF9JTVBMKG5hbWUsIENvbXBhY3RJ
c29IZWFwKQotI2RlZmluZSBXVEZfTUFLRV9DT01QQUNUX0lTT19BTExPQ0FURURfSU1QTF9URU1Q
TEFURShuYW1lKSBNQUtFX0JJU09fTUFMTE9DRURfSU1QTF9URU1QTEFURShuYW1lLCBJc29IZWFw
KQorI2RlZmluZSBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lOTElORShuYW1lKSBNQUtFX0JJU09f
TUFMTE9DRURfSU5MSU5FKG5hbWUpCisjZGVmaW5lIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChuYW1lKSBNQUtFX0JJU09fTUFMTE9DRURfSU1QTChuYW1lKQorI2RlZmluZSBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUExfVEVNUExBVEUobmFtZSkgTUFLRV9CSVNPX01BTExPQ0VEX0lNUExf
VEVNUExBVEUobmFtZSkKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01l
dGFBbGxvY2F0b3JIYW5kbGUuaCBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3JIYW5kbGUu
aAppbmRleCA5ZDkyMTBiNTIyOGIuLjg5MDIwY2FjNjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvTWV0YUFsbG9jYXRvckhhbmRsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01ldGFBbGxv
Y2F0b3JIYW5kbGUuaApAQCAtMzgsOSArMzgsOSBAQCBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1l
dGFBbGxvY2F0b3I7CiBjbGFzcyBQcmludFN0cmVhbTsKIAotREVDTEFSRV9DT01QQUNUX0FMTE9D
QVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihNZXRhQWxsb2NhdG9ySGFuZGxlKTsKK0RFQ0xBUkVf
QUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKE1ldGFBbGxvY2F0b3JIYW5kbGUpOwogY2xh
c3MgTWV0YUFsbG9jYXRvckhhbmRsZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNZXRh
QWxsb2NhdG9ySGFuZGxlPiwgcHVibGljIFJlZEJsYWNrVHJlZTxNZXRhQWxsb2NhdG9ySGFuZGxl
LCB2b2lkKj46Ok5vZGUgewotICAgIFdURl9NQUtFX0ZBU1RfQ09NUEFDVF9BTExPQ0FURURfV0lU
SF9IRUFQX0lERU5USUZJRVIoTWV0YUFsbG9jYXRvckhhbmRsZSk7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURURfV0lUSF9IRUFQX0lERU5USUZJRVIoTWV0YUFsbG9jYXRvckhhbmRsZSk7CiAK
IHB1YmxpYzoKICAgICB1c2luZyBNZW1vcnlQdHIgPSBDb2RlUHRyPEhhbmRsZU1lbW9yeVB0clRh
Zz47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYWNrZWQuaCBiL1NvdXJjZS9XVEYvd3Rm
L1BhY2tlZC5oCmluZGV4IDEyMDBkYzBjY2UzMS4uZjY4OGI2N2I2MzUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9QYWNrZWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYWNrZWQuaApAQCAt
MTEwLDcgKzExMCw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBwYXNzZWRBbGlnbm1l
bnQ+CiBjbGFzcyBQYWNrZWRBbGlnbmVkUHRyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBzdGF0aWNfYXNzZXJ0KDo6YWxsb3dDb21wYWN0UG9pbnRlcnM8VCo+
KCkpOwogICAgIHN0YXRpY19hc3NlcnQoaGFzT25lQml0U2V0KHBhc3NlZEFsaWdubWVudCksICJB
bGlnbm1lbnQgbmVlZHMgdG8gYmUgcG93ZXItb2YtdHdvIik7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBzaXplX3QgYWxpZ25tZW50ID0gcGFzc2VkQWxpZ25tZW50OwogICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBpc1BhY2tlZFR5cGUgPSB0cnVlOwpAQCAtMjQyLDcgKzI0MSw2IEBAIHByaXZhdGU6
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogY2xhc3MgUGFja2VkPFQqPiA6IHB1YmxpYyBQYWNrZWRB
bGlnbmVkUHRyPFQsIDE+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWNfYXNzZXJ0KDo6YWxsb3dDb21w
YWN0UG9pbnRlcnM8VCo+KCkpOwogICAgIHVzaW5nIEJhc2UgPSBQYWNrZWRBbGlnbmVkUHRyPFQs
IDE+OwogICAgIHVzaW5nIEJhc2U6OkJhc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1NlbnRpbmVsTGlua2VkTGlzdC5oIGIvU291cmNlL1dURi93dGYvU2VudGluZWxMaW5rZWRMaXN0
LmgKaW5kZXggYTQ5Y2MxMDY4NjQ1Li5hY2EwNWNmY2FlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1NlbnRpbmVsTGlua2VkTGlzdC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1NlbnRpbmVs
TGlua2VkTGlzdC5oCkBAIC00Nyw3ICs0Nyw3IEBAIGVudW0gU2VudGluZWxUYWcgeyBTZW50aW5l
bCB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQYXNzZWRQdHJUcmFpdHMgPSBS
YXdQdHJUcmFpdHM8VD4+CiBjbGFzcyBCYXNpY1Jhd1NlbnRpbmVsTm9kZSB7Ci0gICAgV1RGX01B
S0VfRkFTVF9DT01QQUNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICB1c2luZyBQdHJUcmFpdHMgPSB0eXBlbmFtZSBQYXNzZWRQdHJUcmFpdHM6
OnRlbXBsYXRlIFJlYmluZFRyYWl0czxCYXNpY1Jhd1NlbnRpbmVsTm9kZT47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaApp
bmRleCBkNGM3M2UzNzhhYTEuLjhiNzU3OGUzMmFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvV2Vha1B0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaApAQCAtNDIsMTIgKzQy
LDEyIEBAIHRlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSwgdHlwZW5hbWUgPSBEZWZhdWx0V2Vh
a1B0ckltcGw+IGNsYXNzIFdlYWtIYXNoTWFwOwogdGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1l
ID0gRGVmYXVsdFdlYWtQdHJJbXBsLCBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9
IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXM+IGNsYXNzIFdlYWtIYXNoU2V0
OwogdGVtcGxhdGUgPHR5cGVuYW1lLCB0eXBlbmFtZSA9IERlZmF1bHRXZWFrUHRySW1wbCwgRW5h
YmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgPSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNz
ZXJ0aW9uczo6WWVzPiBjbGFzcyBXZWFrTGlzdEhhc2hTZXQ7CiAKLURFQ0xBUkVfQ09NUEFDVF9B
TExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoV2Vha1B0ckltcGxCYXNlKTsKK0RFQ0xBUkVf
QUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFdlYWtQdHJJbXBsQmFzZSk7CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIERlcml2ZWQ+CiBjbGFzcyBXZWFrUHRySW1wbEJhc2UgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8RGVyaXZlZD4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdl
YWtQdHJJbXBsQmFzZSk7Ci0gICAgV1RGX01BS0VfRkFTVF9DT01QQUNUX0FMTE9DQVRFRF9XSVRI
X0hFQVBfSURFTlRJRklFUihXZWFrUHRySW1wbEJhc2UpOworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKFdlYWtQdHJJbXBsQmFzZSk7CiBwdWJsaWM6CiAg
ICAgfldlYWtQdHJJbXBsQmFzZSgpID0gZGVmYXVsdDsKIApAQCAtODIsNyArODIsNyBAQCBwcml2
YXRlOgogdGVtcGxhdGU8dHlwZW5hbWUgRGVyaXZlZD4KIGNsYXNzIFdlYWtQdHJJbXBsQmFzZVNp
bmdsZVRocmVhZCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2Vha1B0ckltcGxCYXNlU2lu
Z2xlVGhyZWFkKTsKLSAgICBXVEZfTUFLRV9GQVNUX0NPTVBBQ1RfQUxMT0NBVEVEX1dJVEhfSEVB
UF9JREVOVElGSUVSKFdlYWtQdHJJbXBsQmFzZVNpbmdsZVRocmVhZCk7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURURfV0lUSF9IRUFQX0lERU5USUZJRVIoV2Vha1B0ckltcGxCYXNlU2luZ2xl
VGhyZWFkKTsKIHB1YmxpYzoKICAgICB+V2Vha1B0ckltcGxCYXNlU2luZ2xlVGhyZWFkKCkgPSBk
ZWZhdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IDQyMWU1MTE5MzAwOC4uOTI1
ZDY5Y2IwZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApAQCAtMTczLDEwICsxNzMsMTAg
QEAgcHJvdGVjdGVkOgogLy8gT3Igd2UgY291bGQgc2F5IHRoYXQgImNvbnN0IiBkb2Vzbid0IG1h
a2Ugc2Vuc2UgYXQgYWxsIGFuZCB1c2UgIlN0cmluZ0ltcGwmIiBhbmQgIlN0cmluZ0ltcGwqIiBl
dmVyeXdoZXJlLgogLy8gUmlnaHQgbm93IHdlIHVzZSBhIG1peCBvZiBib3RoLCB3aGljaCBtYWtl
cyBjb2RlIG1vcmUgY29uZnVzaW5nIGFuZCBoYXMgbm8gYmVuZWZpdC4KIAotREVDTEFSRV9DT01Q
QUNUX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihTdHJpbmdJbXBsKTsKK0RFQ0xBUkVf
QUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFN0cmluZ0ltcGwpOwogY2xhc3MgU3RyaW5n
SW1wbCA6IHByaXZhdGUgU3RyaW5nSW1wbFNoYXBlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShTdHJpbmdJbXBsKTsKLSAgICBXVEZfTUFLRV9GQVNUX0NPTVBBQ1RfQUxMT0NBVEVEX1dJVEhf
SEVBUF9JREVOVElGSUVSKFN0cmluZ0ltcGwpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
X1dJVEhfSEVBUF9JREVOVElGSUVSKFN0cmluZ0ltcGwpOwogCiAgICAgZnJpZW5kIGNsYXNzIEF0
b21TdHJpbmdJbXBsOwogICAgIGZyaWVuZCBjbGFzcyBKU0M6OkxMSW50OjpEYXRhOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvV1RGU3RyaW5nLmgKaW5kZXggMmZkMDdkMGVkZTIwLi45ODkwZGI3M2NiOTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9XVEZTdHJpbmcuaApAQCAtNTEsNyArNTEsNyBAQCB0ZW1wbGF0ZTxib29sIGlzU3BlY2lh
bENoYXJhY3RlcihVQ2hhciksIHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGJvb2wgY29udGFpbnNP
bgogZW51bSBjbGFzcyBUcmFpbGluZ1plcm9zUG9saWN5IDogYm9vbCB7IEtlZXAsIFRydW5jYXRl
IH07CiAKIGNsYXNzIFN0cmluZyBmaW5hbCB7Ci0gICAgV1RGX01BS0VfRkFTVF9DT01QQUNUX0FM
TE9DQVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICAvLyBD
b25zdHJ1Y3QgYSBudWxsIHN0cmluZywgZGlzdGluZ3Vpc2hhYmxlIGZyb20gYW4gZW1wdHkgc3Ry
aW5nLgogICAgIFN0cmluZygpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggZGVm
MWFhOGQ3ZTc3Li4yMzFhOTVkMjQzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC01NSwxMCAr
NTUsMTAgQEAgc3RydWN0IENvbXB1dGVkU3R5bGVEZXBlbmRlbmNpZXMgewogICAgIGJvb2wgaXND
b21wdXRhdGlvbmFsbHlJbmRlcGVuZGVudCgpIGNvbnN0IHsgcmV0dXJuIHByb3BlcnRpZXMuaXNF
bXB0eSgpICYmIHJvb3RQcm9wZXJ0aWVzLmlzRW1wdHkoKSAmJiAhY29udGFpbmVyRGltZW5zaW9u
czsgfQogfTsKIAotREVDTEFSRV9DT01QQUNUX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklF
UihDU1NWYWx1ZSk7CitERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihDU1NW
YWx1ZSk7CiBjbGFzcyBDU1NWYWx1ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ1NTVmFs
dWUpOwotICAgIFdURl9NQUtFX0ZBU1RfQ09NUEFDVF9BTExPQ0FURURfV0lUSF9IRUFQX0lERU5U
SUZJRVIoQ1NTVmFsdWUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9J
REVOVElGSUVSKENTU1ZhbHVlKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIHJlZkNvdW50RmxhZ0lzU3RhdGljID0gMHgxOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgcmVmQ291bnRJbmNyZW1lbnQgPSAweDI7IC8vIFRoaXMgYWxsb3dzIHVzIHRvIHJlZiAv
IGRlcmVmIHdpdGhvdXQgZGlzdHVyYmluZyB0aGUgc3RhdGljIENTU1ZhbHVlIGZsYWcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaAppbmRleCAzY2JjNWRiNDIyYWEuLjE2NGI0ZDRmMWY5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC03
MywxMyArNzMsNiBAQCBjbGFzcyBTaGFkb3dSb290OwogY2xhc3MgVG91Y2hFdmVudDsKIGNsYXNz
IFdlYkNvcmVPcGFxdWVSb290OwogCi19Ci0KLVdURl9BTExPV19DT01QQUNUX1BPSU5URVJTX1RP
X0lOQ09NUExFVEVfVFlQRShXZWJDb3JlOjpSZW5kZXJPYmplY3QpOwotV1RGX0FMTE9XX0NPTVBB
Q1RfUE9JTlRFUlNfVE9fSU5DT01QTEVURV9UWVBFKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YSk7Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQogZW51bSBjbGFzcyBNdXRhdGlvbk9ic2VydmVyT3B0aW9u
VHlwZSA6IHVpbnQ4X3Q7CiB1c2luZyBNdXRhdGlvbk9ic2VydmVyT3B0aW9ucyA9IE9wdGlvblNl
dDxNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZT47CiB1c2luZyBNdXRhdGlvblJlY29yZERlbGl2
ZXJ5T3B0aW9ucyA9IE9wdGlvblNldDxNdXRhdGlvbk9ic2VydmVyT3B0aW9uVHlwZT47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJhcmVEYXRhLmgKaW5kZXggM2VlM2RhOTY0NTAwLi5mMjg4NGUyYWZjMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKQEAgLTIyMSwxMCArMjIxLDEwIEBAIHB1YmxpYzoK
ICAgICBOb2RlTXV0YXRpb25PYnNlcnZlckRhdGEoKSB7IH0KIH07CiAKLURFQ0xBUkVfQ09NUEFD
VF9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoTm9kZVJhcmVEYXRhKTsKK0RFQ0xBUkVf
QUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKE5vZGVSYXJlRGF0YSk7CiBjbGFzcyBOb2Rl
UmFyZURhdGEgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE5vZGVSYXJlRGF0YSk7Ci0gICAg
V1RGX01BS0VfU1RSVUNUX0ZBU1RfQ09NUEFDVF9BTExPQ0FURURfV0lUSF9IRUFQX0lERU5USUZJ
RVIoTm9kZVJhcmVEYXRhKTsKKyAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURURfV0lU
SF9IRUFQX0lERU5USUZJRVIoTm9kZVJhcmVEYXRhKTsKIHB1YmxpYzoKICNpZiBkZWZpbmVkKERV
TVBfTk9ERV9TVEFUSVNUSUNTKSAmJiBEVU1QX05PREVfU1RBVElTVElDUwogICAgIGVudW0gY2xh
c3MgVXNlVHlwZSA6IHVpbnQzMl90IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAKaW5kZXggMWMxNTY2ZmIxOGIxLi4zMjBjMzA1OTg2MGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC05Myw3ICs5Myw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotV1RGX01BS0VfQ09N
UEFDVF9JU09fQUxMT0NBVEVEX0lNUEwoUmVuZGVyT2JqZWN0KTsKK1dURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChSZW5kZXJPYmplY3QpOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IGJiZGIwM2FhNzJkZS4uOGFhYjk2
MjM4YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0xMDEs
NyArMTAxLDcgQEAgZW51bSBjbGFzcyBSZXF1aXJlc0Z1bGxSZXBhaW50IDogYm9vbCB7IE5vLCBZ
ZXMgfTsKIAogLy8gQmFzZSBjbGFzcyBmb3IgYWxsIHJlbmRlcmluZyB0cmVlIG9iamVjdHMuCiBj
bGFzcyBSZW5kZXJPYmplY3QgOiBwdWJsaWMgQ2FjaGVkSW1hZ2VDbGllbnQsIHB1YmxpYyBDYW5N
YWtlQ2hlY2tlZFB0ciB7Ci0gICAgV1RGX01BS0VfQ09NUEFDVF9JU09fQUxMT0NBVEVEKFJlbmRl
ck9iamVjdCk7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChSZW5kZXJPYmplY3QpOwogICAg
IGZyaWVuZCBjbGFzcyBSZW5kZXJCbG9jazsKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyQmxvY2tG
bG93OwogICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJCb3g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0FsbG9jYXRpb25Db3VudHMuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2Mv
QWxsb2NhdGlvbkNvdW50cy5oCmluZGV4IDMxNGJkMTMxMjA4NC4uMjAwOTFiOGUwNDAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0FsbG9jYXRpb25Db3VudHMuaAorKysgYi9T
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL0FsbG9jYXRpb25Db3VudHMuaApAQCAtMzEsOCArMzEsNyBA
QAogI2RlZmluZSBCRk9SX0VBQ0hfQUxMT0NBVElPTl9LSU5EKG1hY3JvKSBcCiAgICAgbWFjcm8o
SlNfQ0VMTCkgICAgICAvKiBBbGxvY2F0aW9uIG9mIGFueSBKU0NlbGwgKi8gXAogICAgIG1hY3Jv
KE5PTl9KU19DRUxMKSAgLyogQWxsb2NhdGlvbiBvZiBhbnkgbm9uLUpTQ2VsbCAqLyBcCi0gICAg
bWFjcm8oR0lHQUNBR0UpICAgICAvKiBBbGxvY2F0aW9uIHdpdGhpbiBhIGdpZ2FjYWdlLCB0YWtl
cyBoZWFwIGtpbmQgYXMgZmlyc3QgcGFyYW1ldGVyICovIFwKLSAgICBtYWNybyhDT01QQUNUSUJM
RSkgIC8qIFBvaW50ZXJzIHRvIHRoaXMgYWxsb2NhdGlvbiBhcmUgYWxsb3dlZCB0byBiZSBzdG9y
ZWQgY29tcGFjdC4gKi8KKyAgICBtYWNybyhHSUdBQ0FHRSkgICAgIC8qIEFsbG9jYXRpb24gd2l0
aGluIGEgZ2lnYWNhZ2UsIHRha2VzIGhlYXAga2luZCBhcyBmaXJzdCBwYXJhbWV0ZXIgKi8KIAog
I2RlZmluZSBCUFJPRklMRV9BTExPQ0FUSU9OKGtpbmQsIC4uLikgXAogICAgIEJQUk9GSUxFX0FM
TE9DQVRJT05fICMjIGtpbmQoX19WQV9BUkdTX18pCkBAIC02MiwxMyArNjEsNiBAQAogI2RlZmlu
ZSBCUFJPRklMRV9BTExPQ0FUSU9OX0pTX0NFTEwocHRyLCBzaXplKSBkbyB7IH0gd2hpbGUgKGZh
bHNlKQogI2VuZGlmCiAKLSNpZmRlZiBCUFJPRklMRV9UUllfQUxMT0NBVElPTl9KU19DRUxMCi0j
ZGVmaW5lIEJFTkFCTEVfUFJPRklMRV9KU19DRUxMX1RSWV9BTExPQ0FUSU9OIDEKLSNlbHNlCi0j
ZGVmaW5lIEJFTkFCTEVfUFJPRklMRV9KU19DRUxMX1RSWV9BTExPQ0FUSU9OIDAKLSNkZWZpbmUg
QlBST0ZJTEVfVFJZX0FMTE9DQVRJT05fSlNfQ0VMTChwdHIsIHNpemUpIGRvIHsgfSB3aGlsZSAo
ZmFsc2UpCi0jZW5kaWYKLQogI2lmZGVmIEJQUk9GSUxFX0FMTE9DQVRJT05fTk9OX0pTX0NFTEwK
ICNkZWZpbmUgQkVOQUJMRV9QUk9GSUxFX05PTl9KU19DRUxMX0FMTE9DQVRJT04gMQogI2Vsc2UK
QEAgLTc2LDEzICs2OCw2IEBACiAjZGVmaW5lIEJQUk9GSUxFX0FMTE9DQVRJT05fTk9OX0pTX0NF
TEwocHRyLCBzaXplKSBkbyB7IH0gd2hpbGUgKGZhbHNlKQogI2VuZGlmCiAKLSNpZmRlZiBCUFJP
RklMRV9UUllfQUxMT0NBVElPTl9OT05fSlNfQ0VMTAotI2RlZmluZSBCRU5BQkxFX1BST0ZJTEVf
Tk9OX0pTX0NFTExfVFJZX0FMTE9DQVRJT04gMQotI2Vsc2UKLSNkZWZpbmUgQkVOQUJMRV9QUk9G
SUxFX05PTl9KU19DRUxMX1RSWV9BTExPQ0FUSU9OIDAKLSNkZWZpbmUgQlBST0ZJTEVfVFJZX0FM
TE9DQVRJT05fTk9OX0pTX0NFTEwocHRyLCBzaXplKSBkbyB7IH0gd2hpbGUgKGZhbHNlKQotI2Vu
ZGlmCi0KICNpZmRlZiBCUFJPRklMRV9BTExPQ0FUSU9OX0dJR0FDQUdFCiAjZGVmaW5lIEJFTkFC
TEVfUFJPRklMRV9HSUdBQ0FHRV9BTExPQ0FUSU9OIDEKICNlbHNlCkBAIC05MCwyMyArNzUsMjMg
QEAKICNkZWZpbmUgQlBST0ZJTEVfQUxMT0NBVElPTl9HSUdBQ0FHRShraW5kLCBwdHIsIHNpemUp
IGRvIHsgfSB3aGlsZSAoZmFsc2UpCiAjZW5kaWYKIAotI2lmZGVmIEJQUk9GSUxFX1RSWV9BTExP
Q0FUSU9OX0dJR0FDQUdFCi0jZGVmaW5lIEJFTkFCTEVfUFJPRklMRV9HSUdBQ0FHRV9UUllfQUxM
T0NBVElPTiAxCisjaWZkZWYgQlBST0ZJTEVfVFJZX0FMTE9DQVRJT05fSlNfQ0VMTAorI2RlZmlu
ZSBCRU5BQkxFX1BST0ZJTEVfSlNfQ0VMTF9UUllfQUxMT0NBVElPTiAxCiAjZWxzZQotI2RlZmlu
ZSBCRU5BQkxFX1BST0ZJTEVfR0lHQUNBR0VfVFJZX0FMTE9DQVRJT04gMAotI2RlZmluZSBCUFJP
RklMRV9UUllfQUxMT0NBVElPTl9HSUdBQ0FHRShraW5kLCBwdHIsIHNpemUpIGRvIHsgfSB3aGls
ZSAoZmFsc2UpCisjZGVmaW5lIEJFTkFCTEVfUFJPRklMRV9KU19DRUxMX1RSWV9BTExPQ0FUSU9O
IDAKKyNkZWZpbmUgQlBST0ZJTEVfVFJZX0FMTE9DQVRJT05fSlNfQ0VMTChwdHIsIHNpemUpIGRv
IHsgfSB3aGlsZSAoZmFsc2UpCiAjZW5kaWYKIAotI2lmZGVmIEJQUk9GSUxFX0FMTE9DQVRJT05f
Q09NUEFDVElCTEUKLSNkZWZpbmUgQkVOQUJMRV9QUk9GSUxFX0NPTVBBQ1RJQkxFX0FMTE9DQVRJ
T04gMQorI2lmZGVmIEJQUk9GSUxFX1RSWV9BTExPQ0FUSU9OX05PTl9KU19DRUxMCisjZGVmaW5l
IEJFTkFCTEVfUFJPRklMRV9OT05fSlNfQ0VMTF9UUllfQUxMT0NBVElPTiAxCiAjZWxzZQotI2Rl
ZmluZSBCRU5BQkxFX1BST0ZJTEVfQ09NUEFDVElCTEVfQUxMT0NBVElPTiAwCi0jZGVmaW5lIEJQ
Uk9GSUxFX0FMTE9DQVRJT05fQ09NUEFDVElCTEUocHRyLCBzaXplKSBkbyB7IH0gd2hpbGUgKGZh
bHNlKQorI2RlZmluZSBCRU5BQkxFX1BST0ZJTEVfTk9OX0pTX0NFTExfVFJZX0FMTE9DQVRJT04g
MAorI2RlZmluZSBCUFJPRklMRV9UUllfQUxMT0NBVElPTl9OT05fSlNfQ0VMTChwdHIsIHNpemUp
IGRvIHsgfSB3aGlsZSAoZmFsc2UpCiAjZW5kaWYKIAotI2lmZGVmIEJQUk9GSUxFX1RSWV9BTExP
Q0FUSU9OX0NPTVBBQ1RJQkxFCi0jZGVmaW5lIEJFTkFCTEVfUFJPRklMRV9DT01QQUNUSUJMRV9U
UllfQUxMT0NBVElPTiAxCisjaWZkZWYgQlBST0ZJTEVfVFJZX0FMTE9DQVRJT05fR0lHQUNBR0UK
KyNkZWZpbmUgQkVOQUJMRV9QUk9GSUxFX0dJR0FDQUdFX1RSWV9BTExPQ0FUSU9OIDEKICNlbHNl
Ci0jZGVmaW5lIEJFTkFCTEVfUFJPRklMRV9DT01QQUNUSUJMRV9UUllfQUxMT0NBVElPTiAwCi0j
ZGVmaW5lIEJQUk9GSUxFX1RSWV9BTExPQ0FUSU9OX0NPTVBBQ1RJQkxFKHB0ciwgc2l6ZSkgZG8g
eyB9IHdoaWxlIChmYWxzZSkKKyNkZWZpbmUgQkVOQUJMRV9QUk9GSUxFX0dJR0FDQUdFX1RSWV9B
TExPQ0FUSU9OIDAKKyNkZWZpbmUgQlBST0ZJTEVfVFJZX0FMTE9DQVRJT05fR0lHQUNBR0Uoa2lu
ZCwgcHRyLCBzaXplKSBkbyB7IH0gd2hpbGUgKGZhbHNlKQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL0lzb0hlYXAuY3BwIGIvU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9Jc29IZWFwLmNwcAppbmRleCAxOWM1MGExNzhhZTEuLmI5MGFmYjM3NjhjYyAxMDA2NDQKLS0t
IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Jc29IZWFwLmNwcAorKysgYi9Tb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0lzb0hlYXAuY3BwCkBAIC00NSwxMyArNDUsMTMgQEAgdm9pZCogaXNvQWxsb2Nh
dGUocGFzX2hlYXBfcmVmJiBoZWFwUmVmKQogICAgICAgICBJc29NYWxsb2NGYWxsYmFjazo6TWFs
bG9jUmVzdWx0IHJlc3VsdCA9IElzb01hbGxvY0ZhbGxiYWNrOjp0cnlNYWxsb2ModHlwZVNpemUp
OwogICAgICAgICBpZiAocmVzdWx0LmRpZEZhbGxCYWNrKSB7CiAgICAgICAgICAgICBSRUxFQVNF
X0JBU1NFUlQocmVzdWx0LnB0cik7Ci0gICAgICAgICAgICBCUFJPRklMRV9BTExPQ0FUSU9OKE5P
Tl9KU19DRUxMLCByZXN1bHQucHRyLCB0eXBlU2l6ZSk7CisgICAgICAgICAgICBCUFJPRklMRV9B
TExPQ0FUSU9OX05PTl9KU19DRUxMKHJlc3VsdC5wdHIsIHR5cGVTaXplKTsKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQucHRyOwogICAgICAgICB9CiAgICAgfQogCiAgICAgdm9pZCogcmVzdWx0
ID0gYm1hbGxvY19pc29fYWxsb2NhdGVfaW5saW5lKCZoZWFwUmVmKTsKLSAgICBCUFJPRklMRV9B
TExPQ0FUSU9OKE5PTl9KU19DRUxMLCByZXN1bHQsIHR5cGVTaXplKTsKKyAgICBCUFJPRklMRV9B
TExPQ0FUSU9OX05PTl9KU19DRUxMKHJlc3VsdCwgdHlwZVNpemUpOwogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKQEAgLTcxLDQyICs3MSw2IEBAIHZvaWQqIGlzb1RyeUFsbG9jYXRlKHBhc19oZWFw
X3JlZiYgaGVhcFJlZikKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkKiBpc29BbGxvY2F0
ZUNvbXBhY3QocGFzX2hlYXBfcmVmJiBoZWFwUmVmKQotewotICAgIC8vIEZJWE1FOiBsaWJwYXMg
c2hvdWxkIGtub3cgaG93IHRvIGRvIHRoZSBmYWxsYmFjayB0aGluZy4KLSAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MTc3Ci0KLSAgICBhdXRvIHR5cGVT
aXplID0gcGFzX3NpbXBsZV90eXBlX3NpemUocmVpbnRlcnByZXRfY2FzdDxwYXNfc2ltcGxlX3R5
cGU+KGhlYXBSZWYudHlwZSkpOwotICAgIGlmIChJc29NYWxsb2NGYWxsYmFjazo6c2hvdWxkVHJ5
VG9GYWxsQmFjaygpKSB7Ci0gICAgICAgIElzb01hbGxvY0ZhbGxiYWNrOjpNYWxsb2NSZXN1bHQg
cmVzdWx0ID0gSXNvTWFsbG9jRmFsbGJhY2s6OnRyeU1hbGxvYyh0eXBlU2l6ZSk7Ci0gICAgICAg
IGlmIChyZXN1bHQuZGlkRmFsbEJhY2spIHsKLSAgICAgICAgICAgIFJFTEVBU0VfQkFTU0VSVChy
ZXN1bHQucHRyKTsKLSAgICAgICAgICAgIEJQUk9GSUxFX0FMTE9DQVRJT04oQ09NUEFDVElCTEUs
IHJlc3VsdC5wdHIsIHR5cGVTaXplKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQucHRyOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgdm9pZCogcmVzdWx0ID0gYm1hbGxvY19pc29fYWxsb2Nh
dGVfaW5saW5lKCZoZWFwUmVmKTsKLSAgICBCUFJPRklMRV9BTExPQ0FUSU9OKENPTVBBQ1RJQkxF
LCByZXN1bHQsIHR5cGVTaXplKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkKiBpc29U
cnlBbGxvY2F0ZUNvbXBhY3QocGFzX2hlYXBfcmVmJiBoZWFwUmVmKQotewotICAgIGF1dG8gdHlw
ZVNpemUgPSBwYXNfc2ltcGxlX3R5cGVfc2l6ZShyZWludGVycHJldF9jYXN0PHBhc19zaW1wbGVf
dHlwZT4oaGVhcFJlZi50eXBlKSk7Ci0gICAgaWYgKElzb01hbGxvY0ZhbGxiYWNrOjpzaG91bGRU
cnlUb0ZhbGxCYWNrKCkpIHsKLSAgICAgICAgSXNvTWFsbG9jRmFsbGJhY2s6Ok1hbGxvY1Jlc3Vs
dCByZXN1bHQgPSBJc29NYWxsb2NGYWxsYmFjazo6dHJ5TWFsbG9jKHR5cGVTaXplKTsKLSAgICAg
ICAgaWYgKHJlc3VsdC5kaWRGYWxsQmFjaykgewotICAgICAgICAgICAgQlBST0ZJTEVfVFJZX0FM
TE9DQVRJT04oTk9OX0pTX0NFTEwsIHJlc3VsdC5wdHIsIHR5cGVTaXplKTsKLSAgICAgICAgICAg
IHJldHVybiByZXN1bHQucHRyOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdm9pZCogcmVzdWx0
ID0gYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2lubGluZSgmaGVhcFJlZik7Ci0gICAgQlBST0ZJ
TEVfVFJZX0FMTE9DQVRJT04oQ09NUEFDVElCTEUsIHJlc3VsdCwgdHlwZVNpemUpOwotICAgIHJl
dHVybiByZXN1bHQ7Ci19Ci0KIHZvaWQgaXNvRGVhbGxvY2F0ZSh2b2lkKiBwdHIpCiB7CiAgICAg
aWYgKElzb01hbGxvY0ZhbGxiYWNrOjpzaG91bGRUcnlUb0ZhbGxCYWNrKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvSGVhcC5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9Jc29IZWFwLmgKaW5kZXggZGYzYWViZDdmYjAzLi5jMTdmNmE3M2NhOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvSGVhcC5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvSXNvSGVhcC5oCkBAIC00OSwzOCArNDksMTQgQEAgbmFtZXNwYWNlIGFwaSB7CiAvLyBJ
dCdzIG5vdCB2YWxpZCB0byBjcmVhdGUgYW4gSXNvSGVhcCBleGNlcHQgaW4gc3RhdGljIHN0b3Jh
Z2UuCiAKICNpZiBCVVNFKExJQlBBUykKLUJFWFBPUlQgdm9pZCogaXNvQWxsb2NhdGUocGFzX2hl
YXBfcmVmJik7Ci1CRVhQT1JUIHZvaWQqIGlzb1RyeUFsbG9jYXRlKHBhc19oZWFwX3JlZiYpOwot
QkVYUE9SVCB2b2lkKiBpc29BbGxvY2F0ZUNvbXBhY3QocGFzX2hlYXBfcmVmJik7Ci1CRVhQT1JU
IHZvaWQqIGlzb1RyeUFsbG9jYXRlQ29tcGFjdChwYXNfaGVhcF9yZWYmKTsKK0JFWFBPUlQgdm9p
ZCogaXNvQWxsb2NhdGUocGFzX2hlYXBfcmVmJiBoZWFwUmVmKTsKK0JFWFBPUlQgdm9pZCogaXNv
VHJ5QWxsb2NhdGUocGFzX2hlYXBfcmVmJiBoZWFwUmVmKTsKIEJFWFBPUlQgdm9pZCBpc29EZWFs
bG9jYXRlKHZvaWQqIHB0cik7CiAKIC8vIFRoZSBuYW1lICJMaWJQYXNCbWFsbG9jSGVhcFR5cGUi
IGlzIGltcG9ydGFudCBmb3IgdGhlIHBhc19zdGF0dXNfcmVwb3J0ZXIgdG8gd29yayByaWdodC4K
IHRlbXBsYXRlPHR5cGVuYW1lIExpYlBhc0JtYWxsb2NIZWFwVHlwZT4KLXN0cnVjdCBJc29IZWFw
QmFzZSB7Ci0gICAgY29uc3RleHByIElzb0hlYXBCYXNlKGNvbnN0IGNoYXIqID0gbnVsbHB0cikg
eyB9Ci0KLSAgICB2b2lkIHNjYXZlbmdlKCkgeyB9Ci0gICAgdm9pZCBpbml0aWFsaXplKCkgeyB9
Ci0KLSAgICBib29sIGlzSW5pdGlhbGl6ZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotCi0gICAgc3RhdGljIHBhc19oZWFwX3JlZiYgcHJvdmlkZUhlYXAoKQotICAgIHsK
LSAgICAgICAgc3RhdGljIGNvbnN0IGJtYWxsb2NfdHlwZSB0eXBlID0gQk1BTExPQ19UWVBFX0lO
SVRJQUxJWkVSKHNpemVvZihMaWJQYXNCbWFsbG9jSGVhcFR5cGUpLCBhbGlnbm9mKExpYlBhc0Jt
YWxsb2NIZWFwVHlwZSksIF9fUFJFVFRZX0ZVTkNUSU9OX18pOwotICAgICAgICBzdGF0aWMgcGFz
X2hlYXBfcmVmIGhlYXAgPSBCTUFMTE9DX0hFQVBfUkVGX0lOSVRJQUxJWkVSKCZ0eXBlKTsKLSAg
ICAgICAgcmV0dXJuIGhlYXA7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUgTGliUGFz
Qm1hbGxvY0hlYXBUeXBlPgotc3RydWN0IElzb0hlYXAgOiBwdWJsaWMgSXNvSGVhcEJhc2U8TGli
UGFzQm1hbGxvY0hlYXBUeXBlPiB7Ci0gICAgdXNpbmcgSXNvSGVhcEJhc2U8TGliUGFzQm1hbGxv
Y0hlYXBUeXBlPjo6cHJvdmlkZUhlYXA7Ci0KLSAgICBjb25zdGV4cHIgSXNvSGVhcChjb25zdCBj
aGFyKiBuYW1lID0gbnVsbHB0cik6IElzb0hlYXBCYXNlPExpYlBhc0JtYWxsb2NIZWFwVHlwZT4o
bmFtZSkgeyB9CitzdHJ1Y3QgSXNvSGVhcCB7CisgICAgY29uc3RleHByIElzb0hlYXAoY29uc3Qg
Y2hhciogPSBudWxscHRyKSB7IH0KICAgICAKICAgICB2b2lkKiBhbGxvY2F0ZSgpCiAgICAgewpA
QCAtOTYsMzkgKzcyLDM2IEBAIHN0cnVjdCBJc29IZWFwIDogcHVibGljIElzb0hlYXBCYXNlPExp
YlBhc0JtYWxsb2NIZWFwVHlwZT4gewogICAgIHsKICAgICAgICAgaXNvRGVhbGxvY2F0ZShwKTsK
ICAgICB9Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBMaWJQYXNCbWFsbG9jSGVhcFR5cGU+Ci1z
dHJ1Y3QgQ29tcGFjdElzb0hlYXAgOiBwdWJsaWMgSXNvSGVhcEJhc2U8TGliUGFzQm1hbGxvY0hl
YXBUeXBlPiB7Ci0gICAgdXNpbmcgSXNvSGVhcEJhc2U8TGliUGFzQm1hbGxvY0hlYXBUeXBlPjo6
cHJvdmlkZUhlYXA7Ci0KLSAgICBjb25zdGV4cHIgQ29tcGFjdElzb0hlYXAoY29uc3QgY2hhciog
bmFtZSA9IG51bGxwdHIpOiBJc29IZWFwQmFzZTxMaWJQYXNCbWFsbG9jSGVhcFR5cGU+KG5hbWUp
IHsgfQotCi0gICAgdm9pZCogYWxsb2NhdGUoKQorICAgIAorICAgIHZvaWQgc2NhdmVuZ2UoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGlzb0FsbG9jYXRlQ29tcGFjdChwcm92aWRlSGVhcCgpKTsK
ICAgICB9Ci0KLSAgICB2b2lkKiB0cnlBbGxvY2F0ZSgpCisgICAgCisgICAgdm9pZCBpbml0aWFs
aXplKCkKKyAgICB7CisgICAgfQorICAgIAorICAgIGJvb2wgaXNJbml0aWFsaXplZCgpCiAgICAg
ewotICAgICAgICByZXR1cm4gaXNvVHJ5QWxsb2NhdGVDb21wYWN0KHByb3ZpZGVIZWFwKCkpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICB2b2lkIGRlYWxsb2NhdGUodm9pZCog
cCkKKyAgICBzdGF0aWMgcGFzX2hlYXBfcmVmJiBwcm92aWRlSGVhcCgpCiAgICAgewotICAgICAg
ICBpc29EZWFsbG9jYXRlKHApOworICAgICAgICBzdGF0aWMgY29uc3QgYm1hbGxvY190eXBlIHR5
cGUgPSBCTUFMTE9DX1RZUEVfSU5JVElBTElaRVIoc2l6ZW9mKExpYlBhc0JtYWxsb2NIZWFwVHlw
ZSksIGFsaWdub2YoTGliUGFzQm1hbGxvY0hlYXBUeXBlKSwgX19QUkVUVFlfRlVOQ1RJT05fXyk7
CisgICAgICAgIHN0YXRpYyBwYXNfaGVhcF9yZWYgaGVhcCA9IEJNQUxMT0NfSEVBUF9SRUZfSU5J
VElBTElaRVIoJnR5cGUpOworICAgICAgICByZXR1cm4gaGVhcDsKICAgICB9CiB9OwotCiAjZWxz
ZSAvLyBCVVNFKExJQlBBUykgLT4gc28gIUJVU0UoTElCUEFTKQogdGVtcGxhdGU8dHlwZW5hbWUg
VHlwZT4KLXN0cnVjdCBJc29IZWFwQmFzZSB7CitzdHJ1Y3QgSXNvSGVhcCB7CiAgICAgdHlwZWRl
ZiBJc29Db25maWc8c2l6ZW9mKFR5cGUpPiBDb25maWc7CiAKICNpZiBCRU5BQkxFX01BTExPQ19I
RUFQX0JSRUFLRE9XTgotICAgIElzb0hlYXBCYXNlKGNvbnN0IGNoYXIqID0gbnVsbHB0cik7Cisg
ICAgSXNvSGVhcChjb25zdCBjaGFyKiA9IG51bGxwdHIpOwogI2Vsc2UKLSAgICBjb25zdGV4cHIg
SXNvSGVhcEJhc2UoY29uc3QgY2hhciogPSBudWxscHRyKSB7IH0KKyAgICBjb25zdGV4cHIgSXNv
SGVhcChjb25zdCBjaGFyKiA9IG51bGxwdHIpIHsgfQogI2VuZGlmCiAKICAgICB2b2lkKiBhbGxv
Y2F0ZSgpOwpAQCAtMTU3LDQ4ICsxMzAsMTIgQEAgc3RydWN0IElzb0hlYXBCYXNlIHsKICAgICBt
YWxsb2Nfem9uZV90KiBtX3pvbmU7CiAjZW5kaWYKIH07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFR5
cGU+Ci1zdHJ1Y3QgSXNvSGVhcCA6IHB1YmxpYyBJc29IZWFwQmFzZTxUeXBlPiB7Ci0gICAgY29u
c3RleHByIElzb0hlYXAoY29uc3QgY2hhciogbmFtZSA9IG51bGxwdHIpOiBJc29IZWFwQmFzZTxU
eXBlPihuYW1lKSB7IH0KLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+Ci1zdHJ1Y3QgQ29t
cGFjdElzb0hlYXAgOiBwdWJsaWMgSXNvSGVhcEJhc2U8VHlwZT4gewotICAgIGNvbnN0ZXhwciBD
b21wYWN0SXNvSGVhcChjb25zdCBjaGFyKiBuYW1lID0gbnVsbHB0cik6IElzb0hlYXBCYXNlPFR5
cGU+KG5hbWUpIHsgfQotfTsKICNlbmRpZiAvLyBCVVNFKExJQlBBUykgLT4gc28gZW5kIG9mICFC
VVNFKExJQlBBUykKIAogLy8gVXNlIHRoaXMgdG9nZXRoZXIgd2l0aCBNQUtFX0JJU09fTUFMTE9D
RURfSU1QTC4KLSNkZWZpbmUgTUFLRV9CSVNPX01BTExPQ0VEKGlzb1R5cGUsIGhlYXBUeXBlLCBl
eHBvcnRNYWNybykgXAotcHVibGljOiBcCi0gICAgc3RhdGljIGV4cG9ydE1hY3JvIDo6Ym1hbGxv
Yzo6YXBpOjpoZWFwVHlwZTxpc29UeXBlPiYgYmlzb0hlYXAoKTsgXAotICAgIFwKLSAgICB2b2lk
KiBvcGVyYXRvciBuZXcoc2l6ZV90LCB2b2lkKiBwKSB7IHJldHVybiBwOyB9IFwKLSAgICB2b2lk
KiBvcGVyYXRvciBuZXdbXShzaXplX3QsIHZvaWQqIHApIHsgcmV0dXJuIHA7IH0gXAotICAgIFwK
LSAgICBleHBvcnRNYWNybyB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpO1wKLSAgICBl
eHBvcnRNYWNybyB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiBwKTtcCi0gICAgXAotICAgIHZv
aWQqIG9wZXJhdG9yIG5ld1tdKHNpemVfdCBzaXplKSA9IGRlbGV0ZTsgXAotICAgIHZvaWQgb3Bl
cmF0b3IgZGVsZXRlW10odm9pZCogcCkgPSBkZWxldGU7IFwKLSAgICBcCi0gICAgdm9pZCogb3Bl
cmF0b3IgbmV3KHNpemVfdCwgTm90TnVsbFRhZywgdm9pZCogbG9jYXRpb24pIFwKLSAgICB7IFwK
LSAgICAgICAgQVNTRVJUKGxvY2F0aW9uKTsgXAotICAgICAgICByZXR1cm4gbG9jYXRpb247IFwK
LSAgICB9IFwKLSAgICBcCi0gICAgZXhwb3J0TWFjcm8gc3RhdGljIHZvaWQgZnJlZUFmdGVyRGVz
dHJ1Y3Rpb24odm9pZCopOyBcCi0gICAgXAotICAgIHVzaW5nIHdlYmtpdEZhc3RNYWxsb2NlZCA9
IGludDsgXAotcHJpdmF0ZTogXAotICAgIHVzaW5nIF9fbWFrZUJpc29NYWxsb2NlZE1hY3JvU2Vt
aWNvbG9uaWZpZXIgQlVOVVNFRF9UWVBFX0FMSUFTID0gaW50Ci0KLS8vIFVzZSB0aGlzIHRvZ2V0
aGVyIHdpdGggTUFLRV9CSVNPX01BTExPQ0VEX0lNUEwuCi0jZGVmaW5lIE1BS0VfQklTT19NQUxM
T0NFRF9DT01QQUNUKGlzb1R5cGUsIGhlYXBUeXBlLCBleHBvcnRNYWNybykgXAorI2RlZmluZSBN
QUtFX0JJU09fTUFMTE9DRUQoaXNvVHlwZSwgZXhwb3J0TWFjcm8pIFwKIHB1YmxpYzogXAotICAg
IHN0YXRpYyBleHBvcnRNYWNybyA6OmJtYWxsb2M6OmFwaTo6aGVhcFR5cGU8aXNvVHlwZT4mIGJp
c29IZWFwKCk7IFwKKyAgICBzdGF0aWMgZXhwb3J0TWFjcm8gOjpibWFsbG9jOjphcGk6Oklzb0hl
YXA8aXNvVHlwZT4mIGJpc29IZWFwKCk7IFwKICAgICBcCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3
KHNpemVfdCwgdm9pZCogcCkgeyByZXR1cm4gcDsgfSBcCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3
W10oc2l6ZV90LCB2b2lkKiBwKSB7IHJldHVybiBwOyB9IFwKQEAgLTIwOSwxMiArMTQ2LDYgQEAg
cHVibGljOiBcCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3W10oc2l6ZV90IHNpemUpID0gZGVsZXRl
OyBcCiAgICAgdm9pZCBvcGVyYXRvciBkZWxldGVbXSh2b2lkKiBwKSA9IGRlbGV0ZTsgXAogICAg
IFwKLSAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90LCBOb3ROdWxsVGFnLCB2b2lkKiBsb2Nh
dGlvbikgXAotICAgIHsgXAotICAgICAgICBBU1NFUlQobG9jYXRpb24pOyBcCi0gICAgICAgIHJl
dHVybiBsb2NhdGlvbjsgXAotICAgIH0gXAotICAgIFwKICAgICBleHBvcnRNYWNybyBzdGF0aWMg
dm9pZCBmcmVlQWZ0ZXJEZXN0cnVjdGlvbih2b2lkKik7IFwKICAgICBcCiAgICAgdXNpbmcgd2Vi
a2l0RmFzdE1hbGxvY2VkID0gaW50OyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0lzb0hlYXBJbmxpbmVzLmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0lzb0hlYXBJbmxp
bmVzLmgKaW5kZXggODg5MTlhNGEyNzIyLi5hYTljYmQ0YjMzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvSXNvSGVhcElubGluZXMuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL0lzb0hlYXBJbmxpbmVzLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgbmFtZXNwYWNlIGJtYWxs
b2MgeyBuYW1lc3BhY2UgYXBpIHsKIAogI2lmIEJFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dO
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgotSXNvSGVhcEJhc2U8VHlwZT46Oklzb0hlYXBCYXNl
KGNvbnN0IGNoYXIqIGhlYXBDbGFzcykKK0lzb0hlYXA8VHlwZT46Oklzb0hlYXAoY29uc3QgY2hh
ciogaGVhcENsYXNzKQogICAgIDogbV96b25lKG1hbGxvY19jcmVhdGVfem9uZSgwLCAwKSkKIHsK
ICAgICBpZiAoaGVhcENsYXNzKQpAQCAtNTcsMjAgKzU3LDQwIEBAIElzb0hlYXBCYXNlPFR5cGU+
OjpJc29IZWFwQmFzZShjb25zdCBjaGFyKiBoZWFwQ2xhc3MpCiAjZW5kaWYKIAogdGVtcGxhdGU8
dHlwZW5hbWUgVHlwZT4KLXZvaWQgSXNvSGVhcEJhc2U8VHlwZT46OnNjYXZlbmdlKCkKK3ZvaWQq
IElzb0hlYXA8VHlwZT46OmFsbG9jYXRlKCkKK3sKKyAgICBib29sIGFib3J0T25GYWlsdXJlID0g
dHJ1ZTsKKyAgICByZXR1cm4gSXNvVExTOjphbGxvY2F0ZSgqdGhpcywgYWJvcnRPbkZhaWx1cmUp
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgordm9pZCogSXNvSGVhcDxUeXBlPjo6dHJ5
QWxsb2NhdGUoKQoreworICAgIGJvb2wgYWJvcnRPbkZhaWx1cmUgPSBmYWxzZTsKKyAgICByZXR1
cm4gSXNvVExTOjphbGxvY2F0ZSgqdGhpcywgYWJvcnRPbkZhaWx1cmUpOworfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUeXBlPgordm9pZCBJc29IZWFwPFR5cGU+OjpkZWFsbG9jYXRlKHZvaWQqIHAp
Cit7CisgICAgSXNvVExTOjpkZWFsbG9jYXRlKCp0aGlzLCBwKTsKK30KKwordGVtcGxhdGU8dHlw
ZW5hbWUgVHlwZT4KK3ZvaWQgSXNvSGVhcDxUeXBlPjo6c2NhdmVuZ2UoKQogewogICAgIElzb1RM
Uzo6c2NhdmVuZ2UoKnRoaXMpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgotYm9vbCBJ
c29IZWFwQmFzZTxUeXBlPjo6aXNJbml0aWFsaXplZCgpCitib29sIElzb0hlYXA8VHlwZT46Omlz
SW5pdGlhbGl6ZWQoKQogewogICAgIGF1dG8qIGF0b21pYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8c3Rk
OjphdG9taWM8SXNvSGVhcEltcGw8Q29uZmlnPio+Kj4oJm1faW1wbCk7CiAgICAgcmV0dXJuIGF0
b21pYy0+bG9hZChzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1aXJlKTsKIH0KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVHlwZT4KLXZvaWQgSXNvSGVhcEJhc2U8VHlwZT46OmluaXRpYWxpemUoKQordm9pZCBJ
c29IZWFwPFR5cGU+Ojppbml0aWFsaXplKCkKIHsKICAgICAvLyBXZSBhcmUgdXNpbmcgbV9pbXBs
IGZpZWxkIGFzIGEgZ3VhcmQgdmFyaWFibGUgb2YgdGhlIGluaXRpYWxpemF0aW9uIG9mIElzb0hl
YXAuCiAgICAgLy8gSXNvSGVhcDo6aXNJbml0aWFsaXplZCBnZXRzIG1faW1wbCB3aXRoICJhY3F1
aXJlIiwgYW5kIElzb0hlYXA6OmluaXRpYWxpemUgc3RvcmVzCkBAIC04Niw0NCArMTA2LDE4IEBA
IHZvaWQgSXNvSGVhcEJhc2U8VHlwZT46OmluaXRpYWxpemUoKQogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUeXBlPgotYXV0byBJc29IZWFwQmFzZTxUeXBlPjo6aW1wbCgpIC0+IElzb0hlYXBJbXBs
PENvbmZpZz4mCithdXRvIElzb0hlYXA8VHlwZT46OmltcGwoKSAtPiBJc29IZWFwSW1wbDxDb25m
aWc+JgogewogICAgIElzb1RMUzo6ZW5zdXJlSGVhcCgqdGhpcyk7CiAgICAgcmV0dXJuICptX2lt
cGw7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+Ci12b2lkKiBJc29IZWFwQmFzZTxUeXBl
Pjo6YWxsb2NhdGUoKQotewotICAgIGJvb2wgYWJvcnRPbkZhaWx1cmUgPSB0cnVlOwotICAgIHJl
dHVybiBJc29UTFM6OmFsbG9jYXRlKCp0aGlzLCBhYm9ydE9uRmFpbHVyZSk7Ci19Ci0KLXRlbXBs
YXRlPHR5cGVuYW1lIFR5cGU+Ci12b2lkKiBJc29IZWFwQmFzZTxUeXBlPjo6dHJ5QWxsb2NhdGUo
KQotewotICAgIGJvb2wgYWJvcnRPbkZhaWx1cmUgPSBmYWxzZTsKLSAgICByZXR1cm4gSXNvVExT
OjphbGxvY2F0ZSgqdGhpcywgYWJvcnRPbkZhaWx1cmUpOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBUeXBlPgotdm9pZCBJc29IZWFwQmFzZTxUeXBlPjo6ZGVhbGxvY2F0ZSh2b2lkKiBwKQotewot
ICAgIElzb1RMUzo6ZGVhbGxvY2F0ZSgqdGhpcywgcCk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1l
IFR5cGU+Ci1jb25zdGV4cHIgSXNvSGVhcChjb25zdCBjaGFyKiBuYW1lKTogSXNvSGVhcEJhc2U8
VHlwZT4obmFtZSkgeyB9Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+Ci1jb25zdGV4cHIgQ29t
cGFjdElzb0hlYXAoY29uc3QgY2hhciogbmFtZSk6IElzb0hlYXBCYXNlPFR5cGU+KG5hbWUpIHsg
fQotCiAjZW5kaWYgLy8gIUJVU0UoTElCUEFTKQogCiAvLyBUaGlzIGlzIG1vc3QgYXBwcm9wcmFp
dGUgZm9yIHRlbXBsYXRlIGNsYXNzZXMuCi0jZGVmaW5lIE1BS0VfQklTT19NQUxMT0NFRF9JTkxJ
TkUoaXNvVHlwZSwgaGVhcFR5cGUpIFwKKyNkZWZpbmUgTUFLRV9CSVNPX01BTExPQ0VEX0lOTElO
RShpc29UeXBlKSBcCiBwdWJsaWM6IFwKLSAgICBzdGF0aWMgOjpibWFsbG9jOjphcGk6OmhlYXBU
eXBlPGlzb1R5cGU+JiBiaXNvSGVhcCgpIFwKKyAgICBzdGF0aWMgOjpibWFsbG9jOjphcGk6Oklz
b0hlYXA8aXNvVHlwZT4mIGJpc29IZWFwKCkgXAogICAgIHsgXAogICAgICAgICBzdGF0aWMgOjpi
bWFsbG9jOjphcGk6Oklzb0hlYXA8aXNvVHlwZT4gaGVhcCgiV2ViS2l0XyIjaXNvVHlwZSk7IFwK
ICAgICAgICAgcmV0dXJuIGhlYXA7IFwKQEAgLTE1NSwxMCArMTQ5LDEwIEBAIHB1YmxpYzogXAog
cHJpdmF0ZTogXAogICAgIHVzaW5nIF9fbWFrZUJpc29NYWxsb2NlZElubGluZU1hY3JvU2VtaWNv
bG9uaWZpZXIgQlVOVVNFRF9UWVBFX0FMSUFTID0gaW50CiAKLSNkZWZpbmUgTUFLRV9CSVNPX01B
TExPQ0VEX0lNUEwoaXNvVHlwZSwgaGVhcFR5cGUpIFwKLTo6Ym1hbGxvYzo6YXBpOjpoZWFwVHlw
ZTxpc29UeXBlPiYgaXNvVHlwZTo6Ymlzb0hlYXAoKSBcCisjZGVmaW5lIE1BS0VfQklTT19NQUxM
T0NFRF9JTVBMKGlzb1R5cGUpIFwKKzo6Ym1hbGxvYzo6YXBpOjpJc29IZWFwPGlzb1R5cGU+JiBp
c29UeXBlOjpiaXNvSGVhcCgpIFwKIHsgXAotICAgIHN0YXRpYyA6OmJtYWxsb2M6OmFwaTo6aGVh
cFR5cGU8aXNvVHlwZT4gaGVhcCgiV2ViS2l0ICIjaXNvVHlwZSk7IFwKKyAgICBzdGF0aWMgOjpi
bWFsbG9jOjphcGk6Oklzb0hlYXA8aXNvVHlwZT4gaGVhcCgiV2ViS2l0ICIjaXNvVHlwZSk7IFwK
ICAgICByZXR1cm4gaGVhcDsgXAogfSBcCiBcCkBAIC0xODAsMTEgKzE3NCwxMSBAQCB2b2lkIGlz
b1R5cGU6OmZyZWVBZnRlckRlc3RydWN0aW9uKHZvaWQqIHApIFwKIFwKIHN0cnVjdCBNYWtlQmlz
b01hbGxvY2VkSW1wbE1hY3JvU2VtaWNvbG9uaWZpZXIjI2lzb1R5cGUgeyB9CiAKLSNkZWZpbmUg
TUFLRV9CSVNPX01BTExPQ0VEX0lNUExfVEVNUExBVEUoaXNvVHlwZSwgaGVhcFR5cGUpIFwKKyNk
ZWZpbmUgTUFLRV9CSVNPX01BTExPQ0VEX0lNUExfVEVNUExBVEUoaXNvVHlwZSkgXAogdGVtcGxh
dGU8PiBcCi06OmJtYWxsb2M6OmFwaTo6aGVhcFR5cGU8aXNvVHlwZT4mIGlzb1R5cGU6OmJpc29I
ZWFwKCkgXAorOjpibWFsbG9jOjphcGk6Oklzb0hlYXA8aXNvVHlwZT4mIGlzb1R5cGU6OmJpc29I
ZWFwKCkgXAogeyBcCi0gICAgc3RhdGljIDo6Ym1hbGxvYzo6YXBpOjpoZWFwVHlwZTxpc29UeXBl
PiBoZWFwKCJXZWJLaXRfIiNpc29UeXBlKTsgXAorICAgIHN0YXRpYyA6OmJtYWxsb2M6OmFwaTo6
SXNvSGVhcDxpc29UeXBlPiBoZWFwKCJXZWJLaXRfIiNpc29UeXBlKTsgXAogICAgIHJldHVybiBo
ZWFwOyBcCiB9IFwKIFwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0FsaWduZWRSZWZMb2dnZXIuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0FsaWdu
ZWRSZWZMb2dnZXIuaAppbmRleCAyNDlkMzNhZDM3MmMuLjFkNjFlNTBmZTE2NiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQWxpZ25lZFJlZkxvZ2dlci5oCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0FsaWduZWRSZWZMb2dnZXIuaApAQCAtMzAs
OCArMzAsNiBAQAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCiBzdHJ1Y3QgYWxpZ25hcygx
NikgQWxpZ25lZFJlZkxvZ2dlciB7Ci0gICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQ09NUEFDVF9B
TExPQ0FURUQ7Ci0KICAgICBBbGlnbmVkUmVmTG9nZ2VyKGNvbnN0IGNoYXIqIG5hbWUpCiAgICAg
ICAgIDogbmFtZSB7ICpuYW1lIH0KICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Db21wYWN0UHRyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0NvbXBhY3RQdHIuY3BwCmluZGV4IDQ2ZmU1ODE3OGIzMS4uZDVjN2Y1ZTFmZTI2IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db21wYWN0UHRyLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db21wYWN0UHRyLmNwcApAQCAtMTk3LDcg
KzE5Nyw2IEBAIFRFU1QoV1RGX0NvbXBhY3RQdHIsIEFzc2lnbm1lbnQpCiB9CiAKIHN0cnVjdCBh
bGlnbmFzKDE2KSBBbGlnbmVkUGFja2luZ1RhcmdldCB7Ci0gICAgV1RGX0FMTE9XX1NUUlVDVF9D
T01QQUNUX1BPSU5URVJTOwogICAgIHVuc2lnbmVkIG1fdmFsdWUgeyAwIH07CiB9OwogVEVTVChX
VEZfQ29tcGFjdFB0ciwgSGFzaE1hcCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0NvbXBhY3RSZWZQdHIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvQ29tcGFjdFJlZlB0ci5jcHAKaW5kZXggZWY0NWFmMjc5MDk0Li43OWM3YmZmM2IwZTggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbXBhY3RSZWZQdHIuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbXBhY3RSZWZQdHIuY3BwCkBA
IC00MjEsNyArNDIxLDYgQEAgVEVTVChXVEZfQ29tcGFjdFJlZlB0ciwgUmV0dXJuVmFsdWUpCiAK
IHN0cnVjdCBhbGlnbmFzKDE2KSBDb25zdFJlZkNvdW50ZWQKICAgICA6IFJlZkNvdW50ZWQ8Q29u
c3RSZWZDb3VudGVkPiB7Ci0gICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQ09NUEFDVF9BTExPQ0FU
RUQ7CiAgICAgc3RhdGljIFJlZjxDb25zdFJlZkNvdW50ZWQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ29uc3RSZWZDb3VudGVkKTsgfQogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29tcGFjdFVuaXF1ZVB0clR1cGxlLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbXBhY3RVbmlxdWVQdHJUdXBsZS5jcHAKaW5kZXgg
MGE0MjRmYjgzOTFmLi41ZTA0ZmZlZDIzMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0NvbXBhY3RVbmlxdWVQdHJUdXBsZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvQ29tcGFjdFVuaXF1ZVB0clR1cGxlLmNwcApAQCAtMzYsNyArMzYs
NyBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBuYW1lc3BhY2UgQ29tcGFjdFVuaXF1ZVB0
clR1cGxlVGVzdCB7CiAKIGNsYXNzIEEgewotICAgIFdURl9NQUtFX0ZBU1RfQ09NUEFDVF9BTExP
Q0FURUQ7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAKIHB1YmxpYzoKICAgICBBKCkg
eyArK3NfY29uc3RydWN0b3JDYWxsQ291bnQ7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1BhY2tlZC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9QYWNrZWQuY3BwCmluZGV4IDY2MWQ3Zjg3ZjBjOS4uMDUzYzFiNWUyNzg5IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYWNrZWQuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1BhY2tlZC5jcHAKQEAgLTM2LDE0ICszNiw5IEBACiAKIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAotc3RydWN0IFBhY2thYmxlVWludDggewotICAgIFdU
Rl9BTExPV19TVFJVQ1RfQ09NUEFDVF9QT0lOVEVSUzsKLSAgICB1aW50OF90IHZhbHVlOwotfTsK
LQogc3RydWN0IFBhY2tlZFBhaXIgewotICAgIFBhY2tlZFB0cjxQYWNrYWJsZVVpbnQ4PiBrZXkg
eyBudWxscHRyIH07Ci0gICAgUGFja2VkUHRyPFBhY2thYmxlVWludDg+IHZhbHVlIHsgbnVsbHB0
ciB9OworICAgIFBhY2tlZFB0cjx1aW50OF90PiBrZXkgeyBudWxscHRyIH07CisgICAgUGFja2Vk
UHRyPHVpbnQ4X3Q+IHZhbHVlIHsgbnVsbHB0ciB9OwogfTsKIAogVEVTVChXVEZfUGFja2VkLCBT
dHJ1Y3RTaXplKQpAQCAtNzAsMTkgKzY1LDE5IEBAIFRFU1QoV1RGX1BhY2tlZCwgU3RydWN0U2l6
ZSkKIFRFU1QoV1RGX1BhY2tlZCwgQXNzaWduQW5kR2V0KQogewogICAgIHsKLSAgICAgICAgUGFj
a2VkUHRyPFBhY2thYmxlVWludDg+IGtleSB7IG51bGxwdHIgfTsKKyAgICAgICAgUGFja2VkUHRy
PHVpbnQ4X3Q+IGtleSB7IG51bGxwdHIgfTsKICAgICAgICAgc3RhdGljX2Fzc2VydChPU19DT05T
VEFOVChFRkZFQ1RJVkVfQUREUkVTU19XSURUSCkgIT0gNjQpOwotICAgICAgICBQYWNrYWJsZVVp
bnQ4KiBjYW5kaWRhdGVzW10gPSB7CisgICAgICAgIHVpbnQ4X3QqIGNhbmRpZGF0ZXNbXSA9IHsK
ICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICBiaXR3aXNlX2Nhc3Q8UGFja2FibGVVaW50OCo+
KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oKDFVTEwgPDwgKE9TX0NPTlNUQU5UKEVGRkVDVElWRV9B
RERSRVNTX1dJRFRIKSAvIDIpKSAtIDEpKSwKLSAgICAgICAgICAgIGJpdHdpc2VfY2FzdDxQYWNr
YWJsZVVpbnQ4Kj4oc3RhdGljX2Nhc3Q8dWludHB0cl90PigoMVVMTCA8PCAoT1NfQ09OU1RBTlQo
RUZGRUNUSVZFX0FERFJFU1NfV0lEVEgpIC0gMSkpIC0gMSkpLAorICAgICAgICAgICAgYml0d2lz
ZV9jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KCgxVUxMIDw8IChPU19DT05T
VEFOVChFRkZFQ1RJVkVfQUREUkVTU19XSURUSCkgLyAyKSkgLSAxKSksCisgICAgICAgICAgICBi
aXR3aXNlX2Nhc3Q8dWludDhfdCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oKDFVTEwgPDwgKE9T
X0NPTlNUQU5UKEVGRkVDVElWRV9BRERSRVNTX1dJRFRIKSAtIDEpKSAtIDEpKSwKICNpZiAhQ1BV
KFg4Nl82NCkgfHwgT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoV0lORE9XUykKICAgICAg
ICAgICAgIC8vIFRoZXNlIE9TZXMgd2lsbCBuZXZlciBhbGxvY2F0ZSB1c2VyIHNwYWNlIGFkZHJl
c3NlcyB3aXRoCiAgICAgICAgICAgICAvLyBiaXQgNDcgKGkuZS4gT1NfQ09OU1RBTlQoRUZGRUNU
SVZFX0FERFJFU1NfV0lEVEgpIC0gMSkgc2V0LgotICAgICAgICAgICAgYml0d2lzZV9jYXN0PFBh
Y2thYmxlVWludDgqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KCgxVUxMIDw8IE9TX0NPTlNUQU5U
KEVGRkVDVElWRV9BRERSRVNTX1dJRFRIKSkgLSAxKSksCisgICAgICAgICAgICBiaXR3aXNlX2Nh
c3Q8dWludDhfdCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oKDFVTEwgPDwgT1NfQ09OU1RBTlQo
RUZGRUNUSVZFX0FERFJFU1NfV0lEVEgpKSAtIDEpKSwKICNlbHNlCi0gICAgICAgICAgICBiaXR3
aXNlX2Nhc3Q8UGFja2FibGVVaW50OCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4ofigoMVVMTCA8
PCAoT1NfQ09OU1RBTlQoRUZGRUNUSVZFX0FERFJFU1NfV0lEVEgpIC0gMSkpIC0gMSkpKSwgLy8g
bWluIGhpZ2hlciBoYWxmCi0gICAgICAgICAgICBiaXR3aXNlX2Nhc3Q8UGFja2FibGVVaW50OCo+
KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludHB0cl90Pjo6bWF4KCkpLCAvLyBtYXggaGlnaGVyIGhh
bGYKKyAgICAgICAgICAgIGJpdHdpc2VfY2FzdDx1aW50OF90Kj4oc3RhdGljX2Nhc3Q8dWludHB0
cl90Pih+KCgxVUxMIDw8IChPU19DT05TVEFOVChFRkZFQ1RJVkVfQUREUkVTU19XSURUSCkgLSAx
KSkgLSAxKSkpLCAvLyBtaW4gaGlnaGVyIGhhbGYKKyAgICAgICAgICAgIGJpdHdpc2VfY2FzdDx1
aW50OF90Kj4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50cHRyX3Q+OjptYXgoKSksIC8vIG1heCBo
aWdoZXIgaGFsZgogI2VuZGlmCiAgICAgICAgIH07CiAgICAgICAgIGludCBjb3VudCA9IHNpemVv
ZihjYW5kaWRhdGVzKSAvIHNpemVvZih1aW50OF90Kik7CkBAIC05NiwxMSArOTEsMTEgQEAgVEVT
VChXVEZfUGFja2VkLCBBc3NpZ25BbmRHZXQpCiBURVNUKFdURl9QYWNrZWQsIFBhY2tlZEFsaWdu
ZWRQdHIpCiB7CiAgICAgewotICAgICAgICBQYWNrZWRBbGlnbmVkUHRyPFBhY2thYmxlVWludDgs
IDI1Nj4ga2V5IHsgbnVsbHB0ciB9OworICAgICAgICBQYWNrZWRBbGlnbmVkUHRyPHVpbnQ4X3Qs
IDI1Nj4ga2V5IHsgbnVsbHB0ciB9OwogICAgICAgICBFWFBFQ1RfTEUoc2l6ZW9mKGtleSksIDVV
KTsKICAgICB9CiAgICAgewotICAgICAgICBQYWNrZWRBbGlnbmVkUHRyPFBhY2thYmxlVWludDgs
IDE2PiBrZXkgeyBudWxscHRyIH07CisgICAgICAgIFBhY2tlZEFsaWduZWRQdHI8dWludDhfdCwg
MTY+IGtleSB7IG51bGxwdHIgfTsKICNpZiAoT1MoSU9TKSB8fCBPUyhUVk9TKSB8fCBPUyhXQVRD
SE9TKSB8fCBPUyhWSVNJT04pKSAmJiBDUFUoQVJNNjQpICYmICFQTEFURk9STShJT1NfRkFNSUxZ
X1NJTVVMQVRPUikKICAgICAgICAgRVhQRUNUX0VRKHNpemVvZihrZXkpLCA0VSk7CiAjZWxzZQpA
QCAtMTEwLDcgKzEwNSw2IEBAIFRFU1QoV1RGX1BhY2tlZCwgUGFja2VkQWxpZ25lZFB0cikKIH0K
IAogc3RydWN0IFBhY2tpbmdUYXJnZXQgewotICAgIFdURl9BTExPV19TVFJVQ1RfQ09NUEFDVF9Q
T0lOVEVSUzsKICAgICB1bnNpZ25lZCBtX3ZhbHVlIHsgMCB9OwogfTsKIFRFU1QoV1RGX1BhY2tl
ZCwgSGFzaE1hcCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Bh
Y2tlZFJlZlB0ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYWNrZWRSZWZQ
dHIuY3BwCmluZGV4IDZkNDhjMzQ3Y2I3OS4uNmQ4ZTMyYWM2ODdlIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYWNrZWRSZWZQdHIuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1BhY2tlZFJlZlB0ci5jcHAKQEAgLTQwNyw3ICs0MDcsNiBA
QCBURVNUKFdURl9QYWNrZWRSZWZQdHIsIFJldHVyblZhbHVlKQogfQogCiBzdHJ1Y3QgQ29uc3RS
ZWZDb3VudGVkIDogUmVmQ291bnRlZDxDb25zdFJlZkNvdW50ZWQ+IHsKLSAgICBXVEZfQUxMT1df
U1RSVUNUX0NPTVBBQ1RfUE9JTlRFUlM7CiAgICAgc3RhdGljIFJlZjxDb25zdFJlZkNvdW50ZWQ+
IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29uc3RSZWZDb3VudGVkKTsgfQogfTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmTG9nZ2VyLmgg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZMb2dnZXIuaAppbmRleCA3Nzk4NWY3
NzIxYzEuLmM0Y2NiNThhNTQ3MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvUmVmTG9nZ2VyLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVm
TG9nZ2VyLmgKQEAgLTI2LDEzICsyNiwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJM
b2dnZXIuaCIKLSNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogCiBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CiAKIHN0cnVjdCBSZWZMb2dnZXIgewotICAgIFdURl9NQUtFX1NUUlVDVF9GQVNU
X0NPTVBBQ1RfQUxMT0NBVEVEOwotCiAgICAgUmVmTG9nZ2VyKGNvbnN0IGNoYXIqIG5hbWUpOwog
ICAgIHZvaWQgcmVmKCkgY29uc3Q7CiAgICAgdm9pZCBkZXJlZigpIGNvbnN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>