From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6CC69C5AD4C for ; Thu, 23 Nov 2023 06:32:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344781AbjKWGco (ORCPT ); Thu, 23 Nov 2023 01:32:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40422 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344704AbjKWGcm (ORCPT ); Thu, 23 Nov 2023 01:32:42 -0500 Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01on2074.outbound.protection.outlook.com [40.107.9.74]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D6F08A2; Wed, 22 Nov 2023 22:32:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Yqszvcolr1ZFyP0GgP/54rEEWuyuncwYlGtJSqT0EXpCLfnzyhWxl6Sqkv6iSX4jOiUINuz8wQynneQ0DFgciNRMpGvXHVucLmFekeQpftid3OHzvnPCRzCba4kDY0g9OOX8T6+VNudOlRJjcGL51J3ZU722RnRksRyk0pXCuwFn+5Ca3NgaQ2Be1YNW50u9ZP6l3FgvckOHqNj6X5FeuGd4KWLuSMF4FqXZn3EH3TQuqDGkpjJqVjDO3UELpuC2Emog1Rb1JaYdmc0o73JCoFUmtoMk2s64vZE/ZlDkTOFzhqMC8gNirv8sclD47B60kR9bSUacTHD2+ovRQbNDIA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LMyNRwyTeyX0RtVyxXvyfgvq5PcMnQuYRaP+w5aT1cs=; b=gw3ljeN3QDyZkpmCmOJwkbN8z3ipavpaD/B5/T6HE6+/YR32jxdR1YHGRkbUAu37pp4hPIUFIj66zJ9pgrkHXf73qU/a7NTIVMwY0DJ/hT5xl1yc7TQtEjBf7O3g5VXOk3t78UWW1++OaoCWc6Tgqqnna3nnGD/KJpKjfBQl4L5HSLJmYsB/1I/k3B4pz7/P3LoJDqA1fbiN12sv1H1VTsFPmj+vn5Tjd158VHjd5BOnYuCHnZHvGJ6/mjLT42YaIPKUcjxU+y/koJ2/UVi7pesX9DviflAMI88haVFO/xVqdGaXiNcJw2sOZDhvBwkh3Lq1V3Q3wFS9sK+M0kC7tw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=csgroup.eu; dmarc=pass action=none header.from=csgroup.eu; dkim=pass header.d=csgroup.eu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csgroup.eu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LMyNRwyTeyX0RtVyxXvyfgvq5PcMnQuYRaP+w5aT1cs=; b=U8gmcwNzaBoFJ6FIcVHU0IuPwyWyGLX5LeAVz3ZdarC/KIJIvawJMB8hUC6zDoViJRROuPrD4A01oEmiqKX431BE4CiHAh2jUAMN7CckpzUYepeA4xZhChCmDkXzjOjZ6Tsx/kmzEeA+Bd2XAwx0kOElQQ1aPb7xf2gnEsIYEZ1LSEjbZxSSJii/UwV1wnIxuF3tIJpDxZimSNLM0cAIpSq+C+s8cdnKI1KHnZxiaADNBpasZFpU/iH6ix6MuawPZiqaWOA3QuoKq4l7XKQOE6Dzs3G1m9Yl/zGoHW6D+Az7FMZLUvvEF0l7dhKpK3hDIWbD1KAxmezs2R7evLnHZQ== Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by PAZP264MB3413.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:120::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.13; Thu, 23 Nov 2023 06:32:43 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::5bfe:e2f2:6d89:8d97]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::5bfe:e2f2:6d89:8d97%3]) with mapi id 15.20.7046.012; Thu, 23 Nov 2023 06:32:43 +0000 From: Christophe Leroy To: Daniel Walker , Will Deacon , Rob Herring , Daniel Gimpelevich , Andrew Morton , Pratyush Brahma , Tomas Mudrunka , Sean Anderson , "x86@kernel.org" , "linux-mips@vger.kernel.org" , "linuxppc-dev@lists.ozlabs.org" CC: "xe-linux-external@cisco.com" , Ruslan Bilovol , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH 1/8] CMDLINE: add generic builtin command line Thread-Topic: [PATCH 1/8] CMDLINE: add generic builtin command line Thread-Index: AQHaE3aZwtsIWGQzb0qrp0HL29Cw2rCHhssA Date: Thu, 23 Nov 2023 06:32:43 +0000 Message-ID: References: <20231110013817.2378507-1-danielwa@cisco.com> <20231110013817.2378507-2-danielwa@cisco.com> In-Reply-To: <20231110013817.2378507-2-danielwa@cisco.com> Accept-Language: fr-FR, en-US Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla Thunderbird authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MRZP264MB2988:EE_|PAZP264MB3413:EE_ x-ms-office365-filtering-correlation-id: 2cdc7863-339a-42e1-1d74-08dbebedffcc x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: t6nDQ/Bb1/yeoqh4ZChV+fk6oXGZRe5fpIY+9/yySy+2WFdBbyz97XnAeyzI00jo/tREMDDjHW0RDadbbboqyQvS7Hy0oOTO95UBr3NaBTuocbnVUDYJkUK2lNvNP4RqGxzYUirPbl7vi2bw76GFb1D70Dyxwao8o9mgMzQa/fWmhFjVJytIXv/8hQd9p/Q8ZGCyMai5injOJKjBk97pdbQXp+ImM7TNM11CDz78LCm792l8aS49mJcosW9+U7eWTkWRpvKOqxe/hykbCzIPPZj3E2as89aVtfcVOmswmRiVnm4W7gq1PoTMHhklzfM6U5lYVe/PBX54fn71nNIDGg8Ey3UtUOVyR5Z961Ffgat9Bcr4pJh4IHIPSCLeB57ywqsFRyOJL6325MoYkXGtvhCcsKe/TOhPH8QB7Ra903wZEORZPMJiR7BAYwWgptuknRTW2aQ8wkU1vuecoCjw0xsNqRUYUFWDff1CfElflTcKPz0NjV0L1bMkN4zcxWbK0Nmi5fBOwoMHPiNqnHPcpleYvCTOY9SGdEKSU/lakT2l3kCmOVsaj64RS8krSuhXVT/8p/WSnYK3rn2lNf1GXFZ9rBxuJwjT+0kzEOufWI5a07dLD/bjutg0ceMMdMM6H7oKxi9/Jesyc8UwphI3EMNSxhBFsHRTK9IBTUdUAeoZgrG+NDqksHGKOxUxW59NljTaGu7pB4i9y384Uo2ziZdJwchnssWoq0eNyfG7/ZlfSIK/M23Y90duF9z4iDASX8DE4NTgy1lOJdmtMOVBiw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(136003)(376002)(346002)(366004)(396003)(39860400002)(230273577357003)(230173577357003)(230922051799003)(451199024)(186009)(64100799003)(1800799012)(2616005)(26005)(66574015)(6512007)(71200400001)(6506007)(83380400001)(7416002)(5660300002)(2906002)(30864003)(44832011)(41300700001)(76116006)(91956017)(110136005)(6486002)(478600001)(66946007)(4326008)(64756008)(8676002)(8936002)(54906003)(66446008)(66476007)(66556008)(316002)(122000001)(38100700002)(921008)(38070700009)(36756003)(31696002)(86362001)(31686004)(66899024)(41533002)(43740500002)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RkQ2aFlaT3RnUHFFSkczRFE0VDJ4NzY2RTF5ME4yTWNMd25sZG42V1BHTUxB?= =?utf-8?B?bGlwQytyU3h1eEIzRjFCSUxoTW82SENMZ1YwU01iWDBjalNVUE53dzZyV0lC?= =?utf-8?B?MzVJVnZiK3ZxL21FdEJCTlZ3Z2tPaVhPZU9tSGlwTCtmaGd1OWdJZmdPdkhE?= =?utf-8?B?WnlQaG1ObXpjMVZaaS93aHB2QUpMcDVLeDlscVFWZE5Wa1RSVkFNeE1mbnRW?= =?utf-8?B?N3JFdHBtMGp1c1BxdEQ2NTFYMTlVNnEzWlNFbXZHR0wxandOM2svbS9pMWlD?= =?utf-8?B?VVNFdS94S2FMOTUrdWI3bE5LWHhIYlcwdGlFc01WOXRPVklRaHdKbVN1emRS?= =?utf-8?B?S25pdFBWRGx6Nk42aTJERVhDVXpkWXpQc0RUS2wzaEJjaHUxbGZKUFdhaitx?= =?utf-8?B?NENjWGUvRFIvS2laTXgzckU4NFZ3aFFOSUs4QjJxV1BoMjZYSzZDL2cyOXJ6?= =?utf-8?B?YkZtK0hieGxMeWRiOXJtK2NnekFla2hFODdWOHZ5OXBLcy9RYXRFZ3JsbTN2?= =?utf-8?B?L1BRSks3NzBPZkN2eTlhclZUQ0dSb2hrNEMxRVBrTTdnUG4wYnZQK0Nab3Vz?= =?utf-8?B?US8wZzZ0YkpldnNZQ2ZxVTY1UFJ4dnhuVW1PU21pc29sM1krWlpJRWZLMGFN?= =?utf-8?B?RXI1NUpjazR1aENQN0xZd1NHZ1NPOUd0ZmJLcjJINU5IY2JJME1RWldYV3F1?= =?utf-8?B?L0hmaGR1a0NlUmliTTRhNEd4bE5hNzJINUZGWjNKVmxoTzZYRXM3K2UvcUt2?= =?utf-8?B?dk9CaTd0RjdDUVRVc1loaGJIMGZXV1QzbVROVmY1cjRKQm9vVHcyTGdLd29O?= =?utf-8?B?eVFxWGZ3TWpPTVVKN002R0ptOWRYdzVFYWhqdVdRdzdpTXRuU041NHgyVjhC?= =?utf-8?B?RTVBZy9FVitPVW5LT2VUOEVmMEk4blMxK1VocDMwcWxNSHQ0SHlWaWkzRHRi?= =?utf-8?B?MHdIU3VsVkF5clZybXhDRmxNd0pFOXlleXQza1ZKYnhvN0VyNzVyNFdENFcy?= =?utf-8?B?UHZzQlpPM3NCVk5YSzdkS2pLbEJoNnZUeVlrUFUyK2wrNXdZc0FJd1ljdDdF?= =?utf-8?B?bGh3SFR2Y0dQaTlMbmI2ZVA4U1B5NzRxSHpVR0hKYm9PKzhTWVEzaUMzVisr?= =?utf-8?B?cmNQcW5iSEJ4RXN5QXlCQjU4WGFzdGZWTGxkWE5VcjJoKzlCM0xzc0JqcU0x?= =?utf-8?B?MXJQZW14b2tSNHpHTUNVMjc5WklweGl0RG53bzBBRW5wcjVtMmNIUmxFbUFw?= =?utf-8?B?TVFnR1dpVmJ3V1NWMmhZcFBkYUNaVy81VTZocmN4UllYYU1DZ2V1RUhLTllo?= =?utf-8?B?RVNXMHFSWTExdzU5QWFXTGlnRUgvVms4bjZ0UEdpL0dqZWwweC9YZEdKam1R?= =?utf-8?B?Q2ltVGVnMkZWa01JQjBQNm1EbU1ldzRnY25kSE5ycXh6ZWY2cFErajd0TzdY?= =?utf-8?B?VytTbDArMDNDZmZxZm84MExrcHVjclJxbkZYd3UyQVp3NDBvZ0ZTK0paVVhn?= =?utf-8?B?cDhlRzhtRHdMMDRnTFZFZXJ6ZDk5d2hOdFhqS2p5cjh4U250U0VkQ3Fsdmc3?= =?utf-8?B?NEE4eEtmblArR3c4L2pmbUpOMVBGVFJDZXNiRnZJWll3UGxaNFR0SDl3TUxU?= =?utf-8?B?SjkzUkxQeHcrZUhYWVhqOEZtWFc5WXVlUTdwUzcvdUxhdzNPa2JPRGoxb3Rj?= =?utf-8?B?U1BlejJqcmZHblcxTEttb0hud0k2TGYvaU9BcEtNcGh3REtCbXBhYjFIdUpx?= =?utf-8?B?Q09DQXdDU0ZKWGNYOW1lTEJKdnlwSExJUlhCcE5MTEcycFRnQ2dTS2RWTUZy?= =?utf-8?B?RFBpZmN5VllzM2VhbnhadFRTdDFRZ3VqYytieEpYVjJ3UEVtWjFkdFo5cWY2?= =?utf-8?B?T1p5NFdCQmVVcDB4NlIvZFE0MEl2V0l3V3FNck1PZ0I4SkhYK2Z1Y280Z2h5?= =?utf-8?B?Y2t5cVFSLzhiVXFhNkdUd2lTWi83UGFJSWdTSVp6ajkwbnZQOHpwQjJ1SDd0?= =?utf-8?B?S2JyOHhYc3dCSFI5eW5XTjJzR2ZEUmljcXRCUjg0ZVI3dGVzY2hLWmx0SDRy?= =?utf-8?B?SzZCUUJNREcxYlVmZnVzdjZ1LzZOdy92aDA2ZFQ0cTJJbVFPRkR6b1JDZlVz?= =?utf-8?B?ODFOVlJTdW8vN250Mm5SMWZtNGQ3K0RRck5tdGhVRmhhU3crbk0zZFQ4cWY1?= =?utf-8?B?a3c9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <0EF37E826A98354287A8DCA5CC6BE596@FRAP264.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 2cdc7863-339a-42e1-1d74-08dbebedffcc X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2023 06:32:43.4149 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: kc2Ra6Y1f4FAXfInSN91DMVZx90re55DmRaU00y0OKh8IFvvPV5TJYP+P3NrZFByqK1eup+/5/8XRCbRv30lC7MgPorZ85oEpgFmD8QKC4c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAZP264MB3413 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCkxlIDEwLzExLzIwMjMgw6AgMDI6MzgsIERhbmllbCBXYWxrZXIgYSDDqWNyaXTCoDoNCj4g VGhpcyBjb2RlIGFsbG93cyBhcmNoaXRlY3R1cmVzIHRvIHVzZSBhIGdlbmVyaWMgYnVpbHRpbiBj b21tYW5kIGxpbmUuDQo+IFRoZSBzdGF0ZSBvZiB0aGUgYnVpbHRpbiBjb21tYW5kIGxpbmUgb3B0 aW9ucyBhY3Jvc3MgYXJjaGl0ZWN0dXJlIGlzDQo+IGRpdmVyc2UuIE1JUFMgYW5kIFg4NiBvbmNl IGhhcyBzaW1pbGFyIHN5c3RlbXMsIHRoZW4gbWlwcyBhZGRlZCBzb21lDQo+IG9wdGlvbnMgdG8g YWxsb3cgZXh0ZW5kaW5nIHRoZSBjb21tYW5kIGxpbmUuIFBvd2VycGMgZGlkIHNvbWV0aGluZw0K PiBzaW1pYXIgaW4gYWRkaW5nIHRoZSBhYmlsaXR5IHRvIGV4dGVuZC4gRXZlbiB3aXRoIG1pcHMg YW5kIHBvd2VycGMNCj4gZW5oYW5jZW1lbnQgdGhlIG5lZWRzIG9mIENpc2NvIGFyZSBub3QgbWV0 IG9uIHRoZXNlIHBsYXRmb3Jtcy4NCg0KV2hhdCBhcmUgdGhvc2UgbmVlZHMsIGNhbiB5b3UgbGlz dCB0aGVtIGluIHRoZSBjb3ZlciBsZXR0ZXIsIGFuZCANCnByb2JhYmx5IGFsc28gaW4gaGVyZSA/ DQpBcmUgdGhvc2UgbmVlZHMgc3BlY2lmaWMgdG8gQ2lzY28gb3IgY2FuIHRoZXkgaW50ZXJlc3Qg dGhlIGVudGlyZSBMaW51eCANCmNvbW11bml0eSA/DQoNCj4gDQo+IFRoZSBjb2RlIGluIHRoaXMg Y29tbWl0IHVuaWZpZXMgdGhlIGNvZGUgaW50byBhIGdlbmVyaWMNCj4gaGVhZGVyIGZpbGUgdW5k ZXIgdGhlIENPTkZJR19HRU5FUklDX0NNRExJTkUgb3B0aW9uLiBXaGVuIHRoaXMNCj4gb3B0aW9u IGlzIGVuYWJsZWQgdGhlIGFyY2hpdGVjdHVyZSBjYW4gY2FsbCB0aGUgY21kbGluZV9hZGRfYnVp bHRpbigpDQo+IHRvIGFkZCB0aGUgYnVpbHRpbiBjb21tYW5kIGxpbmUuIFRoZSBnZW5lcmljIGNv ZGUgcHJvdmlkZXMgYm90aA0KPiBhcHBlbmQgYW5kL29yIHByZXBlbmQgb3B0aW9ucyBhbmQgcHJv dmlkZXMgYSB3YXkgdG8gcmVkZWZpbmUgdGhlc2UNCj4gb3B0aW9uIGFmdGVyIHRoZSBrZXJuZWwg aXMgY29tcGlsZWQuDQoNCkV4cGxhaW4gaG93Lg0KDQo+IA0KPiBUaGlzIGNvZGUgYWxzbyBpbmNs dWRlcyB0ZXN0J3Mgd2hpY2ggYXJlIG1lYW50IHRvIGNvbmZpcm0NCj4gZnVuY3Rpb25hbGl0eS4N Cg0KV291bGQgYmUgYmV0dGVyIHRvIGhhdmUgdGVzdCBwYXJ0IGFzIGEgc2VwYXJhdGUgcGF0Y2gg aWYgcG9zc2libGUuDQoNCj4gDQo+IFRoaXMgdW5pZmllZCBpbXBsZW1lbnRhdGlvbiBvZmZlcnMg dGhlIHNhbWUgZnVuY3Rpb25hbGl0eSBuZWVkZWQgYnkNCj4gQ2lzY28gb24gYWxsIHBsYXRmb3Jt IHdoaWNoIHdlIGVuYWJsZSBpdCBvbi4NCg0KQ2lzY28gLi4uIGNpc2NvIC4uLiBjaXNjbyAuLi4N Cg0KPiANCj4gQ2M6IHhlLWxpbnV4LWV4dGVybmFsQGNpc2NvLmNvbQ0KPiBTaWduZWQtb2ZmLWJ5 OiBSdXNsYW4gQmlsb3ZvbCA8cmJpbG92b2xAY2lzY28uY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBE YW5pZWwgV2Fsa2VyIDxkYW5pZWx3YUBjaXNjby5jb20+DQo+IC0tLQ0KPiAgIGluY2x1ZGUvbGlu dXgvY21kbGluZS5oIHwgMTA2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgIGlu aXQvS2NvbmZpZyAgICAgICAgICAgIHwgIDc5ICsrKysrKysrKysrKysrKysrKysrKysrDQo+ICAg bGliL0tjb25maWcgICAgICAgICAgICAgfCAgIDQgKysNCj4gICBsaWIvTWFrZWZpbGUgICAgICAg ICAgICB8ICAgMyArDQo+ICAgbGliL2dlbmVyaWNfY21kbGluZS5TICAgfCAgNTMgKysrKysrKysr KysrKysrDQo+ICAgbGliL3Rlc3RfY21kbGluZTEuYyAgICAgfCAxMzkgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgIDYgZmlsZXMgY2hhbmdlZCwgMzg0IGluc2Vy dGlvbnMoKykNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9jbWRsaW5lLmgN Cj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2dlbmVyaWNfY21kbGluZS5TDQo+ICAgY3JlYXRl IG1vZGUgMTAwNjQ0IGxpYi90ZXN0X2NtZGxpbmUxLmMNCj4gDQo+IGRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L2NtZGxpbmUuaCBiL2luY2x1ZGUvbGludXgvY21kbGluZS5oDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uYTk0NzU4YTBmMjU3DQo+IC0tLSAv ZGV2L251bGwNCj4gKysrIGIvaW5jbHVkZS9saW51eC9jbWRsaW5lLmgNCj4gQEAgLTAsMCArMSwx MDYgQEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovDQo+ICsjaWZu ZGVmIF9MSU5VWF9DTURMSU5FX0gNCj4gKyNkZWZpbmUgX0xJTlVYX0NNRExJTkVfSA0KPiArLyoN Cj4gKyAqDQo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMDYsMjAyMS4gQ2lzY28gU3lzdGVtcywgSW5j Lg0KPiArICoNCj4gKyAqIEdlbmVyaWMgQXBwZW5kL1ByZXBlbmQgY21kbGluZSBzdXBwb3J0Lg0K PiArICovDQo+ICsNCj4gKw0KPiArI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+DQo+ICsjaW5jbHVk ZSA8bGludXgvY2FjaGUuaD4NCj4gKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4NCj4gKw0KPiArI2lm ZGVmIENPTkZJR19DTURMSU5FX0JPT0wNCj4gK2V4dGVybiBjaGFyIGNtZGxpbmVfcHJlcGVuZFtd Ow0KPiArZXh0ZXJuIGNoYXIgY21kbGluZV9hcHBlbmRbXTsNCj4gK2V4dGVybiBjaGFyIGNtZGxp bmVfdG1wW107DQo+ICsjZGVmaW5lIENNRExJTkVfUFJFUEVORCBjbWRsaW5lX3ByZXBlbmQNCj4g KyNkZWZpbmUgQ01ETElORV9BUFBFTkQgY21kbGluZV9hcHBlbmQNCj4gKyNkZWZpbmUgQ01ETElO RV9UTVAgY21kbGluZV90bXANCj4gKyNkZWZpbmUgQ01ETElORV9TVEFUSUNfUFJFUEVORCBDT05G SUdfQ01ETElORV9QUkVQRU5EDQo+ICsjZGVmaW5lIENNRExJTkVfU1RBVElDX0FQUEVORCBDT05G SUdfQ01ETElORV9BUFBFTkQNCg0KVG9vIG1hbnkgbWFjcm9zIHJlZHVjZXMgdGhlIHJlYWRhYmls aXR5IG9mIGNvZGUsIGF2b2lkIHRoZW0gd2hlbiBwb3NzaWJsZS4NCg0KPiArI2Vsc2UNCg0KRXhw bGFpbiB3aHkgdGhpcyBlbHNlIGxlZyBpcyBuZWVkZWQuIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0 byBzZXQgDQpkZWZhdWx0IHZhbHVlcyBkaXJlY3RseSBpbiBLY29uZmlnLg0KDQo+ICsjZGVmaW5l IENNRExJTkVfUFJFUEVORCAiIg0KPiArI2RlZmluZSBDTURMSU5FX0FQUEVORCAiIg0KPiArI2Rl ZmluZSBDTURMSU5FX1RNUCAiIg0KPiArI2RlZmluZSBDTURMSU5FX1NUQVRJQ19QUkVQRU5EICIi DQo+ICsjZGVmaW5lIENNRExJTkVfU1RBVElDX0FQUEVORCAiIg0KPiArI2VuZGlmDQo+ICsNCj4g KyNpZm5kZWYgQ01ETElORV9TVFJMQ0FUDQo+ICsjZGVmaW5lIENNRExJTkVfU1RSTENBVCBzdHJs Y2F0DQo+ICsjZW5kaWYNCj4gKw0KPiArI2lmbmRlZiBDTURMSU5FX1NUUkxFTg0KPiArI2RlZmlu ZSBDTURMSU5FX1NUUkxFTiBzdHJsZW4NCj4gKyNlbmRpZg0KPiArDQo+ICsvKg0KPiArICogVGhp cyBmdW5jdGlvbiB3aWxsIGFwcGVuZCBvciBwcmVwZW5kIGEgYnVpbHRpbiBjb21tYW5kIGxpbmUg dG8gdGhlIGNvbW1hbmQNCj4gKyAqIGxpbmUgcHJvdmlkZWQgYnkgdGhlIGJvb3Rsb2FkZXIuIEtj b25maWcgb3B0aW9ucyBjYW4gYmUgdXNlZCB0byBhbHRlcg0KPiArICogdGhlIGJlaGF2aW9yIG9m IHRoaXMgYnVpbHRpbiBjb21tYW5kIGxpbmUuDQo+ICsgKiBAZGVzdDogVGhlIGRlc3RpbmF0aW9u IG9mIHRoZSBmaW5hbCBhcHBlbmRlZC9wcmVwZW5kZWQgc3RyaW5nDQo+ICsgKiBAdG1wOiB0ZW1w b3Jhcnkgc3BhY2UgdXNlZCBmb3IgcHJlcGVuZGluZw0KPiArICogQHByZXBlbmQ6IHN0cmluZyB0 byBwcmVwZW5kIHRvIEBkZXN0DQo+ICsgKiBAYXBwZW5kOiBzdHJpbmcgdG8gYXBwZW5kIHRvIEBk ZXN0DQo+ICsgKiBAbGVuZ3RoOiB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIHN0cmluZ3MgYWJv dmUuDQo+ICsgKiBAY21kbGluZV9zdHJsZW46IHBvaW50IHRvIGEgY29tcGF0aWJsZSBzdHJsZW4N Cg0KUmVtb3ZlIHRoYXQgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudCBhbmQgdXNlIG1hY3Jvcy4N Cg0KPiArICogQGNtZGxpbmVfc3RybGNhdDogcG9pbnQgdG8gYSBjb21wYXRpYmxlIHN0cmxjYXQN Cg0KU2FtZQ0KDQo+ICsgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGVuIHRoZSBidWls dGluIGNvbW1hbmQgbGluZSB3YXMgY29waWVkIHN1Y2Nlc3NmdWxseQ0KPiArICogYW5kIGZhbHNl IHdoZW4gdGhlcmUgd2FzIG5vdCBlbm91Z2ggcm9vbSB0byBjb3B5IGFsbCBwYXJ0cyBvZiB0aGUg Y29tbWFuZCBsaW5lLg0KDQpXaGF0IGhhcHBlbnMgd2hlbiBpdCByZXR1cm5zIGZhbHNlLCBpcyBp dCBwYXJ0aWFsbHkgY29waWVkIG9yIG5vdGhpbmcgaXMgDQpkb25lID8NCg0KPiArICovDQo+ICtz dGF0aWMgaW5saW5lIGJvb2wNCj4gK19fY21kbGluZV9hZGRfYnVpbHRpbigNCj4gKwkJY2hhciAq ZGVzdCwNCj4gKwkJY2hhciAqdG1wLA0KPiArCQljaGFyICpwcmVwZW5kLA0KPiArCQljaGFyICph cHBlbmQsDQo+ICsJCXVuc2lnbmVkIGxvbmcgbGVuZ3RoLA0KPiArCQlzaXplX3QgKCpjbWRsaW5l X3N0cmxlbikoY29uc3QgY2hhciAqcyksDQo+ICsJCXNpemVfdCAoKmNtZGxpbmVfc3RybGNhdCko Y2hhciAqZGVzdCwgY29uc3QgY2hhciAqc3JjLCBzaXplX3QgY291bnQpKQ0KDQpUaGlzIGNtZGxp bmUgZmVhdHVyZSBpcyB1c2VkIGluIGVhcmx5IGRlZXAgcGFydHMgb2YgYXJjaGl0ZWN0dXJlcywg c28gaW4gDQphIHdheSBtb3JlIG9yIGxlc3MgY29tcGFyYWJsZSB0byBsaW51eC1tbS4gQXBwcm9h Y2ggd2l0aCBsaW51eC1tbSBoYXMgDQphbHdheXMgYmVlbiB0byBkZWZpbmUgbWFjcm9zIHRoYXQg Y2FuIGJlIG92ZXJyaWRlbiBieSBhcmNoaXRlY3R1cmVzLiANClBsZWFzZSBkbyB0aGUgc2FtZSBh bmQgZGVmaW5lIGNtZGxpbmVfc3RybGVuKCkgYW5kIGNtZGxpbmVfc3RybGNhdCgpIGFzIA0KbWFj cm9zIHRoYXQgY2FuIGJlIG92ZXJyaWRlbiBieSBhcmNoaXRlY3R1cmVzIGluc3RlYWQgb2YgcGFz c2luZyANCmZ1bmN0aW9uIHBvaW50ZXJzLiBBbmQga2VlcCBtYWNybyBuYW1lcyBhcyBsb3dlciBj YXNlIGZvciB0aGlzIHR5cGUgb2YgDQptYWNyb3MuDQoNCj4gK3sNCj4gKwlzaXplX3QgdG90YWxf bGVuZ3RoID0gMCwgdG1wX2xlbmd0aDsNCg0KVHJ5IHRvIHVzZSBzaG9ydGVyIG5hbWVzIGZvciBs b2NhbCB2YXJpYWJsZXMsIHNlZSBrZXJuZWwgY29keWluZyBzdHlsZS4NCg0KPiArDQo+ICsJaWYg KCFJU19FTkFCTEVEKENPTkZJR19HRU5FUklDX0NNRExJTkUpKQ0KPiArCQlyZXR1cm4gdHJ1ZTsN Cj4gKw0KPiArCWlmICghSVNfRU5BQkxFRChDT05GSUdfQ01ETElORV9CT09MKSkNCj4gKwkJcmV0 dXJuIHRydWU7DQo+ICsNCj4gKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfQ01ETElORV9PVkVSUklE RSkpDQo+ICsJCWRlc3RbMF0gPSAnXDAnOw0KPiArCWVsc2UNCj4gKwkJdG90YWxfbGVuZ3RoICs9 IGNtZGxpbmVfc3RybGVuKGRlc3QpOw0KDQpBbGwgdGhvc2UgS2NvbmZpZyBvcHRpb25zIHNob3Vs ZCBiZSBleHBsYWluZWQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLCANCnRoYXQgd291bGQgaGVscCB1 bmRlcnN0YW5kaW5nIHRoZSBwYXRjaC4NCg0KSW1wYWN0IG9uIGV4aXN0aW5nIGRlZmNvbmZpZ3Mg c2hvdWxkIGFsc28gYmUgdGFrZW4gY2FyZSBvZiBhbmQgbWluaW1pc2VkLg0KDQo+ICsNCj4gKwl0 bXBfbGVuZ3RoID0gY21kbGluZV9zdHJsZW4oYXBwZW5kKTsNCj4gKwlpZiAodG1wX2xlbmd0aCA+ IDApIHsNCj4gKwkJY21kbGluZV9zdHJsY2F0KGRlc3QsIGFwcGVuZCwgbGVuZ3RoKTsNCj4gKwkJ dG90YWxfbGVuZ3RoICs9IHRtcF9sZW5ndGg7DQo+ICsJfQ0KPiArDQo+ICsJdG1wX2xlbmd0aCA9 IGNtZGxpbmVfc3RybGVuKHByZXBlbmQpOw0KPiArCWlmICh0bXBfbGVuZ3RoID4gMCkgew0KPiAr CQljbWRsaW5lX3N0cmxjYXQodG1wLCBwcmVwZW5kLCBsZW5ndGgpOw0KPiArCQljbWRsaW5lX3N0 cmxjYXQodG1wLCBkZXN0LCBsZW5ndGgpOw0KPiArCQlkZXN0WzBdID0gJ1wwJzsNCj4gKwkJY21k bGluZV9zdHJsY2F0KGRlc3QsIHRtcCwgbGVuZ3RoKTsNCj4gKwkJdG90YWxfbGVuZ3RoICs9IHRt cF9sZW5ndGg7DQo+ICsJfQ0KPiArDQo+ICsJdG1wWzBdID0gJ1wwJzsNCg0KV2hhdCdzIHRoZSBw dXJwb3NlIG9mIHNldHRpbmcgdG1wWzBdIHRvIDAgPw0KDQo+ICsNCj4gKwlpZiAodG90YWxfbGVu Z3RoID4gbGVuZ3RoKQ0KPiArCQlyZXR1cm4gZmFsc2U7DQo+ICsNCj4gKwlyZXR1cm4gdHJ1ZTsN Cg0KQ2FuIGJlIHdyaXRlbiBhczoNCg0KCXJldHVybiB0b3RhbF9sZW5ndGggPD0gbGVuZ3RoOw0K DQo+ICt9DQo+ICsNCj4gKyNkZWZpbmUgY21kbGluZV9hZGRfYnVpbHRpbihkZXN0KSBcDQo+ICsJ X19jbWRsaW5lX2FkZF9idWlsdGluKGRlc3QsIENNRExJTkVfVE1QLCBDTURMSU5FX1BSRVBFTkQs IENNRExJTkVfQVBQRU5ELCBDT01NQU5EX0xJTkVfU0laRSwgQ01ETElORV9TVFJMRU4sIENNRExJ TkVfU1RSTENBVCkNCj4gKw0KPiArI2RlZmluZSBjbWRsaW5lX2dldF9zdGF0aWNfYnVpbHRpbihk ZXN0KSBcDQo+ICsJKENNRExJTkVfU1RBVElDX1BSRVBFTkQgQ01ETElORV9TVEFUSUNfQVBQRU5E KQ0KPiArI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9pbml0L0tjb25maWcgYi9pbml0L0tjb25maWcN Cj4gaW5kZXggNmQzNTcyOGI5NGIyLi43MDNlZWQ4OGQxNDAgMTAwNjQ0DQo+IC0tLSBhL2luaXQv S2NvbmZpZw0KPiArKysgYi9pbml0L0tjb25maWcNCj4gQEAgLTE5MjIsNiArMTkyMiw4NSBAQCBj b25maWcgVFJBQ0VQT0lOVFMNCj4gICANCj4gICBzb3VyY2UgImtlcm5lbC9LY29uZmlnLmtleGVj Ig0KPiAgIA0KPiArY29uZmlnIEdFTkVSSUNfQ01ETElORQ0KPiArCWJvb2wNCj4gKw0KPiAraWYg R0VORVJJQ19DTURMSU5FDQo+ICsNCj4gK2NvbmZpZyBDTURMSU5FX0JPT0wNCj4gKwlib29sICJC dWlsdC1pbiBrZXJuZWwgY29tbWFuZCBsaW5lIg0KPiArCWhlbHANCj4gKwkgIEFsbG93IGZvciBz cGVjaWZ5aW5nIGJvb3QgYXJndW1lbnRzIHRvIHRoZSBrZXJuZWwgYXQNCj4gKwkgIGJ1aWxkIHRp bWUuICBPbiBzb21lIHN5c3RlbXMgKGUuZy4gZW1iZWRkZWQgb25lcyksIGl0IGlzDQo+ICsJICBu ZWNlc3Nhcnkgb3IgY29udmVuaWVudCB0byBwcm92aWRlIHNvbWUgb3IgYWxsIG9mIHRoZQ0KPiAr CSAga2VybmVsIGJvb3QgYXJndW1lbnRzIHdpdGggdGhlIGtlcm5lbCBpdHNlbGYgKHRoYXQgaXMs DQo+ICsJICB0byBub3QgcmVseSBvbiB0aGUgYm9vdCBsb2FkZXIgdG8gcHJvdmlkZSB0aGVtLikN Cj4gKw0KPiArCSAgVG8gY29tcGlsZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGludG8gdGhlIGtl cm5lbCwNCj4gKwkgIHNldCB0aGlzIG9wdGlvbiB0byAnWScsIHRoZW4gZmlsbCBpbiB0aGUNCj4g KwkgIHRoZSBib290IGFyZ3VtZW50cyBpbiBDT05GSUdfQ01ETElORS4NCj4gKw0KPiArCSAgU3lz dGVtcyB3aXRoIGZ1bGx5IGZ1bmN0aW9uYWwgYm9vdCBsb2FkZXJzIChpLmUuIG5vbi1lbWJlZGRl ZCkNCj4gKwkgIHNob3VsZCBsZWF2ZSB0aGlzIG9wdGlvbiBzZXQgdG8gJ04nLg0KPiArDQo+ICtj b25maWcgQ01ETElORV9BUFBFTkQNCj4gKwlzdHJpbmcgIkJ1aWx0LWluIGtlcm5lbCBjb21tYW5k IHN0cmluZyBhcHBlbmQiDQo+ICsJZGVwZW5kcyBvbiBDTURMSU5FX0JPT0wNCj4gKwlkZWZhdWx0 ICIiDQo+ICsJaGVscA0KPiArCSAgRW50ZXIgYXJndW1lbnRzIGhlcmUgdGhhdCBzaG91bGQgYmUg Y29tcGlsZWQgaW50byB0aGUga2VybmVsDQo+ICsJICBpbWFnZSBhbmQgdXNlZCBhdCBib290IHRp bWUuICBJZiB0aGUgYm9vdCBsb2FkZXIgcHJvdmlkZXMgYQ0KPiArCSAgY29tbWFuZCBsaW5lIGF0 IGJvb3QgdGltZSwgdGhpcyBzdHJpbmcgaXMgYXBwZW5kZWQgdG8gaXQgdG8NCj4gKwkgIGZvcm0g dGhlIGZ1bGwga2VybmVsIGNvbW1hbmQgbGluZSwgd2hlbiB0aGUgc3lzdGVtIGJvb3RzLg0KPiAr DQo+ICsJICBIb3dldmVyLCB5b3UgY2FuIHVzZSB0aGUgQ09ORklHX0NNRExJTkVfT1ZFUlJJREUg b3B0aW9uIHRvDQo+ICsJICBjaGFuZ2UgdGhpcyBiZWhhdmlvci4NCj4gKw0KPiArCSAgSW4gbW9z dCBjYXNlcywgdGhlIGNvbW1hbmQgbGluZSAod2hldGhlciBidWlsdC1pbiBvciBwcm92aWRlZA0K PiArCSAgYnkgdGhlIGJvb3QgbG9hZGVyKSBzaG91bGQgc3BlY2lmeSB0aGUgZGV2aWNlIGZvciB0 aGUgcm9vdA0KPiArCSAgZmlsZSBzeXN0ZW0uDQo+ICsNCj4gK2NvbmZpZyBDTURMSU5FX1BSRVBF TkQNCj4gKwlzdHJpbmcgIkJ1aWx0LWluIGtlcm5lbCBjb21tYW5kIHN0cmluZyBwcmVwZW5kIg0K PiArCWRlcGVuZHMgb24gQ01ETElORV9CT09MDQo+ICsJZGVmYXVsdCAiIg0KPiArCWhlbHANCj4g KwkgIEVudGVyIGFyZ3VtZW50cyBoZXJlIHRoYXQgc2hvdWxkIGJlIGNvbXBpbGVkIGludG8gdGhl IGtlcm5lbA0KPiArCSAgaW1hZ2UgYW5kIHVzZWQgYXQgYm9vdCB0aW1lLiAgSWYgdGhlIGJvb3Qg bG9hZGVyIHByb3ZpZGVzIGENCj4gKwkgIGNvbW1hbmQgbGluZSBhdCBib290IHRpbWUsIHRoaXMg c3RyaW5nIGlzIHByZXBlbmRlZCB0byBpdCB0bw0KPiArCSAgZm9ybSB0aGUgZnVsbCBrZXJuZWwg Y29tbWFuZCBsaW5lLCB3aGVuIHRoZSBzeXN0ZW0gYm9vdHMuDQo+ICsNCj4gKwkgIEhvd2V2ZXIs IHlvdSBjYW4gdXNlIHRoZSBDT05GSUdfQ01ETElORV9PVkVSUklERSBvcHRpb24gdG8NCj4gKwkg IGNoYW5nZSB0aGlzIGJlaGF2aW9yLg0KPiArDQo+ICsJICBJbiBtb3N0IGNhc2VzLCB0aGUgY29t bWFuZCBsaW5lICh3aGV0aGVyIGJ1aWx0LWluIG9yIHByb3ZpZGVkDQo+ICsJICBieSB0aGUgYm9v dCBsb2FkZXIpIHNob3VsZCBzcGVjaWZ5IHRoZSBkZXZpY2UgZm9yIHRoZSByb290DQo+ICsJICBm aWxlIHN5c3RlbS4NCj4gKw0KPiArY29uZmlnIENNRExJTkVfRVhUUkENCj4gKwlib29sICJSZXNl cnZlIG1vcmUgc3BhY2UgZm9yIGluc2VydGluZyBwcmVwZW5kIGFuZCBhcHBlbmQgd2l0aG91dCBy ZWNvbXBpbGluZyINCj4gKwlkZXBlbmRzIG9uIENNRExJTkVfQk9PTA0KPiArCXNlbGVjdCBTWVNU RU1fRVhUUkFfQ0VSVElGSUNBVEUNCj4gKwloZWxwDQo+ICsJICBJZiBzZXQsIHNwYWNlIGZvciBh biBhcHBlbmQgYW5kIHByZXBlbmQgd2lsbCBiZSByZXNlcnZlZCBpbiB0aGUga2VybmVsDQo+ICsJ ICBpbWFnZS4gVGhpcyBhbGxvd3MgdXBkYXRpbmcgb3IgY2hhbmdpbmcgdGhlIGFwcGVuZCBhbmQg cHJlcGVuZCB0byBhIGxhcmdlDQo+ICsJICBzdHJpbmcgdGhlbiB0aGUga2VybmVsIHdhcyBjb21w aWxlZCBmb3Igd2l0aG91dCByZWNvbXBpbGluZyB0aGUga2VybmVsLg0KDQpzL2xhcmdlL2xhcmdl cg0Kcy90aGVuL3RoYW4NCg0KPiArDQo+ICsJICBUaGUgbWF4aW11bSBzaXplIGlzIHRoZSBjb21t YW5kIGxpbmUgc2l6ZSBmb3IgZWFjaCBwcmVwZW5kIGFuZCBhcHBlbmQuDQo+ICsNCj4gK2NvbmZp ZyBDTURMSU5FX09WRVJSSURFDQo+ICsJYm9vbCAiQnVpbHQtaW4gY29tbWFuZCBsaW5lIG92ZXJy aWRlcyBib290IGxvYWRlciBhcmd1bWVudHMiDQo+ICsJZGVwZW5kcyBvbiBDTURMSU5FX0JPT0wN Cj4gKwloZWxwDQo+ICsJICBTZXQgdGhpcyBvcHRpb24gdG8gJ1knIHRvIGhhdmUgdGhlIGtlcm5l bCBpZ25vcmUgdGhlIGJvb3QgbG9hZGVyDQo+ICsJICBjb21tYW5kIGxpbmUsIGFuZCB1c2UgT05M WSB0aGUgYnVpbHQtaW4gY29tbWFuZCBsaW5lLiBJbiB0aGlzIGNhc2UNCj4gKwkgIGFwcGVuZCBh bmQgcHJlcGVuZCBzdHJpbmdzIGFyZSBjb25jYXRlbmF0ZWQgdG8gZm9ybSB0aGUgZnVsbA0KPiAr CSAgY29tbWFuZCBsaW5lLg0KPiArDQo+ICsJICBUaGlzIGlzIHVzZWQgdG8gd29yayBhcm91bmQg YnJva2VuIGJvb3QgbG9hZGVycy4gIFRoaXMgc2hvdWxkDQo+ICsJICBiZSBzZXQgdG8gJ04nIHVu ZGVyIG5vcm1hbCBjb25kaXRpb25zLg0KPiArZW5kaWYNCg0KQW4gYW5hbHlzaXMgb2Ygd2hhdCBl eGlzdHMgb24gZWFjaCBleGlzdGluZyBhcmNoaXRlY3R1cmUgc2hvdWxkIA0KZGVtb25zdHJhdGUg dGhhdCB5b3UgaGF2ZSBkZWZpbmVkIGFsbCBuZWVkZWQgb3B0aW9ucy4NCg0KPiArDQo+ICAgZW5k bWVudQkJIyBHZW5lcmFsIHNldHVwDQo+ICAgDQo+ICAgc291cmNlICJhcmNoL0tjb25maWciDQo+ IGRpZmYgLS1naXQgYS9saWIvS2NvbmZpZyBiL2xpYi9LY29uZmlnDQo+IGluZGV4IGM2ODZmNGFk YzEyNC4uZDUyMGYxYWE3YzMyIDEwMDY0NA0KPiAtLS0gYS9saWIvS2NvbmZpZw0KPiArKysgYi9s aWIvS2NvbmZpZw0KPiBAQCAtNzI5LDYgKzcyOSwxMCBAQCBjb25maWcgUEFSTUFODQo+ICAgY29u ZmlnIE9CSkFHRw0KPiAgIAl0cmlzdGF0ZSAib2JqYWdnIiBpZiBDT01QSUxFX1RFU1QNCj4gICAN Cj4gK2NvbmZpZyBURVNUX0NNRExJTkUNCj4gKwlkZXBlbmRzIG9uIENNRExJTkVfQk9PTCAmJiAh Q01ETElORV9PVkVSUklERQ0KPiArCXRyaXN0YXRlICJUZXN0IGdlbmVyaWMgY29tbWFuZCBsaW5l IGhhbmRsaW5nIg0KPiArDQoNClB1dCB0aGUgdGVzdCBwYXJ0IGluIGEgc2Vjb25kIHBhdGNoLg0K DQo+ICAgZW5kbWVudQ0KPiAgIA0KPiAgIGNvbmZpZyBHRU5FUklDX0lPUkVNQVANCj4gZGlmZiAt LWdpdCBhL2xpYi9NYWtlZmlsZSBiL2xpYi9NYWtlZmlsZQ0KPiBpbmRleCA3NDAxMDliNmUyYzgu LmFhN2IxNGEwY2VkNyAxMDA2NDQNCj4gLS0tIGEvbGliL01ha2VmaWxlDQo+ICsrKyBiL2xpYi9N YWtlZmlsZQ0KPiBAQCAtNDM4LDMgKzQzOCw2IEBAICQob2JqKS8kKFRFU1RfRk9SVElGWV9MT0cp OiAkKGFkZHByZWZpeCAkKG9iaikvLCAkKFRFU1RfRk9SVElGWV9MT0dTKSkgRk9SQ0UNCj4gICBp ZmVxICgkKENPTkZJR19GT1JUSUZZX1NPVVJDRSkseSkNCj4gICAkKG9iaikvc3RyaW5nLm86ICQo b2JqKS8kKFRFU1RfRk9SVElGWV9MT0cpDQo+ICAgZW5kaWYNCj4gKw0KPiArb2JqLSQoQ09ORklH X1RFU1RfQ01ETElORSkgKz0gdGVzdF9jbWRsaW5lMS5vDQo+ICtvYmotJChDT05GSUdfQ01ETElO RV9CT09MKSAgICAgKz0gZ2VuZXJpY19jbWRsaW5lLm8NCj4gZGlmZiAtLWdpdCBhL2xpYi9nZW5l cmljX2NtZGxpbmUuUyBiL2xpYi9nZW5lcmljX2NtZGxpbmUuUw0KPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjIyMzc2M2Y5ZWViNg0KPiAtLS0gL2Rldi9udWxs DQo+ICsrKyBiL2xpYi9nZW5lcmljX2NtZGxpbmUuUw0KPiBAQCAtMCwwICsxLDUzIEBADQo+ICsv KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLw0KPiArI2luY2x1ZGUgPGxpbnV4 L2V4cG9ydC5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4NCj4gKw0KPiArI2luY2x1ZGUg PGFzbS9zZXR1cC5oPg0KPiArDQo+ICsgICAgICAgIF9fSU5JVERBVEENCj4gKw0KPiArICAgICAg IC5hbGlnbiA4DQo+ICsgICAgICAgLmdsb2JhbCBjbWRsaW5lX3ByZXBlbmQNCj4gK2NtZGxpbmVf cHJlcGVuZDoNCj4gKyAgICAgICAuaWZuYyBDT05GSUdfQ01ETElORV9QUkVQRU5ELCIiDQo+ICsg ICAgICAgLmFzY2lpIENPTkZJR19DTURMSU5FX1BSRVBFTkQNCj4gKyAgICAgICAuc3RyaW5nICIg Ig0KPiArICAgICAgIC5lbHNlDQo+ICsgICAgICAgLmJ5dGUgMHgwDQo+ICsgICAgICAgLmVuZGlm DQo+ICsjaWZkZWYgQ09ORklHX0NNRExJTkVfRVhUUkENCj4gKyAgICAgICAuc3BhY2UgQ09NTUFO RF9MSU5FX1NJWkUgLSAoLi1jbWRsaW5lX3ByZXBlbmQpDQo+ICsgICAgICAgLnNpemUgY21kbGlu ZV9wcmVwZW5kLCBDT01NQU5EX0xJTkVfU0laRQ0KPiArI2VuZGlmIC8qIENPTkZJR19DTURMSU5F X0VYVFJBICovDQo+ICsNCj4gK2NtZGxpbmVfcHJlcGVuZF9lbmQ6DQo+ICsgICAgICAgLnNpemUg Y21kbGluZV9wcmVwZW5kLCAoY21kbGluZV9wcmVwZW5kX2VuZCAtIGNtZGxpbmVfcHJlcGVuZCkN Cj4gKw0KPiArICAgICAgIC5hbGlnbiA4DQo+ICsgICAgICAgLmdsb2JhbCBjbWRsaW5lX3RtcA0K PiArY21kbGluZV90bXA6DQo+ICsgICAgICAgLmlmbmMgQ09ORklHX0NNRExJTkVfUFJFUEVORCwi Ig0KPiArICAgICAgIC5zaXplIGNtZGxpbmVfdG1wLCBDT01NQU5EX0xJTkVfU0laRQ0KPiArICAg ICAgIC5zcGFjZSBDT01NQU5EX0xJTkVfU0laRQ0KPiArICAgICAgIC5lbHNlDQo+ICsgICAgICAg LmJ5dGUgMHgwDQo+ICsgICAgICAgLmVuZGlmDQo+ICtjbWRsaW5lX3RtcF9lbmQ6DQo+ICsgICAg ICAgLnNpemUgY21kbGluZV90bXAsIChjbWRsaW5lX3RtcF9lbmQgLSBjbWRsaW5lX3RtcCkNCj4g Kw0KPiArICAgICAgIC5hbGlnbiA4DQo+ICsgICAgICAgLmdsb2JhbCBjbWRsaW5lX2FwcGVuZA0K PiArICAgICAgIC5zaXplIGNtZGxpbmVfYXBwZW5kLCBDT01NQU5EX0xJTkVfU0laRQ0KPiArY21k bGluZV9hcHBlbmQ6DQo+ICsgICAgICAgLmlmbmMgQ09ORklHX0NNRExJTkVfQVBQRU5ELCIiDQo+ ICsgICAgICAgLmFzY2lpICIgIg0KPiArICAgICAgIC5zdHJpbmcgQ09ORklHX0NNRExJTkVfQVBQ RU5EDQo+ICsgICAgICAgLmVsc2UNCj4gKyAgICAgICAuYnl0ZSAweDANCj4gKyAgICAgICAuZW5k aWYNCj4gKyNpZmRlZiBDT05GSUdfQ01ETElORV9FWFRSQQ0KPiArICAgICAgIC5zcGFjZSBDT01N QU5EX0xJTkVfU0laRSAtICguLWNtZGxpbmVfYXBwZW5kKQ0KPiArI2VuZGlmIC8qIENPTkZJR19D TURMSU5FX0VYVFJBICovDQo+ICtjbWRsaW5lX2FwcGVuZF9lbmQ6DQo+ICsgICAgICAgLnNpemUg Y21kbGluZV9hcHBlbmQsIChjbWRsaW5lX2FwcGVuZF9lbmQgLSBjbWRsaW5lX2FwcGVuZCkNCj4g Kw0KDQpDYW4gYWxsIHRoaXMgYmUgZG9uZSBpbiBhIEMgZmlsZSwgcG9zc2libHkgd2l0aCBpbmxp bmUgYXNzZW1ibHkgaWYgDQpyZXF1aXJlZCwgaW5zdGVhZCBvZiBhbiBhc3NlbWJseSBmaWxlID8N Cg0KPiBkaWZmIC0tZ2l0IGEvbGliL3Rlc3RfY21kbGluZTEuYyBiL2xpYi90ZXN0X2NtZGxpbmUx LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi5iY2FmZmNj MDI0ZTQNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9saWIvdGVzdF9jbWRsaW5lMS5jDQo+IEBA IC0wLDAgKzEsMTM5IEBADQo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1v bmx5DQoNCldoeSAyLjAtb25seSA/IE5vdCBzdXJlIGl0IGlzIHRoZSBwcmVmZXJyZWQgbGljZW5j ZSBmb3IgbmV3IGZpbGVzIHVubGVzcyANCnRoZXkgYXJlIHRpZWQgdG8gc29tZXRoaW5nIGFscmVh ZHkgZXhpc3RpbmcuDQoNCj4gKw0KPiArI2RlZmluZSBwcl9mbXQoZm10KSBLQlVJTERfTU9ETkFN RSAiOiAiIGZtdA0KPiArDQo+ICsjaW5jbHVkZSA8bGludXgvYml0bWFwLmg+DQo+ICsjaW5jbHVk ZSA8bGludXgvaW5pdC5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KPiArI2luY2x1 ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L3ByaW50ay5oPg0KPiArI2lu Y2x1ZGUgPGxpbnV4L3NsYWIuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4NCj4gKyNp bmNsdWRlIDxsaW51eC9jbWRsaW5lLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPg0K PiArDQo+ICsjaW5jbHVkZSAiLi4vdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3NlbGZ0ZXN0X21v ZHVsZS5oIg0KDQpJcyBpdCBjb21tb24gcHJhY3RpY2UgdG8gaW5jbHVkZSB0b29scy90ZXN0aW5n LyBzdHVmZiBpbnRvIGtlcm5lbCA/DQoNCj4gKw0KPiArS1NUTV9NT0RVTEVfR0xPQkFMUygpOw0K PiArDQo+ICtjaGFyIHRlc3QxX3ByZXBlbmRbXSA9ICJwcmVwZW5kICI7DQo+ICtjaGFyIHRlc3Qx X2FwcGVuZFtdID0gIiBhcHBlbmQiOw0KPiArY2hhciB0ZXN0MV9ib290bG9hZGVyX2FyZ3NbXSA9 ICJjb25zb2xlPXR0eVMwIGxvZ19sZXZlbD0zIjsNCj4gK2NoYXIgdGVzdDFfcmVzdWx0W10gPSAi cHJlcGVuZCBjb25zb2xlPXR0eVMwIGxvZ19sZXZlbD0zIGFwcGVuZCI7DQo+ICsNCj4gK2NoYXIg dGVzdDJfYXBwZW5kW10gPSAiIGFwcGVuZCI7DQo+ICtjaGFyIHRlc3QyX2Jvb3Rsb2FkZXJfYXJn c1tdID0gImNvbnNvbGU9dHR5UzAgbG9nX2xldmVsPTMiOw0KPiArY2hhciB0ZXN0Ml9yZXN1bHRb XSA9ICJjb25zb2xlPXR0eVMwIGxvZ19sZXZlbD0zIGFwcGVuZCI7DQo+ICsNCj4gK2NoYXIgdGVz dDNfcHJlcGVuZFtdID0gInByZXBlbmQgIjsNCj4gK2NoYXIgdGVzdDNfYm9vdGxvYWRlcl9hcmdz W10gPSAiY29uc29sZT10dHlTMCBsb2dfbGV2ZWw9MyI7DQo+ICtjaGFyIHRlc3QzX3Jlc3VsdFtd ID0gInByZXBlbmQgY29uc29sZT10dHlTMCBsb2dfbGV2ZWw9MyI7DQo+ICsNCj4gK2NoYXIgdGVz dDRfYm9vdGxvYWRlcl9hcmdzW10gPSAiY29uc29sZT10dHlTMCBsb2dfbGV2ZWw9MyI7DQo+ICtj aGFyIHRlc3Q0X3Jlc3VsdFtdID0gImNvbnNvbGU9dHR5UzAgbG9nX2xldmVsPTMiOw0KPiArDQo+ ICtjaGFyIHRlc3Q1X3ByZXBlbmRbXSA9ICJwcmVwZW5kICI7DQo+ICtjaGFyIHRlc3Q1X2FwcGVu ZFtdID0gIiBhcHBlbmQiOw0KPiArc3RhdGljIGNoYXIgdGVzdDVfYm9vdGxvYWRlcl9hcmdzW10g PQ0KPiArIjAwMDAwMDAwMDAwMDAwIDAxMTExMTExMTExMTExMSAwMjIyMjIyMjIyMjIyMjIyIDAz MzMzMzMzMzMzMzMzMyAiDQo+ICsiMTAwMDAwMDAwMDAwMDAgMTExMTExMTExMTExMTExIDEyMjIy MjIyMjIyMjIyMjIgMTMzMzMzMzMzMzMzMzMzICINCj4gKyIyMDAwMDAwMDAwMDAwMCAyMTExMTEx MTExMTExMTEgMjIyMjIyMjIyMjIyMjIyMiAyMzMzMzMzMzMzMzMzMzMgIg0KPiArIjMwMDAwMDAw MDAwMDAwIDMxMTExMTExMTExMTExMSAzMjIyMjIyMjIyMjIyMjIyIDMzMzMzMzMzMzMzMzMzMyAi DQo+ICsiNDAwMDAwMDAwMDAwMDAgNDExMTExMTExMTExMTExIDQyMjIyMjIyMjIyMjIyMjIgNDMz MzMzMzMzMzMzMzMzICINCj4gKyI1MDAwMDAwMDAwMDAwMCA1MTExMTExMTExMTExMTEgNTIyMjIy MjIyMjIyMjIyMiA1MzMzMzMzMzMzMzMzMzMgIg0KPiArIjYwMDAwMDAwMDAwMDAwIDYxMTExMTEx MTExMTExMSA2MjIyMjIyMjIyMjIyMjIyIDYzMzMzMzMzMzMzMzMzMyAiDQo+ICsiNzAwMDAwMDAw MDAwMDAgNzExMTExMTExMTExMTExIDcyMjIyMjIyMjIyMjIyMjIgNzMzMzMzMzMzMzMzMzMzIjsN Cj4gK3N0YXRpYyBjaGFyIHRlc3Q1X3Jlc3VsdFtdID0NCj4gKyJwcmVwZW5kIDAwMDAwMDAwMDAw MDAwIDAxMTExMTExMTExMTExMSAwMjIyMjIyMjIyMjIyMjIyIDAzMzMzMzMzMzMzMzMzMyAiDQo+ ICsiMTAwMDAwMDAwMDAwMDAgMTExMTExMTExMTExMTExIDEyMjIyMjIyMjIyMjIyMjIgMTMzMzMz MzMzMzMzMzMzICINCj4gKyIyMDAwMDAwMDAwMDAwMCAyMTExMTExMTExMTExMTEgMjIyMjIyMjIy MjIyMjIyMiAyMzMzMzMzMzMzMzMzMzMgIg0KPiArIjMwMDAwMDAwMDAwMDAwIDMxMTExMTExMTEx MTExMSAzMjIyMjIyMjIyMjIyMjIyIDMzMzMzMzMzMzMzMzMzMyAiDQo+ICsiNDAwMDAwMDAwMDAw MDAgNDExMTExMTExMTExMTExIDQyMjIyMjIyMjIyMjIyMjIgNDMzMzMzMzMzMzMzMzMzICINCj4g KyI1MDAwMDAwMDAwMDAwMCA1MTExMTExMTExMTExMTEgNTIyMjIyMjIyMjIyMjIyMiA1MzMzMzMz MzMzMzMzMzMgIg0KPiArIjYwMDAwMDAwMDAwMDAwIDYxMTExMTExMTExMTExMSA2MjIyMjIyMjIy MjIyMjIyIDYzMzMzMzMzMzMzMzMzMyAiDQo+ICsiNzAwMDAwMDAwMDAwMDAgNzExMTExMTExMTEx MTExIDcyMjIyMjIyMjIyMjIyMjIgNzMzMzMzMyI7DQo+ICsNCj4gK2NoYXIgdGVzdDVfYm9vdF9j b21tYW5kX2xpbmVbQ09NTUFORF9MSU5FX1NJWkVdOw0KPiArDQo+ICtjaGFyIHRlc3RfdG1wW0NP TU1BTkRfTElORV9TSVpFXTsNCj4gKw0KPiArY2hhciB0ZXN0X2Jvb3RfY29tbWFuZF9saW5lW0NP TU1BTkRfTElORV9TSVpFXTsNCj4gKw0KPiArc3RhdGljIHZvaWQgX19pbml0IHNlbGZ0ZXN0KHZv aWQpDQo+ICt7DQo+ICsJYm9vbCByZXN1bHQ7DQo+ICsNCj4gKwkvKiBOb3JtYWwgb3BlcmF0aW9u ICovDQo+ICsJc3RyY3B5KHRlc3RfYm9vdF9jb21tYW5kX2xpbmUsIHRlc3QxX2Jvb3Rsb2FkZXJf YXJncyk7DQo+ICsJdGVzdF90bXBbMF0gPSAnXDAnOw0KPiArCXJlc3VsdCA9IF9fY21kbGluZV9h ZGRfYnVpbHRpbih0ZXN0X2Jvb3RfY29tbWFuZF9saW5lLCB0ZXN0X3RtcCwgdGVzdDFfcHJlcGVu ZCwgdGVzdDFfYXBwZW5kLCBDT01NQU5EX0xJTkVfU0laRSwgQ01ETElORV9TVFJMRU4sIENNRExJ TkVfU1RSTENBVCk7DQo+ICsNCj4gKwlpZiAocmVzdWx0ID09IHRydWUgJiYgIXN0cm5jbXAodGVz dF9ib290X2NvbW1hbmRfbGluZSwgdGVzdDFfcmVzdWx0LCBDT01NQU5EX0xJTkVfU0laRSkpIHsN Cj4gKwkJcHJfaW5mbygidGVzdDEgc3VjY2Vzcy5cbiIpOw0KPiArCX0gZWxzZSB7DQo+ICsJCXBy X2luZm8oInRlc3QxIGZhaWxlZC4gT1VUUFVUIEJFTE9XOlxuIik7DQo+ICsJCXByX2luZm8oIlwi JXNcIlxuIiwgdGVzdF9ib290X2NvbW1hbmRfbGluZSk7DQo+ICsJCWZhaWxlZF90ZXN0cysrOw0K PiArCX0NCj4gKwl0b3RhbF90ZXN0cysrOw0KPiArDQo+ICsJLyogTWlzc2luZyBwcmVwZW5kICov DQo+ICsJc3RyY3B5KHRlc3RfYm9vdF9jb21tYW5kX2xpbmUsIHRlc3QyX2Jvb3Rsb2FkZXJfYXJn cyk7DQo+ICsJdGVzdF90bXBbMF0gPSAnXDAnOw0KPiArCXJlc3VsdCA9IF9fY21kbGluZV9hZGRf YnVpbHRpbih0ZXN0X2Jvb3RfY29tbWFuZF9saW5lLCB0ZXN0X3RtcCwgIiIsIHRlc3QyX2FwcGVu ZCwgQ09NTUFORF9MSU5FX1NJWkUsIENNRExJTkVfU1RSTEVOLCBDTURMSU5FX1NUUkxDQVQpOw0K PiArDQo+ICsJaWYgKHJlc3VsdCA9PSB0cnVlICYmICFzdHJuY21wKHRlc3RfYm9vdF9jb21tYW5k X2xpbmUsIHRlc3QyX3Jlc3VsdCwgQ09NTUFORF9MSU5FX1NJWkUpKSB7DQo+ICsJCXByX2luZm8o InRlc3QyIHN1Y2Nlc3MuXG4iKTsNCj4gKwl9IGVsc2Ugew0KPiArCQlwcl9pbmZvKCJ0ZXN0MiBm YWlsZWQuIE9VVFBVVCBCRUxPVzpcbiIpOw0KPiArCQlwcl9pbmZvKCJcIiVzXCJcbiIsIHRlc3Rf Ym9vdF9jb21tYW5kX2xpbmUpOw0KPiArCQlmYWlsZWRfdGVzdHMrKzsNCj4gKwl9DQoNCkNhbiB5 b3UgcmVmYWN0b3IgYW5kIGF2b2lkIHJlcGVhdGluZyB0aG9zZSA3IGxpbmVzIGZpdmUgdGltZXMg Pw0KDQo+ICsJdG90YWxfdGVzdHMrKzsNCj4gKw0KPiArCS8qIE1pc3NpbmcgYXBwZW5kICovDQo+ ICsJc3RyY3B5KHRlc3RfYm9vdF9jb21tYW5kX2xpbmUsIHRlc3QzX2Jvb3Rsb2FkZXJfYXJncyk7 DQo+ICsJdGVzdF90bXBbMF0gPSAnXDAnOw0KPiArCXJlc3VsdCA9IF9fY21kbGluZV9hZGRfYnVp bHRpbih0ZXN0X2Jvb3RfY29tbWFuZF9saW5lLCB0ZXN0X3RtcCwgdGVzdDNfcHJlcGVuZCwgIiIs IENPTU1BTkRfTElORV9TSVpFLCBDTURMSU5FX1NUUkxFTiwgQ01ETElORV9TVFJMQ0FUKTsNCj4g Kw0KPiArCWlmIChyZXN1bHQgPT0gdHJ1ZSAmJiAhc3RybmNtcCh0ZXN0X2Jvb3RfY29tbWFuZF9s aW5lLCB0ZXN0M19yZXN1bHQsIENPTU1BTkRfTElORV9TSVpFKSkgew0KPiArCQlwcl9pbmZvKCJ0 ZXN0MyBzdWNjZXNzLlxuIik7DQo+ICsJfSBlbHNlIHsNCj4gKwkJcHJfaW5mbygidGVzdDMgZmFp bGVkLiBPVVRQVVQgQkVMT1c6XG4iKTsNCj4gKwkJcHJfaW5mbygiXCIlc1wiXG4iLCB0ZXN0X2Jv b3RfY29tbWFuZF9saW5lKTsNCj4gKwkJZmFpbGVkX3Rlc3RzKys7DQo+ICsJfQ0KPiArCXRvdGFs X3Rlc3RzKys7DQo+ICsNCj4gKwkvKiBNaXNzaW5nIGFwcGVuZCBhbmQgcHJlcGVuZCAqLw0KPiAr CXN0cmNweSh0ZXN0X2Jvb3RfY29tbWFuZF9saW5lLCB0ZXN0NF9ib290bG9hZGVyX2FyZ3MpOw0K PiArCXRlc3RfdG1wWzBdID0gJ1wwJzsNCj4gKwlyZXN1bHQgPSBfX2NtZGxpbmVfYWRkX2J1aWx0 aW4odGVzdF9ib290X2NvbW1hbmRfbGluZSwgdGVzdF90bXAsICIiLCAiIiwgQ09NTUFORF9MSU5F X1NJWkUsIENNRExJTkVfU1RSTEVOLCBDTURMSU5FX1NUUkxDQVQpOw0KPiArDQo+ICsJaWYgKHJl c3VsdCA9PSB0cnVlICYmICFzdHJuY21wKHRlc3RfYm9vdF9jb21tYW5kX2xpbmUsIHRlc3Q0X3Jl c3VsdCwgQ09NTUFORF9MSU5FX1NJWkUpKSB7DQo+ICsJCXByX2luZm8oInRlc3Q0IHN1Y2Nlc3Mu XG4iKTsNCj4gKwl9IGVsc2Ugew0KPiArCQlwcl9pbmZvKCJ0ZXN0NCBmYWlsZWQuIE9VVFBVVCBC RUxPVzpcbiIpOw0KPiArCQlwcl9pbmZvKCJcIiVzXCJcbiIsIHRlc3RfYm9vdF9jb21tYW5kX2xp bmUpOw0KPiArCQlmYWlsZWRfdGVzdHMrKzsNCj4gKwl9DQo+ICsJdG90YWxfdGVzdHMrKzsNCj4g Kw0KPiArCS8qIEFscmVhZHkgZnVsbCBib290IGFyZ3VtZW50cyAqLw0KPiArCXN0cmNweSh0ZXN0 NV9ib290X2NvbW1hbmRfbGluZSwgdGVzdDVfYm9vdGxvYWRlcl9hcmdzKTsNCj4gKwl0ZXN0X3Rt cFswXSA9ICdcMCc7DQo+ICsJcmVzdWx0ID0gX19jbWRsaW5lX2FkZF9idWlsdGluKHRlc3Q1X2Jv b3RfY29tbWFuZF9saW5lLCB0ZXN0X3RtcCwgdGVzdDVfcHJlcGVuZCwgdGVzdDVfYXBwZW5kLCA1 MTIsIENNRExJTkVfU1RSTEVOLCBDTURMSU5FX1NUUkxDQVQpOw0KPiArDQo+ICsJaWYgKHJlc3Vs dCA9PSBmYWxzZSAmJiAhc3RybmNtcCh0ZXN0NV9ib290X2NvbW1hbmRfbGluZSwgdGVzdDVfcmVz dWx0LCBDT01NQU5EX0xJTkVfU0laRSkpIHsNCj4gKwkJcHJfaW5mbygidGVzdDUgc3VjY2Vzcy5c biIpOw0KPiArCX0gZWxzZSB7DQo+ICsJCXByX2luZm8oInRlc3Q1IGZhaWxlZC4gT1VUUFVUIEJF TE9XOlxuIik7DQo+ICsJCXByX2luZm8oIlwiJXNcIlxuIiwgdGVzdDVfYm9vdF9jb21tYW5kX2xp bmUpOw0KPiArCQlmYWlsZWRfdGVzdHMrKzsNCj4gKwl9DQo+ICsJdG90YWxfdGVzdHMrKzsNCj4g K30NCj4gKw0KPiArS1NUTV9NT0RVTEVfTE9BREVSUyhjbWRsaW5lX3Rlc3QpOw0KPiArTU9EVUxF X0FVVEhPUigiRGFuaWVsIFdhbGtlciA8ZGFuaWVsd2FAY2lzY28uY29tPiIpOw0KPiArTU9EVUxF X0xJQ0VOU0UoIkdQTCIpOw0K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0586CC61D85 for ; Thu, 23 Nov 2023 06:33:55 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=csgroup.eu header.i=@csgroup.eu header.a=rsa-sha256 header.s=selector2 header.b=U8gmcwNz; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4SbSxZ506Gz3dKR for ; Thu, 23 Nov 2023 17:33:54 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=csgroup.eu header.i=@csgroup.eu header.a=rsa-sha256 header.s=selector2 header.b=U8gmcwNz; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=csgroup.eu (client-ip=2a01:111:f400:7e19::628; helo=fra01-mr2-obe.outbound.protection.outlook.com; envelope-from=christophe.leroy@csgroup.eu; receiver=lists.ozlabs.org) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01on20628.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e19::628]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4SbSwc0jsqz3cTM for ; Thu, 23 Nov 2023 17:33:03 +1100 (AEDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Yqszvcolr1ZFyP0GgP/54rEEWuyuncwYlGtJSqT0EXpCLfnzyhWxl6Sqkv6iSX4jOiUINuz8wQynneQ0DFgciNRMpGvXHVucLmFekeQpftid3OHzvnPCRzCba4kDY0g9OOX8T6+VNudOlRJjcGL51J3ZU722RnRksRyk0pXCuwFn+5Ca3NgaQ2Be1YNW50u9ZP6l3FgvckOHqNj6X5FeuGd4KWLuSMF4FqXZn3EH3TQuqDGkpjJqVjDO3UELpuC2Emog1Rb1JaYdmc0o73JCoFUmtoMk2s64vZE/ZlDkTOFzhqMC8gNirv8sclD47B60kR9bSUacTHD2+ovRQbNDIA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LMyNRwyTeyX0RtVyxXvyfgvq5PcMnQuYRaP+w5aT1cs=; b=gw3ljeN3QDyZkpmCmOJwkbN8z3ipavpaD/B5/T6HE6+/YR32jxdR1YHGRkbUAu37pp4hPIUFIj66zJ9pgrkHXf73qU/a7NTIVMwY0DJ/hT5xl1yc7TQtEjBf7O3g5VXOk3t78UWW1++OaoCWc6Tgqqnna3nnGD/KJpKjfBQl4L5HSLJmYsB/1I/k3B4pz7/P3LoJDqA1fbiN12sv1H1VTsFPmj+vn5Tjd158VHjd5BOnYuCHnZHvGJ6/mjLT42YaIPKUcjxU+y/koJ2/UVi7pesX9DviflAMI88haVFO/xVqdGaXiNcJw2sOZDhvBwkh3Lq1V3Q3wFS9sK+M0kC7tw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=csgroup.eu; dmarc=pass action=none header.from=csgroup.eu; dkim=pass header.d=csgroup.eu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csgroup.eu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LMyNRwyTeyX0RtVyxXvyfgvq5PcMnQuYRaP+w5aT1cs=; b=U8gmcwNzaBoFJ6FIcVHU0IuPwyWyGLX5LeAVz3ZdarC/KIJIvawJMB8hUC6zDoViJRROuPrD4A01oEmiqKX431BE4CiHAh2jUAMN7CckpzUYepeA4xZhChCmDkXzjOjZ6Tsx/kmzEeA+Bd2XAwx0kOElQQ1aPb7xf2gnEsIYEZ1LSEjbZxSSJii/UwV1wnIxuF3tIJpDxZimSNLM0cAIpSq+C+s8cdnKI1KHnZxiaADNBpasZFpU/iH6ix6MuawPZiqaWOA3QuoKq4l7XKQOE6Dzs3G1m9Yl/zGoHW6D+Az7FMZLUvvEF0l7dhKpK3hDIWbD1KAxmezs2R7evLnHZQ== Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by PAZP264MB3413.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:120::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.13; Thu, 23 Nov 2023 06:32:43 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::5bfe:e2f2:6d89:8d97]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::5bfe:e2f2:6d89:8d97%3]) with mapi id 15.20.7046.012; Thu, 23 Nov 2023 06:32:43 +0000 From: Christophe Leroy To: Daniel Walker , Will Deacon , Rob Herring , Daniel Gimpelevich , Andrew Morton , Pratyush Brahma , Tomas Mudrunka , Sean Anderson , "x86@kernel.org" , "linux-mips@vger.kernel.org" , "linuxppc-dev@lists.ozlabs.org" Subject: Re: [PATCH 1/8] CMDLINE: add generic builtin command line Thread-Topic: [PATCH 1/8] CMDLINE: add generic builtin command line Thread-Index: AQHaE3aZwtsIWGQzb0qrp0HL29Cw2rCHhssA Date: Thu, 23 Nov 2023 06:32:43 +0000 Message-ID: References: <20231110013817.2378507-1-danielwa@cisco.com> <20231110013817.2378507-2-danielwa@cisco.com> In-Reply-To: <20231110013817.2378507-2-danielwa@cisco.com> Accept-Language: fr-FR, en-US Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla Thunderbird authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MRZP264MB2988:EE_|PAZP264MB3413:EE_ x-ms-office365-filtering-correlation-id: 2cdc7863-339a-42e1-1d74-08dbebedffcc x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: t6nDQ/Bb1/yeoqh4ZChV+fk6oXGZRe5fpIY+9/yySy+2WFdBbyz97XnAeyzI00jo/tREMDDjHW0RDadbbboqyQvS7Hy0oOTO95UBr3NaBTuocbnVUDYJkUK2lNvNP4RqGxzYUirPbl7vi2bw76GFb1D70Dyxwao8o9mgMzQa/fWmhFjVJytIXv/8hQd9p/Q8ZGCyMai5injOJKjBk97pdbQXp+ImM7TNM11CDz78LCm792l8aS49mJcosW9+U7eWTkWRpvKOqxe/hykbCzIPPZj3E2as89aVtfcVOmswmRiVnm4W7gq1PoTMHhklzfM6U5lYVe/PBX54fn71nNIDGg8Ey3UtUOVyR5Z961Ffgat9Bcr4pJh4IHIPSCLeB57ywqsFRyOJL6325MoYkXGtvhCcsKe/TOhPH8QB7Ra903wZEORZPMJiR7BAYwWgptuknRTW2aQ8wkU1vuecoCjw0xsNqRUYUFWDff1CfElflTcKPz0NjV0L1bMkN4zcxWbK0Nmi5fBOwoMHPiNqnHPcpleYvCTOY9SGdEKSU/lakT2l3kCmOVsaj64RS8krSuhXVT/8p/WSnYK3rn2lNf1GXFZ9rBxuJwjT+0kzEOufWI5a07dLD/bjutg0ceMMdMM6H7oKxi9/Jesyc8UwphI3EMNSxhBFsHRTK9IBTUdUAeoZgrG+NDqksHGKOxUxW59NljTaGu7pB4i9y384Uo2ziZdJwchnssWoq0eNyfG7/ZlfSIK/M23Y90duF9z4iDASX8DE4NTgy1lOJdmtMOVBiw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(136003)(376002)(346002)(366004)(396003)(39860400002)(230273577357003)(230173577357003)(230922051799003)(451199024)(186009)(64100799003)(1800799012)(2616005)(26005)(66574015)(6512007)(71200400001)(6506007)(83380400001)(7416002)(5660300002)(2906002)(30864003)(44832011)(41300700001)(76116006)(91956017)(110136005)(6486002)(478600001)(66946007)(4326008)(64756008)(8676002)(8936002)(54906003)(66446008)(66476007)(66556008)(316002)(122000001)(38100700002)(921008)(38070700009)(36756003)(31696002)(86362001)(31686004)(66899024)(41533002)(43740500002)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RkQ2aFlaT3RnUHFFSkczRFE0VDJ4NzY2RTF5ME4yTWNMd25sZG42V1BHTUxB?= =?utf-8?B?bGlwQytyU3h1eEIzRjFCSUxoTW82SENMZ1YwU01iWDBjalNVUE53dzZyV0lC?= =?utf-8?B?MzVJVnZiK3ZxL21FdEJCTlZ3Z2tPaVhPZU9tSGlwTCtmaGd1OWdJZmdPdkhE?= =?utf-8?B?WnlQaG1ObXpjMVZaaS93aHB2QUpMcDVLeDlscVFWZE5Wa1RSVkFNeE1mbnRW?= =?utf-8?B?N3JFdHBtMGp1c1BxdEQ2NTFYMTlVNnEzWlNFbXZHR0wxandOM2svbS9pMWlD?= =?utf-8?B?VVNFdS94S2FMOTUrdWI3bE5LWHhIYlcwdGlFc01WOXRPVklRaHdKbVN1emRS?= =?utf-8?B?S25pdFBWRGx6Nk42aTJERVhDVXpkWXpQc0RUS2wzaEJjaHUxbGZKUFdhaitx?= =?utf-8?B?NENjWGUvRFIvS2laTXgzckU4NFZ3aFFOSUs4QjJxV1BoMjZYSzZDL2cyOXJ6?= =?utf-8?B?YkZtK0hieGxMeWRiOXJtK2NnekFla2hFODdWOHZ5OXBLcy9RYXRFZ3JsbTN2?= =?utf-8?B?L1BRSks3NzBPZkN2eTlhclZUQ0dSb2hrNEMxRVBrTTdnUG4wYnZQK0Nab3Vz?= =?utf-8?B?US8wZzZ0YkpldnNZQ2ZxVTY1UFJ4dnhuVW1PU21pc29sM1krWlpJRWZLMGFN?= =?utf-8?B?RXI1NUpjazR1aENQN0xZd1NHZ1NPOUd0ZmJLcjJINU5IY2JJME1RWldYV3F1?= =?utf-8?B?L0hmaGR1a0NlUmliTTRhNEd4bE5hNzJINUZGWjNKVmxoTzZYRXM3K2UvcUt2?= =?utf-8?B?dk9CaTd0RjdDUVRVc1loaGJIMGZXV1QzbVROVmY1cjRKQm9vVHcyTGdLd29O?= =?utf-8?B?eVFxWGZ3TWpPTVVKN002R0ptOWRYdzVFYWhqdVdRdzdpTXRuU041NHgyVjhC?= =?utf-8?B?RTVBZy9FVitPVW5LT2VUOEVmMEk4blMxK1VocDMwcWxNSHQ0SHlWaWkzRHRi?= =?utf-8?B?MHdIU3VsVkF5clZybXhDRmxNd0pFOXlleXQza1ZKYnhvN0VyNzVyNFdENFcy?= =?utf-8?B?UHZzQlpPM3NCVk5YSzdkS2pLbEJoNnZUeVlrUFUyK2wrNXdZc0FJd1ljdDdF?= =?utf-8?B?bGh3SFR2Y0dQaTlMbmI2ZVA4U1B5NzRxSHpVR0hKYm9PKzhTWVEzaUMzVisr?= =?utf-8?B?cmNQcW5iSEJ4RXN5QXlCQjU4WGFzdGZWTGxkWE5VcjJoKzlCM0xzc0JqcU0x?= =?utf-8?B?MXJQZW14b2tSNHpHTUNVMjc5WklweGl0RG53bzBBRW5wcjVtMmNIUmxFbUFw?= =?utf-8?B?TVFnR1dpVmJ3V1NWMmhZcFBkYUNaVy81VTZocmN4UllYYU1DZ2V1RUhLTllo?= =?utf-8?B?RVNXMHFSWTExdzU5QWFXTGlnRUgvVms4bjZ0UEdpL0dqZWwweC9YZEdKam1R?= =?utf-8?B?Q2ltVGVnMkZWa01JQjBQNm1EbU1ldzRnY25kSE5ycXh6ZWY2cFErajd0TzdY?= =?utf-8?B?VytTbDArMDNDZmZxZm84MExrcHVjclJxbkZYd3UyQVp3NDBvZ0ZTK0paVVhn?= =?utf-8?B?cDhlRzhtRHdMMDRnTFZFZXJ6ZDk5d2hOdFhqS2p5cjh4U250U0VkQ3Fsdmc3?= =?utf-8?B?NEE4eEtmblArR3c4L2pmbUpOMVBGVFJDZXNiRnZJWll3UGxaNFR0SDl3TUxU?= =?utf-8?B?SjkzUkxQeHcrZUhYWVhqOEZtWFc5WXVlUTdwUzcvdUxhdzNPa2JPRGoxb3Rj?= =?utf-8?B?U1BlejJqcmZHblcxTEttb0hud0k2TGYvaU9BcEtNcGh3REtCbXBhYjFIdUpx?= =?utf-8?B?Q09DQXdDU0ZKWGNYOW1lTEJKdnlwSExJUlhCcE5MTEcycFRnQ2dTS2RWTUZy?= =?utf-8?B?RFBpZmN5VllzM2VhbnhadFRTdDFRZ3VqYytieEpYVjJ3UEVtWjFkdFo5cWY2?= =?utf-8?B?T1p5NFdCQmVVcDB4NlIvZFE0MEl2V0l3V3FNck1PZ0I4SkhYK2Z1Y280Z2h5?= =?utf-8?B?Y2t5cVFSLzhiVXFhNkdUd2lTWi83UGFJSWdTSVp6ajkwbnZQOHpwQjJ1SDd0?= =?utf-8?B?S2JyOHhYc3dCSFI5eW5XTjJzR2ZEUmljcXRCUjg0ZVI3dGVzY2hLWmx0SDRy?= =?utf-8?B?SzZCUUJNREcxYlVmZnVzdjZ1LzZOdy92aDA2ZFQ0cTJJbVFPRkR6b1JDZlVz?= =?utf-8?B?ODFOVlJTdW8vN250Mm5SMWZtNGQ3K0RRck5tdGhVRmhhU3crbk0zZFQ4cWY1?= =?utf-8?B?a3c9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <0EF37E826A98354287A8DCA5CC6BE596@FRAP264.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 2cdc7863-339a-42e1-1d74-08dbebedffcc X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2023 06:32:43.4149 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: kc2Ra6Y1f4FAXfInSN91DMVZx90re55DmRaU00y0OKh8IFvvPV5TJYP+P3NrZFByqK1eup+/5/8XRCbRv30lC7MgPorZ85oEpgFmD8QKC4c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAZP264MB3413 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ruslan Bilovol , "linux-kernel@vger.kernel.org" , "xe-linux-external@cisco.com" Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" DQoNCkxlIDEwLzExLzIwMjMgw6AgMDI6MzgsIERhbmllbCBXYWxrZXIgYSDDqWNyaXTCoDoNCj4g VGhpcyBjb2RlIGFsbG93cyBhcmNoaXRlY3R1cmVzIHRvIHVzZSBhIGdlbmVyaWMgYnVpbHRpbiBj b21tYW5kIGxpbmUuDQo+IFRoZSBzdGF0ZSBvZiB0aGUgYnVpbHRpbiBjb21tYW5kIGxpbmUgb3B0 aW9ucyBhY3Jvc3MgYXJjaGl0ZWN0dXJlIGlzDQo+IGRpdmVyc2UuIE1JUFMgYW5kIFg4NiBvbmNl IGhhcyBzaW1pbGFyIHN5c3RlbXMsIHRoZW4gbWlwcyBhZGRlZCBzb21lDQo+IG9wdGlvbnMgdG8g YWxsb3cgZXh0ZW5kaW5nIHRoZSBjb21tYW5kIGxpbmUuIFBvd2VycGMgZGlkIHNvbWV0aGluZw0K PiBzaW1pYXIgaW4gYWRkaW5nIHRoZSBhYmlsaXR5IHRvIGV4dGVuZC4gRXZlbiB3aXRoIG1pcHMg YW5kIHBvd2VycGMNCj4gZW5oYW5jZW1lbnQgdGhlIG5lZWRzIG9mIENpc2NvIGFyZSBub3QgbWV0 IG9uIHRoZXNlIHBsYXRmb3Jtcy4NCg0KV2hhdCBhcmUgdGhvc2UgbmVlZHMsIGNhbiB5b3UgbGlz dCB0aGVtIGluIHRoZSBjb3ZlciBsZXR0ZXIsIGFuZCANCnByb2JhYmx5IGFsc28gaW4gaGVyZSA/ DQpBcmUgdGhvc2UgbmVlZHMgc3BlY2lmaWMgdG8gQ2lzY28gb3IgY2FuIHRoZXkgaW50ZXJlc3Qg dGhlIGVudGlyZSBMaW51eCANCmNvbW11bml0eSA/DQoNCj4gDQo+IFRoZSBjb2RlIGluIHRoaXMg Y29tbWl0IHVuaWZpZXMgdGhlIGNvZGUgaW50byBhIGdlbmVyaWMNCj4gaGVhZGVyIGZpbGUgdW5k ZXIgdGhlIENPTkZJR19HRU5FUklDX0NNRExJTkUgb3B0aW9uLiBXaGVuIHRoaXMNCj4gb3B0aW9u IGlzIGVuYWJsZWQgdGhlIGFyY2hpdGVjdHVyZSBjYW4gY2FsbCB0aGUgY21kbGluZV9hZGRfYnVp bHRpbigpDQo+IHRvIGFkZCB0aGUgYnVpbHRpbiBjb21tYW5kIGxpbmUuIFRoZSBnZW5lcmljIGNv ZGUgcHJvdmlkZXMgYm90aA0KPiBhcHBlbmQgYW5kL29yIHByZXBlbmQgb3B0aW9ucyBhbmQgcHJv dmlkZXMgYSB3YXkgdG8gcmVkZWZpbmUgdGhlc2UNCj4gb3B0aW9uIGFmdGVyIHRoZSBrZXJuZWwg aXMgY29tcGlsZWQuDQoNCkV4cGxhaW4gaG93Lg0KDQo+IA0KPiBUaGlzIGNvZGUgYWxzbyBpbmNs dWRlcyB0ZXN0J3Mgd2hpY2ggYXJlIG1lYW50IHRvIGNvbmZpcm0NCj4gZnVuY3Rpb25hbGl0eS4N Cg0KV291bGQgYmUgYmV0dGVyIHRvIGhhdmUgdGVzdCBwYXJ0IGFzIGEgc2VwYXJhdGUgcGF0Y2gg aWYgcG9zc2libGUuDQoNCj4gDQo+IFRoaXMgdW5pZmllZCBpbXBsZW1lbnRhdGlvbiBvZmZlcnMg dGhlIHNhbWUgZnVuY3Rpb25hbGl0eSBuZWVkZWQgYnkNCj4gQ2lzY28gb24gYWxsIHBsYXRmb3Jt IHdoaWNoIHdlIGVuYWJsZSBpdCBvbi4NCg0KQ2lzY28gLi4uIGNpc2NvIC4uLiBjaXNjbyAuLi4N Cg0KPiANCj4gQ2M6IHhlLWxpbnV4LWV4dGVybmFsQGNpc2NvLmNvbQ0KPiBTaWduZWQtb2ZmLWJ5 OiBSdXNsYW4gQmlsb3ZvbCA8cmJpbG92b2xAY2lzY28uY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBE YW5pZWwgV2Fsa2VyIDxkYW5pZWx3YUBjaXNjby5jb20+DQo+IC0tLQ0KPiAgIGluY2x1ZGUvbGlu dXgvY21kbGluZS5oIHwgMTA2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgIGlu aXQvS2NvbmZpZyAgICAgICAgICAgIHwgIDc5ICsrKysrKysrKysrKysrKysrKysrKysrDQo+ICAg bGliL0tjb25maWcgICAgICAgICAgICAgfCAgIDQgKysNCj4gICBsaWIvTWFrZWZpbGUgICAgICAg ICAgICB8ICAgMyArDQo+ICAgbGliL2dlbmVyaWNfY21kbGluZS5TICAgfCAgNTMgKysrKysrKysr KysrKysrDQo+ICAgbGliL3Rlc3RfY21kbGluZTEuYyAgICAgfCAxMzkgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgIDYgZmlsZXMgY2hhbmdlZCwgMzg0IGluc2Vy dGlvbnMoKykNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9jbWRsaW5lLmgN Cj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2dlbmVyaWNfY21kbGluZS5TDQo+ICAgY3JlYXRl IG1vZGUgMTAwNjQ0IGxpYi90ZXN0X2NtZGxpbmUxLmMNCj4gDQo+IGRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L2NtZGxpbmUuaCBiL2luY2x1ZGUvbGludXgvY21kbGluZS5oDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uYTk0NzU4YTBmMjU3DQo+IC0tLSAv ZGV2L251bGwNCj4gKysrIGIvaW5jbHVkZS9saW51eC9jbWRsaW5lLmgNCj4gQEAgLTAsMCArMSwx MDYgQEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovDQo+ICsjaWZu ZGVmIF9MSU5VWF9DTURMSU5FX0gNCj4gKyNkZWZpbmUgX0xJTlVYX0NNRExJTkVfSA0KPiArLyoN Cj4gKyAqDQo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMDYsMjAyMS4gQ2lzY28gU3lzdGVtcywgSW5j Lg0KPiArICoNCj4gKyAqIEdlbmVyaWMgQXBwZW5kL1ByZXBlbmQgY21kbGluZSBzdXBwb3J0Lg0K PiArICovDQo+ICsNCj4gKw0KPiArI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+DQo+ICsjaW5jbHVk ZSA8bGludXgvY2FjaGUuaD4NCj4gKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4NCj4gKw0KPiArI2lm ZGVmIENPTkZJR19DTURMSU5FX0JPT0wNCj4gK2V4dGVybiBjaGFyIGNtZGxpbmVfcHJlcGVuZFtd Ow0KPiArZXh0ZXJuIGNoYXIgY21kbGluZV9hcHBlbmRbXTsNCj4gK2V4dGVybiBjaGFyIGNtZGxp bmVfdG1wW107DQo+ICsjZGVmaW5lIENNRExJTkVfUFJFUEVORCBjbWRsaW5lX3ByZXBlbmQNCj4g KyNkZWZpbmUgQ01ETElORV9BUFBFTkQgY21kbGluZV9hcHBlbmQNCj4gKyNkZWZpbmUgQ01ETElO RV9UTVAgY21kbGluZV90bXANCj4gKyNkZWZpbmUgQ01ETElORV9TVEFUSUNfUFJFUEVORCBDT05G SUdfQ01ETElORV9QUkVQRU5EDQo+ICsjZGVmaW5lIENNRExJTkVfU1RBVElDX0FQUEVORCBDT05G SUdfQ01ETElORV9BUFBFTkQNCg0KVG9vIG1hbnkgbWFjcm9zIHJlZHVjZXMgdGhlIHJlYWRhYmls aXR5IG9mIGNvZGUsIGF2b2lkIHRoZW0gd2hlbiBwb3NzaWJsZS4NCg0KPiArI2Vsc2UNCg0KRXhw bGFpbiB3aHkgdGhpcyBlbHNlIGxlZyBpcyBuZWVkZWQuIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0 byBzZXQgDQpkZWZhdWx0IHZhbHVlcyBkaXJlY3RseSBpbiBLY29uZmlnLg0KDQo+ICsjZGVmaW5l IENNRExJTkVfUFJFUEVORCAiIg0KPiArI2RlZmluZSBDTURMSU5FX0FQUEVORCAiIg0KPiArI2Rl ZmluZSBDTURMSU5FX1RNUCAiIg0KPiArI2RlZmluZSBDTURMSU5FX1NUQVRJQ19QUkVQRU5EICIi DQo+ICsjZGVmaW5lIENNRExJTkVfU1RBVElDX0FQUEVORCAiIg0KPiArI2VuZGlmDQo+ICsNCj4g KyNpZm5kZWYgQ01ETElORV9TVFJMQ0FUDQo+ICsjZGVmaW5lIENNRExJTkVfU1RSTENBVCBzdHJs Y2F0DQo+ICsjZW5kaWYNCj4gKw0KPiArI2lmbmRlZiBDTURMSU5FX1NUUkxFTg0KPiArI2RlZmlu ZSBDTURMSU5FX1NUUkxFTiBzdHJsZW4NCj4gKyNlbmRpZg0KPiArDQo+ICsvKg0KPiArICogVGhp cyBmdW5jdGlvbiB3aWxsIGFwcGVuZCBvciBwcmVwZW5kIGEgYnVpbHRpbiBjb21tYW5kIGxpbmUg dG8gdGhlIGNvbW1hbmQNCj4gKyAqIGxpbmUgcHJvdmlkZWQgYnkgdGhlIGJvb3Rsb2FkZXIuIEtj b25maWcgb3B0aW9ucyBjYW4gYmUgdXNlZCB0byBhbHRlcg0KPiArICogdGhlIGJlaGF2aW9yIG9m IHRoaXMgYnVpbHRpbiBjb21tYW5kIGxpbmUuDQo+ICsgKiBAZGVzdDogVGhlIGRlc3RpbmF0aW9u IG9mIHRoZSBmaW5hbCBhcHBlbmRlZC9wcmVwZW5kZWQgc3RyaW5nDQo+ICsgKiBAdG1wOiB0ZW1w b3Jhcnkgc3BhY2UgdXNlZCBmb3IgcHJlcGVuZGluZw0KPiArICogQHByZXBlbmQ6IHN0cmluZyB0 byBwcmVwZW5kIHRvIEBkZXN0DQo+ICsgKiBAYXBwZW5kOiBzdHJpbmcgdG8gYXBwZW5kIHRvIEBk ZXN0DQo+ICsgKiBAbGVuZ3RoOiB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIHN0cmluZ3MgYWJv dmUuDQo+ICsgKiBAY21kbGluZV9zdHJsZW46IHBvaW50IHRvIGEgY29tcGF0aWJsZSBzdHJsZW4N Cg0KUmVtb3ZlIHRoYXQgZnVuY3Rpb24gcG9pbnRlciBhcmd1bWVudCBhbmQgdXNlIG1hY3Jvcy4N Cg0KPiArICogQGNtZGxpbmVfc3RybGNhdDogcG9pbnQgdG8gYSBjb21wYXRpYmxlIHN0cmxjYXQN Cg0KU2FtZQ0KDQo+ICsgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSB3aGVuIHRoZSBidWls dGluIGNvbW1hbmQgbGluZSB3YXMgY29waWVkIHN1Y2Nlc3NmdWxseQ0KPiArICogYW5kIGZhbHNl IHdoZW4gdGhlcmUgd2FzIG5vdCBlbm91Z2ggcm9vbSB0byBjb3B5IGFsbCBwYXJ0cyBvZiB0aGUg Y29tbWFuZCBsaW5lLg0KDQpXaGF0IGhhcHBlbnMgd2hlbiBpdCByZXR1cm5zIGZhbHNlLCBpcyBp dCBwYXJ0aWFsbHkgY29waWVkIG9yIG5vdGhpbmcgaXMgDQpkb25lID8NCg0KPiArICovDQo+ICtz dGF0aWMgaW5saW5lIGJvb2wNCj4gK19fY21kbGluZV9hZGRfYnVpbHRpbigNCj4gKwkJY2hhciAq ZGVzdCwNCj4gKwkJY2hhciAqdG1wLA0KPiArCQljaGFyICpwcmVwZW5kLA0KPiArCQljaGFyICph cHBlbmQsDQo+ICsJCXVuc2lnbmVkIGxvbmcgbGVuZ3RoLA0KPiArCQlzaXplX3QgKCpjbWRsaW5l X3N0cmxlbikoY29uc3QgY2hhciAqcyksDQo+ICsJCXNpemVfdCAoKmNtZGxpbmVfc3RybGNhdCko Y2hhciAqZGVzdCwgY29uc3QgY2hhciAqc3JjLCBzaXplX3QgY291bnQpKQ0KDQpUaGlzIGNtZGxp bmUgZmVhdHVyZSBpcyB1c2VkIGluIGVhcmx5IGRlZXAgcGFydHMgb2YgYXJjaGl0ZWN0dXJlcywg c28gaW4gDQphIHdheSBtb3JlIG9yIGxlc3MgY29tcGFyYWJsZSB0byBsaW51eC1tbS4gQXBwcm9h Y2ggd2l0aCBsaW51eC1tbSBoYXMgDQphbHdheXMgYmVlbiB0byBkZWZpbmUgbWFjcm9zIHRoYXQg Y2FuIGJlIG92ZXJyaWRlbiBieSBhcmNoaXRlY3R1cmVzLiANClBsZWFzZSBkbyB0aGUgc2FtZSBh bmQgZGVmaW5lIGNtZGxpbmVfc3RybGVuKCkgYW5kIGNtZGxpbmVfc3RybGNhdCgpIGFzIA0KbWFj cm9zIHRoYXQgY2FuIGJlIG92ZXJyaWRlbiBieSBhcmNoaXRlY3R1cmVzIGluc3RlYWQgb2YgcGFz c2luZyANCmZ1bmN0aW9uIHBvaW50ZXJzLiBBbmQga2VlcCBtYWNybyBuYW1lcyBhcyBsb3dlciBj YXNlIGZvciB0aGlzIHR5cGUgb2YgDQptYWNyb3MuDQoNCj4gK3sNCj4gKwlzaXplX3QgdG90YWxf bGVuZ3RoID0gMCwgdG1wX2xlbmd0aDsNCg0KVHJ5IHRvIHVzZSBzaG9ydGVyIG5hbWVzIGZvciBs b2NhbCB2YXJpYWJsZXMsIHNlZSBrZXJuZWwgY29keWluZyBzdHlsZS4NCg0KPiArDQo+ICsJaWYg KCFJU19FTkFCTEVEKENPTkZJR19HRU5FUklDX0NNRExJTkUpKQ0KPiArCQlyZXR1cm4gdHJ1ZTsN Cj4gKw0KPiArCWlmICghSVNfRU5BQkxFRChDT05GSUdfQ01ETElORV9CT09MKSkNCj4gKwkJcmV0 dXJuIHRydWU7DQo+ICsNCj4gKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfQ01ETElORV9PVkVSUklE RSkpDQo+ICsJCWRlc3RbMF0gPSAnXDAnOw0KPiArCWVsc2UNCj4gKwkJdG90YWxfbGVuZ3RoICs9 IGNtZGxpbmVfc3RybGVuKGRlc3QpOw0KDQpBbGwgdGhvc2UgS2NvbmZpZyBvcHRpb25zIHNob3Vs ZCBiZSBleHBsYWluZWQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLCANCnRoYXQgd291bGQgaGVscCB1 bmRlcnN0YW5kaW5nIHRoZSBwYXRjaC4NCg0KSW1wYWN0IG9uIGV4aXN0aW5nIGRlZmNvbmZpZ3Mg c2hvdWxkIGFsc28gYmUgdGFrZW4gY2FyZSBvZiBhbmQgbWluaW1pc2VkLg0KDQo+ICsNCj4gKwl0 bXBfbGVuZ3RoID0gY21kbGluZV9zdHJsZW4oYXBwZW5kKTsNCj4gKwlpZiAodG1wX2xlbmd0aCA+ IDApIHsNCj4gKwkJY21kbGluZV9zdHJsY2F0KGRlc3QsIGFwcGVuZCwgbGVuZ3RoKTsNCj4gKwkJ dG90YWxfbGVuZ3RoICs9IHRtcF9sZW5ndGg7DQo+ICsJfQ0KPiArDQo+ICsJdG1wX2xlbmd0aCA9 IGNtZGxpbmVfc3RybGVuKHByZXBlbmQpOw0KPiArCWlmICh0bXBfbGVuZ3RoID4gMCkgew0KPiAr CQljbWRsaW5lX3N0cmxjYXQodG1wLCBwcmVwZW5kLCBsZW5ndGgpOw0KPiArCQljbWRsaW5lX3N0 cmxjYXQodG1wLCBkZXN0LCBsZW5ndGgpOw0KPiArCQlkZXN0WzBdID0gJ1wwJzsNCj4gKwkJY21k bGluZV9zdHJsY2F0KGRlc3QsIHRtcCwgbGVuZ3RoKTsNCj4gKwkJdG90YWxfbGVuZ3RoICs9IHRt cF9sZW5ndGg7DQo+ICsJfQ0KPiArDQo+ICsJdG1wWzBdID0gJ1wwJzsNCg0KV2hhdCdzIHRoZSBw dXJwb3NlIG9mIHNldHRpbmcgdG1wWzBdIHRvIDAgPw0KDQo+ICsNCj4gKwlpZiAodG90YWxfbGVu Z3RoID4gbGVuZ3RoKQ0KPiArCQlyZXR1cm4gZmFsc2U7DQo+ICsNCj4gKwlyZXR1cm4gdHJ1ZTsN Cg0KQ2FuIGJlIHdyaXRlbiBhczoNCg0KCXJldHVybiB0b3RhbF9sZW5ndGggPD0gbGVuZ3RoOw0K DQo+ICt9DQo+ICsNCj4gKyNkZWZpbmUgY21kbGluZV9hZGRfYnVpbHRpbihkZXN0KSBcDQo+ICsJ X19jbWRsaW5lX2FkZF9idWlsdGluKGRlc3QsIENNRExJTkVfVE1QLCBDTURMSU5FX1BSRVBFTkQs IENNRExJTkVfQVBQRU5ELCBDT01NQU5EX0xJTkVfU0laRSwgQ01ETElORV9TVFJMRU4sIENNRExJ TkVfU1RSTENBVCkNCj4gKw0KPiArI2RlZmluZSBjbWRsaW5lX2dldF9zdGF0aWNfYnVpbHRpbihk ZXN0KSBcDQo+ICsJKENNRExJTkVfU1RBVElDX1BSRVBFTkQgQ01ETElORV9TVEFUSUNfQVBQRU5E KQ0KPiArI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9pbml0L0tjb25maWcgYi9pbml0L0tjb25maWcN Cj4gaW5kZXggNmQzNTcyOGI5NGIyLi43MDNlZWQ4OGQxNDAgMTAwNjQ0DQo+IC0tLSBhL2luaXQv S2NvbmZpZw0KPiArKysgYi9pbml0L0tjb25maWcNCj4gQEAgLTE5MjIsNiArMTkyMiw4NSBAQCBj b25maWcgVFJBQ0VQT0lOVFMNCj4gICANCj4gICBzb3VyY2UgImtlcm5lbC9LY29uZmlnLmtleGVj Ig0KPiAgIA0KPiArY29uZmlnIEdFTkVSSUNfQ01ETElORQ0KPiArCWJvb2wNCj4gKw0KPiAraWYg R0VORVJJQ19DTURMSU5FDQo+ICsNCj4gK2NvbmZpZyBDTURMSU5FX0JPT0wNCj4gKwlib29sICJC dWlsdC1pbiBrZXJuZWwgY29tbWFuZCBsaW5lIg0KPiArCWhlbHANCj4gKwkgIEFsbG93IGZvciBz cGVjaWZ5aW5nIGJvb3QgYXJndW1lbnRzIHRvIHRoZSBrZXJuZWwgYXQNCj4gKwkgIGJ1aWxkIHRp bWUuICBPbiBzb21lIHN5c3RlbXMgKGUuZy4gZW1iZWRkZWQgb25lcyksIGl0IGlzDQo+ICsJICBu ZWNlc3Nhcnkgb3IgY29udmVuaWVudCB0byBwcm92aWRlIHNvbWUgb3IgYWxsIG9mIHRoZQ0KPiAr CSAga2VybmVsIGJvb3QgYXJndW1lbnRzIHdpdGggdGhlIGtlcm5lbCBpdHNlbGYgKHRoYXQgaXMs DQo+ICsJICB0byBub3QgcmVseSBvbiB0aGUgYm9vdCBsb2FkZXIgdG8gcHJvdmlkZSB0aGVtLikN Cj4gKw0KPiArCSAgVG8gY29tcGlsZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGludG8gdGhlIGtl cm5lbCwNCj4gKwkgIHNldCB0aGlzIG9wdGlvbiB0byAnWScsIHRoZW4gZmlsbCBpbiB0aGUNCj4g KwkgIHRoZSBib290IGFyZ3VtZW50cyBpbiBDT05GSUdfQ01ETElORS4NCj4gKw0KPiArCSAgU3lz dGVtcyB3aXRoIGZ1bGx5IGZ1bmN0aW9uYWwgYm9vdCBsb2FkZXJzIChpLmUuIG5vbi1lbWJlZGRl ZCkNCj4gKwkgIHNob3VsZCBsZWF2ZSB0aGlzIG9wdGlvbiBzZXQgdG8gJ04nLg0KPiArDQo+ICtj b25maWcgQ01ETElORV9BUFBFTkQNCj4gKwlzdHJpbmcgIkJ1aWx0LWluIGtlcm5lbCBjb21tYW5k IHN0cmluZyBhcHBlbmQiDQo+ICsJZGVwZW5kcyBvbiBDTURMSU5FX0JPT0wNCj4gKwlkZWZhdWx0 ICIiDQo+ICsJaGVscA0KPiArCSAgRW50ZXIgYXJndW1lbnRzIGhlcmUgdGhhdCBzaG91bGQgYmUg Y29tcGlsZWQgaW50byB0aGUga2VybmVsDQo+ICsJICBpbWFnZSBhbmQgdXNlZCBhdCBib290IHRp bWUuICBJZiB0aGUgYm9vdCBsb2FkZXIgcHJvdmlkZXMgYQ0KPiArCSAgY29tbWFuZCBsaW5lIGF0 IGJvb3QgdGltZSwgdGhpcyBzdHJpbmcgaXMgYXBwZW5kZWQgdG8gaXQgdG8NCj4gKwkgIGZvcm0g dGhlIGZ1bGwga2VybmVsIGNvbW1hbmQgbGluZSwgd2hlbiB0aGUgc3lzdGVtIGJvb3RzLg0KPiAr DQo+ICsJICBIb3dldmVyLCB5b3UgY2FuIHVzZSB0aGUgQ09ORklHX0NNRExJTkVfT1ZFUlJJREUg b3B0aW9uIHRvDQo+ICsJICBjaGFuZ2UgdGhpcyBiZWhhdmlvci4NCj4gKw0KPiArCSAgSW4gbW9z dCBjYXNlcywgdGhlIGNvbW1hbmQgbGluZSAod2hldGhlciBidWlsdC1pbiBvciBwcm92aWRlZA0K PiArCSAgYnkgdGhlIGJvb3QgbG9hZGVyKSBzaG91bGQgc3BlY2lmeSB0aGUgZGV2aWNlIGZvciB0 aGUgcm9vdA0KPiArCSAgZmlsZSBzeXN0ZW0uDQo+ICsNCj4gK2NvbmZpZyBDTURMSU5FX1BSRVBF TkQNCj4gKwlzdHJpbmcgIkJ1aWx0LWluIGtlcm5lbCBjb21tYW5kIHN0cmluZyBwcmVwZW5kIg0K PiArCWRlcGVuZHMgb24gQ01ETElORV9CT09MDQo+ICsJZGVmYXVsdCAiIg0KPiArCWhlbHANCj4g KwkgIEVudGVyIGFyZ3VtZW50cyBoZXJlIHRoYXQgc2hvdWxkIGJlIGNvbXBpbGVkIGludG8gdGhl IGtlcm5lbA0KPiArCSAgaW1hZ2UgYW5kIHVzZWQgYXQgYm9vdCB0aW1lLiAgSWYgdGhlIGJvb3Qg bG9hZGVyIHByb3ZpZGVzIGENCj4gKwkgIGNvbW1hbmQgbGluZSBhdCBib290IHRpbWUsIHRoaXMg c3RyaW5nIGlzIHByZXBlbmRlZCB0byBpdCB0bw0KPiArCSAgZm9ybSB0aGUgZnVsbCBrZXJuZWwg Y29tbWFuZCBsaW5lLCB3aGVuIHRoZSBzeXN0ZW0gYm9vdHMuDQo+ICsNCj4gKwkgIEhvd2V2ZXIs IHlvdSBjYW4gdXNlIHRoZSBDT05GSUdfQ01ETElORV9PVkVSUklERSBvcHRpb24gdG8NCj4gKwkg IGNoYW5nZSB0aGlzIGJlaGF2aW9yLg0KPiArDQo+ICsJICBJbiBtb3N0IGNhc2VzLCB0aGUgY29t bWFuZCBsaW5lICh3aGV0aGVyIGJ1aWx0LWluIG9yIHByb3ZpZGVkDQo+ICsJICBieSB0aGUgYm9v dCBsb2FkZXIpIHNob3VsZCBzcGVjaWZ5IHRoZSBkZXZpY2UgZm9yIHRoZSByb290DQo+ICsJICBm aWxlIHN5c3RlbS4NCj4gKw0KPiArY29uZmlnIENNRExJTkVfRVhUUkENCj4gKwlib29sICJSZXNl cnZlIG1vcmUgc3BhY2UgZm9yIGluc2VydGluZyBwcmVwZW5kIGFuZCBhcHBlbmQgd2l0aG91dCBy ZWNvbXBpbGluZyINCj4gKwlkZXBlbmRzIG9uIENNRExJTkVfQk9PTA0KPiArCXNlbGVjdCBTWVNU RU1fRVhUUkFfQ0VSVElGSUNBVEUNCj4gKwloZWxwDQo+ICsJICBJZiBzZXQsIHNwYWNlIGZvciBh biBhcHBlbmQgYW5kIHByZXBlbmQgd2lsbCBiZSByZXNlcnZlZCBpbiB0aGUga2VybmVsDQo+ICsJ ICBpbWFnZS4gVGhpcyBhbGxvd3MgdXBkYXRpbmcgb3IgY2hhbmdpbmcgdGhlIGFwcGVuZCBhbmQg cHJlcGVuZCB0byBhIGxhcmdlDQo+ICsJICBzdHJpbmcgdGhlbiB0aGUga2VybmVsIHdhcyBjb21w aWxlZCBmb3Igd2l0aG91dCByZWNvbXBpbGluZyB0aGUga2VybmVsLg0KDQpzL2xhcmdlL2xhcmdl cg0Kcy90aGVuL3RoYW4NCg0KPiArDQo+ICsJICBUaGUgbWF4aW11bSBzaXplIGlzIHRoZSBjb21t YW5kIGxpbmUgc2l6ZSBmb3IgZWFjaCBwcmVwZW5kIGFuZCBhcHBlbmQuDQo+ICsNCj4gK2NvbmZp ZyBDTURMSU5FX09WRVJSSURFDQo+ICsJYm9vbCAiQnVpbHQtaW4gY29tbWFuZCBsaW5lIG92ZXJy aWRlcyBib290IGxvYWRlciBhcmd1bWVudHMiDQo+ICsJZGVwZW5kcyBvbiBDTURMSU5FX0JPT0wN Cj4gKwloZWxwDQo+ICsJICBTZXQgdGhpcyBvcHRpb24gdG8gJ1knIHRvIGhhdmUgdGhlIGtlcm5l bCBpZ25vcmUgdGhlIGJvb3QgbG9hZGVyDQo+ICsJICBjb21tYW5kIGxpbmUsIGFuZCB1c2UgT05M WSB0aGUgYnVpbHQtaW4gY29tbWFuZCBsaW5lLiBJbiB0aGlzIGNhc2UNCj4gKwkgIGFwcGVuZCBh bmQgcHJlcGVuZCBzdHJpbmdzIGFyZSBjb25jYXRlbmF0ZWQgdG8gZm9ybSB0aGUgZnVsbA0KPiAr CSAgY29tbWFuZCBsaW5lLg0KPiArDQo+ICsJICBUaGlzIGlzIHVzZWQgdG8gd29yayBhcm91bmQg YnJva2VuIGJvb3QgbG9hZGVycy4gIFRoaXMgc2hvdWxkDQo+ICsJICBiZSBzZXQgdG8gJ04nIHVu ZGVyIG5vcm1hbCBjb25kaXRpb25zLg0KPiArZW5kaWYNCg0KQW4gYW5hbHlzaXMgb2Ygd2hhdCBl eGlzdHMgb24gZWFjaCBleGlzdGluZyBhcmNoaXRlY3R1cmUgc2hvdWxkIA0KZGVtb25zdHJhdGUg dGhhdCB5b3UgaGF2ZSBkZWZpbmVkIGFsbCBuZWVkZWQgb3B0aW9ucy4NCg0KPiArDQo+ICAgZW5k bWVudQkJIyBHZW5lcmFsIHNldHVwDQo+ICAgDQo+ICAgc291cmNlICJhcmNoL0tjb25maWciDQo+ IGRpZmYgLS1naXQgYS9saWIvS2NvbmZpZyBiL2xpYi9LY29uZmlnDQo+IGluZGV4IGM2ODZmNGFk YzEyNC4uZDUyMGYxYWE3YzMyIDEwMDY0NA0KPiAtLS0gYS9saWIvS2NvbmZpZw0KPiArKysgYi9s aWIvS2NvbmZpZw0KPiBAQCAtNzI5LDYgKzcyOSwxMCBAQCBjb25maWcgUEFSTUFODQo+ICAgY29u ZmlnIE9CSkFHRw0KPiAgIAl0cmlzdGF0ZSAib2JqYWdnIiBpZiBDT01QSUxFX1RFU1QNCj4gICAN Cj4gK2NvbmZpZyBURVNUX0NNRExJTkUNCj4gKwlkZXBlbmRzIG9uIENNRExJTkVfQk9PTCAmJiAh Q01ETElORV9PVkVSUklERQ0KPiArCXRyaXN0YXRlICJUZXN0IGdlbmVyaWMgY29tbWFuZCBsaW5l IGhhbmRsaW5nIg0KPiArDQoNClB1dCB0aGUgdGVzdCBwYXJ0IGluIGEgc2Vjb25kIHBhdGNoLg0K DQo+ICAgZW5kbWVudQ0KPiAgIA0KPiAgIGNvbmZpZyBHRU5FUklDX0lPUkVNQVANCj4gZGlmZiAt LWdpdCBhL2xpYi9NYWtlZmlsZSBiL2xpYi9NYWtlZmlsZQ0KPiBpbmRleCA3NDAxMDliNmUyYzgu LmFhN2IxNGEwY2VkNyAxMDA2NDQNCj4gLS0tIGEvbGliL01ha2VmaWxlDQo+ICsrKyBiL2xpYi9N YWtlZmlsZQ0KPiBAQCAtNDM4LDMgKzQzOCw2IEBAICQob2JqKS8kKFRFU1RfRk9SVElGWV9MT0cp OiAkKGFkZHByZWZpeCAkKG9iaikvLCAkKFRFU1RfRk9SVElGWV9MT0dTKSkgRk9SQ0UNCj4gICBp ZmVxICgkKENPTkZJR19GT1JUSUZZX1NPVVJDRSkseSkNCj4gICAkKG9iaikvc3RyaW5nLm86ICQo b2JqKS8kKFRFU1RfRk9SVElGWV9MT0cpDQo+ICAgZW5kaWYNCj4gKw0KPiArb2JqLSQoQ09ORklH X1RFU1RfQ01ETElORSkgKz0gdGVzdF9jbWRsaW5lMS5vDQo+ICtvYmotJChDT05GSUdfQ01ETElO RV9CT09MKSAgICAgKz0gZ2VuZXJpY19jbWRsaW5lLm8NCj4gZGlmZiAtLWdpdCBhL2xpYi9nZW5l cmljX2NtZGxpbmUuUyBiL2xpYi9nZW5lcmljX2NtZGxpbmUuUw0KPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjIyMzc2M2Y5ZWViNg0KPiAtLS0gL2Rldi9udWxs DQo+ICsrKyBiL2xpYi9nZW5lcmljX2NtZGxpbmUuUw0KPiBAQCAtMCwwICsxLDUzIEBADQo+ICsv KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLw0KPiArI2luY2x1ZGUgPGxpbnV4 L2V4cG9ydC5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4NCj4gKw0KPiArI2luY2x1ZGUg PGFzbS9zZXR1cC5oPg0KPiArDQo+ICsgICAgICAgIF9fSU5JVERBVEENCj4gKw0KPiArICAgICAg IC5hbGlnbiA4DQo+ICsgICAgICAgLmdsb2JhbCBjbWRsaW5lX3ByZXBlbmQNCj4gK2NtZGxpbmVf cHJlcGVuZDoNCj4gKyAgICAgICAuaWZuYyBDT05GSUdfQ01ETElORV9QUkVQRU5ELCIiDQo+ICsg ICAgICAgLmFzY2lpIENPTkZJR19DTURMSU5FX1BSRVBFTkQNCj4gKyAgICAgICAuc3RyaW5nICIg Ig0KPiArICAgICAgIC5lbHNlDQo+ICsgICAgICAgLmJ5dGUgMHgwDQo+ICsgICAgICAgLmVuZGlm DQo+ICsjaWZkZWYgQ09ORklHX0NNRExJTkVfRVhUUkENCj4gKyAgICAgICAuc3BhY2UgQ09NTUFO RF9MSU5FX1NJWkUgLSAoLi1jbWRsaW5lX3ByZXBlbmQpDQo+ICsgICAgICAgLnNpemUgY21kbGlu ZV9wcmVwZW5kLCBDT01NQU5EX0xJTkVfU0laRQ0KPiArI2VuZGlmIC8qIENPTkZJR19DTURMSU5F X0VYVFJBICovDQo+ICsNCj4gK2NtZGxpbmVfcHJlcGVuZF9lbmQ6DQo+ICsgICAgICAgLnNpemUg Y21kbGluZV9wcmVwZW5kLCAoY21kbGluZV9wcmVwZW5kX2VuZCAtIGNtZGxpbmVfcHJlcGVuZCkN Cj4gKw0KPiArICAgICAgIC5hbGlnbiA4DQo+ICsgICAgICAgLmdsb2JhbCBjbWRsaW5lX3RtcA0K PiArY21kbGluZV90bXA6DQo+ICsgICAgICAgLmlmbmMgQ09ORklHX0NNRExJTkVfUFJFUEVORCwi Ig0KPiArICAgICAgIC5zaXplIGNtZGxpbmVfdG1wLCBDT01NQU5EX0xJTkVfU0laRQ0KPiArICAg ICAgIC5zcGFjZSBDT01NQU5EX0xJTkVfU0laRQ0KPiArICAgICAgIC5lbHNlDQo+ICsgICAgICAg LmJ5dGUgMHgwDQo+ICsgICAgICAgLmVuZGlmDQo+ICtjbWRsaW5lX3RtcF9lbmQ6DQo+ICsgICAg ICAgLnNpemUgY21kbGluZV90bXAsIChjbWRsaW5lX3RtcF9lbmQgLSBjbWRsaW5lX3RtcCkNCj4g Kw0KPiArICAgICAgIC5hbGlnbiA4DQo+ICsgICAgICAgLmdsb2JhbCBjbWRsaW5lX2FwcGVuZA0K PiArICAgICAgIC5zaXplIGNtZGxpbmVfYXBwZW5kLCBDT01NQU5EX0xJTkVfU0laRQ0KPiArY21k bGluZV9hcHBlbmQ6DQo+ICsgICAgICAgLmlmbmMgQ09ORklHX0NNRExJTkVfQVBQRU5ELCIiDQo+ ICsgICAgICAgLmFzY2lpICIgIg0KPiArICAgICAgIC5zdHJpbmcgQ09ORklHX0NNRExJTkVfQVBQ RU5EDQo+ICsgICAgICAgLmVsc2UNCj4gKyAgICAgICAuYnl0ZSAweDANCj4gKyAgICAgICAuZW5k aWYNCj4gKyNpZmRlZiBDT05GSUdfQ01ETElORV9FWFRSQQ0KPiArICAgICAgIC5zcGFjZSBDT01N QU5EX0xJTkVfU0laRSAtICguLWNtZGxpbmVfYXBwZW5kKQ0KPiArI2VuZGlmIC8qIENPTkZJR19D TURMSU5FX0VYVFJBICovDQo+ICtjbWRsaW5lX2FwcGVuZF9lbmQ6DQo+ICsgICAgICAgLnNpemUg Y21kbGluZV9hcHBlbmQsIChjbWRsaW5lX2FwcGVuZF9lbmQgLSBjbWRsaW5lX2FwcGVuZCkNCj4g Kw0KDQpDYW4gYWxsIHRoaXMgYmUgZG9uZSBpbiBhIEMgZmlsZSwgcG9zc2libHkgd2l0aCBpbmxp bmUgYXNzZW1ibHkgaWYgDQpyZXF1aXJlZCwgaW5zdGVhZCBvZiBhbiBhc3NlbWJseSBmaWxlID8N Cg0KPiBkaWZmIC0tZ2l0IGEvbGliL3Rlc3RfY21kbGluZTEuYyBiL2xpYi90ZXN0X2NtZGxpbmUx LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi5iY2FmZmNj MDI0ZTQNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9saWIvdGVzdF9jbWRsaW5lMS5jDQo+IEBA IC0wLDAgKzEsMTM5IEBADQo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1v bmx5DQoNCldoeSAyLjAtb25seSA/IE5vdCBzdXJlIGl0IGlzIHRoZSBwcmVmZXJyZWQgbGljZW5j ZSBmb3IgbmV3IGZpbGVzIHVubGVzcyANCnRoZXkgYXJlIHRpZWQgdG8gc29tZXRoaW5nIGFscmVh ZHkgZXhpc3RpbmcuDQoNCj4gKw0KPiArI2RlZmluZSBwcl9mbXQoZm10KSBLQlVJTERfTU9ETkFN RSAiOiAiIGZtdA0KPiArDQo+ICsjaW5jbHVkZSA8bGludXgvYml0bWFwLmg+DQo+ICsjaW5jbHVk ZSA8bGludXgvaW5pdC5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KPiArI2luY2x1 ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L3ByaW50ay5oPg0KPiArI2lu Y2x1ZGUgPGxpbnV4L3NsYWIuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4NCj4gKyNp bmNsdWRlIDxsaW51eC9jbWRsaW5lLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPg0K PiArDQo+ICsjaW5jbHVkZSAiLi4vdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3NlbGZ0ZXN0X21v ZHVsZS5oIg0KDQpJcyBpdCBjb21tb24gcHJhY3RpY2UgdG8gaW5jbHVkZSB0b29scy90ZXN0aW5n LyBzdHVmZiBpbnRvIGtlcm5lbCA/DQoNCj4gKw0KPiArS1NUTV9NT0RVTEVfR0xPQkFMUygpOw0K PiArDQo+ICtjaGFyIHRlc3QxX3ByZXBlbmRbXSA9ICJwcmVwZW5kICI7DQo+ICtjaGFyIHRlc3Qx X2FwcGVuZFtdID0gIiBhcHBlbmQiOw0KPiArY2hhciB0ZXN0MV9ib290bG9hZGVyX2FyZ3NbXSA9 ICJjb25zb2xlPXR0eVMwIGxvZ19sZXZlbD0zIjsNCj4gK2NoYXIgdGVzdDFfcmVzdWx0W10gPSAi cHJlcGVuZCBjb25zb2xlPXR0eVMwIGxvZ19sZXZlbD0zIGFwcGVuZCI7DQo+ICsNCj4gK2NoYXIg dGVzdDJfYXBwZW5kW10gPSAiIGFwcGVuZCI7DQo+ICtjaGFyIHRlc3QyX2Jvb3Rsb2FkZXJfYXJn c1tdID0gImNvbnNvbGU9dHR5UzAgbG9nX2xldmVsPTMiOw0KPiArY2hhciB0ZXN0Ml9yZXN1bHRb XSA9ICJjb25zb2xlPXR0eVMwIGxvZ19sZXZlbD0zIGFwcGVuZCI7DQo+ICsNCj4gK2NoYXIgdGVz dDNfcHJlcGVuZFtdID0gInByZXBlbmQgIjsNCj4gK2NoYXIgdGVzdDNfYm9vdGxvYWRlcl9hcmdz W10gPSAiY29uc29sZT10dHlTMCBsb2dfbGV2ZWw9MyI7DQo+ICtjaGFyIHRlc3QzX3Jlc3VsdFtd ID0gInByZXBlbmQgY29uc29sZT10dHlTMCBsb2dfbGV2ZWw9MyI7DQo+ICsNCj4gK2NoYXIgdGVz dDRfYm9vdGxvYWRlcl9hcmdzW10gPSAiY29uc29sZT10dHlTMCBsb2dfbGV2ZWw9MyI7DQo+ICtj aGFyIHRlc3Q0X3Jlc3VsdFtdID0gImNvbnNvbGU9dHR5UzAgbG9nX2xldmVsPTMiOw0KPiArDQo+ ICtjaGFyIHRlc3Q1X3ByZXBlbmRbXSA9ICJwcmVwZW5kICI7DQo+ICtjaGFyIHRlc3Q1X2FwcGVu ZFtdID0gIiBhcHBlbmQiOw0KPiArc3RhdGljIGNoYXIgdGVzdDVfYm9vdGxvYWRlcl9hcmdzW10g PQ0KPiArIjAwMDAwMDAwMDAwMDAwIDAxMTExMTExMTExMTExMSAwMjIyMjIyMjIyMjIyMjIyIDAz MzMzMzMzMzMzMzMzMyAiDQo+ICsiMTAwMDAwMDAwMDAwMDAgMTExMTExMTExMTExMTExIDEyMjIy MjIyMjIyMjIyMjIgMTMzMzMzMzMzMzMzMzMzICINCj4gKyIyMDAwMDAwMDAwMDAwMCAyMTExMTEx MTExMTExMTEgMjIyMjIyMjIyMjIyMjIyMiAyMzMzMzMzMzMzMzMzMzMgIg0KPiArIjMwMDAwMDAw MDAwMDAwIDMxMTExMTExMTExMTExMSAzMjIyMjIyMjIyMjIyMjIyIDMzMzMzMzMzMzMzMzMzMyAi DQo+ICsiNDAwMDAwMDAwMDAwMDAgNDExMTExMTExMTExMTExIDQyMjIyMjIyMjIyMjIyMjIgNDMz MzMzMzMzMzMzMzMzICINCj4gKyI1MDAwMDAwMDAwMDAwMCA1MTExMTExMTExMTExMTEgNTIyMjIy MjIyMjIyMjIyMiA1MzMzMzMzMzMzMzMzMzMgIg0KPiArIjYwMDAwMDAwMDAwMDAwIDYxMTExMTEx MTExMTExMSA2MjIyMjIyMjIyMjIyMjIyIDYzMzMzMzMzMzMzMzMzMyAiDQo+ICsiNzAwMDAwMDAw MDAwMDAgNzExMTExMTExMTExMTExIDcyMjIyMjIyMjIyMjIyMjIgNzMzMzMzMzMzMzMzMzMzIjsN Cj4gK3N0YXRpYyBjaGFyIHRlc3Q1X3Jlc3VsdFtdID0NCj4gKyJwcmVwZW5kIDAwMDAwMDAwMDAw MDAwIDAxMTExMTExMTExMTExMSAwMjIyMjIyMjIyMjIyMjIyIDAzMzMzMzMzMzMzMzMzMyAiDQo+ ICsiMTAwMDAwMDAwMDAwMDAgMTExMTExMTExMTExMTExIDEyMjIyMjIyMjIyMjIyMjIgMTMzMzMz MzMzMzMzMzMzICINCj4gKyIyMDAwMDAwMDAwMDAwMCAyMTExMTExMTExMTExMTEgMjIyMjIyMjIy MjIyMjIyMiAyMzMzMzMzMzMzMzMzMzMgIg0KPiArIjMwMDAwMDAwMDAwMDAwIDMxMTExMTExMTEx MTExMSAzMjIyMjIyMjIyMjIyMjIyIDMzMzMzMzMzMzMzMzMzMyAiDQo+ICsiNDAwMDAwMDAwMDAw MDAgNDExMTExMTExMTExMTExIDQyMjIyMjIyMjIyMjIyMjIgNDMzMzMzMzMzMzMzMzMzICINCj4g KyI1MDAwMDAwMDAwMDAwMCA1MTExMTExMTExMTExMTEgNTIyMjIyMjIyMjIyMjIyMiA1MzMzMzMz MzMzMzMzMzMgIg0KPiArIjYwMDAwMDAwMDAwMDAwIDYxMTExMTExMTExMTExMSA2MjIyMjIyMjIy MjIyMjIyIDYzMzMzMzMzMzMzMzMzMyAiDQo+ICsiNzAwMDAwMDAwMDAwMDAgNzExMTExMTExMTEx MTExIDcyMjIyMjIyMjIyMjIyMjIgNzMzMzMzMyI7DQo+ICsNCj4gK2NoYXIgdGVzdDVfYm9vdF9j b21tYW5kX2xpbmVbQ09NTUFORF9MSU5FX1NJWkVdOw0KPiArDQo+ICtjaGFyIHRlc3RfdG1wW0NP TU1BTkRfTElORV9TSVpFXTsNCj4gKw0KPiArY2hhciB0ZXN0X2Jvb3RfY29tbWFuZF9saW5lW0NP TU1BTkRfTElORV9TSVpFXTsNCj4gKw0KPiArc3RhdGljIHZvaWQgX19pbml0IHNlbGZ0ZXN0KHZv aWQpDQo+ICt7DQo+ICsJYm9vbCByZXN1bHQ7DQo+ICsNCj4gKwkvKiBOb3JtYWwgb3BlcmF0aW9u ICovDQo+ICsJc3RyY3B5KHRlc3RfYm9vdF9jb21tYW5kX2xpbmUsIHRlc3QxX2Jvb3Rsb2FkZXJf YXJncyk7DQo+ICsJdGVzdF90bXBbMF0gPSAnXDAnOw0KPiArCXJlc3VsdCA9IF9fY21kbGluZV9h ZGRfYnVpbHRpbih0ZXN0X2Jvb3RfY29tbWFuZF9saW5lLCB0ZXN0X3RtcCwgdGVzdDFfcHJlcGVu ZCwgdGVzdDFfYXBwZW5kLCBDT01NQU5EX0xJTkVfU0laRSwgQ01ETElORV9TVFJMRU4sIENNRExJ TkVfU1RSTENBVCk7DQo+ICsNCj4gKwlpZiAocmVzdWx0ID09IHRydWUgJiYgIXN0cm5jbXAodGVz dF9ib290X2NvbW1hbmRfbGluZSwgdGVzdDFfcmVzdWx0LCBDT01NQU5EX0xJTkVfU0laRSkpIHsN Cj4gKwkJcHJfaW5mbygidGVzdDEgc3VjY2Vzcy5cbiIpOw0KPiArCX0gZWxzZSB7DQo+ICsJCXBy X2luZm8oInRlc3QxIGZhaWxlZC4gT1VUUFVUIEJFTE9XOlxuIik7DQo+ICsJCXByX2luZm8oIlwi JXNcIlxuIiwgdGVzdF9ib290X2NvbW1hbmRfbGluZSk7DQo+ICsJCWZhaWxlZF90ZXN0cysrOw0K PiArCX0NCj4gKwl0b3RhbF90ZXN0cysrOw0KPiArDQo+ICsJLyogTWlzc2luZyBwcmVwZW5kICov DQo+ICsJc3RyY3B5KHRlc3RfYm9vdF9jb21tYW5kX2xpbmUsIHRlc3QyX2Jvb3Rsb2FkZXJfYXJn cyk7DQo+ICsJdGVzdF90bXBbMF0gPSAnXDAnOw0KPiArCXJlc3VsdCA9IF9fY21kbGluZV9hZGRf YnVpbHRpbih0ZXN0X2Jvb3RfY29tbWFuZF9saW5lLCB0ZXN0X3RtcCwgIiIsIHRlc3QyX2FwcGVu ZCwgQ09NTUFORF9MSU5FX1NJWkUsIENNRExJTkVfU1RSTEVOLCBDTURMSU5FX1NUUkxDQVQpOw0K PiArDQo+ICsJaWYgKHJlc3VsdCA9PSB0cnVlICYmICFzdHJuY21wKHRlc3RfYm9vdF9jb21tYW5k X2xpbmUsIHRlc3QyX3Jlc3VsdCwgQ09NTUFORF9MSU5FX1NJWkUpKSB7DQo+ICsJCXByX2luZm8o InRlc3QyIHN1Y2Nlc3MuXG4iKTsNCj4gKwl9IGVsc2Ugew0KPiArCQlwcl9pbmZvKCJ0ZXN0MiBm YWlsZWQuIE9VVFBVVCBCRUxPVzpcbiIpOw0KPiArCQlwcl9pbmZvKCJcIiVzXCJcbiIsIHRlc3Rf Ym9vdF9jb21tYW5kX2xpbmUpOw0KPiArCQlmYWlsZWRfdGVzdHMrKzsNCj4gKwl9DQoNCkNhbiB5 b3UgcmVmYWN0b3IgYW5kIGF2b2lkIHJlcGVhdGluZyB0aG9zZSA3IGxpbmVzIGZpdmUgdGltZXMg Pw0KDQo+ICsJdG90YWxfdGVzdHMrKzsNCj4gKw0KPiArCS8qIE1pc3NpbmcgYXBwZW5kICovDQo+ ICsJc3RyY3B5KHRlc3RfYm9vdF9jb21tYW5kX2xpbmUsIHRlc3QzX2Jvb3Rsb2FkZXJfYXJncyk7 DQo+ICsJdGVzdF90bXBbMF0gPSAnXDAnOw0KPiArCXJlc3VsdCA9IF9fY21kbGluZV9hZGRfYnVp bHRpbih0ZXN0X2Jvb3RfY29tbWFuZF9saW5lLCB0ZXN0X3RtcCwgdGVzdDNfcHJlcGVuZCwgIiIs IENPTU1BTkRfTElORV9TSVpFLCBDTURMSU5FX1NUUkxFTiwgQ01ETElORV9TVFJMQ0FUKTsNCj4g Kw0KPiArCWlmIChyZXN1bHQgPT0gdHJ1ZSAmJiAhc3RybmNtcCh0ZXN0X2Jvb3RfY29tbWFuZF9s aW5lLCB0ZXN0M19yZXN1bHQsIENPTU1BTkRfTElORV9TSVpFKSkgew0KPiArCQlwcl9pbmZvKCJ0 ZXN0MyBzdWNjZXNzLlxuIik7DQo+ICsJfSBlbHNlIHsNCj4gKwkJcHJfaW5mbygidGVzdDMgZmFp bGVkLiBPVVRQVVQgQkVMT1c6XG4iKTsNCj4gKwkJcHJfaW5mbygiXCIlc1wiXG4iLCB0ZXN0X2Jv b3RfY29tbWFuZF9saW5lKTsNCj4gKwkJZmFpbGVkX3Rlc3RzKys7DQo+ICsJfQ0KPiArCXRvdGFs X3Rlc3RzKys7DQo+ICsNCj4gKwkvKiBNaXNzaW5nIGFwcGVuZCBhbmQgcHJlcGVuZCAqLw0KPiAr CXN0cmNweSh0ZXN0X2Jvb3RfY29tbWFuZF9saW5lLCB0ZXN0NF9ib290bG9hZGVyX2FyZ3MpOw0K PiArCXRlc3RfdG1wWzBdID0gJ1wwJzsNCj4gKwlyZXN1bHQgPSBfX2NtZGxpbmVfYWRkX2J1aWx0 aW4odGVzdF9ib290X2NvbW1hbmRfbGluZSwgdGVzdF90bXAsICIiLCAiIiwgQ09NTUFORF9MSU5F X1NJWkUsIENNRExJTkVfU1RSTEVOLCBDTURMSU5FX1NUUkxDQVQpOw0KPiArDQo+ICsJaWYgKHJl c3VsdCA9PSB0cnVlICYmICFzdHJuY21wKHRlc3RfYm9vdF9jb21tYW5kX2xpbmUsIHRlc3Q0X3Jl c3VsdCwgQ09NTUFORF9MSU5FX1NJWkUpKSB7DQo+ICsJCXByX2luZm8oInRlc3Q0IHN1Y2Nlc3Mu XG4iKTsNCj4gKwl9IGVsc2Ugew0KPiArCQlwcl9pbmZvKCJ0ZXN0NCBmYWlsZWQuIE9VVFBVVCBC RUxPVzpcbiIpOw0KPiArCQlwcl9pbmZvKCJcIiVzXCJcbiIsIHRlc3RfYm9vdF9jb21tYW5kX2xp bmUpOw0KPiArCQlmYWlsZWRfdGVzdHMrKzsNCj4gKwl9DQo+ICsJdG90YWxfdGVzdHMrKzsNCj4g Kw0KPiArCS8qIEFscmVhZHkgZnVsbCBib290IGFyZ3VtZW50cyAqLw0KPiArCXN0cmNweSh0ZXN0 NV9ib290X2NvbW1hbmRfbGluZSwgdGVzdDVfYm9vdGxvYWRlcl9hcmdzKTsNCj4gKwl0ZXN0X3Rt cFswXSA9ICdcMCc7DQo+ICsJcmVzdWx0ID0gX19jbWRsaW5lX2FkZF9idWlsdGluKHRlc3Q1X2Jv b3RfY29tbWFuZF9saW5lLCB0ZXN0X3RtcCwgdGVzdDVfcHJlcGVuZCwgdGVzdDVfYXBwZW5kLCA1 MTIsIENNRExJTkVfU1RSTEVOLCBDTURMSU5FX1NUUkxDQVQpOw0KPiArDQo+ICsJaWYgKHJlc3Vs dCA9PSBmYWxzZSAmJiAhc3RybmNtcCh0ZXN0NV9ib290X2NvbW1hbmRfbGluZSwgdGVzdDVfcmVz dWx0LCBDT01NQU5EX0xJTkVfU0laRSkpIHsNCj4gKwkJcHJfaW5mbygidGVzdDUgc3VjY2Vzcy5c biIpOw0KPiArCX0gZWxzZSB7DQo+ICsJCXByX2luZm8oInRlc3Q1IGZhaWxlZC4gT1VUUFVUIEJF TE9XOlxuIik7DQo+ICsJCXByX2luZm8oIlwiJXNcIlxuIiwgdGVzdDVfYm9vdF9jb21tYW5kX2xp bmUpOw0KPiArCQlmYWlsZWRfdGVzdHMrKzsNCj4gKwl9DQo+ICsJdG90YWxfdGVzdHMrKzsNCj4g K30NCj4gKw0KPiArS1NUTV9NT0RVTEVfTE9BREVSUyhjbWRsaW5lX3Rlc3QpOw0KPiArTU9EVUxF X0FVVEhPUigiRGFuaWVsIFdhbGtlciA8ZGFuaWVsd2FAY2lzY28uY29tPiIpOw0KPiArTU9EVUxF X0xJQ0VOU0UoIkdQTCIpOw0K