[OpenAFS-devel] afsd fails in v 1.6.20.1

Ted Creedon tcreedon@easystreet.net
Fri, 3 Feb 2017 21:25:28 +0000


--_004_MWHPR14MB12633C31F7E7FB33025AA069A47E0MWHPR14MB1263namp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

hopefully this will be the last plea for help for a while...

afsd: Error -1 in basic initialization

linux-4.4.36-8/
suse leap 42.2=20
openafs-1.6.20.1

execve("/usr/local/sbin/afsd", ["afsd"], [/* 126 vars */]) =3D 0
brk(0)                                  =3D 0x11bd000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
=3D 0x7fd061a6a000
access("/etc/ld.so.preload", R_OK)      =3D -1 ENOENT (No such file or dire=
ctory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) =3D 3
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
cut

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
ioctl(3, SIOCGIFMTU, {ifr_name=3D"eth0", ifr_mtu=3D1500}) =3D 0
close(3)                                =3D 0
open("/usr/vice/etc/NetInfo", O_RDONLY) =3D -1 ENOENT (No such file or dire=
ctory)
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) =3D 3
ioctl(3, SIOCGIFCONF, {80, {{"\2", {AF_INET, inet_addr("127.0.0.1")}}, {"\2=
", {AF_INET, inet_addr("71.193.230.162")}}}}) =3D 0
ioctl(3, SIOCGIFFLAGS, {ifr_name=3D"lo", ifr_flags=3DIFF_UP|IFF_LOOPBACK|IF=
F_RUNNING}) =3D 0
ioctl(3, SIOCGIFFLAGS, {ifr_name=3D"eth0", ifr_flags=3DIFF_UP|IFF_BROADCAST=
|IFF_RUNNING|IFF_MULTICAST}) =3D 0
ioctl(3, SIOCGIFNETMASK, {ifr_name=3D"eth0", ifr_netmask=3D{AF_INET, inet_a=
ddr("255.255.252.0")}}) =3D 0
ioctl(3, SIOCGIFMTU, {ifr_name=3D"eth0", ifr_mtu=3D1500}) =3D 0
close(3)                                =3D 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) =3D 3
ioctl(3, SIOCGIFCONF, {80, {{"\2", {AF_INET, inet_addr("127.0.0.1")}}, {"\2=
", {AF_INET, inet_addr("71.193.230.162")}}}}) =3D 0
ioctl(3, SIOCGIFFLAGS, {ifr_name=3D"lo", ifr_flags=3DIFF_UP|IFF_LOOPBACK|IF=
F_RUNNING}) =3D 0
ioctl(3, SIOCGIFFLAGS, {ifr_name=3D"eth0", ifr_flags=3DIFF_UP|IFF_BROADCAST=
|IFF_RUNNING|IFF_MULTICAST}) =3D 0
ioctl(3, SIOCGIFNETMASK, {ifr_name=3D"eth0", ifr_netmask=3D{AF_INET, inet_a=
ddr("255.255.252.0")}}) =3D 0
ioctl(3, SIOCGIFMTU, {ifr_name=3D"eth0", ifr_mtu=3D1500}) =3D 0
close(3)                                =3D 0
open("/usr/vice/etc/NetInfo", O_RDONLY) =3D -1 ENOENT (No such file or dire=
ctory)
open("/usr/vice/etc/NetRestrict", O_RDONLY) =3D -1 ENOENT (No such file or =
directory)
open("/proc/fs/openafs/afs_ioctl", O_RDWR) =3D -1 ENOENT (No such file or d=
irectory)
open("/proc/fs/nnpfs/afs_ioctl", O_RDWR) =3D -1 ENOENT (No such file or dir=
ectory)
afs_syscall(0x1c, 0x11, 0x1, 0x7ffd6c0e6bc0, 0x7ffd6c0e6750) =3D -1 ENOSYS =
(Function not implemented)
clone(child_stack=3D0, flags=3DCLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGC=
HLD, child_tidptr=3D0x7fd061a189d0) =3D 13721
clone(child_stack=3D0, flags=3DCLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGC=
HLD, child_tidptr=3D0x7fd061a189d0) =3D 13722
clone(child_stack=3D0, flags=3DCLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGC=
HLD, child_tidptr=3D0x7fd061a189d0) =3D 13723
open("/proc/fs/openafs/afs_ioctl", O_RDWR) =3D -1 ENOENT (No such file or d=
irectory)
--- SIGCHLD {si_signo=3DSIGCHLD, si_code=3DCLD_EXITED, si_pid=3D13721, si_u=
id=3D0, si_status=3D1, si_utime=3D0, si_stime=3D0} ---
open("/proc/fs/nnpfs/afs_ioctl", O_RDWR) =3D -1 ENOENT (No such file or dir=
ectory)
afs_syscall(0x1c, 0x24, 0x1, 0x7fd06162e620, 0x7ffd6c0e6750) =3D -1 ENOSYS =
(Function not implemented)
fstat(1, {st_mode=3DS_IFCHR|0600, st_rdev=3Dmakedev(136, 5), ...}) =3D 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
=3D 0x7fd061a69000
write(1, "afsd: Error -1 in basic initialization.\n", 40) =3D ? ERESTARTSYS=
 (To be restarted if SA_RESTART is set)
--- SIGCHLD {si_signo=3DSIGCHLD, si_code=3DCLD_EXITED, si_pid=3D13723, si_u=
id=3D0, si_status=3D1, si_utime=3D0, si_stime=3D0} ---
--- SIGCHLD {si_signo=3DSIGCHLD, si_code=3DCLD_EXITED, si_pid=3D13722, si_u=
id=3D0, si_status=3D1, si_utime=3D0, si_stime=3D0} ---
write(1, "afsd: Error -1 in basic initialization.\n", 40) =3D 40
exit_group(1)                           =3D ?
+++ exited with 1 +++

--_004_MWHPR14MB12633C31F7E7FB33025AA069A47E0MWHPR14MB1263namp_
Content-Type: text/x-csrc; name="strace.c"
Content-Description: strace.c
Content-Disposition: attachment; filename="strace.c"; size=8423;
	creation-date="Fri, 03 Feb 2017 21:22:35 GMT";
	modification-date="Fri, 03 Feb 2017 21:22:35 GMT"
Content-Transfer-Encoding: base64

ZXhlY3ZlKCIvdXNyL2xvY2FsL3NiaW4vYWZzZCIsIFsiYWZzZCJdLCBbLyogMTI3IHZhcnMgKi9d
KSA9IDAKYnJrKDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgyM2I1MDAw
Cm1tYXAoTlVMTCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9QUklWQVRFfE1BUF9B
Tk9OWU1PVVMsIC0xLCAwKSA9IDB4N2YxNWFjNGE2MDAwCmFjY2VzcygiL2V0Yy9sZC5zby5wcmVs
b2FkIiwgUl9PSykgICAgICA9IC0xIEVOT0VOVCAoTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSkK
b3BlbigiL2V0Yy9sZC5zby5jYWNoZSIsIE9fUkRPTkxZfE9fQ0xPRVhFQykgPSAzCmZzdGF0KDMs
IHtzdF9tb2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT0zMjcwNjUsIC4uLn0pID0gMAptbWFwKE5V
TEwsIDMyNzA2NSwgUFJPVF9SRUFELCBNQVBfUFJJVkFURSwgMywgMCkgPSAweDdmMTVhYzQ1NjAw
MApjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwCm9wZW4oIi9saWI2
NC9saWJyZXNvbHYuc28uMiIsIE9fUkRPTkxZfE9fQ0xPRVhFQykgPSAzCnJlYWQoMywgIlwxNzdF
TEZcMlwxXDFcMFwwXDBcMFwwXDBcMFwwXDBcM1wwPlwwXDFcMFwwXDBcMjIwOVwwXDBcMFwwXDBc
MEBcMFwwXDBcMFwwXDBcMEBzXDFcMFwwXDBcMFwwXDBcMFwwXDBAXDAwMDhcMFw3XDBAXDAhXDBc
MzZcMFwxXDBcMFwwXDVcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBc
MFwwXDBcMFwwXDBcMjUwMFwxXDBcMFwwXDBcMFwyNTAwXDFcMFwwXDBcMFwwXDBcMCBcMFwwXDBc
MFwwXDFcMFwwXDBcNlwwXDBcMCIuLi4sIDgzMikgPSA4MzIKZnN0YXQoMywge3N0X21vZGU9U19J
RlJFR3wwNzU1LCBzdF9zaXplPTk3MTUyLCAuLi59KSA9IDAKbW1hcChOVUxMLCAyMTg5ODk2LCBQ
Uk9UX1JFQUR8UFJPVF9FWEVDLCBNQVBfUFJJVkFURXxNQVBfREVOWVdSSVRFLCAzLCAwKSA9IDB4
N2YxNWFjMDcwMDAwCm1wcm90ZWN0KDB4N2YxNWFjMDg0MDAwLCAyMDkzMDU2LCBQUk9UX05PTkUp
ID0gMAptbWFwKDB4N2YxNWFjMjgzMDAwLCA4MTkyLCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQ
X1BSSVZBVEV8TUFQX0ZJWEVEfE1BUF9ERU5ZV1JJVEUsIDMsIDB4MTMwMDApID0gMHg3ZjE1YWMy
ODMwMDAKbW1hcCgweDdmMTVhYzI4NTAwMCwgNjcyOCwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1B
UF9QUklWQVRFfE1BUF9GSVhFRHxNQVBfQU5PTllNT1VTLCAtMSwgMCkgPSAweDdmMTVhYzI4NTAw
MApjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwCm9wZW4oIi9saWI2
NC9saWJjLnNvLjYiLCBPX1JET05MWXxPX0NMT0VYRUMpID0gMwpyZWFkKDMsICJcMTc3RUxGXDJc
MVwxXDNcMFwwXDBcMFwwXDBcMFwwXDNcMD5cMFwxXDBcMFwwXDBcMTBcMlwwXDBcMFwwXDBAXDBc
MFwwXDBcMFwwXDBcMjQwTlwzNVwwXDBcMFwwXDBcMFwwXDBcMEBcMDAwOFwwXG5cMEBcMEhcMEVc
MFw2XDBcMFwwXDVcMFwwXDBAXDBcMFwwXDBcMFwwXDBAXDBcMFwwXDBcMFwwXDBAXDBcMFwwXDBc
MFwwXDAwMDBcMlwwXDBcMFwwXDBcMDAwMFwyXDBcMFwwXDBcMFwwXDEwXDBcMFwwXDBcMFwwXDBc
M1wwXDBcMFw0XDBcMFwwIi4uLiwgODMyKSA9IDgzMgpmc3RhdCgzLCB7c3RfbW9kZT1TX0lGUkVH
fDA3NTUsIHN0X3NpemU9MTkyNTI4MCwgLi4ufSkgPSAwCm1tYXAoTlVMTCwgMzgxMTg3MiwgUFJP
VF9SRUFEfFBST1RfRVhFQywgTUFQX1BSSVZBVEV8TUFQX0RFTllXUklURSwgMywgMCkgPSAweDdm
MTVhYmNjZDAwMAptcHJvdGVjdCgweDdmMTVhYmU2NzAwMCwgMjA5MzA1NiwgUFJPVF9OT05FKSA9
IDAKbW1hcCgweDdmMTVhYzA2NjAwMCwgMjQ1NzYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBf
UFJJVkFURXxNQVBfRklYRUR8TUFQX0RFTllXUklURSwgMywgMHgxOTkwMDApID0gMHg3ZjE1YWMw
NjYwMDAKbW1hcCgweDdmMTVhYzA2YzAwMCwgMTQ4ODAsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBN
QVBfUFJJVkFURXxNQVBfRklYRUR8TUFQX0FOT05ZTU9VUywgLTEsIDApID0gMHg3ZjE1YWMwNmMw
MDAKY2xvc2UoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMAptbWFwKE5VTEws
IDQwOTYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfQU5PTllNT1VTLCAt
MSwgMCkgPSAweDdmMTVhYzQ1NTAwMAptbWFwKE5VTEwsIDQwOTYsIFBST1RfUkVBRHxQUk9UX1dS
SVRFLCBNQVBfUFJJVkFURXxNQVBfQU5PTllNT1VTLCAtMSwgMCkgPSAweDdmMTVhYzQ1NDAwMApt
bWFwKE5VTEwsIDQwOTYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfQU5P
TllNT1VTLCAtMSwgMCkgPSAweDdmMTVhYzQ1MzAwMAphcmNoX3ByY3RsKEFSQ0hfU0VUX0ZTLCAw
eDdmMTVhYzQ1NDcwMCkgPSAwCm1wcm90ZWN0KDB4N2YxNWFjMDY2MDAwLCAxNjM4NCwgUFJPVF9S
RUFEKSA9IDAKbXByb3RlY3QoMHg3ZjE1YWMyODMwMDAsIDQwOTYsIFBST1RfUkVBRCkgPSAwCm1w
cm90ZWN0KDB4NjJiMDAwLCA0MDk2LCBQUk9UX1JFQUQpICAgICA9IDAKbXByb3RlY3QoMHg3ZjE1
YWM0YTcwMDAsIDQwOTYsIFBST1RfUkVBRCkgPSAwCm11bm1hcCgweDdmMTVhYzQ1NjAwMCwgMzI3
MDY1KSAgICAgICAgICA9IDAKYnJrKDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gMHgyM2I1MDAwCmJyaygweDIzZDYwMDApICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4
MjNkNjAwMApvcGVuKCIvdXNyL3ZpY2UvZXRjL2NhY2hlaW5mbyIsIE9fUkRPTkxZKSA9IDMKZnN0
YXQoMywge3N0X21vZGU9U19JRlJFR3wwNjQ0LCBzdF9zaXplPTI4LCAuLi59KSA9IDAKbW1hcChO
VUxMLCA0MDk2LCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1BSSVZBVEV8TUFQX0FOT05ZTU9V
UywgLTEsIDApID0gMHg3ZjE1YWM0YTUwMDAKcmVhZCgzLCAiL2FmczovdXNyL3ZpY2UvY2FjaGU6
OTAwMTI0NSIsIDQwOTYpID0gMjgKcmVhZCgzLCAiIiwgNDA5NikgICAgICAgICAgICAgICAgICAg
ICAgID0gMApjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwCm11bm1h
cCgweDdmMTVhYzRhNTAwMCwgNDA5NikgICAgICAgICAgICA9IDAKc3RhdGZzKCIvdXNyL3ZpY2Uv
Y2FjaGUiLCB7Zl90eXBlPSJFWFQyX1NVUEVSX01BR0lDIiwgZl9ic2l6ZT00MDk2LCBmX2Jsb2Nr
cz0yNTc5Mjc4LCBmX2JmcmVlPTI1NjY3MTEsIGZfYmF2YWlsPTI0MzU2OTEsIGZfZmlsZXM9NjU1
MzYwLCBmX2ZmcmVlPTY1NTMzNywgZl9mc2lkPXsxOTAzNzQ1NDQyLCAtNjg0NjIxMTY5fSwgZl9u
YW1lbGVuPTI1NSwgZl9mcnNpemU9NDA5Nn0pID0gMApvcGVuKCIvdXNyL3ZpY2UvZXRjL1RoaXND
ZWxsIiwgT19SRE9OTFkpID0gMwpmc3RhdCgzLCB7c3RfbW9kZT1TX0lGUkVHfDA2NDQsIHN0X3Np
emU9MTIsIC4uLn0pID0gMAptbWFwKE5VTEwsIDQwOTYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBN
QVBfUFJJVkFURXxNQVBfQU5PTllNT1VTLCAtMSwgMCkgPSAweDdmMTVhYzRhNTAwMApyZWFkKDMs
ICJjcmVlZG9uLmJpelxuIiwgNDA5NikgICAgICAgICAgPSAxMgpjbG9zZSgzKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAwCm11bm1hcCgweDdmMTVhYzRhNTAwMCwgNDA5NikgICAg
ICAgICAgICA9IDAKc3RhdCgiL3Vzci92aWNlL2V0Yy9DZWxsU2VydkRCIiwge3N0X21vZGU9U19J
RlJFR3wwNjQ0LCBzdF9zaXplPTYwLCAuLi59KSA9IDAKb3BlbigiL3Vzci92aWNlL2V0Yy9DZWxs
U2VydkRCIiwgT19SRE9OTFkpID0gMwpmc3RhdCgzLCB7c3RfbW9kZT1TX0lGUkVHfDA2NDQsIHN0
X3NpemU9NjAsIC4uLn0pID0gMAptbWFwKE5VTEwsIDQwOTYsIFBST1RfUkVBRHxQUk9UX1dSSVRF
LCBNQVBfUFJJVkFURXxNQVBfQU5PTllNT1VTLCAtMSwgMCkgPSAweDdmMTVhYzRhNTAwMApyZWFk
KDMsICI+Y3JlZWRvbi5iaXpcdCNDZWxsIG5hbWVcbjcxLjE5My4yMzAuMTYyICAjb29rcGlrLmNy
ZWVkb24uYml6XG4iLCA0MDk2KSA9IDYwCnJlYWQoMywgIiIsIDQwOTYpICAgICAgICAgICAgICAg
ICAgICAgICA9IDAKY2xvc2UoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMApt
dW5tYXAoMHg3ZjE1YWM0YTUwMDAsIDQwOTYpICAgICAgICAgICAgPSAwCm9wZW4oIi91c3Ivdmlj
ZS9ldGMvQ2VsbEFsaWFzIiwgT19SRE9OTFkpID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3Ig
ZGlyZWN0b3J5KQpvcGVuKCIvdXNyL3ZpY2UvZXRjL0tleUZpbGUiLCBPX1JET05MWSkgPSAtMSBF
Tk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkpCnN0YXQoIi91c3IvdmljZS9ldGMvQ2Vs
bFNlcnZEQiIsIHtzdF9tb2RlPVNfSUZSRUd8MDY0NCwgc3Rfc2l6ZT02MCwgLi4ufSkgPSAwCnN0
YXQoIi9hZnMiLCB7c3RfbW9kZT1TX0lGRElSfDA3NTUsIHN0X3NpemU9NDA5NiwgLi4ufSkgPSAw
CnN0YXQoIi91c3IvdmljZS9jYWNoZSIsIHtzdF9tb2RlPVNfSUZESVJ8MDcwMCwgc3Rfc2l6ZT00
MDk2LCAuLi59KSA9IDAKc3RhdGZzKCIvdXNyL3ZpY2UvY2FjaGUiLCB7Zl90eXBlPSJFWFQyX1NV
UEVSX01BR0lDIiwgZl9ic2l6ZT00MDk2LCBmX2Jsb2Nrcz0yNTc5Mjc4LCBmX2JmcmVlPTI1NjY3
MTEsIGZfYmF2YWlsPTI0MzU2OTEsIGZfZmlsZXM9NjU1MzYwLCBmX2ZmcmVlPTY1NTMzNywgZl9m
c2lkPXsxOTAzNzQ1NDQyLCAtNjg0NjIxMTY5fSwgZl9uYW1lbGVuPTI1NSwgZl9mcnNpemU9NDA5
Nn0pID0gMApvcGVuKCIvcHJvYy9mcy9vcGVuYWZzL2Fmc19pb2N0bCIsIE9fUkRXUikgPSAtMSBF
Tk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkpCm9wZW4oIi9wcm9jL2ZzL25ucGZzL2Fm
c19pb2N0bCIsIE9fUkRXUikgPSAtMSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rvcnkp
CmFmc19zeXNjYWxsKDB4MWMsIDB4MjMsIDB4NjczYjIwLCAwLCAweDdmZmY3NmM4ZjJiMCkgPSAt
MSBFTk9TWVMgKEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCkKc29ja2V0KFBGX0lORVQsIFNPQ0tf
REdSQU0sIElQUFJPVE9fSVApID0gMwppb2N0bCgzLCBTSU9DR0lGQ09ORiwgezgwLCB7eyJcMiIs
IHtBRl9JTkVULCBpbmV0X2FkZHIoIjEyNy4wLjAuMSIpfX0sIHsiXDIiLCB7QUZfSU5FVCwgaW5l
dF9hZGRyKCI3MS4xOTMuMjMwLjE2MiIpfX19fSkgPSAwCmlvY3RsKDMsIFNJT0NHSUZGTEFHUywg
e2lmcl9uYW1lPSJsbyIsIGlmcl9mbGFncz1JRkZfVVB8SUZGX0xPT1BCQUNLfElGRl9SVU5OSU5H
fSkgPSAwCmlvY3RsKDMsIFNJT0NHSUZGTEFHUywge2lmcl9uYW1lPSJldGgwIiwgaWZyX2ZsYWdz
PUlGRl9VUHxJRkZfQlJPQURDQVNUfElGRl9SVU5OSU5HfElGRl9NVUxUSUNBU1R9KSA9IDAKaW9j
dGwoMywgU0lPQ0dJRk5FVE1BU0ssIHtpZnJfbmFtZT0iZXRoMCIsIGlmcl9uZXRtYXNrPXtBRl9J
TkVULCBpbmV0X2FkZHIoIjI1NS4yNTUuMjUyLjAiKX19KSA9IDAKaW9jdGwoMywgU0lPQ0dJRk1U
VSwge2lmcl9uYW1lPSJldGgwIiwgaWZyX210dT0xNTAwfSkgPSAwCmNsb3NlKDMpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IDAKb3BlbigiL3Vzci92aWNlL2V0Yy9OZXRJbmZvIiwg
T19SRE9OTFkpID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQpzb2NrZXQo
UEZfSU5FVCwgU09DS19ER1JBTSwgSVBQUk9UT19JUCkgPSAzCmlvY3RsKDMsIFNJT0NHSUZDT05G
LCB7ODAsIHt7IlwyIiwge0FGX0lORVQsIGluZXRfYWRkcigiMTI3LjAuMC4xIil9fSwgeyJcMiIs
IHtBRl9JTkVULCBpbmV0X2FkZHIoIjcxLjE5My4yMzAuMTYyIil9fX19KSA9IDAKaW9jdGwoMywg
U0lPQ0dJRkZMQUdTLCB7aWZyX25hbWU9ImxvIiwgaWZyX2ZsYWdzPUlGRl9VUHxJRkZfTE9PUEJB
Q0t8SUZGX1JVTk5JTkd9KSA9IDAKaW9jdGwoMywgU0lPQ0dJRkZMQUdTLCB7aWZyX25hbWU9ImV0
aDAiLCBpZnJfZmxhZ3M9SUZGX1VQfElGRl9CUk9BRENBU1R8SUZGX1JVTk5JTkd8SUZGX01VTFRJ
Q0FTVH0pID0gMAppb2N0bCgzLCBTSU9DR0lGTkVUTUFTSywge2lmcl9uYW1lPSJldGgwIiwgaWZy
X25ldG1hc2s9e0FGX0lORVQsIGluZXRfYWRkcigiMjU1LjI1NS4yNTIuMCIpfX0pID0gMAppb2N0
bCgzLCBTSU9DR0lGTVRVLCB7aWZyX25hbWU9ImV0aDAiLCBpZnJfbXR1PTE1MDB9KSA9IDAKY2xv
c2UoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMApzb2NrZXQoUEZfSU5FVCwg
U09DS19ER1JBTSwgSVBQUk9UT19JUCkgPSAzCmlvY3RsKDMsIFNJT0NHSUZDT05GLCB7ODAsIHt7
IlwyIiwge0FGX0lORVQsIGluZXRfYWRkcigiMTI3LjAuMC4xIil9fSwgeyJcMiIsIHtBRl9JTkVU
LCBpbmV0X2FkZHIoIjcxLjE5My4yMzAuMTYyIil9fX19KSA9IDAKaW9jdGwoMywgU0lPQ0dJRkZM
QUdTLCB7aWZyX25hbWU9ImxvIiwgaWZyX2ZsYWdzPUlGRl9VUHxJRkZfTE9PUEJBQ0t8SUZGX1JV
Tk5JTkd9KSA9IDAKaW9jdGwoMywgU0lPQ0dJRkZMQUdTLCB7aWZyX25hbWU9ImV0aDAiLCBpZnJf
ZmxhZ3M9SUZGX1VQfElGRl9CUk9BRENBU1R8SUZGX1JVTk5JTkd8SUZGX01VTFRJQ0FTVH0pID0g
MAppb2N0bCgzLCBTSU9DR0lGTkVUTUFTSywge2lmcl9uYW1lPSJldGgwIiwgaWZyX25ldG1hc2s9
e0FGX0lORVQsIGluZXRfYWRkcigiMjU1LjI1NS4yNTIuMCIpfX0pID0gMAppb2N0bCgzLCBTSU9D
R0lGTVRVLCB7aWZyX25hbWU9ImV0aDAiLCBpZnJfbXR1PTE1MDB9KSA9IDAKY2xvc2UoMykgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMApvcGVuKCIvdXNyL3ZpY2UvZXRjL05ldElu
Zm8iLCBPX1JET05MWSkgPSAtMSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkpCm9w
ZW4oIi91c3IvdmljZS9ldGMvTmV0UmVzdHJpY3QiLCBPX1JET05MWSkgPSAtMSBFTk9FTlQgKE5v
IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkpCm9wZW4oIi9wcm9jL2ZzL29wZW5hZnMvYWZzX2lvY3Rs
IiwgT19SRFdSKSA9IC0xIEVOT0VOVCAoTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSkKb3Blbigi
L3Byb2MvZnMvbm5wZnMvYWZzX2lvY3RsIiwgT19SRFdSKSA9IC0xIEVOT0VOVCAoTm8gc3VjaCBm
aWxlIG9yIGRpcmVjdG9yeSkKYWZzX3N5c2NhbGwoMHgxYywgMHgxMSwgMHgxLCAweDdmZmY3NmM4
ZjcyMCwgMHg3ZmZmNzZjOGYyYjApID0gLTEgRU5PU1lTIChGdW5jdGlvbiBub3QgaW1wbGVtZW50
ZWQpCmNsb25lKGNoaWxkX3N0YWNrPTAsIGZsYWdzPUNMT05FX0NISUxEX0NMRUFSVElEfENMT05F
X0NISUxEX1NFVFRJRHxTSUdDSExELCBjaGlsZF90aWRwdHI9MHg3ZjE1YWM0NTQ5ZDApID0gMTA1
NDgKY2xvbmUoY2hpbGRfc3RhY2s9MCwgZmxhZ3M9Q0xPTkVfQ0hJTERfQ0xFQVJUSUR8Q0xPTkVf
Q0hJTERfU0VUVElEfFNJR0NITEQsIGNoaWxkX3RpZHB0cj0weDdmMTVhYzQ1NDlkMCkgPSAxMDU0
OQpjbG9uZShjaGlsZF9zdGFjaz0wLCBmbGFncz1DTE9ORV9DSElMRF9DTEVBUlRJRHxDTE9ORV9D
SElMRF9TRVRUSUR8U0lHQ0hMRCwgY2hpbGRfdGlkcHRyPTB4N2YxNWFjNDU0OWQwKSA9IDEwNTUw
Ci0tLSBTSUdDSExEIHtzaV9zaWdubz1TSUdDSExELCBzaV9jb2RlPUNMRF9FWElURUQsIHNpX3Bp
ZD0xMDU0OCwgc2lfdWlkPTAsIHNpX3N0YXR1cz0xLCBzaV91dGltZT0wLCBzaV9zdGltZT0wfSAt
LS0Kb3BlbigiL3Byb2MvZnMvb3BlbmFmcy9hZnNfaW9jdGwiLCBPX1JEV1IpID0gLTEgRU5PRU5U
IChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQpvcGVuKCIvcHJvYy9mcy9ubnBmcy9hZnNfaW9j
dGwiLCBPX1JEV1IpID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQotLS0g
U0lHQ0hMRCB7c2lfc2lnbm89U0lHQ0hMRCwgc2lfY29kZT1DTERfRVhJVEVELCBzaV9waWQ9MTA1
NDksIHNpX3VpZD0wLCBzaV9zdGF0dXM9MSwgc2lfdXRpbWU9MCwgc2lfc3RpbWU9MH0gLS0tCmFm
c19zeXNjYWxsKDB4MWMsIDB4MjQsIDB4MSwgMHg3ZjE1YWMwNmE2MjAsIDB4N2ZmZjc2YzhmMmIw
KSA9IC0xIEVOT1NZUyAoRnVuY3Rpb24gbm90IGltcGxlbWVudGVkKQpmc3RhdCgxLCB7c3RfbW9k
ZT1TX0lGQ0hSfDA2MDAsIHN0X3JkZXY9bWFrZWRldigxMzYsIDIpLCAuLi59KSA9IDAKLS0tIFNJ
R0NITEQge3NpX3NpZ25vPVNJR0NITEQsIHNpX2NvZGU9Q0xEX0VYSVRFRCwgc2lfcGlkPTEwNTUw
LCBzaV91aWQ9MCwgc2lfc3RhdHVzPTEsIHNpX3V0aW1lPTAsIHNpX3N0aW1lPTB9IC0tLQptbWFw
KE5VTEwsIDQwOTYsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfUFJJVkFURXxNQVBfQU5PTllN
T1VTLCAtMSwgMCkgPSAweDdmMTVhYzRhNTAwMAp3cml0ZSgxLCAiYWZzZDogRXJyb3IgLTEgaW4g
YmFzaWMgaW5pdGlhbGl6YXRpb24uXG4iLCA0MCkgPSA0MApleGl0X2dyb3VwKDEpICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSA/CisrKyBleGl0ZWQgd2l0aCAxICsrKwo=

--_004_MWHPR14MB12633C31F7E7FB33025AA069A47E0MWHPR14MB1263namp_
Content-Type: application/x-shellscript; name="heimdal.config.sh"
Content-Description: heimdal.config.sh
Content-Disposition: attachment; filename="heimdal.config.sh"; size=595;
	creation-date="Fri, 03 Feb 2017 21:22:51 GMT";
	modification-date="Fri, 03 Feb 2017 21:22:51 GMT"
Content-Transfer-Encoding: base64

I2NvbmZpZy5zaDoKIyMgZG9uZmlndXJlIGZvciBvcGVuYWZzIHdpdGggYXNldGtleSBhbmQgYWts
b2cgY29tcGlsZWQgdG9vCiNleGlzdGluZyBleHBvcnRzOgpkZWNsYXJlIC14IEtSQjVfQ09ORklH
PSIvdXNyL2hlaW1kYWwvYmluL2tyYjUtY29uZmlnIC0tbGlicyAtLWRlcHMiCmRlY2xhcmUgLXgg
UEFUSF9LUkI1X0NPTkZJRz0iL3Vzci9oZWltZGFsL2Jpbi9rcmI1LWNvbmZpZyAtLWxpYnMgLS1k
ZXBzIgoKLi9jb25maWd1cmUgLS1lbmFibGUtdHJhbnNhcmMtcGF0aHMgIC0tZW5hYmxlLW5hbWVp
LWZpbGVzZXJ2ZXIgXAotLXdpdGgtbGludXgta2VybmVsLWhlYWRlcnM9L3Vzci9zcmMvbGludXgg
LS1lbmFibGUtc3VwZXJncm91cHMgXAotLWRpc2FibGUtcGFtIC0tZW5hYmxlLWxpbnV4LXN5c2Nh
bGwtcHJvYmluZwoKIy0tZW5hYmxlLWxpbnV4LXN5c2NhbGwtcHJvYmluZyBcCiMtLXdpdGgtYWZz
LXN5c25hbWU9c3lzIC0tZW5hYmxlLWRlYnVnIFwKIy0tZGlzYWJsZS1zdHJpcC1iaW5hcmllcyBc
CiMtLXdpdGgta3JiNS1pbmNsdWRlPS91c3IvaGVpbWRhbC9pbmNsdWRlIFwKIy0td2l0aC1rcmI1
LWxpYj0vdXNyL2hlaW1kYWwvbGliCgoKCg==

--_004_MWHPR14MB12633C31F7E7FB33025AA069A47E0MWHPR14MB1263namp_
Content-Type: text/x-log; name="config.log"
Content-Description: config.log
Content-Disposition: attachment; filename="config.log"; size=113121;
	creation-date="Fri, 03 Feb 2017 21:24:59 GMT";
	modification-date="Fri, 03 Feb 2017 21:24:59 GMT"
Content-Transfer-Encoding: base64

VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp
bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz
IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IE9wZW5BRlMgY29uZmlndXJlIDEuNi4yMC4x
LCB3aGljaCB3YXMKZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY5LiAgSW52b2NhdGlvbiBj
b21tYW5kIGxpbmUgd2FzCgogICQgLi9jb25maWd1cmUgLS1lbmFibGUtdHJhbnNhcmMtcGF0aHMg
LS1lbmFibGUtbmFtZWktZmlsZXNlcnZlciAtLXdpdGgtbGludXgta2VybmVsLWhlYWRlcnM9L3Vz
ci9zcmMvbGludXggLS1lbmFibGUtc3VwZXJncm91cHMgLS1kaXNhYmxlLXBhbSAtLWVuYWJsZS1s
aW51eC1zeXNjYWxsLXByb2JpbmcKCiMjIC0tLS0tLS0tLSAjIwojIyBQbGF0Zm9ybS4gIyMKIyMg
LS0tLS0tLS0tICMjCgpob3N0bmFtZSA9IG9va3Bpawp1bmFtZSAtbSA9IHg4Nl82NAp1bmFtZSAt
ciA9IDQuNC4zNi04LWRlZmF1bHQKdW5hbWUgLXMgPSBMaW51eAp1bmFtZSAtdiA9ICM1IFNNUCBU
aHUgRGVjIDE1IDEzOjE5OjIyIFBTVCAyMDE2CgovdXNyL2Jpbi91bmFtZSAtcCA9IHg4Nl82NAov
YmluL3VuYW1lIC1YICAgICA9IHVua25vd24KCi9iaW4vYXJjaCAgICAgICAgICAgICAgPSB4ODZf
NjQKL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IHVua25vd24KL3Vzci9jb252ZXgvZ2V0c3lzaW5m
byA9IHVua25vd24KL3Vzci9iaW4vaG9zdGluZm8gICAgICA9IHVua25vd24KL2Jpbi9tYWNoaW5l
ICAgICAgICAgICA9IHVua25vd24KL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IHVua25vd24KL2Jp
bi91bml2ZXJzZSAgICAgICAgICA9IHVua25vd24KClBBVEg6IC9yb290L3Blcmw1L2JpbgpQQVRI
OiAvc2JpbgpQQVRIOiAvdXNyL3NiaW4KUEFUSDogL3Vzci9sb2NhbC9zYmluClBBVEg6IC9yb290
L2JpbgpQQVRIOiAvdXNyL2xvY2FsL2JpbgpQQVRIOiAvdXNyL2JpbgpQQVRIOiAvYmluClBBVEg6
IC91c3IvYmluL1gxMQpQQVRIOiAvdXNyL2dhbWVzClBBVEg6IC91c3IvYWZzL2JpbgpQQVRIOiAu
ClBBVEg6IC91c3IvaGVpbWRhbC9zYmluClBBVEg6IC91c3IvaGVpbWRhbC9iaW4KUEFUSDogL3Vz
ci9hZnMvYmluClBBVEg6IC91c3IvaGVpbWRhbC9saWIKUEFUSDogLgpQQVRIOiAvdXNyL2hlaW1k
YWwvbGliNjQKCgojIyAtLS0tLS0tLS0tLSAjIwojIyBDb3JlIHRlc3RzLiAjIwojIyAtLS0tLS0t
LS0tLSAjIwoKY29uZmlndXJlOjI2ODM6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgL3Vzci9zaGFyZS9z
aXRlL3g4Nl82NC11bmtub3duLWxpbnV4LWdudQp8ICMhL2Jpbi9zaAp8ICMgU2l0ZSBzY3JpcHQg
Zm9yIGNvbmZpZ3VyZS4gSXQgaXMgcmVzb3VyY2VkIHZpYSAkQ09ORklHX1NJVEUgZW52aXJvbm1l
bnQgdmFyYWlibGUuCnwgCnwgIyBJZiB1c2VyIGRpZCBub3Qgc3BlY2lmeSBsaWJkaXIsIGd1ZXNz
IHRoZSBjb3JyZWN0IHRhcmdldDoKfCAjIFVzZSBsaWI2NCBmb3IgNjQgYml0IGJpLWFyY2ggdGFy
Z2V0cywga2VlcCB0aGUgZGVmYXVsdCBmb3IgdGhlIHJlc3QuCnwgaWYgdGVzdCAiJGxpYmRpciIg
PSAnJHtleGVjX3ByZWZpeH0vbGliJyA7IHRoZW4KfCAKfCAJYWNfY29uZmlnX3NpdGVfNjRiaXRf
aG9zdD1OT05FCnwgCnwgCWNhc2UgIiRob3N0IiBpbgp8IAkiIiApCnwgCQkjIFVzZXIgZGlkIG5v
dCBzcGVjaWZ5IGhvc3QgdGFyZ2V0Lgp8IAkJIyBUaGUgbmF0aXZlIHBsYXRmb3JtIHg4Nl82NCBp
cyBhIGJpLWFyY2ggcGxhdGZvcm0uCnwgCQkjIFRyeSB0byBkZXRlY3QgY3Jvc3MtY29tcGlsYXRp
b24gdG8gaW5mZXJpb3IgYXJjaGl0ZWN0dXJlLgp8IAp8IAkJIyBXZSBhcmUgdHJ5aW5nIHRvIGd1
ZXNzIDMyLWJpdCB0YXJnZXQgY29tcGlsYXRpb24uIEl0J3Mgbm90IGFzIGVhc3kgYXMKfCAJCSMg
aXQgc291bmRzLCBhcyB0aGVyZSBpcyBwb3NzaWJsZSBzZXZlcmFsIGludGVybWVkaWF0ZSBjb21i
aW5hdGlvbnMuCnwgCQlhY19jb25maWdfc2l0ZV9jcm9zc190b18zMmJpdF9ob3N0PU5PTkUKfCAK
fCAJCSMgVXNlciBkZWZpbmVkIC1tMzIgaW4gQ0ZMQUdTIG9yIENYWEZMQUdTIG9yIENDIG9yIENY
WDoKfCAJCSMgKEl0J3Mgc3VmZmljaWVudCBmb3IgMzItYml0LCBidXQgYWxvbmUgbWF5IGNhdXNl
IG1pcy1iZWhhdmlvciBvZiBzb21lIGNoZWNrcy4pCnwgCQljYXNlICIkQ0ZMQUdTICRDWFhGTEFH
UyAkQ0MgJENYWCIgaW4KfCAJCSotbTMyKikKfCAJCQlhY19jb25maWdfc2l0ZV9jcm9zc190b18z
MmJpdF9ob3N0PVlFUwp8IAkJCTs7CnwgCQllc2FjCnwgCnwgCQkjIFJ1bm5pbmcgd2l0aCBsaW51
eDMyOgp8IAkJIyAoQ2hhbmdlcyBkZXRlY3RlZCBwbGF0Zm9ybSwgYnV0IG5vdCB0aGUgdG9vbGNo
YWluIHRhcmdldC4pCnwgCQljYXNlICJgL2Jpbi91bmFtZSAtaWAiIGluCnwgCQl4ODZfNjQgfCBw
cGM2NCB8IHMzOTB4ICkKfCAJCQk7Owp8IAkJKiApCnwgCQkJYWNfY29uZmlnX3NpdGVfY3Jvc3Nf
dG9fMzJiaXRfaG9zdD1ZRVMKfCAJCQk7Owp8IAkJZXNhYwp8IAp8IAkJaWYgdGVzdCAieCRhY19j
b25maWdfc2l0ZV9jcm9zc190b18zMmJpdF9ob3N0IiA9IHhOT05FOyB0aGVuCnwgCQkJYWNfY29u
ZmlnX3NpdGVfNjRiaXRfaG9zdD1ZRVMKfCAJCWZpCnwgCnwgCQk7Owp8IAkqeDg2XzY0KiB8ICpw
cGM2NCogfCAqczM5MHgqICkKfCAJCWFjX2NvbmZpZ19zaXRlXzY0Yml0X2hvc3Q9WUVTCnwgCQk7
Owp8IAllc2FjCnwgCnwgCWlmIHRlc3QgIngkYWNfY29uZmlnX3NpdGVfNjRiaXRfaG9zdCIgPSB4
WUVTOyB0aGVuCnwgCQlsaWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYjY0Jwp8IAlmaQp8IGZpCnwg
CnwgIyBJZiB1c2VyIGRpZCBub3Qgc3BlY2lmeSBsaWJleGVjZGlyLCBzZXQgdGhlIGNvcnJlY3Qg
dGFyZ2V0Ogp8ICMgTm9yIEZIUyBub3Igb3BlblNVU0UgYWxsb3cgcHJlZml4L2xpYmV4ZWMuIExl
dCdzIGRlZmF1bHQgdG8gcHJlZml4L2xpYi4KfCAKfCBpZiB0ZXN0ICIkbGliZXhlY2RpciIgPSAn
JHtleGVjX3ByZWZpeH0vbGliZXhlYycgOyB0aGVuCnwgCWxpYmV4ZWNkaXI9JyR7ZXhlY19wcmVm
aXh9L2xpYicKfCBmaQp8IAp8ICMgQ29udGludWUgd2l0aCB0aGUgc3RhbmRhcmQgYmVoYXZpb3Ig
b2YgY29uZmlndXJlIGRlZmluZWQgaW4gQUNfU0lURV9MT0FEOgp8IGlmIHRlc3QgIngkcHJlZml4
IiAhPSB4Tk9ORTsgdGhlbgp8IAlhY19zaXRlX2ZpbGUxPSRwcmVmaXgvc2hhcmUvY29uZmlnLnNp
dGUKfCAJYWNfc2l0ZV9maWxlMj0kcHJlZml4L2V0Yy9jb25maWcuc2l0ZQp8IGVsc2UKfCAJYWNf
c2l0ZV9maWxlMT0kYWNfZGVmYXVsdF9wcmVmaXgvc2hhcmUvY29uZmlnLnNpdGUKfCAJYWNfc2l0
ZV9maWxlMj0kYWNfZGVmYXVsdF9wcmVmaXgvZXRjL2NvbmZpZy5zaXRlCnwgZmkKfCBmb3IgYWNf
c2l0ZV9maWxlIGluICIkYWNfc2l0ZV9maWxlMSIgIiRhY19zaXRlX2ZpbGUyIgp8IGRvCnwgCXRl
c3QgIngkYWNfc2l0ZV9maWxlIiA9IHhOT05FICYmIGNvbnRpbnVlCnwgCWlmIHRlc3QgL2Rldi9u
dWxsICE9ICIkYWNfc2l0ZV9maWxlIiAmJiB0ZXN0IC1yICIkYWNfc2l0ZV9maWxlIjsgdGhlbgp8
IAkJeyAkYXNfZWNobyAiL3Vzci9zaGFyZS9zaXRlL3g4Nl82NC11bmtub3duLWxpbnV4LWdudTok
e2FzX2xpbmVuby0kTElORU5PfTogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+
JjUKfCAkYXNfZWNobyAiL3Vzci9zaGFyZS9zaXRlL3g4Nl82NC11bmtub3duLWxpbnV4LWdudTog
bG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjY7fQp8IAkJc2VkICdzL14vfCAv
JyAiJGFjX3NpdGVfZmlsZSIgPiY1CnwgCQkuICIkYWNfc2l0ZV9maWxlIiBcCnwgCQkJfHwgeyB7
ICRhc19lY2hvICIvdXNyL3NoYXJlL3NpdGUveDg2XzY0LXVua25vd24tbGludXgtZ251OiR7YXNf
bGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQp8ICRhc19lY2hvICIv
dXNyL3NoYXJlL3NpdGUveDg2XzY0LXVua25vd24tbGludXgtZ251OiBlcnJvcjogaW4gXGAkYWNf
cHdkJzoiID4mMjt9CnwgYXNfZm5fZXJyb3IgJD8gImZhaWxlZCB0byBsb2FkIHNpdGUgc2NyaXB0
ICRhY19zaXRlX2ZpbGUKfCBTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJ
TkVOTyIgNTsgfQp8IAlmaQp8IGRvbmUKY29uZmlndXJlOjI4MjU6IGNoZWNraW5nIGZvciBhIEJT
RC1jb21wYXRpYmxlIGluc3RhbGwKY29uZmlndXJlOjI4OTM6IHJlc3VsdDogL3Vzci9iaW4vaW5z
dGFsbCAtYwpjb25maWd1cmU6MjkwNDogY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVu
dCBpcyBzYW5lCmNvbmZpZ3VyZToyOTU5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6Mjk5NzogV0FS
TklORzogJ21pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmcKY29uZmlndXJlOjMx
MTA6IGNoZWNraW5nIGZvciBhIHRocmVhZC1zYWZlIG1rZGlyIC1wCmNvbmZpZ3VyZTozMTQ5OiBy
ZXN1bHQ6IC91c3IvYmluL21rZGlyIC1wCmNvbmZpZ3VyZTozMTU2OiBjaGVja2luZyBmb3IgZ2F3
awpjb25maWd1cmU6MzE3MjogZm91bmQgL3Vzci9iaW4vZ2F3awpjb25maWd1cmU6MzE4MzogcmVz
dWx0OiBnYXdrCmNvbmZpZ3VyZTozMTk0OiBjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1B
S0UpCmNvbmZpZ3VyZTozMjE2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzI0NTogY2hlY2tpbmcg
d2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMKY29uZmlndXJlOjMyNjI6IHJl
c3VsdDogeWVzCmNvbmZpZ3VyZTozMzc2OiBjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1
c2VkIGJ5IG1ha2UKY29uZmlndXJlOjM0MDQ6IHJlc3VsdDogR05VCmNvbmZpZ3VyZTozNDc1OiBj
aGVja2luZyBmb3IgZ2NjCmNvbmZpZ3VyZTozNDkxOiBmb3VuZCAvdXNyL2Jpbi9nY2MKY29uZmln
dXJlOjM1MDI6IHJlc3VsdDogZ2NjCmNvbmZpZ3VyZTozNzMxOiBjaGVja2luZyBmb3IgQyBjb21w
aWxlciB2ZXJzaW9uCmNvbmZpZ3VyZTozNzQwOiBnY2MgLS12ZXJzaW9uID4mNQpnY2MgKFNVU0Ug
TGludXgpIDQuOC41CkNvcHlyaWdodCAoQykgMjAxNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4KVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBj
b25kaXRpb25zLiAgVGhlcmUgaXMgTk8Kd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCgpjb25maWd1cmU6Mzc1
MTogJD8gPSAwCmNvbmZpZ3VyZTozNzQwOiBnY2MgLXYgPiY1ClVzaW5nIGJ1aWx0LWluIHNwZWNz
LgpDT0xMRUNUX0dDQz1nY2MKQ09MTEVDVF9MVE9fV1JBUFBFUj0vdXNyL2xpYjY0L2djYy94ODZf
NjQtc3VzZS1saW51eC80LjgvbHRvLXdyYXBwZXIKVGFyZ2V0OiB4ODZfNjQtc3VzZS1saW51eApD
b25maWd1cmVkIHdpdGg6IC4uL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIC0taW5mb2Rpcj0vdXNy
L3NoYXJlL2luZm8gLS1tYW5kaXI9L3Vzci9zaGFyZS9tYW4gLS1saWJkaXI9L3Vzci9saWI2NCAt
LWxpYmV4ZWNkaXI9L3Vzci9saWI2NCAtLWVuYWJsZS1sYW5ndWFnZXM9YyxjKyssb2JqYyxmb3J0
cmFuLG9iai1jKyssamF2YSxhZGEgLS1lbmFibGUtY2hlY2tpbmc9cmVsZWFzZSAtLXdpdGgtZ3h4
LWluY2x1ZGUtZGlyPS91c3IvaW5jbHVkZS9jKysvNC44IC0tZW5hYmxlLXNzcCAtLWRpc2FibGUt
bGlic3NwIC0tZGlzYWJsZS1wbHVnaW4gLS13aXRoLWJ1Z3VybD1odHRwOi8vYnVncy5vcGVuc3Vz
ZS5vcmcvIC0td2l0aC1wa2d2ZXJzaW9uPSdTVVNFIExpbnV4JyAtLWRpc2FibGUtbGliZ2NqIC0t
ZGlzYWJsZS1saWJtdWRmbGFwIC0td2l0aC1zbGliZGlyPS9saWI2NCAtLXdpdGgtc3lzdGVtLXps
aWIgLS1lbmFibGUtX19jeGFfYXRleGl0IC0tZW5hYmxlLWxpYnN0ZGN4eC1hbGxvY2F0b3I9bmV3
IC0tZGlzYWJsZS1saWJzdGRjeHgtcGNoIC0tZW5hYmxlLXZlcnNpb24tc3BlY2lmaWMtcnVudGlt
ZS1saWJzIC0tZW5hYmxlLWxpbmtlci1idWlsZC1pZCAtLWVuYWJsZS1saW51eC1mdXRleCAtLXBy
b2dyYW0tc3VmZml4PS00LjggLS13aXRob3V0LXN5c3RlbS1saWJ1bndpbmQgLS13aXRoLWFyY2gt
MzI9aTU4NiAtLXdpdGgtdHVuZT1nZW5lcmljIC0tYnVpbGQ9eDg2XzY0LXN1c2UtbGludXggLS1o
b3N0PXg4Nl82NC1zdXNlLWxpbnV4ClRocmVhZCBtb2RlbDogcG9zaXgKZ2NjIHZlcnNpb24gNC44
LjUgKFNVU0UgTGludXgpIApjb25maWd1cmU6Mzc1MTogJD8gPSAwCmNvbmZpZ3VyZTozNzQwOiBn
Y2MgLVYgPiY1CmdjYzogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICct
VicKZ2NjOiBmYXRhbCBlcnJvcjogbm8gaW5wdXQgZmlsZXMKY29tcGlsYXRpb24gdGVybWluYXRl
ZC4KY29uZmlndXJlOjM3NTE6ICQ/ID0gMQpjb25maWd1cmU6Mzc0MDogZ2NjIC1xdmVyc2lvbiA+
JjUKZ2NjOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gJy1xdmVyc2lv
bicKZ2NjOiBmYXRhbCBlcnJvcjogbm8gaW5wdXQgZmlsZXMKY29tcGlsYXRpb24gdGVybWluYXRl
ZC4KY29uZmlndXJlOjM3NTE6ICQ/ID0gMQpjb25maWd1cmU6Mzc3MTogY2hlY2tpbmcgd2hldGhl
ciB0aGUgQyBjb21waWxlciB3b3Jrcwpjb25maWd1cmU6Mzc5MzogZ2NjICAgICBjb25mdGVzdC5j
ICA+JjUKY29uZmlndXJlOjM3OTc6ICQ/ID0gMApjb25maWd1cmU6Mzg0NTogcmVzdWx0OiB5ZXMK
Y29uZmlndXJlOjM4NDg6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZp
bGUgbmFtZQpjb25maWd1cmU6Mzg1MDogcmVzdWx0OiBhLm91dApjb25maWd1cmU6Mzg1NjogY2hl
Y2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcwpjb25maWd1cmU6Mzg2MzogZ2NjIC1vIGNv
bmZ0ZXN0ICAgICBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjM4Njc6ICQ/ID0gMApjb25maWd1
cmU6Mzg4OTogcmVzdWx0OiAKY29uZmlndXJlOjM5MTE6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJl
IGNyb3NzIGNvbXBpbGluZwpjb25maWd1cmU6MzkxOTogZ2NjIC1vIGNvbmZ0ZXN0ICAgICBjb25m
dGVzdC5jICA+JjUKY29uZmlndXJlOjM5MjM6ICQ/ID0gMApjb25maWd1cmU6MzkzMDogLi9jb25m
dGVzdApjb25maWd1cmU6MzkzNDogJD8gPSAwCmNvbmZpZ3VyZTozOTQ5OiByZXN1bHQ6IG5vCmNv
bmZpZ3VyZTozOTU0OiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcwpjb25maWd1
cmU6Mzk3NjogZ2NjIC1jICAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTozOTgwOiAkPyA9IDAK
Y29uZmlndXJlOjQwMDE6IHJlc3VsdDogbwpjb25maWd1cmU6NDAwNTogY2hlY2tpbmcgd2hldGhl
ciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyCmNvbmZpZ3VyZTo0MDI0OiBnY2MgLWMg
ICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQwMjQ6ICQ/ID0gMApjb25maWd1cmU6NDAzMzog
cmVzdWx0OiB5ZXMKY29uZmlndXJlOjQwNDI6IGNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMg
LWcKY29uZmlndXJlOjQwNjI6IGdjYyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQw
NjI6ICQ/ID0gMApjb25maWd1cmU6NDEwMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQxMjA6IGNo
ZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5CmNvbmZpZ3VyZTo0MTgzOiBn
Y2MgIC1jICAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0MTgzOiAkPyA9IDAKY29uZmlndXJl
OjQxOTY6IHJlc3VsdDogbm9uZSBuZWVkZWQKY29uZmlndXJlOjQyMTg6IGNoZWNraW5nIGRlcGVu
ZGVuY3kgc3R5bGUgb2YgZ2NjCmNvbmZpZ3VyZTo0MzI5OiByZXN1bHQ6IG5vbmUKY29uZmlndXJl
OjQzNTA6IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yCmNvbmZpZ3VyZTo0
MzgxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjQzODE6ICQ/ID0gMApjb25maWd1cmU6
NDM5NTogZ2NjIC1FICBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6MTE6Mjg6IGZhdGFsIGVycm9yOiBh
Y19ub25leGlzdGVudC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAjaW5jbHVkZSA8YWNf
bm9uZXhpc3RlbnQuaD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KY29tcGlsYXRpb24g
dGVybWluYXRlZC4KY29uZmlndXJlOjQzOTU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n
cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5B
RlMiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5hZnMiCnwgI2RlZmluZSBQQUNLQUdF
X1ZFUlNJT04gIjEuNi4yMC4xIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5BRlMgMS42
LjIwLjEiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgp8ICNkZWZpbmUgUEFDS0FHRV9V
UkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgIm9wZW5hZnMiCnwgI2RlZmluZSBWRVJTSU9OICIxLjYu
MjAuMSIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50
Lmg+CmNvbmZpZ3VyZTo0NDIwOiByZXN1bHQ6IGdjYyAtRQpjb25maWd1cmU6NDQ0MDogZ2NjIC1F
ICBjb25mdGVzdC5jCmNvbmZpZ3VyZTo0NDQwOiAkPyA9IDAKY29uZmlndXJlOjQ0NTQ6IGdjYyAt
RSAgY29uZnRlc3QuYwpjb25mdGVzdC5jOjExOjI4OiBmYXRhbCBlcnJvcjogYWNfbm9uZXhpc3Rl
bnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50
Lmg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu
CmNvbmZpZ3VyZTo0NDU0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg
LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuQUZTIgp8ICNkZWZp
bmUgUEFDS0FHRV9UQVJOQU1FICJvcGVuYWZzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIx
LjYuMjAuMSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuQUZTIDEuNi4yMC4xIgp8ICNk
ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2Rl
ZmluZSBQQUNLQUdFICJvcGVuYWZzIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS42LjIwLjEiCnwgLyog
ZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgpjb25maWd1
cmU6NDQ4MzogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1l
CmNvbmZpZ3VyZTo0NTQxOiByZXN1bHQ6IC91c3IvYmluL2dyZXAKY29uZmlndXJlOjQ1NDY6IGNo
ZWNraW5nIGZvciBlZ3JlcApjb25maWd1cmU6NDYwODogcmVzdWx0OiAvdXNyL2Jpbi9ncmVwIC1F
CmNvbmZpZ3VyZTo0NjEzOiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcwpjb25maWd1
cmU6NDYzMzogZ2NjIC1jICAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NjMzOiAkPyA9IDAK
Y29uZmlndXJlOjQ3MDY6IGdjYyAtbyBjb25mdGVzdCAgICAgY29uZnRlc3QuYyAgPiY1CmNvbmZp
Z3VyZTo0NzA2OiAkPyA9IDAKY29uZmlndXJlOjQ3MDY6IC4vY29uZnRlc3QKY29uZmlndXJlOjQ3
MDY6ICQ/ID0gMApjb25maWd1cmU6NDcxNzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ3MzA6IGNo
ZWNraW5nIGZvciBzeXMvdHlwZXMuaApjb25maWd1cmU6NDczMDogZ2NjIC1jICAgIGNvbmZ0ZXN0
LmMgPiY1CmNvbmZpZ3VyZTo0NzMwOiAkPyA9IDAKY29uZmlndXJlOjQ3MzA6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZTo0NzMwOiBjaGVja2luZyBmb3Igc3lzL3N0YXQuaApjb25maWd1cmU6NDczMDog
Z2NjIC1jICAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NzMwOiAkPyA9IDAKY29uZmlndXJl
OjQ3MzA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NzMwOiBjaGVja2luZyBmb3Igc3RkbGliLmgK
Y29uZmlndXJlOjQ3MzA6IGdjYyAtYyAgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDczMDog
JD8gPSAwCmNvbmZpZ3VyZTo0NzMwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDczMDogY2hlY2tp
bmcgZm9yIHN0cmluZy5oCmNvbmZpZ3VyZTo0NzMwOiBnY2MgLWMgICAgY29uZnRlc3QuYyA+JjUK
Y29uZmlndXJlOjQ3MzA6ICQ/ID0gMApjb25maWd1cmU6NDczMDogcmVzdWx0OiB5ZXMKY29uZmln
dXJlOjQ3MzA6IGNoZWNraW5nIGZvciBtZW1vcnkuaApjb25maWd1cmU6NDczMDogZ2NjIC1jICAg
IGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NzMwOiAkPyA9IDAKY29uZmlndXJlOjQ3MzA6IHJl
c3VsdDogeWVzCmNvbmZpZ3VyZTo0NzMwOiBjaGVja2luZyBmb3Igc3RyaW5ncy5oCmNvbmZpZ3Vy
ZTo0NzMwOiBnY2MgLWMgICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ3MzA6ICQ/ID0gMApj
b25maWd1cmU6NDczMDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ3MzA6IGNoZWNraW5nIGZvciBp
bnR0eXBlcy5oCmNvbmZpZ3VyZTo0NzMwOiBnY2MgLWMgICAgY29uZnRlc3QuYyA+JjUKY29uZmln
dXJlOjQ3MzA6ICQ/ID0gMApjb25maWd1cmU6NDczMDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ3
MzA6IGNoZWNraW5nIGZvciBzdGRpbnQuaApjb25maWd1cmU6NDczMDogZ2NjIC1jICAgIGNvbmZ0
ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NzMwOiAkPyA9IDAKY29uZmlndXJlOjQ3MzA6IHJlc3VsdDog
eWVzCmNvbmZpZ3VyZTo0NzMwOiBjaGVja2luZyBmb3IgdW5pc3RkLmgKY29uZmlndXJlOjQ3MzA6
IGdjYyAtYyAgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDczMDogJD8gPSAwCmNvbmZpZ3Vy
ZTo0NzMwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDc0MzogY2hlY2tpbmcgbWluaXgvY29uZmln
LmggdXNhYmlsaXR5CmNvbmZpZ3VyZTo0NzQzOiBnY2MgLWMgICAgY29uZnRlc3QuYyA+JjUKY29u
ZnRlc3QuYzo1NDoyNjogZmF0YWwgZXJyb3I6IG1pbml4L2NvbmZpZy5oOiBObyBzdWNoIGZpbGUg
b3IgZGlyZWN0b3J5CiAjaW5jbHVkZSA8bWluaXgvY29uZmlnLmg+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgXgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6NDc0MzogJD8gPSAx
CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm
aW5lIFBBQ0tBR0VfTkFNRSAiT3BlbkFGUyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3Bl
bmFmcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMS42LjIwLjEiCnwgI2RlZmluZSBQQUNL
QUdFX1NUUklORyAiT3BlbkFGUyAxLjYuMjAuMSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU
ICIiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAib3BlbmFmcyIK
fCAjZGVmaW5lIFZFUlNJT04gIjEuNi4yMC4xIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmlu
ZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhB
VkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVf
VU5JU1REX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4K
fCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2Vu
ZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAj
ZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGlu
Y2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5j
bHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19I
CnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwg
IyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cnwg
I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cnwg
I2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4K
fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+Cnwg
I2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNl
bmRpZgp8ICNpbmNsdWRlIDxtaW5peC9jb25maWcuaD4KY29uZmlndXJlOjQ3NDM6IHJlc3VsdDog
bm8KY29uZmlndXJlOjQ3NDM6IGNoZWNraW5nIG1pbml4L2NvbmZpZy5oIHByZXNlbmNlCmNvbmZp
Z3VyZTo0NzQzOiBnY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoyMToyNjogZmF0YWwgZXJy
b3I6IG1pbml4L2NvbmZpZy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAjaW5jbHVkZSA8
bWluaXgvY29uZmlnLmg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgXgpjb21waWxhdGlvbiB0
ZXJtaW5hdGVkLgpjb25maWd1cmU6NDc0MzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy
YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlbkFG
UyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbmFmcyIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VkVSU0lPTiAiMS42LjIwLjEiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlbkFGUyAxLjYu
MjAuMSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBQQUNLQUdFX1VS
TCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAib3BlbmFmcyIKfCAjZGVmaW5lIFZFUlNJT04gIjEuNi4y
MC4xIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg
MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVm
aW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8IC8qIGVuZCBjb25m
ZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8bWluaXgvY29uZmlnLmg+CmNvbmZpZ3VyZTo0NzQzOiBy
ZXN1bHQ6IG5vCmNvbmZpZ3VyZTo0NzQzOiBjaGVja2luZyBmb3IgbWluaXgvY29uZmlnLmgKY29u
ZmlndXJlOjQ3NDM6IHJlc3VsdDogbm8KY29uZmlndXJlOjQ3NjQ6IGNoZWNraW5nIHdoZXRoZXIg
aXQgaXMgc2FmZSB0byBkZWZpbmUgX19FWFRFTlNJT05TX18KY29uZmlndXJlOjQ3ODI6IGdjYyAt
YyAgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDc4MjogJD8gPSAwCmNvbmZpZ3VyZTo0Nzg5
OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDg1MjogY2hlY2tpbmcgZm9yIGdjYwpjb25maWd1cmU6
NDg3OTogcmVzdWx0OiBnY2MKY29uZmlndXJlOjUxMDg6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVy
IHZlcnNpb24KY29uZmlndXJlOjUxMTc6IGdjYyAtLXZlcnNpb24gPiY1CmdjYyAoU1VTRSBMaW51
eCkgNC44LjUKQ29weXJpZ2h0IChDKSAyMDE1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LgpUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRp
dGlvbnMuICBUaGVyZSBpcyBOTwp3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KCmNvbmZpZ3VyZTo1MTI4OiAk
PyA9IDAKY29uZmlndXJlOjUxMTc6IGdjYyAtdiA+JjUKVXNpbmcgYnVpbHQtaW4gc3BlY3MuCkNP
TExFQ1RfR0NDPWdjYwpDT0xMRUNUX0xUT19XUkFQUEVSPS91c3IvbGliNjQvZ2NjL3g4Nl82NC1z
dXNlLWxpbnV4LzQuOC9sdG8td3JhcHBlcgpUYXJnZXQ6IHg4Nl82NC1zdXNlLWxpbnV4CkNvbmZp
Z3VyZWQgd2l0aDogLi4vY29uZmlndXJlIC0tcHJlZml4PS91c3IgLS1pbmZvZGlyPS91c3Ivc2hh
cmUvaW5mbyAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLWxpYmRpcj0vdXNyL2xpYjY0IC0tbGli
ZXhlY2Rpcj0vdXNyL2xpYjY0IC0tZW5hYmxlLWxhbmd1YWdlcz1jLGMrKyxvYmpjLGZvcnRyYW4s
b2JqLWMrKyxqYXZhLGFkYSAtLWVuYWJsZS1jaGVja2luZz1yZWxlYXNlIC0td2l0aC1neHgtaW5j
bHVkZS1kaXI9L3Vzci9pbmNsdWRlL2MrKy80LjggLS1lbmFibGUtc3NwIC0tZGlzYWJsZS1saWJz
c3AgLS1kaXNhYmxlLXBsdWdpbiAtLXdpdGgtYnVndXJsPWh0dHA6Ly9idWdzLm9wZW5zdXNlLm9y
Zy8gLS13aXRoLXBrZ3ZlcnNpb249J1NVU0UgTGludXgnIC0tZGlzYWJsZS1saWJnY2ogLS1kaXNh
YmxlLWxpYm11ZGZsYXAgLS13aXRoLXNsaWJkaXI9L2xpYjY0IC0td2l0aC1zeXN0ZW0temxpYiAt
LWVuYWJsZS1fX2N4YV9hdGV4aXQgLS1lbmFibGUtbGlic3RkY3h4LWFsbG9jYXRvcj1uZXcgLS1k
aXNhYmxlLWxpYnN0ZGN4eC1wY2ggLS1lbmFibGUtdmVyc2lvbi1zcGVjaWZpYy1ydW50aW1lLWxp
YnMgLS1lbmFibGUtbGlua2VyLWJ1aWxkLWlkIC0tZW5hYmxlLWxpbnV4LWZ1dGV4IC0tcHJvZ3Jh
bS1zdWZmaXg9LTQuOCAtLXdpdGhvdXQtc3lzdGVtLWxpYnVud2luZCAtLXdpdGgtYXJjaC0zMj1p
NTg2IC0td2l0aC10dW5lPWdlbmVyaWMgLS1idWlsZD14ODZfNjQtc3VzZS1saW51eCAtLWhvc3Q9
eDg2XzY0LXN1c2UtbGludXgKVGhyZWFkIG1vZGVsOiBwb3NpeApnY2MgdmVyc2lvbiA0LjguNSAo
U1VTRSBMaW51eCkgCmNvbmZpZ3VyZTo1MTI4OiAkPyA9IDAKY29uZmlndXJlOjUxMTc6IGdjYyAt
ViA+JjUKZ2NjOiBlcnJvcjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gJy1WJwpn
Y2M6IGZhdGFsIGVycm9yOiBubyBpbnB1dCBmaWxlcwpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpj
b25maWd1cmU6NTEyODogJD8gPSAxCmNvbmZpZ3VyZTo1MTE3OiBnY2MgLXF2ZXJzaW9uID4mNQpn
Y2M6IGVycm9yOiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAnLXF2ZXJzaW9uJwpn
Y2M6IGZhdGFsIGVycm9yOiBubyBpbnB1dCBmaWxlcwpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpj
b25maWd1cmU6NTEyODogJD8gPSAxCmNvbmZpZ3VyZTo1MTMyOiBjaGVja2luZyB3aGV0aGVyIHdl
IGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIKY29uZmlndXJlOjUxNjA6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZTo1MTY5OiBjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nCmNvbmZpZ3Vy
ZTo1MjMwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTI0NzogY2hlY2tpbmcgZm9yIGdjYyBvcHRp
b24gdG8gYWNjZXB0IElTTyBDODkKY29uZmlndXJlOjUzMjM6IHJlc3VsdDogbm9uZSBuZWVkZWQK
Y29uZmlndXJlOjUzNDU6IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgZ2NjCmNvbmZpZ3Vy
ZTo1NDU2OiByZXN1bHQ6IG5vbmUKY29uZmlndXJlOjU0NzY6IGNoZWNraW5nIGZvciBjcHAKY29u
ZmlndXJlOjU0OTU6IGZvdW5kIC91c3IvYmluL2NwcApjb25maWd1cmU6NTUwNzogcmVzdWx0OiAv
dXNyL2Jpbi9jcHAKY29uZmlndXJlOjU1MjQ6IGNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlCmNv
bmZpZ3VyZTo1NTM4OiByZXN1bHQ6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudQpjb25maWd1cmU6
NTU1ODogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZQpjb25maWd1cmU6NTU3MTogcmVzdWx0OiB4
ODZfNjQtdW5rbm93bi1saW51eC1nbnUKY29uZmlndXJlOjU1OTU6IGNoZWNraW5nIGZvciBmbGV4
CmNvbmZpZ3VyZTo1NjExOiBmb3VuZCAvdXNyL2Jpbi9mbGV4CmNvbmZpZ3VyZTo1NjIyOiByZXN1
bHQ6IGZsZXgKY29uZmlndXJlOjU2NjA6IGZsZXggY29uZnRlc3QubApjb25maWd1cmU6NTY2NDog
JD8gPSAwCmNvbmZpZ3VyZTo1NjY2OiBjaGVja2luZyBsZXggb3V0cHV0IGZpbGUgcm9vdApjb25m
aWd1cmU6NTY4MDogcmVzdWx0OiBsZXgueXkKY29uZmlndXJlOjU2ODU6IGNoZWNraW5nIGxleCBs
aWJyYXJ5CmNvbmZpZ3VyZTo1Njk5OiBnY2MgLW8gY29uZnRlc3QgICAgIGNvbmZ0ZXN0LmMgICA+
JjUKL3RtcC9jY0lzNjI5ei5vOiBJbiBmdW5jdGlvbiBgeXlsZXgnOgpjb25mdGVzdC5jOigudGV4
dCsweDY3Yik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHl5d3JhcCcKL3RtcC9jY0lzNjI5ei5v
OiBJbiBmdW5jdGlvbiBgaW5wdXQnOgpjb25mdGVzdC5jOigudGV4dCsweDEwY2MpOiB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvIGB5eXdyYXAnCi90bXAvY2NJczYyOXoubzogSW4gZnVuY3Rpb24gYG1h
aW4nOgpjb25mdGVzdC5jOigudGV4dCsweDFkN2QpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGB5
eXdyYXAnCmNvbGxlY3QyOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1
cmU6NTY5OTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk
ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlbkFGUyIKfCAjZGVmaW5lIFBBQ0tB
R0VfVEFSTkFNRSAib3BlbmFmcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMS42LjIwLjEi
CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlbkFGUyAxLjYuMjAuMSIKfCAjZGVmaW5lIFBB
Q0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFD
S0FHRSAib3BlbmFmcyIKfCAjZGVmaW5lIFZFUlNJT04gIjEuNi4yMC4xIgp8ICNkZWZpbmUgU1RE
Q19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9T
WVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ
TkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I
IDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEK
fCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNk
ZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BP
U0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAvKiBl
bmQgY29uZmRlZnMuaC4gICovCnwgCnwgI2xpbmUgMyAibGV4Lnl5LmMiCnwgCnwgI2RlZmluZSAg
WVlfSU5UX0FMSUdORUQgc2hvcnQgaW50CnwgCnwgLyogQSBsZXhpY2FsIHNjYW5uZXIgZ2VuZXJh
dGVkIGJ5IGZsZXggKi8KfCAKfCAjZGVmaW5lIEZMRVhfU0NBTk5FUgp8ICNkZWZpbmUgWVlfRkxF
WF9NQUpPUl9WRVJTSU9OIDIKfCAjZGVmaW5lIFlZX0ZMRVhfTUlOT1JfVkVSU0lPTiA1CnwgI2Rl
ZmluZSBZWV9GTEVYX1NVQk1JTk9SX1ZFUlNJT04gMzcKfCAjaWYgWVlfRkxFWF9TVUJNSU5PUl9W
RVJTSU9OID4gMAp8ICNkZWZpbmUgRkxFWF9CRVRBCnwgI2VuZGlmCnwgCnwgLyogRmlyc3QsIHdl
IGRlYWwgd2l0aCAgcGxhdGZvcm0tc3BlY2lmaWMgb3IgY29tcGlsZXItc3BlY2lmaWMgaXNzdWVz
LiAqLwp8IAp8IC8qIGJlZ2luIHN0YW5kYXJkIEMgaGVhZGVycy4gKi8KfCAjaW5jbHVkZSA8c3Rk
aW8uaD4KfCAjaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2luY2x1ZGUgPGVycm5vLmg+CnwgI2luY2x1
ZGUgPHN0ZGxpYi5oPgp8IAp8IC8qIGVuZCBzdGFuZGFyZCBDIGhlYWRlcnMuICovCnwgCnwgLyog
ZmxleCBpbnRlZ2VyIHR5cGUgZGVmaW5pdGlvbnMgKi8KfCAKfCAjaWZuZGVmIEZMRVhJTlRfSAp8
ICNkZWZpbmUgRkxFWElOVF9ICnwgCnwgLyogQzk5IHN5c3RlbXMgaGF2ZSA8aW50dHlwZXMuaD4u
IE5vbi1DOTkgc3lzdGVtcyBtYXkgb3IgbWF5IG5vdC4gKi8KfCAKfCAjaWYgZGVmaW5lZCAoX19T
VERDX1ZFUlNJT05fXykgJiYgX19TVERDX1ZFUlNJT05fXyA+PSAxOTk5MDFMCnwgCnwgLyogQzk5
IHNheXMgdG8gZGVmaW5lIF9fU1REQ19MSU1JVF9NQUNST1MgYmVmb3JlIGluY2x1ZGluZyBzdGRp
bnQuaCwKfCAgKiBpZiB5b3Ugd2FudCB0aGUgbGltaXQgKG1heC9taW4pIG1hY3JvcyBmb3IgaW50
IHR5cGVzLiAKfCAgKi8KfCAjaWZuZGVmIF9fU1REQ19MSU1JVF9NQUNST1MKfCAjZGVmaW5lIF9f
U1REQ19MSU1JVF9NQUNST1MgMQp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxpbnR0eXBlcy5oPgp8
IHR5cGVkZWYgaW50OF90IGZsZXhfaW50OF90Owp8IHR5cGVkZWYgdWludDhfdCBmbGV4X3VpbnQ4
X3Q7CnwgdHlwZWRlZiBpbnQxNl90IGZsZXhfaW50MTZfdDsKfCB0eXBlZGVmIHVpbnQxNl90IGZs
ZXhfdWludDE2X3Q7CnwgdHlwZWRlZiBpbnQzMl90IGZsZXhfaW50MzJfdDsKfCB0eXBlZGVmIHVp
bnQzMl90IGZsZXhfdWludDMyX3Q7CnwgI2Vsc2UKfCB0eXBlZGVmIHNpZ25lZCBjaGFyIGZsZXhf
aW50OF90Owp8IHR5cGVkZWYgc2hvcnQgaW50IGZsZXhfaW50MTZfdDsKfCB0eXBlZGVmIGludCBm
bGV4X2ludDMyX3Q7CnwgdHlwZWRlZiB1bnNpZ25lZCBjaGFyIGZsZXhfdWludDhfdDsgCnwgdHlw
ZWRlZiB1bnNpZ25lZCBzaG9ydCBpbnQgZmxleF91aW50MTZfdDsKfCB0eXBlZGVmIHVuc2lnbmVk
IGludCBmbGV4X3VpbnQzMl90Owp8IAp8IC8qIExpbWl0cyBvZiBpbnRlZ3JhbCB0eXBlcy4gKi8K
fCAjaWZuZGVmIElOVDhfTUlOCnwgI2RlZmluZSBJTlQ4X01JTiAgICAgICAgICAgICAgICgtMTI4
KQp8ICNlbmRpZgp8ICNpZm5kZWYgSU5UMTZfTUlOCnwgI2RlZmluZSBJTlQxNl9NSU4gICAgICAg
ICAgICAgICgtMzI3NjctMSkKfCAjZW5kaWYKfCAjaWZuZGVmIElOVDMyX01JTgp8ICNkZWZpbmUg
SU5UMzJfTUlOICAgICAgICAgICAgICAoLTIxNDc0ODM2NDctMSkKfCAjZW5kaWYKfCAjaWZuZGVm
IElOVDhfTUFYCnwgI2RlZmluZSBJTlQ4X01BWCAgICAgICAgICAgICAgICgxMjcpCnwgI2VuZGlm
CnwgI2lmbmRlZiBJTlQxNl9NQVgKfCAjZGVmaW5lIElOVDE2X01BWCAgICAgICAgICAgICAgKDMy
NzY3KQp8ICNlbmRpZgp8ICNpZm5kZWYgSU5UMzJfTUFYCnwgI2RlZmluZSBJTlQzMl9NQVggICAg
ICAgICAgICAgICgyMTQ3NDgzNjQ3KQp8ICNlbmRpZgp8ICNpZm5kZWYgVUlOVDhfTUFYCnwgI2Rl
ZmluZSBVSU5UOF9NQVggICAgICAgICAgICAgICgyNTVVKQp8ICNlbmRpZgp8ICNpZm5kZWYgVUlO
VDE2X01BWAp8ICNkZWZpbmUgVUlOVDE2X01BWCAgICAgICAgICAgICAoNjU1MzVVKQp8ICNlbmRp
Zgp8ICNpZm5kZWYgVUlOVDMyX01BWAp8ICNkZWZpbmUgVUlOVDMyX01BWCAgICAgICAgICAgICAo
NDI5NDk2NzI5NVUpCnwgI2VuZGlmCnwgCnwgI2VuZGlmIC8qICEgQzk5ICovCnwgCnwgI2VuZGlm
IC8qICEgRkxFWElOVF9IICovCnwgCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgCnwgLyogVGhlICJj
b25zdCIgc3RvcmFnZS1jbGFzcy1tb2RpZmllciBpcyB2YWxpZC4gKi8KfCAjZGVmaW5lIFlZX1VT
RV9DT05TVAp8IAp8ICNlbHNlCS8qICEgX19jcGx1c3BsdXMgKi8KfCAKfCAvKiBDOTkgcmVxdWly
ZXMgX19TVERDX18gdG8gYmUgZGVmaW5lZCBhcyAxLiAqLwp8ICNpZiBkZWZpbmVkIChfX1NURENf
XykKfCAKfCAjZGVmaW5lIFlZX1VTRV9DT05TVAp8IAp8ICNlbmRpZgkvKiBkZWZpbmVkIChfX1NU
RENfXykgKi8KfCAjZW5kaWYJLyogISBfX2NwbHVzcGx1cyAqLwp8IAp8ICNpZmRlZiBZWV9VU0Vf
Q09OU1QKfCAjZGVmaW5lIHl5Y29uc3QgY29uc3QKfCAjZWxzZQp8ICNkZWZpbmUgeXljb25zdAp8
ICNlbmRpZgp8IAp8IC8qIFJldHVybmVkIHVwb24gZW5kLW9mLWZpbGUuICovCnwgI2RlZmluZSBZ
WV9OVUxMIDAKfCAKfCAvKiBQcm9tb3RlcyBhIHBvc3NpYmx5IG5lZ2F0aXZlLCBwb3NzaWJseSBz
aWduZWQgY2hhciB0byBhbiB1bnNpZ25lZAp8ICAqIGludGVnZXIgZm9yIHVzZSBhcyBhbiBhcnJh
eSBpbmRleC4gIElmIHRoZSBzaWduZWQgY2hhciBpcyBuZWdhdGl2ZSwKfCAgKiB3ZSB3YW50IHRv
IGluc3RlYWQgdHJlYXQgaXQgYXMgYW4gOC1iaXQgdW5zaWduZWQgY2hhciwgaGVuY2UgdGhlCnwg
ICogZG91YmxlIGNhc3QuCnwgICovCnwgI2RlZmluZSBZWV9TQ19UT19VSShjKSAoKHVuc2lnbmVk
IGludCkgKHVuc2lnbmVkIGNoYXIpIGMpCnwgCnwgLyogRW50ZXIgYSBzdGFydCBjb25kaXRpb24u
ICBUaGlzIG1hY3JvIHJlYWxseSBvdWdodCB0byB0YWtlIGEgcGFyYW1ldGVyLAp8ICAqIGJ1dCB3
ZSBkbyBpdCB0aGUgZGlzZ3VzdGluZyBjcnVmdHkgd2F5IGZvcmNlZCBvbiB1cyBieSB0aGUgKCkt
bGVzcwp8ICAqIGRlZmluaXRpb24gb2YgQkVHSU4uCnwgICovCnwgI2RlZmluZSBCRUdJTiAoeXlf
c3RhcnQpID0gMSArIDIgKgp8IAp8IC8qIFRyYW5zbGF0ZSB0aGUgY3VycmVudCBzdGFydCBzdGF0
ZSBpbnRvIGEgdmFsdWUgdGhhdCBjYW4gYmUgbGF0ZXIgaGFuZGVkCnwgICogdG8gQkVHSU4gdG8g
cmV0dXJuIHRvIHRoZSBzdGF0ZS4gIFRoZSBZWVNUQVRFIGFsaWFzIGlzIGZvciBsZXgKfCAgKiBj
b21wYXRpYmlsaXR5Lgp8ICAqLwp8ICNkZWZpbmUgWVlfU1RBUlQgKCgoeXlfc3RhcnQpIC0gMSkg
LyAyKQp8ICNkZWZpbmUgWVlTVEFURSBZWV9TVEFSVAp8IAp8IC8qIEFjdGlvbiBudW1iZXIgZm9y
IEVPRiBydWxlIG9mIGEgZ2l2ZW4gc3RhcnQgc3RhdGUuICovCnwgI2RlZmluZSBZWV9TVEFURV9F
T0Yoc3RhdGUpIChZWV9FTkRfT0ZfQlVGRkVSICsgc3RhdGUgKyAxKQp8IAp8IC8qIFNwZWNpYWwg
YWN0aW9uIG1lYW5pbmcgInN0YXJ0IHByb2Nlc3NpbmcgYSBuZXcgZmlsZSIuICovCnwgI2RlZmlu
ZSBZWV9ORVdfRklMRSB5eXJlc3RhcnQoeXlpbiAgKQp8IAp8ICNkZWZpbmUgWVlfRU5EX09GX0JV
RkZFUl9DSEFSIDAKfCAKfCAvKiBTaXplIG9mIGRlZmF1bHQgaW5wdXQgYnVmZmVyLiAqLwp8ICNp
Zm5kZWYgWVlfQlVGX1NJWkUKfCAjZGVmaW5lIFlZX0JVRl9TSVpFIDE2Mzg0CnwgI2VuZGlmCnwg
CnwgLyogVGhlIHN0YXRlIGJ1ZiBtdXN0IGJlIGxhcmdlIGVub3VnaCB0byBob2xkIG9uZSBzdGF0
ZSBwZXIgY2hhcmFjdGVyIGluIHRoZSBtYWluIGJ1ZmZlci4KfCAgKi8KfCAjZGVmaW5lIFlZX1NU
QVRFX0JVRl9TSVpFICAgKChZWV9CVUZfU0laRSArIDIpICogc2l6ZW9mKHl5X3N0YXRlX3R5cGUp
KQp8IAp8ICNpZm5kZWYgWVlfVFlQRURFRl9ZWV9CVUZGRVJfU1RBVEUKfCAjZGVmaW5lIFlZX1RZ
UEVERUZfWVlfQlVGRkVSX1NUQVRFCnwgdHlwZWRlZiBzdHJ1Y3QgeXlfYnVmZmVyX3N0YXRlICpZ
WV9CVUZGRVJfU1RBVEU7CnwgI2VuZGlmCnwgCnwgI2lmbmRlZiBZWV9UWVBFREVGX1lZX1NJWkVf
VAp8ICNkZWZpbmUgWVlfVFlQRURFRl9ZWV9TSVpFX1QKfCB0eXBlZGVmIHNpemVfdCB5eV9zaXpl
X3Q7CnwgI2VuZGlmCnwgCnwgZXh0ZXJuIHl5X3NpemVfdCB5eWxlbmc7CnwgCnwgZXh0ZXJuIEZJ
TEUgKnl5aW4sICp5eW91dDsKfCAKfCAjZGVmaW5lIEVPQl9BQ1RfQ09OVElOVUVfU0NBTiAwCnwg
I2RlZmluZSBFT0JfQUNUX0VORF9PRl9GSUxFIDEKfCAjZGVmaW5lIEVPQl9BQ1RfTEFTVF9NQVRD
SCAyCnwgCnwgICAgICNkZWZpbmUgWVlfTEVTU19MSU5FTk8obikKfCAgICAgCnwgLyogUmV0dXJu
IGFsbCBidXQgdGhlIGZpcnN0ICJuIiBtYXRjaGVkIGNoYXJhY3RlcnMgYmFjayB0byB0aGUgaW5w
dXQgc3RyZWFtLiAqLwp8ICNkZWZpbmUgeXlsZXNzKG4pIFwKfCAJZG8gXAp8IAkJeyBcCnwgCQkv
KiBVbmRvIGVmZmVjdHMgb2Ygc2V0dGluZyB1cCB5eXRleHQuICovIFwKfCAgICAgICAgIGludCB5
eWxlc3NfbWFjcm9fYXJnID0gKG4pOyBcCnwgICAgICAgICBZWV9MRVNTX0xJTkVOTyh5eWxlc3Nf
bWFjcm9fYXJnKTtcCnwgCQkqeXlfY3AgPSAoeXlfaG9sZF9jaGFyKTsgXAp8IAkJWVlfUkVTVE9S
RV9ZWV9NT1JFX09GRlNFVCBcCnwgCQkoeXlfY19idWZfcCkgPSB5eV9jcCA9IHl5X2JwICsgeXls
ZXNzX21hY3JvX2FyZyAtIFlZX01PUkVfQURKOyBcCnwgCQlZWV9ET19CRUZPUkVfQUNUSU9OOyAv
KiBzZXQgdXAgeXl0ZXh0IGFnYWluICovIFwKfCAJCX0gXAp8IAl3aGlsZSAoIDAgKQp8IAp8ICNk
ZWZpbmUgdW5wdXQoYykgeXl1bnB1dCggYywgKHl5dGV4dF9wdHIpICApCnwgCnwgI2lmbmRlZiBZ
WV9TVFJVQ1RfWVlfQlVGRkVSX1NUQVRFCnwgI2RlZmluZSBZWV9TVFJVQ1RfWVlfQlVGRkVSX1NU
QVRFCnwgc3RydWN0IHl5X2J1ZmZlcl9zdGF0ZQp8IAl7CnwgCUZJTEUgKnl5X2lucHV0X2ZpbGU7
CnwgCnwgCWNoYXIgKnl5X2NoX2J1ZjsJCS8qIGlucHV0IGJ1ZmZlciAqLwp8IAljaGFyICp5eV9i
dWZfcG9zOwkJLyogY3VycmVudCBwb3NpdGlvbiBpbiBpbnB1dCBidWZmZXIgKi8KfCAKfCAJLyog
U2l6ZSBvZiBpbnB1dCBidWZmZXIgaW4gYnl0ZXMsIG5vdCBpbmNsdWRpbmcgcm9vbSBmb3IgRU9C
CnwgCSAqIGNoYXJhY3RlcnMuCnwgCSAqLwp8IAlpbnQgeXlfYnVmX3NpemU7CnwgCnwgCS8qIE51
bWJlciBvZiBjaGFyYWN0ZXJzIHJlYWQgaW50byB5eV9jaF9idWYsIG5vdCBpbmNsdWRpbmcgRU9C
CnwgCSAqIGNoYXJhY3RlcnMuCnwgCSAqLwp8IAlpbnQgeXlfbl9jaGFyczsKfCAKfCAJLyogV2hl
dGhlciB3ZSAib3duIiB0aGUgYnVmZmVyIC0gaS5lLiwgd2Uga25vdyB3ZSBjcmVhdGVkIGl0LAp8
IAkgKiBhbmQgY2FuIHJlYWxsb2MoKSBpdCB0byBncm93IGl0LCBhbmQgc2hvdWxkIGZyZWUoKSBp
dCB0bwp8IAkgKiBkZWxldGUgaXQuCnwgCSAqLwp8IAlpbnQgeXlfaXNfb3VyX2J1ZmZlcjsKfCAK
fCAJLyogV2hldGhlciB0aGlzIGlzIGFuICJpbnRlcmFjdGl2ZSIgaW5wdXQgc291cmNlOyBpZiBz
bywgYW5kCnwgCSAqIGlmIHdlJ3JlIHVzaW5nIHN0ZGlvIGZvciBpbnB1dCwgdGhlbiB3ZSB3YW50
IHRvIHVzZSBnZXRjKCkKfCAJICogaW5zdGVhZCBvZiBmcmVhZCgpLCB0byBtYWtlIHN1cmUgd2Ug
c3RvcCBmZXRjaGluZyBpbnB1dCBhZnRlcgp8IAkgKiBlYWNoIG5ld2xpbmUuCnwgCSAqLwp8IAlp
bnQgeXlfaXNfaW50ZXJhY3RpdmU7CnwgCnwgCS8qIFdoZXRoZXIgd2UncmUgY29uc2lkZXJlZCB0
byBiZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbGluZS4KfCAJICogSWYgc28sICdeJyBydWxlcyB3
aWxsIGJlIGFjdGl2ZSBvbiB0aGUgbmV4dCBtYXRjaCwgb3RoZXJ3aXNlCnwgCSAqIG5vdC4KfCAJ
ICovCnwgCWludCB5eV9hdF9ib2w7CnwgCnwgICAgIGludCB5eV9ic19saW5lbm87IC8qKjwgVGhl
IGxpbmUgY291bnQuICovCnwgICAgIGludCB5eV9ic19jb2x1bW47IC8qKjwgVGhlIGNvbHVtbiBj
b3VudC4gKi8KfCAgICAgCnwgCS8qIFdoZXRoZXIgdG8gdHJ5IHRvIGZpbGwgdGhlIGlucHV0IGJ1
ZmZlciB3aGVuIHdlIHJlYWNoIHRoZQp8IAkgKiBlbmQgb2YgaXQuCnwgCSAqLwp8IAlpbnQgeXlf
ZmlsbF9idWZmZXI7CnwgCnwgCWludCB5eV9idWZmZXJfc3RhdHVzOwp8IAp8ICNkZWZpbmUgWVlf
QlVGRkVSX05FVyAwCnwgI2RlZmluZSBZWV9CVUZGRVJfTk9STUFMIDEKfCAJLyogV2hlbiBhbiBF
T0YncyBiZWVuIHNlZW4gYnV0IHRoZXJlJ3Mgc3RpbGwgc29tZSB0ZXh0IHRvIHByb2Nlc3MKfCAJ
ICogdGhlbiB3ZSBtYXJrIHRoZSBidWZmZXIgYXMgWVlfRU9GX1BFTkRJTkcsIHRvIGluZGljYXRl
IHRoYXQgd2UKfCAJICogc2hvdWxkbid0IHRyeSByZWFkaW5nIGZyb20gdGhlIGlucHV0IHNvdXJj
ZSBhbnkgbW9yZS4gIFdlIG1pZ2h0CnwgCSAqIHN0aWxsIGhhdmUgYSBidW5jaCBvZiB0b2tlbnMg
dG8gbWF0Y2gsIHRob3VnaCwgYmVjYXVzZSBvZgp8IAkgKiBwb3NzaWJsZSBiYWNraW5nLXVwLgp8
IAkgKgp8IAkgKiBXaGVuIHdlIGFjdHVhbGx5IHNlZSB0aGUgRU9GLCB3ZSBjaGFuZ2UgdGhlIHN0
YXR1cyB0byAibmV3Igp8IAkgKiAodmlhIHl5cmVzdGFydCgpKSwgc28gdGhhdCB0aGUgdXNlciBj
YW4gY29udGludWUgc2Nhbm5pbmcgYnkKfCAJICoganVzdCBwb2ludGluZyB5eWluIGF0IGEgbmV3
IGlucHV0IGZpbGUuCnwgCSAqLwp8ICNkZWZpbmUgWVlfQlVGRkVSX0VPRl9QRU5ESU5HIDIKfCAK
fCAJfTsKfCAjZW5kaWYgLyogIVlZX1NUUlVDVF9ZWV9CVUZGRVJfU1RBVEUgKi8KfCAKfCAvKiBT
dGFjayBvZiBpbnB1dCBidWZmZXJzLiAqLwp8IHN0YXRpYyBzaXplX3QgeXlfYnVmZmVyX3N0YWNr
X3RvcCA9IDA7IC8qKjwgaW5kZXggb2YgdG9wIG9mIHN0YWNrLiAqLwp8IHN0YXRpYyBzaXplX3Qg
eXlfYnVmZmVyX3N0YWNrX21heCA9IDA7IC8qKjwgY2FwYWNpdHkgb2Ygc3RhY2suICovCnwgc3Rh
dGljIFlZX0JVRkZFUl9TVEFURSAqIHl5X2J1ZmZlcl9zdGFjayA9IDA7IC8qKjwgU3RhY2sgYXMg
YW4gYXJyYXkuICovCnwgCnwgLyogV2UgcHJvdmlkZSBtYWNyb3MgZm9yIGFjY2Vzc2luZyBidWZm
ZXIgc3RhdGVzIGluIGNhc2UgaW4gdGhlCnwgICogZnV0dXJlIHdlIHdhbnQgdG8gcHV0IHRoZSBi
dWZmZXIgc3RhdGVzIGluIGEgbW9yZSBnZW5lcmFsCnwgICogInNjYW5uZXIgc3RhdGUiLgp8ICAq
CnwgICogUmV0dXJucyB0aGUgdG9wIG9mIHRoZSBzdGFjaywgb3IgTlVMTC4KfCAgKi8KfCAjZGVm
aW5lIFlZX0NVUlJFTlRfQlVGRkVSICggKHl5X2J1ZmZlcl9zdGFjaykgXAp8ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPyAoeXlfYnVmZmVyX3N0YWNrKVsoeXlfYnVmZmVyX3N0YWNrX3RvcCld
IFwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgIDogTlVMTCkKfCAKfCAvKiBTYW1lIGFzIHBy
ZXZpb3VzIG1hY3JvLCBidXQgdXNlZnVsIHdoZW4gd2Uga25vdyB0aGF0IHRoZSBidWZmZXIgc3Rh
Y2sgaXMgbm90CnwgICogTlVMTCBvciB3aGVuIHdlIG5lZWQgYW4gbHZhbHVlLiBGb3IgaW50ZXJu
YWwgdXNlIG9ubHkuCnwgICovCnwgI2RlZmluZSBZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUgKHl5
X2J1ZmZlcl9zdGFjaylbKHl5X2J1ZmZlcl9zdGFja190b3ApXQp8IAp8IC8qIHl5X2hvbGRfY2hh
ciBob2xkcyB0aGUgY2hhcmFjdGVyIGxvc3Qgd2hlbiB5eXRleHQgaXMgZm9ybWVkLiAqLwp8IHN0
YXRpYyBjaGFyIHl5X2hvbGRfY2hhcjsKfCBzdGF0aWMgaW50IHl5X25fY2hhcnM7CQkvKiBudW1i
ZXIgb2YgY2hhcmFjdGVycyByZWFkIGludG8geXlfY2hfYnVmICovCnwgeXlfc2l6ZV90IHl5bGVu
ZzsKfCAKfCAvKiBQb2ludHMgdG8gY3VycmVudCBjaGFyYWN0ZXIgaW4gYnVmZmVyLiAqLwp8IHN0
YXRpYyBjaGFyICp5eV9jX2J1Zl9wID0gKGNoYXIgKikgMDsKfCBzdGF0aWMgaW50IHl5X2luaXQg
PSAwOwkJLyogd2hldGhlciB3ZSBuZWVkIHRvIGluaXRpYWxpemUgKi8KfCBzdGF0aWMgaW50IHl5
X3N0YXJ0ID0gMDsJLyogc3RhcnQgc3RhdGUgbnVtYmVyICovCnwgCnwgLyogRmxhZyB3aGljaCBp
cyB1c2VkIHRvIGFsbG93IHl5d3JhcCgpJ3MgdG8gZG8gYnVmZmVyIHN3aXRjaGVzCnwgICogaW5z
dGVhZCBvZiBzZXR0aW5nIHVwIGEgZnJlc2ggeXlpbi4gIEEgYml0IG9mIGEgaGFjayAuLi4KfCAg
Ki8KfCBzdGF0aWMgaW50IHl5X2RpZF9idWZmZXJfc3dpdGNoX29uX2VvZjsKfCAKfCB2b2lkIHl5
cmVzdGFydCAoRklMRSAqaW5wdXRfZmlsZSAgKTsKfCB2b2lkIHl5X3N3aXRjaF90b19idWZmZXIg
KFlZX0JVRkZFUl9TVEFURSBuZXdfYnVmZmVyICApOwp8IFlZX0JVRkZFUl9TVEFURSB5eV9jcmVh
dGVfYnVmZmVyIChGSUxFICpmaWxlLGludCBzaXplICApOwp8IHZvaWQgeXlfZGVsZXRlX2J1ZmZl
ciAoWVlfQlVGRkVSX1NUQVRFIGIgICk7Cnwgdm9pZCB5eV9mbHVzaF9idWZmZXIgKFlZX0JVRkZF
Ul9TVEFURSBiICApOwp8IHZvaWQgeXlwdXNoX2J1ZmZlcl9zdGF0ZSAoWVlfQlVGRkVSX1NUQVRF
IG5ld19idWZmZXIgICk7Cnwgdm9pZCB5eXBvcF9idWZmZXJfc3RhdGUgKHZvaWQgKTsKfCAKfCBz
dGF0aWMgdm9pZCB5eWVuc3VyZV9idWZmZXJfc3RhY2sgKHZvaWQgKTsKfCBzdGF0aWMgdm9pZCB5
eV9sb2FkX2J1ZmZlcl9zdGF0ZSAodm9pZCApOwp8IHN0YXRpYyB2b2lkIHl5X2luaXRfYnVmZmVy
IChZWV9CVUZGRVJfU1RBVEUgYixGSUxFICpmaWxlICApOwp8IAp8ICNkZWZpbmUgWVlfRkxVU0hf
QlVGRkVSIHl5X2ZsdXNoX2J1ZmZlcihZWV9DVVJSRU5UX0JVRkZFUiApCnwgCnwgWVlfQlVGRkVS
X1NUQVRFIHl5X3NjYW5fYnVmZmVyIChjaGFyICpiYXNlLHl5X3NpemVfdCBzaXplICApOwp8IFlZ
X0JVRkZFUl9TVEFURSB5eV9zY2FuX3N0cmluZyAoeXljb25zdCBjaGFyICp5eV9zdHIgICk7Cnwg
WVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fYnl0ZXMgKHl5Y29uc3QgY2hhciAqYnl0ZXMseXlfc2l6
ZV90IGxlbiAgKTsKfCAKfCB2b2lkICp5eWFsbG9jICh5eV9zaXplX3QgICk7Cnwgdm9pZCAqeXly
ZWFsbG9jICh2b2lkICoseXlfc2l6ZV90ICApOwp8IHZvaWQgeXlmcmVlICh2b2lkICogICk7Cnwg
CnwgI2RlZmluZSB5eV9uZXdfYnVmZmVyIHl5X2NyZWF0ZV9idWZmZXIKfCAKfCAjZGVmaW5lIHl5
X3NldF9pbnRlcmFjdGl2ZShpc19pbnRlcmFjdGl2ZSkgXAp8IAl7IFwKfCAJaWYgKCAhIFlZX0NV
UlJFTlRfQlVGRkVSICl7IFwKfCAgICAgICAgIHl5ZW5zdXJlX2J1ZmZlcl9zdGFjayAoKTsgXAp8
IAkJWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFID0gICAgXAp8ICAgICAgICAgICAgIHl5X2NyZWF0
ZV9idWZmZXIoeXlpbixZWV9CVUZfU0laRSApOyBcCnwgCX0gXAp8IAlZWV9DVVJSRU5UX0JVRkZF
Ul9MVkFMVUUtPnl5X2lzX2ludGVyYWN0aXZlID0gaXNfaW50ZXJhY3RpdmU7IFwKfCAJfQp8IAp8
ICNkZWZpbmUgeXlfc2V0X2JvbChhdF9ib2wpIFwKfCAJeyBcCnwgCWlmICggISBZWV9DVVJSRU5U
X0JVRkZFUiApe1wKfCAgICAgICAgIHl5ZW5zdXJlX2J1ZmZlcl9zdGFjayAoKTsgXAp8IAkJWVlf
Q1VSUkVOVF9CVUZGRVJfTFZBTFVFID0gICAgXAp8ICAgICAgICAgICAgIHl5X2NyZWF0ZV9idWZm
ZXIoeXlpbixZWV9CVUZfU0laRSApOyBcCnwgCX0gXAp8IAlZWV9DVVJSRU5UX0JVRkZFUl9MVkFM
VUUtPnl5X2F0X2JvbCA9IGF0X2JvbDsgXAp8IAl9CnwgCnwgI2RlZmluZSBZWV9BVF9CT0woKSAo
WVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9hdF9ib2wpCnwgCnwgLyogQmVnaW4gdXNlciBz
ZWN0MyAqLwp8IAp8IHR5cGVkZWYgdW5zaWduZWQgY2hhciBZWV9DSEFSOwp8IAp8IEZJTEUgKnl5
aW4gPSAoRklMRSAqKSAwLCAqeXlvdXQgPSAoRklMRSAqKSAwOwp8IAp8IHR5cGVkZWYgaW50IHl5
X3N0YXRlX3R5cGU7CnwgCnwgZXh0ZXJuIGludCB5eWxpbmVubzsKfCAKfCBpbnQgeXlsaW5lbm8g
PSAxOwp8IAp8IGV4dGVybiBjaGFyICp5eXRleHQ7CnwgI2RlZmluZSB5eXRleHRfcHRyIHl5dGV4
dAp8IAp8IHN0YXRpYyB5eV9zdGF0ZV90eXBlIHl5X2dldF9wcmV2aW91c19zdGF0ZSAodm9pZCAp
Owp8IHN0YXRpYyB5eV9zdGF0ZV90eXBlIHl5X3RyeV9OVUxfdHJhbnMgKHl5X3N0YXRlX3R5cGUg
Y3VycmVudF9zdGF0ZSAgKTsKfCBzdGF0aWMgaW50IHl5X2dldF9uZXh0X2J1ZmZlciAodm9pZCAp
Owp8IHN0YXRpYyB2b2lkIHl5X2ZhdGFsX2Vycm9yICh5eWNvbnN0IGNoYXIgbXNnW10gICk7Cnwg
CnwgLyogRG9uZSBhZnRlciB0aGUgY3VycmVudCBwYXR0ZXJuIGhhcyBiZWVuIG1hdGNoZWQgYW5k
IGJlZm9yZSB0aGUKfCAgKiBjb3JyZXNwb25kaW5nIGFjdGlvbiAtIHNldHMgdXAgeXl0ZXh0Lgp8
ICAqLwp8ICNkZWZpbmUgWVlfRE9fQkVGT1JFX0FDVElPTiBcCnwgCSh5eXRleHRfcHRyKSA9IHl5
X2JwOyBcCnwgCSh5eXRleHRfcHRyKSAtPSAoeXlfbW9yZV9sZW4pOyBcCnwgCXl5bGVuZyA9IChp
bnQpICh5eV9jcCAtICh5eXRleHRfcHRyKSk7IFwKfCAJKHl5X2hvbGRfY2hhcikgPSAqeXlfY3A7
IFwKfCAJKnl5X2NwID0gJ1wwJzsgXAp8IAkoeXlfY19idWZfcCkgPSB5eV9jcDsKfCAKfCAjZGVm
aW5lIFlZX05VTV9SVUxFUyA4CnwgI2RlZmluZSBZWV9FTkRfT0ZfQlVGRkVSIDkKfCAvKiBUaGlz
IHN0cnVjdCBpcyBub3QgdXNlZCBpbiB0aGlzIHNjYW5uZXIsCnwgICAgYnV0IGl0cyBwcmVzZW5j
ZSBpcyBuZWNlc3NhcnkuICovCnwgc3RydWN0IHl5X3RyYW5zX2luZm8KfCAJewp8IAlmbGV4X2lu
dDMyX3QgeXlfdmVyaWZ5Owp8IAlmbGV4X2ludDMyX3QgeXlfbnh0Owp8IAl9Owp8IHN0YXRpYyB5
eWNvbnN0IGZsZXhfaW50MTZfdCB5eV9hY2NsaXN0WzIzXSA9CnwgICAgIHsgICAwLAp8ICAgICAg
ICAgOSwgICAgNywgICAgOCwgICAgOCwgICAgMSwgICAgNywgICAgOCwgICAgMiwgICAgNywgICAg
OCwKfCAgICAgICAgIDMsICAgIDcsICAgIDgsICAgIDQsICAgIDcsICAgIDgsICAgIDUsICAgIDcs
ICAgIDgsICAgIDYsCnwgICAgICAgICA3LCAgICA4CnwgICAgIH0gOwp8IAp8IHN0YXRpYyB5eWNv
bnN0IGZsZXhfaW50MTZfdCB5eV9hY2NlcHRbMTRdID0KfCAgICAgeyAgIDAsCnwgICAgICAgICAx
LCAgICAxLCAgICAxLCAgICAyLCAgICA0LCAgICA1LCAgICA4LCAgIDExLCAgIDE0LCAgIDE3LAp8
ICAgICAgICAyMCwgICAyMywgICAyMwp8ICAgICB9IDsKfCAKfCBzdGF0aWMgeXljb25zdCBmbGV4
X2ludDMyX3QgeXlfZWNbMjU2XSA9CnwgICAgIHsgICAwLAp8ICAgICAgICAgMSwgICAgMSwgICAg
MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMiwKfCAgICAgICAgIDEs
ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwg
ICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx
LCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg
ICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg
IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAx
LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwg
ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAg
IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEs
CnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg
ICAxLCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg
MywgICAgNCwgICAgNSwgICAgNiwKfCAKfCAgICAgICAgIDcsICAgIDgsICAgIDEsICAgIDEsICAg
IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAgICAxLCAgICAx
LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8ICAgICAgICAgMSwg
ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAg
ICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEs
ICAgIDEsCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg
ICAxLCAgICAxLCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg
MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEs
ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAgICAxLCAg
ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8ICAgICAgICAg
MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwK
fCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg
IDEsICAgIDEsCnwgCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg
ICAxLCAgICAxLCAgICAxLCAgICAxLAp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg
MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEs
ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCnwgICAgICAgICAxLCAg
ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAp8ICAg
ICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg
ICAgMSwKfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEKfCAgICAgfSA7CnwgCnwg
c3RhdGljIHl5Y29uc3QgZmxleF9pbnQzMl90IHl5X21ldGFbOV0gPQp8ICAgICB7ICAgMCwKfCAg
ICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEKfCAgICAg
fSA7CnwgCnwgc3RhdGljIHl5Y29uc3QgZmxleF9pbnQxNl90IHl5X2Jhc2VbMTNdID0KfCAgICAg
eyAgIDAsCnwgICAgICAgICAwLCAgICAwLCAgICA5LCAgIDEwLCAgIDEwLCAgIDEwLCAgIDEwLCAg
IDEwLCAgIDEwLCAgIDEwLAp8ICAgICAgICAxMCwgICAxMAp8ICAgICB9IDsKfCAKfCBzdGF0aWMg
eXljb25zdCBmbGV4X2ludDE2X3QgeXlfZGVmWzEzXSA9CnwgICAgIHsgICAwLAp8ICAgICAgICAx
MiwgICAgMSwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwK
fCAgICAgICAgMTIsICAgIDAKfCAgICAgfSA7CnwgCnwgc3RhdGljIHl5Y29uc3QgZmxleF9pbnQx
Nl90IHl5X254dFsxOV0gPQp8ICAgICB7ICAgMCwKfCAgICAgICAgIDQsICAgIDUsICAgIDYsICAg
IDcsICAgIDgsICAgIDksICAgMTAsICAgMTEsICAgMTIsICAgIDMsCnwgICAgICAgIDEyLCAgIDEy
LCAgIDEyLCAgIDEyLCAgIDEyLCAgIDEyLCAgIDEyLCAgIDEyCnwgICAgIH0gOwp8IAp8IHN0YXRp
YyB5eWNvbnN0IGZsZXhfaW50MTZfdCB5eV9jaGtbMTldID0KfCAgICAgeyAgIDAsCnwgICAgICAg
ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAzLCAgIDEy
LAp8ICAgICAgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMiwgICAxMgp8
ICAgICB9IDsKfCAKfCBleHRlcm4gaW50IHl5X2ZsZXhfZGVidWc7CnwgaW50IHl5X2ZsZXhfZGVi
dWcgPSAwOwp8IAp8IHN0YXRpYyB5eV9zdGF0ZV90eXBlICp5eV9zdGF0ZV9idWY9MCwgKnl5X3N0
YXRlX3B0cj0wOwp8IHN0YXRpYyBjaGFyICp5eV9mdWxsX21hdGNoOwp8IHN0YXRpYyBpbnQgeXlf
bHA7CnwgI2RlZmluZSBSRUpFQ1QgXAp8IHsgXAp8ICp5eV9jcCA9ICh5eV9ob2xkX2NoYXIpOyAv
KiB1bmRvIGVmZmVjdHMgb2Ygc2V0dGluZyB1cCB5eXRleHQgKi8gXAp8IHl5X2NwID0gKHl5X2Z1
bGxfbWF0Y2gpOyAvKiByZXN0b3JlIHBvc3MuIGJhY2tlZC1vdmVyIHRleHQgKi8gXAp8ICsrKHl5
X2xwKTsgXAp8IGdvdG8gZmluZF9ydWxlOyBcCnwgfQp8IAp8IHN0YXRpYyBpbnQgeXlfbW9yZV9m
bGFnID0gMDsKfCBzdGF0aWMgaW50IHl5X21vcmVfbGVuID0gMDsKfCAjZGVmaW5lIHl5bW9yZSgp
ICgoeXlfbW9yZV9mbGFnKSA9IDEpCnwgI2RlZmluZSBZWV9NT1JFX0FESiAoeXlfbW9yZV9sZW4p
CnwgI2RlZmluZSBZWV9SRVNUT1JFX1lZX01PUkVfT0ZGU0VUCnwgY2hhciAqeXl0ZXh0Owp8ICNs
aW5lIDEgImNvbmZ0ZXN0LmwiCnwgI2xpbmUgNDY5ICJsZXgueXkuYyIKfCAKfCAjZGVmaW5lIElO
SVRJQUwgMAp8IAp8ICNpZm5kZWYgWVlfTk9fVU5JU1REX0gKfCAvKiBTcGVjaWFsIGNhc2UgZm9y
ICJ1bmlzdGQuaCIsIHNpbmNlIGl0IGlzIG5vbi1BTlNJLiBXZSBpbmNsdWRlIGl0IHdheQp8ICAq
IGRvd24gaGVyZSBiZWNhdXNlIHdlIHdhbnQgdGhlIHVzZXIncyBzZWN0aW9uIDEgdG8gaGF2ZSBi
ZWVuIHNjYW5uZWQgZmlyc3QuCnwgICogVGhlIHVzZXIgaGFzIGEgY2hhbmNlIHRvIG92ZXJyaWRl
IGl0IHdpdGggYW4gb3B0aW9uLgp8ICAqLwp8ICNpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYK
fCAKfCAjaWZuZGVmIFlZX0VYVFJBX1RZUEUKfCAjZGVmaW5lIFlZX0VYVFJBX1RZUEUgdm9pZCAq
CnwgI2VuZGlmCnwgCnwgc3RhdGljIGludCB5eV9pbml0X2dsb2JhbHMgKHZvaWQgKTsKfCAKfCAv
KiBBY2Nlc3NvciBtZXRob2RzIHRvIGdsb2JhbHMuCnwgICAgVGhlc2UgYXJlIG1hZGUgdmlzaWJs
ZSB0byBub24tcmVlbnRyYW50IHNjYW5uZXJzIGZvciBjb252ZW5pZW5jZS4gKi8KfCAKfCBpbnQg
eXlsZXhfZGVzdHJveSAodm9pZCApOwp8IAp8IGludCB5eWdldF9kZWJ1ZyAodm9pZCApOwp8IAp8
IHZvaWQgeXlzZXRfZGVidWcgKGludCBkZWJ1Z19mbGFnICApOwp8IAp8IFlZX0VYVFJBX1RZUEUg
eXlnZXRfZXh0cmEgKHZvaWQgKTsKfCAKfCB2b2lkIHl5c2V0X2V4dHJhIChZWV9FWFRSQV9UWVBF
IHVzZXJfZGVmaW5lZCAgKTsKfCAKfCBGSUxFICp5eWdldF9pbiAodm9pZCApOwp8IAp8IHZvaWQg
eXlzZXRfaW4gIChGSUxFICogaW5fc3RyICApOwp8IAp8IEZJTEUgKnl5Z2V0X291dCAodm9pZCAp
Owp8IAp8IHZvaWQgeXlzZXRfb3V0ICAoRklMRSAqIG91dF9zdHIgICk7CnwgCnwgeXlfc2l6ZV90
IHl5Z2V0X2xlbmcgKHZvaWQgKTsKfCAKfCBjaGFyICp5eWdldF90ZXh0ICh2b2lkICk7CnwgCnwg
aW50IHl5Z2V0X2xpbmVubyAodm9pZCApOwp8IAp8IHZvaWQgeXlzZXRfbGluZW5vIChpbnQgbGlu
ZV9udW1iZXIgICk7CnwgCnwgLyogTWFjcm9zIGFmdGVyIHRoaXMgcG9pbnQgY2FuIGFsbCBiZSBv
dmVycmlkZGVuIGJ5IHVzZXIgZGVmaW5pdGlvbnMgaW4KfCAgKiBzZWN0aW9uIDEuCnwgICovCnwg
CnwgI2lmbmRlZiBZWV9TS0lQX1lZV1JBUAp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAi
QyIgaW50IHl5d3JhcCAodm9pZCApOwp8ICNlbHNlCnwgZXh0ZXJuIGludCB5eXdyYXAgKHZvaWQg
KTsKfCAjZW5kaWYKfCAjZW5kaWYKfCAKfCAgICAgc3RhdGljIHZvaWQgeXl1bnB1dCAoaW50IGMs
Y2hhciAqYnVmX3B0ciAgKTsKfCAgICAgCnwgI2lmbmRlZiB5eXRleHRfcHRyCnwgc3RhdGljIHZv
aWQgeXlfZmxleF9zdHJuY3B5IChjaGFyICoseXljb25zdCBjaGFyICosaW50ICk7CnwgI2VuZGlm
CnwgCnwgI2lmZGVmIFlZX05FRURfU1RSTEVOCnwgc3RhdGljIGludCB5eV9mbGV4X3N0cmxlbiAo
eXljb25zdCBjaGFyICogKTsKfCAjZW5kaWYKfCAKfCAjaWZuZGVmIFlZX05PX0lOUFVUCnwgCnwg
I2lmZGVmIF9fY3BsdXNwbHVzCnwgc3RhdGljIGludCB5eWlucHV0ICh2b2lkICk7CnwgI2Vsc2UK
fCBzdGF0aWMgaW50IGlucHV0ICh2b2lkICk7CnwgI2VuZGlmCnwgCnwgI2VuZGlmCnwgCnwgLyog
QW1vdW50IG9mIHN0dWZmIHRvIHNsdXJwIHVwIHdpdGggZWFjaCByZWFkLiAqLwp8ICNpZm5kZWYg
WVlfUkVBRF9CVUZfU0laRQp8ICNkZWZpbmUgWVlfUkVBRF9CVUZfU0laRSA4MTkyCnwgI2VuZGlm
CnwgCnwgLyogQ29weSB3aGF0ZXZlciB0aGUgbGFzdCBydWxlIG1hdGNoZWQgdG8gdGhlIHN0YW5k
YXJkIG91dHB1dC4gKi8KfCAjaWZuZGVmIEVDSE8KfCAvKiBUaGlzIHVzZWQgdG8gYmUgYW4gZnB1
dHMoKSwgYnV0IHNpbmNlIHRoZSBzdHJpbmcgbWlnaHQgY29udGFpbiBOVUwncywKfCAgKiB3ZSBu
b3cgdXNlIGZ3cml0ZSgpLgp8ICAqLwp8ICNkZWZpbmUgRUNITyBkbyB7IGlmIChmd3JpdGUoIHl5
dGV4dCwgeXlsZW5nLCAxLCB5eW91dCApKSB7fSB9IHdoaWxlICgwKQp8ICNlbmRpZgp8IAp8IC8q
IEdldHMgaW5wdXQgYW5kIHN0dWZmcyBpdCBpbnRvICJidWYiLiAgbnVtYmVyIG9mIGNoYXJhY3Rl
cnMgcmVhZCwgb3IgWVlfTlVMTCwKfCAgKiBpcyByZXR1cm5lZCBpbiAicmVzdWx0Ii4KfCAgKi8K
fCAjaWZuZGVmIFlZX0lOUFVUCnwgI2RlZmluZSBZWV9JTlBVVChidWYscmVzdWx0LG1heF9zaXpl
KSBcCnwgCWlmICggWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9pc19pbnRlcmFjdGl2ZSAp
IFwKfCAJCXsgXAp8IAkJaW50IGMgPSAnKic7IFwKfCAJCXNpemVfdCBuOyBcCnwgCQlmb3IgKCBu
ID0gMDsgbiA8IG1heF9zaXplICYmIFwKfCAJCQkgICAgIChjID0gZ2V0YyggeXlpbiApKSAhPSBF
T0YgJiYgYyAhPSAnXG4nOyArK24gKSBcCnwgCQkJYnVmW25dID0gKGNoYXIpIGM7IFwKfCAJCWlm
ICggYyA9PSAnXG4nICkgXAp8IAkJCWJ1ZltuKytdID0gKGNoYXIpIGM7IFwKfCAJCWlmICggYyA9
PSBFT0YgJiYgZmVycm9yKCB5eWluICkgKSBcCnwgCQkJWVlfRkFUQUxfRVJST1IoICJpbnB1dCBp
biBmbGV4IHNjYW5uZXIgZmFpbGVkIiApOyBcCnwgCQlyZXN1bHQgPSBuOyBcCnwgCQl9IFwKfCAJ
ZWxzZSBcCnwgCQl7IFwKfCAJCWVycm5vPTA7IFwKfCAJCXdoaWxlICggKHJlc3VsdCA9IChpbnQp
IGZyZWFkKGJ1ZiwgMSwgbWF4X3NpemUsIHl5aW4pKT09MCAmJiBmZXJyb3IoeXlpbikpIFwKfCAJ
CQl7IFwKfCAJCQlpZiggZXJybm8gIT0gRUlOVFIpIFwKfCAJCQkJeyBcCnwgCQkJCVlZX0ZBVEFM
X0VSUk9SKCAiaW5wdXQgaW4gZmxleCBzY2FubmVyIGZhaWxlZCIgKTsgXAp8IAkJCQlicmVhazsg
XAp8IAkJCQl9IFwKfCAJCQllcnJubz0wOyBcCnwgCQkJY2xlYXJlcnIoeXlpbik7IFwKfCAJCQl9
IFwKfCAJCX1cCnwgXAp8IAp8ICNlbmRpZgp8IAp8IC8qIE5vIHNlbWktY29sb24gYWZ0ZXIgcmV0
dXJuOyBjb3JyZWN0IHVzYWdlIGlzIHRvIHdyaXRlICJ5eXRlcm1pbmF0ZSgpOyIgLQp8ICAqIHdl
IGRvbid0IHdhbnQgYW4gZXh0cmEgJzsnIGFmdGVyIHRoZSAicmV0dXJuIiBiZWNhdXNlIHRoYXQg
d2lsbCBjYXVzZQp8ICAqIHNvbWUgY29tcGlsZXJzIHRvIGNvbXBsYWluIGFib3V0IHVucmVhY2hh
YmxlIHN0YXRlbWVudHMuCnwgICovCnwgI2lmbmRlZiB5eXRlcm1pbmF0ZQp8ICNkZWZpbmUgeXl0
ZXJtaW5hdGUoKSByZXR1cm4gWVlfTlVMTAp8ICNlbmRpZgp8IAp8IC8qIE51bWJlciBvZiBlbnRy
aWVzIGJ5IHdoaWNoIHN0YXJ0LWNvbmRpdGlvbiBzdGFjayBncm93cy4gKi8KfCAjaWZuZGVmIFlZ
X1NUQVJUX1NUQUNLX0lOQ1IKfCAjZGVmaW5lIFlZX1NUQVJUX1NUQUNLX0lOQ1IgMjUKfCAjZW5k
aWYKfCAKfCAvKiBSZXBvcnQgYSBmYXRhbCBlcnJvci4gKi8KfCAjaWZuZGVmIFlZX0ZBVEFMX0VS
Uk9SCnwgI2RlZmluZSBZWV9GQVRBTF9FUlJPUihtc2cpIHl5X2ZhdGFsX2Vycm9yKCBtc2cgKQp8
ICNlbmRpZgp8IAp8IC8qIGVuZCB0YWJsZXMgc2VyaWFsaXphdGlvbiBzdHJ1Y3R1cmVzIGFuZCBw
cm90b3R5cGVzICovCnwgCnwgLyogRGVmYXVsdCBkZWNsYXJhdGlvbiBvZiBnZW5lcmF0ZWQgc2Nh
bm5lciAtIGEgZGVmaW5lIHNvIHRoZSB1c2VyIGNhbgp8ICAqIGVhc2lseSBhZGQgcGFyYW1ldGVy
cy4KfCAgKi8KfCAjaWZuZGVmIFlZX0RFQ0wKfCAjZGVmaW5lIFlZX0RFQ0xfSVNfT1VSUyAxCnwg
CnwgZXh0ZXJuIGludCB5eWxleCAodm9pZCk7CnwgCnwgI2RlZmluZSBZWV9ERUNMIGludCB5eWxl
eCAodm9pZCkKfCAjZW5kaWYgLyogIVlZX0RFQ0wgKi8KfCAKfCAvKiBDb2RlIGV4ZWN1dGVkIGF0
IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBydWxlLCBhZnRlciB5eXRleHQgYW5kIHl5bGVuZwp8ICAq
IGhhdmUgYmVlbiBzZXQgdXAuCnwgICovCnwgI2lmbmRlZiBZWV9VU0VSX0FDVElPTgp8ICNkZWZp
bmUgWVlfVVNFUl9BQ1RJT04KfCAjZW5kaWYKfCAKfCAvKiBDb2RlIGV4ZWN1dGVkIGF0IHRoZSBl
bmQgb2YgZWFjaCBydWxlLiAqLwp8ICNpZm5kZWYgWVlfQlJFQUsKfCAjZGVmaW5lIFlZX0JSRUFL
IGJyZWFrOwp8ICNlbmRpZgp8IAp8ICNkZWZpbmUgWVlfUlVMRV9TRVRVUCBcCnwgCVlZX1VTRVJf
QUNUSU9OCnwgCnwgLyoqIFRoZSBtYWluIHNjYW5uZXIgZnVuY3Rpb24gd2hpY2ggZG9lcyBhbGwg
dGhlIHdvcmsuCnwgICovCnwgWVlfREVDTAp8IHsKfCAJcmVnaXN0ZXIgeXlfc3RhdGVfdHlwZSB5
eV9jdXJyZW50X3N0YXRlOwp8IAlyZWdpc3RlciBjaGFyICp5eV9jcCwgKnl5X2JwOwp8IAlyZWdp
c3RlciBpbnQgeXlfYWN0Owp8ICAgICAKfCAjbGluZSAxICJjb25mdGVzdC5sIgp8IAp8ICNsaW5l
IDY1MyAibGV4Lnl5LmMiCnwgCnwgCWlmICggISh5eV9pbml0KSApCnwgCQl7CnwgCQkoeXlfaW5p
dCkgPSAxOwp8IAp8ICNpZmRlZiBZWV9VU0VSX0lOSVQKfCAJCVlZX1VTRVJfSU5JVDsKfCAjZW5k
aWYKfCAKfCAgICAgICAgIC8qIENyZWF0ZSB0aGUgcmVqZWN0IGJ1ZmZlciBsYXJnZSBlbm91Z2gg
dG8gc2F2ZSBvbmUgc3RhdGUgcGVyIGFsbG93ZWQgY2hhcmFjdGVyLiAqLwp8ICAgICAgICAgaWYg
KCAhICh5eV9zdGF0ZV9idWYpICkKfCAgICAgICAgICAgICAoeXlfc3RhdGVfYnVmKSA9ICh5eV9z
dGF0ZV90eXBlICopeXlhbGxvYyhZWV9TVEFURV9CVUZfU0laRSAgKTsKfCAgICAgICAgICAgICBp
ZiAoICEgKHl5X3N0YXRlX2J1ZikgKQp8ICAgICAgICAgICAgICAgICBZWV9GQVRBTF9FUlJPUigg
Im91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eWxleCgpIiApOwp8IAp8IAkJaWYgKCAhICh5eV9z
dGFydCkgKQp8IAkJCSh5eV9zdGFydCkgPSAxOwkvKiBmaXJzdCBzdGFydCBzdGF0ZSAqLwp8IAp8
IAkJaWYgKCAhIHl5aW4gKQp8IAkJCXl5aW4gPSBzdGRpbjsKfCAKfCAJCWlmICggISB5eW91dCAp
CnwgCQkJeXlvdXQgPSBzdGRvdXQ7CnwgCnwgCQlpZiAoICEgWVlfQ1VSUkVOVF9CVUZGRVIgKSB7
CnwgCQkJeXllbnN1cmVfYnVmZmVyX3N0YWNrICgpOwp8IAkJCVlZX0NVUlJFTlRfQlVGRkVSX0xW
QUxVRSA9CnwgCQkJCXl5X2NyZWF0ZV9idWZmZXIoeXlpbixZWV9CVUZfU0laRSApOwp8IAkJfQp8
IAp8IAkJeXlfbG9hZF9idWZmZXJfc3RhdGUoICk7CnwgCQl9CnwgCnwgCXdoaWxlICggMSApCQkv
KiBsb29wcyB1bnRpbCBlbmQtb2YtZmlsZSBpcyByZWFjaGVkICovCnwgCQl7CnwgCQkoeXlfbW9y
ZV9sZW4pID0gMDsKfCAJCWlmICggKHl5X21vcmVfZmxhZykgKQp8IAkJCXsKfCAJCQkoeXlfbW9y
ZV9sZW4pID0gKHl5X2NfYnVmX3ApIC0gKHl5dGV4dF9wdHIpOwp8IAkJCSh5eV9tb3JlX2ZsYWcp
ID0gMDsKfCAJCQl9CnwgCQl5eV9jcCA9ICh5eV9jX2J1Zl9wKTsKfCAKfCAJCS8qIFN1cHBvcnQg
b2YgeXl0ZXh0LiAqLwp8IAkJKnl5X2NwID0gKHl5X2hvbGRfY2hhcik7CnwgCnwgCQkvKiB5eV9i
cCBwb2ludHMgdG8gdGhlIHBvc2l0aW9uIGluIHl5X2NoX2J1ZiBvZiB0aGUgc3RhcnQgb2YKfCAJ
CSAqIHRoZSBjdXJyZW50IHJ1bi4KfCAJCSAqLwp8IAkJeXlfYnAgPSB5eV9jcDsKfCAKfCAJCXl5
X2N1cnJlbnRfc3RhdGUgPSAoeXlfc3RhcnQpOwp8IAp8IAkJKHl5X3N0YXRlX3B0cikgPSAoeXlf
c3RhdGVfYnVmKTsKfCAJCSooeXlfc3RhdGVfcHRyKSsrID0geXlfY3VycmVudF9zdGF0ZTsKfCAK
fCB5eV9tYXRjaDoKfCAJCWRvCnwgCQkJewp8IAkJCXJlZ2lzdGVyIFlZX0NIQVIgeXlfYyA9IHl5
X2VjW1lZX1NDX1RPX1VJKCp5eV9jcCldOwp8IAkJCXdoaWxlICggeXlfY2hrW3l5X2Jhc2VbeXlf
Y3VycmVudF9zdGF0ZV0gKyB5eV9jXSAhPSB5eV9jdXJyZW50X3N0YXRlICkKfCAJCQkJewp8IAkJ
CQl5eV9jdXJyZW50X3N0YXRlID0gKGludCkgeXlfZGVmW3l5X2N1cnJlbnRfc3RhdGVdOwp8IAkJ
CQlpZiAoIHl5X2N1cnJlbnRfc3RhdGUgPj0gMTMgKQp8IAkJCQkJeXlfYyA9IHl5X21ldGFbKHVu
c2lnbmVkIGludCkgeXlfY107CnwgCQkJCX0KfCAJCQl5eV9jdXJyZW50X3N0YXRlID0geXlfbnh0
W3l5X2Jhc2VbeXlfY3VycmVudF9zdGF0ZV0gKyAoZmxleF9pbnQxNl90KSB5eV9jXTsKfCAJCQkq
KHl5X3N0YXRlX3B0cikrKyA9IHl5X2N1cnJlbnRfc3RhdGU7CnwgCQkJKyt5eV9jcDsKfCAJCQl9
CnwgCQl3aGlsZSAoIHl5X2Jhc2VbeXlfY3VycmVudF9zdGF0ZV0gIT0gMTAgKTsKfCAKfCB5eV9m
aW5kX2FjdGlvbjoKfCAJCXl5X2N1cnJlbnRfc3RhdGUgPSAqLS0oeXlfc3RhdGVfcHRyKTsKfCAJ
CSh5eV9scCkgPSB5eV9hY2NlcHRbeXlfY3VycmVudF9zdGF0ZV07CnwgZmluZF9ydWxlOiAvKiB3
ZSBicmFuY2ggdG8gdGhpcyBsYWJlbCB3aGVuIGJhY2tpbmcgdXAgKi8KfCAJCWZvciAoIDsgOyAp
IC8qIHVudGlsIHdlIGZpbmQgd2hhdCBydWxlIHdlIG1hdGNoZWQgKi8KfCAJCQl7CnwgCQkJaWYg
KCAoeXlfbHApICYmICh5eV9scCkgPCB5eV9hY2NlcHRbeXlfY3VycmVudF9zdGF0ZSArIDFdICkK
fCAJCQkJewp8IAkJCQl5eV9hY3QgPSB5eV9hY2NsaXN0Wyh5eV9scCldOwp8IAkJCQkJewp8IAkJ
CQkJKHl5X2Z1bGxfbWF0Y2gpID0geXlfY3A7CnwgCQkJCQlicmVhazsKfCAJCQkJCX0KfCAJCQkJ
fQp8IAkJCS0teXlfY3A7CnwgCQkJeXlfY3VycmVudF9zdGF0ZSA9ICotLSh5eV9zdGF0ZV9wdHIp
Owp8IAkJCSh5eV9scCkgPSB5eV9hY2NlcHRbeXlfY3VycmVudF9zdGF0ZV07CnwgCQkJfQp8IAp8
IAkJWVlfRE9fQkVGT1JFX0FDVElPTjsKfCAKfCBkb19hY3Rpb246CS8qIFRoaXMgbGFiZWwgaXMg
dXNlZCBvbmx5IHRvIGFjY2VzcyBFT0YgYWN0aW9ucy4gKi8KfCAKfCAJCXN3aXRjaCAoIHl5X2Fj
dCApCnwgCXsgLyogYmVnaW5uaW5nIG9mIGFjdGlvbiBzd2l0Y2ggKi8KfCBjYXNlIDE6CnwgWVlf
UlVMRV9TRVRVUAp8ICNsaW5lIDIgImNvbmZ0ZXN0LmwiCnwgeyBFQ0hPOyB9CnwgCVlZX0JSRUFL
CnwgY2FzZSAyOgp8IFlZX1JVTEVfU0VUVVAKfCAjbGluZSAzICJjb25mdGVzdC5sIgp8IHsgUkVK
RUNUOyB9CnwgCVlZX0JSRUFLCnwgY2FzZSAzOgp8IFlZX1JVTEVfU0VUVVAKfCAjbGluZSA0ICJj
b25mdGVzdC5sIgp8IHsgeXltb3JlICgpOyB9CnwgCVlZX0JSRUFLCnwgY2FzZSA0Ogp8IFlZX1JV
TEVfU0VUVVAKfCAjbGluZSA1ICJjb25mdGVzdC5sIgp8IHsgeXlsZXNzICgxKTsgfQp8IAlZWV9C
UkVBSwp8IGNhc2UgNToKfCBZWV9SVUxFX1NFVFVQCnwgI2xpbmUgNiAiY29uZnRlc3QubCIKfCB7
IC8qIElSSVggNi41IGZsZXggMi41LjQgdW5kZXJxdW90ZXMgaXRzIHl5bGVzcyBhcmd1bWVudC4g
ICovCnwgICAgIHl5bGVzcyAoKGlucHV0ICgpICE9IDApKTsgfQp8IAlZWV9CUkVBSwp8IGNhc2Ug
NjoKfCBZWV9SVUxFX1NFVFVQCnwgI2xpbmUgOCAiY29uZnRlc3QubCIKfCB7IHVucHV0ICh5eXRl
eHRbMF0pOyB9CnwgCVlZX0JSRUFLCnwgY2FzZSA3Ogp8IFlZX1JVTEVfU0VUVVAKfCAjbGluZSA5
ICJjb25mdGVzdC5sIgp8IHsgQkVHSU4gSU5JVElBTDsgfQp8IAlZWV9CUkVBSwp8IGNhc2UgODoK
fCBZWV9SVUxFX1NFVFVQCnwgI2xpbmUgMTAgImNvbmZ0ZXN0LmwiCnwgRUNITzsKfCAJWVlfQlJF
QUsKfCAjbGluZSA3OTIgImxleC55eS5jIgp8IAkJCWNhc2UgWVlfU1RBVEVfRU9GKElOSVRJQUwp
Ogp8IAkJCQl5eXRlcm1pbmF0ZSgpOwp8IAp8IAljYXNlIFlZX0VORF9PRl9CVUZGRVI6CnwgCQl7
CnwgCQkvKiBBbW91bnQgb2YgdGV4dCBtYXRjaGVkIG5vdCBpbmNsdWRpbmcgdGhlIEVPQiBjaGFy
LiAqLwp8IAkJaW50IHl5X2Ftb3VudF9vZl9tYXRjaGVkX3RleHQgPSAoaW50KSAoeXlfY3AgLSAo
eXl0ZXh0X3B0cikpIC0gMTsKfCAKfCAJCS8qIFVuZG8gdGhlIGVmZmVjdHMgb2YgWVlfRE9fQkVG
T1JFX0FDVElPTi4gKi8KfCAJCSp5eV9jcCA9ICh5eV9ob2xkX2NoYXIpOwp8IAkJWVlfUkVTVE9S
RV9ZWV9NT1JFX09GRlNFVAp8IAp8IAkJaWYgKCBZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5
X2J1ZmZlcl9zdGF0dXMgPT0gWVlfQlVGRkVSX05FVyApCnwgCQkJewp8IAkJCS8qIFdlJ3JlIHNj
YW5uaW5nIGEgbmV3IGZpbGUgb3IgaW5wdXQgc291cmNlLiAgSXQncwp8IAkJCSAqIHBvc3NpYmxl
IHRoYXQgdGhpcyBoYXBwZW5lZCBiZWNhdXNlIHRoZSB1c2VyCnwgCQkJICoganVzdCBwb2ludGVk
IHl5aW4gYXQgYSBuZXcgc291cmNlIGFuZCBjYWxsZWQKfCAJCQkgKiB5eWxleCgpLiAgSWYgc28s
IHRoZW4gd2UgaGF2ZSB0byBhc3N1cmUKfCAJCQkgKiBjb25zaXN0ZW5jeSBiZXR3ZWVuIFlZX0NV
UlJFTlRfQlVGRkVSIGFuZCBvdXIKfCAJCQkgKiBnbG9iYWxzLiAgSGVyZSBpcyB0aGUgcmlnaHQg
cGxhY2UgdG8gZG8gc28sIGJlY2F1c2UKfCAJCQkgKiB0aGlzIGlzIHRoZSBmaXJzdCBhY3Rpb24g
KG90aGVyIHRoYW4gcG9zc2libHkgYQp8IAkJCSAqIGJhY2stdXApIHRoYXQgd2lsbCBtYXRjaCBm
b3IgdGhlIG5ldyBpbnB1dCBzb3VyY2UuCnwgCQkJICovCnwgCQkJKHl5X25fY2hhcnMpID0gWVlf
Q1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9uX2NoYXJzOwp8IAkJCVlZX0NVUlJFTlRfQlVGRkVS
X0xWQUxVRS0+eXlfaW5wdXRfZmlsZSA9IHl5aW47CnwgCQkJWVlfQ1VSUkVOVF9CVUZGRVJfTFZB
TFVFLT55eV9idWZmZXJfc3RhdHVzID0gWVlfQlVGRkVSX05PUk1BTDsKfCAJCQl9CnwgCnwgCQkv
KiBOb3RlIHRoYXQgaGVyZSB3ZSB0ZXN0IGZvciB5eV9jX2J1Zl9wICI8PSIgdG8gdGhlIHBvc2l0
aW9uCnwgCQkgKiBvZiB0aGUgZmlyc3QgRU9CIGluIHRoZSBidWZmZXIsIHNpbmNlIHl5X2NfYnVm
X3Agd2lsbAp8IAkJICogYWxyZWFkeSBoYXZlIGJlZW4gaW5jcmVtZW50ZWQgcGFzdCB0aGUgTlVM
IGNoYXJhY3Rlcgp8IAkJICogKHNpbmNlIGFsbCBzdGF0ZXMgbWFrZSB0cmFuc2l0aW9ucyBvbiBF
T0IgdG8gdGhlCnwgCQkgKiBlbmQtb2YtYnVmZmVyIHN0YXRlKS4gIENvbnRyYXN0IHRoaXMgd2l0
aCB0aGUgdGVzdAp8IAkJICogaW4gaW5wdXQoKS4KfCAJCSAqLwp8IAkJaWYgKCAoeXlfY19idWZf
cCkgPD0gJllZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfY2hfYnVmWyh5eV9uX2NoYXJzKV0g
KQp8IAkJCXsgLyogVGhpcyB3YXMgcmVhbGx5IGEgTlVMLiAqLwp8IAkJCXl5X3N0YXRlX3R5cGUg
eXlfbmV4dF9zdGF0ZTsKfCAKfCAJCQkoeXlfY19idWZfcCkgPSAoeXl0ZXh0X3B0cikgKyB5eV9h
bW91bnRfb2ZfbWF0Y2hlZF90ZXh0Owp8IAp8IAkJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9nZXRf
cHJldmlvdXNfc3RhdGUoICApOwp8IAp8IAkJCS8qIE9rYXksIHdlJ3JlIG5vdyBwb3NpdGlvbmVk
IHRvIG1ha2UgdGhlIE5VTAp8IAkJCSAqIHRyYW5zaXRpb24uICBXZSBjb3VsZG4ndCBoYXZlCnwg
CQkJICogeXlfZ2V0X3ByZXZpb3VzX3N0YXRlKCkgZ28gYWhlYWQgYW5kIGRvIGl0CnwgCQkJICog
Zm9yIHVzIGJlY2F1c2UgaXQgZG9lc24ndCBrbm93IGhvdyB0byBkZWFsCnwgCQkJICogd2l0aCB0
aGUgcG9zc2liaWxpdHkgb2YgamFtbWluZyAoYW5kIHdlIGRvbid0CnwgCQkJICogd2FudCB0byBi
dWlsZCBqYW1taW5nIGludG8gaXQgYmVjYXVzZSB0aGVuIGl0CnwgCQkJICogd2lsbCBydW4gbW9y
ZSBzbG93bHkpLgp8IAkJCSAqLwp8IAp8IAkJCXl5X25leHRfc3RhdGUgPSB5eV90cnlfTlVMX3Ry
YW5zKCB5eV9jdXJyZW50X3N0YXRlICk7CnwgCnwgCQkJeXlfYnAgPSAoeXl0ZXh0X3B0cikgKyBZ
WV9NT1JFX0FESjsKfCAKfCAJCQlpZiAoIHl5X25leHRfc3RhdGUgKQp8IAkJCQl7CnwgCQkJCS8q
IENvbnN1bWUgdGhlIE5VTC4gKi8KfCAJCQkJeXlfY3AgPSArKyh5eV9jX2J1Zl9wKTsKfCAJCQkJ
eXlfY3VycmVudF9zdGF0ZSA9IHl5X25leHRfc3RhdGU7CnwgCQkJCWdvdG8geXlfbWF0Y2g7Cnwg
CQkJCX0KfCAKfCAJCQllbHNlCnwgCQkJCXsKfCAJCQkJeXlfY3AgPSAoeXlfY19idWZfcCk7Cnwg
CQkJCWdvdG8geXlfZmluZF9hY3Rpb247CnwgCQkJCX0KfCAJCQl9CnwgCnwgCQllbHNlIHN3aXRj
aCAoIHl5X2dldF9uZXh0X2J1ZmZlciggICkgKQp8IAkJCXsKfCAJCQljYXNlIEVPQl9BQ1RfRU5E
X09GX0ZJTEU6CnwgCQkJCXsKfCAJCQkJKHl5X2RpZF9idWZmZXJfc3dpdGNoX29uX2VvZikgPSAw
Owp8IAp8IAkJCQlpZiAoIHl5d3JhcCggKSApCnwgCQkJCQl7CnwgCQkJCQkvKiBOb3RlOiBiZWNh
dXNlIHdlJ3ZlIHRha2VuIGNhcmUgaW4KfCAJCQkJCSAqIHl5X2dldF9uZXh0X2J1ZmZlcigpIHRv
IGhhdmUgc2V0IHVwCnwgCQkJCQkgKiB5eXRleHQsIHdlIGNhbiBub3cgc2V0IHVwCnwgCQkJCQkg
KiB5eV9jX2J1Zl9wIHNvIHRoYXQgaWYgc29tZSB0b3RhbAp8IAkJCQkJICogaG9zZXIgKGxpa2Ug
ZmxleCBpdHNlbGYpIHdhbnRzIHRvCnwgCQkJCQkgKiBjYWxsIHRoZSBzY2FubmVyIGFmdGVyIHdl
IHJldHVybiB0aGUKfCAJCQkJCSAqIFlZX05VTEwsIGl0J2xsIHN0aWxsIHdvcmsgLSBhbm90aGVy
CnwgCQkJCQkgKiBZWV9OVUxMIHdpbGwgZ2V0IHJldHVybmVkLgp8IAkJCQkJICovCnwgCQkJCQko
eXlfY19idWZfcCkgPSAoeXl0ZXh0X3B0cikgKyBZWV9NT1JFX0FESjsKfCAKfCAJCQkJCXl5X2Fj
dCA9IFlZX1NUQVRFX0VPRihZWV9TVEFSVCk7CnwgCQkJCQlnb3RvIGRvX2FjdGlvbjsKfCAJCQkJ
CX0KfCAKfCAJCQkJZWxzZQp8IAkJCQkJewp8IAkJCQkJaWYgKCAhICh5eV9kaWRfYnVmZmVyX3N3
aXRjaF9vbl9lb2YpICkKfCAJCQkJCQlZWV9ORVdfRklMRTsKfCAJCQkJCX0KfCAJCQkJYnJlYWs7
CnwgCQkJCX0KfCAKfCAJCQljYXNlIEVPQl9BQ1RfQ09OVElOVUVfU0NBTjoKfCAJCQkJKHl5X2Nf
YnVmX3ApID0KfCAJCQkJCSh5eXRleHRfcHRyKSArIHl5X2Ftb3VudF9vZl9tYXRjaGVkX3RleHQ7
CnwgCnwgCQkJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9nZXRfcHJldmlvdXNfc3RhdGUoICApOwp8
IAp8IAkJCQl5eV9jcCA9ICh5eV9jX2J1Zl9wKTsKfCAJCQkJeXlfYnAgPSAoeXl0ZXh0X3B0cikg
KyBZWV9NT1JFX0FESjsKfCAJCQkJZ290byB5eV9tYXRjaDsKfCAKfCAJCQljYXNlIEVPQl9BQ1Rf
TEFTVF9NQVRDSDoKfCAJCQkJKHl5X2NfYnVmX3ApID0KfCAJCQkJJllZX0NVUlJFTlRfQlVGRkVS
X0xWQUxVRS0+eXlfY2hfYnVmWyh5eV9uX2NoYXJzKV07CnwgCnwgCQkJCXl5X2N1cnJlbnRfc3Rh
dGUgPSB5eV9nZXRfcHJldmlvdXNfc3RhdGUoICApOwp8IAp8IAkJCQl5eV9jcCA9ICh5eV9jX2J1
Zl9wKTsKfCAJCQkJeXlfYnAgPSAoeXl0ZXh0X3B0cikgKyBZWV9NT1JFX0FESjsKfCAJCQkJZ290
byB5eV9maW5kX2FjdGlvbjsKfCAJCQl9CnwgCQlicmVhazsKfCAJCX0KfCAKfCAJZGVmYXVsdDoK
fCAJCVlZX0ZBVEFMX0VSUk9SKAp8IAkJCSJmYXRhbCBmbGV4IHNjYW5uZXIgaW50ZXJuYWwgZXJy
b3ItLW5vIGFjdGlvbiBmb3VuZCIgKTsKfCAJfSAvKiBlbmQgb2YgYWN0aW9uIHN3aXRjaCAqLwp8
IAkJfSAvKiBlbmQgb2Ygc2Nhbm5pbmcgb25lIHRva2VuICovCnwgfSAvKiBlbmQgb2YgeXlsZXgg
Ki8KfCAKfCAvKiB5eV9nZXRfbmV4dF9idWZmZXIgLSB0cnkgdG8gcmVhZCBpbiBhIG5ldyBidWZm
ZXIKfCAgKgp8ICAqIFJldHVybnMgYSBjb2RlIHJlcHJlc2VudGluZyBhbiBhY3Rpb246CnwgICoJ
RU9CX0FDVF9MQVNUX01BVENIIC0KfCAgKglFT0JfQUNUX0NPTlRJTlVFX1NDQU4gLSBjb250aW51
ZSBzY2FubmluZyBmcm9tIGN1cnJlbnQgcG9zaXRpb24KfCAgKglFT0JfQUNUX0VORF9PRl9GSUxF
IC0gZW5kIG9mIGZpbGUKfCAgKi8KfCBzdGF0aWMgaW50IHl5X2dldF9uZXh0X2J1ZmZlciAodm9p
ZCkKfCB7CnwgICAgIAlyZWdpc3RlciBjaGFyICpkZXN0ID0gWVlfQ1VSUkVOVF9CVUZGRVJfTFZB
TFVFLT55eV9jaF9idWY7CnwgCXJlZ2lzdGVyIGNoYXIgKnNvdXJjZSA9ICh5eXRleHRfcHRyKTsK
fCAJcmVnaXN0ZXIgaW50IG51bWJlcl90b19tb3ZlLCBpOwp8IAlpbnQgcmV0X3ZhbDsKfCAKfCAJ
aWYgKCAoeXlfY19idWZfcCkgPiAmWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9jaF9idWZb
KHl5X25fY2hhcnMpICsgMV0gKQp8IAkJWVlfRkFUQUxfRVJST1IoCnwgCQkiZmF0YWwgZmxleCBz
Y2FubmVyIGludGVybmFsIGVycm9yLS1lbmQgb2YgYnVmZmVyIG1pc3NlZCIgKTsKfCAKfCAJaWYg
KCBZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X2ZpbGxfYnVmZmVyID09IDAgKQp8IAkJeyAv
KiBEb24ndCB0cnkgdG8gZmlsbCB0aGUgYnVmZmVyLCBzbyB0aGlzIGlzIGFuIEVPRi4gKi8KfCAJ
CWlmICggKHl5X2NfYnVmX3ApIC0gKHl5dGV4dF9wdHIpIC0gWVlfTU9SRV9BREogPT0gMSApCnwg
CQkJewp8IAkJCS8qIFdlIG1hdGNoZWQgYSBzaW5nbGUgY2hhcmFjdGVyLCB0aGUgRU9CLCBzbwp8
IAkJCSAqIHRyZWF0IHRoaXMgYXMgYSBmaW5hbCBFT0YuCnwgCQkJICovCnwgCQkJcmV0dXJuIEVP
Ql9BQ1RfRU5EX09GX0ZJTEU7CnwgCQkJfQp8IAp8IAkJZWxzZQp8IAkJCXsKfCAJCQkvKiBXZSBt
YXRjaGVkIHNvbWUgdGV4dCBwcmlvciB0byB0aGUgRU9CLCBmaXJzdAp8IAkJCSAqIHByb2Nlc3Mg
aXQuCnwgCQkJICovCnwgCQkJcmV0dXJuIEVPQl9BQ1RfTEFTVF9NQVRDSDsKfCAJCQl9CnwgCQl9
CnwgCnwgCS8qIFRyeSB0byByZWFkIG1vcmUgZGF0YS4gKi8KfCAKfCAJLyogRmlyc3QgbW92ZSBs
YXN0IGNoYXJzIHRvIHN0YXJ0IG9mIGJ1ZmZlci4gKi8KfCAJbnVtYmVyX3RvX21vdmUgPSAoaW50
KSAoKHl5X2NfYnVmX3ApIC0gKHl5dGV4dF9wdHIpKSAtIDE7CnwgCnwgCWZvciAoIGkgPSAwOyBp
IDwgbnVtYmVyX3RvX21vdmU7ICsraSApCnwgCQkqKGRlc3QrKykgPSAqKHNvdXJjZSsrKTsKfCAK
fCAJaWYgKCBZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X2J1ZmZlcl9zdGF0dXMgPT0gWVlf
QlVGRkVSX0VPRl9QRU5ESU5HICkKfCAJCS8qIGRvbid0IGRvIHRoZSByZWFkLCBpdCdzIG5vdCBn
dWFyYW50ZWVkIHRvIHJldHVybiBhbiBFT0YsCnwgCQkgKiBqdXN0IGZvcmNlIGFuIEVPRgp8IAkJ
ICovCnwgCQlZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X25fY2hhcnMgPSAoeXlfbl9jaGFy
cykgPSAwOwp8IAp8IAllbHNlCnwgCQl7CnwgCQkJaW50IG51bV90b19yZWFkID0KfCAJCQlZWV9D
VVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X2J1Zl9zaXplIC0gbnVtYmVyX3RvX21vdmUgLSAxOwp8
IAp8IAkJd2hpbGUgKCBudW1fdG9fcmVhZCA8PSAwICkKfCAJCQl7IC8qIE5vdCBlbm91Z2ggcm9v
bSBpbiB0aGUgYnVmZmVyIC0gZ3JvdyBpdC4gKi8KfCAKfCAJCQlZWV9GQVRBTF9FUlJPUigKfCAi
aW5wdXQgYnVmZmVyIG92ZXJmbG93LCBjYW4ndCBlbmxhcmdlIGJ1ZmZlciBiZWNhdXNlIHNjYW5u
ZXIgdXNlcyBSRUpFQ1QiICk7CnwgCnwgCQkJfQp8IAp8IAkJaWYgKCBudW1fdG9fcmVhZCA+IFlZ
X1JFQURfQlVGX1NJWkUgKQp8IAkJCW51bV90b19yZWFkID0gWVlfUkVBRF9CVUZfU0laRTsKfCAK
fCAJCS8qIFJlYWQgaW4gbW9yZSBkYXRhLiAqLwp8IAkJWVlfSU5QVVQoICgmWVlfQ1VSUkVOVF9C
VUZGRVJfTFZBTFVFLT55eV9jaF9idWZbbnVtYmVyX3RvX21vdmVdKSwKfCAJCQkoeXlfbl9jaGFy
cyksIG51bV90b19yZWFkICk7CnwgCnwgCQlZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X25f
Y2hhcnMgPSAoeXlfbl9jaGFycyk7CnwgCQl9CnwgCnwgCWlmICggKHl5X25fY2hhcnMpID09IDAg
KQp8IAkJewp8IAkJaWYgKCBudW1iZXJfdG9fbW92ZSA9PSBZWV9NT1JFX0FESiApCnwgCQkJewp8
IAkJCXJldF92YWwgPSBFT0JfQUNUX0VORF9PRl9GSUxFOwp8IAkJCXl5cmVzdGFydCh5eWluICAp
Owp8IAkJCX0KfCAKfCAJCWVsc2UKfCAJCQl7CnwgCQkJcmV0X3ZhbCA9IEVPQl9BQ1RfTEFTVF9N
QVRDSDsKfCAJCQlZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X2J1ZmZlcl9zdGF0dXMgPQp8
IAkJCQlZWV9CVUZGRVJfRU9GX1BFTkRJTkc7CnwgCQkJfQp8IAkJfQp8IAp8IAllbHNlCnwgCQly
ZXRfdmFsID0gRU9CX0FDVF9DT05USU5VRV9TQ0FOOwp8IAp8IAlpZiAoKGludCkgKCh5eV9uX2No
YXJzKSArIG51bWJlcl90b19tb3ZlKSA+IFlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfYnVm
X3NpemUpIHsKfCAJCS8qIEV4dGVuZCB0aGUgYXJyYXkgYnkgNTAlLCBwbHVzIHRoZSBudW1iZXIg
d2UgcmVhbGx5IG5lZWQuICovCnwgCQlpbnQgbmV3X3NpemUgPSAoeXlfbl9jaGFycykgKyBudW1i
ZXJfdG9fbW92ZSArICgoeXlfbl9jaGFycykgPj4gMSk7CnwgCQlZWV9DVVJSRU5UX0JVRkZFUl9M
VkFMVUUtPnl5X2NoX2J1ZiA9IChjaGFyICopIHl5cmVhbGxvYygodm9pZCAqKSBZWV9DVVJSRU5U
X0JVRkZFUl9MVkFMVUUtPnl5X2NoX2J1ZixuZXdfc2l6ZSAgKTsKfCAJCWlmICggISBZWV9DVVJS
RU5UX0JVRkZFUl9MVkFMVUUtPnl5X2NoX2J1ZiApCnwgCQkJWVlfRkFUQUxfRVJST1IoICJvdXQg
b2YgZHluYW1pYyBtZW1vcnkgaW4geXlfZ2V0X25leHRfYnVmZmVyKCkiICk7CnwgCX0KfCAKfCAJ
KHl5X25fY2hhcnMpICs9IG51bWJlcl90b19tb3ZlOwp8IAlZWV9DVVJSRU5UX0JVRkZFUl9MVkFM
VUUtPnl5X2NoX2J1ZlsoeXlfbl9jaGFycyldID0gWVlfRU5EX09GX0JVRkZFUl9DSEFSOwp8IAlZ
WV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X2NoX2J1ZlsoeXlfbl9jaGFycykgKyAxXSA9IFlZ
X0VORF9PRl9CVUZGRVJfQ0hBUjsKfCAKfCAJKHl5dGV4dF9wdHIpID0gJllZX0NVUlJFTlRfQlVG
RkVSX0xWQUxVRS0+eXlfY2hfYnVmWzBdOwp8IAp8IAlyZXR1cm4gcmV0X3ZhbDsKfCB9CnwgCnwg
LyogeXlfZ2V0X3ByZXZpb3VzX3N0YXRlIC0gZ2V0IHRoZSBzdGF0ZSBqdXN0IGJlZm9yZSB0aGUg
RU9CIGNoYXIgd2FzIHJlYWNoZWQgKi8KfCAKfCAgICAgc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlf
Z2V0X3ByZXZpb3VzX3N0YXRlICh2b2lkKQp8IHsKfCAJcmVnaXN0ZXIgeXlfc3RhdGVfdHlwZSB5
eV9jdXJyZW50X3N0YXRlOwp8IAlyZWdpc3RlciBjaGFyICp5eV9jcDsKfCAgICAgCnwgCXl5X2N1
cnJlbnRfc3RhdGUgPSAoeXlfc3RhcnQpOwp8IAp8IAkoeXlfc3RhdGVfcHRyKSA9ICh5eV9zdGF0
ZV9idWYpOwp8IAkqKHl5X3N0YXRlX3B0cikrKyA9IHl5X2N1cnJlbnRfc3RhdGU7CnwgCnwgCWZv
ciAoIHl5X2NwID0gKHl5dGV4dF9wdHIpICsgWVlfTU9SRV9BREo7IHl5X2NwIDwgKHl5X2NfYnVm
X3ApOyArK3l5X2NwICkKfCAJCXsKfCAJCXJlZ2lzdGVyIFlZX0NIQVIgeXlfYyA9ICgqeXlfY3Ag
PyB5eV9lY1tZWV9TQ19UT19VSSgqeXlfY3ApXSA6IDEpOwp8IAkJd2hpbGUgKCB5eV9jaGtbeXlf
YmFzZVt5eV9jdXJyZW50X3N0YXRlXSArIHl5X2NdICE9IHl5X2N1cnJlbnRfc3RhdGUgKQp8IAkJ
CXsKfCAJCQl5eV9jdXJyZW50X3N0YXRlID0gKGludCkgeXlfZGVmW3l5X2N1cnJlbnRfc3RhdGVd
Owp8IAkJCWlmICggeXlfY3VycmVudF9zdGF0ZSA+PSAxMyApCnwgCQkJCXl5X2MgPSB5eV9tZXRh
Wyh1bnNpZ25lZCBpbnQpIHl5X2NdOwp8IAkJCX0KfCAJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9u
eHRbeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRlXSArIChmbGV4X2ludDE2X3QpIHl5X2NdOwp8IAkJ
Kih5eV9zdGF0ZV9wdHIpKysgPSB5eV9jdXJyZW50X3N0YXRlOwp8IAkJfQp8IAp8IAlyZXR1cm4g
eXlfY3VycmVudF9zdGF0ZTsKfCB9CnwgCnwgLyogeXlfdHJ5X05VTF90cmFucyAtIHRyeSB0byBt
YWtlIGEgdHJhbnNpdGlvbiBvbiB0aGUgTlVMIGNoYXJhY3Rlcgp8ICAqCnwgICogc3lub3BzaXMK
fCAgKgluZXh0X3N0YXRlID0geXlfdHJ5X05VTF90cmFucyggY3VycmVudF9zdGF0ZSApOwp8ICAq
Lwp8ICAgICBzdGF0aWMgeXlfc3RhdGVfdHlwZSB5eV90cnlfTlVMX3RyYW5zICAoeXlfc3RhdGVf
dHlwZSB5eV9jdXJyZW50X3N0YXRlICkKfCB7CnwgCXJlZ2lzdGVyIGludCB5eV9pc19qYW07Cnwg
ICAgIAp8IAlyZWdpc3RlciBZWV9DSEFSIHl5X2MgPSAxOwp8IAl3aGlsZSAoIHl5X2Noa1t5eV9i
YXNlW3l5X2N1cnJlbnRfc3RhdGVdICsgeXlfY10gIT0geXlfY3VycmVudF9zdGF0ZSApCnwgCQl7
CnwgCQl5eV9jdXJyZW50X3N0YXRlID0gKGludCkgeXlfZGVmW3l5X2N1cnJlbnRfc3RhdGVdOwp8
IAkJaWYgKCB5eV9jdXJyZW50X3N0YXRlID49IDEzICkKfCAJCQl5eV9jID0geXlfbWV0YVsodW5z
aWduZWQgaW50KSB5eV9jXTsKfCAJCX0KfCAJeXlfY3VycmVudF9zdGF0ZSA9IHl5X254dFt5eV9i
YXNlW3l5X2N1cnJlbnRfc3RhdGVdICsgKGZsZXhfaW50MTZfdCkgeXlfY107CnwgCXl5X2lzX2ph
bSA9ICh5eV9jdXJyZW50X3N0YXRlID09IDEyKTsKfCAJaWYgKCAhIHl5X2lzX2phbSApCnwgCQkq
KHl5X3N0YXRlX3B0cikrKyA9IHl5X2N1cnJlbnRfc3RhdGU7CnwgCnwgCQlyZXR1cm4geXlfaXNf
amFtID8gMCA6IHl5X2N1cnJlbnRfc3RhdGU7CnwgfQp8IAp8ICAgICBzdGF0aWMgdm9pZCB5eXVu
cHV0IChpbnQgYywgcmVnaXN0ZXIgY2hhciAqIHl5X2JwICkKfCB7CnwgCXJlZ2lzdGVyIGNoYXIg
Knl5X2NwOwp8ICAgICAKfCAgICAgeXlfY3AgPSAoeXlfY19idWZfcCk7CnwgCnwgCS8qIHVuZG8g
ZWZmZWN0cyBvZiBzZXR0aW5nIHVwIHl5dGV4dCAqLwp8IAkqeXlfY3AgPSAoeXlfaG9sZF9jaGFy
KTsKfCAKfCAJaWYgKCB5eV9jcCA8IFlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfY2hfYnVm
ICsgMiApCnwgCQl7IC8qIG5lZWQgdG8gc2hpZnQgdGhpbmdzIHVwIHRvIG1ha2Ugcm9vbSAqLwp8
IAkJLyogKzIgZm9yIEVPQiBjaGFycy4gKi8KfCAJCXJlZ2lzdGVyIGludCBudW1iZXJfdG9fbW92
ZSA9ICh5eV9uX2NoYXJzKSArIDI7CnwgCQlyZWdpc3RlciBjaGFyICpkZXN0ID0gJllZX0NVUlJF
TlRfQlVGRkVSX0xWQUxVRS0+eXlfY2hfYnVmWwp8IAkJCQkJWVlfQ1VSUkVOVF9CVUZGRVJfTFZB
TFVFLT55eV9idWZfc2l6ZSArIDJdOwp8IAkJcmVnaXN0ZXIgY2hhciAqc291cmNlID0KfCAJCQkJ
JllZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfY2hfYnVmW251bWJlcl90b19tb3ZlXTsKfCAK
fCAJCXdoaWxlICggc291cmNlID4gWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9jaF9idWYg
KQp8IAkJCSotLWRlc3QgPSAqLS1zb3VyY2U7CnwgCnwgCQl5eV9jcCArPSAoaW50KSAoZGVzdCAt
IHNvdXJjZSk7CnwgCQl5eV9icCArPSAoaW50KSAoZGVzdCAtIHNvdXJjZSk7CnwgCQlZWV9DVVJS
RU5UX0JVRkZFUl9MVkFMVUUtPnl5X25fY2hhcnMgPQp8IAkJCSh5eV9uX2NoYXJzKSA9IChpbnQp
IFlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfYnVmX3NpemU7CnwgCnwgCQlpZiAoIHl5X2Nw
IDwgWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9jaF9idWYgKyAyICkKfCAJCQlZWV9GQVRB
TF9FUlJPUiggImZsZXggc2Nhbm5lciBwdXNoLWJhY2sgb3ZlcmZsb3ciICk7CnwgCQl9CnwgCnwg
CSotLXl5X2NwID0gKGNoYXIpIGM7CnwgCnwgCSh5eXRleHRfcHRyKSA9IHl5X2JwOwp8IAkoeXlf
aG9sZF9jaGFyKSA9ICp5eV9jcDsKfCAJKHl5X2NfYnVmX3ApID0geXlfY3A7CnwgfQp8IAp8ICNp
Zm5kZWYgWVlfTk9fSU5QVVQKfCAjaWZkZWYgX19jcGx1c3BsdXMKfCAgICAgc3RhdGljIGludCB5
eWlucHV0ICh2b2lkKQp8ICNlbHNlCnwgICAgIHN0YXRpYyBpbnQgaW5wdXQgICh2b2lkKQp8ICNl
bmRpZgp8IAp8IHsKfCAJaW50IGM7CnwgICAgIAp8IAkqKHl5X2NfYnVmX3ApID0gKHl5X2hvbGRf
Y2hhcik7CnwgCnwgCWlmICggKih5eV9jX2J1Zl9wKSA9PSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVIg
KQp8IAkJewp8IAkJLyogeXlfY19idWZfcCBub3cgcG9pbnRzIHRvIHRoZSBjaGFyYWN0ZXIgd2Ug
d2FudCB0byByZXR1cm4uCnwgCQkgKiBJZiB0aGlzIG9jY3VycyAqYmVmb3JlKiB0aGUgRU9CIGNo
YXJhY3RlcnMsIHRoZW4gaXQncyBhCnwgCQkgKiB2YWxpZCBOVUw7IGlmIG5vdCwgdGhlbiB3ZSd2
ZSBoaXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLgp8IAkJICovCnwgCQlpZiAoICh5eV9jX2J1Zl9w
KSA8ICZZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X2NoX2J1ZlsoeXlfbl9jaGFycyldICkK
fCAJCQkvKiBUaGlzIHdhcyByZWFsbHkgYSBOVUwuICovCnwgCQkJKih5eV9jX2J1Zl9wKSA9ICdc
MCc7CnwgCnwgCQllbHNlCnwgCQkJeyAvKiBuZWVkIG1vcmUgaW5wdXQgKi8KfCAJCQl5eV9zaXpl
X3Qgb2Zmc2V0ID0gKHl5X2NfYnVmX3ApIC0gKHl5dGV4dF9wdHIpOwp8IAkJCSsrKHl5X2NfYnVm
X3ApOwp8IAp8IAkJCXN3aXRjaCAoIHl5X2dldF9uZXh0X2J1ZmZlciggICkgKQp8IAkJCQl7Cnwg
CQkJCWNhc2UgRU9CX0FDVF9MQVNUX01BVENIOgp8IAkJCQkJLyogVGhpcyBoYXBwZW5zIGJlY2F1
c2UgeXlfZ19uX2IoKQp8IAkJCQkJICogc2VlcyB0aGF0IHdlJ3ZlIGFjY3VtdWxhdGVkIGEKfCAJ
CQkJCSAqIHRva2VuIGFuZCBmbGFncyB0aGF0IHdlIG5lZWQgdG8KfCAJCQkJCSAqIHRyeSBtYXRj
aGluZyB0aGUgdG9rZW4gYmVmb3JlCnwgCQkJCQkgKiBwcm9jZWVkaW5nLiAgQnV0IGZvciBpbnB1
dCgpLAp8IAkJCQkJICogdGhlcmUncyBubyBtYXRjaGluZyB0byBjb25zaWRlci4KfCAJCQkJCSAq
IFNvIGNvbnZlcnQgdGhlIEVPQl9BQ1RfTEFTVF9NQVRDSAp8IAkJCQkJICogdG8gRU9CX0FDVF9F
TkRfT0ZfRklMRS4KfCAJCQkJCSAqLwp8IAp8IAkJCQkJLyogUmVzZXQgYnVmZmVyIHN0YXR1cy4g
Ki8KfCAJCQkJCXl5cmVzdGFydCh5eWluICk7CnwgCnwgCQkJCQkvKkZBTExUSFJPVUdIKi8KfCAK
fCAJCQkJY2FzZSBFT0JfQUNUX0VORF9PRl9GSUxFOgp8IAkJCQkJewp8IAkJCQkJaWYgKCB5eXdy
YXAoICkgKQp8IAkJCQkJCXJldHVybiBFT0Y7CnwgCnwgCQkJCQlpZiAoICEgKHl5X2RpZF9idWZm
ZXJfc3dpdGNoX29uX2VvZikgKQp8IAkJCQkJCVlZX05FV19GSUxFOwp8ICNpZmRlZiBfX2NwbHVz
cGx1cwp8IAkJCQkJcmV0dXJuIHl5aW5wdXQoKTsKfCAjZWxzZQp8IAkJCQkJcmV0dXJuIGlucHV0
KCk7CnwgI2VuZGlmCnwgCQkJCQl9CnwgCnwgCQkJCWNhc2UgRU9CX0FDVF9DT05USU5VRV9TQ0FO
Ogp8IAkJCQkJKHl5X2NfYnVmX3ApID0gKHl5dGV4dF9wdHIpICsgb2Zmc2V0Owp8IAkJCQkJYnJl
YWs7CnwgCQkJCX0KfCAJCQl9CnwgCQl9CnwgCnwgCWMgPSAqKHVuc2lnbmVkIGNoYXIgKikgKHl5
X2NfYnVmX3ApOwkvKiBjYXN0IGZvciA4LWJpdCBjaGFyJ3MgKi8KfCAJKih5eV9jX2J1Zl9wKSA9
ICdcMCc7CS8qIHByZXNlcnZlIHl5dGV4dCAqLwp8IAkoeXlfaG9sZF9jaGFyKSA9ICorKyh5eV9j
X2J1Zl9wKTsKfCAKfCAJcmV0dXJuIGM7CnwgfQp8ICNlbmRpZgkvKiBpZm5kZWYgWVlfTk9fSU5Q
VVQgKi8KfCAKfCAvKiogSW1tZWRpYXRlbHkgc3dpdGNoIHRvIGEgZGlmZmVyZW50IGlucHV0IHN0
cmVhbS4KfCAgKiBAcGFyYW0gaW5wdXRfZmlsZSBBIHJlYWRhYmxlIHN0cmVhbS4KfCAgKiAKfCAg
KiBAbm90ZSBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJlc2V0IHRoZSBzdGFydCBjb25kaXRpb24g
dG8gQGMgSU5JVElBTCAuCnwgICovCnwgICAgIHZvaWQgeXlyZXN0YXJ0ICAoRklMRSAqIGlucHV0
X2ZpbGUgKQp8IHsKfCAgICAgCnwgCWlmICggISBZWV9DVVJSRU5UX0JVRkZFUiApewp8ICAgICAg
ICAgeXllbnN1cmVfYnVmZmVyX3N0YWNrICgpOwp8IAkJWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVF
ID0KfCAgICAgICAgICAgICB5eV9jcmVhdGVfYnVmZmVyKHl5aW4sWVlfQlVGX1NJWkUgKTsKfCAJ
fQp8IAp8IAl5eV9pbml0X2J1ZmZlcihZWV9DVVJSRU5UX0JVRkZFUixpbnB1dF9maWxlICk7Cnwg
CXl5X2xvYWRfYnVmZmVyX3N0YXRlKCApOwp8IH0KfCAKfCAvKiogU3dpdGNoIHRvIGEgZGlmZmVy
ZW50IGlucHV0IGJ1ZmZlci4KfCAgKiBAcGFyYW0gbmV3X2J1ZmZlciBUaGUgbmV3IGlucHV0IGJ1
ZmZlci4KfCAgKiAKfCAgKi8KfCAgICAgdm9pZCB5eV9zd2l0Y2hfdG9fYnVmZmVyICAoWVlfQlVG
RkVSX1NUQVRFICBuZXdfYnVmZmVyICkKfCB7CnwgICAgIAp8IAkvKiBUT0RPLiBXZSBzaG91bGQg
YmUgYWJsZSB0byByZXBsYWNlIHRoaXMgZW50aXJlIGZ1bmN0aW9uIGJvZHkKfCAJICogd2l0aAp8
IAkgKgkJeXlwb3BfYnVmZmVyX3N0YXRlKCk7CnwgCSAqCQl5eXB1c2hfYnVmZmVyX3N0YXRlKG5l
d19idWZmZXIpOwp8ICAgICAgKi8KfCAJeXllbnN1cmVfYnVmZmVyX3N0YWNrICgpOwp8IAlpZiAo
IFlZX0NVUlJFTlRfQlVGRkVSID09IG5ld19idWZmZXIgKQp8IAkJcmV0dXJuOwp8IAp8IAlpZiAo
IFlZX0NVUlJFTlRfQlVGRkVSICkKfCAJCXsKfCAJCS8qIEZsdXNoIG91dCBpbmZvcm1hdGlvbiBm
b3Igb2xkIGJ1ZmZlci4gKi8KfCAJCSooeXlfY19idWZfcCkgPSAoeXlfaG9sZF9jaGFyKTsKfCAJ
CVlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfYnVmX3BvcyA9ICh5eV9jX2J1Zl9wKTsKfCAJ
CVlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfbl9jaGFycyA9ICh5eV9uX2NoYXJzKTsKfCAJ
CX0KfCAKfCAJWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFID0gbmV3X2J1ZmZlcjsKfCAJeXlfbG9h
ZF9idWZmZXJfc3RhdGUoICk7CnwgCnwgCS8qIFdlIGRvbid0IGFjdHVhbGx5IGtub3cgd2hldGhl
ciB3ZSBkaWQgdGhpcyBzd2l0Y2ggZHVyaW5nCnwgCSAqIEVPRiAoeXl3cmFwKCkpIHByb2Nlc3Np
bmcsIGJ1dCB0aGUgb25seSB0aW1lIHRoaXMgZmxhZwp8IAkgKiBpcyBsb29rZWQgYXQgaXMgYWZ0
ZXIgeXl3cmFwKCkgaXMgY2FsbGVkLCBzbyBpdCdzIHNhZmUKfCAJICogdG8gZ28gYWhlYWQgYW5k
IGFsd2F5cyBzZXQgaXQuCnwgCSAqLwp8IAkoeXlfZGlkX2J1ZmZlcl9zd2l0Y2hfb25fZW9mKSA9
IDE7CnwgfQp8IAp8IHN0YXRpYyB2b2lkIHl5X2xvYWRfYnVmZmVyX3N0YXRlICAodm9pZCkKfCB7
CnwgICAgIAkoeXlfbl9jaGFycykgPSBZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X25fY2hh
cnM7CnwgCSh5eXRleHRfcHRyKSA9ICh5eV9jX2J1Zl9wKSA9IFlZX0NVUlJFTlRfQlVGRkVSX0xW
QUxVRS0+eXlfYnVmX3BvczsKfCAJeXlpbiA9IFlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlf
aW5wdXRfZmlsZTsKfCAJKHl5X2hvbGRfY2hhcikgPSAqKHl5X2NfYnVmX3ApOwp8IH0KfCAKfCAv
KiogQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgYW4gaW5wdXQgYnVmZmVyIHN0YXRlLgp8ICAqIEBw
YXJhbSBmaWxlIEEgcmVhZGFibGUgc3RyZWFtLgp8ICAqIEBwYXJhbSBzaXplIFRoZSBjaGFyYWN0
ZXIgYnVmZmVyIHNpemUgaW4gYnl0ZXMuIFdoZW4gaW4gZG91YnQsIHVzZSBAYyBZWV9CVUZfU0la
RS4KfCAgKiAKfCAgKiBAcmV0dXJuIHRoZSBhbGxvY2F0ZWQgYnVmZmVyIHN0YXRlLgp8ICAqLwp8
ICAgICBZWV9CVUZGRVJfU1RBVEUgeXlfY3JlYXRlX2J1ZmZlciAgKEZJTEUgKiBmaWxlLCBpbnQg
IHNpemUgKQp8IHsKfCAJWVlfQlVGRkVSX1NUQVRFIGI7CnwgICAgIAp8IAliID0gKFlZX0JVRkZF
Ul9TVEFURSkgeXlhbGxvYyhzaXplb2YoIHN0cnVjdCB5eV9idWZmZXJfc3RhdGUgKSAgKTsKfCAJ
aWYgKCAhIGIgKQp8IAkJWVlfRkFUQUxfRVJST1IoICJvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4g
eXlfY3JlYXRlX2J1ZmZlcigpIiApOwp8IAp8IAliLT55eV9idWZfc2l6ZSA9IHNpemU7CnwgCnwg
CS8qIHl5X2NoX2J1ZiBoYXMgdG8gYmUgMiBjaGFyYWN0ZXJzIGxvbmdlciB0aGFuIHRoZSBzaXpl
IGdpdmVuIGJlY2F1c2UKfCAJICogd2UgbmVlZCB0byBwdXQgaW4gMiBlbmQtb2YtYnVmZmVyIGNo
YXJhY3RlcnMuCnwgCSAqLwp8IAliLT55eV9jaF9idWYgPSAoY2hhciAqKSB5eWFsbG9jKGItPnl5
X2J1Zl9zaXplICsgMiAgKTsKfCAJaWYgKCAhIGItPnl5X2NoX2J1ZiApCnwgCQlZWV9GQVRBTF9F
UlJPUiggIm91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eV9jcmVhdGVfYnVmZmVyKCkiICk7Cnwg
CnwgCWItPnl5X2lzX291cl9idWZmZXIgPSAxOwp8IAp8IAl5eV9pbml0X2J1ZmZlcihiLGZpbGUg
KTsKfCAKfCAJcmV0dXJuIGI7CnwgfQp8IAp8IC8qKiBEZXN0cm95IHRoZSBidWZmZXIuCnwgICog
QHBhcmFtIGIgYSBidWZmZXIgY3JlYXRlZCB3aXRoIHl5X2NyZWF0ZV9idWZmZXIoKQp8ICAqIAp8
ICAqLwp8ICAgICB2b2lkIHl5X2RlbGV0ZV9idWZmZXIgKFlZX0JVRkZFUl9TVEFURSAgYiApCnwg
ewp8ICAgICAKfCAJaWYgKCAhIGIgKQp8IAkJcmV0dXJuOwp8IAp8IAlpZiAoIGIgPT0gWVlfQ1VS
UkVOVF9CVUZGRVIgKSAvKiBOb3Qgc3VyZSBpZiB3ZSBzaG91bGQgcG9wIGhlcmUuICovCnwgCQlZ
WV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUgPSAoWVlfQlVGRkVSX1NUQVRFKSAwOwp8IAp8IAlpZiAo
IGItPnl5X2lzX291cl9idWZmZXIgKQp8IAkJeXlmcmVlKCh2b2lkICopIGItPnl5X2NoX2J1ZiAg
KTsKfCAKfCAJeXlmcmVlKCh2b2lkICopIGIgICk7CnwgfQp8IAp8IC8qIEluaXRpYWxpemVzIG9y
IHJlaW5pdGlhbGl6ZXMgYSBidWZmZXIuCnwgICogVGhpcyBmdW5jdGlvbiBpcyBzb21ldGltZXMg
Y2FsbGVkIG1vcmUgdGhhbiBvbmNlIG9uIHRoZSBzYW1lIGJ1ZmZlciwKfCAgKiBzdWNoIGFzIGR1
cmluZyBhIHl5cmVzdGFydCgpIG9yIGF0IEVPRi4KfCAgKi8KfCAgICAgc3RhdGljIHZvaWQgeXlf
aW5pdF9idWZmZXIgIChZWV9CVUZGRVJfU1RBVEUgIGIsIEZJTEUgKiBmaWxlICkKfCAKfCB7Cnwg
CWludCBvZXJybm8gPSBlcnJubzsKfCAgICAgCnwgCXl5X2ZsdXNoX2J1ZmZlcihiICk7CnwgCnwg
CWItPnl5X2lucHV0X2ZpbGUgPSBmaWxlOwp8IAliLT55eV9maWxsX2J1ZmZlciA9IDE7CnwgCnwg
ICAgIC8qIElmIGIgaXMgdGhlIGN1cnJlbnQgYnVmZmVyLCB0aGVuIHl5X2luaXRfYnVmZmVyIHdh
cyBfcHJvYmFibHlfCnwgICAgICAqIGNhbGxlZCBmcm9tIHl5cmVzdGFydCgpIG9yIHRocm91Z2gg
eXlfZ2V0X25leHRfYnVmZmVyLgp8ICAgICAgKiBJbiB0aGF0IGNhc2UsIHdlIGRvbid0IHdhbnQg
dG8gcmVzZXQgdGhlIGxpbmVubyBvciBjb2x1bW4uCnwgICAgICAqLwp8ICAgICBpZiAoYiAhPSBZ
WV9DVVJSRU5UX0JVRkZFUil7CnwgICAgICAgICBiLT55eV9ic19saW5lbm8gPSAxOwp8ICAgICAg
ICAgYi0+eXlfYnNfY29sdW1uID0gMDsKfCAgICAgfQp8IAp8ICAgICAgICAgYi0+eXlfaXNfaW50
ZXJhY3RpdmUgPSBmaWxlID8gKGlzYXR0eSggZmlsZW5vKGZpbGUpICkgPiAwKSA6IDA7CnwgICAg
IAp8IAllcnJubyA9IG9lcnJubzsKfCB9CnwgCnwgLyoqIERpc2NhcmQgYWxsIGJ1ZmZlcmVkIGNo
YXJhY3RlcnMuIE9uIHRoZSBuZXh0IHNjYW4sIFlZX0lOUFVUIHdpbGwgYmUgY2FsbGVkLgp8ICAq
IEBwYXJhbSBiIHRoZSBidWZmZXIgc3RhdGUgdG8gYmUgZmx1c2hlZCwgdXN1YWxseSBAYyBZWV9D
VVJSRU5UX0JVRkZFUi4KfCAgKiAKfCAgKi8KfCAgICAgdm9pZCB5eV9mbHVzaF9idWZmZXIgKFlZ
X0JVRkZFUl9TVEFURSAgYiApCnwgewp8ICAgICAJaWYgKCAhIGIgKQp8IAkJcmV0dXJuOwp8IAp8
IAliLT55eV9uX2NoYXJzID0gMDsKfCAKfCAJLyogV2UgYWx3YXlzIG5lZWQgdHdvIGVuZC1vZi1i
dWZmZXIgY2hhcmFjdGVycy4gIFRoZSBmaXJzdCBjYXVzZXMKfCAJICogYSB0cmFuc2l0aW9uIHRv
IHRoZSBlbmQtb2YtYnVmZmVyIHN0YXRlLiAgVGhlIHNlY29uZCBjYXVzZXMKfCAJICogYSBqYW0g
aW4gdGhhdCBzdGF0ZS4KfCAJICovCnwgCWItPnl5X2NoX2J1ZlswXSA9IFlZX0VORF9PRl9CVUZG
RVJfQ0hBUjsKfCAJYi0+eXlfY2hfYnVmWzFdID0gWVlfRU5EX09GX0JVRkZFUl9DSEFSOwp8IAp8
IAliLT55eV9idWZfcG9zID0gJmItPnl5X2NoX2J1ZlswXTsKfCAKfCAJYi0+eXlfYXRfYm9sID0g
MTsKfCAJYi0+eXlfYnVmZmVyX3N0YXR1cyA9IFlZX0JVRkZFUl9ORVc7CnwgCnwgCWlmICggYiA9
PSBZWV9DVVJSRU5UX0JVRkZFUiApCnwgCQl5eV9sb2FkX2J1ZmZlcl9zdGF0ZSggKTsKfCB9Cnwg
CnwgLyoqIFB1c2hlcyB0aGUgbmV3IHN0YXRlIG9udG8gdGhlIHN0YWNrLiBUaGUgbmV3IHN0YXRl
IGJlY29tZXMKfCAgKiAgdGhlIGN1cnJlbnQgc3RhdGUuIFRoaXMgZnVuY3Rpb24gd2lsbCBhbGxv
Y2F0ZSB0aGUgc3RhY2sKfCAgKiAgaWYgbmVjZXNzYXJ5Lgp8ICAqICBAcGFyYW0gbmV3X2J1ZmZl
ciBUaGUgbmV3IHN0YXRlLgp8ICAqICAKfCAgKi8KfCB2b2lkIHl5cHVzaF9idWZmZXJfc3RhdGUg
KFlZX0JVRkZFUl9TVEFURSBuZXdfYnVmZmVyICkKfCB7CnwgICAgIAlpZiAobmV3X2J1ZmZlciA9
PSBOVUxMKQp8IAkJcmV0dXJuOwp8IAp8IAl5eWVuc3VyZV9idWZmZXJfc3RhY2soKTsKfCAKfCAJ
LyogVGhpcyBibG9jayBpcyBjb3BpZWQgZnJvbSB5eV9zd2l0Y2hfdG9fYnVmZmVyLiAqLwp8IAlp
ZiAoIFlZX0NVUlJFTlRfQlVGRkVSICkKfCAJCXsKfCAJCS8qIEZsdXNoIG91dCBpbmZvcm1hdGlv
biBmb3Igb2xkIGJ1ZmZlci4gKi8KfCAJCSooeXlfY19idWZfcCkgPSAoeXlfaG9sZF9jaGFyKTsK
fCAJCVlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfYnVmX3BvcyA9ICh5eV9jX2J1Zl9wKTsK
fCAJCVlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfbl9jaGFycyA9ICh5eV9uX2NoYXJzKTsK
fCAJCX0KfCAKfCAJLyogT25seSBwdXNoIGlmIHRvcCBleGlzdHMuIE90aGVyd2lzZSwgcmVwbGFj
ZSB0b3AuICovCnwgCWlmIChZWV9DVVJSRU5UX0JVRkZFUikKfCAJCSh5eV9idWZmZXJfc3RhY2tf
dG9wKSsrOwp8IAlZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUgPSBuZXdfYnVmZmVyOwp8IAp8IAkv
KiBjb3BpZWQgZnJvbSB5eV9zd2l0Y2hfdG9fYnVmZmVyLiAqLwp8IAl5eV9sb2FkX2J1ZmZlcl9z
dGF0ZSggKTsKfCAJKHl5X2RpZF9idWZmZXJfc3dpdGNoX29uX2VvZikgPSAxOwp8IH0KfCAKfCAv
KiogUmVtb3ZlcyBhbmQgZGVsZXRlcyB0aGUgdG9wIG9mIHRoZSBzdGFjaywgaWYgcHJlc2VudC4K
fCAgKiAgVGhlIG5leHQgZWxlbWVudCBiZWNvbWVzIHRoZSBuZXcgdG9wLgp8ICAqICAKfCAgKi8K
fCB2b2lkIHl5cG9wX2J1ZmZlcl9zdGF0ZSAodm9pZCkKfCB7CnwgICAgIAlpZiAoIVlZX0NVUlJF
TlRfQlVGRkVSKQp8IAkJcmV0dXJuOwp8IAp8IAl5eV9kZWxldGVfYnVmZmVyKFlZX0NVUlJFTlRf
QlVGRkVSICk7CnwgCVlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRSA9IE5VTEw7CnwgCWlmICgoeXlf
YnVmZmVyX3N0YWNrX3RvcCkgPiAwKQp8IAkJLS0oeXlfYnVmZmVyX3N0YWNrX3RvcCk7CnwgCnwg
CWlmIChZWV9DVVJSRU5UX0JVRkZFUikgewp8IAkJeXlfbG9hZF9idWZmZXJfc3RhdGUoICk7Cnwg
CQkoeXlfZGlkX2J1ZmZlcl9zd2l0Y2hfb25fZW9mKSA9IDE7CnwgCX0KfCB9CnwgCnwgLyogQWxs
b2NhdGVzIHRoZSBzdGFjayBpZiBpdCBkb2VzIG5vdCBleGlzdC4KfCAgKiAgR3VhcmFudGVlcyBz
cGFjZSBmb3IgYXQgbGVhc3Qgb25lIHB1c2guCnwgICovCnwgc3RhdGljIHZvaWQgeXllbnN1cmVf
YnVmZmVyX3N0YWNrICh2b2lkKQp8IHsKfCAJeXlfc2l6ZV90IG51bV90b19hbGxvYzsKfCAgICAg
CnwgCWlmICghKHl5X2J1ZmZlcl9zdGFjaykpIHsKfCAKfCAJCS8qIEZpcnN0IGFsbG9jYXRpb24g
aXMganVzdCBmb3IgMiBlbGVtZW50cywgc2luY2Ugd2UgZG9uJ3Qga25vdyBpZiB0aGlzCnwgCQkg
KiBzY2FubmVyIHdpbGwgZXZlbiBuZWVkIGEgc3RhY2suIFdlIHVzZSAyIGluc3RlYWQgb2YgMSB0
byBhdm9pZCBhbgp8IAkJICogaW1tZWRpYXRlIHJlYWxsb2Mgb24gdGhlIG5leHQgY2FsbC4KfCAg
ICAgICAgICAqLwp8IAkJbnVtX3RvX2FsbG9jID0gMTsKfCAJCSh5eV9idWZmZXJfc3RhY2spID0g
KHN0cnVjdCB5eV9idWZmZXJfc3RhdGUqKil5eWFsbG9jCnwgCQkJCQkJCQkobnVtX3RvX2FsbG9j
ICogc2l6ZW9mKHN0cnVjdCB5eV9idWZmZXJfc3RhdGUqKQp8IAkJCQkJCQkJKTsKfCAJCWlmICgg
ISAoeXlfYnVmZmVyX3N0YWNrKSApCnwgCQkJWVlfRkFUQUxfRVJST1IoICJvdXQgb2YgZHluYW1p
YyBtZW1vcnkgaW4geXllbnN1cmVfYnVmZmVyX3N0YWNrKCkiICk7CnwgCQkJCQkJCQkgIAp8IAkJ
bWVtc2V0KCh5eV9idWZmZXJfc3RhY2spLCAwLCBudW1fdG9fYWxsb2MgKiBzaXplb2Yoc3RydWN0
IHl5X2J1ZmZlcl9zdGF0ZSopKTsKfCAJCQkJCnwgCQkoeXlfYnVmZmVyX3N0YWNrX21heCkgPSBu
dW1fdG9fYWxsb2M7CnwgCQkoeXlfYnVmZmVyX3N0YWNrX3RvcCkgPSAwOwp8IAkJcmV0dXJuOwp8
IAl9CnwgCnwgCWlmICgoeXlfYnVmZmVyX3N0YWNrX3RvcCkgPj0gKCh5eV9idWZmZXJfc3RhY2tf
bWF4KSkgLSAxKXsKfCAKfCAJCS8qIEluY3JlYXNlIHRoZSBidWZmZXIgdG8gcHJlcGFyZSBmb3Ig
YSBwb3NzaWJsZSBwdXNoLiAqLwp8IAkJaW50IGdyb3dfc2l6ZSA9IDggLyogYXJiaXRyYXJ5IGdy
b3cgc2l6ZSAqLzsKfCAKfCAJCW51bV90b19hbGxvYyA9ICh5eV9idWZmZXJfc3RhY2tfbWF4KSAr
IGdyb3dfc2l6ZTsKfCAJCSh5eV9idWZmZXJfc3RhY2spID0gKHN0cnVjdCB5eV9idWZmZXJfc3Rh
dGUqKil5eXJlYWxsb2MKfCAJCQkJCQkJCSgoeXlfYnVmZmVyX3N0YWNrKSwKfCAJCQkJCQkJCW51
bV90b19hbGxvYyAqIHNpemVvZihzdHJ1Y3QgeXlfYnVmZmVyX3N0YXRlKikKfCAJCQkJCQkJCSk7
CnwgCQlpZiAoICEgKHl5X2J1ZmZlcl9zdGFjaykgKQp8IAkJCVlZX0ZBVEFMX0VSUk9SKCAib3V0
IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5ZW5zdXJlX2J1ZmZlcl9zdGFjaygpIiApOwp8IAp8IAkJ
LyogemVybyBvbmx5IHRoZSBuZXcgc2xvdHMuKi8KfCAJCW1lbXNldCgoeXlfYnVmZmVyX3N0YWNr
KSArICh5eV9idWZmZXJfc3RhY2tfbWF4KSwgMCwgZ3Jvd19zaXplICogc2l6ZW9mKHN0cnVjdCB5
eV9idWZmZXJfc3RhdGUqKSk7CnwgCQkoeXlfYnVmZmVyX3N0YWNrX21heCkgPSBudW1fdG9fYWxs
b2M7CnwgCX0KfCB9CnwgCnwgLyoqIFNldHVwIHRoZSBpbnB1dCBidWZmZXIgc3RhdGUgdG8gc2Nh
biBkaXJlY3RseSBmcm9tIGEgdXNlci1zcGVjaWZpZWQgY2hhcmFjdGVyIGJ1ZmZlci4KfCAgKiBA
cGFyYW0gYmFzZSB0aGUgY2hhcmFjdGVyIGJ1ZmZlcgp8ICAqIEBwYXJhbSBzaXplIHRoZSBzaXpl
IGluIGJ5dGVzIG9mIHRoZSBjaGFyYWN0ZXIgYnVmZmVyCnwgICogCnwgICogQHJldHVybiB0aGUg
bmV3bHkgYWxsb2NhdGVkIGJ1ZmZlciBzdGF0ZSBvYmplY3QuIAp8ICAqLwp8IFlZX0JVRkZFUl9T
VEFURSB5eV9zY2FuX2J1ZmZlciAgKGNoYXIgKiBiYXNlLCB5eV9zaXplX3QgIHNpemUgKQp8IHsK
fCAJWVlfQlVGRkVSX1NUQVRFIGI7CnwgICAgIAp8IAlpZiAoIHNpemUgPCAyIHx8CnwgCSAgICAg
YmFzZVtzaXplLTJdICE9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUiB8fAp8IAkgICAgIGJhc2Vbc2l6
ZS0xXSAhPSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVIgKQp8IAkJLyogVGhleSBmb3Jnb3QgdG8gbGVh
dmUgcm9vbSBmb3IgdGhlIEVPQidzLiAqLwp8IAkJcmV0dXJuIDA7CnwgCnwgCWIgPSAoWVlfQlVG
RkVSX1NUQVRFKSB5eWFsbG9jKHNpemVvZiggc3RydWN0IHl5X2J1ZmZlcl9zdGF0ZSApICApOwp8
IAlpZiAoICEgYiApCnwgCQlZWV9GQVRBTF9FUlJPUiggIm91dCBvZiBkeW5hbWljIG1lbW9yeSBp
biB5eV9zY2FuX2J1ZmZlcigpIiApOwp8IAp8IAliLT55eV9idWZfc2l6ZSA9IHNpemUgLSAyOwkv
KiAiLSAyIiB0byB0YWtlIGNhcmUgb2YgRU9CJ3MgKi8KfCAJYi0+eXlfYnVmX3BvcyA9IGItPnl5
X2NoX2J1ZiA9IGJhc2U7CnwgCWItPnl5X2lzX291cl9idWZmZXIgPSAwOwp8IAliLT55eV9pbnB1
dF9maWxlID0gMDsKfCAJYi0+eXlfbl9jaGFycyA9IGItPnl5X2J1Zl9zaXplOwp8IAliLT55eV9p
c19pbnRlcmFjdGl2ZSA9IDA7CnwgCWItPnl5X2F0X2JvbCA9IDE7CnwgCWItPnl5X2ZpbGxfYnVm
ZmVyID0gMDsKfCAJYi0+eXlfYnVmZmVyX3N0YXR1cyA9IFlZX0JVRkZFUl9ORVc7CnwgCnwgCXl5
X3N3aXRjaF90b19idWZmZXIoYiAgKTsKfCAKfCAJcmV0dXJuIGI7CnwgfQp8IAp8IC8qKiBTZXR1
cCB0aGUgaW5wdXQgYnVmZmVyIHN0YXRlIHRvIHNjYW4gYSBzdHJpbmcuIFRoZSBuZXh0IGNhbGwg
dG8geXlsZXgoKSB3aWxsCnwgICogc2NhbiBmcm9tIGEgQGUgY29weSBvZiBAYSBzdHIuCnwgICog
QHBhcmFtIHl5c3RyIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nIHRvIHNjYW4KfCAgKiAKfCAgKiBA
cmV0dXJuIHRoZSBuZXdseSBhbGxvY2F0ZWQgYnVmZmVyIHN0YXRlIG9iamVjdC4KfCAgKiBAbm90
ZSBJZiB5b3Ugd2FudCB0byBzY2FuIGJ5dGVzIHRoYXQgbWF5IGNvbnRhaW4gTlVMIHZhbHVlcywg
dGhlbiB1c2UKfCAgKiAgICAgICB5eV9zY2FuX2J5dGVzKCkgaW5zdGVhZC4KfCAgKi8KfCBZWV9C
VUZGRVJfU1RBVEUgeXlfc2Nhbl9zdHJpbmcgKHl5Y29uc3QgY2hhciAqIHl5c3RyICkKfCB7Cnwg
ICAgIAp8IAlyZXR1cm4geXlfc2Nhbl9ieXRlcyh5eXN0ciwoaW50KSBzdHJsZW4oeXlzdHIpICk7
CnwgfQp8IAp8IC8qKiBTZXR1cCB0aGUgaW5wdXQgYnVmZmVyIHN0YXRlIHRvIHNjYW4gdGhlIGdp
dmVuIGJ5dGVzLiBUaGUgbmV4dCBjYWxsIHRvIHl5bGV4KCkgd2lsbAp8ICAqIHNjYW4gZnJvbSBh
IEBlIGNvcHkgb2YgQGEgYnl0ZXMuCnwgICogQHBhcmFtIHl5Ynl0ZXMgdGhlIGJ5dGUgYnVmZmVy
IHRvIHNjYW4KfCAgKiBAcGFyYW0gX3l5Ynl0ZXNfbGVuIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4g
dGhlIGJ1ZmZlciBwb2ludGVkIHRvIGJ5IEBhIGJ5dGVzLgp8ICAqIAp8ICAqIEByZXR1cm4gdGhl
IG5ld2x5IGFsbG9jYXRlZCBidWZmZXIgc3RhdGUgb2JqZWN0Lgp8ICAqLwp8IFlZX0JVRkZFUl9T
VEFURSB5eV9zY2FuX2J5dGVzICAoeXljb25zdCBjaGFyICogeXlieXRlcywgeXlfc2l6ZV90ICBf
eXlieXRlc19sZW4gKQp8IHsKfCAJWVlfQlVGRkVSX1NUQVRFIGI7CnwgCWNoYXIgKmJ1ZjsKfCAJ
eXlfc2l6ZV90IG47CnwgCWludCBpOwp8ICAgICAKfCAJLyogR2V0IG1lbW9yeSBmb3IgZnVsbCBi
dWZmZXIsIGluY2x1ZGluZyBzcGFjZSBmb3IgdHJhaWxpbmcgRU9CJ3MuICovCnwgCW4gPSAoeXlf
c2l6ZV90KSBfeXlieXRlc19sZW4gKyAyOwp8IAlidWYgPSAoY2hhciAqKSB5eWFsbG9jKG4gICk7
CnwgCWlmICggISBidWYgKQp8IAkJWVlfRkFUQUxfRVJST1IoICJvdXQgb2YgZHluYW1pYyBtZW1v
cnkgaW4geXlfc2Nhbl9ieXRlcygpIiApOwp8IAp8IAlmb3IgKCBpID0gMDsgaSA8IF95eWJ5dGVz
X2xlbjsgKytpICkKfCAJCWJ1ZltpXSA9IHl5Ynl0ZXNbaV07CnwgCnwgCWJ1ZltfeXlieXRlc19s
ZW5dID0gYnVmW195eWJ5dGVzX2xlbisxXSA9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUjsKfCAKfCAJ
YiA9IHl5X3NjYW5fYnVmZmVyKGJ1ZixuICk7CnwgCWlmICggISBiICkKfCAJCVlZX0ZBVEFMX0VS
Uk9SKCAiYmFkIGJ1ZmZlciBpbiB5eV9zY2FuX2J5dGVzKCkiICk7CnwgCnwgCS8qIEl0J3Mgb2th
eSB0byBncm93IGV0Yy4gdGhpcyBidWZmZXIsIGFuZCB3ZSBzaG91bGQgdGhyb3cgaXQKfCAJICog
YXdheSB3aGVuIHdlJ3JlIGRvbmUuCnwgCSAqLwp8IAliLT55eV9pc19vdXJfYnVmZmVyID0gMTsK
fCAKfCAJcmV0dXJuIGI7CnwgfQp8IAp8ICNpZm5kZWYgWVlfRVhJVF9GQUlMVVJFCnwgI2RlZmlu
ZSBZWV9FWElUX0ZBSUxVUkUgMgp8ICNlbmRpZgp8IAp8IHN0YXRpYyB2b2lkIHl5X2ZhdGFsX2Vy
cm9yICh5eWNvbnN0IGNoYXIqIG1zZyApCnwgewp8ICAgICAJKHZvaWQpIGZwcmludGYoIHN0ZGVy
ciwgIiVzXG4iLCBtc2cgKTsKfCAJZXhpdCggWVlfRVhJVF9GQUlMVVJFICk7CnwgfQp8IAp8IC8q
IFJlZGVmaW5lIHl5bGVzcygpIHNvIGl0IHdvcmtzIGluIHNlY3Rpb24gMyBjb2RlLiAqLwp8IAp8
ICN1bmRlZiB5eWxlc3MKfCAjZGVmaW5lIHl5bGVzcyhuKSBcCnwgCWRvIFwKfCAJCXsgXAp8IAkJ
LyogVW5kbyBlZmZlY3RzIG9mIHNldHRpbmcgdXAgeXl0ZXh0LiAqLyBcCnwgICAgICAgICBpbnQg
eXlsZXNzX21hY3JvX2FyZyA9IChuKTsgXAp8ICAgICAgICAgWVlfTEVTU19MSU5FTk8oeXlsZXNz
X21hY3JvX2FyZyk7XAp8IAkJeXl0ZXh0W3l5bGVuZ10gPSAoeXlfaG9sZF9jaGFyKTsgXAp8IAkJ
KHl5X2NfYnVmX3ApID0geXl0ZXh0ICsgeXlsZXNzX21hY3JvX2FyZzsgXAp8IAkJKHl5X2hvbGRf
Y2hhcikgPSAqKHl5X2NfYnVmX3ApOyBcCnwgCQkqKHl5X2NfYnVmX3ApID0gJ1wwJzsgXAp8IAkJ
eXlsZW5nID0geXlsZXNzX21hY3JvX2FyZzsgXAp8IAkJfSBcCnwgCXdoaWxlICggMCApCnwgCnwg
LyogQWNjZXNzb3IgIG1ldGhvZHMgKGdldC9zZXQgZnVuY3Rpb25zKSB0byBzdHJ1Y3QgbWVtYmVy
cy4gKi8KfCAKfCAvKiogR2V0IHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyLgp8ICAqIAp8ICAqLwp8
IGludCB5eWdldF9saW5lbm8gICh2b2lkKQp8IHsKfCAgICAgICAgIAp8ICAgICByZXR1cm4geXls
aW5lbm87CnwgfQp8IAp8IC8qKiBHZXQgdGhlIGlucHV0IHN0cmVhbS4KfCAgKiAKfCAgKi8KfCBG
SUxFICp5eWdldF9pbiAgKHZvaWQpCnwgewp8ICAgICAgICAgcmV0dXJuIHl5aW47CnwgfQp8IAp8
IC8qKiBHZXQgdGhlIG91dHB1dCBzdHJlYW0uCnwgICogCnwgICovCnwgRklMRSAqeXlnZXRfb3V0
ICAodm9pZCkKfCB7CnwgICAgICAgICByZXR1cm4geXlvdXQ7CnwgfQp8IAp8IC8qKiBHZXQgdGhl
IGxlbmd0aCBvZiB0aGUgY3VycmVudCB0b2tlbi4KfCAgKiAKfCAgKi8KfCB5eV9zaXplX3QgeXln
ZXRfbGVuZyAgKHZvaWQpCnwgewp8ICAgICAgICAgcmV0dXJuIHl5bGVuZzsKfCB9CnwgCnwgLyoq
IEdldCB0aGUgY3VycmVudCB0b2tlbi4KfCAgKiAKfCAgKi8KfCAKfCBjaGFyICp5eWdldF90ZXh0
ICAodm9pZCkKfCB7CnwgICAgICAgICByZXR1cm4geXl0ZXh0Owp8IH0KfCAKfCAvKiogU2V0IHRo
ZSBjdXJyZW50IGxpbmUgbnVtYmVyLgp8ICAqIEBwYXJhbSBsaW5lX251bWJlcgp8ICAqIAp8ICAq
Lwp8IHZvaWQgeXlzZXRfbGluZW5vIChpbnQgIGxpbmVfbnVtYmVyICkKfCB7CnwgICAgIAp8ICAg
ICB5eWxpbmVubyA9IGxpbmVfbnVtYmVyOwp8IH0KfCAKfCAvKiogU2V0IHRoZSBpbnB1dCBzdHJl
YW0uIFRoaXMgZG9lcyBub3QgZGlzY2FyZCB0aGUgY3VycmVudAp8ICAqIGlucHV0IGJ1ZmZlci4K
fCAgKiBAcGFyYW0gaW5fc3RyIEEgcmVhZGFibGUgc3RyZWFtLgp8ICAqIAp8ICAqIEBzZWUgeXlf
c3dpdGNoX3RvX2J1ZmZlcgp8ICAqLwp8IHZvaWQgeXlzZXRfaW4gKEZJTEUgKiAgaW5fc3RyICkK
fCB7CnwgICAgICAgICB5eWluID0gaW5fc3RyIDsKfCB9CnwgCnwgdm9pZCB5eXNldF9vdXQgKEZJ
TEUgKiAgb3V0X3N0ciApCnwgewp8ICAgICAgICAgeXlvdXQgPSBvdXRfc3RyIDsKfCB9CnwgCnwg
aW50IHl5Z2V0X2RlYnVnICAodm9pZCkKfCB7CnwgICAgICAgICByZXR1cm4geXlfZmxleF9kZWJ1
ZzsKfCB9CnwgCnwgdm9pZCB5eXNldF9kZWJ1ZyAoaW50ICBiZGVidWcgKQp8IHsKfCAgICAgICAg
IHl5X2ZsZXhfZGVidWcgPSBiZGVidWcgOwp8IH0KfCAKfCBzdGF0aWMgaW50IHl5X2luaXRfZ2xv
YmFscyAodm9pZCkKfCB7CnwgICAgICAgICAvKiBJbml0aWFsaXphdGlvbiBpcyB0aGUgc2FtZSBh
cyBmb3IgdGhlIG5vbi1yZWVudHJhbnQgc2Nhbm5lci4KfCAgICAgICogVGhpcyBmdW5jdGlvbiBp
cyBjYWxsZWQgZnJvbSB5eWxleF9kZXN0cm95KCksIHNvIGRvbid0IGFsbG9jYXRlIGhlcmUuCnwg
ICAgICAqLwp8IAp8ICAgICAoeXlfYnVmZmVyX3N0YWNrKSA9IDA7CnwgICAgICh5eV9idWZmZXJf
c3RhY2tfdG9wKSA9IDA7CnwgICAgICh5eV9idWZmZXJfc3RhY2tfbWF4KSA9IDA7CnwgICAgICh5
eV9jX2J1Zl9wKSA9IChjaGFyICopIDA7CnwgICAgICh5eV9pbml0KSA9IDA7CnwgICAgICh5eV9z
dGFydCkgPSAwOwp8IAp8ICAgICAoeXlfc3RhdGVfYnVmKSA9IDA7CnwgICAgICh5eV9zdGF0ZV9w
dHIpID0gMDsKfCAgICAgKHl5X2Z1bGxfbWF0Y2gpID0gMDsKfCAgICAgKHl5X2xwKSA9IDA7Cnwg
CnwgLyogRGVmaW5lZCBpbiBtYWluLmMgKi8KfCAjaWZkZWYgWVlfU1RESU5JVAp8ICAgICB5eWlu
ID0gc3RkaW47CnwgICAgIHl5b3V0ID0gc3Rkb3V0Owp8ICNlbHNlCnwgICAgIHl5aW4gPSAoRklM
RSAqKSAwOwp8ICAgICB5eW91dCA9IChGSUxFICopIDA7CnwgI2VuZGlmCnwgCnwgICAgIC8qIEZv
ciBmdXR1cmUgcmVmZXJlbmNlOiBTZXQgZXJybm8gb24gZXJyb3IsIHNpbmNlIHdlIGFyZSBjYWxs
ZWQgYnkKfCAgICAgICogeXlsZXhfaW5pdCgpCnwgICAgICAqLwp8ICAgICByZXR1cm4gMDsKfCB9
CnwgCnwgLyogeXlsZXhfZGVzdHJveSBpcyBmb3IgYm90aCByZWVudHJhbnQgYW5kIG5vbi1yZWVu
dHJhbnQgc2Nhbm5lcnMuICovCnwgaW50IHl5bGV4X2Rlc3Ryb3kgICh2b2lkKQp8IHsKfCAgICAg
CnwgICAgIC8qIFBvcCB0aGUgYnVmZmVyIHN0YWNrLCBkZXN0cm95aW5nIGVhY2ggZWxlbWVudC4g
Ki8KfCAJd2hpbGUoWVlfQ1VSUkVOVF9CVUZGRVIpewp8IAkJeXlfZGVsZXRlX2J1ZmZlcihZWV9D
VVJSRU5UX0JVRkZFUiAgKTsKfCAJCVlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRSA9IE5VTEw7Cnwg
CQl5eXBvcF9idWZmZXJfc3RhdGUoKTsKfCAJfQp8IAp8IAkvKiBEZXN0cm95IHRoZSBzdGFjayBp
dHNlbGYuICovCnwgCXl5ZnJlZSgoeXlfYnVmZmVyX3N0YWNrKSApOwp8IAkoeXlfYnVmZmVyX3N0
YWNrKSA9IE5VTEw7CnwgCnwgICAgIHl5ZnJlZSAoICh5eV9zdGF0ZV9idWYpICk7CnwgICAgICh5
eV9zdGF0ZV9idWYpICA9IE5VTEw7CnwgCnwgICAgIC8qIFJlc2V0IHRoZSBnbG9iYWxzLiBUaGlz
IGlzIGltcG9ydGFudCBpbiBhIG5vbi1yZWVudHJhbnQgc2Nhbm5lciBzbyB0aGUgbmV4dCB0aW1l
CnwgICAgICAqIHl5bGV4KCkgaXMgY2FsbGVkLCBpbml0aWFsaXphdGlvbiB3aWxsIG9jY3VyLiAq
Lwp8ICAgICB5eV9pbml0X2dsb2JhbHMoICk7CnwgCnwgICAgIHJldHVybiAwOwp8IH0KfCAKfCAv
Kgp8ICAqIEludGVybmFsIHV0aWxpdHkgcm91dGluZXMuCnwgICovCnwgCnwgI2lmbmRlZiB5eXRl
eHRfcHRyCnwgc3RhdGljIHZvaWQgeXlfZmxleF9zdHJuY3B5IChjaGFyKiBzMSwgeXljb25zdCBj
aGFyICogczIsIGludCBuICkKfCB7CnwgCXJlZ2lzdGVyIGludCBpOwp8IAlmb3IgKCBpID0gMDsg
aSA8IG47ICsraSApCnwgCQlzMVtpXSA9IHMyW2ldOwp8IH0KfCAjZW5kaWYKfCAKfCAjaWZkZWYg
WVlfTkVFRF9TVFJMRU4KfCBzdGF0aWMgaW50IHl5X2ZsZXhfc3RybGVuICh5eWNvbnN0IGNoYXIg
KiBzICkKfCB7CnwgCXJlZ2lzdGVyIGludCBuOwp8IAlmb3IgKCBuID0gMDsgc1tuXTsgKytuICkK
fCAJCTsKfCAKfCAJcmV0dXJuIG47CnwgfQp8ICNlbmRpZgp8IAp8IHZvaWQgKnl5YWxsb2MgKHl5
X3NpemVfdCAgc2l6ZSApCnwgewp8IAlyZXR1cm4gKHZvaWQgKikgbWFsbG9jKCBzaXplICk7Cnwg
fQp8IAp8IHZvaWQgKnl5cmVhbGxvYyAgKHZvaWQgKiBwdHIsIHl5X3NpemVfdCAgc2l6ZSApCnwg
ewp8IAkvKiBUaGUgY2FzdCB0byAoY2hhciAqKSBpbiB0aGUgZm9sbG93aW5nIGFjY29tbW9kYXRl
cyBib3RoCnwgCSAqIGltcGxlbWVudGF0aW9ucyB0aGF0IHVzZSBjaGFyKiBnZW5lcmljIHBvaW50
ZXJzLCBhbmQgdGhvc2UKfCAJICogdGhhdCB1c2Ugdm9pZCogZ2VuZXJpYyBwb2ludGVycy4gIEl0
IHdvcmtzIHdpdGggdGhlIGxhdHRlcgp8IAkgKiBiZWNhdXNlIGJvdGggQU5TSSBDIGFuZCBDKysg
YWxsb3cgY2FzdGxlc3MgYXNzaWdubWVudCBmcm9tCnwgCSAqIGFueSBwb2ludGVyIHR5cGUgdG8g
dm9pZCosIGFuZCBkZWFsIHdpdGggYXJndW1lbnQgY29udmVyc2lvbnMKfCAJICogYXMgdGhvdWdo
IGRvaW5nIGFuIGFzc2lnbm1lbnQuCnwgCSAqLwp8IAlyZXR1cm4gKHZvaWQgKikgcmVhbGxvYygg
KGNoYXIgKikgcHRyLCBzaXplICk7CnwgfQp8IAp8IHZvaWQgeXlmcmVlICh2b2lkICogcHRyICkK
fCB7CnwgCWZyZWUoIChjaGFyICopIHB0ciApOwkvKiBzZWUgeXlyZWFsbG9jKCkgZm9yIChjaGFy
ICopIGNhc3QgKi8KfCB9CnwgCnwgI2RlZmluZSBZWVRBQkxFU19OQU1FICJ5eXRhYmxlcyIKfCAK
fCAjbGluZSAxMCAiY29uZnRlc3QubCIKfCAKfCAKfCAjaWZkZWYgWVlURVhUX1BPSU5URVIKfCBl
eHRlcm4gY2hhciAqeXl0ZXh0Owp8ICNlbmRpZgp8IGludAp8IG1haW4gKHZvaWQpCnwgewp8ICAg
cmV0dXJuICEgeXlsZXggKCkgKyAhIHl5d3JhcCAoKTsKfCB9CmNvbmZpZ3VyZTo1Njk5OiBnY2Mg
LW8gY29uZnRlc3QgICAgIGNvbmZ0ZXN0LmMgLWxmbCAgPiY1CmNvbmZpZ3VyZTo1Njk5OiAkPyA9
IDAKY29uZmlndXJlOjU3MDk6IHJlc3VsdDogLWxmbApjb25maWd1cmU6NTcxNTogY2hlY2tpbmcg
d2hldGhlciB5eXRleHQgaXMgYSBwb2ludGVyCmNvbmZpZ3VyZTo1NzMyOiBnY2MgLW8gY29uZnRl
c3QgICAgIGNvbmZ0ZXN0LmMgLWxmbCAgPiY1CmNvbmZpZ3VyZTo1NzMyOiAkPyA9IDAKY29uZmln
dXJlOjU3NDA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1Nzk5OiBjaGVja2luZyBmb3IgcGtnLWNv
bmZpZwpjb25maWd1cmU6NTgxNzogZm91bmQgL3Vzci9iaW4vcGtnLWNvbmZpZwpjb25maWd1cmU6
NTgyOTogcmVzdWx0OiAvdXNyL2Jpbi9wa2ctY29uZmlnCmNvbmZpZ3VyZTo1ODU0OiBjaGVja2lu
ZyBwa2ctY29uZmlnIGlzIGF0IGxlYXN0IHZlcnNpb24gMC45LjAKY29uZmlndXJlOjU4NTc6IHJl
c3VsdDogeWVzCmNvbmZpZ3VyZTo2MTAyOiBjaGVja2luZyBmb3IgbGlieHNsdApjb25maWd1cmU6
NjEzMjogcmVzdWx0OiBubwpjb25maWd1cmU6NjEwMjogY2hlY2tpbmcgZm9yIHNheG9uCmNvbmZp
Z3VyZTo2MTMyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MTAyOiBjaGVja2luZyBmb3IgeGFsYW4t
agpjb25maWd1cmU6NjEzMjogcmVzdWx0OiBubwpjb25maWd1cmU6NjEwMjogY2hlY2tpbmcgZm9y
IHhzbHRwcm9jCmNvbmZpZ3VyZTo2MTE4OiBmb3VuZCAvdXNyL2Jpbi94c2x0cHJvYwpjb25maWd1
cmU6NjEyOTogcmVzdWx0OiB4c2x0cHJvYwpjb25maWd1cmU6NjE2MjogY2hlY2tpbmcgZm9yIGRv
Y2Jvb2sycGRmCmNvbmZpZ3VyZTo2MTkyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MTYyOiBjaGVj
a2luZyBmb3IgZGJsYXRleApjb25maWd1cmU6NjE5MjogcmVzdWx0OiBubwpjb25maWd1cmU6NjIw
NjogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBzdHJlcnJvcgpjb25maWd1cmU6NjIz
NzogZ2NjIC1vIGNvbmZ0ZXN0ICAgICBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjYyMzc6ICQ/
ID0gMApjb25maWd1cmU6NjI1NDogcmVzdWx0OiBub25lIHJlcXVpcmVkCmNvbmZpZ3VyZTo2MjYz
OiBjaGVja2luZyBmb3IgcGlkX3QKY29uZmlndXJlOjYyNjM6IGdjYyAtYyAgICBjb25mdGVzdC5j
ID4mNQpjb25maWd1cmU6NjI2MzogJD8gPSAwCmNvbmZpZ3VyZTo2MjYzOiBnY2MgLWMgICAgY29u
ZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVzdC5jOjYz
OjIwOiBlcnJvcjogZXhwZWN0ZWQgZXhwcmVzc2lvbiBiZWZvcmUgJyknIHRva2VuCiBpZiAoc2l6
ZW9mICgocGlkX3QpKSkKICAgICAgICAgICAgICAgICAgICBeCmNvbmZpZ3VyZTo2MjYzOiAkPyA9
IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk
ZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuQUZTIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJv
cGVuYWZzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIxLjYuMjAuMSIKfCAjZGVmaW5lIFBB
Q0tBR0VfU1RSSU5HICJPcGVuQUZTIDEuNi4yMC4xIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP
UlQgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJvcGVuYWZz
Igp8ICNkZWZpbmUgVkVSU0lPTiAiMS42LjIwLjEiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8
ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVm
aW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUg
SEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFW
RV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAxCnwgI2RlZmluZSBfQUxMX1NP
VVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T
RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgWVlURVhUX1BP
SU5URVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAj
aWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlm
CnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5k
aWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1
ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVk
ZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwg
IyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAg
aW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2Vu
ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2Vu
ZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAj
ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2Vu
ZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRp
Zgp8IGludAp8IG1haW4gKCkKfCB7CnwgaWYgKHNpemVvZiAoKHBpZF90KSkpCnwgCSAgICByZXR1
cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjYyNjM6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZTo2Mjc0OiBjaGVja2luZyBmb3Igc2l6ZV90CmNvbmZpZ3VyZTo2Mjc0OiBnY2Mg
LWMgICAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYyNzQ6ICQ/ID0gMApjb25maWd1cmU6NjI3
NDogZ2NjIC1jICAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWlu
JzoKY29uZnRlc3QuYzo2MzoyMTogZXJyb3I6IGV4cGVjdGVkIGV4cHJlc3Npb24gYmVmb3JlICcp
JyB0b2tlbgogaWYgKHNpemVvZiAoKHNpemVfdCkpKQogICAgICAgICAgICAgICAgICAgICBeCmNv
bmZpZ3VyZTo2Mjc0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog
Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuQUZTIgp8ICNkZWZpbmUg
UEFDS0FHRV9UQVJOQU1FICJvcGVuYWZzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIxLjYu
MjAuMSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJPcGVuQUZTIDEuNi4yMC4xIgp8ICNkZWZp
bmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmlu
ZSBQQUNLQUdFICJvcGVuYWZzIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS42LjIwLjEiCnwgI2RlZmlu
ZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBI
QVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZF
X1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJ
TkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5U
X0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBfX0VYVEVOU0lPTlNfXyAx
CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmlu
ZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8
ICNkZWZpbmUgWVlURVhUX1BPSU5URVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5j
bHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lz
L3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8
c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxz
dGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NU
RExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRl
ZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBI
QVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVk
ZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRl
IDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVk
ZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVk
ZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUg
PHVuaXN0ZC5oPgp8ICNlbmRpZgp8IGludAp8IG1haW4gKCkKfCB7CnwgaWYgKHNpemVvZiAoKHNp
emVfdCkpKQp8IAkgICAgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3Vy
ZTo2Mjc0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjI4NzogY2hlY2tpbmcgd2hldGhlciBsbiAt
cyB3b3Jrcwpjb25maWd1cmU6NjI5MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYzNDE6IGNoZWNr
aW5nIGZvciByYW5saWIKY29uZmlndXJlOjYzNTc6IGZvdW5kIC91c3IvYmluL3JhbmxpYgpjb25m
aWd1cmU6NjM2ODogcmVzdWx0OiByYW5saWIKY29uZmlndXJlOjYzOTQ6IGNoZWNraW5nIGZvciBi
aXNvbgpjb25maWd1cmU6NjQxMDogZm91bmQgL3Vzci9iaW4vYmlzb24KY29uZmlndXJlOjY0MjE6
IHJlc3VsdDogYmlzb24gLXkKY29uZmlndXJlOjY0MzY6IGNoZWNraW5nIGlmIGxleCBpcyBmbGV4
CmZsZXggMi41LjM3CmNvbmZpZ3VyZTo2NDM5OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjQ3Mjog
Y2hlY2tpbmcgd2hldGhlciBieXRlIG9yZGVyIGlzIGtub3duIGF0IGNvbXBpbGUgdGltZQpjb25m
aWd1cmU6NjQ5MzogZ2NjIC1jICAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo2NDkzOiAkPyA9
IDAKY29uZmlndXJlOjY1MDA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2NTAyOiBjaGVja2luZyB3
aGV0aGVyIGJ5dGUgb3JkZXJpbmcgaXMgYmlnZW5kaWFuCmNvbmZpZ3VyZTo2NTI1OiBnY2MgLWMg
ICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgpjb25mdGVz
dC5jOjM1OjM6IGVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnbm90JwogICBub3QgYmlnIGVuZGlh
bgogICBeCmNvbmZ0ZXN0LmM6MzU6MTE6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAn
YXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVmb3JlICdlbmRpYW4nCiAgIG5vdCBiaWcgZW5kaWFu
CiAgICAgICAgICAgXgpjb25maWd1cmU6NjUyNTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy
b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3Bl
bkFGUyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbmFmcyIKfCAjZGVmaW5lIFBBQ0tB
R0VfVkVSU0lPTiAiMS42LjIwLjEiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiT3BlbkFGUyAx
LjYuMjAuMSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCnwgI2RlZmluZSBQQUNLQUdF
X1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAib3BlbmFmcyIKfCAjZGVmaW5lIFZFUlNJT04gIjEu
Ni4yMC4xIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT
X0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0gg
MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUg
X19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T
T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9U
QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVSIDEKfCAvKiBlbmQgY29uZmRl
ZnMuaC4gICovCnwgCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNpbmNsdWRlIDxzeXMvcGFy
YW0uaD4KfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICNpZiBCWVRFX09SREVSICE9IEJJR19FTkRJ
QU4KfCAgIG5vdCBiaWcgZW5kaWFuCnwgI2VuZGlmCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv
bmZpZ3VyZTo2NTYwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2NTcyOiBjaGVja2luZyB3aGV0aGVy
IHByaW50ZiB1bmRlcnN0YW5kcyB0aGUgJXogbGVuZ3RoIG1vZGlmaWVyCmNvbmZpZ3VyZTo2NTk4
OiBnY2MgLW8gY29uZnRlc3QgICAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6NjU5ODogJD8g
PSAwCmNvbmZpZ3VyZTo2NTk4OiAuL2NvbmZ0ZXN0CmNvbmZpZ3VyZTo2NTk4OiAkPyA9IDAKY29u
ZmlndXJlOjY2MDk6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2NjE5OiBjaGVja2luZyB5b3VyIE9T
CmNvbmZpZ3VyZTo2NzAxOiByZXN1bHQ6IGxpbnV4CmNvbmZpZ3VyZTo3MDA4OiBjaGVja2luZyB5
b3VyIEFGUyBzeXNuYW1lCm1ha2UgLUMgL3Vzci9zcmMvbGludXggTT0vZGF0YTEvb3BlbmFmcy0x
LjYuMjAuMS9jb25mdGVzdC5kaXIgbW9kdWxlcyBLQlVJTERfVkVSQk9TRT0xCm1ha2U6IEVudGVy
aW5nIGRpcmVjdG9yeSAnL3Vzci9zcmMvbGludXgtNC40LjM2LTgnCnRlc3QgLWUgaW5jbHVkZS9n
ZW5lcmF0ZWQvYXV0b2NvbmYuaCAtYSAtZSBpbmNsdWRlL2NvbmZpZy9hdXRvLmNvbmYgfHwgKAkJ
XAplY2hvID4mMjsJCQkJCQkJXAplY2hvID4mMiAiICBFUlJPUjogS2VybmVsIGNvbmZpZ3VyYXRp
b24gaXMgaW52YWxpZC4iOwkJXAplY2hvID4mMiAiICAgICAgICAgaW5jbHVkZS9nZW5lcmF0ZWQv
YXV0b2NvbmYuaCBvciBpbmNsdWRlL2NvbmZpZy9hdXRvLmNvbmYgYXJlIG1pc3NpbmcuIjtcCmVj
aG8gPiYyICIgICAgICAgICBSdW4gJ21ha2Ugb2xkY29uZmlnICYmIG1ha2UgcHJlcGFyZScgb24g
a2VybmVsIHNyYyB0byBmaXggaXQuIjsJXAplY2hvID4mMiA7CQkJCQkJCVwKL2Jpbi9mYWxzZSkK
bWtkaXIgLXAgL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyLy50bXBfdmVyc2lv
bnMgOyBybSAtZiAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvLnRtcF92ZXJz
aW9ucy8qCm1ha2UgLWYgLi9zY3JpcHRzL01ha2VmaWxlLmJ1aWxkIG9iaj0vZGF0YTEvb3BlbmFm
cy0xLjYuMjAuMS9jb25mdGVzdC5kaXIKICBnY2MgLVdwLC1NRCwvZGF0YTEvb3BlbmFmcy0xLjYu
MjAuMS9jb25mdGVzdC5kaXIvLmNvbmZ0ZXN0Lm8uZCAgLW5vc3RkaW5jIC1pc3lzdGVtIC91c3Iv
bGliNjQvZ2NjL3g4Nl82NC1zdXNlLWxpbnV4LzQuOC9pbmNsdWRlIC1JLi9hcmNoL3g4Ni9pbmNs
dWRlIC1JYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaSAtSWFyY2gveDg2L2luY2x1ZGUv
Z2VuZXJhdGVkICAtSWluY2x1ZGUgLUkuL2FyY2gveDg2L2luY2x1ZGUvdWFwaSAtSWFyY2gveDg2
L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkgLUkuL2luY2x1ZGUvdWFwaSAtSWluY2x1ZGUvZ2VuZXJh
dGVkL3VhcGkgLWluY2x1ZGUgLi9pbmNsdWRlL2xpbnV4L2tjb25maWcuaCAtRF9fS0VSTkVMX18g
LVdhbGwgLVd1bmRlZiAtV3N0cmljdC1wcm90b3R5cGVzIC1Xbm8tdHJpZ3JhcGhzIC1mbm8tc3Ry
aWN0LWFsaWFzaW5nIC1mbm8tY29tbW9uIC1XZXJyb3ItaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFy
YXRpb24gLVduby1mb3JtYXQtc2VjdXJpdHkgLXN0ZD1nbnU4OSAtZm5vLVBJRSAtbW5vLXNzZSAt
bW5vLW1teCAtbW5vLXNzZTIgLW1uby0zZG5vdyAtbW5vLWF2eCAtbTY0IC1mYWxpZ24tanVtcHM9
MSAtZmFsaWduLWxvb3BzPTEgLW1uby04MDM4NyAtbW5vLWZwLXJldC1pbi0zODcgLW1wcmVmZXJy
ZWQtc3RhY2stYm91bmRhcnk9MyAtbXR1bmU9Z2VuZXJpYyAtbW5vLXJlZC16b25lIC1tY21vZGVs
PWtlcm5lbCAtZnVuaXQtYXQtYS10aW1lIC1tYWNjdW11bGF0ZS1vdXRnb2luZy1hcmdzIC1EQ09O
RklHX1g4Nl9YMzJfQUJJIC1EQ09ORklHX0FTX0NGST0xIC1EQ09ORklHX0FTX0NGSV9TSUdOQUxf
RlJBTUU9MSAtRENPTkZJR19BU19DRklfU0VDVElPTlM9MSAtRENPTkZJR19BU19GWFNBVkVRPTEg
LURDT05GSUdfQVNfU1NTRTM9MSAtRENPTkZJR19BU19DUkMzMj0xIC1EQ09ORklHX0FTX0FWWD0x
IC1EQ09ORklHX0FTX0FWWDI9MSAtRENPTkZJR19BU19TSEExX05JPTEgLURDT05GSUdfQVNfU0hB
MjU2X05JPTEgLXBpcGUgLVduby1zaWduLWNvbXBhcmUgLWZuby1kZWxldGUtbnVsbC1wb2ludGVy
LWNoZWNrcyAtV25vLW1heWJlLXVuaW5pdGlhbGl6ZWQgLU8yIC0tcGFyYW09YWxsb3ctc3RvcmUt
ZGF0YS1yYWNlcz0wIC1XZnJhbWUtbGFyZ2VyLXRoYW49MjA0OCAtZnN0YWNrLXByb3RlY3RvciAt
V25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlIC1mbm8tdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz
IC1mYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXMgLWcgLWdkd2FyZi00IC1wZyAtbWZlbnRyeSAt
RENDX1VTSU5HX0ZFTlRSWSAtZm5vLWlubGluZS1mdW5jdGlvbnMtY2FsbGVkLW9uY2UgLVdkZWNs
YXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVduby1wb2ludGVyLXNpZ24gLWZuby1zdHJpY3Qtb3Zl
cmZsb3cgLWZjb25zZXJ2ZS1zdGFjayAtV2Vycm9yPWltcGxpY2l0LWludCAtV2Vycm9yPXN0cmlj
dC1wcm90b3R5cGVzIC1EQ0NfSEFWRV9BU01fR09UTyAgLURNT0RVTEUgIC1EIktCVUlMRF9TVFIo
cyk9I3MiIC1EIktCVUlMRF9CQVNFTkFNRT1LQlVJTERfU1RSKGNvbmZ0ZXN0KSIgIC1EIktCVUlM
RF9NT0ROQU1FPUtCVUlMRF9TVFIoY29uZnRlc3QpIiAtYyAtbyAvZGF0YTEvb3BlbmFmcy0xLjYu
MjAuMS9jb25mdGVzdC5kaXIvLnRtcF9jb25mdGVzdC5vIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4x
L2NvbmZ0ZXN0LmRpci9jb25mdGVzdC5jCnNjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6MjY2OiByZWNp
cGUgZm9yIHRhcmdldCAnL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyL2NvbmZ0
ZXN0Lm8nIGZhaWxlZApNYWtlZmlsZToxNDI4OiByZWNpcGUgZm9yIHRhcmdldCAnX21vZHVsZV8v
ZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXInIGZhaWxlZAptYWtlOiBMZWF2aW5n
IGRpcmVjdG9yeSAnL3Vzci9zcmMvbGludXgtNC40LjM2LTgnCi9kYXRhMS9vcGVuYWZzLTEuNi4y
MC4xL2NvbmZ0ZXN0LmRpci9jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnY29uZnRlc3QnOgovZGF0
YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvY29uZnRlc3QuYzozNjo3OiBlcnJvcjog
I2Vycm9yIG5vdCBVTUwKICAgICAgI2Vycm9yIG5vdCBVTUwKICAgICAgIF4KbWFrZVsxXTogKioq
IFsvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvY29uZnRlc3Qub10gRXJyb3Ig
MQptYWtlOiAqKiogW19tb2R1bGVfL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGly
XSBFcnJvciAyCmNvbmZpZ3VyZTogZmFpbGVkIHVzaW5nIE1ha2VmaWxlOgp8IENGTEFHUyArPSAK
fCAKfCBvYmotbSArPSBjb25mdGVzdC5vCmNvbmZpZ3VyZTogYW5kIHByb2dyYW0gd2FzOgp8IC8q
IGNvbmZkZWZzLmggKi8KfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg
Ik9wZW5BRlMiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5hZnMiCnwgI2RlZmluZSBQ
QUNLQUdFX1ZFUlNJT04gIjEuNi4yMC4xIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIk9wZW5B
RlMgMS42LjIwLjEiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgp8ICNkZWZpbmUgUEFD
S0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgIm9wZW5hZnMiCnwgI2RlZmluZSBWRVJTSU9O
ICIxLjYuMjAuMSIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19U
WVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJ
Ql9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx
CnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVm
aW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9H
TlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu
ZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxCnwgI2RlZmluZSBF
TkRJQU5FU1NfSU5fU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgUFJJTlRGX1RBS0VTX1pfTEVOIDEK
fCAvKiBlbmQgY29uZmRlZnMuaCAqLwp8ICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KfCAKfCAK
fCB2b2lkIGNvbmZ0ZXN0KHZvaWQpCnwgewp8ICNpZm5kZWYgQ09ORklHX1VTRVJNT0RFCnwgCQkJ
ICAjZXJyb3Igbm90IFVNTAp8IAkJCSAgI2VuZGlmCnwgfQp8IAp8IE1PRFVMRV9MSUNFTlNFKCJo
dHRwOi8vd3d3Lm9wZW5hZnMub3JnL2RsL2xpY2Vuc2UxMC5odG1sIik7CmNvbmZpZ3VyZTo3Mzcz
OiByZXN1bHQ6IGFtZDY0X2xpbnV4MjYKY29uZmlndXJlOjc0NTU6IGNoZWNraW5nIGlmIGdjYyBh
Y2NlcHRzIC1tYXJjaD1wZW50aXVtCmNvbmZpZ3VyZTo3NDczOiBnY2MgLWMgLU1BUkNIPXBlbnRp
dW0gIGNvbmZ0ZXN0LmMgPiY1CmdjYzogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUg
b3B0aW9uICctTUFSQ0g9cGVudGl1bScKY29uZmlndXJlOjc0NzM6ICQ/ID0gMQpjb25maWd1cmU6
IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF
X05BTUUgIk9wZW5BRlMiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIm9wZW5hZnMiCnwgI2Rl
ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjEuNi4yMC4xIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg
Ik9wZW5BRlMgMS42LjIwLjEiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgp8ICNkZWZp
bmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgIm9wZW5hZnMiCnwgI2RlZmluZSBW
RVJTSU9OICIxLjYuMjAuMSIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZF
X1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZF
X1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1P
UllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVT
X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK
fCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVm
aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg
I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxCnwgI2Rl
ZmluZSBFTkRJQU5FU1NfSU5fU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUgUFJJTlRGX1RBS0VTX1pf
TEVOIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBp
bnQgeDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjc0ODI6IHJlc3VsdDogbm8K
Y29uZmlndXJlOjc0OTI6IGNoZWNraW5nIGlmIGdjYyBuZWVkcyAtZm5vLXN0cmVuZ3RoLXJlZHVj
ZQpjb25maWd1cmU6NzUxMDogZ2NjIC1jIC1mbm8tc3RyZW5ndGgtcmVkdWNlICBjb25mdGVzdC5j
ID4mNQpjb25maWd1cmU6NzUxMDogJD8gPSAwCmNvbmZpZ3VyZTo3NTE5OiByZXN1bHQ6IHllcwpj
b25maWd1cmU6NzUyNjogY2hlY2tpbmcgaWYgZ2NjIG5lZWRzIC1mbm8tc3RyaWN0LWFsaWFzaW5n
CmNvbmZpZ3VyZTo3NTQ0OiBnY2MgLWMgLWZuby1zdHJpY3QtYWxpYXNpbmcgIGNvbmZ0ZXN0LmMg
PiY1CmNvbmZpZ3VyZTo3NTQ0OiAkPyA9IDAKY29uZmlndXJlOjc1NTM6IHJlc3VsdDogeWVzCmNv
bmZpZ3VyZTo3NTYwOiBjaGVja2luZyBpZiBnY2Mgc3VwcG9ydHMgLWZuby1jb21tb24KY29uZmln
dXJlOjc1Nzg6IGdjYyAtYyAtZm5vLWNvbW1vbiAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjc1
Nzg6ICQ/ID0gMApjb25maWd1cmU6NzU4ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjc1OTU6IGNo
ZWNraW5nIGlmIGdjYyBzdXBwb3J0cyAtcGlwZQpjb25maWd1cmU6NzYxMzogZ2NjIC1jIC1waXBl
ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NzYxMzogJD8gPSAwCmNvbmZpZ3VyZTo3NjIyOiBy
ZXN1bHQ6IHllcwpjb25maWd1cmU6NzYzMTogY2hlY2tpbmcgaWYgbGludXgga2J1aWxkIHJlcXVp
cmVzIEVYVFJBX0NGTEFHUwptYWtlIC1DIC91c3Ivc3JjL2xpbnV4IE09L2RhdGExL29wZW5hZnMt
MS42LjIwLjEvY29uZnRlc3QuZGlyIG1vZHVsZXMgS0JVSUxEX1ZFUkJPU0U9MQptYWtlOiBFbnRl
cmluZyBkaXJlY3RvcnkgJy91c3Ivc3JjL2xpbnV4LTQuNC4zNi04Jwp0ZXN0IC1lIGluY2x1ZGUv
Z2VuZXJhdGVkL2F1dG9jb25mLmggLWEgLWUgaW5jbHVkZS9jb25maWcvYXV0by5jb25mIHx8ICgJ
CVwKZWNobyA+JjI7CQkJCQkJCVwKZWNobyA+JjIgIiAgRVJST1I6IEtlcm5lbCBjb25maWd1cmF0
aW9uIGlzIGludmFsaWQuIjsJCVwKZWNobyA+JjIgIiAgICAgICAgIGluY2x1ZGUvZ2VuZXJhdGVk
L2F1dG9jb25mLmggb3IgaW5jbHVkZS9jb25maWcvYXV0by5jb25mIGFyZSBtaXNzaW5nLiI7XApl
Y2hvID4mMiAiICAgICAgICAgUnVuICdtYWtlIG9sZGNvbmZpZyAmJiBtYWtlIHByZXBhcmUnIG9u
IGtlcm5lbCBzcmMgdG8gZml4IGl0LiI7CVwKZWNobyA+JjIgOwkJCQkJCQlcCi9iaW4vZmFsc2Up
Cm1rZGlyIC1wIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci8udG1wX3ZlcnNp
b25zIDsgcm0gLWYgL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyLy50bXBfdmVy
c2lvbnMvKgptYWtlIC1mIC4vc2NyaXB0cy9NYWtlZmlsZS5idWlsZCBvYmo9L2RhdGExL29wZW5h
ZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyCk1ha2VmaWxlOjE0Mjg6IHJlY2lwZSBmb3IgdGFyZ2V0
ICdfbW9kdWxlXy9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpcicgZmFpbGVkCm1h
a2U6IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL3NyYy9saW51eC00LjQuMzYtOCcKc2NyaXB0cy9N
YWtlZmlsZS5idWlsZDo0OTogKioqIENGTEFHUyB3YXMgY2hhbmdlZCBpbiAiL2RhdGExL29wZW5h
ZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyL01ha2VmaWxlIi4gRml4IGl0IHRvIHVzZSBjY2ZsYWdz
LXkuICBTdG9wLgptYWtlOiAqKiogW19tb2R1bGVfL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29u
ZnRlc3QuZGlyXSBFcnJvciAyCmNvbmZpZ3VyZTogZmFpbGVkIHVzaW5nIE1ha2VmaWxlOgp8IENG
TEFHUyArPSAtV2FsbAp8IAp8IG9iai1tICs9IGNvbmZ0ZXN0Lm8KY29uZmlndXJlOiBhbmQgcHJv
Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l
IFBBQ0tBR0VfTkFNRSAiT3BlbkFGUyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAib3BlbmFm
cyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMS42LjIwLjEiCnwgI2RlZmluZSBQQUNLQUdF
X1NUUklORyAiT3BlbkFGUyAxLjYuMjAuMSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIi
CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAib3BlbmFmcyIKfCAj
ZGVmaW5lIFZFUlNJT04gIjEuNi4yMC4xIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVm
aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm
aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBI
QVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVf
SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J
U1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug
MQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U
SUNTIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIFlZVEVYVF9QT0lOVEVS
IDEKfCAjZGVmaW5lIEVORElBTkVTU19JTl9TWVNfUEFSQU1fSCAxCnwgI2RlZmluZSBQUklOVEZf
VEFLRVNfWl9MRU4gMQp8IC8qIGVuZCBjb25mZGVmcy5oICovCnwgI2luY2x1ZGUgPGxpbnV4L21v
ZHVsZS5oPgp8ICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgp8ICNpbmNsdWRlIDxsaW51eC9mcy5o
Pgp8IAp8IHZvaWQgY29uZnRlc3Qodm9pZCkKfCB7CnwgCnwgfQp8IAp8IE1PRFVMRV9MSUNFTlNF
KCJodHRwOi8vd3d3Lm9wZW5hZnMub3JnL2RsL2xpY2Vuc2UxMC5odG1sIik7CmNvbmZpZ3VyZTo3
NzAzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NzcwNjogY2hlY2tpbmcgZm9yIGxpbnV4IGtlcm5l
bCBtb2R1bGUgYnVpbGQgd29ya3MKbWFrZSAtQyAvdXNyL3NyYy9saW51eCBNPS9kYXRhMS9vcGVu
YWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpciBtb2R1bGVzIEtCVUlMRF9WRVJCT1NFPTEKbWFrZTog
RW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL3NyYy9saW51eC00LjQuMzYtOCcKdGVzdCAtZSBpbmNs
dWRlL2dlbmVyYXRlZC9hdXRvY29uZi5oIC1hIC1lIGluY2x1ZGUvY29uZmlnL2F1dG8uY29uZiB8
fCAoCQlcCmVjaG8gPiYyOwkJCQkJCQlcCmVjaG8gPiYyICIgIEVSUk9SOiBLZXJuZWwgY29uZmln
dXJhdGlvbiBpcyBpbnZhbGlkLiI7CQlcCmVjaG8gPiYyICIgICAgICAgICBpbmNsdWRlL2dlbmVy
YXRlZC9hdXRvY29uZi5oIG9yIGluY2x1ZGUvY29uZmlnL2F1dG8uY29uZiBhcmUgbWlzc2luZy4i
O1wKZWNobyA+JjIgIiAgICAgICAgIFJ1biAnbWFrZSBvbGRjb25maWcgJiYgbWFrZSBwcmVwYXJl
JyBvbiBrZXJuZWwgc3JjIHRvIGZpeCBpdC4iOwlcCmVjaG8gPiYyIDsJCQkJCQkJXAovYmluL2Zh
bHNlKQpta2RpciAtcCAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvLnRtcF92
ZXJzaW9ucyA7IHJtIC1mIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci8udG1w
X3ZlcnNpb25zLyoKbWFrZSAtZiAuL3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQgb2JqPS9kYXRhMS9v
cGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpcgogIGdjYyAtV3AsLU1ELC9kYXRhMS9vcGVuYWZz
LTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci8uY29uZnRlc3Quby5kICAtbm9zdGRpbmMgLWlzeXN0ZW0g
L3Vzci9saWI2NC9nY2MveDg2XzY0LXN1c2UtbGludXgvNC44L2luY2x1ZGUgLUkuL2FyY2gveDg2
L2luY2x1ZGUgLUlhcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpIC1JYXJjaC94ODYvaW5j
bHVkZS9nZW5lcmF0ZWQgIC1JaW5jbHVkZSAtSS4vYXJjaC94ODYvaW5jbHVkZS91YXBpIC1JYXJj
aC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaSAtSS4vaW5jbHVkZS91YXBpIC1JaW5jbHVkZS9n
ZW5lcmF0ZWQvdWFwaSAtaW5jbHVkZSAuL2luY2x1ZGUvbGludXgva2NvbmZpZy5oIC1EX19LRVJO
RUxfXyAtV2FsbCAtV3VuZGVmIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVduby10cmlncmFwaHMgLWZu
by1zdHJpY3QtYWxpYXNpbmcgLWZuby1jb21tb24gLVdlcnJvci1pbXBsaWNpdC1mdW5jdGlvbi1k
ZWNsYXJhdGlvbiAtV25vLWZvcm1hdC1zZWN1cml0eSAtc3RkPWdudTg5IC1mbm8tUElFIC1tbm8t
c3NlIC1tbm8tbW14IC1tbm8tc3NlMiAtbW5vLTNkbm93IC1tbm8tYXZ4IC1tNjQgLWZhbGlnbi1q
dW1wcz0xIC1mYWxpZ24tbG9vcHM9MSAtbW5vLTgwMzg3IC1tbm8tZnAtcmV0LWluLTM4NyAtbXBy
ZWZlcnJlZC1zdGFjay1ib3VuZGFyeT0zIC1tdHVuZT1nZW5lcmljIC1tbm8tcmVkLXpvbmUgLW1j
bW9kZWw9a2VybmVsIC1mdW5pdC1hdC1hLXRpbWUgLW1hY2N1bXVsYXRlLW91dGdvaW5nLWFyZ3Mg
LURDT05GSUdfWDg2X1gzMl9BQkkgLURDT05GSUdfQVNfQ0ZJPTEgLURDT05GSUdfQVNfQ0ZJX1NJ
R05BTF9GUkFNRT0xIC1EQ09ORklHX0FTX0NGSV9TRUNUSU9OUz0xIC1EQ09ORklHX0FTX0ZYU0FW
RVE9MSAtRENPTkZJR19BU19TU1NFMz0xIC1EQ09ORklHX0FTX0NSQzMyPTEgLURDT05GSUdfQVNf
QVZYPTEgLURDT05GSUdfQVNfQVZYMj0xIC1EQ09ORklHX0FTX1NIQTFfTkk9MSAtRENPTkZJR19B
U19TSEEyNTZfTkk9MSAtcGlwZSAtV25vLXNpZ24tY29tcGFyZSAtZm5vLWRlbGV0ZS1udWxsLXBv
aW50ZXItY2hlY2tzIC1Xbm8tbWF5YmUtdW5pbml0aWFsaXplZCAtTzIgLS1wYXJhbT1hbGxvdy1z
dG9yZS1kYXRhLXJhY2VzPTAgLVdmcmFtZS1sYXJnZXItdGhhbj0yMDQ4IC1mc3RhY2stcHJvdGVj
dG9yIC1Xbm8tdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUgLWZuby12YXItdHJhY2tpbmctYXNzaWdu
bWVudHMgLWZhc3luY2hyb25vdXMtdW53aW5kLXRhYmxlcyAtZyAtZ2R3YXJmLTQgLXBnIC1tZmVu
dHJ5IC1EQ0NfVVNJTkdfRkVOVFJZIC1mbm8taW5saW5lLWZ1bmN0aW9ucy1jYWxsZWQtb25jZSAt
V2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV25vLXBvaW50ZXItc2lnbiAtZm5vLXN0cmlj
dC1vdmVyZmxvdyAtZmNvbnNlcnZlLXN0YWNrIC1XZXJyb3I9aW1wbGljaXQtaW50IC1XZXJyb3I9
c3RyaWN0LXByb3RvdHlwZXMgLURDQ19IQVZFX0FTTV9HT1RPICAtRE1PRFVMRSAgLUQiS0JVSUxE
X1NUUihzKT0jcyIgLUQiS0JVSUxEX0JBU0VOQU1FPUtCVUlMRF9TVFIoY29uZnRlc3QpIiAgLUQi
S0JVSUxEX01PRE5BTUU9S0JVSUxEX1NUUihjb25mdGVzdCkiIC1jIC1vIC9kYXRhMS9vcGVuYWZz
LTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci8udG1wX2NvbmZ0ZXN0Lm8gL2RhdGExL29wZW5hZnMtMS42
LjIwLjEvY29uZnRlc3QuZGlyL2NvbmZ0ZXN0LmMKICBpZiBbICItcGciID0gIi1wZyIgXTsgdGhl
biBpZiBbIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci9jb25mdGVzdC5vICE9
ICJzY3JpcHRzL21vZC9lbXB0eS5vIiBdOyB0aGVuIC4vc2NyaXB0cy9yZWNvcmRtY291bnQgICIv
ZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvY29uZnRlc3QubyI7IGZpOyBmaTsK
KGNhdCAvZGV2L251bGw7ICAgZWNobyBrZXJuZWwvL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29u
ZnRlc3QuZGlyL2NvbmZ0ZXN0LmtvOykgPiAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVz
dC5kaXIvbW9kdWxlcy5vcmRlcgptYWtlIC1mIC4vc2NyaXB0cy9NYWtlZmlsZS5tb2Rwb3N0CiAg
ZmluZCAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvLnRtcF92ZXJzaW9ucyAt
bmFtZSAnKi5tb2QnIHwgeGFyZ3MgLXIgZ3JlcCAtaCAnXC5rbyQnIHwgc29ydCAtdSB8IHNlZCAn
cy9cLmtvJC8uby8nIHwgc2NyaXB0cy9tb2QvbW9kcG9zdCAtbSAtYSAtaSAuL01vZHVsZS5zeW12
ZXJzIC1JIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci9Nb2R1bGUuc3ltdmVy
cyAgLW8gL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyL01vZHVsZS5zeW12ZXJz
ICAgLXcgICAtcyAtVCAtCiAgZ2NjIC1XcCwtTUQsL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29u
ZnRlc3QuZGlyLy5jb25mdGVzdC5tb2Quby5kICAtbm9zdGRpbmMgLWlzeXN0ZW0gL3Vzci9saWI2
NC9nY2MveDg2XzY0LXN1c2UtbGludXgvNC44L2luY2x1ZGUgLUkuL2FyY2gveDg2L2luY2x1ZGUg
LUlhcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpIC1JYXJjaC94ODYvaW5jbHVkZS9nZW5l
cmF0ZWQgIC1JaW5jbHVkZSAtSS4vYXJjaC94ODYvaW5jbHVkZS91YXBpIC1JYXJjaC94ODYvaW5j
bHVkZS9nZW5lcmF0ZWQvdWFwaSAtSS4vaW5jbHVkZS91YXBpIC1JaW5jbHVkZS9nZW5lcmF0ZWQv
dWFwaSAtaW5jbHVkZSAuL2luY2x1ZGUvbGludXgva2NvbmZpZy5oIC1EX19LRVJORUxfXyAtV2Fs
bCAtV3VuZGVmIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVduby10cmlncmFwaHMgLWZuby1zdHJpY3Qt
YWxpYXNpbmcgLWZuby1jb21tb24gLVdlcnJvci1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlv
biAtV25vLWZvcm1hdC1zZWN1cml0eSAtc3RkPWdudTg5IC1mbm8tUElFIC1tbm8tc3NlIC1tbm8t
bW14IC1tbm8tc3NlMiAtbW5vLTNkbm93IC1tbm8tYXZ4IC1tNjQgLWZhbGlnbi1qdW1wcz0xIC1m
YWxpZ24tbG9vcHM9MSAtbW5vLTgwMzg3IC1tbm8tZnAtcmV0LWluLTM4NyAtbXByZWZlcnJlZC1z
dGFjay1ib3VuZGFyeT0zIC1tdHVuZT1nZW5lcmljIC1tbm8tcmVkLXpvbmUgLW1jbW9kZWw9a2Vy
bmVsIC1mdW5pdC1hdC1hLXRpbWUgLW1hY2N1bXVsYXRlLW91dGdvaW5nLWFyZ3MgLURDT05GSUdf
WDg2X1gzMl9BQkkgLURDT05GSUdfQVNfQ0ZJPTEgLURDT05GSUdfQVNfQ0ZJX1NJR05BTF9GUkFN
RT0xIC1EQ09ORklHX0FTX0NGSV9TRUNUSU9OUz0xIC1EQ09ORklHX0FTX0ZYU0FWRVE9MSAtRENP
TkZJR19BU19TU1NFMz0xIC1EQ09ORklHX0FTX0NSQzMyPTEgLURDT05GSUdfQVNfQVZYPTEgLURD
T05GSUdfQVNfQVZYMj0xIC1EQ09ORklHX0FTX1NIQTFfTkk9MSAtRENPTkZJR19BU19TSEEyNTZf
Tkk9MSAtcGlwZSAtV25vLXNpZ24tY29tcGFyZSAtZm5vLWRlbGV0ZS1udWxsLXBvaW50ZXItY2hl
Y2tzIC1Xbm8tbWF5YmUtdW5pbml0aWFsaXplZCAtTzIgLS1wYXJhbT1hbGxvdy1zdG9yZS1kYXRh
LXJhY2VzPTAgLVdmcmFtZS1sYXJnZXItdGhhbj0yMDQ4IC1mc3RhY2stcHJvdGVjdG9yIC1Xbm8t
dW51c2VkLWJ1dC1zZXQtdmFyaWFibGUgLWZuby12YXItdHJhY2tpbmctYXNzaWdubWVudHMgLWZh
c3luY2hyb25vdXMtdW53aW5kLXRhYmxlcyAtZyAtZ2R3YXJmLTQgLXBnIC1tZmVudHJ5IC1EQ0Nf
VVNJTkdfRkVOVFJZIC1mbm8taW5saW5lLWZ1bmN0aW9ucy1jYWxsZWQtb25jZSAtV2RlY2xhcmF0
aW9uLWFmdGVyLXN0YXRlbWVudCAtV25vLXBvaW50ZXItc2lnbiAtZm5vLXN0cmljdC1vdmVyZmxv
dyAtZmNvbnNlcnZlLXN0YWNrIC1XZXJyb3I9aW1wbGljaXQtaW50IC1XZXJyb3I9c3RyaWN0LXBy
b3RvdHlwZXMgLURDQ19IQVZFX0FTTV9HT1RPICAtRCJLQlVJTERfU1RSKHMpPSNzIiAtRCJLQlVJ
TERfQkFTRU5BTUU9S0JVSUxEX1NUUihjb25mdGVzdC5tb2QpIiAgLUQiS0JVSUxEX01PRE5BTUU9
S0JVSUxEX1NUUihjb25mdGVzdCkiIC1ETU9EVUxFICAtYyAtbyAvZGF0YTEvb3BlbmFmcy0xLjYu
MjAuMS9jb25mdGVzdC5kaXIvY29uZnRlc3QubW9kLm8gL2RhdGExL29wZW5hZnMtMS42LjIwLjEv
Y29uZnRlc3QuZGlyL2NvbmZ0ZXN0Lm1vZC5jCiAgbGQgLXIgLW0gZWxmX3g4Nl82NCAtVCAuL3Nj
cmlwdHMvbW9kdWxlLWNvbW1vbi5sZHMgLS1idWlsZC1pZCAgLW8gL2RhdGExL29wZW5hZnMtMS42
LjIwLjEvY29uZnRlc3QuZGlyL2NvbmZ0ZXN0LmtvIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2Nv
bmZ0ZXN0LmRpci9jb25mdGVzdC5vIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRp
ci9jb25mdGVzdC5tb2QubwptYWtlOiBMZWF2aW5nIGRpcmVjdG9yeSAnL3Vzci9zcmMvbGludXgt
NC40LjM2LTgnCmNvbmZpZ3VyZTo3Nzg1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6Nzc4OTogY2hl
Y2tpbmcgb3BlcmF0aW9uIGZvbGxvd19saW5rIGluIGlub2RlX29wZXJhdGlvbnMKbWFrZSAtQyAv
dXNyL3NyYy9saW51eCBNPS9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpciBtb2R1
bGVzIEtCVUlMRF9WRVJCT1NFPTEKbWFrZTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL3NyYy9s
aW51eC00LjQuMzYtOCcKdGVzdCAtZSBpbmNsdWRlL2dlbmVyYXRlZC9hdXRvY29uZi5oIC1hIC1l
IGluY2x1ZGUvY29uZmlnL2F1dG8uY29uZiB8fCAoCQlcCmVjaG8gPiYyOwkJCQkJCQlcCmVjaG8g
PiYyICIgIEVSUk9SOiBLZXJuZWwgY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkLiI7CQlcCmVjaG8g
PiYyICIgICAgICAgICBpbmNsdWRlL2dlbmVyYXRlZC9hdXRvY29uZi5oIG9yIGluY2x1ZGUvY29u
ZmlnL2F1dG8uY29uZiBhcmUgbWlzc2luZy4iO1wKZWNobyA+JjIgIiAgICAgICAgIFJ1biAnbWFr
ZSBvbGRjb25maWcgJiYgbWFrZSBwcmVwYXJlJyBvbiBrZXJuZWwgc3JjIHRvIGZpeCBpdC4iOwlc
CmVjaG8gPiYyIDsJCQkJCQkJXAovYmluL2ZhbHNlKQpta2RpciAtcCAvZGF0YTEvb3BlbmFmcy0x
LjYuMjAuMS9jb25mdGVzdC5kaXIvLnRtcF92ZXJzaW9ucyA7IHJtIC1mIC9kYXRhMS9vcGVuYWZz
LTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci8udG1wX3ZlcnNpb25zLyoKbWFrZSAtZiAuL3NjcmlwdHMv
TWFrZWZpbGUuYnVpbGQgb2JqPS9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpcgog
IGdjYyAtV3AsLU1ELC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci8uY29uZnRl
c3Quby5kICAtbm9zdGRpbmMgLWlzeXN0ZW0gL3Vzci9saWI2NC9nY2MveDg2XzY0LXN1c2UtbGlu
dXgvNC44L2luY2x1ZGUgLUkuL2FyY2gveDg2L2luY2x1ZGUgLUlhcmNoL3g4Ni9pbmNsdWRlL2dl
bmVyYXRlZC91YXBpIC1JYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQgIC1JaW5jbHVkZSAtSS4v
YXJjaC94ODYvaW5jbHVkZS91YXBpIC1JYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaSAt
SS4vaW5jbHVkZS91YXBpIC1JaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaSAtaW5jbHVkZSAuL2luY2x1
ZGUvbGludXgva2NvbmZpZy5oIC1EX19LRVJORUxfXyAtV2FsbCAtV3VuZGVmIC1Xc3RyaWN0LXBy
b3RvdHlwZXMgLVduby10cmlncmFwaHMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1jb21tb24g
LVdlcnJvci1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtV25vLWZvcm1hdC1zZWN1cml0
eSAtc3RkPWdudTg5IC1mbm8tUElFIC1tbm8tc3NlIC1tbm8tbW14IC1tbm8tc3NlMiAtbW5vLTNk
bm93IC1tbm8tYXZ4IC1tNjQgLWZhbGlnbi1qdW1wcz0xIC1mYWxpZ24tbG9vcHM9MSAtbW5vLTgw
Mzg3IC1tbm8tZnAtcmV0LWluLTM4NyAtbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT0zIC1tdHVu
ZT1nZW5lcmljIC1tbm8tcmVkLXpvbmUgLW1jbW9kZWw9a2VybmVsIC1mdW5pdC1hdC1hLXRpbWUg
LW1hY2N1bXVsYXRlLW91dGdvaW5nLWFyZ3MgLURDT05GSUdfWDg2X1gzMl9BQkkgLURDT05GSUdf
QVNfQ0ZJPTEgLURDT05GSUdfQVNfQ0ZJX1NJR05BTF9GUkFNRT0xIC1EQ09ORklHX0FTX0NGSV9T
RUNUSU9OUz0xIC1EQ09ORklHX0FTX0ZYU0FWRVE9MSAtRENPTkZJR19BU19TU1NFMz0xIC1EQ09O
RklHX0FTX0NSQzMyPTEgLURDT05GSUdfQVNfQVZYPTEgLURDT05GSUdfQVNfQVZYMj0xIC1EQ09O
RklHX0FTX1NIQTFfTkk9MSAtRENPTkZJR19BU19TSEEyNTZfTkk9MSAtcGlwZSAtV25vLXNpZ24t
Y29tcGFyZSAtZm5vLWRlbGV0ZS1udWxsLXBvaW50ZXItY2hlY2tzIC1Xbm8tbWF5YmUtdW5pbml0
aWFsaXplZCAtTzIgLS1wYXJhbT1hbGxvdy1zdG9yZS1kYXRhLXJhY2VzPTAgLVdmcmFtZS1sYXJn
ZXItdGhhbj0yMDQ4IC1mc3RhY2stcHJvdGVjdG9yIC1Xbm8tdW51c2VkLWJ1dC1zZXQtdmFyaWFi
bGUgLWZuby12YXItdHJhY2tpbmctYXNzaWdubWVudHMgLWZhc3luY2hyb25vdXMtdW53aW5kLXRh
YmxlcyAtZyAtZ2R3YXJmLTQgLXBnIC1tZmVudHJ5IC1EQ0NfVVNJTkdfRkVOVFJZIC1mbm8taW5s
aW5lLWZ1bmN0aW9ucy1jYWxsZWQtb25jZSAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAt
V25vLXBvaW50ZXItc2lnbiAtZm5vLXN0cmljdC1vdmVyZmxvdyAtZmNvbnNlcnZlLXN0YWNrIC1X
ZXJyb3I9aW1wbGljaXQtaW50IC1XZXJyb3I9c3RyaWN0LXByb3RvdHlwZXMgLURDQ19IQVZFX0FT
TV9HT1RPIC1XZXJyb3IgIC1ETU9EVUxFICAtRCJLQlVJTERfU1RSKHMpPSNzIiAtRCJLQlVJTERf
QkFTRU5BTUU9S0JVSUxEX1NUUihjb25mdGVzdCkiICAtRCJLQlVJTERfTU9ETkFNRT1LQlVJTERf
U1RSKGNvbmZ0ZXN0KSIgLWMgLW8gL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGly
Ly50bXBfY29uZnRlc3QubyAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvY29u
ZnRlc3QuYwogIGlmIFsgIi1wZyIgPSAiLXBnIiBdOyB0aGVuIGlmIFsgL2RhdGExL29wZW5hZnMt
MS42LjIwLjEvY29uZnRlc3QuZGlyL2NvbmZ0ZXN0Lm8gIT0gInNjcmlwdHMvbW9kL2VtcHR5Lm8i
IF07IHRoZW4gLi9zY3JpcHRzL3JlY29yZG1jb3VudCAgIi9kYXRhMS9vcGVuYWZzLTEuNi4yMC4x
L2NvbmZ0ZXN0LmRpci9jb25mdGVzdC5vIjsgZmk7IGZpOwooY2F0IC9kZXYvbnVsbDsgICBlY2hv
IGtlcm5lbC8vZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvY29uZnRlc3Qua287
KSA+IC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci9tb2R1bGVzLm9yZGVyCm1h
a2UgLWYgLi9zY3JpcHRzL01ha2VmaWxlLm1vZHBvc3QKICBmaW5kIC9kYXRhMS9vcGVuYWZzLTEu
Ni4yMC4xL2NvbmZ0ZXN0LmRpci8udG1wX3ZlcnNpb25zIC1uYW1lICcqLm1vZCcgfCB4YXJncyAt
ciBncmVwIC1oICdcLmtvJCcgfCBzb3J0IC11IHwgc2VkICdzL1wua28kLy5vLycgfCBzY3JpcHRz
L21vZC9tb2Rwb3N0IC1tIC1hIC1pIC4vTW9kdWxlLnN5bXZlcnMgLUkgL2RhdGExL29wZW5hZnMt
MS42LjIwLjEvY29uZnRlc3QuZGlyL01vZHVsZS5zeW12ZXJzICAtbyAvZGF0YTEvb3BlbmFmcy0x
LjYuMjAuMS9jb25mdGVzdC5kaXIvTW9kdWxlLnN5bXZlcnMgICAtdyAgIC1zIC1UIC0KICBnY2Mg
LVdwLC1NRCwvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvLmNvbmZ0ZXN0Lm1v
ZC5vLmQgIC1ub3N0ZGluYyAtaXN5c3RlbSAvdXNyL2xpYjY0L2djYy94ODZfNjQtc3VzZS1saW51
eC80LjgvaW5jbHVkZSAtSS4vYXJjaC94ODYvaW5jbHVkZSAtSWFyY2gveDg2L2luY2x1ZGUvZ2Vu
ZXJhdGVkL3VhcGkgLUlhcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZCAgLUlpbmNsdWRlIC1JLi9h
cmNoL3g4Ni9pbmNsdWRlL3VhcGkgLUlhcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpIC1J
Li9pbmNsdWRlL3VhcGkgLUlpbmNsdWRlL2dlbmVyYXRlZC91YXBpIC1pbmNsdWRlIC4vaW5jbHVk
ZS9saW51eC9rY29uZmlnLmggLURfX0tFUk5FTF9fIC1XYWxsIC1XdW5kZWYgLVdzdHJpY3QtcHJv
dG90eXBlcyAtV25vLXRyaWdyYXBocyAtZm5vLXN0cmljdC1hbGlhc2luZyAtZm5vLWNvbW1vbiAt
V2Vycm9yLWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uIC1Xbm8tZm9ybWF0LXNlY3VyaXR5
IC1zdGQ9Z251ODkgLWZuby1QSUUgLW1uby1zc2UgLW1uby1tbXggLW1uby1zc2UyIC1tbm8tM2Ru
b3cgLW1uby1hdnggLW02NCAtZmFsaWduLWp1bXBzPTEgLWZhbGlnbi1sb29wcz0xIC1tbm8tODAz
ODcgLW1uby1mcC1yZXQtaW4tMzg3IC1tcHJlZmVycmVkLXN0YWNrLWJvdW5kYXJ5PTMgLW10dW5l
PWdlbmVyaWMgLW1uby1yZWQtem9uZSAtbWNtb2RlbD1rZXJuZWwgLWZ1bml0LWF0LWEtdGltZSAt
bWFjY3VtdWxhdGUtb3V0Z29pbmctYXJncyAtRENPTkZJR19YODZfWDMyX0FCSSAtRENPTkZJR19B
U19DRkk9MSAtRENPTkZJR19BU19DRklfU0lHTkFMX0ZSQU1FPTEgLURDT05GSUdfQVNfQ0ZJX1NF
Q1RJT05TPTEgLURDT05GSUdfQVNfRlhTQVZFUT0xIC1EQ09ORklHX0FTX1NTU0UzPTEgLURDT05G
SUdfQVNfQ1JDMzI9MSAtRENPTkZJR19BU19BVlg9MSAtRENPTkZJR19BU19BVlgyPTEgLURDT05G
SUdfQVNfU0hBMV9OST0xIC1EQ09ORklHX0FTX1NIQTI1Nl9OST0xIC1waXBlIC1Xbm8tc2lnbi1j
b21wYXJlIC1mbm8tZGVsZXRlLW51bGwtcG9pbnRlci1jaGVja3MgLVduby1tYXliZS11bmluaXRp
YWxpemVkIC1PMiAtLXBhcmFtPWFsbG93LXN0b3JlLWRhdGEtcmFjZXM9MCAtV2ZyYW1lLWxhcmdl
ci10aGFuPTIwNDggLWZzdGFjay1wcm90ZWN0b3IgLVduby11bnVzZWQtYnV0LXNldC12YXJpYWJs
ZSAtZm5vLXZhci10cmFja2luZy1hc3NpZ25tZW50cyAtZmFzeW5jaHJvbm91cy11bndpbmQtdGFi
bGVzIC1nIC1nZHdhcmYtNCAtcGcgLW1mZW50cnkgLURDQ19VU0lOR19GRU5UUlkgLWZuby1pbmxp
bmUtZnVuY3Rpb25zLWNhbGxlZC1vbmNlIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IC1X
bm8tcG9pbnRlci1zaWduIC1mbm8tc3RyaWN0LW92ZXJmbG93IC1mY29uc2VydmUtc3RhY2sgLVdl
cnJvcj1pbXBsaWNpdC1pbnQgLVdlcnJvcj1zdHJpY3QtcHJvdG90eXBlcyAtRENDX0hBVkVfQVNN
X0dPVE8gLVdlcnJvciAgLUQiS0JVSUxEX1NUUihzKT0jcyIgLUQiS0JVSUxEX0JBU0VOQU1FPUtC
VUlMRF9TVFIoY29uZnRlc3QubW9kKSIgIC1EIktCVUlMRF9NT0ROQU1FPUtCVUlMRF9TVFIoY29u
ZnRlc3QpIiAtRE1PRFVMRSAgLWMgLW8gL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3Qu
ZGlyL2NvbmZ0ZXN0Lm1vZC5vIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci9j
b25mdGVzdC5tb2QuYwogIGxkIC1yIC1tIGVsZl94ODZfNjQgLVQgLi9zY3JpcHRzL21vZHVsZS1j
b21tb24ubGRzIC0tYnVpbGQtaWQgIC1vIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0
LmRpci9jb25mdGVzdC5rbyAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvY29u
ZnRlc3QubyAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvY29uZnRlc3QubW9k
Lm8KbWFrZTogTGVhdmluZyBkaXJlY3RvcnkgJy91c3Ivc3JjL2xpbnV4LTQuNC4zNi04Jwpjb25m
aWd1cmU6Nzg2NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjc4NzM6IGNoZWNraW5nIG9wZXJhdGlv
biBwdXRfbGluayBpbiBpbm9kZV9vcGVyYXRpb25zCm1ha2UgLUMgL3Vzci9zcmMvbGludXggTT0v
ZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIgbW9kdWxlcyBLQlVJTERfVkVSQk9T
RT0xCm1ha2U6IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Vzci9zcmMvbGludXgtNC40LjM2LTgnCnRl
c3QgLWUgaW5jbHVkZS9nZW5lcmF0ZWQvYXV0b2NvbmYuaCAtYSAtZSBpbmNsdWRlL2NvbmZpZy9h
dXRvLmNvbmYgfHwgKAkJXAplY2hvID4mMjsJCQkJCQkJXAplY2hvID4mMiAiICBFUlJPUjogS2Vy
bmVsIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC4iOwkJXAplY2hvID4mMiAiICAgICAgICAgaW5j
bHVkZS9nZW5lcmF0ZWQvYXV0b2NvbmYuaCBvciBpbmNsdWRlL2NvbmZpZy9hdXRvLmNvbmYgYXJl
IG1pc3NpbmcuIjtcCmVjaG8gPiYyICIgICAgICAgICBSdW4gJ21ha2Ugb2xkY29uZmlnICYmIG1h
a2UgcHJlcGFyZScgb24ga2VybmVsIHNyYyB0byBmaXggaXQuIjsJXAplY2hvID4mMiA7CQkJCQkJ
CVwKL2Jpbi9mYWxzZSkKbWtkaXIgLXAgL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3Qu
ZGlyLy50bXBfdmVyc2lvbnMgOyBybSAtZiAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVz
dC5kaXIvLnRtcF92ZXJzaW9ucy8qCm1ha2UgLWYgLi9zY3JpcHRzL01ha2VmaWxlLmJ1aWxkIG9i
aj0vZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIKICBnY2MgLVdwLC1NRCwvZGF0
YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvLmNvbmZ0ZXN0Lm8uZCAgLW5vc3RkaW5j
IC1pc3lzdGVtIC91c3IvbGliNjQvZ2NjL3g4Nl82NC1zdXNlLWxpbnV4LzQuOC9pbmNsdWRlIC1J
Li9hcmNoL3g4Ni9pbmNsdWRlIC1JYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaSAtSWFy
Y2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkICAtSWluY2x1ZGUgLUkuL2FyY2gveDg2L2luY2x1ZGUv
dWFwaSAtSWFyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkgLUkuL2luY2x1ZGUvdWFwaSAt
SWluY2x1ZGUvZ2VuZXJhdGVkL3VhcGkgLWluY2x1ZGUgLi9pbmNsdWRlL2xpbnV4L2tjb25maWcu
aCAtRF9fS0VSTkVMX18gLVdhbGwgLVd1bmRlZiAtV3N0cmljdC1wcm90b3R5cGVzIC1Xbm8tdHJp
Z3JhcGhzIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tY29tbW9uIC1XZXJyb3ItaW1wbGljaXQt
ZnVuY3Rpb24tZGVjbGFyYXRpb24gLVduby1mb3JtYXQtc2VjdXJpdHkgLXN0ZD1nbnU4OSAtZm5v
LVBJRSAtbW5vLXNzZSAtbW5vLW1teCAtbW5vLXNzZTIgLW1uby0zZG5vdyAtbW5vLWF2eCAtbTY0
IC1mYWxpZ24tanVtcHM9MSAtZmFsaWduLWxvb3BzPTEgLW1uby04MDM4NyAtbW5vLWZwLXJldC1p
bi0zODcgLW1wcmVmZXJyZWQtc3RhY2stYm91bmRhcnk9MyAtbXR1bmU9Z2VuZXJpYyAtbW5vLXJl
ZC16b25lIC1tY21vZGVsPWtlcm5lbCAtZnVuaXQtYXQtYS10aW1lIC1tYWNjdW11bGF0ZS1vdXRn
b2luZy1hcmdzIC1EQ09ORklHX1g4Nl9YMzJfQUJJIC1EQ09ORklHX0FTX0NGST0xIC1EQ09ORklH
X0FTX0NGSV9TSUdOQUxfRlJBTUU9MSAtRENPTkZJR19BU19DRklfU0VDVElPTlM9MSAtRENPTkZJ
R19BU19GWFNBVkVRPTEgLURDT05GSUdfQVNfU1NTRTM9MSAtRENPTkZJR19BU19DUkMzMj0xIC1E
Q09ORklHX0FTX0FWWD0xIC1EQ09ORklHX0FTX0FWWDI9MSAtRENPTkZJR19BU19TSEExX05JPTEg
LURDT05GSUdfQVNfU0hBMjU2X05JPTEgLXBpcGUgLVduby1zaWduLWNvbXBhcmUgLWZuby1kZWxl
dGUtbnVsbC1wb2ludGVyLWNoZWNrcyAtV25vLW1heWJlLXVuaW5pdGlhbGl6ZWQgLU8yIC0tcGFy
YW09YWxsb3ctc3RvcmUtZGF0YS1yYWNlcz0wIC1XZnJhbWUtbGFyZ2VyLXRoYW49MjA0OCAtZnN0
YWNrLXByb3RlY3RvciAtV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlIC1mbm8tdmFyLXRyYWNr
aW5nLWFzc2lnbm1lbnRzIC1mYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXMgLWcgLWdkd2FyZi00
IC1wZyAtbWZlbnRyeSAtRENDX1VTSU5HX0ZFTlRSWSAtZm5vLWlubGluZS1mdW5jdGlvbnMtY2Fs
bGVkLW9uY2UgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVduby1wb2ludGVyLXNpZ24g
LWZuby1zdHJpY3Qtb3ZlcmZsb3cgLWZjb25zZXJ2ZS1zdGFjayAtV2Vycm9yPWltcGxpY2l0LWlu
dCAtV2Vycm9yPXN0cmljdC1wcm90b3R5cGVzIC1EQ0NfSEFWRV9BU01fR09UTyAtV2Vycm9yICAt
RE1PRFVMRSAgLUQiS0JVSUxEX1NUUihzKT0jcyIgLUQiS0JVSUxEX0JBU0VOQU1FPUtCVUlMRF9T
VFIoY29uZnRlc3QpIiAgLUQiS0JVSUxEX01PRE5BTUU9S0JVSUxEX1NUUihjb25mdGVzdCkiIC1j
IC1vIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci8udG1wX2NvbmZ0ZXN0Lm8g
L2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyL2NvbmZ0ZXN0LmMKICBpZiBbICIt
cGciID0gIi1wZyIgXTsgdGhlbiBpZiBbIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0
LmRpci9jb25mdGVzdC5vICE9ICJzY3JpcHRzL21vZC9lbXB0eS5vIiBdOyB0aGVuIC4vc2NyaXB0
cy9yZWNvcmRtY291bnQgICIvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvY29u
ZnRlc3QubyI7IGZpOyBmaTsKKGNhdCAvZGV2L251bGw7ICAgZWNobyBrZXJuZWwvL2RhdGExL29w
ZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyL2NvbmZ0ZXN0LmtvOykgPiAvZGF0YTEvb3BlbmFm
cy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvbW9kdWxlcy5vcmRlcgptYWtlIC1mIC4vc2NyaXB0cy9N
YWtlZmlsZS5tb2Rwb3N0CiAgZmluZCAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5k
aXIvLnRtcF92ZXJzaW9ucyAtbmFtZSAnKi5tb2QnIHwgeGFyZ3MgLXIgZ3JlcCAtaCAnXC5rbyQn
IHwgc29ydCAtdSB8IHNlZCAncy9cLmtvJC8uby8nIHwgc2NyaXB0cy9tb2QvbW9kcG9zdCAtbSAt
YSAtaSAuL01vZHVsZS5zeW12ZXJzIC1JIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0
LmRpci9Nb2R1bGUuc3ltdmVycyAgLW8gL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3Qu
ZGlyL01vZHVsZS5zeW12ZXJzICAgLXcgICAtcyAtVCAtCiAgZ2NjIC1XcCwtTUQsL2RhdGExL29w
ZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyLy5jb25mdGVzdC5tb2Quby5kICAtbm9zdGRpbmMg
LWlzeXN0ZW0gL3Vzci9saWI2NC9nY2MveDg2XzY0LXN1c2UtbGludXgvNC44L2luY2x1ZGUgLUku
L2FyY2gveDg2L2luY2x1ZGUgLUlhcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpIC1JYXJj
aC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQgIC1JaW5jbHVkZSAtSS4vYXJjaC94ODYvaW5jbHVkZS91
YXBpIC1JYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaSAtSS4vaW5jbHVkZS91YXBpIC1J
aW5jbHVkZS9nZW5lcmF0ZWQvdWFwaSAtaW5jbHVkZSAuL2luY2x1ZGUvbGludXgva2NvbmZpZy5o
IC1EX19LRVJORUxfXyAtV2FsbCAtV3VuZGVmIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVduby10cmln
cmFwaHMgLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1jb21tb24gLVdlcnJvci1pbXBsaWNpdC1m
dW5jdGlvbi1kZWNsYXJhdGlvbiAtV25vLWZvcm1hdC1zZWN1cml0eSAtc3RkPWdudTg5IC1mbm8t
UElFIC1tbm8tc3NlIC1tbm8tbW14IC1tbm8tc3NlMiAtbW5vLTNkbm93IC1tbm8tYXZ4IC1tNjQg
LWZhbGlnbi1qdW1wcz0xIC1mYWxpZ24tbG9vcHM9MSAtbW5vLTgwMzg3IC1tbm8tZnAtcmV0LWlu
LTM4NyAtbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT0zIC1tdHVuZT1nZW5lcmljIC1tbm8tcmVk
LXpvbmUgLW1jbW9kZWw9a2VybmVsIC1mdW5pdC1hdC1hLXRpbWUgLW1hY2N1bXVsYXRlLW91dGdv
aW5nLWFyZ3MgLURDT05GSUdfWDg2X1gzMl9BQkkgLURDT05GSUdfQVNfQ0ZJPTEgLURDT05GSUdf
QVNfQ0ZJX1NJR05BTF9GUkFNRT0xIC1EQ09ORklHX0FTX0NGSV9TRUNUSU9OUz0xIC1EQ09ORklH
X0FTX0ZYU0FWRVE9MSAtRENPTkZJR19BU19TU1NFMz0xIC1EQ09ORklHX0FTX0NSQzMyPTEgLURD
T05GSUdfQVNfQVZYPTEgLURDT05GSUdfQVNfQVZYMj0xIC1EQ09ORklHX0FTX1NIQTFfTkk9MSAt
RENPTkZJR19BU19TSEEyNTZfTkk9MSAtcGlwZSAtV25vLXNpZ24tY29tcGFyZSAtZm5vLWRlbGV0
ZS1udWxsLXBvaW50ZXItY2hlY2tzIC1Xbm8tbWF5YmUtdW5pbml0aWFsaXplZCAtTzIgLS1wYXJh
bT1hbGxvdy1zdG9yZS1kYXRhLXJhY2VzPTAgLVdmcmFtZS1sYXJnZXItdGhhbj0yMDQ4IC1mc3Rh
Y2stcHJvdGVjdG9yIC1Xbm8tdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUgLWZuby12YXItdHJhY2tp
bmctYXNzaWdubWVudHMgLWZhc3luY2hyb25vdXMtdW53aW5kLXRhYmxlcyAtZyAtZ2R3YXJmLTQg
LXBnIC1tZmVudHJ5IC1EQ0NfVVNJTkdfRkVOVFJZIC1mbm8taW5saW5lLWZ1bmN0aW9ucy1jYWxs
ZWQtb25jZSAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV25vLXBvaW50ZXItc2lnbiAt
Zm5vLXN0cmljdC1vdmVyZmxvdyAtZmNvbnNlcnZlLXN0YWNrIC1XZXJyb3I9aW1wbGljaXQtaW50
IC1XZXJyb3I9c3RyaWN0LXByb3RvdHlwZXMgLURDQ19IQVZFX0FTTV9HT1RPIC1XZXJyb3IgIC1E
IktCVUlMRF9TVFIocyk9I3MiIC1EIktCVUlMRF9CQVNFTkFNRT1LQlVJTERfU1RSKGNvbmZ0ZXN0
Lm1vZCkiICAtRCJLQlVJTERfTU9ETkFNRT1LQlVJTERfU1RSKGNvbmZ0ZXN0KSIgLURNT0RVTEUg
IC1jIC1vIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci9jb25mdGVzdC5tb2Qu
byAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvY29uZnRlc3QubW9kLmMKICBs
ZCAtciAtbSBlbGZfeDg2XzY0IC1UIC4vc2NyaXB0cy9tb2R1bGUtY29tbW9uLmxkcyAtLWJ1aWxk
LWlkICAtbyAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvY29uZnRlc3Qua28g
L2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyL2NvbmZ0ZXN0Lm8gL2RhdGExL29w
ZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyL2NvbmZ0ZXN0Lm1vZC5vCm1ha2U6IExlYXZpbmcg
ZGlyZWN0b3J5ICcvdXNyL3NyYy9saW51eC00LjQuMzYtOCcKY29uZmlndXJlOjc5NDg6IHJlc3Vs
dDogeWVzCmNvbmZpZ3VyZTo3OTU3OiBjaGVja2luZyBvcGVyYXRpb24gcmVuYW1lIGluIGlub2Rl
X29wZXJhdGlvbnMKbWFrZSAtQyAvdXNyL3NyYy9saW51eCBNPS9kYXRhMS9vcGVuYWZzLTEuNi4y
MC4xL2NvbmZ0ZXN0LmRpciBtb2R1bGVzIEtCVUlMRF9WRVJCT1NFPTEKbWFrZTogRW50ZXJpbmcg
ZGlyZWN0b3J5ICcvdXNyL3NyYy9saW51eC00LjQuMzYtOCcKdGVzdCAtZSBpbmNsdWRlL2dlbmVy
YXRlZC9hdXRvY29uZi5oIC1hIC1lIGluY2x1ZGUvY29uZmlnL2F1dG8uY29uZiB8fCAoCQlcCmVj
aG8gPiYyOwkJCQkJCQlcCmVjaG8gPiYyICIgIEVSUk9SOiBLZXJuZWwgY29uZmlndXJhdGlvbiBp
cyBpbnZhbGlkLiI7CQlcCmVjaG8gPiYyICIgICAgICAgICBpbmNsdWRlL2dlbmVyYXRlZC9hdXRv
Y29uZi5oIG9yIGluY2x1ZGUvY29uZmlnL2F1dG8uY29uZiBhcmUgbWlzc2luZy4iO1wKZWNobyA+
JjIgIiAgICAgICAgIFJ1biAnbWFrZSBvbGRjb25maWcgJiYgbWFrZSBwcmVwYXJlJyBvbiBrZXJu
ZWwgc3JjIHRvIGZpeCBpdC4iOwlcCmVjaG8gPiYyIDsJCQkJCQkJXAovYmluL2ZhbHNlKQpta2Rp
ciAtcCAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvLnRtcF92ZXJzaW9ucyA7
IHJtIC1mIC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci8udG1wX3ZlcnNpb25z
LyoKbWFrZSAtZiAuL3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQgb2JqPS9kYXRhMS9vcGVuYWZzLTEu
Ni4yMC4xL2NvbmZ0ZXN0LmRpcgogIGdjYyAtV3AsLU1ELC9kYXRhMS9vcGVuYWZzLTEuNi4yMC4x
L2NvbmZ0ZXN0LmRpci8uY29uZnRlc3Quby5kICAtbm9zdGRpbmMgLWlzeXN0ZW0gL3Vzci9saWI2
NC9nY2MveDg2XzY0LXN1c2UtbGludXgvNC44L2luY2x1ZGUgLUkuL2FyY2gveDg2L2luY2x1ZGUg
LUlhcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZC91YXBpIC1JYXJjaC94ODYvaW5jbHVkZS9nZW5l
cmF0ZWQgIC1JaW5jbHVkZSAtSS4vYXJjaC94ODYvaW5jbHVkZS91YXBpIC1JYXJjaC94ODYvaW5j
bHVkZS9nZW5lcmF0ZWQvdWFwaSAtSS4vaW5jbHVkZS91YXBpIC1JaW5jbHVkZS9nZW5lcmF0ZWQv
dWFwaSAtaW5jbHVkZSAuL2luY2x1ZGUvbGludXgva2NvbmZpZy5oIC1EX19LRVJORUxfXyAtV2Fs
bCAtV3VuZGVmIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVduby10cmlncmFwaHMgLWZuby1zdHJpY3Qt
YWxpYXNpbmcgLWZuby1jb21tb24gLVdlcnJvci1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlv
biAtV25vLWZvcm1hdC1zZWN1cml0eSAtc3RkPWdudTg5IC1mbm8tUElFIC1tbm8tc3NlIC1tbm8t
bW14IC1tbm8tc3NlMiAtbW5vLTNkbm93IC1tbm8tYXZ4IC1tNjQgLWZhbGlnbi1qdW1wcz0xIC1m
YWxpZ24tbG9vcHM9MSAtbW5vLTgwMzg3IC1tbm8tZnAtcmV0LWluLTM4NyAtbXByZWZlcnJlZC1z
dGFjay1ib3VuZGFyeT0zIC1tdHVuZT1nZW5lcmljIC1tbm8tcmVkLXpvbmUgLW1jbW9kZWw9a2Vy
bmVsIC1mdW5pdC1hdC1hLXRpbWUgLW1hY2N1bXVsYXRlLW91dGdvaW5nLWFyZ3MgLURDT05GSUdf
WDg2X1gzMl9BQkkgLURDT05GSUdfQVNfQ0ZJPTEgLURDT05GSUdfQVNfQ0ZJX1NJR05BTF9GUkFN
RT0xIC1EQ09ORklHX0FTX0NGSV9TRUNUSU9OUz0xIC1EQ09ORklHX0FTX0ZYU0FWRVE9MSAtRENP
TkZJR19BU19TU1NFMz0xIC1EQ09ORklHX0FTX0NSQzMyPTEgLURDT05GSUdfQVNfQVZYPTEgLURD
T05GSUdfQVNfQVZYMj0xIC1EQ09ORklHX0FTX1NIQTFfTkk9MSAtRENPTkZJR19BU19TSEEyNTZf
Tkk9MSAtcGlwZSAtV25vLXNpZ24tY29tcGFyZSAtZm5vLWRlbGV0ZS1udWxsLXBvaW50ZXItY2hl
Y2tzIC1Xbm8tbWF5YmUtdW5pbml0aWFsaXplZCAtTzIgLS1wYXJhbT1hbGxvdy1zdG9yZS1kYXRh
LXJhY2VzPTAgLVdmcmFtZS1sYXJnZXItdGhhbj0yMDQ4IC1mc3RhY2stcHJvdGVjdG9yIC1Xbm8t
dW51c2VkLWJ1dC1zZXQtdmFyaWFibGUgLWZuby12YXItdHJhY2tpbmctYXNzaWdubWVudHMgLWZh
c3luY2hyb25vdXMtdW53aW5kLXRhYmxlcyAtZyAtZ2R3YXJmLTQgLXBnIC1tZmVudHJ5IC1EQ0Nf
VVNJTkdfRkVOVFJZIC1mbm8taW5saW5lLWZ1bmN0aW9ucy1jYWxsZWQtb25jZSAtV2RlY2xhcmF0
aW9uLWFmdGVyLXN0YXRlbWVudCAtV25vLXBvaW50ZXItc2lnbiAtZm5vLXN0cmljdC1vdmVyZmxv
dyAtZmNvbnNlcnZlLXN0YWNrIC1XZXJyb3I9aW1wbGljaXQtaW50IC1XZXJyb3I9c3RyaWN0LXBy
b3RvdHlwZXMgLURDQ19IQVZFX0FTTV9HT1RPIC1XZXJyb3IgIC1ETU9EVUxFICAtRCJLQlVJTERf
U1RSKHMpPSNzIiAtRCJLQlVJTERfQkFTRU5BTUU9S0JVSUxEX1NUUihjb25mdGVzdCkiICAtRCJL
QlVJTERfTU9ETkFNRT1LQlVJTERfU1RSKGNvbmZ0ZXN0KSIgLWMgLW8gL2RhdGExL29wZW5hZnMt
MS42LjIwLjEvY29uZnRlc3QuZGlyLy50bXBfY29uZnRlc3QubyAvZGF0YTEvb3BlbmFmcy0xLjYu
MjAuMS9jb25mdGVzdC5kaXIvY29uZnRlc3QuYwpzY3JpcHRzL01ha2VmaWxlLmJ1aWxkOjI2Njog
cmVjaXBlIGZvciB0YXJnZXQgJy9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci9j
b25mdGVzdC5vJyBmYWlsZWQKTWFrZWZpbGU6MTQyODogcmVjaXBlIGZvciB0YXJnZXQgJ19tb2R1
bGVfL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyJyBmYWlsZWQKbWFrZTogTGVh
dmluZyBkaXJlY3RvcnkgJy91c3Ivc3JjL2xpbnV4LTQuNC4zNi04JwovZGF0YTEvb3BlbmFmcy0x
LjYuMjAuMS9jb25mdGVzdC5kaXIvY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ2NvbmZ0ZXN0JzoK
L2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyL2NvbmZ0ZXN0LmM6Mzk6NTg6IGVy
cm9yOiBhc3NpZ25tZW50IGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcl0K
ICAgICAgIHVuc2lnbmVkIGludCBmbGFncykgeyByZXR1cm4gKGludCkwOyB9OyBvcHMucmVuYW1l
ID0gb3A7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBeCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2Vb
MV06ICoqKiBbL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyL2NvbmZ0ZXN0Lm9d
IEVycm9yIDEKbWFrZTogKioqIFtfbW9kdWxlXy9kYXRhMS9vcGVuYWZzLTEuNi4yMC4xL2NvbmZ0
ZXN0LmRpcl0gRXJyb3IgMgpjb25maWd1cmU6IGZhaWxlZCB1c2luZyBNYWtlZmlsZToKfCBFWFRS
QV9DRkxBR1MgKz0gIC1XZXJyb3IKfCAKfCBvYmotbSArPSBjb25mdGVzdC5vCmNvbmZpZ3VyZTog
YW5kIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAvKiBjb25mZGVmcy5oICovCnwg
I2RlZmluZSBQQUNLQUdFX05BTUUgIk9wZW5BRlMiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg
Im9wZW5hZnMiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjEuNi4yMC4xIgp8ICNkZWZpbmUg
UEFDS0FHRV9TVFJJTkcgIk9wZW5BRlMgMS42LjIwLjEiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF
UE9SVCAiIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgIm9wZW5h
ZnMiCnwgI2RlZmluZSBWRVJTSU9OICIxLjYuMjAuMSIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx
CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx
CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk
ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu
ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI
QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIF9fRVhURU5TSU9OU19fIDEKfCAjZGVmaW5lIF9BTExf
U09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFE
X1NFTUFOVElDUyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBZWVRFWFRf
UE9JTlRFUiAxCnwgI2RlZmluZSBFTkRJQU5FU1NfSU5fU1lTX1BBUkFNX0ggMQp8ICNkZWZpbmUg
UFJJTlRGX1RBS0VTX1pfTEVOIDEKfCAjZGVmaW5lIEhBVkVfTElOVVhfSU5PREVfT1BFUkFUSU9O
U19GT0xMT1dfTElOS19OT19OQU1FSURBVEEgMQp8ICNkZWZpbmUgSEFWRV9MSU5VWF9JTk9ERV9P
UEVSQVRJT05TX1BVVF9MSU5LX05PX05BTUVJREFUQSAxCnwgLyogZW5kIGNvbmZkZWZzLmggKi8K
fCAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CnwgI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CnwgCnwg
dm9pZCBjb25mdGVzdCh2b2lkKQp8IHsKfCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBvcHM7IGlu
dCBvcChzdHJ1Y3QgaW5vZGUgKm9pbm9kZSwgc3RydWN0IGRlbnRyeSAqb2RlbnRyeSwKfCAJCQkJ
CQlzdHJ1Y3QgaW5vZGUgKm5pbm9kZSwgc3RydWN0IGRlbnRyeSAqbmRlbnRyeSwKfCAJCQkJCQl1
bnNpZ25lZCBpbnQgZmxhZ3MpIHsgcmV0dXJuIChpbnQpMDsgfTsgb3BzLnJlbmFtZSA9IG9wOwp8
IH0KfCAKfCBNT0RVTEVfTElDRU5TRSgiaHR0cDovL3d3dy5vcGVuYWZzLm9yZy9kbC9saWNlbnNl
MTAuaHRtbCIpOwpjb25maWd1cmU6ODAzNjogcmVzdWx0OiBubwpjb25maWd1cmU6ODA0NTogY2hl
Y2tpbmcgZm9yIGxpbnV4L2NvbmZpZy5oCm1ha2UgLUMgL3Vzci9zcmMvbGludXggTT0vZGF0YTEv
b3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIgbW9kdWxlcyBLQlVJTERfVkVSQk9TRT0xCm1h
a2U6IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Vzci9zcmMvbGludXgtNC40LjM2LTgnCnRlc3QgLWUg
aW5jbHVkZS9nZW5lcmF0ZWQvYXV0b2NvbmYuaCAtYSAtZSBpbmNsdWRlL2NvbmZpZy9hdXRvLmNv
bmYgfHwgKAkJXAplY2hvID4mMjsJCQkJCQkJXAplY2hvID4mMiAiICBFUlJPUjogS2VybmVsIGNv
bmZpZ3VyYXRpb24gaXMgaW52YWxpZC4iOwkJXAplY2hvID4mMiAiICAgICAgICAgaW5jbHVkZS9n
ZW5lcmF0ZWQvYXV0b2NvbmYuaCBvciBpbmNsdWRlL2NvbmZpZy9hdXRvLmNvbmYgYXJlIG1pc3Np
bmcuIjtcCmVjaG8gPiYyICIgICAgICAgICBSdW4gJ21ha2Ugb2xkY29uZmlnICYmIG1ha2UgcHJl
cGFyZScgb24ga2VybmVsIHNyYyB0byBmaXggaXQuIjsJXAplY2hvID4mMiA7CQkJCQkJCVwKL2Jp
bi9mYWxzZSkKbWtkaXIgLXAgL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGlyLy50
bXBfdmVyc2lvbnMgOyBybSAtZiAvZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIv
LnRtcF92ZXJzaW9ucy8qCm1ha2UgLWYgLi9zY3JpcHRzL01ha2VmaWxlLmJ1aWxkIG9iaj0vZGF0
YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIKICBnY2MgLVdwLC1NRCwvZGF0YTEvb3Bl
bmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvLmNvbmZ0ZXN0Lm8uZCAgLW5vc3RkaW5jIC1pc3lz
dGVtIC91c3IvbGliNjQvZ2NjL3g4Nl82NC1zdXNlLWxpbnV4LzQuOC9pbmNsdWRlIC1JLi9hcmNo
L3g4Ni9pbmNsdWRlIC1JYXJjaC94ODYvaW5jbHVkZS9nZW5lcmF0ZWQvdWFwaSAtSWFyY2gveDg2
L2luY2x1ZGUvZ2VuZXJhdGVkICAtSWluY2x1ZGUgLUkuL2FyY2gveDg2L2luY2x1ZGUvdWFwaSAt
SWFyY2gveDg2L2luY2x1ZGUvZ2VuZXJhdGVkL3VhcGkgLUkuL2luY2x1ZGUvdWFwaSAtSWluY2x1
ZGUvZ2VuZXJhdGVkL3VhcGkgLWluY2x1ZGUgLi9pbmNsdWRlL2xpbnV4L2tjb25maWcuaCAtRF9f
S0VSTkVMX18gLVdhbGwgLVd1bmRlZiAtV3N0cmljdC1wcm90b3R5cGVzIC1Xbm8tdHJpZ3JhcGhz
IC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tY29tbW9uIC1XZXJyb3ItaW1wbGljaXQtZnVuY3Rp
b24tZGVjbGFyYXRpb24gLVduby1mb3JtYXQtc2VjdXJpdHkgLXN0ZD1nbnU4OSAtZm5vLVBJRSAt
bW5vLXNzZSAtbW5vLW1teCAtbW5vLXNzZTIgLW1uby0zZG5vdyAtbW5vLWF2eCAtbTY0IC1mYWxp
Z24tanVtcHM9MSAtZmFsaWduLWxvb3BzPTEgLW1uby04MDM4NyAtbW5vLWZwLXJldC1pbi0zODcg
LW1wcmVmZXJyZWQtc3RhY2stYm91bmRhcnk9MyAtbXR1bmU9Z2VuZXJpYyAtbW5vLXJlZC16b25l
IC1tY21vZGVsPWtlcm5lbCAtZnVuaXQtYXQtYS10aW1lIC1tYWNjdW11bGF0ZS1vdXRnb2luZy1h
cmdzIC1EQ09ORklHX1g4Nl9YMzJfQUJJIC1EQ09ORklHX0FTX0NGST0xIC1EQ09ORklHX0FTX0NG
SV9TSUdOQUxfRlJBTUU9MSAtRENPTkZJR19BU19DRklfU0VDVElPTlM9MSAtRENPTkZJR19BU19G
WFNBVkVRPTEgLURDT05GSUdfQVNfU1NTRTM9MSAtRENPTkZJR19BU19DUkMzMj0xIC1EQ09ORklH
X0FTX0FWWD0xIC1EQ09ORklHX0FTX0FWWDI9MSAtRENPTkZJR19BU19TSEExX05JPTEgLURDT05G
SUdfQVNfU0hBMjU2X05JPTEgLXBpcGUgLVduby1zaWduLWNvbXBhcmUgLWZuby1kZWxldGUtbnVs
bC1wb2ludGVyLWNoZWNrcyAtV25vLW1heWJlLXVuaW5pdGlhbGl6ZWQgLU8yIC0tcGFyYW09YWxs
b3ctc3RvcmUtZGF0YS1yYWNlcz0wIC1XZnJhbWUtbGFyZ2VyLXRoYW49MjA0OCAtZnN0YWNrLXBy
b3RlY3RvciAtV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlIC1mbm8tdmFyLXRyYWNraW5nLWFz
c2lnbm1lbnRzIC1mYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXMgLWcgLWdkd2FyZi00IC1wZyAt
bWZlbnRyeSAtRENDX1VTSU5HX0ZFTlRSWSAtZm5vLWlubGluZS1mdW5jdGlvbnMtY2FsbGVkLW9u
Y2UgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVduby1wb2ludGVyLXNpZ24gLWZuby1z
dHJpY3Qtb3ZlcmZsb3cgLWZjb25zZXJ2ZS1zdGFjayAtV2Vycm9yPWltcGxpY2l0LWludCAtV2Vy
cm9yPXN0cmljdC1wcm90b3R5cGVzIC1EQ0NfSEFWRV9BU01fR09UTyAgLURNT0RVTEUgIC1EIktC
VUlMRF9TVFIocyk9I3MiIC1EIktCVUlMRF9CQVNFTkFNRT1LQlVJTERfU1RSKGNvbmZ0ZXN0KSIg
IC1EIktCVUlMRF9NT0ROQU1FPUtCVUlMRF9TVFIoY29uZnRlc3QpIiAtYyAtbyAvZGF0YTEvb3Bl
bmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXIvLnRtcF9jb25mdGVzdC5vIC9kYXRhMS9vcGVuYWZz
LTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci9jb25mdGVzdC5jCnNjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6
MjY2OiByZWNpcGUgZm9yIHRhcmdldCAnL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3Qu
ZGlyL2NvbmZ0ZXN0Lm8nIGZhaWxlZApNYWtlZmlsZToxNDI4OiByZWNpcGUgZm9yIHRhcmdldCAn
X21vZHVsZV8vZGF0YTEvb3BlbmFmcy0xLjYuMjAuMS9jb25mdGVzdC5kaXInIGZhaWxlZAptYWtl
OiBMZWF2aW5nIGRpcmVjdG9yeSAnL3Vzci9zcmMvbGludXgtNC40LjM2LTgnCi9kYXRhMS9vcGVu
YWZzLTEuNi4yMC4xL2NvbmZ0ZXN0LmRpci9jb25mdGVzdC5jOjMzOjI2OiBmYXRhbCBlcnJvcjog
bGludXgvY29uZmlnLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICNpbmNsdWRlIDxsaW51
eC9jb25maWcuaD4KICAgICAgICAgICAgICAgICAgICAgICAgICBeCmNvbXBpbGF0aW9uIHRlcm1p
bmF0ZWQuCm1ha2VbMV06ICoqKiBbL2RhdGExL29wZW5hZnMtMS42LjIwLjEvY29uZnRlc3QuZGly
L2NvbmZ0ZXN0Lm9dIEVycm9yIDEKbWFrZTogKioqIFtfbW9kdWxlXy9kYXRhMS9vcGVuYWZzLTEu
Ni4yMC4xL2NvbmZ0ZXN0LmRpcl0gRXJyb3IgMgpjb25maWd1cmU6IGZhaWxlZCB1c2luZyBNYWtl
ZmlsZToKfCBFWFRSQV9DRkxBR1MgKz0gIAp8IAp8IG9iai1tICs9IGNvbmZ0ZXN0Lm8KY29uZmln
dXJlOiBhbmQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8IC8qIGNvbmZkZWZzLmgg
Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiT3BlbkFGUyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS
TkFNRSAib3BlbmFmcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMS42LjIwLjEiCnwgI2Rl
ZmluZSBQQUNLQUdFX1NUUklORyAiT3BlbkFGUyAxLjYuMjAuMSIKfCAjZGVmaW5lIFBBQ0tBR0Vf
QlVHUkVQT1JUICIiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAi
b3BlbmFmcyIKfCAjZGVmaW5lIFZFUlNJT04gIjEuNi4yMC4xIgp8ICNkZWZpbmUgU1REQ19IRUFE
RVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RB
VF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx
CnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAj
ZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVm
aW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgX19FWFRFTlNJT05TX18gMQp8ICNkZWZpbmUg
X0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BU
SFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIFlZ
VEVYVF9QT0lOVEVSIDEKfCAjZGVmaW5lIEVORElBTkVTU19JTl9TWVNfUEFSQU1fSCAxCnwgI2Rl
ZmluZSBQUklOVEZfVEFLRVNfWl9MRU4gMQp8ICNkZWZpbmUgSEFWRV9MSU5VWF9JTk9ERV9PUEVS
QVRJT05TX0ZPTExPV19MSU5LX05PX05BTUVJREFUQSAxCnwgI2RlZmluZSBIQVZFX0xJTlVYX0lO
T0RFX09QRVJBVElPTlNfUFVUX0xJTktfTk9fTkFNRUlEQVRBIDEKfCAvKiBlbmQgY29uZmRlZnMu
aCAqLwp8ICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KfCAjaW5jbHVkZSA8bGludXgvY29uZmln
Lmg+CnwgCnwgdm9pZCBjb25mdGVzdCh2b2lkKQp8IHsKfCByZXR1cm47CnwgfQp8IAp8IE1PRFVM
RV9MSUNFTlNFKCJodHRwOi8vd3d3Lm9wZW5hZnMub3JnL2RsL2xpY2Vuc2UxMC5odG1sIik7CmNv
bmZpZ3VyZTo4MTIwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MTI5OiBjaGVja2luZyBmb3IgbGlu
dXgvY29tcGxldGlvbi5oCm1ha2UgLUMgL3Vzci9zcmMvbGludXggTT0vZGF0YTEvb3BlbmFmcy0x
LjYuMjAuMS9jb25mdGVzdC5kaXIgbW9kdWxlcyBLQlVJTERfVkVSQk9TRT0xCm1ha2U6IEVudGVy
aW5nIGRpcmVjdG9yeSAnL3Vzci9zcmMvbGludXgtNC40LjM2LTgnCgojIyAtLS0tLS0tLS0tLS0t
LS0tICMjCiMjIENhY2hlIHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwoKYWNf
Y3ZfYnVpbGQ9eDg2XzY0LXVua25vd24tbGludXgtZ251CmFjX2N2X2NfY29tcGlsZXJfZ251PXll
cwphY19jdl9lbnZfQ0Nfc2V0PQphY19jdl9lbnZfQ0NfdmFsdWU9CmFjX2N2X2Vudl9DRkxBR1Nf
c2V0PQphY19jdl9lbnZfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfQ1BQRkxBR1Nfc2V0PQphY19j
dl9lbnZfQ1BQRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9DUFBfc2V0PQphY19jdl9lbnZfQ1BQX3Zh
bHVlPQphY19jdl9lbnZfRlVTRV9DRkxBR1Nfc2V0PQphY19jdl9lbnZfRlVTRV9DRkxBR1NfdmFs
dWU9CmFjX2N2X2Vudl9GVVNFX0xJQlNfc2V0PQphY19jdl9lbnZfRlVTRV9MSUJTX3ZhbHVlPQph
Y19jdl9lbnZfS1JCNV9DT05GSUdfc2V0PXNldAphY19jdl9lbnZfS1JCNV9DT05GSUdfdmFsdWU9
Jy91c3IvaGVpbWRhbC9iaW4va3JiNS1jb25maWcgLS1saWJzIC0tZGVwcycKYWNfY3ZfZW52X0xE
RkxBR1Nfc2V0PQphY19jdl9lbnZfTERGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0xJQlNfc2V0PQph
Y19jdl9lbnZfTElCU192YWx1ZT0KYWNfY3ZfZW52X1BLR19DT05GSUdfc2V0PQphY19jdl9lbnZf
UEtHX0NPTkZJR192YWx1ZT0KYWNfY3ZfZW52X1lBQ0Nfc2V0PQphY19jdl9lbnZfWUFDQ192YWx1
ZT0KYWNfY3ZfZW52X1lGTEFHU19zZXQ9CmFjX2N2X2Vudl9ZRkxBR1NfdmFsdWU9CmFjX2N2X2Vu
dl9idWlsZF9hbGlhc19zZXQ9CmFjX2N2X2Vudl9idWlsZF9hbGlhc192YWx1ZT0KYWNfY3ZfZW52
X2hvc3RfYWxpYXNfc2V0PQphY19jdl9lbnZfaG9zdF9hbGlhc192YWx1ZT0KYWNfY3ZfZW52X3Rh
cmdldF9hbGlhc19zZXQ9CmFjX2N2X2Vudl90YXJnZXRfYWxpYXNfdmFsdWU9CmFjX2N2X2hlYWRl
cl9pbnR0eXBlc19oPXllcwphY19jdl9oZWFkZXJfbWVtb3J5X2g9eWVzCmFjX2N2X2hlYWRlcl9t
aW5peF9jb25maWdfaD1ubwphY19jdl9oZWFkZXJfc3RkYz15ZXMKYWNfY3ZfaGVhZGVyX3N0ZGlu
dF9oPXllcwphY19jdl9oZWFkZXJfc3RkbGliX2g9eWVzCmFjX2N2X2hlYWRlcl9zdHJpbmdfaD15
ZXMKYWNfY3ZfaGVhZGVyX3N0cmluZ3NfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c19zdGF0X2g9eWVz
CmFjX2N2X2hlYWRlcl9zeXNfdHlwZXNfaD15ZXMKYWNfY3ZfaGVhZGVyX3VuaXN0ZF9oPXllcwph
Y19jdl9ob3N0PXg4Nl82NC11bmtub3duLWxpbnV4LWdudQphY19jdl9saWJfbGV4PS1sZmwKYWNf
Y3ZfbGludXhfaGVhZGVyX2NvbmZpZ19oPW5vCmFjX2N2X2xpbnV4X29wZXJhdGlvbl9pbm9kZV9v
cGVyYXRpb25zX2ZvbGxvd19saW5rX25vX25hbWVpZGF0YT15ZXMKYWNfY3ZfbGludXhfb3BlcmF0
aW9uX2lub2RlX29wZXJhdGlvbnNfcHV0X2xpbmtfbm9fbmFtZWlkYXRhPXllcwphY19jdl9saW51
eF9vcGVyYXRpb25faW5vZGVfb3BlcmF0aW9uc19yZW5hbWVfdGFrZXNfZmxhZ3M9bm8KYWNfY3Zf
b2JqZXh0PW8KYWNfY3ZfcGF0aF9FR1JFUD0nL3Vzci9iaW4vZ3JlcCAtRScKYWNfY3ZfcGF0aF9H
UkVQPS91c3IvYmluL2dyZXAKYWNfY3ZfcGF0aF9QQVRIX0NQUD0vdXNyL2Jpbi9jcHAKYWNfY3Zf
cGF0aF9hY19wdF9QS0dfQ09ORklHPS91c3IvYmluL3BrZy1jb25maWcKYWNfY3ZfcGF0aF9pbnN0
YWxsPScvdXNyL2Jpbi9pbnN0YWxsIC1jJwphY19jdl9wYXRoX21rZGlyPS91c3IvYmluL21rZGly
CmFjX2N2X3Byb2dfQVdLPWdhd2sKYWNfY3ZfcHJvZ19DUFA9J2djYyAtRScKYWNfY3ZfcHJvZ19M
RVg9ZmxleAphY19jdl9wcm9nX1hTTFRQUk9DPXhzbHRwcm9jCmFjX2N2X3Byb2dfWUFDQz0nYmlz
b24gLXknCmFjX2N2X3Byb2dfYWNfY3RfQ0M9Z2NjCmFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPXJh
bmxpYgphY19jdl9wcm9nX2NjX2M4OT0KYWNfY3ZfcHJvZ19jY19nPXllcwphY19jdl9wcm9nX2xl
eF9yb290PWxleC55eQphY19jdl9wcm9nX2xleF95eXRleHRfcG9pbnRlcj15ZXMKYWNfY3ZfcHJv
Z19tYWtlX21ha2Vfc2V0PXllcwphY19jdl9zYWZlX3RvX2RlZmluZV9fX2V4dGVuc2lvbnNfXz15
ZXMKYWNfY3Zfc2VhcmNoX3N0cmVycm9yPSdub25lIHJlcXVpcmVkJwphY19jdl90eXBlX3BpZF90
PXllcwphY19jdl90eXBlX3NpemVfdD15ZXMKYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVy
X3R5cGU9bm9uZQphbV9jdl9tYWtlX3N1cHBvcnRfbmVzdGVkX3ZhcmlhYmxlcz15ZXMKb3BlbmFm
c19jdl9jX2JpZ2VuZGlhbj1ubwpvcGVuYWZzX2N2X2NfYmlnZW5kaWFuX2NvbXBpbGU9eWVzCm9w
ZW5hZnNfY3ZfZ2NjX25lZWRzX25vX3N0cmVuZ3RoX3JlZHVjZT15ZXMKb3BlbmFmc19jdl9nY2Nf
bmVlZHNfbm9fc3RyaWN0X2FsaWFzaW5nPXllcwpvcGVuYWZzX2N2X2djY19zdXBwb3J0c19tYXJj
aD1ubwpvcGVuYWZzX2N2X2djY19zdXBwb3J0c19ub19jb21tb249eWVzCm9wZW5hZnNfY3ZfZ2Nj
X3N1cHBvcnRzX3BpcGU9eWVzCm9wZW5hZnNfY3ZfcHJpbnRmX3Rha2VzX3o9eWVzCgojIyAtLS0t
LS0tLS0tLS0tLS0tLSAjIwojIyBPdXRwdXQgdmFyaWFibGVzLiAjIwojIyAtLS0tLS0tLS0tLS0t
LS0tLSAjIwoKQUNMT0NBTD0nYWNsb2NhbC0xLjEzJwpBRlNEX0xERkxBR1M9JycKQUZTRF9MSUJT
PScnCkFGU19QQVJBTV9DT01NT049J3BhcmFtLmxpbnV4MjYuaCcKQUZTX1NZU05BTUU9J2FtZDY0
X2xpbnV4MjYnCkFJWDMyPScnCkFJWDY0PScnCkFLTE9HX0tSQjVfTElCUz0nJwpBTURFUEJBQ0tT
TEFTSD0nXCcKQU1ERVBfRkFMU0U9JyMnCkFNREVQX1RSVUU9JycKQU1UQVI9JyQke1RBUi10YXJ9
JwpBTV9CQUNLU0xBU0g9J1wnCkFNX0RFRkFVTFRfVj0nJChBTV9ERUZBVUxUX1ZFUkJPU0lUWSkn
CkFNX0RFRkFVTFRfVkVSQk9TSVRZPScxJwpBTV9WPSckKFYpJwpBUj0nJwpBUz0nJwpBU0ZMQUdT
PScnCkFVVE9DT05GPSdhdXRvY29uZicKQVVUT0hFQURFUj0nYXV0b2hlYWRlcicKQVVUT01BS0U9
J2F1dG9tYWtlLTEuMTMnCkFXSz0nZ2F3aycKQlNEX0tFUk5FTF9CVUlMRD0nJwpCU0RfS0VSTkVM
X1BBVEg9JycKQlVJTERfS1JCNT0nJwpCVUlMRF9MT0dJTj0nJwpDQz0nZ2NjJwpDQ0RFUE1PREU9
J2RlcG1vZGU9bm9uZScKQ0NPQko9JycKQ0NYUEcyPScnCkNGTEFHUz0nICcKQ0ZMQUdTX05PRVJS
T1I9JycKQ0ZMQUdTX05PT0xEU1RZTEU9JycKQ0ZMQUdTX05PU1RSSUNUPScnCkNGTEFHU19OT1VO
VVNFRD0nJwpDTElFTlRfVUFGU19ERVA9JycKQ1A9JycKQ1BQPSdnY2MgLUUnCkNQUEZMQUdTPScg
JwpDWUdQQVRIX1c9J2VjaG8nCkRBUldJTl9JTkZPRklMRT0nJwpEQkc9JycKREVCX1BLR1ZFUj0n
MS42LjIwLjEnCkRFRlM9JycKREVQRElSPScuZGVwcycKREVTVD0nJwpET0NCT09LMlBERj0nZWNo
bycKRUNIT19DPScnCkVDSE9fTj0nLW4nCkVDSE9fVD0nJwpFR1JFUD0nL3Vzci9iaW4vZ3JlcCAt
RScKRU5BQkxFX0ZVU0VfQ0xJRU5UPScnCkVOQUJMRV9LRVJORUxfTU9EVUxFPScnCkVOQUJMRV9Q
VEhSRUFERURfVUJJSz0nJwpFWEVFWFQ9JycKRlNJTkNMVURFUz0nJwpGVVNFX0NGTEFHUz0nJwpG
VVNFX0xJQlM9JycKR0VOQ0FUPScnCkdSRVA9Jy91c3IvYmluL2dyZXAnCkhBVkVfUEFNPScnCkhF
TFBFUl9TUExJTlQ9JycKSEVMUEVSX1NQTElOVENGRz0nJwpIT1NUX0NQVT0nJwpIVE1MX1hTTD0n
bm8nCklOQ0xVREVfbGliaW50bD0nJwpJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNjQ0JwpJ
TlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCklOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JwpJ
TlNUQUxMX1NUUklQX1BST0dSQU09JyQoaW5zdGFsbF9zaCkgLWMgLXMnCklSSVhfQlVJTERfSVAz
NT0nJwpLRVJOX0RCRz0nJwpLRVJOX09QVE1aPScnCktSQjVfQ09ORklHPScvdXNyL2hlaW1kYWwv
YmluL2tyYjUtY29uZmlnIC0tbGlicyAtLWRlcHMnCktSQjVfQ1BQRkxBR1M9JycKS1JCNV9MREZM
QUdTPScnCktSQjVfTElCUz0nJwpLUkI1X1VTRVNfQ09NX0VSUl9GQUxTRT0nJwpLUkI1X1VTRVNf
Q09NX0VSUl9UUlVFPScnCkxEPScnCkxERkxBR1M9JycKTEVYPSdmbGV4IC1sJwpMRVhMSUI9Jy1s
ZmwnCkxFWF9PVVRQVVRfUk9PVD0nbGV4Lnl5JwpMSUJPQkpTPScnCkxJQlM9JycKTElCX0FGU0RC
PScnCkxJQl9jcnlwdD0nJwpMSUJfY3Vyc2VzPScnCkxJQl9saWJpbnRsPScnCkxJTlVYX0dDQ19L
T1BUUz0nIC1mb21pdC1mcmFtZS1wb2ludGVyIC1mbm8tc3RyZW5ndGgtcmVkdWNlIC1mbm8tc3Ry
aWN0LWFsaWFzaW5nIC1mbm8tY29tbW9uIC1waXBlJwpMSU5VWF9LRVJORUxfQlVJTEQ9Jy91c3Iv
c3JjL2xpbnV4JwpMSU5VWF9LRVJORUxfUEFDS0FHSU5HPScnCkxJTlVYX0tFUk5FTF9QQVRIPScv
dXNyL3NyYy9saW51eCcKTElOVVhfTElCQUZTX05BTUU9J2xpYmFmcycKTElOVVhfVkVSU0lPTj0n
NC40LjM2LTgtZGVmYXVsdCcKTE5fUz0nbG4gLXMnCkxPUkRFUj0nJwpMVExJQk9CSlM9JycKTFdQ
X0RCRz0nJwpMV1BfT1BUTVo9JycKTUFDT1NfVkVSU0lPTj0nMS42LjIxZDEnCk1BS0VJTkZPPSdt
YWtlaW5mbycKTUFLRV9LUkI1PScnCk1LQUZTX09TVFlQRT0nTElOVVgnCk1LRElSX1A9Jy91c3Iv
YmluL21rZGlyIC1wJwpNUFM9JycKTVRfQ0M9JycKTVRfQ0ZMQUdTPScnCk1UX0xJQlM9JycKTVY9
JycKTk9fU1RSSVBfQklOPScnCk9CSkVYVD0nbycKT1BUTVo9JycKT1NYU0RLPScnClA1UExVU19L
T1BUUz0nLW00ODYgLW1hbGlnbi1sb29wcz0yIC1tYWxpZ24tanVtcHM9MiAtbWFsaWduLWZ1bmN0
aW9ucz0yJwpQQUNLQUdFPSdvcGVuYWZzJwpQQUNLQUdFX0JVR1JFUE9SVD0nJwpQQUNLQUdFX05B
TUU9J09wZW5BRlMnClBBQ0tBR0VfU1RSSU5HPSdPcGVuQUZTIDEuNi4yMC4xJwpQQUNLQUdFX1RB
Uk5BTUU9J29wZW5hZnMnClBBQ0tBR0VfVVJMPScnClBBQ0tBR0VfVkVSU0lPTj0nMS42LjIwLjEn
ClBBTV9DRkxBR1M9JycKUEFNX0RCRz0nJwpQQU1fTElCUz0nJwpQQU1fT1BUTVo9JycKUEFUSF9D
UFA9Jy91c3IvYmluL2NwcCcKUEFUSF9TRVBBUkFUT1I9JzonClBLR19DT05GSUc9Jy91c3IvYmlu
L3BrZy1jb25maWcnClBUSFJFQURfTElCUz0nJwpSQU5MSUI9J3JhbmxpYicKUkVHRVhfT0JKPScn
ClJIQ09ORklHX01QPScnClJIQ09ORklHX1NQPScnClJNPScnClJYREVCVUc9JycKU0VUX01BS0U9
JycKU0hFTEw9Jy9iaW4vc2gnClNITElCX0NGTEFHUz0nJwpTSExJQl9MREZMQUdTPScnClNITElC
X0xJTktFUj0nJwpTSExJQl9TVUZGSVg9JycKU09MQVJJU0NDPScnClNUUklQPScnClRPUF9JTkNE
SVI9JycKVE9QX0xJQkRJUj0nJwpUT1BfT0JKRElSPScnClRPUF9TUkNESVI9JycKVVNFX1VOSVhf
U09DS0VUUz0nJwpWRVJTSU9OPScxLjYuMjAuMScKVkZTQ0s9JycKVkZTQ0tfQ0ZMQUdTPScnClhC
U0FfQ0ZMQUdTPScnClhCU0FfWExJQlM9JycKWENGTEFHUzY0PScnClhDRkxBR1M9JycKWEZTX1NJ
WkVfQ0hFQ0s9JycKWExERkxBR1M2ND0nJwpYTERGTEFHUz0nJwpYTElCRUxGQT0nJwpYTElCS1ZN
PScnClhMSUJTPScnClhTTFRQUk9DPSd4c2x0cHJvYycKWUFDQz0nYmlzb24gLXknCllGTEFHUz0n
JwphY19jdF9DQz0nZ2NjJwphZnNiYWNrdXBkaXI9JycKYWZzYm9zY29uZmlnZGlyPScnCmFmc2Nv
bmZkaXI9JycKYWZzZGF0YWRpcj0nJwphZnNkYmRpcj0nJwphZnNrZXJuZWxkaXI9JycKYWZzbG9j
YWxkaXI9JycKYWZzbG9nc2Rpcj0nJwphZnNzcnZiaW5kaXI9JycKYWZzc3J2bGliZXhlY2Rpcj0n
JwphZnNzcnZzYmluZGlyPScnCmFtX19FWEVFWFRfRkFMU0U9JycKYW1fX0VYRUVYVF9UUlVFPScn
CmFtX19mYXN0ZGVwQ0NfRkFMU0U9JycKYW1fX2Zhc3RkZXBDQ19UUlVFPScjJwphbV9faW5jbHVk
ZT0naW5jbHVkZScKYW1fX2lzcmM9JycKYW1fX2xlYWRpbmdfZG90PScuJwphbV9fbm9kZXA9J19u
bycKYW1fX3F1b3RlPScnCmFtX190YXI9JyQke1RBUi10YXJ9IGNob2YgLSAiJCR0YXJkaXIiJwph
bV9fdW50YXI9JyQke1RBUi10YXJ9IHhmIC0nCmJpbmRpcj0nJHtleGVjX3ByZWZpeH0vYmluJwpi
dWlsZD0neDg2XzY0LXVua25vd24tbGludXgtZ251JwpidWlsZF9hbGlhcz0nJwpidWlsZF9jcHU9
J3g4Nl82NCcKYnVpbGRfb3M9J2xpbnV4LWdudScKYnVpbGRfdmVuZG9yPSd1bmtub3duJwpkYXRh
ZGlyPScke2RhdGFyb290ZGlyfScKZGF0YXJvb3RkaXI9JyR7cHJlZml4fS9zaGFyZScKZGVzdF9Y
RlNfU0laRV9DSEVDSz0nJwpkb2NkaXI9JyR7ZGF0YXJvb3RkaXJ9L2RvYy8ke1BBQ0tBR0VfVEFS
TkFNRX0nCmR2aWRpcj0nJHtkb2NkaXJ9JwpleGVjX3ByZWZpeD0nTk9ORScKaG9zdD0neDg2XzY0
LXVua25vd24tbGludXgtZ251Jwpob3N0X2FsaWFzPScnCmhvc3RfY3B1PSd4ODZfNjQnCmhvc3Rf
b3M9J2xpbnV4LWdudScKaG9zdF92ZW5kb3I9J3Vua25vd24nCmh0bWxkaXI9JyR7ZG9jZGlyfScK
aW5jbHVkZWRpcj0nJHtwcmVmaXh9L2luY2x1ZGUnCmluZm9kaXI9JyR7ZGF0YXJvb3RkaXJ9L2lu
Zm8nCmluc3RhbGxfWEZTX1NJWkVfQ0hFQ0s9JycKaW5zdGFsbF9zaD0nJHtTSEVMTH0gL2RhdGEx
L29wZW5hZnMtMS42LjIwLjEvYnVpbGQtdG9vbHMvaW5zdGFsbC1zaCcKbGliZGlyPScke2V4ZWNf
cHJlZml4fS9saWI2NCcKbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliJwpsb2NhbGVkaXI9
JyR7ZGF0YXJvb3RkaXJ9L2xvY2FsZScKbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKbWFu
ZGlyPScke2RhdGFyb290ZGlyfS9tYW4nCm1rZGlyX3A9JyQoTUtESVJfUCknCm9sZGluY2x1ZGVk
aXI9Jy91c3IvaW5jbHVkZScKcGRmZGlyPScke2RvY2Rpcn0nCnByZWZpeD0nTk9ORScKcHJvZ3Jh
bV90cmFuc2Zvcm1fbmFtZT0ncyx4LHgsJwpwc2Rpcj0nJHtkb2NkaXJ9JwpzYmluZGlyPScke2V4
ZWNfcHJlZml4fS9zYmluJwpzaGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScKc3lzY29uZmRp
cj0nJHtwcmVmaXh9L2V0YycKdGFyZ2V0X2FsaWFzPScnCnZpY2VldGNkaXI9JycKCiMjIC0tLS0t
LS0tLS0tICMjCiMjIGNvbmZkZWZzLmguICMjCiMjIC0tLS0tLS0tLS0tICMjCgovKiBjb25mZGVm
cy5oICovCiNkZWZpbmUgUEFDS0FHRV9OQU1FICJPcGVuQUZTIgojZGVmaW5lIFBBQ0tBR0VfVEFS
TkFNRSAib3BlbmFmcyIKI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjEuNi4yMC4xIgojZGVmaW5l
IFBBQ0tBR0VfU1RSSU5HICJPcGVuQUZTIDEuNi4yMC4xIgojZGVmaW5lIFBBQ0tBR0VfQlVHUkVQ
T1JUICIiCiNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKI2RlZmluZSBQQUNLQUdFICJvcGVuYWZzIgoj
ZGVmaW5lIFZFUlNJT04gIjEuNi4yMC4xIgojZGVmaW5lIFNURENfSEVBREVSUyAxCiNkZWZpbmUg
SEFWRV9TWVNfVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKI2RlZmluZSBIQVZF
X1NURExJQl9IIDEKI2RlZmluZSBIQVZFX1NUUklOR19IIDEKI2RlZmluZSBIQVZFX01FTU9SWV9I
IDEKI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCiNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKI2Rl
ZmluZSBIQVZFX1NURElOVF9IIDEKI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKI2RlZmluZSBfX0VY
VEVOU0lPTlNfXyAxCiNkZWZpbmUgX0FMTF9TT1VSQ0UgMQojZGVmaW5lIF9HTlVfU09VUkNFIDEK
I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQojZGVmaW5lIF9UQU5ERU1fU09VUkNF
IDEKI2RlZmluZSBZWVRFWFRfUE9JTlRFUiAxCiNkZWZpbmUgRU5ESUFORVNTX0lOX1NZU19QQVJB
TV9IIDEKI2RlZmluZSBQUklOVEZfVEFLRVNfWl9MRU4gMQojZGVmaW5lIEhBVkVfTElOVVhfSU5P
REVfT1BFUkFUSU9OU19GT0xMT1dfTElOS19OT19OQU1FSURBVEEgMQojZGVmaW5lIEhBVkVfTElO
VVhfSU5PREVfT1BFUkFUSU9OU19QVVRfTElOS19OT19OQU1FSURBVEEgMQoKY29uZmlndXJlOiBj
YXVnaHQgc2lnbmFsIDIKY29uZmlndXJlOiBleGl0IDEK

--_004_MWHPR14MB12633C31F7E7FB33025AA069A47E0MWHPR14MB1263namp_--