Re: master: Perform local common subexpression elimination for some memory loads

Stas Boukarev <[email protected]> Tue, 4 Aug 2026 04:22:08 +0300
Newsgroups gmane.lisp.steel-bank.cvs,gmane.lisp.steel-bank.devel
Message-ID <CAF63=11GgUy6z5=hcU0mZMuzPLO+5uvvdp2Und8OnN4JkBN0yQ@mail.gmail.com>
KGRlZnN0cnVjdCBzCiAgKHggKG1ha2UtYXJyYXkgMykpKQoKKGxldCAoKikKICAobGFtYmRhICgp
CiAgICAobGV0KiAoKHMgIy4obWFrZS1zKSkKICAgICAgICAgICAoYSAocy14IHMpKQogICAgICAg
ICAgIChiIChzLXggcykpKQogICAgICAodmFsdWVzIChhcmVmIGEgMCkKICAgICAgICAgICAgICAo
YXJlZiBiIDApKSkpKQoKCmRlYnVnZ2VyIGludm9rZWQgb24gYSBTQi1JTlQ6QlVHIEBCODAwN0I4
NUFEIGluIHRocmVhZAojPFRIUkVBRCB0aWQ9MTk4NjQwMiAibWFpbiB0aHJlYWQiIFJVTk5JTkcg
ezEyMDE0RjAwMDN9PjoKICAgIGZhaWxlZCBBVkVSOiAoRVEgRU5WIChMQU1CREEtRU5WSVJPTk1F
TlQgKExBTUJEQS1WQVItSE9NRSBUSElORykpKQoKT24gVHVlLCBBdWcgNCwgMjAyNiBhdCAzOjU5
4oCvQU0gc251Z2xhcyB2aWEgU2JjbC1jb21taXRzCjxzYmNsLWNvbW1pdHNAbGlzdHMuc291cmNl
Zm9yZ2UubmV0PiB3cm90ZToKPgo+IFRoZSBicmFuY2ggIm1hc3RlciIgaGFzIGJlZW4gdXBkYXRl
ZCBpbiBTQkNMOgo+ICAgICAgICB2aWEgIDEwMGM5YzJiZGNkY2I4NGZmMDRjOGZlZWY5ODNhNWI0
NDY5NWM5N2EgKGNvbW1pdCkKPiAgICAgICBmcm9tICBiNTQxZjJmMjViMTRiNjJmY2FiN2UxNGFh
NTEyNGRiNWRkMWQ2YjIwIChjb21taXQpCj4KPiAtIExvZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IGNvbW1pdCAxMDBj
OWMyYmRjZGNiODRmZjA0YzhmZWVmOTgzYTViNDQ2OTVjOTdhCj4gQXV0aG9yOiBEb3VnbGFzIEth
dHptYW4gPGRvdWdrQGdvb2dsZS5jb20+Cj4gRGF0ZTogICBUdWUgQXVnIDQgMDA6NTg6MjEgMjAy
NiArMDAwMAo+Cj4gICAgIFBlcmZvcm0gbG9jYWwgY29tbW9uIHN1YmV4cHJlc3Npb24gZWxpbWlu
YXRpb24gZm9yIHNvbWUgbWVtb3J5IGxvYWRzCj4KPiAgICAgVGhlIHRlY2huaXF1ZSBpcyB0byBm
aW5kICJlcXVpdmFsZW50IiBsb2FkcyBpbiBiZXR3ZWVuIHdoaWNoIHRoZXJlIGlzIG5vCj4gICAg
IGNvbXB1dGF0aW9uIHRoYXQgYWZmZWN0cyB0aGUgcmVzdWx0IG9mIHRoZSBsb2FkLiBBbHNvIGl0
IG5lZWRzIGEgc3Vycm91bmRpbmcKPiAgICAgTEVULCB3aGljaCBpcyBhdWdtZW50ZWQgd2l0aCBh
IG5ldyB0ZW1wIHZhcmlhYmxlIGFzIGlmIHRoZSB1c2VyIGRpZCB0aGF0Lgo+ICAgICBUaGlzIGlz
IHNsaWdodGx5IGRlZmljaWVudCBmb3IgdmFyaW91cyByZWFzb25zOgo+ICAgICAxLiBpdCB3b24n
dCBkbyBhbnl0aGluZyB3aXRob3V0IHRoZSBMRVQKPiAgICAgMi4gdGhlIG1vcmUga2luZHMgb2Yg
Y29tbW9uIHN1YmV4cHJlc3Npb25zIHdlIGFsbG93IChzdWNoIGFzIG1hdGgpLAo+ICAgICAgICB0
aGUgc2xvd2VyIElSMS1PUFRJTUlaRS1DT01CSU5BVElPTiBpcyBnb2luZyB0byBydW4KPiAgICAg
My4gdGhlcmUgYXJlIHBvc3NpYmx5IG90aGVyIG5vZGUgdHlwZXMgdGhhdCBzaG91bGQgYmUgYWxs
b3dlZCB0byBpbnRlcnZlbmUKPgo+ICAgICBPbiB0aGUgcGx1cyBzaWRlLCBpdCdzIG5vdCBhbGwg
dGhhdCBoYXJkIHRvIGV4dGVuZCB0aGUgbG9naWMgdG8gYWNjZXB0Cj4gICAgIG90aGVyIGZ1bmN0
aW9ucyBhcyBwYXJ0aWNpcGFudHMgaW4gY29tbW9uIHN1YmV4cHJlc3Npb25zLgo+Cj4gICAgIEFs
bCB0ZXN0IGNhc2VzIHBsdXMgYSBsaXR0bGUgYml0IG9mIGFzc2lzdGFuY2UgZnJvbSBHZW1pbmkK
PiAtLS0KPiAgc3JjL2NvbXBpbGVyL2lyMW9wdC5saXNwIHwgMTc5ICsrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwo+ICB0ZXN0cy9sY3NlLnB1cmUubGlzcCAgICAgfCAyMzQgKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgeHBlcmZlY3Ro
YXNoMzAubGlzcC1leHByIHwgICAzICsKPiAgeHBlcmZlY3RoYXNoNjEubGlzcC1leHByIHwgICAz
ICsKPiAgeHBlcmZlY3RoYXNoNjMubGlzcC1leHByIHwgICAzICsKPiAgNSBmaWxlcyBjaGFuZ2Vk
LCA0MjIgaW5zZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBhL3NyYy9jb21waWxlci9pcjFvcHQu
bGlzcCBiL3NyYy9jb21waWxlci9pcjFvcHQubGlzcAo+IGluZGV4IDg1NTk4MjRmMS4uZGFjMzkz
ZTMxIDEwMDY0NAo+IC0tLSBhL3NyYy9jb21waWxlci9pcjFvcHQubGlzcAo+ICsrKyBiL3NyYy9j
b21waWxlci9pcjFvcHQubGlzcAo+IEBAIC0xMjIwLDYgKzEyMjAsMTgyIEBACj4gICAgICAgICAg
ICAgIChzaG93LXR5cGUtZGVyaXZhdGlvbiBjb21iaW5hdGlvbiByZXMpKQo+ICAgICAgICAgICAg
KGNvZXJjZS10by12YWx1ZXMgcmVzKSkpKSkpCj4KPiArKGRlZnVuIGNvbGxlY3QtbHZhci12YXJz
IChsdmFyKQo+ICsgIChkZWNsYXJlICh0eXBlIGx2YXIgbHZhcikpCj4gKyAgKGxldCAoKHVzZSAo
cHJpbmNpcGFsLWx2YXItdXNlIGx2YXIpKSkKPiArICAgIChjb25kICgocmVmLXAgdXNlKQo+ICsg
ICAgICAgICAgIChsZXQgKChsZWFmIChyZWYtbGVhZiB1c2UpKSkKPiArICAgICAgICAgICAgICh3
aGVuIChsYW1iZGEtdmFyLXAgbGVhZikKPiArICAgICAgICAgICAgICAgKGxpc3QgbGVhZikpKSkK
PiArICAgICAgICAgICgoY29tYmluYXRpb24tcCB1c2UpCj4gKyAgICAgICAgICAgKG1hcGNhbiAj
J2NvbGxlY3QtbHZhci12YXJzIChiYXNpYy1jb21iaW5hdGlvbi1hcmdzIHVzZSkpKQo+ICsgICAg
ICAgICAgKHQgbmlsKSkpKQo+ICsKPiArKGRlZnVuIGZpbmQtYWN0aXZlLWxldC1sYW1iZGEgKG5v
ZGUpCj4gKyAgKGRlY2xhcmUgKHR5cGUgbm9kZSBub2RlKSkKPiArICAobG9vcCBmb3IgZW52ID0g
KG5vZGUtbGV4ZW52IG5vZGUpIHRoZW4gKGxleGVudi1wYXJlbnQgZW52KQo+ICsgICAgICAgIHdo
aWxlIGVudgo+ICsgICAgICAgIGRvIChsZXQgKChsIChsZXhlbnYtbGFtYmRhIGVudikpKQo+ICsg
ICAgICAgICAgICAgKHdoZW4gKGFuZCBsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIChmdW5j
dGlvbmFsLWtpbmQtZXEgbCBsZXQpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGZ1
bmN0aW9uYWwta2luZC1lcSBsIHpvbWJpZSkpKQo+ICsgICAgICAgICAgICAgICAocmV0dXJuIGwp
KSkpKQo+ICsKPiArKGRlZnVuIGFkZC12YXJpYWJsZS10by1sZXQtbGFtYmRhIChsZXQtbGFtYmRh
IHYpCj4gKyAgKGRlY2xhcmUgKHR5cGUgY2xhbWJkYSBsZXQtbGFtYmRhKQo+ICsgICAgICAgICAg
ICh0eXBlIGxhbWJkYS12YXIgdikpCj4gKyAgKHNldGYgKGxhbWJkYS12YXItaG9tZSB2KSBsZXQt
bGFtYmRhKQo+ICsgIChzZXRmIChsYW1iZGEtdmFycyBsZXQtbGFtYmRhKSAoYXBwZW5kIChsYW1i
ZGEtdmFycyBsZXQtbGFtYmRhKSAobGlzdCB2KSkpCj4gKyAgOzsgVXBkYXRlIHRoZSBjYWxsIHRv
IHRoZSBMRVQgbGFtYmRhCj4gKyAgKGxldCogKChyZWYgKGNhciAobGVhZi1yZWZzIGxldC1sYW1i
ZGEpKSkKPiArICAgICAgICAgKGNhbGwgKGFuZCByZWYKPiArICAgICAgICAgICAgICAgICAgICAo
bm9kZS1sdmFyIHJlZikKPiArICAgICAgICAgICAgICAgICAgICAobHZhci1kZXN0IChub2RlLWx2
YXIgcmVmKSkpKSkKPiArICAgICh3aGVuIChhbmQgY2FsbCAoY29tYmluYXRpb24tcCBjYWxsKSkK
PiArICAgICAgKGxldCAoKGR1bW15LWx2YXIgKG1ha2UtbHZhcikpKQo+ICsgICAgICAgIChzZXRm
IChsdmFyLWRlc3QgZHVtbXktbHZhcikgY2FsbCkKPiArICAgICAgICAoc2V0ZiAoYmFzaWMtY29t
YmluYXRpb24tYXJncyBjYWxsKQo+ICsgICAgICAgICAgICAgIChhcHBlbmQgKGJhc2ljLWNvbWJp
bmF0aW9uLWFyZ3MgY2FsbCkgKGxpc3QgZHVtbXktbHZhcikpKQo+ICsgICAgICAgIChzZXRmIChs
dmFyLWRlc3QgZHVtbXktbHZhcikgY2FsbCkpKSkpCj4gKwo+ICs7OyBSZXVzZSBvZiBTWU1CT0wt
VkFMVUUgb2YgYSBzcGVjaWFsIHZhciB3b3VsZCBiZSBuaWNlLAo+ICs7OyBidXQgU1lNQk9MLVZB
TFVFIGl0IGlzIG5vdCByZXByZXNlbnRlZCBhcyBhIGNhbGwgaW4gSVIxCj4gKyhkZWZpbmUtbG9h
ZC10aW1lLWdsb2JhbCAqZWxpZGFibGUtbWVtb3J5LWxvYWRzKgo+ICsgICAgJyhjYXIgY2RyICVp
bnN0YW5jZS1yZWYgJXJhdy1pbnN0YW5jZS1yZWYvd29yZCAlcmF3LWluc3RhbmNlLXJlZi9zaWdu
ZWQtd29yZAo+ICsgICAgICBzYXAtcmVmLTE2IHNpZ25lZC1zYXAtcmVmLTE2IHNiLXN5czo6JXNh
cC1yZWYtMTYtaW5kZXhlZCBzYi1zeXM6OiVzaWduZWQtc2FwLXJlZi0xNi1pbmRleGVkCj4gKyAg
ICAgIHNhcC1yZWYtMzIgc2lnbmVkLXNhcC1yZWYtMzIgc2Itc3lzOjolc2FwLXJlZi0zMi1pbmRl
eGVkIHNiLXN5czo6JXNpZ25lZC1zYXAtcmVmLTMyLWluZGV4ZWQKPiArICAgICAgc2FwLXJlZi02
NCBzaWduZWQtc2FwLXJlZi02NCBzYi1zeXM6OiVzYXAtcmVmLTY0LWluZGV4ZWQgc2Itc3lzOjol
c2lnbmVkLXNhcC1yZWYtNjQtaW5kZXhlZAo+ICsgICAgICBzYi1hbGllbjpkZXJlZgo+ICsgICAg
ICBzYi1hbGllbjphbGllbi1zYXApKQo+ICsKPiArOzs7IExvb2sgZm9yIGFueSBub2RlIGVxdWl2
YWxlbnQgdG8gTUFUQ0ggY29uc2RlcmluZyBub2RlcyBpbiByZXZlcnNlIHN0YXJ0aW5nIGF0IEZS
T00uCj4gKzs7OyBNZW1vcnkgbG9hZHMgZnJvbSB0aGUgc2FtZSBvYmplY3Qrc2xvdCBvciBTQVAr
b2Zmc2V0IGNvdWxkIGJlIGVxdWl2YWxlbnQuCj4gKzs7OyBOb3RoaW5nIGVsc2UgY2FuIGJlIGVx
dWl2YWxlbnQgKHVudGlsIEkgZW5oYW5jZSB0aGlzKQo+ICsoZGVmdW4gZmluZC1lcXVpdmFsZW50
LW5vZGUtYmFja3dhcmRzIChtYXRjaCBmcm9tKQo+ICsgIChsYWJlbHMgKChsdmFyLWVxdWl2YWxl
bnQtcCAobDEgbDIpCj4gKyAgICAgICAgICAgICAoZGVjbGFyZSAodHlwZSBsdmFyIGwxIGwyKSkK
PiArICAgICAgICAgICAgIChjb25kICgoZXEgbDEgbDIpIHQpCj4gKyAgICAgICAgICAgICAgICAg
ICAoKGFuZCAoY29uc3RhbnQtbHZhci1wIGwxKSAoY29uc3RhbnQtbHZhci1wIGwyKSkKPiArICAg
ICAgICAgICAgICAgICAgICAoZXFsIChsdmFyLXZhbHVlIGwxKSAobHZhci12YWx1ZSBsMikpKQo+
ICsgICAgICAgICAgICAgICAgICAgKHQKPiArICAgICAgICAgICAgICAgICAgICAobGV0ICgodTEg
KHByaW5jaXBhbC1sdmFyLXVzZSBsMSkpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHUy
IChwcmluY2lwYWwtbHZhci11c2UgbDIpKSkKPiArICAgICAgICAgICAgICAgICAgICAgIChjb25k
ICgoYW5kIChyZWYtcCB1MSkgKHJlZi1wIHUyKSkKPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZXEgKHJlZi1sZWFmIHUxKSAocmVmLWxlYWYgdTIpKSkKPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgoYW5kIChjb21iaW5hdGlvbi1wIHUxKSAoY29tYmluYXRpb24tcCB1MikK
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSAoYmFzaWMtY29tYmluYXRp
b24ta2luZCB1MSkgOmtub3duKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGVxIChiYXNpYy1jb21iaW5hdGlvbi1raW5kIHUyKSA6a25vd24pKQo+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChjb21iaW5hdGlvbi1lcXVpdmFsZW50LXAgdTEgdTIpKQo+ICsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHQgbmlsKSkpKSkpCj4gKyAgICAgICAgICAgKGNvbWJp
bmF0aW9uLWVxdWl2YWxlbnQtcCAoYzEgYzIpCj4gKyAgICAgICAgICAgICAoZGVjbGFyZSAodHlw
ZSBjb21iaW5hdGlvbiBjMSBjMikpCj4gKyAgICAgICAgICAgICAoYW5kIChlcSAoYmFzaWMtY29t
YmluYXRpb24tZnVuLWluZm8gYzEpIChiYXNpYy1jb21iaW5hdGlvbi1mdW4taW5mbyBjMikpCj4g
KyAgICAgICAgICAgICAgICAgIChsZXQgKChhcmdzMSAoYmFzaWMtY29tYmluYXRpb24tYXJncyBj
MSkpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIChhcmdzMiAoYmFzaWMtY29tYmluYXRpb24t
YXJncyBjMikpKQo+ICsgICAgICAgICAgICAgICAgICAgIChhbmQgKD0gKGxlbmd0aCBhcmdzMSkg
KGxlbmd0aCBhcmdzMikpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAoZXZlcnkgIydsdmFy
LWVxdWl2YWxlbnQtcCBhcmdzMSBhcmdzMikpKSkpKQo+ICsgICAgKGRvICgobm9kZSBmcm9tIChj
dHJhbi11c2UgKG5vZGUtcHJldiBub2RlKSkpKSAoKG51bGwgbm9kZSkpCj4gKyAgICAgICh3aGVu
IChhbmQgKGNvbWJpbmF0aW9uLXAgbm9kZSkKPiArICAgICAgICAgICAgICAgICAoZXEgKGNvbWJp
bmF0aW9uLWtpbmQgbm9kZSkgOmtub3duKQo+ICsgICAgICAgICAgICAgICAgIChub2RlLWx2YXIg
bm9kZSkKPiArICAgICAgICAgICAgICAgICAoY29tYmluYXRpb24tZXF1aXZhbGVudC1wIG5vZGUg
bWF0Y2gpKQo+ICsgICAgICAgIChyZXR1cm4gbm9kZSkpCj4gKyAgICAgICh0eXBlY2FzZSBub2Rl
Cj4gKyAgICAgICAgKChvciBjc2V0IHJlZiBjYXN0IGNvbWJpbmF0aW9uIGNpZikpCj4gKyAgICAg
ICAgKHQKPiArICAgICAgICAgOzsgUmV0dXJuIDpGQUlMIHRvIGFib3J0IHF1aWNrbHkuIFRoaXMg
Y291bGQgY2hvb3NlIHRvIGZhaWwgaWYgYSBub24tZmx1c2hhYmxlCj4gKyAgICAgICAgIDs7IGNv
bWJpbmF0aW9uIGlzIHNlZW4sIGJ1dCBmb3Igbm93IEknbSBkZWZlcnJpbmcgdGhhdCBzb3VuZG5l
c3MgY2hlY2suCj4gKyAgICAgICAgIChyZXR1cm4tZnJvbSBmaW5kLWVxdWl2YWxlbnQtbm9kZS1i
YWNrd2FyZHMgOmZhaWwpKSkpKSkKPiArCj4gKzs7OyBBdHRtcHQgdG8gZmluZCBhIENPTUJJTkFU
SU9OIGVxdWl2YWxlbnQgdG8gVEhJUyBwcmVjZWRpbmcgaXQgaW4gbm9kZSBvcmRlciwgdGhlIHZh
bHVlCj4gKzs7OyBvZiB3aGljaCBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yIHRoZSBjYWxsIHRvIFRI
SVMsIGFjdHVhbGx5IG1ha2luZyB0aGUgc3Vic3RpdHV0aW9uLgo+ICs7OzsgTG9va2luZyBiYWNr
d2FyZHMgYXQgbW9zdCBhIGZldyBibG9ja3MgdGVuZHMgdG8gd29yayB3ZWxsIGVub3VnaCwgYW5k
IGlucG9ydGFudGx5Cj4gKzs7OyBsaW1pdHMgdGhlIHdvcmsuIFNjYW5uaW5nIG9ubHkgdGhlIGN1
cnJlbnQgYmxvY2sgaXMgaW5hZGVxdWF0ZSBhcyB0aGUgZXhhbXBsZQo+ICs7OzsgaW4gOkxPT1At
T1ZFUi1ERVJFRiBzaG93cy4gVGhlIGltbWVkaWF0ZSBwcmVkZWNlc3NvciBpcyBzdGlsbCBub3Qg
ZW5vdWdoLCBiZWNhdXNlIHRoZQo+ICs7OzsgcHJlZGVjZXNzb3IgY291bGQgaGF2ZSBiZWVuIHNw
bGl0LCBsZWF2aW5nIGEgdGlueSBibG9jayB3aGVyZSB0aGUgb25seSBub2RlIGlzCj4gKzs7OyBh
IHRyaXZpYWwgb3BlcmF0aW9uLgo+ICsoZGVmdW4gdHJ5LXJldXNlLWV4cHItdmFsdWUgKHRoaXMp
Cj4gKyAgKGRlY2xhcmUgKHR5cGUgY29tYmluYXRpb24gdGhpcykpCj4gKyAgKGJpbmRpbmcqCj4g
KyAgICAgICgoaG9tZS1sYW1iZGEgKGZpbmQtYWN0aXZlLWxldC1sYW1iZGEgdGhpcykgOmV4aXQt
aWYtbnVsbCkKPiArICAgICAgIChsb29rYmFjayAwKQo+ICsgICAgICAgKGMxCj4gKyAgICAgICAg
OzsgSW4gdGhpcyBibG9jaywgZXhwbGljaXRseSBnbyBiYWNrIGEgbm9kZSBzbyB0aGF0IEZJTkQt
QkFDS1dBUkRTIGRvZXNuJ3QgY29uc2lkZXIgVEhJUwo+ICsgICAgICAgIDs7IGFzIGVxdWl2YWxl
bnQgdG8gaXRzZWxmLiBGYWlsaW5nIHRoYXQsIHRyeSBwcmVkZWNlc3NvciBibG9ja3MsIGJ1dCBv
bmx5IGFzIGxvbmcgYXMKPiArICAgICAgICA7OyBwcmVkIGlzIHVuaXF1ZSBzaW5jZSB3ZSBoYXZl
IG5vIGluZm9ybWF0aW9uIGFib3V0IG5vZGVzIHRoYXQgZG9taW5hdGUgVEhJUy4KPiArICAgICAg
ICAob3IgKGZpbmQtZXF1aXZhbGVudC1ub2RlLWJhY2t3YXJkcyB0aGlzIChjdHJhbi11c2UgKG5v
ZGUtcHJldiB0aGlzKSkpCj4gKyAgICAgICAgICAgIChkbyAoKHByZWQgKGJsb2NrLXByZWQgKG5v
ZGUtYmxvY2sgdGhpcykpKSkKPiArICAgICAgICAgICAgICAgICgob3IgKD4gbG9va2JhY2sgMykg
KG5vdCAoc2luZ2xldG9uLXAgcHJlZCkpKSkKPiArICAgICAgICAgICAgICAoaW5jZiBsb29rYmFj
aykKPiArICAgICAgICAgICAgICAobGV0ICgobm9kZSAoYmxvY2stbGFzdCAoY2FyIHByZWQpKSkp
Cj4gKyAgICAgICAgICAgICAgICAod2hlbiAobnVsbCBub2RlKSAocmV0dXJuKSkKPiArICAgICAg
ICAgICAgICAgIChhd2hlbiAoZmluZC1lcXVpdmFsZW50LW5vZGUtYmFja3dhcmRzIHRoaXMgbm9k
ZSkgKHJldHVybiBpdCkpCj4gKyAgICAgICAgICAgICAgICAoc2V0cSBwcmVkIChibG9jay1wcmVk
IChub2RlLWJsb2NrIG5vZGUpKSkpKSkKPiArICAgICAgICA6ZXhpdC1pZi1udWxsKQo+ICsgICAg
ICAgKHZhcnMgOyBjYW4ndCB1c2UgOmV4aXQtaWYtbnVsbCBoZXJlIGJlY2F1c2UgVkFSUyBjYW4g
YmUgYW5kIHVzdWFsbHkgaXMgTklMCj4gKyAgICAgICAgKHVubGVzcyAoZXEgYzEgOmZhaWwpCj4g
KyAgICAgICAgICAobWFwY2FuICMnY29sbGVjdC1sdmFyLXZhcnMgKGJhc2ljLWNvbWJpbmF0aW9u
LWFyZ3MgYzEpKSkpKQo+ICsgICAgKHdoZW4gKGVxIGMxIDpmYWlsKQo+ICsgICAgICAocmV0dXJu
LWZyb20gdHJ5LXJldXNlLWV4cHItdmFsdWUgbmlsKSkKPiArICAgIChsYWJlbHMgKChhbGwtZmx1
c2hhYmxlIChjdHJhbiBlbmQtbm9kZSkKPiArICAgICAgICAgICAgICAgKGRlY2xhcmUgKGN0cmFu
IGN0cmFuKSAodHlwZSAob3Igbm9kZSBudWxsKSBlbmQtbm9kZSkpCj4gKyAgICAgICAgICAgICAg
IChsb29wIChsZXQgKChub2RlIChjdHJhbi1uZXh0IGN0cmFuKSkpCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgKGNvbmQgKChlcSBub2RlIGVuZC1ub2RlKSAocmV0dXJuIHQpKQo+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgobm90IChvay10by1mbHVzaCBub2RlKSkgKHJldHVybiBu
aWwpKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYW5kIChub3QgZW5kLW5vZGUp
IChub3QgKG5vZGUtbmV4dCBub2RlKSkpIChyZXR1cm4gdCkpKQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgIChzZXRxIGN0cmFuIChub2RlLW5leHQgbm9kZSkpKSkpCj4gKyAgICAgICAgICAgICAo
b2stdG8tZmx1c2ggKG5vZGUpCj4gKyAgICAgICAgICAgICAgIChjb25kICgoc2V0LXAgbm9kZSkg
KG5vdCAobWVtYmVyIChzZXQtdmFyIG5vZGUpIHZhcnMpKSkKPiArICAgICAgICAgICAgICAgICAg
ICAgKChjb21iaW5hdGlvbi1wIG5vZGUpIChmbHVzaGFibGUtY29tYmluYXRpb24tcCBub2RlKSkK
PiArICAgICAgICAgICAgICAgICAgICAgKChiYXNpYy1jb21iaW5hdGlvbi1wIG5vZGUpIG5pbCkK
PiArICAgICAgICAgICAgICAgICAgICAgKHQgdCkpKSkgOyBhbnl0aGluZyBlbHNlIHRoZSBiYWNr
d2FyZHMgc2VhcmNoIGFsbG93ZWQgaXMgb2sKPiArICAgICAgOzsgV2hlbiBsb29rYmFjaz4wIGl0
J3MgcG9zc2libGUgZm9yIHRoZSBlcXVpdmFsZW50IG5vZGUgdG8gYmUgdGhlIGZpbmFsIG5vZGUK
PiArICAgICAgOzsgb2YgaXRzIGJsb2NrLCBpbiB3aGljaCBjYXNlIGl0cyBOT0RFLU5FWFQgaXMg
bnVsbC4KPiArICAgICAgKGxldCogKCh0aGlzLWJsb2NrIChub2RlLWJsb2NrIHRoaXMpKQo+ICsg
ICAgICAgICAgICAgKHByZWQgKGNhciAoYmxvY2stcHJlZCB0aGlzLWJsb2NrKSkpKQo+ICsgICAg
ICAgICh1bmxlc3MgKGlmICg9IGxvb2tiYWNrIDApCj4gKyAgICAgICAgICAgICAgICAgICAgKGFs
bC1mbHVzaGFibGUgKG5vZGUtbmV4dCBjMSkgdGhpcykKPiArICAgICAgICAgICAgICAgICAgICAo
YW5kCj4gKyAgICAgICAgICAgICAgICAgICAgIDs7IENoZWNrIHByZXYgYmxvY2sgZnJvbSBDMSB0
byBpdHMgZW5kIG9mIGJsb2NrLCBhbmQgY3VycmVudCBibG9jayB1cCB0byBUSElTCj4gKyAgICAg
ICAgICAgICAgICAgICAgIChhY29uZCAoKG5vZGUtbmV4dCBjMSkgKGFsbC1mbHVzaGFibGUgaXQg
bmlsKSkgKHQgdCkpCj4gKyAgICAgICAgICAgICAgICAgICAgIChhbGwtZmx1c2hhYmxlIChibG9j
ay1zdGFydCB0aGlzLWJsb2NrKSB0aGlzKQo+ICsgICAgICAgICAgICAgICAgICAgICA7OyBBbGwg
Y2hlY2sgYWxsIG9mIG9uZSBvciBib3RoIGludGVydmVuaW5nIGJsb2Nrcwo+ICsgICAgICAgICAg
ICAgICAgICAgICAob3IgKDwgbG9va2JhY2sgMikKPiArICAgICAgICAgICAgICAgICAgICAgICAg
IChhbGwtZmx1c2hhYmxlIChibG9jay1zdGFydCBwcmVkKSBuaWwpKQo+ICsgICAgICAgICAgICAg
ICAgICAgICAob3IgKDwgbG9va2JhY2sgMykKPiArICAgICAgICAgICAgICAgICAgICAgICAgIChh
bGwtZmx1c2hhYmxlIChibG9jay1zdGFydCAoY2FyIChibG9jay1wcmVkIHByZWQpKSkgbmlsKSkp
KQo+ICsgICAgICAgICAgKHJldHVybi1mcm9tIHRyeS1yZXVzZS1leHByLXZhbHVlIG5pbCkpKSkK
PiArICAgIDs7IFN1YnN0aXR1dGUgQzEncyByZXN1bHQgaW4gZm9yIFRISVMKPiArICAgIChiaW5k
aW5nKiAoKGx2YXItYzEgKG5vZGUtbHZhciBjMSkgOmV4aXQtaWYtbnVsbCkKPiArICAgICAgICAg
ICAgICAgKGNvbnN1bWVyLTEgKGx2YXItZGVzdCBsdmFyLWMxKSA6ZXhpdC1pZi1udWxsKQo+ICsg
ICAgICAgICAgICAgICAoYzIgdGhpcykKPiArICAgICAgICAgICAgICAgKGx2YXItYzIgKG5vZGUt
bHZhciBjMikgOmV4aXQtaWYtbnVsbCkKPiArICAgICAgICAgICAgICAgKHYgKG1ha2UtbGFtYmRh
LXZhciAoZ2Vuc3ltICJSRVVTRUQtVkFMIikKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA6dHlwZSAoc2luZ2xlLXZhbHVlLXR5cGUgKG5vZGUtZGVyaXZlZC10eXBlIGMxKSkp
KQo+ICsgICAgICAgICAgICAgICAobHZhci1uZXcgKG1ha2UtbHZhcikpKQo+ICsgICAgICAoYWRk
LXZhcmlhYmxlLXRvLWxldC1sYW1iZGEgaG9tZS1sYW1iZGEgdikKPiArCj4gKyAgICAgIDs7IDEu
IFJlZGlyZWN0IGNvbnN1bWVyLTEgdG8gcmVhZCBmcm9tIGx2YXItbmV3Cj4gKyAgICAgIChzdWJz
dGl0dXRlLWx2YXIgbHZhci1uZXcgbHZhci1jMSkKPiArCj4gKyAgICAgICh3aXRoLWlyMS1lbnZp
cm9ubWVudC1mcm9tLW5vZGUgYzEKPiArICAgICAgICA7OyAyLiBNYWtlIEMxIHdyaXRlIHRvIGEg
bmV3IExWQVIsIGFuZCBsaW5rIGl0IHRvIGEgQ1NFVCBvbiBWCj4gKyAgICAgICAgKGxldCAoKGx2
YXItYzEtbmV3IChtYWtlLWx2YXIpKSkKPiArICAgICAgICAgICglZGVsZXRlLWx2YXItdXNlIGMx
KQo+ICsgICAgICAgICAgKHVzZS1sdmFyIGMxIGx2YXItYzEtbmV3KQo+ICsgICAgICAgICAgOzsg
My4gQ3JlYXRlIFMxIChzZXQgViA9IGx2YXItYzEtbmV3KSBhbmQgaW5zZXJ0IGFmdGVyIEMxCj4g
KyAgICAgICAgICAobGV0ICgoczEgKG1ha2Utc2V0IHYgbHZhci1jMS1uZXcpKSkKPiArICAgICAg
ICAgICAgKHNldGYgKGx2YXItZGVzdCBsdmFyLWMxLW5ldykgczEpCj4gKyAgICAgICAgICAgIChw
dXNoIHMxIChiYXNpYy12YXItc2V0cyB2KSkKPiArICAgICAgICAgICAgKGluc2VydC1ub2RlLWFm
dGVyIGMxIHMxKSkpKQo+ICsKPiArICAgICAgOzsgNC4gSW5zZXJ0IHJlZjEgYmVmb3JlIGNvbnN1
bWVyLTEsIHdyaXRpbmcgdG8gbHZhci1uZXcKPiArICAgICAgKGluc2VydC1yZWYtYmVmb3JlIHYg
Y29uc3VtZXItMSBsdmFyLW5ldykKPiArICAgICAgOzsgNS4gSW5zZXJ0IHJlZjIgYmVmb3JlIEMy
LCBzdGVhbGluZyBDMidzIGx2YXIKPiArICAgICAgKGluc2VydC1yZWYtYmVmb3JlIHYgYzIgdCkK
PiArICAgICAgOzsgQzIgaXMgbm93IGRlYWQgYW5kIHdpbGwgYmUgZmx1c2hlZCBieSB0aGUgY2Fs
bGVyIQo+ICsgICAgICB0KSkpCj4gKwo+ICA7OzsgRG8gSVIxIG9wdGltaXphdGlvbnMgb24gYSBD
T01CSU5BVElPTiBub2RlLgo+ICAoZGVmdW4gaXIxLW9wdGltaXplLWNvbWJpbmF0aW9uIChub2Rl
ICZhdXggKHNob3cgKnNob3ctdHJhbnNmb3Jtcy1wKikpCj4gICAgKGRlY2xhcmUgKHR5cGUgY29t
YmluYXRpb24gbm9kZSkpCj4gQEAgLTEzMDUsNiArMTQ4MSw5IEBACj4gICAgICAgICAgICAgICAg
ICAgICAgICAgKG5vdCAobm9kZS1sdmFyIG5vZGUpKSkKPiAgICAgICAgICAgICAgICAgICAgKHJl
dHVybi1mcm9tIGlyMS1vcHRpbWl6ZS1jb21iaW5hdGlvbiAoZmx1c2gtbm9kZSBub2RlKSkpCj4g
ICAgICAgICAgICAgICAgICAgKChmb2xkLWNhbGwtZGVyaXZlZC10by1jb25zdGFudCBub2RlKQo+
ICsgICAgICAgICAgICAgICAgICAocmV0dXJuLWZyb20gaXIxLW9wdGltaXplLWNvbWJpbmF0aW9u
KSkKPiArICAgICAgICAgICAgICAgICAoKGFuZCAoY29tYmluYXRpb24taXMgbm9kZSAqZWxpZGFi
bGUtbWVtb3J5LWxvYWRzKikKPiArICAgICAgICAgICAgICAgICAgICAgICAodHJ5LXJldXNlLWV4
cHItdmFsdWUgbm9kZSkpCj4gICAgICAgICAgICAgICAgICAgIChyZXR1cm4tZnJvbSBpcjEtb3B0
aW1pemUtY29tYmluYXRpb24pKSkKPiAgICAgICAgICAgICAod2hlbiAoYW5kIChpcjEtYXR0cmli
dXRlcCAoZnVuLWluZm8tYXR0cmlidXRlcyBpbmZvKSBjb21tdXRhdGl2ZSkKPiAgICAgICAgICAg
ICAgICAgICAgICAgICg9IChsZW5ndGggYXJncykgMikKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvbGNz
ZS5wdXJlLmxpc3AgYi90ZXN0cy9sY3NlLnB1cmUubGlzcAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0
Cj4gaW5kZXggMDAwMDAwMDAwLi40M2IzNGU5OTgKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvdGVz
dHMvbGNzZS5wdXJlLmxpc3AKPiBAQCAtMCwwICsxLDIzNCBAQAo+ICs7Ozs7IFRoaXMgc29mdHdh
cmUgaXMgcGFydCBvZiB0aGUgU0JDTCBzeXN0ZW0uIFNlZSB0aGUgUkVBRE1FIGZpbGUgZm9yCj4g
Kzs7OzsgbW9yZSBpbmZvcm1hdGlvbi4KPiArOzs7Owo+ICs7Ozs7IFdoaWxlIG1vc3Qgb2YgU0JD
TCBpcyBkZXJpdmVkIGZyb20gdGhlIENNVSBDTCBzeXN0ZW0sIHRoZSB0ZXN0Cj4gKzs7OzsgZmls
ZXMgKGxpa2UgdGhpcyBvbmUpIHdlcmUgd3JpdHRlbiBmcm9tIHNjcmF0Y2ggYWZ0ZXIgdGhlIGZv
cmsKPiArOzs7OyBmcm9tIENNVSBDTC4KPiArOzs7Owo+ICs7Ozs7IFRoaXMgc29mdHdhcmUgaXMg
aW4gdGhlIHB1YmxpYyBkb21haW4gYW5kIGlzIHByb3ZpZGVkIHdpdGgKPiArOzs7OyBhYnNvbHV0
ZWx5IG5vIHdhcnJhbnR5LiBTZWUgdGhlIENPUFlJTkcgYW5kIENSRURJVFMgZmlsZXMgZm9yCj4g
Kzs7OzsgbW9yZSBpbmZvcm1hdGlvbi4KPiArCj4gKzs7OzsgVGVzdHMgb2YgbG9jYWwgY29tbW9u
IHN1YmV4cHJlc3Npb24gZWxpbWluYXRpb24KPiArCj4gKyhpbXBvcnQgJyhjdHU6aW5zcGVjdC1p
cgo+ICsgICAgICAgICAgc2ItYzo6Y29tYmluYXRpb24tZnVuLWRlYnVnLW5hbWUKPiArICAgICAg
ICAgIHNiLWM6OmJhc2ljLWNvbWJpbmF0aW9uLXApKQo+ICsKPiArKGRlZnVuIGlyLWNhbGxzIChm
b3JtKQo+ICsgIChsZXQgKGNhbGxzKQo+ICsgICAgKGluc3BlY3QtaXIKPiArICAgICBmb3JtCj4g
KyAgICAgKGxhbWJkYSAoY29tcG9uZW50KQo+ICsgICAgICAgKGN0dTpkby1ibG9ja3MgKGJsb2Nr
IGNvbXBvbmVudCkKPiArICAgICAgICAgKGN0dTpkby1ub2RlcyAobm9kZSBuaWwgYmxvY2spCj4g
KyAgICAgICAgICAgKHdoZW4gKGJhc2ljLWNvbWJpbmF0aW9uLXAgbm9kZSkKPiArICAgICAgICAg
ICAgIChwdXNoIG5vZGUgY2FsbHMpKSkpKSkKPiArICAgIGNhbGxzKSkKPiArCj4gKyhkZWZtYWNy
byBhc3NlcnQtY2FsbHMgKGZ1bi1uYW1lIGV4cGVjdGVkLWNvdW50ICgmcmVzdCBsYW1iZGEtYXJn
cykgJmJvZHkgYm9keSkKPiArICAoc2ItaW50OmJpbmRpbmcqCj4gKyAgICAgICgoKGZvcm1zIGRl
Y2xzKSAoc2ItaW50OnBhcnNlLWJvZHkgYm9keSBuaWwpKQo+ICsgICAgICAgKGxleHByIGAobGFt
YmRhICgsQGxhbWJkYS1hcmdzKQo+ICsgICAgICAgICAgICAgICAgICxAZGVjbHMKPiArICAgICAg
ICAgICAgICAgICAgOzsgV2l0aG91dCBhIGNvbnRhaW5pbmcgTEVUIGZvcm0sIHRoZSBjdXJyZW50
IGltcGxlbWVudGF0aW9uIG9mIENTRQo+ICsgICAgICAgICAgICAgICAgICA7OyBpcyB1bndpbGxp
bmcgdG8gYmluZCBhIHRlbXBvcmFyeSBsYW1iZGEgdmFyIGZvciByZXVzZS4KPiArICAgICAgICAg
ICAgICAgICAgKGxldCAoKGFjdGl2ZS1sZXQtdmFyIDApKQo+ICsgICAgICAgICAgICAgICAgICAg
IChwcmludCBhY3RpdmUtbGV0LXZhcikKPiArICAgICAgICAgICAgICAgICAgICAoaW5jZiBhY3Rp
dmUtbGV0LXZhciAocmFuZG9tIDUpKQo+ICsgICAgICAgICAgICAgICAgICAgIChwcmludCBhY3Rp
dmUtbGV0LXZhcikKPiArICAgICAgICAgICAgICAgICAgICAsQGZvcm1zKSkpKQo+ICsgICAgYChh
c3NlcnQgKD0gKGNvdW50ICcsZnVuLW5hbWUgKGlyLWNhbGxzICcsbGV4cHIpIDprZXkgIydjb21i
aW5hdGlvbi1mdW4tZGVidWctbmFtZSkKPiArICAgICAgICAgICAgICAgICxleHBlY3RlZC1jb3Vu
dCkpKSkKPiArCj4gKzs7OyBCYXNpYyB0ZXN0czogYSBzYW1wbGluZyBvZiBlbGlkYWJsZSBsb2Fk
IHR5cGUgd2l0aCB0d28gaWRlbnRpY2FsIGxvYWRzCj4gKwo+ICsod2l0aC10ZXN0ICg6bmFtZSAo
OmNzZSA6Y2FyKSkKPiArICAoYXNzZXJ0LWNhbGxzIGNhciAxIChjb25zKQo+ICsgICAgKGRlY2xh
cmUgKHR5cGUgY29ucyBjb25zKSkKPiArICAgIChpZiAoY2FyIGNvbnMpCj4gKyAgICAgICAgKHBy
aW5jIChjYXIgY29ucykpCj4gKyAgICAgICAgKHByaW5jIChjZHIgY29ucykpKSkpCj4gKwo+ICso
d2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6ZGlmZmVyZW50LW5hbWVzLWZvci1zYW1lLW9iamVjdCkp
Cj4gKyAgOzsgWSBhbmQgWCByZWZlciB0byB0aGUgc2FtZSB0aGluZywgYW5kIGl0IGRvZXNuJ3Qg
bWF0dGVyCj4gKyAgOzsgd2hvc2UgQ0RSIHdlIHRha2UgZmlyc3QuIE9ubHkgb25lIENEUiBvcGVy
YXRpb24gaXMgcGVyZm9ybWVkCj4gKyAgKGFzc2VydC1jYWxscyBjZHIgMSAoeCkKPiArICAgIChk
ZWNsYXJlICh0eXBlIGNvbnMgeCkpCj4gKyAgICAobGV0ICgoeSB4KSkKPiArICAgICAgKGxpc3Qg
KGNkciB5KSAoY2RyIHgpKSkpCj4gKyAgKGFzc2VydC1jYWxscyBjZHIgMSAoeCkKPiArICAgIChk
ZWNsYXJlICh0eXBlIGNvbnMgeCkpCj4gKyAgICAobGV0ICgoeSB4KSkKPiArICAgICAgKGxpc3Qg
KGNkciB4KSAoY2RyIHkpKSkpKQo+ICsKPiArKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOmNvbXBv
c2l0aW9uLW9mLWN4cikpCj4gKyAgOzsgVGhlIENBUiBleHRyYWN0aW9uIHdoaWNoIGlzIHBhcnQg
b2YgdGhlIENEQVIgZnVuY3Rpb24gY2FuIGJlCj4gKyAgOzsgcmV1c2VkIGJhc2VkIG9uIHRoZSBm
YWN0IHRoYXQgd2UgZXZhbHVhdGVkIChMSVNUUCAoQ0FSIFgpKQo+ICsgIChhc3NlcnQtY2FsbHMg
Y2FyIDEgKHgpCj4gKyAgICAoaWYgKGxpc3RwIChjYXIgeCkpIChjZGFyIHgpKSkKPiArICA7OyBu
ZWdhdGl2ZSB0ZXN0IC0gQ0RBUiBvbiBhIGRpZmZlcmVudCBZIGlzIGFub3RoZXIgQ0FSIG9wZXJh
dGlvbgo+ICsgIChhc3NlcnQtY2FsbHMgY2FyIDIgKHggeSkKPiArICAgIChpZiAobGlzdHAgKGNh
ciB4KSkgKGNkYXIgeSkpKSkKPiArCj4gKyhkZWZzdHJ1Y3QgY3NlLXRlc3QtZm9vIHNsb3QgKHdz
bG90IDAgOnR5cGUgc2Itdm06d29yZCkpCj4gKyh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDppbnN0
YW5jZS1yZWYpKQo+ICsgIChhc3NlcnQtY2FsbHMgc2Ita2VybmVsOiVpbnN0YW5jZS1yZWYgMSAo
eCkKPiArICAgIDs7IERlcGVuZGluZyBvbiB3aGF0IFRSQU5TRk9STS1JTlNUQU5DRS1UWVBFUCBk
b2VzLCBpdCBtaWdodCBhY2Nlc3MgaW5zdGFuY2UtbGF5b3V0Cj4gKyAgICA7OyB1c2luZyAlSU5T
VEFOQ0UtUkVGIHdoaWNoIHdvdWxkIGhhdmUgdG8gYmUgZGlzY291bnRlZCBpbiB0aGUgY2FsbCBj
b3VudGluZy4KPiArICAgIDs7IEp1c3QgYnJ1dGUtZm9yY2UgdGhlIHR5cGUgdG8gYXZvaWQgdGhh
dCBzaXR1YXRpb24uCj4gKyAgICAobGV0ICgoeCAodHJ1bHktdGhlIGNzZS10ZXN0LWZvbyB4KSkp
Cj4gKyAgICAgIChpZiAoY3NlLXRlc3QtZm9vLXNsb3QgeCkKPiArICAgICAgICAgIChwcmluYyAo
Y3NlLXRlc3QtZm9vLXNsb3QgeCkpCj4gKyAgICAgICAgICBuaWwpKSkpCj4gKwo+ICsod2l0aC10
ZXN0ICg6bmFtZSAoOmNzZSA6cmF3LWluc3RhbmNlLXJlZi93b3JkKSkKPiArICAoYXNzZXJ0LWNh
bGxzIHNiLWtlcm5lbDolcmF3LWluc3RhbmNlLXJlZi93b3JkIDEgKHgpCj4gKyAgICAoZGVjbGFy
ZSAodHlwZSBjc2UtdGVzdC1mb28geCkpCj4gKyAgICAoaWYgKGxvZ3Rlc3QgKGNzZS10ZXN0LWZv
by13c2xvdCB4KSAjeGZmMDAwKQo+ICsgICAgICAgIChwcmluYyAoY3NlLXRlc3QtZm9vLXdzbG90
IHgpKQo+ICsgICAgICAgIG5pbCkpKQo+ICsKPiArKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOnNh
cC1yZWYtMzIpKQo+ICsgIChhc3NlcnQtY2FsbHMgc2Itc3lzOnNhcC1yZWYtMzIgMSAoc2FwIG9m
ZnNldCkKPiArICAgIChkZWNsYXJlICh0eXBlIHNiLXN5czpzeXN0ZW0tYXJlYS1wb2ludGVyIHNh
cCkKPiArICAgICAgICAgICAgICh0eXBlIHNiLXZtOndvcmQgb2Zmc2V0KSkKPiArICAgIChpZiAo
cGx1c3AgKHNiLXN5czpzYXAtcmVmLTMyIHNhcCBvZmZzZXQpKQo+ICsgICAgICAgIChwcmluYyAo
c2Itc3lzOnNhcC1yZWYtMzIgc2FwIG9mZnNldCkpCj4gKyAgICAgICAgbmlsKSkKPiArICAoYXNz
ZXJ0LWNhbGxzIHNiLXN5czpzaWduZWQtc2FwLXJlZi0zMiAxIChzYXAgb2Zmc2V0KQo+ICsgICAg
KGRlY2xhcmUgKHR5cGUgc2Itc3lzOnN5c3RlbS1hcmVhLXBvaW50ZXIgc2FwKQo+ICsgICAgICAg
ICAgICAgKHR5cGUgc2Itdm06d29yZCBvZmZzZXQpKQo+ICsgICAgKGlmIChwbHVzcCAoc2Itc3lz
OnNpZ25lZC1zYXAtcmVmLTMyIHNhcCBvZmZzZXQpKQo+ICsgICAgICAgIChwcmluYyAoc2Itc3lz
OnNpZ25lZC1zYXAtcmVmLTMyIHNhcCBvZmZzZXQpKQo+ICsgICAgICAgIG5pbCkpKQo+ICsKPiAr
KHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOnNhcC1yZWYtNjQpIDpza2lwcGVkLW9uICg6bm90IDo2
NC1iaXQpKQo+ICsgIChhc3NlcnQtY2FsbHMgc2Itc3lzOnNhcC1yZWYtNjQgMSAoc2FwIG9mZnNl
dCkKPiArICAgIChkZWNsYXJlICh0eXBlIHNiLXN5czpzeXN0ZW0tYXJlYS1wb2ludGVyIHNhcCkK
PiArICAgICAgICAgICAgICh0eXBlIHNiLXZtOndvcmQgb2Zmc2V0KSkKPiArICAgIChpZiAocGx1
c3AgKHNiLXN5czpzYXAtcmVmLTY0IHNhcCBvZmZzZXQpKQo+ICsgICAgICAgIChwcmluYyAoc2It
c3lzOnNhcC1yZWYtNjQgc2FwIG9mZnNldCkpCj4gKyAgICAgICAgbmlsKSkKPiArICAoYXNzZXJ0
LWNhbGxzIHNiLXN5czpzaWduZWQtc2FwLXJlZi02NCAxIChzYXAgb2Zmc2V0KQo+ICsgICAgKGRl
Y2xhcmUgKHR5cGUgc2Itc3lzOnN5c3RlbS1hcmVhLXBvaW50ZXIgc2FwKQo+ICsgICAgICAgICAg
ICAgKHR5cGUgc2Itdm06d29yZCBvZmZzZXQpKQo+ICsgICAgKGlmIChwbHVzcCAoc2Itc3lzOnNp
Z25lZC1zYXAtcmVmLTY0IHNhcCBvZmZzZXQpKQo+ICsgICAgICAgIChwcmluYyAoc2Itc3lzOnNp
Z25lZC1zYXAtcmVmLTY0IHNhcCBvZmZzZXQpKQo+ICsgICAgICAgIG5pbCkpKQo+ICsKPiArKHdp
dGgtdGVzdCAoOm5hbWUgKDpjc2UgOmxvb3Atb3Zlci1kZXJlZikpCj4gKyAgKGxldCAoKGxleHBy
Cj4gKyAgICAgICAgICcobGFtYmRhIChmKQo+ICsgICAgICAgICAgICAoZGVjbGFyZSAob3B0aW1p
emUgKHNiLWM6OmFsaWVuLWZ1bmNhbGwtc2F2ZXMtZnAtYW5kLXBjIDApCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2ItYzo6dHlwZS1jaGVjayAwKSkpCj4gKyAgICAgICAgICAg
IDs7IEYgcmV0dXJucyBhIHBvaW50ZXIgdG8gYSBudWxsLXRlcm1pbmF0ZWQgYXJyYXkgb2YgdW5z
aWduZWQtaW50Lgo+ICsgICAgICAgICAgICA7OyBUaGUgZGVyZWYgZm9yIHRoZSBsb29wIHRlcm1p
bmF0aW9uIHRlc3QsIGFuZCBhZ2FpbiBpbiB0aGUgYm9keQo+ICsgICAgICAgICAgICA7OyBzaG91
bGQgdXNlIGEgc2luZ2xlIG1lbW9yeSBsb2FkLgo+ICsgICAgICAgICAgICAobGV0ICgoYSAoYWxp
ZW4tZnVuY2FsbCAodGhlIChhbGllbiAoZnVuY3Rpb24gKCogdW5zaWduZWQpKSkgZikpKSkKPiAr
ICAgICAgICAgICAgICAoZG8gKChpbmRleCAwICgxKyBpbmRleCkpKQo+ICsgICAgICAgICAgICAg
ICAgICAoKHplcm9wIChkZXJlZiBhIGluZGV4KSkpCj4gKyAgICAgICAgICAgICAgICAocHJpbmMg
KHRoZSBmaXhudW0gKGRlcmVmIGEgaW5kZXgpKSkpKSkpKQo+ICsgICAgKGFzc2VydCAoPSAoY291
bnQgIysob3IgYXJtNjQgeDg2LTY0KSAnc2Itc3lzOiVzYXAtcmVmLTY0LWluZGV4ZWQKPiArICAg
ICAgICAgICAgICAgICAgICAgICMtKG9yIGFybTY0IHg4Ni02NCkKPiArICAgICAgICAgICAgICAg
ICAgICAgIChwcm9nbiAjKzY0LWJpdCAnc2Itc3lzOnNhcC1yZWYtNjQgIy02NC1iaXQgJ3NiLXN5
czpzYXAtcmVmLTMyKQo+ICsgICAgICAgICAgICAgICAgICAgICAgKGlyLWNhbGxzIGxleHByKSA6
a2V5ICMnY29tYmluYXRpb24tZnVuLWRlYnVnLW5hbWUpCj4gKyAgICAgICAgICAgICAgIDEpKSkp
Cj4gKwo+ICs7OzsgU0VUUSBvZiBhIHZhcmlhYmxlIHVzZWQgYXMgYW4gYXJndW1lbnQgdG8gYW4g
ZWxpZGFibGUgbG9hZCBwcmV2ZW50cyBDU0UuCj4gKzs7OyBXaGVuIGEgdmFyaWFibGUgdGhhdCBw
YXJ0aWNpcGF0ZXMgaW4gdGhlIGxvYWQgZXhwcmVzc2lvbiAoZS5nLiwgdGhlIGNvbnMKPiArOzs7
IGJlaW5nIENBUidkKSBpcyBhc3NpZ25lZCBiZXR3ZWVuIHR3byBpZGVudGljYWwgbG9hZHMsIHRo
ZSBzZWNvbmQgbG9hZAo+ICs7OzsgbXVzdCBub3QgYmUgZWxpbWluYXRlZCBiZWNhdXNlIHRoZSB2
YXJpYWJsZSBtYXkgcmVmZXJlbmNlIGEgZGlmZmVyZW50IG9iamVjdC4KPiArKHdpdGgtdGVzdCAo
Om5hbWUgKDpjc2UgOnNldHEtb2YtbG9hZC1hcmctcHJldmVudHMtY2FyKSkKPiArICA7OyBDT05T
IGlzIHRoZSBhcmd1bWVudCB0byBDQVIuIEFzc2lnbmluZyBDT05TIGJldHdlZW4gdHdvIChDQVIg
Q09OUykKPiArICA7OyBwcmV2ZW50cyBDU0UuCj4gKyAgKGFzc2VydC1jYWxscyBjYXIgMiAoY29u
cyBvdGhlcikKPiArICAgIChkZWNsYXJlICh0eXBlIGNvbnMgY29ucyBvdGhlcikpCj4gKyAgICAo
bGV0ICgoYSAoY2FyIGNvbnMpKSkKPiArICAgICAgKHNldHEgY29ucyBvdGhlcikKPiArICAgICAg
KGxldCAoKGIgKGNhciBjb25zKSkpCj4gKyAgICAgICAgKGxpc3QgYSBiKSkpKSkKPiArCj4gKyh3
aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDpzZXRxLW9mLWxvYWQtYXJnLXByZXZlbnRzLWNkcikpCj4g
KyAgKGFzc2VydC1jYWxscyBjZHIgMiAoY29ucyBvdGhlcikKPiArICAgIChkZWNsYXJlICh0eXBl
IGNvbnMgY29ucyBvdGhlcikpCj4gKyAgICAobGV0ICgoYSAoY2RyIGNvbnMpKSkKPiArICAgICAg
KHNldHEgY29ucyBvdGhlcikKPiArICAgICAgKGxldCAoKGIgKGNkciBjb25zKSkpCj4gKyAgICAg
ICAgKGxpc3QgYSBiKSkpKSkKPiArCj4gKyh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDpzZXRxLW9m
LWxvYWQtYXJnLXByZXZlbnRzLWluc3RhbmNlLXJlZikpCj4gKyAgOzsgQXNzaWduaW5nIHRoZSBz
dHJ1Y3QgdmFyaWFibGUgYmV0d2VlbiB0d28gcmVhZHMgb2YgdGhlIHNhbWUgc2xvdCBwcmV2ZW50
cyBDU0UuCj4gKyAgKGFzc2VydC1jYWxscyBzYi1rZXJuZWw6JWluc3RhbmNlLXJlZiAyICh4IHkp
Cj4gKyAgICAobGV0ICgoeCAodHJ1bHktdGhlIGNzZS10ZXN0LWZvbyB4KSkKPiArICAgICAgICAg
ICh5ICh0cnVseS10aGUgY3NlLXRlc3QtZm9vIHkpKSkKPiArICAgICAgKGxldCAoKGEgKGNzZS10
ZXN0LWZvby1zbG90IHgpKSkKPiArICAgICAgICAoc2V0cSB4IHkpCj4gKyAgICAgICAgKGxldCAo
KGIgKGNzZS10ZXN0LWZvby1zbG90IHgpKSkKPiArICAgICAgICAgIChsaXN0IGEgYikpKSkpKQo+
ICsKPiArKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOnNldHEtb2YtbG9hZC1hcmctcHJldmVudHMt
c2FwLXJlZikpCj4gKyAgOzsgQXNzaWduaW5nIHRoZSBTQVAgdmFyaWFibGUgYmV0d2VlbiB0d28g
cmVhZHMgYXQgdGhlIHNhbWUgb2Zmc2V0Cj4gKyAgOzsgbXVzdCBwcmV2ZW50IENTRSBzaW5jZSB0
aGUgc2Vjb25kIHJlYWQgbWF5IHVzZSBhIGRpZmZlcmVudCBTQVAuCj4gKyAgKGFzc2VydC1jYWxs
cyBzYi1zeXM6c2FwLXJlZi0zMiAyIChzYXAxIHNhcDIgb2Zmc2V0KQo+ICsgICAgKGRlY2xhcmUg
KHR5cGUgc2Itc3lzOnN5c3RlbS1hcmVhLXBvaW50ZXIgc2FwMSBzYXAyKQo+ICsgICAgICAgICAg
ICAgKHR5cGUgc2Itdm06d29yZCBvZmZzZXQpKQo+ICsgICAgKGxldCAoKGEgKHNiLXN5czpzYXAt
cmVmLTMyIHNhcDEgb2Zmc2V0KSkpCj4gKyAgICAgIChzZXRxIHNhcDEgc2FwMikKPiArICAgICAg
KGxldCAoKGIgKHNiLXN5czpzYXAtcmVmLTMyIHNhcDEgb2Zmc2V0KSkpCj4gKyAgICAgICAgKGxp
c3QgYSBiKSkpKSkKPiArCj4gKzs7OyBTRVRRIG9mIGFuICp1bnJlbGF0ZWQqIHZhcmlhYmxlIHNo
b3VsZCBOT1QgcHJldmVudCBDU0UuCj4gKzs7OyBPbmx5IG11dGF0aW9ucyBvZiB2YXJpYWJsZXMg
dGhhdCBwYXJ0aWNpcGF0ZSBpbiB0aGUgbG9hZCBtYXR0ZXIuCj4gKyh3aXRoLXRlc3QgKDpuYW1l
ICg6Y3NlIDpzZXRxLW9mLXVucmVsYXRlZC12YXItYWxsb3dzLWNzZSkpCj4gKyAgOzsgWiBpcyBu
b3QgYW4gYXJndW1lbnQgdG8gQ0FSLCBzbyBzZXR0aW5nIFogZG9lcyBub3QgaW5oaWJpdCBDU0Uu
Cj4gKyAgKGFzc2VydC1jYWxscyBjYXIgMSAoY29ucyB6KQo+ICsgICAgKGRlY2xhcmUgKHR5cGUg
Y29ucyBjb25zKSkKPiArICAgIChsZXQgKChhIChjYXIgY29ucykpKQo+ICsgICAgICAoc2V0cSB6
IGEpCj4gKyAgICAgIChsZXQgKChiIChjYXIgY29ucykpKQo+ICsgICAgICAgIChsaXN0IHogYikp
KSkpCj4gKwo+ICs7OzsgU0ItVEhSRUFEOkJBUlJJRVIgb2YgYW55IGtpbmQgcHJldmVudHMgZWxp
c2lvbiBvZiB0aGUgc2Vjb25kIGxvYWQKPiArOzs7IHNpbmNlIHRoZSBtZW1vcnkgYmFycmllcnMg
aXMgbm90IGZsdXNoYWJsZS4gVGhpcyBpcyB0aGUgY29uc2VydmF0aXZlIHN0YW5jZS4KPiArOzs7
IFRoZSBhY3R1YWwgKGxvb3NlcikgcmVxdWlyZW1lbnRzIGFyZSBtb3JlIHN1YnRsZSB0aGFuIEkg
Y2FyZSB0byBkZWFsIHdpdGguCj4gKyhkZWZtYWNybyBiYXJyaWVyLXRlc3QgKGtpbmQpCj4gKyAg
YCh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDpiYXJyaWVyLXByZXZlbnRzLWNhciAsa2luZCkpCj4g
KyAgICAgKGFzc2VydC1jYWxscyBjYXIgMiAoY29ucykKPiArICAgICAgKGRlY2xhcmUgKHR5cGUg
Y29ucyBjb25zKSkKPiArICAgICAgKGxldCAoKGEgKGNhciBjb25zKSkpCj4gKyAgICAgICAgKHNi
LXRocmVhZDpiYXJyaWVyICgsa2luZCkpCj4gKyAgICAgICAgKGxldCAoKGIgKGNhciBjb25zKSkp
Cj4gKyAgICAgICAgICAobGlzdCBhIGIpKSkpKSkKPiArKGJhcnJpZXItdGVzdCA6cmVhZCkKPiAr
KGJhcnJpZXItdGVzdCA6d3JpdGUpCj4gKyhiYXJyaWVyLXRlc3QgOm1lbW9yeSkKPiArKGJhcnJp
ZXItdGVzdCA6Y29tcGlsZXIpCj4gKyhiYXJyaWVyLXRlc3QgOmRhdGEtZGVwZW5kZW5jeSkKPiAr
Cj4gKzs7OyBBbnkgbm9uLWZsdXNoYWJsZSBjYWxsIGJldHdlZW4gdHdvIGlkZW50aWNhbCBsb2Fk
cyBwcmV2ZW50cyBDU0UKPiArOzs7IGJlY2F1c2UgdGhlIGNhbGwgbWF5IGhhdmUgc2lkZSBlZmZl
Y3RzIHRoYXQgbW9kaWZ5IHRoZSBsb2FkZWQgbWVtb3J5Lgo+ICsKPiArKHdpdGgtdGVzdCAoOm5h
bWUgKDpjc2UgOm5vbi1mbHVzaGFibGUtY2FsbC1wcmV2ZW50cy1jc2UpKQo+ICsgIDs7IFBSSU5D
IGlzIGEgbm9uLWZsdXNoYWJsZQo+ICsgIChhc3NlcnQtY2FsbHMgY2FyIDIgKGNvbnMpCj4gKyAg
ICAoZGVjbGFyZSAodHlwZSBjb25zIGNvbnMpKQo+ICsgICAgKGxldCAoKGEgKGNhciBjb25zKSkp
Cj4gKyAgICAgIChwcmluYyA0MikKPiArICAgICAgKGxldCAoKGIgKGNhciBjb25zKSkpCj4gKyAg
ICAgICAgKGxpc3QgYSBiKSkpKSkKPiArCj4gKzs7OyBEaWZmZXJlbnQgZnVuY3Rpb25zIG9uIHRo
ZSBzYW1lIG9iamVjdCBhcmUgTk9UIGNvbnNpZGVyZWQgY29tbW9uIHN1YmV4cHJlc3Npb25zLgo+
ICs7OzsgKENBUiB4KSBhbmQgKENEUiB4KSBhcmUgZGlmZmVyZW50IGxvYWRzIGV2ZW4gaWYgeCBp
cyB0aGUgc2FtZS4KPiArKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOmRpZmZlcmVudC1hY2Nlc3Nv
cnMtbm90LWNzZSkpCj4gKyAgOzsgQm90aCBDQVIgYW5kIENEUiBzaG91bGQgYXBwZWFyLCBlYWNo
IGV4YWN0bHkgb25jZS4KPiArICAoYXNzZXJ0LWNhbGxzIGNhciAxIChjb25zKQo+ICsgICAgKGRl
Y2xhcmUgKHR5cGUgY29ucyBjb25zKSkKPiArICAgIChpZiAoY2FyIGNvbnMpCj4gKyAgICAgICAg
KHByaW5jIChjZHIgY29ucykpCj4gKyAgICAgICAgbmlsKSkKPiArICAoYXNzZXJ0LWNhbGxzIGNk
ciAxIChjb25zKQo+ICsgICAgKGRlY2xhcmUgKHR5cGUgY29ucyBjb25zKSkKPiArICAgIChpZiAo
Y2FyIGNvbnMpCj4gKyAgICAgICAgKHByaW5jIChjZHIgY29ucykpCj4gKyAgICAgICAgbmlsKSkp
Cj4gZGlmZiAtLWdpdCBhL3hwZXJmZWN0aGFzaDMwLmxpc3AtZXhwciBiL3hwZXJmZWN0aGFzaDMw
Lmxpc3AtZXhwcgo+IGluZGV4IDZhNTAzYWNmMC4uMWI3MjI3Yzc4IDEwMDY0NAo+IC0tLSBhL3hw
ZXJmZWN0aGFzaDMwLmxpc3AtZXhwcgo+ICsrKyBiL3hwZXJmZWN0aGFzaDMwLmxpc3AtZXhwcgo+
IEBAIC0xNTA2LDYgKzE1MDYsOSBAQAo+ICAoIygxMEJFNzI3NyAxMjIxNEFFOCAxMkUyQ0JEQSAx
OTczOTUzOSAxRjM1NTZDNyAxRjY0NDM4NykKPiAgICIoSU5URUdFUiBCSUdOVU0gU0ItVk06OlVO
U0lHTkVELUJZVEUtMzEgU0ItVk06OlNJR05FRC1CWVRFLTMyIEZJWE5VTSBTQi1WTTo6UE9TSVRJ
VkUtRklYTlVNKSIKPiAgICIoKCYgKF4gdmFsICg+PiB2YWwgMjIpKSA3KSkiKQo+ICsoIygxMEQy
RUE0RSAxMjI0QzU1NyAxNUE1OEQ4NSAxNUI1QTJCNSAxNzUyNEE3OCAxNzY5RTQxOSAxODkwNkQw
OCkKPiArICIoU0ItQzo6Q1NFVCBTQi1DOjpSRUYgREVMQVkgU0ItQzo6QVJSQVktSU5ERVgtQ0FT
VCBDQVNUIFNCLUM6OkNPTUJJTkFUSU9OIFNCLUM6OkNJRikiCj4gKyAiKCgmICgrICg+PiB2YWwg
MSkgKD4+IHZhbCA5KSkgNykpIikKPiAgKCMoMTBEMkVBNEUgMTIyNEM1NTcgMTVBNThEODUgMTVC
NUEyQjUgMTc1MjRBNzggMTc2OUU0MTkgMTg5MDZEMDggMTk1Nzc1MzkgMUMwNjVDQjggMUQ2NkM5
MzIpCj4gICAiIygoKDpUWVBFIFNCLUM6OlJFRikpICgoOlRZUEUgU0ItQzo6Q09NQklOQVRJT04p
KSAoKDpUWVBFIFNCLUM6OkNJRikpICgoOlRZUEUgU0ItQzo6Q1JFVFVSTikpICgoOlRZUEUgU0It
Qzo6TVYtQ09NQklOQVRJT04pKSAoKDpUWVBFIEVYSVQpKSAoKDpUWVBFIFNCLUM6OkNTRVQpKSAo
KDpUWVBFIERFTEFZKSAoOlRZUEUgU0ItQzo6QVJSQVktSU5ERVgtQ0FTVCkgKDpUWVBFIENBU1Qp
KSkiCj4gICAiKChsZXQgKCh0YWIgI2EoKDgpICh1bnNpZ25lZC1ieXRlIDgpIDAgNSAyIDggMTMg
MyAwIDApKSkKPiBkaWZmIC0tZ2l0IGEveHBlcmZlY3RoYXNoNjEubGlzcC1leHByIGIveHBlcmZl
Y3RoYXNoNjEubGlzcC1leHByCj4gaW5kZXggNmViNzI0ODZiLi5iMWJjMDE0ZmIgMTAwNjQ0Cj4g
LS0tIGEveHBlcmZlY3RoYXNoNjEubGlzcC1leHByCj4gKysrIGIveHBlcmZlY3RoYXNoNjEubGlz
cC1leHByCj4gQEAgLTQ2Myw2ICs0NjMsOSBAQAo+ICAoIyg5QTMyMEQ0IDM5Q0FBMzM5IDQzQkJF
RTE4IDRENjEzNjhGIDUzMjIyREZCIEJGQTg2MTg5IEVEQTEwMzdGIEZFRTk5QTk1KQo+ICAgIiMo
KCg6VFlQRSBTQi1DOjpSRUYpKSAoKDpUWVBFIFNCLUM6OkNPTUJJTkFUSU9OKSkgKCg6VFlQRSBT
Qi1DOjpNVi1DT01CSU5BVElPTikpICgoOlRZUEUgRVhJVCkpICgoOlRZUEUgU0ItQzo6Q1NFVCkp
ICgoOlRZUEUgREVMQVkpICg6VFlQRSBTQi1DOjpBUlJBWS1JTkRFWC1DQVNUKSAoOlRZUEUgQ0FT
VCkpKSIKPiAgICIoKCYgKC0gKD4+IHZhbCAzKSAoPj4gdmFsIDI5KSkgNykpIikKPiArKCMoOUEz
MjBENCAzOUNBQTMzOSA0M0JCRUUxOCA1MzIyMkRGQiA5MzgwODM3QyBCRkE4NjE4OSBGRUU5OUE5
NSkKPiArICIjKCgoOlRZUEUgU0ItQzo6Q0lGKSAoOlRZUEUgU0ItQzo6Q09NQklOQVRJT04pICg6
VFlQRSBERUxBWSkgKDpUWVBFIFNCLUM6OkFSUkFZLUlOREVYLUNBU1QpICg6VFlQRSBDQVNUKSAo
OlRZUEUgU0ItQzo6UkVGKSAoOlRZUEUgU0ItQzo6Q1NFVCkpKSIKPiArICIoKCYgKCsgdmFsICg+
PiB2YWwgMzEpKSA3KSkiKQo+ICAoIyg5QTMyMEQ0IDQzQkJFRTE4IDUzMjIyREZCIEE4QTRDN0Qy
IEJGQTg2MTg5IEVBQTNEQTVDIEZFRTk5QTk1KQo+ICAgIiMoKCg6VFlQRSBTQi1DOjpSRUYpKSAo
KDpUWVBFIERFTEFZKSAoOlRZUEUgU0ItQzo6QVJSQVktSU5ERVgtQ0FTVCkgKDpUWVBFIENBU1Qp
KSAoKDpUWVBFIFNCLUM6OkNPTUJJTkFUSU9OKSkgKCg6VFlQRSBTQi1DOjpFTlRSWSkpICgoOlRZ
UEUgU0ItQzo6RU5DTE9TRSkpKSIKPiAgICIoKCYgKF4gKD4+IHZhbCA3KSAoPj4gdmFsIDIzKSkg
NykpIikKPiBkaWZmIC0tZ2l0IGEveHBlcmZlY3RoYXNoNjMubGlzcC1leHByIGIveHBlcmZlY3Ro
YXNoNjMubGlzcC1leHByCj4gaW5kZXggY2M4NjFiYjMzLi4xM2JiNWQ4NWQgMTAwNjQ0Cj4gLS0t
IGEveHBlcmZlY3RoYXNoNjMubGlzcC1leHByCj4gKysrIGIveHBlcmZlY3RoYXNoNjMubGlzcC1l
eHByCj4gQEAgLTg3MCw2ICs4NzAsOSBAQAo+ICAoIygxMjEwNjhERCA0RDYxMzY4RiA1ODExMEU3
RiA2N0VFMkQxQSA2RDlBODgzRCA3NDU4OUQ4MiA4OTdCNDY1NiBBNjhBMzk2NSkKPiAgICIjKCgo
OlRZUEUgU0ItQzo6UkVGKSkgKCg6VFlQRSBTQi1DOjpDT01CSU5BVElPTikpICgoOlRZUEUgU0It
Qzo6TVYtQ09NQklOQVRJT04pKSAoKDpUWVBFIEVYSVQpKSAoKDpUWVBFIFNCLUM6OkNTRVQpKSAo
KDpUWVBFIERFTEFZKSAoOlRZUEUgU0ItQzo6QVJSQVktSU5ERVgtQ0FTVCkgKDpUWVBFIENBU1Qp
KSkiCj4gICAiKCgmICgtICg+PiB2YWwgNCkgKD4+IHZhbCAxNikpIDcpKSIpCj4gKygjKDEyMTA2
OEREIDU4MTEwRTdGIDY3RUUyRDFBIDZEOUE4ODNEIDc0MkQ0QzU0IDg5N0I0NjU2IEE2OEEzOTY1
KQo+ICsgIiMoKCg6VFlQRSBTQi1DOjpDSUYpICg6VFlQRSBTQi1DOjpDT01CSU5BVElPTikgKDpU
WVBFIERFTEFZKSAoOlRZUEUgU0ItQzo6QVJSQVktSU5ERVgtQ0FTVCkgKDpUWVBFIENBU1QpICg6
VFlQRSBTQi1DOjpSRUYpICg6VFlQRSBTQi1DOjpDU0VUKSkpIgo+ICsgIigoJiAoLSAoPj4gdmFs
IDQpICg+PiB2YWwgMTYpKSA3KSkiKQo+ICAoIygxMjZBREIwMiAzMUIwOTVERCA0MkQ4M0ZGQiA0
MzQxRjdEOCA2M0M5NzFENyA3QTgwRjIwMSA3QjQwODg4MCA4Rjc5MTJENiBFQkQwMTg3MikKPiAg
ICIoOkFMTE9XLU9USEVSLUtFWVMgOlRZUEUgOlJFU1VMVC1TUEVDUyA6QVJHLVNQRUNTIDpDQUxM
RVIgOkRFUFMgOkZJUkVEIDpMRVhFTlYgOlNPVVJDRS1QQVRIKSIKPiAgICIoKGxldCAoKHRhYiAj
YSgoOCkgKHVuc2lnbmVkLWJ5dGUgOCkgMCA1IDAgMyAwIDUgMTIgNikpKQo+Cj4gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KPgo+Cj4gaG9va3MvcG9zdC1yZWNlaXZlCj4gLS0KPiBTQkNMCj4KPgo+IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gU2JjbC1jb21taXRzIG1h
aWxpbmcgbGlzdAo+IFNiY2wtY29tbWl0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKPiBodHRwczov
L2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9zYmNsLWNvbW1pdHMKCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpTYmNsLWNvbW1pdHMg
bWFpbGluZyBsaXN0ClNiY2wtY29tbWl0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9s
aXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vc2JjbC1jb21taXRzCg==