Re: zlib not found

Jan Callewaert <[email protected]> Sat, 22 Oct 2005 12:09:35 +0200
Newsgroups gmane.comp.breve
Message-ID <[email protected]>
------=_Part_1820_29339147.1129975775104
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

I have attached my config.log, but I can't make up a lot about it.

This should be the relevant part:

| /* confdefs.h.  */
|
| #define PACKAGE_NAME "the breve simulation environment"
| #define PACKAGE_TARNAME "the-breve-simulation-environment"
| #define PACKAGE_VERSION "2.3"
| #define PACKAGE_STRING "the breve simulation environment 2.3"
| #define PACKAGE_BUGREPORT "[email protected]"
| #ifdef __cplusplus
| extern "C" void std::exit (int) throw (); using std::exit;
| #endif
| #define TIME_WITH_SYS_TIME 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_WCTYPE_H 1
| #define HAVE_PTHREAD_H 1
| #define HAVE_PTHREADS 10
| #define HAVE_LINUX_THREADS 1
| #define HAVE_SCHED_H 1
| /* end confdefs.h.  */
|
| /* Override any gcc2 internal prototype to avoid an error.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| /* We use char because int might match the return type of a gcc2
|    builtin and then its argument prototype would still apply.  */
| char gzopen ();
| int
| main ()
| {
| gzopen ();
|   ;
|   return 0;
| }
configure:7943: result: no
configure:7954: error: Missing zlib library -- see http://www.zlib.org
See `config.log' for more details.


Regards,

Jan


2005/10/21, jon klein <[email protected]>:
>
> On Oct 21, 2005, at 9:32 AM, Jan Callewaert wrote:
>
> > $ ./configure
> > <...>
> > checking for gzopen in -lz... no
> > configure: error: Missing zlib library -- see http://www.zlib.org
> > See `config.log' for more details.
> >
> >
> > Other programs wich require zlib configure and compile just fine. Is
> > this some kind of bug in the configure, or is there a problem on my
> > system?
>
> Have a look at the file config.log -- you should find a more detailed
> error describing exactly why it's not working with the zlib you have
> installed.
>
> - jon klein
> _______________________________________________
> breve mailing list
> [email protected]
> http://lists.spiderland.org/mailman/listinfo/breve
>

------=_Part_1820_29339147.1129975775104
Content-Type: application/octet-stream; name="config.log"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="config.log"

VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp
bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz
IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IHRoZSBicmV2ZSBzaW11bGF0aW9uIGVudmly
b25tZW50IGNvbmZpZ3VyZSAyLjMsIHdoaWNoIHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25m
IDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKCiAgJCAuL2NvbmZpZ3VyZSAKCiMj
IC0tLS0tLS0tLSAjIwojIyBQbGF0Zm9ybS4gIyMKIyMgLS0tLS0tLS0tICMjCgpob3N0bmFtZSA9
IGNsdXN0aXMyLmlkaS5udG51Lm5vCnVuYW1lIC1tID0gaTY4Ngp1bmFtZSAtciA9IDIuNi45LTUu
MC41LkVMc21wCnVuYW1lIC1zID0gTGludXgKdW5hbWUgLXYgPSAjMSBTTVAgV2VkIEFwciAyMCAw
MDoxNjo0MCBCU1QgMjAwNQoKL3Vzci9iaW4vdW5hbWUgLXAgPSB1bmtub3duCi9iaW4vdW5hbWUg
LVggICAgID0gdW5rbm93bgoKL2Jpbi9hcmNoICAgICAgICAgICAgICA9IGk2ODYKL3Vzci9iaW4v
YXJjaCAtayAgICAgICA9IHVua25vd24KL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IHVua25vd24K
aG9zdGluZm8gICAgICAgICAgICAgICA9IHVua25vd24KL2Jpbi9tYWNoaW5lICAgICAgICAgICA9
IHVua25vd24KL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IHVua25vd24KL2Jpbi91bml2ZXJzZSAg
ICAgICAgICA9IHVua25vd24KClBBVEg6IC9vcHQvbXBpY2gvaW50ZWwvMS4yLjQvYmluClBBVEg6
IC9vcHQvbXBpZXhlYy9pbnRlbC8wLjgwL2JpbgpQQVRIOiAvb3B0L2lmb3J0LzkuMC9iaW4KUEFU
SDogL29wdC9pY2MvOS4wL2JpbgpQQVRIOiAvaG9tZS9jYWxsZXdhZS9sb2NhbC9iaW4KUEFUSDog
L3Vzci9rZXJiZXJvcy9iaW4KUEFUSDogL3Vzci9sb2NhbC9iaW4KUEFUSDogL2JpbgpQQVRIOiAv
dXNyL2JpbgpQQVRIOiAvdXNyL1gxMVI2L2JpbgpQQVRIOiAvb3B0L2dhbmdsaWEvYmluClBBVEg6
IC9vcHQvbWF1aS9iaW4KUEFUSDogL29wdC90b3JxdWUvYmluClBBVEg6IC9vcHQvdG9ycXVlL3Ni
aW4KUEFUSDogL29wdC9yb2Nrcy9iaW4KUEFUSDogL29wdC9yb2Nrcy9zYmluClBBVEg6IC9ob21l
L2NhbGxld2FlL2JpbgoKCiMjIC0tLS0tLS0tLS0tICMjCiMjIENvcmUgdGVzdHMuICMjCiMjIC0t
LS0tLS0tLS0tICMjCgpjb25maWd1cmU6MTM3NjogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUK
Y29uZmlndXJlOjEzOTQ6IHJlc3VsdDogaTY4Ni1wYy1saW51eC1nbnUKY29uZmlndXJlOjE0MDI6
IGNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUKY29uZmlndXJlOjE0MTY6IHJlc3VsdDogaTY4Ni1w
Yy1saW51eC1nbnUKY29uZmlndXJlOjE0NzY6IGNoZWNraW5nIGZvciBhcgpjb25maWd1cmU6MTQ5
MjogZm91bmQgL3Vzci9iaW4vYXIKY29uZmlndXJlOjE1MDI6IHJlc3VsdDogYXIKY29uZmlndXJl
OjE1NjE6IGNoZWNraW5nIGZvciBnY2MKY29uZmlndXJlOjE1Nzc6IGZvdW5kIC91c3IvYmluL2dj
Ywpjb25maWd1cmU6MTU4NzogcmVzdWx0OiBnY2MKY29uZmlndXJlOjE4MzE6IGNoZWNraW5nIGZv
ciBDIGNvbXBpbGVyIHZlcnNpb24KY29uZmlndXJlOjE4MzQ6IGdjYyAtLXZlcnNpb24gPC9kZXYv
bnVsbCA+JjUKZ2NjIChHQ0MpIDMuNC4zIDIwMDQxMjEyIChSZWQgSGF0IDMuNC4zLTkuRUw0KQpD
b3B5cmlnaHQgKEMpIDIwMDQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuClRoaXMgaXMg
ZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRo
ZXJlIGlzIE5PCndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgoKY29uZmlndXJlOjE4Mzc6ICQ/ID0gMApjb25m
aWd1cmU6MTgzOTogZ2NjIC12IDwvZGV2L251bGwgPiY1ClJlYWRpbmcgc3BlY3MgZnJvbSAvdXNy
L2xpYi9nY2MvaTM4Ni1yZWRoYXQtbGludXgvMy40LjMvc3BlY3MKQ29uZmlndXJlZCB3aXRoOiAu
Li9jb25maWd1cmUgLS1wcmVmaXg9L3VzciAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLWluZm9k
aXI9L3Vzci9zaGFyZS9pbmZvIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4
IC0tZGlzYWJsZS1jaGVja2luZyAtLXdpdGgtc3lzdGVtLXpsaWIgLS1lbmFibGUtX19jeGFfYXRl
eGl0IC0tZGlzYWJsZS1saWJ1bndpbmQtZXhjZXB0aW9ucyAtLWVuYWJsZS1qYXZhLWF3dD1ndGsg
LS1ob3N0PWkzODYtcmVkaGF0LWxpbnV4ClRocmVhZCBtb2RlbDogcG9zaXgKZ2NjIHZlcnNpb24g
My40LjMgMjAwNDEyMTIgKFJlZCBIYXQgMy40LjMtOS5FTDQpCmNvbmZpZ3VyZToxODQyOiAkPyA9
IDAKY29uZmlndXJlOjE4NDQ6IGdjYyAtViA8L2Rldi9udWxsID4mNQpnY2M6IGAtVicgb3B0aW9u
IG11c3QgaGF2ZSBhcmd1bWVudApjb25maWd1cmU6MTg0NzogJD8gPSAxCmNvbmZpZ3VyZToxODcw
OiBjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUKY29uZmln
dXJlOjE4NzM6IGdjYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgIC1ML2hvbWUvY2Fs
bGV3YWUvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6MTg3NjogJD8gPSAwCmNv
bmZpZ3VyZToxOTIyOiByZXN1bHQ6IGEub3V0CmNvbmZpZ3VyZToxOTI3OiBjaGVja2luZyB3aGV0
aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzCmNvbmZpZ3VyZToxOTMzOiAuL2Eub3V0CmNvbmZpZ3Vy
ZToxOTM2OiAkPyA9IDAKY29uZmlndXJlOjE5NTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxOTYw
OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcKY29uZmlndXJlOjE5NjI6
IHJlc3VsdDogbm8KY29uZmlndXJlOjE5NjU6IGNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0
YWJsZXMKY29uZmlndXJlOjE5Njc6IGdjYyAtbyBjb25mdGVzdCAtSS9ob21lL2NhbGxld2FlL2xv
Y2FsL2luY2x1ZGUgIC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgID4mNQpj
b25maWd1cmU6MTk3MDogJD8gPSAwCmNvbmZpZ3VyZToxOTk1OiByZXN1bHQ6IApjb25maWd1cmU6
MjAwMTogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMKY29uZmlndXJlOjIwMjI6
IGdjYyAtYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgIGNvbmZ0ZXN0LmMgPiY1CmNv
bmZpZ3VyZToyMDI1OiAkPyA9IDAKY29uZmlndXJlOjIwNDc6IHJlc3VsdDogbwpjb25maWd1cmU6
MjA1MTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyCmNv
bmZpZ3VyZToyMDc1OiBnY2MgLWMgLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICBjb25m
dGVzdC5jID4mNQpjb25maWd1cmU6MjA4MTogJD8gPSAwCmNvbmZpZ3VyZToyMDg1OiB0ZXN0IC16
IAoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgpjb25maWd1cmU6MjA4ODogJD8gPSAwCmNv
bmZpZ3VyZToyMDkxOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KY29uZmlndXJlOjIwOTQ6ICQ/ID0gMApj
b25maWd1cmU6MjEwNzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjIxMTM6IGNoZWNraW5nIHdoZXRo
ZXIgZ2NjIGFjY2VwdHMgLWcKY29uZmlndXJlOjIxMzQ6IGdjYyAtYyAtZyAgY29uZnRlc3QuYyA+
JjUKY29uZmlndXJlOjIxNDA6ICQ/ID0gMApjb25maWd1cmU6MjE0NDogdGVzdCAteiAKCQkJIHx8
IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjIxNDc6ICQ/ID0gMApjb25maWd1cmU6
MjE1MDogdGVzdCAtcyBjb25mdGVzdC5vCmNvbmZpZ3VyZToyMTUzOiAkPyA9IDAKY29uZmlndXJl
OjIxNjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMTgxOiBjaGVja2luZyBmb3IgZ2NjIG9wdGlv
biB0byBhY2NlcHQgQU5TSSBDCmNvbmZpZ3VyZToyMjUxOiBnY2MgIC1jIC1JL2hvbWUvY2FsbGV3
YWUvbG9jYWwvaW5jbHVkZSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjIyNTc6ICQ/ID0gMApj
b25maWd1cmU6MjI2MTogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29u
ZmlndXJlOjIyNjQ6ICQ/ID0gMApjb25maWd1cmU6MjI2NzogdGVzdCAtcyBjb25mdGVzdC5vCmNv
bmZpZ3VyZToyMjcwOiAkPyA9IDAKY29uZmlndXJlOjIyODg6IHJlc3VsdDogbm9uZSBuZWVkZWQK
Y29uZmlndXJlOjIzMDY6IGdjYyAtYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgIGNv
bmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MjogZXJyb3I6IHN5bnRheCBlcnJvciBiZWZvcmUgIm1l
Igpjb25maWd1cmU6MjMxMjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8
ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAgIGNob2tlIG1lCnwgI2VuZGlmCmNvbmZpZ3VyZToyNDk3
OiBjaGVja2luZyBmb3IgZysrCmNvbmZpZ3VyZToyNTEzOiBmb3VuZCAvdXNyL2Jpbi9nKysKY29u
ZmlndXJlOjI1MjM6IHJlc3VsdDogZysrCmNvbmZpZ3VyZToyNTM5OiBjaGVja2luZyBmb3IgQysr
IGNvbXBpbGVyIHZlcnNpb24KY29uZmlndXJlOjI1NDI6IGcrKyAtLXZlcnNpb24gPC9kZXYvbnVs
bCA+JjUKZysrIChHQ0MpIDMuNC4zIDIwMDQxMjEyIChSZWQgSGF0IDMuNC4zLTkuRUw0KQpDb3B5
cmlnaHQgKEMpIDIwMDQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuClRoaXMgaXMgZnJl
ZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJl
IGlzIE5PCndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgoKY29uZmlndXJlOjI1NDU6ICQ/ID0gMApjb25maWd1
cmU6MjU0NzogZysrIC12IDwvZGV2L251bGwgPiY1ClJlYWRpbmcgc3BlY3MgZnJvbSAvdXNyL2xp
Yi9nY2MvaTM4Ni1yZWRoYXQtbGludXgvMy40LjMvc3BlY3MKQ29uZmlndXJlZCB3aXRoOiAuLi9j
b25maWd1cmUgLS1wcmVmaXg9L3VzciAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLWluZm9kaXI9
L3Vzci9zaGFyZS9pbmZvIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0t
ZGlzYWJsZS1jaGVja2luZyAtLXdpdGgtc3lzdGVtLXpsaWIgLS1lbmFibGUtX19jeGFfYXRleGl0
IC0tZGlzYWJsZS1saWJ1bndpbmQtZXhjZXB0aW9ucyAtLWVuYWJsZS1qYXZhLWF3dD1ndGsgLS1o
b3N0PWkzODYtcmVkaGF0LWxpbnV4ClRocmVhZCBtb2RlbDogcG9zaXgKZ2NjIHZlcnNpb24gMy40
LjMgMjAwNDEyMTIgKFJlZCBIYXQgMy40LjMtOS5FTDQpCmNvbmZpZ3VyZToyNTUwOiAkPyA9IDAK
Y29uZmlndXJlOjI1NTI6IGcrKyAtViA8L2Rldi9udWxsID4mNQpnKys6IGAtVicgb3B0aW9uIG11
c3QgaGF2ZSBhcmd1bWVudApjb25maWd1cmU6MjU1NTogJD8gPSAxCmNvbmZpZ3VyZToyNTU4OiBj
aGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMrKyBjb21waWxlcgpjb25maWd1
cmU6MjU4MjogZysrIC1jICAgY29uZnRlc3QuY2MgPiY1CmNvbmZpZ3VyZToyNTg4OiAkPyA9IDAK
Y29uZmlndXJlOjI1OTI6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNv
bmZpZ3VyZToyNTk1OiAkPyA9IDAKY29uZmlndXJlOjI1OTg6IHRlc3QgLXMgY29uZnRlc3Qubwpj
b25maWd1cmU6MjYwMTogJD8gPSAwCmNvbmZpZ3VyZToyNjE0OiByZXN1bHQ6IHllcwpjb25maWd1
cmU6MjYyMDogY2hlY2tpbmcgd2hldGhlciBnKysgYWNjZXB0cyAtZwpjb25maWd1cmU6MjY0MTog
ZysrIC1jIC1nICBjb25mdGVzdC5jYyA+JjUKY29uZmlndXJlOjI2NDc6ICQ/ID0gMApjb25maWd1
cmU6MjY1MTogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJl
OjI2NTQ6ICQ/ID0gMApjb25maWd1cmU6MjY1NzogdGVzdCAtcyBjb25mdGVzdC5vCmNvbmZpZ3Vy
ZToyNjYwOiAkPyA9IDAKY29uZmlndXJlOjI2NzE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyNzEz
OiBnKysgLWMgLWcgLU8yICBjb25mdGVzdC5jYyA+JjUKY29uZmlndXJlOjI3MTk6ICQ/ID0gMApj
b25maWd1cmU6MjcyMzogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29u
ZmlndXJlOjI3MjY6ICQ/ID0gMApjb25maWd1cmU6MjcyOTogdGVzdCAtcyBjb25mdGVzdC5vCmNv
bmZpZ3VyZToyNzMyOiAkPyA9IDAKY29uZmlndXJlOjI3NTg6IGcrKyAtYyAtZyAtTzIgIGNvbmZ0
ZXN0LmNjID4mNQpjb25mdGVzdC5jYzogSW4gZnVuY3Rpb24gYGludCBtYWluKCknOgpjb25mdGVz
dC5jYzoxMzogZXJyb3I6IGBleGl0JyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgdGhpcyBmdW5jdGlv
bikKY29uZnRlc3QuY2M6MTM6IGVycm9yOiAoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMg
cmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQpjb25m
aWd1cmU6Mjc2NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv
bmZkZWZzLmguICAqLwp8IAp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJ0aGUgYnJldmUgc2ltdWxh
dGlvbiBlbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAidGhlLWJyZXZlLXNp
bXVsYXRpb24tZW52aXJvbm1lbnQiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMyIKfCAj
ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCAy
LjMiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiamtAc3BpZGVybGFuZC5vcmciCnwgLyog
ZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgZXhpdCAoNDIpOwp8
ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxMzogZysrIC1jIC1nIC1PMiAgY29u
ZnRlc3QuY2MgPiY1CmNvbmZpZ3VyZToyNzE5OiAkPyA9IDAKY29uZmlndXJlOjI3MjM6IHRlc3Qg
LXogCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZToyNzI2OiAkPyA9IDAK
Y29uZmlndXJlOjI3Mjk6IHRlc3QgLXMgY29uZnRlc3Qubwpjb25maWd1cmU6MjczMjogJD8gPSAw
CmNvbmZpZ3VyZToyNzU4OiBnKysgLWMgLWcgLU8yICBjb25mdGVzdC5jYyA+JjUKY29uZmlndXJl
OjI3NjQ6ICQ/ID0gMApjb25maWd1cmU6Mjc2ODogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBj
b25mdGVzdC5lcnIKY29uZmlndXJlOjI3NzE6ICQ/ID0gMApjb25maWd1cmU6Mjc3NDogdGVzdCAt
cyBjb25mdGVzdC5vCmNvbmZpZ3VyZToyNzc3OiAkPyA9IDAKY29uZmlndXJlOjI4MDU6IGNoZWNr
aW5nIGZvciBqYXIKY29uZmlndXJlOjI4MzQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjI4MDU6IGNo
ZWNraW5nIGZvciBmYXN0amFyCmNvbmZpZ3VyZToyODM0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToy
ODA1OiBjaGVja2luZyBmb3IgZWphcgpjb25maWd1cmU6MjgzNDogcmVzdWx0OiBubwpjb25maWd1
cmU6Mjg1NDogY2hlY2tpbmcgZm9yIGphdmFjCmNvbmZpZ3VyZToyODgzOiByZXN1bHQ6IG5vCmNv
bmZpZ3VyZToyODU0OiBjaGVja2luZyBmb3IgZ2NqCmNvbmZpZ3VyZToyODgzOiByZXN1bHQ6IG5v
CmNvbmZpZ3VyZToyODU0OiBjaGVja2luZyBmb3IgZWdjagpjb25maWd1cmU6Mjg4MzogcmVzdWx0
OiBubwpjb25maWd1cmU6Mjg1NDogY2hlY2tpbmcgZm9yIGd1YXZhYwpjb25maWd1cmU6Mjg4Mzog
cmVzdWx0OiBubwpjb25maWd1cmU6Mjg1NDogY2hlY2tpbmcgZm9yIGppa2VzCmNvbmZpZ3VyZToy
ODgzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyODk3OiBjaGVja2luZyBpZiA6IHdvcmtzCmNvbmZp
Z3VyZToyOTExOiA6ICBUZXN0LmphdmEKY29uZmlndXJlOjI5MTQ6ICQ/ID0gMApjb25maWd1cmU6
MjkyNzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjI5Mzk6IGNoZWNraW5nIGZvciBmbGV4CmNvbmZp
Z3VyZToyOTY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyOTM5OiBjaGVja2luZyBmb3IgbGV4CmNv
bmZpZ3VyZToyOTY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyOTc4OiBjaGVja2luZyBmb3IgeXl3
cmFwIGluIC1sZmwKY29uZmlndXJlOjMwMDg6IGdjYyAtbyBjb25mdGVzdCAtSS9ob21lL2NhbGxl
d2FlL2xvY2FsL2luY2x1ZGUgIC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliIGNvbmZ0ZXN0LmMg
LWxmbCAgID4mNQovdXNyL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxmbApjb2xsZWN0MjogbGQgcmV0
dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MzAxNDogJD8gPSAxCmNvbmZpZ3VyZTogZmFp
bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8IAp8ICNkZWZpbmUgUEFDS0FH
RV9OQU1FICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBBQ0tB
R0VfVEFSTkFNRSAidGhlLWJyZXZlLXNpbXVsYXRpb24tZW52aXJvbm1lbnQiCnwgI2RlZmluZSBQ
QUNLQUdFX1ZFUlNJT04gIjIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJ0aGUgYnJldmUg
c2ltdWxhdGlvbiBlbnZpcm9ubWVudCAyLjMiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi
amtAc3BpZGVybGFuZC5vcmciCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIiB2b2lk
IHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0Owp8ICNlbmRpZgp8IC8q
IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBw
cm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4
dGVybiAiQyIKfCAjZW5kaWYKfCAvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj
aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn
dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCBjaGFyIHl5d3JhcCAoKTsK
fCBpbnQKfCBtYWluICgpCnwgewp8IHl5d3JhcCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K
Y29uZmlndXJlOjMwNDA6IHJlc3VsdDogbm8KY29uZmlndXJlOjMwNDU6IGNoZWNraW5nIGZvciB5
eXdyYXAgaW4gLWxsCmNvbmZpZ3VyZTozMDc1OiBnY2MgLW8gY29uZnRlc3QgLUkvaG9tZS9jYWxs
ZXdhZS9sb2NhbC9pbmNsdWRlICAtTC9ob21lL2NhbGxld2FlL2xvY2FsL2xpYiBjb25mdGVzdC5j
IC1sbCAgID4mNQovdXNyL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxsCmNvbGxlY3QyOiBsZCByZXR1
cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTozMDgxOiAkPyA9IDEKY29uZmlndXJlOiBmYWls
ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgCnwgI2RlZmluZSBQQUNLQUdF
X05BTUUgInRoZSBicmV2ZSBzaW11bGF0aW9uIGVudmlyb25tZW50Igp8ICNkZWZpbmUgUEFDS0FH
RV9UQVJOQU1FICJ0aGUtYnJldmUtc2ltdWxhdGlvbi1lbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBB
Q0tBR0VfVkVSU0lPTiAiMi4zIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInRoZSBicmV2ZSBz
aW11bGF0aW9uIGVudmlyb25tZW50IDIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJq
a0BzcGlkZXJsYW5kLm9yZyIKfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiIHZvaWQg
c3RkOjpleGl0IChpbnQpIHRocm93ICgpOyB1c2luZyBzdGQ6OmV4aXQ7CnwgI2VuZGlmCnwgLyog
ZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHBy
b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0
ZXJuICJDIgp8ICNlbmRpZgp8IC8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo
IHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1
bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8IGNoYXIgeXl3cmFwICgpOwp8
IGludAp8IG1haW4gKCkKfCB7CnwgeXl3cmFwICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj
b25maWd1cmU6MzEwNzogcmVzdWx0OiBubwpjb25maWd1cmU6MzIwOTogY2hlY2tpbmcgd2hldGhl
ciBtYWtlIHNldHMgJChNQUtFKQpjb25maWd1cmU6MzIyOTogcmVzdWx0OiB5ZXMKY29uZmlndXJl
OjMyNzk6IGNoZWNraW5nIGZvciByYW5saWIKY29uZmlndXJlOjMyOTU6IGZvdW5kIC91c3IvYmlu
L3JhbmxpYgpjb25maWd1cmU6MzMwNjogcmVzdWx0OiByYW5saWIKY29uZmlndXJlOjMzMjI6IGNo
ZWNraW5nIGZvciBiaXNvbgpjb25maWd1cmU6MzM1MTogcmVzdWx0OiBubwpjb25maWd1cmU6MzMy
MjogY2hlY2tpbmcgZm9yIGJ5YWNjCmNvbmZpZ3VyZTozMzUxOiByZXN1bHQ6IG5vCmNvbmZpZ3Vy
ZTozMzcxOiBjaGVja2luZyBmb3IgbWtkZXAKY29uZmlndXJlOjM0MDQ6IHJlc3VsdDogbm8KY29u
ZmlndXJlOjM0MTA6IGNoZWNraW5nIGZvciBtYWtlZGVwZW5kCmNvbmZpZ3VyZTozNDI4OiBmb3Vu
ZCAvdXNyL1gxMVI2L2Jpbi9tYWtlZGVwZW5kCmNvbmZpZ3VyZTozNDQwOiByZXN1bHQ6IC91c3Iv
WDExUjYvYmluL21ha2VkZXBlbmQKY29uZmlndXJlOjM0NDg6IGNoZWNraW5nIGhvdyB0byBnZW5l
cmF0ZSBkZXBlbmRlbmN5IGluZm8KY29uZmlndXJlOjM0NTE6IHJlc3VsdDogZysrIC1NTQpjb25m
aWd1cmU6MzQ3NDogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IKY29uZmln
dXJlOjM1MDk6IGdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6MzUxNTogJD8gPSAwCmNvbmZp
Z3VyZTozNTQ3OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoxMjoyODogYWNfbm9uZXhp
c3RlbnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6MzU1MzogJD8gPSAx
CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8IAp8
ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCIK
fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAidGhlLWJyZXZlLXNpbXVsYXRpb24tZW52aXJvbm1l
bnQiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS
SU5HICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCAyLjMiCnwgI2RlZmluZSBQQUNL
QUdFX0JVR1JFUE9SVCAiamtAc3BpZGVybGFuZC5vcmciCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwg
ZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0
Owp8ICNlbmRpZgp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8YWNfbm9uZXhp
c3RlbnQuaD4KY29uZmlndXJlOjM1OTI6IHJlc3VsdDogZ2NjIC1FCmNvbmZpZ3VyZTozNjE2OiBn
Y2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjM2MjI6ICQ/ID0gMApjb25maWd1cmU6MzY1NDog
Z2NjIC1FICBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6MTI6Mjg6IGFjX25vbmV4aXN0ZW50Lmg6IE5v
IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmlndXJlOjM2NjA6ICQ/ID0gMQpjb25maWd1cmU6
IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAKfCAjZGVmaW5lIFBB
Q0tBR0VfTkFNRSAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQiCnwgI2RlZmluZSBQ
QUNLQUdFX1RBUk5BTUUgInRoZS1icmV2ZS1zaW11bGF0aW9uLWVudmlyb25tZW50Igp8ICNkZWZp
bmUgUEFDS0FHRV9WRVJTSU9OICIyLjMiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAidGhlIGJy
ZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQgMi4zIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP
UlQgImprQHNwaWRlcmxhbmQub3JnIgp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIg
dm9pZCBzdGQ6OmV4aXQgKGludCkgdGhyb3cgKCk7IHVzaW5nIHN0ZDo6ZXhpdDsKfCAjZW5kaWYK
fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CmNv
bmZpZ3VyZTozNzA0OiBjaGVja2luZyBmb3IgWApjb25maWd1cmU6MzkzNDogcmVzdWx0OiBsaWJy
YXJpZXMgL3Vzci9YMTFSNi9saWIsIGhlYWRlcnMgL3Vzci9YMTFSNi9pbmNsdWRlCmNvbmZpZ3Vy
ZTo0MTA2OiBnY2MgLW8gY29uZnRlc3QgLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAt
TC9ob21lL2NhbGxld2FlL2xvY2FsL2xpYiBjb25mdGVzdC5jICAgLUwvdXNyL1gxMVI2L2xpYiAt
bFgxMSA+JjUKY29uZmlndXJlOjQxMTI6ICQ/ID0gMApjb25maWd1cmU6NDExNjogdGVzdCAteiAK
CQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjQxMTk6ICQ/ID0gMApjb25m
aWd1cmU6NDEyMjogdGVzdCAtcyBjb25mdGVzdApjb25maWd1cmU6NDEyNTogJD8gPSAwCmNvbmZp
Z3VyZTo0MjgzOiBjaGVja2luZyBmb3IgZ2V0aG9zdGJ5bmFtZQpjb25maWd1cmU6NDM0MDogZ2Nj
IC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgLUwvaG9tZS9jYWxs
ZXdhZS9sb2NhbC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo0MzQ2OiAkPyA9IDAKY29u
ZmlndXJlOjQzNTA6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZp
Z3VyZTo0MzUzOiAkPyA9IDAKY29uZmlndXJlOjQzNTY6IHRlc3QgLXMgY29uZnRlc3QKY29uZmln
dXJlOjQzNTk6ICQ/ID0gMApjb25maWd1cmU6NDM3MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ1
MjI6IGNoZWNraW5nIGZvciBjb25uZWN0CmNvbmZpZ3VyZTo0NTc5OiBnY2MgLW8gY29uZnRlc3Qg
LUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAtTC9ob21lL2NhbGxld2FlL2xvY2FsL2xp
YiBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjQ1ODU6ICQ/ID0gMApjb25maWd1cmU6NDU4OTog
dGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjQ1OTI6ICQ/
ID0gMApjb25maWd1cmU6NDU5NTogdGVzdCAtcyBjb25mdGVzdApjb25maWd1cmU6NDU5ODogJD8g
PSAwCmNvbmZpZ3VyZTo0NjEwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDY4NTogY2hlY2tpbmcg
Zm9yIHJlbW92ZQpjb25maWd1cmU6NDc0MjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3
YWUvbG9jYWwvaW5jbHVkZSAgLUwvaG9tZS9jYWxsZXdhZS9sb2NhbC9saWIgY29uZnRlc3QuYyAg
PiY1CmNvbmZpZ3VyZTo0NzQ4OiAkPyA9IDAKY29uZmlndXJlOjQ3NTI6IHRlc3QgLXogCgkJCSB8
fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo0NzU1OiAkPyA9IDAKY29uZmlndXJl
OjQ3NTg6IHRlc3QgLXMgY29uZnRlc3QKY29uZmlndXJlOjQ3NjE6ICQ/ID0gMApjb25maWd1cmU6
NDc3MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ4NDg6IGNoZWNraW5nIGZvciBzaG1hdApjb25m
aWd1cmU6NDkwNTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVk
ZSAgLUwvaG9tZS9jYWxsZXdhZS9sb2NhbC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo0
OTExOiAkPyA9IDAKY29uZmlndXJlOjQ5MTU6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMgY29u
ZnRlc3QuZXJyCmNvbmZpZ3VyZTo0OTE4OiAkPyA9IDAKY29uZmlndXJlOjQ5MjE6IHRlc3QgLXMg
Y29uZnRlc3QKY29uZmlndXJlOjQ5MjQ6ICQ/ID0gMApjb25maWd1cmU6NDkzNjogcmVzdWx0OiB5
ZXMKY29uZmlndXJlOjUwMjA6IGNoZWNraW5nIGZvciBJY2VDb25uZWN0aW9uTnVtYmVyIGluIC1s
SUNFCmNvbmZpZ3VyZTo1MDUwOiBnY2MgLW8gY29uZnRlc3QgLUkvaG9tZS9jYWxsZXdhZS9sb2Nh
bC9pbmNsdWRlICAtTC9ob21lL2NhbGxld2FlL2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGliIGNv
bmZ0ZXN0LmMgLWxJQ0UgICA+JjUKY29uZmlndXJlOjUwNTY6ICQ/ID0gMApjb25maWd1cmU6NTA2
MDogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjUwNjM6
ICQ/ID0gMApjb25maWd1cmU6NTA2NjogdGVzdCAtcyBjb25mdGVzdApjb25maWd1cmU6NTA2OTog
JD8gPSAwCmNvbmZpZ3VyZTo1MDgyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTE3NjogY2hlY2tp
bmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUgaW5jbHVkZWQKY29u
ZmlndXJlOjUyMDE6IGdjYyAtYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgICAtSS91
c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTIwNzogJD8gPSAwCmNv
bmZpZ3VyZTo1MjExOiB0ZXN0IC16IAoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgpjb25m
aWd1cmU6NTIxNDogJD8gPSAwCmNvbmZpZ3VyZTo1MjE3OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KY29u
ZmlndXJlOjUyMjA6ICQ/ID0gMApjb25maWd1cmU6NTIzMTogcmVzdWx0OiB5ZXMKY29uZmlndXJl
OjUyNDE6IGNoZWNraW5nIGZvciBlZ3JlcApjb25maWd1cmU6NTI1MTogcmVzdWx0OiBncmVwIC1F
CmNvbmZpZ3VyZTo1MjU2OiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcwpjb25maWd1
cmU6NTI4MTogZ2NjIC1jIC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9Y
MTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1Mjg3OiAkPyA9IDAKY29uZmln
dXJlOjUyOTE6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3Vy
ZTo1Mjk0OiAkPyA9IDAKY29uZmlndXJlOjUyOTc6IHRlc3QgLXMgY29uZnRlc3Qubwpjb25maWd1
cmU6NTMwMDogJD8gPSAwCmNvbmZpZ3VyZTo1Mzg5OiBnY2MgLW8gY29uZnRlc3QgLUkvaG9tZS9j
YWxsZXdhZS9sb2NhbC9pbmNsdWRlICAgLUkvdXNyL1gxMVI2L2luY2x1ZGUgLUwvaG9tZS9jYWxs
ZXdhZS9sb2NhbC9saWIgIC1ML3Vzci9YMTFSNi9saWIgY29uZnRlc3QuYyAtbGdsdXQgLWxHTFUg
LWxHTCAtbFhtdSAtbFhpICAtbFgxMSAgLWxTTSAtbElDRSAgPiY1Ci91c3IvYmluL2xkOiBjYW5u
b3QgZmluZCAtbGdsdXQKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmln
dXJlOjUzOTI6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzIDEK
Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgCnwg
I2RlZmluZSBQQUNLQUdFX05BTUUgInRoZSBicmV2ZSBzaW11bGF0aW9uIGVudmlyb25tZW50Igp8
ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJ0aGUtYnJldmUtc2ltdWxhdGlvbi1lbnZpcm9ubWVu
dCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4zIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ
TkcgInRoZSBicmV2ZSBzaW11bGF0aW9uIGVudmlyb25tZW50IDIuMyIKfCAjZGVmaW5lIFBBQ0tB
R0VfQlVHUkVQT1JUICJqa0BzcGlkZXJsYW5kLm9yZyIKfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBl
eHRlcm4gIkMiIHZvaWQgc3RkOjpleGl0IChpbnQpIHRocm93ICgpOyB1c2luZyBzdGQ6OmV4aXQ7
CnwgI2VuZGlmCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8IC8qIGVuZCBjb25mZGVm
cy5oLiAgKi8KfCAjaW5jbHVkZSA8Y3R5cGUuaD4KfCAjaWYgKCgnICcgJiAweDBGRikgPT0gMHgw
MjApCnwgIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQp8ICMg
ZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkK
fCAjZWxzZQp8ICMgZGVmaW5lIElTTE9XRVIoYykgCQkgICAoKCdhJyA8PSAoYykgJiYgKGMpIDw9
ICdpJykgCQkgICAgIHx8ICgnaicgPD0gKGMpICYmIChjKSA8PSAncicpIAkJICAgICB8fCAoJ3Mn
IDw9IChjKSAmJiAoYykgPD0gJ3onKSkKfCAjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMp
ID8gKChjKSB8IDB4NDApIDogKGMpKQp8ICNlbmRpZgp8IAp8ICNkZWZpbmUgWE9SKGUsIGYpICgo
KGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAgIGlu
dCBpOwp8ICAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQp8ICAgICBpZiAoWE9SIChpc2xvd2Vy
IChpKSwgSVNMT1dFUiAoaSkpCnwgCXx8IHRvdXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKQp8ICAg
ICAgIGV4aXQoMik7CnwgICBleGl0ICgwKTsKfCB9CmNvbmZpZ3VyZTo1NDEyOiByZXN1bHQ6IG5v
CmNvbmZpZ3VyZTo1NDM2OiBjaGVja2luZyBmb3Igc3lzL3R5cGVzLmgKY29uZmlndXJlOjU0NTI6
IGdjYyAtYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgICAtSS91c3IvWDExUjYvaW5j
bHVkZSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTQ1ODogJD8gPSAwCmNvbmZpZ3VyZTo1NDYy
OiB0ZXN0IC16IAoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgpjb25maWd1cmU6NTQ2NTog
JD8gPSAwCmNvbmZpZ3VyZTo1NDY4OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KY29uZmlndXJlOjU0NzE6
ICQ/ID0gMApjb25maWd1cmU6NTQ4MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU0MzY6IGNoZWNr
aW5nIGZvciBzeXMvc3RhdC5oCmNvbmZpZ3VyZTo1NDUyOiBnY2MgLWMgLUkvaG9tZS9jYWxsZXdh
ZS9sb2NhbC9pbmNsdWRlICAgLUkvdXNyL1gxMVI2L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29u
ZmlndXJlOjU0NTg6ICQ/ID0gMApjb25maWd1cmU6NTQ2MjogdGVzdCAteiAKCQkJIHx8IHRlc3Qg
ISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjU0NjU6ICQ/ID0gMApjb25maWd1cmU6NTQ2ODog
dGVzdCAtcyBjb25mdGVzdC5vCmNvbmZpZ3VyZTo1NDcxOiAkPyA9IDAKY29uZmlndXJlOjU0ODI6
IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NDM2OiBjaGVja2luZyBmb3Igc3RkbGliLmgKY29uZmln
dXJlOjU0NTI6IGdjYyAtYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgICAtSS91c3Iv
WDExUjYvaW5jbHVkZSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTQ1ODogJD8gPSAwCmNvbmZp
Z3VyZTo1NDYyOiB0ZXN0IC16IAoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgpjb25maWd1
cmU6NTQ2NTogJD8gPSAwCmNvbmZpZ3VyZTo1NDY4OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KY29uZmln
dXJlOjU0NzE6ICQ/ID0gMApjb25maWd1cmU6NTQ4MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU0
MzY6IGNoZWNraW5nIGZvciBzdHJpbmcuaApjb25maWd1cmU6NTQ1MjogZ2NjIC1jIC1JL2hvbWUv
Y2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMg
PiY1CmNvbmZpZ3VyZTo1NDU4OiAkPyA9IDAKY29uZmlndXJlOjU0NjI6IHRlc3QgLXogCgkJCSB8
fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo1NDY1OiAkPyA9IDAKY29uZmlndXJl
OjU0Njg6IHRlc3QgLXMgY29uZnRlc3Qubwpjb25maWd1cmU6NTQ3MTogJD8gPSAwCmNvbmZpZ3Vy
ZTo1NDgyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTQzNjogY2hlY2tpbmcgZm9yIG1lbW9yeS5o
CmNvbmZpZ3VyZTo1NDUyOiBnY2MgLWMgLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAg
LUkvdXNyL1gxMVI2L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjU0NTg6ICQ/ID0g
MApjb25maWd1cmU6NTQ2MjogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIK
Y29uZmlndXJlOjU0NjU6ICQ/ID0gMApjb25maWd1cmU6NTQ2ODogdGVzdCAtcyBjb25mdGVzdC5v
CmNvbmZpZ3VyZTo1NDcxOiAkPyA9IDAKY29uZmlndXJlOjU0ODI6IHJlc3VsdDogeWVzCmNvbmZp
Z3VyZTo1NDM2OiBjaGVja2luZyBmb3Igc3RyaW5ncy5oCmNvbmZpZ3VyZTo1NDUyOiBnY2MgLWMg
LUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAgLUkvdXNyL1gxMVI2L2luY2x1ZGUgY29u
ZnRlc3QuYyA+JjUKY29uZmlndXJlOjU0NTg6ICQ/ID0gMApjb25maWd1cmU6NTQ2MjogdGVzdCAt
eiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjU0NjU6ICQ/ID0gMApj
b25maWd1cmU6NTQ2ODogdGVzdCAtcyBjb25mdGVzdC5vCmNvbmZpZ3VyZTo1NDcxOiAkPyA9IDAK
Y29uZmlndXJlOjU0ODI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NDM2OiBjaGVja2luZyBmb3Ig
aW50dHlwZXMuaApjb25maWd1cmU6NTQ1MjogZ2NjIC1jIC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwv
aW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1
NDU4OiAkPyA9IDAKY29uZmlndXJlOjU0NjI6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMgY29u
ZnRlc3QuZXJyCmNvbmZpZ3VyZTo1NDY1OiAkPyA9IDAKY29uZmlndXJlOjU0Njg6IHRlc3QgLXMg
Y29uZnRlc3Qubwpjb25maWd1cmU6NTQ3MTogJD8gPSAwCmNvbmZpZ3VyZTo1NDgyOiByZXN1bHQ6
IHllcwpjb25maWd1cmU6NTQzNjogY2hlY2tpbmcgZm9yIHN0ZGludC5oCmNvbmZpZ3VyZTo1NDUy
OiBnY2MgLWMgLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAgLUkvdXNyL1gxMVI2L2lu
Y2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjU0NTg6ICQ/ID0gMApjb25maWd1cmU6NTQ2
MjogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjU0NjU6
ICQ/ID0gMApjb25maWd1cmU6NTQ2ODogdGVzdCAtcyBjb25mdGVzdC5vCmNvbmZpZ3VyZTo1NDcx
OiAkPyA9IDAKY29uZmlndXJlOjU0ODI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NDM2OiBjaGVj
a2luZyBmb3IgdW5pc3RkLmgKY29uZmlndXJlOjU0NTI6IGdjYyAtYyAtSS9ob21lL2NhbGxld2Fl
L2xvY2FsL2luY2x1ZGUgICAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jID4mNQpjb25m
aWd1cmU6NTQ1ODogJD8gPSAwCmNvbmZpZ3VyZTo1NDYyOiB0ZXN0IC16IAoJCQkgfHwgdGVzdCAh
IC1zIGNvbmZ0ZXN0LmVycgpjb25maWd1cmU6NTQ2NTogJD8gPSAwCmNvbmZpZ3VyZTo1NDY4OiB0
ZXN0IC1zIGNvbmZ0ZXN0Lm8KY29uZmlndXJlOjU0NzE6ICQ/ID0gMApjb25maWd1cmU6NTQ4Mjog
cmVzdWx0OiB5ZXMKY29uZmlndXJlOjU1MDk6IGNoZWNraW5nIHN5cy90aW1lLmggdXNhYmlsaXR5
CmNvbmZpZ3VyZTo1NTIxOiBnY2MgLWMgLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAg
LUkvdXNyL1gxMVI2L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjU1Mjc6ICQ/ID0g
MApjb25maWd1cmU6NTUzMTogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIK
Y29uZmlndXJlOjU1MzQ6ICQ/ID0gMApjb25maWd1cmU6NTUzNzogdGVzdCAtcyBjb25mdGVzdC5v
CmNvbmZpZ3VyZTo1NTQwOiAkPyA9IDAKY29uZmlndXJlOjU1NTA6IHJlc3VsdDogeWVzCmNvbmZp
Z3VyZTo1NTU0OiBjaGVja2luZyBzeXMvdGltZS5oIHByZXNlbmNlCmNvbmZpZ3VyZTo1NTY0OiBn
Y2MgLUUgICAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jCmNvbmZpZ3VyZTo1NTcwOiAk
PyA9IDAKY29uZmlndXJlOjU1OTA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NjI1OiBjaGVja2lu
ZyBmb3Igc3lzL3RpbWUuaApjb25maWd1cmU6NTYzMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU1
MDk6IGNoZWNraW5nIHdjdHlwZS5oIHVzYWJpbGl0eQpjb25maWd1cmU6NTUyMTogZ2NjIC1jIC1J
L2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0
ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1NTI3OiAkPyA9IDAKY29uZmlndXJlOjU1MzE6IHRlc3QgLXog
CgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo1NTM0OiAkPyA9IDAKY29u
ZmlndXJlOjU1Mzc6IHRlc3QgLXMgY29uZnRlc3Qubwpjb25maWd1cmU6NTU0MDogJD8gPSAwCmNv
bmZpZ3VyZTo1NTUwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTU1NDogY2hlY2tpbmcgd2N0eXBl
LmggcHJlc2VuY2UKY29uZmlndXJlOjU1NjQ6IGdjYyAtRSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRl
IGNvbmZ0ZXN0LmMKY29uZmlndXJlOjU1NzA6ICQ/ID0gMApjb25maWd1cmU6NTU5MDogcmVzdWx0
OiB5ZXMKY29uZmlndXJlOjU2MjU6IGNoZWNraW5nIGZvciB3Y3R5cGUuaApjb25maWd1cmU6NTYz
MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU2NDY6IGNoZWNraW5nIGZvciBhbiBBTlNJIEMtY29u
Zm9ybWluZyBjb25zdApjb25maWd1cmU6NTcxMzogZ2NjIC1jIC1JL2hvbWUvY2FsbGV3YWUvbG9j
YWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy
ZTo1NzE5OiAkPyA9IDAKY29uZmlndXJlOjU3MjM6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMg
Y29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo1NzI2OiAkPyA9IDAKY29uZmlndXJlOjU3Mjk6IHRlc3Qg
LXMgY29uZnRlc3Qubwpjb25maWd1cmU6NTczMjogJD8gPSAwCmNvbmZpZ3VyZTo1NzQzOiByZXN1
bHQ6IHllcwpjb25maWd1cmU6NTc1MzogY2hlY2tpbmcgZm9yIGlubGluZQpjb25maWd1cmU6NTc3
NDogZ2NjIC1jIC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9p
bmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1NzgwOiAkPyA9IDAKY29uZmlndXJlOjU3
ODQ6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo1Nzg3
OiAkPyA9IDAKY29uZmlndXJlOjU3OTA6IHRlc3QgLXMgY29uZnRlc3Qubwpjb25maWd1cmU6NTc5
MzogJD8gPSAwCmNvbmZpZ3VyZTo1ODA1OiByZXN1bHQ6IGlubGluZQpjb25maWd1cmU6NTgyNDog
Y2hlY2tpbmcgZm9yIHNpemVfdApjb25maWd1cmU6NTg0ODogZ2NjIC1jIC1JL2hvbWUvY2FsbGV3
YWUvbG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNv
bmZpZ3VyZTo1ODU0OiAkPyA9IDAKY29uZmlndXJlOjU4NTg6IHRlc3QgLXogCgkJCSB8fCB0ZXN0
ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo1ODYxOiAkPyA9IDAKY29uZmlndXJlOjU4NjQ6
IHRlc3QgLXMgY29uZnRlc3Qubwpjb25maWd1cmU6NTg2NzogJD8gPSAwCmNvbmZpZ3VyZTo1ODc4
OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTg5MjogY2hlY2tpbmcgZm9yIGlzbmFuIGluIC1sbQpj
b25maWd1cmU6NTkyMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5j
bHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliICAt
TC91c3IvWDExUjYvbGliIGNvbmZ0ZXN0LmMgLWxtICAtbGdsdXQgLWxHTFUgLWxHTCAtbFhtdSAt
bFhpICAtbFgxMSAgLWxTTSAtbElDRSAgPiY1Ci91c3IvYmluL2xkOiBjYW5ub3QgZmluZCAtbGds
dXQKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjU5Mjg6ICQ/
ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8K
fCAKfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJvbm1l
bnQiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInRoZS1icmV2ZS1zaW11bGF0aW9uLWVudmly
b25tZW50Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjMiCnwgI2RlZmluZSBQQUNLQUdF
X1NUUklORyAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQgMi4zIgp8ICNkZWZpbmUg
UEFDS0FHRV9CVUdSRVBPUlQgImprQHNwaWRlcmxhbmQub3JnIgp8ICNpZmRlZiBfX2NwbHVzcGx1
cwp8IGV4dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQgKGludCkgdGhyb3cgKCk7IHVzaW5nIHN0ZDo6
ZXhpdDsKfCAjZW5kaWYKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBI
QVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBI
QVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9N
RU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZ
UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I
IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1dDVFlQRV9IIDEK
fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJu
YWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMK
fCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQg
bWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRz
IGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgY2hhciBpc25hbiAo
KTsKfCBpbnQKfCBtYWluICgpCnwgewp8IGlzbmFuICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg
fQpjb25maWd1cmU6NTk1NDogcmVzdWx0OiBubwpjb25maWd1cmU6NTk4MDogY2hlY2tpbmcgcHRo
cmVhZC5oIHVzYWJpbGl0eQpjb25maWd1cmU6NTk5MjogZ2NjIC1jIC1JL2hvbWUvY2FsbGV3YWUv
bG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZp
Z3VyZTo1OTk4OiAkPyA9IDAKY29uZmlndXJlOjYwMDI6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEg
LXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo2MDA1OiAkPyA9IDAKY29uZmlndXJlOjYwMDg6IHRl
c3QgLXMgY29uZnRlc3Qubwpjb25maWd1cmU6NjAxMTogJD8gPSAwCmNvbmZpZ3VyZTo2MDIxOiBy
ZXN1bHQ6IHllcwpjb25maWd1cmU6NjAyNTogY2hlY2tpbmcgcHRocmVhZC5oIHByZXNlbmNlCmNv
bmZpZ3VyZTo2MDM1OiBnY2MgLUUgICAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jCmNv
bmZpZ3VyZTo2MDQxOiAkPyA9IDAKY29uZmlndXJlOjYwNjE6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy
ZTo2MDk2OiBjaGVja2luZyBmb3IgcHRocmVhZC5oCmNvbmZpZ3VyZTo2MTAzOiByZXN1bHQ6IHll
cwpjb25maWd1cmU6NjEyMDogY2hlY2tpbmcgUE9TSVggdGhyZWFkIHZlcnNpb24KY29uZmlndXJl
OjYxNDY6IGdjYyAtYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgICAtSS91c3IvWDEx
UjYvaW5jbHVkZSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjE1MjogJD8gPSAwCmNvbmZpZ3Vy
ZTo2MTU2OiB0ZXN0IC16IAoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgpjb25maWd1cmU6
NjE1OTogJD8gPSAwCmNvbmZpZ3VyZTo2MTYyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KY29uZmlndXJl
OjYxNjU6ICQ/ID0gMApjb25maWd1cmU6NjI1MzogcmVzdWx0OiAxMApjb25maWd1cmU6NjI3Mjog
Y2hlY2tpbmcgZm9yIExpbnV4VGhyZWFkcyBwdGhyZWFkLmgKY29uZmlndXJlOjYyOTU6IHJlc3Vs
dDogeWVzCmNvbmZpZ3VyZTo2MzA2OiBjaGVja2luZyBmb3IgR05VIFB0aCBwdGhyZWFkLmgKY29u
ZmlndXJlOjYzMzM6IHJlc3VsdDogbm8KY29uZmlndXJlOjYzNTI6IGNoZWNraW5nIHNjaGVkLmgg
dXNhYmlsaXR5CmNvbmZpZ3VyZTo2MzY0OiBnY2MgLWMgLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9p
bmNsdWRlICAgLUkvdXNyL1gxMVI2L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYz
NzA6ICQ/ID0gMApjb25maWd1cmU6NjM3NDogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25m
dGVzdC5lcnIKY29uZmlndXJlOjYzNzc6ICQ/ID0gMApjb25maWd1cmU6NjM4MDogdGVzdCAtcyBj
b25mdGVzdC5vCmNvbmZpZ3VyZTo2MzgzOiAkPyA9IDAKY29uZmlndXJlOjYzOTM6IHJlc3VsdDog
eWVzCmNvbmZpZ3VyZTo2Mzk3OiBjaGVja2luZyBzY2hlZC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2
NDA3OiBnY2MgLUUgICAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2
NDEzOiAkPyA9IDAKY29uZmlndXJlOjY0MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2NDY4OiBj
aGVja2luZyBmb3Igc2NoZWQuaApjb25maWd1cmU6NjQ3NTogcmVzdWx0OiB5ZXMKY29uZmlndXJl
OjY0OTA6IGNoZWNraW5nIGZvciBwdGhyZWFkX2NyZWF0ZSBpbiBkZWZhdWx0IGxpYnJhcmllcwpj
b25maWd1cmU6NjY4MTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5j
bHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliICAt
TC91c3IvWDExUjYvbGliIGNvbmZ0ZXN0LmMgLWxnbHV0IC1sR0xVIC1sR0wgLWxYbXUgLWxYaSAg
LWxYMTEgIC1sU00gLWxJQ0UgID4mNQovdXNyL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxnbHV0CmNv
bGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo2Njg0OiAkPyA9IDEK
Y29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVk
IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8IAp8ICNkZWZpbmUgUEFDS0FHRV9O
QU1FICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VEFSTkFNRSAidGhlLWJyZXZlLXNpbXVsYXRpb24tZW52aXJvbm1lbnQiCnwgI2RlZmluZSBQQUNL
QUdFX1ZFUlNJT04gIjIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJ0aGUgYnJldmUgc2lt
dWxhdGlvbiBlbnZpcm9ubWVudCAyLjMiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiamtA
c3BpZGVybGFuZC5vcmciCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIiB2b2lkIHN0
ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0Owp8ICNlbmRpZgp8ICNkZWZp
bmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp
bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB
VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF
X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf
VElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfV0NUWVBFX0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE
X0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEUyAxMAp8ICNkZWZpbmUgSEFWRV9MSU5VWF9USFJF
QURTIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8
IC8qIHB0aHJlYWQgdGVzdCBoZWFkZXJzICovCnwgI2luY2x1ZGUgPHB0aHJlYWQuaD4KfCAjaWYg
SEFWRV9QVEhSRUFEUyA8IDcKfCAjaW5jbHVkZSA8ZXJybm8uaD4KfCAjZW5kaWYKfCAjaWZuZGVm
IE5VTEwKfCAjZGVmaW5lIE5VTEwgKHZvaWQqKTAKfCAjZW5kaWYKfCAKfCBzdGF0aWMgdm9pZCAq
dGFzayhwKQp8IAl2b2lkICpwOwp8IHsKfCAJcmV0dXJuICh2b2lkICopIChwID09IE5VTEwpOwp8
IH0KfCAKfCAKfCBpbnQgbWFpbihhcmdjLCBhcmd2KQp8IAlpbnQgYXJnYzsKfCAJY2hhciAqKmFy
Z3Y7Cnwgewp8IAp8IAkvKiBwdGhyZWFkIHRlc3QgZnVuY3Rpb24gKi8KfCAjaWZuZGVmIFBUSFJF
QURfQ1JFQVRFX0RFVEFDSEVECnwgI2RlZmluZQlQVEhSRUFEX0NSRUFURV9ERVRBQ0hFRAkxCnwg
I2VuZGlmCnwgCXB0aHJlYWRfdCB0Owp8IAlpbnQgc3RhdHVzOwp8IAlpbnQgZGV0YWNoID0gUFRI
UkVBRF9DUkVBVEVfREVUQUNIRUQ7CnwgCnwgI2lmIEhBVkVfUFRIUkVBRFMgPiA0CnwgCS8qIEZp
bmFsIHB0aHJlYWRzICovCnwgCXB0aHJlYWRfYXR0cl90IGF0dHI7CnwgCnwgCXN0YXR1cyA9IHB0
aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBzdGF0dXM7Cnwg
CnwgI2lmIEhBVkVfUFRIUkVBRFMgPCA3CnwgCXN0YXR1cyA9IHB0aHJlYWRfYXR0cl9zZXRkZXRh
Y2hzdGF0ZSgmYXR0ciwgJmRldGFjaCk7CnwgCWlmKCBzdGF0dXMgPCAwICkgc3RhdHVzID0gZXJy
bm87CnwgI2Vsc2UKfCAJc3RhdHVzID0gcHRocmVhZF9hdHRyX3NldGRldGFjaHN0YXRlKCZhdHRy
LCBkZXRhY2gpOwp8ICNlbmRpZgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAJc3Rh
dHVzID0gcHRocmVhZF9jcmVhdGUoICZ0LCAmYXR0ciwgdGFzaywgTlVMTCApOwp8ICNpZiBIQVZF
X1BUSFJFQURTIDwgNwp8IAlpZiggc3RhdHVzIDwgMCApIHN0YXR1cyA9IGVycm5vOwp8ICNlbmRp
Zgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAjZWxzZQp8IAkvKiBEcmFmdCA0IHB0
aHJlYWRzICovCnwgCXN0YXR1cyA9IHB0aHJlYWRfY3JlYXRlKCAmdCwgcHRocmVhZF9hdHRyX2Rl
ZmF1bHQsIHRhc2ssIE5VTEwgKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBlcnJubzsKfCAKfCAJ
LyogZ2l2ZSB0aHJlYWQgYSBjaGFuY2UgdG8gY29tcGxldGUgKi8KfCAJLyogaXQgc2hvdWxkIHJl
bWFpbiBqb2luYWJsZSBhbmQgaGVuY2UgZGV0YWNoYWJsZSAqLwp8IAlzbGVlcCggMSApOwp8IAp8
IAlzdGF0dXMgPSBwdGhyZWFkX2RldGFjaCggJnQgKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBl
cnJubzsKfCAjZW5kaWYKfCAKfCAjaWZkZWYgSEFWRV9MSU5VWF9USFJFQURTCnwgCXB0aHJlYWRf
a2lsbF9vdGhlcl90aHJlYWRzX25wKCk7CnwgI2VuZGlmCnwgCnwgCXJldHVybiAwOwp8IAp8IH0K
fCAKY29uZmlndXJlOjY3MDM6IHJlc3VsdDogbm8KY29uZmlndXJlOjY3MTQ6IGNoZWNraW5nIGZv
ciBwdGhyZWFkIGxpbmsgd2l0aCAta3RocmVhZApjb25maWd1cmU6NjkwOTogZ2NjIC1vIGNvbmZ0
ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRl
IC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliICAtTC91c3IvWDExUjYvbGliIGNvbmZ0ZXN0LmMg
LWt0aHJlYWQgLWxnbHV0IC1sR0xVIC1sR0wgLWxYbXUgLWxYaSAgLWxYMTEgIC1sU00gLWxJQ0Ug
ID4mNQpnY2M6IHVucmVjb2duaXplZCBvcHRpb24gYC1rdGhyZWFkJwovdXNyL2Jpbi9sZDogY2Fu
bm90IGZpbmQgLWxnbHV0CmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZp
Z3VyZTo2OTEyOiAkPyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAx
CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8IAp8
ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCIK
fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAidGhlLWJyZXZlLXNpbXVsYXRpb24tZW52aXJvbm1l
bnQiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS
SU5HICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCAyLjMiCnwgI2RlZmluZSBQQUNL
QUdFX0JVR1JFUE9SVCAiamtAc3BpZGVybGFuZC5vcmciCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwg
ZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0
Owp8ICNlbmRpZgp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf
U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9S
WV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf
SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8
ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfV0NUWVBFX0ggMQp8ICNk
ZWZpbmUgSEFWRV9QVEhSRUFEX0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEUyAxMAp8ICNkZWZp
bmUgSEFWRV9MSU5VWF9USFJFQURTIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfSCAxCnwgLyogZW5k
IGNvbmZkZWZzLmguICAqLwp8IC8qIHB0aHJlYWQgdGVzdCBoZWFkZXJzICovCnwgI2luY2x1ZGUg
PHB0aHJlYWQuaD4KfCAjaWYgSEFWRV9QVEhSRUFEUyA8IDcKfCAjaW5jbHVkZSA8ZXJybm8uaD4K
fCAjZW5kaWYKfCAjaWZuZGVmIE5VTEwKfCAjZGVmaW5lIE5VTEwgKHZvaWQqKTAKfCAjZW5kaWYK
fCAKfCBzdGF0aWMgdm9pZCAqdGFzayhwKQp8IAl2b2lkICpwOwp8IHsKfCAJcmV0dXJuICh2b2lk
ICopIChwID09IE5VTEwpOwp8IH0KfCAKfCAKfCBpbnQgbWFpbihhcmdjLCBhcmd2KQp8IAlpbnQg
YXJnYzsKfCAJY2hhciAqKmFyZ3Y7Cnwgewp8IAp8IAkvKiBwdGhyZWFkIHRlc3QgZnVuY3Rpb24g
Ki8KfCAjaWZuZGVmIFBUSFJFQURfQ1JFQVRFX0RFVEFDSEVECnwgI2RlZmluZQlQVEhSRUFEX0NS
RUFURV9ERVRBQ0hFRAkxCnwgI2VuZGlmCnwgCXB0aHJlYWRfdCB0Owp8IAlpbnQgc3RhdHVzOwp8
IAlpbnQgZGV0YWNoID0gUFRIUkVBRF9DUkVBVEVfREVUQUNIRUQ7CnwgCnwgI2lmIEhBVkVfUFRI
UkVBRFMgPiA0CnwgCS8qIEZpbmFsIHB0aHJlYWRzICovCnwgCXB0aHJlYWRfYXR0cl90IGF0dHI7
CnwgCnwgCXN0YXR1cyA9IHB0aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKfCAJaWYoIHN0YXR1cyAp
IHJldHVybiBzdGF0dXM7CnwgCnwgI2lmIEhBVkVfUFRIUkVBRFMgPCA3CnwgCXN0YXR1cyA9IHB0
aHJlYWRfYXR0cl9zZXRkZXRhY2hzdGF0ZSgmYXR0ciwgJmRldGFjaCk7CnwgCWlmKCBzdGF0dXMg
PCAwICkgc3RhdHVzID0gZXJybm87CnwgI2Vsc2UKfCAJc3RhdHVzID0gcHRocmVhZF9hdHRyX3Nl
dGRldGFjaHN0YXRlKCZhdHRyLCBkZXRhY2gpOwp8ICNlbmRpZgp8IAlpZiggc3RhdHVzICkgcmV0
dXJuIHN0YXR1czsKfCAJc3RhdHVzID0gcHRocmVhZF9jcmVhdGUoICZ0LCAmYXR0ciwgdGFzaywg
TlVMTCApOwp8ICNpZiBIQVZFX1BUSFJFQURTIDwgNwp8IAlpZiggc3RhdHVzIDwgMCApIHN0YXR1
cyA9IGVycm5vOwp8ICNlbmRpZgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAjZWxz
ZQp8IAkvKiBEcmFmdCA0IHB0aHJlYWRzICovCnwgCXN0YXR1cyA9IHB0aHJlYWRfY3JlYXRlKCAm
dCwgcHRocmVhZF9hdHRyX2RlZmF1bHQsIHRhc2ssIE5VTEwgKTsKfCAJaWYoIHN0YXR1cyApIHJl
dHVybiBlcnJubzsKfCAKfCAJLyogZ2l2ZSB0aHJlYWQgYSBjaGFuY2UgdG8gY29tcGxldGUgKi8K
fCAJLyogaXQgc2hvdWxkIHJlbWFpbiBqb2luYWJsZSBhbmQgaGVuY2UgZGV0YWNoYWJsZSAqLwp8
IAlzbGVlcCggMSApOwp8IAp8IAlzdGF0dXMgPSBwdGhyZWFkX2RldGFjaCggJnQgKTsKfCAJaWYo
IHN0YXR1cyApIHJldHVybiBlcnJubzsKfCAjZW5kaWYKfCAKfCAjaWZkZWYgSEFWRV9MSU5VWF9U
SFJFQURTCnwgCXB0aHJlYWRfa2lsbF9vdGhlcl90aHJlYWRzX25wKCk7CnwgI2VuZGlmCnwgCnwg
CXJldHVybiAwOwp8IAp8IH0KfCAKY29uZmlndXJlOjY5MzU6IHJlc3VsdDogbm8KY29uZmlndXJl
OjY5NDc6IGNoZWNraW5nIGZvciBwdGhyZWFkIGxpbmsgd2l0aCAtcHRocmVhZApjb25maWd1cmU6
NzE0MjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1J
L3Vzci9YMTFSNi9pbmNsdWRlIC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliICAtTC91c3IvWDEx
UjYvbGliIGNvbmZ0ZXN0LmMgLXB0aHJlYWQgLWxnbHV0IC1sR0xVIC1sR0wgLWxYbXUgLWxYaSAg
LWxYMTEgIC1sU00gLWxJQ0UgID4mNQovdXNyL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxnbHV0CmNv
bGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo3MTQ1OiAkPyA9IDEK
Y29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVk
IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8IAp8ICNkZWZpbmUgUEFDS0FHRV9O
QU1FICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VEFSTkFNRSAidGhlLWJyZXZlLXNpbXVsYXRpb24tZW52aXJvbm1lbnQiCnwgI2RlZmluZSBQQUNL
QUdFX1ZFUlNJT04gIjIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJ0aGUgYnJldmUgc2lt
dWxhdGlvbiBlbnZpcm9ubWVudCAyLjMiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiamtA
c3BpZGVybGFuZC5vcmciCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIiB2b2lkIHN0
ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0Owp8ICNlbmRpZgp8ICNkZWZp
bmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp
bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB
VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF
X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf
VElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfV0NUWVBFX0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE
X0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEUyAxMAp8ICNkZWZpbmUgSEFWRV9MSU5VWF9USFJF
QURTIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8
IC8qIHB0aHJlYWQgdGVzdCBoZWFkZXJzICovCnwgI2luY2x1ZGUgPHB0aHJlYWQuaD4KfCAjaWYg
SEFWRV9QVEhSRUFEUyA8IDcKfCAjaW5jbHVkZSA8ZXJybm8uaD4KfCAjZW5kaWYKfCAjaWZuZGVm
IE5VTEwKfCAjZGVmaW5lIE5VTEwgKHZvaWQqKTAKfCAjZW5kaWYKfCAKfCBzdGF0aWMgdm9pZCAq
dGFzayhwKQp8IAl2b2lkICpwOwp8IHsKfCAJcmV0dXJuICh2b2lkICopIChwID09IE5VTEwpOwp8
IH0KfCAKfCAKfCBpbnQgbWFpbihhcmdjLCBhcmd2KQp8IAlpbnQgYXJnYzsKfCAJY2hhciAqKmFy
Z3Y7Cnwgewp8IAp8IAkvKiBwdGhyZWFkIHRlc3QgZnVuY3Rpb24gKi8KfCAjaWZuZGVmIFBUSFJF
QURfQ1JFQVRFX0RFVEFDSEVECnwgI2RlZmluZQlQVEhSRUFEX0NSRUFURV9ERVRBQ0hFRAkxCnwg
I2VuZGlmCnwgCXB0aHJlYWRfdCB0Owp8IAlpbnQgc3RhdHVzOwp8IAlpbnQgZGV0YWNoID0gUFRI
UkVBRF9DUkVBVEVfREVUQUNIRUQ7CnwgCnwgI2lmIEhBVkVfUFRIUkVBRFMgPiA0CnwgCS8qIEZp
bmFsIHB0aHJlYWRzICovCnwgCXB0aHJlYWRfYXR0cl90IGF0dHI7CnwgCnwgCXN0YXR1cyA9IHB0
aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBzdGF0dXM7Cnwg
CnwgI2lmIEhBVkVfUFRIUkVBRFMgPCA3CnwgCXN0YXR1cyA9IHB0aHJlYWRfYXR0cl9zZXRkZXRh
Y2hzdGF0ZSgmYXR0ciwgJmRldGFjaCk7CnwgCWlmKCBzdGF0dXMgPCAwICkgc3RhdHVzID0gZXJy
bm87CnwgI2Vsc2UKfCAJc3RhdHVzID0gcHRocmVhZF9hdHRyX3NldGRldGFjaHN0YXRlKCZhdHRy
LCBkZXRhY2gpOwp8ICNlbmRpZgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAJc3Rh
dHVzID0gcHRocmVhZF9jcmVhdGUoICZ0LCAmYXR0ciwgdGFzaywgTlVMTCApOwp8ICNpZiBIQVZF
X1BUSFJFQURTIDwgNwp8IAlpZiggc3RhdHVzIDwgMCApIHN0YXR1cyA9IGVycm5vOwp8ICNlbmRp
Zgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAjZWxzZQp8IAkvKiBEcmFmdCA0IHB0
aHJlYWRzICovCnwgCXN0YXR1cyA9IHB0aHJlYWRfY3JlYXRlKCAmdCwgcHRocmVhZF9hdHRyX2Rl
ZmF1bHQsIHRhc2ssIE5VTEwgKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBlcnJubzsKfCAKfCAJ
LyogZ2l2ZSB0aHJlYWQgYSBjaGFuY2UgdG8gY29tcGxldGUgKi8KfCAJLyogaXQgc2hvdWxkIHJl
bWFpbiBqb2luYWJsZSBhbmQgaGVuY2UgZGV0YWNoYWJsZSAqLwp8IAlzbGVlcCggMSApOwp8IAp8
IAlzdGF0dXMgPSBwdGhyZWFkX2RldGFjaCggJnQgKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBl
cnJubzsKfCAjZW5kaWYKfCAKfCAjaWZkZWYgSEFWRV9MSU5VWF9USFJFQURTCnwgCXB0aHJlYWRf
a2lsbF9vdGhlcl90aHJlYWRzX25wKCk7CnwgI2VuZGlmCnwgCnwgCXJldHVybiAwOwp8IAp8IH0K
fCAKY29uZmlndXJlOjcxNjg6IHJlc3VsdDogbm8KY29uZmlndXJlOjcxODA6IGNoZWNraW5nIGZv
ciBwdGhyZWFkIGxpbmsgd2l0aCAtbHB0aHJlYWQKY29uZmlndXJlOjczNzU6IGdjYyAtbyBjb25m
dGVzdCAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgICAtSS91c3IvWDExUjYvaW5jbHVk
ZSAtTC9ob21lL2NhbGxld2FlL2xvY2FsL2xpYiAgLUwvdXNyL1gxMVI2L2xpYiBjb25mdGVzdC5j
IC1scHRocmVhZCAtbGdsdXQgLWxHTFUgLWxHTCAtbFhtdSAtbFhpICAtbFgxMSAgLWxTTSAtbElD
RSAgPiY1Ci91c3IvYmluL2xkOiBjYW5ub3QgZmluZCAtbGdsdXQKY29sbGVjdDI6IGxkIHJldHVy
bmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjczNzg6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dy
YW0gZXhpdGVkIHdpdGggc3RhdHVzIDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg
LyogY29uZmRlZnMuaC4gICovCnwgCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgInRoZSBicmV2ZSBz
aW11bGF0aW9uIGVudmlyb25tZW50Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJ0aGUtYnJl
dmUtc2ltdWxhdGlvbi1lbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4z
Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInRoZSBicmV2ZSBzaW11bGF0aW9uIGVudmlyb25t
ZW50IDIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJqa0BzcGlkZXJsYW5kLm9yZyIK
fCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiIHZvaWQgc3RkOjpleGl0IChpbnQpIHRo
cm93ICgpOyB1c2luZyBzdGQ6OmV4aXQ7CnwgI2VuZGlmCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lT
X1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T
VEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19I
IDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8
ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNk
ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZp
bmUgSEFWRV9XQ1RZUEVfSCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfSCAxCnwgI2RlZmluZSBI
QVZFX1BUSFJFQURTIDEwCnwgI2RlZmluZSBIQVZFX0xJTlVYX1RIUkVBRFMgMQp8ICNkZWZpbmUg
SEFWRV9TQ0hFRF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogcHRocmVhZCB0ZXN0
IGhlYWRlcnMgKi8KfCAjaW5jbHVkZSA8cHRocmVhZC5oPgp8ICNpZiBIQVZFX1BUSFJFQURTIDwg
Nwp8ICNpbmNsdWRlIDxlcnJuby5oPgp8ICNlbmRpZgp8ICNpZm5kZWYgTlVMTAp8ICNkZWZpbmUg
TlVMTCAodm9pZCopMAp8ICNlbmRpZgp8IAp8IHN0YXRpYyB2b2lkICp0YXNrKHApCnwgCXZvaWQg
KnA7Cnwgewp8IAlyZXR1cm4gKHZvaWQgKikgKHAgPT0gTlVMTCk7CnwgfQp8IAp8IAp8IGludCBt
YWluKGFyZ2MsIGFyZ3YpCnwgCWludCBhcmdjOwp8IAljaGFyICoqYXJndjsKfCB7CnwgCnwgCS8q
IHB0aHJlYWQgdGVzdCBmdW5jdGlvbiAqLwp8ICNpZm5kZWYgUFRIUkVBRF9DUkVBVEVfREVUQUNI
RUQKfCAjZGVmaW5lCVBUSFJFQURfQ1JFQVRFX0RFVEFDSEVECTEKfCAjZW5kaWYKfCAJcHRocmVh
ZF90IHQ7CnwgCWludCBzdGF0dXM7CnwgCWludCBkZXRhY2ggPSBQVEhSRUFEX0NSRUFURV9ERVRB
Q0hFRDsKfCAKfCAjaWYgSEFWRV9QVEhSRUFEUyA+IDQKfCAJLyogRmluYWwgcHRocmVhZHMgKi8K
fCAJcHRocmVhZF9hdHRyX3QgYXR0cjsKfCAKfCAJc3RhdHVzID0gcHRocmVhZF9hdHRyX2luaXQo
JmF0dHIpOwp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAKfCAjaWYgSEFWRV9QVEhS
RUFEUyA8IDcKfCAJc3RhdHVzID0gcHRocmVhZF9hdHRyX3NldGRldGFjaHN0YXRlKCZhdHRyLCAm
ZGV0YWNoKTsKfCAJaWYoIHN0YXR1cyA8IDAgKSBzdGF0dXMgPSBlcnJubzsKfCAjZWxzZQp8IAlz
dGF0dXMgPSBwdGhyZWFkX2F0dHJfc2V0ZGV0YWNoc3RhdGUoJmF0dHIsIGRldGFjaCk7CnwgI2Vu
ZGlmCnwgCWlmKCBzdGF0dXMgKSByZXR1cm4gc3RhdHVzOwp8IAlzdGF0dXMgPSBwdGhyZWFkX2Ny
ZWF0ZSggJnQsICZhdHRyLCB0YXNrLCBOVUxMICk7CnwgI2lmIEhBVkVfUFRIUkVBRFMgPCA3Cnwg
CWlmKCBzdGF0dXMgPCAwICkgc3RhdHVzID0gZXJybm87CnwgI2VuZGlmCnwgCWlmKCBzdGF0dXMg
KSByZXR1cm4gc3RhdHVzOwp8ICNlbHNlCnwgCS8qIERyYWZ0IDQgcHRocmVhZHMgKi8KfCAJc3Rh
dHVzID0gcHRocmVhZF9jcmVhdGUoICZ0LCBwdGhyZWFkX2F0dHJfZGVmYXVsdCwgdGFzaywgTlVM
TCApOwp8IAlpZiggc3RhdHVzICkgcmV0dXJuIGVycm5vOwp8IAp8IAkvKiBnaXZlIHRocmVhZCBh
IGNoYW5jZSB0byBjb21wbGV0ZSAqLwp8IAkvKiBpdCBzaG91bGQgcmVtYWluIGpvaW5hYmxlIGFu
ZCBoZW5jZSBkZXRhY2hhYmxlICovCnwgCXNsZWVwKCAxICk7CnwgCnwgCXN0YXR1cyA9IHB0aHJl
YWRfZGV0YWNoKCAmdCApOwp8IAlpZiggc3RhdHVzICkgcmV0dXJuIGVycm5vOwp8ICNlbmRpZgp8
IAp8ICNpZmRlZiBIQVZFX0xJTlVYX1RIUkVBRFMKfCAJcHRocmVhZF9raWxsX290aGVyX3RocmVh
ZHNfbnAoKTsKfCAjZW5kaWYKfCAKfCAJcmV0dXJuIDA7CnwgCnwgfQp8IApjb25maWd1cmU6NzQw
MTogcmVzdWx0OiBubwpjb25maWd1cmU6NzQxMzogY2hlY2tpbmcgZm9yIHB0aHJlYWQgbGluayB3
aXRoIC1sY19yCmNvbmZpZ3VyZTo3NjA4OiBnY2MgLW8gY29uZnRlc3QgLUkvaG9tZS9jYWxsZXdh
ZS9sb2NhbC9pbmNsdWRlICAgLUkvdXNyL1gxMVI2L2luY2x1ZGUgLUwvaG9tZS9jYWxsZXdhZS9s
b2NhbC9saWIgIC1ML3Vzci9YMTFSNi9saWIgY29uZnRlc3QuYyAtbGNfciAtbGdsdXQgLWxHTFUg
LWxHTCAtbFhtdSAtbFhpICAtbFgxMSAgLWxTTSAtbElDRSAgPiY1Ci91c3IvYmluL2xkOiBjYW5u
b3QgZmluZCAtbGNfcgpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1
cmU6NzYxMTogJD8gPSAxCmNvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgMQpj
b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAKfCAj
ZGVmaW5lIFBBQ0tBR0VfTkFNRSAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQiCnwg
I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInRoZS1icmV2ZS1zaW11bGF0aW9uLWVudmlyb25tZW50
Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjMiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO
RyAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQgMi4zIgp8ICNkZWZpbmUgUEFDS0FH
RV9CVUdSRVBPUlQgImprQHNwaWRlcmxhbmQub3JnIgp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4
dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQgKGludCkgdGhyb3cgKCk7IHVzaW5nIHN0ZDo6ZXhpdDsK
fCAjZW5kaWYKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZ
U19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NU
RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf
SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg
MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1dDVFlQRV9IIDEKfCAjZGVm
aW5lIEhBVkVfUFRIUkVBRF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRFMgMTAKfCAjZGVmaW5l
IEhBVkVfTElOVVhfVEhSRUFEUyAxCnwgI2RlZmluZSBIQVZFX1NDSEVEX0ggMQp8IC8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KfCAvKiBwdGhyZWFkIHRlc3QgaGVhZGVycyAqLwp8ICNpbmNsdWRlIDxw
dGhyZWFkLmg+CnwgI2lmIEhBVkVfUFRIUkVBRFMgPCA3CnwgI2luY2x1ZGUgPGVycm5vLmg+Cnwg
I2VuZGlmCnwgI2lmbmRlZiBOVUxMCnwgI2RlZmluZSBOVUxMICh2b2lkKikwCnwgI2VuZGlmCnwg
Cnwgc3RhdGljIHZvaWQgKnRhc2socCkKfCAJdm9pZCAqcDsKfCB7CnwgCXJldHVybiAodm9pZCAq
KSAocCA9PSBOVUxMKTsKfCB9CnwgCnwgCnwgaW50IG1haW4oYXJnYywgYXJndikKfCAJaW50IGFy
Z2M7CnwgCWNoYXIgKiphcmd2Owp8IHsKfCAKfCAJLyogcHRocmVhZCB0ZXN0IGZ1bmN0aW9uICov
CnwgI2lmbmRlZiBQVEhSRUFEX0NSRUFURV9ERVRBQ0hFRAp8ICNkZWZpbmUJUFRIUkVBRF9DUkVB
VEVfREVUQUNIRUQJMQp8ICNlbmRpZgp8IAlwdGhyZWFkX3QgdDsKfCAJaW50IHN0YXR1czsKfCAJ
aW50IGRldGFjaCA9IFBUSFJFQURfQ1JFQVRFX0RFVEFDSEVEOwp8IAp8ICNpZiBIQVZFX1BUSFJF
QURTID4gNAp8IAkvKiBGaW5hbCBwdGhyZWFkcyAqLwp8IAlwdGhyZWFkX2F0dHJfdCBhdHRyOwp8
IAp8IAlzdGF0dXMgPSBwdGhyZWFkX2F0dHJfaW5pdCgmYXR0cik7CnwgCWlmKCBzdGF0dXMgKSBy
ZXR1cm4gc3RhdHVzOwp8IAp8ICNpZiBIQVZFX1BUSFJFQURTIDwgNwp8IAlzdGF0dXMgPSBwdGhy
ZWFkX2F0dHJfc2V0ZGV0YWNoc3RhdGUoJmF0dHIsICZkZXRhY2gpOwp8IAlpZiggc3RhdHVzIDwg
MCApIHN0YXR1cyA9IGVycm5vOwp8ICNlbHNlCnwgCXN0YXR1cyA9IHB0aHJlYWRfYXR0cl9zZXRk
ZXRhY2hzdGF0ZSgmYXR0ciwgZGV0YWNoKTsKfCAjZW5kaWYKfCAJaWYoIHN0YXR1cyApIHJldHVy
biBzdGF0dXM7CnwgCXN0YXR1cyA9IHB0aHJlYWRfY3JlYXRlKCAmdCwgJmF0dHIsIHRhc2ssIE5V
TEwgKTsKfCAjaWYgSEFWRV9QVEhSRUFEUyA8IDcKfCAJaWYoIHN0YXR1cyA8IDAgKSBzdGF0dXMg
PSBlcnJubzsKfCAjZW5kaWYKfCAJaWYoIHN0YXR1cyApIHJldHVybiBzdGF0dXM7CnwgI2Vsc2UK
fCAJLyogRHJhZnQgNCBwdGhyZWFkcyAqLwp8IAlzdGF0dXMgPSBwdGhyZWFkX2NyZWF0ZSggJnQs
IHB0aHJlYWRfYXR0cl9kZWZhdWx0LCB0YXNrLCBOVUxMICk7CnwgCWlmKCBzdGF0dXMgKSByZXR1
cm4gZXJybm87CnwgCnwgCS8qIGdpdmUgdGhyZWFkIGEgY2hhbmNlIHRvIGNvbXBsZXRlICovCnwg
CS8qIGl0IHNob3VsZCByZW1haW4gam9pbmFibGUgYW5kIGhlbmNlIGRldGFjaGFibGUgKi8KfCAJ
c2xlZXAoIDEgKTsKfCAKfCAJc3RhdHVzID0gcHRocmVhZF9kZXRhY2goICZ0ICk7CnwgCWlmKCBz
dGF0dXMgKSByZXR1cm4gZXJybm87CnwgI2VuZGlmCnwgCnwgI2lmZGVmIEhBVkVfTElOVVhfVEhS
RUFEUwp8IAlwdGhyZWFkX2tpbGxfb3RoZXJfdGhyZWFkc19ucCgpOwp8ICNlbmRpZgp8IAp8IAly
ZXR1cm4gMDsKfCAKfCB9CnwgCmNvbmZpZ3VyZTo3NjM0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo3
NjQ2OiBjaGVja2luZyBmb3IgcHRocmVhZCBsaW5rIHdpdGggLWxwdGhyZWFkcwpjb25maWd1cmU6
Nzg0MTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1J
L3Vzci9YMTFSNi9pbmNsdWRlIC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliICAtTC91c3IvWDEx
UjYvbGliIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkcyAtbGdsdXQgLWxHTFUgLWxHTCAtbFhtdSAtbFhp
ICAtbFgxMSAgLWxTTSAtbElDRSAgPiY1Ci91c3IvYmluL2xkOiBjYW5ub3QgZmluZCAtbHB0aHJl
YWRzCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo3ODQ0OiAk
PyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTog
ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8IAp8ICNkZWZpbmUgUEFD
S0FHRV9OQU1FICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBB
Q0tBR0VfVEFSTkFNRSAidGhlLWJyZXZlLXNpbXVsYXRpb24tZW52aXJvbm1lbnQiCnwgI2RlZmlu
ZSBQQUNLQUdFX1ZFUlNJT04gIjIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJ0aGUgYnJl
dmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCAyLjMiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S
VCAiamtAc3BpZGVybGFuZC5vcmciCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIiB2
b2lkIHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0Owp8ICNlbmRpZgp8
ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg
MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVm
aW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFW
RV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfV0NUWVBFX0ggMQp8ICNkZWZpbmUgSEFWRV9Q
VEhSRUFEX0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEUyAxMAp8ICNkZWZpbmUgSEFWRV9MSU5V
WF9USFJFQURTIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmgu
ICAqLwp8IC8qIHB0aHJlYWQgdGVzdCBoZWFkZXJzICovCnwgI2luY2x1ZGUgPHB0aHJlYWQuaD4K
fCAjaWYgSEFWRV9QVEhSRUFEUyA8IDcKfCAjaW5jbHVkZSA8ZXJybm8uaD4KfCAjZW5kaWYKfCAj
aWZuZGVmIE5VTEwKfCAjZGVmaW5lIE5VTEwgKHZvaWQqKTAKfCAjZW5kaWYKfCAKfCBzdGF0aWMg
dm9pZCAqdGFzayhwKQp8IAl2b2lkICpwOwp8IHsKfCAJcmV0dXJuICh2b2lkICopIChwID09IE5V
TEwpOwp8IH0KfCAKfCAKfCBpbnQgbWFpbihhcmdjLCBhcmd2KQp8IAlpbnQgYXJnYzsKfCAJY2hh
ciAqKmFyZ3Y7Cnwgewp8IAp8IAkvKiBwdGhyZWFkIHRlc3QgZnVuY3Rpb24gKi8KfCAjaWZuZGVm
IFBUSFJFQURfQ1JFQVRFX0RFVEFDSEVECnwgI2RlZmluZQlQVEhSRUFEX0NSRUFURV9ERVRBQ0hF
RAkxCnwgI2VuZGlmCnwgCXB0aHJlYWRfdCB0Owp8IAlpbnQgc3RhdHVzOwp8IAlpbnQgZGV0YWNo
ID0gUFRIUkVBRF9DUkVBVEVfREVUQUNIRUQ7CnwgCnwgI2lmIEhBVkVfUFRIUkVBRFMgPiA0Cnwg
CS8qIEZpbmFsIHB0aHJlYWRzICovCnwgCXB0aHJlYWRfYXR0cl90IGF0dHI7CnwgCnwgCXN0YXR1
cyA9IHB0aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBzdGF0
dXM7CnwgCnwgI2lmIEhBVkVfUFRIUkVBRFMgPCA3CnwgCXN0YXR1cyA9IHB0aHJlYWRfYXR0cl9z
ZXRkZXRhY2hzdGF0ZSgmYXR0ciwgJmRldGFjaCk7CnwgCWlmKCBzdGF0dXMgPCAwICkgc3RhdHVz
ID0gZXJybm87CnwgI2Vsc2UKfCAJc3RhdHVzID0gcHRocmVhZF9hdHRyX3NldGRldGFjaHN0YXRl
KCZhdHRyLCBkZXRhY2gpOwp8ICNlbmRpZgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsK
fCAJc3RhdHVzID0gcHRocmVhZF9jcmVhdGUoICZ0LCAmYXR0ciwgdGFzaywgTlVMTCApOwp8ICNp
ZiBIQVZFX1BUSFJFQURTIDwgNwp8IAlpZiggc3RhdHVzIDwgMCApIHN0YXR1cyA9IGVycm5vOwp8
ICNlbmRpZgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAjZWxzZQp8IAkvKiBEcmFm
dCA0IHB0aHJlYWRzICovCnwgCXN0YXR1cyA9IHB0aHJlYWRfY3JlYXRlKCAmdCwgcHRocmVhZF9h
dHRyX2RlZmF1bHQsIHRhc2ssIE5VTEwgKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBlcnJubzsK
fCAKfCAJLyogZ2l2ZSB0aHJlYWQgYSBjaGFuY2UgdG8gY29tcGxldGUgKi8KfCAJLyogaXQgc2hv
dWxkIHJlbWFpbiBqb2luYWJsZSBhbmQgaGVuY2UgZGV0YWNoYWJsZSAqLwp8IAlzbGVlcCggMSAp
Owp8IAp8IAlzdGF0dXMgPSBwdGhyZWFkX2RldGFjaCggJnQgKTsKfCAJaWYoIHN0YXR1cyApIHJl
dHVybiBlcnJubzsKfCAjZW5kaWYKfCAKfCAjaWZkZWYgSEFWRV9MSU5VWF9USFJFQURTCnwgCXB0
aHJlYWRfa2lsbF9vdGhlcl90aHJlYWRzX25wKCk7CnwgI2VuZGlmCnwgCnwgCXJldHVybiAwOwp8
IAp8IH0KfCAKY29uZmlndXJlOjc4Njc6IHJlc3VsdDogbm8KY29uZmlndXJlOjc4ODE6IGNoZWNr
aW5nIGZvciBnem9wZW4gaW4gLWx6CmNvbmZpZ3VyZTo3OTExOiBnY2MgLW8gY29uZnRlc3QgLUkv
aG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAgLUkvdXNyL1gxMVI2L2luY2x1ZGUgLUwvaG9t
ZS9jYWxsZXdhZS9sb2NhbC9saWIgIC1ML3Vzci9YMTFSNi9saWIgY29uZnRlc3QuYyAtbHogICAt
bGdsdXQgLWxHTFUgLWxHTCAtbFhtdSAtbFhpICAtbFgxMSAgLWxTTSAtbElDRSAgPiY1Ci91c3Iv
YmluL2xkOiBjYW5ub3QgZmluZCAtbGdsdXQKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBz
dGF0dXMKY29uZmlndXJlOjc5MTc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh
czoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAKfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAidGhlIGJy
ZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInRo
ZS1icmV2ZS1zaW11bGF0aW9uLWVudmlyb25tZW50Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O
ICIyLjMiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52
aXJvbm1lbnQgMi4zIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImprQHNwaWRlcmxhbmQu
b3JnIgp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQgKGlu
dCkgdGhyb3cgKCk7IHVzaW5nIHN0ZDo6ZXhpdDsKfCAjZW5kaWYKfCAjZGVmaW5lIFRJTUVfV0lU
SF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS
SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf
SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx
CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwg
I2RlZmluZSBIQVZFX1dDVFlQRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9IIDEKfCAjZGVm
aW5lIEhBVkVfUFRIUkVBRFMgMTAKfCAjZGVmaW5lIEhBVkVfTElOVVhfVEhSRUFEUyAxCnwgI2Rl
ZmluZSBIQVZFX1NDSEVEX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVy
cmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwp8
ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCAvKiBXZSB1c2UgY2hh
ciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCnwgICAg
YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5
LiAgKi8KfCBjaGFyIGd6b3BlbiAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IGd6b3BlbiAoKTsK
fCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjc5NDM6IHJlc3VsdDogbm8KY29uZmln
dXJlOjc5NTQ6IGVycm9yOiBNaXNzaW5nIHpsaWIgbGlicmFyeSAtLSBzZWUgaHR0cDovL3d3dy56
bGliLm9yZwpTZWUgYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuCgojIyAtLS0tLS0tLS0t
LS0tLS0tICMjCiMjIENhY2hlIHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwoK
YWNfY3ZfYnVpbGQ9aTY4Ni1wYy1saW51eC1nbnUKYWNfY3ZfYnVpbGRfYWxpYXM9aTY4Ni1wYy1s
aW51eC1nbnUKYWNfY3ZfY19jb21waWxlcl9nbnU9eWVzCmFjX2N2X2NfY29uc3Q9eWVzCmFjX2N2
X2NfaW5saW5lPWlubGluZQphY19jdl9jeHhfY29tcGlsZXJfZ251PXllcwphY19jdl9lbnZfQ0Nf
c2V0PQphY19jdl9lbnZfQ0NfdmFsdWU9CmFjX2N2X2Vudl9DRkxBR1Nfc2V0PXNldAphY19jdl9l
bnZfQ0ZMQUdTX3ZhbHVlPS1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZQphY19jdl9lbnZf
Q1BQRkxBR1Nfc2V0PQphY19jdl9lbnZfQ1BQRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9DUFBfc2V0
PQphY19jdl9lbnZfQ1BQX3ZhbHVlPQphY19jdl9lbnZfQ1hYQ1BQX3NldD0KYWNfY3ZfZW52X0NY
WENQUF92YWx1ZT0KYWNfY3ZfZW52X0NYWEZMQUdTX3NldD0KYWNfY3ZfZW52X0NYWEZMQUdTX3Zh
bHVlPQphY19jdl9lbnZfQ1hYX3NldD0KYWNfY3ZfZW52X0NYWF92YWx1ZT0KYWNfY3ZfZW52X0pB
Ul9zZXQ9CmFjX2N2X2Vudl9KQVJfdmFsdWU9CmFjX2N2X2Vudl9KQVZBQ19zZXQ9CmFjX2N2X2Vu
dl9KQVZBQ192YWx1ZT0KYWNfY3ZfZW52X0xERkxBR1Nfc2V0PXNldAphY19jdl9lbnZfTERGTEFH
U192YWx1ZT0tTC9ob21lL2NhbGxld2FlL2xvY2FsL2xpYgphY19jdl9lbnZfYnVpbGRfYWxpYXNf
c2V0PQphY19jdl9lbnZfYnVpbGRfYWxpYXNfdmFsdWU9CmFjX2N2X2Vudl9ob3N0X2FsaWFzX3Nl
dD0KYWNfY3ZfZW52X2hvc3RfYWxpYXNfdmFsdWU9CmFjX2N2X2Vudl90YXJnZXRfYWxpYXNfc2V0
PQphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3ZhbHVlPQphY19jdl9leGVleHQ9CmFjX2N2X2Z1bmNf
Y29ubmVjdD15ZXMKYWNfY3ZfZnVuY19nZXRob3N0YnluYW1lPXllcwphY19jdl9mdW5jX3JlbW92
ZT15ZXMKYWNfY3ZfZnVuY19zaG1hdD15ZXMKYWNfY3ZfaGF2ZV94PSdoYXZlX3g9eWVzIAkJYWNf
eF9pbmNsdWRlcz0vdXNyL1gxMVI2L2luY2x1ZGUgYWNfeF9saWJyYXJpZXM9L3Vzci9YMTFSNi9s
aWInCmFjX2N2X2hlYWRlcl9pbnR0eXBlc19oPXllcwphY19jdl9oZWFkZXJfbWVtb3J5X2g9eWVz
CmFjX2N2X2hlYWRlcl9wdGhyZWFkX2g9eWVzCmFjX2N2X2hlYWRlcl9zY2hlZF9oPXllcwphY19j
dl9oZWFkZXJfc3RkYz1ubwphY19jdl9oZWFkZXJfc3RkaW50X2g9eWVzCmFjX2N2X2hlYWRlcl9z
dGRsaWJfaD15ZXMKYWNfY3ZfaGVhZGVyX3N0cmluZ19oPXllcwphY19jdl9oZWFkZXJfc3RyaW5n
c19oPXllcwphY19jdl9oZWFkZXJfc3lzX3N0YXRfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c190aW1l
X2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfdHlwZXNfaD15ZXMKYWNfY3ZfaGVhZGVyX3RpbWU9eWVz
CmFjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMKYWNfY3ZfaGVhZGVyX3djdHlwZV9oPXllcwphY19j
dl9ob3N0PWk2ODYtcGMtbGludXgtZ251CmFjX2N2X2hvc3RfYWxpYXM9aTY4Ni1wYy1saW51eC1n
bnUKYWNfY3ZfbGliX0lDRV9JY2VDb25uZWN0aW9uTnVtYmVyPXllcwphY19jdl9saWJfZmxfeXl3
cmFwPW5vCmFjX2N2X2xpYl9sX3l5d3JhcD1ubwphY19jdl9saWJfbV9pc25hbj1ubwphY19jdl9s
aWJfel9nem9wZW49bm8KYWNfY3Zfb2JqZXh0PW8KYWNfY3ZfcGF0aF9NQUtFREVQRU5EPS91c3Iv
WDExUjYvYmluL21ha2VkZXBlbmQKYWNfY3ZfcHJvZ19DUFA9J2djYyAtRScKYWNfY3ZfcHJvZ19h
Y19jdF9BUj1hcgphY19jdl9wcm9nX2FjX2N0X0NDPWdjYwphY19jdl9wcm9nX2FjX2N0X0NYWD1n
KysKYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9cmFubGliCmFjX2N2X3Byb2dfY2NfZz15ZXMKYWNf
Y3ZfcHJvZ19jY19zdGRjPQphY19jdl9wcm9nX2N4eF9nPXllcwphY19jdl9wcm9nX2VncmVwPSdn
cmVwIC1FJwphY19jdl9wcm9nX2phdmFjX3dvcmtzPXllcwphY19jdl9wcm9nX21ha2VfbWFrZV9z
ZXQ9eWVzCmFjX2N2X3R5cGVfc2l6ZV90PXllcwpvbF9jdl9oZWFkZXJfZ251X3B0aF9wdGhyZWFk
X2g9bm8Kb2xfY3ZfaGVhZGVyX2xpbnV4X3RocmVhZHM9eWVzCm9sX2N2X3B0aHJlYWRfY3JlYXRl
PW5vCm9sX2N2X3B0aHJlYWRfa3RocmVhZD1ubwpvbF9jdl9wdGhyZWFkX2xjX3I9bm8Kb2xfY3Zf
cHRocmVhZF9saWJfbHB0aHJlYWRzPW5vCm9sX2N2X3B0aHJlYWRfbHB0aHJlYWQ9bm8Kb2xfY3Zf
cHRocmVhZF9wdGhyZWFkPW5vCm9sX2N2X3B0aHJlYWRfdmVyc2lvbj0xMAoKIyMgLS0tLS0tLS0t
LS0tLS0tLS0gIyMKIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0g
IyMKCkFSPSdhcicKQVJDSElWRVI9J3RhciBjemYnCkFSQ0hJVkVfU1VGRklYPSd0YXIuZ3onCkND
PSdnY2MnCkNGTEFHUz0nLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlJwpDUFA9J2djYyAt
RScKQ1BQRkxBR1M9JyAgLUkvdXNyL1gxMVI2L2luY2x1ZGUnCkNYWD0nZysrJwpDWFhDUFA9JycK
Q1hYRkxBR1M9Jy1nIC1PMicKREVGUz0nJwpFQ0hPX0M9JycKRUNIT19OPSctbicKRUNIT19UPScn
CkVHUkVQPSdncmVwIC1FJwpFWEVFWFQ9JycKRVhFX1NVRkZJWD0nJwpFWFRSQU9QVEZMQUdTPScn
CkpBUj0nOicKSkFWQUM9JzonCkxERkxBR1M9Jy1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliICAt
TC91c3IvWDExUjYvbGliJwpMRVg9JzonCkxFWExJQj0nJwpMRVhfT1VUUFVUX1JPT1Q9JycKTElC
T0JKUz0nJwpMSUJTPScgLWxnbHV0IC1sR0xVIC1sR0wgLWxYbXUgLWxYaSAgLWxYMTEgIC1sU00g
LWxJQ0UgJwpMVExJQk9CSlM9JycKTUFLRURFUEVORD0nL3Vzci9YMTFSNi9iaW4vbWFrZWRlcGVu
ZCcKTUtERVA9J2crKyAtTU0nCk9CSkVYVD0nbycKUEFDS0FHRV9CVUdSRVBPUlQ9J2prQHNwaWRl
cmxhbmQub3JnJwpQQUNLQUdFX05BTUU9J3RoZSBicmV2ZSBzaW11bGF0aW9uIGVudmlyb25tZW50
JwpQQUNLQUdFX1NUUklORz0ndGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQgMi4zJwpQ
QUNLQUdFX1RBUk5BTUU9J3RoZS1icmV2ZS1zaW11bGF0aW9uLWVudmlyb25tZW50JwpQQUNLQUdF
X1ZFUlNJT049JzIuMycKUEFUSF9TRVBBUkFUT1I9JzonClBMQVRGT1JNPSdsaW51eC1nbnUnClBM
VUdJTkZMQUdTPSctc2hhcmVkJwpQTFVHSU5JTVA9Jy1XbCwtRScKUExVR0lOTElCPScnClFVSUNL
VElNRUZMQUdTPScnClJBTkxJQj0ncmFubGliJwpSRUdFWExJQj0nJwpTRVRfTUFLRT0nJwpTSEVM
TD0nL2Jpbi9zaCcKVkVSU0lPTj0nMi4zJwpXWENPTkZJRz0nd3gtY29uZmlnJwpYX0NGTEFHUz0n
IC1JL3Vzci9YMTFSNi9pbmNsdWRlJwpYX0VYVFJBX0xJQlM9JycKWF9MSUJTPScgLUwvdXNyL1gx
MVI2L2xpYicKWF9QUkVfTElCUz0nIC1sU00gLWxJQ0UnCllBQ0M9J3lhY2MnCmFjX2N0X0FSPSdh
cicKYWNfY3RfQ0M9J2djYycKYWNfY3RfQ1hYPSdnKysnCmFjX2N0X1JBTkxJQj0ncmFubGliJwpi
aW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKYnVpbGQ9J2k2ODYtcGMtbGludXgtZ251JwpidWls
ZF9hbGlhcz0nJwpidWlsZF9jcHU9J2k2ODYnCmJ1aWxkX29zPSdsaW51eC1nbnUnCmJ1aWxkX3Zl
bmRvcj0ncGMnCmRhdGFkaXI9JyR7cHJlZml4fS9zaGFyZScKZXhlY19wcmVmaXg9J05PTkUnCmhv
c3Q9J2k2ODYtcGMtbGludXgtZ251Jwpob3N0X2FsaWFzPScnCmhvc3RfY3B1PSdpNjg2Jwpob3N0
X29zPSdsaW51eC1nbnUnCmhvc3RfdmVuZG9yPSdwYycKaW5jbHVkZWRpcj0nJHtwcmVmaXh9L2lu
Y2x1ZGUnCmluZm9kaXI9JyR7cHJlZml4fS9pbmZvJwpsaWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xp
YicKbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKbG9jYWxzdGF0ZWRpcj0nJHtw
cmVmaXh9L3ZhcicKbWFuZGlyPScke3ByZWZpeH0vbWFuJwpvbGRpbmNsdWRlZGlyPScvdXNyL2lu
Y2x1ZGUnCnByZWZpeD0nTk9ORScKcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0ncyx4LHgsJwpzYmlu
ZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJwpzaGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScK
c3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycKdGFyZ2V0X2FsaWFzPScnCgojIyAtLS0tLS0tLS0t
LSAjIwojIyBjb25mZGVmcy5oLiAjIwojIyAtLS0tLS0tLS0tLSAjIwoKI2RlZmluZSBIQVZFX0lO
VFRZUEVTX0ggMQojZGVmaW5lIEhBVkVfTElOVVhfVEhSRUFEUyAxCiNkZWZpbmUgSEFWRV9NRU1P
UllfSCAxCiNkZWZpbmUgSEFWRV9QVEhSRUFEUyAxMAojZGVmaW5lIEhBVkVfUFRIUkVBRF9IIDEK
I2RlZmluZSBIQVZFX1NDSEVEX0ggMQojZGVmaW5lIEhBVkVfU1RESU5UX0ggMQojZGVmaW5lIEhB
VkVfU1RETElCX0ggMQojZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKI2RlZmluZSBIQVZFX1NUUklO
R19IIDEKI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQojZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAx
CiNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9VTklTVERfSCAxCiNkZWZp
bmUgSEFWRV9XQ1RZUEVfSCAxCiNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImprQHNwaWRlcmxh
bmQub3JnIgojZGVmaW5lIFBBQ0tBR0VfTkFNRSAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJv
bm1lbnQiCiNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInRoZSBicmV2ZSBzaW11bGF0aW9uIGVudmly
b25tZW50IDIuMyIKI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInRoZS1icmV2ZS1zaW11bGF0aW9u
LWVudmlyb25tZW50IgojZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4zIgojZGVmaW5lIFRJTUVf
V0lUSF9TWVNfVElNRSAxCiNlbmRpZgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB2b2lk
IHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0OwoKY29uZmlndXJlOiBl
eGl0IDEK
------=_Part_1820_29339147.1129975775104
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
breve mailing list
[email protected]
http://lists.spiderland.org/mailman/listinfo/breve

------=_Part_1820_29339147.1129975775104--