From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smarthost4.atos.net (smtppost.atos.net [193.56.114.177]) by sourceware.org (Postfix) with ESMTPS id 0C55F3836C27; Thu, 21 Jan 2021 12:48:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 0C55F3836C27 X-IronPort-AV: E=Sophos;i="5.79,363,1602540000"; d="txt'223?scan'223,208,223";a="157390253" X-MGA-submission: =?us-ascii?q?MDEWm39IhZHx7cxw3lUFeBAc2rIFXndMJ90P5p?= =?us-ascii?q?9ZPFqXFRMElwthylouzPXRx5UMR+ThCmpjTRQr+U7g32GaWVeMcmvqZg?= =?us-ascii?q?01T4tqgVrYP/P4QxYJlEYDaVE3G+1hc2CfN6zcXwTi0iY8Cr43c3N/C6?= =?us-ascii?q?fL?= Received: from unknown (HELO GITEXCPRDMB14.ww931.my-it-solutions.net) ([10.89.28.144]) by smarthost4.atos.net with ESMTP/TLS/AES256-GCM-SHA384; 21 Jan 2021 13:48:19 +0100 Received: from GITEXCPRDMB12.ww931.my-it-solutions.net (10.89.28.142) by GITEXCPRDMB14.ww931.my-it-solutions.net (10.89.28.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2044.4; Thu, 21 Jan 2021 13:48:19 +0100 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (172.16.214.171) by GITEXCPRDMB12.ww931.my-it-solutions.net (10.89.28.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2044.4 via Frontend Transport; Thu, 21 Jan 2021 13:48:19 +0100 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Jdyv+JnDNZtRjqq7IICrqpe4UGzIIZiQbKkc9o8NUrhuR9mo74ddfYiJtenwG+ZVTqQF1XWl/PCVxddCPNxOzzmXlnqy+9Am7inOSAgztUx/GiWRVH02jfsz8KM4Wl8PRMlLTO836FhIXH/689U1/WBGXZSaazOCjRxQjL8R+Mi+z/83DjIjdCHLWPOeqfpeqMy+HmMN88qcctAb2RLd5cA527t82GCx0BaPUKqhibwF3Bvue4/RosAdPzxvVoDEOYVNKZIaLCsA+cfV48sbSS6I1qyTrFoWmZKxjc5lRScsAgZAF/iG0WefdEOajoKzHBuzHT7yAeQe2TjFiVhdiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gdJLQpGbiM5ullnHOMM8vuP1v/H3uDvBYJFqJCdJ4JE=; b=LsNhSIWIxZWYsgeRHA8J1hVZLULzHhHvZ7Z7HlA1BbSMfWmBrVjL9wCX00gx8L16qZrFyL9zS4StC8MJsicJthIpvM3LgMokeFwdnlwAXLk8wEMVwLYMD6qVo0K42T8Rpd4Mqbrx451NENqt11HDBtH/5ZkwQ4PqJykK420kPdQZBfI1zdK7HMFVE0/NYmT/MyHL92+8AtjcLTWz/X3ORven2JgIx0pJ5wnQGIUyuIWoQx8SV1z1Dg/d2LFriQx4jHUqtNwxAA9LksRAhi6HzkvHtAYwC1zMhDsmNZLVPD5V95kOU+royO3Zsx7AdxOFmZvHqM1jh3FQ36TC7mNOiA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=atos.net; dmarc=pass action=none header.from=atos.net; dkim=pass header.d=atos.net; arc=none Received: from PA4PR02MB6686.eurprd02.prod.outlook.com (2603:10a6:102:ff::14) by PA4PR02MB7150.eurprd02.prod.outlook.com (2603:10a6:102:10c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.10; Thu, 21 Jan 2021 12:48:18 +0000 Received: from PA4PR02MB6686.eurprd02.prod.outlook.com ([fe80::e06c:aa84:a21d:6932]) by PA4PR02MB6686.eurprd02.prod.outlook.com ([fe80::e06c:aa84:a21d:6932%7]) with mapi id 15.20.3763.014; Thu, 21 Jan 2021 12:48:18 +0000 From: "CHIGOT, CLEMENT" To: libstdc++ CC: David Edelsohn , Jonathan Wakely , David Edelsohn via Gcc-patches , Rainer Orth Subject: Re: [PATCH] libstdc++: implement locale support for AIX Thread-Topic: [PATCH] libstdc++: implement locale support for AIX Thread-Index: AQHW5/cse5cUzOlFpUGzG3vP4ZkwbKoiheqAgAAI90CAAAGAAIAAAJC4gABu9YCAARiZb4AABceAgAAHyTOAAB5/x4AAALUAgAAlmBiAAQvegIAAApjfgAAHBSmAAAEXtYAAA1Z+gAyHwmA= Date: Thu, 21 Jan 2021 12:48:17 +0000 Message-ID: References: <20210111154058.GB21410@redhat.com> <20210112152505.GE21410@redhat.com> , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_Enabled=True; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_SiteId=33440fc6-b7c7-412c-bb73-0e70b0198d5a; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_SetDate=2021-01-21T12:48:16.852Z; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_Name=Atos For Internal Use - All Employees; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_ContentBits=0; MSIP_Label_e463cba9-5f6c-478d-9329-7b2295e4e8ed_Method=Standard; x-originating-ip: [165.225.77.45] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c32320af-d89b-4f36-eb43-08d8be0ad37f x-ms-traffictypediagnostic: PA4PR02MB7150: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +otlvtKfs8KeOpXTZGaZiyjGxzlAOT+l8L+R7NKVohAfVWlg9i/4wgDY6P6V7t7J3LSw9fjU2DoVPcFgFR54bht63mzd1QdfMXnMMN1nBAlNZtUg5efM4tWaCCGDSKQ/nvt+YvieYMiZi5nR+EoqTRiOid1ctO4hM/RQ+cr+SkvzANqduIYAAr66iWeQgCBnN5GfuYrKun/5vJ73gXJrRIvkvy10p9C4SU3Hcrl9G438Mav95QytyJumYLffhd6iMvMjViCPUcDmV8HoKzEOuFaRBZIePiONh3f1Ej7flfzQPVHtpUeDt8z0fgpwl8axlJardEeZwGK5fMujrKR266oSyxgw+XRY1UTQrWuaSM6gp+6MiNS0//Mvq5mvrs1QTZ51crsZX/Q9eQZFT3R4/Q== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR02MB6686.eurprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(366004)(346002)(396003)(39860400002)(376002)(2906002)(55236004)(66446008)(66556008)(66476007)(55016002)(316002)(5660300002)(99936003)(64756008)(83380400001)(33656002)(4326008)(52536014)(54906003)(8936002)(6506007)(26005)(7696005)(86362001)(8676002)(478600001)(66946007)(66616009)(66574015)(91956017)(76116006)(9686003)(186003)(71200400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?iso-8859-1?Q?e4AaEL3/K3giRYbXQ6fjD2wdCWwwRphs2CJv3e978tDNF2raWyvj/U9FOp?= =?iso-8859-1?Q?r2CtxeJyELJ7kpIyaeZZVaE96C3d9Xsp/IvKM5C+B/1boC4Y+3t1z5Fsf1?= =?iso-8859-1?Q?jNvbD6xNy9vH6Pid4IWlMGTLpjzKKEM1JBzSv8N9gWLJBEydnr6gXCsVox?= =?iso-8859-1?Q?bSYWUEt7v0eaxh6UsRiwehMhYSu5XruVdynjAEPm1pIAoT0cmZnUAwuklB?= =?iso-8859-1?Q?Klzpd/jE7Q/0JqQC55u2IZu/X965vrsn9uczR0KRuCHXMQYXvPZrdzbWCW?= =?iso-8859-1?Q?h5L15fES0ZAf5Y+VYx+CS5rygj6Lu7B5sLnIlK7se0TK5grAdYbPr9VRbY?= =?iso-8859-1?Q?y31364dSBUyHh/An7iohcc3NizJ8Z7vXe+yEAgIqXSSh4C0PeCF+Pp3Kpi?= =?iso-8859-1?Q?JZzjLDZY2loFjB6/LetVXC/KfiC34stTnCcdYHwIglRkWh1oXtyFKyKAnv?= =?iso-8859-1?Q?2l6FBB0l3ZZchpxOmXEcTfkfrVrqQ6bS6/uc/M68w9GrqRfIsTy6D0TGUs?= =?iso-8859-1?Q?yCtNrBPFEwD/2yVR1wXf+sEnz3LThvo3T6iQhOpmJyCelmy0/dNhwbjs/p?= =?iso-8859-1?Q?/ZZx6m6yHdnLx7tHTZA7FaA5lT3o/oCuvMbBJGfMDe1Nd68lh2CyGUxyuH?= =?iso-8859-1?Q?5YKxN3nEOrlPP8cqQYwRgH7G1KODrKnzJlhLwVBidGWyAGPv2L+1qP4KSJ?= =?iso-8859-1?Q?ppZcytUSBMBAthpojNvCzOmdX8EFhIl3UNgnX19ae5VX020VpnVUzH5Rsv?= =?iso-8859-1?Q?GW0XRew5sH2gsb+a2LVPzfzo2QuK2E0OiaOb+jSronh0HNhJM5L3r1p5og?= =?iso-8859-1?Q?sdJxfVyp+pDfpM5LVDeFhYMsh9bd8JefcmJypG4+4Md8YzwBCHdNgtINWD?= =?iso-8859-1?Q?TzZWY1h42BwJTh+zmT9IEWqzXihXPz0sAAV2sP1kqK2Z5jqFBMV6SUR/JV?= =?iso-8859-1?Q?qmQeZ6is3+ahcRFu1glK11ZWpK6rmniGcVjUUND5C3teooPd6D3KYyV6oA?= =?iso-8859-1?Q?1Art3iPbFJOnTuvSI=3D?= x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_PA4PR02MB66860C3B1FB54ADD17809B3FEAA10PA4PR02MB6686eurp_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PA4PR02MB6686.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c32320af-d89b-4f36-eb43-08d8be0ad37f X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2021 12:48:17.6687 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 33440fc6-b7c7-412c-bb73-0e70b0198d5a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +jL3pPMyGgknzRMU8uM98Z/Ycd/hniWC8et/i/Z8CHSRfZghmZvktm/j/d/WmC2xJo2e7noi36iiyRR67dq8Mg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR02MB7150 X-OriginatorOrg: atos.net X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_ABUSEAT, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, RCVD_IN_SBL_CSS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jan 2021 12:48:27 -0000 --_002_PA4PR02MB66860C3B1FB54ADD17809B3FEAA10PA4PR02MB6686eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi everyone,=A0=0A= =0A= Here is a new version of the patch. I've tested on Linux and=A0AIX.=0A= There are still some tests failing but it starts having a good shape !=A0= =0A= However, I have few questions:=0A= =0A= 1) locale.name and syscalls=0A= locale.name() is returning a string having the description of each locale= =0A= category. It looks like =0A= "LC_CTYPE=3Den_US.UTF-8; LC_NUMERIC=3Den_US.UTF-8; ...".=0A= However, in locale::global() or sometimes in c_locale.cc functions, this=0A= name is used as arguments of setlocale, newlocale, etc. =0A= It seems to work with GNU locale model but when I'm trying to do it =0A= with the POSIX_2008 model, it doesn't work. A simple C program =0A= seems to refuse it, anyway.=0A= Thus, is there any define on Linux enabling this behavior ? And in =0A= a more general way, I'm not sure it will work on all POSIX 2008 =0A= system. We might need to modify std:global() and other functions =0A= ending up using locale.name() as syscalls argument. =0A= =0A= 2) Detect locale model during tests=0A= Is there already a function in the testsuite to detect which locale model= =0A= is being used ? I didn't find any and as I'm not use to runtest scripts, = =0A= I don't really know how to implement one. =0A= Ideally, it would be something like "has_locale_modele { gnu }". It would = =0A= allow to skip some tests which are made only for GNU model.=0A= Is there any function I can based myself on ? =0A= =0A= 3) POSIX 2017 and non-POSIX functions=0A= Many of the *_l functions being used in GNU or dragonfly models aren't =0A= POSIX 2008, but mainly POSIX 2017 or like strtof_l not POSIX at all. =0A= However, there are really useful in the code, thus I've made a double =0A= implementation based on "#ifdef HAVE_". Is it ok for you ? It's not really= =0A= POSIX 2008 but more POSIX 2008 with 2017 compatibility. =0A= For the configure, I didn't find any better way to check each syscall, as = =0A= they all depend on different includes. Tell me if you have a better idea.= =0A= =0A= 4) ctype_configure_char.cc =0A= I've some troubles knowing what is supposed to be implemented on this file.= =0A= I don't really understand the part with setlocale which appears in many =0A= os. When I'm adding it, some tests start failing, some start working... =0A= Moreover, on Linux, if I understand correctly, there is some optimizations = =0A= based on classic_table(), _M_toupper and _M_tolower. Could you confirm =0A= that it's only useful on Linux ?=0A= =0A= 5) Some tests results=0A= Here are the remaining tests failing on Linux x86:=0A= FAIL: 22_locale/locale/cons/29217.cc execution test=0A= FAIL: 22_locale/locale/cons/38368.cc execution test=0A= FAIL: 22_locale/locale/cons/40184.cc execution test=0A= FAIL: 22_locale/locale/cons/5.cc execution test=0A= FAIL: 22_locale/locale/global_locale_objects/14071.cc execution test=0A= =3D> linked to 1)=0A= =0A= FAIL: 22_locale/messages/13631.cc execution test=0A= FAIL: 22_locale/messages/members/char/1.cc execution test=0A= FAIL: 22_locale/messages/members/char/2.cc execution test=0A= FAIL: 22_locale/messages/members/char/wrapped_env.cc execution test=0A= FAIL: 22_locale/messages/members/char/wrapped_locale.cc execution test=0A= FAIL: 22_locale/messages_byname/named_equivalence.cc execution test=0A= =3D> linked to message_members.cc not being implemented.=0A= Reason behind 2)=0A= =0A= FAIL: 22_locale/numpunct/members/char/3.cc execution test=0A= =3D> No idea yet. Maybe 1) too.=0A= =0A= FAIL: 22_locale/time_get/get_time/char/2.cc execution test=0A= FAIL: 22_locale/time_get/get_time/char/wrapped_env.cc execution test=0A= FAIL: 22_locale/time_get/get_time/char/wrapped_locale.cc execution test=0A= FAIL: 22_locale/time_get/get_time/wchar_t/2.cc execution test=0A= FAIL: 22_locale/time_get/get_time/wchar_t/wrapped_env.cc execution test=0A= FAIL: 22_locale/time_get/get_time/wchar_t/wrapped_locale.cc execution test= =0A= =3D> Not related. =0A= =0A= Feel free to try in on other OS. But I've made modifications only for AIX a= nd =0A= Linux, as I can test the other ones. =0A= =0A= Thanks, =0A= Cl=E9ment=0A= --_002_PA4PR02MB66860C3B1FB54ADD17809B3FEAA10PA4PR02MB6686eurp_ Content-Type: text/plain; name="0001-libstdc-implement-locale-support-for-POSIX-2008.txt" Content-Description: 0001-libstdc-implement-locale-support-for-POSIX-2008.txt Content-Disposition: attachment; filename="0001-libstdc-implement-locale-support-for-POSIX-2008.txt"; size=51237; creation-date="Thu, 21 Jan 2021 12:42:48 GMT"; modification-date="Thu, 21 Jan 2021 12:42:48 GMT" Content-Transfer-Encoding: base64 RnJvbSA2YjgyYTljNmI0OWQxNmU3MDFmMDk2ODkxNTUwYzkzNjYxYTU4YmJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q2w9QzM9QTltZW50PTIwQ2hpZ290Pz0gPGNs ZW1lbnQuY2hpZ290QGF0b3MubmV0PgpEYXRlOiBUdWUsIDI5IERlYyAyMDIwIDExOjA4OjMzICsw MTAwClN1YmplY3Q6IFtQQVRDSF0gbGlic3RkYysrOiBpbXBsZW1lbnQgbG9jYWxlIHN1cHBvcnQg Zm9yIFBPU0lYIDIwMDgKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClRoZSBpbXBs ZW1lbnRhdGlvbiBpcyBiYXNlZCBvbiBkcmFnb25mbHkgb25lLgpJdCBhbHNvIGFkZHMgc3VwcG9y dCBmb3IgQUlYIHdpdGggYSBmZXcgdHdlYWtzLgpBcyBvZiBub3csIGEgZmV3IGxvY2FsZSBmdW5j dGlvbnMgYXJlIG1pc3Npbmcgb24gQUlYLgpGb3Igc3RyZnRpbWVfbCwgbG9jYWxlY29udl9sLCBt YnN0b3djc19sIGFuZCB3Y3NmdGltZV9sLAp1c2Vsb2NhbGUgbXVzdCBiZSBzZXQgcHJpb3IgdG8g dXNlIHRoZSB2ZXJzaW9uIHdpdGhvdXQgX2wuCkZvciBzdHJ0b2ZfbCwgc3RydG9kX2wsIHN0cnRv bGRfbCwgYSB3cmFwcGVyIHNpbXBseSBjYWxscwp0aGUgZGVmYXVsdCB2ZXJzaW9uLgoKbGlic3Rk YysrLXYzL0NoYW5nZUxvZzoKMjAyMS0wMS0xMiAgQ2zDqW1lbnQgQ2hpZ290ICA8Y2xlbWVudC5j aGlnb3RAYXRvcy5uZXQ+CgoJKiBhY2luY2x1ZGUubTQ6IEFkZCBpZWVlXzEwMDMuMS0yMDA4IGxv Y2FsZSBtb2RlbC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvb3MvYWl4L2N0 eXBlX2NvbmZpZ3VyZV9jaGFyLmNjOiBFbmFibGUgbG9jYWxlIHN1cHBvcnQuCiAgICAgICAgKiB0 ZXN0c3VpdGUvbGliL2xpYnN0ZGMrKy5leHAgKGNoZWNrX3YzX3RhcmdldF9uYW1lZGxvY2FsZSk6 CiAgICAgICAgSGFuZGxlIEFJWCBsb2NhbGUgbmFtZXMuCgkqIHRlc3RzdWl0ZS91dGlsL3Rlc3Rz dWl0ZV9ob29rcy5oOiBMaWtld2lzZS4KCSogY29uZmlnL2xvY2FsZS9kcmFnb25mbHkvY19sb2Nh bGUuY2M6IFJlbW92ZWQuCgkqIGNvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L2NfbG9jYWxlLmg6IFJl bW92ZWQuCgkqIGNvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L2NvZGVjdnRfbWVtYmVycy5jYzogUmVt b3ZlZC4KCSogY29uZmlnL2xvY2FsZS9kcmFnb25mbHkvY29sbGF0ZV9tZW1iZXJzLmNjOiBSZW1v dmVkLgoJKiBjb25maWcvbG9jYWxlL2RyYWdvbmZseS9jdHlwZV9tZW1iZXJzLmNjOiBSZW1vdmVk LgoJKiBjb25maWcvbG9jYWxlL2RyYWdvbmZseS9tb25ldGFyeV9tZW1iZXJzLmNjOiBSZW1vdmVk LgoJKiBjb25maWcvbG9jYWxlL2RyYWdvbmZseS9udW1lcmljX21lbWJlcnMuY2M6IFJlbW92ZWQu CgkqIGNvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L3RpbWVfbWVtYmVycy5jYzogUmVtb3ZlZC4KCSog Y29uZmlnL2xvY2FsZS9kcmFnb25mbHkvdGltZV9tZW1iZXJzLmg6IFJlbW92ZWQuCgkqIGNvbmZp Zy9sb2NhbGUvaWVlZV8xMDAzLjEtMjAwOC9jX2xvY2FsZS5jYzogTmV3IGZpbGUuCgkqIGNvbmZp Zy9sb2NhbGUvaWVlZV8xMDAzLjEtMjAwOC9jX2xvY2FsZS5oOiBOZXcgZmlsZS4KCSogY29uZmln L2xvY2FsZS9pZWVlXzEwMDMuMS0yMDA4L2NvZGVjdnRfbWVtYmVycy5jYzogTmV3IGZpbGUuCgkq IGNvbmZpZy9sb2NhbGUvaWVlZV8xMDAzLjEtMjAwOC9jb2xsYXRlX21lbWJlcnMuY2M6IE5ldyBm aWxlLgoJKiBjb25maWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvY3R5cGVfbWVtYmVycy5jYzog TmV3IGZpbGUuCgkqIGNvbmZpZy9sb2NhbGUvaWVlZV8xMDAzLjEtMjAwOC9tb25ldGFyeV9tZW1i ZXJzLmNjOiBOZXcgZmlsZS4KCSogY29uZmlnL2xvY2FsZS9pZWVlXzEwMDMuMS0yMDA4L251bWVy aWNfbWVtYmVycy5jYzogTmV3IGZpbGUuCgkqIGNvbmZpZy9sb2NhbGUvaWVlZV8xMDAzLjEtMjAw OC90aW1lX21lbWJlcnMuY2M6IE5ldyBmaWxlLgoJKiBjb25maWcvbG9jYWxlL2llZWVfMTAwMy4x LTIwMDgvdGltZV9tZW1iZXJzLmg6IE5ldyBmaWxlLgotLS0KIGxpYnN0ZGMrKy12My9hY2luY2x1 ZGUubTQgICAgICAgICAgICAgICAgICAgICB8IDM2MCArKysrKysrKysrKysrKysrKy0KIGxpYnN0 ZGMrKy12My9jb25maWcuaC5pbiAgICAgICAgICAgICAgICAgICAgICB8ICA0NSArKysKIC4uLi9j X2xvY2FsZS5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiAuLi4vY19s b2NhbGUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDUgKysrCiAuLi4vY29k ZWN2dF9tZW1iZXJzLmNjICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDAKIC4uLi9jb2xsYXRl X21lbWJlcnMuY2MgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNSArLQogLi4uL2N0eXBlX21l bWJlcnMuY2MgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTU2ICsrKysrKystCiAuLi4vbW9u ZXRhcnlfbWVtYmVycy5jYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMzkgKy0KIC4uLi9udW1l cmljX21lbWJlcnMuY2MgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNSArKwogLi4uL3RpbWVf bWVtYmVycy5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMxICstCiAuLi4vdGltZV9t ZW1iZXJzLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDAKIC4uLi9jb25maWcvb3Mv YWl4L2N0eXBlX2NvbmZpZ3VyZV9jaGFyLmNjICAgICB8ICAxMCArLQogLi4uL29zL2dudS1saW51 eC9jdHlwZV9jb25maWd1cmVfY2hhci5jYyAgICAgIHwgICA0ICstCiAuLi4vMjJfbG9jYWxlL2Nv ZGVjdnQvaW4vd2NoYXJfdC8yLmNjICAgICAgICAgfCAgIDEgKwogLi4uLzIyX2xvY2FsZS9jb2Rl Y3Z0L2luL3djaGFyX3QvMy5jYyAgICAgICAgIHwgICAxICsKIC4uLi8yMl9sb2NhbGUvY29kZWN2 dC9pbi93Y2hhcl90LzQuY2MgICAgICAgICB8ICAgMSArCiAuLi4vMjJfbG9jYWxlL2NvZGVjdnQv aW4vd2NoYXJfdC83LmNjICAgICAgICAgfCAgIDEgKwogLi4uLzIyX2xvY2FsZS9jb2RlY3Z0L2lu L3djaGFyX3QvOC5jYyAgICAgICAgIHwgICAxICsKIC4uLi8yMl9sb2NhbGUvY29kZWN2dC9pbi93 Y2hhcl90LzkuY2MgICAgICAgICB8ICAgMSArCiAuLi4vMjJfbG9jYWxlL2NvZGVjdnQvbGVuZ3Ro L3djaGFyX3QvNC5jYyAgICAgfCAgIDEgKwogLi4uLzIyX2xvY2FsZS9jb2RlY3Z0L291dC93Y2hh cl90LzQuY2MgICAgICAgIHwgICAxICsKIC4uLi8yMl9sb2NhbGUvY29kZWN2dC91bnNoaWZ0L3dj aGFyX3QvNC5jYyAgICB8ICAgMSArCiAuLi4vYmFzaWNfZmlsZWJ1Zi9vdmVyZmxvdy93Y2hhcl90 LzExMzA1LTEuY2MgfCAgIDEgKwogLi4uL2Jhc2ljX2ZpbGVidWYvb3ZlcmZsb3cvd2NoYXJfdC8x MTMwNS0yLmNjIHwgICAxICsKIC4uLi9iYXNpY19maWxlYnVmL292ZXJmbG93L3djaGFyX3QvMTEz MDUtMy5jYyB8ICAgMSArCiAuLi4vYmFzaWNfZmlsZWJ1Zi9vdmVyZmxvdy93Y2hhcl90LzExMzA1 LTQuY2MgfCAgIDEgKwogbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS9saWIvbGlic3RkYysrLmV4cCAg ICAgIHwgICA1ICsKIGxpYnN0ZGMrKy12My90ZXN0c3VpdGUvdXRpbC90ZXN0c3VpdGVfaG9va3Mu aCB8ICAgMyArCiAyOCBmaWxlcyBjaGFuZ2VkLCA3MjcgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRp b25zKC0pCiByZW5hbWUgbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUve2RyYWdvbmZseSA9PiBp ZWVlXzEwMDMuMS0yMDA4fS9jX2xvY2FsZS5jYyAoOTklKQogcmVuYW1lIGxpYnN0ZGMrKy12My9j b25maWcvbG9jYWxlL3tkcmFnb25mbHkgPT4gaWVlZV8xMDAzLjEtMjAwOH0vY19sb2NhbGUuaCAo NzIlKQogcmVuYW1lIGxpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL3tkcmFnb25mbHkgPT4gaWVl ZV8xMDAzLjEtMjAwOH0vY29kZWN2dF9tZW1iZXJzLmNjICgxMDAlKQogcmVuYW1lIGxpYnN0ZGMr Ky12My9jb25maWcvbG9jYWxlL3tkcmFnb25mbHkgPT4gaWVlZV8xMDAzLjEtMjAwOH0vY29sbGF0 ZV9tZW1iZXJzLmNjICg3MSUpCiByZW5hbWUgbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUve2Ry YWdvbmZseSA9PiBpZWVlXzEwMDMuMS0yMDA4fS9jdHlwZV9tZW1iZXJzLmNjICg1NyUpCiByZW5h bWUgbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUve2RyYWdvbmZseSA9PiBpZWVlXzEwMDMuMS0y MDA4fS9tb25ldGFyeV9tZW1iZXJzLmNjICg5NiUpCiByZW5hbWUgbGlic3RkYysrLXYzL2NvbmZp Zy9sb2NhbGUve2RyYWdvbmZseSA9PiBpZWVlXzEwMDMuMS0yMDA4fS9udW1lcmljX21lbWJlcnMu Y2MgKDkyJSkKIHJlbmFtZSBsaWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS97ZHJhZ29uZmx5ID0+ IGllZWVfMTAwMy4xLTIwMDh9L3RpbWVfbWVtYmVycy5jYyAoOTMlKQogcmVuYW1lIGxpYnN0ZGMr Ky12My9jb25maWcvbG9jYWxlL3tkcmFnb25mbHkgPT4gaWVlZV8xMDAzLjEtMjAwOH0vdGltZV9t ZW1iZXJzLmggKDEwMCUpCgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2FjaW5jbHVkZS5tNCBi L2xpYnN0ZGMrKy12My9hY2luY2x1ZGUubTQKaW5kZXggZTQxNzVlYTNlNjQuLmUxZDcwNTMwOWQ3 IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvYWNpbmNsdWRlLm00CisrKyBiL2xpYnN0ZGMrKy12 My9hY2luY2x1ZGUubTQKQEAgLTI0MjEsNyArMjQyMSw3IEBAIGRubAogQUNfREVGVU4oW0dMSUJD WFhfRU5BQkxFX0NMT0NBTEVdLCBbCiAgIEdMSUJDWFhfRU5BQkxFKGNsb2NhbGUsYXV0byxbW1s9 TU9ERUxdXV0sCiAgICAgW3VzZSBNT0RFTCBmb3IgdGFyZ2V0IGxvY2FsZSBwYWNrYWdlXSwKLSAg ICBbcGVybWl0IGdlbmVyaWN8Z251fGllZWVfMTAwMy4xLTIwMDF8bmV3bGlifHllc3xub3xhdXRv XSkKKyAgICBbcGVybWl0IGdlbmVyaWN8Z251fGllZWVfMTAwMy4xLTIwMDF8aWVlZV8xMDAzLjEt MjAwOHxuZXdsaWJ8eWVzfG5vfGF1dG9dKQogCiAgICMgRGVhbCB3aXRoIGdldHRleHQgaXNzdWVz LiAgRGVmYXVsdCB0byBub3QgdXNpbmcgaXQgKD1ubykgdW50aWwgd2UgZGV0ZWN0CiAgICMgc3Vw cG9ydCBmb3IgaXQgbGF0ZXIuICBMZXQgdGhlIHVzZXIgdHVybiBpdCBvZmYgdmlhIC0tZS9kLCBi dXQgbGV0IHRoYXQKQEAgLTI0NDgsOCArMjQ0OCw4IEBAIEFDX0RFRlVOKFtHTElCQ1hYX0VOQUJM RV9DTE9DQUxFXSwgWwogICAgICAgZGFyd2luKikKIAllbmFibGVfY2xvY2FsZV9mbGFnPWRhcndp bgogCTs7Ci0gICAgICBkcmFnb25mbHkqIHwgZnJlZWJzZCopCi0JZW5hYmxlX2Nsb2NhbGVfZmxh Zz1kcmFnb25mbHkKKyAgICAgIGFpeCogfCBkcmFnb25mbHkqIHwgZnJlZWJzZCopCisJZW5hYmxl X2Nsb2NhbGVfZmxhZz1pZWVlXzEwMDMuMS0yMDA4CiAJOzsKICAgICAgIG9wZW5ic2QqKQogCWVu YWJsZV9jbG9jYWxlX2ZsYWc9bmV3bGliCkBAIC0yNTQzLDIzICsyNTQzLDYgQEAgQUNfREVGVU4o W0dMSUJDWFhfRU5BQkxFX0NMT0NBTEVdLCBbCiAgICAgICBDTE9DQUxFX0lOVEVSTkFMX0g9Y29u ZmlnL2xvY2FsZS9nZW5lcmljL2MrK2xvY2FsZV9pbnRlcm5hbC5oCiAgICAgICA7OwogCi0gICAg ZHJhZ29uZmx5KQotICAgICAgQUNfTVNHX1JFU1VMVChkcmFnb25mbHkgb3IgZnJlZWJzZCkKLQot ICAgICAgQ0xPQ0FMRV9IPWNvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L2NfbG9jYWxlLmgKLSAgICAg IENMT0NBTEVfQ0M9Y29uZmlnL2xvY2FsZS9kcmFnb25mbHkvY19sb2NhbGUuY2MKLSAgICAgIEND T0RFQ1ZUX0NDPWNvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L2NvZGVjdnRfbWVtYmVycy5jYwotICAg ICAgQ0NPTExBVEVfQ0M9Y29uZmlnL2xvY2FsZS9kcmFnb25mbHkvY29sbGF0ZV9tZW1iZXJzLmNj Ci0gICAgICBDQ1RZUEVfQ0M9Y29uZmlnL2xvY2FsZS9kcmFnb25mbHkvY3R5cGVfbWVtYmVycy5j YwotICAgICAgQ01FU1NBR0VTX0g9Y29uZmlnL2xvY2FsZS9nZW5lcmljL21lc3NhZ2VzX21lbWJl cnMuaAotICAgICAgQ01FU1NBR0VTX0NDPWNvbmZpZy9sb2NhbGUvZ2VuZXJpYy9tZXNzYWdlc19t ZW1iZXJzLmNjCi0gICAgICBDTU9ORVlfQ0M9Y29uZmlnL2xvY2FsZS9kcmFnb25mbHkvbW9uZXRh cnlfbWVtYmVycy5jYwotICAgICAgQ05VTUVSSUNfQ0M9Y29uZmlnL2xvY2FsZS9kcmFnb25mbHkv bnVtZXJpY19tZW1iZXJzLmNjCi0gICAgICBDVElNRV9IPWNvbmZpZy9sb2NhbGUvZHJhZ29uZmx5 L3RpbWVfbWVtYmVycy5oCi0gICAgICBDVElNRV9DQz1jb25maWcvbG9jYWxlL2RyYWdvbmZseS90 aW1lX21lbWJlcnMuY2MKLSAgICAgIENMT0NBTEVfSU5URVJOQUxfSD1jb25maWcvbG9jYWxlL2dl bmVyaWMvYysrbG9jYWxlX2ludGVybmFsLmgKLSAgICAgIDs7Ci0KICAgICBnbnUpCiAgICAgICBB Q19NU0dfUkVTVUxUKGdudSkKIApAQCAtMjYxMCw2ICsyNTkzLDI0IEBAIEFDX0RFRlVOKFtHTElC Q1hYX0VOQUJMRV9DTE9DQUxFXSwgWwogICAgICAgQ1RJTUVfQ0M9Y29uZmlnL2xvY2FsZS9nZW5l cmljL3RpbWVfbWVtYmVycy5jYwogICAgICAgQ0xPQ0FMRV9JTlRFUk5BTF9IPWNvbmZpZy9sb2Nh bGUvZ2VuZXJpYy9jKytsb2NhbGVfaW50ZXJuYWwuaAogICAgICAgOzsKKworICAgIGllZWVfMTAw My4xLTIwMDgpCisgICAgICBBQ19NU0dfUkVTVUxUKGllZWVfMTAwMy4xLTIwMDgpCisKKyAgICAg IENMT0NBTEVfSD1jb25maWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvY19sb2NhbGUuaAorICAg ICAgQ0xPQ0FMRV9DQz1jb25maWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvY19sb2NhbGUuY2MK KyAgICAgIENDT0RFQ1ZUX0NDPWNvbmZpZy9sb2NhbGUvaWVlZV8xMDAzLjEtMjAwOC9jb2RlY3Z0 X21lbWJlcnMuY2MKKyAgICAgIENDT0xMQVRFX0NDPWNvbmZpZy9sb2NhbGUvaWVlZV8xMDAzLjEt MjAwOC9jb2xsYXRlX21lbWJlcnMuY2MKKyAgICAgIENDVFlQRV9DQz1jb25maWcvbG9jYWxlL2ll ZWVfMTAwMy4xLTIwMDgvY3R5cGVfbWVtYmVycy5jYworICAgICAgQ01FU1NBR0VTX0g9Y29uZmln L2xvY2FsZS9nZW5lcmljL21lc3NhZ2VzX21lbWJlcnMuaAorICAgICAgQ01FU1NBR0VTX0NDPWNv bmZpZy9sb2NhbGUvZ2VuZXJpYy9tZXNzYWdlc19tZW1iZXJzLmNjCisgICAgICBDTU9ORVlfQ0M9 Y29uZmlnL2xvY2FsZS9pZWVlXzEwMDMuMS0yMDA4L21vbmV0YXJ5X21lbWJlcnMuY2MKKyAgICAg IENOVU1FUklDX0NDPWNvbmZpZy9sb2NhbGUvaWVlZV8xMDAzLjEtMjAwOC9udW1lcmljX21lbWJl cnMuY2MKKyAgICAgIENUSU1FX0g9Y29uZmlnL2xvY2FsZS9pZWVlXzEwMDMuMS0yMDA4L3RpbWVf bWVtYmVycy5oCisgICAgICBDVElNRV9DQz1jb25maWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgv dGltZV9tZW1iZXJzLmNjCisgICAgICBDTE9DQUxFX0lOVEVSTkFMX0g9Y29uZmlnL2xvY2FsZS9n ZW5lcmljL2MrK2xvY2FsZV9pbnRlcm5hbC5oCisgICAgICA7OworCiAgICAgbmV3bGliKQogICAg ICAgQUNfTVNHX1JFU1VMVChuZXdsaWIpCiAKQEAgLTI2NTYsNiArMjY1NywzMjUgQEAgQUNfREVG VU4oW0dMSUJDWFhfRU5BQkxFX0NMT0NBTEVdLCBbCiAgIEFDX1NVQlNUKENUSU1FX0NDKQogICBB Q19TVUJTVChDTE9DQUxFX0NDKQogICBBQ19TVUJTVChDTE9DQUxFX0lOVEVSTkFMX0gpCisKKyAg aWYgdGVzdCAkZW5hYmxlX2Nsb2NhbGVfZmxhZyA9IGllZWVfMTAwMy4xLTIwMDg7IHRoZW4KKyAg ICAgY2FzZSAke3RhcmdldF9vc30gaW4KKyAgICAgCSAgZHJhZ29uZmx5KiB8IGZyZWVic2QqKSBB Q19ERUZJTkUoX0dMSUJDWFhfTkVFRF9YTE9DQUxFX0gsIDEsCisJICAgIFtEZWZpbmUgaWYgPHhs b2NhbGUuaD4gbXVzdCBiZSBpbmNsdWRlZCBmb3IgbG9jYWxlIHN1cHBvcnQuXSk7OworICAgICBl c2FjCisKKyAgICAgIyBTZXQgaXQgdG8gc2NyZWFtIHdoZW4gaXQgaHVydHMuCisgICAgIGFjX3Nh dmVfQ0ZMQUdTPSIkQ0ZMQUdTIgorICAgICBDRkxBR1M9Ii1XaW1wbGljaXQtZnVuY3Rpb24tZGVj bGFyYXRpb24gLVdlcnJvciIKKworICAgICAjIFVzZSBzdHJ0b2ZfbCBpZiBhdmFpbGFibGUuCisg ICAgIEFDX01TR19DSEVDS0lORyhbZm9yIHN0cnRvZl9sXSkKKyAgICAgQUNfQ0FDSEVfVkFMKGds aWJjeHhfY3Zfc3RydG9mX2wsIFsKKyAgICAgICBBQ19UUllfQ09NUElMRSgKKyAgICAgICAgIFsK KwkgICAjaW5jbHVkZSA8c3RkbGliLmg+CisJICAgI2lmZGVmIF9HTElCQ1hYX05FRURfWExPQ0FM RV9ICisJICAgI2luY2x1ZGUgPHhsb2NhbGUuaD4KKwkgICAjZW5kaWYKKwkgXSwKKwkgW3N0cnRv Zl9sKDAsMCwwKV0sCisJIFtnbGliY3h4X2N2X3N0cnRvZl9sPXllc10sCisJIFtnbGliY3h4X2N2 X3N0cnRvZl9sPW5vXSkKKyAgICAgXSkKKyAgICAgaWYgdGVzdCAkZ2xpYmN4eF9jdl9zdHJ0b2Zf bCA9IHllczsgdGhlbgorICAgICAgIEFDX0RFRklORShIQVZFX1NUUlRPRl9MLCAxLAorCSBbRGVm aW5lIGlmIHN0cnRvZl9sIGlzIGF2YWlsYWJsZSBpbiA8c3RkbGliLmg+Ll0pCisgICAgIGZpCisg ICAgIEFDX01TR19SRVNVTFQoJGdsaWJjeHhfY3Zfc3RydG9mX2wpCisKKyAgICAgIyBVc2Ugc3Ry dG9kX2wgaWYgYXZhaWxhYmxlLgorICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBzdHJ0b2RfbF0p CisgICAgIEFDX0NBQ0hFX1ZBTChnbGliY3h4X2N2X3N0cnRvZF9sLCBbCisgICAgICAgQUNfVFJZ X0NPTVBJTEUoCisgICAgICAgICBbCisJICAgI2luY2x1ZGUgPHN0ZGxpYi5oPgorCSAgICNpZmRl ZiBfR0xJQkNYWF9ORUVEX1hMT0NBTEVfSAorCSAgICNpbmNsdWRlIDx4bG9jYWxlLmg+CisJICAg I2VuZGlmCisJIF0sCisJIFtzdHJ0b2RfbCgwLDAsMCldLAorCSBbZ2xpYmN4eF9jdl9zdHJ0b2Rf bD15ZXNdLAorCSBbZ2xpYmN4eF9jdl9zdHJ0b2RfbD1ub10pCisgICAgIF0pCisgICAgIGlmIHRl c3QgJGdsaWJjeHhfY3Zfc3RydG9kX2wgPSB5ZXM7IHRoZW4KKyAgICAgICBBQ19ERUZJTkUoSEFW RV9TVFJUT0RfTCwgMSwKKwkgW0RlZmluZSBpZiBzdHJ0b2RfbCBpcyBhdmFpbGFibGUgaW4gPHN0 ZGxpYi5oPi5dKQorICAgICBmaQorICAgICBBQ19NU0dfUkVTVUxUKCRnbGliY3h4X2N2X3N0cnRv ZF9sKQorCisgICAgICMgVXNlIHN0cnRvbGRfbCBpZiBhdmFpbGFibGUuCisgICAgIEFDX01TR19D SEVDS0lORyhbZm9yIHN0cnRvbGRfbF0pCisgICAgIEFDX0NBQ0hFX1ZBTChnbGliY3h4X2N2X3N0 cnRvbGRfbCwgWworICAgICAgIEFDX1RSWV9DT01QSUxFKAorICAgICAgICAgWworCSAgICNpbmNs dWRlIDxzdGRsaWIuaD4KKwkgICAjaWZkZWYgX0dMSUJDWFhfTkVFRF9YTE9DQUxFX0gKKwkgICAj aW5jbHVkZSA8eGxvY2FsZS5oPgorCSAgICNlbmRpZgorCSBdLAorCSBbc3RydG9sZF9sKDAsMCww KV0sCisJIFtnbGliY3h4X2N2X3N0cnRvbGRfbD15ZXNdLAorCSBbZ2xpYmN4eF9jdl9zdHJ0b2xk X2w9bm9dKQorICAgICBdKQorICAgICBpZiB0ZXN0ICRnbGliY3h4X2N2X3N0cnRvbGRfbCA9IHll czsgdGhlbgorICAgICAgIEFDX0RFRklORShIQVZFX1NUUlRPTERfTCwgMSwKKwkgW0RlZmluZSBp ZiBzdHJ0b2xkX2wgaXMgYXZhaWxhYmxlIGluIDxzdGRsaWIuaD4uXSkKKyAgICAgZmkKKyAgICAg QUNfTVNHX1JFU1VMVCgkZ2xpYmN4eF9jdl9zdHJ0b2xkX2wpCisKKyAgICAgIyBVc2UgbG9jYWxl Y29udl9sIGlmIGF2YWlsYWJsZS4KKyAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgbG9jYWxlY29u dl9sXSkKKyAgICAgQUNfQ0FDSEVfVkFMKGdsaWJjeHhfY3ZfbG9jYWxlY29udl9sLCBbCisgICAg ICAgQUNfVFJZX0NPTVBJTEUoCisgICAgICAgICBbCisJICAgI2luY2x1ZGUgPGxvY2FsZS5oPgor CSAgICNpZmRlZiBfR0xJQkNYWF9ORUVEX1hMT0NBTEVfSAorCSAgICNpbmNsdWRlIDx4bG9jYWxl Lmg+CisJICAgI2VuZGlmCisJIF0sCisJIFtsb2NhbGVjb252X2woMCldLAorCSBbZ2xpYmN4eF9j dl9sb2NhbGVjb252X2w9eWVzXSwKKwkgW2dsaWJjeHhfY3ZfbG9jYWxlY29udl9sPW5vXSkKKyAg ICAgXSkKKyAgICAgaWYgdGVzdCAkZ2xpYmN4eF9jdl9sb2NhbGVjb252X2wgPSB5ZXM7IHRoZW4K KyAgICAgICBBQ19ERUZJTkUoSEFWRV9MT0NBTEVDT05WX0wsIDEsCisJIFtEZWZpbmUgaWYgbG9j YWxlY29udl9sIGlzIGF2YWlsYWJsZSBpbiA8bG9jYWxlLmg+Ll0pCisgICAgIGZpCisgICAgIEFD X01TR19SRVNVTFQoJGdsaWJjeHhfY3ZfbG9jYWxlY29udl9sKQorCisgICAgICMgVXNlIG1ic3Rv d2NzX2wgaWYgYXZhaWxhYmxlLgorICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBtYnN0b3djc19s XSkKKyAgICAgQUNfQ0FDSEVfVkFMKGdsaWJjeHhfY3ZfbWJzdG93Y3NfbCwgWworICAgICAgIEFD X1RSWV9DT01QSUxFKAorICAgICAgICAgWworCSAgICNpbmNsdWRlIDxzdGRsaWIuaD4KKwkgICAj aWZkZWYgX0dMSUJDWFhfTkVFRF9YTE9DQUxFX0gKKwkgICAjaW5jbHVkZSA8eGxvY2FsZS5oPgor CSAgICNlbmRpZgorCSBdLAorCSBbbWJzdG93Y3NfbCgwLDAsMCwwKV0sCisJIFtnbGliY3h4X2N2 X21ic3Rvd2NzX2w9eWVzXSwKKwkgW2dsaWJjeHhfY3ZfbWJzdG93Y3NfbD1ub10pCisgICAgIF0p CisgICAgIGlmIHRlc3QgJGdsaWJjeHhfY3ZfbWJzdG93Y3NfbCA9IHllczsgdGhlbgorICAgICAg IEFDX0RFRklORShIQVZFX01CU1RPV0NTX0wsIDEsCisJIFtEZWZpbmUgaWYgbWJzdG93Y3NfbCBp cyBhdmFpbGFibGUgaW4gPHN0ZGxpYi5oPi5dKQorICAgICBmaQorICAgICBBQ19NU0dfUkVTVUxU KCRnbGliY3h4X2N2X21ic3Rvd2NzX2wpCisKKyAgICAgIyBVc2Ugd2NzZnRpbWVfbCBpZiBhdmFp bGFibGUuCisgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIHdjc2Z0aW1lX2xdKQorICAgICBBQ19D QUNIRV9WQUwoZ2xpYmN4eF9jdl93Y3NmdGltZV9sLCBbCisgICAgICAgQUNfVFJZX0NPTVBJTEUo CisgICAgICAgICBbCisJICAgI2luY2x1ZGUgPHdjaGFyLmg+CisJICAgI2lmZGVmIF9HTElCQ1hY X05FRURfWExPQ0FMRV9ICisJICAgI2luY2x1ZGUgPHhsb2NhbGUuaD4KKwkgICAjZW5kaWYKKwkg XSwKKwkgW3djc2Z0aW1lX2woMCwwLDAsMCwwKV0sCisJIFtnbGliY3h4X2N2X3djc2Z0aW1lX2w9 eWVzXSwKKwkgW2dsaWJjeHhfY3Zfd2NzZnRpbWVfbD1ub10pCisgICAgIF0pCisgICAgIGlmIHRl c3QgJGdsaWJjeHhfY3Zfd2NzZnRpbWVfbCA9IHllczsgdGhlbgorICAgICAgIEFDX0RFRklORShI QVZFX1dDU0ZUSU1FX0wsIDEsCisJIFtEZWZpbmUgaWYgd2NzZnRpbWVfbCBpcyBhdmFpbGFibGUg aW4gPHdjaGFyLmg+Ll0pCisgICAgIGZpCisgICAgIEFDX01TR19SRVNVTFQoJGdsaWJjeHhfY3Zf d2NzZnRpbWVfbCkKKworICAgICAjIFVzZSBpc3djdHlwZV9sIGlmIGF2YWlsYWJsZS4KKyAgICAg QUNfTVNHX0NIRUNLSU5HKFtmb3IgaXN3Y3R5cGVfbF0pCisgICAgIEFDX0NBQ0hFX1ZBTChnbGli Y3h4X2N2X2lzd2N0eXBlX2wsIFsKKyAgICAgICBBQ19UUllfQ09NUElMRSgKKyAgICAgICAgIFsK KwkgICAjaW5jbHVkZSA8d2NoYXIuaD4KKwkgICAjaW5jbHVkZSA8d2N0eXBlLmg+CisJICAgI2lm ZGVmIF9HTElCQ1hYX05FRURfWExPQ0FMRV9ICisJICAgI2luY2x1ZGUgPHhsb2NhbGUuaD4KKwkg ICAjZW5kaWYKKwkgXSwKKwkgW2lzd2N0eXBlX2woMCwwLDApXSwKKwkgW2dsaWJjeHhfY3ZfaXN3 Y3R5cGVfbD15ZXNdLAorCSBbZ2xpYmN4eF9jdl9pc3djdHlwZV9sPW5vXSkKKyAgICAgXSkKKyAg ICAgaWYgdGVzdCAkZ2xpYmN4eF9jdl9pc3djdHlwZV9sID0geWVzOyB0aGVuCisgICAgICAgQUNf REVGSU5FKEhBVkVfSVNXQ1RZUEVfTCwgMSwKKwkgW0RlZmluZSBpZiBpc3djdHlwZV9sIGlzIGF2 YWlsYWJsZSBpbiA8d2NoYXIuaD4gb3IgPHdjdHlwZS5oPi5dKQorICAgICBmaQorICAgICBBQ19N U0dfUkVTVUxUKCRnbGliY3h4X2N2X2lzd2N0eXBlX2wpCisKKyAgICAgIyBVc2Ugd2N0eXBlX2wg aWYgYXZhaWxhYmxlLgorICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB3Y3R5cGVfbF0pCisgICAg IEFDX0NBQ0hFX1ZBTChnbGliY3h4X2N2X3djdHlwZV9sLCBbCisgICAgICAgQUNfVFJZX0NPTVBJ TEUoCisgICAgICAgICBbCisJICAgI2luY2x1ZGUgPHdjaGFyLmg+CisJICAgI2luY2x1ZGUgPHdj dHlwZS5oPgorCSAgICNpZmRlZiBfR0xJQkNYWF9ORUVEX1hMT0NBTEVfSAorCSAgICNpbmNsdWRl IDx4bG9jYWxlLmg+CisJICAgI2VuZGlmCisJIF0sCisJIFt3Y3R5cGVfbCgwLDApXSwKKwkgW2ds aWJjeHhfY3Zfd2N0eXBlX2w9eWVzXSwKKwkgW2dsaWJjeHhfY3Zfd2N0eXBlX2w9bm9dKQorICAg ICBdKQorICAgICBpZiB0ZXN0ICRnbGliY3h4X2N2X3djdHlwZV9sID0geWVzOyB0aGVuCisgICAg ICAgQUNfREVGSU5FKEhBVkVfV0NUWVBFX0wsIDEsCisJIFtEZWZpbmUgaWYgd2N0eXBlX2wgaXMg YXZhaWxhYmxlIGluIDx3Y2hhci5oPiBvciA8d2N0eXBlLmg+Ll0pCisgICAgIGZpCisgICAgIEFD X01TR19SRVNVTFQoJGdsaWJjeHhfY3Zfd2N0eXBlX2wpCisKKyAgICAgIyBVc2Ugc3RyY29sbF9s IGlmIGF2YWlsYWJsZS4KKyAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3RyY29sbF9sXSkKKyAg ICAgQUNfQ0FDSEVfVkFMKGdsaWJjeHhfY3Zfc3RyY29sbF9sLCBbCisgICAgICAgQUNfVFJZX0NP TVBJTEUoCisgICAgICAgICBbCisJICAgI2luY2x1ZGUgPHN0cmluZy5oPgorCSAgICNpZmRlZiBf R0xJQkNYWF9ORUVEX1hMT0NBTEVfSAorCSAgICNpbmNsdWRlIDx4bG9jYWxlLmg+CisJICAgI2Vu ZGlmCisJIF0sCisJIFtzdHJjb2xsX2woMCwwLDApXSwKKwkgW2dsaWJjeHhfY3Zfc3RyY29sbF9s PXllc10sCisJIFtnbGliY3h4X2N2X3N0cmNvbGxfbD1ub10pCisgICAgIF0pCisgICAgIGlmIHRl c3QgJGdsaWJjeHhfY3Zfc3RyY29sbF9sID0geWVzOyB0aGVuCisgICAgICAgQUNfREVGSU5FKEhB VkVfU1RSQ09MTF9MLCAxLAorCSBbRGVmaW5lIGlmIHN0cmNvbGxfbCBpcyBhdmFpbGFibGUgaW4g PHN0cmluZy5oPi5dKQorICAgICBmaQorICAgICBBQ19NU0dfUkVTVUxUKCRnbGliY3h4X2N2X3N0 cmNvbGxfbCkKKworICAgICAjIFVzZSBzdHJ4ZnJtX2wgaWYgYXZhaWxhYmxlLgorICAgICBBQ19N U0dfQ0hFQ0tJTkcoW2ZvciBzdHJ4ZnJtX2xdKQorICAgICBBQ19DQUNIRV9WQUwoZ2xpYmN4eF9j dl9zdHJ4ZnJtX2wsIFsKKyAgICAgICBBQ19UUllfQ09NUElMRSgKKyAgICAgICAgIFsKKwkgICAj aW5jbHVkZSA8c3RyaW5nLmg+CisJICAgI2lmZGVmIF9HTElCQ1hYX05FRURfWExPQ0FMRV9ICisJ ICAgI2luY2x1ZGUgPHhsb2NhbGUuaD4KKwkgICAjZW5kaWYKKwkgXSwKKwkgW3N0cnhmcm1fbCgw LDAsMCwwKV0sCisJIFtnbGliY3h4X2N2X3N0cnhmcm1fbD15ZXNdLAorCSBbZ2xpYmN4eF9jdl9z dHJ4ZnJtX2w9bm9dKQorICAgICBdKQorICAgICBpZiB0ZXN0ICRnbGliY3h4X2N2X3N0cnhmcm1f bCA9IHllczsgdGhlbgorICAgICAgIEFDX0RFRklORShIQVZFX1NUUlhGUk1fTCwgMSwKKwkgW0Rl ZmluZSBpZiBzdHJ4ZnJtX2wgaXMgYXZhaWxhYmxlIGluIDxzdHJpbmcuaD4uXSkKKyAgICAgZmkK KyAgICAgQUNfTVNHX1JFU1VMVCgkZ2xpYmN4eF9jdl9zdHJ4ZnJtX2wpCisKKyAgICAgIyBVc2Ug d2NzY29sbF9sIGlmIGF2YWlsYWJsZS4KKyAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3Igd2NzY29s bF9sXSkKKyAgICAgQUNfQ0FDSEVfVkFMKGdsaWJjeHhfY3Zfd2NzY29sbF9sLCBbCisgICAgICAg QUNfVFJZX0NPTVBJTEUoCisgICAgICAgICBbCisJICAgI2luY2x1ZGUgPHN0cmluZy5oPgorCSAg ICNpbmNsdWRlIDx3Y2hhci5oPgorCSAgICNpZmRlZiBfR0xJQkNYWF9ORUVEX1hMT0NBTEVfSAor CSAgICNpbmNsdWRlIDx4bG9jYWxlLmg+CisJICAgI2VuZGlmCisJIF0sCisJIFt3Y3Njb2xsX2wo MCwwLDApXSwKKwkgW2dsaWJjeHhfY3Zfd2NzY29sbF9sPXllc10sCisJIFtnbGliY3h4X2N2X3dj c2NvbGxfbD1ub10pCisgICAgIF0pCisgICAgIGlmIHRlc3QgJGdsaWJjeHhfY3Zfd2NzY29sbF9s ID0geWVzOyB0aGVuCisgICAgICAgQUNfREVGSU5FKEhBVkVfV0NTQ09MTF9MLCAxLAorCSBbRGVm aW5lIGlmIHdjc2NvbGxfbCBpcyBhdmFpbGFibGUgaW4gPHN0ZGxpYi5oPiBvciA8d2NoYXIuaD4u XSkKKyAgICAgZmkKKyAgICAgQUNfTVNHX1JFU1VMVCgkZ2xpYmN4eF9jdl93Y3Njb2xsX2wpCisK KyAgICAgIyBVc2Ugd2NzeGZybV9sIGlmIGF2YWlsYWJsZS4KKyAgICAgQUNfTVNHX0NIRUNLSU5H KFtmb3Igd2NzeGZybV9sXSkKKyAgICAgQUNfQ0FDSEVfVkFMKGdsaWJjeHhfY3Zfd2NzeGZybV9s LCBbCisgICAgICAgQUNfVFJZX0NPTVBJTEUoCisgICAgICAgICBbCisJICAgI2luY2x1ZGUgPHN0 cmluZy5oPgorCSAgICNpbmNsdWRlIDx3Y2hhci5oPgorCSAgICNpZmRlZiBfR0xJQkNYWF9ORUVE X1hMT0NBTEVfSAorCSAgICNpbmNsdWRlIDx4bG9jYWxlLmg+CisJICAgI2VuZGlmCisJIF0sCisJ IFt3Y3N4ZnJtX2woMCwwLDAsMCldLAorCSBbZ2xpYmN4eF9jdl93Y3N4ZnJtX2w9eWVzXSwKKwkg W2dsaWJjeHhfY3Zfd2NzeGZybV9sPW5vXSkKKyAgICAgXSkKKyAgICAgaWYgdGVzdCAkZ2xpYmN4 eF9jdl93Y3N4ZnJtX2wgPSB5ZXM7IHRoZW4KKyAgICAgICBBQ19ERUZJTkUoSEFWRV9XQ1NYRlJN X0wsIDEsCisJIFtEZWZpbmUgaWYgd2NzeGZybV9sIGlzIGF2YWlsYWJsZSBpbiA8c3RkbGliLmg+ IG9yIDx3Y2hhci5oPi5dKQorICAgICBmaQorICAgICBBQ19NU0dfUkVTVUxUKCRnbGliY3h4X2N2 X3djc3hmcm1fbCkKKworICAgICAjIFVzZSB0b3dsb3dlcl9sIGlmIGF2YWlsYWJsZS4KKyAgICAg QUNfTVNHX0NIRUNLSU5HKFtmb3IgdG93bG93ZXJfbF0pCisgICAgIEFDX0NBQ0hFX1ZBTChnbGli Y3h4X2N2X3Rvd2xvd2VyX2wsIFsKKyAgICAgICBBQ19UUllfQ09NUElMRSgKKyAgICAgICAgIFsK KwkgICAjaW5jbHVkZSA8d2NoYXIuaD4KKwkgICAjaW5jbHVkZSA8d2N0eXBlLmg+CisJICAgI2lm ZGVmIF9HTElCQ1hYX05FRURfWExPQ0FMRV9ICisJICAgI2luY2x1ZGUgPHhsb2NhbGUuaD4KKwkg ICAjZW5kaWYKKwkgXSwKKwkgW3Rvd2xvd2VyX2woMCwwKV0sCisJIFtnbGliY3h4X2N2X3Rvd2xv d2VyX2w9eWVzXSwKKwkgW2dsaWJjeHhfY3ZfdG93bG93ZXJfbD1ub10pCisgICAgIF0pCisgICAg IGlmIHRlc3QgJGdsaWJjeHhfY3ZfdG93bG93ZXJfbCA9IHllczsgdGhlbgorICAgICAgIEFDX0RF RklORShIQVZFX1RPV0xPV0VSX0wsIDEsCisJIFtEZWZpbmUgaWYgdG93bG93ZXJfbCBpcyBhdmFp bGFibGUgaW4gPHdjaGFyLmg+IG9yIDx3Y3R5cGUuaD4uXSkKKyAgICAgZmkKKyAgICAgQUNfTVNH X1JFU1VMVCgkZ2xpYmN4eF9jdl90b3dsb3dlcl9sKQorCisgICAgICMgVXNlIHRvd3VwcGVyX2wg aWYgYXZhaWxhYmxlLgorICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB0b3d1cHBlcl9sXSkKKyAg ICAgQUNfQ0FDSEVfVkFMKGdsaWJjeHhfY3ZfdG93dXBwZXJfbCwgWworICAgICAgIEFDX1RSWV9D T01QSUxFKAorICAgICAgICAgWworCSAgICNpbmNsdWRlIDx3Y2hhci5oPgorCSAgICNpbmNsdWRl IDx3Y3R5cGUuaD4KKwkgICAjaWZkZWYgX0dMSUJDWFhfTkVFRF9YTE9DQUxFX0gKKwkgICAjaW5j bHVkZSA8eGxvY2FsZS5oPgorCSAgICNlbmRpZgorCSBdLAorCSBbdG93dXBwZXJfbCgwLDApXSwK KwkgW2dsaWJjeHhfY3ZfdG93dXBwZXJfbD15ZXNdLAorCSBbZ2xpYmN4eF9jdl90b3d1cHBlcl9s PW5vXSkKKyAgICAgXSkKKyAgICAgaWYgdGVzdCAkZ2xpYmN4eF9jdl90b3d1cHBlcl9sID0geWVz OyB0aGVuCisgICAgICAgQUNfREVGSU5FKEhBVkVfVE9XVVBQRVJfTCwgMSwKKyAgICAgICAgIFtE ZWZpbmUgaWYgdG93dXBwZXJfbCBpcyBhdmFpbGFibGUgaW4gPHdjaGFyLmg+IG9yIDx3Y3R5cGUu aD4uXSkKKyAgICAgZmkKKyAgICAgQUNfTVNHX1JFU1VMVCgkZ2xpYmN4eF9jdl90b3d1cHBlcl9s KQorCisgICAgICMgVXNlIHN0cmZ0aW1lX2wgaWYgYXZhaWxhYmxlLgorICAgICBBQ19NU0dfQ0hF Q0tJTkcoW2ZvciBzdHJmdGltZV9sXSkKKyAgICAgQUNfQ0FDSEVfVkFMKGdsaWJjeHhfY3Zfc3Ry ZnRpbWVfbCwgWworICAgICAgIEFDX1RSWV9DT01QSUxFKAorICAgICAgICAgWworCSAgICNpbmNs dWRlIDx0aW1lLmg+CisJICAgI2lmZGVmIF9HTElCQ1hYX05FRURfWExPQ0FMRV9ICisJICAgI2lu Y2x1ZGUgPHhsb2NhbGUuaD4KKwkgICAjZW5kaWYKKwkgXSwKKwkgW3N0cmZ0aW1lX2woMCwwLDAs MCwwKV0sCisJIFtnbGliY3h4X2N2X3N0cmZ0aW1lX2w9eWVzXSwKKwkgW2dsaWJjeHhfY3Zfc3Ry ZnRpbWVfbD1ub10pCisgICAgIF0pCisgICAgIGlmIHRlc3QgJGdsaWJjeHhfY3Zfc3RyZnRpbWVf bCA9IHllczsgdGhlbgorICAgICAgIEFDX0RFRklORShIQVZFX1NUUkZUSU1FX0wsIDEsCisJIFtE ZWZpbmUgaWYgc3RyZnRpbWVfbCBpcyBhdmFpbGFibGUgaW4gPHRpbWUuaD4uXSkKKyAgICAgZmkK KyAgICAgQUNfTVNHX1JFU1VMVCgkZ2xpYmN4eF9jdl9zdHJmdGltZV9sKQorCisgICAgIENGTEFH Uz0iJGFjX3NhdmVfQ0ZMQUdTIgorICBmaQogXSkKIAogCmRpZmYgLS1naXQgYS9saWJzdGRjKyst djMvY29uZmlnLmguaW4gYi9saWJzdGRjKystdjMvY29uZmlnLmguaW4KaW5kZXggZDM2Y2EyNjIw YjQuLmIwMmJmOTIyMzY0IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvY29uZmlnLmguaW4KKysr IGIvbGlic3RkYysrLXYzL2NvbmZpZy5oLmluCkBAIC0xODYsNiArMTg2LDkgQEAKIC8qIERlZmlu ZWQgaWYgaXN3YmxhbmsgZXhpc3RzLiAqLwogI3VuZGVmIEhBVkVfSVNXQkxBTksKIAorLyogRGVm aW5lIGlmIGlzd2N0eXBlX2wgaXMgYXZhaWxhYmxlIGluIDx3Y2hhci5oPiBvciA8d2N0eXBlLmg+ LiAqLworI3VuZGVmIEhBVkVfSVNXQ1RZUEVfTAorCiAvKiBEZWZpbmUgaWYgTENfTUVTU0FHRVMg aXMgYXZhaWxhYmxlIGluIDxsb2NhbGUuaD4uICovCiAjdW5kZWYgSEFWRV9MQ19NRVNTQUdFUwog CkBAIC0yMjUsNiArMjI4LDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGlu dXgvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9MSU5VWF9UWVBFU19ICiAK Ky8qIERlZmluZSBpZiBsb2NhbGVjb252X2wgaXMgYXZhaWxhYmxlIGluIDxsb2NhbGUuaD4uICov CisjdW5kZWYgSEFWRV9MT0NBTEVDT05WX0wKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIDxsb2NhbGUuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9MT0NBTEVfSAogCkBA IC0yNDksNiArMjU1LDkgQEAKIC8qIERlZmluZSBpZiBtYnN0YXRlX3QgZXhpc3RzIGluIHdjaGFy LmguICovCiAjdW5kZWYgSEFWRV9NQlNUQVRFX1QKIAorLyogRGVmaW5lIGlmIG1ic3Rvd2NzX2wg aXMgYXZhaWxhYmxlIGluIDxzdGRsaWIuaD4uICovCisjdW5kZWYgSEFWRV9NQlNUT1dDU19MCisK IC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWVtYWxpZ24nIGZ1bmN0aW9uLiAqLwog I3VuZGVmIEhBVkVfTUVNQUxJR04KIApAQCAtMzU0LDI0ICszNjMsMzkgQEAKIC8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhB VkVfU1RETElCX0gKIAorLyogRGVmaW5lIGlmIHN0cmNvbGxfbCBpcyBhdmFpbGFibGUgaW4gPHN0 cmluZy5oPi4gKi8KKyN1bmRlZiBIQVZFX1NUUkNPTExfTAorCiAvKiBEZWZpbmUgaWYgc3RyZXJy b3JfbCBpcyBhdmFpbGFibGUgaW4gPHN0cmluZy5oPi4gKi8KICN1bmRlZiBIQVZFX1NUUkVSUk9S X0wKIAogLyogRGVmaW5lIGlmIHN0cmVycm9yX3IgaXMgYXZhaWxhYmxlIGluIDxzdHJpbmcuaD4u ICovCiAjdW5kZWYgSEFWRV9TVFJFUlJPUl9SCiAKKy8qIERlZmluZSBpZiBzdHJmdGltZV9sIGlz IGF2YWlsYWJsZSBpbiA8dGltZS5oPi4gKi8KKyN1bmRlZiBIQVZFX1NUUkZUSU1FX0wKKwogLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmdzLmg+IGhlYWRlciBmaWxlLiAqLwog I3VuZGVmIEhBVkVfU1RSSU5HU19ICiAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 c3RyaW5nLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfU1RSSU5HX0gKIAorLyogRGVm aW5lIGlmIHN0cnRvZF9sIGlzIGF2YWlsYWJsZSBpbiA8c3RkbGliLmg+LiAqLworI3VuZGVmIEhB VkVfU1RSVE9EX0wKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJ0b2YnIGZ1 bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfU1RSVE9GCiAKKy8qIERlZmluZSBpZiBzdHJ0b2ZfbCBp cyBhdmFpbGFibGUgaW4gPHN0ZGxpYi5oPi4gKi8KKyN1bmRlZiBIQVZFX1NUUlRPRl9MCisKIC8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RydG9sZCcgZnVuY3Rpb24uICovCiAjdW5k ZWYgSEFWRV9TVFJUT0xECiAKKy8qIERlZmluZSBpZiBzdHJ0b2xkX2wgaXMgYXZhaWxhYmxlIGlu IDxzdGRsaWIuaD4uICovCisjdW5kZWYgSEFWRV9TVFJUT0xEX0wKKwogLyogRGVmaW5lIHRvIDEg aWYgYGRfdHlwZScgaXMgYSBtZW1iZXIgb2YgYHN0cnVjdCBkaXJlbnQnLiAqLwogI3VuZGVmIEhB VkVfU1RSVUNUX0RJUkVOVF9EX1RZUEUKIApAQCAtNDYwLDYgKzQ4NCwxMiBAQAogLyogRGVmaW5l IHRvIDEgaWYgdGhlIHRhcmdldCBzdXBwb3J0cyB0aHJlYWQtbG9jYWwgc3RvcmFnZS4gKi8KICN1 bmRlZiBIQVZFX1RMUwogCisvKiBEZWZpbmUgaWYgdG93bG93ZXJfbCBpcyBhdmFpbGFibGUgaW4g PHdjaGFyLmg+IG9yIDx3Y3R5cGUuaD4uICovCisjdW5kZWYgSEFWRV9UT1dMT1dFUl9MCisKKy8q IERlZmluZSBpZiB0b3d1cHBlcl9sIGlzIGF2YWlsYWJsZSBpbiA8d2NoYXIuaD4gb3IgPHdjdHlw ZS5oPi4gKi8KKyN1bmRlZiBIQVZFX1RPV1VQUEVSX0wKKwogLyogRGVmaW5lIGlmIHRydW5jYXRl IGlzIGF2YWlsYWJsZSBpbiA8dW5pc3RkLmg+LiAqLwogI3VuZGVmIEhBVkVfVFJVTkNBVEUKIApA QCAtNDkwLDEyICs1MjAsMjQgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8d2No YXIuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9XQ0hBUl9ICiAKKy8qIERlZmluZSBp ZiB3Y3Njb2xsX2wgaXMgYXZhaWxhYmxlIGluIDxzdGRsaWIuaD4gb3IgPHdjaGFyLmg+LiAqLwor I3VuZGVmIEhBVkVfV0NTQ09MTF9MCisKKy8qIERlZmluZSBpZiB3Y3NmdGltZV9sIGlzIGF2YWls YWJsZSBpbiA8d2NoYXIuaD4uICovCisjdW5kZWYgSEFWRV9XQ1NGVElNRV9MCisKIC8qIERlZmlu ZWQgaWYgd2NzdG9mIGV4aXN0cy4gKi8KICN1bmRlZiBIQVZFX1dDU1RPRgogCisvKiBEZWZpbmUg aWYgd2NzeGZybV9sIGlzIGF2YWlsYWJsZSBpbiA8c3RkbGliLmg+IG9yIDx3Y2hhci5oPi4gKi8K KyN1bmRlZiBIQVZFX1dDU1hGUk1fTAorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PHdjdHlwZS5oPiBoZWFkZXIgZmlsZS4gKi8KICN1bmRlZiBIQVZFX1dDVFlQRV9ICiAKKy8qIERl ZmluZSBpZiB3Y3R5cGVfbCBpcyBhdmFpbGFibGUgaW4gPHdjaGFyLmg+IG9yIDx3Y3R5cGUuaD4u ICovCisjdW5kZWYgSEFWRV9XQ1RZUEVfTAorCiAvKiBEZWZpbmVkIGlmIFNsZWVwIGV4aXN0cy4g Ki8KICN1bmRlZiBIQVZFX1dJTjMyX1NMRUVQCiAKQEAgLTgzNSw2ICs4NzcsOSBAQAogLyogRGVm aW5lIHRvIHRoZSBsZXR0ZXIgdG8gd2hpY2ggc2l6ZV90IGlzIG1hbmdsZWQuICovCiAjdW5kZWYg X0dMSUJDWFhfTUFOR0xFX1NJWkVfVAogCisvKiBEZWZpbmUgaWYgPHhsb2NhbGUuaD4gbXVzdCBi ZSBpbmNsdWRlZCBmb3IgbG9jYWxlIHN1cHBvcnQuICovCisjdW5kZWYgX0dMSUJDWFhfTkVFRF9Y TE9DQUxFX0gKKwogLyogRGVmaW5lIGlmIEM5OSBsbHJpbnQgYW5kIGxscm91bmQgZnVuY3Rpb25z IGFyZSBtaXNzaW5nIGZyb20gPG1hdGguaD4uICovCiAjdW5kZWYgX0dMSUJDWFhfTk9fQzk5X1JP VU5ESU5HX0ZVTkNTCiAKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2Ry YWdvbmZseS9jX2xvY2FsZS5jYyBiL2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2llZWVfMTAw My4xLTIwMDgvY19sb2NhbGUuY2MKc2ltaWxhcml0eSBpbmRleCA5OSUKcmVuYW1lIGZyb20gbGli c3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L2NfbG9jYWxlLmNjCnJlbmFtZSB0byBs aWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9pZWVlXzEwMDMuMS0yMDA4L2NfbG9jYWxlLmNjCmlu ZGV4IDAyZGY0NjA1YmI1Li5lYTE1MzFmNTY5MSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2Nv bmZpZy9sb2NhbGUvZHJhZ29uZmx5L2NfbG9jYWxlLmNjCisrKyBiL2xpYnN0ZGMrKy12My9jb25m aWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvY19sb2NhbGUuY2MKQEAgLTMzLDggKzMzLDExIEBA CiAjaW5jbHVkZSA8bG9jYWxlPgogI2luY2x1ZGUgPHN0ZGV4Y2VwdD4KICNpbmNsdWRlIDxsaW1p dHM+CisKICNpbmNsdWRlIDxsYW5naW5mby5oPgorI2lmZGVmIF9HTElCQ1hYX05FRURfWExPQ0FM RV9ICiAjaW5jbHVkZSA8eGxvY2FsZS5oPgorI2VuZGlmCiAKIG5hbWVzcGFjZSBzdGQgX0dMSUJD WFhfVklTSUJJTElUWShkZWZhdWx0KQogewpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2NvbmZp Zy9sb2NhbGUvZHJhZ29uZmx5L2NfbG9jYWxlLmggYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2Fs ZS9pZWVlXzEwMDMuMS0yMDA4L2NfbG9jYWxlLmgKc2ltaWxhcml0eSBpbmRleCA3MiUKcmVuYW1l IGZyb20gbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L2NfbG9jYWxlLmgKcmVu YW1lIHRvIGxpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvY19sb2Nh bGUuaAppbmRleCBjZjQyODFjZWJiZi4uMzFjOWFhYjY3MTIgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMr Ky12My9jb25maWcvbG9jYWxlL2RyYWdvbmZseS9jX2xvY2FsZS5oCisrKyBiL2xpYnN0ZGMrKy12 My9jb25maWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvY19sb2NhbGUuaApAQCAtNDAsNyArNDAs NDggQEAKICNwcmFnbWEgR0NDIHN5c3RlbV9oZWFkZXIKIAogI2luY2x1ZGUgPGNsb2NhbGU+Cisj aW5jbHVkZSA8Y3N0ZGxpYj4KKyNpZmRlZiBfR0xJQkNYWF9ORUVEX1hMT0NBTEVfSAogI2luY2x1 ZGUgPHhsb2NhbGUuaD4KKyNlbmRpZgorCisjZGVmaW5lIF9HTElCQ1hYX0NfTE9DQUxFX0lFRUVf MjAwOCAxCisKKyNpZm5kZWYgX0dMSUJDWFhfSEFWRV9TVFJUT0ZfTAorZXh0ZXJuICJDIiBpbmxp bmUKK2Zsb2F0IHN0cnRvZl9sIChjb25zdCBjaGFyICpfX25wdHIsIGNoYXIgKipfX2VuZHB0ciwK KwkJbG9jYWxlX3QgbG9jYWxlKQoreworICBsb2NhbGVfdCBfX29sZCA9IHVzZWxvY2FsZShsb2Nh bGUpOworICBmbG9hdCBfX3JlcyA9IHN0cnRvZihfX25wdHIsIF9fZW5kcHRyKTsKKyAgdXNlbG9j YWxlKF9fb2xkKTsKKyAgcmV0dXJuIF9fcmVzOworfQorI2VuZGlmCisKKyNpZm5kZWYgX0dMSUJD WFhfSEFWRV9TVFJUT0RfTAorZXh0ZXJuICJDIiBpbmxpbmUKK2RvdWJsZSBzdHJ0b2RfbCAoY29u c3QgY2hhciAqX19ucHRyLCBjaGFyICoqX19lbmRwdHIsCisJCSBsb2NhbGVfdCBsb2NhbGUpCit7 CisgIGxvY2FsZV90IF9fb2xkID0gdXNlbG9jYWxlKGxvY2FsZSk7CisgIGRvdWJsZSBfX3JlcyA9 IHN0cnRvZChfX25wdHIsIF9fZW5kcHRyKTsKKyAgdXNlbG9jYWxlKF9fb2xkKTsKKyAgcmV0dXJu IF9fcmVzOworfQorI2VuZGlmCisKKyNpZm5kZWYgX0dMSUJDWFhfSEFWRV9TVFJUT0xEX0wKK2V4 dGVybiAiQyIgaW5saW5lCitsb25nIGRvdWJsZSBzdHJ0b2xkX2wgKGNvbnN0IGNoYXIgKl9fbnB0 ciwgY2hhciAqKl9fZW5kcHRyLAorCQkgICAgICAgbG9jYWxlX3QgbG9jYWxlKQoreworICBsb2Nh bGVfdCBfX29sZCA9IHVzZWxvY2FsZShsb2NhbGUpOworICBsb25nIGRvdWJsZSBfX3JlcyA9IHN0 cnRvbGQoX19ucHRyLCBfX2VuZHB0cik7CisgIHVzZWxvY2FsZShfX29sZCk7CisgIHJldHVybiBf X3JlczsKK30KKyNlbmRpZgogCiAjZGVmaW5lIF9HTElCQ1hYX05VTV9DQVRFR09SSUVTIDAKIApA QCAtNDgsNyArODksMTEgQEAgbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRlZmF1 bHQpCiB7CiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCisjaWYgZGVmaW5lZChf X0RyYWdvbkZseV9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9fKQogICB0eXBlZGVmIGludCoJCQlf X2NfbG9jYWxlOworI2Vsc2UKKyAgdHlwZWRlZiBsb2NhbGVfdAkJCV9fY19sb2NhbGU7CisjZW5k aWYKIAogICAvLyBDb252ZXJ0IG51bWVyaWMgdmFsdWUgb2YgdHlwZSBkb3VibGUgYW5kIGxvbmcg ZG91YmxlIHRvIHN0cmluZyBhbmQKICAgLy8gcmV0dXJuIGxlbmd0aCBvZiBzdHJpbmcuICBJZiB2 c25wcmludGYgaXMgYXZhaWxhYmxlIHVzZSBpdCwgb3RoZXJ3aXNlCmRpZmYgLS1naXQgYS9saWJz dGRjKystdjMvY29uZmlnL2xvY2FsZS9kcmFnb25mbHkvY29kZWN2dF9tZW1iZXJzLmNjIGIvbGli c3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvaWVlZV8xMDAzLjEtMjAwOC9jb2RlY3Z0X21lbWJlcnMu Y2MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnN0ZGMrKy12My9jb25maWcv bG9jYWxlL2RyYWdvbmZseS9jb2RlY3Z0X21lbWJlcnMuY2MKcmVuYW1lIHRvIGxpYnN0ZGMrKy12 My9jb25maWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvY29kZWN2dF9tZW1iZXJzLmNjCmRpZmYg LS1naXQgYS9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9kcmFnb25mbHkvY29sbGF0ZV9tZW1i ZXJzLmNjIGIvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvaWVlZV8xMDAzLjEtMjAwOC9jb2xs YXRlX21lbWJlcnMuY2MKc2ltaWxhcml0eSBpbmRleCA3MSUKcmVuYW1lIGZyb20gbGlic3RkYysr LXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L2NvbGxhdGVfbWVtYmVycy5jYwpyZW5hbWUgdG8g bGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvaWVlZV8xMDAzLjEtMjAwOC9jb2xsYXRlX21lbWJl cnMuY2MKaW5kZXggNjRjN2Q4NjRhNjEuLjZlY2YyOWJmYzY1IDEwMDY0NAotLS0gYS9saWJzdGRj KystdjMvY29uZmlnL2xvY2FsZS9kcmFnb25mbHkvY29sbGF0ZV9tZW1iZXJzLmNjCisrKyBiL2xp YnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvY29sbGF0ZV9tZW1iZXJz LmNjCkBAIC00Myw3ICs0MywxMyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgog ICAgIGNvbGxhdGU8Y2hhcj46Ol9NX2NvbXBhcmUoY29uc3QgY2hhciogX19vbmUsCiAJCQkgICAg ICBjb25zdCBjaGFyKiBfX3R3bykgY29uc3QgdGhyb3coKQogICAgIHsKKyNpZmRlZiBfR0xJQkNY WF9IQVZFX1NUUkNPTExfTAogICAgICAgaW50IF9fY21wID0gc3RyY29sbF9sKF9fb25lLCBfX3R3 bywgKGxvY2FsZV90KV9NX2NfbG9jYWxlX2NvbGxhdGUpOworI2Vsc2UKKyAgICAgIF9fY19sb2Nh bGUgX19vbGQgPSB1c2Vsb2NhbGUoKGxvY2FsZV90KV9NX2NfbG9jYWxlX2NvbGxhdGUpOworICAg ICAgaW50IF9fY21wID0gc3RyY29sbChfX29uZSwgX190d28pOworICAgICAgdXNlbG9jYWxlKF9f b2xkKTsKKyNlbmRpZgogICAgICAgcmV0dXJuIChfX2NtcCA+PiAoOCAqIHNpemVvZiAoaW50KSAt IDIpKSB8IChfX2NtcCAhPSAwKTsKICAgICB9CiAKQEAgLTUxLDcgKzU3LDE2IEBAIF9HTElCQ1hY X0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgc2l6ZV90CiAgICAgY29sbGF0ZTxjaGFyPjo6 X01fdHJhbnNmb3JtKGNoYXIqIF9fdG8sIGNvbnN0IGNoYXIqIF9fZnJvbSwKIAkJCQlzaXplX3Qg X19uKSBjb25zdCB0aHJvdygpCi0gICAgeyByZXR1cm4gc3RyeGZybV9sKF9fdG8sIF9fZnJvbSwg X19uLCAobG9jYWxlX3QpX01fY19sb2NhbGVfY29sbGF0ZSk7IH0KKyAgICB7CisjaWZkZWYgX0dM SUJDWFhfSEFWRV9TVFJYRlJNX0wKKyAgICAgIHJldHVybiBzdHJ4ZnJtX2woX190bywgX19mcm9t LCBfX24sIChsb2NhbGVfdClfTV9jX2xvY2FsZV9jb2xsYXRlKTsKKyNlbHNlCisgICAgICBfX2Nf bG9jYWxlIF9fb2xkID0gdXNlbG9jYWxlKChsb2NhbGVfdClfTV9jX2xvY2FsZV9jb2xsYXRlKTsK KyAgICAgIHNpemVfdCBfX3JlcyA9ICBzdHJ4ZnJtKF9fdG8sIF9fZnJvbSwgX19uKTsKKyAgICAg IHVzZWxvY2FsZShfX29sZCk7CisgICAgICByZXR1cm4gX19yZXM7CisjZW5kaWYKKyAgICB9CiAK ICNpZmRlZiBfR0xJQkNYWF9VU0VfV0NIQVJfVAogICB0ZW1wbGF0ZTw+CkBAIC01OSw3ICs3NCwx NCBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgIGNvbGxhdGU8d2NoYXJf dD46Ol9NX2NvbXBhcmUoY29uc3Qgd2NoYXJfdCogX19vbmUsCiAJCQkJIGNvbnN0IHdjaGFyX3Qq IF9fdHdvKSBjb25zdCB0aHJvdygpCiAgICAgeworI2lmZGVmIF9HTElCQ1hYX0hBVkVfV0NTQ09M TF9MCiAgICAgICBpbnQgX19jbXAgPSB3Y3Njb2xsX2woX19vbmUsIF9fdHdvLCAobG9jYWxlX3Qp X01fY19sb2NhbGVfY29sbGF0ZSk7CisjZWxzZQorICAgICAgX19jX2xvY2FsZSBfX29sZCA9IHVz ZWxvY2FsZSgobG9jYWxlX3QpX01fY19sb2NhbGVfY29sbGF0ZSk7CisgICAgICBpbnQgX19jbXAg PSB3Y3Njb2xsKF9fb25lLCBfX3R3byk7CisgICAgICB1c2Vsb2NhbGUoX19vbGQpOworI2VuZGlm CisKICAgICAgIHJldHVybiAoX19jbXAgPj4gKDggKiBzaXplb2YgKGludCkgLSAyKSkgfCAoX19j bXAgIT0gMCk7CiAgICAgfQogCkBAIC02Nyw3ICs4OSwxNiBAQCBfR0xJQkNYWF9CRUdJTl9OQU1F U1BBQ0VfVkVSU0lPTgogICAgIHNpemVfdAogICAgIGNvbGxhdGU8d2NoYXJfdD46Ol9NX3RyYW5z Zm9ybSh3Y2hhcl90KiBfX3RvLCBjb25zdCB3Y2hhcl90KiBfX2Zyb20sCiAJCQkJICAgc2l6ZV90 IF9fbikgY29uc3QgdGhyb3coKQotICAgIHsgcmV0dXJuIHdjc3hmcm1fbChfX3RvLCBfX2Zyb20s IF9fbiwgKGxvY2FsZV90KV9NX2NfbG9jYWxlX2NvbGxhdGUpOyB9CisgICAgeworI2lmZGVmIF9H TElCQ1hYX0hBVkVfV0NTWEZSTV9MCisgICAgICByZXR1cm4gd2NzeGZybV9sKF9fdG8sIF9fZnJv bSwgX19uLCAobG9jYWxlX3QpX01fY19sb2NhbGVfY29sbGF0ZSk7CisjZWxzZQorICAgICAgX19j X2xvY2FsZSBfX29sZCA9IHVzZWxvY2FsZSgobG9jYWxlX3QpX01fY19sb2NhbGVfY29sbGF0ZSk7 CisgICAgICBzaXplX3QgX19yZXMgPSAgd2NzeGZybShfX3RvLCBfX2Zyb20sIF9fbik7CisgICAg ICB1c2Vsb2NhbGUoX19vbGQpOworICAgICAgcmV0dXJuIF9fcmVzOworI2VuZGlmCisgICAgfQog I2VuZGlmCiAKIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgpkaWZmIC0tZ2l0IGEvbGli c3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L2N0eXBlX21lbWJlcnMuY2MgYi9saWJz dGRjKystdjMvY29uZmlnL2xvY2FsZS9pZWVlXzEwMDMuMS0yMDA4L2N0eXBlX21lbWJlcnMuY2MK c2ltaWxhcml0eSBpbmRleCA1NyUKcmVuYW1lIGZyb20gbGlic3RkYysrLXYzL2NvbmZpZy9sb2Nh bGUvZHJhZ29uZmx5L2N0eXBlX21lbWJlcnMuY2MKcmVuYW1lIHRvIGxpYnN0ZGMrKy12My9jb25m aWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvY3R5cGVfbWVtYmVycy5jYwppbmRleCA0MjBjYjUx ZTA3YS4uZTM3ZTlmYjNiODMgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxl L2RyYWdvbmZseS9jdHlwZV9tZW1iZXJzLmNjCisrKyBiL2xpYnN0ZGMrKy12My9jb25maWcvbG9j YWxlL2llZWVfMTAwMy4xLTIwMDgvY3R5cGVfbWVtYmVycy5jYwpAQCAtMzQsNyArMzQsMTEgQEAK ICNpbmNsdWRlIDxjc3RkaW8+CiAKICNpZm5kZWYgX0lTYml0CisjaWYgX19CWVRFX09SREVSX18g PT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18KICNkZWZpbmUgX0lTYml0KGJpdCkgKChiaXQpIDwg OCA/ICgoMSA8PCAoYml0KSkgPDwgOCkgOiAoKDEgPDwgKGJpdCkpID4+IDgpKQorI2Vsc2UKKyNk ZWZpbmUgX0lTYml0KGJpdCkgKDEgPDwgYml0KQorI2VuZGlmCiAjZW5kaWYKIAogbmFtZXNwYWNl IHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRlZmF1bHQpCkBAIC01Niw4NSArNjAsMjA5IEBAIF9H TElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgIGN0eXBlX2J5bmFtZTxjaGFyPjo6fmN0 eXBlX2J5bmFtZSgpCiAgIHsgfQogCisjaWZkZWYgX0dMSUJDWFhfSEFWRV9XQ1RZUEVfTAorI2Rl ZmluZSBXQ1RZUEVfTChQUk9QLCBMT0NBTEUpIHdjdHlwZV9sKFBST1AsIExPQ0FMRSkKKyNlbHNl CisgIC8vICJ1c2Vsb2NhbGUiIG11c3QgYmUgY2FsbGVkIGJlZm9yZSB1c2luZyB0aGlzIG1hY3Jv LgorI2RlZmluZSBXQ1RZUEVfTChQUk9QLCBMT0NBTEUpIHdjdHlwZShQUk9QKQorI2VuZGlmCisK ICNpZmRlZiBfR0xJQkNYWF9VU0VfV0NIQVJfVAogICBjdHlwZTx3Y2hhcl90Pjo6X193bWFza190 eXBlCiAgIGN0eXBlPHdjaGFyX3Q+OjpfTV9jb252ZXJ0X3RvX3dtYXNrKGNvbnN0IG1hc2sgX19t KSBjb25zdCB0aHJvdygpCiAgIHsKKyNpZm5kZWYgX0dMSUJDWFhfSEFWRV9XQ1RZUEVfTAorICAg IF9fY19sb2NhbGUgX19vbGQgPSB1c2Vsb2NhbGUoKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBl KTsKKyNlbmRpZgogICAgIF9fd21hc2tfdHlwZSBfX3JldDsKICAgICBzd2l0Y2ggKF9fbSkKICAg ICAgIHsKICAgICAgIGNhc2Ugc3BhY2U6Ci0JX19yZXQgPSB3Y3R5cGVfbCgic3BhY2UiLCAobG9j YWxlX3QpX01fY19sb2NhbGVfY3R5cGUpOworCV9fcmV0ID0gV0NUWVBFX0woInNwYWNlIiwgKGxv Y2FsZV90KV9NX2NfbG9jYWxlX2N0eXBlKTsKIAlicmVhazsKICAgICAgIGNhc2UgcHJpbnQ6Ci0J X19yZXQgPSB3Y3R5cGVfbCgicHJpbnQiLCAobG9jYWxlX3QpX01fY19sb2NhbGVfY3R5cGUpOwor CV9fcmV0ID0gV0NUWVBFX0woInByaW50IiwgKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBlKTsK IAlicmVhazsKICAgICAgIGNhc2UgY250cmw6Ci0JX19yZXQgPSB3Y3R5cGVfbCgiY250cmwiLCAo bG9jYWxlX3QpX01fY19sb2NhbGVfY3R5cGUpOworCV9fcmV0ID0gV0NUWVBFX0woImNudHJsIiwg KGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBlKTsKIAlicmVhazsKICAgICAgIGNhc2UgdXBwZXI6 Ci0JX19yZXQgPSB3Y3R5cGVfbCgidXBwZXIiLCAobG9jYWxlX3QpX01fY19sb2NhbGVfY3R5cGUp OworCV9fcmV0ID0gV0NUWVBFX0woInVwcGVyIiwgKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBl KTsKIAlicmVhazsKICAgICAgIGNhc2UgbG93ZXI6Ci0JX19yZXQgPSB3Y3R5cGVfbCgibG93ZXIi LCAobG9jYWxlX3QpX01fY19sb2NhbGVfY3R5cGUpOworCV9fcmV0ID0gV0NUWVBFX0woImxvd2Vy IiwgKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBlKTsKIAlicmVhazsKICAgICAgIGNhc2UgYWxw aGE6Ci0JX19yZXQgPSB3Y3R5cGVfbCgiYWxwaGEiLCAobG9jYWxlX3QpX01fY19sb2NhbGVfY3R5 cGUpOworCV9fcmV0ID0gV0NUWVBFX0woImFscGhhIiwgKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0 eXBlKTsKIAlicmVhazsKICAgICAgIGNhc2UgZGlnaXQ6Ci0JX19yZXQgPSB3Y3R5cGVfbCgiZGln aXQiLCAobG9jYWxlX3QpX01fY19sb2NhbGVfY3R5cGUpOworCV9fcmV0ID0gV0NUWVBFX0woImRp Z2l0IiwgKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBlKTsKIAlicmVhazsKICAgICAgIGNhc2Ug cHVuY3Q6Ci0JX19yZXQgPSB3Y3R5cGVfbCgicHVuY3QiLCAobG9jYWxlX3QpX01fY19sb2NhbGVf Y3R5cGUpOworCV9fcmV0ID0gV0NUWVBFX0woInB1bmN0IiwgKGxvY2FsZV90KV9NX2NfbG9jYWxl X2N0eXBlKTsKIAlicmVhazsKICAgICAgIGNhc2UgeGRpZ2l0OgotCV9fcmV0ID0gd2N0eXBlX2wo InhkaWdpdCIsIChsb2NhbGVfdClfTV9jX2xvY2FsZV9jdHlwZSk7CisJX19yZXQgPSBXQ1RZUEVf TCgieGRpZ2l0IiwgKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBlKTsKIAlicmVhazsKICAgICAg IGNhc2UgYWxudW06Ci0JX19yZXQgPSB3Y3R5cGVfbCgiYWxudW0iLCAobG9jYWxlX3QpX01fY19s b2NhbGVfY3R5cGUpOworCV9fcmV0ID0gV0NUWVBFX0woImFsbnVtIiwgKGxvY2FsZV90KV9NX2Nf bG9jYWxlX2N0eXBlKTsKIAlicmVhazsKICAgICAgIGNhc2UgZ3JhcGg6Ci0JX19yZXQgPSB3Y3R5 cGVfbCgiZ3JhcGgiLCAobG9jYWxlX3QpX01fY19sb2NhbGVfY3R5cGUpOworCV9fcmV0ID0gV0NU WVBFX0woImdyYXBoIiwgKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBlKTsKIAlicmVhazsKICAg ICAgIGNhc2UgYmxhbms6Ci0JX19yZXQgPSB3Y3R5cGVfbCgiYmxhbmsiLCAobG9jYWxlX3QpX01f Y19sb2NhbGVfY3R5cGUpOworCV9fcmV0ID0gV0NUWVBFX0woImJsYW5rIiwgKGxvY2FsZV90KV9N X2NfbG9jYWxlX2N0eXBlKTsKIAlicmVhazsKICAgICAgIGRlZmF1bHQ6CiAJX19yZXQgPSBfX3dt YXNrX3R5cGUoKTsKICAgICAgIH0KKyNpZm5kZWYgX0dMSUJDWFhfSEFWRV9XQ1RZUEVfTAorICAg IHVzZWxvY2FsZShfX29sZCk7CisjZW5kaWYKICAgICByZXR1cm4gX19yZXQ7CiAgIH0KIAogICB3 Y2hhcl90CiAgIGN0eXBlPHdjaGFyX3Q+Ojpkb190b3VwcGVyKHdjaGFyX3QgX19jKSBjb25zdAot ICB7IHJldHVybiB0b3d1cHBlcl9sKF9fYywgKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBlKTsg fQorICB7CisjaWZkZWYgX0dMSUJDWFhfSEFWRV9UT1dVUFBFUl9MCisgICAgcmV0dXJuIHRvd3Vw cGVyX2woX19jLCAobG9jYWxlX3QpX01fY19sb2NhbGVfY3R5cGUpOworI2Vsc2UKKyAgICBfX2Nf bG9jYWxlIF9fb2xkID0gdXNlbG9jYWxlKChsb2NhbGVfdClfTV9jX2xvY2FsZV9jdHlwZSk7Cisg ICAgd2NoYXJfdCBfX3JlcyA9IHRvd3VwcGVyKF9fYyk7CisgICAgdXNlbG9jYWxlKF9fb2xkKTsK KyAgICByZXR1cm4gX19yZXM7CisjZW5kaWYKKyAgfQogCiAgIGNvbnN0IHdjaGFyX3QqCiAgIGN0 eXBlPHdjaGFyX3Q+Ojpkb190b3VwcGVyKHdjaGFyX3QqIF9fbG8sIGNvbnN0IHdjaGFyX3QqIF9f aGkpIGNvbnN0CiAgIHsKKyNpZm5kZWYgX0dMSUJDWFhfSEFWRV9UT1dVUFBFUl9MCisgICAgX19j X2xvY2FsZSBfX29sZCA9IHVzZWxvY2FsZSgobG9jYWxlX3QpX01fY19sb2NhbGVfY3R5cGUpOwor I2VuZGlmCiAgICAgd2hpbGUgKF9fbG8gPCBfX2hpKQogICAgICAgeworI2lmZGVmIF9HTElCQ1hY X0hBVkVfVE9XVVBQRVJfTAogICAgICAgICAqX19sbyA9IHRvd3VwcGVyX2woKl9fbG8sIChsb2Nh bGVfdClfTV9jX2xvY2FsZV9jdHlwZSk7CisjZWxzZQorICAgICAgICAqX19sbyA9IHRvd3VwcGVy KCpfX2xvKTsKKyNlbmRpZgogICAgICAgICArK19fbG87CiAgICAgICB9CisjaWZuZGVmIF9HTElC Q1hYX0hBVkVfVE9XVVBQRVJfTAorICAgIHVzZWxvY2FsZShfX29sZCk7CisjZW5kaWYKICAgICBy ZXR1cm4gX19oaTsKICAgfQogCiAgIHdjaGFyX3QKICAgY3R5cGU8d2NoYXJfdD46OmRvX3RvbG93 ZXIod2NoYXJfdCBfX2MpIGNvbnN0Ci0gIHsgcmV0dXJuIHRvd2xvd2VyX2woX19jLCAobG9jYWxl X3QpX01fY19sb2NhbGVfY3R5cGUpOyB9CisgIHsKKyNpZmRlZiBfR0xJQkNYWF9IQVZFX1RPV0xP V0VSX0wKKyAgICByZXR1cm4gdG93bG93ZXJfbChfX2MsIChsb2NhbGVfdClfTV9jX2xvY2FsZV9j dHlwZSk7CisjZWxzZQorICAgIF9fY19sb2NhbGUgX19vbGQgPSB1c2Vsb2NhbGUoKGxvY2FsZV90 KV9NX2NfbG9jYWxlX2N0eXBlKTsKKyAgICB3Y2hhcl90IF9fcmVzID0gdG93bG93ZXIoX19jKTsK KyAgICB1c2Vsb2NhbGUoX19vbGQpOworICAgIHJldHVybiBfX3JlczsKKyNlbmRpZgorICB9CiAK ICAgY29uc3Qgd2NoYXJfdCoKICAgY3R5cGU8d2NoYXJfdD46OmRvX3RvbG93ZXIod2NoYXJfdCog X19sbywgY29uc3Qgd2NoYXJfdCogX19oaSkgY29uc3QKICAgeworI2lmbmRlZiBfR0xJQkNYWF9I QVZFX1RPV0xPV0VSX0wKKyAgICBfX2NfbG9jYWxlIF9fb2xkID0gdXNlbG9jYWxlKChsb2NhbGVf dClfTV9jX2xvY2FsZV9jdHlwZSk7CisjZW5kaWYKICAgICB3aGlsZSAoX19sbyA8IF9faGkpCiAg ICAgICB7CisjaWZkZWYgX0dMSUJDWFhfSEFWRV9UT1dMT1dFUl9MCiAgICAgICAgICpfX2xvID0g dG93bG93ZXJfbCgqX19sbywgKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBlKTsKKyNlbHNlCisg ICAgICAgICpfX2xvID0gdG93bG93ZXIoKl9fbG8pOworI2VuZGlmCiAgICAgICAgICsrX19sbzsK ICAgICAgIH0KKyNpZm5kZWYgX0dMSUJDWFhfSEFWRV9UT1dMT1dFUl9MCisgICAgdXNlbG9jYWxl KF9fb2xkKTsKKyNlbmRpZgorICAgIHJldHVybiBfX2hpOworICB9CisKKyNpZiAhZGVmaW5lZChf X0RyYWdvbkZseV9fKSAmJiAhZGVmaW5lZChfX0ZyZWVCU0RfXykKKyAgYm9vbAorICBjdHlwZTx3 Y2hhcl90Pjo6CisgIGRvX2lzKG1hc2sgX19tLCBjaGFyX3R5cGUgX19jKSBjb25zdAorICB7Cisg ICAgYm9vbCBfX3JldCA9IGZhbHNlOworICAgIGNvbnN0IHNpemVfdCBfX2JpdG1hc2tzaXplID0g MTE7CisjaWZuZGVmIF9HTElCQ1hYX0hBVkVfSVNXQ1RZUEVfTAorICAgIF9fY19sb2NhbGUgX19v bGQgPSB1c2Vsb2NhbGUoKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBlKTsKKyNlbmRpZgorICAg IGZvciAoc2l6ZV90IF9fYml0Y3VyID0gMDsgX19iaXRjdXIgPD0gX19iaXRtYXNrc2l6ZTsgKytf X2JpdGN1cikKKyAgICAgIGlmIChfX20gJiBfTV9iaXRbX19iaXRjdXJdCisjaWZkZWYgX0dMSUJD WFhfSEFWRV9JU1dDVFlQRV9MCisJICAmJiBpc3djdHlwZV9sKF9fYywgX01fd21hc2tbX19iaXRj dXJdLCAobG9jYWxlX3QpX01fY19sb2NhbGVfY3R5cGUpCisjZWxzZQorCSAgJiYgaXN3Y3R5cGUo X19jLCBfTV93bWFza1tfX2JpdGN1cl0pCisjZW5kaWYKKwkgICkKKwl7CisJICBfX3JldCA9IHRy dWU7CisJICBicmVhazsKKwl9CisjaWZuZGVmIF9HTElCQ1hYX0hBVkVfSVNXQ1RZUEVfTAorICAg IHVzZWxvY2FsZShfX29sZCk7CisjZW5kaWYKKyAgICByZXR1cm4gX19yZXQ7CisgIH0KKworICBj b25zdCB3Y2hhcl90KgorICBjdHlwZTx3Y2hhcl90Pjo6CisgIGRvX2lzKGNvbnN0IHdjaGFyX3Qq IF9fbG8sIGNvbnN0IHdjaGFyX3QqIF9faGksIG1hc2sqIF9fdmVjKSBjb25zdAorICB7CisjaWZu ZGVmIF9HTElCQ1hYX0hBVkVfSVNXQ1RZUEVfTAorICAgIF9fY19sb2NhbGUgX19vbGQgPSB1c2Vs b2NhbGUoKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBlKTsKKyNlbmRpZgorICAgIGZvciAoO19f bG8gPCBfX2hpOyArK19fdmVjLCArK19fbG8pCisgICAgICB7CisJY29uc3Qgc2l6ZV90IF9fYml0 bWFza3NpemUgPSAxMTsKKwltYXNrIF9fbSA9IDA7CisJZm9yIChzaXplX3QgX19iaXRjdXIgPSAw OyBfX2JpdGN1ciA8PSBfX2JpdG1hc2tzaXplOyArK19fYml0Y3VyKQorI2lmZGVmIF9HTElCQ1hY X0hBVkVfSVNXQ1RZUEVfTAorCSAgaWYgKGlzd2N0eXBlX2woKl9fbG8sIF9NX3dtYXNrW19fYml0 Y3VyXSwgKGxvY2FsZV90KV9NX2NfbG9jYWxlX2N0eXBlKSkKKyNlbHNlCisJICBpZiAoaXN3Y3R5 cGUoKl9fbG8sIF9NX3dtYXNrW19fYml0Y3VyXSkpCisjZW5kaWYKKwkgICAgX19tIHw9IF9NX2Jp dFtfX2JpdGN1cl07CisJKl9fdmVjID0gX19tOworICAgICAgfQorI2lmbmRlZiBfR0xJQkNYWF9I QVZFX0lTV0NUWVBFX0wKKyAgICB1c2Vsb2NhbGUoX19vbGQpOworI2VuZGlmCiAgICAgcmV0dXJu IF9faGk7CiAgIH0KIAorICBjb25zdCB3Y2hhcl90KgorICBjdHlwZTx3Y2hhcl90Pjo6CisgIGRv X3NjYW5faXMobWFzayBfX20sIGNvbnN0IHdjaGFyX3QqIF9fbG8sIGNvbnN0IHdjaGFyX3QqIF9f aGkpIGNvbnN0CisgIHsKKyAgICB3aGlsZSAoX19sbyA8IF9faGkgJiYgIXRoaXMtPmRvX2lzKF9f bSwgKl9fbG8pKQorICAgICAgKytfX2xvOworICAgIHJldHVybiBfX2xvOworICB9CisKKyAgY29u c3Qgd2NoYXJfdCoKKyAgY3R5cGU8d2NoYXJfdD46OgorICBkb19zY2FuX25vdChtYXNrIF9fbSwg Y29uc3QgY2hhcl90eXBlKiBfX2xvLCBjb25zdCBjaGFyX3R5cGUqIF9faGkpIGNvbnN0CisgIHsK KyAgICB3aGlsZSAoX19sbyA8IF9faGkgJiYgdGhpcy0+ZG9faXMoX19tLCAqX19sbykgIT0gMCkK KyAgICAgICsrX19sbzsKKyAgICByZXR1cm4gX19sbzsKKyAgfQorI2VuZGlmCisKICAgd2NoYXJf dAogICBjdHlwZTx3Y2hhcl90Pjo6CiAgIGRvX3dpZGVuKGNoYXIgX19jKSBjb25zdApkaWZmIC0t Z2l0IGEvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L21vbmV0YXJ5X21lbWJl cnMuY2MgYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9pZWVlXzEwMDMuMS0yMDA4L21vbmV0 YXJ5X21lbWJlcnMuY2MKc2ltaWxhcml0eSBpbmRleCA5NiUKcmVuYW1lIGZyb20gbGlic3RkYysr LXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L21vbmV0YXJ5X21lbWJlcnMuY2MKcmVuYW1lIHRv IGxpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvbW9uZXRhcnlfbWVt YmVycy5jYwppbmRleCBlMWRlY2M2MWNiZi4uNzAwMDk4YzU1NjIgMTAwNjQ0Ci0tLSBhL2xpYnN0 ZGMrKy12My9jb25maWcvbG9jYWxlL2RyYWdvbmZseS9tb25ldGFyeV9tZW1iZXJzLmNjCisrKyBi L2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvbW9uZXRhcnlfbWVt YmVycy5jYwpAQCAtMzEsNyArMzEsMTAgQEAKIAogI2luY2x1ZGUgPGxvY2FsZT4KICNpbmNsdWRl IDxjc3RyaW5nPgorCisjaWZkZWYgX0dMSUJDWFhfTkVFRF9YTE9DQUxFX0gKICNpbmNsdWRlIDx4 bG9jYWxlLmg+CisjZW5kaWYKIAogbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRl ZmF1bHQpCiB7CkBAIC0yNDEsNyArMjQ0LDEyIEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9W RVJTSU9OCiAgICAgICBlbHNlCiAJewogCSAgLy8gTmFtZWQgbG9jYWxlLgorI2lmZGVmIF9HTElC Q1hYX0hBVkVfTE9DQUxFQ09OVl9MCiAJICBsY29udiogbGMgPSBsb2NhbGVjb252X2woKGxvY2Fs ZV90KSBfX2Nsb2MpOworI2Vsc2UKKwkgIF9fY19sb2NhbGUgX19vbGQgPSB1c2Vsb2NhbGUoX19j bG9jKTsKKwkgIGxjb252KiBsYyA9IGxvY2FsZWNvbnYoKTsKKyNlbmRpZgogCiAJICAvLyBDaGVj ayBmb3IgTlVMTCwgd2hpY2ggaW1wbGllcyBubyBmcmFjdGlvbmFsIGRpZ2l0cy4KIAkgIGlmIChs Yy0+bW9uX2RlY2ltYWxfcG9pbnQgPT0gTlVMTCB8fApAQCAtMzQ4LDYgKzM1Niw5IEBAIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAJICAgICAgZGVsZXRlIFtdIF9fZ3JvdXA7CiAJ ICAgICAgZGVsZXRlIFtdIF9fcHM7CiAJICAgICAgZGVsZXRlIFtdIF9fbnM7CisjaWZuZGVmIF9H TElCQ1hYX0hBVkVfTE9DQUxFQ09OVl9MCisJICAgICAgdXNlbG9jYWxlKF9fb2xkKTsKKyNlbmRp ZgogCSAgICAgIF9fdGhyb3dfZXhjZXB0aW9uX2FnYWluOwogCSAgICB9CiAKQEAgLTM2MCw2ICsz NzEsOSBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCSAgY2hhciBfX25zcGFj ZSA9IGxjLT5pbnRfbl9zZXBfYnlfc3BhY2U7CiAJICBfTV9kYXRhLT5fTV9uZWdfZm9ybWF0ID0g X1NfY29uc3RydWN0X3BhdHRlcm4oX19ucHJlY2VkZXMsIF9fbnNwYWNlLAogCQkJCQkJCV9fbnBv c24pOworI2lmbmRlZiBfR0xJQkNYWF9IQVZFX0xPQ0FMRUNPTlZfTAorCSAgdXNlbG9jYWxlKF9f b2xkKTsKKyNlbmRpZgogCX0KICAgICB9CiAKQEAgLTM5NSw3ICs0MDksMTIgQEAgX0dMSUJDWFhf QkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIGVsc2UKIAl7CiAJICAvLyBOYW1lZCBsb2Nh bGUuCisjaWZkZWYgX0dMSUJDWFhfSEFWRV9MT0NBTEVDT05WX0wKIAkgIGxjb252KiBsYyA9IGxv Y2FsZWNvbnZfbCgobG9jYWxlX3QpIF9fY2xvYyk7CisjZWxzZQorCSAgX19jX2xvY2FsZSBfX29s ZCA9IHVzZWxvY2FsZShfX2Nsb2MpOworCSAgbGNvbnYqIGxjID0gbG9jYWxlY29udigpOworI2Vu ZGlmCiAKIAkgIC8vIENoZWNrIGZvciBOVUxMLCB3aGljaCBpbXBsaWVzIG5vIGZyYWN0aW9uYWwg ZGlnaXRzLgogCSAgaWYgKGxjLT5tb25fZGVjaW1hbF9wb2ludCA9PSBOVUxMIHx8CkBAIC01MDIs NiArNTIxLDkgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAkgICAgICBkZWxl dGUgW10gX19ncm91cDsKIAkgICAgICBkZWxldGUgW10gX19wczsKIAkgICAgICBkZWxldGUgW10g X19uczsKKyNpZm5kZWYgX0dMSUJDWFhfSEFWRV9MT0NBTEVDT05WX0wKKwkgICAgICB1c2Vsb2Nh bGUoX19vbGQpOworI2VuZGlmCiAJICAgICAgX190aHJvd19leGNlcHRpb25fYWdhaW47CiAJICAg IH0KIApAQCAtNTE0LDYgKzUzNiw5IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9O CiAJICBjaGFyIF9fbnNwYWNlID0gbGMtPm5fc2VwX2J5X3NwYWNlOwogCSAgX01fZGF0YS0+X01f bmVnX2Zvcm1hdCA9IF9TX2NvbnN0cnVjdF9wYXR0ZXJuKF9fbnByZWNlZGVzLCBfX25zcGFjZSwK IAkJCQkJCQlfX25wb3NuKTsKKyNpZm5kZWYgX0dMSUJDWFhfSEFWRV9MT0NBTEVDT05WX0wKKwkg IHVzZWxvY2FsZShfX29sZCk7CisjZW5kaWYKIAl9CiAgICAgfQogCkBAIC01ODEsOSArNjA2LDE0 IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAJfQogICAgICAgZWxzZQogCXsK LQkgIF9fY19sb2NhbGUgX19vbGQgPSAoX19jX2xvY2FsZSl1c2Vsb2NhbGUoKGxvY2FsZV90KV9f Y2xvYyk7CiAJICAvLyBOYW1lZCBsb2NhbGUuCisJICAvLyB1c2Vsb2NhbGUgaXMgbmVlZGVkIGZv ciBtYnNydG93Y3MuCisJICBfX2NfbG9jYWxlIF9fb2xkID0gKF9fY19sb2NhbGUpdXNlbG9jYWxl KChsb2NhbGVfdClfX2Nsb2MpOworI2lmZGVmIF9HTElCQ1hYX0hBVkVfTE9DQUxFQ09OVl9MCiAJ ICBsY29udiogbGMgPSBsb2NhbGVjb252X2woKGxvY2FsZV90KSBfX2Nsb2MpOworI2Vsc2UKKwkg IGxjb252KiBsYyA9IGxvY2FsZWNvbnYoKTsKKyNlbmRpZgogCiAJICAvLyBDaGVjayBmb3IgTlVM TCwgd2hpY2ggaW1wbGllcyBubyBmcmFjdGlvbmFsIGRpZ2l0cy4KIAkgIGlmIChsYy0+bW9uX2Rl Y2ltYWxfcG9pbnQgPT0gTlVMTCB8fApAQCAtNzQxLDkgKzc3MSwxNCBAQCBfR0xJQkNYWF9CRUdJ Tl9OQU1FU1BBQ0VfVkVSU0lPTgogCX0KICAgICAgIGVsc2UKIAl7Ci0JICBfX2NfbG9jYWxlIF9f b2xkID0gKF9fY19sb2NhbGUpdXNlbG9jYWxlKChsb2NhbGVfdClfX2Nsb2MpOwogCSAgLy8gTmFt ZWQgbG9jYWxlLgorCSAgLy8gdXNlbG9jYWxlIGlzIG5lZWRlZCBmb3IgbWJzcnRvd2NzLgorCSAg X19jX2xvY2FsZSBfX29sZCA9IChfX2NfbG9jYWxlKXVzZWxvY2FsZSgobG9jYWxlX3QpX19jbG9j KTsKKyNpZmRlZiBfR0xJQkNYWF9IQVZFX0xPQ0FMRUNPTlZfTAogCSAgbGNvbnYqIGxjID0gbG9j YWxlY29udl9sKChsb2NhbGVfdCkgX19jbG9jKTsKKyNlbHNlCisJICBsY29udiogbGMgPSBsb2Nh bGVjb252KCk7CisjZW5kaWYKIAogCSAgLy8gQ2hlY2sgZm9yIE5VTEwsIHdoaWNoIGltcGxpZXMg bm8gZnJhY3Rpb25hbCBkaWdpdHMuCiAJICBpZiAobGMtPm1vbl9kZWNpbWFsX3BvaW50ID09IE5V TEwgfHwKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2RyYWdvbmZseS9u dW1lcmljX21lbWJlcnMuY2MgYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9pZWVlXzEwMDMu MS0yMDA4L251bWVyaWNfbWVtYmVycy5jYwpzaW1pbGFyaXR5IGluZGV4IDkyJQpyZW5hbWUgZnJv bSBsaWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9kcmFnb25mbHkvbnVtZXJpY19tZW1iZXJzLmNj CnJlbmFtZSB0byBsaWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9pZWVlXzEwMDMuMS0yMDA4L251 bWVyaWNfbWVtYmVycy5jYwppbmRleCBjYWM2ZmU4YzcxMC4uMTk2ZjI5NTIyMTggMTAwNjQ0Ci0t LSBhL2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2RyYWdvbmZseS9udW1lcmljX21lbWJlcnMu Y2MKKysrIGIvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvaWVlZV8xMDAzLjEtMjAwOC9udW1l cmljX21lbWJlcnMuY2MKQEAgLTMxLDcgKzMxLDEwIEBACiAKICNpbmNsdWRlIDxsb2NhbGU+CiAj aW5jbHVkZSA8Y3N0cmluZz4KKworI2lmZGVmIF9HTElCQ1hYX05FRURfWExPQ0FMRV9ICiAjaW5j bHVkZSA8eGxvY2FsZS5oPgorI2VuZGlmCiAKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJ TElUWShkZWZhdWx0KQogewpAQCAtNjMsNyArNjYsMTIgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX1ZFUlNJT04KICAgICAgIGVsc2UKIAl7CiAJICAvLyBOYW1lZCBsb2NhbGUuCisjaWZkZWYg X0dMSUJDWFhfSEFWRV9MT0NBTEVDT05WX0wKIAkgIGxjb252KiBsYyA9IGxvY2FsZWNvbnZfbCgo bG9jYWxlX3QpIF9fY2xvYyk7CisjZWxzZQorCSAgX19jX2xvY2FsZSBfX29sZCA9IHVzZWxvY2Fs ZShfX2Nsb2MpOworCSAgbGNvbnYqIGxjID0gbG9jYWxlY29udigpOworI2VuZGlmCiAKIAkgIC8v IERlY2ltYWwgcG9pbnQgc2hvdWxkIGFsd2F5cyBiZSBkZWZpbmVkLCBidXQgY2hlY2sgbnVsbCBh bnl3YXkKIAkgIGlmIChsYy0+ZGVjaW1hbF9wb2ludCA9PSBOVUxMKQpAQCAtMTAzLDYgKzExMSw5 IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAJCSAgICB7CiAJCSAgICAgIGRl bGV0ZSBfTV9kYXRhOwogCQkgICAgICBfTV9kYXRhID0gMDsKKyNpZm5kZWYgX0dMSUJDWFhfSEFW RV9MT0NBTEVDT05WX0wKKwkJICAgICAgdXNlbG9jYWxlKF9fb2xkKTsKKyNlbmRpZgogCQkgICAg ICBfX3Rocm93X2V4Y2VwdGlvbl9hZ2FpbjsKIAkJICAgIH0KIAkJfQpAQCAtMTEzLDYgKzEyNCw5 IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAJCX0KIAkgICAgICBfTV9kYXRh LT5fTV9ncm91cGluZ19zaXplID0gX19sZW47CiAJICAgIH0KKyNpZm5kZWYgX0dMSUJDWFhfSEFW RV9MT0NBTEVDT05WX0wKKwkgIHVzZWxvY2FsZShfX29sZCk7CisjZW5kaWYKIAl9CiAKICAgICAg IC8vIE5COiBUaGVyZSBpcyBubyB3YXkgdG8gZXh0YWN0IHRoaXMgaW5mbyBmcm9tIHBvc2l4IGxv Y2FsZXMuCkBAIC0xNjIsNyArMTc2LDEyIEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCiAgICAgICBlbHNlCiAJewogCSAgLy8gTmFtZWQgbG9jYWxlLgorI2lmZGVmIF9HTElCQ1hY X0hBVkVfTE9DQUxFQ09OVl9MCiAJICBsY29udiogbGMgPSBsb2NhbGVjb252X2woKGxvY2FsZV90 KSBfX2Nsb2MpOworI2Vsc2UKKwkgIF9fY19sb2NhbGUgX19vbGQgPSB1c2Vsb2NhbGUoX19jbG9j KTsKKwkgIGxjb252KiBsYyA9IGxvY2FsZWNvbnYoKTsKKyNlbmRpZgogCiAJICAvLyBEZWNpbWFs IHBvaW50IHNob3VsZCBhbHdheXMgYmUgZGVmaW5lZCwgYnV0IGNoZWNrIG51bGwgYW55d2F5CiAJ ICBpZiAobGMtPmRlY2ltYWxfcG9pbnQgPT0gTlVMTCkKQEAgLTIwMSw2ICsyMjAsOSBAQCBfR0xJ QkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCQkgICAgewogCQkgICAgICBkZWxldGUgX01f ZGF0YTsKIAkJICAgICAgX01fZGF0YSA9IDA7CisjaWZuZGVmIF9HTElCQ1hYX0hBVkVfTE9DQUxF Q09OVl9MCisJCSAgICAgIHVzZWxvY2FsZShfX29sZCk7CisjZW5kaWYKIAkJICAgICAgX190aHJv d19leGNlcHRpb25fYWdhaW47CiAJCSAgICB9CiAJCX0KQEAgLTIxMSw2ICsyMzMsOSBAQCBfR0xJ QkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCQl9CiAJICAgICAgX01fZGF0YS0+X01fZ3Jv dXBpbmdfc2l6ZSA9IF9fbGVuOwogCSAgICB9CisjaWZuZGVmIF9HTElCQ1hYX0hBVkVfTE9DQUxF Q09OVl9MCisJICB1c2Vsb2NhbGUoX19vbGQpOworI2VuZGlmCiAJfQogCiAgICAgICAvLyBOQjog VGhlcmUgaXMgbm8gd2F5IHRvIGV4dGFjdCB0aGlzIGluZm8gZnJvbSBwb3NpeCBsb2NhbGVzLgpk aWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L3RpbWVfbWVt YmVycy5jYyBiL2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvdGlt ZV9tZW1iZXJzLmNjCnNpbWlsYXJpdHkgaW5kZXggOTMlCnJlbmFtZSBmcm9tIGxpYnN0ZGMrKy12 My9jb25maWcvbG9jYWxlL2RyYWdvbmZseS90aW1lX21lbWJlcnMuY2MKcmVuYW1lIHRvIGxpYnN0 ZGMrKy12My9jb25maWcvbG9jYWxlL2llZWVfMTAwMy4xLTIwMDgvdGltZV9tZW1iZXJzLmNjCmlu ZGV4IGM4YjYyMWEzMjNmLi45MjZjYzUyNjliMiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2Nv bmZpZy9sb2NhbGUvZHJhZ29uZmx5L3RpbWVfbWVtYmVycy5jYworKysgYi9saWJzdGRjKystdjMv Y29uZmlnL2xvY2FsZS9pZWVlXzEwMDMuMS0yMDA4L3RpbWVfbWVtYmVycy5jYwpAQCAtMzUsNyAr MzUsMTAgQEAKICNpbmNsdWRlIDxjd2NoYXI+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVk ZSA8bGFuZ2luZm8uaD4KKworI2lmZGVmIF9HTElCQ1hYX05FRURfWExPQ0FMRV9ICiAjaW5jbHVk ZSA8eGxvY2FsZS5oPgorI2VuZGlmCiAKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElU WShkZWZhdWx0KQogewpAQCAtNDcsOCArNTAsMTQgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNF X1ZFUlNJT04KICAgICBfTV9wdXQoY2hhciogX19zLCBzaXplX3QgX19tYXhsZW4sIGNvbnN0IGNo YXIqIF9fZm9ybWF0LAogCSAgIGNvbnN0IHRtKiBfX3RtKSBjb25zdCB0aHJvdygpCiAgICAgewor I2lmZGVmIF9HTElCQ1hYX0hBVkVfU1RSRlRJTUVfTAogICAgICAgY29uc3Qgc2l6ZV90IF9fbGVu ID0gc3RyZnRpbWVfbChfX3MsIF9fbWF4bGVuLCBfX2Zvcm1hdCwgX190bSwKIAkJCQkgICAgICAo bG9jYWxlX3QpX01fY19sb2NhbGVfdGltZXB1bmN0KTsKKyNlbHNlCisgICAgICBfX2NfbG9jYWxl IF9fb2xkID0gdXNlbG9jYWxlKF9NX2NfbG9jYWxlX3RpbWVwdW5jdCk7CisgICAgICBjb25zdCBz aXplX3QgX19sZW4gPSBzdHJmdGltZShfX3MsIF9fbWF4bGVuLCBfX2Zvcm1hdCwgX190bSk7Cisg ICAgICB1c2Vsb2NhbGUoX19vbGQpOworI2VuZGlmCiAgICAgICAvLyBNYWtlIHN1cmUgX19zIGlz IG51bGwgdGVybWluYXRlZC4KICAgICAgIGlmIChfX2xlbiA9PSAwKQogCV9fc1swXSA9ICdcMCc7 CkBAIC0xOTYsMTUgKzIwNSwyOSBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgog ICAgIF9NX3B1dCh3Y2hhcl90KiBfX3MsIHNpemVfdCBfX21heGxlbiwgY29uc3Qgd2NoYXJfdCog X19mb3JtYXQsCiAJICAgY29uc3QgdG0qIF9fdG0pIGNvbnN0IHRocm93KCkKICAgICB7CisjaWZk ZWYgX0dMSUJDWFhfSEFWRV9XQ1NGVElNRV9MCiAgICAgICBjb25zdCBzaXplX3QgX19sZW4gPSB3 Y3NmdGltZV9sKF9fcywgX19tYXhsZW4sIF9fZm9ybWF0LCBfX3RtLAogCQkJCSAgICAgIChsb2Nh bGVfdClfTV9jX2xvY2FsZV90aW1lcHVuY3QpOworI2Vsc2UKKyAgICAgIF9fY19sb2NhbGUgX19v bGQgPSB1c2Vsb2NhbGUoX01fY19sb2NhbGVfdGltZXB1bmN0KTsKKyAgICAgIGNvbnN0IHNpemVf dCBfX2xlbiA9IHdjc2Z0aW1lKF9fcywgX19tYXhsZW4sIF9fZm9ybWF0LCBfX3RtKTsKKyAgICAg IHVzZWxvY2FsZShfX29sZCk7CisjZW5kaWYKICAgICAgIC8vIE1ha2Ugc3VyZSBfX3MgaXMgbnVs bCB0ZXJtaW5hdGVkLgogICAgICAgaWYgKF9fbGVuID09IDApCiAJX19zWzBdID0gTCdcMCc7CiAg ICAgfQogCisjaWZkZWYgX0dMSUJDWFhfSEFWRV9NQlNUT1dDU19MCisjZGVmaW5lIE1CU1RPV0NT X0woV0NTVFJJTkcsIFNUUklORywgTlVNQkVSLCBMT0NBTEUpCVwKKyAgbWJzdG93Y3NfbCAoV0NT VFJJTkcsIFNUUklORywgTlVNQkVSLCBMT0NBTEUpOworI2Vsc2UKKyAgLy8gInVzZWxvY2FsZSIg bXVzdCBiZSBjYWxsZWQgYmVmb3JlIHVzaW5nIHRoaXMgbWFjcm8uCisjZGVmaW5lIE1CU1RPV0NT X0woV0NTVFJJTkcsIFNUUklORywgTlVNQkVSLCBMT0NBTEUpCVwKKyAgbWJzdG93Y3MgKFdDU1RS SU5HLCBTVFJJTkcsIE5VTUJFUik7CisjZW5kaWYKICNkZWZpbmUgV0lERV9MQU5HSU5GTyhNLEZN VCkgXAotCWZtdGxlbiA9IG1ic3Rvd2NzX2wgKGhvbGRlciwgbmxfbGFuZ2luZm9fbChGTVQsIChs b2NhbGVfdClfX2Nsb2MpLCBcCisJZm10bGVuID0gTUJTVE9XQ1NfTCAoaG9sZGVyLCBubF9sYW5n aW5mb19sKEZNVCwgKGxvY2FsZV90KV9fY2xvYyksIFwKIAkJMTI4LCAobG9jYWxlX3QpX19jbG9j KTsgXAogCWxhbmdzdHJpbmcgPSBuZXcgd2NoYXJfdFtmbXRsZW4gKyAxXTsgXAogCXdjc25jcHkg KGxhbmdzdHJpbmcsIGhvbGRlciwgZm10bGVuKTsgXApAQCAtMjgxLDYgKzMwNCw5IEBAIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAJfQogICAgICAgZWxzZQogCXsKKyNpZm5kZWYg X0dMSUJDWFhfSEFWRV9NQlNUT1dDU19MCisJICBfX2NfbG9jYWxlIF9fb2xkID0gdXNlbG9jYWxl KF9fY2xvYyk7CisjZW5kaWYKIAkgIHdjaGFyX3QgKmxhbmdzdHJpbmcgPSAwOwogCSAgd2NoYXJf dCBob2xkZXJbMTI4XTsKIAkgIHNpemVfdCBmbXRsZW47CkBAIC0zNDIsNiArMzY4LDkgQEAgX0dM SUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAkgIFdJREVfTEFOR0lORk8oX01fYW1vbnRo MTAsIEFCTU9OXzEwKQogCSAgV0lERV9MQU5HSU5GTyhfTV9hbW9udGgxMSwgQUJNT05fMTEpCiAJ ICBXSURFX0xBTkdJTkZPKF9NX2Ftb250aDEyLCBBQk1PTl8xMikKKyNpZm5kZWYgX0dMSUJDWFhf SEFWRV9NQlNUT1dDU19MCisJICB1c2Vsb2NhbGUoX19vbGQpOworI2VuZGlmCiAJfQogICAgIH0K IApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L3RpbWVf bWVtYmVycy5oIGIvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvaWVlZV8xMDAzLjEtMjAwOC90 aW1lX21lbWJlcnMuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlic3RkYysr LXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L3RpbWVfbWVtYmVycy5oCnJlbmFtZSB0byBsaWJz dGRjKystdjMvY29uZmlnL2xvY2FsZS9pZWVlXzEwMDMuMS0yMDA4L3RpbWVfbWVtYmVycy5oCmRp ZmYgLS1naXQgYS9saWJzdGRjKystdjMvY29uZmlnL29zL2FpeC9jdHlwZV9jb25maWd1cmVfY2hh ci5jYyBiL2xpYnN0ZGMrKy12My9jb25maWcvb3MvYWl4L2N0eXBlX2NvbmZpZ3VyZV9jaGFyLmNj CmluZGV4IGIxMmMwYmQ0MzVjLi4zOGY5MzA4ODkzYiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYz L2NvbmZpZy9vcy9haXgvY3R5cGVfY29uZmlndXJlX2NoYXIuY2MKKysrIGIvbGlic3RkYysrLXYz L2NvbmZpZy9vcy9haXgvY3R5cGVfY29uZmlndXJlX2NoYXIuY2MKQEAgLTQ2LDIzICs0NiwyMSBA QCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCQkgICAgIHNpemVfdCBfX3JlZnMp CiAgIDogZmFjZXQoX19yZWZzKSwgX01fZGVsKF9fdGFibGUgIT0gMCAmJiBfX2RlbCksCiAgIF9N X3RvdXBwZXIoTlVMTCksIF9NX3RvbG93ZXIoTlVMTCksCi0gIF9NX3RhYmxlKF9fdGFibGUgPyBf X3RhYmxlIDogY2xhc3NpY190YWJsZSgpKQorICBfTV90YWJsZShfX3RhYmxlID8gX190YWJsZSA6 IGNsYXNzaWNfdGFibGUoKSksCisgIF9NX3dpZGVuX29rKDApLCBfTV9uYXJyb3dfb2soMCkKICAg ewogICAgIG1lbXNldChfTV93aWRlbiwgMCwgc2l6ZW9mKF9NX3dpZGVuKSk7Ci0gICAgX01fd2lk ZW5fb2sgPSAwOwogICAgIG1lbXNldChfTV9uYXJyb3csIDAsIHNpemVvZihfTV9uYXJyb3cpKTsK LSAgICBfTV9uYXJyb3dfb2sgPSAwOwogICB9CiAKICAgY3R5cGU8Y2hhcj46OmN0eXBlKGNvbnN0 IG1hc2sqIF9fdGFibGUsIGJvb2wgX19kZWwsIHNpemVfdCBfX3JlZnMpCiAgIDogZmFjZXQoX19y ZWZzKSwgX01fZGVsKF9fdGFibGUgIT0gMCAmJiBfX2RlbCksCiAgIF9NX3RvdXBwZXIoTlVMTCks IF9NX3RvbG93ZXIoTlVMTCksCi0gIF9NX3RhYmxlKF9fdGFibGUgPyBfX3RhYmxlIDogY2xhc3Np Y190YWJsZSgpKQorICBfTV90YWJsZShfX3RhYmxlID8gX190YWJsZSA6IGNsYXNzaWNfdGFibGUo KSksCisgIF9NX3dpZGVuX29rKDApLCBfTV9uYXJyb3dfb2soMCkKICAgewogICAgIG1lbXNldChf TV93aWRlbiwgMCwgc2l6ZW9mKF9NX3dpZGVuKSk7Ci0gICAgX01fd2lkZW5fb2sgPSAwOwogICAg IG1lbXNldChfTV9uYXJyb3csIDAsIHNpemVvZihfTV9uYXJyb3cpKTsKLSAgICBfTV9uYXJyb3df b2sgPSAwOwogICB9CiAKICAgY2hhcgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2NvbmZpZy9v cy9nbnUtbGludXgvY3R5cGVfY29uZmlndXJlX2NoYXIuY2MgYi9saWJzdGRjKystdjMvY29uZmln L29zL2dudS1saW51eC9jdHlwZV9jb25maWd1cmVfY2hhci5jYwppbmRleCBkNmFiNzMxNzViOC4u OWNmMjE1MDAyNzEgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9jb25maWcvb3MvZ251LWxpbnV4 L2N0eXBlX2NvbmZpZ3VyZV9jaGFyLmNjCisrKyBiL2xpYnN0ZGMrKy12My9jb25maWcvb3MvZ251 LWxpbnV4L2N0eXBlX2NvbmZpZ3VyZV9jaGFyLmNjCkBAIC0zOCw3ICszOCw3IEBAIF9HTElCQ1hY X0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKIC8vIEluZm9ybWF0aW9uIGFzIGdsZWFuZWQgZnJv bSAvdXNyL2luY2x1ZGUvY3R5cGUuaAogCi0jaWYgX0dMSUJDWFhfQ19MT0NBTEVfR05VCisjaWYg X0dMSUJDWFhfQ19MT0NBTEVfR05VIHx8IF9HTElCQ1hYX0NfTE9DQUxFX0lFRUVfMjAwOAogICBj b25zdCBjdHlwZV9iYXNlOjptYXNrKgogICBjdHlwZTxjaGFyPjo6Y2xhc3NpY190YWJsZSgpIHRo cm93KCkKICAgeyByZXR1cm4gX1NfZ2V0X2NfbG9jYWxlKCktPl9fY3R5cGVfYjsgfQpAQCAtNzAs NyArNzAsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICB9CiAjZW5kaWYK IAotI2lmIF9HTElCQ1hYX0NfTE9DQUxFX0dOVQorI2lmIF9HTElCQ1hYX0NfTE9DQUxFX0dOVSB8 fCBfR0xJQkNYWF9DX0xPQ0FMRV9JRUVFXzIwMDgKICAgY3R5cGU8Y2hhcj46OmN0eXBlKF9fY19s b2NhbGUgX19jbG9jLCBjb25zdCBtYXNrKiBfX3RhYmxlLCBib29sIF9fZGVsLAogCQkgICAgIHNp emVfdCBfX3JlZnMpCiAgIDogZmFjZXQoX19yZWZzKSwgX01fY19sb2NhbGVfY3R5cGUoX1NfY2xv bmVfY19sb2NhbGUoX19jbG9jKSksCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvdGVzdHN1aXRl LzIyX2xvY2FsZS9jb2RlY3Z0L2luL3djaGFyX3QvMi5jYyBiL2xpYnN0ZGMrKy12My90ZXN0c3Vp dGUvMjJfbG9jYWxlL2NvZGVjdnQvaW4vd2NoYXJfdC8yLmNjCmluZGV4IGVhMGM0M2EyMGZjLi43 MWUxOTg4NDNkMiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMl9sb2NhbGUv Y29kZWN2dC9pbi93Y2hhcl90LzIuY2MKKysrIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMl9s b2NhbGUvY29kZWN2dC9pbi93Y2hhcl90LzIuY2MKQEAgLTEsNCArMSw1IEBACiAvLyB7IGRnLXJl cXVpcmUtbmFtZWRsb2NhbGUgImVuX1VTLklTTzg4NTktMSIgfQorLy8geyBkZy1leGNlc3MtZXJy b3JzICJ3Y2hhcl90IG92ZXJmbG93IiB7IHhmYWlsIHsgd2NoYXJfdF9jaGFyMTZfdF9jb21wYXRp YmxlIH0gfSB9CiAKIC8vIDIwMDMtMDItMDYgIFBldHVyIFJ1bm9sZnNzb24gIDxwZXR1cnIwMkBy dS5pcz4KIApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMl9sb2NhbGUvY29k ZWN2dC9pbi93Y2hhcl90LzMuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIyX2xvY2FsZS9j b2RlY3Z0L2luL3djaGFyX3QvMy5jYwppbmRleCA1NDIwNmY4MDAwYS4uZmZkZTk0MTA4YTEgMTAw NjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjJfbG9jYWxlL2NvZGVjdnQvaW4vd2No YXJfdC8zLmNjCisrKyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjJfbG9jYWxlL2NvZGVjdnQv aW4vd2NoYXJfdC8zLmNjCkBAIC0xLDQgKzEsNSBAQAogLy8geyBkZy1yZXF1aXJlLW5hbWVkbG9j YWxlICJlbl9VUy5JU08tODg1OS0xNSIgfQorLy8geyBkZy1leGNlc3MtZXJyb3JzICJ3Y2hhcl90 IG92ZXJmbG93IiB7IHhmYWlsIHsgd2NoYXJfdF9jaGFyMTZfdF9jb21wYXRpYmxlIH0gfSB9CiAK IC8vIDIwMDMtMDItMDYgIFBldHVyIFJ1bm9sZnNzb24gIDxwZXR1cnIwMkBydS5pcz4KIApkaWZm IC0tZ2l0IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMl9sb2NhbGUvY29kZWN2dC9pbi93Y2hh cl90LzQuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIyX2xvY2FsZS9jb2RlY3Z0L2luL3dj aGFyX3QvNC5jYwppbmRleCBmMjdkNjY3ZGFmNS4uOTE5M2I1OTgxNjIgMTAwNjQ0Ci0tLSBhL2xp YnN0ZGMrKy12My90ZXN0c3VpdGUvMjJfbG9jYWxlL2NvZGVjdnQvaW4vd2NoYXJfdC80LmNjCisr KyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjJfbG9jYWxlL2NvZGVjdnQvaW4vd2NoYXJfdC80 LmNjCkBAIC0xLDQgKzEsNSBAQAogLy8geyBkZy1yZXF1aXJlLW5hbWVkbG9jYWxlICJlbl9VUy5V VEYtOCIgfQorLy8geyBkZy1leGNlc3MtZXJyb3JzICJ3Y2hhcl90IG92ZXJmbG93IiB7IHhmYWls IHsgd2NoYXJfdF9jaGFyMTZfdF9jb21wYXRpYmxlIH0gfSB9CiAKIC8vIDIwMDMtMDItMDYgIFBl dHVyIFJ1bm9sZnNzb24gIDxwZXR1cnIwMkBydS5pcz4KIApkaWZmIC0tZ2l0IGEvbGlic3RkYysr LXYzL3Rlc3RzdWl0ZS8yMl9sb2NhbGUvY29kZWN2dC9pbi93Y2hhcl90LzcuY2MgYi9saWJzdGRj KystdjMvdGVzdHN1aXRlLzIyX2xvY2FsZS9jb2RlY3Z0L2luL3djaGFyX3QvNy5jYwppbmRleCBi NTM4M2FmNjU3Yy4uZTRiNDI4YzlmYzYgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My90ZXN0c3Vp dGUvMjJfbG9jYWxlL2NvZGVjdnQvaW4vd2NoYXJfdC83LmNjCisrKyBiL2xpYnN0ZGMrKy12My90 ZXN0c3VpdGUvMjJfbG9jYWxlL2NvZGVjdnQvaW4vd2NoYXJfdC83LmNjCkBAIC0xLDQgKzEsNSBA QAogLy8geyBkZy1yZXF1aXJlLW5hbWVkbG9jYWxlICJlbl9VUy5VVEYtOCIgfQorLy8geyBkZy1l eGNlc3MtZXJyb3JzICJ3Y2hhcl90IG92ZXJmbG93IiB7IHhmYWlsIHsgd2NoYXJfdF9jaGFyMTZf dF9jb21wYXRpYmxlIH0gfSB9CiAKIC8vIDIwMDMtMDItMDYgIFBldHVyIFJ1bm9sZnNzb24gIDxw ZXR1cnIwMkBydS5pcz4KIApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMl9s b2NhbGUvY29kZWN2dC9pbi93Y2hhcl90LzguY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIy X2xvY2FsZS9jb2RlY3Z0L2luL3djaGFyX3QvOC5jYwppbmRleCAxZDQwYTE3MjNhNC4uZmZiZDg1 NjY0MGIgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjJfbG9jYWxlL2NvZGVj dnQvaW4vd2NoYXJfdC84LmNjCisrKyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjJfbG9jYWxl L2NvZGVjdnQvaW4vd2NoYXJfdC84LmNjCkBAIC0xLDQgKzEsNSBAQAogLy8geyBkZy1yZXF1aXJl LW5hbWVkbG9jYWxlICJlbl9VUy5VVEYtOCIgfQorLy8geyBkZy1leGNlc3MtZXJyb3JzICJ3Y2hh cl90IG92ZXJmbG93IiB7IHhmYWlsIHsgd2NoYXJfdF9jaGFyMTZfdF9jb21wYXRpYmxlIH0gfSB9 CiAKIC8vIDIwMDMtMDItMDYgIFBldHVyIFJ1bm9sZnNzb24gIDxwZXR1cnIwMkBydS5pcz4KIApk aWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMl9sb2NhbGUvY29kZWN2dC9pbi93 Y2hhcl90LzkuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIyX2xvY2FsZS9jb2RlY3Z0L2lu L3djaGFyX3QvOS5jYwppbmRleCA5ODAxZTA4NTY4My4uNWU0MmEzNzM1NDcgMTAwNjQ0Ci0tLSBh L2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjJfbG9jYWxlL2NvZGVjdnQvaW4vd2NoYXJfdC85LmNj CisrKyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjJfbG9jYWxlL2NvZGVjdnQvaW4vd2NoYXJf dC85LmNjCkBAIC0xLDQgKzEsNSBAQAogLy8geyBkZy1yZXF1aXJlLW5hbWVkbG9jYWxlICJlbl9V Uy5VVEYtOCIgfQorLy8geyBkZy1leGNlc3MtZXJyb3JzICJ3Y2hhcl90IG92ZXJmbG93IiB7IHhm YWlsIHsgd2NoYXJfdF9jaGFyMTZfdF9jb21wYXRpYmxlIH0gfSB9CiAKIC8vIDIwMDMtMDItMDYg IFBldHVyIFJ1bm9sZnNzb24gIDxwZXR1cnIwMkBydS5pcz4KIApkaWZmIC0tZ2l0IGEvbGlic3Rk YysrLXYzL3Rlc3RzdWl0ZS8yMl9sb2NhbGUvY29kZWN2dC9sZW5ndGgvd2NoYXJfdC80LmNjIGIv bGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMl9sb2NhbGUvY29kZWN2dC9sZW5ndGgvd2NoYXJfdC80 LmNjCmluZGV4IGY3MGQwZmM2YzU4Li4wMWJmMWE1NzkxNyAxMDA2NDQKLS0tIGEvbGlic3RkYysr LXYzL3Rlc3RzdWl0ZS8yMl9sb2NhbGUvY29kZWN2dC9sZW5ndGgvd2NoYXJfdC80LmNjCisrKyBi L2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjJfbG9jYWxlL2NvZGVjdnQvbGVuZ3RoL3djaGFyX3Qv NC5jYwpAQCAtMSw0ICsxLDUgQEAKIC8vIHsgZGctcmVxdWlyZS1uYW1lZGxvY2FsZSAiZW5fVVMu VVRGLTgiIH0KKy8vIHsgZGctZXhjZXNzLWVycm9ycyAid2NoYXJfdCBvdmVyZmxvdyIgeyB4ZmFp bCB7IHdjaGFyX3RfY2hhcjE2X3RfY29tcGF0aWJsZSB9IH0gfQogCiAvLyAyMDAzLTAyLTA2ICBQ ZXR1ciBSdW5vbGZzc29uICA8cGV0dXJyMDJAcnUuaXM+CiAKZGlmZiAtLWdpdCBhL2xpYnN0ZGMr Ky12My90ZXN0c3VpdGUvMjJfbG9jYWxlL2NvZGVjdnQvb3V0L3djaGFyX3QvNC5jYyBiL2xpYnN0 ZGMrKy12My90ZXN0c3VpdGUvMjJfbG9jYWxlL2NvZGVjdnQvb3V0L3djaGFyX3QvNC5jYwppbmRl eCA1Y2RlMGI2NjMzMS4uMjVkZmEwMmI5OWQgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My90ZXN0 c3VpdGUvMjJfbG9jYWxlL2NvZGVjdnQvb3V0L3djaGFyX3QvNC5jYworKysgYi9saWJzdGRjKyst djMvdGVzdHN1aXRlLzIyX2xvY2FsZS9jb2RlY3Z0L291dC93Y2hhcl90LzQuY2MKQEAgLTEsNCAr MSw1IEBACiAvLyB7IGRnLXJlcXVpcmUtbmFtZWRsb2NhbGUgImVuX1VTLlVURi04IiB9CisvLyB7 IGRnLWV4Y2Vzcy1lcnJvcnMgIndjaGFyX3Qgb3ZlcmZsb3ciIHsgeGZhaWwgeyB3Y2hhcl90X2No YXIxNl90X2NvbXBhdGlibGUgfSB9IH0KIAogLy8gMjAwMy0wMi0wNiAgUGV0dXIgUnVub2xmc3Nv biAgPHBldHVycjAyQHJ1LmlzPgogCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvdGVzdHN1aXRl LzIyX2xvY2FsZS9jb2RlY3Z0L3Vuc2hpZnQvd2NoYXJfdC80LmNjIGIvbGlic3RkYysrLXYzL3Rl c3RzdWl0ZS8yMl9sb2NhbGUvY29kZWN2dC91bnNoaWZ0L3djaGFyX3QvNC5jYwppbmRleCAxZTRj ZTVhOGUzZS4uNWQwMGE2MmM5YTkgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUv MjJfbG9jYWxlL2NvZGVjdnQvdW5zaGlmdC93Y2hhcl90LzQuY2MKKysrIGIvbGlic3RkYysrLXYz L3Rlc3RzdWl0ZS8yMl9sb2NhbGUvY29kZWN2dC91bnNoaWZ0L3djaGFyX3QvNC5jYwpAQCAtMSw0 ICsxLDUgQEAKIC8vIHsgZGctcmVxdWlyZS1uYW1lZGxvY2FsZSAiZW5fVVMuVVRGLTgiIH0KKy8v IHsgZGctZXhjZXNzLWVycm9ycyAid2NoYXJfdCBvdmVyZmxvdyIgeyB4ZmFpbCB7IHdjaGFyX3Rf Y2hhcjE2X3RfY29tcGF0aWJsZSB9IH0gfQogCiAvLyAyMDAzLTAyLTA2ICBQZXR1ciBSdW5vbGZz c29uICA8cGV0dXJyMDJAcnUuaXM+CiAKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3Vp dGUvMjdfaW8vYmFzaWNfZmlsZWJ1Zi9vdmVyZmxvdy93Y2hhcl90LzExMzA1LTEuY2MgYi9saWJz dGRjKystdjMvdGVzdHN1aXRlLzI3X2lvL2Jhc2ljX2ZpbGVidWYvb3ZlcmZsb3cvd2NoYXJfdC8x MTMwNS0xLmNjCmluZGV4IGM3NDdmN2JmYjAyLi40NjcxM2NjYTExOCAxMDA2NDQKLS0tIGEvbGli c3RkYysrLXYzL3Rlc3RzdWl0ZS8yN19pby9iYXNpY19maWxlYnVmL292ZXJmbG93L3djaGFyX3Qv MTEzMDUtMS5jYworKysgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzI3X2lvL2Jhc2ljX2ZpbGVi dWYvb3ZlcmZsb3cvd2NoYXJfdC8xMTMwNS0xLmNjCkBAIC0xLDQgKzEsNSBAQAogLy8geyBkZy1y ZXF1aXJlLW5hbWVkbG9jYWxlICJlbl9VUy5VVEYtOCIgfQorLy8geyBkZy1leGNlc3MtZXJyb3Jz ICJ3Y2hhcl90IG92ZXJmbG93IiB7IHhmYWlsIHsgd2NoYXJfdF9jaGFyMTZfdF9jb21wYXRpYmxl IH0gfSB9CiAKIC8vIENvcHlyaWdodCAoQykgMjAwMy0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogLy8KZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjdfaW8v YmFzaWNfZmlsZWJ1Zi9vdmVyZmxvdy93Y2hhcl90LzExMzA1LTIuY2MgYi9saWJzdGRjKystdjMv dGVzdHN1aXRlLzI3X2lvL2Jhc2ljX2ZpbGVidWYvb3ZlcmZsb3cvd2NoYXJfdC8xMTMwNS0yLmNj CmluZGV4IDc2YTM4Nzc2OGZlLi5hM2E0YmJmNTgzMyAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYz L3Rlc3RzdWl0ZS8yN19pby9iYXNpY19maWxlYnVmL292ZXJmbG93L3djaGFyX3QvMTEzMDUtMi5j YworKysgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzI3X2lvL2Jhc2ljX2ZpbGVidWYvb3ZlcmZs b3cvd2NoYXJfdC8xMTMwNS0yLmNjCkBAIC0xLDQgKzEsNSBAQAogLy8geyBkZy1yZXF1aXJlLW5h bWVkbG9jYWxlICJlbl9VUy5VVEYtOCIgfQorLy8geyBkZy1leGNlc3MtZXJyb3JzICJ3Y2hhcl90 IG92ZXJmbG93IiB7IHhmYWlsIHsgd2NoYXJfdF9jaGFyMTZfdF9jb21wYXRpYmxlIH0gfSB9CiAK IC8vIENvcHlyaWdodCAoQykgMjAwMy0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgogLy8KZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjdfaW8vYmFzaWNfZmls ZWJ1Zi9vdmVyZmxvdy93Y2hhcl90LzExMzA1LTMuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRl LzI3X2lvL2Jhc2ljX2ZpbGVidWYvb3ZlcmZsb3cvd2NoYXJfdC8xMTMwNS0zLmNjCmluZGV4IDI0 ZDE5MjkyMWNiLi4yYTMxNDU4OTcxNCAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0 ZS8yN19pby9iYXNpY19maWxlYnVmL292ZXJmbG93L3djaGFyX3QvMTEzMDUtMy5jYworKysgYi9s aWJzdGRjKystdjMvdGVzdHN1aXRlLzI3X2lvL2Jhc2ljX2ZpbGVidWYvb3ZlcmZsb3cvd2NoYXJf dC8xMTMwNS0zLmNjCkBAIC0xLDQgKzEsNSBAQAogLy8geyBkZy1yZXF1aXJlLW5hbWVkbG9jYWxl ICJlbl9VUy5VVEYtOCIgfQorLy8geyBkZy1leGNlc3MtZXJyb3JzICJ3Y2hhcl90IG92ZXJmbG93 IiB7IHhmYWlsIHsgd2NoYXJfdF9jaGFyMTZfdF9jb21wYXRpYmxlIH0gfSB9CiAKIC8vIENvcHly aWdodCAoQykgMjAwMy0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogLy8KZGlm ZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjdfaW8vYmFzaWNfZmlsZWJ1Zi9vdmVy Zmxvdy93Y2hhcl90LzExMzA1LTQuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzI3X2lvL2Jh c2ljX2ZpbGVidWYvb3ZlcmZsb3cvd2NoYXJfdC8xMTMwNS00LmNjCmluZGV4IDJjMGEyYWI2MWRi Li43MTM5M2JiZDI1NSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yN19pby9i YXNpY19maWxlYnVmL292ZXJmbG93L3djaGFyX3QvMTEzMDUtNC5jYworKysgYi9saWJzdGRjKyst djMvdGVzdHN1aXRlLzI3X2lvL2Jhc2ljX2ZpbGVidWYvb3ZlcmZsb3cvd2NoYXJfdC8xMTMwNS00 LmNjCkBAIC0xLDQgKzEsNSBAQAogLy8geyBkZy1yZXF1aXJlLW5hbWVkbG9jYWxlICJlbl9VUy5V VEYtOCIgfQorLy8geyBkZy1leGNlc3MtZXJyb3JzICJ3Y2hhcl90IG92ZXJmbG93IiB7IHhmYWls IHsgd2NoYXJfdF9jaGFyMTZfdF9jb21wYXRpYmxlIH0gfSB9CiAKIC8vIENvcHlyaWdodCAoQykg MjAwMy0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogLy8KZGlmZiAtLWdpdCBh L2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvbGliL2xpYnN0ZGMrKy5leHAgYi9saWJzdGRjKystdjMv dGVzdHN1aXRlL2xpYi9saWJzdGRjKysuZXhwCmluZGV4IDMwYTQzNDViMTRmLi4yMDA2MDJkMDAz ZSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS9saWIvbGlic3RkYysrLmV4cAor KysgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlL2xpYi9saWJzdGRjKysuZXhwCkBAIC05MDQsNiAr OTA0LDExIEBAIHByb2MgY2hlY2tfdjNfdGFyZ2V0X25hbWVkbG9jYWxlIHsgYXJncyB9IHsKIAlw dXRzICRmICIgICAgc3RyY3B5KHJlc3VsdCwgbmFtZSk7IgogCXB1dHMgJGYgIiNpZiBkZWZpbmVk IF9fRnJlZUJTRF9fIHx8IGRlZmluZWQgX19EcmFnb25GbHlfXyB8fCBkZWZpbmVkIF9fTmV0QlNE X18iCiAJcHV0cyAkZiAiICAgIC8qIGZhbGwtdGhyb3VnaCAqLyIKKwlwdXRzICRmICIjZWxpZiBk ZWZpbmVkIF9BSVgiCisJcHV0cyAkZiAiICAgIGNoYXIgKnAgPSBzdHJzdHIocmVzdWx0LCBcIklT Tzg4NTktMTVcIik7IgorCXB1dHMgJGYgIiAgICBpZiAocCkgeyIKKwlwdXRzICRmICIgICAgICAg c3RyY3B5KHAsIFwiODg1OS0xNVwiKTsiCisJcHV0cyAkZiAiICAgIH0iCiAJcHV0cyAkZiAiI2Vs c2UiCiAJcHV0cyAkZiAiICAgIGlmIChzdHJzdHIocmVzdWx0LCBcIklTTzg4NTktMTVcIikpIHsi CiAJcHV0cyAkZiAiICAgICAgICBzdHJjYXQocmVzdWx0LCBcIkBldXJvXCIpOyIKZGlmZiAtLWdp dCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvdXRpbC90ZXN0c3VpdGVfaG9va3MuaCBiL2xpYnN0 ZGMrKy12My90ZXN0c3VpdGUvdXRpbC90ZXN0c3VpdGVfaG9va3MuaAppbmRleCBiNWUwNzY3MjEx YS4uYTYzMmY1ZjMxZjggMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvdXRpbC90 ZXN0c3VpdGVfaG9va3MuaAorKysgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlL3V0aWwvdGVzdHN1 aXRlX2hvb2tzLmgKQEAgLTc3LDYgKzc3LDkgQEAKIAogI2lmIGRlZmluZWQgX19GcmVlQlNEX18g fHwgZGVmaW5lZCBfX0RyYWdvbkZseV9fIHx8IGRlZmluZWQgX19OZXRCU0RfXwogIyBkZWZpbmUg SVNPXzg4NTkocGFydCxsYW5nVEVSUikgI2xhbmdURVJSICIuSVNPODg1OS0iICNwYXJ0CisjZWxp ZiBkZWZpbmVkIF9BSVgKKyMgZGVmaW5lIElTT184ODU5KHBhcnQsbGFuZ1RFUlIpICgocGFydCkg PT0gMTUgP1wKKyAgICAgICAgICNsYW5nVEVSUiAiLjg4NTktIiAjcGFydCA6ICNsYW5nVEVSUiAi LklTTzg4NTktIiAjcGFydCkKICNlbHNlCiAjIGRlZmluZSBJU09fODg1OShwYXJ0LGxhbmdURVJS KSAoKHBhcnQpID09IDE1ID9cCiAgICAgICAgICAjbGFuZ1RFUlIgIi5JU084ODU5LSIgI3BhcnQg IkBldXJvIiA6ICNsYW5nVEVSUiAiLklTTzg4NTktIiAjcGFydCkKLS0gCjIuMjUuMAoK --_002_PA4PR02MB66860C3B1FB54ADD17809B3FEAA10PA4PR02MB6686eurp_--