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

Stas Boukarev <[email protected]> Tue, 4 Aug 2026 06:47:05 +0300
Newsgroups gmane.lisp.steel-bank.cvs,gmane.lisp.steel-bank.devel
Message-ID <CAF63=10FRwN6k_a6fO8xm=ycj7A3oFy+djXhNtMZ0NbLzk0KMA@mail.gmail.com>
KGRlZnVuIGogKHgpCiAgKGxldCAoKHkgKDErIHgpKSkKICAgICh2YWx1ZXMgeSB5CiAgICAgICAg
ICAgIChjYXIgKikKICAgICAgICAgICAgKHNldGYgKiAnKGIpKQogICAgICAgICAgICAoY2FyICop
KSkpCihsZXQgKCgqICcoYSkpKSAoaiAxKSkKPT4KMgoyCkEKKEIpCkEKCk9uIFR1ZSwgQXVnIDQs
IDIwMjYgYXQgNDoyMuKAr0FNIFN0YXMgQm91a2FyZXYgPHN0YXNzYXRzQGdtYWlsLmNvbT4gd3Jv
dGU6Cj4KPiAoZGVmc3RydWN0IHMKPiAgICh4IChtYWtlLWFycmF5IDMpKSkKPgo+IChsZXQgKCop
Cj4gICAobGFtYmRhICgpCj4gICAgIChsZXQqICgocyAjLihtYWtlLXMpKQo+ICAgICAgICAgICAg
KGEgKHMteCBzKSkKPiAgICAgICAgICAgIChiIChzLXggcykpKQo+ICAgICAgICh2YWx1ZXMgKGFy
ZWYgYSAwKQo+ICAgICAgICAgICAgICAgKGFyZWYgYiAwKSkpKSkKPgo+Cj4gZGVidWdnZXIgaW52
b2tlZCBvbiBhIFNCLUlOVDpCVUcgQEI4MDA3Qjg1QUQgaW4gdGhyZWFkCj4gIzxUSFJFQUQgdGlk
PTE5ODY0MDIgIm1haW4gdGhyZWFkIiBSVU5OSU5HIHsxMjAxNEYwMDAzfT46Cj4gICAgIGZhaWxl
ZCBBVkVSOiAoRVEgRU5WIChMQU1CREEtRU5WSVJPTk1FTlQgKExBTUJEQS1WQVItSE9NRSBUSElO
RykpKQo+Cj4gT24gVHVlLCBBdWcgNCwgMjAyNiBhdCAzOjU54oCvQU0gc251Z2xhcyB2aWEgU2Jj
bC1jb21taXRzCj4gPHNiY2wtY29tbWl0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+IHdyb3RlOgo+
ID4KPiA+IFRoZSBicmFuY2ggIm1hc3RlciIgaGFzIGJlZW4gdXBkYXRlZCBpbiBTQkNMOgo+ID4g
ICAgICAgIHZpYSAgMTAwYzljMmJkY2RjYjg0ZmYwNGM4ZmVlZjk4M2E1YjQ0Njk1Yzk3YSAoY29t
bWl0KQo+ID4gICAgICAgZnJvbSAgYjU0MWYyZjI1YjE0YjYyZmNhYjdlMTRhYTUxMjRkYjVkZDFk
NmIyMCAoY29tbWl0KQo+ID4KPiA+IC0gTG9nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBjb21taXQgMTAwYzljMmJk
Y2RjYjg0ZmYwNGM4ZmVlZjk4M2E1YjQ0Njk1Yzk3YQo+ID4gQXV0aG9yOiBEb3VnbGFzIEthdHpt
YW4gPGRvdWdrQGdvb2dsZS5jb20+Cj4gPiBEYXRlOiAgIFR1ZSBBdWcgNCAwMDo1ODoyMSAyMDI2
ICswMDAwCj4gPgo+ID4gICAgIFBlcmZvcm0gbG9jYWwgY29tbW9uIHN1YmV4cHJlc3Npb24gZWxp
bWluYXRpb24gZm9yIHNvbWUgbWVtb3J5IGxvYWRzCj4gPgo+ID4gICAgIFRoZSB0ZWNobmlxdWUg
aXMgdG8gZmluZCAiZXF1aXZhbGVudCIgbG9hZHMgaW4gYmV0d2VlbiB3aGljaCB0aGVyZSBpcyBu
bwo+ID4gICAgIGNvbXB1dGF0aW9uIHRoYXQgYWZmZWN0cyB0aGUgcmVzdWx0IG9mIHRoZSBsb2Fk
LiBBbHNvIGl0IG5lZWRzIGEgc3Vycm91bmRpbmcKPiA+ICAgICBMRVQsIHdoaWNoIGlzIGF1Z21l
bnRlZCB3aXRoIGEgbmV3IHRlbXAgdmFyaWFibGUgYXMgaWYgdGhlIHVzZXIgZGlkIHRoYXQuCj4g
PiAgICAgVGhpcyBpcyBzbGlnaHRseSBkZWZpY2llbnQgZm9yIHZhcmlvdXMgcmVhc29uczoKPiA+
ICAgICAxLiBpdCB3b24ndCBkbyBhbnl0aGluZyB3aXRob3V0IHRoZSBMRVQKPiA+ICAgICAyLiB0
aGUgbW9yZSBraW5kcyBvZiBjb21tb24gc3ViZXhwcmVzc2lvbnMgd2UgYWxsb3cgKHN1Y2ggYXMg
bWF0aCksCj4gPiAgICAgICAgdGhlIHNsb3dlciBJUjEtT1BUSU1JWkUtQ09NQklOQVRJT04gaXMg
Z29pbmcgdG8gcnVuCj4gPiAgICAgMy4gdGhlcmUgYXJlIHBvc3NpYmx5IG90aGVyIG5vZGUgdHlw
ZXMgdGhhdCBzaG91bGQgYmUgYWxsb3dlZCB0byBpbnRlcnZlbmUKPiA+Cj4gPiAgICAgT24gdGhl
IHBsdXMgc2lkZSwgaXQncyBub3QgYWxsIHRoYXQgaGFyZCB0byBleHRlbmQgdGhlIGxvZ2ljIHRv
IGFjY2VwdAo+ID4gICAgIG90aGVyIGZ1bmN0aW9ucyBhcyBwYXJ0aWNpcGFudHMgaW4gY29tbW9u
IHN1YmV4cHJlc3Npb25zLgo+ID4KPiA+ICAgICBBbGwgdGVzdCBjYXNlcyBwbHVzIGEgbGl0dGxl
IGJpdCBvZiBhc3Npc3RhbmNlIGZyb20gR2VtaW5pCj4gPiAtLS0KPiA+ICBzcmMvY29tcGlsZXIv
aXIxb3B0Lmxpc3AgfCAxNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g
PiAgdGVzdHMvbGNzZS5wdXJlLmxpc3AgICAgIHwgMjM0ICsrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgeHBlcmZlY3RoYXNoMzAubGlzcC1leHByIHwg
ICAzICsKPiA+ICB4cGVyZmVjdGhhc2g2MS5saXNwLWV4cHIgfCAgIDMgKwo+ID4gIHhwZXJmZWN0
aGFzaDYzLmxpc3AtZXhwciB8ICAgMyArCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCA0MjIgaW5zZXJ0
aW9ucygrKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9zcmMvY29tcGlsZXIvaXIxb3B0Lmxpc3AgYi9z
cmMvY29tcGlsZXIvaXIxb3B0Lmxpc3AKPiA+IGluZGV4IDg1NTk4MjRmMS4uZGFjMzkzZTMxIDEw
MDY0NAo+ID4gLS0tIGEvc3JjL2NvbXBpbGVyL2lyMW9wdC5saXNwCj4gPiArKysgYi9zcmMvY29t
cGlsZXIvaXIxb3B0Lmxpc3AKPiA+IEBAIC0xMjIwLDYgKzEyMjAsMTgyIEBACj4gPiAgICAgICAg
ICAgICAgKHNob3ctdHlwZS1kZXJpdmF0aW9uIGNvbWJpbmF0aW9uIHJlcykpCj4gPiAgICAgICAg
ICAgIChjb2VyY2UtdG8tdmFsdWVzIHJlcykpKSkpKQo+ID4KPiA+ICsoZGVmdW4gY29sbGVjdC1s
dmFyLXZhcnMgKGx2YXIpCj4gPiArICAoZGVjbGFyZSAodHlwZSBsdmFyIGx2YXIpKQo+ID4gKyAg
KGxldCAoKHVzZSAocHJpbmNpcGFsLWx2YXItdXNlIGx2YXIpKSkKPiA+ICsgICAgKGNvbmQgKChy
ZWYtcCB1c2UpCj4gPiArICAgICAgICAgICAobGV0ICgobGVhZiAocmVmLWxlYWYgdXNlKSkpCj4g
PiArICAgICAgICAgICAgICh3aGVuIChsYW1iZGEtdmFyLXAgbGVhZikKPiA+ICsgICAgICAgICAg
ICAgICAobGlzdCBsZWFmKSkpKQo+ID4gKyAgICAgICAgICAoKGNvbWJpbmF0aW9uLXAgdXNlKQo+
ID4gKyAgICAgICAgICAgKG1hcGNhbiAjJ2NvbGxlY3QtbHZhci12YXJzIChiYXNpYy1jb21iaW5h
dGlvbi1hcmdzIHVzZSkpKQo+ID4gKyAgICAgICAgICAodCBuaWwpKSkpCj4gPiArCj4gPiArKGRl
ZnVuIGZpbmQtYWN0aXZlLWxldC1sYW1iZGEgKG5vZGUpCj4gPiArICAoZGVjbGFyZSAodHlwZSBu
b2RlIG5vZGUpKQo+ID4gKyAgKGxvb3AgZm9yIGVudiA9IChub2RlLWxleGVudiBub2RlKSB0aGVu
IChsZXhlbnYtcGFyZW50IGVudikKPiA+ICsgICAgICAgIHdoaWxlIGVudgo+ID4gKyAgICAgICAg
ZG8gKGxldCAoKGwgKGxleGVudi1sYW1iZGEgZW52KSkpCj4gPiArICAgICAgICAgICAgICh3aGVu
IChhbmQgbAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jdGlvbmFsLWtpbmQtZXEg
bCBsZXQpCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAoZnVuY3Rpb25hbC1raW5k
LWVxIGwgem9tYmllKSkpCj4gPiArICAgICAgICAgICAgICAgKHJldHVybiBsKSkpKSkKPiA+ICsK
PiA+ICsoZGVmdW4gYWRkLXZhcmlhYmxlLXRvLWxldC1sYW1iZGEgKGxldC1sYW1iZGEgdikKPiA+
ICsgIChkZWNsYXJlICh0eXBlIGNsYW1iZGEgbGV0LWxhbWJkYSkKPiA+ICsgICAgICAgICAgICh0
eXBlIGxhbWJkYS12YXIgdikpCj4gPiArICAoc2V0ZiAobGFtYmRhLXZhci1ob21lIHYpIGxldC1s
YW1iZGEpCj4gPiArICAoc2V0ZiAobGFtYmRhLXZhcnMgbGV0LWxhbWJkYSkgKGFwcGVuZCAobGFt
YmRhLXZhcnMgbGV0LWxhbWJkYSkgKGxpc3QgdikpKQo+ID4gKyAgOzsgVXBkYXRlIHRoZSBjYWxs
IHRvIHRoZSBMRVQgbGFtYmRhCj4gPiArICAobGV0KiAoKHJlZiAoY2FyIChsZWFmLXJlZnMgbGV0
LWxhbWJkYSkpKQo+ID4gKyAgICAgICAgIChjYWxsIChhbmQgcmVmCj4gPiArICAgICAgICAgICAg
ICAgICAgICAobm9kZS1sdmFyIHJlZikKPiA+ICsgICAgICAgICAgICAgICAgICAgIChsdmFyLWRl
c3QgKG5vZGUtbHZhciByZWYpKSkpKQo+ID4gKyAgICAod2hlbiAoYW5kIGNhbGwgKGNvbWJpbmF0
aW9uLXAgY2FsbCkpCj4gPiArICAgICAgKGxldCAoKGR1bW15LWx2YXIgKG1ha2UtbHZhcikpKQo+
ID4gKyAgICAgICAgKHNldGYgKGx2YXItZGVzdCBkdW1teS1sdmFyKSBjYWxsKQo+ID4gKyAgICAg
ICAgKHNldGYgKGJhc2ljLWNvbWJpbmF0aW9uLWFyZ3MgY2FsbCkKPiA+ICsgICAgICAgICAgICAg
IChhcHBlbmQgKGJhc2ljLWNvbWJpbmF0aW9uLWFyZ3MgY2FsbCkgKGxpc3QgZHVtbXktbHZhcikp
KQo+ID4gKyAgICAgICAgKHNldGYgKGx2YXItZGVzdCBkdW1teS1sdmFyKSBjYWxsKSkpKSkKPiA+
ICsKPiA+ICs7OyBSZXVzZSBvZiBTWU1CT0wtVkFMVUUgb2YgYSBzcGVjaWFsIHZhciB3b3VsZCBi
ZSBuaWNlLAo+ID4gKzs7IGJ1dCBTWU1CT0wtVkFMVUUgaXQgaXMgbm90IHJlcHJlc2VudGVkIGFz
IGEgY2FsbCBpbiBJUjEKPiA+ICsoZGVmaW5lLWxvYWQtdGltZS1nbG9iYWwgKmVsaWRhYmxlLW1l
bW9yeS1sb2FkcyoKPiA+ICsgICAgJyhjYXIgY2RyICVpbnN0YW5jZS1yZWYgJXJhdy1pbnN0YW5j
ZS1yZWYvd29yZCAlcmF3LWluc3RhbmNlLXJlZi9zaWduZWQtd29yZAo+ID4gKyAgICAgIHNhcC1y
ZWYtMTYgc2lnbmVkLXNhcC1yZWYtMTYgc2Itc3lzOjolc2FwLXJlZi0xNi1pbmRleGVkIHNiLXN5
czo6JXNpZ25lZC1zYXAtcmVmLTE2LWluZGV4ZWQKPiA+ICsgICAgICBzYXAtcmVmLTMyIHNpZ25l
ZC1zYXAtcmVmLTMyIHNiLXN5czo6JXNhcC1yZWYtMzItaW5kZXhlZCBzYi1zeXM6OiVzaWduZWQt
c2FwLXJlZi0zMi1pbmRleGVkCj4gPiArICAgICAgc2FwLXJlZi02NCBzaWduZWQtc2FwLXJlZi02
NCBzYi1zeXM6OiVzYXAtcmVmLTY0LWluZGV4ZWQgc2Itc3lzOjolc2lnbmVkLXNhcC1yZWYtNjQt
aW5kZXhlZAo+ID4gKyAgICAgIHNiLWFsaWVuOmRlcmVmCj4gPiArICAgICAgc2ItYWxpZW46YWxp
ZW4tc2FwKSkKPiA+ICsKPiA+ICs7OzsgTG9vayBmb3IgYW55IG5vZGUgZXF1aXZhbGVudCB0byBN
QVRDSCBjb25zZGVyaW5nIG5vZGVzIGluIHJldmVyc2Ugc3RhcnRpbmcgYXQgRlJPTS4KPiA+ICs7
OzsgTWVtb3J5IGxvYWRzIGZyb20gdGhlIHNhbWUgb2JqZWN0K3Nsb3Qgb3IgU0FQK29mZnNldCBj
b3VsZCBiZSBlcXVpdmFsZW50Lgo+ID4gKzs7OyBOb3RoaW5nIGVsc2UgY2FuIGJlIGVxdWl2YWxl
bnQgKHVudGlsIEkgZW5oYW5jZSB0aGlzKQo+ID4gKyhkZWZ1biBmaW5kLWVxdWl2YWxlbnQtbm9k
ZS1iYWNrd2FyZHMgKG1hdGNoIGZyb20pCj4gPiArICAobGFiZWxzICgobHZhci1lcXVpdmFsZW50
LXAgKGwxIGwyKQo+ID4gKyAgICAgICAgICAgICAoZGVjbGFyZSAodHlwZSBsdmFyIGwxIGwyKSkK
PiA+ICsgICAgICAgICAgICAgKGNvbmQgKChlcSBsMSBsMikgdCkKPiA+ICsgICAgICAgICAgICAg
ICAgICAgKChhbmQgKGNvbnN0YW50LWx2YXItcCBsMSkgKGNvbnN0YW50LWx2YXItcCBsMikpCj4g
PiArICAgICAgICAgICAgICAgICAgICAoZXFsIChsdmFyLXZhbHVlIGwxKSAobHZhci12YWx1ZSBs
MikpKQo+ID4gKyAgICAgICAgICAgICAgICAgICAodAo+ID4gKyAgICAgICAgICAgICAgICAgICAg
KGxldCAoKHUxIChwcmluY2lwYWwtbHZhci11c2UgbDEpKQo+ID4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHUyIChwcmluY2lwYWwtbHZhci11c2UgbDIpKSkKPiA+ICsgICAgICAgICAgICAg
ICAgICAgICAgKGNvbmQgKChhbmQgKHJlZi1wIHUxKSAocmVmLXAgdTIpKQo+ID4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGVxIChyZWYtbGVhZiB1MSkgKHJlZi1sZWFmIHUyKSkpCj4g
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYW5kIChjb21iaW5hdGlvbi1wIHUxKSAo
Y29tYmluYXRpb24tcCB1MikKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGVxIChiYXNpYy1jb21iaW5hdGlvbi1raW5kIHUxKSA6a25vd24pCj4gPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChlcSAoYmFzaWMtY29tYmluYXRpb24ta2luZCB1MikgOmtu
b3duKSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21iaW5hdGlvbi1lcXVp
dmFsZW50LXAgdTEgdTIpKQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodCBuaWwp
KSkpKSkKPiA+ICsgICAgICAgICAgIChjb21iaW5hdGlvbi1lcXVpdmFsZW50LXAgKGMxIGMyKQo+
ID4gKyAgICAgICAgICAgICAoZGVjbGFyZSAodHlwZSBjb21iaW5hdGlvbiBjMSBjMikpCj4gPiAr
ICAgICAgICAgICAgIChhbmQgKGVxIChiYXNpYy1jb21iaW5hdGlvbi1mdW4taW5mbyBjMSkgKGJh
c2ljLWNvbWJpbmF0aW9uLWZ1bi1pbmZvIGMyKSkKPiA+ICsgICAgICAgICAgICAgICAgICAobGV0
ICgoYXJnczEgKGJhc2ljLWNvbWJpbmF0aW9uLWFyZ3MgYzEpKQo+ID4gKyAgICAgICAgICAgICAg
ICAgICAgICAgIChhcmdzMiAoYmFzaWMtY29tYmluYXRpb24tYXJncyBjMikpKQo+ID4gKyAgICAg
ICAgICAgICAgICAgICAgKGFuZCAoPSAobGVuZ3RoIGFyZ3MxKSAobGVuZ3RoIGFyZ3MyKSkKPiA+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgKGV2ZXJ5ICMnbHZhci1lcXVpdmFsZW50LXAgYXJn
czEgYXJnczIpKSkpKSkKPiA+ICsgICAgKGRvICgobm9kZSBmcm9tIChjdHJhbi11c2UgKG5vZGUt
cHJldiBub2RlKSkpKSAoKG51bGwgbm9kZSkpCj4gPiArICAgICAgKHdoZW4gKGFuZCAoY29tYmlu
YXRpb24tcCBub2RlKQo+ID4gKyAgICAgICAgICAgICAgICAgKGVxIChjb21iaW5hdGlvbi1raW5k
IG5vZGUpIDprbm93bikKPiA+ICsgICAgICAgICAgICAgICAgIChub2RlLWx2YXIgbm9kZSkKPiA+
ICsgICAgICAgICAgICAgICAgIChjb21iaW5hdGlvbi1lcXVpdmFsZW50LXAgbm9kZSBtYXRjaCkp
Cj4gPiArICAgICAgICAocmV0dXJuIG5vZGUpKQo+ID4gKyAgICAgICh0eXBlY2FzZSBub2RlCj4g
PiArICAgICAgICAoKG9yIGNzZXQgcmVmIGNhc3QgY29tYmluYXRpb24gY2lmKSkKPiA+ICsgICAg
ICAgICh0Cj4gPiArICAgICAgICAgOzsgUmV0dXJuIDpGQUlMIHRvIGFib3J0IHF1aWNrbHkuIFRo
aXMgY291bGQgY2hvb3NlIHRvIGZhaWwgaWYgYSBub24tZmx1c2hhYmxlCj4gPiArICAgICAgICAg
OzsgY29tYmluYXRpb24gaXMgc2VlbiwgYnV0IGZvciBub3cgSSdtIGRlZmVycmluZyB0aGF0IHNv
dW5kbmVzcyBjaGVjay4KPiA+ICsgICAgICAgICAocmV0dXJuLWZyb20gZmluZC1lcXVpdmFsZW50
LW5vZGUtYmFja3dhcmRzIDpmYWlsKSkpKSkpCj4gPiArCj4gPiArOzs7IEF0dG1wdCB0byBmaW5k
IGEgQ09NQklOQVRJT04gZXF1aXZhbGVudCB0byBUSElTIHByZWNlZGluZyBpdCBpbiBub2RlIG9y
ZGVyLCB0aGUgdmFsdWUKPiA+ICs7Ozsgb2Ygd2hpY2ggY2FuIGJlIHN1YnN0aXR1dGVkIGZvciB0
aGUgY2FsbCB0byBUSElTLCBhY3R1YWxseSBtYWtpbmcgdGhlIHN1YnN0aXR1dGlvbi4KPiA+ICs7
OzsgTG9va2luZyBiYWNrd2FyZHMgYXQgbW9zdCBhIGZldyBibG9ja3MgdGVuZHMgdG8gd29yayB3
ZWxsIGVub3VnaCwgYW5kIGlucG9ydGFudGx5Cj4gPiArOzs7IGxpbWl0cyB0aGUgd29yay4gU2Nh
bm5pbmcgb25seSB0aGUgY3VycmVudCBibG9jayBpcyBpbmFkZXF1YXRlIGFzIHRoZSBleGFtcGxl
Cj4gPiArOzs7IGluIDpMT09QLU9WRVItREVSRUYgc2hvd3MuIFRoZSBpbW1lZGlhdGUgcHJlZGVj
ZXNzb3IgaXMgc3RpbGwgbm90IGVub3VnaCwgYmVjYXVzZSB0aGUKPiA+ICs7OzsgcHJlZGVjZXNz
b3IgY291bGQgaGF2ZSBiZWVuIHNwbGl0LCBsZWF2aW5nIGEgdGlueSBibG9jayB3aGVyZSB0aGUg
b25seSBub2RlIGlzCj4gPiArOzs7IGEgdHJpdmlhbCBvcGVyYXRpb24uCj4gPiArKGRlZnVuIHRy
eS1yZXVzZS1leHByLXZhbHVlICh0aGlzKQo+ID4gKyAgKGRlY2xhcmUgKHR5cGUgY29tYmluYXRp
b24gdGhpcykpCj4gPiArICAoYmluZGluZyoKPiA+ICsgICAgICAoKGhvbWUtbGFtYmRhIChmaW5k
LWFjdGl2ZS1sZXQtbGFtYmRhIHRoaXMpIDpleGl0LWlmLW51bGwpCj4gPiArICAgICAgIChsb29r
YmFjayAwKQo+ID4gKyAgICAgICAoYzEKPiA+ICsgICAgICAgIDs7IEluIHRoaXMgYmxvY2ssIGV4
cGxpY2l0bHkgZ28gYmFjayBhIG5vZGUgc28gdGhhdCBGSU5ELUJBQ0tXQVJEUyBkb2Vzbid0IGNv
bnNpZGVyIFRISVMKPiA+ICsgICAgICAgIDs7IGFzIGVxdWl2YWxlbnQgdG8gaXRzZWxmLiBGYWls
aW5nIHRoYXQsIHRyeSBwcmVkZWNlc3NvciBibG9ja3MsIGJ1dCBvbmx5IGFzIGxvbmcgYXMKPiA+
ICsgICAgICAgIDs7IHByZWQgaXMgdW5pcXVlIHNpbmNlIHdlIGhhdmUgbm8gaW5mb3JtYXRpb24g
YWJvdXQgbm9kZXMgdGhhdCBkb21pbmF0ZSBUSElTLgo+ID4gKyAgICAgICAgKG9yIChmaW5kLWVx
dWl2YWxlbnQtbm9kZS1iYWNrd2FyZHMgdGhpcyAoY3RyYW4tdXNlIChub2RlLXByZXYgdGhpcykp
KQo+ID4gKyAgICAgICAgICAgIChkbyAoKHByZWQgKGJsb2NrLXByZWQgKG5vZGUtYmxvY2sgdGhp
cykpKSkKPiA+ICsgICAgICAgICAgICAgICAgKChvciAoPiBsb29rYmFjayAzKSAobm90IChzaW5n
bGV0b24tcCBwcmVkKSkpKQo+ID4gKyAgICAgICAgICAgICAgKGluY2YgbG9va2JhY2spCj4gPiAr
ICAgICAgICAgICAgICAobGV0ICgobm9kZSAoYmxvY2stbGFzdCAoY2FyIHByZWQpKSkpCj4gPiAr
ICAgICAgICAgICAgICAgICh3aGVuIChudWxsIG5vZGUpIChyZXR1cm4pKQo+ID4gKyAgICAgICAg
ICAgICAgICAoYXdoZW4gKGZpbmQtZXF1aXZhbGVudC1ub2RlLWJhY2t3YXJkcyB0aGlzIG5vZGUp
IChyZXR1cm4gaXQpKQo+ID4gKyAgICAgICAgICAgICAgICAoc2V0cSBwcmVkIChibG9jay1wcmVk
IChub2RlLWJsb2NrIG5vZGUpKSkpKSkKPiA+ICsgICAgICAgIDpleGl0LWlmLW51bGwpCj4gPiAr
ICAgICAgICh2YXJzIDsgY2FuJ3QgdXNlIDpleGl0LWlmLW51bGwgaGVyZSBiZWNhdXNlIFZBUlMg
Y2FuIGJlIGFuZCB1c3VhbGx5IGlzIE5JTAo+ID4gKyAgICAgICAgKHVubGVzcyAoZXEgYzEgOmZh
aWwpCj4gPiArICAgICAgICAgIChtYXBjYW4gIydjb2xsZWN0LWx2YXItdmFycyAoYmFzaWMtY29t
YmluYXRpb24tYXJncyBjMSkpKSkpCj4gPiArICAgICh3aGVuIChlcSBjMSA6ZmFpbCkKPiA+ICsg
ICAgICAocmV0dXJuLWZyb20gdHJ5LXJldXNlLWV4cHItdmFsdWUgbmlsKSkKPiA+ICsgICAgKGxh
YmVscyAoKGFsbC1mbHVzaGFibGUgKGN0cmFuIGVuZC1ub2RlKQo+ID4gKyAgICAgICAgICAgICAg
IChkZWNsYXJlIChjdHJhbiBjdHJhbikgKHR5cGUgKG9yIG5vZGUgbnVsbCkgZW5kLW5vZGUpKQo+
ID4gKyAgICAgICAgICAgICAgIChsb29wIChsZXQgKChub2RlIChjdHJhbi1uZXh0IGN0cmFuKSkp
Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAoY29uZCAoKGVxIG5vZGUgZW5kLW5vZGUpIChy
ZXR1cm4gdCkpCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG5vdCAob2stdG8t
Zmx1c2ggbm9kZSkpIChyZXR1cm4gbmlsKSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgoYW5kIChub3QgZW5kLW5vZGUpIChub3QgKG5vZGUtbmV4dCBub2RlKSkpIChyZXR1cm4g
dCkpKQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgY3RyYW4gKG5vZGUtbmV4dCBu
b2RlKSkpKSkKPiA+ICsgICAgICAgICAgICAgKG9rLXRvLWZsdXNoIChub2RlKQo+ID4gKyAgICAg
ICAgICAgICAgIChjb25kICgoc2V0LXAgbm9kZSkgKG5vdCAobWVtYmVyIChzZXQtdmFyIG5vZGUp
IHZhcnMpKSkKPiA+ICsgICAgICAgICAgICAgICAgICAgICAoKGNvbWJpbmF0aW9uLXAgbm9kZSkg
KGZsdXNoYWJsZS1jb21iaW5hdGlvbi1wIG5vZGUpKQo+ID4gKyAgICAgICAgICAgICAgICAgICAg
ICgoYmFzaWMtY29tYmluYXRpb24tcCBub2RlKSBuaWwpCj4gPiArICAgICAgICAgICAgICAgICAg
ICAgKHQgdCkpKSkgOyBhbnl0aGluZyBlbHNlIHRoZSBiYWNrd2FyZHMgc2VhcmNoIGFsbG93ZWQg
aXMgb2sKPiA+ICsgICAgICA7OyBXaGVuIGxvb2tiYWNrPjAgaXQncyBwb3NzaWJsZSBmb3IgdGhl
IGVxdWl2YWxlbnQgbm9kZSB0byBiZSB0aGUgZmluYWwgbm9kZQo+ID4gKyAgICAgIDs7IG9mIGl0
cyBibG9jaywgaW4gd2hpY2ggY2FzZSBpdHMgTk9ERS1ORVhUIGlzIG51bGwuCj4gPiArICAgICAg
KGxldCogKCh0aGlzLWJsb2NrIChub2RlLWJsb2NrIHRoaXMpKQo+ID4gKyAgICAgICAgICAgICAo
cHJlZCAoY2FyIChibG9jay1wcmVkIHRoaXMtYmxvY2spKSkpCj4gPiArICAgICAgICAodW5sZXNz
IChpZiAoPSBsb29rYmFjayAwKQo+ID4gKyAgICAgICAgICAgICAgICAgICAgKGFsbC1mbHVzaGFi
bGUgKG5vZGUtbmV4dCBjMSkgdGhpcykKPiA+ICsgICAgICAgICAgICAgICAgICAgIChhbmQKPiA+
ICsgICAgICAgICAgICAgICAgICAgICA7OyBDaGVjayBwcmV2IGJsb2NrIGZyb20gQzEgdG8gaXRz
IGVuZCBvZiBibG9jaywgYW5kIGN1cnJlbnQgYmxvY2sgdXAgdG8gVEhJUwo+ID4gKyAgICAgICAg
ICAgICAgICAgICAgIChhY29uZCAoKG5vZGUtbmV4dCBjMSkgKGFsbC1mbHVzaGFibGUgaXQgbmls
KSkgKHQgdCkpCj4gPiArICAgICAgICAgICAgICAgICAgICAgKGFsbC1mbHVzaGFibGUgKGJsb2Nr
LXN0YXJ0IHRoaXMtYmxvY2spIHRoaXMpCj4gPiArICAgICAgICAgICAgICAgICAgICAgOzsgQWxs
IGNoZWNrIGFsbCBvZiBvbmUgb3IgYm90aCBpbnRlcnZlbmluZyBibG9ja3MKPiA+ICsgICAgICAg
ICAgICAgICAgICAgICAob3IgKDwgbG9va2JhY2sgMikKPiA+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgKGFsbC1mbHVzaGFibGUgKGJsb2NrLXN0YXJ0IHByZWQpIG5pbCkpCj4gPiArICAgICAg
ICAgICAgICAgICAgICAgKG9yICg8IGxvb2tiYWNrIDMpCj4gPiArICAgICAgICAgICAgICAgICAg
ICAgICAgIChhbGwtZmx1c2hhYmxlIChibG9jay1zdGFydCAoY2FyIChibG9jay1wcmVkIHByZWQp
KSkgbmlsKSkpKQo+ID4gKyAgICAgICAgICAocmV0dXJuLWZyb20gdHJ5LXJldXNlLWV4cHItdmFs
dWUgbmlsKSkpKQo+ID4gKyAgICA7OyBTdWJzdGl0dXRlIEMxJ3MgcmVzdWx0IGluIGZvciBUSElT
Cj4gPiArICAgIChiaW5kaW5nKiAoKGx2YXItYzEgKG5vZGUtbHZhciBjMSkgOmV4aXQtaWYtbnVs
bCkKPiA+ICsgICAgICAgICAgICAgICAoY29uc3VtZXItMSAobHZhci1kZXN0IGx2YXItYzEpIDpl
eGl0LWlmLW51bGwpCj4gPiArICAgICAgICAgICAgICAgKGMyIHRoaXMpCj4gPiArICAgICAgICAg
ICAgICAgKGx2YXItYzIgKG5vZGUtbHZhciBjMikgOmV4aXQtaWYtbnVsbCkKPiA+ICsgICAgICAg
ICAgICAgICAodiAobWFrZS1sYW1iZGEtdmFyIChnZW5zeW0gIlJFVVNFRC1WQUwiKQo+ID4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnR5cGUgKHNpbmdsZS12YWx1ZS10eXBl
IChub2RlLWRlcml2ZWQtdHlwZSBjMSkpKSkKPiA+ICsgICAgICAgICAgICAgICAobHZhci1uZXcg
KG1ha2UtbHZhcikpKQo+ID4gKyAgICAgIChhZGQtdmFyaWFibGUtdG8tbGV0LWxhbWJkYSBob21l
LWxhbWJkYSB2KQo+ID4gKwo+ID4gKyAgICAgIDs7IDEuIFJlZGlyZWN0IGNvbnN1bWVyLTEgdG8g
cmVhZCBmcm9tIGx2YXItbmV3Cj4gPiArICAgICAgKHN1YnN0aXR1dGUtbHZhciBsdmFyLW5ldyBs
dmFyLWMxKQo+ID4gKwo+ID4gKyAgICAgICh3aXRoLWlyMS1lbnZpcm9ubWVudC1mcm9tLW5vZGUg
YzEKPiA+ICsgICAgICAgIDs7IDIuIE1ha2UgQzEgd3JpdGUgdG8gYSBuZXcgTFZBUiwgYW5kIGxp
bmsgaXQgdG8gYSBDU0VUIG9uIFYKPiA+ICsgICAgICAgIChsZXQgKChsdmFyLWMxLW5ldyAobWFr
ZS1sdmFyKSkpCj4gPiArICAgICAgICAgICglZGVsZXRlLWx2YXItdXNlIGMxKQo+ID4gKyAgICAg
ICAgICAodXNlLWx2YXIgYzEgbHZhci1jMS1uZXcpCj4gPiArICAgICAgICAgIDs7IDMuIENyZWF0
ZSBTMSAoc2V0IFYgPSBsdmFyLWMxLW5ldykgYW5kIGluc2VydCBhZnRlciBDMQo+ID4gKyAgICAg
ICAgICAobGV0ICgoczEgKG1ha2Utc2V0IHYgbHZhci1jMS1uZXcpKSkKPiA+ICsgICAgICAgICAg
ICAoc2V0ZiAobHZhci1kZXN0IGx2YXItYzEtbmV3KSBzMSkKPiA+ICsgICAgICAgICAgICAocHVz
aCBzMSAoYmFzaWMtdmFyLXNldHMgdikpCj4gPiArICAgICAgICAgICAgKGluc2VydC1ub2RlLWFm
dGVyIGMxIHMxKSkpKQo+ID4gKwo+ID4gKyAgICAgIDs7IDQuIEluc2VydCByZWYxIGJlZm9yZSBj
b25zdW1lci0xLCB3cml0aW5nIHRvIGx2YXItbmV3Cj4gPiArICAgICAgKGluc2VydC1yZWYtYmVm
b3JlIHYgY29uc3VtZXItMSBsdmFyLW5ldykKPiA+ICsgICAgICA7OyA1LiBJbnNlcnQgcmVmMiBi
ZWZvcmUgQzIsIHN0ZWFsaW5nIEMyJ3MgbHZhcgo+ID4gKyAgICAgIChpbnNlcnQtcmVmLWJlZm9y
ZSB2IGMyIHQpCj4gPiArICAgICAgOzsgQzIgaXMgbm93IGRlYWQgYW5kIHdpbGwgYmUgZmx1c2hl
ZCBieSB0aGUgY2FsbGVyIQo+ID4gKyAgICAgIHQpKSkKPiA+ICsKPiA+ICA7OzsgRG8gSVIxIG9w
dGltaXphdGlvbnMgb24gYSBDT01CSU5BVElPTiBub2RlLgo+ID4gIChkZWZ1biBpcjEtb3B0aW1p
emUtY29tYmluYXRpb24gKG5vZGUgJmF1eCAoc2hvdyAqc2hvdy10cmFuc2Zvcm1zLXAqKSkKPiA+
ICAgIChkZWNsYXJlICh0eXBlIGNvbWJpbmF0aW9uIG5vZGUpKQo+ID4gQEAgLTEzMDUsNiArMTQ4
MSw5IEBACj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAobm90IChub2RlLWx2YXIgbm9kZSkp
KQo+ID4gICAgICAgICAgICAgICAgICAgIChyZXR1cm4tZnJvbSBpcjEtb3B0aW1pemUtY29tYmlu
YXRpb24gKGZsdXNoLW5vZGUgbm9kZSkpKQo+ID4gICAgICAgICAgICAgICAgICAgKChmb2xkLWNh
bGwtZGVyaXZlZC10by1jb25zdGFudCBub2RlKQo+ID4gKyAgICAgICAgICAgICAgICAgIChyZXR1
cm4tZnJvbSBpcjEtb3B0aW1pemUtY29tYmluYXRpb24pKQo+ID4gKyAgICAgICAgICAgICAgICAg
KChhbmQgKGNvbWJpbmF0aW9uLWlzIG5vZGUgKmVsaWRhYmxlLW1lbW9yeS1sb2FkcyopCj4gPiAr
ICAgICAgICAgICAgICAgICAgICAgICAodHJ5LXJldXNlLWV4cHItdmFsdWUgbm9kZSkpCj4gPiAg
ICAgICAgICAgICAgICAgICAgKHJldHVybi1mcm9tIGlyMS1vcHRpbWl6ZS1jb21iaW5hdGlvbikp
KQo+ID4gICAgICAgICAgICAgKHdoZW4gKGFuZCAoaXIxLWF0dHJpYnV0ZXAgKGZ1bi1pbmZvLWF0
dHJpYnV0ZXMgaW5mbykgY29tbXV0YXRpdmUpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICg9
IChsZW5ndGggYXJncykgMikKPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9sY3NlLnB1cmUubGlzcCBi
L3Rlc3RzL2xjc2UucHVyZS5saXNwCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXgg
MDAwMDAwMDAwLi40M2IzNGU5OTgKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL3Rlc3RzL2xj
c2UucHVyZS5saXNwCj4gPiBAQCAtMCwwICsxLDIzNCBAQAo+ID4gKzs7OzsgVGhpcyBzb2Z0d2Fy
ZSBpcyBwYXJ0IG9mIHRoZSBTQkNMIHN5c3RlbS4gU2VlIHRoZSBSRUFETUUgZmlsZSBmb3IKPiA+
ICs7Ozs7IG1vcmUgaW5mb3JtYXRpb24uCj4gPiArOzs7Owo+ID4gKzs7OzsgV2hpbGUgbW9zdCBv
ZiBTQkNMIGlzIGRlcml2ZWQgZnJvbSB0aGUgQ01VIENMIHN5c3RlbSwgdGhlIHRlc3QKPiA+ICs7
Ozs7IGZpbGVzIChsaWtlIHRoaXMgb25lKSB3ZXJlIHdyaXR0ZW4gZnJvbSBzY3JhdGNoIGFmdGVy
IHRoZSBmb3JrCj4gPiArOzs7OyBmcm9tIENNVSBDTC4KPiA+ICs7Ozs7Cj4gPiArOzs7OyBUaGlz
IHNvZnR3YXJlIGlzIGluIHRoZSBwdWJsaWMgZG9tYWluIGFuZCBpcyBwcm92aWRlZCB3aXRoCj4g
PiArOzs7OyBhYnNvbHV0ZWx5IG5vIHdhcnJhbnR5LiBTZWUgdGhlIENPUFlJTkcgYW5kIENSRURJ
VFMgZmlsZXMgZm9yCj4gPiArOzs7OyBtb3JlIGluZm9ybWF0aW9uLgo+ID4gKwo+ID4gKzs7Ozsg
VGVzdHMgb2YgbG9jYWwgY29tbW9uIHN1YmV4cHJlc3Npb24gZWxpbWluYXRpb24KPiA+ICsKPiA+
ICsoaW1wb3J0ICcoY3R1Omluc3BlY3QtaXIKPiA+ICsgICAgICAgICAgc2ItYzo6Y29tYmluYXRp
b24tZnVuLWRlYnVnLW5hbWUKPiA+ICsgICAgICAgICAgc2ItYzo6YmFzaWMtY29tYmluYXRpb24t
cCkpCj4gPiArCj4gPiArKGRlZnVuIGlyLWNhbGxzIChmb3JtKQo+ID4gKyAgKGxldCAoY2FsbHMp
Cj4gPiArICAgIChpbnNwZWN0LWlyCj4gPiArICAgICBmb3JtCj4gPiArICAgICAobGFtYmRhIChj
b21wb25lbnQpCj4gPiArICAgICAgIChjdHU6ZG8tYmxvY2tzIChibG9jayBjb21wb25lbnQpCj4g
PiArICAgICAgICAgKGN0dTpkby1ub2RlcyAobm9kZSBuaWwgYmxvY2spCj4gPiArICAgICAgICAg
ICAod2hlbiAoYmFzaWMtY29tYmluYXRpb24tcCBub2RlKQo+ID4gKyAgICAgICAgICAgICAocHVz
aCBub2RlIGNhbGxzKSkpKSkpCj4gPiArICAgIGNhbGxzKSkKPiA+ICsKPiA+ICsoZGVmbWFjcm8g
YXNzZXJ0LWNhbGxzIChmdW4tbmFtZSBleHBlY3RlZC1jb3VudCAoJnJlc3QgbGFtYmRhLWFyZ3Mp
ICZib2R5IGJvZHkpCj4gPiArICAoc2ItaW50OmJpbmRpbmcqCj4gPiArICAgICAgKCgoZm9ybXMg
ZGVjbHMpIChzYi1pbnQ6cGFyc2UtYm9keSBib2R5IG5pbCkpCj4gPiArICAgICAgIChsZXhwciBg
KGxhbWJkYSAoLEBsYW1iZGEtYXJncykKPiA+ICsgICAgICAgICAgICAgICAgICxAZGVjbHMKPiA+
ICsgICAgICAgICAgICAgICAgICA7OyBXaXRob3V0IGEgY29udGFpbmluZyBMRVQgZm9ybSwgdGhl
IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgQ1NFCj4gPiArICAgICAgICAgICAgICAgICAgOzsg
aXMgdW53aWxsaW5nIHRvIGJpbmQgYSB0ZW1wb3JhcnkgbGFtYmRhIHZhciBmb3IgcmV1c2UuCj4g
PiArICAgICAgICAgICAgICAgICAgKGxldCAoKGFjdGl2ZS1sZXQtdmFyIDApKQo+ID4gKyAgICAg
ICAgICAgICAgICAgICAgKHByaW50IGFjdGl2ZS1sZXQtdmFyKQo+ID4gKyAgICAgICAgICAgICAg
ICAgICAgKGluY2YgYWN0aXZlLWxldC12YXIgKHJhbmRvbSA1KSkKPiA+ICsgICAgICAgICAgICAg
ICAgICAgIChwcmludCBhY3RpdmUtbGV0LXZhcikKPiA+ICsgICAgICAgICAgICAgICAgICAgICxA
Zm9ybXMpKSkpCj4gPiArICAgIGAoYXNzZXJ0ICg9IChjb3VudCAnLGZ1bi1uYW1lIChpci1jYWxs
cyAnLGxleHByKSA6a2V5ICMnY29tYmluYXRpb24tZnVuLWRlYnVnLW5hbWUpCj4gPiArICAgICAg
ICAgICAgICAgICxleHBlY3RlZC1jb3VudCkpKSkKPiA+ICsKPiA+ICs7OzsgQmFzaWMgdGVzdHM6
IGEgc2FtcGxpbmcgb2YgZWxpZGFibGUgbG9hZCB0eXBlIHdpdGggdHdvIGlkZW50aWNhbCBsb2Fk
cwo+ID4gKwo+ID4gKyh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDpjYXIpKQo+ID4gKyAgKGFzc2Vy
dC1jYWxscyBjYXIgMSAoY29ucykKPiA+ICsgICAgKGRlY2xhcmUgKHR5cGUgY29ucyBjb25zKSkK
PiA+ICsgICAgKGlmIChjYXIgY29ucykKPiA+ICsgICAgICAgIChwcmluYyAoY2FyIGNvbnMpKQo+
ID4gKyAgICAgICAgKHByaW5jIChjZHIgY29ucykpKSkpCj4gPiArCj4gPiArKHdpdGgtdGVzdCAo
Om5hbWUgKDpjc2UgOmRpZmZlcmVudC1uYW1lcy1mb3Itc2FtZS1vYmplY3QpKQo+ID4gKyAgOzsg
WSBhbmQgWCByZWZlciB0byB0aGUgc2FtZSB0aGluZywgYW5kIGl0IGRvZXNuJ3QgbWF0dGVyCj4g
PiArICA7OyB3aG9zZSBDRFIgd2UgdGFrZSBmaXJzdC4gT25seSBvbmUgQ0RSIG9wZXJhdGlvbiBp
cyBwZXJmb3JtZWQKPiA+ICsgIChhc3NlcnQtY2FsbHMgY2RyIDEgKHgpCj4gPiArICAgIChkZWNs
YXJlICh0eXBlIGNvbnMgeCkpCj4gPiArICAgIChsZXQgKCh5IHgpKQo+ID4gKyAgICAgIChsaXN0
IChjZHIgeSkgKGNkciB4KSkpKQo+ID4gKyAgKGFzc2VydC1jYWxscyBjZHIgMSAoeCkKPiA+ICsg
ICAgKGRlY2xhcmUgKHR5cGUgY29ucyB4KSkKPiA+ICsgICAgKGxldCAoKHkgeCkpCj4gPiArICAg
ICAgKGxpc3QgKGNkciB4KSAoY2RyIHkpKSkpKQo+ID4gKwo+ID4gKyh3aXRoLXRlc3QgKDpuYW1l
ICg6Y3NlIDpjb21wb3NpdGlvbi1vZi1jeHIpKQo+ID4gKyAgOzsgVGhlIENBUiBleHRyYWN0aW9u
IHdoaWNoIGlzIHBhcnQgb2YgdGhlIENEQVIgZnVuY3Rpb24gY2FuIGJlCj4gPiArICA7OyByZXVz
ZWQgYmFzZWQgb24gdGhlIGZhY3QgdGhhdCB3ZSBldmFsdWF0ZWQgKExJU1RQIChDQVIgWCkpCj4g
PiArICAoYXNzZXJ0LWNhbGxzIGNhciAxICh4KQo+ID4gKyAgICAoaWYgKGxpc3RwIChjYXIgeCkp
IChjZGFyIHgpKSkKPiA+ICsgIDs7IG5lZ2F0aXZlIHRlc3QgLSBDREFSIG9uIGEgZGlmZmVyZW50
IFkgaXMgYW5vdGhlciBDQVIgb3BlcmF0aW9uCj4gPiArICAoYXNzZXJ0LWNhbGxzIGNhciAyICh4
IHkpCj4gPiArICAgIChpZiAobGlzdHAgKGNhciB4KSkgKGNkYXIgeSkpKSkKPiA+ICsKPiA+ICso
ZGVmc3RydWN0IGNzZS10ZXN0LWZvbyBzbG90ICh3c2xvdCAwIDp0eXBlIHNiLXZtOndvcmQpKQo+
ID4gKyh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDppbnN0YW5jZS1yZWYpKQo+ID4gKyAgKGFzc2Vy
dC1jYWxscyBzYi1rZXJuZWw6JWluc3RhbmNlLXJlZiAxICh4KQo+ID4gKyAgICA7OyBEZXBlbmRp
bmcgb24gd2hhdCBUUkFOU0ZPUk0tSU5TVEFOQ0UtVFlQRVAgZG9lcywgaXQgbWlnaHQgYWNjZXNz
IGluc3RhbmNlLWxheW91dAo+ID4gKyAgICA7OyB1c2luZyAlSU5TVEFOQ0UtUkVGIHdoaWNoIHdv
dWxkIGhhdmUgdG8gYmUgZGlzY291bnRlZCBpbiB0aGUgY2FsbCBjb3VudGluZy4KPiA+ICsgICAg
OzsgSnVzdCBicnV0ZS1mb3JjZSB0aGUgdHlwZSB0byBhdm9pZCB0aGF0IHNpdHVhdGlvbi4KPiA+
ICsgICAgKGxldCAoKHggKHRydWx5LXRoZSBjc2UtdGVzdC1mb28geCkpKQo+ID4gKyAgICAgIChp
ZiAoY3NlLXRlc3QtZm9vLXNsb3QgeCkKPiA+ICsgICAgICAgICAgKHByaW5jIChjc2UtdGVzdC1m
b28tc2xvdCB4KSkKPiA+ICsgICAgICAgICAgbmlsKSkpKQo+ID4gKwo+ID4gKyh3aXRoLXRlc3Qg
KDpuYW1lICg6Y3NlIDpyYXctaW5zdGFuY2UtcmVmL3dvcmQpKQo+ID4gKyAgKGFzc2VydC1jYWxs
cyBzYi1rZXJuZWw6JXJhdy1pbnN0YW5jZS1yZWYvd29yZCAxICh4KQo+ID4gKyAgICAoZGVjbGFy
ZSAodHlwZSBjc2UtdGVzdC1mb28geCkpCj4gPiArICAgIChpZiAobG9ndGVzdCAoY3NlLXRlc3Qt
Zm9vLXdzbG90IHgpICN4ZmYwMDApCj4gPiArICAgICAgICAocHJpbmMgKGNzZS10ZXN0LWZvby13
c2xvdCB4KSkKPiA+ICsgICAgICAgIG5pbCkpKQo+ID4gKwo+ID4gKyh3aXRoLXRlc3QgKDpuYW1l
ICg6Y3NlIDpzYXAtcmVmLTMyKSkKPiA+ICsgIChhc3NlcnQtY2FsbHMgc2Itc3lzOnNhcC1yZWYt
MzIgMSAoc2FwIG9mZnNldCkKPiA+ICsgICAgKGRlY2xhcmUgKHR5cGUgc2Itc3lzOnN5c3RlbS1h
cmVhLXBvaW50ZXIgc2FwKQo+ID4gKyAgICAgICAgICAgICAodHlwZSBzYi12bTp3b3JkIG9mZnNl
dCkpCj4gPiArICAgIChpZiAocGx1c3AgKHNiLXN5czpzYXAtcmVmLTMyIHNhcCBvZmZzZXQpKQo+
ID4gKyAgICAgICAgKHByaW5jIChzYi1zeXM6c2FwLXJlZi0zMiBzYXAgb2Zmc2V0KSkKPiA+ICsg
ICAgICAgIG5pbCkpCj4gPiArICAoYXNzZXJ0LWNhbGxzIHNiLXN5czpzaWduZWQtc2FwLXJlZi0z
MiAxIChzYXAgb2Zmc2V0KQo+ID4gKyAgICAoZGVjbGFyZSAodHlwZSBzYi1zeXM6c3lzdGVtLWFy
ZWEtcG9pbnRlciBzYXApCj4gPiArICAgICAgICAgICAgICh0eXBlIHNiLXZtOndvcmQgb2Zmc2V0
KSkKPiA+ICsgICAgKGlmIChwbHVzcCAoc2Itc3lzOnNpZ25lZC1zYXAtcmVmLTMyIHNhcCBvZmZz
ZXQpKQo+ID4gKyAgICAgICAgKHByaW5jIChzYi1zeXM6c2lnbmVkLXNhcC1yZWYtMzIgc2FwIG9m
ZnNldCkpCj4gPiArICAgICAgICBuaWwpKSkKPiA+ICsKPiA+ICsod2l0aC10ZXN0ICg6bmFtZSAo
OmNzZSA6c2FwLXJlZi02NCkgOnNraXBwZWQtb24gKDpub3QgOjY0LWJpdCkpCj4gPiArICAoYXNz
ZXJ0LWNhbGxzIHNiLXN5czpzYXAtcmVmLTY0IDEgKHNhcCBvZmZzZXQpCj4gPiArICAgIChkZWNs
YXJlICh0eXBlIHNiLXN5czpzeXN0ZW0tYXJlYS1wb2ludGVyIHNhcCkKPiA+ICsgICAgICAgICAg
ICAgKHR5cGUgc2Itdm06d29yZCBvZmZzZXQpKQo+ID4gKyAgICAoaWYgKHBsdXNwIChzYi1zeXM6
c2FwLXJlZi02NCBzYXAgb2Zmc2V0KSkKPiA+ICsgICAgICAgIChwcmluYyAoc2Itc3lzOnNhcC1y
ZWYtNjQgc2FwIG9mZnNldCkpCj4gPiArICAgICAgICBuaWwpKQo+ID4gKyAgKGFzc2VydC1jYWxs
cyBzYi1zeXM6c2lnbmVkLXNhcC1yZWYtNjQgMSAoc2FwIG9mZnNldCkKPiA+ICsgICAgKGRlY2xh
cmUgKHR5cGUgc2Itc3lzOnN5c3RlbS1hcmVhLXBvaW50ZXIgc2FwKQo+ID4gKyAgICAgICAgICAg
ICAodHlwZSBzYi12bTp3b3JkIG9mZnNldCkpCj4gPiArICAgIChpZiAocGx1c3AgKHNiLXN5czpz
aWduZWQtc2FwLXJlZi02NCBzYXAgb2Zmc2V0KSkKPiA+ICsgICAgICAgIChwcmluYyAoc2Itc3lz
OnNpZ25lZC1zYXAtcmVmLTY0IHNhcCBvZmZzZXQpKQo+ID4gKyAgICAgICAgbmlsKSkpCj4gPiAr
Cj4gPiArKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOmxvb3Atb3Zlci1kZXJlZikpCj4gPiArICAo
bGV0ICgobGV4cHIKPiA+ICsgICAgICAgICAnKGxhbWJkYSAoZikKPiA+ICsgICAgICAgICAgICAo
ZGVjbGFyZSAob3B0aW1pemUgKHNiLWM6OmFsaWVuLWZ1bmNhbGwtc2F2ZXMtZnAtYW5kLXBjIDAp
Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYi1jOjp0eXBlLWNoZWNrIDAp
KSkKPiA+ICsgICAgICAgICAgICA7OyBGIHJldHVybnMgYSBwb2ludGVyIHRvIGEgbnVsbC10ZXJt
aW5hdGVkIGFycmF5IG9mIHVuc2lnbmVkLWludC4KPiA+ICsgICAgICAgICAgICA7OyBUaGUgZGVy
ZWYgZm9yIHRoZSBsb29wIHRlcm1pbmF0aW9uIHRlc3QsIGFuZCBhZ2FpbiBpbiB0aGUgYm9keQo+
ID4gKyAgICAgICAgICAgIDs7IHNob3VsZCB1c2UgYSBzaW5nbGUgbWVtb3J5IGxvYWQuCj4gPiAr
ICAgICAgICAgICAgKGxldCAoKGEgKGFsaWVuLWZ1bmNhbGwgKHRoZSAoYWxpZW4gKGZ1bmN0aW9u
ICgqIHVuc2lnbmVkKSkpIGYpKSkpCj4gPiArICAgICAgICAgICAgICAoZG8gKChpbmRleCAwICgx
KyBpbmRleCkpKQo+ID4gKyAgICAgICAgICAgICAgICAgICgoemVyb3AgKGRlcmVmIGEgaW5kZXgp
KSkKPiA+ICsgICAgICAgICAgICAgICAgKHByaW5jICh0aGUgZml4bnVtIChkZXJlZiBhIGluZGV4
KSkpKSkpKSkKPiA+ICsgICAgKGFzc2VydCAoPSAoY291bnQgIysob3IgYXJtNjQgeDg2LTY0KSAn
c2Itc3lzOiVzYXAtcmVmLTY0LWluZGV4ZWQKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIy0o
b3IgYXJtNjQgeDg2LTY0KQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAocHJvZ24gIys2NC1i
aXQgJ3NiLXN5czpzYXAtcmVmLTY0ICMtNjQtYml0ICdzYi1zeXM6c2FwLXJlZi0zMikKPiA+ICsg
ICAgICAgICAgICAgICAgICAgICAgKGlyLWNhbGxzIGxleHByKSA6a2V5ICMnY29tYmluYXRpb24t
ZnVuLWRlYnVnLW5hbWUpCj4gPiArICAgICAgICAgICAgICAgMSkpKSkKPiA+ICsKPiA+ICs7Ozsg
U0VUUSBvZiBhIHZhcmlhYmxlIHVzZWQgYXMgYW4gYXJndW1lbnQgdG8gYW4gZWxpZGFibGUgbG9h
ZCBwcmV2ZW50cyBDU0UuCj4gPiArOzs7IFdoZW4gYSB2YXJpYWJsZSB0aGF0IHBhcnRpY2lwYXRl
cyBpbiB0aGUgbG9hZCBleHByZXNzaW9uIChlLmcuLCB0aGUgY29ucwo+ID4gKzs7OyBiZWluZyBD
QVInZCkgaXMgYXNzaWduZWQgYmV0d2VlbiB0d28gaWRlbnRpY2FsIGxvYWRzLCB0aGUgc2Vjb25k
IGxvYWQKPiA+ICs7OzsgbXVzdCBub3QgYmUgZWxpbWluYXRlZCBiZWNhdXNlIHRoZSB2YXJpYWJs
ZSBtYXkgcmVmZXJlbmNlIGEgZGlmZmVyZW50IG9iamVjdC4KPiA+ICsod2l0aC10ZXN0ICg6bmFt
ZSAoOmNzZSA6c2V0cS1vZi1sb2FkLWFyZy1wcmV2ZW50cy1jYXIpKQo+ID4gKyAgOzsgQ09OUyBp
cyB0aGUgYXJndW1lbnQgdG8gQ0FSLiBBc3NpZ25pbmcgQ09OUyBiZXR3ZWVuIHR3byAoQ0FSIENP
TlMpCj4gPiArICA7OyBwcmV2ZW50cyBDU0UuCj4gPiArICAoYXNzZXJ0LWNhbGxzIGNhciAyIChj
b25zIG90aGVyKQo+ID4gKyAgICAoZGVjbGFyZSAodHlwZSBjb25zIGNvbnMgb3RoZXIpKQo+ID4g
KyAgICAobGV0ICgoYSAoY2FyIGNvbnMpKSkKPiA+ICsgICAgICAoc2V0cSBjb25zIG90aGVyKQo+
ID4gKyAgICAgIChsZXQgKChiIChjYXIgY29ucykpKQo+ID4gKyAgICAgICAgKGxpc3QgYSBiKSkp
KSkKPiA+ICsKPiA+ICsod2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6c2V0cS1vZi1sb2FkLWFyZy1w
cmV2ZW50cy1jZHIpKQo+ID4gKyAgKGFzc2VydC1jYWxscyBjZHIgMiAoY29ucyBvdGhlcikKPiA+
ICsgICAgKGRlY2xhcmUgKHR5cGUgY29ucyBjb25zIG90aGVyKSkKPiA+ICsgICAgKGxldCAoKGEg
KGNkciBjb25zKSkpCj4gPiArICAgICAgKHNldHEgY29ucyBvdGhlcikKPiA+ICsgICAgICAobGV0
ICgoYiAoY2RyIGNvbnMpKSkKPiA+ICsgICAgICAgIChsaXN0IGEgYikpKSkpCj4gPiArCj4gPiAr
KHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOnNldHEtb2YtbG9hZC1hcmctcHJldmVudHMtaW5zdGFu
Y2UtcmVmKSkKPiA+ICsgIDs7IEFzc2lnbmluZyB0aGUgc3RydWN0IHZhcmlhYmxlIGJldHdlZW4g
dHdvIHJlYWRzIG9mIHRoZSBzYW1lIHNsb3QgcHJldmVudHMgQ1NFLgo+ID4gKyAgKGFzc2VydC1j
YWxscyBzYi1rZXJuZWw6JWluc3RhbmNlLXJlZiAyICh4IHkpCj4gPiArICAgIChsZXQgKCh4ICh0
cnVseS10aGUgY3NlLXRlc3QtZm9vIHgpKQo+ID4gKyAgICAgICAgICAoeSAodHJ1bHktdGhlIGNz
ZS10ZXN0LWZvbyB5KSkpCj4gPiArICAgICAgKGxldCAoKGEgKGNzZS10ZXN0LWZvby1zbG90IHgp
KSkKPiA+ICsgICAgICAgIChzZXRxIHggeSkKPiA+ICsgICAgICAgIChsZXQgKChiIChjc2UtdGVz
dC1mb28tc2xvdCB4KSkpCj4gPiArICAgICAgICAgIChsaXN0IGEgYikpKSkpKQo+ID4gKwo+ID4g
Kyh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDpzZXRxLW9mLWxvYWQtYXJnLXByZXZlbnRzLXNhcC1y
ZWYpKQo+ID4gKyAgOzsgQXNzaWduaW5nIHRoZSBTQVAgdmFyaWFibGUgYmV0d2VlbiB0d28gcmVh
ZHMgYXQgdGhlIHNhbWUgb2Zmc2V0Cj4gPiArICA7OyBtdXN0IHByZXZlbnQgQ1NFIHNpbmNlIHRo
ZSBzZWNvbmQgcmVhZCBtYXkgdXNlIGEgZGlmZmVyZW50IFNBUC4KPiA+ICsgIChhc3NlcnQtY2Fs
bHMgc2Itc3lzOnNhcC1yZWYtMzIgMiAoc2FwMSBzYXAyIG9mZnNldCkKPiA+ICsgICAgKGRlY2xh
cmUgKHR5cGUgc2Itc3lzOnN5c3RlbS1hcmVhLXBvaW50ZXIgc2FwMSBzYXAyKQo+ID4gKyAgICAg
ICAgICAgICAodHlwZSBzYi12bTp3b3JkIG9mZnNldCkpCj4gPiArICAgIChsZXQgKChhIChzYi1z
eXM6c2FwLXJlZi0zMiBzYXAxIG9mZnNldCkpKQo+ID4gKyAgICAgIChzZXRxIHNhcDEgc2FwMikK
PiA+ICsgICAgICAobGV0ICgoYiAoc2Itc3lzOnNhcC1yZWYtMzIgc2FwMSBvZmZzZXQpKSkKPiA+
ICsgICAgICAgIChsaXN0IGEgYikpKSkpCj4gPiArCj4gPiArOzs7IFNFVFEgb2YgYW4gKnVucmVs
YXRlZCogdmFyaWFibGUgc2hvdWxkIE5PVCBwcmV2ZW50IENTRS4KPiA+ICs7OzsgT25seSBtdXRh
dGlvbnMgb2YgdmFyaWFibGVzIHRoYXQgcGFydGljaXBhdGUgaW4gdGhlIGxvYWQgbWF0dGVyLgo+
ID4gKyh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDpzZXRxLW9mLXVucmVsYXRlZC12YXItYWxsb3dz
LWNzZSkpCj4gPiArICA7OyBaIGlzIG5vdCBhbiBhcmd1bWVudCB0byBDQVIsIHNvIHNldHRpbmcg
WiBkb2VzIG5vdCBpbmhpYml0IENTRS4KPiA+ICsgIChhc3NlcnQtY2FsbHMgY2FyIDEgKGNvbnMg
eikKPiA+ICsgICAgKGRlY2xhcmUgKHR5cGUgY29ucyBjb25zKSkKPiA+ICsgICAgKGxldCAoKGEg
KGNhciBjb25zKSkpCj4gPiArICAgICAgKHNldHEgeiBhKQo+ID4gKyAgICAgIChsZXQgKChiIChj
YXIgY29ucykpKQo+ID4gKyAgICAgICAgKGxpc3QgeiBiKSkpKSkKPiA+ICsKPiA+ICs7OzsgU0It
VEhSRUFEOkJBUlJJRVIgb2YgYW55IGtpbmQgcHJldmVudHMgZWxpc2lvbiBvZiB0aGUgc2Vjb25k
IGxvYWQKPiA+ICs7Ozsgc2luY2UgdGhlIG1lbW9yeSBiYXJyaWVycyBpcyBub3QgZmx1c2hhYmxl
LiBUaGlzIGlzIHRoZSBjb25zZXJ2YXRpdmUgc3RhbmNlLgo+ID4gKzs7OyBUaGUgYWN0dWFsIChs
b29zZXIpIHJlcXVpcmVtZW50cyBhcmUgbW9yZSBzdWJ0bGUgdGhhbiBJIGNhcmUgdG8gZGVhbCB3
aXRoLgo+ID4gKyhkZWZtYWNybyBiYXJyaWVyLXRlc3QgKGtpbmQpCj4gPiArICBgKHdpdGgtdGVz
dCAoOm5hbWUgKDpjc2UgOmJhcnJpZXItcHJldmVudHMtY2FyICxraW5kKSkKPiA+ICsgICAgIChh
c3NlcnQtY2FsbHMgY2FyIDIgKGNvbnMpCj4gPiArICAgICAgKGRlY2xhcmUgKHR5cGUgY29ucyBj
b25zKSkKPiA+ICsgICAgICAobGV0ICgoYSAoY2FyIGNvbnMpKSkKPiA+ICsgICAgICAgIChzYi10
aHJlYWQ6YmFycmllciAoLGtpbmQpKQo+ID4gKyAgICAgICAgKGxldCAoKGIgKGNhciBjb25zKSkp
Cj4gPiArICAgICAgICAgIChsaXN0IGEgYikpKSkpKQo+ID4gKyhiYXJyaWVyLXRlc3QgOnJlYWQp
Cj4gPiArKGJhcnJpZXItdGVzdCA6d3JpdGUpCj4gPiArKGJhcnJpZXItdGVzdCA6bWVtb3J5KQo+
ID4gKyhiYXJyaWVyLXRlc3QgOmNvbXBpbGVyKQo+ID4gKyhiYXJyaWVyLXRlc3QgOmRhdGEtZGVw
ZW5kZW5jeSkKPiA+ICsKPiA+ICs7OzsgQW55IG5vbi1mbHVzaGFibGUgY2FsbCBiZXR3ZWVuIHR3
byBpZGVudGljYWwgbG9hZHMgcHJldmVudHMgQ1NFCj4gPiArOzs7IGJlY2F1c2UgdGhlIGNhbGwg
bWF5IGhhdmUgc2lkZSBlZmZlY3RzIHRoYXQgbW9kaWZ5IHRoZSBsb2FkZWQgbWVtb3J5Lgo+ID4g
Kwo+ID4gKyh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDpub24tZmx1c2hhYmxlLWNhbGwtcHJldmVu
dHMtY3NlKSkKPiA+ICsgIDs7IFBSSU5DIGlzIGEgbm9uLWZsdXNoYWJsZQo+ID4gKyAgKGFzc2Vy
dC1jYWxscyBjYXIgMiAoY29ucykKPiA+ICsgICAgKGRlY2xhcmUgKHR5cGUgY29ucyBjb25zKSkK
PiA+ICsgICAgKGxldCAoKGEgKGNhciBjb25zKSkpCj4gPiArICAgICAgKHByaW5jIDQyKQo+ID4g
KyAgICAgIChsZXQgKChiIChjYXIgY29ucykpKQo+ID4gKyAgICAgICAgKGxpc3QgYSBiKSkpKSkK
PiA+ICsKPiA+ICs7OzsgRGlmZmVyZW50IGZ1bmN0aW9ucyBvbiB0aGUgc2FtZSBvYmplY3QgYXJl
IE5PVCBjb25zaWRlcmVkIGNvbW1vbiBzdWJleHByZXNzaW9ucy4KPiA+ICs7OzsgKENBUiB4KSBh
bmQgKENEUiB4KSBhcmUgZGlmZmVyZW50IGxvYWRzIGV2ZW4gaWYgeCBpcyB0aGUgc2FtZS4KPiA+
ICsod2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6ZGlmZmVyZW50LWFjY2Vzc29ycy1ub3QtY3NlKSkK
PiA+ICsgIDs7IEJvdGggQ0FSIGFuZCBDRFIgc2hvdWxkIGFwcGVhciwgZWFjaCBleGFjdGx5IG9u
Y2UuCj4gPiArICAoYXNzZXJ0LWNhbGxzIGNhciAxIChjb25zKQo+ID4gKyAgICAoZGVjbGFyZSAo
dHlwZSBjb25zIGNvbnMpKQo+ID4gKyAgICAoaWYgKGNhciBjb25zKQo+ID4gKyAgICAgICAgKHBy
aW5jIChjZHIgY29ucykpCj4gPiArICAgICAgICBuaWwpKQo+ID4gKyAgKGFzc2VydC1jYWxscyBj
ZHIgMSAoY29ucykKPiA+ICsgICAgKGRlY2xhcmUgKHR5cGUgY29ucyBjb25zKSkKPiA+ICsgICAg
KGlmIChjYXIgY29ucykKPiA+ICsgICAgICAgIChwcmluYyAoY2RyIGNvbnMpKQo+ID4gKyAgICAg
ICAgbmlsKSkpCj4gPiBkaWZmIC0tZ2l0IGEveHBlcmZlY3RoYXNoMzAubGlzcC1leHByIGIveHBl
cmZlY3RoYXNoMzAubGlzcC1leHByCj4gPiBpbmRleCA2YTUwM2FjZjAuLjFiNzIyN2M3OCAxMDA2
NDQKPiA+IC0tLSBhL3hwZXJmZWN0aGFzaDMwLmxpc3AtZXhwcgo+ID4gKysrIGIveHBlcmZlY3Ro
YXNoMzAubGlzcC1leHByCj4gPiBAQCAtMTUwNiw2ICsxNTA2LDkgQEAKPiA+ICAoIygxMEJFNzI3
NyAxMjIxNEFFOCAxMkUyQ0JEQSAxOTczOTUzOSAxRjM1NTZDNyAxRjY0NDM4NykKPiA+ICAgIihJ
TlRFR0VSIEJJR05VTSBTQi1WTTo6VU5TSUdORUQtQllURS0zMSBTQi1WTTo6U0lHTkVELUJZVEUt
MzIgRklYTlVNIFNCLVZNOjpQT1NJVElWRS1GSVhOVU0pIgo+ID4gICAiKCgmICheIHZhbCAoPj4g
dmFsIDIyKSkgNykpIikKPiA+ICsoIygxMEQyRUE0RSAxMjI0QzU1NyAxNUE1OEQ4NSAxNUI1QTJC
NSAxNzUyNEE3OCAxNzY5RTQxOSAxODkwNkQwOCkKPiA+ICsgIihTQi1DOjpDU0VUIFNCLUM6OlJF
RiBERUxBWSBTQi1DOjpBUlJBWS1JTkRFWC1DQVNUIENBU1QgU0ItQzo6Q09NQklOQVRJT04gU0It
Qzo6Q0lGKSIKPiA+ICsgIigoJiAoKyAoPj4gdmFsIDEpICg+PiB2YWwgOSkpIDcpKSIpCj4gPiAg
KCMoMTBEMkVBNEUgMTIyNEM1NTcgMTVBNThEODUgMTVCNUEyQjUgMTc1MjRBNzggMTc2OUU0MTkg
MTg5MDZEMDggMTk1Nzc1MzkgMUMwNjVDQjggMUQ2NkM5MzIpCj4gPiAgICIjKCgoOlRZUEUgU0It
Qzo6UkVGKSkgKCg6VFlQRSBTQi1DOjpDT01CSU5BVElPTikpICgoOlRZUEUgU0ItQzo6Q0lGKSkg
KCg6VFlQRSBTQi1DOjpDUkVUVVJOKSkgKCg6VFlQRSBTQi1DOjpNVi1DT01CSU5BVElPTikpICgo
OlRZUEUgRVhJVCkpICgoOlRZUEUgU0ItQzo6Q1NFVCkpICgoOlRZUEUgREVMQVkpICg6VFlQRSBT
Qi1DOjpBUlJBWS1JTkRFWC1DQVNUKSAoOlRZUEUgQ0FTVCkpKSIKPiA+ICAgIigobGV0ICgodGFi
ICNhKCg4KSAodW5zaWduZWQtYnl0ZSA4KSAwIDUgMiA4IDEzIDMgMCAwKSkpCj4gPiBkaWZmIC0t
Z2l0IGEveHBlcmZlY3RoYXNoNjEubGlzcC1leHByIGIveHBlcmZlY3RoYXNoNjEubGlzcC1leHBy
Cj4gPiBpbmRleCA2ZWI3MjQ4NmIuLmIxYmMwMTRmYiAxMDA2NDQKPiA+IC0tLSBhL3hwZXJmZWN0
aGFzaDYxLmxpc3AtZXhwcgo+ID4gKysrIGIveHBlcmZlY3RoYXNoNjEubGlzcC1leHByCj4gPiBA
QCAtNDYzLDYgKzQ2Myw5IEBACj4gPiAgKCMoOUEzMjBENCAzOUNBQTMzOSA0M0JCRUUxOCA0RDYx
MzY4RiA1MzIyMkRGQiBCRkE4NjE4OSBFREExMDM3RiBGRUU5OUE5NSkKPiA+ICAgIiMoKCg6VFlQ
RSBTQi1DOjpSRUYpKSAoKDpUWVBFIFNCLUM6OkNPTUJJTkFUSU9OKSkgKCg6VFlQRSBTQi1DOjpN
Vi1DT01CSU5BVElPTikpICgoOlRZUEUgRVhJVCkpICgoOlRZUEUgU0ItQzo6Q1NFVCkpICgoOlRZ
UEUgREVMQVkpICg6VFlQRSBTQi1DOjpBUlJBWS1JTkRFWC1DQVNUKSAoOlRZUEUgQ0FTVCkpKSIK
PiA+ICAgIigoJiAoLSAoPj4gdmFsIDMpICg+PiB2YWwgMjkpKSA3KSkiKQo+ID4gKygjKDlBMzIw
RDQgMzlDQUEzMzkgNDNCQkVFMTggNTMyMjJERkIgOTM4MDgzN0MgQkZBODYxODkgRkVFOTlBOTUp
Cj4gPiArICIjKCgoOlRZUEUgU0ItQzo6Q0lGKSAoOlRZUEUgU0ItQzo6Q09NQklOQVRJT04pICg6
VFlQRSBERUxBWSkgKDpUWVBFIFNCLUM6OkFSUkFZLUlOREVYLUNBU1QpICg6VFlQRSBDQVNUKSAo
OlRZUEUgU0ItQzo6UkVGKSAoOlRZUEUgU0ItQzo6Q1NFVCkpKSIKPiA+ICsgIigoJiAoKyB2YWwg
KD4+IHZhbCAzMSkpIDcpKSIpCj4gPiAgKCMoOUEzMjBENCA0M0JCRUUxOCA1MzIyMkRGQiBBOEE0
QzdEMiBCRkE4NjE4OSBFQUEzREE1QyBGRUU5OUE5NSkKPiA+ICAgIiMoKCg6VFlQRSBTQi1DOjpS
RUYpKSAoKDpUWVBFIERFTEFZKSAoOlRZUEUgU0ItQzo6QVJSQVktSU5ERVgtQ0FTVCkgKDpUWVBF
IENBU1QpKSAoKDpUWVBFIFNCLUM6OkNPTUJJTkFUSU9OKSkgKCg6VFlQRSBTQi1DOjpFTlRSWSkp
ICgoOlRZUEUgU0ItQzo6RU5DTE9TRSkpKSIKPiA+ICAgIigoJiAoXiAoPj4gdmFsIDcpICg+PiB2
YWwgMjMpKSA3KSkiKQo+ID4gZGlmZiAtLWdpdCBhL3hwZXJmZWN0aGFzaDYzLmxpc3AtZXhwciBi
L3hwZXJmZWN0aGFzaDYzLmxpc3AtZXhwcgo+ID4gaW5kZXggY2M4NjFiYjMzLi4xM2JiNWQ4NWQg
MTAwNjQ0Cj4gPiAtLS0gYS94cGVyZmVjdGhhc2g2My5saXNwLWV4cHIKPiA+ICsrKyBiL3hwZXJm
ZWN0aGFzaDYzLmxpc3AtZXhwcgo+ID4gQEAgLTg3MCw2ICs4NzAsOSBAQAo+ID4gICgjKDEyMTA2
OEREIDRENjEzNjhGIDU4MTEwRTdGIDY3RUUyRDFBIDZEOUE4ODNEIDc0NTg5RDgyIDg5N0I0NjU2
IEE2OEEzOTY1KQo+ID4gICAiIygoKDpUWVBFIFNCLUM6OlJFRikpICgoOlRZUEUgU0ItQzo6Q09N
QklOQVRJT04pKSAoKDpUWVBFIFNCLUM6Ok1WLUNPTUJJTkFUSU9OKSkgKCg6VFlQRSBFWElUKSkg
KCg6VFlQRSBTQi1DOjpDU0VUKSkgKCg6VFlQRSBERUxBWSkgKDpUWVBFIFNCLUM6OkFSUkFZLUlO
REVYLUNBU1QpICg6VFlQRSBDQVNUKSkpIgo+ID4gICAiKCgmICgtICg+PiB2YWwgNCkgKD4+IHZh
bCAxNikpIDcpKSIpCj4gPiArKCMoMTIxMDY4REQgNTgxMTBFN0YgNjdFRTJEMUEgNkQ5QTg4M0Qg
NzQyRDRDNTQgODk3QjQ2NTYgQTY4QTM5NjUpCj4gPiArICIjKCgoOlRZUEUgU0ItQzo6Q0lGKSAo
OlRZUEUgU0ItQzo6Q09NQklOQVRJT04pICg6VFlQRSBERUxBWSkgKDpUWVBFIFNCLUM6OkFSUkFZ
LUlOREVYLUNBU1QpICg6VFlQRSBDQVNUKSAoOlRZUEUgU0ItQzo6UkVGKSAoOlRZUEUgU0ItQzo6
Q1NFVCkpKSIKPiA+ICsgIigoJiAoLSAoPj4gdmFsIDQpICg+PiB2YWwgMTYpKSA3KSkiKQo+ID4g
ICgjKDEyNkFEQjAyIDMxQjA5NUREIDQyRDgzRkZCIDQzNDFGN0Q4IDYzQzk3MUQ3IDdBODBGMjAx
IDdCNDA4ODgwIDhGNzkxMkQ2IEVCRDAxODcyKQo+ID4gICAiKDpBTExPVy1PVEhFUi1LRVlTIDpU
WVBFIDpSRVNVTFQtU1BFQ1MgOkFSRy1TUEVDUyA6Q0FMTEVSIDpERVBTIDpGSVJFRCA6TEVYRU5W
IDpTT1VSQ0UtUEFUSCkiCj4gPiAgICIoKGxldCAoKHRhYiAjYSgoOCkgKHVuc2lnbmVkLWJ5dGUg
OCkgMCA1IDAgMyAwIDUgMTIgNikpKQo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPgo+ID4KPiA+
IGhvb2tzL3Bvc3QtcmVjZWl2ZQo+ID4gLS0KPiA+IFNCQ0wKPiA+Cj4gPgo+ID4gX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IFNiY2wtY29tbWl0cyBt
YWlsaW5nIGxpc3QKPiA+IFNiY2wtY29tbWl0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKPiA+IGh0
dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL3NiY2wtY29tbWl0cwoK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClNiY2wtY29t
bWl0cyBtYWlsaW5nIGxpc3QKU2JjbC1jb21taXRzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRw
czovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9zYmNsLWNvbW1pdHMK