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 83AE6C3DA7A for ; Thu, 5 Jan 2023 17:53:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234449AbjAERxf (ORCPT ); Thu, 5 Jan 2023 12:53:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60716 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235388AbjAERxV (ORCPT ); Thu, 5 Jan 2023 12:53:21 -0500 Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01on2080.outbound.protection.outlook.com [40.107.9.80]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6D012559F0; Thu, 5 Jan 2023 09:53:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M1QqRH3mhMRO9xJK9+8iYYvMSkxAZpXwufWILiVdMd3Cg3/SzlaIuT8ms28hSMjZRmAnEag/dBOo4nF3FNSDcsdRDrvbC/v5SQqtN5A37plrRc93YLq1mr3ZUC43EEZtPBBMku+TsdVAXNKnN2AwW6avzIyc4dNRTO6wtQf8D9DJ4WgllTz9TfxMS1iBYuKVgcvhjnXhi+D60ha+1cVpIe0oWKDPSwJUMRdigmG+lQIjHiC2BgrLKQ6OWx6pjIG2vsIqEC7oQWlHf4XWAjlfy0e6NIiHv0x25jT4g6j/PTF39sfB10PQLs2ynkGqOG+4zOjlflMMdZsXlWHoptjuug== 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=q4hKEaiFGaVaC2ZiEP7gVGOzz9rTUs8JfhvSxDkBkro=; b=oaYOR/30t+m77vw5FNB4HcWQWUyj28l/pjb43owS1yFSeANj4zovgcxptuCknbraC6I8VT3Kj7kbauIHyhWinxS7IiYttNNwxjAb/Fio0HhXfm5aRVtcYcmeEmCJIgyaVTvOCu4kXLGf4M7Sc6vmd0D/JDuWJ9j4hALm60iy6f4Li6L0KQ0BcFCstFZC5qlOqP2nOOjNbj/SE4MGBP8O/5F/6mdhrwdGQenvNm1iBAyxjJ1I8IN/d1llN8h7kNBEg3GduOkRGECgY2vFDPNRKGpwS9e1M1I1Tj0tAE01+ue8OyNfG4YRkjyChBaLN9W0hzCX0884edqLNtv43G0oAw== 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=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=q4hKEaiFGaVaC2ZiEP7gVGOzz9rTUs8JfhvSxDkBkro=; b=1MUkBacxHxwYoHHf0EdbV348eoBizNfeKr39dVXH+gu0le6C3M9+V20F+oHeQzlg9StgB/ClhYNIxkkvwXtMhlsA9CR7cv2mJTOoGk3VBf1bTozdo9RFAA99cKl+Jqs/OTvNH8uvh/F/7YReogqGSTxw9jveozHjJfyoFeuwcY079SIEp4/9uNOJd5P70RtyaDkhXjOIig0W78VlLBHX0FSVLRD3AaIV6HaTPVlgH4NKij5JcI6/L3LKdGOoOKInX1M2TM8N2L9lKuukPVTymRnkT57+xBlC5X469lFqkWVIpVcZcmAyasj5yU+DAMbXa/TOLbbiAxy+nzMq6mmqVg== Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by MRZP264MB1640.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 17:53:14 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::27ed:a50:8586:d28c]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::27ed:a50:8586:d28c%3]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 17:53:14 +0000 From: Christophe Leroy To: "tong@infragraf.org" , "bpf@vger.kernel.org" , "netdev@vger.kernel.org" , "linux-arm-kernel@lists.infradead.or" , "loongarch@lists.linux.dev" , "linux-mips@vger.kernel.org" , "linuxppc-dev@lists.ozlabs.org" , "linux-riscv@lists.infradead.org" , "linux-s390@vger.kernel.org" , "sparclinux@vger.kernel.org" CC: Hao Luo , Daniel Borkmann , John Fastabend , Alexei Starovoitov , Andrii Nakryiko , Song Liu , Stanislav Fomichev , Jiri Olsa , Hou Tao , KP Singh , Yonghong Song , Martin KaFai Lau Subject: Re: [bpf-next v2] bpf: drop deprecated bpf_jit_enable == 2 Thread-Topic: [bpf-next v2] bpf: drop deprecated bpf_jit_enable == 2 Thread-Index: AQHZILjtdiBl24vDM0uhRRtlAlrCCa6QG7gA Date: Thu, 5 Jan 2023 17:53:14 +0000 Message-ID: References: <20230105030614.26842-1-tong@infragraf.org> In-Reply-To: <20230105030614.26842-1-tong@infragraf.org> Accept-Language: fr-FR, en-US Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 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_|MRZP264MB1640:EE_ x-ms-office365-filtering-correlation-id: d6d68274-ea90-4eea-f0e0-08daef45b7c6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ywPHLhxmK8lgFfgPpR2c0niI25X/PGoVqWYcIdGQJIzk4gvOHDxPeTD6ukfpV2U58J9Xk2Bq8sPrlK5Ia7npl60vzNGeC/PnTHryJ8nS78Re3ihZbxVWE9EprwxALWZfIVna7l+jyXmNdFhzeLsjLwccRLJ6RgLVA6S1D6xEMBkxwby/Mi/+dOiSSau4QEo1s8e+Clwbs1U2/uLxgPuHjMU3Ub46WoGASGzffC54pUr89QuXnDTGDyUb0L9prMRDRvxbvABqKhQeS3/zp0TTs/6tG1YiODomz3KM/+NDgqUjbBsks+YKZ354Dopvz0Gs4Fc0mwPML18FdWZd9JnuZgWzVz7dnRSvRRVQE4iFvxYDzBJjJgqfD+EDR9iZm05Vul1IrMgWgvGjltWBS0byq+S77oW8NSbwvu9iIoBfD765Kwd+NGOxF4JKvg/IUzixWHQtGRtx+xjW0jgbGJxmsXi3ilysMOByLH6fjzFgzAxfuHVmfSdvcurWDPuhTGyf7waUOnw8W6Cm+EcoGam8WDV9E4yKaEm7P9X8UsOvLhCCB2y+HKhH2Pwtb7ukycXWKLFBRe06X328kKg5wWhXCuarQyriR+UJXhPnYGQB6XnXSaGWaxnrl6T5CD7BbFGdVIPQxxuIrqB2/gMCpGckveDlZlBCq94KilsqR7KPj8yGrNXSMcKqgCInFWCtKTtkoHymC4BKv7S8R3KC8oHW9q43/E0JO5b9e1rIzLrYepTHjDMuhk5fFrxalTokIFYbVseAIJwoKHoW04yNISc0iQ== 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:(13230022)(4636009)(396003)(376002)(136003)(366004)(346002)(39850400004)(451199015)(7416002)(41300700001)(91956017)(76116006)(5660300002)(66446008)(66556008)(8676002)(64756008)(66476007)(66946007)(8936002)(4326008)(2906002)(316002)(54906003)(110136005)(6506007)(71200400001)(6486002)(6512007)(478600001)(186003)(44832011)(31686004)(31696002)(86362001)(2616005)(83380400001)(66574015)(36756003)(921005)(38100700002)(30864003)(122000001)(38070700005)(43740500002)(45980500001)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?blVzRDRWMnlpQVFWMEtOU2JYbkxwWnZ2S2RSMEZ6RlRwdzhTdGRBcUFBSmto?= =?utf-8?B?SXZrTTRZK3BxMWJ5OEljRy9FNkErTlJVSmNvMERFNHFObG5WdHdIakhidll3?= =?utf-8?B?WUd1ZlNYcHY4WlRQVVNFNDZuall2dE1CKzYyWTg3dy9EcVhsWlkwYlIrYnJy?= =?utf-8?B?Tjl5eFVTMXA3MGJaOE9qK2NGdDlPT0JuRkFhOFoxNlcza3BaOHgwYS84WVl4?= =?utf-8?B?RWRmR1F3TVc3cWk3akk1MXRuTHYvWGpFcUovUVI3amVHZWlPUWNSckZkZG5E?= =?utf-8?B?elNCQVNSLzRJMnQxY2tXdHI4T3pGeEd1eG9IOU41b2FvYTZMb2xIWm5NL0JI?= =?utf-8?B?LzY0N2lsYjBCNkd6QTlHTlJtVGp4MzZIMnUyTm14b2I5TlJ6WnQxZlczQ29v?= =?utf-8?B?cTZQdm9BYlNuTXhnN2xmdFY4MER1U3IvUzNRaDl0Njk4Y2h4UXpGdStpYkFw?= =?utf-8?B?Nm8vUFI3RzZJbitmL0N1elhLSEtQM3NtK2M5a0NZZzhieWVtdlloRVV3Q2pM?= =?utf-8?B?eW1jMlFwZzkweTJJTTZoVkxVSnNrK0M5Szh6bzYxM0srUlFGc0pLVTBsZHZ6?= =?utf-8?B?a1RGZnZvaEp4bkVZWE5CTGF0dkJwVU9tTFA0S0dnU05OWnZBbWFLS0k0RGcw?= =?utf-8?B?RXhtU09NUjBHL3BkckhCdFdUZ2dGSzVic1ZHNnc1WHRUL0xNTzV0elg2U2ha?= =?utf-8?B?b05jaENqb3pYMW5QaUNseEsvakc5L1ZWYjh6U2tqTTBocjY2YWo1RUljSVhH?= =?utf-8?B?OGRmUXZmaVkrcWRIREJtSXl2eFNJZXcvQTgxRjhEcE5uNldkeE9KUm9Id1ZK?= =?utf-8?B?TmNEUjRQdzMwYjBqK0lEZSsxNFBBYXFLV0VkZnc3NStJNmROL0VHUzVBY3hy?= =?utf-8?B?TlV5YjRveGQvb0dKZExuYVhSVm4xMllwRmVjK3VMZDRqVXF6ekpPajhQRGhN?= =?utf-8?B?bzZGZnBjWXZiUTBNd1pON2phZmRJdXpNM2lkenJjMGNzaWtEbkFnbzhPd3Np?= =?utf-8?B?UE5EY1pWSGxJc1pPT01YclJqWG1yUUs3Si9JL2VMTWlDOEJ5c1hvSzNRTExE?= =?utf-8?B?Y1grbHVvVHlwZjFZZlJxMzM1cks0czdHd2xIZFVvSDN1ZFBLcWFwUG9JbDBP?= =?utf-8?B?OGJVblBMZkozTVRmVmZGTjBLV0lueUpURGNpTTZpYzB5NTB0ZmtpbkErMEdB?= =?utf-8?B?aHdkdG10YWJsbkFScVZuWlhhOU5rOXpIZzRCT3IrZ2dSRkdnUlhrUUxwdXhl?= =?utf-8?B?QS96aUZFS21YZ1ByVVFUN2tzRjU5b3pLVHQza1BhTHdMMGhhaE1DSWdCZm5W?= =?utf-8?B?SUpMOWROQ3h5NndGKzB4R0RTSDBTMHFzbUFkN1R3VXFRTllzMFJxSS9hbjU4?= =?utf-8?B?TWQwSDcxNXZQM0MvWFhUM1NRWW04ZkZsRzh6YUMyVUVILzJyQzN5c0VrWFA5?= =?utf-8?B?ZlFVSWNWTThObnNaNzdZSDlodFVtalZYMVE4ZEw1OGZVU0svcXBGTzd3cUdy?= =?utf-8?B?N1M5bEg0cE1LWnplMTNVV1lqKzErSzVLWFZQNGc5ZzE2dC9HYnJRMjR6RFRx?= =?utf-8?B?Tyt3M3NyaWs5dDlHZXpONS9HYzFZVEJaa3FkMGxlZXZVemlCUmVSSFFDbzJE?= =?utf-8?B?NHc2dVBXZHVPQXZPSjAzVzRvQjVjb0wrSDFHY0ZPeGpBUTNPWlVLWURsVVE0?= =?utf-8?B?eW4yV1k0STU5UXlzSEExNXg1b2J3U3JyR3RjNVlqN0JCdVlQUklHQ1Z2aXVE?= =?utf-8?B?Ris1b3ZIOGdBVzNLa0hXdmcyeFJjNk0vR0ZnUUZHL1lQWTR1TXM0TW9ta2Jo?= =?utf-8?B?eVpoYWxMTUMzVUpndmtBOENWUU9WMUZmZCtmQi9CeVRHTW9wdlYvWlpMbm4v?= =?utf-8?B?Q1FFQXMrTDdFbGVsNW5PVW1IcVprUW9Yem5SV004SWRPVzkvdStYYzhROGl0?= =?utf-8?B?VUFldEx6aElDUVE0Q0JkSTIySFFMQUV0RlhBMFUxaC8wYldXNnQwRXlwTllp?= =?utf-8?B?STkvL0dvd2xIbitUaVM2Y05tQWpOdk5xZGxud3FBd0hDRlF1NVBoSVJobEtC?= =?utf-8?B?V0RQS1dWa2t5KzhwQUYxeStYMFowWTk4cWZ0NFp0REZaYnNaVC8wSk9KTkVD?= =?utf-8?B?OEwxYjIxa0M3RHlzNmVnN005RFlOV2h1TUpPTWhyOEhCaFpRMElybHRpTlpB?= =?utf-8?B?dlJUYktSa2I1YVJGeGVIQnFHajZ0VkdtNGxaeStubFo3bXR0cGgrTkI1VjZx?= =?utf-8?B?VzNQZG5DaGt6WmZVZ0dTZkVralJRPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: <940AE5E01506AD4BA3DA6490A2C10211@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: d6d68274-ea90-4eea-f0e0-08daef45b7c6 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 17:53:14.0771 (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: xX3//ZSA87x39yYHKwHYGYlLnjWyRoz+lBm9EMj0MEUe6+4KyTz69LtJvSW7wVoB2yVZBUwtpWWvmoEwv5k+tIPoA1D9NjQKEdF/mShBRTA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRZP264MB1640 Precedence: bulk List-ID: X-Mailing-List: linux-s390@vger.kernel.org DQoNCkxlIDA1LzAxLzIwMjMgw6AgMDQ6MDYsIHRvbmdAaW5mcmFncmFmLm9yZyBhIMOpY3JpdMKg Og0KPiBGcm9tOiBUb25naGFvIFpoYW5nIDx0b25nQGluZnJhZ3JhZi5vcmc+DQo+IA0KPiBUaGUg eDg2XzY0IGNhbid0IGR1bXAgdGhlIHZhbGlkIGluc24gaW4gdGhpcyB3YXkuIEEgdGVzdCBCUEYg cHJvZw0KPiB3aGljaCBpbmNsdWRlIHN1YnByb2c6DQo+IA0KPiAkIGxsdm0tb2JqZHVtcCAtZCBz dWJwcm9nLm8NCj4gRGlzYXNzZW1ibHkgb2Ygc2VjdGlvbiAudGV4dDoNCj4gMDAwMDAwMDAwMDAw MDAwMCA8c3VicHJvZz46DQo+ICAgICAgICAgMDogICAgICAgMTggMDEgMDAgMDAgNzMgNzUgNjIg NzAgMDAgMDAgMDAgMDAgNzIgNmYgNjcgMDAgcjEgPSAyOTExNDQ1OTkwMzY1MzIzNSBsbA0KPiAg ICAgICAgIDI6ICAgICAgIDdiIDFhIGY4IGZmIDAwIDAwIDAwIDAwICoodTY0ICopKHIxMCAtIDgp ID0gcjENCj4gICAgICAgICAzOiAgICAgICBiZiBhMSAwMCAwMCAwMCAwMCAwMCAwMCByMSA9IHIx MA0KPiAgICAgICAgIDQ6ICAgICAgIDA3IDAxIDAwIDAwIGY4IGZmIGZmIGZmIHIxICs9IC04DQo+ ICAgICAgICAgNTogICAgICAgYjcgMDIgMDAgMDAgMDggMDAgMDAgMDAgcjIgPSA4DQo+ICAgICAg ICAgNjogICAgICAgODUgMDAgMDAgMDAgMDYgMDAgMDAgMDAgY2FsbCA2DQo+ICAgICAgICAgNzog ICAgICAgOTUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgZXhpdA0KPiBEaXNhc3NlbWJseSBvZiBzZWN0 aW9uIHJhd190cC9zeXNfZW50ZXI6DQo+IDAwMDAwMDAwMDAwMDAwMDAgPGVudHJ5PjoNCj4gICAg ICAgICAwOiAgICAgICA4NSAxMCAwMCAwMCBmZiBmZiBmZiBmZiBjYWxsIC0xDQo+ICAgICAgICAg MTogICAgICAgYjcgMDAgMDAgMDAgMDAgMDAgMDAgMDAgcjAgPSAwDQo+ICAgICAgICAgMjogICAg ICAgOTUgMDAgMDAgMDAgMDAgMDAgMDAgMDAgZXhpdA0KPiANCj4ga2VybmVsIHByaW50IG1lc3Nh Z2U6DQo+IFsgIDU4MC43NzUzODddIGZsZW49OCBwcm9nbGVuPTUxIHBhc3M9MyBpbWFnZT1mZmZm ZmZmZmEwMDBjMjBjIGZyb209a3Byb2JlLWxvYWQgcGlkPTE2NDMNCj4gWyAgNTgwLjc3NzIzNl0g SklUIGNvZGU6IDAwMDAwMDAwOiBjYyBjYyBjYyBjYyBjYyBjYyBjYyBjYyBjYyBjYyBjYyBjYyBj YyBjYyBjYyBjYw0KPiBbICA1ODAuNzc5MDM3XSBKSVQgY29kZTogMDAwMDAwMTA6IGNjIGNjIGNj IGNjIGNjIGNjIGNjIGNjIGNjIGNjIGNjIGNjIGNjIGNjIGNjIGNjDQo+IFsgIDU4MC43ODA3Njdd IEpJVCBjb2RlOiAwMDAwMDAyMDogY2MgY2MgY2MgY2MgY2MgY2MgY2MgY2MgY2MgY2MgY2MgY2Mg Y2MgY2MgY2MgY2MNCj4gWyAgNTgwLjc4MjU2OF0gSklUIGNvZGU6IDAwMDAwMDMwOiBjYyBjYyBj Yw0KPiANCj4gJCBicGZfaml0X2Rpc2FzbQ0KPiA1MSBieXRlcyBlbWl0dGVkIGZyb20gSklUIGNv bXBpbGVyIChwYXNzOjMsIGZsZW46OCkNCj4gZmZmZmZmZmZhMDAwYzIwYyArIDx4PjoNCj4gICAg IDA6ICAgaW50Mw0KPiAgICAgMTogICBpbnQzDQo+ICAgICAyOiAgIGludDMNCj4gICAgIDM6ICAg aW50Mw0KPiAgICAgNDogICBpbnQzDQo+ICAgICA1OiAgIGludDMNCj4gICAgIC4uLg0KPiANCj4g VW50aWwgYnBmX2ppdF9iaW5hcnlfcGFja19maW5hbGl6ZSBpcyBpbnZva2VkLCB3ZSBjb3B5IHJ3 X2hlYWRlciB0byBoZWFkZXINCj4gYW5kIHRoZW4gaW1hZ2UvaW5zbiBpcyB2YWxpZC4gQlRXLCB3 ZSBjYW4gdXNlIHRoZSAiYnBmdG9vbCBwcm9nIGR1bXAiIEpJVGVkIGluc3RydWN0aW9ucy4NCg0K TkFDSy4NCg0KQmVjYXVzZSB0aGUgZmVhdHVyZSBpcyBidWdneSBvbiB4ODZfNjQsIHlvdSByZW1v dmUgaXQgZm9yIGFsbCANCmFyY2hpdGVjdHVyZXMgPw0KDQpPbiBwb3dlcnBjIGJwZl9qaXRfZW5h YmxlID09IDIgd29ya3MgYW5kIGlzIHZlcnkgdXNlZnVsbC4NCg0KTGFzdCB0aW1lIEkgdHJpZWQg dG8gdXNlIGJwZnRvb2wgb24gcG93ZXJwYy8zMiBpdCBkaWRuJ3Qgd29yay4gSSBkb24ndCANCnJl bWVtYmVyIHRoZSBkZXRhaWxzLCBJIHRoaW5rIGl0IHdhcyBhbiBpc3N1ZSB3aXRoIGVuZGlhbmVz cy4gTWF5YmUgaXQgDQppcyBmaXhlZCBub3csIGJ1dCBpdCBuZWVkcyB0byBiZSB2ZXJpZmllZC4N Cg0KU28gcGxlYXNlLCBiZWZvcmUgcmVtb3ZpbmcgYSB3b3JraW5nIGFuZCB1c2VmdWxsIGZlYXR1 cmUsIG1ha2Ugc3VyZSANCnRoZXJlIGlzIGFuIGFsdGVybmF0aXZlIGF2YWlsYWJsZSB0byBpdCBm b3IgYWxsIGFyY2hpdGVjdHVyZXMgaW4gYWxsIA0KY29uZmlndXJhdGlvbnMuDQoNCkFsc28sIEkg ZG9uJ3QgdGhpbmsgYnBmdG9vbCBpcyB1c2FibGUgdG8gZHVtcCBrZXJuZWwgQlBGIHNlbGZ0ZXN0 cy4gDQpUaGF0J3Mgdml0YWwgd2hlbiBhIHNlbGZ0ZXN0IGZhaWxzIGlmIHlvdSB3YW50IHRvIGhh dmUgYSBjaGFuY2UgdG8gDQp1bmRlcnN0YW5kIHdoeSBpdCBmYWlscy4NCg0KVGhhbmtzDQpDaHJp c3RvcGhlDQoNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFRvbmdoYW8gWmhhbmcgPHRvbmdAaW5mcmFn cmFmLm9yZz4NCj4gU3VnZ2VzdGVkLWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBrZXJuZWwu b3JnPg0KPiBDYzogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4NCj4gQ2M6IERh bmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+DQo+IENjOiBBbmRyaWkgTmFrcnlp a28gPGFuZHJpaUBrZXJuZWwub3JnPg0KPiBDYzogTWFydGluIEthRmFpIExhdSA8bWFydGluLmxh dUBsaW51eC5kZXY+DQo+IENjOiBTb25nIExpdSA8c29uZ0BrZXJuZWwub3JnPg0KPiBDYzogWW9u Z2hvbmcgU29uZyA8eWhzQGZiLmNvbT4NCj4gQ2M6IEpvaG4gRmFzdGFiZW5kIDxqb2huLmZhc3Rh YmVuZEBnbWFpbC5jb20+DQo+IENjOiBLUCBTaW5naCA8a3BzaW5naEBrZXJuZWwub3JnPg0KPiBD YzogU3RhbmlzbGF2IEZvbWljaGV2IDxzZGZAZ29vZ2xlLmNvbT4NCj4gQ2M6IEhhbyBMdW8gPGhh b2x1b0Bnb29nbGUuY29tPg0KPiBDYzogSmlyaSBPbHNhIDxqb2xzYUBrZXJuZWwub3JnPg0KPiBD YzogSG91IFRhbyA8aG91dGFvMUBodWF3ZWkuY29tPg0KPiAtLS0NCj4gICBEb2N1bWVudGF0aW9u L2FkbWluLWd1aWRlL3N5c2N0bC9uZXQucnN0IHwgICAxICsNCj4gICBEb2N1bWVudGF0aW9uL25l dHdvcmtpbmcvZmlsdGVyLnJzdCAgICAgIHwgIDk4ICstLS0tLS0NCj4gICBhcmNoL2FybS9uZXQv YnBmX2ppdF8zMi5jICAgICAgICAgICAgICAgIHwgICA0IC0NCj4gICBhcmNoL2FybTY0L25ldC9i cGZfaml0X2NvbXAuYyAgICAgICAgICAgIHwgICA0IC0NCj4gICBhcmNoL2xvb25nYXJjaC9uZXQv YnBmX2ppdC5jICAgICAgICAgICAgIHwgICA0IC0NCj4gICBhcmNoL21pcHMvbmV0L2JwZl9qaXRf Y29tcC5jICAgICAgICAgICAgIHwgICAzIC0NCj4gICBhcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRf Y29tcC5jICAgICAgICAgIHwgIDExIC0NCj4gICBhcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvcmUu YyAgICAgICAgICAgIHwgICAzIC0NCj4gICBhcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jICAg ICAgICAgICAgIHwgICA0IC0NCj4gICBhcmNoL3NwYXJjL25ldC9icGZfaml0X2NvbXBfMzIuYyAg ICAgICAgIHwgICAzIC0NCj4gICBhcmNoL3NwYXJjL25ldC9icGZfaml0X2NvbXBfNjQuYyAgICAg ICAgIHwgIDEzIC0NCj4gICBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMgICAgICAgICAgICAg IHwgICAzIC0NCj4gICBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyAgICAgICAgICAgIHwg ICAzIC0NCj4gICBuZXQvY29yZS9zeXNjdGxfbmV0X2NvcmUuYyAgICAgICAgICAgICAgIHwgIDEy ICstDQo+ICAgdG9vbHMvYnBmLy5naXRpZ25vcmUgICAgICAgICAgICAgICAgICAgICB8ICAgMSAt DQo+ICAgdG9vbHMvYnBmL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQ0K PiAgIHRvb2xzL2JwZi9icGZfaml0X2Rpc2FzbS5jICAgICAgICAgICAgICAgfCAzMzIgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gICAxNyBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyks IDUwMCBkZWxldGlvbnMoLSkNCj4gICBkZWxldGUgbW9kZSAxMDA2NDQgdG9vbHMvYnBmL2JwZl9q aXRfZGlzYXNtLmMNCj4gDQo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRl L3N5c2N0bC9uZXQucnN0IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9zeXNjdGwvbmV0LnJz dA0KPiBpbmRleCA2Mzk0ZjVkYzIzMDMuLjgyY2EwNWNhNmVkMCAxMDA2NDQNCj4gLS0tIGEvRG9j dW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9zeXNjdGwvbmV0LnJzdA0KPiArKysgYi9Eb2N1bWVudGF0 aW9uL2FkbWluLWd1aWRlL3N5c2N0bC9uZXQucnN0DQo+IEBAIC04OCw2ICs4OCw3IEBAIFZhbHVl czoNCj4gICAgICAgICAgLSAwIC0gZGlzYWJsZSB0aGUgSklUIChkZWZhdWx0IHZhbHVlKQ0KPiAg ICAgICAgICAtIDEgLSBlbmFibGUgdGhlIEpJVA0KPiAgICAgICAgICAtIDIgLSBlbmFibGUgdGhl IEpJVCBhbmQgYXNrIHRoZSBjb21waWxlciB0byBlbWl0IHRyYWNlcyBvbiBrZXJuZWwgbG9nLg0K PiArICAgICAgICAgICAgICAoZGVwcmVjYXRlZCBzaW5jZSB2Ni4zLCB1c2UgYGBicGZ0b29sIHBy b2cgZHVtcCBqaXRlZCBpZCA8aWQ+YGAgaW5zdGVhZCkNCj4gDQo+ICAgYnBmX2ppdF9oYXJkZW4N Cj4gICAtLS0tLS0tLS0tLS0tLQ0KPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9uZXR3b3Jr aW5nL2ZpbHRlci5yc3QgYi9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZmlsdGVyLnJzdA0KPiBp bmRleCBmNjlkYTUwNzQ4NjAuLjVmNTFjMDUwZTg4ZiAxMDA2NDQNCj4gLS0tIGEvRG9jdW1lbnRh dGlvbi9uZXR3b3JraW5nL2ZpbHRlci5yc3QNCj4gKysrIGIvRG9jdW1lbnRhdGlvbi9uZXR3b3Jr aW5nL2ZpbHRlci5yc3QNCj4gQEAgLTUyMCwxMDIgKzUyMCw4IEBAIGJlZW4gcHJldmlvdXNseSBl bmFibGVkIGJ5IHJvb3Q6Og0KPiANCj4gICAgIGVjaG8gMSA+IC9wcm9jL3N5cy9uZXQvY29yZS9i cGZfaml0X2VuYWJsZQ0KPiANCj4gLUZvciBKSVQgZGV2ZWxvcGVycywgZG9pbmcgYXVkaXRzIGV0 YywgZWFjaCBjb21waWxlIHJ1biBjYW4gb3V0cHV0IHRoZSBnZW5lcmF0ZWQNCj4gLW9wY29kZSBp bWFnZSBpbnRvIHRoZSBrZXJuZWwgbG9nIHZpYTo6DQo+IC0NCj4gLSAgZWNobyAyID4gL3Byb2Mv c3lzL25ldC9jb3JlL2JwZl9qaXRfZW5hYmxlDQo+IC0NCj4gLUV4YW1wbGUgb3V0cHV0IGZyb20g ZG1lc2c6Og0KPiAtDQo+IC0gICAgWyAzMzg5LjkzNTg0Ml0gZmxlbj02IHByb2dsZW49NzAgcGFz cz0zIGltYWdlPWZmZmZmZmZmYTAwNjljOGYNCj4gLSAgICBbIDMzODkuOTM1ODQ3XSBKSVQgY29k ZTogMDAwMDAwMDA6IDU1IDQ4IDg5IGU1IDQ4IDgzIGVjIDYwIDQ4IDg5IDVkIGY4IDQ0IDhiIDRm IDY4DQo+IC0gICAgWyAzMzg5LjkzNTg0OV0gSklUIGNvZGU6IDAwMDAwMDEwOiA0NCAyYiA0ZiA2 YyA0YyA4YiA4NyBkOCAwMCAwMCAwMCBiZSAwYyAwMCAwMCAwMA0KPiAtICAgIFsgMzM4OS45MzU4 NTBdIEpJVCBjb2RlOiAwMDAwMDAyMDogZTggMWQgOTQgZmYgZTAgM2QgMDAgMDggMDAgMDAgNzUg MTYgYmUgMTcgMDAgMDANCj4gLSAgICBbIDMzODkuOTM1ODUxXSBKSVQgY29kZTogMDAwMDAwMzA6 IDAwIGU4IDI4IDk0IGZmIGUwIDgzIGY4IDAxIDc1IDA3IGI4IGZmIGZmIDAwIDAwDQo+IC0gICAg WyAzMzg5LjkzNTg1Ml0gSklUIGNvZGU6IDAwMDAwMDQwOiBlYiAwMiAzMSBjMCBjOSBjMw0KPiAt DQo+IC1XaGVuIENPTkZJR19CUEZfSklUX0FMV0FZU19PTiBpcyBlbmFibGVkLCBicGZfaml0X2Vu YWJsZSBpcyBwZXJtYW5lbnRseSBzZXQgdG8gMSBhbmQNCj4gLXNldHRpbmcgYW55IG90aGVyIHZh bHVlIHRoYW4gdGhhdCB3aWxsIHJldHVybiBpbiBmYWlsdXJlLiBUaGlzIGlzIGV2ZW4gdGhlIGNh c2UgZm9yDQo+IC1zZXR0aW5nIGJwZl9qaXRfZW5hYmxlIHRvIDIsIHNpbmNlIGR1bXBpbmcgdGhl IGZpbmFsIEpJVCBpbWFnZSBpbnRvIHRoZSBrZXJuZWwgbG9nDQo+IC1pcyBkaXNjb3VyYWdlZCBh bmQgaW50cm9zcGVjdGlvbiB0aHJvdWdoIGJwZnRvb2wgKHVuZGVyIHRvb2xzL2JwZi9icGZ0b29s LykgaXMgdGhlDQo+IC1nZW5lcmFsbHkgcmVjb21tZW5kZWQgYXBwcm9hY2ggaW5zdGVhZC4NCj4g LQ0KPiAtSW4gdGhlIGtlcm5lbCBzb3VyY2UgdHJlZSB1bmRlciB0b29scy9icGYvLCB0aGVyZSdz IGJwZl9qaXRfZGlzYXNtIGZvcg0KPiAtZ2VuZXJhdGluZyBkaXNhc3NlbWJseSBvdXQgb2YgdGhl IGtlcm5lbCBsb2cncyBoZXhkdW1wOjoNCj4gLQ0KPiAtICAgICAgICMgLi9icGZfaml0X2Rpc2Fz bQ0KPiAtICAgICAgIDcwIGJ5dGVzIGVtaXR0ZWQgZnJvbSBKSVQgY29tcGlsZXIgKHBhc3M6Mywg Zmxlbjo2KQ0KPiAtICAgICAgIGZmZmZmZmZmYTAwNjljOGYgKyA8eD46DQo+IC0gICAgICAgMDog ICAgICBwdXNoICAgJXJicA0KPiAtICAgICAgIDE6ICAgICAgbW92ICAgICVyc3AsJXJicA0KPiAt ICAgICAgIDQ6ICAgICAgc3ViICAgICQweDYwLCVyc3ANCj4gLSAgICAgICA4OiAgICAgIG1vdiAg ICAlcmJ4LC0weDgoJXJicCkNCj4gLSAgICAgICBjOiAgICAgIG1vdiAgICAweDY4KCVyZGkpLCVy OWQNCj4gLSAgICAgICAxMDogICAgIHN1YiAgICAweDZjKCVyZGkpLCVyOWQNCj4gLSAgICAgICAx NDogICAgIG1vdiAgICAweGQ4KCVyZGkpLCVyOA0KPiAtICAgICAgIDFiOiAgICAgbW92ICAgICQw eGMsJWVzaQ0KPiAtICAgICAgIDIwOiAgICAgY2FsbHEgIDB4ZmZmZmZmZmZlMGZmOTQ0Mg0KPiAt ICAgICAgIDI1OiAgICAgY21wICAgICQweDgwMCwlZWF4DQo+IC0gICAgICAgMmE6ICAgICBqbmUg ICAgMHgwMDAwMDAwMDAwMDAwMDQyDQo+IC0gICAgICAgMmM6ICAgICBtb3YgICAgJDB4MTcsJWVz aQ0KPiAtICAgICAgIDMxOiAgICAgY2FsbHEgIDB4ZmZmZmZmZmZlMGZmOTQ1ZQ0KPiAtICAgICAg IDM2OiAgICAgY21wICAgICQweDEsJWVheA0KPiAtICAgICAgIDM5OiAgICAgam5lICAgIDB4MDAw MDAwMDAwMDAwMDA0Mg0KPiAtICAgICAgIDNiOiAgICAgbW92ICAgICQweGZmZmYsJWVheA0KPiAt ICAgICAgIDQwOiAgICAgam1wICAgIDB4MDAwMDAwMDAwMDAwMDA0NA0KPiAtICAgICAgIDQyOiAg ICAgeG9yICAgICVlYXgsJWVheA0KPiAtICAgICAgIDQ0OiAgICAgbGVhdmVxDQo+IC0gICAgICAg NDU6ICAgICByZXRxDQo+IC0NCj4gLSAgICAgICBJc3N1aW5nIG9wdGlvbiBgLW9gIHdpbGwgImFu bm90YXRlIiBvcGNvZGVzIHRvIHJlc3VsdGluZyBhc3NlbWJsZXINCj4gLSAgICAgICBpbnN0cnVj dGlvbnMsIHdoaWNoIGNhbiBiZSB2ZXJ5IHVzZWZ1bCBmb3IgSklUIGRldmVsb3BlcnM6DQo+IC0N Cj4gLSAgICAgICAjIC4vYnBmX2ppdF9kaXNhc20gLW8NCj4gLSAgICAgICA3MCBieXRlcyBlbWl0 dGVkIGZyb20gSklUIGNvbXBpbGVyIChwYXNzOjMsIGZsZW46NikNCj4gLSAgICAgICBmZmZmZmZm ZmEwMDY5YzhmICsgPHg+Og0KPiAtICAgICAgIDA6ICAgICAgcHVzaCAgICVyYnANCj4gLSAgICAg ICAgICAgICAgIDU1DQo+IC0gICAgICAgMTogICAgICBtb3YgICAgJXJzcCwlcmJwDQo+IC0gICAg ICAgICAgICAgICA0OCA4OSBlNQ0KPiAtICAgICAgIDQ6ICAgICAgc3ViICAgICQweDYwLCVyc3AN Cj4gLSAgICAgICAgICAgICAgIDQ4IDgzIGVjIDYwDQo+IC0gICAgICAgODogICAgICBtb3YgICAg JXJieCwtMHg4KCVyYnApDQo+IC0gICAgICAgICAgICAgICA0OCA4OSA1ZCBmOA0KPiAtICAgICAg IGM6ICAgICAgbW92ICAgIDB4NjgoJXJkaSksJXI5ZA0KPiAtICAgICAgICAgICAgICAgNDQgOGIg NGYgNjgNCj4gLSAgICAgICAxMDogICAgIHN1YiAgICAweDZjKCVyZGkpLCVyOWQNCj4gLSAgICAg ICAgICAgICAgIDQ0IDJiIDRmIDZjDQo+IC0gICAgICAgMTQ6ICAgICBtb3YgICAgMHhkOCglcmRp KSwlcjgNCj4gLSAgICAgICAgICAgICAgIDRjIDhiIDg3IGQ4IDAwIDAwIDAwDQo+IC0gICAgICAg MWI6ICAgICBtb3YgICAgJDB4YywlZXNpDQo+IC0gICAgICAgICAgICAgICBiZSAwYyAwMCAwMCAw MA0KPiAtICAgICAgIDIwOiAgICAgY2FsbHEgIDB4ZmZmZmZmZmZlMGZmOTQ0Mg0KPiAtICAgICAg ICAgICAgICAgZTggMWQgOTQgZmYgZTANCj4gLSAgICAgICAyNTogICAgIGNtcCAgICAkMHg4MDAs JWVheA0KPiAtICAgICAgICAgICAgICAgM2QgMDAgMDggMDAgMDANCj4gLSAgICAgICAyYTogICAg IGpuZSAgICAweDAwMDAwMDAwMDAwMDAwNDINCj4gLSAgICAgICAgICAgICAgIDc1IDE2DQo+IC0g ICAgICAgMmM6ICAgICBtb3YgICAgJDB4MTcsJWVzaQ0KPiAtICAgICAgICAgICAgICAgYmUgMTcg MDAgMDAgMDANCj4gLSAgICAgICAzMTogICAgIGNhbGxxICAweGZmZmZmZmZmZTBmZjk0NWUNCj4g LSAgICAgICAgICAgICAgIGU4IDI4IDk0IGZmIGUwDQo+IC0gICAgICAgMzY6ICAgICBjbXAgICAg JDB4MSwlZWF4DQo+IC0gICAgICAgICAgICAgICA4MyBmOCAwMQ0KPiAtICAgICAgIDM5OiAgICAg am5lICAgIDB4MDAwMDAwMDAwMDAwMDA0Mg0KPiAtICAgICAgICAgICAgICAgNzUgMDcNCj4gLSAg ICAgICAzYjogICAgIG1vdiAgICAkMHhmZmZmLCVlYXgNCj4gLSAgICAgICAgICAgICAgIGI4IGZm IGZmIDAwIDAwDQo+IC0gICAgICAgNDA6ICAgICBqbXAgICAgMHgwMDAwMDAwMDAwMDAwMDQ0DQo+ IC0gICAgICAgICAgICAgICBlYiAwMg0KPiAtICAgICAgIDQyOiAgICAgeG9yICAgICVlYXgsJWVh eA0KPiAtICAgICAgICAgICAgICAgMzEgYzANCj4gLSAgICAgICA0NDogICAgIGxlYXZlcQ0KPiAt ICAgICAgICAgICAgICAgYzkNCj4gLSAgICAgICA0NTogICAgIHJldHENCj4gLSAgICAgICAgICAg ICAgIGMzDQo+IC0NCj4gLUZvciBCUEYgSklUIGRldmVsb3BlcnMsIGJwZl9qaXRfZGlzYXNtLCBi cGZfYXNtIGFuZCBicGZfZGJnIHByb3ZpZGVzIGEgdXNlZnVsDQo+IC10b29sY2hhaW4gZm9yIGRl dmVsb3BpbmcgYW5kIHRlc3RpbmcgdGhlIGtlcm5lbCdzIEpJVCBjb21waWxlci4NCj4gK0ZvciBK SVQgZGV2ZWxvcGVycywgZG9pbmcgYXVkaXRzIGV0Yywgc2hvdWxkIHVzZSBgYnBmdG9vbCBwcm9n IGR1bXBgIHRvDQo+ICt2ZWl3IHRoZSBKSVQgZ2VuZXJhdGVkIG9wY29kZSBpbWFnZS4NCj4gDQo+ ICAgQlBGIGtlcm5lbCBpbnRlcm5hbHMNCj4gICAtLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiBkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbmV0L2JwZl9qaXRfMzIuYyBiL2FyY2gvYXJtL25ldC9icGZfaml0 XzMyLmMNCj4gaW5kZXggNmExYzlmY2E1MjYwLi4zOTMwMWQ1OWI1MzcgMTAwNjQ0DQo+IC0tLSBh L2FyY2gvYXJtL25ldC9icGZfaml0XzMyLmMNCj4gKysrIGIvYXJjaC9hcm0vbmV0L2JwZl9qaXRf MzIuYw0KPiBAQCAtMTk5OSwxMCArMTk5OSw2IEBAIHN0cnVjdCBicGZfcHJvZyAqYnBmX2ludF9q aXRfY29tcGlsZShzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpDQo+ICAgICAgICAgIH0NCj4gICAgICAg ICAgZmx1c2hfaWNhY2hlX3JhbmdlKCh1MzIpaGVhZGVyLCAodTMyKShjdHgudGFyZ2V0ICsgY3R4 LmlkeCkpOw0KPiANCj4gLSAgICAgICBpZiAoYnBmX2ppdF9lbmFibGUgPiAxKQ0KPiAtICAgICAg ICAgICAgICAgLyogdGhlcmUgYXJlIDIgcGFzc2VzIGhlcmUgKi8NCj4gLSAgICAgICAgICAgICAg IGJwZl9qaXRfZHVtcChwcm9nLT5sZW4sIGltYWdlX3NpemUsIDIsIGN0eC50YXJnZXQpOw0KPiAt DQo+ICAgICAgICAgIGJwZl9qaXRfYmluYXJ5X2xvY2tfcm8oaGVhZGVyKTsNCj4gICAgICAgICAg cHJvZy0+YnBmX2Z1bmMgPSAodm9pZCAqKWN0eC50YXJnZXQ7DQo+ICAgICAgICAgIHByb2ctPmpp dGVkID0gMTsNCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jIGIv YXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMNCj4gaW5kZXggNjJmODA1ZjQyN2I3Li41OWMz NWI0ZDc3YjcgMTAwNjQ0DQo+IC0tLSBhL2FyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jDQo+ ICsrKyBiL2FyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jDQo+IEBAIC0xNTY3LDEwICsxNTY3 LDYgQEAgc3RydWN0IGJwZl9wcm9nICpicGZfaW50X2ppdF9jb21waWxlKHN0cnVjdCBicGZfcHJv ZyAqcHJvZykNCj4gICAgICAgICAgICAgICAgICBnb3RvIG91dF9vZmY7DQo+ICAgICAgICAgIH0N Cj4gDQo+IC0gICAgICAgLyogQW5kIHdlJ3JlIGRvbmUuICovDQo+IC0gICAgICAgaWYgKGJwZl9q aXRfZW5hYmxlID4gMSkNCj4gLSAgICAgICAgICAgICAgIGJwZl9qaXRfZHVtcChwcm9nLT5sZW4s IHByb2dfc2l6ZSwgMiwgY3R4LmltYWdlKTsNCj4gLQ0KPiAgICAgICAgICBicGZfZmx1c2hfaWNh Y2hlKGhlYWRlciwgY3R4LmltYWdlICsgY3R4LmlkeCk7DQo+IA0KPiAgICAgICAgICBpZiAoIXBy b2ctPmlzX2Z1bmMgfHwgZXh0cmFfcGFzcykgew0KPiBkaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2Fy Y2gvbmV0L2JwZl9qaXQuYyBiL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmMNCj4gaW5kZXgg YmRjZDBjNzcxOWE5Li5lYTM3ZjUyZmFhNmUgMTAwNjQ0DQo+IC0tLSBhL2FyY2gvbG9vbmdhcmNo L25ldC9icGZfaml0LmMNCj4gKysrIGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYw0KPiBA QCAtMTEyMywxMCArMTEyMyw2IEBAIHN0cnVjdCBicGZfcHJvZyAqYnBmX2ludF9qaXRfY29tcGls ZShzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpDQo+ICAgICAgICAgICAgICAgICAgZ290byBvdXRfb2Zm c2V0Ow0KPiAgICAgICAgICB9DQo+IA0KPiAtICAgICAgIC8qIEFuZCB3ZSdyZSBkb25lICovDQo+ IC0gICAgICAgaWYgKGJwZl9qaXRfZW5hYmxlID4gMSkNCj4gLSAgICAgICAgICAgICAgIGJwZl9q aXRfZHVtcChwcm9nLT5sZW4sIGltYWdlX3NpemUsIDIsIGN0eC5pbWFnZSk7DQo+IC0NCj4gICAg ICAgICAgLyogVXBkYXRlIHRoZSBpY2FjaGUgKi8NCj4gICAgICAgICAgZmx1c2hfaWNhY2hlX3Jh bmdlKCh1bnNpZ25lZCBsb25nKWhlYWRlciwgKHVuc2lnbmVkIGxvbmcpKGN0eC5pbWFnZSArIGN0 eC5pZHgpKTsNCj4gDQo+IGRpZmYgLS1naXQgYS9hcmNoL21pcHMvbmV0L2JwZl9qaXRfY29tcC5j IGIvYXJjaC9taXBzL25ldC9icGZfaml0X2NvbXAuYw0KPiBpbmRleCBiMTcxMzBkNTEwZDQuLmNj YmI3YzIzMWNiMCAxMDA2NDQNCj4gLS0tIGEvYXJjaC9taXBzL25ldC9icGZfaml0X2NvbXAuYw0K PiArKysgYi9hcmNoL21pcHMvbmV0L2JwZl9qaXRfY29tcC5jDQo+IEBAIC0xMDEyLDkgKzEwMTIs NiBAQCBzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJwZl9wcm9n ICpwcm9nKQ0KPiAgICAgICAgICBmbHVzaF9pY2FjaGVfcmFuZ2UoKHVuc2lnbmVkIGxvbmcpaGVh ZGVyLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpJmN0eC50 YXJnZXRbY3R4LmppdF9pbmRleF0pOw0KPiANCj4gLSAgICAgICBpZiAoYnBmX2ppdF9lbmFibGUg PiAxKQ0KPiAtICAgICAgICAgICAgICAgYnBmX2ppdF9kdW1wKHByb2ctPmxlbiwgaW1hZ2Vfc2l6 ZSwgMiwgY3R4LnRhcmdldCk7DQo+IC0NCj4gICAgICAgICAgcHJvZy0+YnBmX2Z1bmMgPSAodm9p ZCAqKWN0eC50YXJnZXQ7DQo+ICAgICAgICAgIHByb2ctPmppdGVkID0gMTsNCj4gICAgICAgICAg cHJvZy0+aml0ZWRfbGVuID0gaW1hZ2Vfc2l6ZTsNCj4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJw Yy9uZXQvYnBmX2ppdF9jb21wLmMgYi9hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jDQo+ IGluZGV4IDQzZTYzNDEyNjUxNC4uZjBmN2Q4ZmYyMDIyIDEwMDY0NA0KPiAtLS0gYS9hcmNoL3Bv d2VycGMvbmV0L2JwZl9qaXRfY29tcC5jDQo+ICsrKyBiL2FyY2gvcG93ZXJwYy9uZXQvYnBmX2pp dF9jb21wLmMNCj4gQEAgLTI2MiwyMCArMjYyLDkgQEAgc3RydWN0IGJwZl9wcm9nICpicGZfaW50 X2ppdF9jb21waWxlKHN0cnVjdCBicGZfcHJvZyAqZnApDQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICBnb3RvIG91dF9hZGRyczsNCj4gICAgICAgICAgICAgICAgICB9DQo+ICAgICAgICAgICAg ICAgICAgYnBmX2ppdF9idWlsZF9lcGlsb2d1ZShjb2RlX2Jhc2UsICZjZ2N0eCk7DQo+IC0NCj4g LSAgICAgICAgICAgICAgIGlmIChicGZfaml0X2VuYWJsZSA+IDEpDQo+IC0gICAgICAgICAgICAg ICAgICAgICAgIHByX2luZm8oIlBhc3MgJWQ6IHNocmluayA9ICVkLCBzZWVuID0gMHgleFxuIiwg cGFzcywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9nbGVuIC0gKGNnY3R4 LmlkeCAqIDQpLCBjZ2N0eC5zZWVuKTsNCj4gICAgICAgICAgfQ0KPiANCj4gICBza2lwX2NvZGVn ZW5fcGFzc2VzOg0KPiAtICAgICAgIGlmIChicGZfaml0X2VuYWJsZSA+IDEpDQo+IC0gICAgICAg ICAgICAgICAvKg0KPiAtICAgICAgICAgICAgICAgICogTm90ZSB0aGF0IHdlIG91dHB1dCB0aGUg YmFzZSBhZGRyZXNzIG9mIHRoZSBjb2RlX2Jhc2UNCj4gLSAgICAgICAgICAgICAgICAqIHJhdGhl ciB0aGFuIGltYWdlLCBzaW5jZSBvcGNvZGVzIGFyZSBpbiBjb2RlX2Jhc2UuDQo+IC0gICAgICAg ICAgICAgICAgKi8NCj4gLSAgICAgICAgICAgICAgIGJwZl9qaXRfZHVtcChmbGVuLCBwcm9nbGVu LCBwYXNzLCBjb2RlX2Jhc2UpOw0KPiAtDQo+ICAgI2lmZGVmIENPTkZJR19QUEM2NF9FTEZfQUJJ X1YxDQo+ICAgICAgICAgIC8qIEZ1bmN0aW9uIGRlc2NyaXB0b3IgbmFzdGluZXNzOiBBZGRyZXNz ICsgVE9DICovDQo+ICAgICAgICAgICgodTY0ICopaW1hZ2UpWzBdID0gKHU2NCljb2RlX2Jhc2U7 DQo+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvcmUuYyBiL2FyY2gvcmlz Y3YvbmV0L2JwZl9qaXRfY29yZS5jDQo+IGluZGV4IDczN2JhZjg3MTVkYS4uZmYxNjhjNTBkNDZh IDEwMDY0NA0KPiAtLS0gYS9hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvcmUuYw0KPiArKysgYi9h cmNoL3Jpc2N2L25ldC9icGZfaml0X2NvcmUuYw0KPiBAQCAtMTUxLDkgKzE1MSw2IEBAIHN0cnVj dCBicGZfcHJvZyAqYnBmX2ludF9qaXRfY29tcGlsZShzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpDQo+ ICAgICAgICAgIH0NCj4gICAgICAgICAgYnBmX2ppdF9idWlsZF9lcGlsb2d1ZShjdHgpOw0KPiAN Cj4gLSAgICAgICBpZiAoYnBmX2ppdF9lbmFibGUgPiAxKQ0KPiAtICAgICAgICAgICAgICAgYnBm X2ppdF9kdW1wKHByb2ctPmxlbiwgcHJvZ19zaXplLCBwYXNzLCBjdHgtPmluc25zKTsNCj4gLQ0K PiAgICAgICAgICBwcm9nLT5icGZfZnVuYyA9ICh2b2lkICopY3R4LT5pbnNuczsNCj4gICAgICAg ICAgcHJvZy0+aml0ZWQgPSAxOw0KPiAgICAgICAgICBwcm9nLT5qaXRlZF9sZW4gPSBwcm9nX3Np emU7DQo+IGRpZmYgLS1naXQgYS9hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jIGIvYXJjaC9z MzkwL25ldC9icGZfaml0X2NvbXAuYw0KPiBpbmRleCBhZjM1MDUyZDA2ZWQuLjEzZDk5NmUyNzYw MiAxMDA2NDQNCj4gLS0tIGEvYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYw0KPiArKysgYi9h cmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jDQo+IEBAIC0xODMxLDEwICsxODMxLDYgQEAgc3Ry dWN0IGJwZl9wcm9nICpicGZfaW50X2ppdF9jb21waWxlKHN0cnVjdCBicGZfcHJvZyAqZnApDQo+ ICAgICAgICAgICAgICAgICAgZnAgPSBvcmlnX2ZwOw0KPiAgICAgICAgICAgICAgICAgIGdvdG8g ZnJlZV9hZGRyczsNCj4gICAgICAgICAgfQ0KPiAtICAgICAgIGlmIChicGZfaml0X2VuYWJsZSA+ IDEpIHsNCj4gLSAgICAgICAgICAgICAgIGJwZl9qaXRfZHVtcChmcC0+bGVuLCBqaXQuc2l6ZSwg cGFzcywgaml0LnByZ19idWYpOw0KPiAtICAgICAgICAgICAgICAgcHJpbnRfZm5fY29kZShqaXQu cHJnX2J1Ziwgaml0LnNpemVfcHJnKTsNCj4gLSAgICAgICB9DQo+ICAgICAgICAgIGlmICghZnAt PmlzX2Z1bmMgfHwgZXh0cmFfcGFzcykgew0KPiAgICAgICAgICAgICAgICAgIGJwZl9qaXRfYmlu YXJ5X2xvY2tfcm8oaGVhZGVyKTsNCj4gICAgICAgICAgfSBlbHNlIHsNCj4gZGlmZiAtLWdpdCBh L2FyY2gvc3BhcmMvbmV0L2JwZl9qaXRfY29tcF8zMi5jIGIvYXJjaC9zcGFyYy9uZXQvYnBmX2pp dF9jb21wXzMyLmMNCj4gaW5kZXggYTc0ZTUwMDRjNmM4Li4wOGRlMGVkODQ4MzEgMTAwNjQ0DQo+ IC0tLSBhL2FyY2gvc3BhcmMvbmV0L2JwZl9qaXRfY29tcF8zMi5jDQo+ICsrKyBiL2FyY2gvc3Bh cmMvbmV0L2JwZl9qaXRfY29tcF8zMi5jDQo+IEBAIC03NDMsOSArNzQzLDYgQEAgY29uZF9icmFu Y2g6ICAgICAgICAgICAgICAgICAgICAgICAgZl9vZmZzZXQgPSBhZGRyc1tpICsgZmlsdGVyW2ld LmpmXTsNCj4gICAgICAgICAgICAgICAgICBvbGRwcm9nbGVuID0gcHJvZ2xlbjsNCj4gICAgICAg ICAgfQ0KPiANCj4gLSAgICAgICBpZiAoYnBmX2ppdF9lbmFibGUgPiAxKQ0KPiAtICAgICAgICAg ICAgICAgYnBmX2ppdF9kdW1wKGZsZW4sIHByb2dsZW4sIHBhc3MgKyAxLCBpbWFnZSk7DQo+IC0N Cj4gICAgICAgICAgaWYgKGltYWdlKSB7DQo+ICAgICAgICAgICAgICAgICAgZnAtPmJwZl9mdW5j ID0gKHZvaWQgKilpbWFnZTsNCj4gICAgICAgICAgICAgICAgICBmcC0+aml0ZWQgPSAxOw0KPiBk aWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9uZXQvYnBmX2ppdF9jb21wXzY0LmMgYi9hcmNoL3NwYXJj L25ldC9icGZfaml0X2NvbXBfNjQuYw0KPiBpbmRleCBmYTA3NTliZmU0OTguLjE0YzllNWNlNDEw MCAxMDA2NDQNCj4gLS0tIGEvYXJjaC9zcGFyYy9uZXQvYnBmX2ppdF9jb21wXzY0LmMNCj4gKysr IGIvYXJjaC9zcGFyYy9uZXQvYnBmX2ppdF9jb21wXzY0LmMNCj4gQEAgLTE1NDksMTYgKzE1NDks NiBAQCBzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJwZl9wcm9n ICpwcm9nKQ0KPiAgICAgICAgICAgICAgICAgIH0NCj4gICAgICAgICAgICAgICAgICBidWlsZF9l cGlsb2d1ZSgmY3R4KTsNCj4gDQo+IC0gICAgICAgICAgICAgICBpZiAoYnBmX2ppdF9lbmFibGUg PiAxKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICBwcl9pbmZvKCJQYXNzICVkOiBzaXplID0g JXUsIHNlZW4gPSBbJWMlYyVjJWMlYyVjXVxuIiwgcGFzcywNCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjdHguaWR4ICogNCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjdHgudG1wXzFfdXNlZCA/ICcxJyA6ICcgJywNCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjdHgudG1wXzJfdXNlZCA/ICcyJyA6ICcgJywNCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjdHgudG1wXzNfdXNlZCA/ICczJyA6ICcgJywNCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjdHguc2F3X2ZyYW1lX3BvaW50ZXIgPyAnRicgOiAnICcs DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnNhd19jYWxsID8gJ0MnIDog JyAnLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5zYXdfdGFpbF9jYWxs ID8gJ1QnIDogJyAnKTsNCj4gLQ0KPiAgICAgICAgICAgICAgICAgIGlmIChjdHguaWR4ICogNCA9 PSBwcmV2X2ltYWdlX3NpemUpDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4g ICAgICAgICAgICAgICAgICBwcmV2X2ltYWdlX3NpemUgPSBjdHguaWR4ICogNDsNCj4gQEAgLTE1 OTYsOSArMTU4Niw2IEBAIHN0cnVjdCBicGZfcHJvZyAqYnBmX2ludF9qaXRfY29tcGlsZShzdHJ1 Y3QgYnBmX3Byb2cgKnByb2cpDQo+ICAgICAgICAgICAgICAgICAgZ290byBvdXRfb2ZmOw0KPiAg ICAgICAgICB9DQo+IA0KPiAtICAgICAgIGlmIChicGZfaml0X2VuYWJsZSA+IDEpDQo+IC0gICAg ICAgICAgICAgICBicGZfaml0X2R1bXAocHJvZy0+bGVuLCBpbWFnZV9zaXplLCBwYXNzLCBjdHgu aW1hZ2UpOw0KPiAtDQo+ICAgICAgICAgIGJwZl9mbHVzaF9pY2FjaGUoaGVhZGVyLCAodTggKilo ZWFkZXIgKyBoZWFkZXItPnNpemUpOw0KPiANCj4gICAgICAgICAgaWYgKCFwcm9nLT5pc19mdW5j IHx8IGV4dHJhX3Bhc3MpIHsNCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L25ldC9icGZfaml0X2Nv bXAuYyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAuYw0KPiBpbmRleCBlM2UyYjU3ZTRlMTMu LjE5N2ZmODY1MWE1NiAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcC5j DQo+ICsrKyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAuYw0KPiBAQCAtMjU1MSw5ICsyNTUx LDYgQEAgc3RydWN0IGJwZl9wcm9nICpicGZfaW50X2ppdF9jb21waWxlKHN0cnVjdCBicGZfcHJv ZyAqcHJvZykNCj4gICAgICAgICAgICAgICAgICBjb25kX3Jlc2NoZWQoKTsNCj4gICAgICAgICAg fQ0KPiANCj4gLSAgICAgICBpZiAoYnBmX2ppdF9lbmFibGUgPiAxKQ0KPiAtICAgICAgICAgICAg ICAgYnBmX2ppdF9kdW1wKHByb2ctPmxlbiwgcHJvZ2xlbiwgcGFzcyArIDEsIGltYWdlKTsNCj4g LQ0KPiAgICAgICAgICBpZiAoaW1hZ2UpIHsNCj4gICAgICAgICAgICAgICAgICBpZiAoIXByb2ct PmlzX2Z1bmMgfHwgZXh0cmFfcGFzcykgew0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgLyoN Cj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jIGIvYXJjaC94ODYv bmV0L2JwZl9qaXRfY29tcDMyLmMNCj4gaW5kZXggNDI5YTg5YzU0NjhiLi5jYTUzZjIwYWNhNzMg MTAwNjQ0DQo+IC0tLSBhL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jDQo+ICsrKyBiL2Fy Y2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jDQo+IEBAIC0yNTk3LDkgKzI1OTcsNiBAQCBzdHJ1 Y3QgYnBmX3Byb2cgKmJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJwZl9wcm9nICpwcm9nKQ0K PiAgICAgICAgICAgICAgICAgIGNvbmRfcmVzY2hlZCgpOw0KPiAgICAgICAgICB9DQo+IA0KPiAt ICAgICAgIGlmIChicGZfaml0X2VuYWJsZSA+IDEpDQo+IC0gICAgICAgICAgICAgICBicGZfaml0 X2R1bXAocHJvZy0+bGVuLCBwcm9nbGVuLCBwYXNzICsgMSwgaW1hZ2UpOw0KPiAtDQo+ICAgICAg ICAgIGlmIChpbWFnZSkgew0KPiAgICAgICAgICAgICAgICAgIGJwZl9qaXRfYmluYXJ5X2xvY2tf cm8oaGVhZGVyKTsNCj4gICAgICAgICAgICAgICAgICBwcm9nLT5icGZfZnVuYyA9ICh2b2lkICop aW1hZ2U7DQo+IGRpZmYgLS1naXQgYS9uZXQvY29yZS9zeXNjdGxfbmV0X2NvcmUuYyBiL25ldC9j b3JlL3N5c2N0bF9uZXRfY29yZS5jDQo+IGluZGV4IDViMWNlNjU2YmFhMS4uNTYyYWNlNDhlMWM5 IDEwMDY0NA0KPiAtLS0gYS9uZXQvY29yZS9zeXNjdGxfbmV0X2NvcmUuYw0KPiArKysgYi9uZXQv Y29yZS9zeXNjdGxfbmV0X2NvcmUuYw0KPiBAQCAtMjc2LDE0ICsyNzYsMTAgQEAgc3RhdGljIGlu dCBwcm9jX2RvaW50dmVjX21pbm1heF9icGZfZW5hYmxlKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxl LCBpbnQgd3JpdGUsDQo+ICAgICAgICAgIHRtcC5kYXRhID0gJmppdF9lbmFibGU7DQo+ICAgICAg ICAgIHJldCA9IHByb2NfZG9pbnR2ZWNfbWlubWF4KCZ0bXAsIHdyaXRlLCBidWZmZXIsIGxlbnAs IHBwb3MpOw0KPiAgICAgICAgICBpZiAod3JpdGUgJiYgIXJldCkgew0KPiAtICAgICAgICAgICAg ICAgaWYgKGppdF9lbmFibGUgPCAyIHx8DQo+IC0gICAgICAgICAgICAgICAgICAgKGppdF9lbmFi bGUgPT0gMiAmJiBicGZfZHVtcF9yYXdfb2soY3VycmVudF9jcmVkKCkpKSkgew0KPiAtICAgICAg ICAgICAgICAgICAgICAgICAqKGludCAqKXRhYmxlLT5kYXRhID0gaml0X2VuYWJsZTsNCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgaWYgKGppdF9lbmFibGUgPT0gMikNCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwcl93YXJuKCJicGZfaml0X2VuYWJsZSA9IDIgd2FzIHNldCEg TkVWRVIgdXNlIHRoaXMgaW4gcHJvZHVjdGlvbiwgb25seSBmb3IgSklUIGRlYnVnZ2luZyFcbiIp Ow0KPiAtICAgICAgICAgICAgICAgfSBlbHNlIHsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAg cmV0ID0gLUVQRVJNOw0KPiAtICAgICAgICAgICAgICAgfQ0KPiArICAgICAgICAgICAgICAgKihp bnQgKil0YWJsZS0+ZGF0YSA9IGppdF9lbmFibGU7DQo+ICsNCj4gKyAgICAgICAgICAgICAgIGlm IChqaXRfZW5hYmxlID09IDIpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHByX3dhcm5fb25j ZSgiYnBmX2ppdF9lbmFibGUgPT0gMiB3YXMgZGVwcmVjYXRlZCEgVXNlIGJwZnRvb2wgcHJvZyBk dW1wIGluc3RlYWQuXG4iKTsNCj4gICAgICAgICAgfQ0KPiANCj4gICAgICAgICAgaWYgKHdyaXRl ICYmIHJldCAmJiBtaW4gPT0gbWF4KQ0KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvYnBmLy5naXRpZ25v cmUgYi90b29scy9icGYvLmdpdGlnbm9yZQ0KPiBpbmRleCBjZjUzMzQyMTc1ZTcuLjVjNzBjZmI5 MDkyZSAxMDA2NDQNCj4gLS0tIGEvdG9vbHMvYnBmLy5naXRpZ25vcmUNCj4gKysrIGIvdG9vbHMv YnBmLy5naXRpZ25vcmUNCj4gQEAgLTQsNCArNCwzIEBAIGZlYXR1cmUNCj4gICBicGZfYXNtDQo+ ICAgYnBmX2RiZw0KPiAgIGJwZl9leHAueWFjYy4qDQo+IC1icGZfaml0X2Rpc2FzbQ0KPiBkaWZm IC0tZ2l0IGEvdG9vbHMvYnBmL01ha2VmaWxlIGIvdG9vbHMvYnBmL01ha2VmaWxlDQo+IGluZGV4 IDI0M2I3OWYyYjQ1MS4uOTI2NGQ3YjBlZGY2IDEwMDY0NA0KPiAtLS0gYS90b29scy9icGYvTWFr ZWZpbGUNCj4gKysrIGIvdG9vbHMvYnBmL01ha2VmaWxlDQo+IEBAIC03NCwxNCArNzQsMTAgQEAg JChPVVRQVVQpJS55YWNjLm86ICQoT1VUUFVUKSUueWFjYy5jDQo+ICAgJChPVVRQVVQpJS5sZXgu bzogJChPVVRQVVQpJS5sZXguYw0KPiAgICAgICAgICAkKFFVSUVUX0NDKSQoQ0MpICQoQ0ZMQUdT KSAtYyAtbyAkQCAkPA0KPiANCj4gLVBST0dTID0gJChPVVRQVVQpYnBmX2ppdF9kaXNhc20gJChP VVRQVVQpYnBmX2RiZyAkKE9VVFBVVClicGZfYXNtDQo+ICtQUk9HUyA9ICQoT1VUUFVUKWJwZl9k YmcgJChPVVRQVVQpYnBmX2FzbQ0KPiANCj4gICBhbGw6ICQoUFJPR1MpIGJwZnRvb2wgcnVucXNs b3dlcg0KPiANCj4gLSQoT1VUUFVUKWJwZl9qaXRfZGlzYXNtOiBDRkxBR1MgKz0gLURQQUNLQUdF PSdicGZfaml0X2Rpc2FzbScNCj4gLSQoT1VUUFVUKWJwZl9qaXRfZGlzYXNtOiAkKE9VVFBVVCli cGZfaml0X2Rpc2FzbS5vDQo+IC0gICAgICAgJChRVUlFVF9MSU5LKSQoQ0MpICQoQ0ZMQUdTKSAt byAkQCAkXiAtbG9wY29kZXMgLWxiZmQgLWxkbA0KPiAtDQo+ICAgJChPVVRQVVQpYnBmX2RiZzog JChPVVRQVVQpYnBmX2RiZy5vDQo+ICAgICAgICAgICQoUVVJRVRfTElOSykkKENDKSAkKENGTEFH UykgLW8gJEAgJF4gLWxyZWFkbGluZQ0KPiANCj4gQEAgLTk0LDE2ICs5MCwxNCBAQCAkKE9VVFBV VClicGZfZXhwLmxleC5vOiAkKE9VVFBVVClicGZfZXhwLmxleC5jDQo+IA0KPiAgIGNsZWFuOiBi cGZ0b29sX2NsZWFuIHJ1bnFzbG93ZXJfY2xlYW4gcmVzb2x2ZV9idGZpZHNfY2xlYW4NCj4gICAg ICAgICAgJChjYWxsIFFVSUVUX0NMRUFOLCBicGYtcHJvZ3MpDQo+IC0gICAgICAgJChRKSQoUk0p IC1yIC0tICQoT1VUUFVUKSoubyAkKE9VVFBVVClicGZfaml0X2Rpc2FzbSAkKE9VVFBVVClicGZf ZGJnIFwNCj4gKyAgICAgICAkKFEpJChSTSkgLXIgLS0gJChPVVRQVVQpKi5vICQoT1VUUFVUKWJw Zl9kYmcgXA0KPiAgICAgICAgICAgICAgICAgJChPVVRQVVQpYnBmX2FzbSAkKE9VVFBVVClicGZf ZXhwLnlhY2MuKiAkKE9VVFBVVClicGZfZXhwLmxleC4qDQo+ICAgICAgICAgICQoY2FsbCBRVUlF VF9DTEVBTiwgY29yZS1nZW4pDQo+ICAgICAgICAgICQoUSkkKFJNKSAtLSAkKE9VVFBVVClGRUFU VVJFLURVTVAuYnBmDQo+ICAgICAgICAgICQoUSkkKFJNKSAtciAtLSAkKE9VVFBVVClmZWF0dXJl DQo+IA0KPiAgIGluc3RhbGw6ICQoUFJPR1MpIGJwZnRvb2xfaW5zdGFsbA0KPiAtICAgICAgICQo Y2FsbCBRVUlFVF9JTlNUQUxMLCBicGZfaml0X2Rpc2FzbSkNCj4gICAgICAgICAgJChRKSQoSU5T VEFMTCkgLW0gMDc1NSAtZCAkKERFU1RESVIpJChwcmVmaXgpL2Jpbg0KPiAtICAgICAgICQoUSkk KElOU1RBTEwpICQoT1VUUFVUKWJwZl9qaXRfZGlzYXNtICQoREVTVERJUikkKHByZWZpeCkvYmlu L2JwZl9qaXRfZGlzYXNtDQo+ICAgICAgICAgICQoY2FsbCBRVUlFVF9JTlNUQUxMLCBicGZfZGJn KQ0KPiAgICAgICAgICAkKFEpJChJTlNUQUxMKSAkKE9VVFBVVClicGZfZGJnICQoREVTVERJUikk KHByZWZpeCkvYmluL2JwZl9kYmcNCj4gICAgICAgICAgJChjYWxsIFFVSUVUX0lOU1RBTEwsIGJw Zl9hc20pDQo+IGRpZmYgLS1naXQgYS90b29scy9icGYvYnBmX2ppdF9kaXNhc20uYyBiL3Rvb2xz L2JwZi9icGZfaml0X2Rpc2FzbS5jDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl eCBhOTBhNWQxMTBmOTIuLjAwMDAwMDAwMDAwMA0KPiAtLS0gYS90b29scy9icGYvYnBmX2ppdF9k aXNhc20uYw0KPiArKysgL2Rldi9udWxsDQo+IEBAIC0xLDMzMiArMCwwIEBADQo+IC0vLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5DQo+IC0vKg0KPiAtICogTWluaW1hbCBC UEYgSklUIGltYWdlIGRpc2Fzc2VtYmxlcg0KPiAtICoNCj4gLSAqIERpc2Fzc2VtYmxlcyBCUEYg SklUIGNvbXBpbGVyIGVtaXR0ZWQgb3Bjb2RlcyBiYWNrIHRvIGFzbSBpbnNuJ3MgZm9yDQo+IC0g KiBkZWJ1Z2dpbmcgb3IgdmVyaWZpY2F0aW9uIHB1cnBvc2VzLg0KPiAtICoNCj4gLSAqIFRvIGdl dCB0aGUgZGlzYXNzZW1ibHkgb2YgdGhlIEpJVCBjb2RlLCBkbyB0aGUgZm9sbG93aW5nOg0KPiAt ICoNCj4gLSAqICAxKSBgZWNobyAyID4gL3Byb2Mvc3lzL25ldC9jb3JlL2JwZl9qaXRfZW5hYmxl YA0KPiAtICogIDIpIExvYWQgYSBCUEYgZmlsdGVyIChlLmcuIGB0Y3BkdW1wIC1wIC1uIC1zIDAg LWkgZXRoMSBob3N0IDE5Mi4xNjguMjAuMC8yNGApDQo+IC0gKiAgMykgUnVuIGUuZy4gYGJwZl9q aXRfZGlzYXNtIC1vYCB0byByZWFkIG91dCB0aGUgbGFzdCBKSVQgY29kZQ0KPiAtICoNCj4gLSAq IENvcHlyaWdodCAyMDEzIERhbmllbCBCb3JrbWFubiA8Ym9ya21hbm5AcmVkaGF0LmNvbT4NCj4g LSAqLw0KPiAtDQo+IC0jaW5jbHVkZSA8c3RkaW50Lmg+DQo+IC0jaW5jbHVkZSA8c3RkaW8uaD4N Cj4gLSNpbmNsdWRlIDxzdGRsaWIuaD4NCj4gLSNpbmNsdWRlIDxhc3NlcnQuaD4NCj4gLSNpbmNs dWRlIDx1bmlzdGQuaD4NCj4gLSNpbmNsdWRlIDxzdHJpbmcuaD4NCj4gLSNpbmNsdWRlIDxiZmQu aD4NCj4gLSNpbmNsdWRlIDxkaXMtYXNtLmg+DQo+IC0jaW5jbHVkZSA8cmVnZXguaD4NCj4gLSNp bmNsdWRlIDxmY250bC5oPg0KPiAtI2luY2x1ZGUgPHN5cy9rbG9nLmg+DQo+IC0jaW5jbHVkZSA8 c3lzL3R5cGVzLmg+DQo+IC0jaW5jbHVkZSA8c3lzL3N0YXQuaD4NCj4gLSNpbmNsdWRlIDxsaW1p dHMuaD4NCj4gLSNpbmNsdWRlIDx0b29scy9kaXMtYXNtLWNvbXBhdC5oPg0KPiAtDQo+IC0jZGVm aW5lIENNRF9BQ1RJT05fU0laRV9CVUZGRVIgICAgICAgICAxMA0KPiAtI2RlZmluZSBDTURfQUNU SU9OX1JFQURfQUxMICAgICAgICAgICAgMw0KPiAtDQo+IC1zdGF0aWMgdm9pZCBnZXRfZXhlY19w YXRoKGNoYXIgKnRwYXRoLCBzaXplX3Qgc2l6ZSkNCj4gLXsNCj4gLSAgICAgICBjaGFyICpwYXRo Ow0KPiAtICAgICAgIHNzaXplX3QgbGVuOw0KPiAtDQo+IC0gICAgICAgc25wcmludGYodHBhdGgs IHNpemUsICIvcHJvYy8lZC9leGUiLCAoaW50KSBnZXRwaWQoKSk7DQo+IC0gICAgICAgdHBhdGhb c2l6ZSAtIDFdID0gMDsNCj4gLQ0KPiAtICAgICAgIHBhdGggPSBzdHJkdXAodHBhdGgpOw0KPiAt ICAgICAgIGFzc2VydChwYXRoKTsNCj4gLQ0KPiAtICAgICAgIGxlbiA9IHJlYWRsaW5rKHBhdGgs IHRwYXRoLCBzaXplKTsNCj4gLSAgICAgICB0cGF0aFtsZW5dID0gMDsNCj4gLQ0KPiAtICAgICAg IGZyZWUocGF0aCk7DQo+IC19DQo+IC0NCj4gLXN0YXRpYyB2b2lkIGdldF9hc21faW5zbnModWlu dDhfdCAqaW1hZ2UsIHNpemVfdCBsZW4sIGludCBvcGNvZGVzKQ0KPiAtew0KPiAtICAgICAgIGlu dCBjb3VudCwgaSwgcGMgPSAwOw0KPiAtICAgICAgIGNoYXIgdHBhdGhbUEFUSF9NQVhdOw0KPiAt ICAgICAgIHN0cnVjdCBkaXNhc3NlbWJsZV9pbmZvIGluZm87DQo+IC0gICAgICAgZGlzYXNzZW1i bGVyX2Z0eXBlIGRpc2Fzc2VtYmxlOw0KPiAtICAgICAgIGJmZCAqYmZkZjsNCj4gLQ0KPiAtICAg ICAgIG1lbXNldCh0cGF0aCwgMCwgc2l6ZW9mKHRwYXRoKSk7DQo+IC0gICAgICAgZ2V0X2V4ZWNf cGF0aCh0cGF0aCwgc2l6ZW9mKHRwYXRoKSk7DQo+IC0NCj4gLSAgICAgICBiZmRmID0gYmZkX29w ZW5yKHRwYXRoLCBOVUxMKTsNCj4gLSAgICAgICBhc3NlcnQoYmZkZik7DQo+IC0gICAgICAgYXNz ZXJ0KGJmZF9jaGVja19mb3JtYXQoYmZkZiwgYmZkX29iamVjdCkpOw0KPiAtDQo+IC0gICAgICAg aW5pdF9kaXNhc3NlbWJsZV9pbmZvX2NvbXBhdCgmaW5mbywgc3Rkb3V0LA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZwcmludGZfZnR5cGUpIGZwcmludGYsDQo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmX3N0eWxlZCk7DQo+IC0g ICAgICAgaW5mby5hcmNoID0gYmZkX2dldF9hcmNoKGJmZGYpOw0KPiAtICAgICAgIGluZm8ubWFj aCA9IGJmZF9nZXRfbWFjaChiZmRmKTsNCj4gLSAgICAgICBpbmZvLmJ1ZmZlciA9IGltYWdlOw0K PiAtICAgICAgIGluZm8uYnVmZmVyX2xlbmd0aCA9IGxlbjsNCj4gLQ0KPiAtICAgICAgIGRpc2Fz c2VtYmxlX2luaXRfZm9yX3RhcmdldCgmaW5mbyk7DQo+IC0NCj4gLSNpZmRlZiBESVNBU01fRk9V Ul9BUkdTX1NJR05BVFVSRQ0KPiAtICAgICAgIGRpc2Fzc2VtYmxlID0gZGlzYXNzZW1ibGVyKGlu Zm8uYXJjaCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZmRfYmlnX2Vu ZGlhbihiZmRmKSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLm1h Y2gsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZkZik7DQo+IC0jZWxz ZQ0KPiAtICAgICAgIGRpc2Fzc2VtYmxlID0gZGlzYXNzZW1ibGVyKGJmZGYpOw0KPiAtI2VuZGlm DQo+IC0gICAgICAgYXNzZXJ0KGRpc2Fzc2VtYmxlKTsNCj4gLQ0KPiAtICAgICAgIGRvIHsNCj4g LSAgICAgICAgICAgICAgIHByaW50ZigiJTR4Olx0IiwgcGMpOw0KPiAtDQo+IC0gICAgICAgICAg ICAgICBjb3VudCA9IGRpc2Fzc2VtYmxlKHBjLCAmaW5mbyk7DQo+IC0NCj4gLSAgICAgICAgICAg ICAgIGlmIChvcGNvZGVzKSB7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiXG5c dCIpOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsr aSkNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiUwMnggIiwgKHVp bnQ4X3QpIGltYWdlW3BjICsgaV0pOw0KPiAtICAgICAgICAgICAgICAgfQ0KPiAtICAgICAgICAg ICAgICAgcHJpbnRmKCJcbiIpOw0KPiAtDQo+IC0gICAgICAgICAgICAgICBwYyArPSBjb3VudDsN Cj4gLSAgICAgICB9IHdoaWxlKGNvdW50ID4gMCAmJiBwYyA8IGxlbik7DQo+IC0NCj4gLSAgICAg ICBiZmRfY2xvc2UoYmZkZik7DQo+IC19DQo+IC0NCj4gLXN0YXRpYyBjaGFyICpnZXRfa2xvZ19i dWZmKHVuc2lnbmVkIGludCAqa2xlbikNCj4gLXsNCj4gLSAgICAgICBpbnQgcmV0LCBsZW47DQo+ IC0gICAgICAgY2hhciAqYnVmZjsNCj4gLQ0KPiAtICAgICAgIGxlbiA9IGtsb2djdGwoQ01EX0FD VElPTl9TSVpFX0JVRkZFUiwgTlVMTCwgMCk7DQo+IC0gICAgICAgaWYgKGxlbiA8IDApDQo+IC0g ICAgICAgICAgICAgICByZXR1cm4gTlVMTDsNCj4gLQ0KPiAtICAgICAgIGJ1ZmYgPSBtYWxsb2Mo bGVuKTsNCj4gLSAgICAgICBpZiAoIWJ1ZmYpDQo+IC0gICAgICAgICAgICAgICByZXR1cm4gTlVM TDsNCj4gLQ0KPiAtICAgICAgIHJldCA9IGtsb2djdGwoQ01EX0FDVElPTl9SRUFEX0FMTCwgYnVm ZiwgbGVuKTsNCj4gLSAgICAgICBpZiAocmV0IDwgMCkgew0KPiAtICAgICAgICAgICAgICAgZnJl ZShidWZmKTsNCj4gLSAgICAgICAgICAgICAgIHJldHVybiBOVUxMOw0KPiAtICAgICAgIH0NCj4g LQ0KPiAtICAgICAgICprbGVuID0gcmV0Ow0KPiAtICAgICAgIHJldHVybiBidWZmOw0KPiAtfQ0K PiAtDQo+IC1zdGF0aWMgY2hhciAqZ2V0X2Zsb2dfYnVmZihjb25zdCBjaGFyICpmaWxlLCB1bnNp Z25lZCBpbnQgKmtsZW4pDQo+IC17DQo+IC0gICAgICAgaW50IGZkLCByZXQsIGxlbjsNCj4gLSAg ICAgICBzdHJ1Y3Qgc3RhdCBmaTsNCj4gLSAgICAgICBjaGFyICpidWZmOw0KPiAtDQo+IC0gICAg ICAgZmQgPSBvcGVuKGZpbGUsIE9fUkRPTkxZKTsNCj4gLSAgICAgICBpZiAoZmQgPCAwKQ0KPiAt ICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7DQo+IC0NCj4gLSAgICAgICByZXQgPSBmc3RhdChm ZCwgJmZpKTsNCj4gLSAgICAgICBpZiAocmV0IDwgMCB8fCAhU19JU1JFRyhmaS5zdF9tb2RlKSkN Cj4gLSAgICAgICAgICAgICAgIGdvdG8gb3V0Ow0KPiAtDQo+IC0gICAgICAgbGVuID0gZmkuc3Rf c2l6ZSArIDE7DQo+IC0gICAgICAgYnVmZiA9IG1hbGxvYyhsZW4pOw0KPiAtICAgICAgIGlmICgh YnVmZikNCj4gLSAgICAgICAgICAgICAgIGdvdG8gb3V0Ow0KPiAtDQo+IC0gICAgICAgbWVtc2V0 KGJ1ZmYsIDAsIGxlbik7DQo+IC0gICAgICAgcmV0ID0gcmVhZChmZCwgYnVmZiwgbGVuIC0gMSk7 DQo+IC0gICAgICAgaWYgKHJldCA8PSAwKQ0KPiAtICAgICAgICAgICAgICAgZ290byBvdXRfZnJl ZTsNCj4gLQ0KPiAtICAgICAgIGNsb3NlKGZkKTsNCj4gLSAgICAgICAqa2xlbiA9IHJldDsNCj4g LSAgICAgICByZXR1cm4gYnVmZjsNCj4gLW91dF9mcmVlOg0KPiAtICAgICAgIGZyZWUoYnVmZik7 DQo+IC1vdXQ6DQo+IC0gICAgICAgY2xvc2UoZmQpOw0KPiAtICAgICAgIHJldHVybiBOVUxMOw0K PiAtfQ0KPiAtDQo+IC1zdGF0aWMgY2hhciAqZ2V0X2xvZ19idWZmKGNvbnN0IGNoYXIgKmZpbGUs IHVuc2lnbmVkIGludCAqa2xlbikNCj4gLXsNCj4gLSAgICAgICByZXR1cm4gZmlsZSA/IGdldF9m bG9nX2J1ZmYoZmlsZSwga2xlbikgOiBnZXRfa2xvZ19idWZmKGtsZW4pOw0KPiAtfQ0KPiAtDQo+ IC1zdGF0aWMgdm9pZCBwdXRfbG9nX2J1ZmYoY2hhciAqYnVmZikNCj4gLXsNCj4gLSAgICAgICBm cmVlKGJ1ZmYpOw0KPiAtfQ0KPiAtDQo+IC1zdGF0aWMgdWludDhfdCAqZ2V0X2xhc3Rfaml0X2lt YWdlKGNoYXIgKmhheXN0YWNrLCBzaXplX3QgaGxlbiwNCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmlsZW4pDQo+IC17DQo+IC0gICAgICAgY2hhciAq cHRyLCAqcHB0ciwgKnRtcDsNCj4gLSAgICAgICBvZmZfdCBvZmYgPSAwOw0KPiAtICAgICAgIHVu c2lnbmVkIGludCBwcm9nbGVuOw0KPiAtICAgICAgIGludCByZXQsIGZsZW4sIHBhc3MsIHVsZW4g PSAwOw0KPiAtICAgICAgIHJlZ21hdGNoX3QgcG1hdGNoWzFdOw0KPiAtICAgICAgIHVuc2lnbmVk IGxvbmcgYmFzZTsNCj4gLSAgICAgICByZWdleF90IHJlZ2V4Ow0KPiAtICAgICAgIHVpbnQ4X3Qg KmltYWdlOw0KPiAtDQo+IC0gICAgICAgaWYgKGhsZW4gPT0gMCkNCj4gLSAgICAgICAgICAgICAg IHJldHVybiBOVUxMOw0KPiAtDQo+IC0gICAgICAgcmV0ID0gcmVnY29tcCgmcmVnZXgsICJmbGVu PVtbOmFsbnVtOl1dKyBwcm9nbGVuPVtbOmRpZ2l0Ol1dKyAiDQo+IC0gICAgICAgICAgICAgICAg ICAgICAicGFzcz1bWzpkaWdpdDpdXSsgaW1hZ2U9W1s6eGRpZ2l0Ol1dKyIsIFJFR19FWFRFTkRF RCk7DQo+IC0gICAgICAgYXNzZXJ0KHJldCA9PSAwKTsNCj4gLQ0KPiAtICAgICAgIHB0ciA9IGhh eXN0YWNrOw0KPiAtICAgICAgIG1lbXNldChwbWF0Y2gsIDAsIHNpemVvZihwbWF0Y2gpKTsNCj4g LQ0KPiAtICAgICAgIHdoaWxlICgxKSB7DQo+IC0gICAgICAgICAgICAgICByZXQgPSByZWdleGVj KCZyZWdleCwgcHRyLCAxLCBwbWF0Y2gsIDApOw0KPiAtICAgICAgICAgICAgICAgaWYgKHJldCA9 PSAwKSB7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIHB0ciArPSBwbWF0Y2hbMF0ucm1fZW87 DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIG9mZiArPSBwbWF0Y2hbMF0ucm1fZW87DQo+IC0g ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydChvZmYgPCBobGVuKTsNCj4gLSAgICAgICAgICAg ICAgIH0gZWxzZQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gLSAgICAgICB9 DQo+IC0NCj4gLSAgICAgICBwdHIgPSBoYXlzdGFjayArIG9mZiAtIChwbWF0Y2hbMF0ucm1fZW8g LSBwbWF0Y2hbMF0ucm1fc28pOw0KPiAtICAgICAgIHJldCA9IHNzY2FuZihwdHIsICJmbGVuPSVk IHByb2dsZW49JXUgcGFzcz0lZCBpbWFnZT0lbHgiLA0KPiAtICAgICAgICAgICAgICAgICAgICAm ZmxlbiwgJnByb2dsZW4sICZwYXNzLCAmYmFzZSk7DQo+IC0gICAgICAgaWYgKHJldCAhPSA0KSB7 DQo+IC0gICAgICAgICAgICAgICByZWdmcmVlKCZyZWdleCk7DQo+IC0gICAgICAgICAgICAgICBy ZXR1cm4gTlVMTDsNCj4gLSAgICAgICB9DQo+IC0gICAgICAgaWYgKHByb2dsZW4gPiAxMDAwMDAw KSB7DQo+IC0gICAgICAgICAgICAgICBwcmludGYoInByb2dsZW4gb2YgJWQgdG9vIGJpZywgc3Rv cHBpbmdcbiIsIHByb2dsZW4pOw0KPiAtICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7DQo+IC0g ICAgICAgfQ0KPiAtDQo+IC0gICAgICAgaW1hZ2UgPSBtYWxsb2MocHJvZ2xlbik7DQo+IC0gICAg ICAgaWYgKCFpbWFnZSkgew0KPiAtICAgICAgICAgICAgICAgcHJpbnRmKCJPdXQgb2YgbWVtb3J5 XG4iKTsNCj4gLSAgICAgICAgICAgICAgIHJldHVybiBOVUxMOw0KPiAtICAgICAgIH0NCj4gLSAg ICAgICBtZW1zZXQoaW1hZ2UsIDAsIHByb2dsZW4pOw0KPiAtDQo+IC0gICAgICAgdG1wID0gcHRy ID0gaGF5c3RhY2sgKyBvZmY7DQo+IC0gICAgICAgd2hpbGUgKChwdHIgPSBzdHJ0b2sodG1wLCAi XG4iKSkgIT0gTlVMTCAmJiB1bGVuIDwgcHJvZ2xlbikgew0KPiAtICAgICAgICAgICAgICAgdG1w ID0gTlVMTDsNCj4gLSAgICAgICAgICAgICAgIGlmICghc3Ryc3RyKHB0ciwgIkpJVCBjb2RlIikp DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAtICAgICAgICAgICAgICAg cHB0ciA9IHB0cjsNCj4gLSAgICAgICAgICAgICAgIHdoaWxlICgocHRyID0gc3Ryc3RyKHBwdHIs ICI6IikpKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICBwcHRyID0gcHRyICsgMTsNCj4gLSAg ICAgICAgICAgICAgIHB0ciA9IHBwdHI7DQo+IC0gICAgICAgICAgICAgICBkbyB7DQo+IC0gICAg ICAgICAgICAgICAgICAgICAgIGltYWdlW3VsZW4rK10gPSAodWludDhfdCkgc3RydG91bChwcHRy LCAmcHB0ciwgMTYpOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICBpZiAocHRyID09IHBwdHIp IHsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bGVuLS07DQo+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgICAgICAgICAgICAgICAg IH0NCj4gLSAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVsZW4gPj0gcHJvZ2xlbikNCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgcHRyID0gcHB0cjsNCj4gLSAgICAgICAgICAgICAgIH0gd2hpbGUgKDEpOw0KPiAtICAg ICAgIH0NCj4gLQ0KPiAtICAgICAgIGFzc2VydCh1bGVuID09IHByb2dsZW4pOw0KPiAtICAgICAg IHByaW50ZigiJXUgYnl0ZXMgZW1pdHRlZCBmcm9tIEpJVCBjb21waWxlciAocGFzczolZCwgZmxl bjolZClcbiIsDQo+IC0gICAgICAgICAgICAgIHByb2dsZW4sIHBhc3MsIGZsZW4pOw0KPiAtICAg ICAgIHByaW50ZigiJWx4ICsgPHg+OlxuIiwgYmFzZSk7DQo+IC0NCj4gLSAgICAgICByZWdmcmVl KCZyZWdleCk7DQo+IC0gICAgICAgKmlsZW4gPSB1bGVuOw0KPiAtICAgICAgIHJldHVybiBpbWFn ZTsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIHZvaWQgdXNhZ2Uodm9pZCkNCj4gLXsNCj4gLSAgICAg ICBwcmludGYoIlVzYWdlOiBicGZfaml0X2Rpc2FzbSBbLi4uXVxuIik7DQo+IC0gICAgICAgcHJp bnRmKCIgICAgICAgLW8gICAgICAgICAgQWxzbyBkaXNwbGF5IHJlbGF0ZWQgb3Bjb2RlcyAoZGVm YXVsdDogb2ZmKS5cbiIpOw0KPiAtICAgICAgIHByaW50ZigiICAgICAgIC1PIDxmaWxlPiAgIFdy aXRlIGJpbmFyeSBpbWFnZSBvZiBjb2RlIHRvIGZpbGUsIGRvbid0IGRpc2Fzc2VtYmxlIHRvIHN0 ZG91dC5cbiIpOw0KPiAtICAgICAgIHByaW50ZigiICAgICAgIC1mIDxmaWxlPiAgIFJlYWQgbGFz dCBpbWFnZSBkdW1wIGZyb20gZmlsZSBvciBzdGRpbiAoZGVmYXVsdDoga2xvZykuXG4iKTsNCj4g LSAgICAgICBwcmludGYoIiAgICAgICAtaCAgICAgICAgICBEaXNwbGF5IHRoaXMgaGVscC5cbiIp Ow0KPiAtfQ0KPiAtDQo+IC1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+IC17DQo+ IC0gICAgICAgdW5zaWduZWQgaW50IGxlbiwga2xlbiwgb3B0LCBvcGNvZGVzID0gMDsNCj4gLSAg ICAgICBjaGFyICprYnVmZiwgKmZpbGUgPSBOVUxMOw0KPiAtICAgICAgIGNoYXIgKm9maWxlID0g TlVMTDsNCj4gLSAgICAgICBpbnQgb2ZkOw0KPiAtICAgICAgIHNzaXplX3QgbnI7DQo+IC0gICAg ICAgdWludDhfdCAqcG9zOw0KPiAtICAgICAgIHVpbnQ4X3QgKmltYWdlID0gTlVMTDsNCj4gLQ0K PiAtICAgICAgIHdoaWxlICgob3B0ID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJvZjpPOiIpKSAhPSAt MSkgew0KPiAtICAgICAgICAgICAgICAgc3dpdGNoIChvcHQpIHsNCj4gLSAgICAgICAgICAgICAg IGNhc2UgJ28nOg0KPiAtICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGVzID0gMTsNCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgICAgICAgICBjYXNlICdPJzoN Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgb2ZpbGUgPSBvcHRhcmc7DQo+IC0gICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOw0KPiAtICAgICAgICAgICAgICAgY2FzZSAnZic6DQo+IC0gICAg ICAgICAgICAgICAgICAgICAgIGZpbGUgPSBvcHRhcmc7DQo+IC0gICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOw0KPiAtICAgICAgICAgICAgICAgZGVmYXVsdDoNCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgdXNhZ2UoKTsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0K PiAtICAgICAgICAgICAgICAgfQ0KPiAtICAgICAgIH0NCj4gLQ0KPiAtICAgICAgIGJmZF9pbml0 KCk7DQo+IC0NCj4gLSAgICAgICBrYnVmZiA9IGdldF9sb2dfYnVmZihmaWxlLCAma2xlbik7DQo+ IC0gICAgICAgaWYgKCFrYnVmZikgew0KPiAtICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIs ICJDb3VsZCBub3QgcmV0cmlldmUgbG9nIGJ1ZmZlciFcbiIpOw0KPiAtICAgICAgICAgICAgICAg cmV0dXJuIC0xOw0KPiAtICAgICAgIH0NCj4gLQ0KPiAtICAgICAgIGltYWdlID0gZ2V0X2xhc3Rf aml0X2ltYWdlKGtidWZmLCBrbGVuLCAmbGVuKTsNCj4gLSAgICAgICBpZiAoIWltYWdlKSB7DQo+ IC0gICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk5vIEpJVCBpbWFnZSBmb3VuZCFcbiIp Ow0KPiAtICAgICAgICAgICAgICAgZ290byBkb25lOw0KPiAtICAgICAgIH0NCj4gLSAgICAgICBp ZiAoIW9maWxlKSB7DQo+IC0gICAgICAgICAgICAgICBnZXRfYXNtX2luc25zKGltYWdlLCBsZW4s IG9wY29kZXMpOw0KPiAtICAgICAgICAgICAgICAgZ290byBkb25lOw0KPiAtICAgICAgIH0NCj4g LQ0KPiAtICAgICAgIG9mZCA9IG9wZW4ob2ZpbGUsIE9fV1JPTkxZIHwgT19DUkVBVCB8IE9fVFJV TkMsIERFRkZJTEVNT0RFKTsNCj4gLSAgICAgICBpZiAob2ZkIDwgMCkgew0KPiAtICAgICAgICAg ICAgICAgZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3Qgb3BlbiBmaWxlICVzIGZvciB3cml0aW5n OiAiLCBvZmlsZSk7DQo+IC0gICAgICAgICAgICAgICBwZXJyb3IoTlVMTCk7DQo+IC0gICAgICAg ICAgICAgICBnb3RvIGRvbmU7DQo+IC0gICAgICAgfQ0KPiAtICAgICAgIHBvcyA9IGltYWdlOw0K PiAtICAgICAgIGRvIHsNCj4gLSAgICAgICAgICAgICAgIG5yID0gd3JpdGUob2ZkLCBwb3MsIGxl bik7DQo+IC0gICAgICAgICAgICAgICBpZiAobnIgPCAwKSB7DQo+IC0gICAgICAgICAgICAgICAg ICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IHdyaXRlIGRhdGEgdG8gJXM6ICIsIG9m aWxlKTsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgcGVycm9yKE5VTEwpOw0KPiAtICAgICAg ICAgICAgICAgICAgICAgICBnb3RvIGRvbmU7DQo+IC0gICAgICAgICAgICAgICB9DQo+IC0gICAg ICAgICAgICAgICBsZW4gLT0gbnI7DQo+IC0gICAgICAgICAgICAgICBwb3MgKz0gbnI7DQo+IC0g ICAgICAgfSB3aGlsZSAobGVuKTsNCj4gLSAgICAgICBjbG9zZShvZmQpOw0KPiAtDQo+IC1kb25l Og0KPiAtICAgICAgIHB1dF9sb2dfYnVmZihrYnVmZik7DQo+IC0gICAgICAgZnJlZShpbWFnZSk7 DQo+IC0gICAgICAgcmV0dXJuIDA7DQo+IC19DQo+IC0tDQo+IDIuMjcuMA0KPiANCg==