Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tNqu9-002Znk-NC for pgsql-general@arkaria.postgresql.org; Wed, 18 Dec 2024 10:03:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tNqu8-00D2za-Rc for pgsql-general@arkaria.postgresql.org; Wed, 18 Dec 2024 10:03:44 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tNaSs-003Wbr-Ct for pgsql-general@lists.postgresql.org; Tue, 17 Dec 2024 16:30:30 +0000 Received: from zproxy5.mail3d.it ([212.78.3.138]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tNaSi-0003m9-Dn for pgsql-general@lists.postgresql.org; Tue, 17 Dec 2024 16:30:28 +0000 Received: from zproxy5.mail3d.it (localhost.localdomain [127.0.0.1]) by zproxy5.mail3d.it (Postfix) with ESMTPS id 7EC2F60C49; Tue, 17 Dec 2024 17:30:17 +0100 (CET) Received: from localhost (localhost.localdomain [127.0.0.1]) by zproxy5.mail3d.it (Postfix) with ESMTP id 644D460C16; Tue, 17 Dec 2024 17:30:17 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.10.3 zproxy5.mail3d.it 644D460C16 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cleistech.it; s=1D99BE42-E8ED-11ED-9278-A8004466375A; t=1734453017; bh=gzik/SFUDSk+9elqwANLxzo8c05CZTz2TIMsEWMYvHg=; h=Message-ID:Date:MIME-Version:To:From; b=JdFyci7r1MnbqKF2nb2Bx2KM6j0Xbe2kjuOisY6jFUssKJxlPZAOzVrWS7fcdaEgX CQAJc0tRtgbk/SVEJOTMlhoF4rnFzJmbXwjKAx05ShfVubj7SWM/Lwqi/NRbuqABAd SIGJQ2gehh6nyC6O8R2cf66n3h5G6Iesb0E80ew+rx5HUVdYBu7Bxm3DiSadHSHoV1 VeLYxpvQrR4ESEKfmW5Kjy4TsDyWuTqsIpmPghNcmN6zc655MX2SXegchmyhb5rK0W 8y2kDuic8YPWbWwbAHRo7VXtSMDMlt+nodi0B2l7NYNJhz+h0zreRkwjstYGcDhZzd 5xXp2DgnFWmQw== Received: from zproxy5.mail3d.it ([127.0.0.1]) by localhost (zproxy5.mail3d.it [127.0.0.1]) (amavis, port 10026) with ESMTP id BQRwDj2zvbBx; Tue, 17 Dec 2024 17:30:17 +0100 (CET) Received: from [192.168.0.50] (host-79-24-187-35.retail.telecomitalia.it [79.24.187.35]) by zproxy5.mail3d.it (Postfix) with ESMTPSA id A6FE360C49; Tue, 17 Dec 2024 17:30:16 +0100 (CET) Content-Type: multipart/mixed; boundary="------------VNgWbl07HAgAe0sMdT0E2IEq" Message-ID: <446423eb-4a4e-4135-bbb8-4d0e5c7aac3b@cleistech.it> Date: Tue, 17 Dec 2024 17:30:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: pgsql-general@lists.postgresql.org Content-Language: it From: Enrico Schenone Subject: Intermittent errors when fetching cursor rows on PostgreSQL 16 Cc: Massimo Catti , Livio Pizzolo List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------VNgWbl07HAgAe0sMdT0E2IEq Content-Type: multipart/alternative; boundary="------------PJLSLG1ViS9owtt8Bm7sG5Kz" --------------PJLSLG1ViS9owtt8Bm7sG5Kz Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Good day. My name is Enrico Schenone, from Genoa, Italy. I'm a software achitect working at Cleis Tech - Genoa - Italy=C2=A0 -=20 http://gruppocleis.it Me and my team are using PostgreSQL v12 to v16 on Debian 10-12 and=20 Ubuntu Server 22.04 LTS with no-cluster configuration. Our applications are developed with 4Js Genero platform (classified as=20 LCAP) - https://4js.com I whish to report an issue where I can't say if it happens at server or=20 client side (or both as well). The problem occurs occasionally and only when fetching rows from a=20 server-side cursor. The related query may be complex with joins or very=20 easy (just one static table with 86 rows without WHERE conditions). I have set the "debug5" verbosity level of PostgreSQL log and I have=20 extracted from millions of log line those who are belonging to separate=20 failing sessions/connections. At the same time I have extracted the related application log. For each failure reported into the client-side application log, I have a=20 distinct PostgreSQL detailed log. Then I have merged client-side end server-side logs along the timeline=20 and I have observed what client and server does. For example (S: means PostgreSQL Server log, while C: means Client log): |S||:| |||2024-12-16 17:27:14.*406* CET [2214722] cleistech@hh24odds_prod -=20 192.168.16.179000006*76054e0.21cb42* STATEMENT: *fetch forward 50 from cu= 6* ||C:| |ERROR =C2=A0; 2024-12-16 17:27:14.*407*; PID: 104257; =C2=A0User: genero= ; Ricerca=20 quote evento =C2=A0=C2=A0=C2=A0=C2=A01433958 fallita. General SQL error, = check=20 SQLCA.SQLERRD[2]. - *SQLSTATE: XX001*| | S:| |2024-12-16 17:27:14.*407* CET [2214722] cleistech@hh24odds_prod -=20 192.168.16.17908006*676054e0.21cb42* LOG: ||*08006*||*: could not=20 receive data from client*: Connection reset by peer | |2024-12-16 17:27:14.*407* CET [2214722] cleistech@hh24odds_prod -=20 192.168.16.17908006*676054e0.21cb42* LOCATION: =C2=A0pq_recvbuf, pqcomm.c= :953 | |2024-12-16 17:27:14.*407* CET [2214722] cleistech@hh24odds_prod -=20 192.168.16.17908003*676054e0.21cb42* DEBUG: *08003*: unexpected EOF on=20 client connection ||C:| |ERROR =C2=A0; 2024-12-16 17:27:14.*408*; PID: 104257; =C2=A0User: genero= ;=20 ver_quote: ERRORE in foreach ricerca bettype con spread. *SQLSTATE:=20 XX000* - SQLCODE: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-6372 - =C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-1 - *no connection to the=20 server* - abbandono validazione. | Before failing on the reported cursor, the program succesfully creates=20 and uses other cursors. When the issue is detected at client-side, the program terminates=20 without any abort and it is re-instantiated in seconds or minutes by a=20 scheduler. After a variable time (normally some minutes) and several failures it=20 goes to normal end without errors. What I reported in the body of this mail is only a subset of postgreSQL=20 and application logs. I can send several log files each reporting a=20 distinct and complete connection ID history. I tried to reproduce the issue on a "in-vitro" environment, with=20 single-to-multiple instances of the same program (up to 99 parallel=20 instances) and I have executed more than half million of test processes=20 without errors. This problem commonly happens only in production environments. Production environments can be: * Distinct application server and DB server on distinct subnets (no dropped packet detected on firewall, no memory/disk/network failure detected by "nmon" tool) * Distinct application server and DB server on same subnet (no firewall= ) * Same server for PostgreSQL and applications The VM running the PostgreSQL that I have used for my test is an Ubuntu=20 Server 22.04 LTS with 16 CPUs and 64 GB of RAM. For client applications I use Ubuntu Server 22.04 LTS. The postgresql.conf file is attached to this e-mail. I'm able to detect that there is an error but I really becomes mad=20 trying to find it. It seems a phantom that I know to exist but I can't=20 bring up. I kindly ask you to help me understand what and where is the problem,=20 and how to solve it. Hoping you can help me or address to someone who can do it. Thanks in advance. Enrico --=20 *Enrico Schenone* Software Architect *Cleis Tech s.r.l.* - www.gruppocleis.it Sede di Genova, Via Paolo Emilio Bensa, 2 - 16124 Genova, ITALY Tel: +39-0104071400 =C2=A0 Fax: +39-0104073276 Mobile: +39-320 7709352 E-mail: eschenone@cleistech.it --------------PJLSLG1ViS9owtt8Bm7sG5Kz Content-Type: multipart/related; boundary="------------gIaUFKHT1ZDQTUOsBsQBzIQo" --------------gIaUFKHT1ZDQTUOsBsQBzIQo Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Good day.
My name is Enrico Schenone, from Genoa, Italy.
I'm a software achitect working at Cleis Tech - Genoa - Italy=C2=A0 - htt= p://gruppocleis.it
Me and my team are using PostgreSQL v12 to v16 on Debian 10-12 and Ubuntu Server 22.04 LTS with no-cluster configuration.
Our applications are developed with 4Js Genero platform (classified as LCAP) - https://4js.com

I whish to report an issue where I can't say if it happens at server or client side (or both as well).
The problem occurs occasionally and only when fetching rows from a server-side cursor. The related query may be complex with joins or very easy (just one static table with 86 rows without WHERE conditions).
I have set the "debug5" verbosity level of PostgreSQL log and I have extracted from millions of log line those who are belonging to separate failing sessions/connections.
At the same time I have extracted the related application log.<= br> For each failure reported into the client-side application log, I have a distinct PostgreSQL detailed log.

Then I have merged client-side end server-side logs along the timeline and I have observed what client and server does.
For example (S: means PostgreSQL Server log, while C: means Client log):

S:
2024-12-16 17:27:14.406 CET [2214722] cleistech@hh24odds_prod - 192.168.16.17900000676054e0.21cb42 STATEMENT: =C2=A0fetch forward 50 from cu6

C= :
ERROR =C2= =A0; 2024-12-16 17:27:14.407; PID: 104257; =C2=A0User: genero; Ricerca quote evento =C2=A0=C2=A0=C2=A0=C2=A01433958 fallita. Gener= al SQL error, check SQLCA.SQLERRD[2]. - SQLSTATE: XX001

S:

2024-12-16 17:27:14.407 CET [2214722] cleistech@hh24odds_prod - 192.168.16.17908006676054e= 0.21cb42 LOG: =C2=A008006: could not receive data from client: Connection reset by peer
2024-1= 2-16 17:27:14.407 CET [2214722] cleistech@hh24odds_prod - 192.168.16.17908006676054e0.21cb42 LOCATION: =C2=A0pq_recv= buf, pqcomm.c:953
<= font color=3D"#1a5fb4">2024-12-16 17:27:14.407 CET [2214722] cleistech@hh24odds_prod - 192.168.16.17908003676054e0.21cb42 DEBUG: =C2=A0
08003: unexpected EOF on client connection

C= :
ERROR =C2= =A0; 2024-12-16 17:27:14.408; PID: 104257; =C2=A0User: genero; ver_quote: ERRORE in foreach ricerca bettype con spread. SQLSTAT= E: XX000 - SQLCODE: =C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0-6372 - =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-1 - no co= nnection to the server - abbandono validazione.

Bef= ore failing on the reported cursor, the program succesfully creates and uses other cursors.
When the issue is detected at client-side, the program terminates without any abort and it is re-instantiated in seconds or minutes by a scheduler.
After a variable time (normally some minutes)
and several failures it goes to normal end without errors.

What I reported in the body of this mail is only a subset of postgreSQL and application logs. I can send several log files each reporting a distinct and complete connection ID history. I tried to reproduce the issue on a "in-vitro" environment, with single-to-multiple instances of the same program (up to 99 parallel instances) and I have executed more than half million of test processes without errors.
This problem commonly happens only in production environments.<= br>
Production environments can be:
  • = Distinct application server and DB server on distinct subnets (no dropped packet detected on firewall, no memory/disk/network failure detected by "nmon" tool)
  • = Distinct application server and DB server on same subnet (no firewall)
  • Same server for PostgreSQL and applications

The VM running the PostgreSQL that I have used for my test is an Ubuntu Server 22.04 LTS with 16 CPUs and 64 GB of RAM.
For client applications I use Ubuntu Server 22.04 LTS.
The postgresql.conf file is attached to this e-mail.

I'm able to detect that there is an error but I really becomes mad trying to find it. It seems a phantom that I know to exist but I can't bring up.
I kindly ask you to help me understand what an= d where is the problem, and how to solve it.

Hoping you can help me or address to someone who can do it.
Thanks in advance.
Enrico
--

Enrico Schenone=
Software Architect

Cleis Tech s.r.l. - www.gruppocleis.it
Sede di Genova, Via Pao= lo Emilio Bensa, 2 - 16124 Genova, ITALY
Tel: +39-0104071400 =C2=A0 Fax: +39-0104073276
Mobile: +39-320 7709352
E-mail: eschenone@cleistech.it

--------------gIaUFKHT1ZDQTUOsBsQBzIQo Content-Type: image/jpeg; name="LogoCleis" Content-Disposition: inline; filename="LogoCleis" Content-Id: Content-Transfer-Encoding: base64 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 4NIbBxd5at1id9z29vGzw//Z --------------gIaUFKHT1ZDQTUOsBsQBzIQo Content-Type: image/png; name="HTTPS://IBM.BIZ/BDQAJH" Content-Disposition: inline; filename="HTTPS://IBM.BIZ/BDQAJH" Content-Id: Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAABmJLR0QA/wD/AP+gvaeTAAAA CXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5QsREAoxoj9qugAAABl0RVh0Q29tbWVudABD cmVhdGVkIHdpdGggR0lNUFeBDhcAAANiSURBVHja7d1LbuQwDEDB8cD3v7KzyCYJAqMtiAzJ rtqnPzYe1OBo5OO6rusf8Kv/LgEIBAQCAgGBgEBAICAQEAgIBBAIvOZ8+gfHcbT/0nfbz+6+ X/a2texrvXpdJtx3Kwj4iQUCAYGAQEAg0Ne588Uq/e/dSmPJiM9S6VpPvu9WEBAICAQEAgIB gUB9Z9YbTRh1ru70rbR7uNL7dbjvVhAQCAgEBAICAYFAfadLsEfE+HTCQQlWEBAICAQQCAgE BALRjHl/6HI+rdGxFQQEAgIBgYBAQCDAp7Qxb6XzW+90eexZpUfFTbjvVhAQCAgEBAICAYFA X1vHvNN3ikbs9F0d105/xJwVBAQCAgGBgEAAgcCrjqv7dssqF3Jx1Blx+IJbagUBgYBAQCAg EBAIvJPHu3krjTNXZY9BI3blrr5mxHfvsiN55btbQUAgIBAQCAgEBAL1Pd7NO2Hsuvr9sj/n hGvdfYxtBQGBgEBAICAQEAjUt/XQhohdndm7QbN33obc1ELXpfv1tIKAQEAgIBAQCAgE6ksb 867KPmQg+3O+82i8wwjYCgICAYGAQEAgIBCoL+3Qhkpn865651FuxDVzNi/4iQUCAYEAAgGB wA7nzherdMZulx2mXXblroo4R9fZvOAnFggEBAICAYEAXz0e81baldtlp+jqZ8neBZx9/5zN C35igUBAIIBAQCCww9azeW/faMDIssvjxLocrOFsXvATCwQCAgEEAgKBHR7v5jXOrP+a2dez y/2zgoBAQCAgEBAICARmStvN2+aCDD/zNnusXGmMbQUBgYBAQCAgEBAIzJS2m7eSu/Fil6l3 pZ2+k/+lwAoCAgGBgEBAICAQqO/c+WKVxn3Zjz2L+JyVrmelQzcyv4MVBAQCAgGBgEBAIFDf mfVGXQ5DWP0OEQcldHmUmhUEBAIIBAQCAgGBwF86XYLvVseuXUbAEd999TXvVBk5W0FAICAQ EAgIBAQC9RnzPhAxAr7T5e8iRrlVHiNnBQGBgEBAICAQEAjUlzbm7fKYruyzcrN3+kaMZCN2 3trNC35igUBAICAQQCDwqq1j3ulnu0bsdu1yzSqdg7z6dx7BBn5igUBAICAQEAjMdFxdttmC FQQEAgIBgYBAQCCAQEAgIBAQCAgEBAItfQAWP4GprOsaxgAAAABJRU5ErkJggg== --------------gIaUFKHT1ZDQTUOsBsQBzIQo-- --------------PJLSLG1ViS9owtt8Bm7sG5Kz-- --------------VNgWbl07HAgAe0sMdT0E2IEq Content-Type: text/plain; charset=UTF-8; name="postgresql.conf" Content-Disposition: attachment; filename="postgresql.conf" Content-Transfer-Encoding: base64 IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFBvc3RncmVTUUwgY29uZmlndXJh dGlvbiBmaWxlCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgZmls ZSBjb25zaXN0cyBvZiBsaW5lcyBvZiB0aGUgZm9ybToKIwojICAgbmFtZSA9IHZhbHVlCiMK IyAoVGhlICI9IiBpcyBvcHRpb25hbC4pICBXaGl0ZXNwYWNlIG1heSBiZSB1c2VkLiAgQ29t bWVudHMgYXJlIGludHJvZHVjZWQgd2l0aAojICIjIiBhbnl3aGVyZSBvbiBhIGxpbmUuICBU aGUgY29tcGxldGUgbGlzdCBvZiBwYXJhbWV0ZXIgbmFtZXMgYW5kIGFsbG93ZWQKIyB2YWx1 ZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24uCiMKIyBU aGUgY29tbWVudGVkLW91dCBzZXR0aW5ncyBzaG93biBpbiB0aGlzIGZpbGUgcmVwcmVzZW50 IHRoZSBkZWZhdWx0IHZhbHVlcy4KIyBSZS1jb21tZW50aW5nIGEgc2V0dGluZyBpcyBOT1Qg c3VmZmljaWVudCB0byByZXZlcnQgaXQgdG8gdGhlIGRlZmF1bHQgdmFsdWU7CiMgeW91IG5l ZWQgdG8gcmVsb2FkIHRoZSBzZXJ2ZXIuCiMKIyBUaGlzIGZpbGUgaXMgcmVhZCBvbiBzZXJ2 ZXIgc3RhcnR1cCBhbmQgd2hlbiB0aGUgc2VydmVyIHJlY2VpdmVzIGEgU0lHSFVQCiMgc2ln bmFsLiAgSWYgeW91IGVkaXQgdGhlIGZpbGUgb24gYSBydW5uaW5nIHN5c3RlbSwgeW91IGhh dmUgdG8gU0lHSFVQIHRoZQojIHNlcnZlciBmb3IgdGhlIGNoYW5nZXMgdG8gdGFrZSBlZmZl Y3QsIHJ1biAicGdfY3RsIHJlbG9hZCIsIG9yIGV4ZWN1dGUKIyAiU0VMRUNUIHBnX3JlbG9h ZF9jb25mKCkiLiAgU29tZSBwYXJhbWV0ZXJzLCB3aGljaCBhcmUgbWFya2VkIGJlbG93LAoj IHJlcXVpcmUgYSBzZXJ2ZXIgc2h1dGRvd24gYW5kIHJlc3RhcnQgdG8gdGFrZSBlZmZlY3Qu CiMKIyBBbnkgcGFyYW1ldGVyIGNhbiBhbHNvIGJlIGdpdmVuIGFzIGEgY29tbWFuZC1saW5l IG9wdGlvbiB0byB0aGUgc2VydmVyLCBlLmcuLAojICJwb3N0Z3JlcyAtYyBsb2dfY29ubmVj dGlvbnM9b24iLiAgU29tZSBwYXJhbWV0ZXJzIGNhbiBiZSBjaGFuZ2VkIGF0IHJ1biB0aW1l CiMgd2l0aCB0aGUgIlNFVCIgU1FMIGNvbW1hbmQuCiMKIyBNZW1vcnkgdW5pdHM6ICBCICA9 IGJ5dGVzICAgICAgICAgICAgVGltZSB1bml0czogIHVzICA9IG1pY3Jvc2Vjb25kcwojICAg ICAgICAgICAgICAgIGtCID0ga2lsb2J5dGVzICAgICAgICAgICAgICAgICAgICAgbXMgID0g bWlsbGlzZWNvbmRzCiMgICAgICAgICAgICAgICAgTUIgPSBtZWdhYnl0ZXMgICAgICAgICAg ICAgICAgICAgICBzICAgPSBzZWNvbmRzCiMgICAgICAgICAgICAgICAgR0IgPSBnaWdhYnl0 ZXMgICAgICAgICAgICAgICAgICAgICBtaW4gPSBtaW51dGVzCiMgICAgICAgICAgICAgICAg VEIgPSB0ZXJhYnl0ZXMgICAgICAgICAgICAgICAgICAgICBoICAgPSBob3VycwojICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCAgID0gZGF5 cwoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBGSUxFIExPQ0FUSU9OUwojLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCgojIFRoZSBkZWZhdWx0IHZhbHVlcyBvZiB0aGVzZSB2YXJp YWJsZXMgYXJlIGRyaXZlbiBmcm9tIHRoZSAtRCBjb21tYW5kLWxpbmUKIyBvcHRpb24gb3Ig UEdEQVRBIGVudmlyb25tZW50IHZhcmlhYmxlLCByZXByZXNlbnRlZCBoZXJlIGFzIENvbmZp Z0Rpci4KCiNkYXRhX2RpcmVjdG9yeSA9ICdDb25maWdEaXInCQkjIHVzZSBkYXRhIGluIGFu b3RoZXIgZGlyZWN0b3J5CgkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiNoYmFf ZmlsZSA9ICdDb25maWdEaXIvcGdfaGJhLmNvbmYnCSMgaG9zdC1iYXNlZCBhdXRoZW50aWNh dGlvbiBmaWxlCgkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiNpZGVudF9maWxl ID0gJ0NvbmZpZ0Rpci9wZ19pZGVudC5jb25mJwkjIGlkZW50IGNvbmZpZ3VyYXRpb24gZmls ZQoJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQoKIyBJZiBleHRlcm5hbF9waWRf ZmlsZSBpcyBub3QgZXhwbGljaXRseSBzZXQsIG5vIGV4dHJhIFBJRCBmaWxlIGlzIHdyaXR0 ZW4uCiNleHRlcm5hbF9waWRfZmlsZSA9ICcnCQkJIyB3cml0ZSBhbiBleHRyYSBQSUQgZmls ZQoJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQoKCiMtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIyBDT05ORUNUSU9OUyBBTkQgQVVUSEVOVElDQVRJT04KIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQoKIyAtIENvbm5lY3Rpb24gU2V0dGluZ3MgLQoKI2xpc3Rlbl9hZGRy ZXNzZXMgPSAnbG9jYWxob3N0JwkJIyB3aGF0IElQIGFkZHJlc3MoZXMpIHRvIGxpc3RlbiBv bjsKCQkJCQkjIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGFkZHJlc3NlczsKCQkJCQkjIGRl ZmF1bHRzIHRvICdsb2NhbGhvc3QnOyB1c2UgJyonIGZvciBhbGwKCQkJCQkjIChjaGFuZ2Ug cmVxdWlyZXMgcmVzdGFydCkKbGlzdGVuX2FkZHJlc3NlcyA9ICcqJyAgICAgICAgICAgICAg ICAgICMgd2hhdCBJUCBhZGRyZXNzKGVzKSB0byBsaXN0ZW4gb247CnBvcnQgPSA1NDMyCQkJ CSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQptYXhfY29ubmVjdGlvbnMgPSAzMDAJCQkj IChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKI3Jlc2VydmVkX2Nvbm5lY3Rpb25zID0gMAkJ IyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiNzdXBlcnVzZXJfcmVzZXJ2ZWRfY29ubmVj dGlvbnMgPSAzCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQojdW5peF9zb2NrZXRfZGly ZWN0b3JpZXMgPSAnL3Zhci9ydW4vcG9zdGdyZXNxbCcgIyBjb21tYS1zZXBhcmF0ZWQgbGlz dCBvZiBkaXJlY3RvcmllcwoJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQojdW5p eF9zb2NrZXRfZ3JvdXAgPSAnJwkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQojdW5p eF9zb2NrZXRfcGVybWlzc2lvbnMgPSAwNzc3CQkjIGJlZ2luIHdpdGggMCB0byB1c2Ugb2N0 YWwgbm90YXRpb24KCQkJCQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKI2JvbmpvdXIg PSBvZmYJCQkJIyBhZHZlcnRpc2Ugc2VydmVyIHZpYSBCb25qb3VyCgkJCQkJIyAoY2hhbmdl IHJlcXVpcmVzIHJlc3RhcnQpCiNib25qb3VyX25hbWUgPSAnJwkJCSMgZGVmYXVsdHMgdG8g dGhlIGNvbXB1dGVyIG5hbWUKCQkJCQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKCiMg LSBUQ1Agc2V0dGluZ3MgLQojIHNlZSAibWFuIHRjcCIgZm9yIGRldGFpbHMKCiN0Y3Bfa2Vl cGFsaXZlc19pZGxlID0gMAkJIyBUQ1BfS0VFUElETEUsIGluIHNlY29uZHM7CgkJCQkJIyAw IHNlbGVjdHMgdGhlIHN5c3RlbSBkZWZhdWx0CiN0Y3Bfa2VlcGFsaXZlc19pbnRlcnZhbCA9 IDAJCSMgVENQX0tFRVBJTlRWTCwgaW4gc2Vjb25kczsKCQkJCQkjIDAgc2VsZWN0cyB0aGUg c3lzdGVtIGRlZmF1bHQKI3RjcF9rZWVwYWxpdmVzX2NvdW50ID0gMAkJIyBUQ1BfS0VFUENO VDsKCQkJCQkjIDAgc2VsZWN0cyB0aGUgc3lzdGVtIGRlZmF1bHQKI3RjcF91c2VyX3RpbWVv dXQgPSAwCQkJIyBUQ1BfVVNFUl9USU1FT1VULCBpbiBtaWxsaXNlY29uZHM7CgkJCQkJIyAw IHNlbGVjdHMgdGhlIHN5c3RlbSBkZWZhdWx0CgojY2xpZW50X2Nvbm5lY3Rpb25fY2hlY2tf aW50ZXJ2YWwgPSAwCSMgdGltZSBiZXR3ZWVuIGNoZWNrcyBmb3IgY2xpZW50CgkJCQkJIyBk aXNjb25uZWN0aW9uIHdoaWxlIHJ1bm5pbmcgcXVlcmllczsKCQkJCQkjIDAgZm9yIG5ldmVy CgojIC0gQXV0aGVudGljYXRpb24gLQoKI2F1dGhlbnRpY2F0aW9uX3RpbWVvdXQgPSAxbWlu CQkjIDFzLTYwMHMKI3Bhc3N3b3JkX2VuY3J5cHRpb24gPSBzY3JhbS1zaGEtMjU2CSMgc2Ny YW0tc2hhLTI1NiBvciBtZDUKI3NjcmFtX2l0ZXJhdGlvbnMgPSA0MDk2CiNkYl91c2VyX25h bWVzcGFjZSA9IG9mZgoKIyBHU1NBUEkgdXNpbmcgS2VyYmVyb3MKI2tyYl9zZXJ2ZXJfa2V5 ZmlsZSA9ICdGSUxFOiR7c3lzY29uZmRpcn0va3JiNS5rZXl0YWInCiNrcmJfY2FzZWluc191 c2VycyA9IG9mZgojZ3NzX2FjY2VwdF9kZWxlZ2F0aW9uID0gb2ZmCgojIC0gU1NMIC0KCnNz bCA9IG9mZgojc3NsX2NhX2ZpbGUgPSAnJwojc3NsX2NlcnRfZmlsZSA9ICdzZXJ2ZXIuY3J0 Jwojc3NsX2NybF9maWxlID0gJycKI3NzbF9jcmxfZGlyID0gJycKI3NzbF9rZXlfZmlsZSA9 ICdzZXJ2ZXIua2V5Jwojc3NsX2NpcGhlcnMgPSAnSElHSDpNRURJVU06KzNERVM6IWFOVUxM JyAjIGFsbG93ZWQgU1NMIGNpcGhlcnMKI3NzbF9wcmVmZXJfc2VydmVyX2NpcGhlcnMgPSBv bgojc3NsX2VjZGhfY3VydmUgPSAncHJpbWUyNTZ2MScKI3NzbF9taW5fcHJvdG9jb2xfdmVy c2lvbiA9ICdUTFN2MS4yJwojc3NsX21heF9wcm90b2NvbF92ZXJzaW9uID0gJycKI3NzbF9k aF9wYXJhbXNfZmlsZSA9ICcnCiNzc2xfcGFzc3BocmFzZV9jb21tYW5kID0gJycKI3NzbF9w YXNzcGhyYXNlX2NvbW1hbmRfc3VwcG9ydHNfcmVsb2FkID0gb2ZmCgoKIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQojIFJFU09VUkNFIFVTQUdFIChleGNlcHQgV0FMKQojLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCgojIC0gTWVtb3J5IC0KCiNzaGFyZWRfYnVmZmVycyA9IDEyOE1C CQkJIyBtaW4gMTI4a0IKc2hhcmVkX2J1ZmZlcnMgPSAyNUdCCQkJIyBtaW4gMTI4a0IKCQkJ CQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKI2h1Z2VfcGFnZXMgPSB0cnkJCQkjIG9u LCBvZmYsIG9yIHRyeQoJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQojaHVnZV9w YWdlX3NpemUgPSAwCQkJIyB6ZXJvIGZvciBzeXN0ZW0gZGVmYXVsdAoJCQkJCSMgKGNoYW5n ZSByZXF1aXJlcyByZXN0YXJ0KQojdGVtcF9idWZmZXJzID0gOE1CCQkJIyBtaW4gODAwa0IK I21heF9wcmVwYXJlZF90cmFuc2FjdGlvbnMgPSAwCQkjIHplcm8gZGlzYWJsZXMgdGhlIGZl YXR1cmUKCQkJCQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKIyBDYXV0aW9uOiBpdCBp cyBub3QgYWR2aXNhYmxlIHRvIHNldCBtYXhfcHJlcGFyZWRfdHJhbnNhY3Rpb25zIG5vbnpl cm8gdW5sZXNzCiMgeW91IGFjdGl2ZWx5IGludGVuZCB0byB1c2UgcHJlcGFyZWQgdHJhbnNh Y3Rpb25zLgojd29ya19tZW0gPSA0TUIJCQkJIyBtaW4gNjRrQgojaGFzaF9tZW1fbXVsdGlw bGllciA9IDIuMAkJIyAxLTEwMDAuMCBtdWx0aXBsaWVyIG9uIGhhc2ggdGFibGUgd29ya19t ZW0KI21haW50ZW5hbmNlX3dvcmtfbWVtID0gNjRNQgkJIyBtaW4gMU1CCiNhdXRvdmFjdXVt X3dvcmtfbWVtID0gLTEJCSMgbWluIDFNQiwgb3IgLTEgdG8gdXNlIG1haW50ZW5hbmNlX3dv cmtfbWVtCiNsb2dpY2FsX2RlY29kaW5nX3dvcmtfbWVtID0gNjRNQgkjIG1pbiA2NGtCCiNt YXhfc3RhY2tfZGVwdGggPSAyTUIJCQkjIG1pbiAxMDBrQgojc2hhcmVkX21lbW9yeV90eXBl ID0gbW1hcAkJIyB0aGUgZGVmYXVsdCBpcyB0aGUgZmlyc3Qgb3B0aW9uCgkJCQkJIyBzdXBw b3J0ZWQgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW06CgkJCQkJIyAgIG1tYXAKCQkJCQkjICAg c3lzdgoJCQkJCSMgICB3aW5kb3dzCgkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQp CmR5bmFtaWNfc2hhcmVkX21lbW9yeV90eXBlID0gcG9zaXgJIyB0aGUgZGVmYXVsdCBpcyB1 c3VhbGx5IHRoZSBmaXJzdCBvcHRpb24KCQkJCQkjIHN1cHBvcnRlZCBieSB0aGUgb3BlcmF0 aW5nIHN5c3RlbToKCQkJCQkjICAgcG9zaXgKCQkJCQkjICAgc3lzdgoJCQkJCSMgICB3aW5k b3dzCgkJCQkJIyAgIG1tYXAKCQkJCQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKI21p bl9keW5hbWljX3NoYXJlZF9tZW1vcnkgPSAwTUIJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3Rh cnQpCiN2YWN1dW1fYnVmZmVyX3VzYWdlX2xpbWl0ID0gMjU2a0IJIyBzaXplIG9mIHZhY3V1 bSBhbmQgYW5hbHl6ZSBidWZmZXIgYWNjZXNzIHN0cmF0ZWd5IHJpbmc7CgkJCQkJIyAwIHRv IGRpc2FibGUgdmFjdXVtIGJ1ZmZlciBhY2Nlc3Mgc3RyYXRlZ3k7CgkJCQkJIyByYW5nZSAx MjhrQiB0byAxNkdCCgojIC0gRGlzayAtCgojdGVtcF9maWxlX2xpbWl0ID0gLTEJCQkjIGxp bWl0cyBwZXItcHJvY2VzcyB0ZW1wIGZpbGUgc3BhY2UKCQkJCQkjIGluIGtpbG9ieXRlcywg b3IgLTEgZm9yIG5vIGxpbWl0CgojIC0gS2VybmVsIFJlc291cmNlcyAtCgojbWF4X2ZpbGVz X3Blcl9wcm9jZXNzID0gMTAwMAkJIyBtaW4gNjQKCQkJCQkjIChjaGFuZ2UgcmVxdWlyZXMg cmVzdGFydCkKCiMgLSBDb3N0LUJhc2VkIFZhY3V1bSBEZWxheSAtCgojdmFjdXVtX2Nvc3Rf ZGVsYXkgPSAwCQkJIyAwLTEwMCBtaWxsaXNlY29uZHMgKDAgZGlzYWJsZXMpCiN2YWN1dW1f Y29zdF9wYWdlX2hpdCA9IDEJCSMgMC0xMDAwMCBjcmVkaXRzCiN2YWN1dW1fY29zdF9wYWdl X21pc3MgPSAyCQkjIDAtMTAwMDAgY3JlZGl0cwojdmFjdXVtX2Nvc3RfcGFnZV9kaXJ0eSA9 IDIwCQkjIDAtMTAwMDAgY3JlZGl0cwojdmFjdXVtX2Nvc3RfbGltaXQgPSAyMDAJCSMgMS0x MDAwMCBjcmVkaXRzCgojIC0gQmFja2dyb3VuZCBXcml0ZXIgLQoKI2Jnd3JpdGVyX2RlbGF5 ID0gMjAwbXMJCQkjIDEwLTEwMDAwbXMgYmV0d2VlbiByb3VuZHMKI2Jnd3JpdGVyX2xydV9t YXhwYWdlcyA9IDEwMAkJIyBtYXggYnVmZmVycyB3cml0dGVuL3JvdW5kLCAwIGRpc2FibGVz CiNiZ3dyaXRlcl9scnVfbXVsdGlwbGllciA9IDIuMAkJIyAwLTEwLjAgbXVsdGlwbGllciBv biBidWZmZXJzIHNjYW5uZWQvcm91bmQKI2Jnd3JpdGVyX2ZsdXNoX2FmdGVyID0gNTEya0IJ CSMgbWVhc3VyZWQgaW4gcGFnZXMsIDAgZGlzYWJsZXMKCiMgLSBBc3luY2hyb25vdXMgQmVo YXZpb3IgLQoKI2JhY2tlbmRfZmx1c2hfYWZ0ZXIgPSAwCQkjIG1lYXN1cmVkIGluIHBhZ2Vz LCAwIGRpc2FibGVzCiNlZmZlY3RpdmVfaW9fY29uY3VycmVuY3kgPSAxCQkjIDEtMTAwMDsg MCBkaXNhYmxlcyBwcmVmZXRjaGluZwojbWFpbnRlbmFuY2VfaW9fY29uY3VycmVuY3kgPSAx MAkjIDEtMTAwMDsgMCBkaXNhYmxlcyBwcmVmZXRjaGluZwojbWF4X3dvcmtlcl9wcm9jZXNz ZXMgPSA4CQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKI21heF9wYXJhbGxlbF93b3Jr ZXJzX3Blcl9nYXRoZXIgPSAyCSMgbGltaXRlZCBieSBtYXhfcGFyYWxsZWxfd29ya2Vycwoj bWF4X3BhcmFsbGVsX21haW50ZW5hbmNlX3dvcmtlcnMgPSAyCSMgbGltaXRlZCBieSBtYXhf cGFyYWxsZWxfd29ya2VycwojbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSA4CQkjIG51bWJlciBv ZiBtYXhfd29ya2VyX3Byb2Nlc3NlcyB0aGF0CgkJCQkJIyBjYW4gYmUgdXNlZCBpbiBwYXJh bGxlbCBvcGVyYXRpb25zCiNwYXJhbGxlbF9sZWFkZXJfcGFydGljaXBhdGlvbiA9IG9uCiNv bGRfc25hcHNob3RfdGhyZXNob2xkID0gLTEJCSMgMW1pbi02MGQ7IC0xIGRpc2FibGVzOyAw IGlzIGltbWVkaWF0ZQoJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQoKCiMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBXUklURS1BSEVBRCBMT0cKIy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKIyAtIFNldHRpbmdzIC0KCiN3YWxfbGV2ZWwgPSByZXBsaWNhCQkJIyBt aW5pbWFsLCByZXBsaWNhLCBvciBsb2dpY2FsCgkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJl c3RhcnQpCiNmc3luYyA9IG9uCQkJCSMgZmx1c2ggZGF0YSB0byBkaXNrIGZvciBjcmFzaCBz YWZldHkKCQkJCQkjICh0dXJuaW5nIHRoaXMgb2ZmIGNhbiBjYXVzZQoJCQkJCSMgdW5yZWNv dmVyYWJsZSBkYXRhIGNvcnJ1cHRpb24pCiNzeW5jaHJvbm91c19jb21taXQgPSBvbgkJIyBz eW5jaHJvbml6YXRpb24gbGV2ZWw7CgkJCQkJIyBvZmYsIGxvY2FsLCByZW1vdGVfd3JpdGUs IHJlbW90ZV9hcHBseSwgb3Igb24KI3dhbF9zeW5jX21ldGhvZCA9IGZzeW5jCQkjIHRoZSBk ZWZhdWx0IGlzIHRoZSBmaXJzdCBvcHRpb24KCQkJCQkjIHN1cHBvcnRlZCBieSB0aGUgb3Bl cmF0aW5nIHN5c3RlbToKCQkJCQkjICAgb3Blbl9kYXRhc3luYwoJCQkJCSMgICBmZGF0YXN5 bmMgKGRlZmF1bHQgb24gTGludXggYW5kIEZyZWVCU0QpCgkJCQkJIyAgIGZzeW5jCgkJCQkJ IyAgIGZzeW5jX3dyaXRldGhyb3VnaAoJCQkJCSMgICBvcGVuX3N5bmMKI2Z1bGxfcGFnZV93 cml0ZXMgPSBvbgkJCSMgcmVjb3ZlciBmcm9tIHBhcnRpYWwgcGFnZSB3cml0ZXMKI3dhbF9s b2dfaGludHMgPSBvZmYJCQkjIGFsc28gZG8gZnVsbCBwYWdlIHdyaXRlcyBvZiBub24tY3Jp dGljYWwgdXBkYXRlcwp3YWxfbG9nX2hpbnRzID0gb24KCQkJCQkjIChjaGFuZ2UgcmVxdWly ZXMgcmVzdGFydCkKI3dhbF9jb21wcmVzc2lvbiA9IG9mZgkJCSMgZW5hYmxlcyBjb21wcmVz c2lvbiBvZiBmdWxsLXBhZ2Ugd3JpdGVzOwoJCQkJCSMgb2ZmLCBwZ2x6LCBsejQsIHpzdGQs IG9yIG9uCiN3YWxfaW5pdF96ZXJvID0gb24JCQkjIHplcm8tZmlsbCBuZXcgV0FMIGZpbGVz CiN3YWxfcmVjeWNsZSA9IG9uCQkJIyByZWN5Y2xlIFdBTCBmaWxlcwojd2FsX2J1ZmZlcnMg PSAtMQkJCSMgbWluIDMya0IsIC0xIHNldHMgYmFzZWQgb24gc2hhcmVkX2J1ZmZlcnMKd2Fs X2J1ZmZlcnMgPSAtMQoJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQojd2FsX3dy aXRlcl9kZWxheSA9IDIwMG1zCQkjIDEtMTAwMDAgbWlsbGlzZWNvbmRzCiN3YWxfd3JpdGVy X2ZsdXNoX2FmdGVyID0gMU1CCQkjIG1lYXN1cmVkIGluIHBhZ2VzLCAwIGRpc2FibGVzCiN3 YWxfc2tpcF90aHJlc2hvbGQgPSAyTUIKCiNjb21taXRfZGVsYXkgPSAwCQkJIyByYW5nZSAw LTEwMDAwMCwgaW4gbWljcm9zZWNvbmRzCiNjb21taXRfc2libGluZ3MgPSA1CQkJIyByYW5n ZSAxLTEwMDAKCiMgLSBDaGVja3BvaW50cyAtCgojY2hlY2twb2ludF90aW1lb3V0ID0gNW1p bgkJIyByYW5nZSAzMHMtMWQKI2NoZWNrcG9pbnRfY29tcGxldGlvbl90YXJnZXQgPSAwLjkJ IyBjaGVja3BvaW50IHRhcmdldCBkdXJhdGlvbiwgMC4wIC0gMS4wCiNjaGVja3BvaW50X2Zs dXNoX2FmdGVyID0gMjU2a0IJCSMgbWVhc3VyZWQgaW4gcGFnZXMsIDAgZGlzYWJsZXMKI2No ZWNrcG9pbnRfd2FybmluZyA9IDMwcwkJIyAwIGRpc2FibGVzCiNtYXhfd2FsX3NpemUgPSAx R0IKbWF4X3dhbF9zaXplID0gMTZHQgptaW5fd2FsX3NpemUgPSA4ME1CCgojIC0gUHJlZmV0 Y2hpbmcgZHVyaW5nIHJlY292ZXJ5IC0KCiNyZWNvdmVyeV9wcmVmZXRjaCA9IHRyeQkJIyBw cmVmZXRjaCBwYWdlcyByZWZlcmVuY2VkIGluIHRoZSBXQUw/CiN3YWxfZGVjb2RlX2J1ZmZl cl9zaXplID0gNTEya0IJCSMgbG9va2FoZWFkIHdpbmRvdyB1c2VkIGZvciBwcmVmZXRjaGlu ZwoJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQoKIyAtIEFyY2hpdmluZyAtCgoj YXJjaGl2ZV9tb2RlID0gb2ZmCQkjIGVuYWJsZXMgYXJjaGl2aW5nOyBvZmYsIG9uLCBvciBh bHdheXMKCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQojYXJjaGl2ZV9saWJyYXJ5 ID0gJycJCSMgbGlicmFyeSB0byB1c2UgdG8gYXJjaGl2ZSBhIFdBTCBmaWxlCgkJCQkjIChl bXB0eSBzdHJpbmcgaW5kaWNhdGVzIGFyY2hpdmVfY29tbWFuZCBzaG91bGQKCQkJCSMgYmUg dXNlZCkKI2FyY2hpdmVfY29tbWFuZCA9ICcnCQkjIGNvbW1hbmQgdG8gdXNlIHRvIGFyY2hp dmUgYSBXQUwgZmlsZQoJCQkJIyBwbGFjZWhvbGRlcnM6ICVwID0gcGF0aCBvZiBmaWxlIHRv IGFyY2hpdmUKCQkJCSMgICAgICAgICAgICAgICAlZiA9IGZpbGUgbmFtZSBvbmx5CgkJCQkj IGUuZy4gJ3Rlc3QgISAtZiAvbW50L3NlcnZlci9hcmNoaXZlZGlyLyVmICYmIGNwICVwIC9t bnQvc2VydmVyL2FyY2hpdmVkaXIvJWYnCiNhcmNoaXZlX3RpbWVvdXQgPSAwCQkjIGZvcmNl IGEgV0FMIGZpbGUgc3dpdGNoIGFmdGVyIHRoaXMKCQkJCSMgbnVtYmVyIG9mIHNlY29uZHM7 IDAgZGlzYWJsZXMKCiMgLSBBcmNoaXZlIFJlY292ZXJ5IC0KCiMgVGhlc2UgYXJlIG9ubHkg dXNlZCBpbiByZWNvdmVyeSBtb2RlLgoKI3Jlc3RvcmVfY29tbWFuZCA9ICcnCQkjIGNvbW1h bmQgdG8gdXNlIHRvIHJlc3RvcmUgYW4gYXJjaGl2ZWQgV0FMIGZpbGUKCQkJCSMgcGxhY2Vo b2xkZXJzOiAlcCA9IHBhdGggb2YgZmlsZSB0byByZXN0b3JlCgkJCQkjICAgICAgICAgICAg ICAgJWYgPSBmaWxlIG5hbWUgb25seQoJCQkJIyBlLmcuICdjcCAvbW50L3NlcnZlci9hcmNo aXZlZGlyLyVmICVwJwojYXJjaGl2ZV9jbGVhbnVwX2NvbW1hbmQgPSAnJwkjIGNvbW1hbmQg dG8gZXhlY3V0ZSBhdCBldmVyeSByZXN0YXJ0cG9pbnQKI3JlY292ZXJ5X2VuZF9jb21tYW5k ID0gJycJIyBjb21tYW5kIHRvIGV4ZWN1dGUgYXQgY29tcGxldGlvbiBvZiByZWNvdmVyeQoK IyAtIFJlY292ZXJ5IFRhcmdldCAtCgojIFNldCB0aGVzZSBvbmx5IHdoZW4gcGVyZm9ybWlu ZyBhIHRhcmdldGVkIHJlY292ZXJ5LgoKI3JlY292ZXJ5X3RhcmdldCA9ICcnCQkjICdpbW1l ZGlhdGUnIHRvIGVuZCByZWNvdmVyeSBhcyBzb29uIGFzIGEKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjIGNvbnNpc3RlbnQgc3RhdGUgaXMgcmVhY2hlZAoJCQkJIyAoY2hh bmdlIHJlcXVpcmVzIHJlc3RhcnQpCiNyZWNvdmVyeV90YXJnZXRfbmFtZSA9ICcnCSMgdGhl IG5hbWVkIHJlc3RvcmUgcG9pbnQgdG8gd2hpY2ggcmVjb3Zlcnkgd2lsbCBwcm9jZWVkCgkJ CQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKI3JlY292ZXJ5X3RhcmdldF90aW1lID0g JycJIyB0aGUgdGltZSBzdGFtcCB1cCB0byB3aGljaCByZWNvdmVyeSB3aWxsIHByb2NlZWQK CQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQojcmVjb3ZlcnlfdGFyZ2V0X3hpZCA9 ICcnCSMgdGhlIHRyYW5zYWN0aW9uIElEIHVwIHRvIHdoaWNoIHJlY292ZXJ5IHdpbGwgcHJv Y2VlZAoJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiNyZWNvdmVyeV90YXJnZXRf bHNuID0gJycJIyB0aGUgV0FMIExTTiB1cCB0byB3aGljaCByZWNvdmVyeSB3aWxsIHByb2Nl ZWQKCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQojcmVjb3ZlcnlfdGFyZ2V0X2lu Y2x1c2l2ZSA9IG9uICMgU3BlY2lmaWVzIHdoZXRoZXIgdG8gc3RvcDoKCQkJCSMganVzdCBh ZnRlciB0aGUgc3BlY2lmaWVkIHJlY292ZXJ5IHRhcmdldCAob24pCgkJCQkjIGp1c3QgYmVm b3JlIHRoZSByZWNvdmVyeSB0YXJnZXQgKG9mZikKCQkJCSMgKGNoYW5nZSByZXF1aXJlcyBy ZXN0YXJ0KQojcmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lID0gJ2xhdGVzdCcJIyAnY3VycmVu dCcsICdsYXRlc3QnLCBvciB0aW1lbGluZSBJRAoJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJl c3RhcnQpCiNyZWNvdmVyeV90YXJnZXRfYWN0aW9uID0gJ3BhdXNlJwkjICdwYXVzZScsICdw cm9tb3RlJywgJ3NodXRkb3duJwoJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCgoK Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFJFUExJQ0FUSU9OCiMtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiMgLSBTZW5kaW5nIFNlcnZlcnMgLQoKIyBTZXQgdGhlc2Ugb24gdGhl IHByaW1hcnkgYW5kIG9uIGFueSBzdGFuZGJ5IHRoYXQgd2lsbCBzZW5kIHJlcGxpY2F0aW9u IGRhdGEuCgojbWF4X3dhbF9zZW5kZXJzID0gMTAJCSMgbWF4IG51bWJlciBvZiB3YWxzZW5k ZXIgcHJvY2Vzc2VzCgkJCQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKI21heF9yZXBs aWNhdGlvbl9zbG90cyA9IDEwCSMgbWF4IG51bWJlciBvZiByZXBsaWNhdGlvbiBzbG90cwoJ CQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiN3YWxfa2VlcF9zaXplID0gMAkJIyBp biBtZWdhYnl0ZXM7IDAgZGlzYWJsZXMKI21heF9zbG90X3dhbF9rZWVwX3NpemUgPSAtMQkj IGluIG1lZ2FieXRlczsgLTEgZGlzYWJsZXMKI3dhbF9zZW5kZXJfdGltZW91dCA9IDYwcwkj IGluIG1pbGxpc2Vjb25kczsgMCBkaXNhYmxlcwojdHJhY2tfY29tbWl0X3RpbWVzdGFtcCA9 IG9mZgkjIGNvbGxlY3QgdGltZXN0YW1wIG9mIHRyYW5zYWN0aW9uIGNvbW1pdAoJCQkJIyAo Y2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCgojIC0gUHJpbWFyeSBTZXJ2ZXIgLQoKIyBUaGVz ZSBzZXR0aW5ncyBhcmUgaWdub3JlZCBvbiBhIHN0YW5kYnkgc2VydmVyLgoKI3N5bmNocm9u b3VzX3N0YW5kYnlfbmFtZXMgPSAnJwkjIHN0YW5kYnkgc2VydmVycyB0aGF0IHByb3ZpZGUg c3luYyByZXAKCQkJCSMgbWV0aG9kIHRvIGNob29zZSBzeW5jIHN0YW5kYnlzLCBudW1iZXIg b2Ygc3luYyBzdGFuZGJ5cywKCQkJCSMgYW5kIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGFw cGxpY2F0aW9uX25hbWUKCQkJCSMgZnJvbSBzdGFuZGJ5KHMpOyAnKicgPSBhbGwKCiMgLSBT dGFuZGJ5IFNlcnZlcnMgLQoKIyBUaGVzZSBzZXR0aW5ncyBhcmUgaWdub3JlZCBvbiBhIHBy aW1hcnkgc2VydmVyLgoKI3ByaW1hcnlfY29ubmluZm8gPSAnJwkJCSMgY29ubmVjdGlvbiBz dHJpbmcgdG8gc2VuZGluZyBzZXJ2ZXIKI3ByaW1hcnlfc2xvdF9uYW1lID0gJycJCQkjIHJl cGxpY2F0aW9uIHNsb3Qgb24gc2VuZGluZyBzZXJ2ZXIKI2hvdF9zdGFuZGJ5ID0gb24JCQkj ICJvZmYiIGRpc2FsbG93cyBxdWVyaWVzIGR1cmluZyByZWNvdmVyeQoJCQkJCSMgKGNoYW5n ZSByZXF1aXJlcyByZXN0YXJ0KQojbWF4X3N0YW5kYnlfYXJjaGl2ZV9kZWxheSA9IDMwcwkj IG1heCBkZWxheSBiZWZvcmUgY2FuY2VsaW5nIHF1ZXJpZXMKCQkJCQkjIHdoZW4gcmVhZGlu ZyBXQUwgZnJvbSBhcmNoaXZlOwoJCQkJCSMgLTEgYWxsb3dzIGluZGVmaW5pdGUgZGVsYXkK I21heF9zdGFuZGJ5X3N0cmVhbWluZ19kZWxheSA9IDMwcwkjIG1heCBkZWxheSBiZWZvcmUg Y2FuY2VsaW5nIHF1ZXJpZXMKCQkJCQkjIHdoZW4gcmVhZGluZyBzdHJlYW1pbmcgV0FMOwoJ CQkJCSMgLTEgYWxsb3dzIGluZGVmaW5pdGUgZGVsYXkKI3dhbF9yZWNlaXZlcl9jcmVhdGVf dGVtcF9zbG90ID0gb2ZmCSMgY3JlYXRlIHRlbXAgc2xvdCBpZiBwcmltYXJ5X3Nsb3RfbmFt ZQoJCQkJCSMgaXMgbm90IHNldAojd2FsX3JlY2VpdmVyX3N0YXR1c19pbnRlcnZhbCA9IDEw cwkjIHNlbmQgcmVwbGllcyBhdCBsZWFzdCB0aGlzIG9mdGVuCgkJCQkJIyAwIGRpc2FibGVz CiNob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9mZgkJIyBzZW5kIGluZm8gZnJvbSBzdGFuZGJ5 IHRvIHByZXZlbnQKCQkJCQkjIHF1ZXJ5IGNvbmZsaWN0cwojd2FsX3JlY2VpdmVyX3RpbWVv dXQgPSA2MHMJCSMgdGltZSB0aGF0IHJlY2VpdmVyIHdhaXRzIGZvcgoJCQkJCSMgY29tbXVu aWNhdGlvbiBmcm9tIHByaW1hcnkKCQkJCQkjIGluIG1pbGxpc2Vjb25kczsgMCBkaXNhYmxl cwojd2FsX3JldHJpZXZlX3JldHJ5X2ludGVydmFsID0gNXMJIyB0aW1lIHRvIHdhaXQgYmVm b3JlIHJldHJ5aW5nIHRvCgkJCQkJIyByZXRyaWV2ZSBXQUwgYWZ0ZXIgYSBmYWlsZWQgYXR0 ZW1wdAojcmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5ID0gMAkJIyBtaW5pbXVtIGRlbGF5IGZv ciBhcHBseWluZyBjaGFuZ2VzIGR1cmluZyByZWNvdmVyeQoKIyAtIFN1YnNjcmliZXJzIC0K CiMgVGhlc2Ugc2V0dGluZ3MgYXJlIGlnbm9yZWQgb24gYSBwdWJsaXNoZXIuCgojbWF4X2xv Z2ljYWxfcmVwbGljYXRpb25fd29ya2VycyA9IDQJIyB0YWtlbiBmcm9tIG1heF93b3JrZXJf cHJvY2Vzc2VzCgkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiNtYXhfc3luY193 b3JrZXJzX3Blcl9zdWJzY3JpcHRpb24gPSAyCSMgdGFrZW4gZnJvbSBtYXhfbG9naWNhbF9y ZXBsaWNhdGlvbl93b3JrZXJzCiNtYXhfcGFyYWxsZWxfYXBwbHlfd29ya2Vyc19wZXJfc3Vi c2NyaXB0aW9uID0gMgkjIHRha2VuIGZyb20gbWF4X2xvZ2ljYWxfcmVwbGljYXRpb25fd29y a2VycwoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBRVUVSWSBUVU5JTkcKIy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQoKIyAtIFBsYW5uZXIgTWV0aG9kIENvbmZpZ3VyYXRpb24g LQoKI2VuYWJsZV9hc3luY19hcHBlbmQgPSBvbgojZW5hYmxlX2JpdG1hcHNjYW4gPSBvbgoj ZW5hYmxlX2dhdGhlcm1lcmdlID0gb24KI2VuYWJsZV9oYXNoYWdnID0gb24KI2VuYWJsZV9o YXNoam9pbiA9IG9uCiNlbmFibGVfaW5jcmVtZW50YWxfc29ydCA9IG9uCiNlbmFibGVfaW5k ZXhzY2FuID0gb24KI2VuYWJsZV9pbmRleG9ubHlzY2FuID0gb24KI2VuYWJsZV9tYXRlcmlh bCA9IG9uCiNlbmFibGVfbWVtb2l6ZSA9IG9uCiNlbmFibGVfbWVyZ2Vqb2luID0gb24KI2Vu YWJsZV9uZXN0bG9vcCA9IG9uCiNlbmFibGVfcGFyYWxsZWxfYXBwZW5kID0gb24KI2VuYWJs ZV9wYXJhbGxlbF9oYXNoID0gb24KI2VuYWJsZV9wYXJ0aXRpb25fcHJ1bmluZyA9IG9uCiNl bmFibGVfcGFydGl0aW9ud2lzZV9qb2luID0gb2ZmCiNlbmFibGVfcGFydGl0aW9ud2lzZV9h Z2dyZWdhdGUgPSBvZmYKI2VuYWJsZV9wcmVzb3J0ZWRfYWdncmVnYXRlID0gb24KI2VuYWJs ZV9zZXFzY2FuID0gb24KI2VuYWJsZV9zb3J0ID0gb24KI2VuYWJsZV90aWRzY2FuID0gb24K CiMgLSBQbGFubmVyIENvc3QgQ29uc3RhbnRzIC0KCiNzZXFfcGFnZV9jb3N0ID0gMS4wCQkJ IyBtZWFzdXJlZCBvbiBhbiBhcmJpdHJhcnkgc2NhbGUKI3JhbmRvbV9wYWdlX2Nvc3QgPSA0 LjAJCQkjIHNhbWUgc2NhbGUgYXMgYWJvdmUKI2NwdV90dXBsZV9jb3N0ID0gMC4wMQkJCSMg c2FtZSBzY2FsZSBhcyBhYm92ZQojY3B1X2luZGV4X3R1cGxlX2Nvc3QgPSAwLjAwNQkJIyBz YW1lIHNjYWxlIGFzIGFib3ZlCiNjcHVfb3BlcmF0b3JfY29zdCA9IDAuMDAyNQkJIyBzYW1l IHNjYWxlIGFzIGFib3ZlCiNwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMTAwMC4wCSMgc2FtZSBz Y2FsZSBhcyBhYm92ZQojcGFyYWxsZWxfdHVwbGVfY29zdCA9IDAuMQkJIyBzYW1lIHNjYWxl IGFzIGFib3ZlCiNtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gOE1CCiNtaW5fcGFy YWxsZWxfaW5kZXhfc2Nhbl9zaXplID0gNTEya0IKI2VmZmVjdGl2ZV9jYWNoZV9zaXplID0g NEdCCmVmZmVjdGl2ZV9jYWNoZV9zaXplID0gNDBHQgoKI2ppdF9hYm92ZV9jb3N0ID0gMTAw MDAwCQkjIHBlcmZvcm0gSklUIGNvbXBpbGF0aW9uIGlmIGF2YWlsYWJsZQoJCQkJCSMgYW5k IHF1ZXJ5IG1vcmUgZXhwZW5zaXZlIHRoYW4gdGhpczsKCQkJCQkjIC0xIGRpc2FibGVzCiNq aXRfaW5saW5lX2Fib3ZlX2Nvc3QgPSA1MDAwMDAJCSMgaW5saW5lIHNtYWxsIGZ1bmN0aW9u cyBpZiBxdWVyeSBpcwoJCQkJCSMgbW9yZSBleHBlbnNpdmUgdGhhbiB0aGlzOyAtMSBkaXNh Ymxlcwojaml0X29wdGltaXplX2Fib3ZlX2Nvc3QgPSA1MDAwMDAJIyB1c2UgZXhwZW5zaXZl IEpJVCBvcHRpbWl6YXRpb25zIGlmCgkJCQkJIyBxdWVyeSBpcyBtb3JlIGV4cGVuc2l2ZSB0 aGFuIHRoaXM7CgkJCQkJIyAtMSBkaXNhYmxlcwoKIyAtIEdlbmV0aWMgUXVlcnkgT3B0aW1p emVyIC0KCiNnZXFvID0gb24KI2dlcW9fdGhyZXNob2xkID0gMTIKI2dlcW9fZWZmb3J0ID0g NQkJCSMgcmFuZ2UgMS0xMAojZ2Vxb19wb29sX3NpemUgPSAwCQkJIyBzZWxlY3RzIGRlZmF1 bHQgYmFzZWQgb24gZWZmb3J0CiNnZXFvX2dlbmVyYXRpb25zID0gMAkJCSMgc2VsZWN0cyBk ZWZhdWx0IGJhc2VkIG9uIGVmZm9ydAojZ2Vxb19zZWxlY3Rpb25fYmlhcyA9IDIuMAkJIyBy YW5nZSAxLjUtMi4wCiNnZXFvX3NlZWQgPSAwLjAJCQkjIHJhbmdlIDAuMC0xLjAKCiMgLSBP dGhlciBQbGFubmVyIE9wdGlvbnMgLQoKI2RlZmF1bHRfc3RhdGlzdGljc190YXJnZXQgPSAx MDAJIyByYW5nZSAxLTEwMDAwCiNjb25zdHJhaW50X2V4Y2x1c2lvbiA9IHBhcnRpdGlvbgkj IG9uLCBvZmYsIG9yIHBhcnRpdGlvbgojY3Vyc29yX3R1cGxlX2ZyYWN0aW9uID0gMC4xCQkj IHJhbmdlIDAuMC0xLjAKI2Zyb21fY29sbGFwc2VfbGltaXQgPSA4CiNqaXQgPSBvbgkJCQkj IGFsbG93IEpJVCBjb21waWxhdGlvbgojam9pbl9jb2xsYXBzZV9saW1pdCA9IDgJCSMgMSBk aXNhYmxlcyBjb2xsYXBzaW5nIG9mIGV4cGxpY2l0CgkJCQkJIyBKT0lOIGNsYXVzZXMKI3Bs YW5fY2FjaGVfbW9kZSA9IGF1dG8JCQkjIGF1dG8sIGZvcmNlX2dlbmVyaWNfcGxhbiBvcgoJ CQkJCSMgZm9yY2VfY3VzdG9tX3BsYW4KI3JlY3Vyc2l2ZV93b3JrdGFibGVfZmFjdG9yID0g MTAuMAkjIHJhbmdlIDAuMDAxLTEwMDAwMDAKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiMgUkVQT1JUSU5HIEFORCBMT0dHSU5HCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMg LSBXaGVyZSB0byBMb2cgLQoKI2xvZ19kZXN0aW5hdGlvbiA9ICdzdGRlcnInCQkjIFZhbGlk IHZhbHVlcyBhcmUgY29tYmluYXRpb25zIG9mCgkJCQkJIyBzdGRlcnIsIGNzdmxvZywganNv bmxvZywgc3lzbG9nLCBhbmQKCQkJCQkjIGV2ZW50bG9nLCBkZXBlbmRpbmcgb24gcGxhdGZv cm0uCgkJCQkJIyBjc3Zsb2cgYW5kIGpzb25sb2cgcmVxdWlyZQoJCQkJCSMgbG9nZ2luZ19j b2xsZWN0b3IgdG8gYmUgb24uCgojIFRoaXMgaXMgdXNlZCB3aGVuIGxvZ2dpbmcgdG8gc3Rk ZXJyOgojbG9nZ2luZ19jb2xsZWN0b3IgPSBvZmYJCSMgRW5hYmxlIGNhcHR1cmluZyBvZiBz dGRlcnIsIGpzb25sb2csCgkJCQkJIyBhbmQgY3N2bG9nIGludG8gbG9nIGZpbGVzLiBSZXF1 aXJlZAoJCQkJCSMgdG8gYmUgb24gZm9yIGNzdmxvZ3MgYW5kIGpzb25sb2dzLgoJCQkJCSMg KGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQoKIyBUaGVzZSBhcmUgb25seSB1c2VkIGlmIGxv Z2dpbmdfY29sbGVjdG9yIGlzIG9uOgojbG9nX2RpcmVjdG9yeSA9ICdsb2cnCQkJIyBkaXJl Y3Rvcnkgd2hlcmUgbG9nIGZpbGVzIGFyZSB3cml0dGVuLAoJCQkJCSMgY2FuIGJlIGFic29s dXRlIG9yIHJlbGF0aXZlIHRvIFBHREFUQQojbG9nX2ZpbGVuYW1lID0gJ3Bvc3RncmVzcWwt JVktJW0tJWRfJUglTSVTLmxvZycJIyBsb2cgZmlsZSBuYW1lIHBhdHRlcm4sCgkJCQkJIyBj YW4gaW5jbHVkZSBzdHJmdGltZSgpIGVzY2FwZXMKI2xvZ19maWxlX21vZGUgPSAwNjAwCQkJ IyBjcmVhdGlvbiBtb2RlIGZvciBsb2cgZmlsZXMsCgkJCQkJIyBiZWdpbiB3aXRoIDAgdG8g dXNlIG9jdGFsIG5vdGF0aW9uCiNsb2dfcm90YXRpb25fYWdlID0gMWQJCQkjIEF1dG9tYXRp YyByb3RhdGlvbiBvZiBsb2dmaWxlcyB3aWxsCgkJCQkJIyBoYXBwZW4gYWZ0ZXIgdGhhdCB0 aW1lLiAgMCBkaXNhYmxlcy4KI2xvZ19yb3RhdGlvbl9zaXplID0gMTBNQgkJIyBBdXRvbWF0 aWMgcm90YXRpb24gb2YgbG9nZmlsZXMgd2lsbAoJCQkJCSMgaGFwcGVuIGFmdGVyIHRoYXQg bXVjaCBsb2cgb3V0cHV0LgoJCQkJCSMgMCBkaXNhYmxlcy4KI2xvZ190cnVuY2F0ZV9vbl9y b3RhdGlvbiA9IG9mZgkJIyBJZiBvbiwgYW4gZXhpc3RpbmcgbG9nIGZpbGUgd2l0aCB0aGUK CQkJCQkjIHNhbWUgbmFtZSBhcyB0aGUgbmV3IGxvZyBmaWxlIHdpbGwgYmUKCQkJCQkjIHRy dW5jYXRlZCByYXRoZXIgdGhhbiBhcHBlbmRlZCB0by4KCQkJCQkjIEJ1dCBzdWNoIHRydW5j YXRpb24gb25seSBvY2N1cnMgb24KCQkJCQkjIHRpbWUtZHJpdmVuIHJvdGF0aW9uLCBub3Qg b24gcmVzdGFydHMKCQkJCQkjIG9yIHNpemUtZHJpdmVuIHJvdGF0aW9uLiAgRGVmYXVsdCBp cwoJCQkJCSMgb2ZmLCBtZWFuaW5nIGFwcGVuZCB0byBleGlzdGluZyBmaWxlcwoJCQkJCSMg aW4gYWxsIGNhc2VzLgoKIyBUaGVzZSBhcmUgcmVsZXZhbnQgd2hlbiBsb2dnaW5nIHRvIHN5 c2xvZzoKI3N5c2xvZ19mYWNpbGl0eSA9ICdMT0NBTDAnCiNzeXNsb2dfaWRlbnQgPSAncG9z dGdyZXMnCiNzeXNsb2dfc2VxdWVuY2VfbnVtYmVycyA9IG9uCiNzeXNsb2dfc3BsaXRfbWVz c2FnZXMgPSBvbgoKIyBUaGlzIGlzIG9ubHkgcmVsZXZhbnQgd2hlbiBsb2dnaW5nIHRvIGV2 ZW50bG9nIChXaW5kb3dzKToKIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiNldmVudF9z b3VyY2UgPSAnUG9zdGdyZVNRTCcKCiMgLSBXaGVuIHRvIExvZyAtCgojbG9nX21pbl9tZXNz YWdlcyA9IHdhcm5pbmcJCSMgdmFsdWVzIGluIG9yZGVyIG9mIGRlY3JlYXNpbmcgZGV0YWls OgojbG9nX21pbl9tZXNzYWdlcyA9IGRlYnVnNQpsb2dfbWluX21lc3NhZ2VzID0gaW5mbwoJ CQkJCSMgICBkZWJ1ZzUKCQkJCQkjICAgZGVidWc0CgkJCQkJIyAgIGRlYnVnMwoJCQkJCSMg ICBkZWJ1ZzIKCQkJCQkjICAgZGVidWcxCgkJCQkJIyAgIGluZm8KCQkJCQkjICAgbm90aWNl CgkJCQkJIyAgIHdhcm5pbmcKCQkJCQkjICAgZXJyb3IKCQkJCQkjICAgbG9nCgkJCQkJIyAg IGZhdGFsCgkJCQkJIyAgIHBhbmljCgojbG9nX21pbl9lcnJvcl9zdGF0ZW1lbnQgPSBlcnJv cgkjIHZhbHVlcyBpbiBvcmRlciBvZiBkZWNyZWFzaW5nIGRldGFpbDoKI2xvZ19taW5fZXJy b3Jfc3RhdGVtZW50ID0gZGVidWc1CmxvZ19taW5fZXJyb3Jfc3RhdGVtZW50ID0gaW5mbwoJ CQkJCSMgICBkZWJ1ZzUKCQkJCQkjICAgZGVidWc0CgkJCQkJIyAgIGRlYnVnMwoJCQkJCSMg ICBkZWJ1ZzIKCQkJCQkjICAgZGVidWcxCgkJCQkJIyAgIGluZm8KCQkJCQkjICAgbm90aWNl CgkJCQkJIyAgIHdhcm5pbmcKCQkJCQkjICAgZXJyb3IKCQkJCQkjICAgbG9nCgkJCQkJIyAg IGZhdGFsCgkJCQkJIyAgIHBhbmljIChlZmZlY3RpdmVseSBvZmYpCgojbG9nX21pbl9kdXJh dGlvbl9zdGF0ZW1lbnQgPSAtMQkjIC0xIGlzIGRpc2FibGVkLCAwIGxvZ3MgYWxsIHN0YXRl bWVudHMKCQkJCQkjIGFuZCB0aGVpciBkdXJhdGlvbnMsID4gMCBsb2dzIG9ubHkKCQkJCQkj IHN0YXRlbWVudHMgcnVubmluZyBhdCBsZWFzdCB0aGlzIG51bWJlcgoJCQkJCSMgb2YgbWls bGlzZWNvbmRzCgojbG9nX21pbl9kdXJhdGlvbl9zYW1wbGUgPSAtMQkJIyAtMSBpcyBkaXNh YmxlZCwgMCBsb2dzIGEgc2FtcGxlIG9mIHN0YXRlbWVudHMKCQkJCQkjIGFuZCB0aGVpciBk dXJhdGlvbnMsID4gMCBsb2dzIG9ubHkgYSBzYW1wbGUgb2YKCQkJCQkjIHN0YXRlbWVudHMg cnVubmluZyBhdCBsZWFzdCB0aGlzIG51bWJlcgoJCQkJCSMgb2YgbWlsbGlzZWNvbmRzOwoJ CQkJCSMgc2FtcGxlIGZyYWN0aW9uIGlzIGRldGVybWluZWQgYnkgbG9nX3N0YXRlbWVudF9z YW1wbGVfcmF0ZQoKI2xvZ19zdGF0ZW1lbnRfc2FtcGxlX3JhdGUgPSAxLjAJIyBmcmFjdGlv biBvZiBsb2dnZWQgc3RhdGVtZW50cyBleGNlZWRpbmcKCQkJCQkjIGxvZ19taW5fZHVyYXRp b25fc2FtcGxlIHRvIGJlIGxvZ2dlZDsKCQkJCQkjIDEuMCBsb2dzIGFsbCBzdWNoIHN0YXRl bWVudHMsIDAuMCBuZXZlciBsb2dzCgoKI2xvZ190cmFuc2FjdGlvbl9zYW1wbGVfcmF0ZSA9 IDAuMAkjIGZyYWN0aW9uIG9mIHRyYW5zYWN0aW9ucyB3aG9zZSBzdGF0ZW1lbnRzCgkJCQkJ IyBhcmUgbG9nZ2VkIHJlZ2FyZGxlc3Mgb2YgdGhlaXIgZHVyYXRpb247IDEuMCBsb2dzIGFs bAoJCQkJCSMgc3RhdGVtZW50cyBmcm9tIGFsbCB0cmFuc2FjdGlvbnMsIDAuMCBuZXZlciBs b2dzCgojbG9nX3N0YXJ0dXBfcHJvZ3Jlc3NfaW50ZXJ2YWwgPSAxMHMJIyBUaW1lIGJldHdl ZW4gcHJvZ3Jlc3MgdXBkYXRlcyBmb3IKCQkJCQkjIGxvbmctcnVubmluZyBzdGFydHVwIG9w ZXJhdGlvbnMuCgkJCQkJIyAwIGRpc2FibGVzIHRoZSBmZWF0dXJlLCA+IDAgaW5kaWNhdGVz CgkJCQkJIyB0aGUgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzLgoKIyAtIFdoYXQgdG8gTG9n IC0KCiNkZWJ1Z19wcmludF9wYXJzZSA9IG9mZgojZGVidWdfcHJpbnRfcmV3cml0dGVuID0g b2ZmCiNkZWJ1Z19wcmludF9wbGFuID0gb2ZmCiNkZWJ1Z19wcmV0dHlfcHJpbnQgPSBvbgoj bG9nX2F1dG92YWN1dW1fbWluX2R1cmF0aW9uID0gMTBtaW4JIyBsb2cgYXV0b3ZhY3V1bSBh Y3Rpdml0eTsKCQkJCQkjIC0xIGRpc2FibGVzLCAwIGxvZ3MgYWxsIGFjdGlvbnMgYW5kCgkJ CQkJIyB0aGVpciBkdXJhdGlvbnMsID4gMCBsb2dzIG9ubHkKCQkJCQkjIGFjdGlvbnMgcnVu bmluZyBhdCBsZWFzdCB0aGlzIG51bWJlcgoJCQkJCSMgb2YgbWlsbGlzZWNvbmRzLgojbG9n X2NoZWNrcG9pbnRzID0gb24KI2xvZ19jb25uZWN0aW9ucyA9IG9mZgojbG9nX2Rpc2Nvbm5l Y3Rpb25zID0gb2ZmCiNsb2dfZHVyYXRpb24gPSBvZmYKI2xvZ19lcnJvcl92ZXJib3NpdHkg PSBkZWZhdWx0CQkjIHRlcnNlLCBkZWZhdWx0LCBvciB2ZXJib3NlIG1lc3NhZ2VzCmxvZ19l cnJvcl92ZXJib3NpdHkgPSB2ZXJib3NlCiNsb2dfaG9zdG5hbWUgPSBvZmYKI2xvZ19saW5l X3ByZWZpeCA9ICclbSBbJXBdICcJCSMgc3BlY2lhbCB2YWx1ZXM6CmxvZ19saW5lX3ByZWZp eCA9ICclbSBbJXBdICVxJXVAJWQgLSAlaCVlJWMgJyAgICAgICAgICAgIyBzcGVjaWFsIHZh bHVlczoKCQkJCQkjICAgJWEgPSBhcHBsaWNhdGlvbiBuYW1lCgkJCQkJIyAgICV1ID0gdXNl ciBuYW1lCgkJCQkJIyAgICVkID0gZGF0YWJhc2UgbmFtZQoJCQkJCSMgICAlciA9IHJlbW90 ZSBob3N0IGFuZCBwb3J0CgkJCQkJIyAgICVoID0gcmVtb3RlIGhvc3QKCQkJCQkjICAgJWIg PSBiYWNrZW5kIHR5cGUKCQkJCQkjICAgJXAgPSBwcm9jZXNzIElECgkJCQkJIyAgICVQID0g cHJvY2VzcyBJRCBvZiBwYXJhbGxlbCBncm91cCBsZWFkZXIKCQkJCQkjICAgJXQgPSB0aW1l c3RhbXAgd2l0aG91dCBtaWxsaXNlY29uZHMKCQkJCQkjICAgJW0gPSB0aW1lc3RhbXAgd2l0 aCBtaWxsaXNlY29uZHMKCQkJCQkjICAgJW4gPSB0aW1lc3RhbXAgd2l0aCBtaWxsaXNlY29u ZHMgKGFzIGEgVW5peCBlcG9jaCkKCQkJCQkjICAgJVEgPSBxdWVyeSBJRCAoMCBpZiBub25l IG9yIG5vdCBjb21wdXRlZCkKCQkJCQkjICAgJWkgPSBjb21tYW5kIHRhZwoJCQkJCSMgICAl ZSA9IFNRTCBzdGF0ZQoJCQkJCSMgICAlYyA9IHNlc3Npb24gSUQKCQkJCQkjICAgJWwgPSBz ZXNzaW9uIGxpbmUgbnVtYmVyCgkJCQkJIyAgICVzID0gc2Vzc2lvbiBzdGFydCB0aW1lc3Rh bXAKCQkJCQkjICAgJXYgPSB2aXJ0dWFsIHRyYW5zYWN0aW9uIElECgkJCQkJIyAgICV4ID0g dHJhbnNhY3Rpb24gSUQgKDAgaWYgbm9uZSkKCQkJCQkjICAgJXEgPSBzdG9wIGhlcmUgaW4g bm9uLXNlc3Npb24KCQkJCQkjICAgICAgICBwcm9jZXNzZXMKCQkJCQkjICAgJSUgPSAnJScK CQkJCQkjIGUuZy4gJzwldSUlJWQ+ICcKI2xvZ19sb2NrX3dhaXRzID0gb2ZmCQkJIyBsb2cg bG9jayB3YWl0cyA+PSBkZWFkbG9ja190aW1lb3V0CmxvZ19sb2NrX3dhaXRzID0gb24KI2xv Z19yZWNvdmVyeV9jb25mbGljdF93YWl0cyA9IG9mZgkjIGxvZyBzdGFuZGJ5IHJlY292ZXJ5 IGNvbmZsaWN0IHdhaXRzCmxvZ19yZWNvdmVyeV9jb25mbGljdF93YWl0cyA9IG9uCgkJCQkJ IyA+PSBkZWFkbG9ja190aW1lb3V0CiNsb2dfcGFyYW1ldGVyX21heF9sZW5ndGggPSAtMQkJ IyB3aGVuIGxvZ2dpbmcgc3RhdGVtZW50cywgbGltaXQgbG9nZ2VkCgkJCQkJIyBiaW5kLXBh cmFtZXRlciB2YWx1ZXMgdG8gTiBieXRlczsKCQkJCQkjIC0xIG1lYW5zIHByaW50IGluIGZ1 bGwsIDAgZGlzYWJsZXMKI2xvZ19wYXJhbWV0ZXJfbWF4X2xlbmd0aF9vbl9lcnJvciA9IDAJ IyB3aGVuIGxvZ2dpbmcgYW4gZXJyb3IsIGxpbWl0IGxvZ2dlZAoJCQkJCSMgYmluZC1wYXJh bWV0ZXIgdmFsdWVzIHRvIE4gYnl0ZXM7CgkJCQkJIyAtMSBtZWFucyBwcmludCBpbiBmdWxs LCAwIGRpc2FibGVzCmxvZ19zdGF0ZW1lbnQgPSAnbm9uZScJCQkjIG5vbmUsIGRkbCwgbW9k LCBhbGwKI2xvZ19zdGF0ZW1lbnQgPSAnYWxsJwkJCSMgbm9uZSwgZGRsLCBtb2QsIGFsbAoj bG9nX3JlcGxpY2F0aW9uX2NvbW1hbmRzID0gb2ZmCiNsb2dfdGVtcF9maWxlcyA9IC0xCQkJ IyBsb2cgdGVtcG9yYXJ5IGZpbGVzIGVxdWFsIG9yIGxhcmdlcgoJCQkJCSMgdGhhbiB0aGUg c3BlY2lmaWVkIHNpemUgaW4ga2lsb2J5dGVzOwoJCQkJCSMgLTEgZGlzYWJsZXMsIDAgbG9n cyBhbGwgdGVtcCBmaWxlcwpsb2dfdGltZXpvbmUgPSAnRXVyb3BlL1JvbWUnCgojIC0gUHJv Y2VzcyBUaXRsZSAtCgojY2x1c3Rlcl9uYW1lID0gJycJCQkjIGFkZGVkIHRvIHByb2Nlc3Mg dGl0bGVzIGlmIG5vbmVtcHR5CgkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiN1 cGRhdGVfcHJvY2Vzc190aXRsZSA9IG9uCgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoj IFNUQVRJU1RJQ1MKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyAtIEN1bXVsYXRpdmUg UXVlcnkgYW5kIEluZGV4IFN0YXRpc3RpY3MgLQoKI3RyYWNrX2FjdGl2aXRpZXMgPSBvbgoj dHJhY2tfYWN0aXZpdHlfcXVlcnlfc2l6ZSA9IDEwMjQJIyAoY2hhbmdlIHJlcXVpcmVzIHJl c3RhcnQpCiN0cmFja19jb3VudHMgPSBvbgojdHJhY2tfaW9fdGltaW5nID0gb2ZmCiN0cmFj a193YWxfaW9fdGltaW5nID0gb2ZmCiN0cmFja19mdW5jdGlvbnMgPSBub25lCQkJIyBub25l LCBwbCwgYWxsCiNzdGF0c19mZXRjaF9jb25zaXN0ZW5jeSA9IGNhY2hlCSMgY2FjaGUsIG5v bmUsIHNuYXBzaG90CgoKIyAtIE1vbml0b3JpbmcgLQoKI2NvbXB1dGVfcXVlcnlfaWQgPSBh dXRvCiNsb2dfc3RhdGVtZW50X3N0YXRzID0gb2ZmCiNsb2dfcGFyc2VyX3N0YXRzID0gb2Zm CiNsb2dfcGxhbm5lcl9zdGF0cyA9IG9mZgojbG9nX2V4ZWN1dG9yX3N0YXRzID0gb2ZmCgoK Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEFVVE9WQUNVVU0KIy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKI2F1dG92YWN1dW0gPSBvbgkJCSMgRW5hYmxlIGF1dG92YWN1dW0gc3Vi cHJvY2Vzcz8gICdvbicKCQkJCQkjIHJlcXVpcmVzIHRyYWNrX2NvdW50cyB0byBhbHNvIGJl IG9uLgojYXV0b3ZhY3V1bV9tYXhfd29ya2VycyA9IDMJCSMgbWF4IG51bWJlciBvZiBhdXRv dmFjdXVtIHN1YnByb2Nlc3NlcwoJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQoj YXV0b3ZhY3V1bV9uYXB0aW1lID0gMW1pbgkJIyB0aW1lIGJldHdlZW4gYXV0b3ZhY3V1bSBy dW5zCiNhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQgPSA1MAkjIG1pbiBudW1iZXIgb2Yg cm93IHVwZGF0ZXMgYmVmb3JlCgkJCQkJIyB2YWN1dW0KI2F1dG92YWN1dW1fdmFjdXVtX2lu c2VydF90aHJlc2hvbGQgPSAxMDAwCSMgbWluIG51bWJlciBvZiByb3cgaW5zZXJ0cwoJCQkJ CSMgYmVmb3JlIHZhY3V1bTsgLTEgZGlzYWJsZXMgaW5zZXJ0CgkJCQkJIyB2YWN1dW1zCiNh dXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xkID0gNTAJIyBtaW4gbnVtYmVyIG9mIHJvdyB1 cGRhdGVzIGJlZm9yZQoJCQkJCSMgYW5hbHl6ZQojYXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVf ZmFjdG9yID0gMC4yCSMgZnJhY3Rpb24gb2YgdGFibGUgc2l6ZSBiZWZvcmUgdmFjdXVtCiNh dXRvdmFjdXVtX3ZhY3V1bV9pbnNlcnRfc2NhbGVfZmFjdG9yID0gMC4yCSMgZnJhY3Rpb24g b2YgaW5zZXJ0cyBvdmVyIHRhYmxlCgkJCQkJIyBzaXplIGJlZm9yZSBpbnNlcnQgdmFjdXVt CiNhdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yID0gMC4xCSMgZnJhY3Rpb24gb2Yg dGFibGUgc2l6ZSBiZWZvcmUgYW5hbHl6ZQojYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZSA9 IDIwMDAwMDAwMAkjIG1heGltdW0gWElEIGFnZSBiZWZvcmUgZm9yY2VkIHZhY3V1bQoJCQkJ CSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQojYXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJl ZXplX21heF9hZ2UgPSA0MDAwMDAwMDAJIyBtYXhpbXVtIG11bHRpeGFjdCBhZ2UKCQkJCQkj IGJlZm9yZSBmb3JjZWQgdmFjdXVtCgkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQp CiNhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5ID0gMm1zCSMgZGVmYXVsdCB2YWN1dW0g Y29zdCBkZWxheSBmb3IKCQkJCQkjIGF1dG92YWN1dW0sIGluIG1pbGxpc2Vjb25kczsKCQkJ CQkjIC0xIG1lYW5zIHVzZSB2YWN1dW1fY29zdF9kZWxheQojYXV0b3ZhY3V1bV92YWN1dW1f Y29zdF9saW1pdCA9IC0xCSMgZGVmYXVsdCB2YWN1dW0gY29zdCBsaW1pdCBmb3IKCQkJCQkj IGF1dG92YWN1dW0sIC0xIG1lYW5zIHVzZQoJCQkJCSMgdmFjdXVtX2Nvc3RfbGltaXQKCgoj LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ0xJRU5UIENPTk5FQ1RJT04gREVGQVVMVFMK Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyAtIFN0YXRlbWVudCBCZWhhdmlvciAtCgoj Y2xpZW50X21pbl9tZXNzYWdlcyA9IG5vdGljZQkJIyB2YWx1ZXMgaW4gb3JkZXIgb2YgZGVj cmVhc2luZyBkZXRhaWw6CgkJCQkJIyAgIGRlYnVnNQoJCQkJCSMgICBkZWJ1ZzQKCQkJCQkj ICAgZGVidWczCgkJCQkJIyAgIGRlYnVnMgoJCQkJCSMgICBkZWJ1ZzEKCQkJCQkjICAgbG9n CgkJCQkJIyAgIG5vdGljZQoJCQkJCSMgICB3YXJuaW5nCgkJCQkJIyAgIGVycm9yCiNzZWFy Y2hfcGF0aCA9ICciJHVzZXIiLCBwdWJsaWMnCSMgc2NoZW1hIG5hbWVzCiNyb3dfc2VjdXJp dHkgPSBvbgojZGVmYXVsdF90YWJsZV9hY2Nlc3NfbWV0aG9kID0gJ2hlYXAnCiNkZWZhdWx0 X3RhYmxlc3BhY2UgPSAnJwkJIyBhIHRhYmxlc3BhY2UgbmFtZSwgJycgdXNlcyB0aGUgZGVm YXVsdAojZGVmYXVsdF90b2FzdF9jb21wcmVzc2lvbiA9ICdwZ2x6JwkjICdwZ2x6JyBvciAn bHo0JwojdGVtcF90YWJsZXNwYWNlcyA9ICcnCQkJIyBhIGxpc3Qgb2YgdGFibGVzcGFjZSBu YW1lcywgJycgdXNlcwoJCQkJCSMgb25seSBkZWZhdWx0IHRhYmxlc3BhY2UKI2NoZWNrX2Z1 bmN0aW9uX2JvZGllcyA9IG9uCiNkZWZhdWx0X3RyYW5zYWN0aW9uX2lzb2xhdGlvbiA9ICdy ZWFkIGNvbW1pdHRlZCcKI2RlZmF1bHRfdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb2ZmCiNk ZWZhdWx0X3RyYW5zYWN0aW9uX2RlZmVycmFibGUgPSBvZmYKI3Nlc3Npb25fcmVwbGljYXRp b25fcm9sZSA9ICdvcmlnaW4nCiNzdGF0ZW1lbnRfdGltZW91dCA9IDAJCQkjIGluIG1pbGxp c2Vjb25kcywgMCBpcyBkaXNhYmxlZAojbG9ja190aW1lb3V0ID0gMAkJCSMgaW4gbWlsbGlz ZWNvbmRzLCAwIGlzIGRpc2FibGVkCiNpZGxlX2luX3RyYW5zYWN0aW9uX3Nlc3Npb25fdGlt ZW91dCA9IDAJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKI2lkbGVfc2Vzc2lv bl90aW1lb3V0ID0gMAkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKI3ZhY3V1 bV9mcmVlemVfdGFibGVfYWdlID0gMTUwMDAwMDAwCiN2YWN1dW1fZnJlZXplX21pbl9hZ2Ug PSA1MDAwMDAwMAojdmFjdXVtX2ZhaWxzYWZlX2FnZSA9IDE2MDAwMDAwMDAKI3ZhY3V1bV9t dWx0aXhhY3RfZnJlZXplX3RhYmxlX2FnZSA9IDE1MDAwMDAwMAojdmFjdXVtX211bHRpeGFj dF9mcmVlemVfbWluX2FnZSA9IDUwMDAwMDAKI3ZhY3V1bV9tdWx0aXhhY3RfZmFpbHNhZmVf YWdlID0gMTYwMDAwMDAwMAojYnl0ZWFfb3V0cHV0ID0gJ2hleCcJCQkjIGhleCwgZXNjYXBl CiN4bWxiaW5hcnkgPSAnYmFzZTY0JwojeG1sb3B0aW9uID0gJ2NvbnRlbnQnCiNnaW5fcGVu ZGluZ19saXN0X2xpbWl0ID0gNE1CCiNjcmVhdGVyb2xlX3NlbGZfZ3JhbnQgPSAnJwkJIyBz ZXQgYW5kL29yIGluaGVyaXQKCiMgLSBMb2NhbGUgYW5kIEZvcm1hdHRpbmcgLQoKZGF0ZXN0 eWxlID0gJ2lzbywgZG15JwojaW50ZXJ2YWxzdHlsZSA9ICdwb3N0Z3JlcycKdGltZXpvbmUg PSAnRXVyb3BlL1JvbWUnCiN0aW1lem9uZV9hYmJyZXZpYXRpb25zID0gJ0RlZmF1bHQnICAg ICAjIFNlbGVjdCB0aGUgc2V0IG9mIGF2YWlsYWJsZSB0aW1lIHpvbmUKCQkJCQkjIGFiYnJl dmlhdGlvbnMuICBDdXJyZW50bHksIHRoZXJlIGFyZQoJCQkJCSMgICBEZWZhdWx0CgkJCQkJ IyAgIEF1c3RyYWxpYSAoaGlzdG9yaWNhbCB1c2FnZSkKCQkJCQkjICAgSW5kaWEKCQkJCQkj IFlvdSBjYW4gY3JlYXRlIHlvdXIgb3duIGZpbGUgaW4KCQkJCQkjIHNoYXJlL3RpbWV6b25l c2V0cy8uCiNleHRyYV9mbG9hdF9kaWdpdHMgPSAxCQkJIyBtaW4gLTE1LCBtYXggMzsgYW55 IHZhbHVlID4wIGFjdHVhbGx5CgkJCQkJIyBzZWxlY3RzIHByZWNpc2Ugb3V0cHV0IG1vZGUK I2NsaWVudF9lbmNvZGluZyA9IHNxbF9hc2NpaQkJIyBhY3R1YWxseSwgZGVmYXVsdHMgdG8g ZGF0YWJhc2UKCQkJCQkjIGVuY29kaW5nCgojIFRoZXNlIHNldHRpbmdzIGFyZSBpbml0aWFs aXplZCBieSBpbml0ZGIsIGJ1dCB0aGV5IGNhbiBiZSBjaGFuZ2VkLgpsY19tZXNzYWdlcyA9 ICdpdF9JVC5VVEYtOCcJCSMgbG9jYWxlIGZvciBzeXN0ZW0gZXJyb3IgbWVzc2FnZQoJCQkJ CSMgc3RyaW5ncwpsY19tb25ldGFyeSA9ICdpdF9JVC5VVEYtOCcJCSMgbG9jYWxlIGZvciBt b25ldGFyeSBmb3JtYXR0aW5nCmxjX251bWVyaWMgPSAnaXRfSVQuVVRGLTgnCQkjIGxvY2Fs ZSBmb3IgbnVtYmVyIGZvcm1hdHRpbmcKbGNfdGltZSA9ICdpdF9JVC5VVEYtOCcJCQkjIGxv Y2FsZSBmb3IgdGltZSBmb3JtYXR0aW5nCgojaWN1X3ZhbGlkYXRpb25fbGV2ZWwgPSB3YXJu aW5nCQkjIHJlcG9ydCBJQ1UgbG9jYWxlIHZhbGlkYXRpb24KCQkJCQkjIGVycm9ycyBhdCB0 aGUgZ2l2ZW4gbGV2ZWwKCiMgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0ZXh0IHNlYXJj aApkZWZhdWx0X3RleHRfc2VhcmNoX2NvbmZpZyA9ICdwZ19jYXRhbG9nLml0YWxpYW4nCgoj IC0gU2hhcmVkIExpYnJhcnkgUHJlbG9hZGluZyAtCgojbG9jYWxfcHJlbG9hZF9saWJyYXJp ZXMgPSAnJwojc2Vzc2lvbl9wcmVsb2FkX2xpYnJhcmllcyA9ICcnCiNzaGFyZWRfcHJlbG9h ZF9saWJyYXJpZXMgPSAnJwkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKI2ppdF9wcm92 aWRlciA9ICdsbHZtaml0JwkJIyBKSVQgbGlicmFyeSB0byB1c2UKCiMgLSBPdGhlciBEZWZh dWx0cyAtCgojZHluYW1pY19saWJyYXJ5X3BhdGggPSAnJGxpYmRpcicKI2V4dGVuc2lvbl9k ZXN0ZGlyID0gJycJCQkjIHByZXBlbmQgcGF0aCB3aGVuIGxvYWRpbmcgZXh0ZW5zaW9ucwoJ CQkJCSMgYW5kIHNoYXJlZCBvYmplY3RzIChhZGRlZCBieSBEZWJpYW4pCiNnaW5fZnV6enlf c2VhcmNoX2xpbWl0ID0gMAoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMT0NLIE1B TkFHRU1FTlQKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKI2RlYWRsb2NrX3RpbWVvdXQg PSAxcwojbWF4X2xvY2tzX3Blcl90cmFuc2FjdGlvbiA9IDY0CQkjIG1pbiAxMAoJCQkJCSMg KGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQojbWF4X3ByZWRfbG9ja3NfcGVyX3RyYW5zYWN0 aW9uID0gNjQJIyBtaW4gMTAKCQkJCQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKI21h eF9wcmVkX2xvY2tzX3Blcl9yZWxhdGlvbiA9IC0yCSMgbmVnYXRpdmUgdmFsdWVzIG1lYW4K CQkJCQkjIChtYXhfcHJlZF9sb2Nrc19wZXJfdHJhbnNhY3Rpb24KCQkJCQkjICAvIC1tYXhf cHJlZF9sb2Nrc19wZXJfcmVsYXRpb24pIC0gMQojbWF4X3ByZWRfbG9ja3NfcGVyX3BhZ2Ug PSAyICAgICAgICAgICAgIyBtaW4gMAoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBW RVJTSU9OIEFORCBQTEFURk9STSBDT01QQVRJQklMSVRZCiMtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KCiMgLSBQcmV2aW91cyBQb3N0Z3JlU1FMIFZlcnNpb25zIC0KCiNhcnJheV9udWxs cyA9IG9uCiNiYWNrc2xhc2hfcXVvdGUgPSBzYWZlX2VuY29kaW5nCSMgb24sIG9mZiwgb3Ig c2FmZV9lbmNvZGluZwojZXNjYXBlX3N0cmluZ193YXJuaW5nID0gb24KI2xvX2NvbXBhdF9w cml2aWxlZ2VzID0gb2ZmCiNxdW90ZV9hbGxfaWRlbnRpZmllcnMgPSBvZmYKI3N0YW5kYXJk X2NvbmZvcm1pbmdfc3RyaW5ncyA9IG9uCiNzeW5jaHJvbml6ZV9zZXFzY2FucyA9IG9uCgoj IC0gT3RoZXIgUGxhdGZvcm1zIGFuZCBDbGllbnRzIC0KCiN0cmFuc2Zvcm1fbnVsbF9lcXVh bHMgPSBvZmYKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgRVJST1IgSEFORExJTkcK Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKI2V4aXRfb25fZXJyb3IgPSBvZmYJCQkjIHRl cm1pbmF0ZSBzZXNzaW9uIG9uIGFueSBlcnJvcj8KI3Jlc3RhcnRfYWZ0ZXJfY3Jhc2ggPSBv bgkJIyByZWluaXRpYWxpemUgYWZ0ZXIgYmFja2VuZCBjcmFzaD8KI2RhdGFfc3luY19yZXRy eSA9IG9mZgkJCSMgcmV0cnkgb3IgcGFuaWMgb24gZmFpbHVyZSB0byBmc3luYwoJCQkJCSMg ZGF0YT8KCQkJCQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKI3JlY292ZXJ5X2luaXRf c3luY19tZXRob2QgPSBmc3luYwkjIGZzeW5jLCBzeW5jZnMgKExpbnV4IDUuOCspCgoKIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENPTkZJRyBGSUxFIElOQ0xVREVTCiMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCiMgVGhlc2Ugb3B0aW9ucyBhbGxvdyBzZXR0aW5ncyB0byBi ZSBsb2FkZWQgZnJvbSBmaWxlcyBvdGhlciB0aGFuIHRoZQojIGRlZmF1bHQgcG9zdGdyZXNx bC5jb25mLiAgTm90ZSB0aGF0IHRoZXNlIGFyZSBkaXJlY3RpdmVzLCBub3QgdmFyaWFibGUK IyBhc3NpZ25tZW50cywgc28gdGhleSBjYW4gdXNlZnVsbHkgYmUgZ2l2ZW4gbW9yZSB0aGFu IG9uY2UuCgojaW5jbHVkZV9kaXIgPSAnLi4uJwkJCSMgaW5jbHVkZSBmaWxlcyBlbmRpbmcg aW4gJy5jb25mJyBmcm9tCgkJCQkJIyBhIGRpcmVjdG9yeSwgZS5nLiwgJ2NvbmYuZCcKI2lu Y2x1ZGVfaWZfZXhpc3RzID0gJy4uLicJCSMgaW5jbHVkZSBmaWxlIG9ubHkgaWYgaXQgZXhp c3RzCiNpbmNsdWRlID0gJy4uLicJCQkjIGluY2x1ZGUgZmlsZQoKCiMtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIyBDVVNUT01JWkVEIE9QVElPTlMKIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKIyBBZGQgc2V0dGluZ3MgZm9yIGV4dGVuc2lvbnMgaGVyZQo= --------------VNgWbl07HAgAe0sMdT0E2IEq--