nano: make configuring key bindings easier for users

Steef Boerrigter <[email protected]> Tue, 5 May 2026 13:37:26 -0400
Newsgroups gmane.editors.nano.devel
Message-ID <CAFe6kZtKrWHGuSqpm=AOMKRgPqOBaE8weX4VFm50Ko_0OhKOvw@mail.gmail.com>
--000000000000dffadf0651158032
Content-Type: multipart/alternative; boundary="000000000000dffadd0651158030"

--000000000000dffadd0651158030
Content-Type: text/plain; charset="UTF-8"

Hi,

I spent a significant amount of time figuring out how to configure nano key
bindings to fit them to my needs.
I found a lot of bindings and command names that are basically hidden in
the source code and I don't think that is a good idea.
What I did is to take out all the hard-coded key bindings and put all
commands in well-organized nanorc file. That way, a user has much more
overview of the available commands and better control of which key they do
and don't want to have configured.

The sample.nanorc file (and some command line option) support more modern
key strokes. I created two different nanorc examples, that, hopefully, best
reflect the exact configuration one would have obtained if using the
configuration options at the bottom of that file.

I hope you like what I did.

Best regards,
Met vriendelijke groet,
Steef Boerrigter

--000000000000dffadd0651158030
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi,</div><div><br></div><div>I spent a significant am=
ount of time figuring out how to configure nano key bindings to fit them to=
 my needs.</div><div>I found a lot of bindings and command names that are b=
asically hidden in the source code and I don&#39;t think that is a good ide=
a.</div><div>What I did is to take out all the hard-coded key bindings and =
put all commands in well-organized  nanorc file. That way, a user has much =
more overview of the available commands and better control of which key the=
y do and don&#39;t want to have configured.</div><div><br></div><div>The sa=
mple.nanorc file (and some command line option) support more modern key str=
okes. I created two different nanorc examples, that, hopefully, best reflec=
t the exact configuration one would have obtained if using the configuratio=
n options at the bottom of that file.</div><div><br></div><div>I hope you l=
ike what I did.</div><div><br></div><div>Best regards,</div><div>Met vriend=
elijke groet,</div><div>Steef Boerrigter</div><div><br></div></div>

--000000000000dffadd0651158030--

--000000000000dffadf0651158032
Content-Type: text/x-patch; charset="UTF-8"; 
	name="0001-Make-configuring-key-bindings-easier.patch"
Content-Disposition: attachment; 
	filename="0001-Make-configuring-key-bindings-easier.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_moswv3m30>
X-Attachment-Id: f_moswv3m30

RnJvbSA3MGI2ZjA3ZDI2MzZiNmEyMTM1NDQ1NTVlMmEzMmIwOThhMGY1ZmMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiU3RlZWYgQm9lcmlndGVyIiA8c3htYm9lckBnbWFpbC5jb20+
CkRhdGU6IFR1ZSwgNSBNYXkgMjAyNiAxMjo1NDowNiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIE1h
a2UgY29uZmlndXJpbmcga2V5IGJpbmRpbmdzIGVhc2llci4gTW92ZWQgcHJlLXByb2dyYW1tZWQK
IGtleSBiaW5kaW5ncyBpbiB0aGUgYmluYXJpZXMgdG8gbmFub3JjIGNvbmZpZ3VyYXRpb24gZmls
ZS4gQWRkZWQga2V5IG5hbWVzIHRvCiBnbG9iYWwuYyAoXkxlZnQsIFBnVXAsIGV0Yykgc28gdGhh
dCB0aGVzZSBrZXkgYmluZGluZ3MgY2FuIGJlIGNvbmZpZ3VyZWQKIGluc3RlYWQgb2YganVzdCBo
YXJkLWNvZGVkLiBUaGUgY29tcGxldGUgc2V0IG9mIGFjdGlvbnMgYXJlIG5vdyBsaXN0ZWQgaW4K
IG5hbm9yYywgc28gdXNlcnMgZG9uJ3QgbmVlZCB0byBnbyB0aHJvdWdodCBoZSBzb3VyY2UgY29k
ZSB0byBmaW5kIHRoZSBuYW1lIG9mCiBhY3Rpb25zLiBTcGxpdCB0cmFkaXRpb25hbCBhbmQgbW9k
ZXJuIGtleSBjb25maWd1cmF0aW9ucyBpbnRvIHR3byBkaWZmZXJlbnQKIHNldHRpbmdzIGZpbGVz
LiBDb21wbGV0ZSBrZXkgYmluZGluZ3MgYXJlIG5vdyByZXF1aXJlZCBhbmQgbmFubyBjaGVja3Mg
aWYgbmV3CiB0eXBlIG9mIG5hbm9yYyBmaWxlIGlzIGF2YWlsYWJsZS4KClNpZ25lZC1vZmYtYnk6
IFN0ZWVmIEJvZXJyaWd0ZXIgPHN4bWJvZXJAZ21haWwuY29tPgotLS0KIGNvbmZpZ3VyZS5hYyAg
ICAgICAgICAgfCAgIDMgKy0KIGRvYy9NYWtlZmlsZS5hbSAgICAgICAgfCAgIDIgKwogZG9jL21v
ZGVybi5uYW5vcmMuaW4gICB8IDc3MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKwogZG9jL29yaWdpbmFsLm5hbm9yYy5pbiB8IDc2NSArKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrCiBkb2Mvc2FtcGxlLm5hbm9yYy5pbiAgIHwgMzUzIC0tLS0t
LS0tLS0tLS0tLS0tLS0KIHNyYy9nbG9iYWwuYyAgICAgICAgICAgfCA0MTcgKysrKy0tLS0tLS0t
LS0tLS0tLS0tLQogc3JjL25hbm8uYyAgICAgICAgICAgICB8ICAxNiArCiA3IGZpbGVzIGNoYW5n
ZWQsIDE2MzAgaW5zZXJ0aW9ucygrKSwgNjk5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw
NjQ0IGRvYy9tb2Rlcm4ubmFub3JjLmluCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL29yaWdpbmFs
Lm5hbm9yYy5pbgogZGVsZXRlIG1vZGUgMTAwNjQ0IGRvYy9zYW1wbGUubmFub3JjLmluCgpkaWZm
IC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IGE3NmFjZmE3Li44ZTc3
MWI5YSAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtNTg3
LDcgKzU4Nyw4IEBAIEFNX0NPTkRJVElPTkFMKEdST0ZGX0hUTUwsIHRlc3QgeCRncm9mZl9odG1s
X3N1cHBvcnQgPSB4eWVzKQogQUNfQ09ORklHX0ZJTEVTKFsKIE1ha2VmaWxlCiBkb2MvTWFrZWZp
bGUKLWRvYy9zYW1wbGUubmFub3JjCitkb2Mvb3JpZ2luYWwubmFub3JjCitkb2MvbW9kZXJuLm5h
bm9yYwogbGliL01ha2VmaWxlCiBtNC9NYWtlZmlsZQogcG8vTWFrZWZpbGUuaW4KZGlmZiAtLWdp
dCBhL2RvYy9NYWtlZmlsZS5hbSBiL2RvYy9NYWtlZmlsZS5hbQppbmRleCAwOGNjY2FjOS4uMDBi
OWQxZGMgMTAwNjQ0Ci0tLSBhL2RvYy9NYWtlZmlsZS5hbQorKysgYi9kb2MvTWFrZWZpbGUuYW0K
QEAgLTksNiArOSw4IEBAIGh0bWxfcGFnZXMgPSBuYW5vLjEuaHRtbCBybmFuby4xLmh0bWwKIGlm
IFVTRV9OQU5PUkMKIGRpc3RfbWFuX01BTlMgKz0gbmFub3JjLjUKIGh0bWxfcGFnZXMgKz0gbmFu
b3JjLjUuaHRtbAorcGtnZGF0YV9EQVRBID0gb3JpZ2luYWwubmFub3JjIG1vZGVybi5uYW5vcmMK
K0VYVFJBX0RJU1QgKz0gb3JpZ2luYWwubmFub3JjLmluIG1vZGVybi5uYW5vcmMuaW4KIGVuZGlm
CiAKIG5hbm8uMS5odG1sOiBuYW5vLjEKZGlmZiAtLWdpdCBhL2RvYy9tb2Rlcm4ubmFub3JjLmlu
IGIvZG9jL21vZGVybi5uYW5vcmMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAuLmJhZWNiYzcyCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL21vZGVybi5uYW5vcmMuaW4KQEAg
LTAsMCArMSw3NzMgQEAKKyMjIFNhbXBsZSBpbml0aWFsaXphdGlvbiBmaWxlIGZvciBHTlUgbmFu
by4KKyMjCisjIyBGb3IgdGhlIG9wdGlvbnMgdGhhdCB0YWtlIHBhcmFtZXRlcnMsIHRoZSBkZWZh
dWx0IHZhbHVlIGlzIHNob3duLgorIyMgT3RoZXIgb3B0aW9ucyBhcmUgdW5zZXQgYnkgZGVmYXVs
dC4gIFRvIG1ha2Ugc3VyZSB0aGF0IGFuIG9wdGlvbgorIyMgaXMgZGlzYWJsZWQsIHlvdSBjYW4g
dXNlICJ1bnNldCA8b3B0aW9uPiIuCisjIworIyMgQ2hhcmFjdGVycyB0aGF0IGFyZSBzcGVjaWFs
IGluIGEgc2hlbGwgc2hvdWxkIG5vdCBiZSBlc2NhcGVkIGhlcmUuCisjIyBJbnNpZGUgc3RyaW5n
IHBhcmFtZXRlcnMsIHF1b3RlcyBzaG91bGQgbm90IGJlIGVzY2FwZWQgLS0gdGhlIGxhc3QKKyMj
IGRvdWJsZSBxdW90ZSBvbiB0aGUgbGluZSB3aWxsIGJlIHNlZW4gYXMgdGhlIGNsb3NpbmcgcXVv
dGUuCisKKyMjIFRoaXMgdmVyc2lvbiBvZiBuYW5vcmMgZ2l2ZXMgbmFubyBrZXliaW5kaW5ncyB0
aGF0IGFyZSBtb3JlICJ1c3VhbCIKKyMjIHN1Y2ggYXMgXk8gZm9yIE9wZW4sIF5GIGZvciBGaW5k
LCBeSCBmb3IgSGVscCwgYW5kIF5RIGZvciBRdWl0CisKKworIyMgSWYgeW91IHdhbnQgXkYsIF5C
LCBNLUYgYW5kIE0tQiB0byBkbyB3aGF0IHRoZXkgZGlkIGJlZm9yZSB2ZXJzaW9uIDguMDoKKyMg
YmluZCBeRiBmb3J3YXJkIG1haW4KKyMgYmluZCBeQiBiYWNrIG1haW4KKyMgYmluZCBNLUYgZm9y
bWF0dGVyIG1haW4KKyMgYmluZCBNLUIgbGludGVyIG1haW4KKworIyMgTWFrZSBNLTwgYW5kIE0t
PiBzd2l0Y2ggYmV0d2VlbiBidWZmZXJzLCBhcyB0aGV5IGRpZCBiZWZvcmUgdmVyc2lvbiA5LjA6
CisjIGJpbmQgTS08IHByZXZidWYgbWFpbgorIyBiaW5kIE0tPiBuZXh0YnVmIG1haW4KKworIyMg
TWFrZSAnbmV4dHdvcmQnIChDdHJsK1JpZ2h0KSBhbmQgJ2Nob3B3b3JkcmlnaHQnIChDdHJsK0Rl
bGV0ZSkKKyMjIHN0b3AgYXQgd29yZCBlbmRzIGluc3RlYWQgb2YgYXQgYmVnaW5uaW5ncy4KKyMg
c2V0IGFmdGVyZW5kcworCisjIyBXaGVuIHNvZnQgbGluZSB3cmFwcGluZyBpcyBlbmFibGVkLCBt
YWtlIGl0IHdyYXAgbGluZXMgYXQgYmxhbmtzCisjIyAodGFicyBhbmQgc3BhY2VzKSBpbnN0ZWFk
IG9mIGFsd2F5cyBhdCB0aGUgZWRnZSBvZiB0aGUgc2NyZWVuLgorIyBzZXQgYXRibGFua3MKKwor
IyMgQXV0b21hdGljYWxseSBpbmRlbnQgYSBuZXdseSBjcmVhdGVkIGxpbmUgdG8gdGhlIHNhbWUg
bnVtYmVyIG9mCisjIyB0YWJzIGFuZC9vciBzcGFjZXMgYXMgdGhlIHByZWNlZGluZyBsaW5lIC0t
IG9yIGFzIHRoZSBuZXh0IGxpbmUKKyMjIGlmIHRoZSBwcmVjZWRpbmcgbGluZSBpcyB0aGUgYmVn
aW5uaW5nIG9mIGEgcGFyYWdyYXBoLgorIyBzZXQgYXV0b2luZGVudAorCisjIyBCYWNrIHVwIGZp
bGVzIHRvIHRoZSBjdXJyZW50IGZpbGVuYW1lIHBsdXMgYSB0aWxkZS4KKyMgc2V0IGJhY2t1cAor
CisjIyBUaGUgZGlyZWN0b3J5IHRvIHB1dCB1bmlxdWUgYmFja3VwIGZpbGVzIGluLgorIyBzZXQg
YmFja3VwZGlyICIiCisKKyMjIFVzZSBib2xkIHRleHQgaW5zdGVhZCBvZiByZXZlcnNlIHZpZGVv
IHRleHQuCisjIHNldCBib2xkdGV4dAorCisjIyBUcmVhdCBhbnkgbGluZSB3aXRoIGxlYWRpbmcg
d2hpdGVzcGFjZSBhcyB0aGUgYmVnaW5uaW5nIG9mIGEgcGFyYWdyYXBoLgorIyBzZXQgYm9va3N0
eWxlCisKKyMjIFRoZSBjaGFyYWN0ZXJzIHRyZWF0ZWQgYXMgY2xvc2luZyBicmFja2V0cyB3aGVu
IGp1c3RpZnlpbmcgcGFyYWdyYXBocy4KKyMjIFRoaXMgbWF5IG5vdCBpbmNsdWRlIGFueSBibGFu
ayBjaGFyYWN0ZXJzLiAgT25seSBjbG9zaW5nIHB1bmN0dWF0aW9uLAorIyMgb3B0aW9uYWxseSBm
b2xsb3dlZCBieSB0aGVzZSBjbG9zaW5nIGJyYWNrZXRzLCBjYW4gZW5kIHNlbnRlbmNlcy4KKyMg
c2V0IGJyYWNrZXRzICIiJyk+XX0iCisKKyMjIEF1dG9tYXRpY2FsbHkgaGFyZC13cmFwIHRoZSBj
dXJyZW50IGxpbmUgd2hlbiBpdCBiZWNvbWVzIG92ZXJsb25nLgorIyBzZXQgYnJlYWtsb25nbGlu
ZXMKKworIyMgRG8gY2FzZS1zZW5zaXRpdmUgc2VhcmNoZXMgYnkgZGVmYXVsdC4KKyMgc2V0IGNh
c2VzZW5zaXRpdmUKKworIyMgSW50ZXJwcmV0IGRpZ2l0cyBhZnRlciBhIGNvbG9uIGFmdGVyIGEg
ZmlsZW5hbWUgKG9uIHRoZSBjb21tYW5kIGxpbmUpCisjIyBhcyB0aGUgbGluZSBudW1iZXIgdG8g
Z28gdG8gaW4gdGhhdCBmaWxlLgorIyBzZXQgY29sb25wYXJzaW5nCisKKyMjIENvbnN0YW50bHkg
cmVwb3J0IHRoZSBjdXJzb3IgcG9zaXRpb24sIGluIHRoZSBzdGF0dXMgYmFyIG9yIG1pbmliYXIu
CisjIHNldCBjb25zdGFudHNob3cKKworIyMgVXNlIGN1dC1mcm9tLWN1cnNvci10by1lbmQtb2Yt
bGluZSBieSBkZWZhdWx0LgorIyBzZXQgY3V0ZnJvbWN1cnNvcgorCisjIyBEbyBub3QgdXNlIHRo
ZSBsaW5lIGJlbG93IHRoZSB0aXRsZSBiYXIsIGxlYXZpbmcgaXQgZW50aXJlbHkgYmxhbmsuCisj
IHNldCBlbXB0eWxpbmUKKworIyMgU2V0IHRoZSB0YXJnZXQgd2lkdGggZm9yIGF1dG9tYXRpYyBo
YXJkLXdyYXBwaW5nIGFuZCBmb3IganVzdGlmeWluZworIyMgcGFyYWdyYXBocy4gIElmIHRoZSBz
cGVjaWZpZWQgdmFsdWUgaXMgMCBvciBsZXNzLCB0aGUgd3JhcHBpbmcgcG9pbnQKKyMjIHdpbGwg
YmUgdGhlIHRlcm1pbmFsJ3Mgd2lkdGggbWludXMgdGhpcyBudW1iZXIuCisjIHNldCBmaWxsIC04
CisKKyMjIERyYXcgYSB2ZXJ0aWNhbCBzdHJpcGUgYXQgdGhlIGdpdmVuIGNvbHVtbiwgdG8gaGVs
cCBqdWRnZSB0ZXh0IHdpZHRoLgorIyMgKFRoaXMgb3B0aW9uIGRvZXMgbm90IGhhdmUgYSBkZWZh
dWx0IHZhbHVlLikKKyMgc2V0IGd1aWRlc3RyaXBlIDc1CisKKyMjIFJlbWVtYmVyIHRoZSB1c2Vk
IHNlYXJjaC9yZXBsYWNlL2NvbW1hbmQgc3RyaW5ncyBmb3IgdGhlIG5leHQgc2Vzc2lvbi4KKyMg
c2V0IGhpc3Rvcnlsb2cKKworIyMgRGlzcGxheSBhICJzY3JvbGxiYXIiIG9uIHRoZSByaWdodGhh
bmQgc2lkZSBvZiB0aGUgZWRpdCB3aW5kb3cuCisjIHNldCBpbmRpY2F0b3IKKworIyMgU2Nyb2xs
IHRoZSBidWZmZXIgY29udGVudHMgcGVyIGhhbGYtc2NyZWVuIGluc3RlYWQgb2YgcGVyIGxpbmUu
CisjIHNldCBqdW1weXNjcm9sbGluZworCisjIyBEaXNwbGF5IGxpbmUgbnVtYmVycyB0byB0aGUg
bGVmdCAoYW5kIGFueSBhbmNob3JzIGluIHRoZSBtYXJnaW4pLgorIyBzZXQgbGluZW51bWJlcnMK
KworIyMgTGV0IG90aGVyIHVzZXJzIChvZiBuYW5vIG9yIHZpbSkga25vdyB0aGF0IHlvdSBhcmUg
ZWRpdGluZyB0aGUgZmlsZQorIyMgdGhleSBhcmUgdHJ5aW5nIHRvIGVkaXQsIGFuZCB0aGUgb3Ro
ZXIgd2F5IGFyb3VuZC4KKyMgc2V0IGxvY2tpbmcKKworIyMgRmFsbCBiYWNrIHRvIHNsb3cgbGli
bWFnaWMgdG8gdHJ5IGFuZCBkZXRlcm1pbmUgYW4gYXBwbGljYWJsZSBzeW50YXguCisjIHNldCBt
YWdpYworCisjIyBUaGUgb3BlbmluZyBhbmQgY2xvc2luZyBicmFja2V0cyB0aGF0IGFyZSBmb3Vu
ZCBieSBhIG1hdGNoaW5nLWJyYWNrZXQKKyMjIHNlYXJjaC4gIFRoaXMgbWF5IG5vdCBjb250YWlu
IGJsYW5rIGNoYXJhY3RlcnMuICBUaGUgb3BlbmluZyBicmFja2V0cworIyMgbXVzdCBjb21lIGJl
Zm9yZSB0aGUgY2xvc2luZyBvbmVzLCBhbmQgdGhleSBtdXN0IGJlIGluIHRoZSBzYW1lIG9yZGVy
LgorIyBzZXQgbWF0Y2hicmFja2V0cyAiKDxbeyk+XX0iCisKKyMjIFN1cHByZXNzIHRoZSB0aXRs
ZSBiYXIgYW5kIHNob3cgdGhlIGZpbGVuYW1lIHBsdXMgYSBjdXJzb3ItcG9zaXRpb24KKyMjIHBl
cmNlbnRhZ2UgaW4gdGhlIHNwYWNlIG9mIHRoZSBzdGF0dXMgYmFyLgorIyBzZXQgbWluaWJhcgor
CisjIyBFbmFibGUgbW91c2Ugc3VwcG9ydCwgaWYgYXZhaWxhYmxlIGZvciB5b3VyIHN5c3RlbS4g
IFdoZW4gZW5hYmxlZCwKKyMjIG1vdXNlIGNsaWNrcyBjYW4gYmUgdXNlZCB0byBwbGFjZSB0aGUg
Y3Vyc29yLCBzZXQgdGhlIG1hcmsgKHdpdGgKKyMjIHR3byBjbGlja3MpLCBhbmQgZXhlY3V0ZSBz
aG9ydGN1dHMuICBUaGUgbW91c2Ugd2lsbCB3b3JrIGluIHRoZQorIyMgWCBXaW5kb3cgU3lzdGVt
LCBhbmQgb24gdGhlIGNvbnNvbGUgd2hlbiBncG0gaXMgcnVubmluZy4KKyMgc2V0IG1vdXNlCisK
KyMjIFN3aXRjaCBvbiBtdWx0aXBsZSBmaWxlIGJ1ZmZlcnMgKGluc2VydGluZyBhIGZpbGUgd2ls
bCBwdXQgaXQgaW50bworIyMgYSBzZXBhcmF0ZSBidWZmZXIpLgorIyBzZXQgbXVsdGlidWZmZXIK
KworIyMgRG9uJ3QgY29udmVydCBmaWxlcyBmcm9tIERPUyBmb3JtYXQuCisjIHNldCBub2NvbnZl
cnQKKworIyMgRG9uJ3QgZGlzcGxheSB0aGUgaGVscGZ1bCBzaG9ydGN1dCBsaXN0cyBhdCB0aGUg
Ym90dG9tIG9mIHRoZSBzY3JlZW4uCisjIHNldCBub2hlbHAKKworIyMgRG9uJ3QgYXV0b21hdGlj
YWxseSBhZGQgYSBuZXdsaW5lIHdoZW4gYSBmaWxlIGRvZXMgbm90IGVuZCB3aXRoIG9uZS4KKyMg
c2V0IG5vbmV3bGluZXMKKworIyMgU2V0IG9wZXJhdGluZyBkaXJlY3RvcnkuICBuYW5vIHdpbGwg
bm90IHJlYWQgb3Igd3JpdGUgZmlsZXMgb3V0c2lkZQorIyMgdGhpcyBkaXJlY3RvcnkgYW5kIGl0
cyBzdWJkaXJlY3Rvcmllcy4gIEFsc28sIHRoZSBjdXJyZW50IGRpcmVjdG9yeQorIyMgaXMgY2hh
bmdlZCB0byBoZXJlLCBzbyBhbnkgZmlsZXMgYXJlIGluc2VydGVkIGZyb20gdGhpcyBkaXIuICBB
IGJsYW5rCisjIyBzdHJpbmcgbWVhbnMgdGhlIG9wZXJhdGluZy1kaXJlY3RvcnkgZmVhdHVyZSBp
cyB0dXJuZWQgb2ZmLgorIyBzZXQgb3BlcmF0aW5nZGlyICIiCisKKyMjIFJlbWVtYmVyIHRoZSBw
b3NpdGlvbiBvZiBjdXJzb3IgYW5kIGFuY2hvcnMgZm9yIHRoZSBuZXh0IGVkaXRpbmcgc2Vzc2lv
bi4KKyMgc2V0IHBvc2l0aW9ubG9nCisKKyMjIFByZXNlcnZlIHRoZSBYT04gYW5kIFhPRkYga2V5
cyAoXlEgYW5kIF5TKS4KKyMgc2V0IHByZXNlcnZlCisKKyMjIFRoZSBjaGFyYWN0ZXJzIHRyZWF0
ZWQgYXMgY2xvc2luZyBwdW5jdHVhdGlvbiB3aGVuIGp1c3RpZnlpbmcgcGFyYWdyYXBocy4KKyMj
IFRoaXMgbWF5IG5vdCBjb250YWluIGJsYW5rIGNoYXJhY3RlcnMuICBPbmx5IHRoZXNlIHRlcm1p
bmF0aW5nIGNoYXJhY3RlcnMsCisjIyBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5IGNsb3NpbmcgYnJh
Y2tldHMsIGNhbiBlbmQgc2VudGVuY2VzLgorIyBzZXQgcHVuY3QgIiEuPyIKKworIyMgTWFrZSBz
dGF0dXMtYmFyIG1lc3NhZ2VzIGRpc2FwcGVhciBhZnRlciAxIGtleXN0cm9rZSBpbnN0ZWFkIG9m
IGFmdGVyIDIwLgorIyBzZXQgcXVpY2tibGFuaworCisjIyBUaGUgcmVndWxhciBleHByZXNzaW9u
IHRoYXQgbWF0Y2hlcyBxdW90aW5nIGNoYXJhY3RlcnMgaW4gZW1haWwKKyMjIG9yIGxpbmUtY29t
bWVudCBpbnRyb2R1Y2VycyBpbiBzb3VyY2UgY29kZS4gIFRoZSBkZWZhdWx0IGlzOgorIyBzZXQg
cXVvdGVzdHIgIl4oWyAJXSooWyEjJTo7Pnx9XXwvLykpKyIKKworIyMgVHJ5IHRvIHdvcmsgYXJv
dW5kIGEgbWlzbWF0Y2hpbmcgdGVybWluZm8gdGVybWluYWwgZGVzY3JpcHRpb24uCisjIHNldCBy
YXdzZXF1ZW5jZXMKKworIyMgRml4IEJhY2tzcGFjZS9EZWxldGUgY29uZnVzaW9uIHByb2JsZW0u
CisjIHNldCByZWJpbmRkZWxldGUKKworIyMgRG8gcmVndWxhci1leHByZXNzaW9uIHNlYXJjaGVz
IGJ5IGRlZmF1bHQuCisjIyBSZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBvZiB0aGUgZXh0ZW5kZWQg
dHlwZSAoRVJFKS4KKyMgc2V0IHJlZ2V4cAorCisjIyBTYXZlIGEgY2hhbmdlZCBidWZmZXIgYXV0
b21hdGljYWxseSBvbiBleGl0OyBkb24ndCBwcm9tcHQuCisjIHNldCBzYXZlb25leGl0CisKKyMj
IFB1dCB0aGUgY3Vyc29yIG9uIHRoZSBoaWdobGlnaHRlZCBpdGVtIGluIHRoZSBmaWxlIGJyb3dz
ZXIsIGFuZAorIyMgc2hvdyB0aGUgY3Vyc29yIGluIHRoZSBoZWxwIHZpZXdlcjsgdXNlZnVsIGZv
ciBwZW9wbGUgd2hvIHVzZSBhCisjIyBicmFpbGxlIGRpc3BsYXkgYW5kIHBlb3BsZSB3aXRoIHBv
b3IgdmlzaW9uLgorIyBzZXQgc2hvd2N1cnNvcgorCisjIyBNYWtlIHRoZSBIb21lIGtleSBzbWFy
dGVyOiB3aGVuIEhvbWUgaXMgcHJlc3NlZCBhbnl3aGVyZSBidXQgYXQgdGhlCisjIyB2ZXJ5IGJl
Z2lubmluZyBvZiBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXJzIG9uIGEgbGluZSwgdGhlIGN1cnNv
cgorIyMgd2lsbCBqdW1wIHRvIHRoYXQgYmVnaW5uaW5nIChlaXRoZXIgZm9yd2FyZHMgb3IgYmFj
a3dhcmRzKS4gIElmIHRoZQorIyMgY3Vyc29yIGlzIGFscmVhZHkgYXQgdGhhdCBwb3NpdGlvbiwg
aXQgd2lsbCBqdW1wIHRvIHRoZSB0cnVlIHN0YXJ0CisjIyBvZiB0aGUgbGluZSAodGhlIGxlZnQg
ZWRnZSkuCisjIHNldCBzbWFydGhvbWUKKworIyMgU3ByZWFkIG92ZXJsb25nIGxpbmVzIG92ZXIg
bXVsdGlwbGUgc2NyZWVuIGxpbmVzLgorIyBzZXQgc29mdHdyYXAKKworIyMgU2Nyb2xsIG9ubHkg
dGhlIGN1cnJlbnQgbGluZSBzaWRld2F5cyAoaW5zdGVhZCBvZiBhbGwgbGluZXMpLgorIyBzZXQg
c29sb3NpZGVzY3JvbGwKKworIyMgVXNlIHRoaXMgc3BlbGxpbmcgY2hlY2tlciBpbnN0ZWFkIG9m
IHRoZSBpbnRlcm5hbCBvbmUuICBUaGlzIG9wdGlvbgorIyMgZG9lcyBub3QgaGF2ZSBhIGRlZmF1
bHQgdmFsdWUuCisjIHNldCBzcGVsbGVyICJhc3BlbGwgLXggLWMiCisKKyMjIFVzZSB0aGUgZW5k
IG9mIHRoZSB0aXRsZSBiYXIgZm9yIHNvbWUgc3RhdGUgZmxhZ3M6IEkgPSBhdXRvLWluZGVudGlu
ZywKKyMjIE0gPSBtYXJrLCBMID0gaGFyZC13cmFwcGluZyBsb25nIGxpbmVzLCBSID0gcmVjb3Jk
aW5nLCBTID0gc29mdC13cmFwcGluZy4KKyMgc2V0IHN0YXRlZmxhZ3MKKworIyMgVXNlIHRoaXMg
dGFiIHNpemUgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdDsgaXQgbXVzdCBiZSBncmVhdGVyIHRoYW4g
MC4KKyMgc2V0IHRhYnNpemUgOAorCisjIyBDb252ZXJ0IGVhY2ggdHlwZWQgdGFiIHRvIHRoZSBm
aXR0aW5nIG51bWJlciBvZiBzcGFjZXMuCisjIHNldCB0YWJzdG9zcGFjZXMKKworIyMgU25pcCB3
aGl0ZXNwYWNlIGF0IHRoZSBlbmQgb2YgbGluZXMgd2hlbiBqdXN0aWZ5aW5nIG9yIGhhcmQtd3Jh
cHBpbmcuCisjIHNldCB0cmltYmxhbmtzCisKKyMjIFNhdmUgZmlsZXMgYWx3YXlzIGluIFVuaXgg
Zm9ybWF0IChhbHNvIHdoZW4gdGhleSB3ZXJlIERPUykuCisjIHNldCB1bml4CisKKyMjIFRoZSB0
d28gc2luZ2xlLWNvbHVtbiBjaGFyYWN0ZXJzIHVzZWQgdG8gZGlzcGxheSB0aGUgZmlyc3QgY2hh
cmFjdGVycworIyMgb2YgdGFicyBhbmQgc3BhY2VzLiAgMTg3IGluIElTTyA4ODU5LTEgKDAwMDBC
QiBpbiBVbmljb2RlKSBhbmQgMTgzIGluCisjIyBJU08tODg1OS0xICgwMDAwQjcgaW4gVW5pY29k
ZSkgc2VlbSB0byBiZSBnb29kIHZhbHVlcyBmb3IgdGhlc2UuCisjIyBUaGUgZGVmYXVsdCB3aGVu
IGluIGEgVVRGLTggbG9jYWxlOgorIyBzZXQgd2hpdGVzcGFjZSAiwrvCtyIKKyMjIFRoZSBkZWZh
dWx0IG90aGVyd2lzZToKKyMgc2V0IHdoaXRlc3BhY2UgIj4uIgorCisjIyBEZXRlY3Qgd29yZCBi
b3VuZGFyaWVzIGRpZmZlcmVudGx5IGJ5IHRyZWF0aW5nIHB1bmN0dWF0aW9uCisjIyBjaGFyYWN0
ZXJzIGFzIHBhcnRzIG9mIHdvcmRzLgorIyBzZXQgd29yZGJvdW5kcworCisjIyBUaGUgY2hhcmFj
dGVycyAoYmVzaWRlcyBhbHBoYW51bWVyaWMgb25lcykgdGhhdCBzaG91bGQgYmUgY29uc2lkZXJl
ZAorIyMgYXMgcGFydHMgb2Ygd29yZHMuICBUaGlzIG9wdGlvbiBkb2VzIG5vdCBoYXZlIGEgZGVm
YXVsdCB2YWx1ZS4gIFdoZW4KKyMjIHNldCwgaXQgb3ZlcnJpZGVzIG9wdGlvbiAnc2V0IHdvcmRi
b3VuZHMnLgorIyBzZXQgd29yZGNoYXJzICI8Xz4uIgorCisjIyBMZXQgYW4gdW5tb2RpZmllZCBC
YWNrc3BhY2Ugb3IgRGVsZXRlIGVyYXNlIHRoZSBtYXJrZWQgcmVnaW9uIChpbnN0ZWFkCisjIyBv
ZiBhIHNpbmdsZSBjaGFyYWN0ZXIsIGFuZCB3aXRob3V0IGFmZmVjdGluZyB0aGUgY3V0YnVmZmVy
KS4KKyMgc2V0IHphcAorCisjIyBIaWRlIHRoZSBiYXJzIHBsdXMgaGVscCBsaW5lcyBhbmQgdXNl
IHRoZSB3aG9sZSB0ZXJtaW5hbCBhcyBlZGl0IGFyZWEuCisjIHNldCB6ZXJvCisKKworIyMgUGFp
bnQgdGhlIGludGVyZmFjZSBlbGVtZW50cyBvZiBuYW5vLiAgVGhlc2UgYXJlIGV4YW1wbGVzOyB0
aGVyZSBhcmUKKyMjIG5vIGNvbG9ycyBieSBkZWZhdWx0LCBleGNlcHQgZm9yIGVycm9yY29sb3Ig
YW5kIHNwb3RsaWdodGNvbG9yLgorIyBzZXQgdGl0bGVjb2xvciBib2xkLHdoaXRlLGJsdWUKKyMg
c2V0IHByb21wdGNvbG9yIGxpZ2h0d2hpdGUsZ3JleQorIyBzZXQgc3RhdHVzY29sb3IgYm9sZCx3
aGl0ZSxncmVlbgorIyBzZXQgZXJyb3Jjb2xvciBib2xkLHdoaXRlLHJlZAorIyBzZXQgc3BvdGxp
Z2h0Y29sb3IgYmxhY2ssbGlnaHR5ZWxsb3cKKyMgc2V0IHNlbGVjdGVkY29sb3IgbGlnaHR3aGl0
ZSwjODA0CisjIHNldCBzdHJpcGVjb2xvciAsIzQ0NAorIyBzZXQgc2Nyb2xsZXJjb2xvciBzbGF0
ZSwjMjIyCisjIHNldCBudW1iZXJjb2xvciBjeWFuCisjIHNldCBrZXljb2xvciBjeWFuCisjIHNl
dCBmdW5jdGlvbmNvbG9yIGdyZWVuCisKKyMjIEluIHJvb3QncyAubmFub3JjIHlvdSBtaWdodCB3
YW50IHRvIHVzZToKKyMgc2V0IHRpdGxlY29sb3IgYm9sZCx3aGl0ZSxtYWdlbnRhCisjIHNldCBw
cm9tcHRjb2xvciBibGFjayx5ZWxsb3cKKyMgc2V0IHN0YXR1c2NvbG9yIGJvbGQsd2hpdGUsbWFn
ZW50YQorIyBzZXQgZXJyb3Jjb2xvciBib2xkLHdoaXRlLHJlZAorIyBzZXQgc3BvdGxpZ2h0Y29s
b3IgYmxhY2ssb3JhbmdlCisjIHNldCBzZWxlY3RlZGNvbG9yIGxpZ2h0d2hpdGUsY3lhbgorIyBz
ZXQgc3RyaXBlY29sb3IgLHllbGxvdworIyBzZXQgc2Nyb2xsZXJjb2xvciBtYWdlbnRhCisjIHNl
dCBudW1iZXJjb2xvciBtYWdlbnRhCisjIHNldCBrZXljb2xvciBsaWdodG1hZ2VudGEKKyMgc2V0
IGZ1bmN0aW9uY29sb3IgbWFnZW50YQorCisKKyMjID09PSBTeW50YXggY29sb3JpbmcgPT09Cisj
IyBGb3IgYWxsIGRldGFpbHMsIHNlZSAnbWFuIG5hbm9yYycsIHNlY3Rpb24gU1lOVEFYIEhJR0hM
SUdIVElORy4KKworIyMgTW9zdCBvZiB0aGUgZXhpc3Rpbmcgc3ludGF4IGRlZmluaXRpb25zIGFy
ZSBpbmNsdWRlZCBieSBkZWZhdWx0OgoraW5jbHVkZSBAUEtHREFUQURJUkAvKi5uYW5vcmMKKwor
IyMgT3IgeW91IGNhbiBzZWxlY3QganVzdCB0aGUgb25lcyB5b3UgbmVlZC4gIEZvciBleGFtcGxl
OgorIyBpbmNsdWRlIEBQS0dEQVRBRElSQC9odG1sLm5hbm9yYworIyBpbmNsdWRlIEBQS0dEQVRB
RElSQC9weXRob24ubmFub3JjCisjIGluY2x1ZGUgQFBLR0RBVEFESVJAL3NoLm5hbm9yYworCisj
IyBJbiBAUEtHREFUQURJUkAvZXh0cmEvIHlvdSBjYW4gZmluZCBzb21lIHN5bnRheGVzIHRoYXQg
YXJlCisjIyBzcGVjaWZpYyBmb3IgY2VydGFpbiBkaXN0cm9zIG9yIGZvciBzb21lIGxlc3MgY29t
bW9uIGxhbmd1YWdlcy4KKworCisjIyBJZiA8VGFiPiBzaG91bGQgYWx3YXlzIHByb2R1Y2UgZm91
ciBzcGFjZXMgd2hlbiBlZGl0aW5nIGEgUHl0aG9uIGZpbGUsCisjIyBpbmRlcGVuZGVudCBvZiB0
aGUgc2V0dGluZ3Mgb2YgJ3RhYnNpemUnIGFuZCAndGFic3Rvc3BhY2VzJzoKKyMgZXh0ZW5kc3lu
dGF4IHB5dGhvbiB0YWJnaXZlcyAiICAgICIKKworCisjIyA9PT0gS2V5IGJpbmRpbmdzID09PQor
IyMgRm9yIGFsbCBkZXRhaWxzLCBzZWUgJ21hbiBuYW5vcmMnLCBzZWN0aW9uIFJFQklORElORyBL
RVlTLgorIyMKKyMjIEFsbCBvZiBuYW5vJ3MgZGVmYXVsdCBrZXkgYmluZGluZ3MgYXJlIGRlZmlu
ZWQgaGVyZS4gIFNpbmNlIG5vIGJpbmRpbmdzCisjIyBhcmUgY29tcGlsZWQgaW4sIHRoaXMgZmls
ZSAob3IgeW91ciBvd24gbmFub3JjKSBtdXN0IGJlIHByZXNlbnQgZm9yIHRoZQorIyMgZWRpdG9y
IHRvIHdvcmsuICBOYW5vIHdpbGwgcmVmdXNlIHRvIHN0YXJ0IGlmIG5vIGtleSBpcyBib3VuZCB0
byAiZXhpdCIKKyMjIGluIHRoZSBtYWluIG1lbnUuCisjIworIyMgVG8gY2hhbmdlIGEgYmluZGlu
ZywgZWRpdCB0aGUga2V5IHN0cmluZyBvbiBpdHMgbGluZS4KKyMjIFRvIGRpc2FibGUgYSBiaW5k
aW5nLCBjb21tZW50IG91dCBvciBkZWxldGUgaXRzIGxpbmUuCisjIyBUaGVyZSBpcyBubyBuZWVk
IHRvIHVzZSAndW5iaW5kJyBiZWZvcmUgYXNzaWduaW5nIGEga2V5OyBhIG5ldyBhc3NpZ25tZW50
CisjIyBhdXRvbWF0aWNhbGx5IHNoYWRvd3MgYW55IGVhcmxpZXIgb25lIGZvciB0aGUgc2FtZSBr
ZXkgaW4gdGhlIHNhbWUgbWVudS4KKyMjCisjIyBFYWNoICdiaW5kJyBsaW5lIGFjY2VwdHMgZXhh
Y3RseSBvbmUgbWVudSBuYW1lLiAgVmFsaWQgbWVudSBuYW1lcyBhcmU6CisjIyAgIG1haW4gIHNl
YXJjaCAgcmVwbGFjZSAgcmVwbGFjZXdpdGggIHllc25vICBnb3RvbGluZSAgd3JpdGVvdXQgIGlu
c2VydAorIyMgICBleGVjdXRlICBoZWxwICBzcGVsbCAgbGludGVyICBicm93c2VyICB3aGVyZWlz
ZmlsZSAgZ290b2RpciAgYWxsCisjIyAiYWxsIiBjb3ZlcnMgZXZlcnkgbWVudS4gIExhdGVyIGxp
bmVzIHRha2UgcHJlY2VkZW5jZSBvdmVyIGVhcmxpZXIgb25lcworIyMgZm9yIHRoZSBzYW1lIGtl
eSBhbmQgbWVudSwgc28gZ2VuZXJhbCBiaW5kaW5ncyBjb21lIGZpcnN0IGhlcmUgYW5kCisjIyBt
ZW51LXNwZWNpZmljIG92ZXJyaWRlcyBjb21lIGFmdGVyLgorIyMKKyMjIEZvciB0aGUgY29tcGxl
dGUgbGlzdCBvZiBmdW5jdGlvbiBuYW1lcywgc2VlICdtYW4gbmFub3JjJy4KKworCisjIyMjIyBN
ZW51OiBhbGwKKworIyMgLS0gVGV4dCBlbnRyeSBhbmQgZGVsZXRpb24gLS0KK2JpbmQgRW50ZXIg
ICAgZW50ZXIgICAgICBhbGwKK2JpbmQgXk0gICAgICAgZW50ZXIgICAgICBhbGwKK2JpbmQgVGFi
ICAgICAgdGFiICAgICAgICBhbGwKK2JpbmQgXkkgICAgICAgdGFiICAgICAgICBhbGwKKworIyMg
QmFja3NwYWNlIGFuZCBEZWxldGUgd29yayB0aGUgc2FtZSBpbiBhbGwgcHJvbXB0IG1lbnVzOgor
YmluZCBCc3AgICAgICBiYWNrc3BhY2UgIGFsbAorYmluZCBTaC1EZWwgICBiYWNrc3BhY2UgIGFs
bAorYmluZCBEZWwgICAgICBkZWxldGUgICAgIGFsbAorCisjIyAtLSBDdXJzb3IgbW92ZW1lbnQg
LS0KK2JpbmQgTGVmdCAgICAgYmFjayAgICAgICBhbGwKK2JpbmQgUmlnaHQgICAgZm9yd2FyZCAg
ICBhbGwKK2JpbmQgVXAgICAgICAgcHJldmxpbmUgICBhbGwKK2JpbmQgRG93biAgICAgbmV4dGxp
bmUgICBhbGwKKworIyMgV29yZC1sZXZlbCBtb3ZlbWVudDoKK2JpbmQgXkxlZnQgICAgcHJldndv
cmQgICBhbGwKK2JpbmQgXlJpZ2h0ICAgbmV4dHdvcmQgICBhbGwKK2JpbmQgTS1TcGFjZSAgcHJl
dndvcmQgICBhbGwKK2JpbmQgXlNwYWNlICAgbmV4dHdvcmQgICBhbGwKKworIyMgQmVnaW5uaW5n
IGFuZCBlbmQgb2YgbGluZToKK2JpbmQgSG9tZSAgICAgaG9tZSAgICAgICBhbGwKK2JpbmQgRW5k
ICAgICAgZW5kICAgICAgICBhbGwKK2JpbmQgXkEgICAgICAgaG9tZSAgICAgICBhbGwKK2JpbmQg
XkUgICAgICAgZW5kICAgICAgICBhbGwKKworIyMgUGFnZSB1cC9kb3duOgorYmluZCBQZ1VwICAg
ICBwYWdldXAgICAgIGFsbAorYmluZCBQZ0RuICAgICBwYWdlZG93biAgIGFsbAorIyMjYmluZCBe
WSAgICAgICBwYWdldXAgICAgIGFsbAorYmluZCBeViAgICAgICBwYWdlZG93biAgIGFsbAorYmlu
ZCBGNyAgICAgICBwYWdldXAgICAgIGFsbAorYmluZCBGOCAgICAgICBwYWdlZG93biAgIGFsbAor
CisjIyBSZWZyZXNoIHRoZSBzY3JlZW47IGluIG1haW4sIGFsc28gY2VudGVycyB0aGUgY3Vyc29y
IGxpbmU6CitiaW5kIF5MICAgICAgIHJlZnJlc2ggICAgYWxsCisKKyMjIC0tIEhlbHAsIGV4aXQs
IGFuZCBjYW5jZWwgLS0KK2JpbmQgRjEgICAgICAgaGVscCAgICAgICBhbGwKK2JpbmQgXkggICAg
ICAgaGVscCAgICAgICBhbGwKKworIyMgXkMgY2FuY2VscyBpbiBwcm9tcHRzLCByZXBvcnRzIHBv
c2l0aW9uIGluIG1haW4sIGFuZCBleGl0cyBpbiBicm93c2VyL2hlbHA6CitiaW5kIF5DICAgICAg
IGNhbmNlbCAgICAgYWxsCitiaW5kIF5RICAgICAgIGV4aXQgICAgICAgYWxsCisKKyMjIC0tIEVk
aXRpbmcgLS0KK2JpbmQgXksgICAgICAgY3V0ICAgICAgICBhbGwKK2JpbmQgRjkgICAgICAgY3V0
ICAgICAgICBhbGwKK2JpbmQgTS02ICAgICAgY29weSAgICAgICBhbGwKK2JpbmQgTS1eICAgICAg
Y29weSAgICAgICBhbGwKK2JpbmQgRjEwICAgICAgcGFzdGUgICAgICBhbGwKK2JpbmQgXlYgICAg
ICAgcGFzdGUgICAgICBhbGwKKworIyMgRW50ZXIgYSBjaGFyYWN0ZXIgYnkgaXRzIGtleWNvZGU6
CitiaW5kIE0tViAgICAgIHZlcmJhdGltICAgYWxsCisKKyMjIC0tIFNlYXJjaGluZyAtLQorYmlu
ZCBeQiAgICAgICB3aGVyZXdhcyAgIGFsbAorYmluZCBeRiAgICAgICB3aGVyZWlzICAgIGFsbAor
YmluZCBGNiAgICAgICB3aGVyZWlzICAgIGFsbAorYmluZCBNLUIgICAgICBmaW5kcHJldmlvdXMg
IGFsbAorYmluZCBNLVEgICAgICBmaW5kcHJldmlvdXMgIGFsbAorYmluZCBeRCAgICAgICBmaW5k
cHJldmlvdXMgIGFsbAorYmluZCBNLUYgICAgICBmaW5kbmV4dCAgIGFsbAorYmluZCBNLVcgICAg
ICBmaW5kbmV4dCAgIGFsbAorYmluZCBeRyAgICAgICBmaW5kbmV4dCAgIGFsbAorCisjIyAtLSBU
b2dnbGVzIChNZXRhICsgbGV0dGVyKSAtLQorYmluZCBNLVggICAgICBub2hlbHAgICAgICAgICAg
ICAgYWxsCisKKyMjIC0tIEYta2V5IHNob3J0Y3V0cyAtLQorYmluZCBGNiAgICAgICB3aGVyZWlz
ICAgIGFsbAorYmluZCBGNyAgICAgICBwYWdldXAgICAgIGFsbAorYmluZCBGOCAgICAgICBwYWdl
ZG93biAgIGFsbAorYmluZCBGOSAgICAgICBjdXQgICAgICAgIGFsbAorYmluZCBGMTAgICAgICBw
YXN0ZSAgICAgIGFsbAorCisKKyMjIyMjICBNZW51OiBtYWluCisKKyMjIC0tIEVkaXRpbmcgLS0K
K2JpbmQgXlggICAgICAgY3V0ICAgICAgICBtYWluCitiaW5kIF5DICAgICAgIGNvcHkgICAgICAg
bWFpbgorCisKKyMjIEp1bXAgdG8gdGhlIHZlcnkgZmlyc3Qgb3IgbGFzdCBsaW5lIG9mIHRoZSBm
aWxlOgorYmluZCBNLVwgICAgICBmaXJzdGxpbmUgIG1haW4KK2JpbmQgXkhvbWUgICAgZmlyc3Rs
aW5lICBtYWluCitiaW5kIE0tLyAgICAgIGxhc3RsaW5lICAgbWFpbgorYmluZCBeRW5kICAgICBs
YXN0bGluZSAgIG1haW4KKworIyMgQmxvY2sgbmF2aWdhdGlvbiAoYmxhbmstbGluZS1zZXBhcmF0
ZWQgYmxvY2tzIC8gcGFyYWdyYXBocyk6CitiaW5kIF5VcCAgICAgIHByZXZibG9jayAgbWFpbgor
YmluZCBeRG93biAgICBuZXh0YmxvY2sgIG1haW4KK2JpbmQgTS03ICAgICAgcHJldmJsb2NrICBt
YWluCitiaW5kIE0tOCAgICAgIG5leHRibG9jayAgbWFpbgorYmluZCBNLSggICAgICBiZWdpbnBh
cmEgIG1haW4KK2JpbmQgTS05ICAgICAgYmVnaW5wYXJhICBtYWluCitiaW5kIE0tKSAgICAgIGVu
ZHBhcmEgICAgbWFpbgorYmluZCBNLTAgICAgICBlbmRwYXJhICAgIG1haW4KKworIyMgR28gdG8g
Zmlyc3Qgb3IgbGFzdCB2aXNpYmxlIHJvdyBpbiB0aGUgdmlld3BvcnQ6CitiaW5kIE0tSG9tZSAg
IHRvcHJvdyAgICAgbWFpbgorYmluZCBNLUVuZCAgICBib3R0b21yb3cgIG1haW4KKworIyMgU2Ny
b2xsIHRoZSB2aWV3cG9ydCB3aXRob3V0IG1vdmluZyB0aGUgY3Vyc29yIHRleHR1YWxseToKK2Jp
bmQgTS1VcCAgICAgc2Nyb2xsdXAgICBtYWluCitiaW5kIE0tRG93biAgIHNjcm9sbGRvd24gbWFp
bgorYmluZCBNLS0gICAgICBzY3JvbGx1cCAgIG1haW4KK2JpbmQgTS1fICAgICAgc2Nyb2xsdXAg
ICBtYWluCitiaW5kIE0tKyAgICAgIHNjcm9sbGRvd24gbWFpbgorYmluZCBNLT0gICAgICBzY3Jv
bGxkb3duIG1haW4KKworIyMgU2Nyb2xsIHNpZGV3YXlzICh1c2VmdWwgd2hlbiBzb2Z0d3JhcCBp
cyBvZmYpOgorYmluZCBNLTwgICAgICBzY3JvbGxsZWZ0ICBtYWluCitiaW5kIE0tPiAgICAgIHNj
cm9sbHJpZ2h0IG1haW4KKworIyMgUmVmcmVzaCB0aGUgc2NyZWVuOyBpbiBtYWluLCBhbHNvIGNl
bnRlcnMgdGhlIGN1cnNvciBsaW5lOgorYmluZCBeTCAgICAgICBjZW50ZXIgICAgIG1haW4KK2Jp
bmQgTS0lICAgICAgY3ljbGUgICAgICBtYWluCisKKyMjIENsYXNzaWMgRW1hY3Mtc3R5bGUgdXAv
ZG93biBpbiBtYWluLCBicm93c2VyLCBhbmQgaGVscDoKK2JpbmQgXlAgICAgICAgcHJldmxpbmUg
ICBtYWluCisjIyNiaW5kIF5OICAgICAgIG5leHRsaW5lICAgbWFpbgorCisjIyAtLSBIZWxwLCBl
eGl0LCBhbmQgY2FuY2VsIC0tCitiaW5kIF5YICAgICAgIGV4aXQgICAgICAgbWFpbgorYmluZCBG
MiAgICAgICBleGl0ICAgICAgIG1haW4KKworIyMgLS0gRmlsZSBvcGVyYXRpb25zIC0tCitiaW5k
IF5TICAgICAgIHNhdmVmaWxlICAgbWFpbgorYmluZCBeVyAgICAgICB3cml0ZW91dCAgIG1haW4K
K2JpbmQgRjMgICAgICAgd3JpdGVvdXQgICBtYWluCitiaW5kIF5SICAgICAgIGluc2VydCAgICAg
bWFpbgorYmluZCBeTyAgICAgICBpbnNlcnQgICAgIG1haW4KK2JpbmQgSW5zICAgICAgaW5zZXJ0
ICAgICBtYWluCitiaW5kIEY1ICAgICAgIGluc2VydCAgICAgbWFpbgorCisjIyAtLSBFZGl0aW5n
IC0tCitiaW5kIE0tQSAgICAgIG1hcmsgICAgICAgbWFpbgorYmluZCBeXiAgICAgICBtYXJrICAg
ICAgIG1haW4KK2JpbmQgXkEgICAgICAgbWFyayAgICAgICBtYWluCisKK2JpbmQgTS19ICAgICAg
aW5kZW50ICAgICBtYWluCitiaW5kIE0teyAgICAgIHVuaW5kZW50ICAgbWFpbgorYmluZCBTaC1U
YWIgICB1bmluZGVudCAgIG1haW4KKworYmluZCBNLVUgICAgICB1bmRvICAgICAgIG1haW4KK2Jp
bmQgXlogICAgICAgdW5kbyAgICAgICBtYWluCitiaW5kIE0tRSAgICAgIHJlZG8gICAgICAgbWFp
bgorYmluZCBeWSAgICAgICByZWRvICAgICAgIG1haW4KKworYmluZCBNLUJzcCAgICBjaG9wd29y
ZGxlZnQgICBtYWluCitiaW5kIFNoLV5EZWwgIGNob3B3b3JkbGVmdCAgIG1haW4KK2JpbmQgXkRl
bCAgICAgY2hvcHdvcmRyaWdodCAgbWFpbgorYmluZCBNLURlbCAgICB6YXAgICAgICAgICAgICBt
YWluCitiaW5kIF5LICAgInttYXJrfXtlbmR9e3phcH0iIG1haW4KK2JpbmQgXlUgICJ7bWFya317
aG9tZX17emFwfSIgbWFpbgorCitiaW5kIF5dICAgICAgIGNvbXBsZXRlICAgbWFpbgorYmluZCBN
LTMgICAgICBjb21tZW50ICAgIG1haW4KKworYmluZCBNLTogICAgICByZWNvcmRtYWNybyAgbWFp
bgorYmluZCBNLTsgICAgICBydW5tYWNybyAgICAgbWFpbgorCitiaW5kIE0tSW5zICAgIGFuY2hv
ciAgICAgbWFpbgorYmluZCBNLSIgICAgICBhbmNob3IgICAgIG1haW4KK2JpbmQgTS0nICAgICAg
bmV4dGFuY2hvciBtYWluCitiaW5kIE0tUGdVcCAgIHByZXZhbmNob3IgbWFpbgorYmluZCBNLVBn
RG4gICBuZXh0YW5jaG9yIG1haW4KKworIyMgU3dpdGNoIGJldHdlZW4gb3BlbiBidWZmZXJzOgor
YmluZCBNLSwgICAgICBwcmV2YnVmICAgIG1haW4KK2JpbmQgTS0uICAgICAgbmV4dGJ1ZiAgICBt
YWluCitiaW5kIE0tTGVmdCAgIHByZXZidWYgICAgbWFpbgorYmluZCBNLVJpZ2h0ICBuZXh0YnVm
ICAgIG1haW4KKworIyMgXkIvXkYgbW92ZSB0aGUgY3Vyc29yIGxlZnQvcmlnaHQgaW4gcHJvbXB0
cywgc2VhcmNoIGJhY2t3YXJkL2ZvcndhcmQgZWxzZXdoZXJlOgorYmluZCBeQiAgICAgICB3aGVy
ZXdhcyAgIG1haW4KK2JpbmQgXkYgICAgICAgd2hlcmVpcyAgICBtYWluCisKK2JpbmQgXlwgICAg
ICAgcmVwbGFjZSAgICBtYWluCitiaW5kIE0tUiAgICAgIHJlcGxhY2UgICAgbWFpbgorYmluZCBe
UiAgICAgICByZXBsYWNlICAgIG1haW4KKworYmluZCBNLV0gICAgICBmaW5kYnJhY2tldCAgbWFp
bgorCisjIyBHbyB0byBhIHNwZWNpZmljIGxpbmUgYW5kIGNvbHVtbiBudW1iZXI6CitiaW5kIF5f
ICAgICAgIGdvdG9saW5lICAgbWFpbgorYmluZCBNLUcgICAgICBnb3RvbGluZSAgIG1haW4KK2Jp
bmQgXi8gICAgICAgZ290b2xpbmUgICBtYWluCitiaW5kIF5UICAgICAgIGdvdG9saW5lICAgbWFp
bgorCisjIyAtLSBKdXN0aWZ5IC0tCitiaW5kIF5KICAgICAgIGp1c3RpZnkgICAgbWFpbgorYmlu
ZCBGNCAgICAgICBqdXN0aWZ5ICAgIG1haW4KKyMjI2JpbmQgTS1KICAgICAgZnVsbGp1c3RpZnkg
IG1haW4KKworIyMgLS0gU3BlbGwgY2hlY2tpbmcsIGxpbnRpbmcsIGFuZCBmb3JtYXR0aW5nIC0t
CitiaW5kIF5FICAgICAgIGV4ZWN1dGUgICAgbWFpbgorYmluZCBGMTIgICAgICBzcGVsbGVyICAg
IG1haW4KKworIyMgLS0gQ3Vyc29yIHBvc2l0aW9uIGFuZCB3b3JkIGNvdW50IC0tCitiaW5kIEYx
MSAgICAgIGxvY2F0aW9uICAgbWFpbgorYmluZCBeUCAgICAgICBsb2NhdGlvbiAgIG1haW4KK2Jp
bmQgTS1EICAgICAgd29yZGNvdW50ICBtYWluCisKKyMjIC0tIFRvZ2dsZXMgKE1ldGEgKyBsZXR0
ZXIpIC0tCitiaW5kIE0tWiAgICAgIHplcm8gICAgICAgICAgICAgICBtYWluCitiaW5kIE0tQyAg
ICAgIGNvbnN0YW50c2hvdyAgICAgICBtYWluCitiaW5kIE0tUyAgICAgIHNvZnR3cmFwICAgICAg
ICAgICBtYWluCitiaW5kIE0tJCAgICAgIHNvZnR3cmFwICAgICAgICAgICBtYWluCitiaW5kIE0t
TiAgICAgIGxpbmVudW1iZXJzICAgICAgICBtYWluCitiaW5kIE0tIyAgICAgIGxpbmVudW1iZXJz
ICAgICAgICBtYWluCitiaW5kIE0tUCAgICAgIHdoaXRlc3BhY2VkaXNwbGF5ICBtYWluCitiaW5k
IE0tWSAgICAgIG5vc3ludGF4ICAgICAgICAgICBtYWluCitiaW5kIE0tSCAgICAgIHNtYXJ0aG9t
ZSAgICAgICAgICBtYWluCitiaW5kIE0tSSAgICAgIGF1dG9pbmRlbnQgICAgICAgICBtYWluCiti
aW5kIE0tSyAgICAgIGN1dGZyb21jdXJzb3IgICAgICBtYWluCitiaW5kIE0tTCAgICAgIGJyZWFr
bG9uZ2xpbmVzICAgICBtYWluCitiaW5kIE0tTyAgICAgIHRhYnN0b3NwYWNlcyAgICAgICBtYWlu
CitiaW5kIE0tTSAgICAgIG1vdXNlICAgICAgICAgICAgICBtYWluCisKKyMjIC0tIEYta2V5IHNo
b3J0Y3V0cyAtLQorYmluZCBGMyAgICAgICB3cml0ZW91dCAgIG1haW4KK2JpbmQgRjQgICAgICAg
anVzdGlmeSAgICBtYWluCitiaW5kIEY1ICAgICAgIGluc2VydCAgICAgbWFpbgorYmluZCBGMTEg
ICAgICBsb2NhdGlvbiAgIG1haW4KK2JpbmQgRjEyICAgICAgc3BlbGxlciAgICBtYWluCisKKyMj
ID09PSBVc2VmdWwgY3VzdG9taXphdGlvbnMgKGNvbW1lbnRlZCBvdXQpID09PQorIyMgU3VzcGVu
ZCBuYW5vIHdpdGggYSBzaW5nbGUga2V5c3Ryb2tlIGluc3RlYWQgb2YgdmlhIF5UIF5aOgorIyBi
aW5kIF5aIHN1c3BlbmQgbWFpbgorCisjIyBNYWtlIEN0cmwrQmFja3NwYWNlIGRlbGV0ZSB0aGUg
d29yZCB0byB0aGUgbGVmdCAoaWYgXkggaXMgZnJlZSk6CisjIGJpbmQgXkggY2hvcHdvcmRsZWZ0
IG1haW4KKworIyMgSWYgeW91IHdhbnQgXkwgdG8gb25seSByZWZyZXNoIHRoZSBzY3JlZW4sIG5v
dCBjZW50ZXIgdGhlIGN1cnNvcjoKKyMgYmluZCBeTCByZWZyZXNoIG1haW4KKworIyMgRm9yIHF1
aWNrbHkgdXBwZXJjYXNpbmcgb3IgbG93ZXJjYXNpbmcgdGhlIHdvcmQgdW5kZXIgdGhlIGN1cnNv
cjoKKyMgYmluZCBTaC1NLVUgIntuZXh0d29yZH17bWFya317cHJldndvcmR9e2V4ZWN1dGV9fCBz
ZWQgJ3MvLiovXFUmLycge2VudGVyfSIgbWFpbgorIyBiaW5kIFNoLU0tTCAie25leHR3b3JkfXtt
YXJrfXtwcmV2d29yZH17ZXhlY3V0ZX18IHNlZCAncy8uKi9cTCYvJyB7ZW50ZXJ9IiBtYWluCisK
KyMjIENvcHkgdGhlIG1hcmtlZCByZWdpb24gdG8gdGhlIHN5c3RlbSBjbGlwYm9hcmQgKHJlcXVp
cmVzIHhzZWwpOgorIyBiaW5kIFNoLU0tQyAie2V4ZWN1dGV9fCB4c2VsIC1pYiB7ZW50ZXJ9e3Vu
ZG99IiBtYWluCisKKyMjIEZvciBzbmlwcGluZyB0cmFpbGluZyB3aGl0ZXNwYWNlIHdoZW4gc2F2
aW5nOgorIyBiaW5kIF5TICJ7ZXhlY3V0ZX18IHNlZCAncy9bWzpzcGFjZTpdXVwrJC8vJyB7ZW50
ZXJ9e3NhdmVmaWxlfSIgbWFpbgorCisKKworIyMjIyMgIE1lbnU6IHNlYXJjaAorCisjIyBJbiBo
aXN0b3J5LWNhcGFibGUgcHJvbXB0cywgVXAvRG93biBuYXZpZ2F0ZSB0aGUgaGlzdG9yeSBsaXN0
IGluc3RlYWQ6CitiaW5kIFVwICAgICAgIG9sZGVyICAgICAgc2VhcmNoCitiaW5kIF5QICAgICAg
IG9sZGVyICAgICAgc2VhcmNoCitiaW5kIERvd24gICAgIG5ld2VyICAgICAgc2VhcmNoCitiaW5k
IF5OICAgICAgIG5ld2VyICAgICAgc2VhcmNoCisKKyMjIFRvZ2dsZXMgaW4gdGhlIHNlYXJjaCBh
bmQgcmVwbGFjZSBwcm9tcHRzOgorYmluZCBNLUMgICAgICBjYXNlc2VucyAgIHNlYXJjaAorYmlu
ZCBNLVIgICAgICByZWdleHAgICAgIHNlYXJjaAorYmluZCBNLUIgICAgICBiYWNrd2FyZHMgIHNl
YXJjaAorYmluZCBeUiAgICAgICBmbGlwcmVwbGFjZSAgc2VhcmNoCitiaW5kIF5UICAgICAgIGZs
aXBnb3RvICAgc2VhcmNoCitiaW5kIF4vICAgICAgIGZsaXBnb3RvICAgc2VhcmNoCisKKworIyMj
IyMgIE1lbnU6IHJlcGxhY2UKKworIyMgSW4gaGlzdG9yeS1jYXBhYmxlIHByb21wdHMsIFVwL0Rv
d24gbmF2aWdhdGUgdGhlIGhpc3RvcnkgbGlzdCBpbnN0ZWFkOgorYmluZCBVcCAgICAgICBvbGRl
ciAgICAgIHJlcGxhY2UKK2JpbmQgRG93biAgICAgbmV3ZXIgICAgICByZXBsYWNlCisKKyMjIElu
IGhpc3RvcnktY2FwYWJsZSBwcm9tcHRzLCBeUC9eTiBuYXZpZ2F0ZSB0aGUgaGlzdG9yeSBsaXN0
OgorYmluZCBeUCAgICAgICBvbGRlciAgICAgIHJlcGxhY2UKK2JpbmQgXk4gICAgICAgbmV3ZXIg
ICAgICByZXBsYWNlCisKKyMjIFRvZ2dsZXMgaW4gdGhlIHNlYXJjaCBhbmQgcmVwbGFjZSBwcm9t
cHRzOgorYmluZCBNLUMgICAgICBjYXNlc2VucyAgICAgcmVwbGFjZQorYmluZCBNLVIgICAgICBy
ZWdleHAgICAgICAgcmVwbGFjZQorYmluZCBNLUIgICAgICBiYWNrd2FyZHMgICAgcmVwbGFjZQor
YmluZCBeUiAgICAgICBmbGlwcmVwbGFjZSAgcmVwbGFjZQorCisKKyMjIyMjICBNZW51OiByZXBs
YWNld2l0aAorCisjIyBJbiBoaXN0b3J5LWNhcGFibGUgcHJvbXB0cywgVXAvRG93biBuYXZpZ2F0
ZSB0aGUgaGlzdG9yeSBsaXN0IGluc3RlYWQ6CitiaW5kIFVwICAgICAgIG9sZGVyICAgICAgcmVw
bGFjZXdpdGgKK2JpbmQgRG93biAgICAgbmV3ZXIgICAgICByZXBsYWNld2l0aAorCisjIyBJbiBo
aXN0b3J5LWNhcGFibGUgcHJvbXB0cywgXlAvXk4gbmF2aWdhdGUgdGhlIGhpc3RvcnkgbGlzdDoK
K2JpbmQgXlAgICAgICAgb2xkZXIgICAgICByZXBsYWNld2l0aAorYmluZCBeTiAgICAgICBuZXdl
ciAgICAgIHJlcGxhY2V3aXRoCisKKworIyMjIyMgIE1lbnU6IHllc25vCisKKworIyMjIyMgIE1l
bnU6IGdvdG9saW5lCisKKyMjIEluIHRoZSBnb3RvbGluZSBhbmQgc2VhcmNoIHByb21wdHMsIF5Z
L15WIGp1bXAgdG8gZmlyc3QvbGFzdCBsaW5lOgorIyMjYmluZCBeWSAgICAgICBmaXJzdGxpbmUg
IGdvdG9saW5lCitiaW5kIF5WICAgICAgIGxhc3RsaW5lICAgZ290b2xpbmUKKworIyMgVG9nZ2xl
cyBpbiB0aGUgc2VhcmNoIGFuZCByZXBsYWNlIHByb21wdHM6CitiaW5kIF5UICAgICAgIGZsaXBn
b3RvICAgZ290b2xpbmUKK2JpbmQgXi8gICAgICAgZmxpcGdvdG8gICBnb3RvbGluZQorCisjIyBJ
biB0aGUgZ290b2xpbmUgcHJvbXB0LCBuYXZpZ2F0ZSBieSBwYXJhZ3JhcGg6CitiaW5kIF5XICAg
ICAgIGJlZ2lucGFyYSAgZ290b2xpbmUKK2JpbmQgXk8gICAgICAgZW5kcGFyYSAgICBnb3RvbGlu
ZQorCisjIyMjIyAgTWVudTogd3JpdGVvdXQKKworIyMgT3BlbiB0aGUgZmlsZSBicm93c2VyIGZy
b20gdGhlIHdyaXRlb3V0IG9yIGluc2VydCBwcm9tcHQ6CitiaW5kIF5UICAgICAgIHRvZmlsZXMg
ICAgd3JpdGVvdXQKKworIyMgT3B0aW9ucyBpbiB0aGUgd3JpdGUtb3V0IHByb21wdDoKK2JpbmQg
XlEgICAgICAgZGlzY2FyZGJ1ZmZlciAgd3JpdGVvdXQKK2JpbmQgTS1EICAgICAgZG9zZm9ybWF0
ICAgICAgd3JpdGVvdXQKK2JpbmQgTS1CICAgICAgYmFja3VwICAgICAgICAgd3JpdGVvdXQKK2Jp
bmQgTS1BICAgICAgYXBwZW5kICAgICAgICAgd3JpdGVvdXQKK2JpbmQgTS1QICAgICAgcHJlcGVu
ZCAgICAgICAgd3JpdGVvdXQKKworIyMjIyMgIE1lbnU6IGluc2VydAorCisjIyBPcGVuIHRoZSBm
aWxlIGJyb3dzZXIgZnJvbSB0aGUgd3JpdGVvdXQgb3IgaW5zZXJ0IHByb21wdDoKK2JpbmQgXlQg
ICAgICAgdG9maWxlcyAgICBpbnNlcnQKKworIyMgT3B0aW9ucyBpbiB0aGUgaW5zZXJ0IGFuZCBl
eGVjdXRlIHByb21wdHM6CitiaW5kIF5YICAgICAgIGZsaXBleGVjdXRlICAgIGluc2VydAorYmlu
ZCBNLU4gICAgICBmbGlwY29udmVydCAgICBpbnNlcnQKK2JpbmQgTS1GICAgICAgZmxpcG5ld2J1
ZmZlciAgaW5zZXJ0CisKKyMjIyMjICBNZW51OiBleGVjdXRlCisKKyMjIEluIGhpc3RvcnktY2Fw
YWJsZSBwcm9tcHRzLCBVcC9Eb3duIG5hdmlnYXRlIHRoZSBoaXN0b3J5IGxpc3QgaW5zdGVhZDoK
K2JpbmQgVXAgICAgICAgb2xkZXIgICAgICBleGVjdXRlCitiaW5kIERvd24gICAgIG5ld2VyICAg
ICAgZXhlY3V0ZQorCisjIyBJbiBoaXN0b3J5LWNhcGFibGUgcHJvbXB0cywgXlAvXk4gbmF2aWdh
dGUgdGhlIGhpc3RvcnkgbGlzdDoKK2JpbmQgXlAgICAgICAgb2xkZXIgICAgICBleGVjdXRlCiti
aW5kIF5OICAgICAgIG5ld2VyICAgICAgZXhlY3V0ZQorCisjIyBPcHRpb25zIGluIHRoZSBpbnNl
cnQgYW5kIGV4ZWN1dGUgcHJvbXB0czoKK2JpbmQgTS1GICAgICAgZmxpcG5ld2J1ZmZlciAgZXhl
Y3V0ZQorYmluZCBNLVwgICAgICBmbGlwcGlwZSAgICAgICBleGVjdXRlCitiaW5kIF5WICAgICAg
IGN1dHJlc3RvZmZpbGUgIGV4ZWN1dGUKK2JpbmQgXlQgICAgICAgY3V0cmVzdG9mZmlsZSAgZXhl
Y3V0ZQorCisjIyBTdXNwZW5kIHRvIHRoZSBiYWNrZ3JvdW5kICh2aWEgdGhlIGV4ZWN1dGUgbWVu
dTogXlQgdGhlbiBeWik6CitiaW5kIF5aICAgICAgIHN1c3BlbmQgICAgZXhlY3V0ZQorCisjIyAt
LSBKdXN0aWZ5IC0tCitiaW5kIF5KICAgICAgIGZ1bGxqdXN0aWZ5ICBleGVjdXRlCisKKyMjIC0t
IFNwZWxsIGNoZWNraW5nLCBsaW50aW5nLCBhbmQgZm9ybWF0dGluZyAtLQorYmluZCBeUyAgICAg
ICBzcGVsbGVyICAgIGV4ZWN1dGUKK2JpbmQgXlQgICAgICAgc3BlbGxlciAgICBleGVjdXRlCiti
aW5kIF5MICAgICAgIGxpbnRlciAgICAgZXhlY3V0ZQorYmluZCBeTyAgICAgICBmb3JtYXR0ZXIg
IGV4ZWN1dGUKKworCisjIyMjIyAgTWVudTogaGVscAorCisjIyBJbiB0aGUgZmlsZSBicm93c2Vy
IGFuZCBoZWxwIHZpZXdlciwgQnNwL1NoLURlbCBzY3JvbGwgYSBwYWdlIHVwOgorYmluZCBCc3Ag
ICAgICBwYWdldXAgICAgIGhlbHAKK2JpbmQgU2gtRGVsICAgcGFnZXVwICAgICBoZWxwCitiaW5k
IFNwYWNlICAgIHBhZ2Vkb3duICAgaGVscAorCisjIyBJbiB0aGUgaGVscCB2aWV3ZXIsIEhvbWUv
RW5kIGp1bXAgdG8gdGhlIGZpcnN0L2xhc3QgbGluZToKK2JpbmQgSG9tZSAgICAgZmlyc3RsaW5l
ICBoZWxwCitiaW5kIEVuZCAgICAgIGxhc3RsaW5lICAgaGVscAorCisjIyBKdW1wIHRvIHRoZSB2
ZXJ5IGZpcnN0IG9yIGxhc3QgbGluZSBvZiB0aGUgZmlsZToKK2JpbmQgTS1cICAgICAgZmlyc3Rs
aW5lICBoZWxwCitiaW5kIF5Ib21lICAgIGZpcnN0bGluZSAgaGVscAorYmluZCBNLS8gICAgICBs
YXN0bGluZSAgIGhlbHAKK2JpbmQgXkVuZCAgICAgbGFzdGxpbmUgICBoZWxwCisKKyMjIENsYXNz
aWMgRW1hY3Mtc3R5bGUgdXAvZG93biBpbiBtYWluLCBicm93c2VyLCBhbmQgaGVscDoKK2JpbmQg
XlAgICAgICAgcHJldmxpbmUgICBoZWxwCitiaW5kIF5OICAgICAgIG5leHRsaW5lICAgaGVscAor
CisjIyAtLSBIZWxwLCBleGl0LCBhbmQgY2FuY2VsIC0tCitiaW5kIF5IICAgICAgIGV4aXQgICAg
ICAgaGVscAorYmluZCBGMSAgICAgICBleGl0ICAgICAgIGhlbHAKK2JpbmQgXlggICAgICAgZXhp
dCAgICAgICBoZWxwCitiaW5kIEYyICAgICAgIGV4aXQgICAgICAgaGVscAorYmluZCBeQyAgICAg
ICBleGl0ICAgICAgIGhlbHAKKworIyMgXkIvXkYgbW92ZSB0aGUgY3Vyc29yIGxlZnQvcmlnaHQg
aW4gcHJvbXB0cywgc2VhcmNoIGJhY2t3YXJkL2ZvcndhcmQgZWxzZXdoZXJlOgorYmluZCBeQiAg
ICAgICB3aGVyZXdhcyAgIGhlbHAKK2JpbmQgXkYgICAgICAgd2hlcmVpcyAgICBoZWxwCisKKwor
IyMjIyMgIE1lbnU6IHNwZWxsCisKKworIyMjIyMgIE1lbnU6IGxpbnRlcgorYmluZCBeWCAgICAg
ICBjYW5jZWwgICAgIGxpbnRlcgorCisKKyMjIyMjICBNZW51OiBicm93c2VyCisKKyMjIEluIHRo
ZSBmaWxlIGJyb3dzZXIgYW5kIGhlbHAgdmlld2VyLCBCc3AvU2gtRGVsIHNjcm9sbCBhIHBhZ2Ug
dXA6CitiaW5kIEJzcCAgICAgIHBhZ2V1cCAgICAgYnJvd3NlcgorYmluZCBTaC1EZWwgICBwYWdl
dXAgICAgIGJyb3dzZXIKK2JpbmQgU3BhY2UgICAgcGFnZWRvd24gICBicm93c2VyCisKKyMjIElu
IHRoZSBicm93c2VyLCBIb21lL0VuZCBqdW1wIHRvIHRoZSBmaXJzdC9sYXN0IGZpbGU6CitiaW5k
IEhvbWUgICAgIGZpcnN0ZmlsZSAgYnJvd3NlcgorYmluZCBFbmQgICAgICBsYXN0ZmlsZSAgIGJy
b3dzZXIKKworIyMgSW4gdGhlIGZpbGUgYnJvd3NlciwgTS1cIGFuZCBNLS8ganVtcCB0byBmaXJz
dC9sYXN0IGZpbGU6CitiaW5kIE0tXCAgICAgIGZpcnN0ZmlsZSAgYnJvd3NlcgorYmluZCBNLS8g
ICAgICBsYXN0ZmlsZSAgIGJyb3dzZXIKK2JpbmQgXkhvbWUgICAgZmlyc3RmaWxlICBicm93c2Vy
CitiaW5kIF5FbmQgICAgIGxhc3RmaWxlICAgYnJvd3NlcgorCisjIyBDbGFzc2ljIEVtYWNzLXN0
eWxlIHVwL2Rvd24gaW4gbWFpbiwgYnJvd3NlciwgYW5kIGhlbHA6CitiaW5kIF5QICAgICAgIHBy
ZXZsaW5lICAgYnJvd3NlcgorYmluZCBeTiAgICAgICBuZXh0bGluZSAgIGJyb3dzZXIKKworIyMg
LS0gRXhpdCwgYW5kIGNhbmNlbCAtLQorYmluZCBeWCAgICAgICBleGl0ICAgICAgIGJyb3dzZXIK
K2JpbmQgRjIgICAgICAgZXhpdCAgICAgICBicm93c2VyCisjIyBeQyBjYW5jZWxzIGluIHByb21w
dHMsIHJlcG9ydHMgcG9zaXRpb24gaW4gbWFpbiwgYW5kIGV4aXRzIGluIGJyb3dzZXIvaGVscDoK
K2JpbmQgXkMgICAgICAgZXhpdCAgICAgICBicm93c2VyCisKKyMjIEluIHRoZSBicm93c2VyIGl0
c2VsZiwgXlQgY2xvc2VzIGl0IChzYW1lIGtleSBhcyB1c2VkIHRvIG9wZW4gaXQpOgorYmluZCBe
VCAgICAgICBleGl0ICAgICAgIGJyb3dzZXIKKworIyMgXkIvXkYgbW92ZSB0aGUgY3Vyc29yIGxl
ZnQvcmlnaHQgaW4gcHJvbXB0cywgc2VhcmNoIGJhY2t3YXJkL2ZvcndhcmQgZWxzZXdoZXJlOgor
YmluZCBeQiAgICAgICB3aGVyZXdhcyAgIGJyb3dzZXIKK2JpbmQgXkYgICAgICAgd2hlcmVpcyAg
ICBicm93c2VyCisKKyMjIC0tIEZpbGUgYnJvd3NlciBuYXZpZ2F0aW9uIC0tCitiaW5kIE0tRyAg
ICAgIGdvdG9kaXIgICAgYnJvd3NlcgorYmluZCBeXyAgICAgICBnb3RvZGlyICAgIGJyb3dzZXIK
K2JpbmQgXi8gICAgICAgZ290b2RpciAgICBicm93c2VyCitiaW5kIF5UICAgICAgIGdvdG9kaXIg
ICAgYnJvd3NlcgorCisKKyMjIyMjICBNZW51OiB3aGVyZWlzZmlsZQorCisjIyBJbiBoaXN0b3J5
LWNhcGFibGUgcHJvbXB0cywgVXAvRG93biBuYXZpZ2F0ZSB0aGUgaGlzdG9yeSBsaXN0IGluc3Rl
YWQ6CitiaW5kIFVwICAgICAgIG9sZGVyICAgICAgd2hlcmVpc2ZpbGUKK2JpbmQgRG93biAgICAg
bmV3ZXIgICAgICB3aGVyZWlzZmlsZQorCisjIyBJbiB0aGUgZmlsZSBicm93c2VyJ3Mgc2VhcmNo
IHByb21wdCwgXlkvXlYganVtcCB0byBmaXJzdC9sYXN0IGZpbGU6CisjIyNiaW5kIF5ZICAgICAg
IGZpcnN0ZmlsZSAgd2hlcmVpc2ZpbGUKK2JpbmQgXlYgICAgICAgbGFzdGZpbGUgICB3aGVyZWlz
ZmlsZQorCisjIyBJbiB0aGUgZmlsZSBicm93c2VyLCBNLVwgYW5kIE0tLyBqdW1wIHRvIGZpcnN0
L2xhc3QgZmlsZToKK2JpbmQgTS1cICAgICAgZmlyc3RmaWxlICB3aGVyZWlzZmlsZQorYmluZCBN
LS8gICAgICBsYXN0ZmlsZSAgIHdoZXJlaXNmaWxlCisKKyMjIEluIGhpc3RvcnktY2FwYWJsZSBw
cm9tcHRzLCBeUC9eTiBuYXZpZ2F0ZSB0aGUgaGlzdG9yeSBsaXN0OgorYmluZCBeUCAgICAgICBv
bGRlciAgICAgIHdoZXJlaXNmaWxlCitiaW5kIF5OICAgICAgIG5ld2VyICAgICAgd2hlcmVpc2Zp
bGUKKworCisjIyMjIyAgTWVudTogZ290b2RpcgorCisKZGlmZiAtLWdpdCBhL2RvYy9vcmlnaW5h
bC5uYW5vcmMuaW4gYi9kb2Mvb3JpZ2luYWwubmFub3JjLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwLi5iZmNiZTNjOAotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9vcmlnaW5h
bC5uYW5vcmMuaW4KQEAgLTAsMCArMSw3NjUgQEAKKyMjIFNhbXBsZSBpbml0aWFsaXphdGlvbiBm
aWxlIGZvciBHTlUgbmFuby4KKyMjCisjIyBGb3IgdGhlIG9wdGlvbnMgdGhhdCB0YWtlIHBhcmFt
ZXRlcnMsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIHNob3duLgorIyMgT3RoZXIgb3B0aW9ucyBhcmUg
dW5zZXQgYnkgZGVmYXVsdC4gIFRvIG1ha2Ugc3VyZSB0aGF0IGFuIG9wdGlvbgorIyMgaXMgZGlz
YWJsZWQsIHlvdSBjYW4gdXNlICJ1bnNldCA8b3B0aW9uPiIuCisjIworIyMgQ2hhcmFjdGVycyB0
aGF0IGFyZSBzcGVjaWFsIGluIGEgc2hlbGwgc2hvdWxkIG5vdCBiZSBlc2NhcGVkIGhlcmUuCisj
IyBJbnNpZGUgc3RyaW5nIHBhcmFtZXRlcnMsIHF1b3RlcyBzaG91bGQgbm90IGJlIGVzY2FwZWQg
LS0gdGhlIGxhc3QKKyMjIGRvdWJsZSBxdW90ZSBvbiB0aGUgbGluZSB3aWxsIGJlIHNlZW4gYXMg
dGhlIGNsb3NpbmcgcXVvdGUuCisKKyMjIElmIHlvdSB3YW50IF5GLCBeQiwgTS1GIGFuZCBNLUIg
dG8gZG8gd2hhdCB0aGV5IGRpZCBiZWZvcmUgdmVyc2lvbiA4LjA6CisjIGJpbmQgXkYgZm9yd2Fy
ZCBtYWluCisjIGJpbmQgXkIgYmFjayBtYWluCisjIGJpbmQgTS1GIGZvcm1hdHRlciBtYWluCisj
IGJpbmQgTS1CIGxpbnRlciBtYWluCisKKyMjIE1ha2UgTS08IGFuZCBNLT4gc3dpdGNoIGJldHdl
ZW4gYnVmZmVycywgYXMgdGhleSBkaWQgYmVmb3JlIHZlcnNpb24gOS4wOgorIyBiaW5kIE0tPCBw
cmV2YnVmIG1haW4KKyMgYmluZCBNLT4gbmV4dGJ1ZiBtYWluCisKKyMjIE1ha2UgJ25leHR3b3Jk
JyAoQ3RybCtSaWdodCkgYW5kICdjaG9wd29yZHJpZ2h0JyAoQ3RybCtEZWxldGUpCisjIyBzdG9w
IGF0IHdvcmQgZW5kcyBpbnN0ZWFkIG9mIGF0IGJlZ2lubmluZ3MuCisjIHNldCBhZnRlcmVuZHMK
KworIyMgV2hlbiBzb2Z0IGxpbmUgd3JhcHBpbmcgaXMgZW5hYmxlZCwgbWFrZSBpdCB3cmFwIGxp
bmVzIGF0IGJsYW5rcworIyMgKHRhYnMgYW5kIHNwYWNlcykgaW5zdGVhZCBvZiBhbHdheXMgYXQg
dGhlIGVkZ2Ugb2YgdGhlIHNjcmVlbi4KKyMgc2V0IGF0YmxhbmtzCisKKyMjIEF1dG9tYXRpY2Fs
bHkgaW5kZW50IGEgbmV3bHkgY3JlYXRlZCBsaW5lIHRvIHRoZSBzYW1lIG51bWJlciBvZgorIyMg
dGFicyBhbmQvb3Igc3BhY2VzIGFzIHRoZSBwcmVjZWRpbmcgbGluZSAtLSBvciBhcyB0aGUgbmV4
dCBsaW5lCisjIyBpZiB0aGUgcHJlY2VkaW5nIGxpbmUgaXMgdGhlIGJlZ2lubmluZyBvZiBhIHBh
cmFncmFwaC4KKyMgc2V0IGF1dG9pbmRlbnQKKworIyMgQmFjayB1cCBmaWxlcyB0byB0aGUgY3Vy
cmVudCBmaWxlbmFtZSBwbHVzIGEgdGlsZGUuCisjIHNldCBiYWNrdXAKKworIyMgVGhlIGRpcmVj
dG9yeSB0byBwdXQgdW5pcXVlIGJhY2t1cCBmaWxlcyBpbi4KKyMgc2V0IGJhY2t1cGRpciAiIgor
CisjIyBVc2UgYm9sZCB0ZXh0IGluc3RlYWQgb2YgcmV2ZXJzZSB2aWRlbyB0ZXh0LgorIyBzZXQg
Ym9sZHRleHQKKworIyMgVHJlYXQgYW55IGxpbmUgd2l0aCBsZWFkaW5nIHdoaXRlc3BhY2UgYXMg
dGhlIGJlZ2lubmluZyBvZiBhIHBhcmFncmFwaC4KKyMgc2V0IGJvb2tzdHlsZQorCisjIyBUaGUg
Y2hhcmFjdGVycyB0cmVhdGVkIGFzIGNsb3NpbmcgYnJhY2tldHMgd2hlbiBqdXN0aWZ5aW5nIHBh
cmFncmFwaHMuCisjIyBUaGlzIG1heSBub3QgaW5jbHVkZSBhbnkgYmxhbmsgY2hhcmFjdGVycy4g
IE9ubHkgY2xvc2luZyBwdW5jdHVhdGlvbiwKKyMjIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkgdGhl
c2UgY2xvc2luZyBicmFja2V0cywgY2FuIGVuZCBzZW50ZW5jZXMuCisjIHNldCBicmFja2V0cyAi
IicpPl19IgorCisjIyBBdXRvbWF0aWNhbGx5IGhhcmQtd3JhcCB0aGUgY3VycmVudCBsaW5lIHdo
ZW4gaXQgYmVjb21lcyBvdmVybG9uZy4KKyMgc2V0IGJyZWFrbG9uZ2xpbmVzCisKKyMjIERvIGNh
c2Utc2Vuc2l0aXZlIHNlYXJjaGVzIGJ5IGRlZmF1bHQuCisjIHNldCBjYXNlc2Vuc2l0aXZlCisK
KyMjIEludGVycHJldCBkaWdpdHMgYWZ0ZXIgYSBjb2xvbiBhZnRlciBhIGZpbGVuYW1lIChvbiB0
aGUgY29tbWFuZCBsaW5lKQorIyMgYXMgdGhlIGxpbmUgbnVtYmVyIHRvIGdvIHRvIGluIHRoYXQg
ZmlsZS4KKyMgc2V0IGNvbG9ucGFyc2luZworCisjIyBDb25zdGFudGx5IHJlcG9ydCB0aGUgY3Vy
c29yIHBvc2l0aW9uLCBpbiB0aGUgc3RhdHVzIGJhciBvciBtaW5pYmFyLgorIyBzZXQgY29uc3Rh
bnRzaG93CisKKyMjIFVzZSBjdXQtZnJvbS1jdXJzb3ItdG8tZW5kLW9mLWxpbmUgYnkgZGVmYXVs
dC4KKyMgc2V0IGN1dGZyb21jdXJzb3IKKworIyMgRG8gbm90IHVzZSB0aGUgbGluZSBiZWxvdyB0
aGUgdGl0bGUgYmFyLCBsZWF2aW5nIGl0IGVudGlyZWx5IGJsYW5rLgorIyBzZXQgZW1wdHlsaW5l
CisKKyMjIFNldCB0aGUgdGFyZ2V0IHdpZHRoIGZvciBhdXRvbWF0aWMgaGFyZC13cmFwcGluZyBh
bmQgZm9yIGp1c3RpZnlpbmcKKyMjIHBhcmFncmFwaHMuICBJZiB0aGUgc3BlY2lmaWVkIHZhbHVl
IGlzIDAgb3IgbGVzcywgdGhlIHdyYXBwaW5nIHBvaW50CisjIyB3aWxsIGJlIHRoZSB0ZXJtaW5h
bCdzIHdpZHRoIG1pbnVzIHRoaXMgbnVtYmVyLgorIyBzZXQgZmlsbCAtOAorCisjIyBEcmF3IGEg
dmVydGljYWwgc3RyaXBlIGF0IHRoZSBnaXZlbiBjb2x1bW4sIHRvIGhlbHAganVkZ2UgdGV4dCB3
aWR0aC4KKyMjIChUaGlzIG9wdGlvbiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZS4pCisj
IHNldCBndWlkZXN0cmlwZSA3NQorCisjIyBSZW1lbWJlciB0aGUgdXNlZCBzZWFyY2gvcmVwbGFj
ZS9jb21tYW5kIHN0cmluZ3MgZm9yIHRoZSBuZXh0IHNlc3Npb24uCisjIHNldCBoaXN0b3J5bG9n
CisKKyMjIERpc3BsYXkgYSAic2Nyb2xsYmFyIiBvbiB0aGUgcmlnaHRoYW5kIHNpZGUgb2YgdGhl
IGVkaXQgd2luZG93LgorIyBzZXQgaW5kaWNhdG9yCisKKyMjIFNjcm9sbCB0aGUgYnVmZmVyIGNv
bnRlbnRzIHBlciBoYWxmLXNjcmVlbiBpbnN0ZWFkIG9mIHBlciBsaW5lLgorIyBzZXQganVtcHlz
Y3JvbGxpbmcKKworIyMgRGlzcGxheSBsaW5lIG51bWJlcnMgdG8gdGhlIGxlZnQgKGFuZCBhbnkg
YW5jaG9ycyBpbiB0aGUgbWFyZ2luKS4KKyMgc2V0IGxpbmVudW1iZXJzCisKKyMjIExldCBvdGhl
ciB1c2VycyAob2YgbmFubyBvciB2aW0pIGtub3cgdGhhdCB5b3UgYXJlIGVkaXRpbmcgdGhlIGZp
bGUKKyMjIHRoZXkgYXJlIHRyeWluZyB0byBlZGl0LCBhbmQgdGhlIG90aGVyIHdheSBhcm91bmQu
CisjIHNldCBsb2NraW5nCisKKyMjIEZhbGwgYmFjayB0byBzbG93IGxpYm1hZ2ljIHRvIHRyeSBh
bmQgZGV0ZXJtaW5lIGFuIGFwcGxpY2FibGUgc3ludGF4LgorIyBzZXQgbWFnaWMKKworIyMgVGhl
IG9wZW5pbmcgYW5kIGNsb3NpbmcgYnJhY2tldHMgdGhhdCBhcmUgZm91bmQgYnkgYSBtYXRjaGlu
Zy1icmFja2V0CisjIyBzZWFyY2guICBUaGlzIG1heSBub3QgY29udGFpbiBibGFuayBjaGFyYWN0
ZXJzLiAgVGhlIG9wZW5pbmcgYnJhY2tldHMKKyMjIG11c3QgY29tZSBiZWZvcmUgdGhlIGNsb3Np
bmcgb25lcywgYW5kIHRoZXkgbXVzdCBiZSBpbiB0aGUgc2FtZSBvcmRlci4KKyMgc2V0IG1hdGNo
YnJhY2tldHMgIig8W3spPl19IgorCisjIyBTdXBwcmVzcyB0aGUgdGl0bGUgYmFyIGFuZCBzaG93
IHRoZSBmaWxlbmFtZSBwbHVzIGEgY3Vyc29yLXBvc2l0aW9uCisjIyBwZXJjZW50YWdlIGluIHRo
ZSBzcGFjZSBvZiB0aGUgc3RhdHVzIGJhci4KKyMgc2V0IG1pbmliYXIKKworIyMgRW5hYmxlIG1v
dXNlIHN1cHBvcnQsIGlmIGF2YWlsYWJsZSBmb3IgeW91ciBzeXN0ZW0uICBXaGVuIGVuYWJsZWQs
CisjIyBtb3VzZSBjbGlja3MgY2FuIGJlIHVzZWQgdG8gcGxhY2UgdGhlIGN1cnNvciwgc2V0IHRo
ZSBtYXJrICh3aXRoCisjIyB0d28gY2xpY2tzKSwgYW5kIGV4ZWN1dGUgc2hvcnRjdXRzLiAgVGhl
IG1vdXNlIHdpbGwgd29yayBpbiB0aGUKKyMjIFggV2luZG93IFN5c3RlbSwgYW5kIG9uIHRoZSBj
b25zb2xlIHdoZW4gZ3BtIGlzIHJ1bm5pbmcuCisjIHNldCBtb3VzZQorCisjIyBTd2l0Y2ggb24g
bXVsdGlwbGUgZmlsZSBidWZmZXJzIChpbnNlcnRpbmcgYSBmaWxlIHdpbGwgcHV0IGl0IGludG8K
KyMjIGEgc2VwYXJhdGUgYnVmZmVyKS4KKyMgc2V0IG11bHRpYnVmZmVyCisKKyMjIERvbid0IGNv
bnZlcnQgZmlsZXMgZnJvbSBET1MgZm9ybWF0LgorIyBzZXQgbm9jb252ZXJ0CisKKyMjIERvbid0
IGRpc3BsYXkgdGhlIGhlbHBmdWwgc2hvcnRjdXQgbGlzdHMgYXQgdGhlIGJvdHRvbSBvZiB0aGUg
c2NyZWVuLgorIyBzZXQgbm9oZWxwCisKKyMjIERvbid0IGF1dG9tYXRpY2FsbHkgYWRkIGEgbmV3
bGluZSB3aGVuIGEgZmlsZSBkb2VzIG5vdCBlbmQgd2l0aCBvbmUuCisjIHNldCBub25ld2xpbmVz
CisKKyMjIFNldCBvcGVyYXRpbmcgZGlyZWN0b3J5LiAgbmFubyB3aWxsIG5vdCByZWFkIG9yIHdy
aXRlIGZpbGVzIG91dHNpZGUKKyMjIHRoaXMgZGlyZWN0b3J5IGFuZCBpdHMgc3ViZGlyZWN0b3Jp
ZXMuICBBbHNvLCB0aGUgY3VycmVudCBkaXJlY3RvcnkKKyMjIGlzIGNoYW5nZWQgdG8gaGVyZSwg
c28gYW55IGZpbGVzIGFyZSBpbnNlcnRlZCBmcm9tIHRoaXMgZGlyLiAgQSBibGFuaworIyMgc3Ry
aW5nIG1lYW5zIHRoZSBvcGVyYXRpbmctZGlyZWN0b3J5IGZlYXR1cmUgaXMgdHVybmVkIG9mZi4K
KyMgc2V0IG9wZXJhdGluZ2RpciAiIgorCisjIyBSZW1lbWJlciB0aGUgcG9zaXRpb24gb2YgY3Vy
c29yIGFuZCBhbmNob3JzIGZvciB0aGUgbmV4dCBlZGl0aW5nIHNlc3Npb24uCisjIHNldCBwb3Np
dGlvbmxvZworCisjIyBQcmVzZXJ2ZSB0aGUgWE9OIGFuZCBYT0ZGIGtleXMgKF5RIGFuZCBeUyku
CisjIHNldCBwcmVzZXJ2ZQorCisjIyBUaGUgY2hhcmFjdGVycyB0cmVhdGVkIGFzIGNsb3Npbmcg
cHVuY3R1YXRpb24gd2hlbiBqdXN0aWZ5aW5nIHBhcmFncmFwaHMuCisjIyBUaGlzIG1heSBub3Qg
Y29udGFpbiBibGFuayBjaGFyYWN0ZXJzLiAgT25seSB0aGVzZSB0ZXJtaW5hdGluZyBjaGFyYWN0
ZXJzLAorIyMgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBjbG9zaW5nIGJyYWNrZXRzLCBjYW4gZW5k
IHNlbnRlbmNlcy4KKyMgc2V0IHB1bmN0ICIhLj8iCisKKyMjIE1ha2Ugc3RhdHVzLWJhciBtZXNz
YWdlcyBkaXNhcHBlYXIgYWZ0ZXIgMSBrZXlzdHJva2UgaW5zdGVhZCBvZiBhZnRlciAyMC4KKyMg
c2V0IHF1aWNrYmxhbmsKKworIyMgVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IG1hdGNoZXMg
cXVvdGluZyBjaGFyYWN0ZXJzIGluIGVtYWlsCisjIyBvciBsaW5lLWNvbW1lbnQgaW50cm9kdWNl
cnMgaW4gc291cmNlIGNvZGUuICBUaGUgZGVmYXVsdCBpczoKKyMgc2V0IHF1b3Rlc3RyICJeKFsg
CV0qKFshIyU6Oz58fV18Ly8pKSsiCisKKyMjIFRyeSB0byB3b3JrIGFyb3VuZCBhIG1pc21hdGNo
aW5nIHRlcm1pbmZvIHRlcm1pbmFsIGRlc2NyaXB0aW9uLgorIyBzZXQgcmF3c2VxdWVuY2VzCisK
KyMjIEZpeCBCYWNrc3BhY2UvRGVsZXRlIGNvbmZ1c2lvbiBwcm9ibGVtLgorIyBzZXQgcmViaW5k
ZGVsZXRlCisKKyMjIERvIHJlZ3VsYXItZXhwcmVzc2lvbiBzZWFyY2hlcyBieSBkZWZhdWx0Lgor
IyMgUmVndWxhciBleHByZXNzaW9ucyBhcmUgb2YgdGhlIGV4dGVuZGVkIHR5cGUgKEVSRSkuCisj
IHNldCByZWdleHAKKworIyMgU2F2ZSBhIGNoYW5nZWQgYnVmZmVyIGF1dG9tYXRpY2FsbHkgb24g
ZXhpdDsgZG9uJ3QgcHJvbXB0LgorIyBzZXQgc2F2ZW9uZXhpdAorCisjIyBQdXQgdGhlIGN1cnNv
ciBvbiB0aGUgaGlnaGxpZ2h0ZWQgaXRlbSBpbiB0aGUgZmlsZSBicm93c2VyLCBhbmQKKyMjIHNo
b3cgdGhlIGN1cnNvciBpbiB0aGUgaGVscCB2aWV3ZXI7IHVzZWZ1bCBmb3IgcGVvcGxlIHdobyB1
c2UgYQorIyMgYnJhaWxsZSBkaXNwbGF5IGFuZCBwZW9wbGUgd2l0aCBwb29yIHZpc2lvbi4KKyMg
c2V0IHNob3djdXJzb3IKKworIyMgTWFrZSB0aGUgSG9tZSBrZXkgc21hcnRlcjogd2hlbiBIb21l
IGlzIHByZXNzZWQgYW55d2hlcmUgYnV0IGF0IHRoZQorIyMgdmVyeSBiZWdpbm5pbmcgb2Ygbm9u
LXdoaXRlc3BhY2UgY2hhcmFjdGVycyBvbiBhIGxpbmUsIHRoZSBjdXJzb3IKKyMjIHdpbGwganVt
cCB0byB0aGF0IGJlZ2lubmluZyAoZWl0aGVyIGZvcndhcmRzIG9yIGJhY2t3YXJkcykuICBJZiB0
aGUKKyMjIGN1cnNvciBpcyBhbHJlYWR5IGF0IHRoYXQgcG9zaXRpb24sIGl0IHdpbGwganVtcCB0
byB0aGUgdHJ1ZSBzdGFydAorIyMgb2YgdGhlIGxpbmUgKHRoZSBsZWZ0IGVkZ2UpLgorIyBzZXQg
c21hcnRob21lCisKKyMjIFNwcmVhZCBvdmVybG9uZyBsaW5lcyBvdmVyIG11bHRpcGxlIHNjcmVl
biBsaW5lcy4KKyMgc2V0IHNvZnR3cmFwCisKKyMjIFNjcm9sbCBvbmx5IHRoZSBjdXJyZW50IGxp
bmUgc2lkZXdheXMgKGluc3RlYWQgb2YgYWxsIGxpbmVzKS4KKyMgc2V0IHNvbG9zaWRlc2Nyb2xs
CisKKyMjIFVzZSB0aGlzIHNwZWxsaW5nIGNoZWNrZXIgaW5zdGVhZCBvZiB0aGUgaW50ZXJuYWwg
b25lLiAgVGhpcyBvcHRpb24KKyMjIGRvZXMgbm90IGhhdmUgYSBkZWZhdWx0IHZhbHVlLgorIyBz
ZXQgc3BlbGxlciAiYXNwZWxsIC14IC1jIgorCisjIyBVc2UgdGhlIGVuZCBvZiB0aGUgdGl0bGUg
YmFyIGZvciBzb21lIHN0YXRlIGZsYWdzOiBJID0gYXV0by1pbmRlbnRpbmcsCisjIyBNID0gbWFy
aywgTCA9IGhhcmQtd3JhcHBpbmcgbG9uZyBsaW5lcywgUiA9IHJlY29yZGluZywgUyA9IHNvZnQt
d3JhcHBpbmcuCisjIHNldCBzdGF0ZWZsYWdzCisKKyMjIFVzZSB0aGlzIHRhYiBzaXplIGluc3Rl
YWQgb2YgdGhlIGRlZmF1bHQ7IGl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAuCisjIHNldCB0YWJz
aXplIDgKKworIyMgQ29udmVydCBlYWNoIHR5cGVkIHRhYiB0byB0aGUgZml0dGluZyBudW1iZXIg
b2Ygc3BhY2VzLgorIyBzZXQgdGFic3Rvc3BhY2VzCisKKyMjIFNuaXAgd2hpdGVzcGFjZSBhdCB0
aGUgZW5kIG9mIGxpbmVzIHdoZW4ganVzdGlmeWluZyBvciBoYXJkLXdyYXBwaW5nLgorIyBzZXQg
dHJpbWJsYW5rcworCisjIyBTYXZlIGZpbGVzIGFsd2F5cyBpbiBVbml4IGZvcm1hdCAoYWxzbyB3
aGVuIHRoZXkgd2VyZSBET1MpLgorIyBzZXQgdW5peAorCisjIyBUaGUgdHdvIHNpbmdsZS1jb2x1
bW4gY2hhcmFjdGVycyB1c2VkIHRvIGRpc3BsYXkgdGhlIGZpcnN0IGNoYXJhY3RlcnMKKyMjIG9m
IHRhYnMgYW5kIHNwYWNlcy4gIDE4NyBpbiBJU08gODg1OS0xICgwMDAwQkIgaW4gVW5pY29kZSkg
YW5kIDE4MyBpbgorIyMgSVNPLTg4NTktMSAoMDAwMEI3IGluIFVuaWNvZGUpIHNlZW0gdG8gYmUg
Z29vZCB2YWx1ZXMgZm9yIHRoZXNlLgorIyMgVGhlIGRlZmF1bHQgd2hlbiBpbiBhIFVURi04IGxv
Y2FsZToKKyMgc2V0IHdoaXRlc3BhY2UgIsK7wrciCisjIyBUaGUgZGVmYXVsdCBvdGhlcndpc2U6
CisjIHNldCB3aGl0ZXNwYWNlICI+LiIKKworIyMgRGV0ZWN0IHdvcmQgYm91bmRhcmllcyBkaWZm
ZXJlbnRseSBieSB0cmVhdGluZyBwdW5jdHVhdGlvbgorIyMgY2hhcmFjdGVycyBhcyBwYXJ0cyBv
ZiB3b3Jkcy4KKyMgc2V0IHdvcmRib3VuZHMKKworIyMgVGhlIGNoYXJhY3RlcnMgKGJlc2lkZXMg
YWxwaGFudW1lcmljIG9uZXMpIHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQKKyMjIGFzIHBhcnRz
IG9mIHdvcmRzLiAgVGhpcyBvcHRpb24gZG9lcyBub3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUuICBX
aGVuCisjIyBzZXQsIGl0IG92ZXJyaWRlcyBvcHRpb24gJ3NldCB3b3JkYm91bmRzJy4KKyMgc2V0
IHdvcmRjaGFycyAiPF8+LiIKKworIyMgTGV0IGFuIHVubW9kaWZpZWQgQmFja3NwYWNlIG9yIERl
bGV0ZSBlcmFzZSB0aGUgbWFya2VkIHJlZ2lvbiAoaW5zdGVhZAorIyMgb2YgYSBzaW5nbGUgY2hh
cmFjdGVyLCBhbmQgd2l0aG91dCBhZmZlY3RpbmcgdGhlIGN1dGJ1ZmZlcikuCisjIHNldCB6YXAK
KworIyMgSGlkZSB0aGUgYmFycyBwbHVzIGhlbHAgbGluZXMgYW5kIHVzZSB0aGUgd2hvbGUgdGVy
bWluYWwgYXMgZWRpdCBhcmVhLgorIyBzZXQgemVybworCisKKyMjIFBhaW50IHRoZSBpbnRlcmZh
Y2UgZWxlbWVudHMgb2YgbmFuby4gIFRoZXNlIGFyZSBleGFtcGxlczsgdGhlcmUgYXJlCisjIyBu
byBjb2xvcnMgYnkgZGVmYXVsdCwgZXhjZXB0IGZvciBlcnJvcmNvbG9yIGFuZCBzcG90bGlnaHRj
b2xvci4KKyMgc2V0IHRpdGxlY29sb3IgYm9sZCx3aGl0ZSxibHVlCisjIHNldCBwcm9tcHRjb2xv
ciBsaWdodHdoaXRlLGdyZXkKKyMgc2V0IHN0YXR1c2NvbG9yIGJvbGQsd2hpdGUsZ3JlZW4KKyMg
c2V0IGVycm9yY29sb3IgYm9sZCx3aGl0ZSxyZWQKKyMgc2V0IHNwb3RsaWdodGNvbG9yIGJsYWNr
LGxpZ2h0eWVsbG93CisjIHNldCBzZWxlY3RlZGNvbG9yIGxpZ2h0d2hpdGUsIzgwNAorIyBzZXQg
c3RyaXBlY29sb3IgLCM0NDQKKyMgc2V0IHNjcm9sbGVyY29sb3Igc2xhdGUsIzIyMgorIyBzZXQg
bnVtYmVyY29sb3IgY3lhbgorIyBzZXQga2V5Y29sb3IgY3lhbgorIyBzZXQgZnVuY3Rpb25jb2xv
ciBncmVlbgorCisjIyBJbiByb290J3MgLm5hbm9yYyB5b3UgbWlnaHQgd2FudCB0byB1c2U6Cisj
IHNldCB0aXRsZWNvbG9yIGJvbGQsd2hpdGUsbWFnZW50YQorIyBzZXQgcHJvbXB0Y29sb3IgYmxh
Y2sseWVsbG93CisjIHNldCBzdGF0dXNjb2xvciBib2xkLHdoaXRlLG1hZ2VudGEKKyMgc2V0IGVy
cm9yY29sb3IgYm9sZCx3aGl0ZSxyZWQKKyMgc2V0IHNwb3RsaWdodGNvbG9yIGJsYWNrLG9yYW5n
ZQorIyBzZXQgc2VsZWN0ZWRjb2xvciBsaWdodHdoaXRlLGN5YW4KKyMgc2V0IHN0cmlwZWNvbG9y
ICx5ZWxsb3cKKyMgc2V0IHNjcm9sbGVyY29sb3IgbWFnZW50YQorIyBzZXQgbnVtYmVyY29sb3Ig
bWFnZW50YQorIyBzZXQga2V5Y29sb3IgbGlnaHRtYWdlbnRhCisjIHNldCBmdW5jdGlvbmNvbG9y
IG1hZ2VudGEKKworCisjIyA9PT0gU3ludGF4IGNvbG9yaW5nID09PQorIyMgRm9yIGFsbCBkZXRh
aWxzLCBzZWUgJ21hbiBuYW5vcmMnLCBzZWN0aW9uIFNZTlRBWCBISUdITElHSFRJTkcuCisKKyMj
IFRvIGluY2x1ZGUgbW9zdCBvZiB0aGUgZXhpc3Rpbmcgc3ludGF4IGRlZmluaXRpb25zLCB5b3Ug
Y2FuIGRvOgorIyBpbmNsdWRlIEBQS0dEQVRBRElSQC8qLm5hbm9yYworCisjIyBPciB5b3UgY2Fu
IHNlbGVjdCBqdXN0IHRoZSBvbmVzIHlvdSBuZWVkLiAgRm9yIGV4YW1wbGU6CisjIGluY2x1ZGUg
QFBLR0RBVEFESVJAL2h0bWwubmFub3JjCisjIGluY2x1ZGUgQFBLR0RBVEFESVJAL3B5dGhvbi5u
YW5vcmMKKyMgaW5jbHVkZSBAUEtHREFUQURJUkAvc2gubmFub3JjCisKKyMjIEluIEBQS0dEQVRB
RElSQC9leHRyYS8geW91IGNhbiBmaW5kIHNvbWUgc3ludGF4ZXMgdGhhdCBhcmUKKyMjIHNwZWNp
ZmljIGZvciBjZXJ0YWluIGRpc3Ryb3Mgb3IgZm9yIHNvbWUgbGVzcyBjb21tb24gbGFuZ3VhZ2Vz
LgorCisKKyMjIElmIDxUYWI+IHNob3VsZCBhbHdheXMgcHJvZHVjZSBmb3VyIHNwYWNlcyB3aGVu
IGVkaXRpbmcgYSBQeXRob24gZmlsZSwKKyMjIGluZGVwZW5kZW50IG9mIHRoZSBzZXR0aW5ncyBv
ZiAndGFic2l6ZScgYW5kICd0YWJzdG9zcGFjZXMnOgorIyBleHRlbmRzeW50YXggcHl0aG9uIHRh
YmdpdmVzICIgICAgIgorCisKKyMjID09PSBLZXkgYmluZGluZ3MgPT09CisjIyBGb3IgYWxsIGRl
dGFpbHMsIHNlZSAnbWFuIG5hbm9yYycsIHNlY3Rpb24gUkVCSU5ESU5HIEtFWVMuCisjIworIyMg
QWxsIG9mIG5hbm8ncyBkZWZhdWx0IGtleSBiaW5kaW5ncyBhcmUgZGVmaW5lZCBoZXJlLiAgU2lu
Y2Ugbm8gYmluZGluZ3MKKyMjIGFyZSBjb21waWxlZCBpbiwgdGhpcyBmaWxlIChvciB5b3VyIG93
biBuYW5vcmMpIG11c3QgYmUgcHJlc2VudCBmb3IgdGhlCisjIyBlZGl0b3IgdG8gd29yay4gIE5h
bm8gd2lsbCByZWZ1c2UgdG8gc3RhcnQgaWYgbm8ga2V5IGlzIGJvdW5kIHRvICJleGl0IgorIyMg
aW4gdGhlIG1haW4gbWVudS4KKyMjCisjIyBUbyBjaGFuZ2UgYSBiaW5kaW5nLCBlZGl0IHRoZSBr
ZXkgc3RyaW5nIG9uIGl0cyBsaW5lLgorIyMgVG8gZGlzYWJsZSBhIGJpbmRpbmcsIGNvbW1lbnQg
b3V0IG9yIGRlbGV0ZSBpdHMgbGluZS4KKyMjIFRoZXJlIGlzIG5vIG5lZWQgdG8gdXNlICd1bmJp
bmQnIGJlZm9yZSBhc3NpZ25pbmcgYSBrZXk7IGEgbmV3IGFzc2lnbm1lbnQKKyMjIGF1dG9tYXRp
Y2FsbHkgc2hhZG93cyBhbnkgZWFybGllciBvbmUgZm9yIHRoZSBzYW1lIGtleSBpbiB0aGUgc2Ft
ZSBtZW51LgorIyMKKyMjIEVhY2ggJ2JpbmQnIGxpbmUgYWNjZXB0cyBleGFjdGx5IG9uZSBtZW51
IG5hbWUuICBWYWxpZCBtZW51IG5hbWVzIGFyZToKKyMjICAgbWFpbiAgc2VhcmNoICByZXBsYWNl
ICByZXBsYWNld2l0aCAgeWVzbm8gIGdvdG9saW5lICB3cml0ZW91dCAgaW5zZXJ0CisjIyAgIGV4
ZWN1dGUgIGhlbHAgIHNwZWxsICBsaW50ZXIgIGJyb3dzZXIgIHdoZXJlaXNmaWxlICBnb3RvZGly
ICBhbGwKKyMjICJhbGwiIGNvdmVycyBldmVyeSBtZW51LiAgTGF0ZXIgbGluZXMgdGFrZSBwcmVj
ZWRlbmNlIG92ZXIgZWFybGllciBvbmVzCisjIyBmb3IgdGhlIHNhbWUga2V5IGFuZCBtZW51LCBz
byBnZW5lcmFsIGJpbmRpbmdzIGNvbWUgZmlyc3QgaGVyZSBhbmQKKyMjIG1lbnUtc3BlY2lmaWMg
b3ZlcnJpZGVzIGNvbWUgYWZ0ZXIuCisjIworIyMgRm9yIHRoZSBjb21wbGV0ZSBsaXN0IG9mIGZ1
bmN0aW9uIG5hbWVzLCBzZWUgJ21hbiBuYW5vcmMnLgorCisKKyMjIyMjIE1lbnU6IGFsbAorCisj
IyAtLSBUZXh0IGVudHJ5IGFuZCBkZWxldGlvbiAtLQorYmluZCBFbnRlciAgICBlbnRlciAgICAg
IGFsbAorYmluZCBeTSAgICAgICBlbnRlciAgICAgIGFsbAorYmluZCBUYWIgICAgICB0YWIgICAg
ICAgIGFsbAorYmluZCBeSSAgICAgICB0YWIgICAgICAgIGFsbAorCisjIyBCYWNrc3BhY2UgYW5k
IERlbGV0ZSB3b3JrIHRoZSBzYW1lIGluIGFsbCBwcm9tcHQgbWVudXM6CitiaW5kIEJzcCAgICAg
IGJhY2tzcGFjZSAgYWxsCitiaW5kIFNoLURlbCAgIGJhY2tzcGFjZSAgYWxsCitiaW5kIERlbCAg
ICAgIGRlbGV0ZSAgICAgYWxsCitiaW5kIF5IICAgICAgIGJhY2tzcGFjZSAgYWxsCitiaW5kIF5E
ICAgICAgIGRlbGV0ZSAgICAgYWxsCisKKyMjIC0tIEN1cnNvciBtb3ZlbWVudCAtLQorYmluZCBM
ZWZ0ICAgICBiYWNrICAgICAgIGFsbAorYmluZCBSaWdodCAgICBmb3J3YXJkICAgIGFsbAorYmlu
ZCBVcCAgICAgICBwcmV2bGluZSAgIGFsbAorYmluZCBEb3duICAgICBuZXh0bGluZSAgIGFsbAor
CisjIyBXb3JkLWxldmVsIG1vdmVtZW50OgorYmluZCBeTGVmdCAgICBwcmV2d29yZCAgIGFsbAor
YmluZCBeUmlnaHQgICBuZXh0d29yZCAgIGFsbAorYmluZCBNLVNwYWNlICBwcmV2d29yZCAgIGFs
bAorYmluZCBeU3BhY2UgICBuZXh0d29yZCAgIGFsbAorCisjIyBCZWdpbm5pbmcgYW5kIGVuZCBv
ZiBsaW5lOgorYmluZCBIb21lICAgICBob21lICAgICAgIGFsbAorYmluZCBFbmQgICAgICBlbmQg
ICAgICAgIGFsbAorYmluZCBeQSAgICAgICBob21lICAgICAgIGFsbAorYmluZCBeRSAgICAgICBl
bmQgICAgICAgIGFsbAorCisjIyBQYWdlIHVwL2Rvd246CitiaW5kIFBnVXAgICAgIHBhZ2V1cCAg
ICAgYWxsCitiaW5kIFBnRG4gICAgIHBhZ2Vkb3duICAgYWxsCitiaW5kIF5ZICAgICAgIHBhZ2V1
cCAgICAgYWxsCitiaW5kIF5WICAgICAgIHBhZ2Vkb3duICAgYWxsCitiaW5kIEY3ICAgICAgIHBh
Z2V1cCAgICAgYWxsCitiaW5kIEY4ICAgICAgIHBhZ2Vkb3duICAgYWxsCisKKyMjIFJlZnJlc2gg
dGhlIHNjcmVlbjsgaW4gbWFpbiwgYWxzbyBjZW50ZXJzIHRoZSBjdXJzb3IgbGluZToKK2JpbmQg
XkwgICAgICAgcmVmcmVzaCAgICBhbGwKKworIyMgLS0gSGVscCwgZXhpdCwgYW5kIGNhbmNlbCAt
LQorYmluZCBeRyAgICAgICBoZWxwICAgICAgIGFsbAorYmluZCBGMSAgICAgICBoZWxwICAgICAg
IGFsbAorCisjIyBeQyBjYW5jZWxzIGluIHByb21wdHMsIHJlcG9ydHMgcG9zaXRpb24gaW4gbWFp
biwgYW5kIGV4aXRzIGluIGJyb3dzZXIvaGVscDoKK2JpbmQgXkMgICAgICAgY2FuY2VsICAgICBh
bGwKKworIyMgLS0gRWRpdGluZyAtLQorYmluZCBeSyAgICAgICBjdXQgICAgICAgIGFsbAorYmlu
ZCBGOSAgICAgICBjdXQgICAgICAgIGFsbAorYmluZCBNLTYgICAgICBjb3B5ICAgICAgIGFsbAor
YmluZCBNLV4gICAgICBjb3B5ICAgICAgIGFsbAorYmluZCBeVSAgICAgICBwYXN0ZSAgICAgIGFs
bAorYmluZCBGMTAgICAgICBwYXN0ZSAgICAgIGFsbAorCisjIyBFbnRlciBhIGNoYXJhY3RlciBi
eSBpdHMga2V5Y29kZToKK2JpbmQgTS1WICAgICAgdmVyYmF0aW0gICBhbGwKKworIyMgXkIvXkYg
bW92ZSB0aGUgY3Vyc29yIGxlZnQvcmlnaHQgaW4gcHJvbXB0cywgc2VhcmNoIGJhY2t3YXJkL2Zv
cndhcmQgZWxzZXdoZXJlOgorYmluZCBeQiAgICAgICBiYWNrICAgICAgIGFsbAorYmluZCBeRiAg
ICAgICBmb3J3YXJkICAgIGFsbAorCisjIyBeUSBhbmQgXlcgYXJlIGNsYXNzaWMgYWxpYXNlcyBm
b3IgYmFja3dhcmQvZm9yd2FyZCBzZWFyY2g6CitiaW5kIF5RICAgICAgIHdoZXJld2FzICAgYWxs
CitiaW5kIF5XICAgICAgIHdoZXJlaXMgICAgYWxsCitiaW5kIEY2ICAgICAgIHdoZXJlaXMgICAg
YWxsCisKK2JpbmQgTS1CICAgICAgZmluZHByZXZpb3VzICBhbGwKK2JpbmQgTS1RICAgICAgZmlu
ZHByZXZpb3VzICBhbGwKK2JpbmQgTS1GICAgICAgZmluZG5leHQgICBhbGwKK2JpbmQgTS1XICAg
ICAgZmluZG5leHQgICBhbGwKKworIyMgLS0gVG9nZ2xlcyAoTWV0YSArIGxldHRlcikgLS0KK2Jp
bmQgTS1YICAgICAgbm9oZWxwICAgICAgICAgICAgIGFsbAorCisjIyAtLSBGLWtleSBzaG9ydGN1
dHMgLS0KK2JpbmQgRjYgICAgICAgd2hlcmVpcyAgICBhbGwKK2JpbmQgRjcgICAgICAgcGFnZXVw
ICAgICBhbGwKK2JpbmQgRjggICAgICAgcGFnZWRvd24gICBhbGwKK2JpbmQgRjkgICAgICAgY3V0
ICAgICAgICBhbGwKK2JpbmQgRjEwICAgICAgcGFzdGUgICAgICBhbGwKKworCisjIyMjIyAgTWVu
dTogbWFpbgorCisjIyBKdW1wIHRvIHRoZSB2ZXJ5IGZpcnN0IG9yIGxhc3QgbGluZSBvZiB0aGUg
ZmlsZToKK2JpbmQgTS1cICAgICAgZmlyc3RsaW5lICBtYWluCitiaW5kIF5Ib21lICAgIGZpcnN0
bGluZSAgbWFpbgorYmluZCBNLS8gICAgICBsYXN0bGluZSAgIG1haW4KK2JpbmQgXkVuZCAgICAg
bGFzdGxpbmUgICBtYWluCisKKyMjIEJsb2NrIG5hdmlnYXRpb24gKGJsYW5rLWxpbmUtc2VwYXJh
dGVkIGJsb2NrcyAvIHBhcmFncmFwaHMpOgorYmluZCBeVXAgICAgICBwcmV2YmxvY2sgIG1haW4K
K2JpbmQgXkRvd24gICAgbmV4dGJsb2NrICBtYWluCitiaW5kIE0tNyAgICAgIHByZXZibG9jayAg
bWFpbgorYmluZCBNLTggICAgICBuZXh0YmxvY2sgIG1haW4KK2JpbmQgTS0oICAgICAgYmVnaW5w
YXJhICBtYWluCitiaW5kIE0tOSAgICAgIGJlZ2lucGFyYSAgbWFpbgorYmluZCBNLSkgICAgICBl
bmRwYXJhICAgIG1haW4KK2JpbmQgTS0wICAgICAgZW5kcGFyYSAgICBtYWluCisKKyMjIEdvIHRv
IGZpcnN0IG9yIGxhc3QgdmlzaWJsZSByb3cgaW4gdGhlIHZpZXdwb3J0OgorYmluZCBNLUhvbWUg
ICB0b3Byb3cgICAgIG1haW4KK2JpbmQgTS1FbmQgICAgYm90dG9tcm93ICBtYWluCisKKyMjIFNj
cm9sbCB0aGUgdmlld3BvcnQgd2l0aG91dCBtb3ZpbmcgdGhlIGN1cnNvciB0ZXh0dWFsbHk6Citi
aW5kIE0tVXAgICAgIHNjcm9sbHVwICAgbWFpbgorYmluZCBNLURvd24gICBzY3JvbGxkb3duIG1h
aW4KK2JpbmQgTS0tICAgICAgc2Nyb2xsdXAgICBtYWluCitiaW5kIE0tXyAgICAgIHNjcm9sbHVw
ICAgbWFpbgorYmluZCBNLSsgICAgICBzY3JvbGxkb3duIG1haW4KK2JpbmQgTS09ICAgICAgc2Ny
b2xsZG93biBtYWluCisKKyMjIFNjcm9sbCBzaWRld2F5cyAodXNlZnVsIHdoZW4gc29mdHdyYXAg
aXMgb2ZmKToKK2JpbmQgTS08ICAgICAgc2Nyb2xsbGVmdCAgbWFpbgorYmluZCBNLT4gICAgICBz
Y3JvbGxyaWdodCBtYWluCisKKyMjIFJlZnJlc2ggdGhlIHNjcmVlbjsgaW4gbWFpbiwgYWxzbyBj
ZW50ZXJzIHRoZSBjdXJzb3IgbGluZToKK2JpbmQgXkwgICAgICAgY2VudGVyICAgICBtYWluCiti
aW5kIE0tJSAgICAgIGN5Y2xlICAgICAgbWFpbgorCisjIyBDbGFzc2ljIEVtYWNzLXN0eWxlIHVw
L2Rvd24gaW4gbWFpbiwgYnJvd3NlciwgYW5kIGhlbHA6CitiaW5kIF5QICAgICAgIHByZXZsaW5l
ICAgbWFpbgorYmluZCBeTiAgICAgICBuZXh0bGluZSAgIG1haW4KKworIyMgLS0gSGVscCwgZXhp
dCwgYW5kIGNhbmNlbCAtLQorYmluZCBeWCAgICAgICBleGl0ICAgICAgIG1haW4KK2JpbmQgRjIg
ICAgICAgZXhpdCAgICAgICBtYWluCisjIyBeQyBjYW5jZWxzIGluIHByb21wdHMsIHJlcG9ydHMg
cG9zaXRpb24gaW4gbWFpbiwgYW5kIGV4aXRzIGluIGJyb3dzZXIvaGVscDoKK2JpbmQgXkMgICAg
ICAgbG9jYXRpb24gICBtYWluCisKKyMjIC0tIEZpbGUgb3BlcmF0aW9ucyAtLQorYmluZCBeUyAg
ICAgICBzYXZlZmlsZSAgIG1haW4KK2JpbmQgXk8gICAgICAgd3JpdGVvdXQgICBtYWluCitiaW5k
IEYzICAgICAgIHdyaXRlb3V0ICAgbWFpbgorYmluZCBeUiAgICAgICBpbnNlcnQgICAgIG1haW4K
K2JpbmQgSW5zICAgICAgaW5zZXJ0ICAgICBtYWluCitiaW5kIEY1ICAgICAgIGluc2VydCAgICAg
bWFpbgorCisjIyAtLSBFZGl0aW5nIC0tCitiaW5kIE0tQSAgICAgIG1hcmsgICAgICAgbWFpbgor
YmluZCBeXiAgICAgICBtYXJrICAgICAgIG1haW4KKworYmluZCBNLX0gICAgICBpbmRlbnQgICAg
IG1haW4KK2JpbmQgTS17ICAgICAgdW5pbmRlbnQgICBtYWluCitiaW5kIFNoLVRhYiAgIHVuaW5k
ZW50ICAgbWFpbgorCitiaW5kIE0tVSAgICAgIHVuZG8gICAgICAgbWFpbgorYmluZCBNLUUgICAg
ICByZWRvICAgICAgIG1haW4KKworYmluZCBNLUJzcCAgICBjaG9wd29yZGxlZnQgICBtYWluCiti
aW5kIFNoLV5EZWwgIGNob3B3b3JkbGVmdCAgIG1haW4KK2JpbmQgXkRlbCAgICAgY2hvcHdvcmRy
aWdodCAgbWFpbgorYmluZCBNLURlbCAgICB6YXAgICAgICAgICAgICBtYWluCisKK2JpbmQgTS1U
ICAgICAgY3V0cmVzdG9mZmlsZSAgbWFpbgorCitiaW5kIF5dICAgICAgIGNvbXBsZXRlICAgbWFp
bgorYmluZCBNLTMgICAgICBjb21tZW50ICAgIG1haW4KKworYmluZCBNLTogICAgICByZWNvcmRt
YWNybyAgbWFpbgorYmluZCBNLTsgICAgICBydW5tYWNybyAgICAgbWFpbgorCitiaW5kIE0tSW5z
ICAgIGFuY2hvciAgICAgbWFpbgorYmluZCBNLSIgICAgICBhbmNob3IgICAgIG1haW4KK2JpbmQg
TS0nICAgICAgbmV4dGFuY2hvciBtYWluCitiaW5kIE0tUGdVcCAgIHByZXZhbmNob3IgbWFpbgor
YmluZCBNLVBnRG4gICBuZXh0YW5jaG9yIG1haW4KKworIyMgU3dpdGNoIGJldHdlZW4gb3BlbiBi
dWZmZXJzOgorYmluZCBNLSwgICAgICBwcmV2YnVmICAgIG1haW4KK2JpbmQgTS0uICAgICAgbmV4
dGJ1ZiAgICBtYWluCitiaW5kIE0tTGVmdCAgIHByZXZidWYgICAgbWFpbgorYmluZCBNLVJpZ2h0
ICBuZXh0YnVmICAgIG1haW4KKworIyMgXkIvXkYgbW92ZSB0aGUgY3Vyc29yIGxlZnQvcmlnaHQg
aW4gcHJvbXB0cywgc2VhcmNoIGJhY2t3YXJkL2ZvcndhcmQgZWxzZXdoZXJlOgorYmluZCBeQiAg
ICAgICB3aGVyZXdhcyAgIG1haW4KK2JpbmQgXkYgICAgICAgd2hlcmVpcyAgICBtYWluCisKK2Jp
bmQgXlwgICAgICAgcmVwbGFjZSAgICBtYWluCitiaW5kIE0tUiAgICAgIHJlcGxhY2UgICAgbWFp
bgorCitiaW5kIE0tXSAgICAgIGZpbmRicmFja2V0ICBtYWluCisKKyMjIEdvIHRvIGEgc3BlY2lm
aWMgbGluZSBhbmQgY29sdW1uIG51bWJlcjoKK2JpbmQgXl8gICAgICAgZ290b2xpbmUgICBtYWlu
CitiaW5kIE0tRyAgICAgIGdvdG9saW5lICAgbWFpbgorYmluZCBeLyAgICAgICBnb3RvbGluZSAg
IG1haW4KKworIyMgLS0gSnVzdGlmeSAtLQorYmluZCBeSiAgICAgICBqdXN0aWZ5ICAgIG1haW4K
K2JpbmQgRjQgICAgICAganVzdGlmeSAgICBtYWluCitiaW5kIE0tSiAgICAgIGZ1bGxqdXN0aWZ5
ICBtYWluCisKKyMjIC0tIFNwZWxsIGNoZWNraW5nLCBsaW50aW5nLCBhbmQgZm9ybWF0dGluZyAt
LQorYmluZCBeVCAgICAgICBleGVjdXRlICAgIG1haW4KK2JpbmQgRjEyICAgICAgc3BlbGxlciAg
ICBtYWluCisKKyMjIC0tIEN1cnNvciBwb3NpdGlvbiBhbmQgd29yZCBjb3VudCAtLQorYmluZCBG
MTEgICAgICBsb2NhdGlvbiAgIG1haW4KK2JpbmQgTS1EICAgICAgd29yZGNvdW50ICBtYWluCisK
KyMjIC0tIFRvZ2dsZXMgKE1ldGEgKyBsZXR0ZXIpIC0tCitiaW5kIE0tWiAgICAgIHplcm8gICAg
ICAgICAgICAgICBtYWluCitiaW5kIE0tQyAgICAgIGNvbnN0YW50c2hvdyAgICAgICBtYWluCiti
aW5kIE0tUyAgICAgIHNvZnR3cmFwICAgICAgICAgICBtYWluCitiaW5kIE0tJCAgICAgIHNvZnR3
cmFwICAgICAgICAgICBtYWluCitiaW5kIE0tTiAgICAgIGxpbmVudW1iZXJzICAgICAgICBtYWlu
CitiaW5kIE0tIyAgICAgIGxpbmVudW1iZXJzICAgICAgICBtYWluCitiaW5kIE0tUCAgICAgIHdo
aXRlc3BhY2VkaXNwbGF5ICBtYWluCitiaW5kIE0tWSAgICAgIG5vc3ludGF4ICAgICAgICAgICBt
YWluCitiaW5kIE0tSCAgICAgIHNtYXJ0aG9tZSAgICAgICAgICBtYWluCitiaW5kIE0tSSAgICAg
IGF1dG9pbmRlbnQgICAgICAgICBtYWluCitiaW5kIE0tSyAgICAgIGN1dGZyb21jdXJzb3IgICAg
ICBtYWluCitiaW5kIE0tTCAgICAgIGJyZWFrbG9uZ2xpbmVzICAgICBtYWluCitiaW5kIE0tTyAg
ICAgIHRhYnN0b3NwYWNlcyAgICAgICBtYWluCitiaW5kIE0tTSAgICAgIG1vdXNlICAgICAgICAg
ICAgICBtYWluCisKKyMjIC0tIEYta2V5IHNob3J0Y3V0cyAtLQorYmluZCBGMyAgICAgICB3cml0
ZW91dCAgIG1haW4KK2JpbmQgRjQgICAgICAganVzdGlmeSAgICBtYWluCitiaW5kIEY1ICAgICAg
IGluc2VydCAgICAgbWFpbgorYmluZCBGMTEgICAgICBsb2NhdGlvbiAgIG1haW4KK2JpbmQgRjEy
ICAgICAgc3BlbGxlciAgICBtYWluCisKKyMjID09PSBVc2VmdWwgY3VzdG9taXphdGlvbnMgKGNv
bW1lbnRlZCBvdXQpID09PQorIyMgU3VzcGVuZCBuYW5vIHdpdGggYSBzaW5nbGUga2V5c3Ryb2tl
IGluc3RlYWQgb2YgdmlhIF5UIF5aOgorIyBiaW5kIF5aIHN1c3BlbmQgbWFpbgorCisjIyBNYWtl
IEN0cmwrQmFja3NwYWNlIGRlbGV0ZSB0aGUgd29yZCB0byB0aGUgbGVmdCAoaWYgXkggaXMgZnJl
ZSk6CisjIGJpbmQgXkggY2hvcHdvcmRsZWZ0IG1haW4KKworIyMgSWYgeW91IHdhbnQgXkwgdG8g
b25seSByZWZyZXNoIHRoZSBzY3JlZW4sIG5vdCBjZW50ZXIgdGhlIGN1cnNvcjoKKyMgYmluZCBe
TCByZWZyZXNoIG1haW4KKworIyMgRm9yIHF1aWNrbHkgdXBwZXJjYXNpbmcgb3IgbG93ZXJjYXNp
bmcgdGhlIHdvcmQgdW5kZXIgdGhlIGN1cnNvcjoKKyMgYmluZCBTaC1NLVUgIntuZXh0d29yZH17
bWFya317cHJldndvcmR9e2V4ZWN1dGV9fCBzZWQgJ3MvLiovXFUmLycge2VudGVyfSIgbWFpbgor
IyBiaW5kIFNoLU0tTCAie25leHR3b3JkfXttYXJrfXtwcmV2d29yZH17ZXhlY3V0ZX18IHNlZCAn
cy8uKi9cTCYvJyB7ZW50ZXJ9IiBtYWluCisKKyMjIENvcHkgdGhlIG1hcmtlZCByZWdpb24gdG8g
dGhlIHN5c3RlbSBjbGlwYm9hcmQgKHJlcXVpcmVzIHhzZWwpOgorIyBiaW5kIFNoLU0tQyAie2V4
ZWN1dGV9fCB4c2VsIC1pYiB7ZW50ZXJ9e3VuZG99IiBtYWluCisKKyMjIEZvciBzbmlwcGluZyB0
cmFpbGluZyB3aGl0ZXNwYWNlIHdoZW4gc2F2aW5nOgorIyBiaW5kIF5TICJ7ZXhlY3V0ZX18IHNl
ZCAncy9bWzpzcGFjZTpdXVwrJC8vJyB7ZW50ZXJ9e3NhdmVmaWxlfSIgbWFpbgorCisKKworIyMj
IyMgIE1lbnU6IHNlYXJjaAorCisjIyBJbiBoaXN0b3J5LWNhcGFibGUgcHJvbXB0cywgVXAvRG93
biBuYXZpZ2F0ZSB0aGUgaGlzdG9yeSBsaXN0IGluc3RlYWQ6CitiaW5kIFVwICAgICAgIG9sZGVy
ICAgICAgc2VhcmNoCitiaW5kIF5QICAgICAgIG9sZGVyICAgICAgc2VhcmNoCitiaW5kIERvd24g
ICAgIG5ld2VyICAgICAgc2VhcmNoCitiaW5kIF5OICAgICAgIG5ld2VyICAgICAgc2VhcmNoCisK
KyMjIFRvZ2dsZXMgaW4gdGhlIHNlYXJjaCBhbmQgcmVwbGFjZSBwcm9tcHRzOgorYmluZCBNLUMg
ICAgICBjYXNlc2VucyAgIHNlYXJjaAorYmluZCBNLVIgICAgICByZWdleHAgICAgIHNlYXJjaAor
YmluZCBNLUIgICAgICBiYWNrd2FyZHMgIHNlYXJjaAorYmluZCBeUiAgICAgICBmbGlwcmVwbGFj
ZSAgc2VhcmNoCitiaW5kIF5UICAgICAgIGZsaXBnb3RvICAgc2VhcmNoCitiaW5kIF4vICAgICAg
IGZsaXBnb3RvICAgc2VhcmNoCisKKworIyMjIyMgIE1lbnU6IHJlcGxhY2UKKworIyMgSW4gaGlz
dG9yeS1jYXBhYmxlIHByb21wdHMsIFVwL0Rvd24gbmF2aWdhdGUgdGhlIGhpc3RvcnkgbGlzdCBp
bnN0ZWFkOgorYmluZCBVcCAgICAgICBvbGRlciAgICAgIHJlcGxhY2UKK2JpbmQgRG93biAgICAg
bmV3ZXIgICAgICByZXBsYWNlCisKKyMjIEluIGhpc3RvcnktY2FwYWJsZSBwcm9tcHRzLCBeUC9e
TiBuYXZpZ2F0ZSB0aGUgaGlzdG9yeSBsaXN0OgorYmluZCBeUCAgICAgICBvbGRlciAgICAgIHJl
cGxhY2UKK2JpbmQgXk4gICAgICAgbmV3ZXIgICAgICByZXBsYWNlCisKKyMjIFRvZ2dsZXMgaW4g
dGhlIHNlYXJjaCBhbmQgcmVwbGFjZSBwcm9tcHRzOgorYmluZCBNLUMgICAgICBjYXNlc2VucyAg
ICAgcmVwbGFjZQorYmluZCBNLVIgICAgICByZWdleHAgICAgICAgcmVwbGFjZQorYmluZCBNLUIg
ICAgICBiYWNrd2FyZHMgICAgcmVwbGFjZQorYmluZCBeUiAgICAgICBmbGlwcmVwbGFjZSAgcmVw
bGFjZQorCisKKyMjIyMjICBNZW51OiByZXBsYWNld2l0aAorCisjIyBJbiBoaXN0b3J5LWNhcGFi
bGUgcHJvbXB0cywgVXAvRG93biBuYXZpZ2F0ZSB0aGUgaGlzdG9yeSBsaXN0IGluc3RlYWQ6Citi
aW5kIFVwICAgICAgIG9sZGVyICAgICAgcmVwbGFjZXdpdGgKK2JpbmQgRG93biAgICAgbmV3ZXIg
ICAgICByZXBsYWNld2l0aAorCisjIyBJbiBoaXN0b3J5LWNhcGFibGUgcHJvbXB0cywgXlAvXk4g
bmF2aWdhdGUgdGhlIGhpc3RvcnkgbGlzdDoKK2JpbmQgXlAgICAgICAgb2xkZXIgICAgICByZXBs
YWNld2l0aAorYmluZCBeTiAgICAgICBuZXdlciAgICAgIHJlcGxhY2V3aXRoCisKKworIyMjIyMg
IE1lbnU6IHllc25vCisKKworIyMjIyMgIE1lbnU6IGdvdG9saW5lCisKKyMjIEluIHRoZSBnb3Rv
bGluZSBhbmQgc2VhcmNoIHByb21wdHMsIF5ZL15WIGp1bXAgdG8gZmlyc3QvbGFzdCBsaW5lOgor
YmluZCBeWSAgICAgICBmaXJzdGxpbmUgIGdvdG9saW5lCitiaW5kIF5WICAgICAgIGxhc3RsaW5l
ICAgZ290b2xpbmUKKworIyMgVG9nZ2xlcyBpbiB0aGUgc2VhcmNoIGFuZCByZXBsYWNlIHByb21w
dHM6CitiaW5kIF5UICAgICAgIGZsaXBnb3RvICAgZ290b2xpbmUKK2JpbmQgXi8gICAgICAgZmxp
cGdvdG8gICBnb3RvbGluZQorCisjIyBJbiB0aGUgZ290b2xpbmUgcHJvbXB0LCBuYXZpZ2F0ZSBi
eSBwYXJhZ3JhcGg6CitiaW5kIF5XICAgICAgIGJlZ2lucGFyYSAgZ290b2xpbmUKK2JpbmQgXk8g
ICAgICAgZW5kcGFyYSAgICBnb3RvbGluZQorCisjIyMjIyAgTWVudTogd3JpdGVvdXQKKworIyMg
T3BlbiB0aGUgZmlsZSBicm93c2VyIGZyb20gdGhlIHdyaXRlb3V0IG9yIGluc2VydCBwcm9tcHQ6
CitiaW5kIF5UICAgICAgIHRvZmlsZXMgICAgd3JpdGVvdXQKKworIyMgT3B0aW9ucyBpbiB0aGUg
d3JpdGUtb3V0IHByb21wdDoKK2JpbmQgXlEgICAgICAgZGlzY2FyZGJ1ZmZlciAgd3JpdGVvdXQK
K2JpbmQgTS1EICAgICAgZG9zZm9ybWF0ICAgICAgd3JpdGVvdXQKK2JpbmQgTS1CICAgICAgYmFj
a3VwICAgICAgICAgd3JpdGVvdXQKK2JpbmQgTS1BICAgICAgYXBwZW5kICAgICAgICAgd3JpdGVv
dXQKK2JpbmQgTS1QICAgICAgcHJlcGVuZCAgICAgICAgd3JpdGVvdXQKKworIyMjIyMgIE1lbnU6
IGluc2VydAorCisjIyBPcGVuIHRoZSBmaWxlIGJyb3dzZXIgZnJvbSB0aGUgd3JpdGVvdXQgb3Ig
aW5zZXJ0IHByb21wdDoKK2JpbmQgXlQgICAgICAgdG9maWxlcyAgICBpbnNlcnQKKworIyMgT3B0
aW9ucyBpbiB0aGUgaW5zZXJ0IGFuZCBleGVjdXRlIHByb21wdHM6CitiaW5kIF5YICAgICAgIGZs
aXBleGVjdXRlICAgIGluc2VydAorYmluZCBNLU4gICAgICBmbGlwY29udmVydCAgICBpbnNlcnQK
K2JpbmQgTS1GICAgICAgZmxpcG5ld2J1ZmZlciAgaW5zZXJ0CisKKyMjIyMjICBNZW51OiBleGVj
dXRlCisKKyMjIEluIGhpc3RvcnktY2FwYWJsZSBwcm9tcHRzLCBVcC9Eb3duIG5hdmlnYXRlIHRo
ZSBoaXN0b3J5IGxpc3QgaW5zdGVhZDoKK2JpbmQgVXAgICAgICAgb2xkZXIgICAgICBleGVjdXRl
CitiaW5kIERvd24gICAgIG5ld2VyICAgICAgZXhlY3V0ZQorCisjIyBJbiBoaXN0b3J5LWNhcGFi
bGUgcHJvbXB0cywgXlAvXk4gbmF2aWdhdGUgdGhlIGhpc3RvcnkgbGlzdDoKK2JpbmQgXlAgICAg
ICAgb2xkZXIgICAgICBleGVjdXRlCitiaW5kIF5OICAgICAgIG5ld2VyICAgICAgZXhlY3V0ZQor
CisjIyBPcHRpb25zIGluIHRoZSBpbnNlcnQgYW5kIGV4ZWN1dGUgcHJvbXB0czoKK2JpbmQgTS1G
ICAgICAgZmxpcG5ld2J1ZmZlciAgZXhlY3V0ZQorYmluZCBNLVwgICAgICBmbGlwcGlwZSAgICAg
ICBleGVjdXRlCitiaW5kIF5WICAgICAgIGN1dHJlc3RvZmZpbGUgIGV4ZWN1dGUKKworIyMgU3Vz
cGVuZCB0byB0aGUgYmFja2dyb3VuZCAodmlhIHRoZSBleGVjdXRlIG1lbnU6IF5UIHRoZW4gXlop
OgorYmluZCBeWiAgICAgICBzdXNwZW5kICAgIGV4ZWN1dGUKKworIyMgLS0gSnVzdGlmeSAtLQor
YmluZCBeSiAgICAgICBmdWxsanVzdGlmeSAgZXhlY3V0ZQorCisjIyAtLSBTcGVsbCBjaGVja2lu
ZywgbGludGluZywgYW5kIGZvcm1hdHRpbmcgLS0KK2JpbmQgXlMgICAgICAgc3BlbGxlciAgICBl
eGVjdXRlCitiaW5kIF5UICAgICAgIHNwZWxsZXIgICAgZXhlY3V0ZQorYmluZCBeWSAgICAgICBs
aW50ZXIgICAgIGV4ZWN1dGUKK2JpbmQgXk8gICAgICAgZm9ybWF0dGVyICBleGVjdXRlCisKKwor
IyMjIyMgIE1lbnU6IGhlbHAKKworIyMgSW4gdGhlIGZpbGUgYnJvd3NlciBhbmQgaGVscCB2aWV3
ZXIsIEJzcC9TaC1EZWwgc2Nyb2xsIGEgcGFnZSB1cDoKK2JpbmQgQnNwICAgICAgcGFnZXVwICAg
ICBoZWxwCitiaW5kIFNoLURlbCAgIHBhZ2V1cCAgICAgaGVscAorYmluZCBTcGFjZSAgICBwYWdl
ZG93biAgIGhlbHAKKworIyMgSW4gdGhlIGhlbHAgdmlld2VyLCBIb21lL0VuZCBqdW1wIHRvIHRo
ZSBmaXJzdC9sYXN0IGxpbmU6CitiaW5kIEhvbWUgICAgIGZpcnN0bGluZSAgaGVscAorYmluZCBF
bmQgICAgICBsYXN0bGluZSAgIGhlbHAKKworIyMgSnVtcCB0byB0aGUgdmVyeSBmaXJzdCBvciBs
YXN0IGxpbmUgb2YgdGhlIGZpbGU6CitiaW5kIE0tXCAgICAgIGZpcnN0bGluZSAgaGVscAorYmlu
ZCBeSG9tZSAgICBmaXJzdGxpbmUgIGhlbHAKK2JpbmQgTS0vICAgICAgbGFzdGxpbmUgICBoZWxw
CitiaW5kIF5FbmQgICAgIGxhc3RsaW5lICAgaGVscAorCisjIyBDbGFzc2ljIEVtYWNzLXN0eWxl
IHVwL2Rvd24gaW4gbWFpbiwgYnJvd3NlciwgYW5kIGhlbHA6CitiaW5kIF5QICAgICAgIHByZXZs
aW5lICAgaGVscAorYmluZCBeTiAgICAgICBuZXh0bGluZSAgIGhlbHAKKworIyMgLS0gSGVscCwg
ZXhpdCwgYW5kIGNhbmNlbCAtLQorYmluZCBeRyAgICAgICBleGl0ICAgICAgIGhlbHAKK2JpbmQg
RjEgICAgICAgZXhpdCAgICAgICBoZWxwCitiaW5kIF5YICAgICAgIGV4aXQgICAgICAgaGVscAor
YmluZCBGMiAgICAgICBleGl0ICAgICAgIGhlbHAKK2JpbmQgXkMgICAgICAgZXhpdCAgICAgICBo
ZWxwCisKKyMjIF5CL15GIG1vdmUgdGhlIGN1cnNvciBsZWZ0L3JpZ2h0IGluIHByb21wdHMsIHNl
YXJjaCBiYWNrd2FyZC9mb3J3YXJkIGVsc2V3aGVyZToKK2JpbmQgXkIgICAgICAgd2hlcmV3YXMg
ICBoZWxwCitiaW5kIF5GICAgICAgIHdoZXJlaXMgICAgaGVscAorCisKKworIyMjIyMgIE1lbnU6
IHNwZWxsCisKKworIyMjIyMgIE1lbnU6IGxpbnRlcgorCisKKyMjIyMjICBNZW51OiBicm93c2Vy
CisKKyMjIEluIHRoZSBmaWxlIGJyb3dzZXIgYW5kIGhlbHAgdmlld2VyLCBCc3AvU2gtRGVsIHNj
cm9sbCBhIHBhZ2UgdXA6CitiaW5kIEJzcCAgICAgIHBhZ2V1cCAgICAgYnJvd3NlcgorYmluZCBT
aC1EZWwgICBwYWdldXAgICAgIGJyb3dzZXIKK2JpbmQgU3BhY2UgICAgcGFnZWRvd24gICBicm93
c2VyCisKKyMjIEluIHRoZSBicm93c2VyLCBIb21lL0VuZCBqdW1wIHRvIHRoZSBmaXJzdC9sYXN0
IGZpbGU6CitiaW5kIEhvbWUgICAgIGZpcnN0ZmlsZSAgYnJvd3NlcgorYmluZCBFbmQgICAgICBs
YXN0ZmlsZSAgIGJyb3dzZXIKKworIyMgSW4gdGhlIGZpbGUgYnJvd3NlciwgTS1cIGFuZCBNLS8g
anVtcCB0byBmaXJzdC9sYXN0IGZpbGU6CitiaW5kIE0tXCAgICAgIGZpcnN0ZmlsZSAgYnJvd3Nl
cgorYmluZCBNLS8gICAgICBsYXN0ZmlsZSAgIGJyb3dzZXIKK2JpbmQgXkhvbWUgICAgZmlyc3Rm
aWxlICBicm93c2VyCitiaW5kIF5FbmQgICAgIGxhc3RmaWxlICAgYnJvd3NlcgorCisjIyBDbGFz
c2ljIEVtYWNzLXN0eWxlIHVwL2Rvd24gaW4gbWFpbiwgYnJvd3NlciwgYW5kIGhlbHA6CitiaW5k
IF5QICAgICAgIHByZXZsaW5lICAgYnJvd3NlcgorYmluZCBeTiAgICAgICBuZXh0bGluZSAgIGJy
b3dzZXIKKworIyMgLS0gRXhpdCwgYW5kIGNhbmNlbCAtLQorYmluZCBeWCAgICAgICBleGl0ICAg
ICAgIGJyb3dzZXIKK2JpbmQgRjIgICAgICAgZXhpdCAgICAgICBicm93c2VyCisjIyBeQyBjYW5j
ZWxzIGluIHByb21wdHMsIHJlcG9ydHMgcG9zaXRpb24gaW4gbWFpbiwgYW5kIGV4aXRzIGluIGJy
b3dzZXIvaGVscDoKK2JpbmQgXkMgICAgICAgZXhpdCAgICAgICBicm93c2VyCisKKyMjIEluIHRo
ZSBicm93c2VyIGl0c2VsZiwgXlQgY2xvc2VzIGl0IChzYW1lIGtleSBhcyB1c2VkIHRvIG9wZW4g
aXQpOgorYmluZCBeVCAgICAgICBleGl0ICAgICAgIGJyb3dzZXIKKworIyMgXkIvXkYgbW92ZSB0
aGUgY3Vyc29yIGxlZnQvcmlnaHQgaW4gcHJvbXB0cywgc2VhcmNoIGJhY2t3YXJkL2ZvcndhcmQg
ZWxzZXdoZXJlOgorYmluZCBeQiAgICAgICB3aGVyZXdhcyAgIGJyb3dzZXIKK2JpbmQgXkYgICAg
ICAgd2hlcmVpcyAgICBicm93c2VyCisKKyMjIC0tIEZpbGUgYnJvd3NlciBuYXZpZ2F0aW9uIC0t
CitiaW5kIE0tRyAgICAgIGdvdG9kaXIgICAgYnJvd3NlcgorYmluZCBeXyAgICAgICBnb3RvZGly
ICAgIGJyb3dzZXIKK2JpbmQgXi8gICAgICAgZ290b2RpciAgICBicm93c2VyCisKKworCisjIyMj
IyAgTWVudTogd2hlcmVpc2ZpbGUKKworIyMgSW4gaGlzdG9yeS1jYXBhYmxlIHByb21wdHMsIFVw
L0Rvd24gbmF2aWdhdGUgdGhlIGhpc3RvcnkgbGlzdCBpbnN0ZWFkOgorYmluZCBVcCAgICAgICBv
bGRlciAgICAgIHdoZXJlaXNmaWxlCitiaW5kIERvd24gICAgIG5ld2VyICAgICAgd2hlcmVpc2Zp
bGUKKworIyMgSW4gdGhlIGZpbGUgYnJvd3NlcidzIHNlYXJjaCBwcm9tcHQsIF5ZL15WIGp1bXAg
dG8gZmlyc3QvbGFzdCBmaWxlOgorYmluZCBeWSAgICAgICBmaXJzdGZpbGUgIHdoZXJlaXNmaWxl
CitiaW5kIF5WICAgICAgIGxhc3RmaWxlICAgd2hlcmVpc2ZpbGUKKworIyMgSW4gdGhlIGZpbGUg
YnJvd3NlciwgTS1cIGFuZCBNLS8ganVtcCB0byBmaXJzdC9sYXN0IGZpbGU6CitiaW5kIE0tXCAg
ICAgIGZpcnN0ZmlsZSAgd2hlcmVpc2ZpbGUKK2JpbmQgTS0vICAgICAgbGFzdGZpbGUgICB3aGVy
ZWlzZmlsZQorCisjIyBJbiBoaXN0b3J5LWNhcGFibGUgcHJvbXB0cywgXlAvXk4gbmF2aWdhdGUg
dGhlIGhpc3RvcnkgbGlzdDoKK2JpbmQgXlAgICAgICAgb2xkZXIgICAgICB3aGVyZWlzZmlsZQor
YmluZCBeTiAgICAgICBuZXdlciAgICAgIHdoZXJlaXNmaWxlCisKKworCisjIyMjIyAgTWVudTog
Z290b2RpcgorCisKKworYmluZCBeWCAgICAgICBjYW5jZWwgICAgIGxpbnRlcgpkaWZmIC0tZ2l0
IGEvZG9jL3NhbXBsZS5uYW5vcmMuaW4gYi9kb2Mvc2FtcGxlLm5hbm9yYy5pbgpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYzRhM2UxMGIuLjAwMDAwMDAwCi0tLSBhL2RvYy9zYW1wbGUu
bmFub3JjLmluCisrKyAvZGV2L251bGwKQEAgLTEsMzUzICswLDAgQEAKLSMjIFNhbXBsZSBpbml0
aWFsaXphdGlvbiBmaWxlIGZvciBHTlUgbmFuby4KLSMjCi0jIyBGb3IgdGhlIG9wdGlvbnMgdGhh
dCB0YWtlIHBhcmFtZXRlcnMsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIHNob3duLgotIyMgT3RoZXIg
b3B0aW9ucyBhcmUgdW5zZXQgYnkgZGVmYXVsdC4gIFRvIG1ha2Ugc3VyZSB0aGF0IGFuIG9wdGlv
bgotIyMgaXMgZGlzYWJsZWQsIHlvdSBjYW4gdXNlICJ1bnNldCA8b3B0aW9uPiIuCi0jIwotIyMg
Q2hhcmFjdGVycyB0aGF0IGFyZSBzcGVjaWFsIGluIGEgc2hlbGwgc2hvdWxkIG5vdCBiZSBlc2Nh
cGVkIGhlcmUuCi0jIyBJbnNpZGUgc3RyaW5nIHBhcmFtZXRlcnMsIHF1b3RlcyBzaG91bGQgbm90
IGJlIGVzY2FwZWQgLS0gdGhlIGxhc3QKLSMjIGRvdWJsZSBxdW90ZSBvbiB0aGUgbGluZSB3aWxs
IGJlIHNlZW4gYXMgdGhlIGNsb3NpbmcgcXVvdGUuCi0KLSMjIElmIHlvdSB3YW50IF5GLCBeQiwg
TS1GIGFuZCBNLUIgdG8gZG8gd2hhdCB0aGV5IGRpZCBiZWZvcmUgdmVyc2lvbiA4LjA6Ci0jIGJp
bmQgXkYgZm9yd2FyZCBtYWluCi0jIGJpbmQgXkIgYmFjayBtYWluCi0jIGJpbmQgTS1GIGZvcm1h
dHRlciBtYWluCi0jIGJpbmQgTS1CIGxpbnRlciBtYWluCi0KLSMjIE1ha2UgTS08IGFuZCBNLT4g
c3dpdGNoIGJldHdlZW4gYnVmZmVycywgYXMgdGhleSBkaWQgYmVmb3JlIHZlcnNpb24gOS4wOgot
IyBiaW5kIE0tPCBwcmV2YnVmIG1haW4KLSMgYmluZCBNLT4gbmV4dGJ1ZiBtYWluCi0KLSMjIE1h
a2UgJ25leHR3b3JkJyAoQ3RybCtSaWdodCkgYW5kICdjaG9wd29yZHJpZ2h0JyAoQ3RybCtEZWxl
dGUpCi0jIyBzdG9wIGF0IHdvcmQgZW5kcyBpbnN0ZWFkIG9mIGF0IGJlZ2lubmluZ3MuCi0jIHNl
dCBhZnRlcmVuZHMKLQotIyMgV2hlbiBzb2Z0IGxpbmUgd3JhcHBpbmcgaXMgZW5hYmxlZCwgbWFr
ZSBpdCB3cmFwIGxpbmVzIGF0IGJsYW5rcwotIyMgKHRhYnMgYW5kIHNwYWNlcykgaW5zdGVhZCBv
ZiBhbHdheXMgYXQgdGhlIGVkZ2Ugb2YgdGhlIHNjcmVlbi4KLSMgc2V0IGF0YmxhbmtzCi0KLSMj
IEF1dG9tYXRpY2FsbHkgaW5kZW50IGEgbmV3bHkgY3JlYXRlZCBsaW5lIHRvIHRoZSBzYW1lIG51
bWJlciBvZgotIyMgdGFicyBhbmQvb3Igc3BhY2VzIGFzIHRoZSBwcmVjZWRpbmcgbGluZSAtLSBv
ciBhcyB0aGUgbmV4dCBsaW5lCi0jIyBpZiB0aGUgcHJlY2VkaW5nIGxpbmUgaXMgdGhlIGJlZ2lu
bmluZyBvZiBhIHBhcmFncmFwaC4KLSMgc2V0IGF1dG9pbmRlbnQKLQotIyMgQmFjayB1cCBmaWxl
cyB0byB0aGUgY3VycmVudCBmaWxlbmFtZSBwbHVzIGEgdGlsZGUuCi0jIHNldCBiYWNrdXAKLQot
IyMgVGhlIGRpcmVjdG9yeSB0byBwdXQgdW5pcXVlIGJhY2t1cCBmaWxlcyBpbi4KLSMgc2V0IGJh
Y2t1cGRpciAiIgotCi0jIyBVc2UgYm9sZCB0ZXh0IGluc3RlYWQgb2YgcmV2ZXJzZSB2aWRlbyB0
ZXh0LgotIyBzZXQgYm9sZHRleHQKLQotIyMgVHJlYXQgYW55IGxpbmUgd2l0aCBsZWFkaW5nIHdo
aXRlc3BhY2UgYXMgdGhlIGJlZ2lubmluZyBvZiBhIHBhcmFncmFwaC4KLSMgc2V0IGJvb2tzdHls
ZQotCi0jIyBUaGUgY2hhcmFjdGVycyB0cmVhdGVkIGFzIGNsb3NpbmcgYnJhY2tldHMgd2hlbiBq
dXN0aWZ5aW5nIHBhcmFncmFwaHMuCi0jIyBUaGlzIG1heSBub3QgaW5jbHVkZSBhbnkgYmxhbmsg
Y2hhcmFjdGVycy4gIE9ubHkgY2xvc2luZyBwdW5jdHVhdGlvbiwKLSMjIG9wdGlvbmFsbHkgZm9s
bG93ZWQgYnkgdGhlc2UgY2xvc2luZyBicmFja2V0cywgY2FuIGVuZCBzZW50ZW5jZXMuCi0jIHNl
dCBicmFja2V0cyAiIicpPl19IgotCi0jIyBBdXRvbWF0aWNhbGx5IGhhcmQtd3JhcCB0aGUgY3Vy
cmVudCBsaW5lIHdoZW4gaXQgYmVjb21lcyBvdmVybG9uZy4KLSMgc2V0IGJyZWFrbG9uZ2xpbmVz
Ci0KLSMjIERvIGNhc2Utc2Vuc2l0aXZlIHNlYXJjaGVzIGJ5IGRlZmF1bHQuCi0jIHNldCBjYXNl
c2Vuc2l0aXZlCi0KLSMjIEludGVycHJldCBkaWdpdHMgYWZ0ZXIgYSBjb2xvbiBhZnRlciBhIGZp
bGVuYW1lIChvbiB0aGUgY29tbWFuZCBsaW5lKQotIyMgYXMgdGhlIGxpbmUgbnVtYmVyIHRvIGdv
IHRvIGluIHRoYXQgZmlsZS4KLSMgc2V0IGNvbG9ucGFyc2luZwotCi0jIyBDb25zdGFudGx5IHJl
cG9ydCB0aGUgY3Vyc29yIHBvc2l0aW9uLCBpbiB0aGUgc3RhdHVzIGJhciBvciBtaW5pYmFyLgot
IyBzZXQgY29uc3RhbnRzaG93Ci0KLSMjIFVzZSBjdXQtZnJvbS1jdXJzb3ItdG8tZW5kLW9mLWxp
bmUgYnkgZGVmYXVsdC4KLSMgc2V0IGN1dGZyb21jdXJzb3IKLQotIyMgRG8gbm90IHVzZSB0aGUg
bGluZSBiZWxvdyB0aGUgdGl0bGUgYmFyLCBsZWF2aW5nIGl0IGVudGlyZWx5IGJsYW5rLgotIyBz
ZXQgZW1wdHlsaW5lCi0KLSMjIFNldCB0aGUgdGFyZ2V0IHdpZHRoIGZvciBhdXRvbWF0aWMgaGFy
ZC13cmFwcGluZyBhbmQgZm9yIGp1c3RpZnlpbmcKLSMjIHBhcmFncmFwaHMuICBJZiB0aGUgc3Bl
Y2lmaWVkIHZhbHVlIGlzIDAgb3IgbGVzcywgdGhlIHdyYXBwaW5nIHBvaW50Ci0jIyB3aWxsIGJl
IHRoZSB0ZXJtaW5hbCdzIHdpZHRoIG1pbnVzIHRoaXMgbnVtYmVyLgotIyBzZXQgZmlsbCAtOAot
Ci0jIyBEcmF3IGEgdmVydGljYWwgc3RyaXBlIGF0IHRoZSBnaXZlbiBjb2x1bW4sIHRvIGhlbHAg
anVkZ2UgdGV4dCB3aWR0aC4KLSMjIChUaGlzIG9wdGlvbiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVs
dCB2YWx1ZS4pCi0jIHNldCBndWlkZXN0cmlwZSA3NQotCi0jIyBSZW1lbWJlciB0aGUgdXNlZCBz
ZWFyY2gvcmVwbGFjZS9jb21tYW5kIHN0cmluZ3MgZm9yIHRoZSBuZXh0IHNlc3Npb24uCi0jIHNl
dCBoaXN0b3J5bG9nCi0KLSMjIERpc3BsYXkgYSAic2Nyb2xsYmFyIiBvbiB0aGUgcmlnaHRoYW5k
IHNpZGUgb2YgdGhlIGVkaXQgd2luZG93LgotIyBzZXQgaW5kaWNhdG9yCi0KLSMjIFNjcm9sbCB0
aGUgYnVmZmVyIGNvbnRlbnRzIHBlciBoYWxmLXNjcmVlbiBpbnN0ZWFkIG9mIHBlciBsaW5lLgot
IyBzZXQganVtcHlzY3JvbGxpbmcKLQotIyMgRGlzcGxheSBsaW5lIG51bWJlcnMgdG8gdGhlIGxl
ZnQgKGFuZCBhbnkgYW5jaG9ycyBpbiB0aGUgbWFyZ2luKS4KLSMgc2V0IGxpbmVudW1iZXJzCi0K
LSMjIExldCBvdGhlciB1c2VycyAob2YgbmFubyBvciB2aW0pIGtub3cgdGhhdCB5b3UgYXJlIGVk
aXRpbmcgdGhlIGZpbGUKLSMjIHRoZXkgYXJlIHRyeWluZyB0byBlZGl0LCBhbmQgdGhlIG90aGVy
IHdheSBhcm91bmQuCi0jIHNldCBsb2NraW5nCi0KLSMjIEZhbGwgYmFjayB0byBzbG93IGxpYm1h
Z2ljIHRvIHRyeSBhbmQgZGV0ZXJtaW5lIGFuIGFwcGxpY2FibGUgc3ludGF4LgotIyBzZXQgbWFn
aWMKLQotIyMgVGhlIG9wZW5pbmcgYW5kIGNsb3NpbmcgYnJhY2tldHMgdGhhdCBhcmUgZm91bmQg
YnkgYSBtYXRjaGluZy1icmFja2V0Ci0jIyBzZWFyY2guICBUaGlzIG1heSBub3QgY29udGFpbiBi
bGFuayBjaGFyYWN0ZXJzLiAgVGhlIG9wZW5pbmcgYnJhY2tldHMKLSMjIG11c3QgY29tZSBiZWZv
cmUgdGhlIGNsb3Npbmcgb25lcywgYW5kIHRoZXkgbXVzdCBiZSBpbiB0aGUgc2FtZSBvcmRlci4K
LSMgc2V0IG1hdGNoYnJhY2tldHMgIig8W3spPl19IgotCi0jIyBTdXBwcmVzcyB0aGUgdGl0bGUg
YmFyIGFuZCBzaG93IHRoZSBmaWxlbmFtZSBwbHVzIGEgY3Vyc29yLXBvc2l0aW9uCi0jIyBwZXJj
ZW50YWdlIGluIHRoZSBzcGFjZSBvZiB0aGUgc3RhdHVzIGJhci4KLSMgc2V0IG1pbmliYXIKLQot
IyMgRW5hYmxlIG1vdXNlIHN1cHBvcnQsIGlmIGF2YWlsYWJsZSBmb3IgeW91ciBzeXN0ZW0uICBX
aGVuIGVuYWJsZWQsCi0jIyBtb3VzZSBjbGlja3MgY2FuIGJlIHVzZWQgdG8gcGxhY2UgdGhlIGN1
cnNvciwgc2V0IHRoZSBtYXJrICh3aXRoCi0jIyB0d28gY2xpY2tzKSwgYW5kIGV4ZWN1dGUgc2hv
cnRjdXRzLiAgVGhlIG1vdXNlIHdpbGwgd29yayBpbiB0aGUKLSMjIFggV2luZG93IFN5c3RlbSwg
YW5kIG9uIHRoZSBjb25zb2xlIHdoZW4gZ3BtIGlzIHJ1bm5pbmcuCi0jIHNldCBtb3VzZQotCi0j
IyBTd2l0Y2ggb24gbXVsdGlwbGUgZmlsZSBidWZmZXJzIChpbnNlcnRpbmcgYSBmaWxlIHdpbGwg
cHV0IGl0IGludG8KLSMjIGEgc2VwYXJhdGUgYnVmZmVyKS4KLSMgc2V0IG11bHRpYnVmZmVyCi0K
LSMjIERvbid0IGNvbnZlcnQgZmlsZXMgZnJvbSBET1MgZm9ybWF0LgotIyBzZXQgbm9jb252ZXJ0
Ci0KLSMjIERvbid0IGRpc3BsYXkgdGhlIGhlbHBmdWwgc2hvcnRjdXQgbGlzdHMgYXQgdGhlIGJv
dHRvbSBvZiB0aGUgc2NyZWVuLgotIyBzZXQgbm9oZWxwCi0KLSMjIERvbid0IGF1dG9tYXRpY2Fs
bHkgYWRkIGEgbmV3bGluZSB3aGVuIGEgZmlsZSBkb2VzIG5vdCBlbmQgd2l0aCBvbmUuCi0jIHNl
dCBub25ld2xpbmVzCi0KLSMjIFNldCBvcGVyYXRpbmcgZGlyZWN0b3J5LiAgbmFubyB3aWxsIG5v
dCByZWFkIG9yIHdyaXRlIGZpbGVzIG91dHNpZGUKLSMjIHRoaXMgZGlyZWN0b3J5IGFuZCBpdHMg
c3ViZGlyZWN0b3JpZXMuICBBbHNvLCB0aGUgY3VycmVudCBkaXJlY3RvcnkKLSMjIGlzIGNoYW5n
ZWQgdG8gaGVyZSwgc28gYW55IGZpbGVzIGFyZSBpbnNlcnRlZCBmcm9tIHRoaXMgZGlyLiAgQSBi
bGFuawotIyMgc3RyaW5nIG1lYW5zIHRoZSBvcGVyYXRpbmctZGlyZWN0b3J5IGZlYXR1cmUgaXMg
dHVybmVkIG9mZi4KLSMgc2V0IG9wZXJhdGluZ2RpciAiIgotCi0jIyBSZW1lbWJlciB0aGUgcG9z
aXRpb24gb2YgY3Vyc29yIGFuZCBhbmNob3JzIGZvciB0aGUgbmV4dCBlZGl0aW5nIHNlc3Npb24u
Ci0jIHNldCBwb3NpdGlvbmxvZwotCi0jIyBQcmVzZXJ2ZSB0aGUgWE9OIGFuZCBYT0ZGIGtleXMg
KF5RIGFuZCBeUykuCi0jIHNldCBwcmVzZXJ2ZQotCi0jIyBUaGUgY2hhcmFjdGVycyB0cmVhdGVk
IGFzIGNsb3NpbmcgcHVuY3R1YXRpb24gd2hlbiBqdXN0aWZ5aW5nIHBhcmFncmFwaHMuCi0jIyBU
aGlzIG1heSBub3QgY29udGFpbiBibGFuayBjaGFyYWN0ZXJzLiAgT25seSB0aGVzZSB0ZXJtaW5h
dGluZyBjaGFyYWN0ZXJzLAotIyMgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBjbG9zaW5nIGJyYWNr
ZXRzLCBjYW4gZW5kIHNlbnRlbmNlcy4KLSMgc2V0IHB1bmN0ICIhLj8iCi0KLSMjIE1ha2Ugc3Rh
dHVzLWJhciBtZXNzYWdlcyBkaXNhcHBlYXIgYWZ0ZXIgMSBrZXlzdHJva2UgaW5zdGVhZCBvZiBh
ZnRlciAyMC4KLSMgc2V0IHF1aWNrYmxhbmsKLQotIyMgVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0
aGF0IG1hdGNoZXMgcXVvdGluZyBjaGFyYWN0ZXJzIGluIGVtYWlsCi0jIyBvciBsaW5lLWNvbW1l
bnQgaW50cm9kdWNlcnMgaW4gc291cmNlIGNvZGUuICBUaGUgZGVmYXVsdCBpczoKLSMgc2V0IHF1
b3Rlc3RyICJeKFsgCV0qKFshIyU6Oz58fV18Ly8pKSsiCi0KLSMjIFRyeSB0byB3b3JrIGFyb3Vu
ZCBhIG1pc21hdGNoaW5nIHRlcm1pbmZvIHRlcm1pbmFsIGRlc2NyaXB0aW9uLgotIyBzZXQgcmF3
c2VxdWVuY2VzCi0KLSMjIEZpeCBCYWNrc3BhY2UvRGVsZXRlIGNvbmZ1c2lvbiBwcm9ibGVtLgot
IyBzZXQgcmViaW5kZGVsZXRlCi0KLSMjIERvIHJlZ3VsYXItZXhwcmVzc2lvbiBzZWFyY2hlcyBi
eSBkZWZhdWx0LgotIyMgUmVndWxhciBleHByZXNzaW9ucyBhcmUgb2YgdGhlIGV4dGVuZGVkIHR5
cGUgKEVSRSkuCi0jIHNldCByZWdleHAKLQotIyMgU2F2ZSBhIGNoYW5nZWQgYnVmZmVyIGF1dG9t
YXRpY2FsbHkgb24gZXhpdDsgZG9uJ3QgcHJvbXB0LgotIyBzZXQgc2F2ZW9uZXhpdAotCi0jIyBQ
dXQgdGhlIGN1cnNvciBvbiB0aGUgaGlnaGxpZ2h0ZWQgaXRlbSBpbiB0aGUgZmlsZSBicm93c2Vy
LCBhbmQKLSMjIHNob3cgdGhlIGN1cnNvciBpbiB0aGUgaGVscCB2aWV3ZXI7IHVzZWZ1bCBmb3Ig
cGVvcGxlIHdobyB1c2UgYQotIyMgYnJhaWxsZSBkaXNwbGF5IGFuZCBwZW9wbGUgd2l0aCBwb29y
IHZpc2lvbi4KLSMgc2V0IHNob3djdXJzb3IKLQotIyMgTWFrZSB0aGUgSG9tZSBrZXkgc21hcnRl
cjogd2hlbiBIb21lIGlzIHByZXNzZWQgYW55d2hlcmUgYnV0IGF0IHRoZQotIyMgdmVyeSBiZWdp
bm5pbmcgb2Ygbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVycyBvbiBhIGxpbmUsIHRoZSBjdXJzb3IK
LSMjIHdpbGwganVtcCB0byB0aGF0IGJlZ2lubmluZyAoZWl0aGVyIGZvcndhcmRzIG9yIGJhY2t3
YXJkcykuICBJZiB0aGUKLSMjIGN1cnNvciBpcyBhbHJlYWR5IGF0IHRoYXQgcG9zaXRpb24sIGl0
IHdpbGwganVtcCB0byB0aGUgdHJ1ZSBzdGFydAotIyMgb2YgdGhlIGxpbmUgKHRoZSBsZWZ0IGVk
Z2UpLgotIyBzZXQgc21hcnRob21lCi0KLSMjIFNwcmVhZCBvdmVybG9uZyBsaW5lcyBvdmVyIG11
bHRpcGxlIHNjcmVlbiBsaW5lcy4KLSMgc2V0IHNvZnR3cmFwCi0KLSMjIFNjcm9sbCBvbmx5IHRo
ZSBjdXJyZW50IGxpbmUgc2lkZXdheXMgKGluc3RlYWQgb2YgYWxsIGxpbmVzKS4KLSMgc2V0IHNv
bG9zaWRlc2Nyb2xsCi0KLSMjIFVzZSB0aGlzIHNwZWxsaW5nIGNoZWNrZXIgaW5zdGVhZCBvZiB0
aGUgaW50ZXJuYWwgb25lLiAgVGhpcyBvcHRpb24KLSMjIGRvZXMgbm90IGhhdmUgYSBkZWZhdWx0
IHZhbHVlLgotIyBzZXQgc3BlbGxlciAiYXNwZWxsIC14IC1jIgotCi0jIyBVc2UgdGhlIGVuZCBv
ZiB0aGUgdGl0bGUgYmFyIGZvciBzb21lIHN0YXRlIGZsYWdzOiBJID0gYXV0by1pbmRlbnRpbmcs
Ci0jIyBNID0gbWFyaywgTCA9IGhhcmQtd3JhcHBpbmcgbG9uZyBsaW5lcywgUiA9IHJlY29yZGlu
ZywgUyA9IHNvZnQtd3JhcHBpbmcuCi0jIHNldCBzdGF0ZWZsYWdzCi0KLSMjIFVzZSB0aGlzIHRh
YiBzaXplIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQ7IGl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAu
Ci0jIHNldCB0YWJzaXplIDgKLQotIyMgQ29udmVydCBlYWNoIHR5cGVkIHRhYiB0byB0aGUgZml0
dGluZyBudW1iZXIgb2Ygc3BhY2VzLgotIyBzZXQgdGFic3Rvc3BhY2VzCi0KLSMjIFNuaXAgd2hp
dGVzcGFjZSBhdCB0aGUgZW5kIG9mIGxpbmVzIHdoZW4ganVzdGlmeWluZyBvciBoYXJkLXdyYXBw
aW5nLgotIyBzZXQgdHJpbWJsYW5rcwotCi0jIyBTYXZlIGZpbGVzIGFsd2F5cyBpbiBVbml4IGZv
cm1hdCAoYWxzbyB3aGVuIHRoZXkgd2VyZSBET1MpLgotIyBzZXQgdW5peAotCi0jIyBUaGUgdHdv
IHNpbmdsZS1jb2x1bW4gY2hhcmFjdGVycyB1c2VkIHRvIGRpc3BsYXkgdGhlIGZpcnN0IGNoYXJh
Y3RlcnMKLSMjIG9mIHRhYnMgYW5kIHNwYWNlcy4gIDE4NyBpbiBJU08gODg1OS0xICgwMDAwQkIg
aW4gVW5pY29kZSkgYW5kIDE4MyBpbgotIyMgSVNPLTg4NTktMSAoMDAwMEI3IGluIFVuaWNvZGUp
IHNlZW0gdG8gYmUgZ29vZCB2YWx1ZXMgZm9yIHRoZXNlLgotIyMgVGhlIGRlZmF1bHQgd2hlbiBp
biBhIFVURi04IGxvY2FsZToKLSMgc2V0IHdoaXRlc3BhY2UgIsK7wrciCi0jIyBUaGUgZGVmYXVs
dCBvdGhlcndpc2U6Ci0jIHNldCB3aGl0ZXNwYWNlICI+LiIKLQotIyMgRGV0ZWN0IHdvcmQgYm91
bmRhcmllcyBkaWZmZXJlbnRseSBieSB0cmVhdGluZyBwdW5jdHVhdGlvbgotIyMgY2hhcmFjdGVy
cyBhcyBwYXJ0cyBvZiB3b3Jkcy4KLSMgc2V0IHdvcmRib3VuZHMKLQotIyMgVGhlIGNoYXJhY3Rl
cnMgKGJlc2lkZXMgYWxwaGFudW1lcmljIG9uZXMpIHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQK
LSMjIGFzIHBhcnRzIG9mIHdvcmRzLiAgVGhpcyBvcHRpb24gZG9lcyBub3QgaGF2ZSBhIGRlZmF1
bHQgdmFsdWUuICBXaGVuCi0jIyBzZXQsIGl0IG92ZXJyaWRlcyBvcHRpb24gJ3NldCB3b3JkYm91
bmRzJy4KLSMgc2V0IHdvcmRjaGFycyAiPF8+LiIKLQotIyMgTGV0IGFuIHVubW9kaWZpZWQgQmFj
a3NwYWNlIG9yIERlbGV0ZSBlcmFzZSB0aGUgbWFya2VkIHJlZ2lvbiAoaW5zdGVhZAotIyMgb2Yg
YSBzaW5nbGUgY2hhcmFjdGVyLCBhbmQgd2l0aG91dCBhZmZlY3RpbmcgdGhlIGN1dGJ1ZmZlciku
Ci0jIHNldCB6YXAKLQotIyMgSGlkZSB0aGUgYmFycyBwbHVzIGhlbHAgbGluZXMgYW5kIHVzZSB0
aGUgd2hvbGUgdGVybWluYWwgYXMgZWRpdCBhcmVhLgotIyBzZXQgemVybwotCi0KLSMjIFBhaW50
IHRoZSBpbnRlcmZhY2UgZWxlbWVudHMgb2YgbmFuby4gIFRoZXNlIGFyZSBleGFtcGxlczsgdGhl
cmUgYXJlCi0jIyBubyBjb2xvcnMgYnkgZGVmYXVsdCwgZXhjZXB0IGZvciBlcnJvcmNvbG9yIGFu
ZCBzcG90bGlnaHRjb2xvci4KLSMgc2V0IHRpdGxlY29sb3IgYm9sZCx3aGl0ZSxibHVlCi0jIHNl
dCBwcm9tcHRjb2xvciBsaWdodHdoaXRlLGdyZXkKLSMgc2V0IHN0YXR1c2NvbG9yIGJvbGQsd2hp
dGUsZ3JlZW4KLSMgc2V0IGVycm9yY29sb3IgYm9sZCx3aGl0ZSxyZWQKLSMgc2V0IHNwb3RsaWdo
dGNvbG9yIGJsYWNrLGxpZ2h0eWVsbG93Ci0jIHNldCBzZWxlY3RlZGNvbG9yIGxpZ2h0d2hpdGUs
IzgwNAotIyBzZXQgc3RyaXBlY29sb3IgLCM0NDQKLSMgc2V0IHNjcm9sbGVyY29sb3Igc2xhdGUs
IzIyMgotIyBzZXQgbnVtYmVyY29sb3IgY3lhbgotIyBzZXQga2V5Y29sb3IgY3lhbgotIyBzZXQg
ZnVuY3Rpb25jb2xvciBncmVlbgotCi0jIyBJbiByb290J3MgLm5hbm9yYyB5b3UgbWlnaHQgd2Fu
dCB0byB1c2U6Ci0jIHNldCB0aXRsZWNvbG9yIGJvbGQsd2hpdGUsbWFnZW50YQotIyBzZXQgcHJv
bXB0Y29sb3IgYmxhY2sseWVsbG93Ci0jIHNldCBzdGF0dXNjb2xvciBib2xkLHdoaXRlLG1hZ2Vu
dGEKLSMgc2V0IGVycm9yY29sb3IgYm9sZCx3aGl0ZSxyZWQKLSMgc2V0IHNwb3RsaWdodGNvbG9y
IGJsYWNrLG9yYW5nZQotIyBzZXQgc2VsZWN0ZWRjb2xvciBsaWdodHdoaXRlLGN5YW4KLSMgc2V0
IHN0cmlwZWNvbG9yICx5ZWxsb3cKLSMgc2V0IHNjcm9sbGVyY29sb3IgbWFnZW50YQotIyBzZXQg
bnVtYmVyY29sb3IgbWFnZW50YQotIyBzZXQga2V5Y29sb3IgbGlnaHRtYWdlbnRhCi0jIHNldCBm
dW5jdGlvbmNvbG9yIG1hZ2VudGEKLQotCi0jIyA9PT0gU3ludGF4IGNvbG9yaW5nID09PQotIyMg
Rm9yIGFsbCBkZXRhaWxzLCBzZWUgJ21hbiBuYW5vcmMnLCBzZWN0aW9uIFNZTlRBWCBISUdITElH
SFRJTkcuCi0KLSMjIFRvIGluY2x1ZGUgbW9zdCBvZiB0aGUgZXhpc3Rpbmcgc3ludGF4IGRlZmlu
aXRpb25zLCB5b3UgY2FuIGRvOgotIyBpbmNsdWRlIEBQS0dEQVRBRElSQC8qLm5hbm9yYwotCi0j
IyBPciB5b3UgY2FuIHNlbGVjdCBqdXN0IHRoZSBvbmVzIHlvdSBuZWVkLiAgRm9yIGV4YW1wbGU6
Ci0jIGluY2x1ZGUgQFBLR0RBVEFESVJAL2h0bWwubmFub3JjCi0jIGluY2x1ZGUgQFBLR0RBVEFE
SVJAL3B5dGhvbi5uYW5vcmMKLSMgaW5jbHVkZSBAUEtHREFUQURJUkAvc2gubmFub3JjCi0KLSMj
IEluIEBQS0dEQVRBRElSQC9leHRyYS8geW91IGNhbiBmaW5kIHNvbWUgc3ludGF4ZXMgdGhhdCBh
cmUKLSMjIHNwZWNpZmljIGZvciBjZXJ0YWluIGRpc3Ryb3Mgb3IgZm9yIHNvbWUgbGVzcyBjb21t
b24gbGFuZ3VhZ2VzLgotCi0KLSMjIElmIDxUYWI+IHNob3VsZCBhbHdheXMgcHJvZHVjZSBmb3Vy
IHNwYWNlcyB3aGVuIGVkaXRpbmcgYSBQeXRob24gZmlsZSwKLSMjIGluZGVwZW5kZW50IG9mIHRo
ZSBzZXR0aW5ncyBvZiAndGFic2l6ZScgYW5kICd0YWJzdG9zcGFjZXMnOgotIyBleHRlbmRzeW50
YXggcHl0aG9uIHRhYmdpdmVzICIgICAgIgotCi0KLSMjID09PSBLZXkgYmluZGluZ3MgPT09Ci0j
IyBGb3IgYWxsIGRldGFpbHMsIHNlZSAnbWFuIG5hbm9yYycsIHNlY3Rpb24gUkVCSU5ESU5HIEtF
WVMuCi0KLSMjIElmIHlvdSB3YW50IHRvIHN1c3BlbmQgbmFubyB3aXRoIG9uZSBrZXlzdHJva2Ug
KGluc3RlYWQgb2Ygd2l0aCBeVF5aKToKLSMgYmluZCBeWiBzdXNwZW5kIG1haW4KLQotIyMgVGhl
IDxDdHJsK0RlbGV0ZT4ga2V5c3Ryb2tlIGRlbGV0ZXMgdGhlIHdvcmQgdG8gdGhlIHJpZ2h0IG9m
IHRoZSBjdXJzb3IuCi0jIyBPbiBzb21lIHRlcm1pbmFscyB0aGUgPEN0cmwrQmFja3NwYWNlPiBr
ZXlzdHJva2UgcHJvZHVjZXMgXkgsIHdoaWNoIGlzCi0jIyB0aGUgQVNDSUkgY2hhcmFjdGVyIGZv
ciBiYWNrc3BhY2UsIHNvIGl0IGlzIGJvdW5kIGJ5IGRlZmF1bHQgdG8gdGhlCi0jIyBiYWNrc3Bh
Y2UgZnVuY3Rpb24uICBUaGUgPEJhY2tzcGFjZT4ga2V5IGl0c2VsZiBwcm9kdWNlcyBhIGRpZmZl
cmVudAotIyMga2V5Y29kZSwgd2hpY2ggaXMgaGFyZC1ib3VuZCB0byB0aGUgYmFja3NwYWNlIGZ1
bmN0aW9uLiAgU28sIGlmIHlvdQotIyMgbm9ybWFsbHkgdXNlIDxCYWNrc3BhY2U+IGZvciBiYWNr
c3BhY2luZyBhbmQgbm90IF5ILCB5b3UgY2FuIG1ha2UKLSMjIDxDdHJsK0JhY2tzcGFjZT4gZGVs
ZXRlIHRoZSB3b3JkIHRvIHRoZSBsZWZ0IG9mIHRoZSBjdXJzb3Igd2l0aDoKLSMgYmluZCBeSCBj
aG9wd29yZGxlZnQgbWFpbgotCi0jIyBGb3IgYSBtb3JlIG1uZW1vbmljIENvbW1lbnQga2V5c3Ry
b2tlIChvdmVycmlkaW5nIEN1dC1mcm9tLWN1cnNvcik6Ci0jIGJpbmQgTS1LIGNvbW1lbnQgbWFp
bgotCi0jIyBJZiB5b3Ugd2FudCBeTCB0byBqdXN0IHJlZnJlc2ggdGhlIHNjcmVlbiBhbmQgbm90
IGNlbnRlciB0aGUgY3Vyc29yOgotIyBiaW5kIF5MIHJlZnJlc2ggbWFpbgotCi0jIyBXaGVuIHlv
dSBzb21ldGltZXMgdHlwZSBNLUogaW5zdGVhZCBvZiBNLUssIG9yIE0tVCBpbnN0ZWFkIG9mIE0t
UjoKLSMgdW5iaW5kIE0tSiBtYWluCi0jIHVuYmluZCBNLVQgbWFpbgotIyMgKFRob3NlIGZ1bmN0
aW9ucyBhcmUgc3RpbGwgYWNjZXNzaWJsZSB0aHJvdWdoIF5UXkogYW5kIF5UXlYuKQotCi0jIyBG
b3IgcXVpY2tseSB1cHBlcmNhc2luZyBvciBsb3dlcmNhc2luZyB0aGUgd29yZCB0aGF0IHRoZSBj
dXJzb3IgaXMgb24uCi0jIyAoVGhlc2UgZWZmZWN0aXZlbHkgc2VsZWN0IGEgd29yZCBhbmQgcGlw
ZSBpdCB0aHJvdWdoIGEgc2VkIGNvbW1hbmQuKQotIyBiaW5kIFNoLU0tVSAie25leHR3b3JkfXtt
YXJrfXtwcmV2d29yZH17ZXhlY3V0ZX18IHNlZCAncy8uKi9cVSYvJyB7ZW50ZXJ9IiBtYWluCi0j
IGJpbmQgU2gtTS1MICJ7bmV4dHdvcmR9e21hcmt9e3ByZXZ3b3JkfXtleGVjdXRlfXwgc2VkICdz
Ly4qL1xMJi8nIHtlbnRlcn0iIG1haW4KLQotIyMgRm9yIGNvcHlpbmcgYSBtYXJrZWQgcmVnaW9u
IHRvIHRoZSBzeXN0ZW0gY2xpcGJvYXJkOgotIyBiaW5kIFNoLU0tQyAie2V4ZWN1dGV9fCB4c2Vs
IC1pYiB7ZW50ZXJ9e3VuZG99IiBtYWluCi0KLSMjIEZvciBjb3B5aW5nIHRleHQgdG8gdGhlIGxv
Y2FsIGNsaXBib2FyZCB2aWEgT1NDIDUyIChpZiB0ZXJtaW5hbCBzdXBwb3J0cyBpdCk6Ci0jIGJp
bmQgTS0qICJ7ZXhlY3V0ZX18fCBwcmludGYgIlwwMzNdNTI7Yzslc1wwMDciICIkKGJhc2U2NCB8
IHRyIC1kICdcbicpIiB7ZW50ZXJ9e3VuZG99IiBtYWluCi0KLSMjIEZvciBub3JtYWxpemluZyBV
bmljb2RlIHRvIHByZWNvbXBvc2VkIGNoYXJhY3RlcnM6Ci0jIGJpbmQgU2gtTS1OICJ7ZXhlY3V0
ZX18IHVjb252IC14IG5mYyB7ZW50ZXJ9IiBtYWluCi0KLSMjIEZvciB3aXBpbmcgYWxsIGFuY2hv
cnMgaW4gYSBidWZmZXI6Ci0jIGJpbmQgU2gtTS1XICJ7ZXhlY3V0ZX18IGNhdCB7ZW50ZXJ9IiBt
YWluCi0KLSMjIEZvciBzbmlwcGluZyB0cmFpbGluZyBibGFua3Mgd2hlbiB5b3Ugc2F2ZSBhIGZp
bGU6Ci0jIGJpbmQgXlMgIntleGVjdXRlfXwgc2VkICdzL1xzXCskLy8nIHtlbnRlcn17c2F2ZWZp
bGV9IiBtYWluCi0KLSMjIElmIHlvdSB3b3VsZCBsaWtlIG5hbm8gdG8gaGF2ZSBrZXliaW5kaW5n
cyB0aGF0IGFyZSBtb3JlICJ1c3VhbCIsCi0jIyBzdWNoIGFzIF5PIGZvciBPcGVuLCBeRiBmb3Ig
RmluZCwgXkggZm9yIEhlbHAsIGFuZCBeUSBmb3IgUXVpdCwKLSMjIHRoZW4gdW5jb21tZW50IHRo
ZXNlOgotIyBiaW5kIF5YIGN1dCBtYWluCi0jIGJpbmQgXkMgY29weSBtYWluCi0jIGJpbmQgXlYg
cGFzdGUgYWxsCi0jIGJpbmQgXlEgZXhpdCBhbGwKLSMgYmluZCBeUyBzYXZlZmlsZSBtYWluCi0j
IGJpbmQgXlcgd3JpdGVvdXQgbWFpbgotIyBiaW5kIF5PIGluc2VydCBtYWluCi0jIHNldCBtdWx0
aWJ1ZmZlcgotIyBiaW5kIF5IIGhlbHAgYWxsCi0jIGJpbmQgXkggZXhpdCBoZWxwCi0jIGJpbmQg
XkYgd2hlcmVpcyBhbGwKLSMgYmluZCBeRyBmaW5kbmV4dCBhbGwKLSMgYmluZCBeQiB3aGVyZXdh
cyBhbGwKLSMgYmluZCBeRCBmaW5kcHJldmlvdXMgYWxsCi0jIGJpbmQgXlIgcmVwbGFjZSBtYWlu
Ci0jIHVuYmluZCBeVSBhbGwKLSMgdW5iaW5kIF5OIG1haW4KLSMgdW5iaW5kIF5ZIGFsbAotIyB1
bmJpbmQgTS1KIG1haW4KLSMgdW5iaW5kIE0tVCBtYWluCi0jIGJpbmQgXkEgbWFyayBtYWluCi0j
IGJpbmQgXlAgbG9jYXRpb24gbWFpbgotIyBiaW5kIF5UIGdvdG9saW5lIG1haW4KLSMgYmluZCBe
VCBnb3RvZGlyIGJyb3dzZXIKLSMgYmluZCBeVCBjdXRyZXN0b2ZmaWxlIGV4ZWN1dGUKLSMgYmlu
ZCBeTCBsaW50ZXIgZXhlY3V0ZQotIyBiaW5kIF5FIGV4ZWN1dGUgbWFpbgotIyBiaW5kIF5LICJ7
bWFya317ZW5kfXt6YXB9IiBtYWluCi0jIGJpbmQgXlUgInttYXJrfXtob21lfXt6YXB9IiBtYWlu
Ci0jIGJpbmQgXlogdW5kbyBtYWluCi0jIGJpbmQgXlkgcmVkbyBtYWluCmRpZmYgLS1naXQgYS9z
cmMvZ2xvYmFsLmMgYi9zcmMvZ2xvYmFsLmMKaW5kZXggNjljYmRhZTQuLjI3ZDBhNTc1IDEwMDY0
NAotLS0gYS9zcmMvZ2xvYmFsLmMKKysrIGIvc3JjL2dsb2JhbC5jCkBAIC0zNzMsNiArMzczLDIw
IEBAIGludCBrZXljb2RlX2Zyb21fc3RyaW5nKGNvbnN0IGNoYXIgKmtleXN0cmluZykKIAkJCQly
ZXR1cm4gLTE7CiAJCX0gZWxzZSBpZiAoc3RyY2FzZWNtcChrZXlzdHJpbmcsICJeU3BhY2UiKSA9
PSAwKQogCQkJcmV0dXJuIDA7CisJCWVsc2UgaWYgKHN0cmNhc2VjbXAoa2V5c3RyaW5nLCAiXkxl
ZnQiKSA9PSAwKQorCQkJcmV0dXJuIENPTlRST0xfTEVGVDsKKwkJZWxzZSBpZiAoc3RyY2FzZWNt
cChrZXlzdHJpbmcsICJeUmlnaHQiKSA9PSAwKQorCQkJcmV0dXJuIENPTlRST0xfUklHSFQ7CisJ
CWVsc2UgaWYgKHN0cmNhc2VjbXAoa2V5c3RyaW5nLCAiXlVwIikgPT0gMCkKKwkJCXJldHVybiBD
T05UUk9MX1VQOworCQllbHNlIGlmIChzdHJjYXNlY21wKGtleXN0cmluZywgIl5Eb3duIikgPT0g
MCkKKwkJCXJldHVybiBDT05UUk9MX0RPV047CisJCWVsc2UgaWYgKHN0cmNhc2VjbXAoa2V5c3Ry
aW5nLCAiXkhvbWUiKSA9PSAwKQorCQkJcmV0dXJuIENPTlRST0xfSE9NRTsKKwkJZWxzZSBpZiAo
c3RyY2FzZWNtcChrZXlzdHJpbmcsICJeRW5kIikgPT0gMCkKKwkJCXJldHVybiBDT05UUk9MX0VO
RDsKKwkJZWxzZSBpZiAoc3RyY2FzZWNtcChrZXlzdHJpbmcsICJeRGVsIikgPT0gMCkKKwkJCXJl
dHVybiBDT05UUk9MX0RFTEVURTsKIAkJZWxzZQogCQkJcmV0dXJuIC0xOwogCX0gZWxzZSBpZiAo
a2V5c3RyaW5nWzBdID09ICdNJykgewpAQCAtMzkyLDYgKzQwNiwyMCBAQCBpbnQga2V5Y29kZV9m
cm9tX3N0cmluZyhjb25zdCBjaGFyICprZXlzdHJpbmcpCiAJCQlyZXR1cm4gQUxUX1VQOwogCQll
bHNlIGlmIChzdHJjYXNlY21wKGtleXN0cmluZywgIk0tRG93biIpID09IDApCiAJCQlyZXR1cm4g
QUxUX0RPV047CisJCWVsc2UgaWYgKHN0cmNhc2VjbXAoa2V5c3RyaW5nLCAiTS1Ib21lIikgPT0g
MCkKKwkJCXJldHVybiBBTFRfSE9NRTsKKwkJZWxzZSBpZiAoc3RyY2FzZWNtcChrZXlzdHJpbmcs
ICJNLUVuZCIpID09IDApCisJCQlyZXR1cm4gQUxUX0VORDsKKwkJZWxzZSBpZiAoc3RyY2FzZWNt
cChrZXlzdHJpbmcsICJNLVBnVXAiKSA9PSAwKQorCQkJcmV0dXJuIEFMVF9QQUdFVVA7CisJCWVs
c2UgaWYgKHN0cmNhc2VjbXAoa2V5c3RyaW5nLCAiTS1QZ0RuIikgPT0gMCkKKwkJCXJldHVybiBB
TFRfUEFHRURPV047CisJCWVsc2UgaWYgKHN0cmNhc2VjbXAoa2V5c3RyaW5nLCAiTS1JbnMiKSA9
PSAwKQorCQkJcmV0dXJuIEFMVF9JTlNFUlQ7CisJCWVsc2UgaWYgKHN0cmNhc2VjbXAoa2V5c3Ry
aW5nLCAiTS1EZWwiKSA9PSAwKQorCQkJcmV0dXJuIEFMVF9ERUxFVEU7CisJCWVsc2UgaWYgKHN0
cmNhc2VjbXAoa2V5c3RyaW5nLCAiTS1Cc3AiKSA9PSAwKQorCQkJcmV0dXJuIENPTlRST0xfU0hJ
RlRfREVMRVRFOwogCQllbHNlCiAJCQlyZXR1cm4gLTE7CiAjaWZkZWYgRU5BQkxFX05BTk9SQwpA
QCAtNDAxLDEyICs0MjksNDIgQEAgaW50IGtleWNvZGVfZnJvbV9zdHJpbmcoY29uc3QgY2hhciAq
a2V5c3RyaW5nKQogCQlzaGlmdGVkX21ldGFzID0gVFJVRTsKIAkJcmV0dXJuIChrZXlzdHJpbmdb
NV0gJiAweDVGKTsKICNlbmRpZgotCX0gZWxzZSBpZiAoa2V5c3RyaW5nWzBdID09ICdGJykgewor
CX0gZWxzZSBpZiAoc3RyY2FzZWNtcChrZXlzdHJpbmcsICJTaC1EZWwiKSA9PSAwKQorCQlyZXR1
cm4gU0hJRlRfREVMRVRFOworCWVsc2UgaWYgKHN0cmNhc2VjbXAoa2V5c3RyaW5nLCAiU2gtVGFi
IikgPT0gMCkKKwkJcmV0dXJuIFNISUZUX1RBQjsKKwllbHNlIGlmIChzdHJjYXNlY21wKGtleXN0
cmluZywgIlNoLV5EZWwiKSA9PSAwKQorCQlyZXR1cm4gQ09OVFJPTF9TSElGVF9ERUxFVEU7CisJ
ZWxzZSBpZiAoa2V5c3RyaW5nWzBdID09ICdGJykgewogCQlpbnQgZm4gPSBhdG9pKCZrZXlzdHJp
bmdbMV0pOwogCQlpZiAoZm4gPCAxIHx8IGZuID4gMjQpCiAJCQlyZXR1cm4gLTE7CiAJCXJldHVy
biBLRVlfRjAgKyBmbjsKLQl9IGVsc2UgaWYgKHN0cmNhc2VjbXAoa2V5c3RyaW5nLCAiSW5zIikg
PT0gMCkKKwl9IGVsc2UgaWYgKHN0cmNhc2VjbXAoa2V5c3RyaW5nLCAiRW50ZXIiKSA9PSAwKQor
CQlyZXR1cm4gS0VZX0VOVEVSOworCWVsc2UgaWYgKHN0cmNhc2VjbXAoa2V5c3RyaW5nLCAiVGFi
IikgPT0gMCkKKwkJcmV0dXJuICdcdCc7CisJZWxzZSBpZiAoc3RyY2FzZWNtcChrZXlzdHJpbmcs
ICJCc3AiKSA9PSAwKQorCQlyZXR1cm4gS0VZX0JBQ0tTUEFDRTsKKwllbHNlIGlmIChzdHJjYXNl
Y21wKGtleXN0cmluZywgIlNwYWNlIikgPT0gMCkKKwkJcmV0dXJuIChpbnQpJyAnOworCWVsc2Ug
aWYgKHN0cmNhc2VjbXAoa2V5c3RyaW5nLCAiTGVmdCIpID09IDApCisJCXJldHVybiBLRVlfTEVG
VDsKKwllbHNlIGlmIChzdHJjYXNlY21wKGtleXN0cmluZywgIlJpZ2h0IikgPT0gMCkKKwkJcmV0
dXJuIEtFWV9SSUdIVDsKKwllbHNlIGlmIChzdHJjYXNlY21wKGtleXN0cmluZywgIlVwIikgPT0g
MCkKKwkJcmV0dXJuIEtFWV9VUDsKKwllbHNlIGlmIChzdHJjYXNlY21wKGtleXN0cmluZywgIkRv
d24iKSA9PSAwKQorCQlyZXR1cm4gS0VZX0RPV047CisJZWxzZSBpZiAoc3RyY2FzZWNtcChrZXlz
dHJpbmcsICJIb21lIikgPT0gMCkKKwkJcmV0dXJuIEtFWV9IT01FOworCWVsc2UgaWYgKHN0cmNh
c2VjbXAoa2V5c3RyaW5nLCAiRW5kIikgPT0gMCkKKwkJcmV0dXJuIEtFWV9FTkQ7CisJZWxzZSBp
ZiAoc3RyY2FzZWNtcChrZXlzdHJpbmcsICJQZ1VwIikgPT0gMCkKKwkJcmV0dXJuIEtFWV9QUEFH
RTsKKwllbHNlIGlmIChzdHJjYXNlY21wKGtleXN0cmluZywgIlBnRG4iKSA9PSAwKQorCQlyZXR1
cm4gS0VZX05QQUdFOworCWVsc2UgaWYgKHN0cmNhc2VjbXAoa2V5c3RyaW5nLCAiSW5zIikgPT0g
MCkKIAkJcmV0dXJuIEtFWV9JQzsKIAllbHNlIGlmIChzdHJjYXNlY21wKGtleXN0cmluZywgIkRl
bCIpID09IDApCiAJCXJldHVybiBLRVlfREM7CkBAIC0xMjMxLDE0OCArMTI4OSwxMiBAQCB2b2lk
IHNob3J0Y3V0X2luaXQodm9pZCkKIAkJCU5fKCJOZXh0IExpbnRlciBtZXNzYWdlIiksIFdIRU5I
RUxQKG5leHRsaW50X2dpc3QpLCBUT0dFVEhFUik7CiAjZW5kaWYKIAotI2lmZGVmIF9fbGludXhf
XwotI2RlZmluZSBTTEFTSF9PUl9EQVNIICAob25fYV92dCkgPyAiXi0iIDogIl4vIgotI2Vsc2UK
LSNkZWZpbmUgU0xBU0hfT1JfREFTSCAgIl4vIgotI2VuZGlmCiAKLQkvKiBMaW5rIGtleSBjb21i
b3MgdG8gZnVuY3Rpb25zIGluIGNlcnRhaW4gbWVudXMuICovCi0JYWRkX3RvX3NjbGlzdChNTU9T
VHxNQlJPV1NFUiwgIl5NIiwgJ1xyJywgZG9fZW50ZXIsIDApOwotCWFkZF90b19zY2xpc3QoTU1P
U1R8TUJST1dTRVIsICJFbnRlciIsIEtFWV9FTlRFUiwgZG9fZW50ZXIsIDApOwotCWFkZF90b19z
Y2xpc3QoTU1PU1QsICJeSSIsICdcdCcsIGRvX3RhYiwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTU9T
VCwgIlRhYiIsICdcdCcsIGRvX3RhYiwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTnxNQlJPV1NF
UnxNSEVMUCwgIl5CIiwgMCwgZG9fc2VhcmNoX2JhY2t3YXJkLCAwKTsKLQlhZGRfdG9fc2NsaXN0
KE1NQUlOfE1CUk9XU0VSfE1IRUxQLCAiXkYiLCAwLCBkb19zZWFyY2hfZm9yd2FyZCwgMCk7Ci0J
aWYgKElTU0VUKE1PREVSTl9CSU5ESU5HUykpIHsKLQkJYWRkX3RvX3NjbGlzdCgoTU1PU1R8TUJS
T1dTRVIpICYgfk1GSU5ESU5IRUxQLCBoZWxwX2tleSwgMCwgZG9faGVscCwgMCk7Ci0JCWFkZF90
b19zY2xpc3QoTUhFTFAsIGhlbHBfa2V5LCAwLCBkb19leGl0LCAwKTsKLQkJYWRkX3RvX3NjbGlz
dChNTUFJTnxNQlJPV1NFUnxNSEVMUCwgIl5RIiwgMCwgZG9fZXhpdCwgMCk7Ci0JCWFkZF90b19z
Y2xpc3QoTU1BSU4sICJeUyIsIDAsIGRvX3NhdmVmaWxlLCAwKTsKLQkJYWRkX3RvX3NjbGlzdChN
TUFJTiwgIl5XIiwgMCwgZG9fd3JpdGVvdXQsIDApOwotCQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAi
Xk8iLCAwLCBkb19pbnNlcnRmaWxlLCAwKTsKLQkJYWRkX3RvX3NjbGlzdChNTUFJTnxNQlJPV1NF
UnxNSEVMUCwgIl5EIiwgMCwgZG9fZmluZHByZXZpb3VzLCAwKTsKLQkJYWRkX3RvX3NjbGlzdChN
TUFJTnxNQlJPV1NFUnxNSEVMUCwgIl5HIiwgMCwgZG9fZmluZG5leHQsIDApOwotCQlhZGRfdG9f
c2NsaXN0KE1NQUlOLCAiXlIiLCAwLCBkb19yZXBsYWNlLCAwKTsKLQkJYWRkX3RvX3NjbGlzdChN
TUFJTiwgIl5UIiwgMCwgZG9fZ290b2xpbmVjb2x1bW4sIDApOwotCQlhZGRfdG9fc2NsaXN0KE1N
QUlOLCAiXlAiLCAwLCByZXBvcnRfY3Vyc29yX3Bvc2l0aW9uLCAwKTsKLSNpZm5kZWYgTkFOT19U
SU5ZCi0JCWFkZF90b19zY2xpc3QoTU1BSU4sICJeWiIsIDAsIGRvX3VuZG8sIDApOwotCQlhZGRf
dG9fc2NsaXN0KE1NQUlOLCAiXlkiLCAwLCBkb19yZWRvLCAwKTsKLQkJYWRkX3RvX3NjbGlzdChN
TUFJTiwgIl5BIiwgMCwgZG9fbWFyaywgMCk7Ci0jZW5kaWYKLQkJYWRkX3RvX3NjbGlzdChNTUFJ
TiwgIl5YIiwgMCwgY3V0X3RleHQsIDApOwotCQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiXkMiLCAw
LCBjb3B5X3RleHQsIDApOwotCQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiXlYiLCAwLCBwYXN0ZV90
ZXh0LCAwKTsKLQl9IGVsc2UgewotCQlhZGRfdG9fc2NsaXN0KChNTU9TVHxNQlJPV1NFUikgJiB+
TUZJTkRJTkhFTFAsICJeRyIsIDAsIGRvX2hlbHAsIDApOwotCQlhZGRfdG9fc2NsaXN0KE1NQUlO
fE1CUk9XU0VSfE1IRUxQLCAiXlgiLCAwLCBkb19leGl0LCAwKTsKLQkJaWYgKCFJU1NFVChQUkVT
RVJWRSkpCi0JCQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiXlMiLCAwLCBkb19zYXZlZmlsZSwgMCk7
Ci0JCWFkZF90b19zY2xpc3QoTU1BSU4sICJeTyIsIDAsIGRvX3dyaXRlb3V0LCAwKTsKLQkJYWRk
X3RvX3NjbGlzdChNTUFJTiwgIl5SIiwgMCwgZG9faW5zZXJ0ZmlsZSwgMCk7Ci0JCWlmICghSVNT
RVQoUFJFU0VSVkUpKQotCQkJYWRkX3RvX3NjbGlzdChNTUFJTnxNQlJPV1NFUnxNSEVMUCwgIl5R
IiwgMCwgZG9fc2VhcmNoX2JhY2t3YXJkLCAwKTsKLQkJYWRkX3RvX3NjbGlzdChNTUFJTnxNQlJP
V1NFUnxNSEVMUCwgIl5XIiwgMCwgZG9fc2VhcmNoX2ZvcndhcmQsIDApOwotCQlhZGRfdG9fc2Ns
aXN0KE1NT1NULCAiXkEiLCAwLCBkb19ob21lLCAwKTsKLQkJYWRkX3RvX3NjbGlzdChNTU9TVCwg
Il5FIiwgMCwgZG9fZW5kLCAwKTsKLQkJYWRkX3RvX3NjbGlzdChNTUFJTnxNQlJPV1NFUnxNSEVM
UCwgIl5QIiwgMCwgZG9fdXAsIDApOwotCQlhZGRfdG9fc2NsaXN0KE1NQUlOfE1CUk9XU0VSfE1I
RUxQLCAiXk4iLCAwLCBkb19kb3duLCAwKTsKLQkJYWRkX3RvX3NjbGlzdChNTUFJTnxNQlJPV1NF
UnxNSEVMUHxNTElOVEVSLCAiXlkiLCAwLCBkb19wYWdlX3VwLCAwKTsKLQkJYWRkX3RvX3NjbGlz
dChNTUFJTnxNQlJPV1NFUnxNSEVMUHxNTElOVEVSLCAiXlYiLCAwLCBkb19wYWdlX2Rvd24sIDAp
OwotCQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiXkMiLCAwLCByZXBvcnRfY3Vyc29yX3Bvc2l0aW9u
LCAwKTsKLQkJYWRkX3RvX3NjbGlzdChNTU9TVCwgIl5IIiwgJ1xiJywgZG9fYmFja3NwYWNlLCAw
KTsKLQkJYWRkX3RvX3NjbGlzdChNTU9TVCwgIl5EIiwgMCwgZG9fZGVsZXRlLCAwKTsKLQl9Ci0J
YWRkX3RvX3NjbGlzdChNTU9TVCwgIkJzcCIsIEtFWV9CQUNLU1BBQ0UsIGRvX2JhY2tzcGFjZSwg
MCk7Ci0JYWRkX3RvX3NjbGlzdChNTU9TVCwgIlNoLURlbCIsIFNISUZUX0RFTEVURSwgZG9fYmFj
a3NwYWNlLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NT1NULCAiRGVsIiwgS0VZX0RDLCBkb19kZWxl
dGUsIDApOwotCWFkZF90b19zY2xpc3QoTU1BSU4sICJJbnMiLCBLRVlfSUMsIGRvX2luc2VydGZp
bGUsIDApOwotCWFkZF90b19zY2xpc3QoTU1BSU4sICJeXFwiLCAwLCBkb19yZXBsYWNlLCAwKTsK
LQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS1SIiwgMCwgZG9fcmVwbGFjZSwgMCk7Ci0JYWRkX3Rv
X3NjbGlzdChNTU9TVCwgIl5LIiwgMCwgY3V0X3RleHQsIDApOwotI2lmZGVmIE5BTk9fVElOWQot
CWFkZF90b19zY2xpc3QoTU1BSU4sICJNLTYiLCAwLCBjb3B5X3RleHQsIDApOwotCWFkZF90b19z
Y2xpc3QoTU1BSU4sICJNLV4iLCAwLCBjb3B5X3RleHQsIDApOwotCWFkZF90b19zY2xpc3QoTU1B
SU4sICJeVSIsIDAsIHBhc3RlX3RleHQsIDApOwotI2lmZGVmIEVOQUJMRV9TUEVMTEVSCi0JYWRk
X3RvX3NjbGlzdChNTUFJTiwgSVNTRVQoTU9ERVJOX0JJTkRJTkdTKSA/ICJeRSIgOiAiXlQiLCAw
LCBkb19zcGVsbCwgMCk7Ci0jZW5kaWYKLSNlbHNlCi0JYWRkX3RvX3NjbGlzdChNTU9TVCwgIk0t
NiIsIDAsIGNvcHlfdGV4dCwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTU9TVCwgIk0tXiIsIDAsIGNv
cHlfdGV4dCwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTU9TVCwgIl5VIiwgMCwgcGFzdGVfdGV4dCwg
MCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTiwgSVNTRVQoTU9ERVJOX0JJTkRJTkdTKSA/ICJeRSIg
OiAiXlQiLCAwLCBkb19leGVjdXRlLCAwKTsKLSNpZmRlZiBFTkFCTEVfU1BFTExFUgotCWlmICgh
SVNTRVQoUFJFU0VSVkUpKQotCQlhZGRfdG9fc2NsaXN0KE1FWEVDVVRFLCAiXlMiLCAwLCBkb19z
cGVsbCwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNRVhFQ1VURSwgIl5UIiwgMCwgZG9fc3BlbGwsIDAp
OwotI2VuZGlmCi0jZW5kaWYKLSNpZmRlZiBFTkFCTEVfSlVTVElGWQotCWFkZF90b19zY2xpc3Qo
TU1BSU4sICJeSiIsICdcbicsIGRvX2p1c3RpZnksIDApOwotI2VuZGlmCi0jaWZkZWYgRU5BQkxF
X0xJTlRFUgotCWFkZF90b19zY2xpc3QoTUVYRUNVVEUsICJeWSIsIDAsIGRvX2xpbnRlciwgMCk7
Ci0jZW5kaWYKLSNpZmRlZiBFTkFCTEVfRk9STUFUVEVSCi0JYWRkX3RvX3NjbGlzdChNRVhFQ1VU
RSwgIl5PIiwgMCwgZG9fZm9ybWF0dGVyLCAwKTsKLSNlbmRpZgotCWFkZF90b19zY2xpc3QoTU1B
SU4sIFNMQVNIX09SX0RBU0gsIDAsIGRvX2dvdG9saW5lY29sdW1uLCAwKTsKLQlhZGRfdG9fc2Ns
aXN0KE1NQUlOLCAiTS1HIiwgMCwgZG9fZ290b2xpbmVjb2x1bW4sIDApOwotCWFkZF90b19zY2xp
c3QoTU1BSU4sICJeXyIsIDAsIGRvX2dvdG9saW5lY29sdW1uLCAwKTsKLQlhZGRfdG9fc2NsaXN0
KE1NQUlOfE1CUk9XU0VSfE1IRUxQfE1MSU5URVIsICJQZ1VwIiwgS0VZX1BQQUdFLCBkb19wYWdl
X3VwLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOfE1CUk9XU0VSfE1IRUxQfE1MSU5URVIsICJQ
Z0RuIiwgS0VZX05QQUdFLCBkb19wYWdlX2Rvd24sIDApOwotCWFkZF90b19zY2xpc3QoTUJST1dT
RVJ8TUhFTFAsICJCc3AiLCBLRVlfQkFDS1NQQUNFLCBkb19wYWdlX3VwLCAwKTsKLQlhZGRfdG9f
c2NsaXN0KE1CUk9XU0VSfE1IRUxQLCAiU2gtRGVsIiwgU0hJRlRfREVMRVRFLCBkb19wYWdlX3Vw
LCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1CUk9XU0VSfE1IRUxQLCAiU3BhY2UiLCAweDIwLCBkb19w
YWdlX2Rvd24sIDApOwotCWFkZF90b19zY2xpc3QoTU1BSU58TUhFTFAsICJNLVxcIiwgMCwgdG9f
Zmlyc3RfbGluZSwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTnxNSEVMUCwgIl5Ib21lIiwgQ09O
VFJPTF9IT01FLCB0b19maXJzdF9saW5lLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOfE1IRUxQ
LCAiTS0vIiwgMCwgdG9fbGFzdF9saW5lLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOfE1IRUxQ
LCAiXkVuZCIsIENPTlRST0xfRU5ELCB0b19sYXN0X2xpbmUsIDApOwotCWFkZF90b19zY2xpc3Qo
TU1BSU58TUJST1dTRVJ8TUhFTFAsICJNLUIiLCAwLCBkb19maW5kcHJldmlvdXMsIDApOwotCWFk
ZF90b19zY2xpc3QoTU1BSU58TUJST1dTRVJ8TUhFTFAsICJNLUYiLCAwLCBkb19maW5kbmV4dCwg
MCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTnxNQlJPV1NFUnxNSEVMUCwgIk0tVyIsIDAsIGRvX2Zp
bmRuZXh0LCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOfE1CUk9XU0VSfE1IRUxQLCAiTS1RIiwg
MCwgZG9fZmluZHByZXZpb3VzLCAwKTsKLSNpZmRlZiBOQU5PX1RJTlkKLSNpZmRlZiBFTkFCTEVf
TElORU5VTUJFUlMKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS1OIiwgMCwgdG9nZ2xlX251bWJl
cnMsIDApOwotI2Vsc2UKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS1OIiwgMCwgdG9fbmV4dF93
b3JkLCAwKTsKLSNlbmRpZgotCWFkZF90b19zY2xpc3QoTU1BSU4sICJNLUQiLCAwLCB0b19wcmV2
X3dvcmQsIDApOwotI2Vsc2UKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS1dIiwgMCwgZG9fZmlu
ZF9icmFja2V0LCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS1BIiwgMCwgZG9fbWFyaywg
MCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTiwgIl42IiwgMCwgZG9fbWFyaywgMCk7Ci0JYWRkX3Rv
X3NjbGlzdChNTUFJTiwgIl5eIiwgMCwgZG9fbWFyaywgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJ
TiwgIk0tfSIsIDAsIGRvX2luZGVudCwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0teyIs
IDAsIGRvX3VuaW5kZW50LCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiU2gtVGFiIiwgU0hJ
RlRfVEFCLCBkb191bmluZGVudCwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0tOiIsIDAs
IHJlY29yZF9tYWNybywgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0tOyIsIDAsIHJ1bl9t
YWNybywgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0tVSIsIDAsIGRvX3VuZG8sIDApOwot
CWFkZF90b19zY2xpc3QoTU1BSU4sICJNLUUiLCAwLCBkb19yZWRvLCAwKTsKLQlhZGRfdG9fc2Ns
aXN0KE1NQUlOLCAiTS1Cc3AiLCBDT05UUk9MX1NISUZUX0RFTEVURSwgY2hvcF9wcmV2aW91c193
b3JkLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiU2gtXkRlbCIsIENPTlRST0xfU0hJRlRf
REVMRVRFLCBjaG9wX3ByZXZpb3VzX3dvcmQsIDApOwotCWFkZF90b19zY2xpc3QoTU1BSU4sICJe
RGVsIiwgQ09OVFJPTF9ERUxFVEUsIGNob3BfbmV4dF93b3JkLCAwKTsKLQlhZGRfdG9fc2NsaXN0
KE1NQUlOLCAiTS1EZWwiLCBBTFRfREVMRVRFLCB6YXBfdGV4dCwgMCk7Ci0JYWRkX3RvX3NjbGlz
dChNTUFJTiwgIk0tSW5zIiwgQUxUX0lOU0VSVCwgcHV0X29yX2xpZnRfYW5jaG9yLCAwKTsKLQlh
ZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS1Ib21lIiwgQUxUX0hPTUUsIHRvX3RvcF9yb3csIDApOwot
CWFkZF90b19zY2xpc3QoTU1BSU4sICJNLUVuZCIsIEFMVF9FTkQsIHRvX2JvdHRvbV9yb3csIDAp
OwotCWFkZF90b19zY2xpc3QoTU1BSU4sICJNLVBnVXAiLCBBTFRfUEFHRVVQLCB0b19wcmV2X2Fu
Y2hvciwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0tUGdEbiIsIEFMVF9QQUdFRE9XTiwg
dG9fbmV4dF9hbmNob3IsIDApOwotCWFkZF90b19zY2xpc3QoTU1BSU4sICJNLVwiIiwgMCwgcHV0
X29yX2xpZnRfYW5jaG9yLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS0nIiwgMCwgdG9f
bmV4dF9hbmNob3IsIDApOwotI2VuZGlmCi0jaWZkZWYgRU5BQkxFX1dPUkRDT01QTEVUSU9OCi0J
YWRkX3RvX3NjbGlzdChNTUFJTiwgIl5dIiwgMCwgY29tcGxldGVfYV93b3JkLCAwKTsKLSNlbmRp
ZgotI2lmZGVmIEVOQUJMRV9DT01NRU5UCi0JYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0tMyIsIDAs
IGRvX2NvbW1lbnQsIDApOwotI2VuZGlmCi0JYWRkX3RvX3NjbGlzdChNTU9TVCAmIH5NTUFJTiwg
Il5CIiwgMCwgZG9fbGVmdCwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTU9TVCAmIH5NTUFJTiwgIl5G
IiwgMCwgZG9fcmlnaHQsIDApOworCS8qIExpbmsga2V5IGNvbWJvcyB0byBmdW5jdGlvbnMgaW4g
Y2VydGFpbiBtZW51cy4KKwkgKiBBbGwgbmFtZWQga2V5IGJpbmRpbmdzIGFyZSBsb2FkZWQgZnJv
bSB0aGUgbmFub3JjIGZpbGU7IG9ubHkKKwkgKiB0ZXJtaW5hbC1zcGVjaWZpYyBzZXF1ZW5jZXMg
YW5kIHVucHJvZ3JhbW1hYmxlIGludGVybmFsIGtleWNvZGVzCisJICogYXJlIHJlZ2lzdGVyZWQg
aGVyZS4gKi8KKwogI2lmZGVmIEVOQUJMRV9VVEY4CiAJaWYgKHVzaW5nX3V0ZjgpIHsKIAkJYWRk
X3RvX3NjbGlzdChNTU9TVHxNQlJPV1NFUnxNSEVMUCwgIlx4RTJceDk3XHg4MiIsIEtFWV9MRUZU
LCBkb19sZWZ0LCAwKTsKQEAgLTEzODUsMjIyICsxMzA3LDI3IEBAIHZvaWQgc2hvcnRjdXRfaW5p
dCh2b2lkKQogCQkJYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0tXHhFMlx4OTZceGI4IiwgQUxUX1JJ
R0hULCBzd2l0Y2hfdG9fbmV4dF9idWZmZXIsIDApOwogCQl9CiAjZW5kaWYKLQl9IGVsc2UKLSNl
bmRpZgotCXsKLQkJYWRkX3RvX3NjbGlzdChNTU9TVHxNQlJPV1NFUnxNSEVMUCwgIkxlZnQiLCBL
RVlfTEVGVCwgZG9fbGVmdCwgMCk7Ci0JCWFkZF90b19zY2xpc3QoTU1PU1R8TUJST1dTRVJ8TUhF
TFAsICJSaWdodCIsIEtFWV9SSUdIVCwgZG9fcmlnaHQsIDApOwotCQlhZGRfdG9fc2NsaXN0KE1T
T01FLCAiXkxlZnQiLCBDT05UUk9MX0xFRlQsIHRvX3ByZXZfd29yZCwgMCk7Ci0JCWFkZF90b19z
Y2xpc3QoTVNPTUUsICJeUmlnaHQiLCBDT05UUk9MX1JJR0hULCB0b19uZXh0X3dvcmQsIDApOwot
I2lmIGRlZmluZWQoRU5BQkxFX01VTFRJQlVGRkVSKSAmJiAhZGVmaW5lZChOQU5PX1RJTlkpCi0J
CWlmICghb25fYV92dCkgewotCQkJYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0tTGVmdCIsIEFMVF9M
RUZULCBzd2l0Y2hfdG9fcHJldl9idWZmZXIsIDApOwotCQkJYWRkX3RvX3NjbGlzdChNTUFJTiwg
Ik0tUmlnaHQiLCBBTFRfUklHSFQsIHN3aXRjaF90b19uZXh0X2J1ZmZlciwgMCk7Ci0JCX0KLSNl
bmRpZgotCX0KLQlhZGRfdG9fc2NsaXN0KE1NT1NULCAiTS1TcGFjZSIsIDAsIHRvX3ByZXZfd29y
ZCwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTU9TVCwgIl5TcGFjZSIsIDAsIHRvX25leHRfd29yZCwg
MCk7Ci0JYWRkX3RvX3NjbGlzdChNTU9TVCwgIkhvbWUiLCBLRVlfSE9NRSwgZG9faG9tZSwgMCk7
Ci0JYWRkX3RvX3NjbGlzdChNTU9TVCwgIkVuZCIsIEtFWV9FTkQsIGRvX2VuZCwgMCk7Ci0jaWZk
ZWYgRU5BQkxFX1VURjgKLQlpZiAodXNpbmdfdXRmOCkgewogCQlhZGRfdG9fc2NsaXN0KE1NQUlO
fE1CUk9XU0VSfE1IRUxQLCAiXHhFMlx4OTZceGI0IiwgS0VZX1VQLCBkb191cCwgMCk7CiAJCWFk
ZF90b19zY2xpc3QoTU1BSU58TUJST1dTRVJ8TUhFTFAsICJceEUyXHg5Nlx4YmUiLCBLRVlfRE9X
TiwgZG9fZG93biwgMCk7CiAJCWFkZF90b19zY2xpc3QoTU1BSU58TUJST1dTRVJ8TUxJTlRFUiwg
Il5ceEUyXHg5Nlx4YjQiLCBDT05UUk9MX1VQLCB0b19wcmV2X2Jsb2NrLCAwKTsKIAkJYWRkX3Rv
X3NjbGlzdChNTUFJTnxNQlJPV1NFUnxNTElOVEVSLCAiXlx4RTJceDk2XHhiZSIsIENPTlRST0xf
RE9XTiwgdG9fbmV4dF9ibG9jaywgMCk7Ci0JfSBlbHNlCi0jZW5kaWYKLQl7Ci0JCWFkZF90b19z
Y2xpc3QoTU1BSU58TUJST1dTRVJ8TUhFTFAsICJVcCIsIEtFWV9VUCwgZG9fdXAsIDApOwotCQlh
ZGRfdG9fc2NsaXN0KE1NQUlOfE1CUk9XU0VSfE1IRUxQLCAiRG93biIsIEtFWV9ET1dOLCBkb19k
b3duLCAwKTsKLQkJYWRkX3RvX3NjbGlzdChNTUFJTnxNQlJPV1NFUnxNTElOVEVSLCAiXlVwIiwg
Q09OVFJPTF9VUCwgdG9fcHJldl9ibG9jaywgMCk7Ci0JCWFkZF90b19zY2xpc3QoTU1BSU58TUJS
T1dTRVJ8TUxJTlRFUiwgIl5Eb3duIiwgQ09OVFJPTF9ET1dOLCB0b19uZXh0X2Jsb2NrLCAwKTsK
LQl9Ci0JYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0tNyIsIDAsIHRvX3ByZXZfYmxvY2ssIDApOwot
CWFkZF90b19zY2xpc3QoTU1BSU4sICJNLTgiLCAwLCB0b19uZXh0X2Jsb2NrLCAwKTsKLSNpZmRl
ZiBFTkFCTEVfSlVTVElGWQotCWFkZF90b19zY2xpc3QoTU1BSU4sICJNLSgiLCAwLCB0b19wYXJh
X2JlZ2luLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS05IiwgMCwgdG9fcGFyYV9iZWdp
biwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0tKSIsIDAsIHRvX3BhcmFfZW5kLCAwKTsK
LQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS0wIiwgMCwgdG9fcGFyYV9lbmQsIDApOwotI2VuZGlm
CiAjaWZuZGVmIE5BTk9fVElOWQotI2lmZGVmIEVOQUJMRV9VVEY4Ci0JaWYgKHVzaW5nX3V0Zjgp
IHsKIAkJYWRkX3RvX3NjbGlzdChNTUFJTnxNSEVMUCwgIk0tXHhFMlx4OTZceGI0IiwgQUxUX1VQ
LCBkb19zY3JvbGxfdXAsIDApOwogCQlhZGRfdG9fc2NsaXN0KE1NQUlOfE1IRUxQLCAiTS1ceEUy
XHg5Nlx4YmUiLCBBTFRfRE9XTiwgZG9fc2Nyb2xsX2Rvd24sIDApOwotCX0gZWxzZQotI2VuZGlm
Ci0JewotCQlhZGRfdG9fc2NsaXN0KE1NQUlOfE1IRUxQLCAiTS1VcCIsIEFMVF9VUCwgZG9fc2Ny
b2xsX3VwLCAwKTsKLQkJYWRkX3RvX3NjbGlzdChNTUFJTnxNSEVMUCwgIk0tRG93biIsIEFMVF9E
T1dOLCBkb19zY3JvbGxfZG93biwgMCk7Ci0JfQotI2VuZGlmCi0jaWYgIWRlZmluZWQoTkFOT19U
SU5ZKSB8fCBkZWZpbmVkKEVOQUJMRV9IRUxQKQotCWFkZF90b19zY2xpc3QoTU1BSU58TUhFTFAs
ICJNLS0iLCAwLCBkb19zY3JvbGxfdXAsIDApOwotCWFkZF90b19zY2xpc3QoTU1BSU58TUhFTFAs
ICJNLV8iLCAwLCBkb19zY3JvbGxfdXAsIDApOwotCWFkZF90b19zY2xpc3QoTU1BSU58TUhFTFAs
ICJNLSsiLCAwLCBkb19zY3JvbGxfZG93biwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTnxNSEVM
UCwgIk0tPSIsIDAsIGRvX3Njcm9sbF9kb3duLCAwKTsKLSNlbmRpZgotI2lmZGVmIEVOQUJMRV9N
VUxUSUJVRkZFUgotCWFkZF90b19zY2xpc3QoTU1BSU4sICJNLSwiLCAwLCBzd2l0Y2hfdG9fcHJl
dl9idWZmZXIsIDApOwotCWFkZF90b19zY2xpc3QoTU1BSU4sICJNLS4iLCAwLCBzd2l0Y2hfdG9f
bmV4dF9idWZmZXIsIDApOwogI2VuZGlmCi0JYWRkX3RvX3NjbGlzdChNTU9TVCwgIk0tViIsIDAs
IGRvX3ZlcmJhdGltX2lucHV0LCAwKTsKLSNpZm5kZWYgTkFOT19USU5ZCi0JYWRkX3RvX3NjbGlz
dChNTUFJTiwgIk0tVCIsIDAsIGN1dF90aWxsX2VvZiwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNRVhF
Q1VURSwgIl5WIiwgMCwgY3V0X3RpbGxfZW9mLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1FWEVDVVRF
LCAiXloiLCAwLCBkb19zdXNwZW5kLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiXloiLCAw
LCBzdWdnZXN0X2N0cmxUX2N0cmxaLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS1EIiwg
MCwgY291bnRfbGluZXNfd29yZHNfYW5kX2NoYXJhY3RlcnMsIDApOwotI2Vsc2UKLQlhZGRfdG9f
c2NsaXN0KE1NQUlOLCAiTS1IIiwgMCwgZG9faGVscCwgMCk7Ci0jZW5kaWYKLSNpZmRlZiBFTkFC
TEVfSlVTVElGWQotCWFkZF90b19zY2xpc3QoTU1BSU4sICJNLUoiLCAwLCBkb19mdWxsX2p1c3Rp
ZnksIDApOwotCWFkZF90b19zY2xpc3QoTUVYRUNVVEUsICJeSiIsIDAsIGRvX2Z1bGxfanVzdGlm
eSwgMCk7Ci0jZW5kaWYKLSNpZm5kZWYgTkFOT19USU5ZCi0JYWRkX3RvX3NjbGlzdChNTUFJTiwg
Ik0tPCIsIDAsIGRvX3Njcm9sbF9sZWZ0LCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS0+
IiwgMCwgZG9fc2Nyb2xsX3JpZ2h0LCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiXkwiLCAw
LCBkb19jZW50ZXIsIDApOwotCWFkZF90b19zY2xpc3QoTU1BSU4sICJNLSUiLCAwLCBkb19jeWNs
ZSwgMCk7Ci0JYWRkX3RvX3NjbGlzdCgoTU1PU1R8TUJST1dTRVJ8TUhFTFB8TVlFU05PKSZ+TU1B
SU4sICJeTCIsIDAsIGZ1bGxfcmVmcmVzaCwgMCk7Ci0jZWxzZQotCWFkZF90b19zY2xpc3QoTU1P
U1R8TUJST1dTRVJ8TUhFTFB8TVlFU05PLCAiXkwiLCAwLCBmdWxsX3JlZnJlc2gsIDApOwotI2Vu
ZGlmCi0KLSNpZm5kZWYgTkFOT19USU5ZCi0JLyogR3JvdXAgb2YgIkFwcGVhcmFuY2UiIHRvZ2ds
ZXMuICovCi0JYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0tWiIsIDAsIGRvX3RvZ2dsZSwgWkVSTyk7
Ci0JYWRkX3RvX3NjbGlzdCgoTU1PU1R8TUJST1dTRVJ8TVlFU05PKSAmIH5NRklORElOSEVMUCwg
Ik0tWCIsIDAsIGRvX3RvZ2dsZSwgTk9fSEVMUCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0t
QyIsIDAsIGRvX3RvZ2dsZSwgQ09OU1RBTlRfU0hPVyk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTiwg
Ik0tUyIsIDAsIGRvX3RvZ2dsZSwgU09GVFdSQVApOwotCWFkZF90b19zY2xpc3QoTU1BSU4sICJN
LSQiLCAwLCBkb190b2dnbGUsIFNPRlRXUkFQKTsgIC8qIExlZ2FjeSBrZXlzdHJva2UuICovCi0j
aWZkZWYgRU5BQkxFX0xJTkVOVU1CRVJTCi0JYWRkX3RvX3NjbGlzdChNTUFJTiwgIk0tTiIsIDAs
IGRvX3RvZ2dsZSwgTElORV9OVU1CRVJTKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS0jIiwg
MCwgZG9fdG9nZ2xlLCBMSU5FX05VTUJFUlMpOyAgLyogTGVnYWN5IGtleXN0cm9rZS4gKi8KLSNl
bmRpZgotCWFkZF90b19zY2xpc3QoTU1BSU4sICJNLVAiLCAwLCBkb190b2dnbGUsIFdISVRFU1BB
Q0VfRElTUExBWSk7Ci0jaWZkZWYgRU5BQkxFX0NPTE9SCi0JYWRkX3RvX3NjbGlzdChNTUFJTiwg
Ik0tWSIsIDAsIGRvX3RvZ2dsZSwgTk9fU1lOVEFYKTsKLSNlbmRpZgotCi0JLyogR3JvdXAgb2Yg
IkJlaGF2aW9yIiB0b2dnbGVzLiAqLwotCWFkZF90b19zY2xpc3QoTU1BSU4sICJNLUgiLCAwLCBk
b190b2dnbGUsIFNNQVJUX0hPTUUpOwotCWFkZF90b19zY2xpc3QoTU1BSU4sICJNLUkiLCAwLCBk
b190b2dnbGUsIEFVVE9JTkRFTlQpOwotCWFkZF90b19zY2xpc3QoTU1BSU4sICJNLUsiLCAwLCBk
b190b2dnbGUsIENVVF9GUk9NX0NVUlNPUik7Ci0jaWZkZWYgRU5BQkxFX1dSQVBQSU5HCi0JYWRk
X3RvX3NjbGlzdChNTUFJTiwgIk0tTCIsIDAsIGRvX3RvZ2dsZSwgQlJFQUtfTE9OR19MSU5FUyk7
Ci0jZW5kaWYKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAiTS1PIiwgMCwgZG9fdG9nZ2xlLCBUQUJT
X1RPX1NQQUNFUyk7Ci0jaWZkZWYgRU5BQkxFX01PVVNFCi0JYWRkX3RvX3NjbGlzdChNTUFJTiwg
Ik0tTSIsIDAsIGRvX3RvZ2dsZSwgVVNFX01PVVNFKTsKLSNlbmRpZgotI2VuZGlmIC8qICFOQU5P
X1RJTlkgKi8KLQotCWFkZF90b19zY2xpc3QoKChNTU9TVCAmIH5NTUFJTikgfCBNWUVTTk8pLCAi
XkMiLCAwLCBkb19jYW5jZWwsIDApOwotCi0JYWRkX3RvX3NjbGlzdChNV0hFUkVJU3xNUkVQTEFD
RSwgIk0tQyIsIDAsIGNhc2Vfc2Vuc192b2lkLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1XSEVSRUlT
fE1SRVBMQUNFLCAiTS1SIiwgMCwgcmVnZXhwX3ZvaWQsIDApOwotCWFkZF90b19zY2xpc3QoTVdI
RVJFSVN8TVJFUExBQ0UsICJNLUIiLCAwLCBiYWNrd2FyZHNfdm9pZCwgMCk7Ci0JYWRkX3RvX3Nj
bGlzdChNV0hFUkVJU3xNUkVQTEFDRSwgIl5SIiwgMCwgZmxpcF9yZXBsYWNlLCAwKTsKLQlhZGRf
dG9fc2NsaXN0KE1XSEVSRUlTfE1HT1RPTElORSwgIl5UIiwgMCwgZmxpcF9nb3RvLCAwKTsKLQlh
ZGRfdG9fc2NsaXN0KE1XSEVSRUlTfE1HT1RPTElORSwgU0xBU0hfT1JfREFTSCwgMCwgZmxpcF9n
b3RvLCAwKTsKICNpZmRlZiBFTkFCTEVfSElTVE9SSUVTCi0JYWRkX3RvX3NjbGlzdChNV0hFUkVJ
U3xNUkVQTEFDRXxNUkVQTEFDRVdJVEh8TVdIRVJFSVNGSUxFfE1GSU5ESU5IRUxQfE1FWEVDVVRF
LCAiXlAiLCAwLCBnZXRfb2xkZXJfaXRlbSwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNV0hFUkVJU3xN
UkVQTEFDRXxNUkVQTEFDRVdJVEh8TVdIRVJFSVNGSUxFfE1GSU5ESU5IRUxQfE1FWEVDVVRFLCAi
Xk4iLCAwLCBnZXRfbmV3ZXJfaXRlbSwgMCk7Ci0jaWZkZWYgRU5BQkxFX1VURjgKLQlpZiAodXNp
bmdfdXRmOCkgewogCQlhZGRfdG9fc2NsaXN0KE1XSEVSRUlTfE1SRVBMQUNFfE1SRVBMQUNFV0lU
SHxNV0hFUkVJU0ZJTEV8TUZJTkRJTkhFTFB8TUVYRUNVVEUsICJceEUyXHg5Nlx4YjQiLCBLRVlf
VVAsIGdldF9vbGRlcl9pdGVtLCAwKTsKIAkJYWRkX3RvX3NjbGlzdChNV0hFUkVJU3xNUkVQTEFD
RXxNUkVQTEFDRVdJVEh8TVdIRVJFSVNGSUxFfE1GSU5ESU5IRUxQfE1FWEVDVVRFLCAiXHhFMlx4
OTZceGJlIiwgS0VZX0RPV04sIGdldF9uZXdlcl9pdGVtLCAwKTsKLQl9IGVsc2UKLSNlbmRpZgot
CXsKLQkJYWRkX3RvX3NjbGlzdChNV0hFUkVJU3xNUkVQTEFDRXxNUkVQTEFDRVdJVEh8TVdIRVJF
SVNGSUxFfE1GSU5ESU5IRUxQfE1FWEVDVVRFLCAiVXAiLCBLRVlfVVAsIGdldF9vbGRlcl9pdGVt
LCAwKTsKLQkJYWRkX3RvX3NjbGlzdChNV0hFUkVJU3xNUkVQTEFDRXxNUkVQTEFDRVdJVEh8TVdI
RVJFSVNGSUxFfE1GSU5ESU5IRUxQfE1FWEVDVVRFLCAiRG93biIsIEtFWV9ET1dOLCBnZXRfbmV3
ZXJfaXRlbSwgMCk7Ci0JfQotI2VuZGlmCi0jaWZkZWYgRU5BQkxFX0pVU1RJRlkKLQlhZGRfdG9f
c2NsaXN0KE1HT1RPTElORSwgIl5XIiwgMCwgdG9fcGFyYV9iZWdpbiwgMCk7Ci0JYWRkX3RvX3Nj
bGlzdChNR09UT0xJTkUsICJeTyIsIDAsIHRvX3BhcmFfZW5kLCAwKTsKICNlbmRpZgotCS8qIFNv
bWUgcGVvcGxlIGFyZSB1c2VkIHRvIGhhdmluZyB0aGVzZSBrZXlzdHJva2VzIGluIHRoZSBTZWFy
Y2ggbWVudS4gKi8KLQlhZGRfdG9fc2NsaXN0KE1HT1RPTElORXxNV0hFUkVJU3xNRklORElOSEVM
UCwgIl5ZIiwgMCwgdG9fZmlyc3RfbGluZSwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNR09UT0xJTkV8
TVdIRVJFSVN8TUZJTkRJTkhFTFAsICJeViIsIDAsIHRvX2xhc3RfbGluZSwgMCk7Ci0jaWZkZWYg
RU5BQkxFX0JST1dTRVIKLQlhZGRfdG9fc2NsaXN0KE1XSEVSRUlTRklMRSwgIl5ZIiwgMCwgdG9f
Zmlyc3RfZmlsZSwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNV0hFUkVJU0ZJTEUsICJeViIsIDAsIHRv
X2xhc3RfZmlsZSwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNQlJPV1NFUnxNV0hFUkVJU0ZJTEUsICJN
LVxcIiwgMCwgdG9fZmlyc3RfZmlsZSwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNQlJPV1NFUnxNV0hF
UkVJU0ZJTEUsICJNLS8iLCAwLCB0b19sYXN0X2ZpbGUsIDApOwotCWFkZF90b19zY2xpc3QoTUJS
T1dTRVIsICJIb21lIiwgS0VZX0hPTUUsIHRvX2ZpcnN0X2ZpbGUsIDApOwotCWFkZF90b19zY2xp
c3QoTUJST1dTRVIsICJFbmQiLCBLRVlfRU5ELCB0b19sYXN0X2ZpbGUsIDApOwotCWFkZF90b19z
Y2xpc3QoTUJST1dTRVIsICJeSG9tZSIsIENPTlRST0xfSE9NRSwgdG9fZmlyc3RfZmlsZSwgMCk7
Ci0JYWRkX3RvX3NjbGlzdChNQlJPV1NFUiwgIl5FbmQiLCBDT05UUk9MX0VORCwgdG9fbGFzdF9m
aWxlLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1CUk9XU0VSLCBTTEFTSF9PUl9EQVNILCAwLCBnb3Rv
X2RpciwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNQlJPV1NFUiwgIk0tRyIsIDAsIGdvdG9fZGlyLCAw
KTsKLQlhZGRfdG9fc2NsaXN0KE1CUk9XU0VSLCAiXl8iLCAwLCBnb3RvX2RpciwgMCk7Ci0jZW5k
aWYKLQlpZiAoIUlTU0VUKFBSRVNFUlZFKSkKLQkJYWRkX3RvX3NjbGlzdChNV1JJVEVGSUxFLCAi
XlEiLCAwLCBkaXNjYXJkX2J1ZmZlciwgMCk7Ci0jaWZuZGVmIE5BTk9fVElOWQotCWFkZF90b19z
Y2xpc3QoTVdSSVRFRklMRSwgIk0tRCIsIDAsIGRvc19mb3JtYXQsIDApOwotCS8qIE9ubHkgd2hl
biBub3QgaW4gcmVzdHJpY3RlZCBtb2RlLCBhbGxvdyBtYWtpbmcgYmFja3VwcywKLQkgKiBhcHBl
bmRpbmcsIHByZXBlbmRpbmcsIGFuZCBleGVjdXRpbmcgYSBjb21tYW5kLiAqLwotCWlmICghSVNT
RVQoUkVTVFJJQ1RFRCkgJiYgIUlTU0VUKFZJRVdfTU9ERSkpIHsKLQkJYWRkX3RvX3NjbGlzdChN
V1JJVEVGSUxFLCAiTS1CIiwgMCwgYmFja19pdF91cCwgMCk7Ci0JCWFkZF90b19zY2xpc3QoTVdS
SVRFRklMRSwgIk0tQSIsIDAsIGFwcGVuZF9pdCwgMCk7Ci0JCWFkZF90b19zY2xpc3QoTVdSSVRF
RklMRSwgIk0tUCIsIDAsIHByZXBlbmRfaXQsIDApOwotCQlhZGRfdG9fc2NsaXN0KE1JTlNFUlRG
SUxFfE1FWEVDVVRFLCAiXlgiLCAwLCBmbGlwX2V4ZWN1dGUsIDApOwogCX0KLQlhZGRfdG9fc2Ns
aXN0KE1JTlNFUlRGSUxFLCAiTS1OIiwgMCwgZmxpcF9jb252ZXJ0LCAwKTsKLSNlbmRpZgotI2lm
ZGVmIEVOQUJMRV9NVUxUSUJVRkZFUgotCWlmICghSVNTRVQoUkVTVFJJQ1RFRCkgJiYgIUlTU0VU
KFZJRVdfTU9ERSkpIHsKLQkJYWRkX3RvX3NjbGlzdChNSU5TRVJURklMRXxNRVhFQ1VURSwgIk0t
RiIsIDAsIGZsaXBfbmV3YnVmZmVyLCAwKTsKLSNpZm5kZWYgTkFOT19USU5ZCi0JCWFkZF90b19z
Y2xpc3QoTUVYRUNVVEUsICJNLVxcIiwgMCwgZmxpcF9waXBlLCAwKTsKLSNlbmRpZgorI2VuZGlm
IC8qIEVOQUJMRV9VVEY4ICovCisKKwlpZiAoSVNTRVQoTU9ERVJOX0JJTkRJTkdTKSkgeworCQkv
KiBUaGUgaGVscCBrZXkgZGVwZW5kcyBvbiB0aGUgdGVybWluYWwncyBCYWNrc3BhY2Uga2V5Y29k
ZS4gKi8KKwkJYWRkX3RvX3NjbGlzdCgoTU1PU1R8TUJST1dTRVIpICYgfk1GSU5ESU5IRUxQLCBo
ZWxwX2tleSwgMCwgZG9faGVscCwgMCk7CisJCWFkZF90b19zY2xpc3QoTUhFTFAsIGhlbHBfa2V5
LCAwLCBkb19leGl0LCAwKTsKIAl9Ci0jZW5kaWYKLQlhZGRfdG9fc2NsaXN0KE1CUk9XU0VSfE1I
RUxQLCAiXkMiLCAwLCBkb19leGl0LCAwKTsKLSNpZmRlZiBFTkFCTEVfQlJPV1NFUgotCS8qIE9u
bHkgd2hlbiBub3QgaW4gcmVzdHJpY3RlZCBtb2RlLCBhbGxvdyBlbnRlcmluZyB0aGUgZmlsZSBi
cm93c2VyLiAqLwotCWlmICghSVNTRVQoUkVTVFJJQ1RFRCkpCi0JCWFkZF90b19zY2xpc3QoTVdS
SVRFRklMRXxNSU5TRVJURklMRSwgIl5UIiwgMCwgdG9fZmlsZXMsIDApOwotCS8qIEFsbG93IGV4
aXRpbmcgdGhlIGZpbGUgYnJvd3NlciB3aXRoIHRoZSBzYW1lIGtleSBhcyB1c2VkIGZvciBlbnRy
eS4gKi8KLQlhZGRfdG9fc2NsaXN0KE1CUk9XU0VSLCAiXlQiLCAwLCBkb19leGl0LCAwKTsKLSNl
bmRpZgotI2lmZGVmIEVOQUJMRV9IRUxQCi0JLyogQWxsb3cgZXhpdGluZyB0aGUgaGVscCB2aWV3
ZXIgd2l0aCB0aGUgc2FtZSBrZXlzIGFzIHVzZWQgZm9yIGVudHJ5LiAqLwotCWFkZF90b19zY2xp
c3QoTUhFTFAsICJeRyIsIDAsIGRvX2V4aXQsIDApOwotCWFkZF90b19zY2xpc3QoTUhFTFAsICJG
MSIsIEtFWV9GKDEpLCBkb19leGl0LCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1IRUxQLCAiSG9tZSIs
IEtFWV9IT01FLCB0b19maXJzdF9saW5lLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1IRUxQLCAiRW5k
IiwgS0VZX0VORCwgdG9fbGFzdF9saW5lLCAwKTsKLSNlbmRpZgotI2lmZGVmIEVOQUJMRV9MSU5U
RVIKLQlhZGRfdG9fc2NsaXN0KE1MSU5URVIsICJeWCIsIDAsIGRvX2NhbmNlbCwgMCk7Ci0jZW5k
aWYKLQlhZGRfdG9fc2NsaXN0KE1NT1NUICYgfk1GSU5ESU5IRUxQLCAiRjEiLCBLRVlfRigxKSwg
ZG9faGVscCwgMCk7Ci0JYWRkX3RvX3NjbGlzdChNTUFJTnxNQlJPV1NFUnxNSEVMUCwgIkYyIiwg
S0VZX0YoMiksIGRvX2V4aXQsIDApOwotCWFkZF90b19zY2xpc3QoTU1BSU4sICJGMyIsIEtFWV9G
KDMpLCBkb193cml0ZW91dCwgMCk7Ci0jaWZkZWYgRU5BQkxFX0pVU1RJRlkKLQlhZGRfdG9fc2Ns
aXN0KE1NQUlOLCAiRjQiLCBLRVlfRig0KSwgZG9fanVzdGlmeSwgMCk7Ci0jZW5kaWYKLQlhZGRf
dG9fc2NsaXN0KE1NQUlOLCAiRjUiLCBLRVlfRig1KSwgZG9faW5zZXJ0ZmlsZSwgMCk7Ci0JYWRk
X3RvX3NjbGlzdChNTUFJTnxNQlJPV1NFUnxNSEVMUCwgIkY2IiwgS0VZX0YoNiksIGRvX3NlYXJj
aF9mb3J3YXJkLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlOfE1CUk9XU0VSfE1IRUxQfE1MSU5U
RVIsICJGNyIsIEtFWV9GKDcpLCBkb19wYWdlX3VwLCAwKTsKLQlhZGRfdG9fc2NsaXN0KE1NQUlO
fE1CUk9XU0VSfE1IRUxQfE1MSU5URVIsICJGOCIsIEtFWV9GKDgpLCBkb19wYWdlX2Rvd24sIDAp
OwotCWFkZF90b19zY2xpc3QoTU1PU1QsICJGOSIsIEtFWV9GKDkpLCBjdXRfdGV4dCwgMCk7Ci0J
YWRkX3RvX3NjbGlzdChNTU9TVCwgIkYxMCIsIEtFWV9GKDEwKSwgcGFzdGVfdGV4dCwgMCk7Ci0J
YWRkX3RvX3NjbGlzdChNTUFJTiwgIkYxMSIsIEtFWV9GKDExKSwgcmVwb3J0X2N1cnNvcl9wb3Np
dGlvbiwgMCk7Ci0jaWZkZWYgRU5BQkxFX1NQRUxMRVIKLQlhZGRfdG9fc2NsaXN0KE1NQUlOLCAi
RjEyIiwgS0VZX0YoMTIpLCBkb19zcGVsbCwgMCk7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKEVOQUJM
RV9FWFRSQSkgJiYgZGVmaW5lZChOQ1VSU0VTX1ZFUlNJT05fUEFUQ0gpCi0JYWRkX3RvX3NjbGlz
dChNTUFJTiwgIk0tJiIsIDAsIHNob3dfY3Vyc2VzX3ZlcnNpb24sIDApOwotI2VuZGlmCisKICNp
Zm5kZWYgTkFOT19USU5ZCiAJYWRkX3RvX3NjbGlzdCgoTU1PU1QgJiB+TU1BSU4pIHwgTVlFU05P
LCAiIiwgS0VZX0NBTkNFTCwgZG9fY2FuY2VsLCAwKTsKIAlhZGRfdG9fc2NsaXN0KE1NQUlOLCAi
IiwgS0VZX0NFTlRFUiwgZG9fY2VudGVyLCAwKTsKZGlmZiAtLWdpdCBhL3NyYy9uYW5vLmMgYi9z
cmMvbmFuby5jCmluZGV4IDgyYWNhM2U1Li44ZmIxMDM3ZCAxMDA2NDQKLS0tIGEvc3JjL25hbm8u
YworKysgYi9zcmMvbmFuby5jCkBAIC0yMjgxLDYgKzIyODEsMjIgQEAgaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIgKiphcmd2KQogCX0KICNlbmRpZiAvKiBFTkFCTEVfTkFOT1JDICovCiAKKwkvKiBX
aXRob3V0IGEga2V5IGJvdW5kIHRvICJleGl0IiBpbiB0aGUgbWFpbiBtZW51LCB0aGVyZSBpcyBu
byB3YXkgb3V0LgorCSAqIEZhaWxpbmcgaGVyZSBpcyBiZXR0ZXIgdGhhbiBsZWF2aW5nIHRoZSB1
c2VyIHBlcm1hbmVudGx5IHRyYXBwZWQuICovCisJeworCQlib29sIGV4aXRfaXNfYm91bmQgPSBG
QUxTRTsKKwkJZm9yIChrZXlzdHJ1Y3QgKnNjID0gc2NsaXN0OyBzYyAhPSBOVUxMOyBzYyA9IHNj
LT5uZXh0KSB7CisJCQlpZiAoKHNjLT5tZW51cyAmIE1NQUlOKSAmJiBzYy0+ZnVuYyA9PSBkb19l
eGl0KSB7CisJCQkJZXhpdF9pc19ib3VuZCA9IFRSVUU7CisJCQkJYnJlYWs7CisJCQl9CisJCX0K
KwkJaWYgKCFleGl0X2lzX2JvdW5kKQorCQkJZGllKF8oIk5vIGtleSBpcyBib3VuZCB0byBcImV4
aXRcIiBpbiB0aGUgbWFpbiBtZW51LlxuIgorCQkJCSAgIlBsZWFzZSBpbnN0YWxsICVzIG9yIGNy
ZWF0ZSB+Ly5jb25maWcvbmFuby9uYW5vcmMuXG4iKSwKKwkJCQlTWVNDT05GRElSICIvbmFub3Jj
Iik7CisJfQorCiAjaWZkZWYgRU5BQkxFX1dSQVBQSU5HCiAJaWYgKGhhcmR3cmFwID09IDApCiAJ
CVVOU0VUKEJSRUFLX0xPTkdfTElORVMpOwotLSAKMi4zMC4yCgo=
--000000000000dffadf0651158032--