Re: GCC segfault on i686

Matthew Carter <[email protected]> Thu, 18 Aug 2016 20:40:50 -0400
Newsgroups gmane.comp.gnu.prolog.bugs
Message-ID <[email protected]>
SSBjYW4gY29uZmlybSBmYWlsdXJlIHRvIGJ1aWxkIHdpdGggZ2NjIDYuMSsgb24gaTY4NiAodXNp
bmcgQXJjaCBMaW51eApteXNlbGYpLgoKSSBjb3VsZG4ndCBnZXQgaXQgdG8gYnVpbGQgd2l0aCB5
b3VyIGNvbmZpZ3VyZSBvcHRpb25zIGhvd2V2ZXIgKGl0IHN0aWxsCmZhaWxlZCB3aXRoIHNlZ2Zh
dWx0IGluIHRoZSBzYW1lIHBsYWNlKS4KCi1NYXR0CgpPbiBUaHUsIEF1ZyAxOCwgMjAxNiBhdCAx
MjoxMDo0OVBNICswMjAwLCBUaWxsIEhvZm1hbm4gd3JvdGU6Cj4gSGkgYWxsLAo+IAo+IEknbSBj
dXJyZW50bHkgdHJ5aW5nIHRvIGRlYnVnIGEgR0NDIHNlZ2ZhdWx0IHRoYXQgb2NjdXJzIHdoZW4g
Y29tcGlsaW5nCj4gRW5naW5lUGwvbWFjaGluZS5jIG9uIGk2ODYgbWFjaGluZXM6Cj4gCj4gPiBt
YWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9n
cHJvbG9nLTEuNC40L3NyYy9FbmdpbmVQbCcKPiA+IGdwbGMgLWMgLUMgJy1PMyAtZm9taXQtZnJh
bWUtcG9pbnRlcicgbWFjaGluZS5jCj4gPiBtYWNoaW5lLmM6IEluIGZ1bmN0aW9uIOKAmFBsX01f
UmFuZG9taXpl4oCZOgo+ID4gbWFjaGluZS5jOjM4NjoxOiBpbnRlcm5hbCBjb21waWxlciBlcnJv
cjogU2VnbWVudGF0aW9uIGZhdWx0Cj4gCj4gSXQgbG9va3MgbGlrZSB0aGlzIGlzIHJlbGF0ZWQg
dG8gdXNpbmcgdGhlIGVieCByZWdpc3RlcjsgaWYgSSByZW1vdmUKPiAnLWZmaXhlZC1lYngnIGZy
b20gdGhlIGNhbGwgdG8gY2MxLCB0aGUgc2VnZmF1bHQgZGlzYXBwZWFycy4KPiAKPiBMb29raW5n
IGF0IHRoZSBDaGFuZ2Vsb2csIGl0IGxvb2tzIGxpa2UgdGhlcmUgd2FzIGEgZml4IGZvciBzb21l
IGlzc3VlCj4gcmVsYXRlZCB0byB1c2luZyBlYnggaW4gMS4zLjEsIGJ1dCB0aGUgZXJyb3Igc3Rp
bGwgb2NjdXJzIG9uIGk2ODYuCj4gCj4gVG8gcmVwcm9kdWNlLCB5b3UgbmVlZCB0byBidWlsZCBn
cHJvbG9nIG9uIGk2ODYgd2l0aCBHQ0MgNi4xLiBJIGNvdWxkCj4gcmVwcm9kdWNlIHRoaXMgb24g
bXVsdGlwbGUgbWFjaGluZXMuCj4gCj4gU29tZSBhZGRpdGlvbmFsIGluZm86Cj4gZ3Byb2xvZyB2
ZXJzaW9uOiAxLjQuNAo+IE9TOiBGZWRvcmEgMjQgKGFsc28gb2NjdXJzIG9uIEZlZG9yYSAyNSBh
bmQgRmVkb3JhIFJhd2hpZGUpCj4gJCBnY2MgLS12ZXJzaW9uCj4gZ2NjIChHQ0MpIDYuMS4xIDIw
MTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpCj4gJCB1bmFtZSAtYQo+IExpbnV4IG5jMTAgNC42LjUt
MzAwLmZjMjQuaTY4NitQQUUgIzEgU01QIFRodSBKdWwgMjggMDE6MzQ6NDYgVVRDIDIwMTYKPiBp
Njg2IGk2ODYgaTM4NiBHTlUvTGludXgKPiAKPiBJIGJ1aWxkIHdpdGggIi4vY29uZmlndXJlIC0t
d2l0aC1jLWZsYWdzPSctdiAtc2F2ZS10ZW1wcyciLCBJJ3ZlCj4gYXR0YWNoZWQgdGhlIGZ1bGwg
b3V0cHV0IGZyb20gbWFrZS4gSSd2ZSBhbHNvIGF0dGFjaGVkIG1hY2hpbmUuaS4KPiAKPiBXaXRo
IG9sZGVyIEdDQyB2ZXJzaW9ucyAoPDYpLCB0aGUgYnVnIGRvZXMgbm90IG9jY3VyLCBzbyB0aGlz
IG1pZ2h0IHdlbGwKPiBiZSBhIGJ1ZyBpbiBHQ0M2Lgo+IAo+IAo+IEtpbmQgcmVnYXJkcwo+IFRp
bGwKCj4gY2QgRW5naW5lUGw7IG1ha2UgY29uZmlnCj4gbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0
b3J5ICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvRW5naW5l
UGwnCj4gZ2NjIC1tYXJjaD1wZW50aXVtcHJvIC1tMzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXYg
LXNhdmUtdGVtcHMgIC1vIHBsX2NvbmZpZyBwbF9jb25maWcuYwo+IFVzaW5nIGJ1aWx0LWluIHNw
ZWNzLgo+IENPTExFQ1RfR0NDPWdjYwo+IENPTExFQ1RfTFRPX1dSQVBQRVI9L3Vzci9saWJleGVj
L2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9sdG8td3JhcHBlcgo+IFRhcmdldDogaTY4Ni1y
ZWRoYXQtbGludXgKPiBDb25maWd1cmVkIHdpdGg6IC4uL2NvbmZpZ3VyZSAtLWVuYWJsZS1ib290
c3RyYXAgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGFkYSxn
byxsdG8gLS1wcmVmaXg9L3VzciAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLWluZm9kaXI9L3Vz
ci9zaGFyZS9pbmZvIC0td2l0aC1idWd1cmw9aHR0cDovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVn
emlsbGEgLS1lbmFibGUtc2hhcmVkIC0tZW5hYmxlLXRocmVhZHM9cG9zaXggLS1lbmFibGUtY2hl
Y2tpbmc9cmVsZWFzZSAtLWVuYWJsZS1tdWx0aWxpYiAtLXdpdGgtc3lzdGVtLXpsaWIgLS1lbmFi
bGUtX19jeGFfYXRleGl0IC0tZGlzYWJsZS1saWJ1bndpbmQtZXhjZXB0aW9ucyAtLWVuYWJsZS1n
bnUtdW5pcXVlLW9iamVjdCAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQgLS13aXRoLWxpbmtlci1o
YXNoLXN0eWxlPWdudSAtLWVuYWJsZS1wbHVnaW4gLS1lbmFibGUtaW5pdGZpbmktYXJyYXkgLS1k
aXNhYmxlLWxpYmdjaiAtLXdpdGgtaXNsIC0tZW5hYmxlLWxpYm1weCAtLWVuYWJsZS1nbnUtaW5k
aXJlY3QtZnVuY3Rpb24gLS13aXRoLXR1bmU9Z2VuZXJpYyAtLXdpdGgtYXJjaD1pNjg2IC0tYnVp
bGQ9aTY4Ni1yZWRoYXQtbGludXgKPiBUaHJlYWQgbW9kZWw6IHBvc2l4Cj4gZ2NjIHZlcnNpb24g
Ni4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgKEdDQykgCj4gQ09MTEVDVF9HQ0NfT1BU
SU9OUz0nLW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAnLWZuby1zdHJpY3QtYWxpYXNpbmcnICct
dicgJy1zYXZlLXRlbXBzJyAnLW8nICdwbF9jb25maWcnCj4gIC91c3IvbGliZXhlYy9nY2MvaTY4
Ni1yZWRoYXQtbGludXgvNi4xLjEvY2MxIC1FIC1xdWlldCAtdiBwbF9jb25maWcuYyAtbWFyY2g9
cGVudGl1bXBybyAtbTMyIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mcGNoLXByZXByb2Nlc3MgLW8g
cGxfY29uZmlnLmkKPiBpZ25vcmluZyBub25leGlzdGVudCBkaXJlY3RvcnkgIi91c3IvbGliL2dj
Yy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlLWZpeGVkIgo+IGlnbm9yaW5nIG5vbmV4
aXN0ZW50IGRpcmVjdG9yeSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4u
Ly4uLy4uLy4uL2k2ODYtcmVkaGF0LWxpbnV4L2luY2x1ZGUiCj4gI2luY2x1ZGUgIi4uLiIgc2Vh
cmNoIHN0YXJ0cyBoZXJlOgo+ICNpbmNsdWRlIDwuLi4+IHNlYXJjaCBzdGFydHMgaGVyZToKPiAg
L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUKPiAgL3Vzci9sb2Nh
bC9pbmNsdWRlCj4gIC91c3IvaW5jbHVkZQo+IEVuZCBvZiBzZWFyY2ggbGlzdC4KPiBDT0xMRUNU
X0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmljdC1hbGlh
c2luZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycgJ3BsX2NvbmZpZycKPiAgL3Vzci9saWJleGVj
L2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9jYzEgLWZwcmVwcm9jZXNzZWQgcGxfY29uZmln
LmkgLXF1aWV0IC1kdW1wYmFzZSBwbF9jb25maWcuYyAtbWFyY2g9cGVudGl1bXBybyAtbTMyIC1h
dXhiYXNlIHBsX2NvbmZpZyAtdmVyc2lvbiAtZm5vLXN0cmljdC1hbGlhc2luZyAtbyBwbF9jb25m
aWcucwo+IEdOVSBDMTEgKEdDQykgdmVyc2lvbiA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEu
MS0zKSAoaTY4Ni1yZWRoYXQtbGludXgpCj4gCWNvbXBpbGVkIGJ5IEdOVSBDIHZlcnNpb24gNi4x
LjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMyksIEdNUCB2ZXJzaW9uIDYuMS4wLCBNUEZSIHZl
cnNpb24gMy4xLjQsIE1QQyB2ZXJzaW9uIDEuMC4yLCBpc2wgdmVyc2lvbiAwLjE0IG9yIDAuMTMK
PiB3YXJuaW5nOiBHTVAgaGVhZGVyIHZlcnNpb24gNi4xLjAgZGlmZmVycyBmcm9tIGxpYnJhcnkg
dmVyc2lvbiA2LjEuMS4KPiBHR0MgaGV1cmlzdGljczogLS1wYXJhbSBnZ2MtbWluLWV4cGFuZD0x
MDAgLS1wYXJhbSBnZ2MtbWluLWhlYXBzaXplPTEzMTA3Mgo+IEdOVSBDMTEgKEdDQykgdmVyc2lv
biA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSAoaTY4Ni1yZWRoYXQtbGludXgpCj4g
CWNvbXBpbGVkIGJ5IEdOVSBDIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEt
MyksIEdNUCB2ZXJzaW9uIDYuMS4wLCBNUEZSIHZlcnNpb24gMy4xLjQsIE1QQyB2ZXJzaW9uIDEu
MC4yLCBpc2wgdmVyc2lvbiAwLjE0IG9yIDAuMTMKPiB3YXJuaW5nOiBHTVAgaGVhZGVyIHZlcnNp
b24gNi4xLjAgZGlmZmVycyBmcm9tIGxpYnJhcnkgdmVyc2lvbiA2LjEuMS4KPiBHR0MgaGV1cmlz
dGljczogLS1wYXJhbSBnZ2MtbWluLWV4cGFuZD0xMDAgLS1wYXJhbSBnZ2MtbWluLWhlYXBzaXpl
PTEzMTA3Mgo+IENvbXBpbGVyIGV4ZWN1dGFibGUgY2hlY2tzdW06IGFiY2ViMTM4YWY0M2E3OGMz
NmMxYWFhMjI4ZjVmOTJhCj4gQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLW1hcmNoPXBlbnRpdW1wcm8n
ICctbTMyJyAnLWZuby1zdHJpY3QtYWxpYXNpbmcnICctdicgJy1zYXZlLXRlbXBzJyAnLW8nICdw
bF9jb25maWcnCj4gIGFzIC12IC0tMzIgLW8gcGxfY29uZmlnLm8gcGxfY29uZmlnLnMKPiBHTlUg
YXNzZW1ibGVyIHZlcnNpb24gMi4yNi4xIChpNjg2LXJlZGhhdC1saW51eCkgdXNpbmcgQkZEIHZl
cnNpb24gdmVyc2lvbiAyLjI2LjEtMS5mYzI0Cj4gQ09NUElMRVJfUEFUSD0vdXNyL2xpYmV4ZWMv
Z2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLzovdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0
LWxpbnV4LzYuMS4xLzovdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzovdXNyL2xp
Yi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvOi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1s
aW51eC8KPiBMSUJSQVJZX1BBVEg9L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4x
LzovdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vOi9saWIvOi91
c3IvbGliLwo+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicg
Jy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1vJyAncGxfY29uZmln
Jwo+ICAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NvbGxlY3QyIC1w
bHVnaW4gL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9saWJsdG9fcGx1
Z2luLnNvIC1wbHVnaW4tb3B0PS91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4x
LjEvbHRvLXdyYXBwZXIgLXBsdWdpbi1vcHQ9LWZyZXNvbHV0aW9uPXBsX2NvbmZpZy5yZXMgLXBs
dWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGdjYyAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1s
Z2NjX3MgLXBsdWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGMgLXBsdWdpbi1vcHQ9LXBhc3MtdGhy
b3VnaD0tbGdjYyAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1sZ2NjX3MgLS1idWlsZC1pZCAt
LW5vLWFkZC1uZWVkZWQgLS1laC1mcmFtZS1oZHIgLS1oYXNoLXN0eWxlPWdudSAtbSBlbGZfaTM4
NiAtZHluYW1pYy1saW5rZXIgL2xpYi9sZC1saW51eC5zby4yIC1vIHBsX2NvbmZpZyAvdXNyL2xp
Yi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vY3J0MS5vIC91c3IvbGliL2dj
Yy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi9jcnRpLm8gL3Vzci9saWIvZ2NjL2k2
ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NydGJlZ2luLm8gLUwvdXNyL2xpYi9nY2MvaTY4Ni1yZWRo
YXQtbGludXgvNi4xLjEgLUwvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4v
Li4vLi4gcGxfY29uZmlnLm8gLWxnY2MgLS1hcy1uZWVkZWQgLWxnY2NfcyAtLW5vLWFzLW5lZWRl
ZCAtbGMgLWxnY2MgLS1hcy1uZWVkZWQgLWxnY2NfcyAtLW5vLWFzLW5lZWRlZCAvdXNyL2xpYi9n
Y2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY3J0ZW5kLm8gL3Vzci9saWIvZ2NjL2k2ODYtcmVk
aGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uL2NydG4ubwo+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1t
YXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2
ZS10ZW1wcycgJy1vJyAncGxfY29uZmlnJwo+IC4vcGxfY29uZmlnCj4gCj4gCS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAJLS0tIEdOVSBQUk9MT0cgSU5TVEFMTEFUSU9OIC0tLQo+
IAktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gCj4gR05VIFByb2xvZyB2ZXJzaW9u
OiAxLjQuNCAoQXVnIDE4IDIwMTYpCj4gT3BlcmF0aW5nIHN5c3RlbSAgOiBsaW51eC1nbnUKPiBQ
cm9jZXNzb3IgICAgICAgICA6IGk2ODYKPiBTaXplIG9mIGEgV0FNIHdvcmQ6IDMyIGJpdHMKPiBD
IGNvbXBpbGVyICAgICAgICA6IGdjYwo+IEMgZmxhZ3MgICAgICAgICAgIDogLXYgLXNhdmUtdGVt
cHMKPiBDIGZsYWdzIG1hY2hpbmUgICA6IC1tYXJjaD1wZW50aXVtcHJvIC1tMzIgLWZuby1zdHJp
Y3QtYWxpYXNpbmcKPiBBc3NlbWJsZXIgICAgICAgICA6IGFzCj4gQXNzZW1ibGVyIGZsYWdzICAg
OiAtLTMyCj4gTG9hZGVyIGZsYWdzICAgICAgOiAKPiBMb2FkZXIgbGlicmFyaWVzICA6IC1sbQo+
IFVzZSBsaW5lIGVkaXRvciAgIDogWWVzCj4gVXNlIHBpcGVkIGNvbnN1bHQgOiBZZXMKPiBVc2Ug
c29ja2V0cyAgICAgICA6IFllcwo+IFVzZSBGRCBzb2x2ZXIgICAgIDogWWVzCj4gVXNlIGZhc3Qg
Y2FsbCAgICAgOiBZZXMKPiBVc2UgbWFjaGluZSByZWdzLiA6IFllcwo+IFVzZWQgcmVnaXN0ZXIo
cykgIDogZWJ4IChUUikgIAo+IAo+IAktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAK
PiAoY2QgLi4vVG9wQ29tcDsgbWFrZSBncGxjKQo+IG1ha2VbMl06IEVudGVyaW5nIGRpcmVjdG9y
eSAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL1RvcENvbXAn
Cj4gZ2NjIC1tYXJjaD1wZW50aXVtcHJvIC1tMzIgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXYgLXNh
dmUtdGVtcHMgLW8gZ3BsYyB0b3BfY29tcC5jIC1sbQo+IFVzaW5nIGJ1aWx0LWluIHNwZWNzLgo+
IENPTExFQ1RfR0NDPWdjYwo+IENPTExFQ1RfTFRPX1dSQVBQRVI9L3Vzci9saWJleGVjL2djYy9p
Njg2LXJlZGhhdC1saW51eC82LjEuMS9sdG8td3JhcHBlcgo+IFRhcmdldDogaTY4Ni1yZWRoYXQt
bGludXgKPiBDb25maWd1cmVkIHdpdGg6IC4uL2NvbmZpZ3VyZSAtLWVuYWJsZS1ib290c3RyYXAg
LS1lbmFibGUtbGFuZ3VhZ2VzPWMsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGFkYSxnbyxsdG8g
LS1wcmVmaXg9L3VzciAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLWluZm9kaXI9L3Vzci9zaGFy
ZS9pbmZvIC0td2l0aC1idWd1cmw9aHR0cDovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVnemlsbGEg
LS1lbmFibGUtc2hhcmVkIC0tZW5hYmxlLXRocmVhZHM9cG9zaXggLS1lbmFibGUtY2hlY2tpbmc9
cmVsZWFzZSAtLWVuYWJsZS1tdWx0aWxpYiAtLXdpdGgtc3lzdGVtLXpsaWIgLS1lbmFibGUtX19j
eGFfYXRleGl0IC0tZGlzYWJsZS1saWJ1bndpbmQtZXhjZXB0aW9ucyAtLWVuYWJsZS1nbnUtdW5p
cXVlLW9iamVjdCAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQgLS13aXRoLWxpbmtlci1oYXNoLXN0
eWxlPWdudSAtLWVuYWJsZS1wbHVnaW4gLS1lbmFibGUtaW5pdGZpbmktYXJyYXkgLS1kaXNhYmxl
LWxpYmdjaiAtLXdpdGgtaXNsIC0tZW5hYmxlLWxpYm1weCAtLWVuYWJsZS1nbnUtaW5kaXJlY3Qt
ZnVuY3Rpb24gLS13aXRoLXR1bmU9Z2VuZXJpYyAtLXdpdGgtYXJjaD1pNjg2IC0tYnVpbGQ9aTY4
Ni1yZWRoYXQtbGludXgKPiBUaHJlYWQgbW9kZWw6IHBvc2l4Cj4gZ2NjIHZlcnNpb24gNi4xLjEg
MjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgKEdDQykgCj4gQ09MTEVDVF9HQ0NfT1BUSU9OUz0n
LW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAnLWZuby1zdHJpY3QtYWxpYXNpbmcnICctdicgJy1z
YXZlLXRlbXBzJyAnLW8nICdncGxjJwo+ICAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxp
bnV4LzYuMS4xL2NjMSAtRSAtcXVpZXQgLXYgdG9wX2NvbXAuYyAtbWFyY2g9cGVudGl1bXBybyAt
bTMyIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mcGNoLXByZXByb2Nlc3MgLW8gdG9wX2NvbXAuaQo+
IGlnbm9yaW5nIG5vbmV4aXN0ZW50IGRpcmVjdG9yeSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0
LWxpbnV4LzYuMS4xL2luY2x1ZGUtZml4ZWQiCj4gaWdub3Jpbmcgbm9uZXhpc3RlbnQgZGlyZWN0
b3J5ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vLi4vaTY4
Ni1yZWRoYXQtbGludXgvaW5jbHVkZSIKPiAjaW5jbHVkZSAiLi4uIiBzZWFyY2ggc3RhcnRzIGhl
cmU6Cj4gI2luY2x1ZGUgPC4uLj4gc2VhcmNoIHN0YXJ0cyBoZXJlOgo+ICAvdXNyL2xpYi9nY2Mv
aTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZQo+ICAvdXNyL2xvY2FsL2luY2x1ZGUKPiAg
L3Vzci9pbmNsdWRlCj4gRW5kIG9mIHNlYXJjaCBsaXN0Lgo+IENPTExFQ1RfR0NDX09QVElPTlM9
Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICct
c2F2ZS10ZW1wcycgJy1vJyAnZ3BsYycKPiAgL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1s
aW51eC82LjEuMS9jYzEgLWZwcmVwcm9jZXNzZWQgdG9wX2NvbXAuaSAtcXVpZXQgLWR1bXBiYXNl
IHRvcF9jb21wLmMgLW1hcmNoPXBlbnRpdW1wcm8gLW0zMiAtYXV4YmFzZSB0b3BfY29tcCAtdmVy
c2lvbiAtZm5vLXN0cmljdC1hbGlhc2luZyAtbyB0b3BfY29tcC5zCj4gR05VIEMxMSAoR0NDKSB2
ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpIChpNjg2LXJlZGhhdC1saW51
eCkKPiAJY29tcGlsZWQgYnkgR05VIEMgdmVyc2lvbiA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2
LjEuMS0zKSwgR01QIHZlcnNpb24gNi4xLjAsIE1QRlIgdmVyc2lvbiAzLjEuNCwgTVBDIHZlcnNp
b24gMS4wLjIsIGlzbCB2ZXJzaW9uIDAuMTQgb3IgMC4xMwo+IHdhcm5pbmc6IEdNUCBoZWFkZXIg
dmVyc2lvbiA2LjEuMCBkaWZmZXJzIGZyb20gbGlicmFyeSB2ZXJzaW9uIDYuMS4xLgo+IEdHQyBo
ZXVyaXN0aWNzOiAtLXBhcmFtIGdnYy1taW4tZXhwYW5kPTEwMCAtLXBhcmFtIGdnYy1taW4taGVh
cHNpemU9MTMxMDcyCj4gR05VIEMxMSAoR0NDKSB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQg
SGF0IDYuMS4xLTMpIChpNjg2LXJlZGhhdC1saW51eCkKPiAJY29tcGlsZWQgYnkgR05VIEMgdmVy
c2lvbiA2LjEuMSAyMDE2MDYyMSAoUmVkIEhhdCA2LjEuMS0zKSwgR01QIHZlcnNpb24gNi4xLjAs
IE1QRlIgdmVyc2lvbiAzLjEuNCwgTVBDIHZlcnNpb24gMS4wLjIsIGlzbCB2ZXJzaW9uIDAuMTQg
b3IgMC4xMwo+IHdhcm5pbmc6IEdNUCBoZWFkZXIgdmVyc2lvbiA2LjEuMCBkaWZmZXJzIGZyb20g
bGlicmFyeSB2ZXJzaW9uIDYuMS4xLgo+IEdHQyBoZXVyaXN0aWNzOiAtLXBhcmFtIGdnYy1taW4t
ZXhwYW5kPTEwMCAtLXBhcmFtIGdnYy1taW4taGVhcHNpemU9MTMxMDcyCj4gQ29tcGlsZXIgZXhl
Y3V0YWJsZSBjaGVja3N1bTogYWJjZWIxMzhhZjQzYTc4YzM2YzFhYWEyMjhmNWY5MmEKPiBDT0xM
RUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmljdC1h
bGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycgJ2dwbGMnCj4gIGFzIC12IC0tMzIgLW8g
dG9wX2NvbXAubyB0b3BfY29tcC5zCj4gR05VIGFzc2VtYmxlciB2ZXJzaW9uIDIuMjYuMSAoaTY4
Ni1yZWRoYXQtbGludXgpIHVzaW5nIEJGRCB2ZXJzaW9uIHZlcnNpb24gMi4yNi4xLTEuZmMyNAo+
IENPTVBJTEVSX1BBVEg9L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86
L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWJleGVjL2dj
Yy9pNjg2LXJlZGhhdC1saW51eC86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4x
LzovdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvCj4gTElCUkFSWV9QQVRIPS91c3IvbGli
L2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxp
bnV4LzYuMS4xLy4uLy4uLy4uLzovbGliLzovdXNyL2xpYi8KPiBDT0xMRUNUX0dDQ19PUFRJT05T
PSctbWFyY2g9cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAn
LXNhdmUtdGVtcHMnICctbycgJ2dwbGMnCj4gIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQt
bGludXgvNi4xLjEvY29sbGVjdDIgLXBsdWdpbiAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0
LWxpbnV4LzYuMS4xL2xpYmx0b19wbHVnaW4uc28gLXBsdWdpbi1vcHQ9L3Vzci9saWJleGVjL2dj
Yy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9sdG8td3JhcHBlciAtcGx1Z2luLW9wdD0tZnJlc29s
dXRpb249dG9wX2NvbXAucmVzIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2MgLXBsdWdp
bi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGdjY19zIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxj
IC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2MgLXBsdWdpbi1vcHQ9LXBhc3MtdGhyb3Vn
aD0tbGdjY19zIC0tYnVpbGQtaWQgLS1uby1hZGQtbmVlZGVkIC0tZWgtZnJhbWUtaGRyIC0taGFz
aC1zdHlsZT1nbnUgLW0gZWxmX2kzODYgLWR5bmFtaWMtbGlua2VyIC9saWIvbGQtbGludXguc28u
MiAtbyBncGxjIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS8uLi8uLi8uLi9j
cnQxLm8gL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uL2NydGku
byAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY3J0YmVnaW4ubyAtTC91c3Iv
bGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMSAtTC91c3IvbGliL2djYy9pNjg2LXJlZGhh
dC1saW51eC82LjEuMS8uLi8uLi8uLiB0b3BfY29tcC5vIC1sbSAtbGdjYyAtLWFzLW5lZWRlZCAt
bGdjY19zIC0tbm8tYXMtbmVlZGVkIC1sYyAtbGdjYyAtLWFzLW5lZWRlZCAtbGdjY19zIC0tbm8t
YXMtbmVlZGVkIC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9jcnRlbmQubyAv
dXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vY3J0bi5vCj4gQ09M
TEVDVF9HQ0NfT1BUSU9OUz0nLW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAnLWZuby1zdHJpY3Qt
YWxpYXNpbmcnICctdicgJy1zYXZlLXRlbXBzJyAnLW8nICdncGxjJwo+IG1ha2VbMl06IExlYXZp
bmcgZGlyZWN0b3J5ICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0xLjQuNC9z
cmMvVG9wQ29tcCcKPiBtYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvdGlsbC9ycG1i
dWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZVBsJwo+IC4gLi9TRVRWQVJTO2Zv
ciBpIGluIEVuZ2luZVBsIFRvcENvbXAgV2FtMk1hIE1hMkFzbSBMaW5lZGl0IEJpcHNQbCBQbDJX
YW0gRmQyQyBFbmdpbmVGRCBCaXBzRkQ7ZG8gKGNkICRpOyBtYWtlKSB8fCBleGl0IDE7IGRvbmU7
XAo+IChjZCBUb3BDb21wOyBtYWtlIHRvcC1sZXZlbCkgfHwgZXhpdCAxO1wKPiAoY2QgUGwyV2Ft
OyBtYWtlIHN0YWdlMikKPiBtYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy9ob21lL3RpbGwv
cnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVQbCcKPiBnY2MgLW1hcmNo
PXBlbnRpdW1wcm8gLW0zMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtdiAtc2F2ZS10ZW1wcyAgLW8g
Y3BwX2hlYWRlcnMgY3BwX2hlYWRlcnMuYwo+IFVzaW5nIGJ1aWx0LWluIHNwZWNzLgo+IENPTExF
Q1RfR0NDPWdjYwo+IENPTExFQ1RfTFRPX1dSQVBQRVI9L3Vzci9saWJleGVjL2djYy9pNjg2LXJl
ZGhhdC1saW51eC82LjEuMS9sdG8td3JhcHBlcgo+IFRhcmdldDogaTY4Ni1yZWRoYXQtbGludXgK
PiBDb25maWd1cmVkIHdpdGg6IC4uL2NvbmZpZ3VyZSAtLWVuYWJsZS1ib290c3RyYXAgLS1lbmFi
bGUtbGFuZ3VhZ2VzPWMsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGFkYSxnbyxsdG8gLS1wcmVm
aXg9L3VzciAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLWluZm9kaXI9L3Vzci9zaGFyZS9pbmZv
IC0td2l0aC1idWd1cmw9aHR0cDovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVnemlsbGEgLS1lbmFi
bGUtc2hhcmVkIC0tZW5hYmxlLXRocmVhZHM9cG9zaXggLS1lbmFibGUtY2hlY2tpbmc9cmVsZWFz
ZSAtLWVuYWJsZS1tdWx0aWxpYiAtLXdpdGgtc3lzdGVtLXpsaWIgLS1lbmFibGUtX19jeGFfYXRl
eGl0IC0tZGlzYWJsZS1saWJ1bndpbmQtZXhjZXB0aW9ucyAtLWVuYWJsZS1nbnUtdW5pcXVlLW9i
amVjdCAtLWVuYWJsZS1saW5rZXItYnVpbGQtaWQgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPWdu
dSAtLWVuYWJsZS1wbHVnaW4gLS1lbmFibGUtaW5pdGZpbmktYXJyYXkgLS1kaXNhYmxlLWxpYmdj
aiAtLXdpdGgtaXNsIC0tZW5hYmxlLWxpYm1weCAtLWVuYWJsZS1nbnUtaW5kaXJlY3QtZnVuY3Rp
b24gLS13aXRoLXR1bmU9Z2VuZXJpYyAtLXdpdGgtYXJjaD1pNjg2IC0tYnVpbGQ9aTY4Ni1yZWRo
YXQtbGludXgKPiBUaHJlYWQgbW9kZWw6IHBvc2l4Cj4gZ2NjIHZlcnNpb24gNi4xLjEgMjAxNjA2
MjEgKFJlZCBIYXQgNi4xLjEtMykgKEdDQykgCj4gQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLW1hcmNo
PXBlbnRpdW1wcm8nICctbTMyJyAnLWZuby1zdHJpY3QtYWxpYXNpbmcnICctdicgJy1zYXZlLXRl
bXBzJyAnLW8nICdjcHBfaGVhZGVycycKPiAgL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1s
aW51eC82LjEuMS9jYzEgLUUgLXF1aWV0IC12IGNwcF9oZWFkZXJzLmMgLW1hcmNoPXBlbnRpdW1w
cm8gLW0zMiAtZm5vLXN0cmljdC1hbGlhc2luZyAtZnBjaC1wcmVwcm9jZXNzIC1vIGNwcF9oZWFk
ZXJzLmkKPiBpZ25vcmluZyBub25leGlzdGVudCBkaXJlY3RvcnkgIi91c3IvbGliL2djYy9pNjg2
LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlLWZpeGVkIgo+IGlnbm9yaW5nIG5vbmV4aXN0ZW50
IGRpcmVjdG9yeSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4u
Ly4uL2k2ODYtcmVkaGF0LWxpbnV4L2luY2x1ZGUiCj4gI2luY2x1ZGUgIi4uLiIgc2VhcmNoIHN0
YXJ0cyBoZXJlOgo+ICNpbmNsdWRlIDwuLi4+IHNlYXJjaCBzdGFydHMgaGVyZToKPiAgL3Vzci9s
aWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUKPiAgL3Vzci9sb2NhbC9pbmNs
dWRlCj4gIC91c3IvaW5jbHVkZQo+IEVuZCBvZiBzZWFyY2ggbGlzdC4KPiBDT0xMRUNUX0dDQ19P
UFRJT05TPSctbWFyY2g9cGVudGl1bXBybycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycg
Jy12JyAnLXNhdmUtdGVtcHMnICctbycgJ2NwcF9oZWFkZXJzJwo+ICAvdXNyL2xpYmV4ZWMvZ2Nj
L2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NjMSAtZnByZXByb2Nlc3NlZCBjcHBfaGVhZGVycy5p
IC1xdWlldCAtZHVtcGJhc2UgY3BwX2hlYWRlcnMuYyAtbWFyY2g9cGVudGl1bXBybyAtbTMyIC1h
dXhiYXNlIGNwcF9oZWFkZXJzIC12ZXJzaW9uIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1vIGNwcF9o
ZWFkZXJzLnMKPiBHTlUgQzExIChHQ0MpIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQg
Ni4xLjEtMykgKGk2ODYtcmVkaGF0LWxpbnV4KQo+IAljb21waWxlZCBieSBHTlUgQyB2ZXJzaW9u
IDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpLCBHTVAgdmVyc2lvbiA2LjEuMCwgTVBG
UiB2ZXJzaW9uIDMuMS40LCBNUEMgdmVyc2lvbiAxLjAuMiwgaXNsIHZlcnNpb24gMC4xNCBvciAw
LjEzCj4gd2FybmluZzogR01QIGhlYWRlciB2ZXJzaW9uIDYuMS4wIGRpZmZlcnMgZnJvbSBsaWJy
YXJ5IHZlcnNpb24gNi4xLjEuCj4gR0dDIGhldXJpc3RpY3M6IC0tcGFyYW0gZ2djLW1pbi1leHBh
bmQ9MTAwIC0tcGFyYW0gZ2djLW1pbi1oZWFwc2l6ZT0xMzEwNzIKPiBHTlUgQzExIChHQ0MpIHZl
cnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgKGk2ODYtcmVkaGF0LWxpbnV4
KQo+IAljb21waWxlZCBieSBHTlUgQyB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYu
MS4xLTMpLCBHTVAgdmVyc2lvbiA2LjEuMCwgTVBGUiB2ZXJzaW9uIDMuMS40LCBNUEMgdmVyc2lv
biAxLjAuMiwgaXNsIHZlcnNpb24gMC4xNCBvciAwLjEzCj4gd2FybmluZzogR01QIGhlYWRlciB2
ZXJzaW9uIDYuMS4wIGRpZmZlcnMgZnJvbSBsaWJyYXJ5IHZlcnNpb24gNi4xLjEuCj4gR0dDIGhl
dXJpc3RpY3M6IC0tcGFyYW0gZ2djLW1pbi1leHBhbmQ9MTAwIC0tcGFyYW0gZ2djLW1pbi1oZWFw
c2l6ZT0xMzEwNzIKPiBDb21waWxlciBleGVjdXRhYmxlIGNoZWNrc3VtOiBhYmNlYjEzOGFmNDNh
NzhjMzZjMWFhYTIyOGY1ZjkyYQo+IENPTExFQ1RfR0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVt
cHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1v
JyAnY3BwX2hlYWRlcnMnCj4gIGFzIC12IC0tMzIgLW8gY3BwX2hlYWRlcnMubyBjcHBfaGVhZGVy
cy5zCj4gR05VIGFzc2VtYmxlciB2ZXJzaW9uIDIuMjYuMSAoaTY4Ni1yZWRoYXQtbGludXgpIHVz
aW5nIEJGRCB2ZXJzaW9uIHZlcnNpb24gMi4yNi4xLTEuZmMyNAo+IENPTVBJTEVSX1BBVEg9L3Vz
ci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWJleGVjL2djYy9p
Njg2LXJlZGhhdC1saW51eC82LjEuMS86L3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51
eC86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLzovdXNyL2xpYi9nY2MvaTY4
Ni1yZWRoYXQtbGludXgvCj4gTElCUkFSWV9QQVRIPS91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1s
aW51eC82LjEuMS86L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4u
LzovbGliLzovdXNyL2xpYi8KPiBDT0xMRUNUX0dDQ19PUFRJT05TPSctbWFyY2g9cGVudGl1bXBy
bycgJy1tMzInICctZm5vLXN0cmljdC1hbGlhc2luZycgJy12JyAnLXNhdmUtdGVtcHMnICctbycg
J2NwcF9oZWFkZXJzJwo+ICAvdXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4x
L2NvbGxlY3QyIC1wbHVnaW4gL3Vzci9saWJleGVjL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEu
MS9saWJsdG9fcGx1Z2luLnNvIC1wbHVnaW4tb3B0PS91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRo
YXQtbGludXgvNi4xLjEvbHRvLXdyYXBwZXIgLXBsdWdpbi1vcHQ9LWZyZXNvbHV0aW9uPWNwcF9o
ZWFkZXJzLnJlcyAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1sZ2NjIC1wbHVnaW4tb3B0PS1w
YXNzLXRocm91Z2g9LWxnY2NfcyAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1sYyAtcGx1Z2lu
LW9wdD0tcGFzcy10aHJvdWdoPS1sZ2NjIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2Nf
cyAtLWJ1aWxkLWlkIC0tbm8tYWRkLW5lZWRlZCAtLWVoLWZyYW1lLWhkciAtLWhhc2gtc3R5bGU9
Z251IC1tIGVsZl9pMzg2IC1keW5hbWljLWxpbmtlciAvbGliL2xkLWxpbnV4LnNvLjIgLW8gY3Bw
X2hlYWRlcnMgL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uL2Ny
dDEubyAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvLi4vLi4vLi4vY3J0aS5v
IC91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9jcnRiZWdpbi5vIC1ML3Vzci9s
aWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xIC1ML3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0
LWxpbnV4LzYuMS4xLy4uLy4uLy4uIGNwcF9oZWFkZXJzLm8gLWxnY2MgLS1hcy1uZWVkZWQgLWxn
Y2NfcyAtLW5vLWFzLW5lZWRlZCAtbGMgLWxnY2MgLS1hcy1uZWVkZWQgLWxnY2NfcyAtLW5vLWFz
LW5lZWRlZCAvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY3J0ZW5kLm8gL3Vz
ci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uL2NydG4ubwo+IENPTExF
Q1RfR0NDX09QVElPTlM9Jy1tYXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFs
aWFzaW5nJyAnLXYnICctc2F2ZS10ZW1wcycgJy1vJyAnY3BwX2hlYWRlcnMnCj4gZ3BsYyAtYyAt
QyAnLXYgLXNhdmUtdGVtcHMnIG1hY2hpbmUuYwo+IFVzaW5nIGJ1aWx0LWluIHNwZWNzLgo+IENP
TExFQ1RfR0NDPWdjYwo+IFRhcmdldDogaTY4Ni1yZWRoYXQtbGludXgKPiBDb25maWd1cmVkIHdp
dGg6IC4uL2NvbmZpZ3VyZSAtLWVuYWJsZS1ib290c3RyYXAgLS1lbmFibGUtbGFuZ3VhZ2VzPWMs
YysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGFkYSxnbyxsdG8gLS1wcmVmaXg9L3VzciAtLW1hbmRp
cj0vdXNyL3NoYXJlL21hbiAtLWluZm9kaXI9L3Vzci9zaGFyZS9pbmZvIC0td2l0aC1idWd1cmw9
aHR0cDovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVnemlsbGEgLS1lbmFibGUtc2hhcmVkIC0tZW5h
YmxlLXRocmVhZHM9cG9zaXggLS1lbmFibGUtY2hlY2tpbmc9cmVsZWFzZSAtLWVuYWJsZS1tdWx0
aWxpYiAtLXdpdGgtc3lzdGVtLXpsaWIgLS1lbmFibGUtX19jeGFfYXRleGl0IC0tZGlzYWJsZS1s
aWJ1bndpbmQtZXhjZXB0aW9ucyAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdCAtLWVuYWJsZS1s
aW5rZXItYnVpbGQtaWQgLS13aXRoLWxpbmtlci1oYXNoLXN0eWxlPWdudSAtLWVuYWJsZS1wbHVn
aW4gLS1lbmFibGUtaW5pdGZpbmktYXJyYXkgLS1kaXNhYmxlLWxpYmdjaiAtLXdpdGgtaXNsIC0t
ZW5hYmxlLWxpYm1weCAtLWVuYWJsZS1nbnUtaW5kaXJlY3QtZnVuY3Rpb24gLS13aXRoLXR1bmU9
Z2VuZXJpYyAtLXdpdGgtYXJjaD1pNjg2IC0tYnVpbGQ9aTY4Ni1yZWRoYXQtbGludXgKPiBUaHJl
YWQgbW9kZWw6IHBvc2l4Cj4gZ2NjIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4x
LjEtMykgKEdDQykgCj4gQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLXYnICctc2F2ZS10ZW1wcycgJy1t
YXJjaD1wZW50aXVtcHJvJyAnLW0zMicgJy1mbm8tc3RyaWN0LWFsaWFzaW5nJyAnLWZmaXhlZC1l
YngnICctYycgJy1JJyAnL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQv
c3JjL0VuZ2luZVBsJyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xvZy0x
LjQuNC9zcmMvQmlwc1BsJyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3Byb2xv
Zy0xLjQuNC9zcmMvRW5naW5lRkQnICctSScgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9n
cHJvbG9nLTEuNC40L3NyYy9CaXBzRkQnICctSScgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNF
Uy9ncHJvbG9nLTEuNC40L3NyYy9MaW5lZGl0JyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NP
VVJDRVMvZ3Byb2xvZy0xLjQuNC9zcmMvVzMyR1VJQ29ucycgJy1vJyAnbWFjaGluZS5vJwo+ICAv
dXNyL2xpYmV4ZWMvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2NjMSAtRSAtcXVpZXQgLXYg
LUkgL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZVBs
IC1JIC9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9CaXBzUGwg
LUkgL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZUZE
IC1JIC9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9CaXBzRkQg
LUkgL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0xpbmVkaXQg
LUkgL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL1czMkdVSUNv
bnMgbWFjaGluZS5jIC1tYXJjaD1wZW50aXVtcHJvIC1tMzIgLWZuby1zdHJpY3QtYWxpYXNpbmcg
LWZmaXhlZC1lYnggLWZwY2gtcHJlcHJvY2VzcyAtbyBtYWNoaW5lLmkKPiBpZ25vcmluZyBub25l
eGlzdGVudCBkaXJlY3RvcnkgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9p
bmNsdWRlLWZpeGVkIgo+IGlnbm9yaW5nIG5vbmV4aXN0ZW50IGRpcmVjdG9yeSAiL3Vzci9saWIv
Z2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xLy4uLy4uLy4uLy4uL2k2ODYtcmVkaGF0LWxpbnV4
L2luY2x1ZGUiCj4gI2luY2x1ZGUgIi4uLiIgc2VhcmNoIHN0YXJ0cyBoZXJlOgo+ICNpbmNsdWRl
IDwuLi4+IHNlYXJjaCBzdGFydHMgaGVyZToKPiAgL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VT
L2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZVBsCj4gIC9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNF
Uy9ncHJvbG9nLTEuNC40L3NyYy9CaXBzUGwKPiAgL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VT
L2dwcm9sb2ctMS40LjQvc3JjL0VuZ2luZUZECj4gIC9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNF
Uy9ncHJvbG9nLTEuNC40L3NyYy9CaXBzRkQKPiAgL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VT
L2dwcm9sb2ctMS40LjQvc3JjL0xpbmVkaXQKPiAgL2hvbWUvdGlsbC9ycG1idWlsZC9TT1VSQ0VT
L2dwcm9sb2ctMS40LjQvc3JjL1czMkdVSUNvbnMKPiAgL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0
LWxpbnV4LzYuMS4xL2luY2x1ZGUKPiAgL3Vzci9sb2NhbC9pbmNsdWRlCj4gIC91c3IvaW5jbHVk
ZQo+IEVuZCBvZiBzZWFyY2ggbGlzdC4KPiBDT0xMRUNUX0dDQ19PUFRJT05TPSctdicgJy1zYXZl
LXRlbXBzJyAnLW1hcmNoPXBlbnRpdW1wcm8nICctbTMyJyAnLWZuby1zdHJpY3QtYWxpYXNpbmcn
ICctZmZpeGVkLWVieCcgJy1jJyAnLUknICcvaG9tZS90aWxsL3JwbWJ1aWxkL1NPVVJDRVMvZ3By
b2xvZy0xLjQuNC9zcmMvRW5naW5lUGwnICctSScgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNF
Uy9ncHJvbG9nLTEuNC40L3NyYy9CaXBzUGwnICctSScgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09V
UkNFUy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVGRCcgJy1JJyAnL2hvbWUvdGlsbC9ycG1idWls
ZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0JpcHNGRCcgJy1JJyAnL2hvbWUvdGlsbC9ycG1i
dWlsZC9TT1VSQ0VTL2dwcm9sb2ctMS40LjQvc3JjL0xpbmVkaXQnICctSScgJy9ob21lL3RpbGwv
cnBtYnVpbGQvU09VUkNFUy9ncHJvbG9nLTEuNC40L3NyYy9XMzJHVUlDb25zJyAnLW8nICdtYWNo
aW5lLm8nCj4gIC91c3IvbGliZXhlYy9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvY2MxIC1m
cHJlcHJvY2Vzc2VkIG1hY2hpbmUuaSAtcXVpZXQgLWR1bXBiYXNlIG1hY2hpbmUuYyAtbWFyY2g9
cGVudGl1bXBybyAtbTMyIC1hdXhiYXNlLXN0cmlwIG1hY2hpbmUubyAtdmVyc2lvbiAtZm5vLXN0
cmljdC1hbGlhc2luZyAtZmZpeGVkLWVieCAtbyBtYWNoaW5lLnMKPiBHTlUgQzExIChHQ0MpIHZl
cnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBIYXQgNi4xLjEtMykgKGk2ODYtcmVkaGF0LWxpbnV4
KQo+IAljb21waWxlZCBieSBHTlUgQyB2ZXJzaW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYu
MS4xLTMpLCBHTVAgdmVyc2lvbiA2LjEuMCwgTVBGUiB2ZXJzaW9uIDMuMS40LCBNUEMgdmVyc2lv
biAxLjAuMiwgaXNsIHZlcnNpb24gMC4xNCBvciAwLjEzCj4gd2FybmluZzogR01QIGhlYWRlciB2
ZXJzaW9uIDYuMS4wIGRpZmZlcnMgZnJvbSBsaWJyYXJ5IHZlcnNpb24gNi4xLjEuCj4gR0dDIGhl
dXJpc3RpY3M6IC0tcGFyYW0gZ2djLW1pbi1leHBhbmQ9MTAwIC0tcGFyYW0gZ2djLW1pbi1oZWFw
c2l6ZT0xMzEwNzIKPiBHTlUgQzExIChHQ0MpIHZlcnNpb24gNi4xLjEgMjAxNjA2MjEgKFJlZCBI
YXQgNi4xLjEtMykgKGk2ODYtcmVkaGF0LWxpbnV4KQo+IAljb21waWxlZCBieSBHTlUgQyB2ZXJz
aW9uIDYuMS4xIDIwMTYwNjIxIChSZWQgSGF0IDYuMS4xLTMpLCBHTVAgdmVyc2lvbiA2LjEuMCwg
TVBGUiB2ZXJzaW9uIDMuMS40LCBNUEMgdmVyc2lvbiAxLjAuMiwgaXNsIHZlcnNpb24gMC4xNCBv
ciAwLjEzCj4gd2FybmluZzogR01QIGhlYWRlciB2ZXJzaW9uIDYuMS4wIGRpZmZlcnMgZnJvbSBs
aWJyYXJ5IHZlcnNpb24gNi4xLjEuCj4gR0dDIGhldXJpc3RpY3M6IC0tcGFyYW0gZ2djLW1pbi1l
eHBhbmQ9MTAwIC0tcGFyYW0gZ2djLW1pbi1oZWFwc2l6ZT0xMzEwNzIKPiBDb21waWxlciBleGVj
dXRhYmxlIGNoZWNrc3VtOiBhYmNlYjEzOGFmNDNhNzhjMzZjMWFhYTIyOGY1ZjkyYQo+IG1hY2hp
bmUuYzogSW4gZnVuY3Rpb24g4oCYUGxfTV9SYW5kb21pemXigJk6Cj4gbWFjaGluZS5jOjM4Njox
OiBpbnRlcm5hbCBjb21waWxlciBlcnJvcjogU2VnbWVudGF0aW9uIGZhdWx0Cj4gIH0KPiAgXgo+
IFBsZWFzZSBzdWJtaXQgYSBmdWxsIGJ1ZyByZXBvcnQsCj4gd2l0aCBwcmVwcm9jZXNzZWQgc291
cmNlIGlmIGFwcHJvcHJpYXRlLgo+IFNlZSA8aHR0cDovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVn
emlsbGE+IGZvciBpbnN0cnVjdGlvbnMuCj4gUHJlcHJvY2Vzc2VkIHNvdXJjZSBzdG9yZWQgaW50
byAvdG1wL2NjY1hDQVdNLm91dCBmaWxlLCBwbGVhc2UgYXR0YWNoIHRoaXMgdG8geW91ciBidWdy
ZXBvcnQuCj4gY29tcGlsYXRpb24gZmFpbGVkCj4gTWFrZWZpbGU6MzA6IHJlY2lwZSBmb3IgdGFy
Z2V0ICdtYWNoaW5lLm8nIGZhaWxlZAo+IG1ha2VbMV06ICoqKiBbbWFjaGluZS5vXSBFcnJvciAx
Cj4gbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy9ob21lL3RpbGwvcnBtYnVpbGQvU09VUkNF
Uy9ncHJvbG9nLTEuNC40L3NyYy9FbmdpbmVQbCcKPiBNYWtlZmlsZTo0NTogcmVjaXBlIGZvciB0
YXJnZXQgJ2FsbCcgZmFpbGVkCj4gbWFrZTogKioqIFthbGxdIEVycm9yIDEKCj4gIyAxICJtYWNo
aW5lLmMiCj4gIyAxICI8YnVpbHQtaW4+Igo+ICMgMSAiPGNvbW1hbmQtbGluZT4iCj4gIyAzMSAi
PGNvbW1hbmQtbGluZT4iCj4gIyAxICIvdXNyL2luY2x1ZGUvc3RkYy1wcmVkZWYuaCIgMSAzIDQK
PiAjIDMyICI8Y29tbWFuZC1saW5lPiIgMgo+ICMgMSAibWFjaGluZS5jIgo+ICMgMzkgIm1hY2hp
bmUuYyIKPiAjIDEgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAxIDMgNAo+ICMgMjcgIi91c3IvaW5j
bHVkZS9zdGRpby5oIiAzIDQKPiAjIDEgIi91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAxIDMgNAo+
ICMgMzY4ICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUv
c3lzL2NkZWZzLmgiIDEgMyA0Cj4gIyA0MTAgIi91c3IvaW5jbHVkZS9zeXMvY2RlZnMuaCIgMyA0
Cj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93b3Jkc2l6ZS5oIiAxIDMgNAo+ICMgNDExICIvdXNy
L2luY2x1ZGUvc3lzL2NkZWZzLmgiIDIgMyA0Cj4gIyAzNjkgIi91c3IvaW5jbHVkZS9mZWF0dXJl
cy5oIiAyIDMgNAo+ICMgMzkyICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMyA0Cj4gIyAxICIv
dXNyL2luY2x1ZGUvZ251L3N0dWJzLmgiIDEgMyA0Cj4gCj4gCj4gCj4gCj4gCj4gCj4gIyAxICIv
dXNyL2luY2x1ZGUvZ251L3N0dWJzLTMyLmgiIDEgMyA0Cj4gIyA4ICIvdXNyL2luY2x1ZGUvZ251
L3N0dWJzLmgiIDIgMyA0Cj4gIyAzOTMgIi91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAyIDMgNAo+
ICMgMjggIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMgNAo+IAo+IAo+IAo+IAo+IAo+ICMgMSAi
L3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEg
MyA0Cj4gIyAyMTYgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRl
L3N0ZGRlZi5oIiAzIDQKPiAKPiAjIDIxNiAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4
LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDMgNAo+IHR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVf
dDsKPiAjIDM0ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQKPiAKPiAjIDEgIi91c3IvaW5j
bHVkZS9iaXRzL3R5cGVzLmgiIDEgMyA0Cj4gIyAyNyAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMu
aCIgMyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93b3Jkc2l6ZS5oIiAxIDMgNAo+ICMgMjgg
Ii91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDIgMyA0Cj4gCj4gCj4gdHlwZWRlZiB1bnNpZ25l
ZCBjaGFyIF9fdV9jaGFyOwo+IHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IF9fdV9zaG9ydDsK
PiB0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VfaW50Owo+IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBp
bnQgX191X2xvbmc7Cj4gCj4gCj4gdHlwZWRlZiBzaWduZWQgY2hhciBfX2ludDhfdDsKPiB0eXBl
ZGVmIHVuc2lnbmVkIGNoYXIgX191aW50OF90Owo+IHR5cGVkZWYgc2lnbmVkIHNob3J0IGludCBf
X2ludDE2X3Q7Cj4gdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBpbnQgX191aW50MTZfdDsKPiB0eXBl
ZGVmIHNpZ25lZCBpbnQgX19pbnQzMl90Owo+IHR5cGVkZWYgdW5zaWduZWQgaW50IF9fdWludDMy
X3Q7Cj4gCj4gCj4gCj4gCj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcg
aW50IF9faW50NjRfdDsKPiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25n
IGludCBfX3VpbnQ2NF90Owo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IF9fZXh0ZW5zaW9uX18gdHlw
ZWRlZiBsb25nIGxvbmcgaW50IF9fcXVhZF90Owo+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNp
Z25lZCBsb25nIGxvbmcgaW50IF9fdV9xdWFkX3Q7Cj4gIyAxMjEgIi91c3IvaW5jbHVkZS9iaXRz
L3R5cGVzLmgiIDMgNAo+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXNpemVzLmgiIDEgMyA0
Cj4gIyAxMjIgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDIgMyA0Cj4gCj4gCj4gX19leHRl
bnNpb25fXyB0eXBlZGVmIF9fdV9xdWFkX3QgX19kZXZfdDsKPiBfX2V4dGVuc2lvbl9fIHR5cGVk
ZWYgdW5zaWduZWQgaW50IF9fdWlkX3Q7Cj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVk
IGludCBfX2dpZF90Owo+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBf
X2lub190Owo+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBfX3VfcXVhZF90IF9faW5vNjRfdDsKPiBf
X2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgaW50IF9fbW9kZV90Owo+IF9fZXh0ZW5zaW9u
X18gdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19ubGlua190Owo+IF9fZXh0ZW5zaW9uX18gdHlwZWRl
ZiBsb25nIGludCBfX29mZl90Owo+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBfX3F1YWRfdCBfX29m
ZjY0X3Q7Cj4gX19leHRlbnNpb25fXyB0eXBlZGVmIGludCBfX3BpZF90Owo+IF9fZXh0ZW5zaW9u
X18gdHlwZWRlZiBzdHJ1Y3QgeyBpbnQgX192YWxbMl07IH0gX19mc2lkX3Q7Cj4gX19leHRlbnNp
b25fXyB0eXBlZGVmIGxvbmcgaW50IF9fY2xvY2tfdDsKPiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYg
dW5zaWduZWQgbG9uZyBpbnQgX19ybGltX3Q7Cj4gX19leHRlbnNpb25fXyB0eXBlZGVmIF9fdV9x
dWFkX3QgX19ybGltNjRfdDsKPiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgaW50IF9f
aWRfdDsKPiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgbG9uZyBpbnQgX190aW1lX3Q7Cj4gX19leHRl
bnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VzZWNvbmRzX3Q7Cj4gX19leHRlbnNpb25f
XyB0eXBlZGVmIGxvbmcgaW50IF9fc3VzZWNvbmRzX3Q7Cj4gCj4gX19leHRlbnNpb25fXyB0eXBl
ZGVmIGludCBfX2RhZGRyX3Q7Cj4gX19leHRlbnNpb25fXyB0eXBlZGVmIGludCBfX2tleV90Owo+
IAo+IAo+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBpbnQgX19jbG9ja2lkX3Q7Cj4gCj4gCj4gX19l
eHRlbnNpb25fXyB0eXBlZGVmIHZvaWQgKiBfX3RpbWVyX3Q7Cj4gCj4gCj4gX19leHRlbnNpb25f
XyB0eXBlZGVmIGxvbmcgaW50IF9fYmxrc2l6ZV90Owo+IAo+IAo+IAo+IAo+IF9fZXh0ZW5zaW9u
X18gdHlwZWRlZiBsb25nIGludCBfX2Jsa2NudF90Owo+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBf
X3F1YWRfdCBfX2Jsa2NudDY0X3Q7Cj4gCj4gCj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2ln
bmVkIGxvbmcgaW50IF9fZnNibGtjbnRfdDsKPiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgX191X3F1
YWRfdCBfX2ZzYmxrY250NjRfdDsKPiAKPiAKPiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWdu
ZWQgbG9uZyBpbnQgX19mc2ZpbGNudF90Owo+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBfX3VfcXVh
ZF90IF9fZnNmaWxjbnQ2NF90Owo+IAo+IAo+IF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBpbnQgX19m
c3dvcmRfdDsKPiAKPiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgaW50IF9fc3NpemVfdDsKPiAKPiAK
PiBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgbG9uZyBpbnQgX19zeXNjYWxsX3Nsb25nX3Q7Cj4gCj4g
X19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9fc3lzY2FsbF91bG9uZ190
Owo+IAo+IAo+IAo+IHR5cGVkZWYgX19vZmY2NF90IF9fbG9mZl90Owo+IHR5cGVkZWYgX19xdWFk
X3QgKl9fcWFkZHJfdDsKPiB0eXBlZGVmIGNoYXIgKl9fY2FkZHJfdDsKPiAKPiAKPiBfX2V4dGVu
c2lvbl9fIHR5cGVkZWYgaW50IF9faW50cHRyX3Q7Cj4gCj4gCj4gX19leHRlbnNpb25fXyB0eXBl
ZGVmIHVuc2lnbmVkIGludCBfX3NvY2tsZW5fdDsKPiAjIDM2ICIvdXNyL2luY2x1ZGUvc3RkaW8u
aCIgMiAzIDQKPiAjIDQ0ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gc3RydWN0IF9JT19G
SUxFOwo+IAo+IAo+IAo+IHR5cGVkZWYgc3RydWN0IF9JT19GSUxFIEZJTEU7Cj4gCj4gCj4gCj4g
Cj4gCj4gIyA2NCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+IHR5cGVkZWYgc3RydWN0IF9J
T19GSUxFIF9fRklMRTsKPiAjIDc0ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gIyAxICIv
dXNyL2luY2x1ZGUvbGliaW8uaCIgMSAzIDQKPiAjIDMxICIvdXNyL2luY2x1ZGUvbGliaW8uaCIg
MyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUvX0dfY29uZmlnLmgiIDEgMyA0Cj4gIyAxNSAiL3Vzci9p
bmNsdWRlL19HX2NvbmZpZy5oIiAzIDQKPiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1s
aW51eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMgNAo+ICMgMTYgIi91c3IvaW5jbHVkZS9f
R19jb25maWcuaCIgMiAzIDQKPiAKPiAKPiAKPiAKPiAjIDEgIi91c3IvaW5jbHVkZS93Y2hhci5o
IiAxIDMgNAo+ICMgODIgIi91c3IvaW5jbHVkZS93Y2hhci5oIiAzIDQKPiB0eXBlZGVmIHN0cnVj
dAo+IHsKPiAgIGludCBfX2NvdW50Owo+ICAgdW5pb24KPiAgIHsKPiAKPiAgICAgdW5zaWduZWQg
aW50IF9fd2NoOwo+IAo+IAo+IAo+ICAgICBjaGFyIF9fd2NoYls0XTsKPiAgIH0gX192YWx1ZTsK
PiB9IF9fbWJzdGF0ZV90Owo+ICMgMjEgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMiAzIDQK
PiB0eXBlZGVmIHN0cnVjdAo+IHsKPiAgIF9fb2ZmX3QgX19wb3M7Cj4gICBfX21ic3RhdGVfdCBf
X3N0YXRlOwo+IH0gX0dfZnBvc190Owo+IHR5cGVkZWYgc3RydWN0Cj4gewo+ICAgX19vZmY2NF90
IF9fcG9zOwo+ICAgX19tYnN0YXRlX3QgX19zdGF0ZTsKPiB9IF9HX2Zwb3M2NF90Owo+ICMgMzIg
Ii91c3IvaW5jbHVkZS9saWJpby5oIiAyIDMgNAo+ICMgNDkgIi91c3IvaW5jbHVkZS9saWJpby5o
IiAzIDQKPiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRl
L3N0ZGFyZy5oIiAxIDMgNAo+ICMgNDAgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82
LjEuMS9pbmNsdWRlL3N0ZGFyZy5oIiAzIDQKPiB0eXBlZGVmIF9fYnVpbHRpbl92YV9saXN0IF9f
Z251Y192YV9saXN0Owo+ICMgNTAgIi91c3IvaW5jbHVkZS9saWJpby5oIiAyIDMgNAo+ICMgMTQ0
ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gc3RydWN0IF9JT19qdW1wX3Q7IHN0cnVjdCBf
SU9fRklMRTsKPiAKPiAKPiAKPiAKPiAKPiB0eXBlZGVmIHZvaWQgX0lPX2xvY2tfdDsKPiAKPiAK
PiAKPiAKPiAKPiBzdHJ1Y3QgX0lPX21hcmtlciB7Cj4gICBzdHJ1Y3QgX0lPX21hcmtlciAqX25l
eHQ7Cj4gICBzdHJ1Y3QgX0lPX0ZJTEUgKl9zYnVmOwo+IAo+IAo+IAo+ICAgaW50IF9wb3M7Cj4g
IyAxNzMgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzIDQKPiB9Owo+IAo+IAo+IGVudW0gX19jb2Rl
Y3Z0X3Jlc3VsdAo+IHsKPiAgIF9fY29kZWN2dF9vaywKPiAgIF9fY29kZWN2dF9wYXJ0aWFsLAo+
ICAgX19jb2RlY3Z0X2Vycm9yLAo+ICAgX19jb2RlY3Z0X25vY29udgo+IH07Cj4gIyAyNDEgIi91
c3IvaW5jbHVkZS9saWJpby5oIiAzIDQKPiBzdHJ1Y3QgX0lPX0ZJTEUgewo+ICAgaW50IF9mbGFn
czsKPiAKPiAKPiAKPiAKPiAgIGNoYXIqIF9JT19yZWFkX3B0cjsKPiAgIGNoYXIqIF9JT19yZWFk
X2VuZDsKPiAgIGNoYXIqIF9JT19yZWFkX2Jhc2U7Cj4gICBjaGFyKiBfSU9fd3JpdGVfYmFzZTsK
PiAgIGNoYXIqIF9JT193cml0ZV9wdHI7Cj4gICBjaGFyKiBfSU9fd3JpdGVfZW5kOwo+ICAgY2hh
ciogX0lPX2J1Zl9iYXNlOwo+ICAgY2hhciogX0lPX2J1Zl9lbmQ7Cj4gCj4gICBjaGFyICpfSU9f
c2F2ZV9iYXNlOwo+ICAgY2hhciAqX0lPX2JhY2t1cF9iYXNlOwo+ICAgY2hhciAqX0lPX3NhdmVf
ZW5kOwo+IAo+ICAgc3RydWN0IF9JT19tYXJrZXIgKl9tYXJrZXJzOwo+IAo+ICAgc3RydWN0IF9J
T19GSUxFICpfY2hhaW47Cj4gCj4gICBpbnQgX2ZpbGVubzsKPiAKPiAKPiAKPiAgIGludCBfZmxh
Z3MyOwo+IAo+ICAgX19vZmZfdCBfb2xkX29mZnNldDsKPiAKPiAKPiAKPiAgIHVuc2lnbmVkIHNo
b3J0IF9jdXJfY29sdW1uOwo+ICAgc2lnbmVkIGNoYXIgX3Z0YWJsZV9vZmZzZXQ7Cj4gICBjaGFy
IF9zaG9ydGJ1ZlsxXTsKPiAKPiAKPiAKPiAgIF9JT19sb2NrX3QgKl9sb2NrOwo+ICMgMjg5ICIv
dXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gICBfX29mZjY0X3QgX29mZnNldDsKPiAKPiAKPiAK
PiAKPiAKPiAKPiAKPiAgIHZvaWQgKl9fcGFkMTsKPiAgIHZvaWQgKl9fcGFkMjsKPiAgIHZvaWQg
Kl9fcGFkMzsKPiAgIHZvaWQgKl9fcGFkNDsKPiAKPiAgIHNpemVfdCBfX3BhZDU7Cj4gICBpbnQg
X21vZGU7Cj4gCj4gICBjaGFyIF91bnVzZWQyWzE1ICogc2l6ZW9mIChpbnQpIC0gNCAqIHNpemVv
ZiAodm9pZCAqKSAtIHNpemVvZiAoc2l6ZV90KV07Cj4gCj4gfTsKPiAKPiAKPiB0eXBlZGVmIHN0
cnVjdCBfSU9fRklMRSBfSU9fRklMRTsKPiAKPiAKPiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1czsKPiAK
PiBleHRlcm4gc3RydWN0IF9JT19GSUxFX3BsdXMgX0lPXzJfMV9zdGRpbl87Cj4gZXh0ZXJuIHN0
cnVjdCBfSU9fRklMRV9wbHVzIF9JT18yXzFfc3Rkb3V0XzsKPiBleHRlcm4gc3RydWN0IF9JT19G
SUxFX3BsdXMgX0lPXzJfMV9zdGRlcnJfOwo+ICMgMzMzICIvdXNyL2luY2x1ZGUvbGliaW8uaCIg
MyA0Cj4gdHlwZWRlZiBfX3NzaXplX3QgX19pb19yZWFkX2ZuICh2b2lkICpfX2Nvb2tpZSwgY2hh
ciAqX19idWYsIHNpemVfdCBfX25ieXRlcyk7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gdHlwZWRl
ZiBfX3NzaXplX3QgX19pb193cml0ZV9mbiAodm9pZCAqX19jb29raWUsIGNvbnN0IGNoYXIgKl9f
YnVmLAo+ICAgICAgc2l6ZV90IF9fbik7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gdHlwZWRlZiBp
bnQgX19pb19zZWVrX2ZuICh2b2lkICpfX2Nvb2tpZSwgX19vZmY2NF90ICpfX3BvcywgaW50IF9f
dyk7Cj4gCj4gCj4gdHlwZWRlZiBpbnQgX19pb19jbG9zZV9mbiAodm9pZCAqX19jb29raWUpOwo+
ICMgMzg1ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gZXh0ZXJuIGludCBfX3VuZGVyZmxv
dyAoX0lPX0ZJTEUgKik7Cj4gZXh0ZXJuIGludCBfX3VmbG93IChfSU9fRklMRSAqKTsKPiBleHRl
cm4gaW50IF9fb3ZlcmZsb3cgKF9JT19GSUxFICosIGludCk7Cj4gIyA0MjkgIi91c3IvaW5jbHVk
ZS9saWJpby5oIiAzIDQKPiBleHRlcm4gaW50IF9JT19nZXRjIChfSU9fRklMRSAqX19mcCk7Cj4g
ZXh0ZXJuIGludCBfSU9fcHV0YyAoaW50IF9fYywgX0lPX0ZJTEUgKl9fZnApOwo+IGV4dGVybiBp
bnQgX0lPX2Zlb2YgKF9JT19GSUxFICpfX2ZwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpOwo+IGV4dGVybiBpbnQgX0lPX2ZlcnJvciAoX0lPX0ZJTEUgKl9fZnApIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gZXh0ZXJuIGludCBf
SU9fcGVla2NfbG9ja2VkIChfSU9fRklMRSAqX19mcCk7Cj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJu
IHZvaWQgX0lPX2Zsb2NrZmlsZSAoX0lPX0ZJTEUgKikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPiBleHRlcm4gdm9pZCBfSU9fZnVubG9ja2ZpbGUgKF9JT19GSUxF
ICopIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gZXh0ZXJuIGlu
dCBfSU9fZnRyeWxvY2tmaWxlIChfSU9fRklMRSAqKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpOwo+ICMgNDU5ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0Cj4gZXh0
ZXJuIGludCBfSU9fdmZzY2FuZiAoX0lPX0ZJTEUgKiBfX3Jlc3RyaWN0LCBjb25zdCBjaGFyICog
X19yZXN0cmljdCwKPiAgICBfX2dudWNfdmFfbGlzdCwgaW50ICpfX3Jlc3RyaWN0KTsKPiBleHRl
cm4gaW50IF9JT192ZnByaW50ZiAoX0lPX0ZJTEUgKl9fcmVzdHJpY3QsIGNvbnN0IGNoYXIgKl9f
cmVzdHJpY3QsCj4gICAgIF9fZ251Y192YV9saXN0KTsKPiBleHRlcm4gX19zc2l6ZV90IF9JT19w
YWRuIChfSU9fRklMRSAqLCBpbnQsIF9fc3NpemVfdCk7Cj4gZXh0ZXJuIHNpemVfdCBfSU9fc2dl
dG4gKF9JT19GSUxFICosIHZvaWQgKiwgc2l6ZV90KTsKPiAKPiBleHRlcm4gX19vZmY2NF90IF9J
T19zZWVrb2ZmIChfSU9fRklMRSAqLCBfX29mZjY0X3QsIGludCwgaW50KTsKPiBleHRlcm4gX19v
ZmY2NF90IF9JT19zZWVrcG9zIChfSU9fRklMRSAqLCBfX29mZjY0X3QsIGludCk7Cj4gCj4gZXh0
ZXJuIHZvaWQgX0lPX2ZyZWVfYmFja3VwX2FyZWEgKF9JT19GSUxFICopIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gIyA3NSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgi
IDIgMyA0Cj4gCj4gCj4gCj4gCj4gdHlwZWRlZiBfX2dudWNfdmFfbGlzdCB2YV9saXN0Owo+ICMg
OTAgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiB0eXBlZGVmIF9fb2ZmX3Qgb2ZmX3Q7Cj4g
IyAxMDIgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiB0eXBlZGVmIF9fc3NpemVfdCBzc2l6
ZV90Owo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IHR5cGVkZWYgX0dfZnBvc190IGZwb3NfdDsKPiAK
PiAKPiAKPiAKPiAjIDE2NCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+ICMgMSAiL3Vzci9p
bmNsdWRlL2JpdHMvc3RkaW9fbGltLmgiIDEgMyA0Cj4gIyAxNjUgIi91c3IvaW5jbHVkZS9zdGRp
by5oIiAyIDMgNAo+IAo+IAo+IAo+IGV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEUgKnN0ZGluOwo+IGV4
dGVybiBzdHJ1Y3QgX0lPX0ZJTEUgKnN0ZG91dDsKPiBleHRlcm4gc3RydWN0IF9JT19GSUxFICpz
dGRlcnI7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCByZW1vdmUgKGNvbnN0IGNo
YXIgKl9fZmlsZW5hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7
Cj4gCj4gZXh0ZXJuIGludCByZW5hbWUgKGNvbnN0IGNoYXIgKl9fb2xkLCBjb25zdCBjaGFyICpf
X25ldykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAK
PiAKPiBleHRlcm4gaW50IHJlbmFtZWF0IChpbnQgX19vbGRmZCwgY29uc3QgY2hhciAqX19vbGQs
IGludCBfX25ld2ZkLAo+ICAgICAgICBjb25zdCBjaGFyICpfX25ldykgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRl
cm4gRklMRSAqdG1wZmlsZSAodm9pZCkgOwo+ICMgMjA5ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIg
MyA0Cj4gZXh0ZXJuIGNoYXIgKnRtcG5hbSAoY2hhciAqX19zKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpIDsKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gY2hhciAqdG1w
bmFtX3IgKGNoYXIgKl9fcykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KSA7Cj4gIyAyMjcgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiBleHRlcm4gY2hhciAqdGVt
cG5hbSAoY29uc3QgY2hhciAqX19kaXIsIGNvbnN0IGNoYXIgKl9fcGZ4KQo+ICAgICAgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxs
b2NfXykpIDsKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IGZjbG9zZSAoRklM
RSAqX19zdHJlYW0pOwo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZmZsdXNoIChGSUxFICpfX3N0
cmVhbSk7Cj4gCj4gIyAyNTIgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiBleHRlcm4gaW50
IGZmbHVzaF91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pOwo+ICMgMjY2ICIvdXNyL2luY2x1ZGUv
c3RkaW8uaCIgMyA0Cj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIEZJTEUgKmZvcGVuIChjb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fZmlsZW5hbWUsCj4gICAgICAgY29uc3QgY2hhciAqX19yZXN0
cmljdCBfX21vZGVzKSA7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIEZJTEUgKmZyZW9wZW4gKGNvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19maWxlbmFtZSwKPiAgICAgICAgIGNvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19tb2RlcywKPiAgICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKPiAj
IDI5NSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+IAo+ICMgMzA2ICIvdXNyL2luY2x1ZGUv
c3RkaW8uaCIgMyA0Cj4gZXh0ZXJuIEZJTEUgKmZkb3BlbiAoaW50IF9fZmQsIGNvbnN0IGNoYXIg
Kl9fbW9kZXMpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ICMg
MzE5ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gZXh0ZXJuIEZJTEUgKmZtZW1vcGVuICh2
b2lkICpfX3MsIHNpemVfdCBfX2xlbiwgY29uc3QgY2hhciAqX19tb2RlcykKPiAgIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+IAo+IAo+IAo+IAo+IGV4dGVybiBG
SUxFICpvcGVuX21lbXN0cmVhbSAoY2hhciAqKl9fYnVmbG9jLCBzaXplX3QgKl9fc2l6ZWxvYykg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gCj4gCj4gCj4gCj4g
Cj4gCj4gZXh0ZXJuIHZvaWQgc2V0YnVmIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBjaGFy
ICpfX3Jlc3RyaWN0IF9fYnVmKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpOwo+IAo+IAo+IAo+IGV4dGVybiBpbnQgc2V0dmJ1ZiAoRklMRSAqX19yZXN0cmljdCBfX3N0
cmVhbSwgY2hhciAqX19yZXN0cmljdCBfX2J1ZiwKPiAgICAgICBpbnQgX19tb2Rlcywgc2l6ZV90
IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAK
PiAKPiAKPiBleHRlcm4gdm9pZCBzZXRidWZmZXIgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0s
IGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCj4gICAgICAgICAgc2l6ZV90IF9fc2l6ZSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiBleHRlcm4gdm9pZCBz
ZXRsaW5lYnVmIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IGZwcmludGYg
KEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sCj4gICAgICAgY29uc3QgY2hhciAqX19yZXN0cmlj
dCBfX2Zvcm1hdCwgLi4uKTsKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHByaW50ZiAoY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKTsKPiAKPiBleHRlcm4gaW50IHNwcmludGYg
KGNoYXIgKl9fcmVzdHJpY3QgX19zLAo+ICAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19m
b3JtYXQsIC4uLikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fKSk7Cj4gCj4gCj4gCj4gCj4g
Cj4gZXh0ZXJuIGludCB2ZnByaW50ZiAoRklMRSAqX19yZXN0cmljdCBfX3MsIGNvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19mb3JtYXQsCj4gICAgICAgIF9fZ251Y192YV9saXN0IF9fYXJnKTsKPiAK
PiAKPiAKPiAKPiBleHRlcm4gaW50IHZwcmludGYgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19m
b3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXJnKTsKPiAKPiBleHRlcm4gaW50IHZzcHJpbnRmIChj
aGFyICpfX3Jlc3RyaWN0IF9fcywgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKPiAg
ICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykp
Owo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgc25wcmludGYgKGNoYXIgKl9fcmVzdHJpY3Qg
X19zLCBzaXplX3QgX19tYXhsZW4sCj4gICAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19m
b3JtYXQsIC4uLikKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpIF9fYXR0cmli
dXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAzLCA0KSkpOwo+IAo+IGV4dGVybiBpbnQg
dnNucHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4bGVuLAo+ICAgICAg
ICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcp
Cj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18pKSBfX2F0dHJpYnV0ZV9fICgoX19m
b3JtYXRfXyAoX19wcmludGZfXywgMywgMCkpKTsKPiAKPiAjIDQxMiAiL3Vzci9pbmNsdWRlL3N0
ZGlvLmgiIDMgNAo+IGV4dGVybiBpbnQgdmRwcmludGYgKGludCBfX2ZkLCBjb25zdCBjaGFyICpf
X3Jlc3RyaWN0IF9fZm10LAo+ICAgICAgICBfX2dudWNfdmFfbGlzdCBfX2FyZykKPiAgICAgIF9f
YXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAyLCAwKSkpOwo+IGV4dGVybiBp
bnQgZHByaW50ZiAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mbXQsIC4uLikK
PiAgICAgIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAyLCAzKSkpOwo+
IAo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZnNjYW5mIChGSUxFICpfX3Jlc3Ry
aWN0IF9fc3RyZWFtLAo+ICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4u
KSA7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBzY2FuZiAoY29uc3QgY2hhciAqX19yZXN0cmlj
dCBfX2Zvcm1hdCwgLi4uKSA7Cj4gCj4gZXh0ZXJuIGludCBzc2NhbmYgKGNvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19zLAo+ICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4u
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ICMgNDQzICIvdXNy
L2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gZXh0ZXJuIGludCBmc2NhbmYgKEZJTEUgKl9fcmVzdHJp
Y3QgX19zdHJlYW0sIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgX19hc21f
XyAoIiIgIl9faXNvYzk5X2ZzY2FuZiIpCj4gCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDsKPiBleHRlcm4gaW50IHNjYW5mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0
LCAuLi4pIF9fYXNtX18gKCIiICJfX2lzb2M5OV9zY2FuZiIpCj4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOwo+IGV4dGVybiBpbnQgc3NjYW5mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fcywgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSBfX2FzbV9fICgiIiAi
X19pc29jOTlfc3NjYW5mIikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KQo+IAo+ICAgICAgICAgICAgICAgICAgICAgICA7Cj4gIyA0NjMgIi91c3IvaW5jbHVkZS9zdGRp
by5oIiAzIDQKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHZmc2NhbmYgKEZJ
TEUgKl9fcmVzdHJpY3QgX19zLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAo+ICAg
ICAgIF9fZ251Y192YV9saXN0IF9fYXJnKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0
X18gKF9fc2NhbmZfXywgMiwgMCkpKSA7Cj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCB2c2Nh
bmYgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXJn
KQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fc2NhbmZfXywgMSwgMCkpKSA7
Cj4gCj4gCj4gZXh0ZXJuIGludCB2c3NjYW5mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywK
PiAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCBf
X2FyZykKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fc2NhbmZfXywgMiwgMCkpKTsKPiAjIDQ5NCAiL3Vz
ci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+IGV4dGVybiBpbnQgdmZzY2FuZiAoRklMRSAqX19yZXN0
cmljdCBfX3MsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0
IF9fYXJnKSBfX2FzbV9fICgiIiAiX19pc29jOTlfdmZzY2FuZiIpCj4gCj4gCj4gCj4gICAgICBf
X2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19zY2FuZl9fLCAyLCAwKSkpIDsKPiBleHRlcm4g
aW50IHZzY2FuZiAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xp
c3QgX19hcmcpIF9fYXNtX18gKCIiICJfX2lzb2M5OV92c2NhbmYiKQo+IAo+ICAgICAgX19hdHRy
aWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fc2NhbmZfXywgMSwgMCkpKSA7Cj4gZXh0ZXJuIGludCB2
c3NjYW5mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywgY29uc3QgY2hhciAqX19yZXN0cmlj
dCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpIF9fYXNtX18gKCIiICJfX2lzb2M5OV92
c3NjYW5mIikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKQo+IAo+IAo+
IAo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fc2NhbmZfXywgMiwgMCkpKTsK
PiAjIDUyMiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+
IAo+IAo+IGV4dGVybiBpbnQgZmdldGMgKEZJTEUgKl9fc3RyZWFtKTsKPiBleHRlcm4gaW50IGdl
dGMgKEZJTEUgKl9fc3RyZWFtKTsKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IGdldGNoYXIg
KHZvaWQpOwo+IAo+ICMgNTUwICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gZXh0ZXJuIGlu
dCBnZXRjX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSk7Cj4gZXh0ZXJuIGludCBnZXRjaGFyX3Vu
bG9ja2VkICh2b2lkKTsKPiAjIDU2MSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+IGV4dGVy
biBpbnQgZmdldGNfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKTsKPiAKPiAKPiAKPiAKPiAKPiAK
PiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IGZwdXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVh
bSk7Cj4gZXh0ZXJuIGludCBwdXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSk7Cj4gCj4gCj4g
Cj4gCj4gCj4gZXh0ZXJuIGludCBwdXRjaGFyIChpbnQgX19jKTsKPiAKPiAjIDU5NCAiL3Vzci9p
bmNsdWRlL3N0ZGlvLmgiIDMgNAo+IGV4dGVybiBpbnQgZnB1dGNfdW5sb2NrZWQgKGludCBfX2Ms
IEZJTEUgKl9fc3RyZWFtKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHB1dGNf
dW5sb2NrZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKTsKPiBleHRlcm4gaW50IHB1dGNoYXJf
dW5sb2NrZWQgKGludCBfX2MpOwo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZ2V0dyAo
RklMRSAqX19zdHJlYW0pOwo+IAo+IAo+IGV4dGVybiBpbnQgcHV0dyAoaW50IF9fdywgRklMRSAq
X19zdHJlYW0pOwo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBjaGFyICpmZ2V0cyAo
Y2hhciAqX19yZXN0cmljdCBfX3MsIGludCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0p
Cj4gICAgICA7Cj4gIyA2NDAgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiAKPiAjIDY2NSAi
L3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+IGV4dGVybiBfX3NzaXplX3QgX19nZXRkZWxpbSAo
Y2hhciAqKl9fcmVzdHJpY3QgX19saW5lcHRyLAo+ICAgICAgICAgICBzaXplX3QgKl9fcmVzdHJp
Y3QgX19uLCBpbnQgX19kZWxpbWl0ZXIsCj4gICAgICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19z
dHJlYW0pIDsKPiBleHRlcm4gX19zc2l6ZV90IGdldGRlbGltIChjaGFyICoqX19yZXN0cmljdCBf
X2xpbmVwdHIsCj4gICAgICAgICBzaXplX3QgKl9fcmVzdHJpY3QgX19uLCBpbnQgX19kZWxpbWl0
ZXIsCj4gICAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7Cj4gCj4gCj4gCj4gCj4g
Cj4gCj4gCj4gZXh0ZXJuIF9fc3NpemVfdCBnZXRsaW5lIChjaGFyICoqX19yZXN0cmljdCBfX2xp
bmVwdHIsCj4gICAgICAgIHNpemVfdCAqX19yZXN0cmljdCBfX24sCj4gICAgICAgIEZJTEUgKl9f
cmVzdHJpY3QgX19zdHJlYW0pIDsKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50
IGZwdXRzIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywgRklMRSAqX19yZXN0cmljdCBfX3N0
cmVhbSk7Cj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBwdXRzIChjb25zdCBjaGFyICpfX3Mp
Owo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgdW5nZXRjIChpbnQgX19jLCBGSUxFICpf
X3N0cmVhbSk7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIHNpemVfdCBmcmVhZCAodm9pZCAq
X19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwKPiAgICAgICAgc2l6ZV90IF9fbiwgRklM
RSAqX19yZXN0cmljdCBfX3N0cmVhbSkgOwo+IAo+IAo+IAo+IAo+IGV4dGVybiBzaXplX3QgZndy
aXRlIChjb25zdCB2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAo+ICAgICAg
ICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3MpOwo+IAo+ICMgNzM3ICIvdXNyL2lu
Y2x1ZGUvc3RkaW8uaCIgMyA0Cj4gZXh0ZXJuIHNpemVfdCBmcmVhZF91bmxvY2tlZCAodm9pZCAq
X19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwKPiAgICAgICAgICBzaXplX3QgX19uLCBG
SUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7Cj4gZXh0ZXJuIHNpemVfdCBmd3JpdGVfdW5sb2Nr
ZWQgKGNvbnN0IHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCj4gICAgICAg
ICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pOwo+IAo+IAo+IAo+IAo+
IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZnNlZWsgKEZJTEUgKl9fc3RyZWFtLCBsb25nIGludCBf
X29mZiwgaW50IF9fd2hlbmNlKTsKPiAKPiAKPiAKPiAKPiBleHRlcm4gbG9uZyBpbnQgZnRlbGwg
KEZJTEUgKl9fc3RyZWFtKSA7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIHZvaWQgcmV3aW5kIChGSUxF
ICpfX3N0cmVhbSk7Cj4gCj4gIyA3NzMgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiBleHRl
cm4gaW50IGZzZWVrbyAoRklMRSAqX19zdHJlYW0sIF9fb2ZmX3QgX19vZmYsIGludCBfX3doZW5j
ZSk7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIF9fb2ZmX3QgZnRlbGxvIChGSUxFICpfX3N0cmVhbSkg
Owo+ICMgNzkyICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMyA0Cj4gCj4gCj4gCj4gCj4gCj4gCj4g
ZXh0ZXJuIGludCBmZ2V0cG9zIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBmcG9zX3QgKl9f
cmVzdHJpY3QgX19wb3MpOwo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZnNldHBvcyAoRklMRSAq
X19zdHJlYW0sIGNvbnN0IGZwb3NfdCAqX19wb3MpOwo+ICMgODE1ICIvdXNyL2luY2x1ZGUvc3Rk
aW8uaCIgMyA0Cj4gCj4gIyA4MjQgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzIDQKPiAKPiAKPiBl
eHRlcm4gdm9pZCBjbGVhcmVyciAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gZXh0ZXJuIGludCBmZW9mIChGSUxFICpfX3N0cmVh
bSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gCj4gZXh0ZXJu
IGludCBmZXJyb3IgKEZJTEUgKl9fc3RyZWFtKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpIDsKPiAKPiAKPiAKPiAKPiBleHRlcm4gdm9pZCBjbGVhcmVycl91bmxvY2tl
ZCAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSk7Cj4gZXh0ZXJuIGludCBmZW9mX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gZXh0ZXJuIGludCBmZXJyb3JfdW5s
b2NrZWQgKEZJTEUgKl9fc3RyZWFtKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpIDsKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gdm9pZCBwZXJyb3IgKGNv
bnN0IGNoYXIgKl9fcyk7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gIyAxICIvdXNyL2luY2x1ZGUvYml0
cy9zeXNfZXJybGlzdC5oIiAxIDMgNAo+ICMgMjYgIi91c3IvaW5jbHVkZS9iaXRzL3N5c19lcnJs
aXN0LmgiIDMgNAo+IGV4dGVybiBpbnQgc3lzX25lcnI7Cj4gZXh0ZXJuIGNvbnN0IGNoYXIgKmNv
bnN0IHN5c19lcnJsaXN0W107Cj4gIyA4NTQgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMgNAo+
IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZmlsZW5vIChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGlu
dCBmaWxlbm9fdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpIDsKPiAjIDg3MiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+
IGV4dGVybiBGSUxFICpwb3BlbiAoY29uc3QgY2hhciAqX19jb21tYW5kLCBjb25zdCBjaGFyICpf
X21vZGVzKSA7Cj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBwY2xvc2UgKEZJTEUgKl9fc3Ry
ZWFtKTsKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gY2hhciAqY3Rlcm1pZCAoY2hhciAqX19zKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ICMgOTEyICIvdXNyL2lu
Y2x1ZGUvc3RkaW8uaCIgMyA0Cj4gZXh0ZXJuIHZvaWQgZmxvY2tmaWxlIChGSUxFICpfX3N0cmVh
bSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiBl
eHRlcm4gaW50IGZ0cnlsb2NrZmlsZSAoRklMRSAqX19zdHJlYW0pIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+IAo+IAo+IGV4dGVybiB2b2lkIGZ1bmxvY2tmaWxl
IChGSUxFICpfX3N0cmVhbSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KTsKPiAjIDk0MiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMgNAo+IAo+ICMgNDAgIm1hY2hpbmUu
YyIgMgo+ICMgMSAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAxIDMgNAo+ICMgMzIgIi91c3IvaW5j
bHVkZS9zdGRsaWIuaCIgMyA0Cj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgv
Ni4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKPiAjIDMyOCAiL3Vzci9saWIvZ2NjL2k2ODYt
cmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDMgNAo+IHR5cGVkZWYgbG9uZyBp
bnQgd2NoYXJfdDsKPiAjIDMzICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDIgMyA0Cj4gCj4gCj4g
Cj4gCj4gCj4gCj4gCj4gCj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93YWl0ZmxhZ3MuaCIgMSAz
IDQKPiAjIDQyICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDIgMyA0Cj4gIyAxICIvdXNyL2luY2x1
ZGUvYml0cy93YWl0c3RhdHVzLmgiIDEgMyA0Cj4gIyA2NCAiL3Vzci9pbmNsdWRlL2JpdHMvd2Fp
dHN0YXR1cy5oIiAzIDQKPiAjIDEgIi91c3IvaW5jbHVkZS9lbmRpYW4uaCIgMSAzIDQKPiAjIDM2
ICIvdXNyL2luY2x1ZGUvZW5kaWFuLmgiIDMgNAo+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvZW5k
aWFuLmgiIDEgMyA0Cj4gIyAzNyAiL3Vzci9pbmNsdWRlL2VuZGlhbi5oIiAyIDMgNAo+ICMgNjAg
Ii91c3IvaW5jbHVkZS9lbmRpYW4uaCIgMyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9ieXRl
c3dhcC5oIiAxIDMgNAo+ICMgMjggIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2FwLmgiIDMgNAo+
ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvd29yZHNpemUuaCIgMSAzIDQKPiAjIDI5ICIvdXNyL2lu
Y2x1ZGUvYml0cy9ieXRlc3dhcC5oIiAyIDMgNAo+IAo+IAo+IAo+IAo+IAo+IAo+ICMgMSAiL3Vz
ci9pbmNsdWRlL2JpdHMvYnl0ZXN3YXAtMTYuaCIgMSAzIDQKPiAjIDM2ICIvdXNyL2luY2x1ZGUv
Yml0cy9ieXRlc3dhcC5oIiAyIDMgNAo+ICMgNDQgIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2Fw
LmgiIDMgNAo+IHN0YXRpYyBfX2lubGluZSB1bnNpZ25lZCBpbnQKPiBfX2Jzd2FwXzMyICh1bnNp
Z25lZCBpbnQgX19ic3gpCj4gewo+ICAgcmV0dXJuIF9fYnVpbHRpbl9ic3dhcDMyIChfX2JzeCk7
Cj4gfQo+ICMgMTA4ICIvdXNyL2luY2x1ZGUvYml0cy9ieXRlc3dhcC5oIiAzIDQKPiBzdGF0aWMg
X19pbmxpbmUgX191aW50NjRfdAo+IF9fYnN3YXBfNjQgKF9fdWludDY0X3QgX19ic3gpCj4gewo+
ICAgcmV0dXJuIF9fYnVpbHRpbl9ic3dhcDY0IChfX2JzeCk7Cj4gfQo+ICMgNjEgIi91c3IvaW5j
bHVkZS9lbmRpYW4uaCIgMiAzIDQKPiAjIDY1ICIvdXNyL2luY2x1ZGUvYml0cy93YWl0c3RhdHVz
LmgiIDIgMyA0Cj4gCj4gdW5pb24gd2FpdAo+ICAgewo+ICAgICBpbnQgd19zdGF0dXM7Cj4gICAg
IHN0cnVjdAo+ICAgICAgIHsKPiAKPiAgdW5zaWduZWQgaW50IF9fd190ZXJtc2lnOjc7Cj4gIHVu
c2lnbmVkIGludCBfX3dfY29yZWR1bXA6MTsKPiAgdW5zaWduZWQgaW50IF9fd19yZXRjb2RlOjg7
Cj4gIHVuc2lnbmVkIGludDoxNjsKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiAgICAgICB9IF9fd2Fp
dF90ZXJtaW5hdGVkOwo+ICAgICBzdHJ1Y3QKPiAgICAgICB7Cj4gCj4gIHVuc2lnbmVkIGludCBf
X3dfc3RvcHZhbDo4Owo+ICB1bnNpZ25lZCBpbnQgX193X3N0b3BzaWc6ODsKPiAgdW5zaWduZWQg
aW50OjE2Owo+IAo+IAo+IAo+IAo+IAo+IAo+ICAgICAgIH0gX193YWl0X3N0b3BwZWQ7Cj4gICB9
Owo+ICMgNDMgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMiAzIDQKPiAjIDY3ICIvdXNyL2luY2x1
ZGUvc3RkbGliLmgiIDMgNAo+IHR5cGVkZWYgdW5pb24KPiAgIHsKPiAgICAgdW5pb24gd2FpdCAq
X191cHRyOwo+ICAgICBpbnQgKl9faXB0cjsKPiAgIH0gX19XQUlUX1NUQVRVUyBfX2F0dHJpYnV0
ZV9fICgoX190cmFuc3BhcmVudF91bmlvbl9fKSk7Cj4gIyA5NSAiL3Vzci9pbmNsdWRlL3N0ZGxp
Yi5oIiAzIDQKPiAKPiAKPiB0eXBlZGVmIHN0cnVjdAo+ICAgewo+ICAgICBpbnQgcXVvdDsKPiAg
ICAgaW50IHJlbTsKPiAgIH0gZGl2X3Q7Cj4gCj4gCj4gCj4gdHlwZWRlZiBzdHJ1Y3QKPiAgIHsK
PiAgICAgbG9uZyBpbnQgcXVvdDsKPiAgICAgbG9uZyBpbnQgcmVtOwo+ICAgfSBsZGl2X3Q7Cj4g
Cj4gCj4gCj4gCj4gCj4gCj4gCj4gX19leHRlbnNpb25fXyB0eXBlZGVmIHN0cnVjdAo+ICAgewo+
ICAgICBsb25nIGxvbmcgaW50IHF1b3Q7Cj4gICAgIGxvbmcgbG9uZyBpbnQgcmVtOwo+ICAgfSBs
bGRpdl90Owo+IAo+IAo+ICMgMTM5ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+IGV4dGVy
biBzaXplX3QgX19jdHlwZV9nZXRfbWJfY3VyX21heCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGRvdWJsZSBhdG9m
IChjb25zdCBjaGFyICpfX25wdHIpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChf
X25vbm51bGxfXyAoMSkpKSA7Cj4gCj4gZXh0ZXJuIGludCBhdG9pIChjb25zdCBjaGFyICpfX25w
dHIpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0
cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7
Cj4gCj4gZXh0ZXJuIGxvbmcgaW50IGF0b2wgKGNvbnN0IGNoYXIgKl9fbnB0cikKPiAgICAgIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
cHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPiAKPiAKPiAKPiAK
PiAKPiBfX2V4dGVuc2lvbl9fIGV4dGVybiBsb25nIGxvbmcgaW50IGF0b2xsIChjb25zdCBjaGFy
ICpfX25wdHIpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSkpKSA7Cj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGRvdWJsZSBzdHJ0b2QgKGNvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19ucHRyLAo+ICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIp
Cj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmli
dXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gZmxvYXQg
c3RydG9mIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKPiAgICAgICAgY2hhciAqKl9f
cmVzdHJpY3QgX19lbmRwdHIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+IAo+IGV4dGVybiBsb25nIGRv
dWJsZSBzdHJ0b2xkIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKPiAgICAgICAgY2hh
ciAqKl9fcmVzdHJpY3QgX19lbmRwdHIpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAK
PiAKPiAKPiAKPiBleHRlcm4gbG9uZyBpbnQgc3RydG9sIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fbnB0ciwKPiAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fYmFzZSkKPiAg
ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+IAo+IGV4dGVybiB1bnNpZ25lZCBsb25nIGludCBzdHJ0
b3VsIChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKPiAgICAgICBjaGFyICoqX19yZXN0
cmljdCBfX2VuZHB0ciwgaW50IF9fYmFzZSkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+IAo+
IAo+IAo+IAo+IF9fZXh0ZW5zaW9uX18KPiBleHRlcm4gbG9uZyBsb25nIGludCBzdHJ0b3EgKGNv
bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAo+ICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3Qg
X19lbmRwdHIsIGludCBfX2Jhc2UpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiBfX2V4
dGVuc2lvbl9fCj4gZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgc3RydG91cSAoY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX25wdHIsCj4gICAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBf
X2VuZHB0ciwgaW50IF9fYmFzZSkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+IAo+IAo+IAo+
IAo+IAo+IF9fZXh0ZW5zaW9uX18KPiBleHRlcm4gbG9uZyBsb25nIGludCBzdHJ0b2xsIChjb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKPiAgICAgICAgICBjaGFyICoqX19yZXN0cmljdCBf
X2VuZHB0ciwgaW50IF9fYmFzZSkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+IAo+IF9fZXh0
ZW5zaW9uX18KPiBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIGludCBzdHJ0b3VsbCAoY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX25wdHIsCj4gICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0
ciwgaW50IF9fYmFzZSkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+IAo+ICMgMzA1ICIvdXNy
L2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+IGV4dGVybiBjaGFyICpsNjRhIChsb25nIGludCBfX24p
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+IAo+IAo+IGV4dGVy
biBsb25nIGludCBhNjRsIChjb25zdCBjaGFyICpfX3MpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0
cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKSA7Cj4gCj4gCj4gCj4gCj4gIyAxICIvdXNyL2lu
Y2x1ZGUvc3lzL3R5cGVzLmgiIDEgMyA0Cj4gIyAyNyAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5o
IiAzIDQKPiAKPiAKPiAKPiAKPiAKPiAKPiB0eXBlZGVmIF9fdV9jaGFyIHVfY2hhcjsKPiB0eXBl
ZGVmIF9fdV9zaG9ydCB1X3Nob3J0Owo+IHR5cGVkZWYgX191X2ludCB1X2ludDsKPiB0eXBlZGVm
IF9fdV9sb25nIHVfbG9uZzsKPiB0eXBlZGVmIF9fcXVhZF90IHF1YWRfdDsKPiB0eXBlZGVmIF9f
dV9xdWFkX3QgdV9xdWFkX3Q7Cj4gdHlwZWRlZiBfX2ZzaWRfdCBmc2lkX3Q7Cj4gCj4gCj4gCj4g
Cj4gdHlwZWRlZiBfX2xvZmZfdCBsb2ZmX3Q7Cj4gCj4gCj4gCj4gdHlwZWRlZiBfX2lub190IGlu
b190Owo+ICMgNjAgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0Cj4gdHlwZWRlZiBfX2Rl
dl90IGRldl90Owo+IAo+IAo+IAo+IAo+IHR5cGVkZWYgX19naWRfdCBnaWRfdDsKPiAKPiAKPiAK
PiAKPiB0eXBlZGVmIF9fbW9kZV90IG1vZGVfdDsKPiAKPiAKPiAKPiAKPiB0eXBlZGVmIF9fbmxp
bmtfdCBubGlua190Owo+IAo+IAo+IAo+IAo+IHR5cGVkZWYgX191aWRfdCB1aWRfdDsKPiAjIDk4
ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNAo+IHR5cGVkZWYgX19waWRfdCBwaWRfdDsK
PiAKPiAKPiAKPiAKPiAKPiB0eXBlZGVmIF9faWRfdCBpZF90Owo+ICMgMTE1ICIvdXNyL2luY2x1
ZGUvc3lzL3R5cGVzLmgiIDMgNAo+IHR5cGVkZWYgX19kYWRkcl90IGRhZGRyX3Q7Cj4gdHlwZWRl
ZiBfX2NhZGRyX3QgY2FkZHJfdDsKPiAKPiAKPiAKPiAKPiAKPiB0eXBlZGVmIF9fa2V5X3Qga2V5
X3Q7Cj4gIyAxMzIgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0Cj4gIyAxICIvdXNyL2lu
Y2x1ZGUvdGltZS5oIiAxIDMgNAo+ICMgNTcgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMgNAo+IAo+
IAo+IHR5cGVkZWYgX19jbG9ja190IGNsb2NrX3Q7Cj4gCj4gCj4gCj4gIyA3MyAiL3Vzci9pbmNs
dWRlL3RpbWUuaCIgMyA0Cj4gCj4gCj4gdHlwZWRlZiBfX3RpbWVfdCB0aW1lX3Q7Cj4gCj4gCj4g
Cj4gIyA5MSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMyA0Cj4gdHlwZWRlZiBfX2Nsb2NraWRfdCBj
bG9ja2lkX3Q7Cj4gIyAxMDMgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMgNAo+IHR5cGVkZWYgX190
aW1lcl90IHRpbWVyX3Q7Cj4gIyAxMzMgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzIDQK
PiAjIDE0NiAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzIDQKPiAjIDEgIi91c3IvbGliL2dj
Yy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMgNAo+ICMgMTQ3
ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMyA0Cj4gCj4gCj4gCj4gdHlwZWRlZiB1bnNp
Z25lZCBsb25nIGludCB1bG9uZzsKPiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCB1c2hvcnQ7
Cj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDsKPiAjIDE5NCAiL3Vzci9pbmNsdWRlL3N5cy90
eXBlcy5oIiAzIDQKPiB0eXBlZGVmIGludCBpbnQ4X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9f
IChfX1FJX18pKSk7Cj4gdHlwZWRlZiBpbnQgaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2Rl
X18gKF9fSElfXykpKTsKPiB0eXBlZGVmIGludCBpbnQzMl90IF9fYXR0cmlidXRlX18gKChfX21v
ZGVfXyAoX19TSV9fKSkpOwo+IHR5cGVkZWYgaW50IGludDY0X3QgX19hdHRyaWJ1dGVfXyAoKF9f
bW9kZV9fIChfX0RJX18pKSk7Cj4gCj4gCj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQ4X3Qg
X19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1FJX18pKSk7Cj4gdHlwZWRlZiB1bnNpZ25lZCBp
bnQgdV9pbnQxNl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOwo+IHR5cGVk
ZWYgdW5zaWduZWQgaW50IHVfaW50MzJfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fU0lf
XykpKTsKPiB0eXBlZGVmIHVuc2lnbmVkIGludCB1X2ludDY0X3QgX19hdHRyaWJ1dGVfXyAoKF9f
bW9kZV9fIChfX0RJX18pKSk7Cj4gCj4gdHlwZWRlZiBpbnQgcmVnaXN0ZXJfdCBfX2F0dHJpYnV0
ZV9fICgoX19tb2RlX18gKF9fd29yZF9fKSkpOwo+ICMgMjE5ICIvdXNyL2luY2x1ZGUvc3lzL3R5
cGVzLmgiIDMgNAo+ICMgMSAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMSAzIDQKPiAjIDMw
ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzIDQKPiAjIDEgIi91c3IvaW5jbHVkZS9iaXRz
L3NlbGVjdC5oIiAxIDMgNAo+ICMgMjIgIi91c3IvaW5jbHVkZS9iaXRzL3NlbGVjdC5oIiAzIDQK
PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3dvcmRzaXplLmgiIDEgMyA0Cj4gIyAyMyAiL3Vzci9p
bmNsdWRlL2JpdHMvc2VsZWN0LmgiIDIgMyA0Cj4gIyAzMSAiL3Vzci9pbmNsdWRlL3N5cy9zZWxl
Y3QuaCIgMiAzIDQKPiAKPiAKPiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ3NldC5oIiAxIDMg
NAo+ICMgMjIgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ3NldC5oIiAzIDQKPiB0eXBlZGVmIGludCBf
X3NpZ19hdG9taWNfdDsKPiAKPiAKPiAKPiAKPiB0eXBlZGVmIHN0cnVjdAo+ICAgewo+ICAgICB1
bnNpZ25lZCBsb25nIGludCBfX3ZhbFsoMTAyNCAvICg4ICogc2l6ZW9mICh1bnNpZ25lZCBsb25n
IGludCkpKV07Cj4gICB9IF9fc2lnc2V0X3Q7Cj4gIyAzNCAiL3Vzci9pbmNsdWRlL3N5cy9zZWxl
Y3QuaCIgMiAzIDQKPiAKPiAKPiAKPiB0eXBlZGVmIF9fc2lnc2V0X3Qgc2lnc2V0X3Q7Cj4gCj4g
Cj4gCj4gCj4gCj4gIyAxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAxIDMgNAo+ICMgMTIwICIvdXNy
L2luY2x1ZGUvdGltZS5oIiAzIDQKPiBzdHJ1Y3QgdGltZXNwZWMKPiAgIHsKPiAgICAgX190aW1l
X3QgdHZfc2VjOwo+ICAgICBfX3N5c2NhbGxfc2xvbmdfdCB0dl9uc2VjOwo+ICAgfTsKPiAjIDQ0
ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAyIDMgNAo+IAo+ICMgMSAiL3Vzci9pbmNsdWRl
L2JpdHMvdGltZS5oIiAxIDMgNAo+ICMgMzAgIi91c3IvaW5jbHVkZS9iaXRzL3RpbWUuaCIgMyA0
Cj4gc3RydWN0IHRpbWV2YWwKPiAgIHsKPiAgICAgX190aW1lX3QgdHZfc2VjOwo+ICAgICBfX3N1
c2Vjb25kc190IHR2X3VzZWM7Cj4gICB9Owo+ICMgNDYgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0
LmgiIDIgMyA0Cj4gCj4gCj4gdHlwZWRlZiBfX3N1c2Vjb25kc190IHN1c2Vjb25kc190Owo+IAo+
IAo+IAo+IAo+IAo+IHR5cGVkZWYgbG9uZyBpbnQgX19mZF9tYXNrOwo+ICMgNjQgIi91c3IvaW5j
bHVkZS9zeXMvc2VsZWN0LmgiIDMgNAo+IHR5cGVkZWYgc3RydWN0Cj4gICB7Cj4gCj4gCj4gCj4g
Cj4gCj4gCj4gICAgIF9fZmRfbWFzayBfX2Zkc19iaXRzWzEwMjQgLyAoOCAqIChpbnQpIHNpemVv
ZiAoX19mZF9tYXNrKSldOwo+IAo+IAo+ICAgfSBmZF9zZXQ7Cj4gCj4gCj4gCj4gCj4gCj4gCj4g
dHlwZWRlZiBfX2ZkX21hc2sgZmRfbWFzazsKPiAjIDk2ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVj
dC5oIiAzIDQKPiAKPiAjIDEwNiAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMyA0Cj4gZXh0
ZXJuIGludCBzZWxlY3QgKGludCBfX25mZHMsIGZkX3NldCAqX19yZXN0cmljdCBfX3JlYWRmZHMs
Cj4gICAgICBmZF9zZXQgKl9fcmVzdHJpY3QgX193cml0ZWZkcywKPiAgICAgIGZkX3NldCAqX19y
ZXN0cmljdCBfX2V4Y2VwdGZkcywKPiAgICAgIHN0cnVjdCB0aW1ldmFsICpfX3Jlc3RyaWN0IF9f
dGltZW91dCk7Cj4gIyAxMTggIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDMgNAo+IGV4dGVy
biBpbnQgcHNlbGVjdCAoaW50IF9fbmZkcywgZmRfc2V0ICpfX3Jlc3RyaWN0IF9fcmVhZGZkcywK
PiAgICAgICBmZF9zZXQgKl9fcmVzdHJpY3QgX193cml0ZWZkcywKPiAgICAgICBmZF9zZXQgKl9f
cmVzdHJpY3QgX19leGNlcHRmZHMsCj4gICAgICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjICpfX3Jl
c3RyaWN0IF9fdGltZW91dCwKPiAgICAgICBjb25zdCBfX3NpZ3NldF90ICpfX3Jlc3RyaWN0IF9f
c2lnbWFzayk7Cj4gIyAxMzEgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDMgNAo+IAo+ICMg
MjIwICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMyA0Cj4gCj4gCj4gIyAxICIvdXNyL2lu
Y2x1ZGUvc3lzL3N5c21hY3Jvcy5oIiAxIDMgNAo+ICMgMjQgIi91c3IvaW5jbHVkZS9zeXMvc3lz
bWFjcm9zLmgiIDMgNAo+IAo+IAo+IF9fZXh0ZW5zaW9uX18KPiBleHRlcm4gdW5zaWduZWQgaW50
IGdudV9kZXZfbWFqb3IgKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX19kZXYpCj4gICAgICBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2Nv
bnN0X18pKTsKPiBfX2V4dGVuc2lvbl9fCj4gZXh0ZXJuIHVuc2lnbmVkIGludCBnbnVfZGV2X21p
bm9yICh1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9fZGV2KQo+ICAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4g
X19leHRlbnNpb25fXwo+IGV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IGdudV9kZXZfbWFr
ZWRldiAodW5zaWduZWQgaW50IF9fbWFqb3IsCj4gICAgICAgICAgICAgdW5zaWduZWQgaW50IF9f
bWlub3IpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f
YXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKPiAjIDU4ICIvdXNyL2luY2x1ZGUvc3lzL3N5c21h
Y3Jvcy5oIiAzIDQKPiAKPiAjIDIyMyAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAyIDMgNAo+
IAo+IAo+IAo+IAo+IAo+IHR5cGVkZWYgX19ibGtzaXplX3QgYmxrc2l6ZV90Owo+IAo+IAo+IAo+
IAo+IAo+IAo+IHR5cGVkZWYgX19ibGtjbnRfdCBibGtjbnRfdDsKPiAKPiAKPiAKPiB0eXBlZGVm
IF9fZnNibGtjbnRfdCBmc2Jsa2NudF90Owo+IAo+IAo+IAo+IHR5cGVkZWYgX19mc2ZpbGNudF90
IGZzZmlsY250X3Q7Cj4gIyAyNzAgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0Cj4gIyAx
ICIvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMSAzIDQKPiAjIDIxICIvdXNyL2lu
Y2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93
b3Jkc2l6ZS5oIiAxIDMgNAo+ICMgMjIgIi91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5o
IiAyIDMgNAo+ICMgNjAgIi91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAzIDQKPiB0
eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IHB0aHJlYWRfdDsKPiAKPiAKPiB1bmlvbiBwdGhyZWFk
X2F0dHJfdAo+IHsKPiAgIGNoYXIgX19zaXplWzM2XTsKPiAgIGxvbmcgaW50IF9fYWxpZ247Cj4g
fTsKPiAKPiB0eXBlZGVmIHVuaW9uIHB0aHJlYWRfYXR0cl90IHB0aHJlYWRfYXR0cl90Owo+ICMg
ODEgIi91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAzIDQKPiB0eXBlZGVmIHN0cnVj
dCBfX3B0aHJlYWRfaW50ZXJuYWxfc2xpc3QKPiB7Cj4gICBzdHJ1Y3QgX19wdGhyZWFkX2ludGVy
bmFsX3NsaXN0ICpfX25leHQ7Cj4gfSBfX3B0aHJlYWRfc2xpc3RfdDsKPiAKPiAKPiAKPiAKPiAK
PiB0eXBlZGVmIHVuaW9uCj4gewo+ICAgc3RydWN0IF9fcHRocmVhZF9tdXRleF9zCj4gICB7Cj4g
ICAgIGludCBfX2xvY2s7Cj4gICAgIHVuc2lnbmVkIGludCBfX2NvdW50Owo+ICAgICBpbnQgX19v
d25lcjsKPiAKPiAKPiAKPiAKPiAKPiAgICAgaW50IF9fa2luZDsKPiAjIDExMSAiL3Vzci9pbmNs
dWRlL2JpdHMvcHRocmVhZHR5cGVzLmgiIDMgNAo+ICAgICB1bnNpZ25lZCBpbnQgX19udXNlcnM7
Cj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPiAgICAgewo+ICAgICAgIHN0cnVjdAo+ICAgICAg
IHsKPiAgc2hvcnQgX19lc3BpbnM7Cj4gIHNob3J0IF9fZWxpc2lvbjsKPiAKPiAKPiAKPiAgICAg
ICB9IF9fZWxpc2lvbl9kYXRhOwo+ICAgICAgIF9fcHRocmVhZF9zbGlzdF90IF9fbGlzdDsKPiAg
ICAgfTsKPiAKPiAgIH0gX19kYXRhOwo+ICAgY2hhciBfX3NpemVbMjRdOwo+ICAgbG9uZyBpbnQg
X19hbGlnbjsKPiB9IHB0aHJlYWRfbXV0ZXhfdDsKPiAKPiB0eXBlZGVmIHVuaW9uCj4gewo+ICAg
Y2hhciBfX3NpemVbNF07Cj4gICBpbnQgX19hbGlnbjsKPiB9IHB0aHJlYWRfbXV0ZXhhdHRyX3Q7
Cj4gCj4gCj4gCj4gCj4gdHlwZWRlZiB1bmlvbgo+IHsKPiAgIHN0cnVjdAo+ICAgewo+ICAgICBp
bnQgX19sb2NrOwo+ICAgICB1bnNpZ25lZCBpbnQgX19mdXRleDsKPiAgICAgX19leHRlbnNpb25f
XyB1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9fdG90YWxfc2VxOwo+ICAgICBfX2V4dGVuc2lvbl9f
IHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX193YWtldXBfc2VxOwo+ICAgICBfX2V4dGVuc2lvbl9f
IHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX193b2tlbl9zZXE7Cj4gICAgIHZvaWQgKl9fbXV0ZXg7
Cj4gICAgIHVuc2lnbmVkIGludCBfX253YWl0ZXJzOwo+ICAgICB1bnNpZ25lZCBpbnQgX19icm9h
ZGNhc3Rfc2VxOwo+ICAgfSBfX2RhdGE7Cj4gICBjaGFyIF9fc2l6ZVs0OF07Cj4gICBfX2V4dGVu
c2lvbl9fIGxvbmcgbG9uZyBpbnQgX19hbGlnbjsKPiB9IHB0aHJlYWRfY29uZF90Owo+IAo+IHR5
cGVkZWYgdW5pb24KPiB7Cj4gICBjaGFyIF9fc2l6ZVs0XTsKPiAgIGludCBfX2FsaWduOwo+IH0g
cHRocmVhZF9jb25kYXR0cl90Owo+IAo+IAo+IAo+IHR5cGVkZWYgdW5zaWduZWQgaW50IHB0aHJl
YWRfa2V5X3Q7Cj4gCj4gCj4gCj4gdHlwZWRlZiBpbnQgcHRocmVhZF9vbmNlX3Q7Cj4gCj4gCj4g
Cj4gCj4gCj4gdHlwZWRlZiB1bmlvbgo+IHsKPiAjIDIwMiAiL3Vzci9pbmNsdWRlL2JpdHMvcHRo
cmVhZHR5cGVzLmgiIDMgNAo+ICAgc3RydWN0Cj4gICB7Cj4gICAgIGludCBfX2xvY2s7Cj4gICAg
IHVuc2lnbmVkIGludCBfX25yX3JlYWRlcnM7Cj4gICAgIHVuc2lnbmVkIGludCBfX3JlYWRlcnNf
d2FrZXVwOwo+ICAgICB1bnNpZ25lZCBpbnQgX193cml0ZXJfd2FrZXVwOwo+ICAgICB1bnNpZ25l
ZCBpbnQgX19ucl9yZWFkZXJzX3F1ZXVlZDsKPiAgICAgdW5zaWduZWQgaW50IF9fbnJfd3JpdGVy
c19xdWV1ZWQ7Cj4gCj4gCj4gICAgIHVuc2lnbmVkIGNoYXIgX19mbGFnczsKPiAgICAgdW5zaWdu
ZWQgY2hhciBfX3NoYXJlZDsKPiAgICAgc2lnbmVkIGNoYXIgX19yd2VsaXNpb247Cj4gCj4gICAg
IHVuc2lnbmVkIGNoYXIgX19wYWQyOwo+ICAgICBpbnQgX193cml0ZXI7Cj4gICB9IF9fZGF0YTsK
PiAKPiAgIGNoYXIgX19zaXplWzMyXTsKPiAgIGxvbmcgaW50IF9fYWxpZ247Cj4gfSBwdGhyZWFk
X3J3bG9ja190Owo+IAo+IHR5cGVkZWYgdW5pb24KPiB7Cj4gICBjaGFyIF9fc2l6ZVs4XTsKPiAg
IGxvbmcgaW50IF9fYWxpZ247Cj4gfSBwdGhyZWFkX3J3bG9ja2F0dHJfdDsKPiAKPiAKPiAKPiAK
PiAKPiB0eXBlZGVmIHZvbGF0aWxlIGludCBwdGhyZWFkX3NwaW5sb2NrX3Q7Cj4gCj4gCj4gCj4g
Cj4gdHlwZWRlZiB1bmlvbgo+IHsKPiAgIGNoYXIgX19zaXplWzIwXTsKPiAgIGxvbmcgaW50IF9f
YWxpZ247Cj4gfSBwdGhyZWFkX2JhcnJpZXJfdDsKPiAKPiB0eXBlZGVmIHVuaW9uCj4gewo+ICAg
Y2hhciBfX3NpemVbNF07Cj4gICBpbnQgX19hbGlnbjsKPiB9IHB0aHJlYWRfYmFycmllcmF0dHJf
dDsKPiAjIDI3MSAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAyIDMgNAo+IAo+IAo+IAo+ICMg
MzE1ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDIgMyA0Cj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0
ZXJuIGxvbmcgaW50IHJhbmRvbSAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKTsKPiAKPiAKPiBleHRlcm4gdm9pZCBzcmFuZG9tICh1bnNpZ25lZCBpbnQgX19z
ZWVkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+
IAo+IAo+IGV4dGVybiBjaGFyICppbml0c3RhdGUgKHVuc2lnbmVkIGludCBfX3NlZWQsIGNoYXIg
Kl9fc3RhdGVidWYsCj4gICAgc2l6ZV90IF9fc3RhdGVsZW4pIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkpOwo+
IAo+IAo+IAo+IGV4dGVybiBjaGFyICpzZXRzdGF0ZSAoY2hhciAqX19zdGF0ZWJ1ZikgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25u
dWxsX18gKDEpKSk7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gc3RydWN0IHJhbmRvbV9kYXRhCj4g
ICB7Cj4gICAgIGludDMyX3QgKmZwdHI7Cj4gICAgIGludDMyX3QgKnJwdHI7Cj4gICAgIGludDMy
X3QgKnN0YXRlOwo+ICAgICBpbnQgcmFuZF90eXBlOwo+ICAgICBpbnQgcmFuZF9kZWc7Cj4gICAg
IGludCByYW5kX3NlcDsKPiAgICAgaW50MzJfdCAqZW5kX3B0cjsKPiAgIH07Cj4gCj4gZXh0ZXJu
IGludCByYW5kb21fciAoc3RydWN0IHJhbmRvbV9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmLAo+ICAg
ICAgICBpbnQzMl90ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsK
PiAKPiBleHRlcm4gaW50IHNyYW5kb21fciAodW5zaWduZWQgaW50IF9fc2VlZCwgc3RydWN0IHJh
bmRvbV9kYXRhICpfX2J1ZikKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkpOwo+IAo+IGV4dGVybiBp
bnQgaW5pdHN0YXRlX3IgKHVuc2lnbmVkIGludCBfX3NlZWQsIGNoYXIgKl9fcmVzdHJpY3QgX19z
dGF0ZWJ1ZiwKPiAgICBzaXplX3QgX19zdGF0ZWxlbiwKPiAgICBzdHJ1Y3QgcmFuZG9tX2RhdGEg
Kl9fcmVzdHJpY3QgX19idWYpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgNCkpKTsKPiAKPiBleHRl
cm4gaW50IHNldHN0YXRlX3IgKGNoYXIgKl9fcmVzdHJpY3QgX19zdGF0ZWJ1ZiwKPiAgICAgICAg
ICBzdHJ1Y3QgcmFuZG9tX2RhdGEgKl9fcmVzdHJpY3QgX19idWYpCj4gICAgICBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf
XyAoMSwgMikpKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHJhbmQgKHZvaWQpIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gZXh0ZXJuIHZvaWQg
c3JhbmQgKHVuc2lnbmVkIGludCBfX3NlZWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCByYW5kX3IgKHVuc2lnbmVkIGlu
dCAqX19zZWVkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+
IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBkb3VibGUgZHJhbmQ0OCAodm9pZCkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiBleHRlcm4gZG91YmxlIGVyYW5kNDgg
KHVuc2lnbmVkIHNob3J0IGludCBfX3hzdWJpWzNdKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAK
PiBleHRlcm4gbG9uZyBpbnQgbHJhbmQ0OCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPiBleHRlcm4gbG9uZyBpbnQgbnJhbmQ0OCAodW5zaWduZWQgc2hv
cnQgaW50IF9feHN1YmlbM10pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAKPiBleHRl
cm4gbG9uZyBpbnQgbXJhbmQ0OCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKTsKPiBleHRlcm4gbG9uZyBpbnQganJhbmQ0OCAodW5zaWduZWQgc2hvcnQgaW50
IF9feHN1YmlbM10pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAKPiBleHRlcm4gdm9p
ZCBzcmFuZDQ4IChsb25nIGludCBfX3NlZWR2YWwpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSk7Cj4gZXh0ZXJuIHVuc2lnbmVkIHNob3J0IGludCAqc2VlZDQ4ICh1bnNp
Z25lZCBzaG9ydCBpbnQgX19zZWVkMTZ2WzNdKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4g
ZXh0ZXJuIHZvaWQgbGNvbmc0OCAodW5zaWduZWQgc2hvcnQgaW50IF9fcGFyYW1bN10pIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgxKSkpOwo+IAo+IAo+IAo+IAo+IAo+IHN0cnVjdCBkcmFuZDQ4X2RhdGEKPiAgIHsK
PiAgICAgdW5zaWduZWQgc2hvcnQgaW50IF9feFszXTsKPiAgICAgdW5zaWduZWQgc2hvcnQgaW50
IF9fb2xkX3hbM107Cj4gICAgIHVuc2lnbmVkIHNob3J0IGludCBfX2M7Cj4gICAgIHVuc2lnbmVk
IHNob3J0IGludCBfX2luaXQ7Cj4gICAgIF9fZXh0ZW5zaW9uX18gdW5zaWduZWQgbG9uZyBsb25n
IGludCBfX2E7Cj4gCj4gICB9Owo+IAo+IAo+IGV4dGVybiBpbnQgZHJhbmQ0OF9yIChzdHJ1Y3Qg
ZHJhbmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAo+ICAgICAgICAgZG91YmxlICpfX3Jl
c3RyaWN0IF9fcmVzdWx0KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiBleHRlcm4gaW50IGVyYW5k
NDhfciAodW5zaWduZWQgc2hvcnQgaW50IF9feHN1YmlbM10sCj4gICAgICAgICBzdHJ1Y3QgZHJh
bmQ0OF9kYXRhICpfX3Jlc3RyaWN0IF9fYnVmZmVyLAo+ICAgICAgICAgZG91YmxlICpfX3Jlc3Ry
aWN0IF9fcmVzdWx0KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f
YXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiAKPiAKPiBleHRlcm4gaW50IGxy
YW5kNDhfciAoc3RydWN0IGRyYW5kNDhfZGF0YSAqX19yZXN0cmljdCBfX2J1ZmZlciwKPiAgICAg
ICAgIGxvbmcgaW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KQo+ICAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEs
IDIpKSk7Cj4gZXh0ZXJuIGludCBucmFuZDQ4X3IgKHVuc2lnbmVkIHNob3J0IGludCBfX3hzdWJp
WzNdLAo+ICAgICAgICAgc3RydWN0IGRyYW5kNDhfZGF0YSAqX19yZXN0cmljdCBfX2J1ZmZlciwK
PiAgICAgICAgIGxvbmcgaW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KQo+ICAgICAgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs
X18gKDEsIDIpKSk7Cj4gCj4gCj4gZXh0ZXJuIGludCBtcmFuZDQ4X3IgKHN0cnVjdCBkcmFuZDQ4
X2RhdGEgKl9fcmVzdHJpY3QgX19idWZmZXIsCj4gICAgICAgICBsb25nIGludCAqX19yZXN0cmlj
dCBfX3Jlc3VsdCkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+IGV4dGVybiBpbnQganJh
bmQ0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX194c3ViaVszXSwKPiAgICAgICAgIHN0cnVjdCBk
cmFuZDQ4X2RhdGEgKl9fcmVzdHJpY3QgX19idWZmZXIsCj4gICAgICAgICBsb25nIGludCAqX19y
ZXN0cmljdCBfX3Jlc3VsdCkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+IAo+IAo+IGV4
dGVybiBpbnQgc3JhbmQ0OF9yIChsb25nIGludCBfX3NlZWR2YWwsIHN0cnVjdCBkcmFuZDQ4X2Rh
dGEgKl9fYnVmZmVyKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4gCj4gZXh0ZXJuIGludCBz
ZWVkNDhfciAodW5zaWduZWQgc2hvcnQgaW50IF9fc2VlZDE2dlszXSwKPiAgICAgICAgc3RydWN0
IGRyYW5kNDhfZGF0YSAqX19idWZmZXIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+IAo+IGV4dGVy
biBpbnQgbGNvbmc0OF9yICh1bnNpZ25lZCBzaG9ydCBpbnQgX19wYXJhbVs3XSwKPiAgICAgICAg
IHN0cnVjdCBkcmFuZDQ4X2RhdGEgKl9fYnVmZmVyKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIp
KSk7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIHZvaWQgKm1hbGxvYyAoc2l6
ZV90IF9fc2l6ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpIDsKPiAKPiBleHRlcm4gdm9pZCAqY2FsbG9jIChzaXpl
X3QgX19ubWVtYiwgc2l6ZV90IF9fc2l6ZSkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKSA7Cj4gCj4gCj4g
Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIHZvaWQgKnJlYWxsb2MgKHZvaWQgKl9fcHRy
LCBzaXplX3QgX19zaXplKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX193YXJuX3VudXNlZF9yZXN1bHRfXykpOwo+IAo+IGV4
dGVybiB2b2lkIGZyZWUgKHZvaWQgKl9fcHRyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IGV4dGVybiB2b2lkIGNmcmVlICh2b2lkICpfX3B0
cikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAj
IDEgIi91c3IvaW5jbHVkZS9hbGxvY2EuaCIgMSAzIDQKPiAjIDI0ICIvdXNyL2luY2x1ZGUvYWxs
b2NhLmgiIDMgNAo+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2lu
Y2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gIyAyNSAiL3Vzci9pbmNsdWRlL2FsbG9jYS5oIiAyIDMg
NAo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiB2b2lkICphbGxvY2EgKHNpemVfdCBfX3Np
emUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4g
Cj4gCj4gCj4gIyA0OTMgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMiAzIDQKPiAKPiAKPiAKPiAK
PiAKPiBleHRlcm4gdm9pZCAqdmFsbG9jIChzaXplX3QgX19zaXplKSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgOwo+
IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgcG9zaXhfbWVtYWxpZ24gKHZvaWQgKipfX21lbXB0ciwg
c2l6ZV90IF9fYWxpZ25tZW50LCBzaXplX3QgX19zaXplKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEp
KSkgOwo+IAo+IAo+IAo+IAo+IGV4dGVybiB2b2lkICphbGlnbmVkX2FsbG9jIChzaXplX3QgX19h
bGlnbm1lbnQsIHNpemVfdCBfX3NpemUpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fYWxsb2Nfc2l6ZV9fICgyKSkpIDsKPiAKPiAKPiAKPiAKPiBleHRlcm4gdm9pZCBhYm9y
dCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3JldHVybl9fKSk7Cj4gCj4gCj4gCj4gZXh0ZXJuIGludCBhdGV4aXQgKHZv
aWQgKCpfX2Z1bmMpICh2b2lkKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gCj4gCj4gCj4gCj4gCj4g
Cj4gCj4gZXh0ZXJuIGludCBhdF9xdWlja19leGl0ICh2b2lkICgqX19mdW5jKSAodm9pZCkpIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxKSkpOwo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgb25fZXhp
dCAodm9pZCAoKl9fZnVuYykgKGludCBfX3N0YXR1cywgdm9pZCAqX19hcmcpLCB2b2lkICpfX2Fy
ZykKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiB2
b2lkIGV4aXQgKGludCBfX3N0YXR1cykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub3JldHVybl9fKSk7Cj4gCj4gCj4gCj4gCj4gCj4g
ZXh0ZXJuIHZvaWQgcXVpY2tfZXhpdCAoaW50IF9fc3RhdHVzKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vcmV0dXJuX18pKTsKPiAK
PiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gdm9pZCBfRXhpdCAoaW50IF9fc3RhdHVzKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v
cmV0dXJuX18pKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gY2hhciAqZ2V0ZW52IChjb25z
dCBjaGFyICpfX25hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkg
X19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPiAKPiAjIDU3OCAiL3Vzci9pbmNs
dWRlL3N0ZGxpYi5oIiAzIDQKPiBleHRlcm4gaW50IHB1dGVudiAoY2hhciAqX19zdHJpbmcpIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxKSkpOwo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgc2V0ZW52IChjb25z
dCBjaGFyICpfX25hbWUsIGNvbnN0IGNoYXIgKl9fdmFsdWUsIGludCBfX3JlcGxhY2UpCj4gICAg
ICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18g
KChfX25vbm51bGxfXyAoMikpKTsKPiAKPiAKPiBleHRlcm4gaW50IHVuc2V0ZW52IChjb25zdCBj
aGFyICpfX25hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVy
biBpbnQgY2xlYXJlbnYgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSk7Cj4gIyA2MDYgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0Cj4gZXh0ZXJuIGNoYXIg
Km1rdGVtcCAoY2hhciAqX190ZW1wbGF0ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gIyA2MTkgIi91
c3IvaW5jbHVkZS9zdGRsaWIuaCIgMyA0Cj4gZXh0ZXJuIGludCBta3N0ZW1wIChjaGFyICpfX3Rl
bXBsYXRlKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+ICMgNjQxICIvdXNy
L2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+IGV4dGVybiBpbnQgbWtzdGVtcHMgKGNoYXIgKl9fdGVt
cGxhdGUsIGludCBfX3N1ZmZpeGxlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkp
IDsKPiAjIDY2MiAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQKPiBleHRlcm4gY2hhciAqbWtk
dGVtcCAoY2hhciAqX190ZW1wbGF0ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+ICMgNzExICIvdXNy
L2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgc3lzdGVt
IChjb25zdCBjaGFyICpfX2NvbW1hbmQpIDsKPiAKPiAjIDczMyAiL3Vzci9pbmNsdWRlL3N0ZGxp
Yi5oIiAzIDQKPiBleHRlcm4gY2hhciAqcmVhbHBhdGggKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg
X19uYW1lLAo+ICAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19yZXNvbHZlZCkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gdHlw
ZWRlZiBpbnQgKCpfX2NvbXBhcl9mbl90KSAoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopOwo+
ICMgNzUxICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+IAo+IAo+IAo+IGV4dGVybiB2b2lk
ICpic2VhcmNoIChjb25zdCB2b2lkICpfX2tleSwgY29uc3Qgdm9pZCAqX19iYXNlLAo+ICAgICAg
ICAgc2l6ZV90IF9fbm1lbWIsIHNpemVfdCBfX3NpemUsIF9fY29tcGFyX2ZuX3QgX19jb21wYXIp
Cj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIsIDUpKSkgOwo+IAo+IAo+
IAo+IAo+IAo+IAo+IAo+IGV4dGVybiB2b2lkIHFzb3J0ICh2b2lkICpfX2Jhc2UsIHNpemVfdCBf
X25tZW1iLCBzaXplX3QgX19zaXplLAo+ICAgICAgX19jb21wYXJfZm5fdCBfX2NvbXBhcikgX19h
dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCA0KSkpOwo+ICMgNzc0ICIvdXNyL2luY2x1ZGUv
c3RkbGliLmgiIDMgNAo+IGV4dGVybiBpbnQgYWJzIChpbnQgX194KSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKSA7Cj4g
ZXh0ZXJuIGxvbmcgaW50IGxhYnMgKGxvbmcgaW50IF9feCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSkgOwo+IAo+IAo+
IAo+IF9fZXh0ZW5zaW9uX18gZXh0ZXJuIGxvbmcgbG9uZyBpbnQgbGxhYnMgKGxvbmcgbG9uZyBp
bnQgX194KQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf
X2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSkgOwo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVy
biBkaXZfdCBkaXYgKGludCBfX251bWVyLCBpbnQgX19kZW5vbSkKPiAgICAgIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykp
IDsKPiBleHRlcm4gbGRpdl90IGxkaXYgKGxvbmcgaW50IF9fbnVtZXIsIGxvbmcgaW50IF9fZGVu
b20pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0
cmlidXRlX18gKChfX2NvbnN0X18pKSA7Cj4gCj4gCj4gCj4gCj4gX19leHRlbnNpb25fXyBleHRl
cm4gbGxkaXZfdCBsbGRpdiAobG9uZyBsb25nIGludCBfX251bWVyLAo+ICAgICAgICAgbG9uZyBs
b25nIGludCBfX2Rlbm9tKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSkgOwo+IAo+ICMgODExICIvdXNyL2lu
Y2x1ZGUvc3RkbGliLmgiIDMgNAo+IGV4dGVybiBjaGFyICplY3Z0IChkb3VibGUgX192YWx1ZSwg
aW50IF9fbmRpZ2l0LCBpbnQgKl9fcmVzdHJpY3QgX19kZWNwdCwKPiAgICAgIGludCAqX19yZXN0
cmljdCBfX3NpZ24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA0KSkpIDsKPiAKPiAKPiAKPiAKPiBleHRlcm4g
Y2hhciAqZmN2dCAoZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwgaW50ICpfX3Jlc3RyaWN0
IF9fZGVjcHQsCj4gICAgICBpbnQgKl9fcmVzdHJpY3QgX19zaWduKSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMywg
NCkpKSA7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGNoYXIgKmdjdnQgKGRvdWJsZSBfX3ZhbHVlLCBp
bnQgX19uZGlnaXQsIGNoYXIgKl9fYnVmKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMpKSkgOwo+IAo+
IAo+IAo+IAo+IGV4dGVybiBjaGFyICpxZWN2dCAobG9uZyBkb3VibGUgX192YWx1ZSwgaW50IF9f
bmRpZ2l0LAo+ICAgICAgIGludCAqX19yZXN0cmljdCBfX2RlY3B0LCBpbnQgKl9fcmVzdHJpY3Qg
X19zaWduKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf
X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDMsIDQpKSkgOwo+IGV4dGVybiBjaGFyICpxZmN2
dCAobG9uZyBkb3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LAo+ICAgICAgIGludCAqX19yZXN0
cmljdCBfX2RlY3B0LCBpbnQgKl9fcmVzdHJpY3QgX19zaWduKQo+ICAgICAgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18g
KDMsIDQpKSkgOwo+IGV4dGVybiBjaGFyICpxZ2N2dCAobG9uZyBkb3VibGUgX192YWx1ZSwgaW50
IF9fbmRpZ2l0LCBjaGFyICpfX2J1ZikKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzKSkpIDsKPiAKPiAK
PiAKPiAKPiBleHRlcm4gaW50IGVjdnRfciAoZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwg
aW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsCj4gICAgICBpbnQgKl9fcmVzdHJpY3QgX19zaWduLCBj
aGFyICpfX3Jlc3RyaWN0IF9fYnVmLAo+ICAgICAgc2l6ZV90IF9fbGVuKSBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MywgNCwgNSkpKTsKPiBleHRlcm4gaW50IGZjdnRfciAoZG91YmxlIF9fdmFsdWUsIGludCBfX25k
aWdpdCwgaW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsCj4gICAgICBpbnQgKl9fcmVzdHJpY3QgX19z
aWduLCBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLAo+ICAgICAgc2l6ZV90IF9fbGVuKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51
bGxfXyAoMywgNCwgNSkpKTsKPiAKPiBleHRlcm4gaW50IHFlY3Z0X3IgKGxvbmcgZG91YmxlIF9f
dmFsdWUsIGludCBfX25kaWdpdCwKPiAgICAgICBpbnQgKl9fcmVzdHJpY3QgX19kZWNwdCwgaW50
ICpfX3Jlc3RyaWN0IF9fc2lnbiwKPiAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXpl
X3QgX19sZW4pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMywgNCwgNSkpKTsKPiBleHRlcm4gaW50IHFm
Y3Z0X3IgKGxvbmcgZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwKPiAgICAgICBpbnQgKl9f
cmVzdHJpY3QgX19kZWNwdCwgaW50ICpfX3Jlc3RyaWN0IF9fc2lnbiwKPiAgICAgICBjaGFyICpf
X3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19sZW4pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMywgNCwg
NSkpKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IG1ibGVuIChjb25zdCBjaGFyICpf
X3MsIHNpemVfdCBfX24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7
Cj4gCj4gCj4gZXh0ZXJuIGludCBtYnRvd2MgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19wd2MsCj4g
ICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiBleHRlcm4gaW50IHdjdG9tYiAo
Y2hhciAqX19zLCB3Y2hhcl90IF9fd2NoYXIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4gZXh0ZXJuIHNpemVfdCBtYnN0b3djcyAod2NoYXJfdCAq
X19yZXN0cmljdCBfX3B3Y3MsCj4gICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsIHNpemVf
dCBfX24pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gZXh0
ZXJuIHNpemVfdCB3Y3N0b21icyAoY2hhciAqX19yZXN0cmljdCBfX3MsCj4gICAgY29uc3Qgd2No
YXJfdCAqX19yZXN0cmljdCBfX3B3Y3MsIHNpemVfdCBfX24pCj4gICAgICBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4
dGVybiBpbnQgcnBtYXRjaCAoY29uc3QgY2hhciAqX19yZXNwb25zZSkgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEp
KSkgOwo+ICMgODk4ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMgNAo+IGV4dGVybiBpbnQgZ2V0
c3Vib3B0IChjaGFyICoqX19yZXN0cmljdCBfX29wdGlvbnAsCj4gICAgICAgICBjaGFyICpjb25z
dCAqX19yZXN0cmljdCBfX3Rva2VucywKPiAgICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fdmFs
dWVwKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIsIDMpKSkgOwo+ICMgOTUwICIvdXNyL2luY2x1
ZGUvc3RkbGliLmgiIDMgNAo+IGV4dGVybiBpbnQgZ2V0bG9hZGF2ZyAoZG91YmxlIF9fbG9hZGF2
Z1tdLCBpbnQgX19uZWxlbSkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+IAo+IAo+ICMgMSAi
L3Vzci9pbmNsdWRlL2JpdHMvc3RkbGliLWZsb2F0LmgiIDEgMyA0Cj4gIyA5NTUgIi91c3IvaW5j
bHVkZS9zdGRsaWIuaCIgMiAzIDQKPiAjIDk2NyAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzIDQK
PiAKPiAjIDQxICJtYWNoaW5lLmMiIDIKPiAjIDEgIi91c3IvaW5jbHVkZS9zaWduYWwuaCIgMSAz
IDQKPiAjIDMwICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDMgNAo+IAo+IAo+ICMgMSAiL3Vzci9p
bmNsdWRlL2JpdHMvc2lnc2V0LmgiIDEgMyA0Cj4gIyAxMDIgIi91c3IvaW5jbHVkZS9iaXRzL3Np
Z3NldC5oIiAzIDQKPiBleHRlcm4gaW50IF9fc2lnaXNtZW1iZXIgKGNvbnN0IF9fc2lnc2V0X3Qg
KiwgaW50KTsKPiBleHRlcm4gaW50IF9fc2lnYWRkc2V0IChfX3NpZ3NldF90ICosIGludCk7Cj4g
ZXh0ZXJuIGludCBfX3NpZ2RlbHNldCAoX19zaWdzZXRfdCAqLCBpbnQpOwo+ICMgMzMgIi91c3Iv
aW5jbHVkZS9zaWduYWwuaCIgMiAzIDQKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiB0eXBlZGVmIF9f
c2lnX2F0b21pY190IHNpZ19hdG9taWNfdDsKPiAKPiAjIDU3ICIvdXNyL2luY2x1ZGUvc2lnbmFs
LmgiIDMgNAo+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnbnVtLmgiIDEgMyA0Cj4gIyA1OCAi
L3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAyIDMgNAo+ICMgNzUgIi91c3IvaW5jbHVkZS9zaWduYWwu
aCIgMyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAxIDMgNAo+ICMgNzYgIi91c3IvaW5j
bHVkZS9zaWduYWwuaCIgMiAzIDQKPiAKPiAKPiAKPiAKPiAjIDEgIi91c3IvaW5jbHVkZS9iaXRz
L3NpZ2luZm8uaCIgMSAzIDQKPiAjIDI0ICIvdXNyL2luY2x1ZGUvYml0cy9zaWdpbmZvLmgiIDMg
NAo+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvd29yZHNpemUuaCIgMSAzIDQKPiAjIDI1ICIvdXNy
L2luY2x1ZGUvYml0cy9zaWdpbmZvLmgiIDIgMyA0Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gdHlw
ZWRlZiB1bmlvbiBzaWd2YWwKPiAgIHsKPiAgICAgaW50IHNpdmFsX2ludDsKPiAgICAgdm9pZCAq
c2l2YWxfcHRyOwo+ICAgfSBzaWd2YWxfdDsKPiAjIDU4ICIvdXNyL2luY2x1ZGUvYml0cy9zaWdp
bmZvLmgiIDMgNAo+IHR5cGVkZWYgX19jbG9ja190IF9fc2lnY2hsZF9jbG9ja190Owo+IAo+IAo+
IAo+IHR5cGVkZWYgc3RydWN0Cj4gICB7Cj4gICAgIGludCBzaV9zaWdubzsKPiAgICAgaW50IHNp
X2Vycm5vOwo+IAo+ICAgICBpbnQgc2lfY29kZTsKPiAKPiAgICAgdW5pb24KPiAgICAgICB7Cj4g
IGludCBfcGFkWygoMTI4IC8gc2l6ZW9mIChpbnQpKSAtIDMpXTsKPiAKPiAKPiAgc3RydWN0Cj4g
ICAgewo+ICAgICAgX19waWRfdCBzaV9waWQ7Cj4gICAgICBfX3VpZF90IHNpX3VpZDsKPiAgICB9
IF9raWxsOwo+IAo+IAo+ICBzdHJ1Y3QKPiAgICB7Cj4gICAgICBpbnQgc2lfdGlkOwo+ICAgICAg
aW50IHNpX292ZXJydW47Cj4gICAgICBzaWd2YWxfdCBzaV9zaWd2YWw7Cj4gICAgfSBfdGltZXI7
Cj4gCj4gCj4gIHN0cnVjdAo+ICAgIHsKPiAgICAgIF9fcGlkX3Qgc2lfcGlkOwo+ICAgICAgX191
aWRfdCBzaV91aWQ7Cj4gICAgICBzaWd2YWxfdCBzaV9zaWd2YWw7Cj4gICAgfSBfcnQ7Cj4gCj4g
Cj4gIHN0cnVjdAo+ICAgIHsKPiAgICAgIF9fcGlkX3Qgc2lfcGlkOwo+ICAgICAgX191aWRfdCBz
aV91aWQ7Cj4gICAgICBpbnQgc2lfc3RhdHVzOwo+ICAgICAgX19zaWdjaGxkX2Nsb2NrX3Qgc2lf
dXRpbWU7Cj4gICAgICBfX3NpZ2NobGRfY2xvY2tfdCBzaV9zdGltZTsKPiAgICB9IF9zaWdjaGxk
Owo+IAo+IAo+ICBzdHJ1Y3QKPiAgICB7Cj4gICAgICB2b2lkICpzaV9hZGRyOwo+ICAgICAgc2hv
cnQgaW50IHNpX2FkZHJfbHNiOwo+ICAgICAgc3RydWN0Cj4gICAgICAgIHsKPiAgIHZvaWQgKl9s
b3dlcjsKPiAgIHZvaWQgKl91cHBlcjsKPiAgICAgICAgfSBzaV9hZGRyX2JuZDsKPiAgICB9IF9z
aWdmYXVsdDsKPiAKPiAKPiAgc3RydWN0Cj4gICAgewo+ICAgICAgbG9uZyBpbnQgc2lfYmFuZDsK
PiAgICAgIGludCBzaV9mZDsKPiAgICB9IF9zaWdwb2xsOwo+IAo+IAo+ICBzdHJ1Y3QKPiAgICB7
Cj4gICAgICB2b2lkICpfY2FsbF9hZGRyOwo+ICAgICAgaW50IF9zeXNjYWxsOwo+ICAgICAgdW5z
aWduZWQgaW50IF9hcmNoOwo+ICAgIH0gX3NpZ3N5czsKPiAgICAgICB9IF9zaWZpZWxkczsKPiAg
IH0gc2lnaW5mb190IDsKPiAjIDE2MCAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnaW5mby5oIiAzIDQK
PiBlbnVtCj4gewo+ICAgU0lfQVNZTkNOTCA9IC02MCwKPiAKPiAgIFNJX1RLSUxMID0gLTYsCj4g
Cj4gICBTSV9TSUdJTywKPiAKPiAgIFNJX0FTWU5DSU8sCj4gCj4gICBTSV9NRVNHUSwKPiAKPiAg
IFNJX1RJTUVSLAo+IAo+ICAgU0lfUVVFVUUsCj4gCj4gICBTSV9VU0VSLAo+IAo+ICAgU0lfS0VS
TkVMID0gMHg4MAo+IAo+IH07Cj4gCj4gCj4gCj4gCj4gZW51bQo+IHsKPiAgIElMTF9JTExPUEMg
PSAxLAo+IAo+ICAgSUxMX0lMTE9QTiwKPiAKPiAgIElMTF9JTExBRFIsCj4gCj4gICBJTExfSUxM
VFJQLAo+IAo+ICAgSUxMX1BSVk9QQywKPiAKPiAgIElMTF9QUlZSRUcsCj4gCj4gICBJTExfQ09Q
Uk9DLAo+IAo+ICAgSUxMX0JBRFNUSwo+IAo+IH07Cj4gCj4gCj4gZW51bQo+IHsKPiAgIEZQRV9J
TlRESVYgPSAxLAo+IAo+ICAgRlBFX0lOVE9WRiwKPiAKPiAgIEZQRV9GTFRESVYsCj4gCj4gICBG
UEVfRkxUT1ZGLAo+IAo+ICAgRlBFX0ZMVFVORCwKPiAKPiAgIEZQRV9GTFRSRVMsCj4gCj4gICBG
UEVfRkxUSU5WLAo+IAo+ICAgRlBFX0ZMVFNVQgo+IAo+IH07Cj4gCj4gCj4gZW51bQo+IHsKPiAg
IFNFR1ZfTUFQRVJSID0gMSwKPiAKPiAgIFNFR1ZfQUNDRVJSCj4gCj4gfTsKPiAKPiAKPiBlbnVt
Cj4gewo+ICAgQlVTX0FEUkFMTiA9IDEsCj4gCj4gICBCVVNfQURSRVJSLAo+IAo+ICAgQlVTX09C
SkVSUiwKPiAKPiAgIEJVU19NQ0VFUlJfQVIsCj4gCj4gICBCVVNfTUNFRVJSX0FPCj4gCj4gfTsK
PiAjIDI2NCAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnaW5mby5oIiAzIDQKPiBlbnVtCj4gewo+ICAg
Q0xEX0VYSVRFRCA9IDEsCj4gCj4gICBDTERfS0lMTEVELAo+IAo+ICAgQ0xEX0RVTVBFRCwKPiAK
PiAgIENMRF9UUkFQUEVELAo+IAo+ICAgQ0xEX1NUT1BQRUQsCj4gCj4gICBDTERfQ09OVElOVUVE
Cj4gCj4gfTsKPiAKPiAKPiBlbnVtCj4gewo+ICAgUE9MTF9JTiA9IDEsCj4gCj4gICBQT0xMX09V
VCwKPiAKPiAgIFBPTExfTVNHLAo+IAo+ICAgUE9MTF9FUlIsCj4gCj4gICBQT0xMX1BSSSwKPiAK
PiAgIFBPTExfSFVQCj4gCj4gfTsKPiAjIDMyMCAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnaW5mby5o
IiAzIDQKPiB0eXBlZGVmIHN0cnVjdCBzaWdldmVudAo+ICAgewo+ICAgICBzaWd2YWxfdCBzaWdl
dl92YWx1ZTsKPiAgICAgaW50IHNpZ2V2X3NpZ25vOwo+ICAgICBpbnQgc2lnZXZfbm90aWZ5Owo+
IAo+ICAgICB1bmlvbgo+ICAgICAgIHsKPiAgaW50IF9wYWRbKCg2NCAvIHNpemVvZiAoaW50KSkg
LSAzKV07Cj4gCj4gCj4gCj4gIF9fcGlkX3QgX3RpZDsKPiAKPiAgc3RydWN0Cj4gICAgewo+ICAg
ICAgdm9pZCAoKl9mdW5jdGlvbikgKHNpZ3ZhbF90KTsKPiAgICAgIHB0aHJlYWRfYXR0cl90ICpf
YXR0cmlidXRlOwo+ICAgIH0gX3NpZ2V2X3RocmVhZDsKPiAgICAgICB9IF9zaWdldl91bjsKPiAg
IH0gc2lnZXZlbnRfdDsKPiAKPiAKPiAKPiAKPiAKPiAKPiBlbnVtCj4gewo+ICAgU0lHRVZfU0lH
TkFMID0gMCwKPiAKPiAgIFNJR0VWX05PTkUsCj4gCj4gICBTSUdFVl9USFJFQUQsCj4gCj4gCj4g
ICBTSUdFVl9USFJFQURfSUQgPSA0Cj4gCj4gfTsKPiAjIDgxICIvdXNyL2luY2x1ZGUvc2lnbmFs
LmgiIDIgMyA0Cj4gCj4gCj4gCj4gCj4gdHlwZWRlZiB2b2lkICgqX19zaWdoYW5kbGVyX3QpIChp
bnQpOwo+IAo+IAo+IAo+IAo+IGV4dGVybiBfX3NpZ2hhbmRsZXJfdCBfX3N5c3Zfc2lnbmFsIChp
bnQgX19zaWcsIF9fc2lnaGFuZGxlcl90IF9faGFuZGxlcikKPiAgICAgIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gIyAxMDAgIi91c3IvaW5jbHVkZS9zaWduYWwu
aCIgMyA0Cj4gCj4gCj4gZXh0ZXJuIF9fc2lnaGFuZGxlcl90IHNpZ25hbCAoaW50IF9fc2lnLCBf
X3NpZ2hhbmRsZXJfdCBfX2hhbmRsZXIpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpOwo+ICMgMTE0ICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDMgNAo+IAo+
ICMgMTI3ICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDMgNAo+IGV4dGVybiBpbnQga2lsbCAoX19w
aWRfdCBfX3BpZCwgaW50IF9fc2lnKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQga2lsbHBnIChfX3BpZF90IF9f
cGdycCwgaW50IF9fc2lnKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
Owo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgcmFpc2UgKGludCBfX3NpZykgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAKPiBleHRlcm4gX19zaWdo
YW5kbGVyX3Qgc3NpZ25hbCAoaW50IF9fc2lnLCBfX3NpZ2hhbmRsZXJfdCBfX2hhbmRsZXIpCj4g
ICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IGV4dGVybiBp
bnQgZ3NpZ25hbCAoaW50IF9fc2lnKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+IAo+IAo+IAo+IAo+IGV4dGVybiB2b2lkIHBzaWduYWwgKGludCBfX3NpZywgY29u
c3QgY2hhciAqX19zKTsKPiAKPiAKPiBleHRlcm4gdm9pZCBwc2lnaW5mbyAoY29uc3Qgc2lnaW5m
b190ICpfX3BpbmZvLCBjb25zdCBjaGFyICpfX3MpOwo+ICMgMTg3ICIvdXNyL2luY2x1ZGUvc2ln
bmFsLmgiIDMgNAo+IGV4dGVybiBpbnQgc2lnYmxvY2sgKGludCBfX21hc2spIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVjYXRl
ZF9fKSk7Cj4gCj4gCj4gZXh0ZXJuIGludCBzaWdzZXRtYXNrIChpbnQgX19tYXNrKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2RlcHJl
Y2F0ZWRfXykpOwo+IAo+IAo+IGV4dGVybiBpbnQgc2lnZ2V0bWFzayAodm9pZCkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19kZXByZWNh
dGVkX18pKTsKPiAjIDIwNyAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAzIDQKPiB0eXBlZGVmIF9f
c2lnaGFuZGxlcl90IHNpZ190Owo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgc2lnZW1wdHlz
ZXQgKHNpZ3NldF90ICpfX3NldCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gCj4gCj4gZXh0ZXJuIGlu
dCBzaWdmaWxsc2V0IChzaWdzZXRfdCAqX19zZXQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+IAo+IAo+
IGV4dGVybiBpbnQgc2lnYWRkc2V0IChzaWdzZXRfdCAqX19zZXQsIGludCBfX3NpZ25vKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMSkpKTsKPiAKPiAKPiBleHRlcm4gaW50IHNpZ2RlbHNldCAoc2lnc2V0X3QgKl9f
c2V0LCBpbnQgX19zaWdubykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gCj4gCj4gZXh0ZXJuIGludCBz
aWdpc21lbWJlciAoY29uc3Qgc2lnc2V0X3QgKl9fc2V0LCBpbnQgX19zaWdubykKPiAgICAgIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxKSkpOwo+ICMgMjQzICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDMgNAo+ICMg
MSAiL3Vzci9pbmNsdWRlL2JpdHMvc2lnYWN0aW9uLmgiIDEgMyA0Cj4gIyAyNCAiL3Vzci9pbmNs
dWRlL2JpdHMvc2lnYWN0aW9uLmgiIDMgNAo+IHN0cnVjdCBzaWdhY3Rpb24KPiAgIHsKPiAKPiAK
PiAgICAgdW5pb24KPiAgICAgICB7Cj4gCj4gIF9fc2lnaGFuZGxlcl90IHNhX2hhbmRsZXI7Cj4g
Cj4gIHZvaWQgKCpzYV9zaWdhY3Rpb24pIChpbnQsIHNpZ2luZm9fdCAqLCB2b2lkICopOwo+ICAg
ICAgIH0KPiAgICAgX19zaWdhY3Rpb25faGFuZGxlcjsKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiAg
ICAgX19zaWdzZXRfdCBzYV9tYXNrOwo+IAo+IAo+ICAgICBpbnQgc2FfZmxhZ3M7Cj4gCj4gCj4g
ICAgIHZvaWQgKCpzYV9yZXN0b3JlcikgKHZvaWQpOwo+ICAgfTsKPiAjIDI0NCAiL3Vzci9pbmNs
dWRlL3NpZ25hbC5oIiAyIDMgNAo+IAo+IAo+IGV4dGVybiBpbnQgc2lncHJvY21hc2sgKGludCBf
X2hvdywgY29uc3Qgc2lnc2V0X3QgKl9fcmVzdHJpY3QgX19zZXQsCj4gICAgc2lnc2V0X3QgKl9f
cmVzdHJpY3QgX19vc2V0KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
Owo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgc2lnc3VzcGVuZCAoY29uc3Qgc2lnc2V0
X3QgKl9fc2V0KSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gCj4gCj4gZXh0
ZXJuIGludCBzaWdhY3Rpb24gKGludCBfX3NpZywgY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiAqX19y
ZXN0cmljdCBfX2FjdCwKPiAgICAgICAgIHN0cnVjdCBzaWdhY3Rpb24gKl9fcmVzdHJpY3QgX19v
YWN0KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IGV4
dGVybiBpbnQgc2lncGVuZGluZyAoc2lnc2V0X3QgKl9fc2V0KSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsK
PiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHNpZ3dhaXQgKGNvbnN0IHNpZ3NldF90ICpf
X3Jlc3RyaWN0IF9fc2V0LCBpbnQgKl9fcmVzdHJpY3QgX19zaWcpCj4gICAgICBfX2F0dHJpYnV0
ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGlu
dCBzaWd3YWl0aW5mbyAoY29uc3Qgc2lnc2V0X3QgKl9fcmVzdHJpY3QgX19zZXQsCj4gICAgc2ln
aW5mb190ICpfX3Jlc3RyaWN0IF9faW5mbykgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgx
KSkpOwo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgc2lndGltZWR3YWl0IChjb25zdCBz
aWdzZXRfdCAqX19yZXN0cmljdCBfX3NldCwKPiAgICAgc2lnaW5mb190ICpfX3Jlc3RyaWN0IF9f
aW5mbywKPiAgICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjICpfX3Jlc3RyaWN0IF9fdGltZW91dCkK
PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAKPiAKPiBleHRl
cm4gaW50IHNpZ3F1ZXVlIChfX3BpZF90IF9fcGlkLCBpbnQgX19zaWcsIGNvbnN0IHVuaW9uIHNp
Z3ZhbCBfX3ZhbCkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSk7Cj4gIyAzMDEgIi91c3IvaW5jbHVkZS9zaWduYWwuaCIgMyA0Cj4gZXh0ZXJuIGNvbnN0IGNo
YXIgKmNvbnN0IF9zeXNfc2lnbGlzdFs2NV07Cj4gZXh0ZXJuIGNvbnN0IGNoYXIgKmNvbnN0IHN5
c19zaWdsaXN0WzY1XTsKPiAKPiAKPiAKPiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ2NvbnRl
eHQuaCIgMSAzIDQKPiAjIDI5ICIvdXNyL2luY2x1ZGUvYml0cy9zaWdjb250ZXh0LmgiIDMgNAo+
IHN0cnVjdCBfZnB4X3N3X2J5dGVzCj4gewo+ICAgX191aW50MzJfdCBtYWdpYzE7Cj4gICBfX3Vp
bnQzMl90IGV4dGVuZGVkX3NpemU7Cj4gICBfX3VpbnQ2NF90IHhzdGF0ZV9idjsKPiAgIF9fdWlu
dDMyX3QgeHN0YXRlX3NpemU7Cj4gICBfX3VpbnQzMl90IHBhZGRpbmdbN107Cj4gfTsKPiAKPiBz
dHJ1Y3QgX2ZwcmVnCj4gewo+ICAgdW5zaWduZWQgc2hvcnQgc2lnbmlmaWNhbmRbNF07Cj4gICB1
bnNpZ25lZCBzaG9ydCBleHBvbmVudDsKPiB9Owo+IAo+IHN0cnVjdCBfZnB4cmVnCj4gewo+ICAg
dW5zaWduZWQgc2hvcnQgc2lnbmlmaWNhbmRbNF07Cj4gICB1bnNpZ25lZCBzaG9ydCBleHBvbmVu
dDsKPiAgIHVuc2lnbmVkIHNob3J0IHBhZGRpbmdbM107Cj4gfTsKPiAKPiBzdHJ1Y3QgX3htbXJl
Zwo+IHsKPiAgIF9fdWludDMyX3QgZWxlbWVudFs0XTsKPiB9Owo+IAo+IAo+IAo+IAo+IAo+IHN0
cnVjdCBfZnBzdGF0ZQo+IHsKPiAKPiAgIF9fdWludDMyX3QgY3c7Cj4gICBfX3VpbnQzMl90IHN3
Owo+ICAgX191aW50MzJfdCB0YWc7Cj4gICBfX3VpbnQzMl90IGlwb2ZmOwo+ICAgX191aW50MzJf
dCBjc3NlbDsKPiAgIF9fdWludDMyX3QgZGF0YW9mZjsKPiAgIF9fdWludDMyX3QgZGF0YXNlbDsK
PiAgIHN0cnVjdCBfZnByZWcgX3N0WzhdOwo+ICAgdW5zaWduZWQgc2hvcnQgc3RhdHVzOwo+ICAg
dW5zaWduZWQgc2hvcnQgbWFnaWM7Cj4gCj4gCj4gICBfX3VpbnQzMl90IF9meHNyX2Vudls2XTsK
PiAgIF9fdWludDMyX3QgbXhjc3I7Cj4gICBfX3VpbnQzMl90IHJlc2VydmVkOwo+ICAgc3RydWN0
IF9mcHhyZWcgX2Z4c3Jfc3RbOF07Cj4gICBzdHJ1Y3QgX3htbXJlZyBfeG1tWzhdOwo+ICAgX191
aW50MzJfdCBwYWRkaW5nWzU2XTsKPiB9Owo+ICMgOTMgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ2Nv
bnRleHQuaCIgMyA0Cj4gc3RydWN0IHNpZ2NvbnRleHQKPiB7Cj4gICB1bnNpZ25lZCBzaG9ydCBn
cywgX19nc2g7Cj4gICB1bnNpZ25lZCBzaG9ydCBmcywgX19mc2g7Cj4gICB1bnNpZ25lZCBzaG9y
dCBlcywgX19lc2g7Cj4gICB1bnNpZ25lZCBzaG9ydCBkcywgX19kc2g7Cj4gICB1bnNpZ25lZCBs
b25nIGVkaTsKPiAgIHVuc2lnbmVkIGxvbmcgZXNpOwo+ICAgdW5zaWduZWQgbG9uZyBlYnA7Cj4g
ICB1bnNpZ25lZCBsb25nIGVzcDsKPiAgIHVuc2lnbmVkIGxvbmcgZWJ4Owo+ICAgdW5zaWduZWQg
bG9uZyBlZHg7Cj4gICB1bnNpZ25lZCBsb25nIGVjeDsKPiAgIHVuc2lnbmVkIGxvbmcgZWF4Owo+
ICAgdW5zaWduZWQgbG9uZyB0cmFwbm87Cj4gICB1bnNpZ25lZCBsb25nIGVycjsKPiAgIHVuc2ln
bmVkIGxvbmcgZWlwOwo+ICAgdW5zaWduZWQgc2hvcnQgY3MsIF9fY3NoOwo+ICAgdW5zaWduZWQg
bG9uZyBlZmxhZ3M7Cj4gICB1bnNpZ25lZCBsb25nIGVzcF9hdF9zaWduYWw7Cj4gICB1bnNpZ25l
ZCBzaG9ydCBzcywgX19zc2g7Cj4gICBzdHJ1Y3QgX2Zwc3RhdGUgKiBmcHN0YXRlOwo+ICAgdW5z
aWduZWQgbG9uZyBvbGRtYXNrOwo+ICAgdW5zaWduZWQgbG9uZyBjcjI7Cj4gfTsKPiAjIDE3NSAi
L3Vzci9pbmNsdWRlL2JpdHMvc2lnY29udGV4dC5oIiAzIDQKPiBzdHJ1Y3QgX3hzYXZlX2hkcgo+
IHsKPiAgIF9fdWludDY0X3QgeHN0YXRlX2J2Owo+ICAgX191aW50NjRfdCByZXNlcnZlZDFbMl07
Cj4gICBfX3VpbnQ2NF90IHJlc2VydmVkMls1XTsKPiB9Owo+IAo+IHN0cnVjdCBfeW1taF9zdGF0
ZQo+IHsKPiAgIF9fdWludDMyX3QgeW1taF9zcGFjZVs2NF07Cj4gfTsKPiAKPiBzdHJ1Y3QgX3hz
dGF0ZQo+IHsKPiAgIHN0cnVjdCBfZnBzdGF0ZSBmcHN0YXRlOwo+ICAgc3RydWN0IF94c2F2ZV9o
ZHIgeHN0YXRlX2hkcjsKPiAgIHN0cnVjdCBfeW1taF9zdGF0ZSB5bW1oOwo+IH07Cj4gIyAzMDcg
Ii91c3IvaW5jbHVkZS9zaWduYWwuaCIgMiAzIDQKPiAKPiAKPiBleHRlcm4gaW50IHNpZ3JldHVy
biAoc3RydWN0IHNpZ2NvbnRleHQgKl9fc2NwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IAo+IAo+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYt
cmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gIyAzMTcgIi91c3Iv
aW5jbHVkZS9zaWduYWwuaCIgMiAzIDQKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHNpZ2ludGVy
cnVwdCAoaW50IF9fc2lnLCBpbnQgX19pbnRlcnJ1cHQpIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9zaWdzdGFjay5o
IiAxIDMgNAo+ICMgMjUgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ3N0YWNrLmgiIDMgNAo+IHN0cnVj
dCBzaWdzdGFjawo+ICAgewo+ICAgICB2b2lkICpzc19zcDsKPiAgICAgaW50IHNzX29uc3RhY2s7
Cj4gICB9Owo+IAo+IAo+IAo+IGVudW0KPiB7Cj4gICBTU19PTlNUQUNLID0gMSwKPiAKPiAgIFNT
X0RJU0FCTEUKPiAKPiB9Owo+ICMgNDkgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ3N0YWNrLmgiIDMg
NAo+IHR5cGVkZWYgc3RydWN0IHNpZ2FsdHN0YWNrCj4gICB7Cj4gICAgIHZvaWQgKnNzX3NwOwo+
ICAgICBpbnQgc3NfZmxhZ3M7Cj4gICAgIHNpemVfdCBzc19zaXplOwo+ICAgfSBzdGFja190Owo+
ICMgMzI0ICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4gCj4gCj4gIyAxICIvdXNyL2lu
Y2x1ZGUvc3lzL3Vjb250ZXh0LmgiIDEgMyA0Cj4gIyAyMiAiL3Vzci9pbmNsdWRlL3N5cy91Y29u
dGV4dC5oIiAzIDQKPiAjIDEgIi91c3IvaW5jbHVkZS9zaWduYWwuaCIgMSAzIDQKPiAjIDIzICIv
dXNyL2luY2x1ZGUvc3lzL3Vjb250ZXh0LmgiIDIgMyA0Cj4gIyAxNDYgIi91c3IvaW5jbHVkZS9z
eXMvdWNvbnRleHQuaCIgMyA0Cj4gdHlwZWRlZiBpbnQgZ3JlZ190Owo+IAo+IAo+IAo+IAo+IAo+
IHR5cGVkZWYgZ3JlZ190IGdyZWdzZXRfdFsxOV07Cj4gIyAyMDAgIi91c3IvaW5jbHVkZS9zeXMv
dWNvbnRleHQuaCIgMyA0Cj4gc3RydWN0IF9saWJjX2ZwcmVnCj4gewo+ICAgdW5zaWduZWQgc2hv
cnQgaW50IHNpZ25pZmljYW5kWzRdOwo+ICAgdW5zaWduZWQgc2hvcnQgaW50IGV4cG9uZW50Owo+
IH07Cj4gCj4gc3RydWN0IF9saWJjX2Zwc3RhdGUKPiB7Cj4gICB1bnNpZ25lZCBsb25nIGludCBj
dzsKPiAgIHVuc2lnbmVkIGxvbmcgaW50IHN3Owo+ICAgdW5zaWduZWQgbG9uZyBpbnQgdGFnOwo+
ICAgdW5zaWduZWQgbG9uZyBpbnQgaXBvZmY7Cj4gICB1bnNpZ25lZCBsb25nIGludCBjc3NlbDsK
PiAgIHVuc2lnbmVkIGxvbmcgaW50IGRhdGFvZmY7Cj4gICB1bnNpZ25lZCBsb25nIGludCBkYXRh
c2VsOwo+ICAgc3RydWN0IF9saWJjX2ZwcmVnIF9zdFs4XTsKPiAgIHVuc2lnbmVkIGxvbmcgaW50
IHN0YXR1czsKPiB9Owo+IAo+IAo+IHR5cGVkZWYgc3RydWN0IF9saWJjX2Zwc3RhdGUgKmZwcmVn
c2V0X3Q7Cj4gCj4gCj4gdHlwZWRlZiBzdHJ1Y3QKPiAgIHsKPiAgICAgZ3JlZ3NldF90IGdyZWdz
Owo+IAo+IAo+ICAgICBmcHJlZ3NldF90IGZwcmVnczsKPiAgICAgdW5zaWduZWQgbG9uZyBpbnQg
b2xkbWFzazsKPiAgICAgdW5zaWduZWQgbG9uZyBpbnQgY3IyOwo+ICAgfSBtY29udGV4dF90Owo+
IAo+IAo+IHR5cGVkZWYgc3RydWN0IHVjb250ZXh0Cj4gICB7Cj4gICAgIHVuc2lnbmVkIGxvbmcg
aW50IHVjX2ZsYWdzOwo+ICAgICBzdHJ1Y3QgdWNvbnRleHQgKnVjX2xpbms7Cj4gICAgIHN0YWNr
X3QgdWNfc3RhY2s7Cj4gICAgIG1jb250ZXh0X3QgdWNfbWNvbnRleHQ7Cj4gICAgIF9fc2lnc2V0
X3QgdWNfc2lnbWFzazsKPiAgICAgc3RydWN0IF9saWJjX2Zwc3RhdGUgX19mcHJlZ3NfbWVtOwo+
ICAgfSB1Y29udGV4dF90Owo+ICMgMzI3ICIvdXNyL2luY2x1ZGUvc2lnbmFsLmgiIDIgMyA0Cj4g
Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBzaWdzdGFjayAoc3RydWN0IHNpZ3N0YWNrICpfX3Nz
LCBzdHJ1Y3Qgc2lnc3RhY2sgKl9fb3NzKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19kZXByZWNhdGVkX18pKTsKPiAKPiAK
PiAKPiBleHRlcm4gaW50IHNpZ2FsdHN0YWNrIChjb25zdCBzdHJ1Y3Qgc2lnYWx0c3RhY2sgKl9f
cmVzdHJpY3QgX19zcywKPiAgICBzdHJ1Y3Qgc2lnYWx0c3RhY2sgKl9fcmVzdHJpY3QgX19vc3Mp
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gIyAzNjIgIi91c3Iv
aW5jbHVkZS9zaWduYWwuaCIgMyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9zaWd0aHJlYWQu
aCIgMSAzIDQKPiAjIDMwICIvdXNyL2luY2x1ZGUvYml0cy9zaWd0aHJlYWQuaCIgMyA0Cj4gZXh0
ZXJuIGludCBwdGhyZWFkX3NpZ21hc2sgKGludCBfX2hvdywKPiAgICAgICAgY29uc3QgX19zaWdz
ZXRfdCAqX19yZXN0cmljdCBfX25ld21hc2ssCj4gICAgICAgIF9fc2lnc2V0X3QgKl9fcmVzdHJp
Y3QgX19vbGRtYXNrKV9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g
Cj4gCj4gZXh0ZXJuIGludCBwdGhyZWFkX2tpbGwgKHB0aHJlYWRfdCBfX3RocmVhZGlkLCBpbnQg
X19zaWdubykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAjIDM2
MyAiL3Vzci9pbmNsdWRlL3NpZ25hbC5oIiAyIDMgNAo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVy
biBpbnQgX19saWJjX2N1cnJlbnRfc2lncnRtaW4gKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gZXh0ZXJuIGludCBfX2xpYmNfY3VycmVudF9zaWdy
dG1heCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAK
PiAKPiAKPiAKPiAjIDQyICJtYWNoaW5lLmMiIDIKPiAjIDEgIi91c3IvaW5jbHVkZS9lcnJuby5o
IiAxIDMgNAo+ICMgMzEgIi91c3IvaW5jbHVkZS9lcnJuby5oIiAzIDQKPiAKPiAKPiAKPiAKPiAj
IDEgIi91c3IvaW5jbHVkZS9iaXRzL2Vycm5vLmgiIDEgMyA0Cj4gIyAyNCAiL3Vzci9pbmNsdWRl
L2JpdHMvZXJybm8uaCIgMyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUvbGludXgvZXJybm8uaCIgMSAz
IDQKPiAjIDEgIi91c3IvaW5jbHVkZS9hc20vZXJybm8uaCIgMSAzIDQKPiAjIDEgIi91c3IvaW5j
bHVkZS9hc20tZ2VuZXJpYy9lcnJuby5oIiAxIDMgNAo+IAo+IAo+IAo+ICMgMSAiL3Vzci9pbmNs
dWRlL2FzbS1nZW5lcmljL2Vycm5vLWJhc2UuaCIgMSAzIDQKPiAjIDUgIi91c3IvaW5jbHVkZS9h
c20tZ2VuZXJpYy9lcnJuby5oIiAyIDMgNAo+ICMgMSAiL3Vzci9pbmNsdWRlL2FzbS9lcnJuby5o
IiAyIDMgNAo+ICMgMSAiL3Vzci9pbmNsdWRlL2xpbnV4L2Vycm5vLmgiIDIgMyA0Cj4gIyAyNSAi
L3Vzci9pbmNsdWRlL2JpdHMvZXJybm8uaCIgMiAzIDQKPiAjIDUwICIvdXNyL2luY2x1ZGUvYml0
cy9lcnJuby5oIiAzIDQKPiBleHRlcm4gaW50ICpfX2Vycm5vX2xvY2F0aW9uICh2b2lkKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2Nv
bnN0X18pKTsKPiAjIDM2ICIvdXNyL2luY2x1ZGUvZXJybm8uaCIgMiAzIDQKPiAjIDU4ICIvdXNy
L2luY2x1ZGUvZXJybm8uaCIgMyA0Cj4gCj4gIyA0MyAibWFjaGluZS5jIiAyCj4gIyAxICIvdXNy
L2luY2x1ZGUvZmNudGwuaCIgMSAzIDQKPiAjIDI4ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMyA0
Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9mY250bC5oIiAx
IDMgNAo+ICMgMzUgIi91c3IvaW5jbHVkZS9iaXRzL2ZjbnRsLmgiIDMgNAo+IHN0cnVjdCBmbG9j
awo+ICAgewo+ICAgICBzaG9ydCBpbnQgbF90eXBlOwo+ICAgICBzaG9ydCBpbnQgbF93aGVuY2U7
Cj4gCj4gICAgIF9fb2ZmX3QgbF9zdGFydDsKPiAgICAgX19vZmZfdCBsX2xlbjsKPiAKPiAKPiAK
PiAKPiAgICAgX19waWRfdCBsX3BpZDsKPiAgIH07Cj4gIyA2MSAiL3Vzci9pbmNsdWRlL2JpdHMv
ZmNudGwuaCIgMyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9mY250bC1saW51eC5oIiAxIDMg
NAo+ICMgMzQ1ICIvdXNyL2luY2x1ZGUvYml0cy9mY250bC1saW51eC5oIiAzIDQKPiAKPiAjIDQx
OSAiL3Vzci9pbmNsdWRlL2JpdHMvZmNudGwtbGludXguaCIgMyA0Cj4gCj4gIyA2MSAiL3Vzci9p
bmNsdWRlL2JpdHMvZmNudGwuaCIgMiAzIDQKPiAjIDM2ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIg
MiAzIDQKPiAjIDc2ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMyA0Cj4gIyAxICIvdXNyL2luY2x1
ZGUvdGltZS5oIiAxIDMgNAo+ICMgNzcgIi91c3IvaW5jbHVkZS9mY250bC5oIiAyIDMgNAo+ICMg
MSAiL3Vzci9pbmNsdWRlL2JpdHMvc3RhdC5oIiAxIDMgNAo+ICMgNDYgIi91c3IvaW5jbHVkZS9i
aXRzL3N0YXQuaCIgMyA0Cj4gc3RydWN0IHN0YXQKPiAgIHsKPiAgICAgX19kZXZfdCBzdF9kZXY7
Cj4gCj4gICAgIHVuc2lnbmVkIHNob3J0IGludCBfX3BhZDE7Cj4gCj4gCj4gICAgIF9faW5vX3Qg
c3RfaW5vOwo+IAo+IAo+IAo+IAo+ICAgICBfX21vZGVfdCBzdF9tb2RlOwo+ICAgICBfX25saW5r
X3Qgc3Rfbmxpbms7Cj4gCj4gCj4gCj4gCj4gICAgIF9fdWlkX3Qgc3RfdWlkOwo+ICAgICBfX2dp
ZF90IHN0X2dpZDsKPiAKPiAKPiAKPiAgICAgX19kZXZfdCBzdF9yZGV2Owo+IAo+ICAgICB1bnNp
Z25lZCBzaG9ydCBpbnQgX19wYWQyOwo+IAo+IAo+ICAgICBfX29mZl90IHN0X3NpemU7Cj4gCj4g
Cj4gCj4gICAgIF9fYmxrc2l6ZV90IHN0X2Jsa3NpemU7Cj4gCj4gICAgIF9fYmxrY250X3Qgc3Rf
YmxvY2tzOwo+ICMgOTEgIi91c3IvaW5jbHVkZS9iaXRzL3N0YXQuaCIgMyA0Cj4gICAgIHN0cnVj
dCB0aW1lc3BlYyBzdF9hdGltOwo+ICAgICBzdHJ1Y3QgdGltZXNwZWMgc3RfbXRpbTsKPiAgICAg
c3RydWN0IHRpbWVzcGVjIHN0X2N0aW07Cj4gIyAxMDkgIi91c3IvaW5jbHVkZS9iaXRzL3N0YXQu
aCIgMyA0Cj4gICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fZ2xpYmNfcmVzZXJ2ZWQ0Owo+ICAgICB1
bnNpZ25lZCBsb25nIGludCBfX2dsaWJjX3Jlc2VydmVkNTsKPiAKPiAKPiAKPiAKPiAgIH07Cj4g
IyA3OCAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDIgMyA0Cj4gIyAxNjkgIi91c3IvaW5jbHVkZS9m
Y250bC5oIiAzIDQKPiBleHRlcm4gaW50IGZjbnRsIChpbnQgX19mZCwgaW50IF9fY21kLCAuLi4p
Owo+ICMgMTc5ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMyA0Cj4gZXh0ZXJuIGludCBvcGVuIChj
b25zdCBjaGFyICpfX2ZpbGUsIGludCBfX29mbGFnLCAuLi4pIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMSkpKTsKPiAjIDIwMyAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDMgNAo+IGV4dGVy
biBpbnQgb3BlbmF0IChpbnQgX19mZCwgY29uc3QgY2hhciAqX19maWxlLCBpbnQgX19vZmxhZywg
Li4uKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkpOwo+ICMgMjI1ICIv
dXNyL2luY2x1ZGUvZmNudGwuaCIgMyA0Cj4gZXh0ZXJuIGludCBjcmVhdCAoY29uc3QgY2hhciAq
X19maWxlLCBtb2RlX3QgX19tb2RlKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7
Cj4gIyAyNTQgIi91c3IvaW5jbHVkZS9mY250bC5oIiAzIDQKPiBleHRlcm4gaW50IGxvY2tmIChp
bnQgX19mZCwgaW50IF9fY21kLCBvZmZfdCBfX2xlbik7Cj4gIyAyNzEgIi91c3IvaW5jbHVkZS9m
Y250bC5oIiAzIDQKPiBleHRlcm4gaW50IHBvc2l4X2ZhZHZpc2UgKGludCBfX2ZkLCBvZmZfdCBf
X29mZnNldCwgb2ZmX3QgX19sZW4sCj4gICAgICBpbnQgX19hZHZpc2UpIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gIyAyOTMgIi91c3IvaW5jbHVkZS9mY250bC5o
IiAzIDQKPiBleHRlcm4gaW50IHBvc2l4X2ZhbGxvY2F0ZSAoaW50IF9fZmQsIG9mZl90IF9fb2Zm
c2V0LCBvZmZfdCBfX2xlbik7Cj4gIyAzMTUgIi91c3IvaW5jbHVkZS9mY250bC5oIiAzIDQKPiAK
PiAjIDQ0ICJtYWNoaW5lLmMiIDIKPiAjIDEgIi91c3IvaW5jbHVkZS9jdHlwZS5oIiAxIDMgNAo+
ICMgMjggIi91c3IvaW5jbHVkZS9jdHlwZS5oIiAzIDQKPiAKPiAjIDQ2ICIvdXNyL2luY2x1ZGUv
Y3R5cGUuaCIgMyA0Cj4gZW51bQo+IHsKPiAgIF9JU3VwcGVyID0gKCgwKSA8IDggPyAoKDEgPDwg
KDApKSA8PCA4KSA6ICgoMSA8PCAoMCkpID4+IDgpKSwKPiAgIF9JU2xvd2VyID0gKCgxKSA8IDgg
PyAoKDEgPDwgKDEpKSA8PCA4KSA6ICgoMSA8PCAoMSkpID4+IDgpKSwKPiAgIF9JU2FscGhhID0g
KCgyKSA8IDggPyAoKDEgPDwgKDIpKSA8PCA4KSA6ICgoMSA8PCAoMikpID4+IDgpKSwKPiAgIF9J
U2RpZ2l0ID0gKCgzKSA8IDggPyAoKDEgPDwgKDMpKSA8PCA4KSA6ICgoMSA8PCAoMykpID4+IDgp
KSwKPiAgIF9JU3hkaWdpdCA9ICgoNCkgPCA4ID8gKCgxIDw8ICg0KSkgPDwgOCkgOiAoKDEgPDwg
KDQpKSA+PiA4KSksCj4gICBfSVNzcGFjZSA9ICgoNSkgPCA4ID8gKCgxIDw8ICg1KSkgPDwgOCkg
OiAoKDEgPDwgKDUpKSA+PiA4KSksCj4gICBfSVNwcmludCA9ICgoNikgPCA4ID8gKCgxIDw8ICg2
KSkgPDwgOCkgOiAoKDEgPDwgKDYpKSA+PiA4KSksCj4gICBfSVNncmFwaCA9ICgoNykgPCA4ID8g
KCgxIDw8ICg3KSkgPDwgOCkgOiAoKDEgPDwgKDcpKSA+PiA4KSksCj4gICBfSVNibGFuayA9ICgo
OCkgPCA4ID8gKCgxIDw8ICg4KSkgPDwgOCkgOiAoKDEgPDwgKDgpKSA+PiA4KSksCj4gICBfSVNj
bnRybCA9ICgoOSkgPCA4ID8gKCgxIDw8ICg5KSkgPDwgOCkgOiAoKDEgPDwgKDkpKSA+PiA4KSks
Cj4gICBfSVNwdW5jdCA9ICgoMTApIDwgOCA/ICgoMSA8PCAoMTApKSA8PCA4KSA6ICgoMSA8PCAo
MTApKSA+PiA4KSksCj4gICBfSVNhbG51bSA9ICgoMTEpIDwgOCA/ICgoMSA8PCAoMTEpKSA8PCA4
KSA6ICgoMSA8PCAoMTEpKSA+PiA4KSkKPiB9Owo+ICMgNzkgIi91c3IvaW5jbHVkZS9jdHlwZS5o
IiAzIDQKPiBleHRlcm4gY29uc3QgdW5zaWduZWQgc2hvcnQgaW50ICoqX19jdHlwZV9iX2xvYyAo
dm9pZCkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+IGV4dGVybiBjb25zdCBfX2ludDMyX3QgKipfX2N0
eXBlX3RvbG93ZXJfbG9jICh2b2lkKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4gZXh0ZXJuIGNvbnN0
IF9faW50MzJfdCAqKl9fY3R5cGVfdG91cHBlcl9sb2MgKHZvaWQpCj4gICAgICBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18p
KTsKPiAjIDEwNCAiL3Vzci9pbmNsdWRlL2N0eXBlLmgiIDMgNAo+IAo+IAo+IAo+IAo+IAo+IAo+
IGV4dGVybiBpbnQgaXNhbG51bSAoaW50KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwo+IGV4dGVybiBpbnQgaXNhbHBoYSAoaW50KSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpOwo+IGV4dGVybiBpbnQgaXNjbnRybCAoaW50KSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IGV4dGVybiBpbnQgaXNkaWdpdCAo
aW50KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IGV4dGVybiBp
bnQgaXNsb3dlciAoaW50KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
Owo+IGV4dGVybiBpbnQgaXNncmFwaCAoaW50KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpOwo+IGV4dGVybiBpbnQgaXNwcmludCAoaW50KSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IGV4dGVybiBpbnQgaXNwdW5jdCAoaW50KSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IGV4dGVybiBpbnQgaXNzcGFj
ZSAoaW50KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IGV4dGVy
biBpbnQgaXN1cHBlciAoaW50KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpOwo+IGV4dGVybiBpbnQgaXN4ZGlnaXQgKGludCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiBleHRlcm4gaW50IHRvbG93ZXIgKGludCBfX2Mp
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gZXh0ZXJu
IGludCB0b3VwcGVyIChpbnQgX19jKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgaXNibGFuayAoaW50
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+ICMgMTUw
ICIvdXNyL2luY2x1ZGUvY3R5cGUuaCIgMyA0Cj4gZXh0ZXJuIGludCBpc2FzY2lpIChpbnQgX19j
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IGV4
dGVybiBpbnQgdG9hc2NpaSAoaW50IF9fYykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKTsKPiAKPiAKPiAKPiBleHRlcm4gaW50IF90b3VwcGVyIChpbnQpIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gZXh0ZXJuIGludCBfdG9sb3dlciAo
aW50KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ICMgMjU3ICIv
dXNyL2luY2x1ZGUvY3R5cGUuaCIgMyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUveGxvY2FsZS5oIiAx
IDMgNAo+ICMgMjcgIi91c3IvaW5jbHVkZS94bG9jYWxlLmgiIDMgNAo+IHR5cGVkZWYgc3RydWN0
IF9fbG9jYWxlX3N0cnVjdAo+IHsKPiAKPiAgIHN0cnVjdCBfX2xvY2FsZV9kYXRhICpfX2xvY2Fs
ZXNbMTNdOwo+IAo+IAo+ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgaW50ICpfX2N0eXBlX2I7Cj4g
ICBjb25zdCBpbnQgKl9fY3R5cGVfdG9sb3dlcjsKPiAgIGNvbnN0IGludCAqX19jdHlwZV90b3Vw
cGVyOwo+IAo+IAo+ICAgY29uc3QgY2hhciAqX19uYW1lc1sxM107Cj4gfSAqX19sb2NhbGVfdDsK
PiAKPiAKPiB0eXBlZGVmIF9fbG9jYWxlX3QgbG9jYWxlX3Q7Cj4gIyAyNTggIi91c3IvaW5jbHVk
ZS9jdHlwZS5oIiAyIDMgNAo+ICMgMjcxICIvdXNyL2luY2x1ZGUvY3R5cGUuaCIgMyA0Cj4gZXh0
ZXJuIGludCBpc2FsbnVtX2wgKGludCwgX19sb2NhbGVfdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKTsKPiBleHRlcm4gaW50IGlzYWxwaGFfbCAoaW50LCBfX2xvY2Fs
ZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IGV4dGVybiBp
bnQgaXNjbnRybF9sIChpbnQsIF9fbG9jYWxlX3QpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSk7Cj4gZXh0ZXJuIGludCBpc2RpZ2l0X2wgKGludCwgX19sb2NhbGVfdCkg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiBleHRlcm4gaW50IGlz
bG93ZXJfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwo+IGV4dGVybiBpbnQgaXNncmFwaF9sIChpbnQsIF9fbG9jYWxlX3QpIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gZXh0ZXJuIGludCBpc3ByaW50
X2wgKGludCwgX19sb2NhbGVfdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKTsKPiBleHRlcm4gaW50IGlzcHVuY3RfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IGV4dGVybiBpbnQgaXNzcGFjZV9sIChp
bnQsIF9fbG9jYWxlX3QpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7
Cj4gZXh0ZXJuIGludCBpc3VwcGVyX2wgKGludCwgX19sb2NhbGVfdCkgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiBleHRlcm4gaW50IGlzeGRpZ2l0X2wgKGludCwg
X19sb2NhbGVfdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAK
PiBleHRlcm4gaW50IGlzYmxhbmtfbCAoaW50LCBfX2xvY2FsZV90KSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IGV4dGVybiBpbnQgX190b2xvd2Vy
X2wgKGludCBfX2MsIF9fbG9jYWxlX3QgX19sKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpOwo+IGV4dGVybiBpbnQgdG9sb3dlcl9sIChpbnQgX19jLCBfX2xvY2FsZV90
IF9fbCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiBl
eHRlcm4gaW50IF9fdG91cHBlcl9sIChpbnQgX19jLCBfX2xvY2FsZV90IF9fbCkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiBleHRlcm4gaW50IHRvdXBwZXJfbCAo
aW50IF9fYywgX19sb2NhbGVfdCBfX2wpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSk7Cj4gIyAzNDcgIi91c3IvaW5jbHVkZS9jdHlwZS5oIiAzIDQKPiAKPiAjIDQ1ICJt
YWNoaW5lLmMiIDIKPiAjIDEgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMSAzIDQKPiAjIDI3ICIv
dXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+IAo+IAo+IAo+IAo+IAo+ICMgMSAiL3Vzci9saWIv
Z2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gIyAz
MyAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAyIDMgNAo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+
IAo+IGV4dGVybiB2b2lkICptZW1jcHkgKHZvaWQgKl9fcmVzdHJpY3QgX19kZXN0LCBjb25zdCB2
b2lkICpfX3Jlc3RyaWN0IF9fc3JjLAo+ICAgICAgICBzaXplX3QgX19uKSBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSwgMikpKTsKPiAKPiAKPiBleHRlcm4gdm9pZCAqbWVtbW92ZSAodm9pZCAqX19kZXN0LCBjb25z
dCB2b2lkICpfX3NyYywgc2l6ZV90IF9fbikKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+
IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiB2b2lkICptZW1jY3B5ICh2b2lkICpfX3Jlc3RyaWN0
IF9fZGVzdCwgY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX3NyYywKPiAgICAgICAgIGludCBfX2Ms
IHNpemVfdCBfX24pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiAKPiAKPiAKPiAKPiAK
PiBleHRlcm4gdm9pZCAqbWVtc2V0ICh2b2lkICpfX3MsIGludCBfX2MsIHNpemVfdCBfX24pIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxKSkpOwo+IAo+IAo+IGV4dGVybiBpbnQgbWVtY21wIChjb25zdCB2b2lkICpf
X3MxLCBjb25zdCB2b2lkICpfX3MyLCBzaXplX3QgX19uKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gIyA5MiAiL3Vzci9pbmNsdWRlL3N0
cmluZy5oIiAzIDQKPiBleHRlcm4gdm9pZCAqbWVtY2hyIChjb25zdCB2b2lkICpfX3MsIGludCBf
X2MsIHNpemVfdCBfX24pCj4gICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25u
dWxsX18gKDEpKSk7Cj4gCj4gCj4gIyAxMjMgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4g
Cj4gCj4gZXh0ZXJuIGNoYXIgKnN0cmNweSAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsIGNvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiAK
PiBleHRlcm4gY2hhciAqc3RybmNweSAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsCj4gICAgICAg
ICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19uKQo+ICAgICAgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25u
dWxsX18gKDEsIDIpKSk7Cj4gCj4gCj4gZXh0ZXJuIGNoYXIgKnN0cmNhdCAoY2hhciAqX19yZXN0
cmljdCBfX2Rlc3QsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMpCj4gICAgICBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51
bGxfXyAoMSwgMikpKTsKPiAKPiBleHRlcm4gY2hhciAqc3RybmNhdCAoY2hhciAqX19yZXN0cmlj
dCBfX2Rlc3QsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMsCj4gICAgICAgICBzaXplX3Qg
X19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRl
X18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiAKPiAKPiBleHRlcm4gaW50IHN0cmNtcCAoY29u
c3QgY2hhciAqX19zMSwgY29uc3QgY2hhciAqX19zMikKPiAgICAgIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+IAo+IGV4dGVybiBpbnQgc3RybmNtcCAo
Y29uc3QgY2hhciAqX19zMSwgY29uc3QgY2hhciAqX19zMiwgc2l6ZV90IF9fbikKPiAgICAgIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
cHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+IAo+IAo+IGV4
dGVybiBpbnQgc3RyY29sbCAoY29uc3QgY2hhciAqX19zMSwgY29uc3QgY2hhciAqX19zMikKPiAg
ICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+IAo+
IGV4dGVybiBzaXplX3Qgc3RyeGZybSAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsCj4gICAgICAg
ICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90IF9fbikKPiAgICAgIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgyKSkpOwo+IAo+ICMgMTYyICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+IGV4
dGVybiBpbnQgc3RyY29sbF9sIChjb25zdCBjaGFyICpfX3MxLCBjb25zdCBjaGFyICpfX3MyLCBf
X2xvY2FsZV90IF9fbCkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVs
bF9fICgxLCAyLCAzKSkpOwo+IAo+IGV4dGVybiBzaXplX3Qgc3RyeGZybV9sIChjaGFyICpfX2Rl
c3QsIGNvbnN0IGNoYXIgKl9fc3JjLCBzaXplX3QgX19uLAo+ICAgICBfX2xvY2FsZV90IF9fbCkg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo
X19ub25udWxsX18gKDIsIDQpKSk7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGNoYXIgKnN0cmR1cCAo
Y29uc3QgY2hhciAqX19zKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMSkpKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gY2hhciAqc3RybmR1cCAo
Y29uc3QgY2hhciAqX19zdHJpbmcsIHNpemVfdCBfX24pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ICMgMjA2ICIvdXNyL2luY2x1ZGUvc3Ry
aW5nLmgiIDMgNAo+IAo+ICMgMjMxICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+IGV4dGVy
biBjaGFyICpzdHJjaHIgKGNvbnN0IGNoYXIgKl9fcywgaW50IF9fYykKPiAgICAgIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ICMgMjU4ICIvdXNyL2luY2x1
ZGUvc3RyaW5nLmgiIDMgNAo+IGV4dGVybiBjaGFyICpzdHJyY2hyIChjb25zdCBjaGFyICpfX3Ms
IGludCBfX2MpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSkpKTsKPiAKPiAKPiAjIDI3NyAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPiAKPiAKPiAK
PiBleHRlcm4gc2l6ZV90IHN0cmNzcG4gKGNvbnN0IGNoYXIgKl9fcywgY29uc3QgY2hhciAqX19y
ZWplY3QpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9f
YXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwg
MikpKTsKPiAKPiAKPiBleHRlcm4gc2l6ZV90IHN0cnNwbiAoY29uc3QgY2hhciAqX19zLCBjb25z
dCBjaGFyICpfX2FjY2VwdCkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgxLCAyKSkpOwo+ICMgMzEwICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+IGV4
dGVybiBjaGFyICpzdHJwYnJrIChjb25zdCBjaGFyICpfX3MsIGNvbnN0IGNoYXIgKl9fYWNjZXB0
KQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJp
YnV0ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7
Cj4gIyAzMzcgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gZXh0ZXJuIGNoYXIgKnN0cnN0
ciAoY29uc3QgY2hhciAqX19oYXlzdGFjaywgY29uc3QgY2hhciAqX19uZWVkbGUpCj4gICAgICBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf
X3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiAKPiAKPiAK
PiAKPiBleHRlcm4gY2hhciAqc3RydG9rIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX2RlbGltKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4gCj4gCj4g
Cj4gCj4gZXh0ZXJuIGNoYXIgKl9fc3RydG9rX3IgKGNoYXIgKl9fcmVzdHJpY3QgX19zLAo+ICAg
ICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZGVsaW0sCj4gICAgIGNoYXIgKipfX3Jlc3RyaWN0
IF9fc2F2ZV9wdHIpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgMykpKTsKPiAKPiBleHRlcm4gY2hh
ciAqc3RydG9rX3IgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fZGVsaW0sCj4gICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19zYXZlX3B0cikKPiAgICAg
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo
KF9fbm9ubnVsbF9fICgyLCAzKSkpOwo+ICMgMzkyICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMg
NAo+IAo+IAo+IGV4dGVybiBzaXplX3Qgc3RybGVuIChjb25zdCBjaGFyICpfX3MpCj4gICAgICBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf
X3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAKPiAKPiAK
PiAKPiBleHRlcm4gc2l6ZV90IHN0cm5sZW4gKGNvbnN0IGNoYXIgKl9fc3RyaW5nLCBzaXplX3Qg
X19tYXhsZW4pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSkpKTsKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gY2hhciAqc3RyZXJyb3IgKGludCBfX2Vycm51
bSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAjIDQyMiAi
L3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPiBleHRlcm4gaW50IHN0cmVycm9yX3IgKGludCBf
X2Vycm51bSwgY2hhciAqX19idWYsIHNpemVfdCBfX2J1ZmxlbikgX19hc21fXyAoIiIgIl9feHBn
X3N0cmVycm9yX3IiKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpCj4g
Cj4gICAgICAgICAgICAgICAgICAgICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgy
KSkpOwo+ICMgNDQwICIvdXNyL2luY2x1ZGUvc3RyaW5nLmgiIDMgNAo+IGV4dGVybiBjaGFyICpz
dHJlcnJvcl9sIChpbnQgX19lcnJudW0sIF9fbG9jYWxlX3QgX19sKSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiB2b2lkIF9f
Ynplcm8gKHZvaWQgKl9fcywgc2l6ZV90IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gCj4gCj4g
Cj4gZXh0ZXJuIHZvaWQgYmNvcHkgKGNvbnN0IHZvaWQgKl9fc3JjLCB2b2lkICpfX2Rlc3QsIHNp
emVfdCBfX24pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiAKPiAKPiBleHRlcm4gdm9p
ZCBiemVybyAodm9pZCAqX19zLCBzaXplX3QgX19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAK
PiBleHRlcm4gaW50IGJjbXAgKGNvbnN0IHZvaWQgKl9fczEsIGNvbnN0IHZvaWQgKl9fczIsIHNp
emVfdCBfX24pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MSwgMikpKTsKPiAjIDQ4NCAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPiBleHRlcm4gY2hh
ciAqaW5kZXggKGNvbnN0IGNoYXIgKl9fcywgaW50IF9fYykKPiAgICAgIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+ICMgNTEyICIvdXNyL2luY2x1ZGUvc3Ry
aW5nLmgiIDMgNAo+IGV4dGVybiBjaGFyICpyaW5kZXggKGNvbnN0IGNoYXIgKl9fcywgaW50IF9f
YykKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRy
aWJ1dGVfXyAoKF9fcHVyZV9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+
IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZmZzIChpbnQgX19pKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKPiAjIDUy
OSAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPiBleHRlcm4gaW50IHN0cmNhc2VjbXAgKGNv
bnN0IGNoYXIgKl9fczEsIGNvbnN0IGNoYXIgKl9fczIpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpIF9fYXR0
cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiAKPiAKPiBleHRlcm4gaW50IHN0cm5j
YXNlY21wIChjb25zdCBjaGFyICpfX3MxLCBjb25zdCBjaGFyICpfX3MyLCBzaXplX3QgX19uKQo+
ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0
ZV9fICgoX19wdXJlX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4g
IyA1NTIgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMyA0Cj4gZXh0ZXJuIGNoYXIgKnN0cnNlcCAo
Y2hhciAqKl9fcmVzdHJpY3QgX19zdHJpbmdwLAo+ICAgICAgICBjb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fZGVsaW0pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiAKPiAKPiAKPiAKPiBl
eHRlcm4gY2hhciAqc3Ryc2lnbmFsIChpbnQgX19zaWcpIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gZXh0ZXJuIGNoYXIgKl9fc3RwY3B5IChjaGFyICpf
X3Jlc3RyaWN0IF9fZGVzdCwgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYykKPiAgICAgIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxLCAyKSkpOwo+IGV4dGVybiBjaGFyICpzdHBjcHkgKGNoYXIgKl9fcmVzdHJp
Y3QgX19kZXN0LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjKQo+ICAgICAgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxs
X18gKDEsIDIpKSk7Cj4gCj4gCj4gCj4gZXh0ZXJuIGNoYXIgKl9fc3RwbmNweSAoY2hhciAqX19y
ZXN0cmljdCBfX2Rlc3QsCj4gICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90
IF9fbikKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+IGV4dGVybiBjaGFyICpzdHBuY3B5
IChjaGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwKPiAgICAgICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJp
Y3QgX19zcmMsIHNpemVfdCBfX24pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiAjIDY1
OCAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAzIDQKPiAKPiAjIDQ2ICJtYWNoaW5lLmMiIDIKPiAj
IDEgIi91c3IvaW5jbHVkZS90aW1lLmgiIDEgMyA0Cj4gIyAyOSAiL3Vzci9pbmNsdWRlL3RpbWUu
aCIgMyA0Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1y
ZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKPiAjIDM4ICIvdXNyL2lu
Y2x1ZGUvdGltZS5oIiAyIDMgNAo+IAo+IAo+IAo+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvdGlt
ZS5oIiAxIDMgNAo+ICMgNDIgIi91c3IvaW5jbHVkZS90aW1lLmgiIDIgMyA0Cj4gIyAxMzEgIi91
c3IvaW5jbHVkZS90aW1lLmgiIDMgNAo+IAo+IAo+IHN0cnVjdCB0bQo+IHsKPiAgIGludCB0bV9z
ZWM7Cj4gICBpbnQgdG1fbWluOwo+ICAgaW50IHRtX2hvdXI7Cj4gICBpbnQgdG1fbWRheTsKPiAg
IGludCB0bV9tb247Cj4gICBpbnQgdG1feWVhcjsKPiAgIGludCB0bV93ZGF5Owo+ICAgaW50IHRt
X3lkYXk7Cj4gICBpbnQgdG1faXNkc3Q7Cj4gCj4gCj4gICBsb25nIGludCB0bV9nbXRvZmY7Cj4g
ICBjb25zdCBjaGFyICp0bV96b25lOwo+IAo+IAo+IAo+IAo+IH07Cj4gCj4gCj4gCj4gCj4gCj4g
Cj4gCj4gCj4gc3RydWN0IGl0aW1lcnNwZWMKPiAgIHsKPiAgICAgc3RydWN0IHRpbWVzcGVjIGl0
X2ludGVydmFsOwo+ICAgICBzdHJ1Y3QgdGltZXNwZWMgaXRfdmFsdWU7Cj4gICB9Owo+IAo+IAo+
IHN0cnVjdCBzaWdldmVudDsKPiAjIDE4NiAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMyA0Cj4gCj4g
Cj4gCj4gZXh0ZXJuIGNsb2NrX3QgY2xvY2sgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gZXh0ZXJuIHRpbWVfdCB0aW1lICh0aW1lX3QgKl9f
dGltZXIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4g
ZXh0ZXJuIGRvdWJsZSBkaWZmdGltZSAodGltZV90IF9fdGltZTEsIHRpbWVfdCBfX3RpbWUwKQo+
ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0
ZV9fICgoX19jb25zdF9fKSk7Cj4gCj4gCj4gZXh0ZXJuIHRpbWVfdCBta3RpbWUgKHN0cnVjdCB0
bSAqX190cCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAK
PiAKPiAKPiAKPiBleHRlcm4gc2l6ZV90IHN0cmZ0aW1lIChjaGFyICpfX3Jlc3RyaWN0IF9fcywg
c2l6ZV90IF9fbWF4c2l6ZSwKPiAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAo+
ICAgIGNvbnN0IHN0cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+ICMgMjIzICIvdXNyL2luY2x1ZGUvdGltZS5oIiAz
IDQKPiBleHRlcm4gc2l6ZV90IHN0cmZ0aW1lX2wgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXpl
X3QgX19tYXhzaXplLAo+ICAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKPiAg
ICAgIGNvbnN0IHN0cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwLAo+ICAgICAgX19sb2NhbGVfdCBf
X2xvYykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAjIDIzNiAi
L3Vzci9pbmNsdWRlL3RpbWUuaCIgMyA0Cj4gCj4gCj4gCj4gZXh0ZXJuIHN0cnVjdCB0bSAqZ210
aW1lIChjb25zdCB0aW1lX3QgKl9fdGltZXIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4gZXh0ZXJuIHN0cnVjdCB0bSAqbG9jYWx0aW1lIChjb25z
dCB0aW1lX3QgKl9fdGltZXIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSk7Cj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIHN0cnVjdCB0bSAqZ210aW1lX3IgKGNvbnN0IHRp
bWVfdCAqX19yZXN0cmljdCBfX3RpbWVyLAo+ICAgICAgICBzdHJ1Y3QgdG0gKl9fcmVzdHJpY3Qg
X190cCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAK
PiBleHRlcm4gc3RydWN0IHRtICpsb2NhbHRpbWVfciAoY29uc3QgdGltZV90ICpfX3Jlc3RyaWN0
IF9fdGltZXIsCj4gICAgICAgICAgIHN0cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IAo+IGV4dGVy
biBjaGFyICphc2N0aW1lIChjb25zdCBzdHJ1Y3QgdG0gKl9fdHApIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gZXh0ZXJuIGNoYXIgKmN0aW1lIChjb25z
dCB0aW1lX3QgKl9fdGltZXIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSk7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGNoYXIgKmFzY3RpbWVfciAoY29uc3Qg
c3RydWN0IHRtICpfX3Jlc3RyaWN0IF9fdHAsCj4gICAgY2hhciAqX19yZXN0cmljdCBfX2J1Zikg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiBleHRlcm4g
Y2hhciAqY3RpbWVfciAoY29uc3QgdGltZV90ICpfX3Jlc3RyaWN0IF9fdGltZXIsCj4gICAgICAg
ICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IGV4dGVybiBjaGFyICpfX3R6bmFtZVsyXTsKPiBleHRl
cm4gaW50IF9fZGF5bGlnaHQ7Cj4gZXh0ZXJuIGxvbmcgaW50IF9fdGltZXpvbmU7Cj4gCj4gCj4g
Cj4gCj4gZXh0ZXJuIGNoYXIgKnR6bmFtZVsyXTsKPiAKPiAKPiAKPiBleHRlcm4gdm9pZCB0enNl
dCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAK
PiAKPiBleHRlcm4gaW50IGRheWxpZ2h0Owo+IGV4dGVybiBsb25nIGludCB0aW1lem9uZTsKPiAK
PiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHN0aW1lIChjb25zdCB0aW1lX3QgKl9fd2hlbikgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAjIDMxOSAiL3Vzci9pbmNs
dWRlL3RpbWUuaCIgMyA0Cj4gZXh0ZXJuIHRpbWVfdCB0aW1lZ20gKHN0cnVjdCB0bSAqX190cCkg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiBleHRlcm4g
dGltZV90IHRpbWVsb2NhbCAoc3RydWN0IHRtICpfX3RwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IGV4dGVybiBpbnQgZHlzaXplIChpbnQgX195ZWFy
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18g
KChfX2NvbnN0X18pKTsKPiAjIDMzNCAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMyA0Cj4gZXh0ZXJu
IGludCBuYW5vc2xlZXAgKGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqX19yZXF1ZXN0ZWRfdGltZSwK
PiAgICAgICAgIHN0cnVjdCB0aW1lc3BlYyAqX19yZW1haW5pbmcpOwo+IAo+IAo+IAo+IGV4dGVy
biBpbnQgY2xvY2tfZ2V0cmVzIChjbG9ja2lkX3QgX19jbG9ja19pZCwgc3RydWN0IHRpbWVzcGVj
ICpfX3JlcykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAK
PiBleHRlcm4gaW50IGNsb2NrX2dldHRpbWUgKGNsb2NraWRfdCBfX2Nsb2NrX2lkLCBzdHJ1Y3Qg
dGltZXNwZWMgKl9fdHApIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7
Cj4gCj4gCj4gZXh0ZXJuIGludCBjbG9ja19zZXR0aW1lIChjbG9ja2lkX3QgX19jbG9ja19pZCwg
Y29uc3Qgc3RydWN0IHRpbWVzcGVjICpfX3RwKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90
aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IGNsb2Nr
X25hbm9zbGVlcCAoY2xvY2tpZF90IF9fY2xvY2tfaWQsIGludCBfX2ZsYWdzLAo+ICAgICAgICBj
b25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVxLAo+ICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgKl9f
cmVtKTsKPiAKPiAKPiBleHRlcm4gaW50IGNsb2NrX2dldGNwdWNsb2NraWQgKHBpZF90IF9fcGlk
LCBjbG9ja2lkX3QgKl9fY2xvY2tfaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSk7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCB0aW1lcl9jcmVhdGUgKGNsb2NraWRf
dCBfX2Nsb2NrX2lkLAo+ICAgICBzdHJ1Y3Qgc2lnZXZlbnQgKl9fcmVzdHJpY3QgX19ldnAsCj4g
ICAgIHRpbWVyX3QgKl9fcmVzdHJpY3QgX190aW1lcmlkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IGV4dGVybiBpbnQgdGltZXJfZGVsZXRlICh0aW1l
cl90IF9fdGltZXJpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK
PiAKPiAKPiBleHRlcm4gaW50IHRpbWVyX3NldHRpbWUgKHRpbWVyX3QgX190aW1lcmlkLCBpbnQg
X19mbGFncywKPiAgICAgIGNvbnN0IHN0cnVjdCBpdGltZXJzcGVjICpfX3Jlc3RyaWN0IF9fdmFs
dWUsCj4gICAgICBzdHJ1Y3QgaXRpbWVyc3BlYyAqX19yZXN0cmljdCBfX292YWx1ZSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiBleHRlcm4gaW50IHRp
bWVyX2dldHRpbWUgKHRpbWVyX3QgX190aW1lcmlkLCBzdHJ1Y3QgaXRpbWVyc3BlYyAqX192YWx1
ZSkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4g
Cj4gZXh0ZXJuIGludCB0aW1lcl9nZXRvdmVycnVuICh0aW1lcl90IF9fdGltZXJpZCkgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAKPiAKPiBleHRl
cm4gaW50IHRpbWVzcGVjX2dldCAoc3RydWN0IHRpbWVzcGVjICpfX3RzLCBpbnQgX19iYXNlKQo+
ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0
ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gIyA0MzAgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMg
NAo+IAo+ICMgNDcgIm1hY2hpbmUuYyIgMgo+IAo+ICMgMSAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0
LmgiIDEgMyA0Cj4gIyAxMDIgIi91c3IvaW5jbHVkZS9zeXMvc3RhdC5oIiAzIDQKPiAKPiAKPiAj
IDEgIi91c3IvaW5jbHVkZS9iaXRzL3N0YXQuaCIgMSAzIDQKPiAjIDEwNSAiL3Vzci9pbmNsdWRl
L3N5cy9zdGF0LmgiIDIgMyA0Cj4gIyAyMDggIi91c3IvaW5jbHVkZS9zeXMvc3RhdC5oIiAzIDQK
PiBleHRlcm4gaW50IHN0YXQgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19maWxlLAo+ICAgIHN0
cnVjdCBzdGF0ICpfX3Jlc3RyaWN0IF9fYnVmKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiAKPiAK
PiAKPiBleHRlcm4gaW50IGZzdGF0IChpbnQgX19mZCwgc3RydWN0IHN0YXQgKl9fYnVmKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMikpKTsKPiAjIDIzNyAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMgNAo+IGV4
dGVybiBpbnQgZnN0YXRhdCAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19maWxl
LAo+ICAgICAgIHN0cnVjdCBzdGF0ICpfX3Jlc3RyaWN0IF9fYnVmLCBpbnQgX19mbGFnKQo+ICAg
ICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9f
ICgoX19ub25udWxsX18gKDIsIDMpKSk7Cj4gIyAyNjIgIi91c3IvaW5jbHVkZS9zeXMvc3RhdC5o
IiAzIDQKPiBleHRlcm4gaW50IGxzdGF0IChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZmlsZSwK
PiAgICAgc3RydWN0IHN0YXQgKl9fcmVzdHJpY3QgX19idWYpIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkp
Owo+ICMgMjgzICIvdXNyL2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4gZXh0ZXJuIGludCBjaG1v
ZCAoY29uc3QgY2hhciAqX19maWxlLCBfX21vZGVfdCBfX21vZGUpCj4gICAgICBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf
XyAoMSkpKTsKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IGxjaG1vZCAoY29uc3QgY2hhciAq
X19maWxlLCBfX21vZGVfdCBfX21vZGUpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAK
PiAKPiAKPiBleHRlcm4gaW50IGZjaG1vZCAoaW50IF9fZmQsIF9fbW9kZV90IF9fbW9kZSkgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAKPiAKPiBl
eHRlcm4gaW50IGZjaG1vZGF0IChpbnQgX19mZCwgY29uc3QgY2hhciAqX19maWxlLCBfX21vZGVf
dCBfX21vZGUsCj4gICAgICAgIGludCBfX2ZsYWcpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKSA7
Cj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIF9fbW9kZV90IHVtYXNrIChfX21vZGVfdCBfX21h
c2spIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gIyAzMjAgIi91
c3IvaW5jbHVkZS9zeXMvc3RhdC5oIiAzIDQKPiBleHRlcm4gaW50IG1rZGlyIChjb25zdCBjaGFy
ICpfX3BhdGgsIF9fbW9kZV90IF9fbW9kZSkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+IAo+
IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgbWtkaXJhdCAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9f
cGF0aCwgX19tb2RlX3QgX19tb2RlKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSk7Cj4gCj4gCj4g
Cj4gCj4gCj4gCj4gZXh0ZXJuIGludCBta25vZCAoY29uc3QgY2hhciAqX19wYXRoLCBfX21vZGVf
dCBfX21vZGUsIF9fZGV2X3QgX19kZXYpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAK
PiAKPiAKPiAKPiBleHRlcm4gaW50IG1rbm9kYXQgKGludCBfX2ZkLCBjb25zdCBjaGFyICpfX3Bh
dGgsIF9fbW9kZV90IF9fbW9kZSwKPiAgICAgICBfX2Rldl90IF9fZGV2KSBfX2F0dHJpYnV0ZV9f
ICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAo
MikpKTsKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IG1rZmlmbyAoY29uc3QgY2hhciAqX19w
YXRoLCBfX21vZGVfdCBfX21vZGUpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAKPiAK
PiAKPiAKPiBleHRlcm4gaW50IG1rZmlmb2F0IChpbnQgX19mZCwgY29uc3QgY2hhciAqX19wYXRo
LCBfX21vZGVfdCBfX21vZGUpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPiAKPiAKPiAKPiAK
PiAKPiBleHRlcm4gaW50IHV0aW1lbnNhdCAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fcGF0aCwK
PiAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyBfX3RpbWVzWzJdLAo+ICAgICAgICAgaW50
IF9fZmxhZ3MpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykp
IF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPiAKPiAKPiAKPiAKPiBleHRlcm4g
aW50IGZ1dGltZW5zIChpbnQgX19mZCwgY29uc3Qgc3RydWN0IHRpbWVzcGVjIF9fdGltZXNbMl0p
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gIyAzOTggIi91c3Iv
aW5jbHVkZS9zeXMvc3RhdC5oIiAzIDQKPiBleHRlcm4gaW50IF9fZnhzdGF0IChpbnQgX192ZXIs
IGludCBfX2ZpbGRlcywgc3RydWN0IHN0YXQgKl9fc3RhdF9idWYpCj4gICAgICBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf
XyAoMykpKTsKPiBleHRlcm4gaW50IF9feHN0YXQgKGludCBfX3ZlciwgY29uc3QgY2hhciAqX19m
aWxlbmFtZSwKPiAgICAgICBzdHJ1Y3Qgc3RhdCAqX19zdGF0X2J1ZikgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIs
IDMpKSk7Cj4gZXh0ZXJuIGludCBfX2x4c3RhdCAoaW50IF9fdmVyLCBjb25zdCBjaGFyICpfX2Zp
bGVuYW1lLAo+ICAgICAgICBzdHJ1Y3Qgc3RhdCAqX19zdGF0X2J1ZikgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIs
IDMpKSk7Cj4gZXh0ZXJuIGludCBfX2Z4c3RhdGF0IChpbnQgX192ZXIsIGludCBfX2ZpbGRlcywg
Y29uc3QgY2hhciAqX19maWxlbmFtZSwKPiAgICAgICAgICBzdHJ1Y3Qgc3RhdCAqX19zdGF0X2J1
ZiwgaW50IF9fZmxhZykKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgzLCA0KSkpOwo+ICMgNDQxICIvdXNy
L2luY2x1ZGUvc3lzL3N0YXQuaCIgMyA0Cj4gZXh0ZXJuIGludCBfX3hta25vZCAoaW50IF9fdmVy
LCBjb25zdCBjaGFyICpfX3BhdGgsIF9fbW9kZV90IF9fbW9kZSwKPiAgICAgICAgX19kZXZfdCAq
X19kZXYpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1
dGVfXyAoKF9fbm9ubnVsbF9fICgyLCA0KSkpOwo+IAo+IGV4dGVybiBpbnQgX194bWtub2RhdCAo
aW50IF9fdmVyLCBpbnQgX19mZCwgY29uc3QgY2hhciAqX19wYXRoLAo+ICAgICAgICAgIF9fbW9k
ZV90IF9fbW9kZSwgX19kZXZfdCAqX19kZXYpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMywgNSkpKTsK
PiAjIDUzMyAiL3Vzci9pbmNsdWRlL3N5cy9zdGF0LmgiIDMgNAo+IAo+ICMgNDkgIm1hY2hpbmUu
YyIgMgo+IAo+ICMgMSAiZ3BfY29uZmlnLmgiIDEKPiAjIDMyNyAiZ3BfY29uZmlnLmgiCj4gIyAx
ICJhcmNoX2RlcC5oIiAxCj4gIyAzMjggImdwX2NvbmZpZy5oIiAyCj4gIyAxICJwbF9sb25nLmgi
IDEKPiAjIDQxICJwbF9sb25nLmgiCj4gIyAxICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGlu
dXgvNi4xLjEvaW5jbHVkZS9zdGRpbnQuaCIgMSAzIDQKPiAjIDkgIi91c3IvbGliL2djYy9pNjg2
LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGludC5oIiAzIDQKPiAjIDEgIi91c3IvaW5j
bHVkZS9zdGRpbnQuaCIgMSAzIDQKPiAjIDI2ICIvdXNyL2luY2x1ZGUvc3RkaW50LmgiIDMgNAo+
ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvd2NoYXIuaCIgMSAzIDQKPiAjIDI3ICIvdXNyL2luY2x1
ZGUvc3RkaW50LmgiIDIgMyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy93b3Jkc2l6ZS5oIiAx
IDMgNAo+ICMgMjggIi91c3IvaW5jbHVkZS9zdGRpbnQuaCIgMiAzIDQKPiAjIDQ4ICIvdXNyL2lu
Y2x1ZGUvc3RkaW50LmgiIDMgNAo+IHR5cGVkZWYgdW5zaWduZWQgY2hhciB1aW50OF90Owo+IHR5
cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IHVpbnQxNl90Owo+IAo+IHR5cGVkZWYgdW5zaWduZWQg
aW50IHVpbnQzMl90Owo+IAo+IAo+IAo+IAo+IAo+IF9fZXh0ZW5zaW9uX18KPiB0eXBlZGVmIHVu
c2lnbmVkIGxvbmcgbG9uZyBpbnQgdWludDY0X3Q7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gdHlwZWRl
ZiBzaWduZWQgY2hhciBpbnRfbGVhc3Q4X3Q7Cj4gdHlwZWRlZiBzaG9ydCBpbnQgaW50X2xlYXN0
MTZfdDsKPiB0eXBlZGVmIGludCBpbnRfbGVhc3QzMl90Owo+IAo+IAo+IAo+IF9fZXh0ZW5zaW9u
X18KPiB0eXBlZGVmIGxvbmcgbG9uZyBpbnQgaW50X2xlYXN0NjRfdDsKPiAKPiAKPiAKPiB0eXBl
ZGVmIHVuc2lnbmVkIGNoYXIgdWludF9sZWFzdDhfdDsKPiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0
IGludCB1aW50X2xlYXN0MTZfdDsKPiB0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50X2xlYXN0MzJf
dDsKPiAKPiAKPiAKPiBfX2V4dGVuc2lvbl9fCj4gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcg
aW50IHVpbnRfbGVhc3Q2NF90Owo+IAo+IAo+IAo+IAo+IAo+IAo+IHR5cGVkZWYgc2lnbmVkIGNo
YXIgaW50X2Zhc3Q4X3Q7Cj4gCj4gCj4gCj4gCj4gCj4gdHlwZWRlZiBpbnQgaW50X2Zhc3QxNl90
Owo+IHR5cGVkZWYgaW50IGludF9mYXN0MzJfdDsKPiBfX2V4dGVuc2lvbl9fCj4gdHlwZWRlZiBs
b25nIGxvbmcgaW50IGludF9mYXN0NjRfdDsKPiAKPiAKPiAKPiB0eXBlZGVmIHVuc2lnbmVkIGNo
YXIgdWludF9mYXN0OF90Owo+IAo+IAo+IAo+IAo+IAo+IHR5cGVkZWYgdW5zaWduZWQgaW50IHVp
bnRfZmFzdDE2X3Q7Cj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludF9mYXN0MzJfdDsKPiBfX2V4
dGVuc2lvbl9fCj4gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHVpbnRfZmFzdDY0X3Q7
Cj4gIyAxMjUgIi91c3IvaW5jbHVkZS9zdGRpbnQuaCIgMyA0Cj4gdHlwZWRlZiBpbnQgaW50cHRy
X3Q7Cj4gCj4gCj4gdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludHB0cl90Owo+ICMgMTM3ICIvdXNy
L2luY2x1ZGUvc3RkaW50LmgiIDMgNAo+IF9fZXh0ZW5zaW9uX18KPiB0eXBlZGVmIGxvbmcgbG9u
ZyBpbnQgaW50bWF4X3Q7Cj4gX19leHRlbnNpb25fXwo+IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBs
b25nIGludCB1aW50bWF4X3Q7Cj4gIyAxMCAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4
LzYuMS4xL2luY2x1ZGUvc3RkaW50LmgiIDIgMyA0Cj4gIyA0MiAicGxfbG9uZy5oIiAyCj4gCj4g
IyAxICJncF9jb25maWcuaCIgMQo+ICMgNDQgInBsX2xvbmcuaCIgMgo+IAo+IAo+IAo+IAo+ICMg
NDcgInBsX2xvbmcuaCIKPiB0eXBlZGVmIGludHB0cl90IFBsTG9uZzsKPiB0eXBlZGVmIHVpbnRw
dHJfdCBQbFVMb25nOwo+IAo+IAo+IAo+ICMgMSAiL3Vzci9pbmNsdWRlL2ludHR5cGVzLmgiIDEg
MyA0Cj4gIyAzNCAiL3Vzci9pbmNsdWRlL2ludHR5cGVzLmgiIDMgNAo+IAo+ICMgMzQgIi91c3Iv
aW5jbHVkZS9pbnR0eXBlcy5oIiAzIDQKPiB0eXBlZGVmIGxvbmcgaW50IF9fZ3djaGFyX3Q7Cj4g
IyAyNjYgIi91c3IvaW5jbHVkZS9pbnR0eXBlcy5oIiAzIDQKPiAKPiAjIDI4MCAiL3Vzci9pbmNs
dWRlL2ludHR5cGVzLmgiIDMgNAo+IHR5cGVkZWYgc3RydWN0Cj4gICB7Cj4gICAgIF9fZXh0ZW5z
aW9uX18gbG9uZyBsb25nIGludCBxdW90Owo+ICAgICBfX2V4dGVuc2lvbl9fIGxvbmcgbG9uZyBp
bnQgcmVtOwo+ICAgfSBpbWF4ZGl2X3Q7Cj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludG1heF90
IGltYXhhYnMgKGludG1heF90IF9fbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7Cj4gCj4gCj4gZXh0ZXJuIGltYXhk
aXZfdCBpbWF4ZGl2IChpbnRtYXhfdCBfX251bWVyLCBpbnRtYXhfdCBfX2Rlbm9tKQo+ICAgICAg
IF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAo
KF9fY29uc3RfXykpOwo+IAo+IAo+IGV4dGVybiBpbnRtYXhfdCBzdHJ0b2ltYXggKGNvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19ucHRyLAo+ICAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRy
LCBpbnQgX19iYXNlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+
IAo+IAo+IGV4dGVybiB1aW50bWF4X3Qgc3RydG91bWF4IChjb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fbnB0ciwKPiAgICAgICAgY2hhciAqKiBfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNl
KSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IGV4dGVy
biBpbnRtYXhfdCB3Y3N0b2ltYXggKGNvbnN0IF9fZ3djaGFyX3QgKl9fcmVzdHJpY3QgX19ucHRy
LAo+ICAgICAgIF9fZ3djaGFyX3QgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNlKQo+
ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiBl
eHRlcm4gdWludG1heF90IHdjc3RvdW1heCAoY29uc3QgX19nd2NoYXJfdCAqX19yZXN0cmljdCBf
X25wdHIsCj4gICAgICAgIF9fZ3djaGFyX3QgKiogX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9f
YmFzZSkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4g
IyA0MzIgIi91c3IvaW5jbHVkZS9pbnR0eXBlcy5oIiAzIDQKPiAKPiAjIDUzICJwbF9sb25nLmgi
IDIKPiAjIDMyOSAiZ3BfY29uZmlnLmgiIDIKPiAjIDUxICJtYWNoaW5lLmMiIDIKPiAKPiAKPiAK
PiAKPiAKPiAKPiAjIDEgIi91c3IvaW5jbHVkZS9wd2QuaCIgMSAzIDQKPiAjIDI3ICIvdXNyL2lu
Y2x1ZGUvcHdkLmgiIDMgNAo+IAo+IAo+IAo+IAo+IAo+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYt
cmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gIyAzMyAiL3Vzci9p
bmNsdWRlL3B3ZC5oIiAyIDMgNAo+ICMgNDkgIi91c3IvaW5jbHVkZS9wd2QuaCIgMyA0Cj4gc3Ry
dWN0IHBhc3N3ZAo+IHsKPiAgIGNoYXIgKnB3X25hbWU7Cj4gICBjaGFyICpwd19wYXNzd2Q7Cj4g
ICBfX3VpZF90IHB3X3VpZDsKPiAgIF9fZ2lkX3QgcHdfZ2lkOwo+ICAgY2hhciAqcHdfZ2Vjb3M7
Cj4gICBjaGFyICpwd19kaXI7Cj4gICBjaGFyICpwd19zaGVsbDsKPiB9Owo+ICMgNzIgIi91c3Iv
aW5jbHVkZS9wd2QuaCIgMyA0Cj4gZXh0ZXJuIHZvaWQgc2V0cHdlbnQgKHZvaWQpOwo+IAo+IAo+
IAo+IAo+IAo+IGV4dGVybiB2b2lkIGVuZHB3ZW50ICh2b2lkKTsKPiAKPiAKPiAKPiAKPiAKPiBl
eHRlcm4gc3RydWN0IHBhc3N3ZCAqZ2V0cHdlbnQgKHZvaWQpOwo+ICMgOTQgIi91c3IvaW5jbHVk
ZS9wd2QuaCIgMyA0Cj4gZXh0ZXJuIHN0cnVjdCBwYXNzd2QgKmZnZXRwd2VudCAoRklMRSAqX19z
dHJlYW0pIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAKPiAKPiAKPiAK
PiAKPiAKPiBleHRlcm4gaW50IHB1dHB3ZW50IChjb25zdCBzdHJ1Y3QgcGFzc3dkICpfX3Jlc3Ry
aWN0IF9fcCwKPiAgICAgICAgRklMRSAqX19yZXN0cmljdCBfX2YpOwo+IAo+IAo+IAo+IAo+IAo+
IAo+IGV4dGVybiBzdHJ1Y3QgcGFzc3dkICpnZXRwd3VpZCAoX191aWRfdCBfX3VpZCk7Cj4gCj4g
Cj4gCj4gCj4gCj4gZXh0ZXJuIHN0cnVjdCBwYXNzd2QgKmdldHB3bmFtIChjb25zdCBjaGFyICpf
X25hbWUpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAjIDEzOSAiL3Vzci9p
bmNsdWRlL3B3ZC5oIiAzIDQKPiBleHRlcm4gaW50IGdldHB3ZW50X3IgKHN0cnVjdCBwYXNzd2Qg
Kl9fcmVzdHJpY3QgX19yZXN1bHRidWYsCj4gICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1
ZmZlciwgc2l6ZV90IF9fYnVmbGVuLAo+ICAgICAgICAgIHN0cnVjdCBwYXNzd2QgKipfX3Jlc3Ry
aWN0IF9fcmVzdWx0KQo+ICAgICAgICAgIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwg
MiwgNCkpKTsKPiAKPiAKPiBleHRlcm4gaW50IGdldHB3dWlkX3IgKF9fdWlkX3QgX191aWQsCj4g
ICAgICAgICAgc3RydWN0IHBhc3N3ZCAqX19yZXN0cmljdCBfX3Jlc3VsdGJ1ZiwKPiAgICAgICAg
ICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmZmVyLCBzaXplX3QgX19idWZsZW4sCj4gICAgICAgICAg
c3RydWN0IHBhc3N3ZCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpCj4gICAgICAgICAgX19hdHRyaWJ1
dGVfXyAoKF9fbm9ubnVsbF9fICgyLCAzLCA1KSkpOwo+IAo+IGV4dGVybiBpbnQgZ2V0cHduYW1f
ciAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4gICAgICAgICAgc3RydWN0IHBhc3N3
ZCAqX19yZXN0cmljdCBfX3Jlc3VsdGJ1ZiwKPiAgICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9f
YnVmZmVyLCBzaXplX3QgX19idWZsZW4sCj4gICAgICAgICAgc3RydWN0IHBhc3N3ZCAqKl9fcmVz
dHJpY3QgX19yZXN1bHQpCj4gICAgICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgx
LCAyLCAzLCA1KSkpOwo+ICMgMTY2ICIvdXNyL2luY2x1ZGUvcHdkLmgiIDMgNAo+IGV4dGVybiBp
bnQgZmdldHB3ZW50X3IgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sCj4gICAgc3RydWN0IHBh
c3N3ZCAqX19yZXN0cmljdCBfX3Jlc3VsdGJ1ZiwKPiAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVm
ZmVyLCBzaXplX3QgX19idWZsZW4sCj4gICAgc3RydWN0IHBhc3N3ZCAqKl9fcmVzdHJpY3QgX19y
ZXN1bHQpCj4gICAgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyLCAzLCA1KSkpOwo+
ICMgMTg3ICIvdXNyL2luY2x1ZGUvcHdkLmgiIDMgNAo+IAo+ICMgNTggIm1hY2hpbmUuYyIgMgo+
ICMgMSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAxIDMgNAo+ICMgMjcgIi91c3IvaW5jbHVkZS91
bmlzdGQuaCIgMyA0Cj4gCj4gIyAyMDUgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4gIyAx
ICIvdXNyL2luY2x1ZGUvYml0cy9wb3NpeF9vcHQuaCIgMSAzIDQKPiAjIDIwNiAiL3Vzci9pbmNs
dWRlL3VuaXN0ZC5oIiAyIDMgNAo+IAo+IAo+IAo+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvZW52
aXJvbm1lbnRzLmgiIDEgMyA0Cj4gIyAyMiAiL3Vzci9pbmNsdWRlL2JpdHMvZW52aXJvbm1lbnRz
LmgiIDMgNAo+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvd29yZHNpemUuaCIgMSAzIDQKPiAjIDIz
ICIvdXNyL2luY2x1ZGUvYml0cy9lbnZpcm9ubWVudHMuaCIgMiAzIDQKPiAjIDIxMCAiL3Vzci9p
bmNsdWRlL3VuaXN0ZC5oIiAyIDMgNAo+ICMgMjI5ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMg
NAo+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvc3Rk
ZGVmLmgiIDEgMyA0Cj4gIyAyMzAgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMiAzIDQKPiAjIDI1
OCAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiB0eXBlZGVmIF9fdXNlY29uZHNfdCB1c2Vj
b25kc190Owo+ICMgMjc3ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+IHR5cGVkZWYgX19z
b2NrbGVuX3Qgc29ja2xlbl90Owo+ICMgMjkwICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+
IGV4dGVybiBpbnQgYWNjZXNzIChjb25zdCBjaGFyICpfX25hbWUsIGludCBfX3R5cGUpIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgxKSkpOwo+ICMgMzA3ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+IGV4dGVy
biBpbnQgZmFjY2Vzc2F0IChpbnQgX19mZCwgY29uc3QgY2hhciAqX19maWxlLCBpbnQgX190eXBl
LCBpbnQgX19mbGFnKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDIpKSkgOwo+ICMgMzM3ICIvdXNyL2lu
Y2x1ZGUvdW5pc3RkLmgiIDMgNAo+IGV4dGVybiBfX29mZl90IGxzZWVrIChpbnQgX19mZCwgX19v
ZmZfdCBfX29mZnNldCwgaW50IF9fd2hlbmNlKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpOwo+ICMgMzU2ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+IGV4dGVy
biBpbnQgY2xvc2UgKGludCBfX2ZkKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gc3NpemVf
dCByZWFkIChpbnQgX19mZCwgdm9pZCAqX19idWYsIHNpemVfdCBfX25ieXRlcykgOwo+IAo+IAo+
IAo+IAo+IAo+IGV4dGVybiBzc2l6ZV90IHdyaXRlIChpbnQgX19mZCwgY29uc3Qgdm9pZCAqX19i
dWYsIHNpemVfdCBfX24pIDsKPiAjIDM3OSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiBl
eHRlcm4gc3NpemVfdCBwcmVhZCAoaW50IF9fZmQsIHZvaWQgKl9fYnVmLCBzaXplX3QgX19uYnl0
ZXMsCj4gICAgICAgICBfX29mZl90IF9fb2Zmc2V0KSA7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0
ZXJuIHNzaXplX3QgcHdyaXRlIChpbnQgX19mZCwgY29uc3Qgdm9pZCAqX19idWYsIHNpemVfdCBf
X24sCj4gICAgICAgICAgX19vZmZfdCBfX29mZnNldCkgOwo+ICMgNDIwICIvdXNyL2luY2x1ZGUv
dW5pc3RkLmgiIDMgNAo+IGV4dGVybiBpbnQgcGlwZSAoaW50IF9fcGlwZWRlc1syXSkgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gIyA0MzUgIi91c3IvaW5jbHVk
ZS91bmlzdGQuaCIgMyA0Cj4gZXh0ZXJuIHVuc2lnbmVkIGludCBhbGFybSAodW5zaWduZWQgaW50
IF9fc2Vjb25kcykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAj
IDQ0NyAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiBleHRlcm4gdW5zaWduZWQgaW50IHNs
ZWVwICh1bnNpZ25lZCBpbnQgX19zZWNvbmRzKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRl
cm4gX191c2Vjb25kc190IHVhbGFybSAoX191c2Vjb25kc190IF9fdmFsdWUsIF9fdXNlY29uZHNf
dCBfX2ludGVydmFsKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHVzbGVlcCAoX191c2Vjb25kc190
IF9fdXNlY29uZHMpOwo+ICMgNDcyICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+IGV4dGVy
biBpbnQgcGF1c2UgKHZvaWQpOwo+IAo+IAo+IAo+IGV4dGVybiBpbnQgY2hvd24gKGNvbnN0IGNo
YXIgKl9fZmlsZSwgX191aWRfdCBfX293bmVyLCBfX2dpZF90IF9fZ3JvdXApCj4gICAgICBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMSkpKSA7Cj4gCj4gCj4gCj4gZXh0ZXJuIGludCBmY2hvd24gKGludCBfX2ZkLCBf
X3VpZF90IF9fb3duZXIsIF9fZ2lkX3QgX19ncm91cCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKSA7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBsY2hvd24gKGNvbnN0
IGNoYXIgKl9fZmlsZSwgX191aWRfdCBfX293bmVyLCBfX2dpZF90IF9fZ3JvdXApCj4gICAgICBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChf
X25vbm51bGxfXyAoMSkpKSA7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBmY2hvd25h
dCAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fZmlsZSwgX191aWRfdCBfX293bmVyLAo+ICAgICAg
ICBfX2dpZF90IF9fZ3JvdXAsIGludCBfX2ZsYWcpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKSA7
Cj4gCj4gCj4gCj4gZXh0ZXJuIGludCBjaGRpciAoY29uc3QgY2hhciAqX19wYXRoKSBfX2F0dHJp
YnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51
bGxfXyAoMSkpKSA7Cj4gCj4gCj4gCj4gZXh0ZXJuIGludCBmY2hkaXIgKGludCBfX2ZkKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsKPiAjIDUxNCAiL3Vzci9pbmNs
dWRlL3VuaXN0ZC5oIiAzIDQKPiBleHRlcm4gY2hhciAqZ2V0Y3dkIChjaGFyICpfX2J1Ziwgc2l6
ZV90IF9fc2l6ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4g
IyA1MjggIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4gZXh0ZXJuIGNoYXIgKmdldHdkIChj
aGFyICpfX2J1ZikKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIF9fYXR0cmlidXRlX18gKChfX2Rl
cHJlY2F0ZWRfXykpIDsKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IGR1cCAoaW50IF9fZmQpIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+IAo+IAo+IGV4dGVybiBp
bnQgZHVwMiAoaW50IF9fZmQsIGludCBfX2ZkMikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKTsKPiAjIDU0NiAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiBleHRl
cm4gY2hhciAqKl9fZW52aXJvbjsKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IGV4
ZWN2ZSAoY29uc3QgY2hhciAqX19wYXRoLCBjaGFyICpjb25zdCBfX2FyZ3ZbXSwKPiAgICAgIGNo
YXIgKmNvbnN0IF9fZW52cFtdKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSwgMikpKTsKPiAKPiAKPiAKPiAKPiBl
eHRlcm4gaW50IGZleGVjdmUgKGludCBfX2ZkLCBjaGFyICpjb25zdCBfX2FyZ3ZbXSwgY2hhciAq
Y29uc3QgX19lbnZwW10pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMikpKTsKPiAKPiAKPiAKPiAKPiBl
eHRlcm4gaW50IGV4ZWN2IChjb25zdCBjaGFyICpfX3BhdGgsIGNoYXIgKmNvbnN0IF9fYXJndltd
KQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJp
YnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gCj4gCj4gCj4gZXh0ZXJuIGludCBleGVj
bGUgKGNvbnN0IGNoYXIgKl9fcGF0aCwgY29uc3QgY2hhciAqX19hcmcsIC4uLikKPiAgICAgIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9f
bm9ubnVsbF9fICgxLCAyKSkpOwo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZXhlY2wgKGNvbnN0IGNo
YXIgKl9fcGF0aCwgY29uc3QgY2hhciAqX19hcmcsIC4uLikKPiAgICAgIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgx
LCAyKSkpOwo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZXhlY3ZwIChjb25zdCBjaGFyICpfX2ZpbGUs
IGNoYXIgKmNvbnN0IF9fYXJndltdKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDIpKSk7Cj4gCj4g
Cj4gCj4gCj4gZXh0ZXJuIGludCBleGVjbHAgKGNvbnN0IGNoYXIgKl9fZmlsZSwgY29uc3QgY2hh
ciAqX19hcmcsIC4uLikKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpOwo+ICMgNjAxICIvdXNy
L2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+IGV4dGVybiBpbnQgbmljZSAoaW50IF9faW5jKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsKPiAKPiAKPiAKPiAKPiBleHRl
cm4gdm9pZCBfZXhpdCAoaW50IF9fc3RhdHVzKSBfX2F0dHJpYnV0ZV9fICgoX19ub3JldHVybl9f
KSk7Cj4gCj4gCj4gCj4gCj4gCj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9jb25mbmFtZS5oIiAx
IDMgNAo+ICMgMjQgIi91c3IvaW5jbHVkZS9iaXRzL2NvbmZuYW1lLmgiIDMgNAo+IGVudW0KPiAg
IHsKPiAgICAgX1BDX0xJTktfTUFYLAo+IAo+ICAgICBfUENfTUFYX0NBTk9OLAo+IAo+ICAgICBf
UENfTUFYX0lOUFVULAo+IAo+ICAgICBfUENfTkFNRV9NQVgsCj4gCj4gICAgIF9QQ19QQVRIX01B
WCwKPiAKPiAgICAgX1BDX1BJUEVfQlVGLAo+IAo+ICAgICBfUENfQ0hPV05fUkVTVFJJQ1RFRCwK
PiAKPiAgICAgX1BDX05PX1RSVU5DLAo+IAo+ICAgICBfUENfVkRJU0FCTEUsCj4gCj4gICAgIF9Q
Q19TWU5DX0lPLAo+IAo+ICAgICBfUENfQVNZTkNfSU8sCj4gCj4gICAgIF9QQ19QUklPX0lPLAo+
IAo+ICAgICBfUENfU09DS19NQVhCVUYsCj4gCj4gICAgIF9QQ19GSUxFU0laRUJJVFMsCj4gCj4g
ICAgIF9QQ19SRUNfSU5DUl9YRkVSX1NJWkUsCj4gCj4gICAgIF9QQ19SRUNfTUFYX1hGRVJfU0la
RSwKPiAKPiAgICAgX1BDX1JFQ19NSU5fWEZFUl9TSVpFLAo+IAo+ICAgICBfUENfUkVDX1hGRVJf
QUxJR04sCj4gCj4gICAgIF9QQ19BTExPQ19TSVpFX01JTiwKPiAKPiAgICAgX1BDX1NZTUxJTktf
TUFYLAo+IAo+ICAgICBfUENfMl9TWU1MSU5LUwo+IAo+ICAgfTsKPiAKPiAKPiBlbnVtCj4gICB7
Cj4gICAgIF9TQ19BUkdfTUFYLAo+IAo+ICAgICBfU0NfQ0hJTERfTUFYLAo+IAo+ICAgICBfU0Nf
Q0xLX1RDSywKPiAKPiAgICAgX1NDX05HUk9VUFNfTUFYLAo+IAo+ICAgICBfU0NfT1BFTl9NQVgs
Cj4gCj4gICAgIF9TQ19TVFJFQU1fTUFYLAo+IAo+ICAgICBfU0NfVFpOQU1FX01BWCwKPiAKPiAg
ICAgX1NDX0pPQl9DT05UUk9MLAo+IAo+ICAgICBfU0NfU0FWRURfSURTLAo+IAo+ICAgICBfU0Nf
UkVBTFRJTUVfU0lHTkFMUywKPiAKPiAgICAgX1NDX1BSSU9SSVRZX1NDSEVEVUxJTkcsCj4gCj4g
ICAgIF9TQ19USU1FUlMsCj4gCj4gICAgIF9TQ19BU1lOQ0hST05PVVNfSU8sCj4gCj4gICAgIF9T
Q19QUklPUklUSVpFRF9JTywKPiAKPiAgICAgX1NDX1NZTkNIUk9OSVpFRF9JTywKPiAKPiAgICAg
X1NDX0ZTWU5DLAo+IAo+ICAgICBfU0NfTUFQUEVEX0ZJTEVTLAo+IAo+ICAgICBfU0NfTUVNTE9D
SywKPiAKPiAgICAgX1NDX01FTUxPQ0tfUkFOR0UsCj4gCj4gICAgIF9TQ19NRU1PUllfUFJPVEVD
VElPTiwKPiAKPiAgICAgX1NDX01FU1NBR0VfUEFTU0lORywKPiAKPiAgICAgX1NDX1NFTUFQSE9S
RVMsCj4gCj4gICAgIF9TQ19TSEFSRURfTUVNT1JZX09CSkVDVFMsCj4gCj4gICAgIF9TQ19BSU9f
TElTVElPX01BWCwKPiAKPiAgICAgX1NDX0FJT19NQVgsCj4gCj4gICAgIF9TQ19BSU9fUFJJT19E
RUxUQV9NQVgsCj4gCj4gICAgIF9TQ19ERUxBWVRJTUVSX01BWCwKPiAKPiAgICAgX1NDX01RX09Q
RU5fTUFYLAo+IAo+ICAgICBfU0NfTVFfUFJJT19NQVgsCj4gCj4gICAgIF9TQ19WRVJTSU9OLAo+
IAo+ICAgICBfU0NfUEFHRVNJWkUsCj4gCj4gCj4gICAgIF9TQ19SVFNJR19NQVgsCj4gCj4gICAg
IF9TQ19TRU1fTlNFTVNfTUFYLAo+IAo+ICAgICBfU0NfU0VNX1ZBTFVFX01BWCwKPiAKPiAgICAg
X1NDX1NJR1FVRVVFX01BWCwKPiAKPiAgICAgX1NDX1RJTUVSX01BWCwKPiAKPiAKPiAKPiAKPiAg
ICAgX1NDX0JDX0JBU0VfTUFYLAo+IAo+ICAgICBfU0NfQkNfRElNX01BWCwKPiAKPiAgICAgX1ND
X0JDX1NDQUxFX01BWCwKPiAKPiAgICAgX1NDX0JDX1NUUklOR19NQVgsCj4gCj4gICAgIF9TQ19D
T0xMX1dFSUdIVFNfTUFYLAo+IAo+ICAgICBfU0NfRVFVSVZfQ0xBU1NfTUFYLAo+IAo+ICAgICBf
U0NfRVhQUl9ORVNUX01BWCwKPiAKPiAgICAgX1NDX0xJTkVfTUFYLAo+IAo+ICAgICBfU0NfUkVf
RFVQX01BWCwKPiAKPiAgICAgX1NDX0NIQVJDTEFTU19OQU1FX01BWCwKPiAKPiAKPiAgICAgX1ND
XzJfVkVSU0lPTiwKPiAKPiAgICAgX1NDXzJfQ19CSU5ELAo+IAo+ICAgICBfU0NfMl9DX0RFViwK
PiAKPiAgICAgX1NDXzJfRk9SVF9ERVYsCj4gCj4gICAgIF9TQ18yX0ZPUlRfUlVOLAo+IAo+ICAg
ICBfU0NfMl9TV19ERVYsCj4gCj4gICAgIF9TQ18yX0xPQ0FMRURFRiwKPiAKPiAKPiAgICAgX1ND
X1BJSSwKPiAKPiAgICAgX1NDX1BJSV9YVEksCj4gCj4gICAgIF9TQ19QSUlfU09DS0VULAo+IAo+
ICAgICBfU0NfUElJX0lOVEVSTkVULAo+IAo+ICAgICBfU0NfUElJX09TSSwKPiAKPiAgICAgX1ND
X1BPTEwsCj4gCj4gICAgIF9TQ19TRUxFQ1QsCj4gCj4gICAgIF9TQ19VSU9fTUFYSU9WLAo+IAo+
ICAgICBfU0NfSU9WX01BWCA9IF9TQ19VSU9fTUFYSU9WLAo+IAo+ICAgICBfU0NfUElJX0lOVEVS
TkVUX1NUUkVBTSwKPiAKPiAgICAgX1NDX1BJSV9JTlRFUk5FVF9ER1JBTSwKPiAKPiAgICAgX1ND
X1BJSV9PU0lfQ09UUywKPiAKPiAgICAgX1NDX1BJSV9PU0lfQ0xUUywKPiAKPiAgICAgX1NDX1BJ
SV9PU0lfTSwKPiAKPiAgICAgX1NDX1RfSU9WX01BWCwKPiAKPiAKPiAKPiAgICAgX1NDX1RIUkVB
RFMsCj4gCj4gICAgIF9TQ19USFJFQURfU0FGRV9GVU5DVElPTlMsCj4gCj4gICAgIF9TQ19HRVRH
Ul9SX1NJWkVfTUFYLAo+IAo+ICAgICBfU0NfR0VUUFdfUl9TSVpFX01BWCwKPiAKPiAgICAgX1ND
X0xPR0lOX05BTUVfTUFYLAo+IAo+ICAgICBfU0NfVFRZX05BTUVfTUFYLAo+IAo+ICAgICBfU0Nf
VEhSRUFEX0RFU1RSVUNUT1JfSVRFUkFUSU9OUywKPiAKPiAgICAgX1NDX1RIUkVBRF9LRVlTX01B
WCwKPiAKPiAgICAgX1NDX1RIUkVBRF9TVEFDS19NSU4sCj4gCj4gICAgIF9TQ19USFJFQURfVEhS
RUFEU19NQVgsCj4gCj4gICAgIF9TQ19USFJFQURfQVRUUl9TVEFDS0FERFIsCj4gCj4gICAgIF9T
Q19USFJFQURfQVRUUl9TVEFDS1NJWkUsCj4gCj4gICAgIF9TQ19USFJFQURfUFJJT1JJVFlfU0NI
RURVTElORywKPiAKPiAgICAgX1NDX1RIUkVBRF9QUklPX0lOSEVSSVQsCj4gCj4gICAgIF9TQ19U
SFJFQURfUFJJT19QUk9URUNULAo+IAo+ICAgICBfU0NfVEhSRUFEX1BST0NFU1NfU0hBUkVELAo+
IAo+IAo+ICAgICBfU0NfTlBST0NFU1NPUlNfQ09ORiwKPiAKPiAgICAgX1NDX05QUk9DRVNTT1JT
X09OTE4sCj4gCj4gICAgIF9TQ19QSFlTX1BBR0VTLAo+IAo+ICAgICBfU0NfQVZQSFlTX1BBR0VT
LAo+IAo+ICAgICBfU0NfQVRFWElUX01BWCwKPiAKPiAgICAgX1NDX1BBU1NfTUFYLAo+IAo+IAo+
ICAgICBfU0NfWE9QRU5fVkVSU0lPTiwKPiAKPiAgICAgX1NDX1hPUEVOX1hDVV9WRVJTSU9OLAo+
IAo+ICAgICBfU0NfWE9QRU5fVU5JWCwKPiAKPiAgICAgX1NDX1hPUEVOX0NSWVBULAo+IAo+ICAg
ICBfU0NfWE9QRU5fRU5IX0kxOE4sCj4gCj4gICAgIF9TQ19YT1BFTl9TSE0sCj4gCj4gCj4gICAg
IF9TQ18yX0NIQVJfVEVSTSwKPiAKPiAgICAgX1NDXzJfQ19WRVJTSU9OLAo+IAo+ICAgICBfU0Nf
Ml9VUEUsCj4gCj4gCj4gICAgIF9TQ19YT1BFTl9YUEcyLAo+IAo+ICAgICBfU0NfWE9QRU5fWFBH
MywKPiAKPiAgICAgX1NDX1hPUEVOX1hQRzQsCj4gCj4gCj4gICAgIF9TQ19DSEFSX0JJVCwKPiAK
PiAgICAgX1NDX0NIQVJfTUFYLAo+IAo+ICAgICBfU0NfQ0hBUl9NSU4sCj4gCj4gICAgIF9TQ19J
TlRfTUFYLAo+IAo+ICAgICBfU0NfSU5UX01JTiwKPiAKPiAgICAgX1NDX0xPTkdfQklULAo+IAo+
ICAgICBfU0NfV09SRF9CSVQsCj4gCj4gICAgIF9TQ19NQl9MRU5fTUFYLAo+IAo+ICAgICBfU0Nf
TlpFUk8sCj4gCj4gICAgIF9TQ19TU0laRV9NQVgsCj4gCj4gICAgIF9TQ19TQ0hBUl9NQVgsCj4g
Cj4gICAgIF9TQ19TQ0hBUl9NSU4sCj4gCj4gICAgIF9TQ19TSFJUX01BWCwKPiAKPiAgICAgX1ND
X1NIUlRfTUlOLAo+IAo+ICAgICBfU0NfVUNIQVJfTUFYLAo+IAo+ICAgICBfU0NfVUlOVF9NQVgs
Cj4gCj4gICAgIF9TQ19VTE9OR19NQVgsCj4gCj4gICAgIF9TQ19VU0hSVF9NQVgsCj4gCj4gCj4g
ICAgIF9TQ19OTF9BUkdNQVgsCj4gCj4gICAgIF9TQ19OTF9MQU5HTUFYLAo+IAo+ICAgICBfU0Nf
TkxfTVNHTUFYLAo+IAo+ICAgICBfU0NfTkxfTk1BWCwKPiAKPiAgICAgX1NDX05MX1NFVE1BWCwK
PiAKPiAgICAgX1NDX05MX1RFWFRNQVgsCj4gCj4gCj4gICAgIF9TQ19YQlM1X0lMUDMyX09GRjMy
LAo+IAo+ICAgICBfU0NfWEJTNV9JTFAzMl9PRkZCSUcsCj4gCj4gICAgIF9TQ19YQlM1X0xQNjRf
T0ZGNjQsCj4gCj4gICAgIF9TQ19YQlM1X0xQQklHX09GRkJJRywKPiAKPiAKPiAgICAgX1NDX1hP
UEVOX0xFR0FDWSwKPiAKPiAgICAgX1NDX1hPUEVOX1JFQUxUSU1FLAo+IAo+ICAgICBfU0NfWE9Q
RU5fUkVBTFRJTUVfVEhSRUFEUywKPiAKPiAKPiAgICAgX1NDX0FEVklTT1JZX0lORk8sCj4gCj4g
ICAgIF9TQ19CQVJSSUVSUywKPiAKPiAgICAgX1NDX0JBU0UsCj4gCj4gICAgIF9TQ19DX0xBTkdf
U1VQUE9SVCwKPiAKPiAgICAgX1NDX0NfTEFOR19TVVBQT1JUX1IsCj4gCj4gICAgIF9TQ19DTE9D
S19TRUxFQ1RJT04sCj4gCj4gICAgIF9TQ19DUFVUSU1FLAo+IAo+ICAgICBfU0NfVEhSRUFEX0NQ
VVRJTUUsCj4gCj4gICAgIF9TQ19ERVZJQ0VfSU8sCj4gCj4gICAgIF9TQ19ERVZJQ0VfU1BFQ0lG
SUMsCj4gCj4gICAgIF9TQ19ERVZJQ0VfU1BFQ0lGSUNfUiwKPiAKPiAgICAgX1NDX0ZEX01HTVQs
Cj4gCj4gICAgIF9TQ19GSUZPLAo+IAo+ICAgICBfU0NfUElQRSwKPiAKPiAgICAgX1NDX0ZJTEVf
QVRUUklCVVRFUywKPiAKPiAgICAgX1NDX0ZJTEVfTE9DS0lORywKPiAKPiAgICAgX1NDX0ZJTEVf
U1lTVEVNLAo+IAo+ICAgICBfU0NfTU9OT1RPTklDX0NMT0NLLAo+IAo+ICAgICBfU0NfTVVMVElf
UFJPQ0VTUywKPiAKPiAgICAgX1NDX1NJTkdMRV9QUk9DRVNTLAo+IAo+ICAgICBfU0NfTkVUV09S
S0lORywKPiAKPiAgICAgX1NDX1JFQURFUl9XUklURVJfTE9DS1MsCj4gCj4gICAgIF9TQ19TUElO
X0xPQ0tTLAo+IAo+ICAgICBfU0NfUkVHRVhQLAo+IAo+ICAgICBfU0NfUkVHRVhfVkVSU0lPTiwK
PiAKPiAgICAgX1NDX1NIRUxMLAo+IAo+ICAgICBfU0NfU0lHTkFMUywKPiAKPiAgICAgX1NDX1NQ
QVdOLAo+IAo+ICAgICBfU0NfU1BPUkFESUNfU0VSVkVSLAo+IAo+ICAgICBfU0NfVEhSRUFEX1NQ
T1JBRElDX1NFUlZFUiwKPiAKPiAgICAgX1NDX1NZU1RFTV9EQVRBQkFTRSwKPiAKPiAgICAgX1ND
X1NZU1RFTV9EQVRBQkFTRV9SLAo+IAo+ICAgICBfU0NfVElNRU9VVFMsCj4gCj4gICAgIF9TQ19U
WVBFRF9NRU1PUllfT0JKRUNUUywKPiAKPiAgICAgX1NDX1VTRVJfR1JPVVBTLAo+IAo+ICAgICBf
U0NfVVNFUl9HUk9VUFNfUiwKPiAKPiAgICAgX1NDXzJfUEJTLAo+IAo+ICAgICBfU0NfMl9QQlNf
QUNDT1VOVElORywKPiAKPiAgICAgX1NDXzJfUEJTX0xPQ0FURSwKPiAKPiAgICAgX1NDXzJfUEJT
X01FU1NBR0UsCj4gCj4gICAgIF9TQ18yX1BCU19UUkFDSywKPiAKPiAgICAgX1NDX1NZTUxPT1Bf
TUFYLAo+IAo+ICAgICBfU0NfU1RSRUFNUywKPiAKPiAgICAgX1NDXzJfUEJTX0NIRUNLUE9JTlQs
Cj4gCj4gCj4gICAgIF9TQ19WNl9JTFAzMl9PRkYzMiwKPiAKPiAgICAgX1NDX1Y2X0lMUDMyX09G
RkJJRywKPiAKPiAgICAgX1NDX1Y2X0xQNjRfT0ZGNjQsCj4gCj4gICAgIF9TQ19WNl9MUEJJR19P
RkZCSUcsCj4gCj4gCj4gICAgIF9TQ19IT1NUX05BTUVfTUFYLAo+IAo+ICAgICBfU0NfVFJBQ0Us
Cj4gCj4gICAgIF9TQ19UUkFDRV9FVkVOVF9GSUxURVIsCj4gCj4gICAgIF9TQ19UUkFDRV9JTkhF
UklULAo+IAo+ICAgICBfU0NfVFJBQ0VfTE9HLAo+IAo+IAo+ICAgICBfU0NfTEVWRUwxX0lDQUNI
RV9TSVpFLAo+IAo+ICAgICBfU0NfTEVWRUwxX0lDQUNIRV9BU1NPQywKPiAKPiAgICAgX1NDX0xF
VkVMMV9JQ0FDSEVfTElORVNJWkUsCj4gCj4gICAgIF9TQ19MRVZFTDFfRENBQ0hFX1NJWkUsCj4g
Cj4gICAgIF9TQ19MRVZFTDFfRENBQ0hFX0FTU09DLAo+IAo+ICAgICBfU0NfTEVWRUwxX0RDQUNI
RV9MSU5FU0laRSwKPiAKPiAgICAgX1NDX0xFVkVMMl9DQUNIRV9TSVpFLAo+IAo+ICAgICBfU0Nf
TEVWRUwyX0NBQ0hFX0FTU09DLAo+IAo+ICAgICBfU0NfTEVWRUwyX0NBQ0hFX0xJTkVTSVpFLAo+
IAo+ICAgICBfU0NfTEVWRUwzX0NBQ0hFX1NJWkUsCj4gCj4gICAgIF9TQ19MRVZFTDNfQ0FDSEVf
QVNTT0MsCj4gCj4gICAgIF9TQ19MRVZFTDNfQ0FDSEVfTElORVNJWkUsCj4gCj4gICAgIF9TQ19M
RVZFTDRfQ0FDSEVfU0laRSwKPiAKPiAgICAgX1NDX0xFVkVMNF9DQUNIRV9BU1NPQywKPiAKPiAg
ICAgX1NDX0xFVkVMNF9DQUNIRV9MSU5FU0laRSwKPiAKPiAKPiAKPiAgICAgX1NDX0lQVjYgPSBf
U0NfTEVWRUwxX0lDQUNIRV9TSVpFICsgNTAsCj4gCj4gICAgIF9TQ19SQVdfU09DS0VUUywKPiAK
PiAKPiAgICAgX1NDX1Y3X0lMUDMyX09GRjMyLAo+IAo+ICAgICBfU0NfVjdfSUxQMzJfT0ZGQklH
LAo+IAo+ICAgICBfU0NfVjdfTFA2NF9PRkY2NCwKPiAKPiAgICAgX1NDX1Y3X0xQQklHX09GRkJJ
RywKPiAKPiAKPiAgICAgX1NDX1NTX1JFUExfTUFYLAo+IAo+IAo+ICAgICBfU0NfVFJBQ0VfRVZF
TlRfTkFNRV9NQVgsCj4gCj4gICAgIF9TQ19UUkFDRV9OQU1FX01BWCwKPiAKPiAgICAgX1NDX1RS
QUNFX1NZU19NQVgsCj4gCj4gICAgIF9TQ19UUkFDRV9VU0VSX0VWRU5UX01BWCwKPiAKPiAKPiAg
ICAgX1NDX1hPUEVOX1NUUkVBTVMsCj4gCj4gCj4gICAgIF9TQ19USFJFQURfUk9CVVNUX1BSSU9f
SU5IRVJJVCwKPiAKPiAgICAgX1NDX1RIUkVBRF9ST0JVU1RfUFJJT19QUk9URUNUCj4gCj4gICB9
Owo+IAo+IAo+IGVudW0KPiAgIHsKPiAgICAgX0NTX1BBVEgsCj4gCj4gCj4gICAgIF9DU19WNl9X
SURUSF9SRVNUUklDVEVEX0VOVlMsCj4gCj4gCj4gCj4gICAgIF9DU19HTlVfTElCQ19WRVJTSU9O
LAo+IAo+ICAgICBfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTiwKPiAKPiAKPiAgICAgX0NTX1Y1
X1dJRFRIX1JFU1RSSUNURURfRU5WUywKPiAKPiAKPiAKPiAgICAgX0NTX1Y3X1dJRFRIX1JFU1RS
SUNURURfRU5WUywKPiAKPiAKPiAKPiAgICAgX0NTX0xGU19DRkxBR1MgPSAxMDAwLAo+IAo+ICAg
ICBfQ1NfTEZTX0xERkxBR1MsCj4gCj4gICAgIF9DU19MRlNfTElCUywKPiAKPiAgICAgX0NTX0xG
U19MSU5URkxBR1MsCj4gCj4gICAgIF9DU19MRlM2NF9DRkxBR1MsCj4gCj4gICAgIF9DU19MRlM2
NF9MREZMQUdTLAo+IAo+ICAgICBfQ1NfTEZTNjRfTElCUywKPiAKPiAgICAgX0NTX0xGUzY0X0xJ
TlRGTEFHUywKPiAKPiAKPiAgICAgX0NTX1hCUzVfSUxQMzJfT0ZGMzJfQ0ZMQUdTID0gMTEwMCwK
PiAKPiAgICAgX0NTX1hCUzVfSUxQMzJfT0ZGMzJfTERGTEFHUywKPiAKPiAgICAgX0NTX1hCUzVf
SUxQMzJfT0ZGMzJfTElCUywKPiAKPiAgICAgX0NTX1hCUzVfSUxQMzJfT0ZGMzJfTElOVEZMQUdT
LAo+IAo+ICAgICBfQ1NfWEJTNV9JTFAzMl9PRkZCSUdfQ0ZMQUdTLAo+IAo+ICAgICBfQ1NfWEJT
NV9JTFAzMl9PRkZCSUdfTERGTEFHUywKPiAKPiAgICAgX0NTX1hCUzVfSUxQMzJfT0ZGQklHX0xJ
QlMsCj4gCj4gICAgIF9DU19YQlM1X0lMUDMyX09GRkJJR19MSU5URkxBR1MsCj4gCj4gICAgIF9D
U19YQlM1X0xQNjRfT0ZGNjRfQ0ZMQUdTLAo+IAo+ICAgICBfQ1NfWEJTNV9MUDY0X09GRjY0X0xE
RkxBR1MsCj4gCj4gICAgIF9DU19YQlM1X0xQNjRfT0ZGNjRfTElCUywKPiAKPiAgICAgX0NTX1hC
UzVfTFA2NF9PRkY2NF9MSU5URkxBR1MsCj4gCj4gICAgIF9DU19YQlM1X0xQQklHX09GRkJJR19D
RkxBR1MsCj4gCj4gICAgIF9DU19YQlM1X0xQQklHX09GRkJJR19MREZMQUdTLAo+IAo+ICAgICBf
Q1NfWEJTNV9MUEJJR19PRkZCSUdfTElCUywKPiAKPiAgICAgX0NTX1hCUzVfTFBCSUdfT0ZGQklH
X0xJTlRGTEFHUywKPiAKPiAKPiAgICAgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRjMyX0NGTEFHUywK
PiAKPiAgICAgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRjMyX0xERkxBR1MsCj4gCj4gICAgIF9DU19Q
T1NJWF9WNl9JTFAzMl9PRkYzMl9MSUJTLAo+IAo+ICAgICBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZG
MzJfTElOVEZMQUdTLAo+IAo+ICAgICBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0NGTEFHUywK
PiAKPiAgICAgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRkJJR19MREZMQUdTLAo+IAo+ICAgICBfQ1Nf
UE9TSVhfVjZfSUxQMzJfT0ZGQklHX0xJQlMsCj4gCj4gICAgIF9DU19QT1NJWF9WNl9JTFAzMl9P
RkZCSUdfTElOVEZMQUdTLAo+IAo+ICAgICBfQ1NfUE9TSVhfVjZfTFA2NF9PRkY2NF9DRkxBR1Ms
Cj4gCj4gICAgIF9DU19QT1NJWF9WNl9MUDY0X09GRjY0X0xERkxBR1MsCj4gCj4gICAgIF9DU19Q
T1NJWF9WNl9MUDY0X09GRjY0X0xJQlMsCj4gCj4gICAgIF9DU19QT1NJWF9WNl9MUDY0X09GRjY0
X0xJTlRGTEFHUywKPiAKPiAgICAgX0NTX1BPU0lYX1Y2X0xQQklHX09GRkJJR19DRkxBR1MsCj4g
Cj4gICAgIF9DU19QT1NJWF9WNl9MUEJJR19PRkZCSUdfTERGTEFHUywKPiAKPiAgICAgX0NTX1BP
U0lYX1Y2X0xQQklHX09GRkJJR19MSUJTLAo+IAo+ICAgICBfQ1NfUE9TSVhfVjZfTFBCSUdfT0ZG
QklHX0xJTlRGTEFHUywKPiAKPiAKPiAgICAgX0NTX1BPU0lYX1Y3X0lMUDMyX09GRjMyX0NGTEFH
UywKPiAKPiAgICAgX0NTX1BPU0lYX1Y3X0lMUDMyX09GRjMyX0xERkxBR1MsCj4gCj4gICAgIF9D
U19QT1NJWF9WN19JTFAzMl9PRkYzMl9MSUJTLAo+IAo+ICAgICBfQ1NfUE9TSVhfVjdfSUxQMzJf
T0ZGMzJfTElOVEZMQUdTLAo+IAo+ICAgICBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGQklHX0NGTEFH
UywKPiAKPiAgICAgX0NTX1BPU0lYX1Y3X0lMUDMyX09GRkJJR19MREZMQUdTLAo+IAo+ICAgICBf
Q1NfUE9TSVhfVjdfSUxQMzJfT0ZGQklHX0xJQlMsCj4gCj4gICAgIF9DU19QT1NJWF9WN19JTFAz
Ml9PRkZCSUdfTElOVEZMQUdTLAo+IAo+ICAgICBfQ1NfUE9TSVhfVjdfTFA2NF9PRkY2NF9DRkxB
R1MsCj4gCj4gICAgIF9DU19QT1NJWF9WN19MUDY0X09GRjY0X0xERkxBR1MsCj4gCj4gICAgIF9D
U19QT1NJWF9WN19MUDY0X09GRjY0X0xJQlMsCj4gCj4gICAgIF9DU19QT1NJWF9WN19MUDY0X09G
RjY0X0xJTlRGTEFHUywKPiAKPiAgICAgX0NTX1BPU0lYX1Y3X0xQQklHX09GRkJJR19DRkxBR1Ms
Cj4gCj4gICAgIF9DU19QT1NJWF9WN19MUEJJR19PRkZCSUdfTERGTEFHUywKPiAKPiAgICAgX0NT
X1BPU0lYX1Y3X0xQQklHX09GRkJJR19MSUJTLAo+IAo+ICAgICBfQ1NfUE9TSVhfVjdfTFBCSUdf
T0ZGQklHX0xJTlRGTEFHUywKPiAKPiAKPiAgICAgX0NTX1Y2X0VOViwKPiAKPiAgICAgX0NTX1Y3
X0VOVgo+IAo+ICAgfTsKPiAjIDYxMyAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAyIDMgNAo+IAo+
IAo+IGV4dGVybiBsb25nIGludCBwYXRoY29uZiAoY29uc3QgY2hhciAqX19wYXRoLCBpbnQgX19u
YW1lKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0
dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gCj4gCj4gZXh0ZXJuIGxvbmcgaW50IGZw
YXRoY29uZiAoaW50IF9fZmQsIGludCBfX25hbWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gZXh0ZXJuIGxvbmcgaW50IHN5c2NvbmYgKGludCBfX25h
bWUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4g
ZXh0ZXJuIHNpemVfdCBjb25mc3RyIChpbnQgX19uYW1lLCBjaGFyICpfX2J1Ziwgc2l6ZV90IF9f
bGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+
IAo+IGV4dGVybiBfX3BpZF90IGdldHBpZCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPiAKPiAKPiBleHRlcm4gX19waWRfdCBnZXRwcGlkICh2b2lkKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IGV4dGVybiBf
X3BpZF90IGdldHBncnAgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSk7Cj4gCj4gCj4gZXh0ZXJuIF9fcGlkX3QgX19nZXRwZ2lkIChfX3BpZF90IF9fcGlkKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IGV4dGVybiBfX3Bp
ZF90IGdldHBnaWQgKF9fcGlkX3QgX19waWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBzZXRwZ2lkIChfX3Bp
ZF90IF9fcGlkLCBfX3BpZF90IF9fcGdpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKTsKPiAjIDY2MyAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiBleHRlcm4g
aW50IHNldHBncnAgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSk7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIF9fcGlkX3Qgc2V0c2lkICh2b2lkKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IGV4dGVybiBf
X3BpZF90IGdldHNpZCAoX19waWRfdCBfX3BpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiBleHRlcm4gX191aWRfdCBnZXR1aWQgKHZvaWQpIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gZXh0ZXJuIF9f
dWlkX3QgZ2V0ZXVpZCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKTsKPiAKPiAKPiBleHRlcm4gX19naWRfdCBnZXRnaWQgKHZvaWQpIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gZXh0ZXJuIF9fZ2lkX3QgZ2V0ZWdp
ZCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAK
PiAKPiAKPiBleHRlcm4gaW50IGdldGdyb3VwcyAoaW50IF9fc2l6ZSwgX19naWRfdCBfX2xpc3Rb
XSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gIyA3MDMgIi91
c3IvaW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4gZXh0ZXJuIGludCBzZXR1aWQgKF9fdWlkX3QgX191
aWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+IAo+IAo+IAo+
IAo+IGV4dGVybiBpbnQgc2V0cmV1aWQgKF9fdWlkX3QgX19ydWlkLCBfX3VpZF90IF9fZXVpZCkg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gCj4gCj4gCj4gCj4g
ZXh0ZXJuIGludCBzZXRldWlkIChfX3VpZF90IF9fdWlkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpIDsKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHNldGdp
ZCAoX19naWRfdCBfX2dpZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KSA7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBzZXRyZWdpZCAoX19naWRfdCBfX3JnaWQsIF9f
Z2lkX3QgX19lZ2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIDsK
PiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHNldGVnaWQgKF9fZ2lkX3QgX19naWQpIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+ICMgNzU5ICIvdXNyL2luY2x1ZGUv
dW5pc3RkLmgiIDMgNAo+IGV4dGVybiBfX3BpZF90IGZvcmsgKHZvaWQpIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXykpOwo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBfX3BpZF90IHZm
b3JrICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+
IAo+IAo+IAo+IAo+IGV4dGVybiBjaGFyICp0dHluYW1lIChpbnQgX19mZCkgX19hdHRyaWJ1dGVf
XyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiBleHRlcm4gaW50IHR0eW5h
bWVfciAoaW50IF9fZmQsIGNoYXIgKl9fYnVmLCBzaXplX3QgX19idWZsZW4pCj4gICAgICBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMikpKSA7Cj4gCj4gCj4gCj4gZXh0ZXJuIGludCBpc2F0dHkgKGludCBfX2ZkKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IAo+
IGV4dGVybiBpbnQgdHR5c2xvdCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKTsKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IGxpbmsgKGNvbnN0IGNoYXIgKl9f
ZnJvbSwgY29uc3QgY2hhciAqX190bykKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpIDsKPiAK
PiAKPiAKPiAKPiBleHRlcm4gaW50IGxpbmthdCAoaW50IF9fZnJvbWZkLCBjb25zdCBjaGFyICpf
X2Zyb20sIGludCBfX3RvZmQsCj4gICAgICBjb25zdCBjaGFyICpfX3RvLCBpbnQgX19mbGFncykK
PiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1
dGVfXyAoKF9fbm9ubnVsbF9fICgyLCA0KSkpIDsKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHN5
bWxpbmsgKGNvbnN0IGNoYXIgKl9fZnJvbSwgY29uc3QgY2hhciAqX190bykKPiAgICAgIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9u
bnVsbF9fICgxLCAyKSkpIDsKPiAKPiAKPiAKPiAKPiBleHRlcm4gc3NpemVfdCByZWFkbGluayAo
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX3BhdGgsCj4gICAgIGNoYXIgKl9fcmVzdHJpY3QgX19i
dWYsIHNpemVfdCBfX2xlbikKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxLCAyKSkpIDsKPiAKPiAKPiAK
PiAKPiBleHRlcm4gaW50IHN5bWxpbmthdCAoY29uc3QgY2hhciAqX19mcm9tLCBpbnQgX190b2Zk
LAo+ICAgICAgICAgY29uc3QgY2hhciAqX190bykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEsIDMpKSkgOwo+IAo+
IAo+IGV4dGVybiBzc2l6ZV90IHJlYWRsaW5rYXQgKGludCBfX2ZkLCBjb25zdCBjaGFyICpfX3Jl
c3RyaWN0IF9fcGF0aCwKPiAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19s
ZW4pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0
cmlidXRlX18gKChfX25vbm51bGxfXyAoMiwgMykpKSA7Cj4gCj4gCj4gCj4gZXh0ZXJuIGludCB1
bmxpbmsgKGNvbnN0IGNoYXIgKl9fbmFtZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwg
X19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gCj4gCj4gCj4g
ZXh0ZXJuIGludCB1bmxpbmthdCAoaW50IF9fZmQsIGNvbnN0IGNoYXIgKl9fbmFtZSwgaW50IF9f
ZmxhZykKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgyKSkpOwo+IAo+IAo+IAo+IGV4dGVybiBpbnQgcm1k
aXIgKGNvbnN0IGNoYXIgKl9fcGF0aCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4gCj4gCj4gCj4gZXh0
ZXJuIF9fcGlkX3QgdGNnZXRwZ3JwIChpbnQgX19mZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPiAKPiAKPiBleHRlcm4gaW50IHRjc2V0cGdycCAoaW50IF9fZmQs
IF9fcGlkX3QgX19wZ3JwX2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpOwo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBjaGFyICpnZXRsb2dpbiAodm9pZCk7Cj4g
Cj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBnZXRsb2dpbl9yIChjaGFyICpfX25hbWUs
IHNpemVfdCBfX25hbWVfbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSk7Cj4g
Cj4gCj4gCj4gCj4gZXh0ZXJuIGludCBzZXRsb2dpbiAoY29uc3QgY2hhciAqX19uYW1lKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMSkpKTsKPiAjIDg3NCAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiAjIDEg
Ii91c3IvaW5jbHVkZS9nZXRvcHQuaCIgMSAzIDQKPiAjIDU3ICIvdXNyL2luY2x1ZGUvZ2V0b3B0
LmgiIDMgNAo+IGV4dGVybiBjaGFyICpvcHRhcmc7Cj4gIyA3MSAiL3Vzci9pbmNsdWRlL2dldG9w
dC5oIiAzIDQKPiBleHRlcm4gaW50IG9wdGluZDsKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IG9w
dGVycjsKPiAKPiAKPiAKPiBleHRlcm4gaW50IG9wdG9wdDsKPiAjIDE1MCAiL3Vzci9pbmNsdWRl
L2dldG9wdC5oIiAzIDQKPiBleHRlcm4gaW50IGdldG9wdCAoaW50IF9fX2FyZ2MsIGNoYXIgKmNv
bnN0ICpfX19hcmd2LCBjb25zdCBjaGFyICpfX3Nob3J0b3B0cykKPiAgICAgICAgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAjIDg3NSAiL3Vzci9pbmNsdWRlL3Vu
aXN0ZC5oIiAyIDMgNAo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZ2V0aG9zdG5h
bWUgKGNoYXIgKl9fbmFtZSwgc2l6ZV90IF9fbGVuKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAK
PiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHNldGhvc3RuYW1lIChjb25zdCBjaGFyICpfX25hbWUs
IHNpemVfdCBfX2xlbikKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpIDsKPiAKPiAKPiAKPiBleHRl
cm4gaW50IHNldGhvc3RpZCAobG9uZyBpbnQgX19pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKSA7Cj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBnZXRkb21haW5u
YW1lIChjaGFyICpfX25hbWUsIHNpemVfdCBfX2xlbikKPiAgICAgIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkp
IDsKPiBleHRlcm4gaW50IHNldGRvbWFpbm5hbWUgKGNvbnN0IGNoYXIgKl9fbmFtZSwgc2l6ZV90
IF9fbGVuKQo+ICAgICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBf
X2F0dHJpYnV0ZV9fICgoX19ub25udWxsX18gKDEpKSkgOwo+IAo+IAo+IAo+IAo+IAo+IGV4dGVy
biBpbnQgdmhhbmd1cCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKTsKPiAKPiAKPiBleHRlcm4gaW50IHJldm9rZSAoY29uc3QgY2hhciAqX19maWxlKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25v
bm51bGxfXyAoMSkpKSA7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBwcm9maWwg
KHVuc2lnbmVkIHNob3J0IGludCAqX19zYW1wbGVfYnVmZmVyLCBzaXplX3QgX19zaXplLAo+ICAg
ICAgc2l6ZV90IF9fb2Zmc2V0LCB1bnNpZ25lZCBpbnQgX19zY2FsZSkKPiAgICAgIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVs
bF9fICgxKSkpOwo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgYWNjdCAoY29uc3QgY2hhciAq
X19uYW1lKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+
IAo+IGV4dGVybiBjaGFyICpnZXR1c2Vyc2hlbGwgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gZXh0ZXJuIHZvaWQgZW5kdXNlcnNoZWxsICh2b2lkKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IGV4dGVybiB2b2lkIHNl
dHVzZXJzaGVsbCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KTsKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IGRhZW1vbiAoaW50IF9fbm9jaGRpciwgaW50
IF9fbm9jbG9zZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4g
Cj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBjaHJvb3QgKGNvbnN0IGNoYXIgKl9fcGF0aCkg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgo
X19ub25udWxsX18gKDEpKSkgOwo+IAo+IAo+IAo+IGV4dGVybiBjaGFyICpnZXRwYXNzIChjb25z
dCBjaGFyICpfX3Byb21wdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkpOwo+IAo+
IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZnN5bmMgKGludCBfX2ZkKTsKPiAjIDk3MiAi
L3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiBleHRlcm4gbG9uZyBpbnQgZ2V0aG9zdGlkICh2
b2lkKTsKPiAKPiAKPiBleHRlcm4gdm9pZCBzeW5jICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZ2V0cGFn
ZXNpemUgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZ2V0ZHRh
Ymxlc2l6ZSAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK
PiAjIDk5NiAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiBleHRlcm4gaW50IHRydW5jYXRl
IChjb25zdCBjaGFyICpfX2ZpbGUsIF9fb2ZmX3QgX19sZW5ndGgpCj4gICAgICBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX25vbm51bGxf
XyAoMSkpKSA7Cj4gIyAxMDE5ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMgNAo+IGV4dGVybiBp
bnQgZnRydW5jYXRlIChpbnQgX19mZCwgX19vZmZfdCBfX2xlbmd0aCkgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKSA7Cj4gIyAxMDQwICIvdXNyL2luY2x1ZGUvdW5pc3Rk
LmgiIDMgNAo+IGV4dGVybiBpbnQgYnJrICh2b2lkICpfX2FkZHIpIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgOwo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiB2b2lkICpz
YnJrIChpbnRwdHJfdCBfX2RlbHRhKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+ICMgMTA2MSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzIDQKPiBleHRlcm4gbG9u
ZyBpbnQgc3lzY2FsbCAobG9uZyBpbnQgX19zeXNubywgLi4uKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpOwo+ICMgMTExNSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAz
IDQKPiBleHRlcm4gaW50IGZkYXRhc3luYyAoaW50IF9fZmlsZGVzKTsKPiAjIDExNTQgIi91c3Iv
aW5jbHVkZS91bmlzdGQuaCIgMyA0Cj4gCj4gIyA1OSAibWFjaGluZS5jIiAyCj4gIyAxICIvdXNy
L2luY2x1ZGUvc3lzL3BhcmFtLmgiIDEgMyA0Cj4gIyAyMyAiL3Vzci9pbmNsdWRlL3N5cy9wYXJh
bS5oIiAzIDQKPiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNs
dWRlL3N0ZGRlZi5oIiAxIDMgNAo+ICMgMjQgIi91c3IvaW5jbHVkZS9zeXMvcGFyYW0uaCIgMiAz
IDQKPiAKPiAKPiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNs
dWRlL2xpbWl0cy5oIiAxIDMgNAo+ICMgMzQgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51
eC82LjEuMS9pbmNsdWRlL2xpbWl0cy5oIiAzIDQKPiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJl
ZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N5c2xpbWl0cy5oIiAxIDMgNAo+IAo+IAo+IAo+IAo+
IAo+IAo+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUv
bGltaXRzLmgiIDEgMyA0Cj4gIyAxNjggIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82
LjEuMS9pbmNsdWRlL2xpbWl0cy5oIiAzIDQKPiAjIDEgIi91c3IvaW5jbHVkZS9saW1pdHMuaCIg
MSAzIDQKPiAjIDE0MyAiL3Vzci9pbmNsdWRlL2xpbWl0cy5oIiAzIDQKPiAjIDEgIi91c3IvaW5j
bHVkZS9iaXRzL3Bvc2l4MV9saW0uaCIgMSAzIDQKPiAjIDE2MCAiL3Vzci9pbmNsdWRlL2JpdHMv
cG9zaXgxX2xpbS5oIiAzIDQKPiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL2xvY2FsX2xpbS5oIiAx
IDMgNAo+ICMgMzggIi91c3IvaW5jbHVkZS9iaXRzL2xvY2FsX2xpbS5oIiAzIDQKPiAjIDEgIi91
c3IvaW5jbHVkZS9saW51eC9saW1pdHMuaCIgMSAzIDQKPiAjIDM5ICIvdXNyL2luY2x1ZGUvYml0
cy9sb2NhbF9saW0uaCIgMiAzIDQKPiAjIDE2MSAiL3Vzci9pbmNsdWRlL2JpdHMvcG9zaXgxX2xp
bS5oIiAyIDMgNAo+ICMgMTQ0ICIvdXNyL2luY2x1ZGUvbGltaXRzLmgiIDIgMyA0Cj4gCj4gCj4g
Cj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9wb3NpeDJfbGltLmgiIDEgMyA0Cj4gIyAxNDggIi91
c3IvaW5jbHVkZS9saW1pdHMuaCIgMiAzIDQKPiAjIDE2OSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVk
aGF0LWxpbnV4LzYuMS4xL2luY2x1ZGUvbGltaXRzLmgiIDIgMyA0Cj4gIyA4ICIvdXNyL2xpYi9n
Y2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9zeXNsaW1pdHMuaCIgMiAzIDQKPiAj
IDM1ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgvNi4xLjEvaW5jbHVkZS9saW1pdHMu
aCIgMiAzIDQKPiAjIDI3ICIvdXNyL2luY2x1ZGUvc3lzL3BhcmFtLmgiIDIgMyA0Cj4gCj4gCj4g
Cj4gCj4gIyAxICIvdXNyL2luY2x1ZGUvYml0cy9wYXJhbS5oIiAxIDMgNAo+ICMgMjggIi91c3Iv
aW5jbHVkZS9iaXRzL3BhcmFtLmgiIDMgNAo+ICMgMSAiL3Vzci9pbmNsdWRlL2xpbnV4L3BhcmFt
LmgiIDEgMyA0Cj4gCj4gCj4gCj4gIyAxICIvdXNyL2luY2x1ZGUvYXNtL3BhcmFtLmgiIDEgMyA0
Cj4gIyAxICIvdXNyL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGFyYW0uaCIgMSAzIDQKPiAjIDEgIi91
c3IvaW5jbHVkZS9hc20vcGFyYW0uaCIgMiAzIDQKPiAjIDUgIi91c3IvaW5jbHVkZS9saW51eC9w
YXJhbS5oIiAyIDMgNAo+ICMgMjkgIi91c3IvaW5jbHVkZS9iaXRzL3BhcmFtLmgiIDIgMyA0Cj4g
IyAzMiAiL3Vzci9pbmNsdWRlL3N5cy9wYXJhbS5oIiAyIDMgNAo+ICMgNjAgIm1hY2hpbmUuYyIg
Mgo+ICMgMSAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDEgMyA0Cj4gIyAyNyAiL3Vzci9pbmNs
dWRlL3N5cy90aW1lLmgiIDMgNAo+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvdGltZS5oIiAxIDMg
NAo+ICMgMjggIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAyIDMgNAo+ICMgMzcgIi91c3IvaW5j
bHVkZS9zeXMvdGltZS5oIiAzIDQKPiAKPiAjIDU1ICIvdXNyL2luY2x1ZGUvc3lzL3RpbWUuaCIg
MyA0Cj4gc3RydWN0IHRpbWV6b25lCj4gICB7Cj4gICAgIGludCB0el9taW51dGVzd2VzdDsKPiAg
ICAgaW50IHR6X2RzdHRpbWU7Cj4gICB9Owo+IAo+IHR5cGVkZWYgc3RydWN0IHRpbWV6b25lICpf
X3Jlc3RyaWN0IF9fdGltZXpvbmVfcHRyX3Q7Cj4gIyA3MSAiL3Vzci9pbmNsdWRlL3N5cy90aW1l
LmgiIDMgNAo+IGV4dGVybiBpbnQgZ2V0dGltZW9mZGF5IChzdHJ1Y3QgdGltZXZhbCAqX19yZXN0
cmljdCBfX3R2LAo+ICAgICBfX3RpbWV6b25lX3B0cl90IF9fdHopIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fICgxKSkp
Owo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgc2V0dGltZW9mZGF5IChjb25zdCBzdHJ1Y3QgdGlt
ZXZhbCAqX190diwKPiAgICAgY29uc3Qgc3RydWN0IHRpbWV6b25lICpfX3R6KQo+ICAgICAgX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAKPiAKPiBl
eHRlcm4gaW50IGFkanRpbWUgKGNvbnN0IHN0cnVjdCB0aW1ldmFsICpfX2RlbHRhLAo+ICAgICAg
IHN0cnVjdCB0aW1ldmFsICpfX29sZGRlbHRhKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IGVudW0gX19pdGltZXJfd2hpY2gKPiAgIHsKPiAK
PiAgICAgSVRJTUVSX1JFQUwgPSAwLAo+IAo+IAo+ICAgICBJVElNRVJfVklSVFVBTCA9IDEsCj4g
Cj4gCj4gCj4gICAgIElUSU1FUl9QUk9GID0gMgo+IAo+ICAgfTsKPiAKPiAKPiAKPiBzdHJ1Y3Qg
aXRpbWVydmFsCj4gICB7Cj4gCj4gICAgIHN0cnVjdCB0aW1ldmFsIGl0X2ludGVydmFsOwo+IAo+
ICAgICBzdHJ1Y3QgdGltZXZhbCBpdF92YWx1ZTsKPiAgIH07Cj4gCj4gCj4gCj4gCj4gCj4gCj4g
dHlwZWRlZiBpbnQgX19pdGltZXJfd2hpY2hfdDsKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IGdl
dGl0aW1lciAoX19pdGltZXJfd2hpY2hfdCBfX3doaWNoLAo+ICAgICAgICAgc3RydWN0IGl0aW1l
cnZhbCAqX192YWx1ZSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsK
PiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IHNldGl0aW1lciAoX19pdGltZXJfd2hpY2hfdCBfX3do
aWNoLAo+ICAgICAgICAgY29uc3Qgc3RydWN0IGl0aW1lcnZhbCAqX19yZXN0cmljdCBfX25ldywK
PiAgICAgICAgIHN0cnVjdCBpdGltZXJ2YWwgKl9fcmVzdHJpY3QgX19vbGQpIF9fYXR0cmlidXRl
X18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCB1
dGltZXMgKGNvbnN0IGNoYXIgKl9fZmlsZSwgY29uc3Qgc3RydWN0IHRpbWV2YWwgX190dnBbMl0p
Cj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmli
dXRlX18gKChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAKPiAKPiBleHRlcm4gaW50IGx1dGltZXMg
KGNvbnN0IGNoYXIgKl9fZmlsZSwgY29uc3Qgc3RydWN0IHRpbWV2YWwgX190dnBbMl0pCj4gICAg
ICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18g
KChfX25vbm51bGxfXyAoMSkpKTsKPiAKPiAKPiBleHRlcm4gaW50IGZ1dGltZXMgKGludCBfX2Zk
LCBjb25zdCBzdHJ1Y3QgdGltZXZhbCBfX3R2cFsyXSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPiAjIDE4OSAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMgNAo+
IAo+ICMgNjEgIm1hY2hpbmUuYyIgMgo+ICMgMSAiL3Vzci9pbmNsdWRlL3N5cy90aW1lcy5oIiAx
IDMgNAo+ICMgMzEgIi91c3IvaW5jbHVkZS9zeXMvdGltZXMuaCIgMyA0Cj4gCj4gCj4gCj4gc3Ry
dWN0IHRtcwo+ICAgewo+ICAgICBjbG9ja190IHRtc191dGltZTsKPiAgICAgY2xvY2tfdCB0bXNf
c3RpbWU7Cj4gCj4gICAgIGNsb2NrX3QgdG1zX2N1dGltZTsKPiAgICAgY2xvY2tfdCB0bXNfY3N0
aW1lOwo+ICAgfTsKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gY2xvY2tfdCB0aW1lcyAoc3Ry
dWN0IHRtcyAqX19idWZmZXIpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9f
KSk7Cj4gCj4gCj4gIyA2MiAibWFjaGluZS5jIiAyCj4gIyAxICIvdXNyL2luY2x1ZGUvc3lzL3Jl
c291cmNlLmgiIDEgMyA0Cj4gIyAyNCAiL3Vzci9pbmNsdWRlL3N5cy9yZXNvdXJjZS5oIiAzIDQK
PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL3Jlc291cmNlLmgiIDEgMyA0Cj4gIyAzMSAiL3Vzci9p
bmNsdWRlL2JpdHMvcmVzb3VyY2UuaCIgMyA0Cj4gZW51bSBfX3JsaW1pdF9yZXNvdXJjZQo+IHsK
PiAKPiAgIFJMSU1JVF9DUFUgPSAwLAo+IAo+IAo+IAo+ICAgUkxJTUlUX0ZTSVpFID0gMSwKPiAK
PiAKPiAKPiAgIFJMSU1JVF9EQVRBID0gMiwKPiAKPiAKPiAKPiAgIFJMSU1JVF9TVEFDSyA9IDMs
Cj4gCj4gCj4gCj4gICBSTElNSVRfQ09SRSA9IDQsCj4gCj4gCj4gCj4gCj4gCj4gCj4gICBfX1JM
SU1JVF9SU1MgPSA1LAo+IAo+IAo+IAo+ICAgUkxJTUlUX05PRklMRSA9IDcsCj4gICBfX1JMSU1J
VF9PRklMRSA9IFJMSU1JVF9OT0ZJTEUsCj4gCj4gCj4gCj4gCj4gICBSTElNSVRfQVMgPSA5LAo+
IAo+IAo+IAo+ICAgX19STElNSVRfTlBST0MgPSA2LAo+IAo+IAo+IAo+ICAgX19STElNSVRfTUVN
TE9DSyA9IDgsCj4gCj4gCj4gCj4gICBfX1JMSU1JVF9MT0NLUyA9IDEwLAo+IAo+IAo+IAo+ICAg
X19STElNSVRfU0lHUEVORElORyA9IDExLAo+IAo+IAo+IAo+ICAgX19STElNSVRfTVNHUVVFVUUg
PSAxMiwKPiAKPiAKPiAKPiAKPiAKPiAgIF9fUkxJTUlUX05JQ0UgPSAxMywKPiAKPiAKPiAKPiAK
PiAgIF9fUkxJTUlUX1JUUFJJTyA9IDE0LAo+IAo+IAo+IAo+IAo+IAo+ICAgX19STElNSVRfUlRU
SU1FID0gMTUsCj4gCj4gCj4gICBfX1JMSU1JVF9OTElNSVRTID0gMTYsCj4gICBfX1JMSU1fTkxJ
TUlUUyA9IF9fUkxJTUlUX05MSU1JVFMKPiAKPiAKPiB9Owo+ICMgMTMxICIvdXNyL2luY2x1ZGUv
Yml0cy9yZXNvdXJjZS5oIiAzIDQKPiB0eXBlZGVmIF9fcmxpbV90IHJsaW1fdDsKPiAKPiAKPiAK
PiAKPiAKPiAKPiAKPiBzdHJ1Y3QgcmxpbWl0Cj4gICB7Cj4gCj4gICAgIHJsaW1fdCBybGltX2N1
cjsKPiAKPiAgICAgcmxpbV90IHJsaW1fbWF4Owo+ICAgfTsKPiAjIDE1OCAiL3Vzci9pbmNsdWRl
L2JpdHMvcmVzb3VyY2UuaCIgMyA0Cj4gZW51bSBfX3J1c2FnZV93aG8KPiB7Cj4gCj4gICBSVVNB
R0VfU0VMRiA9IDAsCj4gCj4gCj4gCj4gICBSVVNBR0VfQ0hJTERSRU4gPSAtMQo+ICMgMTc2ICIv
dXNyL2luY2x1ZGUvYml0cy9yZXNvdXJjZS5oIiAzIDQKPiB9Owo+IAo+IAo+ICMgMSAiL3Vzci9p
bmNsdWRlL2JpdHMvdGltZS5oIiAxIDMgNAo+ICMgMTgwICIvdXNyL2luY2x1ZGUvYml0cy9yZXNv
dXJjZS5oIiAyIDMgNAo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+IHN0cnVjdCBydXNhZ2UKPiAgIHsK
PiAKPiAgICAgc3RydWN0IHRpbWV2YWwgcnVfdXRpbWU7Cj4gCj4gICAgIHN0cnVjdCB0aW1ldmFs
IHJ1X3N0aW1lOwo+IAo+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4gICAgICAgewo+ICBsb25n
IGludCBydV9tYXhyc3M7Cj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfbWF4cnNzX3dvcmQ7Cj4g
ICAgICAgfTsKPiAKPiAKPiAKPiAgICAgX19leHRlbnNpb25fXyB1bmlvbgo+ICAgICAgIHsKPiAg
bG9uZyBpbnQgcnVfaXhyc3M7Cj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfaXhyc3Nfd29yZDsK
PiAgICAgICB9Owo+IAo+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4gICAgICAgewo+ICBsb25n
IGludCBydV9pZHJzczsKPiAgX19zeXNjYWxsX3Nsb25nX3QgX19ydV9pZHJzc193b3JkOwo+ICAg
ICAgIH07Cj4gCj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPiAgICAgICB7Cj4gIGxvbmcgaW50
IHJ1X2lzcnNzOwo+ICAgX19zeXNjYWxsX3Nsb25nX3QgX19ydV9pc3Jzc193b3JkOwo+ICAgICAg
IH07Cj4gCj4gCj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPiAgICAgICB7Cj4gIGxvbmcgaW50
IHJ1X21pbmZsdDsKPiAgX19zeXNjYWxsX3Nsb25nX3QgX19ydV9taW5mbHRfd29yZDsKPiAgICAg
ICB9Owo+IAo+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4gICAgICAgewo+ICBsb25nIGludCBy
dV9tYWpmbHQ7Cj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfbWFqZmx0X3dvcmQ7Cj4gICAgICAg
fTsKPiAKPiAgICAgX19leHRlbnNpb25fXyB1bmlvbgo+ICAgICAgIHsKPiAgbG9uZyBpbnQgcnVf
bnN3YXA7Cj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfbnN3YXBfd29yZDsKPiAgICAgICB9Owo+
IAo+IAo+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4gICAgICAgewo+ICBsb25nIGludCBydV9p
bmJsb2NrOwo+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X2luYmxvY2tfd29yZDsKPiAgICAgICB9
Owo+IAo+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4gICAgICAgewo+ICBsb25nIGludCBydV9v
dWJsb2NrOwo+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X291YmxvY2tfd29yZDsKPiAgICAgICB9
Owo+IAo+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4gICAgICAgewo+ICBsb25nIGludCBydV9t
c2dzbmQ7Cj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfbXNnc25kX3dvcmQ7Cj4gICAgICAgfTsK
PiAKPiAgICAgX19leHRlbnNpb25fXyB1bmlvbgo+ICAgICAgIHsKPiAgbG9uZyBpbnQgcnVfbXNn
cmN2Owo+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X21zZ3Jjdl93b3JkOwo+ICAgICAgIH07Cj4g
Cj4gICAgIF9fZXh0ZW5zaW9uX18gdW5pb24KPiAgICAgICB7Cj4gIGxvbmcgaW50IHJ1X25zaWdu
YWxzOwo+ICBfX3N5c2NhbGxfc2xvbmdfdCBfX3J1X25zaWduYWxzX3dvcmQ7Cj4gICAgICAgfTsK
PiAKPiAKPiAKPiAgICAgX19leHRlbnNpb25fXyB1bmlvbgo+ICAgICAgIHsKPiAgbG9uZyBpbnQg
cnVfbnZjc3c7Cj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfbnZjc3dfd29yZDsKPiAgICAgICB9
Owo+IAo+IAo+ICAgICBfX2V4dGVuc2lvbl9fIHVuaW9uCj4gICAgICAgewo+ICBsb25nIGludCBy
dV9uaXZjc3c7Cj4gIF9fc3lzY2FsbF9zbG9uZ190IF9fcnVfbml2Y3N3X3dvcmQ7Cj4gICAgICAg
fTsKPiAgIH07Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gZW51bSBfX3ByaW9yaXR5X3doaWNoCj4g
ewo+ICAgUFJJT19QUk9DRVNTID0gMCwKPiAKPiAgIFBSSU9fUEdSUCA9IDEsCj4gCj4gICBQUklP
X1VTRVIgPSAyCj4gCj4gfTsKPiAKPiAKPiAKPiAjIDMyOCAiL3Vzci9pbmNsdWRlL2JpdHMvcmVz
b3VyY2UuaCIgMyA0Cj4gCj4gIyAyNSAiL3Vzci9pbmNsdWRlL3N5cy9yZXNvdXJjZS5oIiAyIDMg
NAo+IAo+IAo+IAo+IAo+IAo+IAo+IAo+ICMgNDIgIi91c3IvaW5jbHVkZS9zeXMvcmVzb3VyY2Uu
aCIgMyA0Cj4gdHlwZWRlZiBpbnQgX19ybGltaXRfcmVzb3VyY2VfdDsKPiB0eXBlZGVmIGludCBf
X3J1c2FnZV93aG9fdDsKPiB0eXBlZGVmIGludCBfX3ByaW9yaXR5X3doaWNoX3Q7Cj4gCj4gCj4g
Cj4gCj4gCj4gZXh0ZXJuIGludCBnZXRybGltaXQgKF9fcmxpbWl0X3Jlc291cmNlX3QgX19yZXNv
dXJjZSwKPiAgICAgICAgIHN0cnVjdCBybGltaXQgKl9fcmxpbWl0cykgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAjIDY5ICIvdXNyL2luY2x1ZGUvc3lzL3Jlc291
cmNlLmgiIDMgNAo+IGV4dGVybiBpbnQgc2V0cmxpbWl0IChfX3JsaW1pdF9yZXNvdXJjZV90IF9f
cmVzb3VyY2UsCj4gICAgICAgICBjb25zdCBzdHJ1Y3QgcmxpbWl0ICpfX3JsaW1pdHMpIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gIyA4NyAiL3Vzci9pbmNsdWRl
L3N5cy9yZXNvdXJjZS5oIiAzIDQKPiBleHRlcm4gaW50IGdldHJ1c2FnZSAoX19ydXNhZ2Vfd2hv
X3QgX193aG8sIHN0cnVjdCBydXNhZ2UgKl9fdXNhZ2UpIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBnZXRwcmlvcml0
eSAoX19wcmlvcml0eV93aGljaF90IF9fd2hpY2gsIGlkX3QgX193aG8pIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4gZXh0ZXJuIGludCBzZXRwcmlv
cml0eSAoX19wcmlvcml0eV93aGljaF90IF9fd2hpY2gsIGlkX3QgX193aG8sIGludCBfX3ByaW8p
Cj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+
ICMgNjMgIm1hY2hpbmUuYyIgMgo+ICMgNzEgIm1hY2hpbmUuYyIKPiAjIDEgImVuZ2luZV9wbC5o
IiAxCj4gIyA0MCAiZW5naW5lX3BsLmgiCj4gIyAxICJwbF9wYXJhbXMuaCIgMQo+ICMgNDEgImVu
Z2luZV9wbC5oIiAyCj4gIyAxICJoYXNoX2ZjdC5oIiAxCj4gIyA1MyAiaGFzaF9mY3QuaCIKPiAK
PiAjIDUzICJoYXNoX2ZjdC5oIgo+IHR5cGVkZWYgc3RydWN0Cj4gewo+ICAgaW50IGxlbjsKPiAg
IHVpbnQzMl90IGhhc2g7Cj4gfSBIYXNoSW5jckluZm87Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4g
dWludDMyX3QgUGxfSGFzaF9CdWZmZXIoY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbik7Cj4gCj4g
dm9pZCBQbF9IYXNoX0luY3JfSW5pdChIYXNoSW5jckluZm8gKmhpKTsKPiAKPiB2b2lkIFBsX0hh
c2hfSW5jcl9CdWZmZXIoSGFzaEluY3JJbmZvICpoaSwgY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxl
bik7Cj4gCj4gdm9pZCBQbF9IYXNoX0luY3JfSW50MzIoSGFzaEluY3JJbmZvICpoaSwgdWludDMy
X3QgeCk7Cj4gCj4gdm9pZCBQbF9IYXNoX0luY3JfSW50NjQoSGFzaEluY3JJbmZvICpoaSwgdWlu
dDY0X3QgeCk7Cj4gCj4gdm9pZCBQbF9IYXNoX0luY3JfRG91YmxlKEhhc2hJbmNySW5mbyAqaGks
IGRvdWJsZSB4KTsKPiAKPiB1aW50MzJfdCBQbF9IYXNoX0luY3JfVGVybShIYXNoSW5jckluZm8g
KmhpKTsKPiAjIDQyICJlbmdpbmVfcGwuaCIgMgo+ICMgMSAiaGFzaC5oIiAxCj4gIyA0OCAiaGFz
aC5oIgo+IHR5cGVkZWYgc3RydWN0Cj4gewo+ICAgY2hhciAqZW5kdDsKPiAgIGNoYXIgKmN1cl90
Owo+ICAgY2hhciAqY3VyX3A7Cj4gfQo+IEhhc2hTY2FuOwo+ICMgNjcgImhhc2guaCIKPiBjaGFy
ICpQbF9IYXNoX0FsbG9jX1RhYmxlKGludCB0Ymxfc2l6ZSwgaW50IGVsZW1fc2l6ZSk7Cj4gCj4g
dm9pZCBQbF9IYXNoX0ZyZWVfVGFibGUoY2hhciAqdGJsKTsKPiAKPiBjaGFyICpQbF9IYXNoX1Jl
YWxsb2NfVGFibGUoY2hhciAqdGJsLCBpbnQgbmV3X3RibF9zaXplKTsKPiAKPiB2b2lkIFBsX0hh
c2hfRGVsZXRlX0FsbChjaGFyICp0YmwpOwo+IAo+IGNoYXIgKlBsX0hhc2hfSW5zZXJ0KGNoYXIg
KnRibCwgY2hhciAqZWxlbSwgaW50IHJlcGxhY2UpOwo+IAo+IGNoYXIgKlBsX0hhc2hfRmluZChj
aGFyICp0YmwsIFBsTG9uZyBrZXkpOwo+IAo+IGNoYXIgKlBsX0hhc2hfRGVsZXRlKGNoYXIgKnRi
bCwgUGxMb25nIGtleSk7Cj4gCj4gY2hhciAqUGxfSGFzaF9GaXJzdChjaGFyICp0YmwsIEhhc2hT
Y2FuICpzY2FuKTsKPiAKPiBjaGFyICpQbF9IYXNoX05leHQoSGFzaFNjYW4gKnNjYW4pOwo+IAo+
IGludCBQbF9IYXNoX1RhYmxlX1NpemUoY2hhciAqdGJsKTsKPiAKPiBpbnQgUGxfSGFzaF9OYl9F
bGVtZW50cyhjaGFyICp0YmwpOwo+ICMgNDMgImVuZ2luZV9wbC5oIiAyCj4gIyAxICJib29sLmgi
IDEKPiAjIDY1ICJib29sLmgiCj4gdHlwZWRlZiBpbnQgQm9vbDsKPiAjIDQ0ICJlbmdpbmVfcGwu
aCIgMgo+ICMgMSAid2FtX3JlZ3MuaCIgMQo+ICMgNDUgImVuZ2luZV9wbC5oIiAyCj4gIyAxICJ3
YW1fYXJjaGkuaCIgMQo+ICMgNDQgIndhbV9hcmNoaS5oIgo+IHR5cGVkZWYgaW50cHRyX3QgV2Ft
V29yZDsKPiAKPiB0eXBlZGVmIHZvaWQgKCpDb2RlUHRyKSAoKTsKPiAKPiB0eXBlZGVmIENvZGVQ
dHIgV2FtQ29udDsKPiAKPiAKPiAKPiAKPiAKPiAKPiB0eXBlZGVmIFdhbVdvcmQgKldhbVdvcmRQ
Owo+IAo+IAo+IAo+IAo+IAo+IAo+IHJlZ2lzdGVyIFdhbVdvcmRQIFRSIGFzbSAoImVieCIpOwo+
ICMgOTYgIndhbV9hcmNoaS5oIgo+IGV4dGVybiBXYW1Xb3JkIHBsX3JlZ19iYW5rW107Cj4gZXh0
ZXJuIFdhbVdvcmQgcGxfYnVmZl9zaWduYWxfcmVnW107Cj4gCj4gZXh0ZXJuIGNoYXIgKnBsX3Jl
Z190YmxbXTsKPiAjIDI3MCAid2FtX2FyY2hpLmgiCj4gdHlwZWRlZiBlbnVtCj4gewo+ICAgTE9O
R19JTlQsCj4gICBTSE9SVF9VTlMsCj4gICBBRERSRVNTCj4gfVR5cFRhZzsKPiAKPiB0eXBlZGVm
IHN0cnVjdAo+IHsKPiAgIGNoYXIgKm5hbWU7Cj4gICBUeXBUYWcgdHlwZTsKPiAgIGludCB2YWx1
ZTsKPiAgIFBsTG9uZyB0YWdfbWFzazsKPiB9SW5mVGFnOwo+ICMgMzAxICJ3YW1fYXJjaGkuaCIK
PiBleHRlcm4gSW5mVGFnIHBsX3RhZ190YmxbXTsKPiAjIDMyOCAid2FtX2FyY2hpLmgiCj4gIyAx
ICJ3YW1fc3RhY2tzLmgiIDEKPiAjIDI3ICJ3YW1fc3RhY2tzLmgiCj4gdHlwZWRlZiBzdHJ1Y3QK
PiB7Cj4gICBjaGFyICpuYW1lOwo+ICAgY2hhciAqZGVzYzsKPiAgIGNoYXIgKmVudl92YXJfbmFt
ZTsKPiAgIFBsTG9uZyAqcF9kZWZfc2l6ZTsKPiAgIGludCBkZWZhdWx0X3NpemU7Cj4gICBpbnQg
c2l6ZTsKPiAgIFdhbVdvcmQgKnN0YWNrOwo+IH1JbmZTdGFjazsKPiAjIDU4ICJ3YW1fc3RhY2tz
LmgiCj4gZXh0ZXJuIFBsTG9uZyBwbF9kZWZfdHJhaWxfc2l6ZTsKPiBleHRlcm4gUGxMb25nIHBs
X2RlZl9jc3RyX3NpemU7Cj4gZXh0ZXJuIFBsTG9uZyBwbF9kZWZfZ2xvYmFsX3NpemU7Cj4gZXh0
ZXJuIFBsTG9uZyBwbF9kZWZfbG9jYWxfc2l6ZTsKPiBleHRlcm4gUGxMb25nIHBsX2ZpeGVkX3Np
emVzOwo+IAo+IAo+IGV4dGVybiBJbmZTdGFjayBwbF9zdGtfdGJsW107Cj4gIyAzMjkgIndhbV9h
cmNoaS5oIiAyCj4gIyA0NiAiZW5naW5lX3BsLmgiIDIKPiAjIDEgImVuZ2luZS5oIiAxCj4gIyA4
NyAiZW5naW5lLmgiCj4gZXh0ZXJuIGludCBwbF9vc19hcmdjOwo+IGV4dGVybiBjaGFyICoqcGxf
b3NfYXJndjsKPiAKPiBleHRlcm4gY2hhciAqcGxfaG9tZTsKPiBleHRlcm4gaW50IHBsX2RldmVs
X21vZGU7Cj4gCj4gZXh0ZXJuIGNoYXIgcGxfZ2xvYl9idWZmW107Cj4gCj4gZXh0ZXJuIFBsTG9u
ZyAqcGxfYmFzZV9mbDsKPiBleHRlcm4gZG91YmxlICpwbF9iYXNlX2ZkOwo+IAo+IGV4dGVybiBp
bnQgcGxfbGVfbW9kZTsKPiAjIDEwOCAiZW5naW5lLmgiCj4gaW50IFBsX1N0YXJ0X1Byb2xvZyhp
bnQgYXJnYywgY2hhciAqYXJndltdKTsKPiAKPiB2b2lkIFBsX1N0b3BfUHJvbG9nKHZvaWQpOwo+
IAo+IHZvaWQgUGxfUmVzZXRfUHJvbG9nKHZvaWQpOwo+IAo+IHZvaWQgUGxfUmVzZXRfUHJvbG9n
X0luX1NpZ25hbCh2b2lkKTsKPiAKPiB2b2lkIFBsX1NldF9IZWFwX0FjdHVhbF9TdGFydChXYW1X
b3JkICpoZWFwX2FjdHVhbF9zdGFydCk7Cj4gCj4gCj4gCj4gdm9pZCBQbF9FeGVjdXRlX0RpcmVj
dGl2ZShpbnQgcGxfZmlsZSwgaW50IHBsX2xpbmUsIEJvb2wgaXNfc3lzdGVtLAo+ICAgICAgQ29k
ZVB0ciBwcm9jKTsKPiAKPiBCb29sIFBsX1RyeV9FeGVjdXRlX1RvcF9MZXZlbCh2b2lkKTsKPiAK
PiBCb29sIFBsX0NhbGxfUHJvbG9nKENvZGVQdHIgY29kZXApOwo+IAo+IEJvb2wgUGxfQ2FsbF9Q
cm9sb2dfTmV4dF9Tb2woV2FtV29yZCAqcXVlcnlfYik7Cj4gCj4gdm9pZCBQbF9LZWVwX1Jlc3Rf
Rm9yX1Byb2xvZyhXYW1Xb3JkICpxdWVyeV9iKTsKPiAKPiB2b2lkIFBsX0V4aXRfV2l0aF9FeGNl
cHRpb24odm9pZCk7Cj4gCj4gdm9pZCBQbF9FeGVjdXRlX0FfQ29udGludWF0aW9uKENvZGVQdHIg
Y29kZXApOwo+ICMgNDcgImVuZ2luZV9wbC5oIiAyCj4gIyAxICJhdG9tLmgiIDEKPiAjIDk3ICJh
dG9tLmgiCj4gdHlwZWRlZiBzdHJ1Y3QKPiB7Cj4gICB1bnNpZ25lZCBsZW5ndGg6MTY7Cj4gICB1
bnNpZ25lZCBvcF9tYXNrOjQ7Cj4gICB1bnNpZ25lZCB0eXBlOjI7Cj4gICB1bnNpZ25lZCBuZWVk
c19xdW90ZToxOwo+ICAgdW5zaWduZWQgbmVlZHNfc2NhbjoxOwo+IH0KPiBBdG9tUHJvcDsKPiAK
PiAKPiAKPiAKPiB0eXBlZGVmIHN0cnVjdAo+IHsKPiAgIGNoYXIgKm5hbWU7Cj4gICB1bnNpZ25l
ZCBoYXNoOwo+ICAgQXRvbVByb3AgcHJvcDsKPiAgIHZvaWQgKmluZm87Cj4gfQo+IEF0b21JbmY7
Cj4gIyAxNTMgImF0b20uaCIKPiBleHRlcm4gQXRvbUluZiAqcGxfYXRvbV90Ymw7Cj4gZXh0ZXJu
IGludCBwbF9tYXhfYXRvbTsKPiBleHRlcm4gaW50IHBsX25iX2F0b207Cj4gCj4gZXh0ZXJuIGlu
dCBwbF9hdG9tX3ZvaWQ7Cj4gZXh0ZXJuIGludCBwbF9hdG9tX2N1cmx5X2JyYWNrZXRzOwo+IAo+
IGV4dGVybiBpbnQgcGxfYXRvbV9mYWxzZTsKPiBleHRlcm4gaW50IHBsX2F0b21fdHJ1ZTsKPiAK
PiBleHRlcm4gaW50IHBsX2F0b21fZW5kX29mX2ZpbGU7Cj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJu
IGNoYXIgcGxfY2hhcl9jb252W107Cj4gZXh0ZXJuIGludCBwbF9jaGFyX3R5cGVbXTsKPiAKPiBl
eHRlcm4gY2hhciBwbF9lc2NhcGVfc3ltYm9sW107Cj4gZXh0ZXJuIGNoYXIgcGxfZXNjYXBlX2No
YXJbXTsKPiAKPiAKPiAKPiBQbExvbmcgcGxfZGVmX21heF9hdG9tOwo+IAo+IAo+IAo+IAo+IAo+
IAo+IAo+IHZvaWQgUGxfSW5pdF9BdG9tKHZvaWQpOwo+IAo+IGludCBQbF9DcmVhdGVfQWxsb2Nh
dGVfQXRvbShjaGFyICpuYW1lKTsKPiAKPiBpbnQgUGxfQ3JlYXRlX0F0b20oY2hhciAqbmFtZSk7
Cj4gCj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfQ3JlYXRlX0F0b21f
VGFnZ2VkKGNoYXIgKm5hbWUpOwo+IAo+IGludCBQbF9GaW5kX0F0b20oY2hhciAqbmFtZSk7Cj4g
Cj4gaW50IFBsX0dlbl9OZXdfQXRvbShjaGFyICpwcmVmaXgpOwo+IAo+IGludCBQbF9GaW5kX05l
eHRfQXRvbShpbnQgbGFzdF9hdG9tKTsKPiAjIDQ4ICJlbmdpbmVfcGwuaCIgMgo+ICMgMSAicHJl
ZC5oIiAxCj4gIyA2MiAicHJlZC5oIgo+IHR5cGVkZWYgc3RydWN0Cj4gewo+ICAgUGxMb25nIGZf
bjsKPiAgIGludCBwbF9maWxlOwo+ICAgaW50IHBsX2xpbmU7Cj4gICBpbnQgcHJvcDsKPiAgIFBs
TG9uZyAqY29kZXA7Cj4gICBQbExvbmcgKmR5bjsKPiB9Cj4gUHJlZEluZjsKPiAjIDg2ICJwcmVk
LmgiCj4gZXh0ZXJuIGNoYXIgKnBsX3ByZWRfdGJsOwo+ICMgOTcgInByZWQuaCIKPiB2b2lkIFBs
X0luaXRfUHJlZCh2b2lkKTsKPiAKPiBQcmVkSW5mICogX19hdHRyaWJ1dGVfXygocmVncGFybSgz
KSkpIFBsX0NyZWF0ZV9QcmVkKGludCBmdW5jLCBpbnQgYXJpdHksIGludCBwbF9maWxlLCBpbnQg
cGxfbGluZSwKPiAgICAgICAgaW50IHByb3AsIFBsTG9uZyAqY29kZXApOwo+IAo+IFByZWRJbmYg
KiBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfTG9va3VwX1ByZWQoaW50IGZ1bmMsIGlu
dCBhcml0eSk7Cj4gCj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfRGVsZXRl
X1ByZWQoaW50IGZ1bmMsIGludCBhcml0eSk7Cj4gIyA0OSAiZW5naW5lX3BsLmgiIDIKPiAjIDEg
Im1pc2MuaCIgMQo+ICMgNTcgIm1pc2MuaCIKPiBjaGFyICpQbF9NYWxsb2NfQ2hlY2sodW5zaWdu
ZWQgc2l6ZSwgY2hhciAqc3JjX2ZpbGUsIGludCBzcmNfbGluZSk7Cj4gCj4gY2hhciAqUGxfQ2Fs
bG9jX0NoZWNrKHVuc2lnbmVkIG5iLCB1bnNpZ25lZCBzaXplLCBjaGFyICpzcmNfZmlsZSwKPiAg
ICAgIGludCBzcmNfbGluZSk7Cj4gCj4gY2hhciAqUGxfUmVhbGxvY19DaGVjayhjaGFyICpwdHIs
IHVuc2lnbmVkIHNpemUsIGNoYXIgKnNyY19maWxlLCBpbnQgc3JjX2xpbmUpOwo+IAo+IGNoYXIg
KlBsX1N0cmR1cF9DaGVjayhjaGFyICpzdHIsIGNoYXIgKnNyY19maWxlLCBpbnQgc3JjX2xpbmUp
Owo+ICMgNzYgIm1pc2MuaCIKPiB2b2lkIFBsX0V4dGVuZF9UYWJsZV9JZl9OZWVkZWQoY2hhciAq
Kmhhc2hfdGJsKTsKPiAKPiB2b2lkIFBsX0V4dGVuZF9BcnJheShjaGFyICoqcHRibCwgaW50ICpu
Yl9lbGVtLCBpbnQgZWxlbV9zaXplLCBCb29sIGJ6ZXJvKTsKPiAKPiB2b2lkIFBsX0V4aXRfV2l0
aF9WYWx1ZShpbnQgcmV0X3ZhbCk7Cj4gCj4gdm9pZCBQbF9GYXRhbF9FcnJvcihjaGFyICpmb3Jt
YXQsIC4uLik7Cj4gIyAxMTQgIm1pc2MuaCIKPiB2b2lkICpQbF9EdW1teV9QdHIodm9pZCAqcCk7
Cj4gIyA1MCAiZW5naW5lX3BsLmgiIDIKPiAjIDEgIm9wZXIuaCIgMQo+ICMgNzIgIm9wZXIuaCIK
PiB0eXBlZGVmIHN0cnVjdAo+IHsKPiAgIFBsTG9uZyBhX3Q7Cj4gICBpbnQgcHJlYzsKPiAgIGlu
dCBsZWZ0Owo+ICAgaW50IHJpZ2h0Owo+IH0KPiBPcGVySW5mOwo+ICMgOTQgIm9wZXIuaCIKPiBl
eHRlcm4gY2hhciAqcGxfb3Blcl90Ymw7Cj4gIyAxMDMgIm9wZXIuaCIKPiB2b2lkIFBsX0luaXRf
T3Blcih2b2lkKTsKPiAKPiBPcGVySW5mICpQbF9DcmVhdGVfT3BlcihpbnQgYXRvbV9vcCwgaW50
IHR5cGUsIGludCBwcmVjLCBpbnQgbGVmdCwgaW50IHJpZ2h0KTsKPiAKPiBPcGVySW5mICpQbF9M
b29rdXBfT3BlcihpbnQgYXRvbV9vcCwgaW50IHR5cGUpOwo+IAo+IE9wZXJJbmYgKlBsX0xvb2t1
cF9PcGVyX0FueV9UeXBlKGludCBhdG9tX29wKTsKPiAKPiBPcGVySW5mICpQbF9EZWxldGVfT3Bl
cihpbnQgYXRvbV9vcCwgaW50IHR5cGUpOwo+ICMgNTEgImVuZ2luZV9wbC5oIiAyCj4gIyAxICJt
YWNoaW5lMS5oIiAxCj4gIyA3MCAibWFjaGluZTEuaCIKPiBleHRlcm4gaW50IHBsX21fb3NfdHlw
ZTsKPiBleHRlcm4gY2hhciBwbF9tX2FyY2hpdGVjdHVyZVtdOwo+IGV4dGVybiBjaGFyIHBsX21f
b3NfdmVyc2lvbltdOwo+ICMgODMgIm1hY2hpbmUxLmgiCj4gdm9pZCBQbF9Jbml0X01hY2hpbmUx
KHZvaWQpOwo+IAo+IGNoYXIgKipQbF9NX0NyZWF0ZV9TaGVsbF9Db21tYW5kKGNoYXIgKmNtZCk7
Cj4gCj4gY2hhciAqKlBsX01fQ21kX0xpbmVfVG9fQXJndihjaGFyICpjbWQsIGludCAqYXJnYyk7
Cj4gCj4gaW50IFBsX01fU2hlbGwoY2hhciAqY21kKTsKPiAKPiBpbnQgUGxfTV9TcGF3bihjaGFy
ICphcmdbXSk7Cj4gCj4gaW50IFBsX01fU3Bhd25fUmVkaXJlY3QoY2hhciAqYXJnW10sIGludCBk
ZXRhY2gsCj4gICAgICAgIEZJTEUgKipmX2luLCBGSUxFICoqZl9vdXQsIEZJTEUgKipmX2Vycik7
Cj4gCj4gaW50IFBsX01fR2V0X1N0YXR1cyhpbnQgcGlkKTsKPiAKPiAKPiAKPiBjaGFyICpQbF9N
X01rdGVtcChjaGFyICp0bXBfdGVtcGxhdGUpOwo+IAo+IGNoYXIgKlBsX01fVGVtcG5hbShjaGFy
ICpkaXIsIGNoYXIgKnBmeCk7Cj4gIyA1MiAiZW5naW5lX3BsLmgiIDIKPiAjIDEgIm1hY2hpbmUu
aCIgMQo+ICMgNjEgIm1hY2hpbmUuaCIKPiB2b2lkIFBsX0luaXRfTWFjaGluZSh2b2lkKTsKPiAK
PiBjaGFyICpQbF9NX1N5c19FcnJfU3RyaW5nKGludCByZXRfdmFsKTsKPiAKPiBQbExvbmcgUGxf
TV9Vc2VyX1RpbWUodm9pZCk7Cj4gCj4gUGxMb25nIFBsX01fU3lzdGVtX1RpbWUodm9pZCk7Cj4g
Cj4gUGxMb25nIFBsX01fUmVhbF9UaW1lKHZvaWQpOwo+IAo+IHZvaWQgUGxfTV9SYW5kb21pemUo
dm9pZCk7Cj4gCj4gdm9pZCBQbF9NX1NldF9TZWVkKGludCBuKTsKPiAKPiBpbnQgUGxfTV9HZXRf
U2VlZCh2b2lkKTsKPiAKPiBpbnQgUGxfTV9SYW5kb21fSW50ZWdlcihpbnQgbik7Cj4gCj4gZG91
YmxlIFBsX01fUmFuZG9tX0Zsb2F0KGRvdWJsZSBuKTsKPiAKPiAKPiAKPiBjaGFyICpQbF9NX0hv
c3RfTmFtZV9Gcm9tX05hbWUoY2hhciAqaG9zdF9uYW1lKTsKPiAKPiBjaGFyICpQbF9NX0hvc3Rf
TmFtZV9Gcm9tX0FkcihjaGFyICpob3N0X2FkZHJlc3MpOwo+IAo+IGNoYXIgKlBsX01fR2V0X1dv
cmtpbmdfRGlyKHZvaWQpOwo+IAo+IEJvb2wgUGxfTV9TZXRfV29ya2luZ19EaXIoY2hhciAqcGF0
aCk7Cj4gCj4gY2hhciAqUGxfTV9BYnNvbHV0ZV9QYXRoX05hbWUoY2hhciAqc3JjKTsKPiAKPiBC
b29sIFBsX01fSXNfQWJzb2x1dGVfRmlsZV9OYW1lKGNoYXIgKnBhdGgpOwo+IAo+IGNoYXIgKlBs
X01fRGVjb21wb3NlX0ZpbGVfTmFtZShjaGFyICpwYXRoLCBCb29sIGRlbF90cmFpbF9zbGFzaGVz
LAo+ICAgICAgICAgICBjaGFyICoqYmFzZSwgY2hhciAqKnN1ZmZpeCk7Cj4gCj4gCj4gCj4gCj4g
Cj4gCj4gCj4gdm9pZCBNX0NoZWNrX01hZ2ljX1dvcmRzKHZvaWQpOwo+ICMgNTMgImVuZ2luZV9w
bC5oIiAyCj4gIyAxICJzdGFja3Nfc2lnc2Vndi5oIiAxCj4gIyA1MCAic3RhY2tzX3NpZ3NlZ3Yu
aCIKPiB0eXBlZGVmIGludCAoKlNlZ3ZIZGxyKSh2b2lkICpiYWRfYWRkcik7Cj4gIyA2MCAic3Rh
Y2tzX3NpZ3NlZ3YuaCIKPiB2b2lkIFBsX0FsbG9jYXRlX1N0YWNrcyh2b2lkKTsKPiAKPiB2b2lk
IFBsX1B1c2hfU0lHU0VHVl9IYW5kbGVyKFNlZ3ZIZGxyIGhhbmRsZXIpOwo+IAo+IHZvaWQgUGxf
UG9wX1NJR1NFR1ZfSGFuZGxlcih2b2lkKTsKPiAjIDU0ICJlbmdpbmVfcGwuaCIgMgo+ICMgMSAi
b2JqX2NoYWluLmgiIDEKPiAjIDU4ICJvYmpfY2hhaW4uaCIKPiB2b2lkIFBsX0ZpbmRfTGlua2Vk
X09iamVjdHModm9pZCk7Cj4gCj4gdm9pZCBQbF9OZXdfT2JqZWN0KHZvaWQgKCpmY3Rfb2JqX2lu
aXQpKCksIHZvaWQgKCpmY3RfZXhlY19zeXN0ZW0pICgpLCB2b2lkICgqZmN0X2V4ZWNfdXNlcikg
KCkpOwo+ICMgNTUgImVuZ2luZV9wbC5oIiAyCj4gIyAxICJ3YW1faW5zdC5oIiAxCj4gIyAyNDkg
IndhbV9pbnN0LmgiCj4gdHlwZWRlZiBzdHJ1Y3QKPiB7Cj4gICBQbExvbmcga2V5Owo+ICAgQ29k
ZVB0ciBjb2RlcDsKPiB9Cj4gU3d0SW5mOwo+IAo+IHR5cGVkZWYgU3d0SW5mICpTd3RUYmw7Cj4g
IyAyNjkgIndhbV9pbnN0LmgiCj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkg
UGxfQ3JlYXRlX0Z1bmN0b3JfQXJpdHlfVGFnZ2VkKGNoYXIgKmZ1bmNfc3RyLCBpbnQgYXJpdHkp
Owo+IAo+IFN3dFRibCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfQ3JlYXRlX1N3dF9U
YWJsZShpbnQgc2l6ZSk7Cj4gCj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxf
Q3JlYXRlX1N3dF9BdG1fRWxlbWVudChTd3RUYmwgdCwgaW50IHNpemUsIGludCBhdG9tLCBDb2Rl
UHRyIGNvZGVwKTsKPiAKPiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DcmVh
dGVfU3d0X1N0Y19FbGVtZW50KFN3dFRibCB0LCBpbnQgc2l6ZSwgaW50IGZ1bmMsIGludCBhcml0
eSwKPiAgICAgICAgQ29kZVB0ciBjb2RlcCk7Cj4gCj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdw
YXJtKDMpKSkgUGxfR2V0X0F0b21fVGFnZ2VkKFdhbVdvcmQgdywgV2FtV29yZCBzdGFydF93b3Jk
KTsKPiAKPiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9HZXRfQXRvbShpbnQg
YXRvbSwgV2FtV29yZCBzdGFydF93b3JkKTsKPiAKPiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bh
cm0oMykpKSBQbF9HZXRfSW50ZWdlcl9UYWdnZWQoV2FtV29yZCB3LCBXYW1Xb3JkIHN0YXJ0X3dv
cmQpOwo+IAo+IEJvb2wgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0dldF9JbnRlZ2Vy
KFBsTG9uZyBuLCBXYW1Xb3JkIHN0YXJ0X3dvcmQpOwo+IAo+IEJvb2wgX19hdHRyaWJ1dGVfXygo
cmVncGFybSgzKSkpIFBsX0dldF9GbG9hdChkb3VibGUgbiwgV2FtV29yZCBzdGFydF93b3JkKTsK
PiAKPiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9HZXRfTmlsKFdhbVdvcmQg
c3RhcnRfd29yZCk7Cj4gCj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfR2V0
X0xpc3QoV2FtV29yZCBzdGFydF93b3JkKTsKPiAKPiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bh
cm0oMykpKSBQbF9HZXRfU3RydWN0dXJlX1RhZ2dlZChXYW1Xb3JkIHcsIFdhbVdvcmQgc3RhcnRf
d29yZCk7Cj4gCj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfR2V0X1N0cnVj
dHVyZShpbnQgZnVuYywgaW50IGFyaXR5LCBXYW1Xb3JkIHN0YXJ0X3dvcmQpOwo+IAo+IFdhbVdv
cmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9YX1ZhcmlhYmxlKHZvaWQpOwo+
IAo+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9ZX1ZhcmlhYmxl
KFdhbVdvcmQgKnlfYWRyKTsKPiAKPiBXYW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykp
KSBQbF9QdXRfVW5zYWZlX1ZhbHVlKFdhbVdvcmQgc3RhcnRfd29yZCk7Cj4gCj4gV2FtV29yZCBf
X2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X0F0b21fVGFnZ2VkKFdhbVdvcmQgdyk7
Cj4gCj4gV2FtV29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X0F0b20oaW50
IGF0b20pOwo+IAo+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9J
bnRlZ2VyX1RhZ2dlZChXYW1Xb3JkIHcpOwo+IAo+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVn
cGFybSgzKSkpIFBsX1B1dF9JbnRlZ2VyKFBsTG9uZyBuKTsKPiAKPiBXYW1Xb3JkIF9fYXR0cmli
dXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9QdXRfRmxvYXQoZG91YmxlIG4pOwo+IAo+IFdhbVdvcmQg
X19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1B1dF9OaWwodm9pZCk7Cj4gCj4gV2FtV29y
ZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X0xpc3Qodm9pZCk7Cj4gCj4gV2Ft
V29yZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfUHV0X1N0cnVjdHVyZV9UYWdnZWQo
V2FtV29yZCB3KTsKPiAKPiBXYW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9Q
dXRfU3RydWN0dXJlKGludCBmdW5jLCBpbnQgYXJpdHkpOwo+IAo+IFdhbVdvcmQgX19hdHRyaWJ1
dGVfXygocmVncGFybSgzKSkpIFBsX1VuaWZ5X1ZhcmlhYmxlKHZvaWQpOwo+IAo+IHZvaWQgX19h
dHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VuaWZ5X1ZvaWQoaW50IG4pOwo+IAo+IEJvb2wg
X19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VuaWZ5X1ZhbHVlKFdhbVdvcmQgc3RhcnRf
d29yZCk7Cj4gCj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlfTG9j
YWxfVmFsdWUoV2FtV29yZCBzdGFydF93b3JkKTsKPiAKPiBCb29sIF9fYXR0cmlidXRlX18oKHJl
Z3Bhcm0oMykpKSBQbF9VbmlmeV9BdG9tX1RhZ2dlZChXYW1Xb3JkIHcpOwo+IAo+IEJvb2wgX19h
dHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VuaWZ5X0F0b20oaW50IGF0b20pOwo+IAo+IEJv
b2wgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VuaWZ5X0ludGVnZXJfVGFnZ2VkKFdh
bVdvcmQgdyk7Cj4gCj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVW5pZnlf
SW50ZWdlcihQbExvbmcgbik7Cj4gCj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkg
UGxfVW5pZnlfTmlsKHZvaWQpOwo+IAo+IEJvb2wgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkp
IFBsX1VuaWZ5X0xpc3Qodm9pZCk7Cj4gCj4gQm9vbCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMp
KSkgUGxfVW5pZnlfU3RydWN0dXJlX1RhZ2dlZChXYW1Xb3JkIHcpOwo+IAo+IEJvb2wgX19hdHRy
aWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VuaWZ5X1N0cnVjdHVyZShpbnQgZnVuYywgaW50IGFy
aXR5KTsKPiAKPiBXYW1Xb3JkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9HbG9iYWxp
emVfSWZfSW5fTG9jYWwoV2FtV29yZCBzdGFydF93b3JkKTsKPiAKPiB2b2lkIF9fYXR0cmlidXRl
X18oKHJlZ3Bhcm0oMykpKSBQbF9BbGxvY2F0ZShpbnQgbik7Cj4gCj4gdm9pZCBfX2F0dHJpYnV0
ZV9fKChyZWdwYXJtKDMpKSkgUGxfRGVhbGxvY2F0ZSh2b2lkKTsKPiAKPiBDb2RlUHRyIF9fYXR0
cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9Td2l0Y2hfT25fVGVybShDb2RlUHRyIGNfdmFyLCBD
b2RlUHRyIGNfYXRtLCBDb2RlUHRyIGNfaW50LAo+ICAgICAgICAgICAgIENvZGVQdHIgY19sc3Qs
IENvZGVQdHIgY19zdGMpOwo+IENvZGVQdHIgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBs
X1N3aXRjaF9Pbl9UZXJtX1Zhcl9BdG0oQ29kZVB0ciBjX3ZhciwgQ29kZVB0ciBjX2F0bSk7Cj4g
Q29kZVB0ciBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfU3dpdGNoX09uX1Rlcm1fVmFy
X1N0YyhDb2RlUHRyIGNfdmFyLCBDb2RlUHRyIGNfc3RjKTsKPiBDb2RlUHRyIF9fYXR0cmlidXRl
X18oKHJlZ3Bhcm0oMykpKSBQbF9Td2l0Y2hfT25fVGVybV9WYXJfQXRtX0xzdChDb2RlUHRyIGNf
dmFyLCBDb2RlUHRyIGNfYXRtLAo+ICAgICAgICAgICBDb2RlUHRyIGNfbHN0KTsKPiBDb2RlUHRy
IF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9Td2l0Y2hfT25fVGVybV9WYXJfQXRtX1N0
YyhDb2RlUHRyIGNfdmFyLCBDb2RlUHRyIGNfYXRtLAo+ICAgICAgICAgICBDb2RlUHRyIGNfc3Rj
KTsKPiAKPiBDb2RlUHRyIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9Td2l0Y2hfT25f
QXRvbShTd3RUYmwgdCwgaW50IHNpemUpOwo+IAo+IFBsTG9uZyBfX2F0dHJpYnV0ZV9fKChyZWdw
YXJtKDMpKSkgUGxfU3dpdGNoX09uX0ludGVnZXIodm9pZCk7Cj4gCj4gQ29kZVB0ciBfX2F0dHJp
YnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfU3dpdGNoX09uX1N0cnVjdHVyZShTd3RUYmwgdCwgaW50
IHNpemUpOwo+IAo+IFdhbVdvcmQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0dldF9D
dXJyZW50X0Nob2ljZSh2b2lkKTsKPiAKPiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykp
KSBQbF9DdXQoV2FtV29yZCBiX3dvcmQpOwo+IAo+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFy
bSgzKSkpIFBsX1NvZnRfQ3V0KFdhbVdvcmQgYl93b3JkKTsKPiAKPiB2b2lkIF9fYXR0cmlidXRl
X18oKHJlZ3Bhcm0oMykpKSBQbF9HbG9iYWxfUHVzaF9GbG9hdChkb3VibGUgbik7Cj4gCj4gZG91
YmxlIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9PYnRhaW5fRmxvYXQoV2FtV29yZCAq
YWRyKTsKPiAKPiAKPiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DcmVhdGVf
Q2hvaWNlX1BvaW50KENvZGVQdHIgY29kZXBfYWx0LCBpbnQgYXJpdHkpOwo+IHZvaWQgX19hdHRy
aWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0NyZWF0ZV9DaG9pY2VfUG9pbnQwKENvZGVQdHIgY29k
ZXBfYWx0KTsKPiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9DcmVhdGVfQ2hv
aWNlX1BvaW50MShDb2RlUHRyIGNvZGVwX2FsdCk7Cj4gdm9pZCBfX2F0dHJpYnV0ZV9fKChyZWdw
YXJtKDMpKSkgUGxfQ3JlYXRlX0Nob2ljZV9Qb2ludDIoQ29kZVB0ciBjb2RlcF9hbHQpOwo+IHZv
aWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX0NyZWF0ZV9DaG9pY2VfUG9pbnQzKENv
ZGVQdHIgY29kZXBfYWx0KTsKPiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9D
cmVhdGVfQ2hvaWNlX1BvaW50NChDb2RlUHRyIGNvZGVwX2FsdCk7Cj4gCj4gCj4gdm9pZCBfX2F0
dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVXBkYXRlX0Nob2ljZV9Qb2ludChDb2RlUHRyIGNv
ZGVwX2FsdCwgaW50IGFyaXR5KTsKPiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQ
bF9VcGRhdGVfQ2hvaWNlX1BvaW50MChDb2RlUHRyIGNvZGVwX2FsdCk7Cj4gdm9pZCBfX2F0dHJp
YnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVXBkYXRlX0Nob2ljZV9Qb2ludDEoQ29kZVB0ciBjb2Rl
cF9hbHQpOwo+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBsX1VwZGF0ZV9DaG9p
Y2VfUG9pbnQyKENvZGVQdHIgY29kZXBfYWx0KTsKPiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bh
cm0oMykpKSBQbF9VcGRhdGVfQ2hvaWNlX1BvaW50MyhDb2RlUHRyIGNvZGVwX2FsdCk7Cj4gdm9p
ZCBfX2F0dHJpYnV0ZV9fKChyZWdwYXJtKDMpKSkgUGxfVXBkYXRlX0Nob2ljZV9Qb2ludDQoQ29k
ZVB0ciBjb2RlcF9hbHQpOwo+IAo+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgzKSkpIFBs
X0RlbGV0ZV9DaG9pY2VfUG9pbnQoaW50IGFyaXR5KTsKPiB2b2lkIF9fYXR0cmlidXRlX18oKHJl
Z3Bhcm0oMykpKSBQbF9EZWxldGVfQ2hvaWNlX1BvaW50MCh2b2lkKTsKPiB2b2lkIF9fYXR0cmli
dXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9EZWxldGVfQ2hvaWNlX1BvaW50MSh2b2lkKTsKPiB2b2lk
IF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9EZWxldGVfQ2hvaWNlX1BvaW50Mih2b2lk
KTsKPiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9EZWxldGVfQ2hvaWNlX1Bv
aW50Myh2b2lkKTsKPiB2b2lkIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9EZWxldGVf
Q2hvaWNlX1BvaW50NCh2b2lkKTsKPiAKPiAKPiB2b2lkIFBsX0RlZmVhc2libGVfT3BlbigpOwo+
IHZvaWQgUGxfRGVmZWFzaWJsZV9VbmRvKCk7Cj4gdm9pZCBQbF9EZWZlYXNpYmxlX0Nsb3NlKEJv
b2wgdW5kb19iZWZvcmUpOwo+IAo+IAo+IAo+IHZvaWQgX19hdHRyaWJ1dGVfXygocmVncGFybSgz
KSkpIFBsX1VudHJhaWwoV2FtV29yZCAqbG93X2Fkcik7Cj4gCj4gQm9vbCBfX2F0dHJpYnV0ZV9f
KChyZWdwYXJtKDMpKSkgUGxfVW5pZnkoV2FtV29yZCBzdGFydF91X3dvcmQsIFdhbVdvcmQgc3Rh
cnRfdl93b3JkKTsKPiAKPiBCb29sIF9fYXR0cmlidXRlX18oKHJlZ3Bhcm0oMykpKSBQbF9Vbmlm
eV9PY2N1cnNfQ2hlY2soV2FtV29yZCBzdGFydF91X3dvcmQsIFdhbVdvcmQgc3RhcnRfdl93b3Jk
KTsKPiAjIDU2ICJlbmdpbmVfcGwuaCIgMgo+ICMgMSAiaWZfbm9fZmQuaCIgMQo+ICMgNjUgImlm
X25vX2ZkLmgiCj4gZXh0ZXJuIHZvaWQgKCpwbF9mZF9pbml0X3NvbHZlcikgKCk7Cj4gZXh0ZXJu
IHZvaWQgKCpwbF9mZF9yZXNldF9zb2x2ZXIpICgpOwo+IGV4dGVybiBCb29sICgqcGxfZmRfdW5p
Znlfd2l0aF9pbnRlZ2VyKSAoKTsKPiBleHRlcm4gQm9vbCAoKnBsX2ZkX3VuaWZ5X3dpdGhfZmRf
dmFyKSAoKTsKPiBleHRlcm4gaW50ICgqcGxfZmRfdmFyaWFibGVfc2l6ZSkgKCk7Cj4gZXh0ZXJu
IGludCAoKnBsX2ZkX2NvcHlfdmFyaWFibGUpICgpOwo+IGV4dGVybiBjaGFyICooKnBsX2ZkX3Zh
cmlhYmxlX3RvX3N0cmluZykgKCk7Cj4gIyA4MiAiaWZfbm9fZmQuaCIKPiB2b2lkIFBsX0ZkX0lu
aXRfU29sdmVyKHZvaWQpOwo+IAo+IHZvaWQgUGxfRmRfUmVzZXRfU29sdmVyKHZvaWQpOwo+ICMg
NTYgImVuZ2luZV9wbC5oIiAyCj4gIyA3MiAibWFjaGluZS5jIiAyCj4gCj4gCj4gCj4gIyAxICIv
dXNyL2luY2x1ZGUvbWFsbG9jLmgiIDEgMyA0Cj4gIyAyMyAiL3Vzci9pbmNsdWRlL21hbGxvYy5o
IiAzIDQKPiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRl
L3N0ZGRlZi5oIiAxIDMgNAo+ICMgMTQ5ICIvdXNyL2xpYi9nY2MvaTY4Ni1yZWRoYXQtbGludXgv
Ni4xLjEvaW5jbHVkZS9zdGRkZWYuaCIgMyA0Cj4gCj4gIyAxNDkgIi91c3IvbGliL2djYy9pNjg2
LXJlZGhhdC1saW51eC82LjEuMS9pbmNsdWRlL3N0ZGRlZi5oIiAzIDQKPiB0eXBlZGVmIGludCBw
dHJkaWZmX3Q7Cj4gIyA0MjYgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEuMS9p
bmNsdWRlL3N0ZGRlZi5oIiAzIDQKPiB0eXBlZGVmIHN0cnVjdCB7Cj4gICBsb25nIGxvbmcgX19t
YXhfYWxpZ25fbGwgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oX19hbGlnbm9mX18obG9uZyBs
b25nKSkpKTsKPiAgIGxvbmcgZG91YmxlIF9fbWF4X2FsaWduX2xkIF9fYXR0cmlidXRlX18oKF9f
YWxpZ25lZF9fKF9fYWxpZ25vZl9fKGxvbmcgZG91YmxlKSkpKTsKPiB9IG1heF9hbGlnbl90Owo+
ICMgMjQgIi91c3IvaW5jbHVkZS9tYWxsb2MuaCIgMiAzIDQKPiAjIDM1ICIvdXNyL2luY2x1ZGUv
bWFsbG9jLmgiIDMgNAo+IAo+IAo+IAo+IGV4dGVybiB2b2lkICptYWxsb2MgKHNpemVfdCBfX3Np
emUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fbWFsbG9jX18pKSA7Cj4gCj4gCj4gZXh0ZXJuIHZvaWQgKmNhbGxvYyAoc2l6ZV90IF9f
bm1lbWIsIHNpemVfdCBfX3NpemUpCj4gX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19s
ZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpIDsKPiAKPiAKPiAKPiAKPiAKPiAK
PiBleHRlcm4gdm9pZCAqcmVhbGxvYyAodm9pZCAqX19wdHIsIHNpemVfdCBfX3NpemUpCj4gX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX193
YXJuX3VudXNlZF9yZXN1bHRfXykpOwo+IAo+IAo+IGV4dGVybiB2b2lkIGZyZWUgKHZvaWQgKl9f
cHRyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IGV4
dGVybiB2b2lkIGNmcmVlICh2b2lkICpfX3B0cikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19f
ICwgX19sZWFmX18pKTsKPiAKPiAKPiBleHRlcm4gdm9pZCAqbWVtYWxpZ24gKHNpemVfdCBfX2Fs
aWdubWVudCwgc2l6ZV90IF9fc2l6ZSkKPiBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX21hbGxvY19fKSkgOwo+IAo+IAo+IGV4dGVybiB2
b2lkICp2YWxsb2MgKHNpemVfdCBfX3NpemUpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAs
IF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKSA7Cj4gCj4gCj4gCj4gZXh0
ZXJuIHZvaWQgKnB2YWxsb2MgKHNpemVfdCBfX3NpemUpIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKSA7Cj4gCj4gCj4g
Cj4gZXh0ZXJuIHZvaWQgKigqX19tb3JlY29yZSkgKHB0cmRpZmZfdCBfX3NpemUpOwo+IAo+IAo+
IGV4dGVybiB2b2lkICpfX2RlZmF1bHRfbW9yZWNvcmUgKHB0cmRpZmZfdCBfX3NpemUpCj4gX19h
dHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKSBfX2F0dHJpYnV0ZV9fICgoX19t
YWxsb2NfXykpOwo+IAo+IAo+IAo+IHN0cnVjdCBtYWxsaW5mbwo+IHsKPiAgIGludCBhcmVuYTsK
PiAgIGludCBvcmRibGtzOwo+ICAgaW50IHNtYmxrczsKPiAgIGludCBoYmxrczsKPiAgIGludCBo
YmxraGQ7Cj4gICBpbnQgdXNtYmxrczsKPiAgIGludCBmc21ibGtzOwo+ICAgaW50IHVvcmRibGtz
Owo+ICAgaW50IGZvcmRibGtzOwo+ICAgaW50IGtlZXBjb3N0Owo+IH07Cj4gCj4gCj4gZXh0ZXJu
IHN0cnVjdCBtYWxsaW5mbyBtYWxsaW5mbyAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJv
d19fICwgX19sZWFmX18pKTsKPiAjIDEyMSAiL3Vzci9pbmNsdWRlL21hbGxvYy5oIiAzIDQKPiBl
eHRlcm4gaW50IG1hbGxvcHQgKGludCBfX3BhcmFtLCBpbnQgX192YWwpIF9fYXR0cmlidXRlX18g
KChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4gZXh0ZXJuIGludCBtYWxsb2Nf
dHJpbSAoc2l6ZV90IF9fcGFkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZf
XykpOwo+IAo+IAo+IAo+IGV4dGVybiBzaXplX3QgbWFsbG9jX3VzYWJsZV9zaXplICh2b2lkICpf
X3B0cikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiBl
eHRlcm4gdm9pZCBtYWxsb2Nfc3RhdHMgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3df
XyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gZXh0ZXJuIGludCBtYWxsb2NfaW5mbyAoaW50IF9fb3B0
aW9ucywgRklMRSAqX19mcCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18p
KTsKPiAKPiAKPiBleHRlcm4gdm9pZCAqbWFsbG9jX2dldF9zdGF0ZSAodm9pZCkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiBleHRlcm4gaW50IG1h
bGxvY19zZXRfc3RhdGUgKHZvaWQgKl9fcHRyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IGV4dGVybiB2b2lkICgqdm9sYXRpbGUgX19tYWxs
b2NfaW5pdGlhbGl6ZV9ob29rKSAodm9pZCkKPiBfX2F0dHJpYnV0ZV9fICgoX19kZXByZWNhdGVk
X18pKTsKPiAKPiBleHRlcm4gdm9pZCAoKnZvbGF0aWxlIF9fZnJlZV9ob29rKSAodm9pZCAqX19w
dHIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3Qgdm9pZCAqKQo+IF9fYXR0cmlidXRlX18gKChfX2RlcHJlY2F0ZWRfXykpOwo+IGV4dGVy
biB2b2lkICooKnZvbGF0aWxlIF9fbWFsbG9jX2hvb2spKHNpemVfdCBfX3NpemUsCj4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lk
ICopCj4gX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVjYXRlZF9fKSk7Cj4gZXh0ZXJuIHZvaWQgKigq
dm9sYXRpbGUgX19yZWFsbG9jX2hvb2spKHZvaWQgKl9fcHRyLAo+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX3NpemUsCj4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
dm9pZCAqKQo+IF9fYXR0cmlidXRlX18gKChfX2RlcHJlY2F0ZWRfXykpOwo+IGV4dGVybiB2b2lk
ICooKnZvbGF0aWxlIF9fbWVtYWxpZ25faG9vaykoc2l6ZV90IF9fYWxpZ25tZW50LAo+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
X19zaXplLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCB2b2lkICopCj4gX19hdHRyaWJ1dGVfXyAoKF9fZGVwcmVjYXRlZF9fKSk7
Cj4gZXh0ZXJuIHZvaWQgKCp2b2xhdGlsZSBfX2FmdGVyX21vcmVjb3JlX2hvb2spICh2b2lkKTsK
PiAKPiAKPiBleHRlcm4gdm9pZCBfX21hbGxvY19jaGVja19pbml0ICh2b2lkKSBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2RlcHJlY2F0
ZWRfXykpOwo+IAo+IAo+IAo+ICMgNzYgIm1hY2hpbmUuYyIgMgo+IAo+IAo+IAo+IAo+ICMgMSAi
L3Vzci9pbmNsdWRlL25ldGRiLmgiIDEgMyA0Cj4gIyAyNyAiL3Vzci9pbmNsdWRlL25ldGRiLmgi
IDMgNAo+ICMgMSAiL3Vzci9pbmNsdWRlL25ldGluZXQvaW4uaCIgMSAzIDQKPiAjIDIzICIvdXNy
L2luY2x1ZGUvbmV0aW5ldC9pbi5oIiAzIDQKPiAjIDEgIi91c3IvaW5jbHVkZS9zeXMvc29ja2V0
LmgiIDEgMyA0Cj4gIyAyNCAiL3Vzci9pbmNsdWRlL3N5cy9zb2NrZXQuaCIgMyA0Cj4gCj4gCj4g
IyAxICIvdXNyL2luY2x1ZGUvc3lzL3Vpby5oIiAxIDMgNAo+ICMgMjUgIi91c3IvaW5jbHVkZS9z
eXMvdWlvLmgiIDMgNAo+IAo+IAo+IAo+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvdWlvLmgiIDEg
MyA0Cj4gIyA0MyAiL3Vzci9pbmNsdWRlL2JpdHMvdWlvLmgiIDMgNAo+IHN0cnVjdCBpb3ZlYwo+
ICAgewo+ICAgICB2b2lkICppb3ZfYmFzZTsKPiAgICAgc2l6ZV90IGlvdl9sZW47Cj4gICB9Owo+
ICMgMjkgIi91c3IvaW5jbHVkZS9zeXMvdWlvLmgiIDIgMyA0Cj4gIyAzOSAiL3Vzci9pbmNsdWRl
L3N5cy91aW8uaCIgMyA0Cj4gZXh0ZXJuIHNzaXplX3QgcmVhZHYgKGludCBfX2ZkLCBjb25zdCBz
dHJ1Y3QgaW92ZWMgKl9faW92ZWMsIGludCBfX2NvdW50KQo+ICAgOwo+ICMgNTAgIi91c3IvaW5j
bHVkZS9zeXMvdWlvLmgiIDMgNAo+IGV4dGVybiBzc2l6ZV90IHdyaXRldiAoaW50IF9fZmQsIGNv
bnN0IHN0cnVjdCBpb3ZlYyAqX19pb3ZlYywgaW50IF9fY291bnQpCj4gICA7Cj4gIyA2NSAiL3Vz
ci9pbmNsdWRlL3N5cy91aW8uaCIgMyA0Cj4gZXh0ZXJuIHNzaXplX3QgcHJlYWR2IChpbnQgX19m
ZCwgY29uc3Qgc3RydWN0IGlvdmVjICpfX2lvdmVjLCBpbnQgX19jb3VudCwKPiAgICAgICAgICBf
X29mZl90IF9fb2Zmc2V0KSA7Cj4gIyA3NyAiL3Vzci9pbmNsdWRlL3N5cy91aW8uaCIgMyA0Cj4g
ZXh0ZXJuIHNzaXplX3QgcHdyaXRldiAoaW50IF9fZmQsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqX19p
b3ZlYywgaW50IF9fY291bnQsCj4gICAgX19vZmZfdCBfX29mZnNldCkgOwo+ICMgMTIwICIvdXNy
L2luY2x1ZGUvc3lzL3Vpby5oIiAzIDQKPiAKPiAjIDI3ICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tl
dC5oIiAyIDMgNAo+IAo+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxpbnV4LzYuMS4x
L2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gIyAyOSAiL3Vzci9pbmNsdWRlL3N5cy9zb2NrZXQu
aCIgMiAzIDQKPiAjIDM4ICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAzIDQKPiAjIDEgIi91
c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAxIDMgNAo+ICMgMjcgIi91c3IvaW5jbHVkZS9iaXRz
L3NvY2tldC5oIiAzIDQKPiAjIDEgIi91c3IvbGliL2djYy9pNjg2LXJlZGhhdC1saW51eC82LjEu
MS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMgNAo+ICMgMjggIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tl
dC5oIiAyIDMgNAo+ICMgMzggIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAzIDQKPiAjIDEg
Ii91c3IvaW5jbHVkZS9iaXRzL3NvY2tldF90eXBlLmgiIDEgMyA0Cj4gIyAyNCAiL3Vzci9pbmNs
dWRlL2JpdHMvc29ja2V0X3R5cGUuaCIgMyA0Cj4gZW51bSBfX3NvY2tldF90eXBlCj4gewo+ICAg
U09DS19TVFJFQU0gPSAxLAo+IAo+IAo+ICAgU09DS19ER1JBTSA9IDIsCj4gCj4gCj4gICBTT0NL
X1JBVyA9IDMsCj4gCj4gICBTT0NLX1JETSA9IDQsCj4gCj4gICBTT0NLX1NFUVBBQ0tFVCA9IDUs
Cj4gCj4gCj4gICBTT0NLX0RDQ1AgPSA2LAo+IAo+ICAgU09DS19QQUNLRVQgPSAxMCwKPiAKPiAK
PiAKPiAKPiAKPiAKPiAKPiAgIFNPQ0tfQ0xPRVhFQyA9IDAyMDAwMDAwLAo+IAo+IAo+ICAgU09D
S19OT05CTE9DSyA9IDAwMDA0MDAwCj4gCj4gCj4gfTsKPiAjIDM5ICIvdXNyL2luY2x1ZGUvYml0
cy9zb2NrZXQuaCIgMiAzIDQKPiAjIDE1MCAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2V0LmgiIDMg
NAo+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2FkZHIuaCIgMSAzIDQKPiAjIDI4ICIvdXNy
L2luY2x1ZGUvYml0cy9zb2NrYWRkci5oIiAzIDQKPiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGlu
dCBzYV9mYW1pbHlfdDsKPiAjIDE1MSAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2V0LmgiIDIgMyA0
Cj4gCj4gCj4gc3RydWN0IHNvY2thZGRyCj4gICB7Cj4gICAgIHNhX2ZhbWlseV90IHNhX2ZhbWls
eTsKPiAgICAgY2hhciBzYV9kYXRhWzE0XTsKPiAgIH07Cj4gIyAxNjYgIi91c3IvaW5jbHVkZS9i
aXRzL3NvY2tldC5oIiAzIDQKPiBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZQo+ICAgewo+ICAgICBz
YV9mYW1pbHlfdCBzc19mYW1pbHk7Cj4gICAgIGNoYXIgX19zc19wYWRkaW5nWygxMjggLSAoc2l6
ZW9mICh1bnNpZ25lZCBzaG9ydCBpbnQpKSAtIHNpemVvZiAodW5zaWduZWQgbG9uZyBpbnQpKV07
Cj4gICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fc3NfYWxpZ247Cj4gICB9Owo+IAo+IAo+IAo+IGVu
dW0KPiAgIHsKPiAgICAgTVNHX09PQiA9IDB4MDEsCj4gCj4gICAgIE1TR19QRUVLID0gMHgwMiwK
PiAKPiAgICAgTVNHX0RPTlRST1VURSA9IDB4MDQsCj4gCj4gCj4gCj4gCj4gCj4gCj4gICAgIE1T
R19DVFJVTkMgPSAweDA4LAo+IAo+ICAgICBNU0dfUFJPWFkgPSAweDEwLAo+IAo+ICAgICBNU0df
VFJVTkMgPSAweDIwLAo+IAo+ICAgICBNU0dfRE9OVFdBSVQgPSAweDQwLAo+IAo+ICAgICBNU0df
RU9SID0gMHg4MCwKPiAKPiAgICAgTVNHX1dBSVRBTEwgPSAweDEwMCwKPiAKPiAgICAgTVNHX0ZJ
TiA9IDB4MjAwLAo+IAo+ICAgICBNU0dfU1lOID0gMHg0MDAsCj4gCj4gICAgIE1TR19DT05GSVJN
ID0gMHg4MDAsCj4gCj4gICAgIE1TR19SU1QgPSAweDEwMDAsCj4gCj4gICAgIE1TR19FUlJRVUVV
RSA9IDB4MjAwMCwKPiAKPiAgICAgTVNHX05PU0lHTkFMID0gMHg0MDAwLAo+IAo+ICAgICBNU0df
TU9SRSA9IDB4ODAwMCwKPiAKPiAgICAgTVNHX1dBSVRGT1JPTkUgPSAweDEwMDAwLAo+IAo+ICAg
ICBNU0dfRkFTVE9QRU4gPSAweDIwMDAwMDAwLAo+IAo+IAo+ICAgICBNU0dfQ01TR19DTE9FWEVD
ID0gMHg0MDAwMDAwMAo+IAo+IAo+IAo+ICAgfTsKPiAKPiAKPiAKPiAKPiBzdHJ1Y3QgbXNnaGRy
Cj4gICB7Cj4gICAgIHZvaWQgKm1zZ19uYW1lOwo+ICAgICBzb2NrbGVuX3QgbXNnX25hbWVsZW47
Cj4gCj4gICAgIHN0cnVjdCBpb3ZlYyAqbXNnX2lvdjsKPiAgICAgc2l6ZV90IG1zZ19pb3ZsZW47
Cj4gCj4gICAgIHZvaWQgKm1zZ19jb250cm9sOwo+ICAgICBzaXplX3QgbXNnX2NvbnRyb2xsZW47
Cj4gCj4gCj4gCj4gCj4gICAgIGludCBtc2dfZmxhZ3M7Cj4gICB9Owo+IAo+IAo+IHN0cnVjdCBj
bXNnaGRyCj4gICB7Cj4gICAgIHNpemVfdCBjbXNnX2xlbjsKPiAKPiAKPiAKPiAKPiAgICAgaW50
IGNtc2dfbGV2ZWw7Cj4gICAgIGludCBjbXNnX3R5cGU7Cj4gCj4gICAgIF9fZXh0ZW5zaW9uX18g
dW5zaWduZWQgY2hhciBfX2Ntc2dfZGF0YSBbXTsKPiAKPiAgIH07Cj4gIyAyNzYgIi91c3IvaW5j
bHVkZS9iaXRzL3NvY2tldC5oIiAzIDQKPiBleHRlcm4gc3RydWN0IGNtc2doZHIgKl9fY21zZ19u
eHRoZHIgKHN0cnVjdCBtc2doZHIgKl9fbWhkciwKPiAgICAgICAgICAgc3RydWN0IGNtc2doZHIg
Kl9fY21zZykgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAjIDMw
MyAiL3Vzci9pbmNsdWRlL2JpdHMvc29ja2V0LmgiIDMgNAo+IGVudW0KPiAgIHsKPiAgICAgU0NN
X1JJR0hUUyA9IDB4MDEKPiAKPiAKPiAKPiAKPiAKPiAgIH07Cj4gIyAzNDkgIi91c3IvaW5jbHVk
ZS9iaXRzL3NvY2tldC5oIiAzIDQKPiAjIDEgIi91c3IvaW5jbHVkZS9hc20vc29ja2V0LmgiIDEg
MyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUvYXNtLWdlbmVyaWMvc29ja2V0LmgiIDEgMyA0Cj4gCj4g
Cj4gCj4gIyAxICIvdXNyL2luY2x1ZGUvYXNtL3NvY2tpb3MuaCIgMSAzIDQKPiAjIDEgIi91c3Iv
aW5jbHVkZS9hc20tZ2VuZXJpYy9zb2NraW9zLmgiIDEgMyA0Cj4gIyAxICIvdXNyL2luY2x1ZGUv
YXNtL3NvY2tpb3MuaCIgMiAzIDQKPiAjIDUgIi91c3IvaW5jbHVkZS9hc20tZ2VuZXJpYy9zb2Nr
ZXQuaCIgMiAzIDQKPiAjIDEgIi91c3IvaW5jbHVkZS9hc20vc29ja2V0LmgiIDIgMyA0Cj4gIyAz
NTAgIi91c3IvaW5jbHVkZS9iaXRzL3NvY2tldC5oIiAyIDMgNAo+ICMgMzgzICIvdXNyL2luY2x1
ZGUvYml0cy9zb2NrZXQuaCIgMyA0Cj4gc3RydWN0IGxpbmdlcgo+ICAgewo+ICAgICBpbnQgbF9v
bm9mZjsKPiAgICAgaW50IGxfbGluZ2VyOwo+ICAgfTsKPiAjIDM5ICIvdXNyL2luY2x1ZGUvc3lz
L3NvY2tldC5oIiAyIDMgNAo+IAo+IAo+IAo+IAo+IHN0cnVjdCBvc29ja2FkZHIKPiAgIHsKPiAg
ICAgdW5zaWduZWQgc2hvcnQgaW50IHNhX2ZhbWlseTsKPiAgICAgdW5zaWduZWQgY2hhciBzYV9k
YXRhWzE0XTsKPiAgIH07Cj4gCj4gCj4gCj4gCj4gZW51bQo+IHsKPiAgIFNIVVRfUkQgPSAwLAo+
IAo+ICAgU0hVVF9XUiwKPiAKPiAgIFNIVVRfUkRXUgo+IAo+IH07Cj4gIyAxMTMgIi91c3IvaW5j
bHVkZS9zeXMvc29ja2V0LmgiIDMgNAo+IGV4dGVybiBpbnQgc29ja2V0IChpbnQgX19kb21haW4s
IGludCBfX3R5cGUsIGludCBfX3Byb3RvY29sKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18g
LCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBpbnQgc29ja2V0cGFpciAoaW50
IF9fZG9tYWluLCBpbnQgX190eXBlLCBpbnQgX19wcm90b2NvbCwKPiAgICAgICAgICBpbnQgX19m
ZHNbMl0pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4g
ZXh0ZXJuIGludCBiaW5kIChpbnQgX19mZCwgY29uc3Qgc3RydWN0IHNvY2thZGRyICogX19hZGRy
LCBzb2NrbGVuX3QgX19sZW4pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwo+IAo+IAo+IGV4dGVybiBpbnQgZ2V0c29ja25hbWUgKGludCBfX2ZkLCBzdHJ1
Y3Qgc29ja2FkZHIgKl9fcmVzdHJpY3QgX19hZGRyLAo+ICAgIHNvY2tsZW5fdCAqX19yZXN0cmlj
dCBfX2xlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAjIDEz
NyAiL3Vzci9pbmNsdWRlL3N5cy9zb2NrZXQuaCIgMyA0Cj4gZXh0ZXJuIGludCBjb25uZWN0IChp
bnQgX19mZCwgY29uc3Qgc3RydWN0IHNvY2thZGRyICogX19hZGRyLCBzb2NrbGVuX3QgX19sZW4p
Owo+IAo+IAo+IAo+IGV4dGVybiBpbnQgZ2V0cGVlcm5hbWUgKGludCBfX2ZkLCBzdHJ1Y3Qgc29j
a2FkZHIgKl9fcmVzdHJpY3QgX19hZGRyLAo+ICAgIHNvY2tsZW5fdCAqX19yZXN0cmljdCBfX2xl
bikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAK
PiAKPiAKPiBleHRlcm4gc3NpemVfdCBzZW5kIChpbnQgX19mZCwgY29uc3Qgdm9pZCAqX19idWYs
IHNpemVfdCBfX24sIGludCBfX2ZsYWdzKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gc3Np
emVfdCByZWN2IChpbnQgX19mZCwgdm9pZCAqX19idWYsIHNpemVfdCBfX24sIGludCBfX2ZsYWdz
KTsKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gc3NpemVfdCBzZW5kdG8gKGludCBfX2ZkLCBj
b25zdCB2b2lkICpfX2J1Ziwgc2l6ZV90IF9fbiwKPiAgICAgICAgICBpbnQgX19mbGFncywgY29u
c3Qgc3RydWN0IHNvY2thZGRyICogX19hZGRyLAo+ICAgICAgICAgIHNvY2tsZW5fdCBfX2FkZHJf
bGVuKTsKPiAjIDE3NCAiL3Vzci9pbmNsdWRlL3N5cy9zb2NrZXQuaCIgMyA0Cj4gZXh0ZXJuIHNz
aXplX3QgcmVjdmZyb20gKGludCBfX2ZkLCB2b2lkICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3Qg
X19uLAo+ICAgICBpbnQgX19mbGFncywgc3RydWN0IHNvY2thZGRyICpfX3Jlc3RyaWN0IF9fYWRk
ciwKPiAgICAgc29ja2xlbl90ICpfX3Jlc3RyaWN0IF9fYWRkcl9sZW4pOwo+IAo+IAo+IAo+IAo+
IAo+IAo+IAo+IGV4dGVybiBzc2l6ZV90IHNlbmRtc2cgKGludCBfX2ZkLCBjb25zdCBzdHJ1Y3Qg
bXNnaGRyICpfX21lc3NhZ2UsCj4gICAgaW50IF9fZmxhZ3MpOwo+ICMgMjAyICIvdXNyL2luY2x1
ZGUvc3lzL3NvY2tldC5oIiAzIDQKPiBleHRlcm4gc3NpemVfdCByZWN2bXNnIChpbnQgX19mZCwg
c3RydWN0IG1zZ2hkciAqX19tZXNzYWdlLCBpbnQgX19mbGFncyk7Cj4gIyAyMTkgIi91c3IvaW5j
bHVkZS9zeXMvc29ja2V0LmgiIDMgNAo+IGV4dGVybiBpbnQgZ2V0c29ja29wdCAoaW50IF9fZmQs
IGludCBfX2xldmVsLCBpbnQgX19vcHRuYW1lLAo+ICAgICAgICAgIHZvaWQgKl9fcmVzdHJpY3Qg
X19vcHR2YWwsCj4gICAgICAgICAgc29ja2xlbl90ICpfX3Jlc3RyaWN0IF9fb3B0bGVuKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IGV4dGVy
biBpbnQgc2V0c29ja29wdCAoaW50IF9fZmQsIGludCBfX2xldmVsLCBpbnQgX19vcHRuYW1lLAo+
ICAgICAgICAgIGNvbnN0IHZvaWQgKl9fb3B0dmFsLCBzb2NrbGVuX3QgX19vcHRsZW4pIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4gCj4gCj4gZXh0
ZXJuIGludCBsaXN0ZW4gKGludCBfX2ZkLCBpbnQgX19uKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Ro
cm93X18gLCBfX2xlYWZfXykpOwo+ICMgMjQzICIvdXNyL2luY2x1ZGUvc3lzL3NvY2tldC5oIiAz
IDQKPiBleHRlcm4gaW50IGFjY2VwdCAoaW50IF9fZmQsIHN0cnVjdCBzb2NrYWRkciAqX19yZXN0
cmljdCBfX2FkZHIsCj4gICAgICBzb2NrbGVuX3QgKl9fcmVzdHJpY3QgX19hZGRyX2xlbik7Cj4g
IyAyNjEgIi91c3IvaW5jbHVkZS9zeXMvc29ja2V0LmgiIDMgNAo+IGV4dGVybiBpbnQgc2h1dGRv
d24gKGludCBfX2ZkLCBpbnQgX19ob3cpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSk7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBzb2NrYXRtYXJrIChpbnQgX19mZCkg
X19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAKPiAK
PiAKPiAKPiBleHRlcm4gaW50IGlzZmR0eXBlIChpbnQgX19mZCwgaW50IF9fZmR0eXBlKSBfX2F0
dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ICMgMjgzICIvdXNyL2luY2x1
ZGUvc3lzL3NvY2tldC5oIiAzIDQKPiAKPiAjIDI0ICIvdXNyL2luY2x1ZGUvbmV0aW5ldC9pbi5o
IiAyIDMgNAo+IAo+IAo+IAo+IAo+IAo+IAo+IHR5cGVkZWYgdWludDMyX3QgaW5fYWRkcl90Owo+
IHN0cnVjdCBpbl9hZGRyCj4gICB7Cj4gICAgIGluX2FkZHJfdCBzX2FkZHI7Cj4gICB9Owo+IAo+
IAo+ICMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvaW4uaCIgMSAzIDQKPiAjIDEzMyAiL3Vzci9pbmNs
dWRlL2JpdHMvaW4uaCIgMyA0Cj4gc3RydWN0IGlwX29wdHMKPiAgIHsKPiAgICAgc3RydWN0IGlu
X2FkZHIgaXBfZHN0Owo+ICAgICBjaGFyIGlwX29wdHNbNDBdOwo+ICAgfTsKPiAKPiAKPiBzdHJ1
Y3QgaXBfbXJlcW4KPiAgIHsKPiAgICAgc3RydWN0IGluX2FkZHIgaW1yX211bHRpYWRkcjsKPiAg
ICAgc3RydWN0IGluX2FkZHIgaW1yX2FkZHJlc3M7Cj4gICAgIGludCBpbXJfaWZpbmRleDsKPiAg
IH07Cj4gCj4gCj4gc3RydWN0IGluX3BrdGluZm8KPiAgIHsKPiAgICAgaW50IGlwaV9pZmluZGV4
Owo+ICAgICBzdHJ1Y3QgaW5fYWRkciBpcGlfc3BlY19kc3Q7Cj4gICAgIHN0cnVjdCBpbl9hZGRy
IGlwaV9hZGRyOwo+ICAgfTsKPiAjIDM4ICIvdXNyL2luY2x1ZGUvbmV0aW5ldC9pbi5oIiAyIDMg
NAo+IAo+IAo+IGVudW0KPiAgIHsKPiAgICAgSVBQUk9UT19JUCA9IDAsCj4gCj4gICAgIElQUFJP
VE9fSUNNUCA9IDEsCj4gCj4gICAgIElQUFJPVE9fSUdNUCA9IDIsCj4gCj4gICAgIElQUFJPVE9f
SVBJUCA9IDQsCj4gCj4gICAgIElQUFJPVE9fVENQID0gNiwKPiAKPiAgICAgSVBQUk9UT19FR1Ag
PSA4LAo+IAo+ICAgICBJUFBST1RPX1BVUCA9IDEyLAo+IAo+ICAgICBJUFBST1RPX1VEUCA9IDE3
LAo+IAo+ICAgICBJUFBST1RPX0lEUCA9IDIyLAo+IAo+ICAgICBJUFBST1RPX1RQID0gMjksCj4g
Cj4gICAgIElQUFJPVE9fRENDUCA9IDMzLAo+IAo+ICAgICBJUFBST1RPX0lQVjYgPSA0MSwKPiAK
PiAgICAgSVBQUk9UT19SU1ZQID0gNDYsCj4gCj4gICAgIElQUFJPVE9fR1JFID0gNDcsCj4gCj4g
ICAgIElQUFJPVE9fRVNQID0gNTAsCj4gCj4gICAgIElQUFJPVE9fQUggPSA1MSwKPiAKPiAgICAg
SVBQUk9UT19NVFAgPSA5MiwKPiAKPiAgICAgSVBQUk9UT19CRUVUUEggPSA5NCwKPiAKPiAgICAg
SVBQUk9UT19FTkNBUCA9IDk4LAo+IAo+ICAgICBJUFBST1RPX1BJTSA9IDEwMywKPiAKPiAgICAg
SVBQUk9UT19DT01QID0gMTA4LAo+IAo+ICAgICBJUFBST1RPX1NDVFAgPSAxMzIsCj4gCj4gICAg
IElQUFJPVE9fVURQTElURSA9IDEzNiwKPiAKPiAgICAgSVBQUk9UT19NUExTID0gMTM3LAo+IAo+
ICAgICBJUFBST1RPX1JBVyA9IDI1NSwKPiAKPiAgICAgSVBQUk9UT19NQVgKPiAgIH07Cj4gCj4g
Cj4gCj4gCj4gCj4gZW51bQo+ICAgewo+ICAgICBJUFBST1RPX0hPUE9QVFMgPSAwLAo+IAo+ICAg
ICBJUFBST1RPX1JPVVRJTkcgPSA0MywKPiAKPiAgICAgSVBQUk9UT19GUkFHTUVOVCA9IDQ0LAo+
IAo+ICAgICBJUFBST1RPX0lDTVBWNiA9IDU4LAo+IAo+ICAgICBJUFBST1RPX05PTkUgPSA1OSwK
PiAKPiAgICAgSVBQUk9UT19EU1RPUFRTID0gNjAsCj4gCj4gICAgIElQUFJPVE9fTUggPSAxMzUK
PiAKPiAgIH07Cj4gCj4gCj4gCj4gdHlwZWRlZiB1aW50MTZfdCBpbl9wb3J0X3Q7Cj4gCj4gCj4g
ZW51bQo+ICAgewo+ICAgICBJUFBPUlRfRUNITyA9IDcsCj4gICAgIElQUE9SVF9ESVNDQVJEID0g
OSwKPiAgICAgSVBQT1JUX1NZU1RBVCA9IDExLAo+ICAgICBJUFBPUlRfREFZVElNRSA9IDEzLAo+
ICAgICBJUFBPUlRfTkVUU1RBVCA9IDE1LAo+ICAgICBJUFBPUlRfRlRQID0gMjEsCj4gICAgIElQ
UE9SVF9URUxORVQgPSAyMywKPiAgICAgSVBQT1JUX1NNVFAgPSAyNSwKPiAgICAgSVBQT1JUX1RJ
TUVTRVJWRVIgPSAzNywKPiAgICAgSVBQT1JUX05BTUVTRVJWRVIgPSA0MiwKPiAgICAgSVBQT1JU
X1dIT0lTID0gNDMsCj4gICAgIElQUE9SVF9NVFAgPSA1NywKPiAKPiAgICAgSVBQT1JUX1RGVFAg
PSA2OSwKPiAgICAgSVBQT1JUX1JKRSA9IDc3LAo+ICAgICBJUFBPUlRfRklOR0VSID0gNzksCj4g
ICAgIElQUE9SVF9UVFlMSU5LID0gODcsCj4gICAgIElQUE9SVF9TVVBEVVAgPSA5NSwKPiAKPiAK
PiAgICAgSVBQT1JUX0VYRUNTRVJWRVIgPSA1MTIsCj4gICAgIElQUE9SVF9MT0dJTlNFUlZFUiA9
IDUxMywKPiAgICAgSVBQT1JUX0NNRFNFUlZFUiA9IDUxNCwKPiAgICAgSVBQT1JUX0VGU1NFUlZF
UiA9IDUyMCwKPiAKPiAKPiAgICAgSVBQT1JUX0JJRkZVRFAgPSA1MTIsCj4gICAgIElQUE9SVF9X
SE9TRVJWRVIgPSA1MTMsCj4gICAgIElQUE9SVF9ST1VURVNFUlZFUiA9IDUyMCwKPiAKPiAKPiAg
ICAgSVBQT1JUX1JFU0VSVkVEID0gMTAyNCwKPiAKPiAKPiAgICAgSVBQT1JUX1VTRVJSRVNFUlZF
RCA9IDUwMDAKPiAgIH07Cj4gIyAyMTEgIi91c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgiIDMgNAo+
IHN0cnVjdCBpbjZfYWRkcgo+ICAgewo+ICAgICB1bmlvbgo+ICAgICAgIHsKPiAgdWludDhfdCBf
X3U2X2FkZHI4WzE2XTsKPiAKPiAgdWludDE2X3QgX191Nl9hZGRyMTZbOF07Cj4gIHVpbnQzMl90
IF9fdTZfYWRkcjMyWzRdOwo+IAo+ICAgICAgIH0gX19pbjZfdTsKPiAKPiAKPiAKPiAKPiAKPiAg
IH07Cj4gCj4gCj4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpbjZfYWRkciBpbjZhZGRyX2FueTsKPiBl
eHRlcm4gY29uc3Qgc3RydWN0IGluNl9hZGRyIGluNmFkZHJfbG9vcGJhY2s7Cj4gIyAyMzkgIi91
c3IvaW5jbHVkZS9uZXRpbmV0L2luLmgiIDMgNAo+IHN0cnVjdCBzb2NrYWRkcl9pbgo+ICAgewo+
ICAgICBzYV9mYW1pbHlfdCBzaW5fZmFtaWx5Owo+ICAgICBpbl9wb3J0X3Qgc2luX3BvcnQ7Cj4g
ICAgIHN0cnVjdCBpbl9hZGRyIHNpbl9hZGRyOwo+IAo+IAo+ICAgICB1bnNpZ25lZCBjaGFyIHNp
bl96ZXJvW3NpemVvZiAoc3RydWN0IHNvY2thZGRyKSAtCj4gICAgICAgKHNpemVvZiAodW5zaWdu
ZWQgc2hvcnQgaW50KSkgLQo+ICAgICAgIHNpemVvZiAoaW5fcG9ydF90KSAtCj4gICAgICAgc2l6
ZW9mIChzdHJ1Y3QgaW5fYWRkcildOwo+ICAgfTsKPiAKPiAKPiAKPiBzdHJ1Y3Qgc29ja2FkZHJf
aW42Cj4gICB7Cj4gICAgIHNhX2ZhbWlseV90IHNpbjZfZmFtaWx5Owo+ICAgICBpbl9wb3J0X3Qg
c2luNl9wb3J0Owo+ICAgICB1aW50MzJfdCBzaW42X2Zsb3dpbmZvOwo+ICAgICBzdHJ1Y3QgaW42
X2FkZHIgc2luNl9hZGRyOwo+ICAgICB1aW50MzJfdCBzaW42X3Njb3BlX2lkOwo+ICAgfTsKPiAK
PiAKPiAKPiAKPiBzdHJ1Y3QgaXBfbXJlcQo+ICAgewo+IAo+ICAgICBzdHJ1Y3QgaW5fYWRkciBp
bXJfbXVsdGlhZGRyOwo+IAo+IAo+ICAgICBzdHJ1Y3QgaW5fYWRkciBpbXJfaW50ZXJmYWNlOwo+
ICAgfTsKPiAKPiBzdHJ1Y3QgaXBfbXJlcV9zb3VyY2UKPiAgIHsKPiAKPiAgICAgc3RydWN0IGlu
X2FkZHIgaW1yX211bHRpYWRkcjsKPiAKPiAKPiAgICAgc3RydWN0IGluX2FkZHIgaW1yX2ludGVy
ZmFjZTsKPiAKPiAKPiAgICAgc3RydWN0IGluX2FkZHIgaW1yX3NvdXJjZWFkZHI7Cj4gICB9Owo+
IAo+IAo+IAo+IAo+IHN0cnVjdCBpcHY2X21yZXEKPiAgIHsKPiAKPiAgICAgc3RydWN0IGluNl9h
ZGRyIGlwdjZtcl9tdWx0aWFkZHI7Cj4gCj4gCj4gICAgIHVuc2lnbmVkIGludCBpcHY2bXJfaW50
ZXJmYWNlOwo+ICAgfTsKPiAKPiAKPiAKPiAKPiBzdHJ1Y3QgZ3JvdXBfcmVxCj4gICB7Cj4gCj4g
ICAgIHVpbnQzMl90IGdyX2ludGVyZmFjZTsKPiAKPiAKPiAgICAgc3RydWN0IHNvY2thZGRyX3N0
b3JhZ2UgZ3JfZ3JvdXA7Cj4gICB9Owo+IAo+IHN0cnVjdCBncm91cF9zb3VyY2VfcmVxCj4gICB7
Cj4gCj4gICAgIHVpbnQzMl90IGdzcl9pbnRlcmZhY2U7Cj4gCj4gCj4gICAgIHN0cnVjdCBzb2Nr
YWRkcl9zdG9yYWdlIGdzcl9ncm91cDsKPiAKPiAKPiAgICAgc3RydWN0IHNvY2thZGRyX3N0b3Jh
Z2UgZ3NyX3NvdXJjZTsKPiAgIH07Cj4gCj4gCj4gCj4gc3RydWN0IGlwX21zZmlsdGVyCj4gICB7
Cj4gCj4gICAgIHN0cnVjdCBpbl9hZGRyIGltc2ZfbXVsdGlhZGRyOwo+IAo+IAo+ICAgICBzdHJ1
Y3QgaW5fYWRkciBpbXNmX2ludGVyZmFjZTsKPiAKPiAKPiAgICAgdWludDMyX3QgaW1zZl9mbW9k
ZTsKPiAKPiAKPiAgICAgdWludDMyX3QgaW1zZl9udW1zcmM7Cj4gCj4gICAgIHN0cnVjdCBpbl9h
ZGRyIGltc2Zfc2xpc3RbMV07Cj4gICB9Owo+IAo+IAo+IAo+IAo+IAo+IHN0cnVjdCBncm91cF9m
aWx0ZXIKPiAgIHsKPiAKPiAgICAgdWludDMyX3QgZ2ZfaW50ZXJmYWNlOwo+IAo+IAo+ICAgICBz
dHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBnZl9ncm91cDsKPiAKPiAKPiAgICAgdWludDMyX3QgZ2Zf
Zm1vZGU7Cj4gCj4gCj4gICAgIHVpbnQzMl90IGdmX251bXNyYzsKPiAKPiAgICAgc3RydWN0IHNv
Y2thZGRyX3N0b3JhZ2UgZ2Zfc2xpc3RbMV07Cj4gfTsKPiAjIDM3NiAiL3Vzci9pbmNsdWRlL25l
dGluZXQvaW4uaCIgMyA0Cj4gZXh0ZXJuIHVpbnQzMl90IG50b2hsICh1aW50MzJfdCBfX25ldGxv
bmcpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19hdHRyaWJ1dGVf
XyAoKF9fY29uc3RfXykpOwo+IGV4dGVybiB1aW50MTZfdCBudG9ocyAodWludDE2X3QgX19uZXRz
aG9ydCkKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSkgX19h
dHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+IGV4dGVybiB1aW50MzJfdCBodG9ubCAodWludDMy
X3QgX19ob3N0bG9uZykKPiAgICAgIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+IGV4dGVybiB1aW50MTZfdCBodG9u
cyAodWludDE2X3QgX19ob3N0c2hvcnQpCj4gICAgICBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93
X18gLCBfX2xlYWZfXykpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKPiAKPiAKPiAKPiAK
PiAjIDEgIi91c3IvaW5jbHVkZS9iaXRzL2J5dGVzd2FwLmgiIDEgMyA0Cj4gIyAzODggIi91c3Iv
aW5jbHVkZS9uZXRpbmV0L2luLmgiIDIgMyA0Cj4gIyA1MDMgIi91c3IvaW5jbHVkZS9uZXRpbmV0
L2luLmgiIDMgNAo+IGV4dGVybiBpbnQgYmluZHJlc3Zwb3J0IChpbnQgX19zb2NrZmQsIHN0cnVj
dCBzb2NrYWRkcl9pbiAqX19zb2NrX2luKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwo+IAo+IAo+IGV4dGVybiBpbnQgYmluZHJlc3Zwb3J0NiAoaW50IF9fc29ja2Zk
LCBzdHJ1Y3Qgc29ja2FkZHJfaW42ICpfX3NvY2tfaW4pCj4gICAgICBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+ICMgNjMxICIvdXNyL2luY2x1ZGUvbmV0aW5ldC9p
bi5oIiAzIDQKPiAKPiAjIDI4ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMiAzIDQKPiAKPiAKPiAK
PiAKPiAjIDEgIi91c3IvaW5jbHVkZS9ycGMvbmV0ZGIuaCIgMSAzIDQKPiAjIDQyICIvdXNyL2lu
Y2x1ZGUvcnBjL25ldGRiLmgiIDMgNAo+ICMgMSAiL3Vzci9saWIvZ2NjL2k2ODYtcmVkaGF0LWxp
bnV4LzYuMS4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0Cj4gIyA0MyAiL3Vzci9pbmNsdWRlL3Jw
Yy9uZXRkYi5oIiAyIDMgNAo+IAo+IAo+IAo+IHN0cnVjdCBycGNlbnQKPiB7Cj4gICBjaGFyICpy
X25hbWU7Cj4gICBjaGFyICoqcl9hbGlhc2VzOwo+ICAgaW50IHJfbnVtYmVyOwo+IH07Cj4gCj4g
ZXh0ZXJuIHZvaWQgc2V0cnBjZW50IChpbnQgX19zdGF5b3BlbikgX19hdHRyaWJ1dGVfXyAoKF9f
bm90aHJvd19fICwgX19sZWFmX18pKTsKPiBleHRlcm4gdm9pZCBlbmRycGNlbnQgKHZvaWQpIF9f
YXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gZXh0ZXJuIHN0cnVjdCBy
cGNlbnQgKmdldHJwY2J5bmFtZSAoY29uc3QgY2hhciAqX19uYW1lKSBfX2F0dHJpYnV0ZV9fICgo
X19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IGV4dGVybiBzdHJ1Y3QgcnBjZW50ICpnZXRycGNi
eW51bWJlciAoaW50IF9fbnVtYmVyKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xl
YWZfXykpOwo+IGV4dGVybiBzdHJ1Y3QgcnBjZW50ICpnZXRycGNlbnQgKHZvaWQpIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gZXh0ZXJuIGludCBnZXRy
cGNieW5hbWVfciAoY29uc3QgY2hhciAqX19uYW1lLCBzdHJ1Y3QgcnBjZW50ICpfX3Jlc3VsdF9i
dWYsCj4gICAgICAgY2hhciAqX19idWZmZXIsIHNpemVfdCBfX2J1ZmxlbiwKPiAgICAgICBzdHJ1
Y3QgcnBjZW50ICoqX19yZXN1bHQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSk7Cj4gCj4gZXh0ZXJuIGludCBnZXRycGNieW51bWJlcl9yIChpbnQgX19udW1iZXIsIHN0
cnVjdCBycGNlbnQgKl9fcmVzdWx0X2J1ZiwKPiAgICAgICAgIGNoYXIgKl9fYnVmZmVyLCBzaXpl
X3QgX19idWZsZW4sCj4gICAgICAgICBzdHJ1Y3QgcnBjZW50ICoqX19yZXN1bHQpIF9fYXR0cmli
dXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gZXh0ZXJuIGludCBnZXRycGNl
bnRfciAoc3RydWN0IHJwY2VudCAqX19yZXN1bHRfYnVmLCBjaGFyICpfX2J1ZmZlciwKPiAgICBz
aXplX3QgX19idWZsZW4sIHN0cnVjdCBycGNlbnQgKipfX3Jlc3VsdCkgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAjIDMzICIvdXNyL2luY2x1ZGUv
bmV0ZGIuaCIgMiAzIDQKPiAjIDQyICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gIyAxICIv
dXNyL2luY2x1ZGUvYml0cy9uZXRkYi5oIiAxIDMgNAo+ICMgMjYgIi91c3IvaW5jbHVkZS9iaXRz
L25ldGRiLmgiIDMgNAo+IHN0cnVjdCBuZXRlbnQKPiB7Cj4gICBjaGFyICpuX25hbWU7Cj4gICBj
aGFyICoqbl9hbGlhc2VzOwo+ICAgaW50IG5fYWRkcnR5cGU7Cj4gICB1aW50MzJfdCBuX25ldDsK
PiB9Owo+ICMgNDMgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAyIDMgNAo+ICMgNTMgIi91c3IvaW5j
bHVkZS9uZXRkYi5oIiAzIDQKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50ICpf
X2hfZXJybm9fbG9jYXRpb24gKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9f
bGVhZl9fKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwo+ICMgOTIgIi91c3IvaW5jbHVk
ZS9uZXRkYi5oIiAzIDQKPiBleHRlcm4gdm9pZCBoZXJyb3IgKGNvbnN0IGNoYXIgKl9fc3RyKSBf
X2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IGV4dGVybiBj
b25zdCBjaGFyICpoc3RyZXJyb3IgKGludCBfX2Vycl9udW0pIF9fYXR0cmlidXRlX18gKChfX25v
dGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4gCj4gc3RydWN0IGhvc3RlbnQKPiB7Cj4g
ICBjaGFyICpoX25hbWU7Cj4gICBjaGFyICoqaF9hbGlhc2VzOwo+ICAgaW50IGhfYWRkcnR5cGU7
Cj4gICBpbnQgaF9sZW5ndGg7Cj4gICBjaGFyICoqaF9hZGRyX2xpc3Q7Cj4gCj4gCj4gCj4gfTsK
PiAKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gdm9pZCBzZXRob3N0ZW50IChpbnQgX19zdGF5X29w
ZW4pOwo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiB2b2lkIGVuZGhvc3RlbnQgKHZvaWQpOwo+IAo+
IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBzdHJ1Y3QgaG9zdGVudCAqZ2V0aG9zdGVudCAodm9pZCk7
Cj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIHN0cnVjdCBob3N0ZW50ICpnZXRob3N0YnlhZGRy
IChjb25zdCB2b2lkICpfX2FkZHIsIF9fc29ja2xlbl90IF9fbGVuLAo+ICAgICAgICAgICBpbnQg
X190eXBlKTsKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gc3RydWN0IGhvc3RlbnQgKmdldGhvc3Ri
eW5hbWUgKGNvbnN0IGNoYXIgKl9fbmFtZSk7Cj4gIyAxNTUgIi91c3IvaW5jbHVkZS9uZXRkYi5o
IiAzIDQKPiBleHRlcm4gc3RydWN0IGhvc3RlbnQgKmdldGhvc3RieW5hbWUyIChjb25zdCBjaGFy
ICpfX25hbWUsIGludCBfX2FmKTsKPiAjIDE2NyAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+
IGV4dGVybiBpbnQgZ2V0aG9zdGVudF9yIChzdHJ1Y3QgaG9zdGVudCAqX19yZXN0cmljdCBfX3Jl
c3VsdF9idWYsCj4gICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX2J1ZmxlbiwK
PiAgICAgc3RydWN0IGhvc3RlbnQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0LAo+ICAgICBpbnQgKl9f
cmVzdHJpY3QgX19oX2Vycm5vcCk7Cj4gCj4gZXh0ZXJuIGludCBnZXRob3N0YnlhZGRyX3IgKGNv
bnN0IHZvaWQgKl9fcmVzdHJpY3QgX19hZGRyLCBfX3NvY2tsZW5fdCBfX2xlbiwKPiAgICAgICAg
aW50IF9fdHlwZSwKPiAgICAgICAgc3RydWN0IGhvc3RlbnQgKl9fcmVzdHJpY3QgX19yZXN1bHRf
YnVmLAo+ICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZsZW4sCj4g
ICAgICAgIHN0cnVjdCBob3N0ZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCwKPiAgICAgICAgaW50
ICpfX3Jlc3RyaWN0IF9faF9lcnJub3ApOwo+IAo+IGV4dGVybiBpbnQgZ2V0aG9zdGJ5bmFtZV9y
IChjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbmFtZSwKPiAgICAgICAgc3RydWN0IGhvc3RlbnQg
Kl9fcmVzdHJpY3QgX19yZXN1bHRfYnVmLAo+ICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVm
LCBzaXplX3QgX19idWZsZW4sCj4gICAgICAgIHN0cnVjdCBob3N0ZW50ICoqX19yZXN0cmljdCBf
X3Jlc3VsdCwKPiAgICAgICAgaW50ICpfX3Jlc3RyaWN0IF9faF9lcnJub3ApOwo+IAo+IGV4dGVy
biBpbnQgZ2V0aG9zdGJ5bmFtZTJfciAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsIGlu
dCBfX2FmLAo+ICAgICAgICAgc3RydWN0IGhvc3RlbnQgKl9fcmVzdHJpY3QgX19yZXN1bHRfYnVm
LAo+ICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAo+ICAg
ICAgICAgc3RydWN0IGhvc3RlbnQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0LAo+ICAgICAgICAgaW50
ICpfX3Jlc3RyaWN0IF9faF9lcnJub3ApOwo+ICMgMTk4ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIg
MyA0Cj4gZXh0ZXJuIHZvaWQgc2V0bmV0ZW50IChpbnQgX19zdGF5X29wZW4pOwo+IAo+IAo+IAo+
IAo+IAo+IGV4dGVybiB2b2lkIGVuZG5ldGVudCAodm9pZCk7Cj4gCj4gCj4gCj4gCj4gCj4gCj4g
ZXh0ZXJuIHN0cnVjdCBuZXRlbnQgKmdldG5ldGVudCAodm9pZCk7Cj4gCj4gCj4gCj4gCj4gCj4g
Cj4gZXh0ZXJuIHN0cnVjdCBuZXRlbnQgKmdldG5ldGJ5YWRkciAodWludDMyX3QgX19uZXQsIGlu
dCBfX3R5cGUpOwo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiBzdHJ1Y3QgbmV0ZW50ICpnZXRuZXRi
eW5hbWUgKGNvbnN0IGNoYXIgKl9fbmFtZSk7Cj4gIyAyMzcgIi91c3IvaW5jbHVkZS9uZXRkYi5o
IiAzIDQKPiBleHRlcm4gaW50IGdldG5ldGVudF9yIChzdHJ1Y3QgbmV0ZW50ICpfX3Jlc3RyaWN0
IF9fcmVzdWx0X2J1ZiwKPiAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19idWZs
ZW4sCj4gICAgc3RydWN0IG5ldGVudCAqKl9fcmVzdHJpY3QgX19yZXN1bHQsCj4gICAgaW50ICpf
X3Jlc3RyaWN0IF9faF9lcnJub3ApOwo+IAo+IGV4dGVybiBpbnQgZ2V0bmV0YnlhZGRyX3IgKHVp
bnQzMl90IF9fbmV0LCBpbnQgX190eXBlLAo+ICAgICAgIHN0cnVjdCBuZXRlbnQgKl9fcmVzdHJp
Y3QgX19yZXN1bHRfYnVmLAo+ICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBf
X2J1ZmxlbiwKPiAgICAgICBzdHJ1Y3QgbmV0ZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCwKPiAg
ICAgICBpbnQgKl9fcmVzdHJpY3QgX19oX2Vycm5vcCk7Cj4gCj4gZXh0ZXJuIGludCBnZXRuZXRi
eW5hbWVfciAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4gICAgICAgc3RydWN0IG5l
dGVudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9idWYsCj4gICAgICAgY2hhciAqX19yZXN0cmljdCBf
X2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAo+ICAgICAgIHN0cnVjdCBuZXRlbnQgKipfX3Jlc3RyaWN0
IF9fcmVzdWx0LAo+ICAgICAgIGludCAqX19yZXN0cmljdCBfX2hfZXJybm9wKTsKPiAKPiAKPiAK
PiAKPiBzdHJ1Y3Qgc2VydmVudAo+IHsKPiAgIGNoYXIgKnNfbmFtZTsKPiAgIGNoYXIgKipzX2Fs
aWFzZXM7Cj4gICBpbnQgc19wb3J0Owo+ICAgY2hhciAqc19wcm90bzsKPiB9Owo+IAo+IAo+IAo+
IAo+IAo+IAo+IGV4dGVybiB2b2lkIHNldHNlcnZlbnQgKGludCBfX3N0YXlfb3Blbik7Cj4gCj4g
Cj4gCj4gCj4gCj4gZXh0ZXJuIHZvaWQgZW5kc2VydmVudCAodm9pZCk7Cj4gCj4gCj4gCj4gCj4g
Cj4gCj4gZXh0ZXJuIHN0cnVjdCBzZXJ2ZW50ICpnZXRzZXJ2ZW50ICh2b2lkKTsKPiAKPiAKPiAK
PiAKPiAKPiAKPiBleHRlcm4gc3RydWN0IHNlcnZlbnQgKmdldHNlcnZieW5hbWUgKGNvbnN0IGNo
YXIgKl9fbmFtZSwgY29uc3QgY2hhciAqX19wcm90byk7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0
ZXJuIHN0cnVjdCBzZXJ2ZW50ICpnZXRzZXJ2Ynlwb3J0IChpbnQgX19wb3J0LCBjb25zdCBjaGFy
ICpfX3Byb3RvKTsKPiAjIDMwOCAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+IGV4dGVybiBp
bnQgZ2V0c2VydmVudF9yIChzdHJ1Y3Qgc2VydmVudCAqX19yZXN0cmljdCBfX3Jlc3VsdF9idWYs
Cj4gICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX2J1ZmxlbiwKPiAgICAgc3Ry
dWN0IHNlcnZlbnQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0KTsKPiAKPiBleHRlcm4gaW50IGdldHNl
cnZieW5hbWVfciAoY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4gICAgICAgIGNvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19wcm90bywKPiAgICAgICAgc3RydWN0IHNlcnZlbnQgKl9fcmVz
dHJpY3QgX19yZXN1bHRfYnVmLAo+ICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXpl
X3QgX19idWZsZW4sCj4gICAgICAgIHN0cnVjdCBzZXJ2ZW50ICoqX19yZXN0cmljdCBfX3Jlc3Vs
dCk7Cj4gCj4gZXh0ZXJuIGludCBnZXRzZXJ2Ynlwb3J0X3IgKGludCBfX3BvcnQsIGNvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19wcm90bywKPiAgICAgICAgc3RydWN0IHNlcnZlbnQgKl9fcmVzdHJp
Y3QgX19yZXN1bHRfYnVmLAo+ICAgICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3Qg
X19idWZsZW4sCj4gICAgICAgIHN0cnVjdCBzZXJ2ZW50ICoqX19yZXN0cmljdCBfX3Jlc3VsdCk7
Cj4gCj4gCj4gCj4gCj4gc3RydWN0IHByb3RvZW50Cj4gewo+ICAgY2hhciAqcF9uYW1lOwo+ICAg
Y2hhciAqKnBfYWxpYXNlczsKPiAgIGludCBwX3Byb3RvOwo+IH07Cj4gCj4gCj4gCj4gCj4gCj4g
Cj4gZXh0ZXJuIHZvaWQgc2V0cHJvdG9lbnQgKGludCBfX3N0YXlfb3Blbik7Cj4gCj4gCj4gCj4g
Cj4gCj4gZXh0ZXJuIHZvaWQgZW5kcHJvdG9lbnQgKHZvaWQpOwo+IAo+IAo+IAo+IAo+IAo+IAo+
IGV4dGVybiBzdHJ1Y3QgcHJvdG9lbnQgKmdldHByb3RvZW50ICh2b2lkKTsKPiAKPiAKPiAKPiAK
PiAKPiBleHRlcm4gc3RydWN0IHByb3RvZW50ICpnZXRwcm90b2J5bmFtZSAoY29uc3QgY2hhciAq
X19uYW1lKTsKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gc3RydWN0IHByb3RvZW50ICpnZXRwcm90
b2J5bnVtYmVyIChpbnQgX19wcm90byk7Cj4gIyAzNzQgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAz
IDQKPiBleHRlcm4gaW50IGdldHByb3RvZW50X3IgKHN0cnVjdCBwcm90b2VudCAqX19yZXN0cmlj
dCBfX3Jlc3VsdF9idWYsCj4gICAgICBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19i
dWZsZW4sCj4gICAgICBzdHJ1Y3QgcHJvdG9lbnQgKipfX3Jlc3RyaWN0IF9fcmVzdWx0KTsKPiAK
PiBleHRlcm4gaW50IGdldHByb3RvYnluYW1lX3IgKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19u
YW1lLAo+ICAgICAgICAgc3RydWN0IHByb3RvZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1ZiwK
PiAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsIHNpemVfdCBfX2J1ZmxlbiwKPiAgICAg
ICAgIHN0cnVjdCBwcm90b2VudCAqKl9fcmVzdHJpY3QgX19yZXN1bHQpOwo+IAo+IGV4dGVybiBp
bnQgZ2V0cHJvdG9ieW51bWJlcl9yIChpbnQgX19wcm90bywKPiAgICAgICAgICAgc3RydWN0IHBy
b3RvZW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0X2J1ZiwKPiAgICAgICAgICAgY2hhciAqX19yZXN0
cmljdCBfX2J1Ziwgc2l6ZV90IF9fYnVmbGVuLAo+ICAgICAgICAgICBzdHJ1Y3QgcHJvdG9lbnQg
KipfX3Jlc3RyaWN0IF9fcmVzdWx0KTsKPiAjIDM5NSAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMg
NAo+IGV4dGVybiBpbnQgc2V0bmV0Z3JlbnQgKGNvbnN0IGNoYXIgKl9fbmV0Z3JvdXApOwo+IAo+
IAo+IAo+IAo+IAo+IAo+IAo+IGV4dGVybiB2b2lkIGVuZG5ldGdyZW50ICh2b2lkKTsKPiAjIDQx
MiAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+IGV4dGVybiBpbnQgZ2V0bmV0Z3JlbnQgKGNo
YXIgKipfX3Jlc3RyaWN0IF9faG9zdHAsCj4gICAgY2hhciAqKl9fcmVzdHJpY3QgX191c2VycCwK
PiAgICBjaGFyICoqX19yZXN0cmljdCBfX2RvbWFpbnApOwo+ICMgNDIzICIvdXNyL2luY2x1ZGUv
bmV0ZGIuaCIgMyA0Cj4gZXh0ZXJuIGludCBpbm5ldGdyIChjb25zdCBjaGFyICpfX25ldGdyb3Vw
LCBjb25zdCBjaGFyICpfX2hvc3QsCj4gICAgICAgY29uc3QgY2hhciAqX191c2VyLCBjb25zdCBj
aGFyICpfX2RvbWFpbik7Cj4gCj4gCj4gCj4gCj4gCj4gCj4gCj4gZXh0ZXJuIGludCBnZXRuZXRn
cmVudF9yIChjaGFyICoqX19yZXN0cmljdCBfX2hvc3RwLAo+ICAgICAgY2hhciAqKl9fcmVzdHJp
Y3QgX191c2VycCwKPiAgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZG9tYWlucCwKPiAgICAgIGNo
YXIgKl9fcmVzdHJpY3QgX19idWZmZXIsIHNpemVfdCBfX2J1Zmxlbik7Cj4gIyA0NTEgIi91c3Iv
aW5jbHVkZS9uZXRkYi5oIiAzIDQKPiBleHRlcm4gaW50IHJjbWQgKGNoYXIgKipfX3Jlc3RyaWN0
IF9fYWhvc3QsIHVuc2lnbmVkIHNob3J0IGludCBfX3Jwb3J0LAo+ICAgIGNvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19sb2N1c2VyLAo+ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19yZW11c2Vy
LAo+ICAgIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19jbWQsIGludCAqX19yZXN0cmljdCBfX2Zk
MnApOwo+ICMgNDYzICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gZXh0ZXJuIGludCByY21k
X2FmIChjaGFyICoqX19yZXN0cmljdCBfX2Fob3N0LCB1bnNpZ25lZCBzaG9ydCBpbnQgX19ycG9y
dCwKPiAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbG9jdXNlciwKPiAgICAgICBjb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fcmVtdXNlciwKPiAgICAgICBjb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fY21kLCBpbnQgKl9fcmVzdHJpY3QgX19mZDJwLAo+ICAgICAgIHNhX2ZhbWlseV90IF9f
YWYpOwo+ICMgNDc5ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4gZXh0ZXJuIGludCByZXhl
YyAoY2hhciAqKl9fcmVzdHJpY3QgX19haG9zdCwgaW50IF9fcnBvcnQsCj4gICAgIGNvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19uYW1lLAo+ICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcGFz
cywKPiAgICAgY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2NtZCwgaW50ICpfX3Jlc3RyaWN0IF9f
ZmQycCk7Cj4gIyA0OTEgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPiBleHRlcm4gaW50IHJl
eGVjX2FmIChjaGFyICoqX19yZXN0cmljdCBfX2Fob3N0LCBpbnQgX19ycG9ydCwKPiAgICAgICAg
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX25hbWUsCj4gICAgICAgIGNvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19wYXNzLAo+ICAgICAgICBjb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fY21kLCBpbnQg
Kl9fcmVzdHJpY3QgX19mZDJwLAo+ICAgICAgICBzYV9mYW1pbHlfdCBfX2FmKTsKPiAjIDUwNSAi
L3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+IGV4dGVybiBpbnQgcnVzZXJvayAoY29uc3QgY2hh
ciAqX19yaG9zdCwgaW50IF9fc3VzZXIsCj4gICAgICAgY29uc3QgY2hhciAqX19yZW11c2VyLCBj
b25zdCBjaGFyICpfX2xvY3VzZXIpOwo+ICMgNTE1ICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0
Cj4gZXh0ZXJuIGludCBydXNlcm9rX2FmIChjb25zdCBjaGFyICpfX3Job3N0LCBpbnQgX19zdXNl
ciwKPiAgICAgICAgICBjb25zdCBjaGFyICpfX3JlbXVzZXIsIGNvbnN0IGNoYXIgKl9fbG9jdXNl
ciwKPiAgICAgICAgICBzYV9mYW1pbHlfdCBfX2FmKTsKPiAjIDUyOCAiL3Vzci9pbmNsdWRlL25l
dGRiLmgiIDMgNAo+IGV4dGVybiBpbnQgaXJ1c2Vyb2sgKHVpbnQzMl90IF9fcmFkZHIsIGludCBf
X3N1c2VyLAo+ICAgICAgICBjb25zdCBjaGFyICpfX3JlbXVzZXIsIGNvbnN0IGNoYXIgKl9fbG9j
dXNlcik7Cj4gIyA1MzkgIi91c3IvaW5jbHVkZS9uZXRkYi5oIiAzIDQKPiBleHRlcm4gaW50IGly
dXNlcm9rX2FmIChjb25zdCB2b2lkICpfX3JhZGRyLCBpbnQgX19zdXNlciwKPiAgICBjb25zdCBj
aGFyICpfX3JlbXVzZXIsIGNvbnN0IGNoYXIgKl9fbG9jdXNlciwKPiAgICBzYV9mYW1pbHlfdCBf
X2FmKTsKPiAjIDU1MSAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+IGV4dGVybiBpbnQgcnJl
c3Zwb3J0IChpbnQgKl9fYWxwb3J0KTsKPiAjIDU2MCAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMg
NAo+IGV4dGVybiBpbnQgcnJlc3Zwb3J0X2FmIChpbnQgKl9fYWxwb3J0LCBzYV9mYW1pbHlfdCBf
X2FmKTsKPiAKPiAKPiAKPiAKPiAKPiAKPiBzdHJ1Y3QgYWRkcmluZm8KPiB7Cj4gICBpbnQgYWlf
ZmxhZ3M7Cj4gICBpbnQgYWlfZmFtaWx5Owo+ICAgaW50IGFpX3NvY2t0eXBlOwo+ICAgaW50IGFp
X3Byb3RvY29sOwo+ICAgc29ja2xlbl90IGFpX2FkZHJsZW47Cj4gICBzdHJ1Y3Qgc29ja2FkZHIg
KmFpX2FkZHI7Cj4gICBjaGFyICphaV9jYW5vbm5hbWU7Cj4gICBzdHJ1Y3QgYWRkcmluZm8gKmFp
X25leHQ7Cj4gfTsKPiAjIDY2MiAiL3Vzci9pbmNsdWRlL25ldGRiLmgiIDMgNAo+IGV4dGVybiBp
bnQgZ2V0YWRkcmluZm8gKGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19uYW1lLAo+ICAgIGNvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19zZXJ2aWNlLAo+ICAgIGNvbnN0IHN0cnVjdCBhZGRyaW5mbyAq
X19yZXN0cmljdCBfX3JlcSwKPiAgICBzdHJ1Y3QgYWRkcmluZm8gKipfX3Jlc3RyaWN0IF9fcGFp
KTsKPiAKPiAKPiBleHRlcm4gdm9pZCBmcmVlYWRkcmluZm8gKHN0cnVjdCBhZGRyaW5mbyAqX19h
aSkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiBleHRl
cm4gY29uc3QgY2hhciAqZ2FpX3N0cmVycm9yIChpbnQgX19lY29kZSkgX19hdHRyaWJ1dGVfXyAo
KF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAKPiAKPiBleHRlcm4gaW50IGdl
dG5hbWVpbmZvIChjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKl9fcmVzdHJpY3QgX19zYSwKPiAgICBz
b2NrbGVuX3QgX19zYWxlbiwgY2hhciAqX19yZXN0cmljdCBfX2hvc3QsCj4gICAgc29ja2xlbl90
IF9faG9zdGxlbiwgY2hhciAqX19yZXN0cmljdCBfX3NlcnYsCj4gICAgc29ja2xlbl90IF9fc2Vy
dmxlbiwgaW50IF9fZmxhZ3MpOwo+ICMgNzEzICIvdXNyL2luY2x1ZGUvbmV0ZGIuaCIgMyA0Cj4g
Cj4gIyA4MSAibWFjaGluZS5jIiAyCj4gCj4gIyAxICIvdXNyL2luY2x1ZGUvYXJwYS9pbmV0Lmgi
IDEgMyA0Cj4gIyAzMCAiL3Vzci9pbmNsdWRlL2FycGEvaW5ldC5oIiAzIDQKPiAKPiAKPiAKPiAK
PiBleHRlcm4gaW5fYWRkcl90IGluZXRfYWRkciAoY29uc3QgY2hhciAqX19jcCkgX19hdHRyaWJ1
dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiBleHRlcm4gaW5fYWRkcl90
IGluZXRfbG5hb2YgKHN0cnVjdCBpbl9hZGRyIF9faW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhy
b3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4gZXh0ZXJuIHN0cnVjdCBpbl9hZGRyIGluZXRf
bWFrZWFkZHIgKGluX2FkZHJfdCBfX25ldCwgaW5fYWRkcl90IF9faG9zdCkKPiAgICAgIF9fYXR0
cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gZXh0ZXJuIGluX2Fk
ZHJfdCBpbmV0X25ldG9mIChzdHJ1Y3QgaW5fYWRkciBfX2luKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IGV4dGVybiBpbl9hZGRyX3QgaW5ldF9u
ZXR3b3JrIChjb25zdCBjaGFyICpfX2NwKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBf
X2xlYWZfXykpOwo+IAo+IAo+IAo+IGV4dGVybiBjaGFyICppbmV0X250b2EgKHN0cnVjdCBpbl9h
ZGRyIF9faW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4g
Cj4gCj4gCj4gZXh0ZXJuIGludCBpbmV0X3B0b24gKGludCBfX2FmLCBjb25zdCBjaGFyICpfX3Jl
c3RyaWN0IF9fY3AsCj4gICAgICAgICB2b2lkICpfX3Jlc3RyaWN0IF9fYnVmKSBfX2F0dHJpYnV0
ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+IAo+IAo+IAo+IAo+IGV4dGVybiBjb25z
dCBjaGFyICppbmV0X250b3AgKGludCBfX2FmLCBjb25zdCB2b2lkICpfX3Jlc3RyaWN0IF9fY3As
Cj4gICAgICAgICAgY2hhciAqX19yZXN0cmljdCBfX2J1Ziwgc29ja2xlbl90IF9fbGVuKQo+ICAg
ICAgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAK
PiAKPiAKPiBleHRlcm4gaW50IGluZXRfYXRvbiAoY29uc3QgY2hhciAqX19jcCwgc3RydWN0IGlu
X2FkZHIgKl9faW5wKSBfX2F0dHJpYnV0ZV9fICgoX19ub3Rocm93X18gLCBfX2xlYWZfXykpOwo+
IAo+IAo+IAo+IGV4dGVybiBjaGFyICppbmV0X25ldGEgKGluX2FkZHJfdCBfX25ldCwgY2hhciAq
X19idWYsIHNpemVfdCBfX2xlbikgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFm
X18pKTsKPiAKPiAKPiAKPiAKPiBleHRlcm4gY2hhciAqaW5ldF9uZXRfbnRvcCAoaW50IF9fYWYs
IGNvbnN0IHZvaWQgKl9fY3AsIGludCBfX2JpdHMsCj4gICAgICAgIGNoYXIgKl9fYnVmLCBzaXpl
X3QgX19sZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4g
Cj4gCj4gCj4gZXh0ZXJuIGludCBpbmV0X25ldF9wdG9uIChpbnQgX19hZiwgY29uc3QgY2hhciAq
X19jcCwKPiAgICAgIHZvaWQgKl9fYnVmLCBzaXplX3QgX19sZW4pIF9fYXR0cmlidXRlX18gKChf
X25vdGhyb3dfXyAsIF9fbGVhZl9fKSk7Cj4gCj4gCj4gCj4gCj4gZXh0ZXJuIHVuc2lnbmVkIGlu
dCBpbmV0X25zYXBfYWRkciAoY29uc3QgY2hhciAqX19jcCwKPiAgICAgICAgIHVuc2lnbmVkIGNo
YXIgKl9fYnVmLCBpbnQgX19sZW4pIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXyAsIF9fbGVh
Zl9fKSk7Cj4gCj4gCj4gCj4gZXh0ZXJuIGNoYXIgKmluZXRfbnNhcF9udG9hIChpbnQgX19sZW4s
IGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fY3AsCj4gICAgICAgICBjaGFyICpfX2J1ZikgX19hdHRy
aWJ1dGVfXyAoKF9fbm90aHJvd19fICwgX19sZWFmX18pKTsKPiAKPiAKPiAKPiAjIDgzICJtYWNo
aW5lLmMiIDIKPiAjIDEzNSAibWFjaGluZS5jIgo+IAo+ICMgMTM1ICJtYWNoaW5lLmMiCj4gc3Rh
dGljIFBsTG9uZyBzdGFydF91c2VyX3RpbWUgPSAwOwo+IHN0YXRpYyBQbExvbmcgc3RhcnRfc3lz
dGVtX3RpbWUgPSAwOwo+IHN0YXRpYyBQbExvbmcgc3RhcnRfcmVhbF90aW1lID0gMDsKPiAKPiBz
dGF0aWMgaW50IGN1cl9zZWVkID0gMTsKPiAjIDE1MCAibWFjaGluZS5jIgo+IHN0YXRpYyBjaGFy
ICpIb3N0X05hbWVfRnJvbV9BbGlhcyhzdHJ1Y3QgaG9zdGVudCAqaG9zdF9lbnRyeSk7Cj4gIyAx
NjcgIm1hY2hpbmUuYyIKPiB2b2lkCj4gUGxfSW5pdF9NYWNoaW5lKHZvaWQpCj4gewo+ICAgdHpz
ZXQoKTsKPiAKPiAgIHN0YXJ0X3VzZXJfdGltZSA9IFBsX01fVXNlcl9UaW1lKCk7Cj4gICBzdGFy
dF9zeXN0ZW1fdGltZSA9IFBsX01fU3lzdGVtX1RpbWUoKTsKPiAgIHN0YXJ0X3JlYWxfdGltZSA9
IFBsX01fUmVhbF9UaW1lKCk7Cj4gCj4gCj4gICBtYWxsb3B0KAo+ICMgMTc3ICJtYWNoaW5lLmMi
IDMgNAo+ICAgICAgICAgIC00Cj4gIyAxNzcgIm1hY2hpbmUuYyIKPiAgICAgICAgICAgICAgICAg
ICAgLCAwKTsKPiAKPiAKPiAgIFBsX0luaXRfTWFjaGluZTEoKTsKPiB9Cj4gIyAxOTAgIm1hY2hp
bmUuYyIKPiBjaGFyICoKPiBQbF9NX1N5c19FcnJfU3RyaW5nKGludCByZXRfdmFsKQo+IHsKPiAK
PiAKPiAKPiAKPiAKPiAgIGNoYXIgKnN0cjsKPiAgIHN0YXRpYyBjaGFyIGJ1ZmZbNjRdOwo+ICMg
MjI2ICJtYWNoaW5lLmMiCj4gICBzdHIgPSBzdHJlcnJvcigKPiAjIDIyNiAibWFjaGluZS5jIiAz
IDQKPiAgICAgICAgICAgICAgICAgKCpfX2Vycm5vX2xvY2F0aW9uICgpKQo+ICMgMjI2ICJtYWNo
aW5lLmMiCj4gICAgICAgICAgICAgICAgICAgICAgKTsKPiAKPiAKPiAgIGlmIChzdHIpCj4gICAg
IHJldHVybiBzdHI7Cj4gCj4gICBzcHJpbnRmKGJ1ZmYsICJVbmtub3duIGVycm9yICglZCkiLCAK
PiAjIDIzMiAibWFjaGluZS5jIiAzIDQKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKCpfX2Vycm5vX2xvY2F0aW9uICgpKQo+ICMgMjMyICJtYWNoaW5lLmMiCj4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKPiAgIHJldHVybiBidWZmOwo+IH0KPiAj
IDI0NCAibWFjaGluZS5jIgo+IFBsTG9uZwo+IFBsX01fVXNlcl9UaW1lKHZvaWQpCj4gewo+ICAg
UGxMb25nIHVzZXJfdGltZTsKPiAKPiAKPiAgIHN0cnVjdCBydXNhZ2UgcnNyX3VzYWdlOwo+IAo+
ICAgZ2V0cnVzYWdlKAo+ICMgMjUyICJtYWNoaW5lLmMiIDMgNAo+ICAgICAgICAgICAgUlVTQUdF
X1NFTEYKPiAjIDI1MiAibWFjaGluZS5jIgo+ICAgICAgICAgICAgICAgICAgICAgICAsICZyc3Jf
dXNhZ2UpOwo+IAo+ICAgdXNlcl90aW1lID0gKHJzcl91c2FnZS5ydV91dGltZS50dl9zZWMgKiAx
MDAwKSArCj4gICAgIChyc3JfdXNhZ2UucnVfdXRpbWUudHZfdXNlYyAvIDEwMDApOwo+ICMgMjc1
ICJtYWNoaW5lLmMiCj4gICByZXR1cm4gdXNlcl90aW1lIC0gc3RhcnRfdXNlcl90aW1lOwo+IH0K
PiAjIDI4NiAibWFjaGluZS5jIgo+IFBsTG9uZwo+IFBsX01fU3lzdGVtX1RpbWUodm9pZCkKPiB7
Cj4gICBQbExvbmcgc3lzdGVtX3RpbWU7Cj4gCj4gCj4gICBzdHJ1Y3QgcnVzYWdlIHJzcl91c2Fn
ZTsKPiAKPiAgIGdldHJ1c2FnZSgKPiAjIDI5NCAibWFjaGluZS5jIiAzIDQKPiAgICAgICAgICAg
IFJVU0FHRV9TRUxGCj4gIyAyOTQgIm1hY2hpbmUuYyIKPiAgICAgICAgICAgICAgICAgICAgICAg
LCAmcnNyX3VzYWdlKTsKPiAKPiAgIHN5c3RlbV90aW1lID0gKHJzcl91c2FnZS5ydV9zdGltZS50
dl9zZWMgKiAxMDAwKSArCj4gICAgIChyc3JfdXNhZ2UucnVfc3RpbWUudHZfdXNlYyAvIDEwMDAp
Owo+ICMgMzE3ICJtYWNoaW5lLmMiCj4gICByZXR1cm4gc3lzdGVtX3RpbWUgLSBzdGFydF9zeXN0
ZW1fdGltZTsKPiB9Cj4gIyAzMjggIm1hY2hpbmUuYyIKPiBQbExvbmcKPiBQbF9NX1JlYWxfVGlt
ZSh2b2lkKQo+IHsKPiAgIFBsTG9uZyByZWFsX3RpbWU7Cj4gCj4gCj4gICBzdHJ1Y3QgdGltZXZh
bCB0djsKPiAKPiAgIGdldHRpbWVvZmRheSgmdHYsIAo+ICMgMzM2ICJtYWNoaW5lLmMiIDMgNAo+
ICAgICAgICAgICAgICAgICAgICAoKHZvaWQgKikwKQo+ICMgMzM2ICJtYWNoaW5lLmMiCj4gICAg
ICAgICAgICAgICAgICAgICAgICApOwo+ICAgcmVhbF90aW1lID0gKHR2LnR2X3NlYyAqIDEwMDAp
ICsgKHR2LnR2X3VzZWMgLyAxMDAwKTsKPiAjIDM1MCAibWFjaGluZS5jIgo+ICAgcmV0dXJuIHJl
YWxfdGltZSAtIHN0YXJ0X3JlYWxfdGltZTsKPiB9Cj4gIyAzNjcgIm1hY2hpbmUuYyIKPiB2b2lk
Cj4gUGxfTV9SYW5kb21pemUodm9pZCkKPiB7Cj4gICBzdGF0aWMgaW50IGNvdW50ID0gMDsKPiAK
PiAKPiAKPiAgIHN0cnVjdCB0aW1ldmFsIHR2Owo+ICAgaW50IHNlZWQ7Cj4gCj4gICBnZXR0aW1l
b2ZkYXkoJnR2LCAKPiAjIDM3NyAibWFjaGluZS5jIiAzIDQKPiAgICAgICAgICAgICAgICAgICAg
KCh2b2lkICopMCkKPiAjIDM3NyAibWFjaGluZS5jIgo+ICAgICAgICAgICAgICAgICAgICAgICAg
KTsKPiAgIHNlZWQgPSAodHYudHZfc2VjICogMTAwMCkgKyAodHYudHZfdXNlYyAvIDEwMDApOwo+
IAo+ICAgY291bnQgPSAoY291bnQgKyByYW5kKCkpICUgMHhGRkZGOwo+ICAgc2VlZCA9IHNlZWQg
XiAoZ2V0cGlkKCkgPDwgKHNlZWQgJiAweEZGKSk7Cj4gICBzZWVkICo9IGNvdW50Owo+ICAgc2Vl
ZCA9IHNlZWQgJiAweEZGRkZGRjsKPiAKPiAgIFBsX01fU2V0X1NlZWQoc2VlZCk7Cj4gfQo+ICMg
Mzk1ICJtYWNoaW5lLmMiCj4gdm9pZAo+IFBsX01fU2V0X1NlZWQoaW50IG4pCj4gewo+ICAgY3Vy
X3NlZWQgPSBuOwo+ICAgc3JhbmQoY3VyX3NlZWQpOwo+IH0KPiAjIDQwOSAibWFjaGluZS5jIgo+
IGludAo+IFBsX01fR2V0X1NlZWQodm9pZCkKPiB7Cj4gICByZXR1cm4gY3VyX3NlZWQ7Cj4gfQo+
ICMgNDIzICJtYWNoaW5lLmMiCj4gaW50Cj4gUGxfTV9SYW5kb21fSW50ZWdlcihpbnQgbikKPiB7
Cj4gICByZXR1cm4gKGludCkgKChkb3VibGUpIG4gKiByYW5kKCkgLyAoCj4gIyA0MjYgIm1hY2hp
bmUuYyIgMyA0Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMTQ3NDgz
NjQ3IAo+ICMgNDI2ICJtYWNoaW5lLmMiCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICArIDEuMCkpOwo+IH0KPiAjIDQzNyAibWFjaGluZS5jIgo+IGRvdWJs
ZQo+IFBsX01fUmFuZG9tX0Zsb2F0KGRvdWJsZSBuKQo+IHsKPiAgIHJldHVybiBuICogcmFuZCgp
IC8gKAo+ICMgNDQwICJtYWNoaW5lLmMiIDMgNAo+ICAgICAgICAgICAgICAgICAgICAgICAyMTQ3
NDgzNjQ3IAo+ICMgNDQwICJtYWNoaW5lLmMiCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICsgMS4wKTsKPiB9Cj4gIyA0NTEgIm1hY2hpbmUuYyIKPiBjaGFyICoKPiBQbF9NX0hvc3Rf
TmFtZV9Gcm9tX05hbWUoY2hhciAqaG9zdF9uYW1lKQo+IHsKPiAgIHN0YXRpYyBjaGFyIGJ1ZmZb
NDA5Nl07Cj4gCj4gCj4gICBzdHJ1Y3QgaG9zdGVudCAqaG9zdF9lbnRyeTsKPiAKPiAKPiAgIGlm
IChob3N0X25hbWUgPT0gCj4gIyA0NjAgIm1hY2hpbmUuYyIgMyA0Cj4gICAgICAgICAgICAgICAg
ICAgKCh2b2lkICopMCkKPiAjIDQ2MCAibWFjaGluZS5jIgo+ICAgICAgICAgICAgICAgICAgICAg
ICApCj4gICAgIHsKPiAgICAgICBQbExvbmcgbGVuZ3RoID0gc2l6ZW9mKGJ1ZmYpOwo+ICAgICAg
IGhvc3RfbmFtZSA9IGJ1ZmY7Cj4gCj4gCj4gCj4gICAgICAgaWYgKGdldGhvc3RuYW1lKGJ1ZmYs
IGxlbmd0aCkpCj4gCj4gICAgICAgICB7Cj4gICAgICAgICAgIHN0cmNweShidWZmLCAidW5rbm93
biBob3N0IG5hbWUiKTsKPiAgICAgICAgICAgZ290byBmaW5pc2g7Cj4gICAgICAgICB9Cj4gICAg
IH0KPiAKPiAgIGlmIChzdHJjaHIoaG9zdF9uYW1lLCAnLicpICE9IAo+ICMgNDc1ICJtYWNoaW5l
LmMiIDMgNAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvaWQgKikwKQo+ICMg
NDc1ICJtYWNoaW5lLmMiCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCj4g
ICAgIGdvdG8gZmluaXNoOwo+IAo+IAo+IAo+ICAgaG9zdF9lbnRyeSA9IGdldGhvc3RieW5hbWUo
aG9zdF9uYW1lKTsKPiAgIGlmIChob3N0X2VudHJ5ID09IAo+ICMgNDgxICJtYWNoaW5lLmMiIDMg
NAo+ICAgICAgICAgICAgICAgICAgICAoKHZvaWQgKikwKQo+ICMgNDgxICJtYWNoaW5lLmMiCj4g
ICAgICAgICAgICAgICAgICAgICAgICApCj4gICAgIGdvdG8gZmluaXNoOwo+IAo+ICAgaG9zdF9u
YW1lID0gSG9zdF9OYW1lX0Zyb21fQWxpYXMoaG9zdF9lbnRyeSk7Cj4gCj4gCj4gCj4gZmluaXNo
Ogo+ICAgcmV0dXJuIGhvc3RfbmFtZTsKPiB9Cj4gIyA0OTkgIm1hY2hpbmUuYyIKPiBjaGFyICoK
PiBQbF9NX0hvc3RfTmFtZV9Gcm9tX0FkcihjaGFyICpob3N0X2FkZHJlc3MpCj4gewo+IAo+ICAg
c3RydWN0IGhvc3RlbnQgKmhvc3RfZW50cnk7Cj4gICBzdHJ1Y3QgaW5fYWRkciBpYWRyOwo+IAo+
IAo+IAo+IAo+IAo+IAo+ICAgaWYgKGluZXRfYXRvbihob3N0X2FkZHJlc3MsICZpYWRyKSA9PSAw
KQo+IAo+ICAgICByZXR1cm4gMDsKPiAKPiAgIGhvc3RfZW50cnkgPSBnZXRob3N0YnlhZGRyKChj
aGFyICopICZpYWRyLCBzaXplb2YoaWFkciksIAo+ICMgNTE1ICJtYWNoaW5lLmMiIDMgNAo+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
Cj4gIyA1MTUgIm1hY2hpbmUuYyIKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Cj4gICBpZiAoaG9zdF9lbnRyeSA9PSAK
PiAjIDUxNiAibWFjaGluZS5jIiAzIDQKPiAgICAgICAgICAgICAgICAgICAgKCh2b2lkICopMCkK
PiAjIDUxNiAibWFjaGluZS5jIgo+ICAgICAgICAgICAgICAgICAgICAgICAgKQo+ICAgICByZXR1
cm4gCj4gIyA1MTcgIm1hY2hpbmUuYyIgMyA0Cj4gICAgICAgICAgICgodm9pZCAqKTApCj4gIyA1
MTcgIm1hY2hpbmUuYyIKPiAgICAgICAgICAgICAgIDsKPiAKPiAgIHJldHVybiBIb3N0X05hbWVf
RnJvbV9BbGlhcyhob3N0X2VudHJ5KTsKPiAKPiAKPiAKPiB9Cj4gIyA1MzQgIm1hY2hpbmUuYyIK
PiBzdGF0aWMgY2hhciAqCj4gSG9zdF9OYW1lX0Zyb21fQWxpYXMoc3RydWN0IGhvc3RlbnQgKmhv
c3RfZW50cnkpCj4gewo+ICAgY2hhciAqbmFtZTsKPiAgIGNoYXIgKiphbGlhczsKPiAgIGNoYXIg
KnA7Cj4gCj4gICBuYW1lID0gKGNoYXIgKikgaG9zdF9lbnRyeS0+aF9uYW1lOwo+ICAgYWxpYXMg
PSBob3N0X2VudHJ5LT5oX2FsaWFzZXM7Cj4gICB3aGlsZSAoKHAgPSBzdHJjaHIobmFtZSwgJy4n
KSkgPT0gCj4gIyA1NDMgIm1hY2hpbmUuYyIgMyA0Cj4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoKHZvaWQgKikwKSAKPiAjIDU0MyAibWFjaGluZS5jIgo+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAqYWxpYXMpCj4gICAgIG5hbWUgPSAqYWxp
YXMrKzsKPiAKPiAgIGlmIChwKQo+ICAgICByZXR1cm4gbmFtZTsKPiAKPiAgIHJldHVybiAoY2hh
ciAqKSBob3N0X2VudHJ5LT5oX25hbWU7Cj4gfQo+ICMgNTYxICJtYWNoaW5lLmMiCj4gQm9vbAo+
IFBsX01fU2V0X1dvcmtpbmdfRGlyKGNoYXIgKnBhdGgpCj4gewo+ICAgY2hhciAqbmV3X3BhdGgg
PSBQbF9NX0Fic29sdXRlX1BhdGhfTmFtZShwYXRoKTsKPiAKPiAgIHJldHVybiAobmV3X3BhdGgg
IT0gCj4gIyA1NjYgIm1hY2hpbmUuYyIgMyA0Cj4gICAgICAgICAgICAgICAgICAgICAgKCh2b2lk
ICopMCkgCj4gIyA1NjYgIm1hY2hpbmUuYyIKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICYm
IGNoZGlyKG5ld19wYXRoKSA9PSAwKTsKPiB9Cj4gIyA1NzYgIm1hY2hpbmUuYyIKPiBjaGFyICoK
PiBQbF9NX0dldF9Xb3JraW5nX0Rpcih2b2lkKQo+IHsKPiAgIHN0YXRpYyBjaGFyIGN1cl93b3Jr
X2RpclsKPiAjIDU3OSAibWFjaGluZS5jIiAzIDQKPiAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQwOTYKPiAjIDU3OSAibWFjaGluZS5jIgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF07Cj4gCj4gICBpZiAoZ2V0Y3dkKGN1cl93b3JrX2Rpciwgc2l6ZW9mKGN1cl93b3Jr
X2RpcikgLSAxKSA9PSAKPiAjIDU4MSAibWFjaGluZS5jIiAzIDQKPiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2lkICopMCkKPiAjIDU4
MSAibWFjaGluZS5jIgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKQo+ICAgICBzdHJjcHkoY3VyX3dvcmtfZGlyLCAiLiIpOwo+ICAg
cmV0dXJuIGN1cl93b3JrX2RpcjsKPiB9Cj4gIyA1OTQgIm1hY2hpbmUuYyIKPiBjaGFyICoKPiBQ
bF9NX0Fic29sdXRlX1BhdGhfTmFtZShjaGFyICpzcmMpCj4gewo+ICAgc3RhdGljIGNoYXIgYnVm
ZlsyXVsKPiAjIDU5NyAibWFjaGluZS5jIiAzIDQKPiAgICAgICAgICAgICAgICAgICAgICA0MDk2
Cj4gIyA1OTcgIm1hY2hpbmUuYyIKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTsK
PiAgIGludCByZXMgPSAwOwo+ICAgY2hhciAqZHN0Owo+ICAgY2hhciAqcCwgKnE7Cj4gICBjaGFy
IGM7Cj4gCj4gICBkc3QgPSBidWZmW3Jlc107Cj4gICB3aGlsZSAoKCpkc3QrKyA9ICpzcmMpKQo+
ICAgICB7Cj4gICAgICAgYyA9ICpzcmMrKzsKPiAgICAgICBpZiAoYyA9PSAnJCcKPiAKPiAKPiAK
PiAgICAgICAgICkKPiAgICAgICAgIHsKPiAgICAgICAgICAgcCA9IGRzdDsKPiAgICAgICAgICAg
d2hpbGUgKAo+ICMgNjE0ICJtYWNoaW5lLmMiIDMgNAo+ICAgICAgICAgICAgICAgICAoKCpfX2N0
eXBlX2JfbG9jICgpKVsoaW50KSAoKAo+ICMgNjE0ICJtYWNoaW5lLmMiCj4gICAgICAgICAgICAg
ICAgICpzcmMKPiAjIDYxNCAibWFjaGluZS5jIiAzIDQKPiAgICAgICAgICAgICAgICAgKSldICYg
KHVuc2lnbmVkIHNob3J0IGludCkgX0lTYWxudW0pIAo+ICMgNjE0ICJtYWNoaW5lLmMiCj4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKnNyYyA9PSAnXycpCj4gICAgICAgICAgICAg
KmRzdCsrID0gKnNyYysrOwo+IAo+IAo+IAo+IAo+ICAgICAgICAgICAqZHN0ID0gJ1wwJzsKPiAg
ICAgICAgICAgcSA9IGdldGVudihwKTsKPiAgICAgICAgICAgaWYgKHEpCj4gICAgICAgICAgICAg
ewo+ICAgICAgICAgICAgICAgcC0tOwo+ICAgICAgICAgICAgICAgc3RyY3B5KHAsIHEpOwo+ICAg
ICAgICAgICAgICAgZHN0ID0gcCArIHN0cmxlbihwKTsKPiAKPiAKPiAKPiAKPiAgICAgICAgICAg
ICB9Cj4gCj4gCj4gCj4gCj4gICAgICAgICB9Cj4gICAgIH0KPiAgICpkc3QgPSAnXDAnOwo+IAo+
ICAgaWYgKGJ1ZmZbcmVzXVswXSA9PSAnficpCj4gICAgIHsKPiAgICAgICBpZiAoKChidWZmW3Jl
c11bMV0pID09ICcvJyB8fCAoYnVmZltyZXNdWzFdKSA9PSAnLycpIHx8IGJ1ZmZbcmVzXVsxXSA9
PSAnXDAnKQo+ICAgICAgICAgewo+ICAgIHEgPSAKPiAjIDY0NCAibWFjaGluZS5jIiAzIDQKPiAg
ICAgICAoKHZvaWQgKikwKQo+ICMgNjQ0ICJtYWNoaW5lLmMiCj4gICAgICAgICAgIDs7Cj4gICAg
ICAgICAgIGlmICgocCA9IGdldGVudigiSE9NRSIpKSA9PSAKPiAjIDY0NSAibWFjaGluZS5jIiAz
IDQKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2lkICopMCkKPiAj
IDY0NSAibWFjaGluZS5jIgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKQo+ICAgICAgewo+IAo+IAo+IAo+IAo+IAo+ICAgICAgICByZXR1cm4gCj4gIyA2NTIgIm1h
Y2hpbmUuYyIgMyA0Cj4gICAgICAgICAgICAgICgodm9pZCAqKTApCj4gIyA2NTIgIm1hY2hpbmUu
YyIKPiAgICAgICAgICAgICAgICAgIDsKPiAKPiAgICAgIH0KPiAgICBpZiAocSA9PSAKPiAjIDY1
NSAibWFjaGluZS5jIiAzIDQKPiAgICAgICAgICAgICgodm9pZCAqKTApCj4gIyA2NTUgIm1hY2hp
bmUuYyIKPiAgICAgICAgICAgICAgICApCj4gICAgICBxID0gIiI7Cj4gICAgICAgICAgIHNwcmlu
dGYoYnVmZlsxIC0gcmVzXSwgIiVzJXMvJXMiLCBxLCBwLCBidWZmW3Jlc10gKyAxKTsKPiAgICAg
ICAgICAgcmVzID0gMSAtIHJlczsKPiAgICAgICAgIH0KPiAKPiAgICAgICBlbHNlCj4gICAgICAg
ICB7Cj4gICAgICAgICAgIHN0cnVjdCBwYXNzd2QgKnB3Owo+IAo+ICAgICAgICAgICBwID0gYnVm
ZltyZXNdICsgMTsKPiAgICAgICAgICAgd2hpbGUgKCpwICYmICEoKCpwKSA9PSAnLycgfHwgKCpw
KSA9PSAnLycpKQo+ICAgICAgICAgICAgIHArKzsKPiAKPiAgICAgICAgICAgYnVmZltyZXNdWzBd
ID0gKnA7Cj4gICAgICAgICAgICpwID0gJ1wwJzsKPiAgICAgICAgICAgaWYgKChwdyA9IGdldHB3
bmFtKGJ1ZmZbcmVzXSArIDEpKSA9PSAKPiAjIDY3MSAibWFjaGluZS5jIiAzIDQKPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodm9pZCAqKTApCj4gIyA2
NzEgIm1hY2hpbmUuYyIKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICApCj4gICAgICAgICAgICAgcmV0dXJuIAo+ICMgNjcyICJtYWNoaW5lLmMiIDMg
NAo+ICAgICAgICAgICAgICAgICAgICgodm9pZCAqKTApCj4gIyA2NzIgIm1hY2hpbmUuYyIKPiAg
ICAgICAgICAgICAgICAgICAgICAgOwo+IAo+ICAgICAgICAgICAqcCA9IGJ1ZmZbcmVzXVswXTsK
PiAKPiAgICAgICAgICAgc3ByaW50ZihidWZmWzEgLSByZXNdLCAiJXMvJXMiLCBwdy0+cHdfZGly
LCBwKTsKPiAgICAgICAgICAgcmVzID0gMSAtIHJlczsKPiAgICAgICAgIH0KPiAKPiAgICAgfQo+
IAo+ICAgaWYgKHN0cmNtcChidWZmW3Jlc10sICJ1c2VyIikgPT0gMCkKPiAgICAgcmV0dXJuIGJ1
ZmZbcmVzXTsKPiAjIDcwNiAibWFjaGluZS5jIgo+ICAgaWYgKGJ1ZmZbcmVzXVswXSAhPSAnLycp
Cj4gICAgIHsKPiAgICAgICBzcHJpbnRmKGJ1ZmZbMSAtIHJlc10sICIlcy8lcyIsIFBsX01fR2V0
X1dvcmtpbmdfRGlyKCksIGJ1ZmZbcmVzXSk7Cj4gICAgICAgcmVzID0gMSAtIHJlczsKPiAgICAg
fQo+IAo+ICAgc3JjID0gYnVmZltyZXNdOwo+ICAgcmVzID0gMSAtIHJlczsKPiAgIGRzdCA9IGJ1
ZmZbcmVzXTsKPiAKPiAgIHdoaWxlICgoKmRzdCsrID0gKnNyYykpCj4gICAgIHsKPiAgICAgICBp
ZiAoKnNyYysrICE9ICcvJykKPiAgICAgICAgIGNvbnRpbnVlOwo+IAo+ICAgICBjb2xsYXBzZToK
PiAgICAgICB3aGlsZSAoKnNyYyA9PSAnLycpCj4gICAgICAgICBzcmMrKzsKPiAKPiAgICAgICBp
ZiAoKnNyYyAhPSAnLicpCj4gICAgICAgICBjb250aW51ZTsKPiAKPiAgICAgICBpZiAoc3JjWzFd
ID09ICcvJyB8fCBzcmNbMV0gPT0gJ1wwJykKPiAgICAgICAgIHsKPiAgICAgICAgICAgc3JjKys7
Cj4gICAgICAgICAgIGdvdG8gY29sbGFwc2U7Cj4gICAgICAgICB9Cj4gCj4gICAgICAgaWYgKHNy
Y1sxXSAhPSAnLicgfHwgKHNyY1syXSAhPSAnLycgJiYgc3JjWzJdICE9ICdcMCcpKQo+ICAgICAg
ICAgY29udGludWU7Cj4gCj4gICAgICAgc3JjICs9IDI7Cj4gICAgICAgcCA9IGRzdCAtIDI7Cj4g
ICAgICAgd2hpbGUgKHAgPj0gYnVmZltyZXNdICYmICpwICE9ICcvJykKPiAgICAgICAgIHAtLTsK
PiAKPiAgICAgICBpZiAocCA8IGJ1ZmZbcmVzXSkKPiAgICAgICAgIHJldHVybiAKPiAjIDc0MyAi
bWFjaGluZS5jIiAzIDQKPiAgICAgICAgICAgICAgICgodm9pZCAqKTApCj4gIyA3NDMgIm1hY2hp
bmUuYyIKPiAgICAgICAgICAgICAgICAgICA7Cj4gCj4gICAgICAgZHN0ID0gcDsKPiAgICAgfQo+
IAo+ICAgZHN0LS07Cj4gIyA3NTkgIm1hY2hpbmUuYyIKPiAgIGlmIChkc3QgLSBidWZmW3Jlc10g
PiAxICYmICgoZHN0Wy0xXSkgPT0gJy8nIHx8IChkc3RbLTFdKSA9PSAnLycpKQo+ICAgICBkc3Rb
LTFdID0gJ1wwJzsKPiAKPiAgIHJldHVybiBidWZmW3Jlc107Cj4gfQo+ICMgNzczICJtYWNoaW5l
LmMiCj4gQm9vbAo+IFBsX01fSXNfQWJzb2x1dGVfRmlsZV9OYW1lKGNoYXIgKnBhdGgpCj4gewo+
ICAgaWYgKCgoKnBhdGgpID09ICcvJyB8fCAoKnBhdGgpID09ICcvJykpCj4gICAgIHJldHVybiAx
Owo+ICMgNzk1ICJtYWNoaW5lLmMiCj4gICByZXR1cm4gMDsKPiB9Cj4gIyA4MjkgIm1hY2hpbmUu
YyIKPiBjaGFyICoKPiBQbF9NX0RlY29tcG9zZV9GaWxlX05hbWUoY2hhciAqcGF0aCwgQm9vbCBk
ZWxfdHJhaWxfc2xhc2hlcywgY2hhciAqKmJhc2UsIGNoYXIgKipzdWZmaXgpCj4gewo+ICAgc3Rh
dGljIGNoYXIgYnVmZl9kaXJbCj4gIyA4MzIgIm1hY2hpbmUuYyIgMyA0Cj4gICAgICAgICAgICAg
ICAgICAgICAgIDQwOTYKPiAjIDgzMiAibWFjaGluZS5jIgo+ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXTsKPiAgIHN0YXRpYyBjaGFyIGJ1ZmZfYmFzZVsKPiAjIDgzMyAibWFjaGlu
ZS5jIiAzIDQKPiAgICAgICAgICAgICAgICAgICAgICAgIDQwOTYKPiAjIDgzMyAibWFjaGluZS5j
Igo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07Cj4gICBpbnQgZGlyX3N0YXJ0
X3BvcyA9IDA7Cj4gIyA4NTIgIm1hY2hpbmUuYyIKPiAgIGNoYXIgKnA7Cj4gCj4gICBzdHJjcHko
YnVmZl9kaXIsIHBhdGgpOwo+IAo+IAo+IAo+IAo+IAo+ICAgZG8geyBjaGFyICpfcHRyOyBmb3Io
KHApID0gCj4gIyA4NjAgIm1hY2hpbmUuYyIgMyA0Cj4gICgodm9pZCAqKTApCj4gIyA4NjAgIm1h
Y2hpbmUuYyIKPiAgLCBfcHRyID0gKGJ1ZmZfZGlyKTsgKl9wdHI7IF9wdHIrKykgaWYgKCgoKl9w
dHIpID09ICcvJyB8fCAoKl9wdHIpID09ICcvJykpIChwKSA9IF9wdHI7IH0gd2hpbGUoMCk7Cj4g
Cj4gICBwID0gKHAgPT0gCj4gIyA4NjIgIm1hY2hpbmUuYyIgMyA0Cj4gICAgICAgICAgICAoKHZv
aWQgKikwKQo+ICMgODYyICJtYWNoaW5lLmMiCj4gICAgICAgICAgICAgICAgKSA/IGJ1ZmZfZGly
ICsgZGlyX3N0YXJ0X3BvcyA6IHAgKyAxOwo+IAo+ICAgc3RyY3B5KGJ1ZmZfYmFzZSwgcCk7Cj4g
ICAqcCA9ICdcMCc7Cj4gCj4gICBpZiAoKHAgPSBzdHJyY2hyKGJ1ZmZfYmFzZSwgJy4nKSkgIT0g
Cj4gIyA4NjcgIm1hY2hpbmUuYyIgMyA0Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoKHZvaWQgKikwKQo+ICMgODY3ICJtYWNoaW5lLmMiCj4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQo+ICAgICAqc3VmZml4ID0gcDsKPiAgIGVsc2UK
PiAgICAgKnN1ZmZpeCA9IGJ1ZmZfYmFzZSArIHN0cmxlbihidWZmX2Jhc2UpOwo+IAo+IAo+IAo+
ICAgaWYgKGRlbF90cmFpbF9zbGFzaGVzKQo+ICAgICB7Cj4gICAgICAgaWYgKGJ1ZmZfZGlyW2Rp
cl9zdGFydF9wb3NdID09ICdcMCcpCj4gIHN0cmNhdChidWZmX2RpciwgIi4iKTsKPiAgICAgICBl
bHNlCj4gIHsKPiAgICBpbnQgbGVuID0gc3RybGVuKGJ1ZmZfZGlyKTsKPiAgICB3aGlsZSgtLWxl
biA+PSBkaXJfc3RhcnRfcG9zICYmICgoYnVmZl9kaXJbbGVuXSkgPT0gJy8nIHx8IChidWZmX2Rp
cltsZW5dKSA9PSAnLycpKQo+ICAgICAgOwo+IAo+ICAgIGlmIChsZW4gPCBkaXJfc3RhcnRfcG9z
KQo+ICAgICAgbGVuID0gZGlyX3N0YXJ0X3BvczsKPiAgICBidWZmX2RpcltsZW4gKyAxXSA9ICdc
MCc7Cj4gIH0KPiAgICAgfQo+IAo+IAo+IAo+IAo+IAo+IAo+ICAgKmJhc2UgPSBidWZmX2Jhc2U7
Cj4gCj4gICByZXR1cm4gYnVmZl9kaXI7Cj4gfQoKPiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwo+IEJ1Zy1wcm9sb2cgbWFpbGluZyBsaXN0Cj4gQnVnLXBy
b2xvZ0BnbnUub3JnCj4gaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vYnVn
LXByb2xvZwoKCi0tIApNYXR0aGV3IENhcnRlcgpqZWhpdmFAZ21haWwuY29tCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpCdWctcHJvbG9nIG1haWxpbmcg
bGlzdApCdWctcHJvbG9nQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlz
dGluZm8vYnVnLXByb2xvZwo=