Problem wit loading CTLib via CGI on WinXp

"Julian Thomas" <[email protected]> Thu, 18 Dec 2008 12:07:56 -0000
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase
Message-ID <[email protected]>
This is a multi-part message in MIME format.

------_=_NextPart_001_01C96109.43121EE7
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_002_01C96109.43121EE7"


------_=_NextPart_002_01C96109.43121EE7
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Hi=20
=20
The scripts work perfectly when run via  acommand prompt or through an
IDE
But when I try to run them via Apache2.2 I get the following errors.
=20

Software error:

Can't load 'D:/perl.5.8.8/site/lib/auto/Sybase/CTlib/CTlib.dll' for
module Sybase::CTlib: load_file:The specified module could not be found
at D:/perl.5.8.8/lib/DynaLoader.pm line 229.
 at D:/Apps/Apache2.2/cgi-bin/simple.cgi line 20
Compilation failed in require at D:/Apps/Apache2.2/cgi-bin/simple.cgi
line 20.
BEGIN failed--compilation aborted at
D:/Apps/Apache2.2/cgi-bin/simple.cgi line 20.

if i print the Environment out before the use Sybase::CTLib call I get
COMSPEC=3D C:\WINDOWS\system32\cmd.exe

DOCUMENT_ROOT=3D D:/Apps/Apache2.2/htdocs

GATEWAY_INTERFACE=3D CGI/1.1

HTTP_ACCEPT=3D */*

HTTP_ACCEPT_ENCODING=3D gzip, deflate

HTTP_ACCEPT_LANGUAGE=3D en-gb

HTTP_CONNECTION=3D Keep-Alive

HTTP_HOST=3D ldn1dpc383.globeop.com

HTTP_UA_CPU=3D x86

HTTP_USER_AGENT=3D Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; =
.NET
CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.1; .NET CLR
3.0.04506.648)

LD_LIBRARY_PATH=3D Z:\Apps\sybase\OCS-12_5\dll

LIB=3D Z:\Apps\sybase\OCS-12_5\lib

PATH=3D
D:\Perl.5.8.8\bin;D:\Perl.5.8.8\site\bin;D:\Perl.5.8.8\bin;z:\Apps\sybas
e\odbc\ODBC;C:\Program Files\ActiveState Komodo Edit
4.2\;C:\Python25\;D:\Perl\bin;z:\Apps\sybase\OCS-12_5\lib3p;z:\Apps\syba
se\OCS-12_5\dll;z:\Apps\sybase\OCS-12_5\bin;C:\WINDOWS\system32;C:\WINDO
WS;C:\WINDOWS\System32\Wbem

PATHEXT=3D .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.py;.pyw

QUERY_STRING=3D=20

REMOTE_ADDR=3D 172.27.40.242

REMOTE_PORT=3D 3595

REQUEST_METHOD=3D GET

REQUEST_URI=3D /cgi-bin/printenv.cgi

SCRIPT_FILENAME=3D D:/Apps/Apache2.2/cgi-bin/printenv.cgi

SCRIPT_NAME=3D /cgi-bin/printenv.cgi

SERVER_ADDR=3D 172.27.40.242

SERVER_ADMIN=3D [email protected]

SERVER_NAME=3D ldn1dpc383.globeop.com

SERVER_PORT=3D 80

SERVER_PROTOCOL=3D HTTP/1.1

SERVER_SIGNATURE=3D=20

SERVER_SOFTWARE=3D Apache/2.2.10 (Win32)

SYBASE=3D Z:\Apps\sybase

SYBASE_JRE=3D Z:\Apps\sybase\shared-1_0\JRE-1_3

SYBASE_OCS=3D OCS-12_5

SYSTEMROOT=3D C:\WINDOWS

WINDIR=3D C:\WINDOWS

Now this used to work so somthing has changed.
=20
I attach the http.conf file
=20
Any help would be appreciated
=20
Rgds
=20
Julian
=20
=20
=20

-------------------------------------------------------------------------=
-
This email with all information contained herein or attached hereto may =
contain confidential and/or privileged information intended for the =
addressee(s) only. If you have received this email in error, please =
contact the sender and immediately delete this email in its entirety and =
any attachments thereto.
(H1)
=20

------_=_NextPart_002_01C96109.43121EE7
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 =
Transitional//EN"><HTML><head><META content=3D"text/html; =
charset=3Dutf-8" http-equiv=3D"Content-Type">





<META content=3D"text/html; charset=3Dutf-8" http-equiv=3DContent-Type>
<META content=3D"MSHTML 6.00.6000.16608" name=3DGENERATOR></head><BODY>
<DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D289475911-18122008>Hi=20
</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D289475911-18122008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D289475911-18122008>The =
scripts work=20
perfectly when run via&nbsp; acommand prompt or through an=20
IDE</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D289475911-18122008>But =
when I try to=20
run them via Apache2.2 I get the following errors.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D289475911-18122008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D289475911-18122008>
<H1>Software error:</H1><PRE>Can't load =
'D:/perl.5.8.8/site/lib/auto/Sybase/CTlib/CTlib.dll' for module =
Sybase::CTlib: load_file:The specified module could not be found at =
D:/perl.5.8.8/lib/DynaLoader.pm line 229.
 at D:/Apps/Apache2.2/cgi-bin/simple.cgi line 20
Compilation failed in require at D:/Apps/Apache2.2/cgi-bin/simple.cgi =
line 20.
BEGIN failed--compilation aborted at =
D:/Apps/Apache2.2/cgi-bin/simple.cgi line 20.
</PRE></SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D289475911-18122008>if i =
print the=20
Environment out before the use Sybase::CTLib call I =
get</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D289475911-18122008>
<P>COMSPEC=3D C:\WINDOWS\system32\cmd.exe</P>
<P>DOCUMENT_ROOT=3D D:/Apps/Apache2.2/htdocs</P>
<P>GATEWAY_INTERFACE=3D CGI/1.1</P>
<P>HTTP_ACCEPT=3D */*</P>
<P>HTTP_ACCEPT_ENCODING=3D gzip, deflate</P>
<P>HTTP_ACCEPT_LANGUAGE=3D en-gb</P>
<P>HTTP_CONNECTION=3D Keep-Alive</P>
<P>HTTP_HOST=3D ldn1dpc383.globeop.com</P>
<P>HTTP_UA_CPU=3D x86</P>
<P>HTTP_USER_AGENT=3D Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; =
.NET CLR=20
2.0.50727; .NET CLR 3.0.04506.30; InfoPath.1; .NET CLR =
3.0.04506.648)</P>
<P>LD_LIBRARY_PATH=3D Z:\Apps\sybase\OCS-12_5\dll</P>
<P>LIB=3D Z:\Apps\sybase\OCS-12_5\lib</P>
<P>PATH=3D=20
D:\Perl.5.8.8\bin;D:\Perl.5.8.8\site\bin;D:\Perl.5.8.8\bin;z:\Apps\sybase=
\odbc\ODBC;C:\Program=20
Files\ActiveState Komodo Edit=20
4.2\;C:\Python25\;D:\Perl\bin;z:\Apps\sybase\OCS-12_5\lib3p;z:\Apps\sybas=
e\OCS-12_5\dll;z:\Apps\sybase\OCS-12_5\bin;C:\WINDOWS\system32;C:\WINDOWS=
;C:\WINDOWS\System32\Wbem</P>
<P>PATHEXT=3D =
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.py;.pyw</P>
<P>QUERY_STRING=3D </P>
<P>REMOTE_ADDR=3D 172.27.40.242</P>
<P>REMOTE_PORT=3D 3595</P>
<P>REQUEST_METHOD=3D GET</P>
<P>REQUEST_URI=3D /cgi-bin/printenv.cgi</P>
<P>SCRIPT_FILENAME=3D D:/Apps/Apache2.2/cgi-bin/printenv.cgi</P>
<P>SCRIPT_NAME=3D /cgi-bin/printenv.cgi</P>
<P>SERVER_ADDR=3D 172.27.40.242</P>
<P>SERVER_ADMIN=3D [email protected]</P>
<P>SERVER_NAME=3D ldn1dpc383.globeop.com</P>
<P>SERVER_PORT=3D 80</P>
<P>SERVER_PROTOCOL=3D HTTP/1.1</P>
<P>SERVER_SIGNATURE=3D </P>
<P>SERVER_SOFTWARE=3D Apache/2.2.10 (Win32)</P>
<P>SYBASE=3D Z:\Apps\sybase</P>
<P>SYBASE_JRE=3D Z:\Apps\sybase\shared-1_0\JRE-1_3</P>
<P>SYBASE_OCS=3D OCS-12_5</P>
<P>SYSTEMROOT=3D C:\WINDOWS</P>
<P>WINDIR=3D C:\WINDOWS</P></SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D289475911-18122008>Now =
this used to=20
work so somthing has changed.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D289475911-18122008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D289475911-18122008>I =
attach the=20
http.conf file</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D289475911-18122008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D289475911-18122008>Any =
help would be=20
appreciated</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D289475911-18122008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D289475911-18122008>Rgds</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D289475911-18122008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D289475911-18122008>Julian</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D289475911-18122008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D289475911-18122008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><SPAN =
class=3D289475911-18122008></SPAN></FONT>&nbsp;</DIV></DIV>
<DIV>
<HR>
</DIV>
<DIV STYLE=3D"FONT-SIZE: 9pt; FONT-FAMILY: Courier New">This email with =
all information contained herein or attached hereto may contain =
confidential and/or privileged information intended for the addressee(s) =
only. If you have received this email in error, please contact the =
sender and immediately delete this email in its entirety and any =
attachments thereto.</DIV>
<DIV STYLE=3D"FONT-SIZE: 9pt; FONT-FAMILY: Courier New">(H1)</DIV>
<DIV STYLE=3D"FONT-SIZE: 9pt; FONT-FAMILY: Courier =
New">&nbsp;</DIV></BODY></HTML>

------_=_NextPart_002_01C96109.43121EE7--

------_=_NextPart_001_01C96109.43121EE7
Content-Type: application/octet-stream;
	name="httpd.conf"
Content-Transfer-Encoding: base64
Content-Description: httpd.conf
Content-Disposition: attachment;
	filename="httpd.conf"

Iw0KIyBUaGlzIGlzIHRoZSBtYWluIEFwYWNoZSBIVFRQIHNlcnZlciBjb25maWd1cmF0aW9uIGZp
bGUuICBJdCBjb250YWlucyB0aGUNCiMgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzIHRoYXQgZ2l2
ZSB0aGUgc2VydmVyIGl0cyBpbnN0cnVjdGlvbnMuDQojIFNlZSA8VVJMOmh0dHA6Ly9odHRwZC5h
cGFjaGUub3JnL2RvY3MvMi4yPiBmb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24uDQojIEluIHBhcnRp
Y3VsYXIsIHNlZSANCiMgPFVSTDpodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuMi9tb2Qv
ZGlyZWN0aXZlcy5odG1sPg0KIyBmb3IgYSBkaXNjdXNzaW9uIG9mIGVhY2ggY29uZmlndXJhdGlv
biBkaXJlY3RpdmUuDQojDQojIERvIE5PVCBzaW1wbHkgcmVhZCB0aGUgaW5zdHJ1Y3Rpb25zIGlu
IGhlcmUgd2l0aG91dCB1bmRlcnN0YW5kaW5nDQojIHdoYXQgdGhleSBkby4gIFRoZXkncmUgaGVy
ZSBvbmx5IGFzIGhpbnRzIG9yIHJlbWluZGVycy4gIElmIHlvdSBhcmUgdW5zdXJlDQojIGNvbnN1
bHQgdGhlIG9ubGluZSBkb2NzLiBZb3UgaGF2ZSBiZWVuIHdhcm5lZC4gIA0KIw0KIyBDb25maWd1
cmF0aW9uIGFuZCBsb2dmaWxlIG5hbWVzOiBJZiB0aGUgZmlsZW5hbWVzIHlvdSBzcGVjaWZ5IGZv
ciBtYW55DQojIG9mIHRoZSBzZXJ2ZXIncyBjb250cm9sIGZpbGVzIGJlZ2luIHdpdGggIi8iIChv
ciAiZHJpdmU6LyIgZm9yIFdpbjMyKSwgdGhlDQojIHNlcnZlciB3aWxsIHVzZSB0aGF0IGV4cGxp
Y2l0IHBhdGguICBJZiB0aGUgZmlsZW5hbWVzIGRvICpub3QqIGJlZ2luDQojIHdpdGggIi8iLCB0
aGUgdmFsdWUgb2YgU2VydmVyUm9vdCBpcyBwcmVwZW5kZWQgLS0gc28gImxvZ3MvZm9vLmxvZyIN
CiMgd2l0aCBTZXJ2ZXJSb290IHNldCB0byAiRDovQXBwcy9BcGFjaGUyLjIiIHdpbGwgYmUgaW50
ZXJwcmV0ZWQgYnkgdGhlDQojIHNlcnZlciBhcyAiRDovQXBwcy9BcGFjaGUyLjIvbG9ncy9mb28u
bG9nIi4NCiMNCiMgTk9URTogV2hlcmUgZmlsZW5hbWVzIGFyZSBzcGVjaWZpZWQsIHlvdSBtdXN0
IHVzZSBmb3J3YXJkIHNsYXNoZXMNCiMgaW5zdGVhZCBvZiBiYWNrc2xhc2hlcyAoZS5nLiwgImM6
L2FwYWNoZSIgaW5zdGVhZCBvZiAiYzpcYXBhY2hlIikuDQojIElmIGEgZHJpdmUgbGV0dGVyIGlz
IG9taXR0ZWQsIHRoZSBkcml2ZSBvbiB3aGljaCBodHRwZC5leGUgaXMgbG9jYXRlZA0KIyB3aWxs
IGJlIHVzZWQgYnkgZGVmYXVsdC4gIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgeW91IGFsd2F5cyBz
dXBwbHkNCiMgYW4gZXhwbGljaXQgZHJpdmUgbGV0dGVyIGluIGFic29sdXRlIHBhdGhzIHRvIGF2
b2lkIGNvbmZ1c2lvbi4NCg0KIw0KIyBTZXJ2ZXJSb290OiBUaGUgdG9wIG9mIHRoZSBkaXJlY3Rv
cnkgdHJlZSB1bmRlciB3aGljaCB0aGUgc2VydmVyJ3MNCiMgY29uZmlndXJhdGlvbiwgZXJyb3Is
IGFuZCBsb2cgZmlsZXMgYXJlIGtlcHQuDQojDQojIERvIG5vdCBhZGQgYSBzbGFzaCBhdCB0aGUg
ZW5kIG9mIHRoZSBkaXJlY3RvcnkgcGF0aC4gIElmIHlvdSBwb2ludA0KIyBTZXJ2ZXJSb290IGF0
IGEgbm9uLWxvY2FsIGRpc2ssIGJlIHN1cmUgdG8gcG9pbnQgdGhlIExvY2tGaWxlIGRpcmVjdGl2
ZQ0KIyBhdCBhIGxvY2FsIGRpc2suICBJZiB5b3Ugd2lzaCB0byBzaGFyZSB0aGUgc2FtZSBTZXJ2
ZXJSb290IGZvciBtdWx0aXBsZQ0KIyBodHRwZCBkYWVtb25zLCB5b3Ugd2lsbCBuZWVkIHRvIGNo
YW5nZSBhdCBsZWFzdCBMb2NrRmlsZSBhbmQgUGlkRmlsZS4NCiMNClNlcnZlclJvb3QgIkQ6L0Fw
cHMvQXBhY2hlMi4yIg0KDQojDQojIExpc3RlbjogQWxsb3dzIHlvdSB0byBiaW5kIEFwYWNoZSB0
byBzcGVjaWZpYyBJUCBhZGRyZXNzZXMgYW5kL29yDQojIHBvcnRzLCBpbnN0ZWFkIG9mIHRoZSBk
ZWZhdWx0LiBTZWUgYWxzbyB0aGUgPFZpcnR1YWxIb3N0Pg0KIyBkaXJlY3RpdmUuDQojDQojIENo
YW5nZSB0aGlzIHRvIExpc3RlbiBvbiBzcGVjaWZpYyBJUCBhZGRyZXNzZXMgYXMgc2hvd24gYmVs
b3cgdG8gDQojIHByZXZlbnQgQXBhY2hlIGZyb20gZ2xvbW1pbmcgb250byBhbGwgYm91bmQgSVAg
YWRkcmVzc2VzLg0KIw0KI0xpc3RlbiAxMi4zNC41Ni43ODo4MA0KTGlzdGVuIDgwDQoNCiMNCiMg
RHluYW1pYyBTaGFyZWQgT2JqZWN0IChEU08pIFN1cHBvcnQNCiMNCiMgVG8gYmUgYWJsZSB0byB1
c2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYSBtb2R1bGUgd2hpY2ggd2FzIGJ1aWx0IGFzIGEgRFNP
IHlvdQ0KIyBoYXZlIHRvIHBsYWNlIGNvcnJlc3BvbmRpbmcgYExvYWRNb2R1bGUnIGxpbmVzIGF0
IHRoaXMgbG9jYXRpb24gc28gdGhlDQojIGRpcmVjdGl2ZXMgY29udGFpbmVkIGluIGl0IGFyZSBh
Y3R1YWxseSBhdmFpbGFibGUgX2JlZm9yZV8gdGhleSBhcmUgdXNlZC4NCiMgU3RhdGljYWxseSBj
b21waWxlZCBtb2R1bGVzICh0aG9zZSBsaXN0ZWQgYnkgYGh0dHBkIC1sJykgZG8gbm90IG5lZWQN
CiMgdG8gYmUgbG9hZGVkIGhlcmUuDQojDQojIEV4YW1wbGU6DQojIExvYWRNb2R1bGUgZm9vX21v
ZHVsZSBtb2R1bGVzL21vZF9mb28uc28NCiMNCkxvYWRNb2R1bGUgYWN0aW9uc19tb2R1bGUgbW9k
dWxlcy9tb2RfYWN0aW9ucy5zbw0KTG9hZE1vZHVsZSBhbGlhc19tb2R1bGUgbW9kdWxlcy9tb2Rf
YWxpYXMuc28NCkxvYWRNb2R1bGUgYXNpc19tb2R1bGUgbW9kdWxlcy9tb2RfYXNpcy5zbw0KTG9h
ZE1vZHVsZSBhdXRoX2Jhc2ljX21vZHVsZSBtb2R1bGVzL21vZF9hdXRoX2Jhc2ljLnNvDQojTG9h
ZE1vZHVsZSBhdXRoX2RpZ2VzdF9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aF9kaWdlc3Quc28NCiNM
b2FkTW9kdWxlIGF1dGhuX2FsaWFzX21vZHVsZSBtb2R1bGVzL21vZF9hdXRobl9hbGlhcy5zbw0K
I0xvYWRNb2R1bGUgYXV0aG5fYW5vbl9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aG5fYW5vbi5zbw0K
I0xvYWRNb2R1bGUgYXV0aG5fZGJkX21vZHVsZSBtb2R1bGVzL21vZF9hdXRobl9kYmQuc28NCiNM
b2FkTW9kdWxlIGF1dGhuX2RibV9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aG5fZGJtLnNvDQpMb2Fk
TW9kdWxlIGF1dGhuX2RlZmF1bHRfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGhuX2RlZmF1bHQuc28N
CkxvYWRNb2R1bGUgYXV0aG5fZmlsZV9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aG5fZmlsZS5zbw0K
I0xvYWRNb2R1bGUgYXV0aG56X2xkYXBfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGhuel9sZGFwLnNv
DQojTG9hZE1vZHVsZSBhdXRoel9kYm1fbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGh6X2RibS5zbw0K
TG9hZE1vZHVsZSBhdXRoel9kZWZhdWx0X21vZHVsZSBtb2R1bGVzL21vZF9hdXRoel9kZWZhdWx0
LnNvDQpMb2FkTW9kdWxlIGF1dGh6X2dyb3VwZmlsZV9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aHpf
Z3JvdXBmaWxlLnNvDQpMb2FkTW9kdWxlIGF1dGh6X2hvc3RfbW9kdWxlIG1vZHVsZXMvbW9kX2F1
dGh6X2hvc3Quc28NCiNMb2FkTW9kdWxlIGF1dGh6X293bmVyX21vZHVsZSBtb2R1bGVzL21vZF9h
dXRoel9vd25lci5zbw0KTG9hZE1vZHVsZSBhdXRoel91c2VyX21vZHVsZSBtb2R1bGVzL21vZF9h
dXRoel91c2VyLnNvDQpMb2FkTW9kdWxlIGF1dG9pbmRleF9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0
b2luZGV4LnNvDQojTG9hZE1vZHVsZSBjYWNoZV9tb2R1bGUgbW9kdWxlcy9tb2RfY2FjaGUuc28N
CiNMb2FkTW9kdWxlIGNlcm5fbWV0YV9tb2R1bGUgbW9kdWxlcy9tb2RfY2Vybl9tZXRhLnNvDQpM
b2FkTW9kdWxlIGNnaV9tb2R1bGUgbW9kdWxlcy9tb2RfY2dpLnNvDQojTG9hZE1vZHVsZSBjaGFy
c2V0X2xpdGVfbW9kdWxlIG1vZHVsZXMvbW9kX2NoYXJzZXRfbGl0ZS5zbw0KI0xvYWRNb2R1bGUg
ZGF2X21vZHVsZSBtb2R1bGVzL21vZF9kYXYuc28NCiNMb2FkTW9kdWxlIGRhdl9mc19tb2R1bGUg
bW9kdWxlcy9tb2RfZGF2X2ZzLnNvDQojTG9hZE1vZHVsZSBkYXZfbG9ja19tb2R1bGUgbW9kdWxl
cy9tb2RfZGF2X2xvY2suc28NCkxvYWRNb2R1bGUgZGJkX21vZHVsZSBtb2R1bGVzL21vZF9kYmQu
c28NCiNMb2FkTW9kdWxlIGRlZmxhdGVfbW9kdWxlIG1vZHVsZXMvbW9kX2RlZmxhdGUuc28NCkxv
YWRNb2R1bGUgZGlyX21vZHVsZSBtb2R1bGVzL21vZF9kaXIuc28NCiNMb2FkTW9kdWxlIGRpc2tf
Y2FjaGVfbW9kdWxlIG1vZHVsZXMvbW9kX2Rpc2tfY2FjaGUuc28NCiNMb2FkTW9kdWxlIGR1bXBp
b19tb2R1bGUgbW9kdWxlcy9tb2RfZHVtcGlvLnNvDQpMb2FkTW9kdWxlIGVudl9tb2R1bGUgbW9k
dWxlcy9tb2RfZW52LnNvDQojTG9hZE1vZHVsZSBleHBpcmVzX21vZHVsZSBtb2R1bGVzL21vZF9l
eHBpcmVzLnNvDQojTG9hZE1vZHVsZSBleHRfZmlsdGVyX21vZHVsZSBtb2R1bGVzL21vZF9leHRf
ZmlsdGVyLnNvDQojTG9hZE1vZHVsZSBmaWxlX2NhY2hlX21vZHVsZSBtb2R1bGVzL21vZF9maWxl
X2NhY2hlLnNvDQojTG9hZE1vZHVsZSBmaWx0ZXJfbW9kdWxlIG1vZHVsZXMvbW9kX2ZpbHRlci5z
bw0KI0xvYWRNb2R1bGUgaGVhZGVyc19tb2R1bGUgbW9kdWxlcy9tb2RfaGVhZGVycy5zbw0KI0xv
YWRNb2R1bGUgaWRlbnRfbW9kdWxlIG1vZHVsZXMvbW9kX2lkZW50LnNvDQojTG9hZE1vZHVsZSBp
bWFnZW1hcF9tb2R1bGUgbW9kdWxlcy9tb2RfaW1hZ2VtYXAuc28NCkxvYWRNb2R1bGUgaW5jbHVk
ZV9tb2R1bGUgbW9kdWxlcy9tb2RfaW5jbHVkZS5zbw0KI0xvYWRNb2R1bGUgaW5mb19tb2R1bGUg
bW9kdWxlcy9tb2RfaW5mby5zbw0KTG9hZE1vZHVsZSBpc2FwaV9tb2R1bGUgbW9kdWxlcy9tb2Rf
aXNhcGkuc28NCiNMb2FkTW9kdWxlIGxkYXBfbW9kdWxlIG1vZHVsZXMvbW9kX2xkYXAuc28NCiNM
b2FkTW9kdWxlIGxvZ2lvX21vZHVsZSBtb2R1bGVzL21vZF9sb2dpby5zbw0KTG9hZE1vZHVsZSBs
b2dfY29uZmlnX21vZHVsZSBtb2R1bGVzL21vZF9sb2dfY29uZmlnLnNvDQojTG9hZE1vZHVsZSBs
b2dfZm9yZW5zaWNfbW9kdWxlIG1vZHVsZXMvbW9kX2xvZ19mb3JlbnNpYy5zbw0KI0xvYWRNb2R1
bGUgbWVtX2NhY2hlX21vZHVsZSBtb2R1bGVzL21vZF9tZW1fY2FjaGUuc28NCkxvYWRNb2R1bGUg
bWltZV9tb2R1bGUgbW9kdWxlcy9tb2RfbWltZS5zbw0KI0xvYWRNb2R1bGUgbWltZV9tYWdpY19t
b2R1bGUgbW9kdWxlcy9tb2RfbWltZV9tYWdpYy5zbw0KTG9hZE1vZHVsZSBuZWdvdGlhdGlvbl9t
b2R1bGUgbW9kdWxlcy9tb2RfbmVnb3RpYXRpb24uc28NCiNMb2FkTW9kdWxlIHByb3h5X21vZHVs
ZSBtb2R1bGVzL21vZF9wcm94eS5zbw0KI0xvYWRNb2R1bGUgcHJveHlfYWpwX21vZHVsZSBtb2R1
bGVzL21vZF9wcm94eV9hanAuc28NCiNMb2FkTW9kdWxlIHByb3h5X2JhbGFuY2VyX21vZHVsZSBt
b2R1bGVzL21vZF9wcm94eV9iYWxhbmNlci5zbw0KI0xvYWRNb2R1bGUgcHJveHlfY29ubmVjdF9t
b2R1bGUgbW9kdWxlcy9tb2RfcHJveHlfY29ubmVjdC5zbw0KI0xvYWRNb2R1bGUgcHJveHlfZnRw
X21vZHVsZSBtb2R1bGVzL21vZF9wcm94eV9mdHAuc28NCiNMb2FkTW9kdWxlIHByb3h5X2h0dHBf
bW9kdWxlIG1vZHVsZXMvbW9kX3Byb3h5X2h0dHAuc28NCiNMb2FkTW9kdWxlIHJld3JpdGVfbW9k
dWxlIG1vZHVsZXMvbW9kX3Jld3JpdGUuc28NCkxvYWRNb2R1bGUgc2V0ZW52aWZfbW9kdWxlIG1v
ZHVsZXMvbW9kX3NldGVudmlmLnNvDQojTG9hZE1vZHVsZSBzcGVsaW5nX21vZHVsZSBtb2R1bGVz
L21vZF9zcGVsaW5nLnNvDQojTG9hZE1vZHVsZSBzc2xfbW9kdWxlIG1vZHVsZXMvbW9kX3NzbC5z
bw0KI0xvYWRNb2R1bGUgc3RhdHVzX21vZHVsZSBtb2R1bGVzL21vZF9zdGF0dXMuc28NCiNMb2Fk
TW9kdWxlIHN1YnN0aXR1dGVfbW9kdWxlIG1vZHVsZXMvbW9kX3N1YnN0aXR1dGUuc28NCiNMb2Fk
TW9kdWxlIHVuaXF1ZV9pZF9tb2R1bGUgbW9kdWxlcy9tb2RfdW5pcXVlX2lkLnNvDQojTG9hZE1v
ZHVsZSB1c2VyZGlyX21vZHVsZSBtb2R1bGVzL21vZF91c2VyZGlyLnNvDQojTG9hZE1vZHVsZSB1
c2VydHJhY2tfbW9kdWxlIG1vZHVsZXMvbW9kX3VzZXJ0cmFjay5zbw0KI0xvYWRNb2R1bGUgdmVy
c2lvbl9tb2R1bGUgbW9kdWxlcy9tb2RfdmVyc2lvbi5zbw0KI0xvYWRNb2R1bGUgdmhvc3RfYWxp
YXNfbW9kdWxlIG1vZHVsZXMvbW9kX3Zob3N0X2FsaWFzLnNvDQoNCjxJZk1vZHVsZSAhbXBtX25l
dHdhcmVfbW9kdWxlPg0KPElmTW9kdWxlICFtcG1fd2lubnRfbW9kdWxlPg0KIw0KIyBJZiB5b3Ug
d2lzaCBodHRwZCB0byBydW4gYXMgYSBkaWZmZXJlbnQgdXNlciBvciBncm91cCwgeW91IG11c3Qg
cnVuDQojIGh0dHBkIGFzIHJvb3QgaW5pdGlhbGx5IGFuZCBpdCB3aWxsIHN3aXRjaC4gIA0KIw0K
IyBVc2VyL0dyb3VwOiBUaGUgbmFtZSAob3IgI251bWJlcikgb2YgdGhlIHVzZXIvZ3JvdXAgdG8g
cnVuIGh0dHBkIGFzLg0KIyBJdCBpcyB1c3VhbGx5IGdvb2QgcHJhY3RpY2UgdG8gY3JlYXRlIGEg
ZGVkaWNhdGVkIHVzZXIgYW5kIGdyb3VwIGZvcg0KIyBydW5uaW5nIGh0dHBkLCBhcyB3aXRoIG1v
c3Qgc3lzdGVtIHNlcnZpY2VzLg0KIw0KVXNlciBkYWVtb24NCkdyb3VwIGRhZW1vbg0KDQo8L0lm
TW9kdWxlPg0KPC9JZk1vZHVsZT4NCg0KIyAnTWFpbicgc2VydmVyIGNvbmZpZ3VyYXRpb24NCiMN
CiMgVGhlIGRpcmVjdGl2ZXMgaW4gdGhpcyBzZWN0aW9uIHNldCB1cCB0aGUgdmFsdWVzIHVzZWQg
YnkgdGhlICdtYWluJw0KIyBzZXJ2ZXIsIHdoaWNoIHJlc3BvbmRzIHRvIGFueSByZXF1ZXN0cyB0
aGF0IGFyZW4ndCBoYW5kbGVkIGJ5IGENCiMgPFZpcnR1YWxIb3N0PiBkZWZpbml0aW9uLiAgVGhl
c2UgdmFsdWVzIGFsc28gcHJvdmlkZSBkZWZhdWx0cyBmb3INCiMgYW55IDxWaXJ0dWFsSG9zdD4g
Y29udGFpbmVycyB5b3UgbWF5IGRlZmluZSBsYXRlciBpbiB0aGUgZmlsZS4NCiMNCiMgQWxsIG9m
IHRoZXNlIGRpcmVjdGl2ZXMgbWF5IGFwcGVhciBpbnNpZGUgPFZpcnR1YWxIb3N0PiBjb250YWlu
ZXJzLA0KIyBpbiB3aGljaCBjYXNlIHRoZXNlIGRlZmF1bHQgc2V0dGluZ3Mgd2lsbCBiZSBvdmVy
cmlkZGVuIGZvciB0aGUNCiMgdmlydHVhbCBob3N0IGJlaW5nIGRlZmluZWQuDQojDQoNCiMNCiMg
U2VydmVyQWRtaW46IFlvdXIgYWRkcmVzcywgd2hlcmUgcHJvYmxlbXMgd2l0aCB0aGUgc2VydmVy
IHNob3VsZCBiZQ0KIyBlLW1haWxlZC4gIFRoaXMgYWRkcmVzcyBhcHBlYXJzIG9uIHNvbWUgc2Vy
dmVyLWdlbmVyYXRlZCBwYWdlcywgc3VjaA0KIyBhcyBlcnJvciBkb2N1bWVudHMuICBlLmcuIGFk
bWluQHlvdXItZG9tYWluLmNvbQ0KIw0KU2VydmVyQWRtaW4ganRob21hc0BnbG9iZW9wLmNvbQ0K
DQojDQojIFNlcnZlck5hbWUgZ2l2ZXMgdGhlIG5hbWUgYW5kIHBvcnQgdGhhdCB0aGUgc2VydmVy
IHVzZXMgdG8gaWRlbnRpZnkgaXRzZWxmLg0KIyBUaGlzIGNhbiBvZnRlbiBiZSBkZXRlcm1pbmVk
IGF1dG9tYXRpY2FsbHksIGJ1dCB3ZSByZWNvbW1lbmQgeW91IHNwZWNpZnkNCiMgaXQgZXhwbGlj
aXRseSB0byBwcmV2ZW50IHByb2JsZW1zIGR1cmluZyBzdGFydHVwLg0KIw0KIyBJZiB5b3VyIGhv
c3QgZG9lc24ndCBoYXZlIGEgcmVnaXN0ZXJlZCBETlMgbmFtZSwgZW50ZXIgaXRzIElQIGFkZHJl
c3MgaGVyZS4NCiMNClNlcnZlck5hbWUgbGRuMWRwYzM4My5nbG9iZW9wLmNvbTo4MA0KDQojDQoj
IERvY3VtZW50Um9vdDogVGhlIGRpcmVjdG9yeSBvdXQgb2Ygd2hpY2ggeW91IHdpbGwgc2VydmUg
eW91cg0KIyBkb2N1bWVudHMuIEJ5IGRlZmF1bHQsIGFsbCByZXF1ZXN0cyBhcmUgdGFrZW4gZnJv
bSB0aGlzIGRpcmVjdG9yeSwgYnV0DQojIHN5bWJvbGljIGxpbmtzIGFuZCBhbGlhc2VzIG1heSBi
ZSB1c2VkIHRvIHBvaW50IHRvIG90aGVyIGxvY2F0aW9ucy4NCiMNCkRvY3VtZW50Um9vdCAiRDov
QXBwcy9BcGFjaGUyLjIvaHRkb2NzIg0KDQojDQojIEVhY2ggZGlyZWN0b3J5IHRvIHdoaWNoIEFw
YWNoZSBoYXMgYWNjZXNzIGNhbiBiZSBjb25maWd1cmVkIHdpdGggcmVzcGVjdA0KIyB0byB3aGlj
aCBzZXJ2aWNlcyBhbmQgZmVhdHVyZXMgYXJlIGFsbG93ZWQgYW5kL29yIGRpc2FibGVkIGluIHRo
YXQNCiMgZGlyZWN0b3J5IChhbmQgaXRzIHN1YmRpcmVjdG9yaWVzKS4gDQojDQojIEZpcnN0LCB3
ZSBjb25maWd1cmUgdGhlICJkZWZhdWx0IiB0byBiZSBhIHZlcnkgcmVzdHJpY3RpdmUgc2V0IG9m
IA0KIyBmZWF0dXJlcy4gIA0KIw0KPERpcmVjdG9yeSAvPg0KICAgIE9wdGlvbnMgRm9sbG93U3lt
TGlua3MNCiAgICBBbGxvd092ZXJyaWRlIE5vbmUNCiAgICBPcmRlciBkZW55LGFsbG93DQogICAg
RGVueSBmcm9tIGFsbA0KPC9EaXJlY3Rvcnk+DQoNCiMNCiMgTm90ZSB0aGF0IGZyb20gdGhpcyBw
b2ludCBmb3J3YXJkIHlvdSBtdXN0IHNwZWNpZmljYWxseSBhbGxvdw0KIyBwYXJ0aWN1bGFyIGZl
YXR1cmVzIHRvIGJlIGVuYWJsZWQgLSBzbyBpZiBzb21ldGhpbmcncyBub3Qgd29ya2luZyBhcw0K
IyB5b3UgbWlnaHQgZXhwZWN0LCBtYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZSBzcGVjaWZpY2FsbHkg
ZW5hYmxlZCBpdA0KIyBiZWxvdy4NCiMNCg0KIw0KIyBUaGlzIHNob3VsZCBiZSBjaGFuZ2VkIHRv
IHdoYXRldmVyIHlvdSBzZXQgRG9jdW1lbnRSb290IHRvLg0KIw0KPERpcmVjdG9yeSAiRDovQXBw
cy9BcGFjaGUyLjIvaHRkb2NzIj4NCiAgICAjDQogICAgIyBQb3NzaWJsZSB2YWx1ZXMgZm9yIHRo
ZSBPcHRpb25zIGRpcmVjdGl2ZSBhcmUgIk5vbmUiLCAiQWxsIiwNCiAgICAjIG9yIGFueSBjb21i
aW5hdGlvbiBvZjoNCiAgICAjICAgSW5kZXhlcyBJbmNsdWRlcyBGb2xsb3dTeW1MaW5rcyBTeW1M
aW5rc2lmT3duZXJNYXRjaCBFeGVjQ0dJIE11bHRpVmlld3MNCiAgICAjDQogICAgIyBOb3RlIHRo
YXQgIk11bHRpVmlld3MiIG11c3QgYmUgbmFtZWQgKmV4cGxpY2l0bHkqIC0tLSAiT3B0aW9ucyBB
bGwiDQogICAgIyBkb2Vzbid0IGdpdmUgaXQgdG8geW91Lg0KICAgICMNCiAgICAjIFRoZSBPcHRp
b25zIGRpcmVjdGl2ZSBpcyBib3RoIGNvbXBsaWNhdGVkIGFuZCBpbXBvcnRhbnQuICBQbGVhc2Ug
c2VlDQogICAgIyBodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuMi9tb2QvY29yZS5odG1s
I29wdGlvbnMNCiAgICAjIGZvciBtb3JlIGluZm9ybWF0aW9uLg0KICAgICMNCiAgICBPcHRpb25z
IEluZGV4ZXMgRm9sbG93U3ltTGlua3MNCg0KICAgICMNCiAgICAjIEFsbG93T3ZlcnJpZGUgY29u
dHJvbHMgd2hhdCBkaXJlY3RpdmVzIG1heSBiZSBwbGFjZWQgaW4gLmh0YWNjZXNzIGZpbGVzLg0K
ICAgICMgSXQgY2FuIGJlICJBbGwiLCAiTm9uZSIsIG9yIGFueSBjb21iaW5hdGlvbiBvZiB0aGUg
a2V5d29yZHM6DQogICAgIyAgIE9wdGlvbnMgRmlsZUluZm8gQXV0aENvbmZpZyBMaW1pdA0KICAg
ICMNCiAgICBBbGxvd092ZXJyaWRlIE5vbmUNCg0KICAgICMNCiAgICAjIENvbnRyb2xzIHdobyBj
YW4gZ2V0IHN0dWZmIGZyb20gdGhpcyBzZXJ2ZXIuDQogICAgIw0KICAgIE9yZGVyIGFsbG93LGRl
bnkNCiAgICBBbGxvdyBmcm9tIGFsbA0KDQo8L0RpcmVjdG9yeT4NCg0KIw0KIyBEaXJlY3RvcnlJ
bmRleDogc2V0cyB0aGUgZmlsZSB0aGF0IEFwYWNoZSB3aWxsIHNlcnZlIGlmIGEgZGlyZWN0b3J5
DQojIGlzIHJlcXVlc3RlZC4NCiMNCjxJZk1vZHVsZSBkaXJfbW9kdWxlPg0KICAgIERpcmVjdG9y
eUluZGV4IGluZGV4Lmh0bWwNCjwvSWZNb2R1bGU+DQoNCiMNCiMgVGhlIGZvbGxvd2luZyBsaW5l
cyBwcmV2ZW50IC5odGFjY2VzcyBhbmQgLmh0cGFzc3dkIGZpbGVzIGZyb20gYmVpbmcgDQojIHZp
ZXdlZCBieSBXZWIgY2xpZW50cy4gDQojDQo8RmlsZXNNYXRjaCAiXlwuaHQiPg0KICAgIE9yZGVy
IGFsbG93LGRlbnkNCiAgICBEZW55IGZyb20gYWxsDQogICAgU2F0aXNmeSBBbGwNCjwvRmlsZXNN
YXRjaD4NCg0KIw0KIyBFcnJvckxvZzogVGhlIGxvY2F0aW9uIG9mIHRoZSBlcnJvciBsb2cgZmls
ZS4NCiMgSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGFuIEVycm9yTG9nIGRpcmVjdGl2ZSB3aXRoaW4g
YSA8VmlydHVhbEhvc3Q+DQojIGNvbnRhaW5lciwgZXJyb3IgbWVzc2FnZXMgcmVsYXRpbmcgdG8g
dGhhdCB2aXJ0dWFsIGhvc3Qgd2lsbCBiZQ0KIyBsb2dnZWQgaGVyZS4gIElmIHlvdSAqZG8qIGRl
ZmluZSBhbiBlcnJvciBsb2dmaWxlIGZvciBhIDxWaXJ0dWFsSG9zdD4NCiMgY29udGFpbmVyLCB0
aGF0IGhvc3QncyBlcnJvcnMgd2lsbCBiZSBsb2dnZWQgdGhlcmUgYW5kIG5vdCBoZXJlLg0KIw0K
RXJyb3JMb2cgImxvZ3MvZXJyb3IubG9nIg0KDQojDQojIExvZ0xldmVsOiBDb250cm9sIHRoZSBu
dW1iZXIgb2YgbWVzc2FnZXMgbG9nZ2VkIHRvIHRoZSBlcnJvcl9sb2cuDQojIFBvc3NpYmxlIHZh
bHVlcyBpbmNsdWRlOiBkZWJ1ZywgaW5mbywgbm90aWNlLCB3YXJuLCBlcnJvciwgY3JpdCwNCiMg
YWxlcnQsIGVtZXJnLg0KIw0KTG9nTGV2ZWwgd2Fybg0KDQo8SWZNb2R1bGUgbG9nX2NvbmZpZ19t
b2R1bGU+DQogICAgIw0KICAgICMgVGhlIGZvbGxvd2luZyBkaXJlY3RpdmVzIGRlZmluZSBzb21l
IGZvcm1hdCBuaWNrbmFtZXMgZm9yIHVzZSB3aXRoDQogICAgIyBhIEN1c3RvbUxvZyBkaXJlY3Rp
dmUgKHNlZSBiZWxvdykuDQogICAgIw0KICAgIExvZ0Zvcm1hdCAiJWggJWwgJXUgJXQgXCIlclwi
ICU+cyAlYiBcIiV7UmVmZXJlcn1pXCIgXCIle1VzZXItQWdlbnR9aVwiIiBjb21iaW5lZA0KICAg
IExvZ0Zvcm1hdCAiJWggJWwgJXUgJXQgXCIlclwiICU+cyAlYiIgY29tbW9uDQoNCiAgICA8SWZN
b2R1bGUgbG9naW9fbW9kdWxlPg0KICAgICAgIyBZb3UgbmVlZCB0byBlbmFibGUgbW9kX2xvZ2lv
LmMgdG8gdXNlICVJIGFuZCAlTw0KICAgICAgTG9nRm9ybWF0ICIlaCAlbCAldSAldCBcIiVyXCIg
JT5zICViIFwiJXtSZWZlcmVyfWlcIiBcIiV7VXNlci1BZ2VudH1pXCIgJUkgJU8iIGNvbWJpbmVk
aW8NCiAgICA8L0lmTW9kdWxlPg0KDQogICAgIw0KICAgICMgVGhlIGxvY2F0aW9uIGFuZCBmb3Jt
YXQgb2YgdGhlIGFjY2VzcyBsb2dmaWxlIChDb21tb24gTG9nZmlsZSBGb3JtYXQpLg0KICAgICMg
SWYgeW91IGRvIG5vdCBkZWZpbmUgYW55IGFjY2VzcyBsb2dmaWxlcyB3aXRoaW4gYSA8VmlydHVh
bEhvc3Q+DQogICAgIyBjb250YWluZXIsIHRoZXkgd2lsbCBiZSBsb2dnZWQgaGVyZS4gIENvbnRy
YXJpd2lzZSwgaWYgeW91ICpkbyoNCiAgICAjIGRlZmluZSBwZXItPFZpcnR1YWxIb3N0PiBhY2Nl
c3MgbG9nZmlsZXMsIHRyYW5zYWN0aW9ucyB3aWxsIGJlDQogICAgIyBsb2dnZWQgdGhlcmVpbiBh
bmQgKm5vdCogaW4gdGhpcyBmaWxlLg0KICAgICMNCiAgICBDdXN0b21Mb2cgImxvZ3MvYWNjZXNz
LmxvZyIgY29tbW9uDQoNCiAgICAjDQogICAgIyBJZiB5b3UgcHJlZmVyIGEgbG9nZmlsZSB3aXRo
IGFjY2VzcywgYWdlbnQsIGFuZCByZWZlcmVyIGluZm9ybWF0aW9uDQogICAgIyAoQ29tYmluZWQg
TG9nZmlsZSBGb3JtYXQpIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgZGlyZWN0aXZlLg0KICAg
ICMNCiAgICAjQ3VzdG9tTG9nICJsb2dzL2FjY2Vzcy5sb2ciIGNvbWJpbmVkDQo8L0lmTW9kdWxl
Pg0KDQo8SWZNb2R1bGUgYWxpYXNfbW9kdWxlPg0KICAgICMNCiAgICAjIFJlZGlyZWN0OiBBbGxv
d3MgeW91IHRvIHRlbGwgY2xpZW50cyBhYm91dCBkb2N1bWVudHMgdGhhdCB1c2VkIHRvIA0KICAg
ICMgZXhpc3QgaW4geW91ciBzZXJ2ZXIncyBuYW1lc3BhY2UsIGJ1dCBkbyBub3QgYW55bW9yZS4g
VGhlIGNsaWVudCANCiAgICAjIHdpbGwgbWFrZSBhIG5ldyByZXF1ZXN0IGZvciB0aGUgZG9jdW1l
bnQgYXQgaXRzIG5ldyBsb2NhdGlvbi4NCiAgICAjIEV4YW1wbGU6DQogICAgIyBSZWRpcmVjdCBw
ZXJtYW5lbnQgL2ZvbyBodHRwOi8vbGRuMWRwYzM4My5nbG9iZW9wLmNvbS9iYXINCg0KICAgICMN
CiAgICAjIEFsaWFzOiBNYXBzIHdlYiBwYXRocyBpbnRvIGZpbGVzeXN0ZW0gcGF0aHMgYW5kIGlz
IHVzZWQgdG8NCiAgICAjIGFjY2VzcyBjb250ZW50IHRoYXQgZG9lcyBub3QgbGl2ZSB1bmRlciB0
aGUgRG9jdW1lbnRSb290Lg0KICAgICMgRXhhbXBsZToNCiAgICAjIEFsaWFzIC93ZWJwYXRoIC9m
dWxsL2ZpbGVzeXN0ZW0vcGF0aA0KICAgICMNCiAgICAjIElmIHlvdSBpbmNsdWRlIGEgdHJhaWxp
bmcgLyBvbiAvd2VicGF0aCB0aGVuIHRoZSBzZXJ2ZXIgd2lsbA0KICAgICMgcmVxdWlyZSBpdCB0
byBiZSBwcmVzZW50IGluIHRoZSBVUkwuICBZb3Ugd2lsbCBhbHNvIGxpa2VseQ0KICAgICMgbmVl
ZCB0byBwcm92aWRlIGEgPERpcmVjdG9yeT4gc2VjdGlvbiB0byBhbGxvdyBhY2Nlc3MgdG8NCiAg
ICAjIHRoZSBmaWxlc3lzdGVtIHBhdGguDQoNCiAgICAjDQogICAgIyBTY3JpcHRBbGlhczogVGhp
cyBjb250cm9scyB3aGljaCBkaXJlY3RvcmllcyBjb250YWluIHNlcnZlciBzY3JpcHRzLiANCiAg
ICAjIFNjcmlwdEFsaWFzZXMgYXJlIGVzc2VudGlhbGx5IHRoZSBzYW1lIGFzIEFsaWFzZXMsIGV4
Y2VwdCB0aGF0DQogICAgIyBkb2N1bWVudHMgaW4gdGhlIHRhcmdldCBkaXJlY3RvcnkgYXJlIHRy
ZWF0ZWQgYXMgYXBwbGljYXRpb25zIGFuZA0KICAgICMgcnVuIGJ5IHRoZSBzZXJ2ZXIgd2hlbiBy
ZXF1ZXN0ZWQgcmF0aGVyIHRoYW4gYXMgZG9jdW1lbnRzIHNlbnQgdG8gdGhlDQogICAgIyBjbGll
bnQuICBUaGUgc2FtZSBydWxlcyBhYm91dCB0cmFpbGluZyAiLyIgYXBwbHkgdG8gU2NyaXB0QWxp
YXMNCiAgICAjIGRpcmVjdGl2ZXMgYXMgdG8gQWxpYXMuDQogICAgIw0KICAgIFNjcmlwdEFsaWFz
IC9jZ2ktYmluLyAiRDovQXBwcy9BcGFjaGUyLjIvY2dpLWJpbi8iDQoNCjwvSWZNb2R1bGU+DQoN
CjxJZk1vZHVsZSBjZ2lkX21vZHVsZT4NCiAgICAjDQogICAgIyBTY3JpcHRTb2NrOiBPbiB0aHJl
YWRlZCBzZXJ2ZXJzLCBkZXNpZ25hdGUgdGhlIHBhdGggdG8gdGhlIFVOSVgNCiAgICAjIHNvY2tl
dCB1c2VkIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIENHSSBkYWVtb24gb2YgbW9kX2NnaWQuDQog
ICAgIw0KICAgICNTY3JpcHRzb2NrIGxvZ3MvY2dpc29jaw0KPC9JZk1vZHVsZT4NCg0KIw0KIyAi
RDovQXBwcy9BcGFjaGUyLjIvY2dpLWJpbiIgc2hvdWxkIGJlIGNoYW5nZWQgdG8gd2hhdGV2ZXIg
eW91ciBTY3JpcHRBbGlhc2VkDQojIENHSSBkaXJlY3RvcnkgZXhpc3RzLCBpZiB5b3UgaGF2ZSB0
aGF0IGNvbmZpZ3VyZWQuDQojDQo8RGlyZWN0b3J5ICJEOi9BcHBzL0FwYWNoZTIuMi9jZ2ktYmlu
Ij4NCiAgICBBbGxvd092ZXJyaWRlIE5vbmUNCiAgICBPcHRpb25zIE5vbmUNCiAgICBPcmRlciBh
bGxvdyxkZW55DQogICAgQWxsb3cgZnJvbSBhbGwNCjwvRGlyZWN0b3J5Pg0KDQojDQojIERlZmF1
bHRUeXBlOiB0aGUgZGVmYXVsdCBNSU1FIHR5cGUgdGhlIHNlcnZlciB3aWxsIHVzZSBmb3IgYSBk
b2N1bWVudA0KIyBpZiBpdCBjYW5ub3Qgb3RoZXJ3aXNlIGRldGVybWluZSBvbmUsIHN1Y2ggYXMg
ZnJvbSBmaWxlbmFtZSBleHRlbnNpb25zLg0KIyBJZiB5b3VyIHNlcnZlciBjb250YWlucyBtb3N0
bHkgdGV4dCBvciBIVE1MIGRvY3VtZW50cywgInRleHQvcGxhaW4iIGlzDQojIGEgZ29vZCB2YWx1
ZS4gIElmIG1vc3Qgb2YgeW91ciBjb250ZW50IGlzIGJpbmFyeSwgc3VjaCBhcyBhcHBsaWNhdGlv
bnMNCiMgb3IgaW1hZ2VzLCB5b3UgbWF5IHdhbnQgdG8gdXNlICJhcHBsaWNhdGlvbi9vY3RldC1z
dHJlYW0iIGluc3RlYWQgdG8NCiMga2VlcCBicm93c2VycyBmcm9tIHRyeWluZyB0byBkaXNwbGF5
IGJpbmFyeSBmaWxlcyBhcyB0aG91Z2ggdGhleSBhcmUNCiMgdGV4dC4NCiMNCkRlZmF1bHRUeXBl
IHRleHQvcGxhaW4NCg0KPElmTW9kdWxlIG1pbWVfbW9kdWxlPg0KICAgICMNCiAgICAjIFR5cGVz
Q29uZmlnIHBvaW50cyB0byB0aGUgZmlsZSBjb250YWluaW5nIHRoZSBsaXN0IG9mIG1hcHBpbmdz
IGZyb20NCiAgICAjIGZpbGVuYW1lIGV4dGVuc2lvbiB0byBNSU1FLXR5cGUuDQogICAgIw0KICAg
IFR5cGVzQ29uZmlnIGNvbmYvbWltZS50eXBlcw0KDQogICAgIw0KICAgICMgQWRkVHlwZSBhbGxv
d3MgeW91IHRvIGFkZCB0byBvciBvdmVycmlkZSB0aGUgTUlNRSBjb25maWd1cmF0aW9uDQogICAg
IyBmaWxlIHNwZWNpZmllZCBpbiBUeXBlc0NvbmZpZyBmb3Igc3BlY2lmaWMgZmlsZSB0eXBlcy4N
CiAgICAjDQogICAgI0FkZFR5cGUgYXBwbGljYXRpb24veC1nemlwIC50Z3oNCiAgICAjDQogICAg
IyBBZGRFbmNvZGluZyBhbGxvd3MgeW91IHRvIGhhdmUgY2VydGFpbiBicm93c2VycyB1bmNvbXBy
ZXNzDQogICAgIyBpbmZvcm1hdGlvbiBvbiB0aGUgZmx5LiBOb3RlOiBOb3QgYWxsIGJyb3dzZXJz
IHN1cHBvcnQgdGhpcy4NCiAgICAjDQogICAgI0FkZEVuY29kaW5nIHgtY29tcHJlc3MgLloNCiAg
ICAjQWRkRW5jb2RpbmcgeC1nemlwIC5neiAudGd6DQogICAgIw0KICAgICMgSWYgdGhlIEFkZEVu
Y29kaW5nIGRpcmVjdGl2ZXMgYWJvdmUgYXJlIGNvbW1lbnRlZC1vdXQsIHRoZW4geW91DQogICAg
IyBwcm9iYWJseSBzaG91bGQgZGVmaW5lIHRob3NlIGV4dGVuc2lvbnMgdG8gaW5kaWNhdGUgbWVk
aWEgdHlwZXM6DQogICAgIw0KICAgIEFkZFR5cGUgYXBwbGljYXRpb24veC1jb21wcmVzcyAuWg0K
ICAgIEFkZFR5cGUgYXBwbGljYXRpb24veC1nemlwIC5neiAudGd6DQoNCiAgICAjDQogICAgIyBB
ZGRIYW5kbGVyIGFsbG93cyB5b3UgdG8gbWFwIGNlcnRhaW4gZmlsZSBleHRlbnNpb25zIHRvICJo
YW5kbGVycyI6DQogICAgIyBhY3Rpb25zIHVucmVsYXRlZCB0byBmaWxldHlwZS4gVGhlc2UgY2Fu
IGJlIGVpdGhlciBidWlsdCBpbnRvIHRoZSBzZXJ2ZXINCiAgICAjIG9yIGFkZGVkIHdpdGggdGhl
IEFjdGlvbiBkaXJlY3RpdmUgKHNlZSBiZWxvdykNCiAgICAjDQogICAgIyBUbyB1c2UgQ0dJIHNj
cmlwdHMgb3V0c2lkZSBvZiBTY3JpcHRBbGlhc2VkIGRpcmVjdG9yaWVzOg0KICAgICMgKFlvdSB3
aWxsIGFsc28gbmVlZCB0byBhZGQgIkV4ZWNDR0kiIHRvIHRoZSAiT3B0aW9ucyIgZGlyZWN0aXZl
LikNCiAgICAjDQogICAgI0FkZEhhbmRsZXIgY2dpLXNjcmlwdCAuY2dpDQoNCiAgICAjIEZvciB0
eXBlIG1hcHMgKG5lZ290aWF0ZWQgcmVzb3VyY2VzKToNCiAgICAjQWRkSGFuZGxlciB0eXBlLW1h
cCB2YXINCg0KICAgICMNCiAgICAjIEZpbHRlcnMgYWxsb3cgeW91IHRvIHByb2Nlc3MgY29udGVu
dCBiZWZvcmUgaXQgaXMgc2VudCB0byB0aGUgY2xpZW50Lg0KICAgICMNCiAgICAjIFRvIHBhcnNl
IC5zaHRtbCBmaWxlcyBmb3Igc2VydmVyLXNpZGUgaW5jbHVkZXMgKFNTSSk6DQogICAgIyAoWW91
IHdpbGwgYWxzbyBuZWVkIHRvIGFkZCAiSW5jbHVkZXMiIHRvIHRoZSAiT3B0aW9ucyIgZGlyZWN0
aXZlLikNCiAgICAjDQogICAgI0FkZFR5cGUgdGV4dC9odG1sIC5zaHRtbA0KICAgICNBZGRPdXRw
dXRGaWx0ZXIgSU5DTFVERVMgLnNodG1sDQo8L0lmTW9kdWxlPg0KDQojDQojIFRoZSBtb2RfbWlt
ZV9tYWdpYyBtb2R1bGUgYWxsb3dzIHRoZSBzZXJ2ZXIgdG8gdXNlIHZhcmlvdXMgaGludHMgZnJv
bSB0aGUNCiMgY29udGVudHMgb2YgdGhlIGZpbGUgaXRzZWxmIHRvIGRldGVybWluZSBpdHMgdHlw
ZS4gIFRoZSBNSU1FTWFnaWNGaWxlDQojIGRpcmVjdGl2ZSB0ZWxscyB0aGUgbW9kdWxlIHdoZXJl
IHRoZSBoaW50IGRlZmluaXRpb25zIGFyZSBsb2NhdGVkLg0KIw0KI01JTUVNYWdpY0ZpbGUgY29u
Zi9tYWdpYw0KDQojDQojIEN1c3RvbWl6YWJsZSBlcnJvciByZXNwb25zZXMgY29tZSBpbiB0aHJl
ZSBmbGF2b3JzOg0KIyAxKSBwbGFpbiB0ZXh0IDIpIGxvY2FsIHJlZGlyZWN0cyAzKSBleHRlcm5h
bCByZWRpcmVjdHMNCiMNCiMgU29tZSBleGFtcGxlczoNCiNFcnJvckRvY3VtZW50IDUwMCAiVGhl
IHNlcnZlciBtYWRlIGEgYm9vIGJvby4iDQojRXJyb3JEb2N1bWVudCA0MDQgL21pc3NpbmcuaHRt
bA0KI0Vycm9yRG9jdW1lbnQgNDA0ICIvY2dpLWJpbi9taXNzaW5nX2hhbmRsZXIucGwiDQojRXJy
b3JEb2N1bWVudCA0MDIgaHR0cDovL2xkbjFkcGMzODMuZ2xvYmVvcC5jb20vc3Vic2NyaXB0aW9u
X2luZm8uaHRtbA0KIw0KDQojDQojIEVuYWJsZU1NQVAgYW5kIEVuYWJsZVNlbmRmaWxlOiBPbiBz
eXN0ZW1zIHRoYXQgc3VwcG9ydCBpdCwgDQojIG1lbW9yeS1tYXBwaW5nIG9yIHRoZSBzZW5kZmls
ZSBzeXNjYWxsIGlzIHVzZWQgdG8gZGVsaXZlcg0KIyBmaWxlcy4gIFRoaXMgdXN1YWxseSBpbXBy
b3ZlcyBzZXJ2ZXIgcGVyZm9ybWFuY2UsIGJ1dCBtdXN0DQojIGJlIHR1cm5lZCBvZmYgd2hlbiBz
ZXJ2aW5nIGZyb20gbmV0d29ya2VkLW1vdW50ZWQgDQojIGZpbGVzeXN0ZW1zIG9yIGlmIHN1cHBv
cnQgZm9yIHRoZXNlIGZ1bmN0aW9ucyBpcyBvdGhlcndpc2UNCiMgYnJva2VuIG9uIHlvdXIgc3lz
dGVtLg0KIw0KI0VuYWJsZU1NQVAgb2ZmDQojRW5hYmxlU2VuZGZpbGUgb2ZmDQoNCiMgU3VwcGxl
bWVudGFsIGNvbmZpZ3VyYXRpb24NCiMNCiMgVGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMgaW4gdGhl
IGNvbmYvZXh0cmEvIGRpcmVjdG9yeSBjYW4gYmUgDQojIGluY2x1ZGVkIHRvIGFkZCBleHRyYSBm
ZWF0dXJlcyBvciB0byBtb2RpZnkgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBvZiANCiMgdGhl
IHNlcnZlciwgb3IgeW91IG1heSBzaW1wbHkgY29weSB0aGVpciBjb250ZW50cyBoZXJlIGFuZCBj
aGFuZ2UgYXMgDQojIG5lY2Vzc2FyeS4NCg0KIyBTZXJ2ZXItcG9vbCBtYW5hZ2VtZW50IChNUE0g
c3BlY2lmaWMpDQojSW5jbHVkZSBjb25mL2V4dHJhL2h0dHBkLW1wbS5jb25mDQoNCiMgTXVsdGkt
bGFuZ3VhZ2UgZXJyb3IgbWVzc2FnZXMNCiNJbmNsdWRlIGNvbmYvZXh0cmEvaHR0cGQtbXVsdGls
YW5nLWVycm9yZG9jLmNvbmYNCg0KIyBGYW5jeSBkaXJlY3RvcnkgbGlzdGluZ3MNCiNJbmNsdWRl
IGNvbmYvZXh0cmEvaHR0cGQtYXV0b2luZGV4LmNvbmYNCg0KIyBMYW5ndWFnZSBzZXR0aW5ncw0K
I0luY2x1ZGUgY29uZi9leHRyYS9odHRwZC1sYW5ndWFnZXMuY29uZg0KDQojIFVzZXIgaG9tZSBk
aXJlY3Rvcmllcw0KI0luY2x1ZGUgY29uZi9leHRyYS9odHRwZC11c2VyZGlyLmNvbmYNCg0KIyBS
ZWFsLXRpbWUgaW5mbyBvbiByZXF1ZXN0cyBhbmQgY29uZmlndXJhdGlvbg0KI0luY2x1ZGUgY29u
Zi9leHRyYS9odHRwZC1pbmZvLmNvbmYNCg0KIyBWaXJ0dWFsIGhvc3RzDQojSW5jbHVkZSBjb25m
L2V4dHJhL2h0dHBkLXZob3N0cy5jb25mDQoNCiMgTG9jYWwgYWNjZXNzIHRvIHRoZSBBcGFjaGUg
SFRUUCBTZXJ2ZXIgTWFudWFsDQojSW5jbHVkZSBjb25mL2V4dHJhL2h0dHBkLW1hbnVhbC5jb25m
DQoNCiMgRGlzdHJpYnV0ZWQgYXV0aG9yaW5nIGFuZCB2ZXJzaW9uaW5nIChXZWJEQVYpDQojSW5j
bHVkZSBjb25mL2V4dHJhL2h0dHBkLWRhdi5jb25mDQoNCiMgVmFyaW91cyBkZWZhdWx0IHNldHRp
bmdzDQojSW5jbHVkZSBjb25mL2V4dHJhL2h0dHBkLWRlZmF1bHQuY29uZg0KU2V0RW52IFNZQkFT
RV9KUkUgWjpcQXBwc1xzeWJhc2Vcc2hhcmVkLTFfMFxKUkUtMV8zDQpTZXRFbnYgU1lCQVNFIFo6
XEFwcHNcc3liYXNlDQpTZXRFbnYgU1lCQVNFX09DUyBPQ1MtMTJfNQ0KU2V0RW52IFBBVEggWjpc
QXBwc1xzeWJhc2VcT0NTLTEyXzVcYmluO1o6XEFwcHNcc3liYXNlXE9DUy0xMl81XGRsbDtaOlxB
cHBzXHN5YmFzZVxPQ1MtMTJfNVxsaWIzcDslUEFUSCUNClNldEVudiBTWUJBU0UgWjpcQXBwc1xz
eWJhc2UNClNldEVudiBTWUJBU0UgWjpcQXBwc1xzeWJhc2UNClNldEVudiBMRF9MSUJSQVJZX1BB
VEggWjpcQXBwc1xzeWJhc2VcT0NTLTEyXzVcZGxsDQpTZXRFbnYgTElCIFo6XEFwcHNcc3liYXNl
XE9DUy0xMl81XGxpYjtaOlxBcHBzXHN5YmFzZVxPQ1MtMTJfNVxsaWIzcA0KIyBTZWN1cmUgKFNT
TC9UTFMpIGNvbm5lY3Rpb25zDQojSW5jbHVkZSBjb25mL2V4dHJhL2h0dHBkLXNzbC5jb25mDQoj
DQojIE5vdGU6IFRoZSBmb2xsb3dpbmcgbXVzdCBtdXN0IGJlIHByZXNlbnQgdG8gc3VwcG9ydA0K
IyAgICAgICBzdGFydGluZyB3aXRob3V0IFNTTCBvbiBwbGF0Zm9ybXMgd2l0aCBubyAvZGV2L3Jh
bmRvbSBlcXVpdmFsZW50DQojICAgICAgIGJ1dCBhIHN0YXRpY2FsbHkgY29tcGlsZWQtaW4gbW9k
X3NzbC4NCiMNCjxJZk1vZHVsZSBzc2xfbW9kdWxlPg0KU1NMUmFuZG9tU2VlZCBzdGFydHVwIGJ1
aWx0aW4NClNTTFJhbmRvbVNlZWQgY29ubmVjdCBidWlsdGluDQo8L0lmTW9kdWxlPg0K

------_=_NextPart_001_01C96109.43121EE7--