From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E565645AF4; Wed, 9 Oct 2024 18:19:02 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B9F5340697; Wed, 9 Oct 2024 18:19:02 +0200 (CEST) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2054.outbound.protection.outlook.com [40.107.237.54]) by mails.dpdk.org (Postfix) with ESMTP id 2AE9B402A3 for ; Wed, 9 Oct 2024 18:19:01 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=U4stwQDq2kRs4d3iXnzb7omBfsJrt/oAPZz07YlihAiFk9pXQa8du53DiriodGilATi4m5MfOOLIsNGisQNotd6su6NBRi5UhucQLcAFaRPj9ycLKqHIe3Cs7dRND1El6LOOtV877pVJQTxboAKCOZkYEguvnikruPWWUOa3fca8PdgkpoqUye/RgzF+cD7lZMD/fOEit82Ynz7gwKhPerocpTBq9I5BR4Jg9nMlBW/q1G1bQJTqFEQI4qmNOvzITjglE+o59bQGl7/ZJpnBZ0WqGMV85339qLwWRiyPffei6iOA3Fwi/DRBUcMfshfWkwRUcxAMquj5QvqXnKO7LQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=hG1lc8WauWGzKfgBzbQDGbQlFVTjr53N7Jt2bmYtqDo=; b=zUCw+r9jj1n7byL8f67iiPluNZ7t8YN6wONnAOWRaRkVA0q8WYepPXCzb1bcxYks5APfHRLUsdIAj9LqjDKYQZNEmcjadj/yyjMODNtQz58W7xbkUgGr20IRTE2KurwFWAni0hblVsoUoNUDO7LZQmL4hwhTA65KigQ2iJE/DmZzC7crHvnYdQ3KfbbCJ9K1/9qHcuF+ddDF/knbsGkOp5YcxLsNat1JycSQ4Dgthcj/l0H5x1OCBZcZ1byiRC3LprZn7um0U2ueZlaaeE6+uEfHpb5leWoEBZJlJDpY3v/DRmEj36WvciJLj+EfiWrUvdAHjNvbpleSammK0Rwj+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hG1lc8WauWGzKfgBzbQDGbQlFVTjr53N7Jt2bmYtqDo=; b=cHkT+c8zsKPp6wsRjJ8ZlGthYCBDAm9sU5+JZ1ZM4A8FDhtipY7EFxR3aGUfwMcfjBNo5jNeyklV8Szs3ewJXHd4C2EikdmcF5a4LF0K9XBdLU2Q3krc3+oVH8W4HXJKdEwMd/9xWeL34rRBhMBTrLaKifHCnFJYr5ZITuUHTPo6HijSIyOVTux9y0C1M1ft0beo84CQTTNdSXtyBgP4X6DtP/j2PQGYUY/wKVyJ4UQnaOv8wL+bqBfehEJNlILw/ENv71AS9W4N3jHECHRo0UXiB/8XtOqgCMPihqso/B3d/Buq6/rWKyN3YRWqlMOEzR12SgL4yKNplc1D4zifFw== Received: from CH3PR12MB8460.namprd12.prod.outlook.com (2603:10b6:610:156::15) by CH3PR12MB8282.namprd12.prod.outlook.com (2603:10b6:610:124::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.16; Wed, 9 Oct 2024 16:18:54 +0000 Received: from CH3PR12MB8460.namprd12.prod.outlook.com ([fe80::2e9d:7265:3b84:59b5]) by CH3PR12MB8460.namprd12.prod.outlook.com ([fe80::2e9d:7265:3b84:59b5%7]) with mapi id 15.20.8026.020; Wed, 9 Oct 2024 16:18:54 +0000 From: Dariusz Sosnowski To: Ferruh Yigit , Konstantin Ananyev , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Andrew Rybchenko CC: "dev@dpdk.org" , Bruce Richardson Subject: RE: [RFC 0/4] ethdev: rework config restore Thread-Topic: [RFC 0/4] ethdev: rework config restore Thread-Index: AQHbCaxc8KDvUepY/Eal2yE/l4xqAbJve/yAgAeO5XCABBf3gIAA4jcAgAE0v4CAAIIbgIAA+96Q Date: Wed, 9 Oct 2024 16:18:54 +0000 Message-ID: References: <20240918092201.33772-1-dsosnowski@nvidia.com> <13747524-f073-4749-adbd-be1c7681dbcd@amd.com> <3833d9270fba43af9d17765056911940@huawei.com> <8a6f760c-8bc7-46cd-92e0-a8af66114e2d@amd.com> In-Reply-To: <8a6f760c-8bc7-46cd-92e0-a8af66114e2d@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH3PR12MB8460:EE_|CH3PR12MB8282:EE_ x-ms-office365-filtering-correlation-id: bf585286-ee01-4b09-6157-08dce87e11ff x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?UFJIQkhXMmdEZW9aMzBkRTJ2OHJyRGZRSUpIYTU0bU9ldnRwR05TMFdEVkVV?= =?utf-8?B?K1NkSVVldDFyVlE5NnRDbEM5em8wRFJmK0haUUh5TGlkTW9tejNhS05TYjNr?= =?utf-8?B?Q1pHZUhmZWxCYkI4ZkMrdnpyNUZpU1hSVmVVTG9pTU9sTlpnNUlPazhDTDFv?= =?utf-8?B?NVMzaHV6N1RsRzQ5dWVKdnV6amprcnV6NFRLWTRXWFlTNlZidTh1VFVsNTFN?= =?utf-8?B?RGJPUzlJUzQ3bkV6QWoyWkkvUUJWeWx6KzErU2RqTUdnVjh0V1lTakU3Y0VO?= =?utf-8?B?enZlcHI5NHBvWXFnbFVleGZvV2dYUG9MTXdwUm5jQmYycFl6VlgyWDFqRXNE?= =?utf-8?B?Nm5OYTVObE1VRnNyRWoyKzJ1NDVsaHVvU3phV2dZVklkRnlocTFQbXJ2ZEFz?= =?utf-8?B?MWdJYTJmenFsYVBVS1VoUVRmZjJ3WlYyUGE3YVBkRzdxcXFGR0dZdU1haElM?= =?utf-8?B?VEJKUS9Tb1Q2UDhlWUFUYmt2MFJVc0ZhUzlIaGsvcG5FUE5SS0FTNUtNd2x5?= =?utf-8?B?bWxoVlBWKzFrL2pGYUFJSGREMHlXTjNodnAwRkhxQ0ZVRmVITHRlTWVoRVVP?= =?utf-8?B?SWZNb0RtbFFTZnV5RE5FRjNUbW9tRXQ1S3BYQWQwdys1Q0xCNmlnb2x2YVEw?= =?utf-8?B?Q2xIUTN3ZmE3bDJxemFNOW1lcXZxelQvT3g0bzYxMnp3dXpiUWgyTmZiQ1Jj?= =?utf-8?B?Zjl2WXJQRmI3WW9mek9Ud1pjRmhDdEZtK0pnM3FsbnZQZGowVnlRbDQ5ODRV?= =?utf-8?B?REU4QzJnWXlHVnNreEIvQUZQTndqSER3cHBveHdOTktmMUdZS2dHcWpmUTFU?= =?utf-8?B?RCtDRFpIeVJ5Yldacm9HYXRVQWFDRnFIclZoTkI0Ty9JSGxPSkZMaTVCbUds?= =?utf-8?B?YXpUMklKWTIyclp5MTlNYmdLZGdJNU1xSzA5a2ErV3cxZWFnbFVKU01BU3RG?= =?utf-8?B?UjlyNDg2cldvdktCTTNEdU1tRitTUXFYUWxqRHhpV25VNjhyZXZWOHh1b3lk?= =?utf-8?B?ZGJ2MkRLNWhhZHBKWUcwWEd5RTNqVVVRR1dwQlB2R1M2a1p0K3oyeWlRaVQ3?= =?utf-8?B?VDgxVkk5N2JrVEVzMlJpN2tCOHV1dnBkWUdzazJCamdyTHFvSHd2VnVUSU82?= =?utf-8?B?UkhMa0VZbHlRLzU3VnFTdmlUSTF1WnBNU3ZXNUJDUVlZaDRITFhOcXNNRFhi?= =?utf-8?B?czJCSGlGeGtsMzFWeXloc25XODVSSUdmL0lrbTBETzNoV2prNkVOVk5jclBN?= =?utf-8?B?ZWpKckVaUzlCUmRjTGtQRE1lYXlsTU9aampnUGZPTnBmWUxjQ2NzalNmQnl0?= =?utf-8?B?T1BPbXVNdkxIbUt1KzZYaWNVQ2ZLUlpRa2ROdFh3NUpvMjdVMUFLb2N1c0J1?= =?utf-8?B?b1d6dFptMnk1M1FSWHBZcVJ1OWZFclNxTHQ1SVUrN0szR1Fsa1pCeU13czE5?= =?utf-8?B?Z0xkR0tvRzdTb0dHUmhLVThkQVd3TURSY3VtSGxRK0lWblphb2FRQUNxU3Jq?= =?utf-8?B?eWFDcWxSUmJZM244V3hiYm45MkV3eTluWVZENXBCeXFvdVlYUE1hZTBjQmFp?= =?utf-8?B?azFJNlVpSjhtWVRvRDExRUxweG1sVnFvTllSM3YyYTZodGtBOXFtd2RUdVYv?= =?utf-8?B?YmZNb0VFVFB2Y2JEVHd1Y2FTR1k3N0JrdE1zbUxQTUJlYlVFQ3NWNGFoVVdI?= =?utf-8?B?RHFXRTc0Nmh5RFJHSDlFL29nWXMzejl0Vkgycmt0M0NSZlFLUzdWM0lEdWUx?= =?utf-8?B?TW53VGFFSEdCVjVSeGhpMWNnZytXRFhyZVhiSGllM0dJNUpNblB3c1U4TENL?= =?utf-8?B?cnBMaGZTWnJBYjRzYTY0Zz09?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH3PR12MB8460.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?d3dmbjc1UDNyQU50M1BYbU9oTU1KVXhHdFA5RVVOdzVNZnpEeXg2eHhMRDZJ?= =?utf-8?B?TFNzZHZNQ0VtWXhJZkNMaDNjL2Jtd0gzektwQVdyZy92VlBzb0Z6RFk0cHl4?= =?utf-8?B?L2RsVmhhUjU5SDFXWWlNSGM3VFlDS3NidU1EUUxXRGRKSTM0bTQvbzBzZExV?= =?utf-8?B?K2RwSGhOZzUzaFczd1EzUU9VODRSQXo0VEVaSUNpRUdBR2FWREJqNkQwd0k0?= =?utf-8?B?b1dpc3RZbDJyZG1WSWFzVmRsa0ZFcWhDQTlOMm1tNEpzWmh6VGtsVlphYWRj?= =?utf-8?B?a3V0V1J4bmFJcms5a2cyWFF1RFA4aVhMeXFPQ1pJQi9WTWxMc1BZOWJmZnFQ?= =?utf-8?B?RW1LUlU4d283MGFjTmM5OFZTUWgvZDN1VHlBZDJHOFBEZlFlYm1JRnRsaFNP?= =?utf-8?B?NFUzTzhQeVlHa2lBSFFUbDRibWtycDZuSU5KbjU5dlMwNGFOVC9ra3NtZHFi?= =?utf-8?B?d0RnZ2JlVnBVdnNvQmtpOTVVM2Nmc3NCRXpXZStTVm1oYXU5Y0M4VCt6SlVI?= =?utf-8?B?RFRkSmFWRlpDZjlieXhaalpYYWpMRWN6SzZhS2RzMFVLS0daYXdWcGU2Q3lS?= =?utf-8?B?cFBEcjE2Z3BlQk9RSld2dmVob1NUeGFGME1FdUdETkxoVTdYRzJOR3NpNmxT?= =?utf-8?B?TzI5RzROTHg4b2lqeTQvemdwSldBSVdVWDlsaEdsODNxN2FLdkZhbjVqRDVH?= =?utf-8?B?bXJQekVsTkFqTnc2S29PM29GRFhzcUZ4cjUvUHVybFRJZHAyQ2JxMUhld1Vu?= =?utf-8?B?RDQvNFBvOUxkWU5jbmFidk9zSDg3N3V6cnhQVUUxUDVpc21aQXdnTDdxblYr?= =?utf-8?B?S3NMS3dOLytHRmhyWFBLMjR1d1A0U2pNTkQ0cTJBWjNtbGpjZjVtZHNUeUtZ?= =?utf-8?B?TnpxQ0lZNW1yalZva0NOZ2k2T2J3Y3Q5Z2QwNGYwdk5HaUEwK3o2em44azFx?= =?utf-8?B?M1dIQzlwdGlQZEREdXo1aTc1WklhaG5jSWxRUm1ON2M3TTRSNDR2THBXNHpx?= =?utf-8?B?ZXoxWWN6d3BCQTMyMUlkUGFDb1NmUFF0b0FlWGxvV3F6U2lIV2J2WHMyOTN6?= =?utf-8?B?ckxrMmpBUFhjZ1VVNEtIeVpLZDJNMUp0THpuUmVncnpUQ1hQTVRXeXl6OTBU?= =?utf-8?B?VkFQSEV5bFV0RU9WOUd0RVM4RHBZdlp6aHJkbzdPcGlFM0xtcWdleGFNNWNW?= =?utf-8?B?bHBPMTRQVTFXL0ZHdHN0VE9XOExubHdZdlRndlJXRVVPTnZlSWJzZW5vamlX?= =?utf-8?B?N3c0NDBpZGlWU21XY3dqaXlBdWJUTXBnUlJCbWlxaFhuaEU1OXJNYnVOcy9l?= =?utf-8?B?elpPY0FOS3NUYWFZUGZuWUFURGEzajNIZUtzcnNOYmZ6Y3YxNFVucHlwdStS?= =?utf-8?B?QUpIWmpEVHJURUNRVEFQWUF1V0JpK3lJMzNCTHVQOGZnbFdkZENUZllWY3dD?= =?utf-8?B?b0FKc2EybWYvczZROWtBMVV2WjFJY1RHVHZkaTcrZHZENzlOeWlYZ1lFbXg3?= =?utf-8?B?ZHJYcGZqZW55bUlkM1RMTXNVdE5ENDY2c1AwdWZTSmt4ME92Mi9sbDc5VlNX?= =?utf-8?B?WUxoN3M4UmhoSGZOTFU3NmJzMkg3ZndDQmExYmtxWVI4anhLWk5wd0J6RFhR?= =?utf-8?B?MDJIRkdzKzZJOGl2YSt2OVk1Mmp4VzE2R2RYZG90WkpOV1RZYTI2L09PTE9r?= =?utf-8?B?djR5N2NxNGdCMjBWUnJtSGVLZzN3M05waldIbEhoYkpRcmZQY2VtK1R4akFr?= =?utf-8?B?WFVUR2llcDdrZUx2RHRoRk1wT0w3TjZ4K2hsYzNjZFlwaUd3bkpQcDBYbXd6?= =?utf-8?B?WUlFZ3BQalE4NlFNcTNJb3FBaXdMUHAyQ0pQMUNSQTBsa0Jmb25kVXAwbEl0?= =?utf-8?B?UW9lT3lrdytUcnh3dENLcGxDSnJWZnFyV0dSYjlQb1VJVFVxRjB0ME5zVHgw?= =?utf-8?B?RHB5eENwRDVHL0sxL0hFMmkrUllMSytBMVZ0Q01aYkRlZGpiSHpkVVprK1ly?= =?utf-8?B?UTNTMHBvYzkwVE5pMUFEM1R1MzZZT0pvODRUbDNPZXlETExiSEYzS3VOaEVy?= =?utf-8?B?VTBQczhSTzE4MzhqU2IwZlE3YlVLUU1ZYWd6Q0R2RkYydGxFWnRVSm1TSklr?= =?utf-8?Q?6sdhGWSn5NBDM8p2vIBW0PRPR?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8460.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bf585286-ee01-4b09-6157-08dce87e11ff X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Oct 2024 16:18:54.4874 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: MDld6bsJ9y6GFB/IDWjFyQX+ErOJk/FXTh7gS9W4ryP16w+J3/DysFLIUD2NtjhdgfoFEc14ZbFBHppHXKMCJQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8282 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBGZXJydWggWWlnaXQgPGZlcnJ1 aC55aWdpdEBhbWQuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgOSwgMjAyNCAwMzow OA0KPiBUbzogS29uc3RhbnRpbiBBbmFueWV2IDxrb25zdGFudGluLmFuYW55ZXZAaHVhd2VpLmNv bT47IERhcml1c3ogU29zbm93c2tpDQo+IDxkc29zbm93c2tpQG52aWRpYS5jb20+OyBOQlUtQ29u dGFjdC1UaG9tYXMgTW9uamFsb24gKEVYVEVSTkFMKQ0KPiA8dGhvbWFzQG1vbmphbG9uLm5ldD47 IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiBDYzog ZGV2QGRwZGsub3JnOyBCcnVjZSBSaWNoYXJkc29uIDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNv bT4NCj4gU3ViamVjdDogUmU6IFtSRkMgMC80XSBldGhkZXY6IHJld29yayBjb25maWcgcmVzdG9y ZQ0KPiANCj4gRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0 YWNobWVudHMNCj4gDQo+IA0KPiBPbiAxMC84LzIwMjQgNjoyMSBQTSwgS29uc3RhbnRpbiBBbmFu eWV2IHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4+Pj4+IFdlIGhhdmUgYmVlbiB3b3JraW5nIG9uIG9w dGltaXppbmcgdGhlIGxhdGVuY3kgb2YgY2FsbHMgdG8NCj4gPj4+Pj4+IHJ0ZV9ldGhfZGV2X3N0 YXJ0KCksIG9uIHBvcnRzIHNwYXduZWQgYnkgbWx4NSBQTUQuIE1vc3Qgb2YgdGhlDQo+ID4+Pj4+ PiB3b3JrIHJlcXVpcmVzIGNoYW5nZXMgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mDQo+ID4+Pj4+ PiAuZGV2X3N0YXJ0KCkgUE1EIGNhbGxiYWNrLCBidXQgSSBhbHNvIHdhbnRlZCB0byBzdGFydCBh DQo+ID4+Pj4+PiBkaXNjdXNzaW9uIHJlZ2FyZGluZyBjb25maWd1cmF0aW9uIHJlc3RvcmUuDQo+ ID4+Pj4+Pg0KPiA+Pj4+Pj4gcnRlX2V0aF9kZXZfc3RhcnQoKSBkb2VzIGEgZmV3IHRoaW5ncyBv biB0b3Agb2YgY2FsbGluZyAuZGV2X3N0YXJ0KCkNCj4gY2FsbGJhY2s6DQo+ID4+Pj4+Pg0KPiA+ Pj4+Pj4gLSBCZWZvcmUgY2FsbGluZyBpdDoNCj4gPj4+Pj4+ICAgICAtIGV0aF9kZXZfbWFjX3Jl c3RvcmUoKSAtIGlmIGRldmljZSBzdXBwb3J0cw0KPiA+Pj4+Pj4gUlRFX0VUSF9ERVZfTk9MSVZF X01BQ19BRERSOw0KPiA+Pj4+Pj4gLSBBZnRlciBjYWxsaW5nIGl0Og0KPiA+Pj4+Pj4gICAgIC0g ZXRoX2Rldl9tYWNfcmVzdG9yZSgpIC0gaWYgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQNCj4gPj4+ Pj4gUlRFX0VUSF9ERVZfTk9MSVZFX01BQ19BRERSOw0KPiA+Pj4+Pj4gICAgIC0gcmVzdG9yZSBw cm9taXNjdW91cyBjb25maWcNCj4gPj4+Pj4+ICAgICAtIHJlc3RvcmUgYWxsIG11bHRpY2FzdCBj b25maWcNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBldGhfZGV2X21hY19yZXN0b3JlKCkgaXRlcmF0ZXMg b3ZlciBhbGwga25vd24gTUFDIGFkZHJlc3NlcyAtDQo+ID4+Pj4+PiBzdG9yZWQgaW4gcnRlX2V0 aF9kZXZfZGF0YS5tYWNfYWRkcnMgYXJyYXkgLSBhbmQgY2FsbHMNCj4gPj4+Pj4+IC5tYWNfYWRk cl9zZXQoKSBhbmQgLm1hY19hZGRyX2FkZCgpIGNhbGxiYWNrcyB0byBhcHBseSB0aGVzZSBNQUMN Cj4gYWRkcmVzc2VzLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFByb21pc2N1b3VzIGNvbmZpZyByZXN0 b3JlIGNoZWNrcyBpZiBwcm9taXNjdW91cyBtb2RlIGlzIGVuYWJsZWQNCj4gPj4+Pj4+IG9yIG5v dCwgYW5kIGNhbGxzIC5wcm9taXNjdW91c19lbmFibGUoKSBvciAucHJvbWlzY3VvdXNfZGlzYWJs ZSgpDQo+IGNhbGxiYWNrLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEFsbCBtdWx0aWNhc3QgY29uZmln IHJlc3RvcmUgY2hlY2tzIGlmIGFsbCBtdWx0aWNhc3QgbW9kZSBpcw0KPiA+Pj4+Pj4gZW5hYmxl ZCBvciBub3QsIGFuZCBjYWxscyAuYWxsbXVsdGljYXN0X2VuYWJsZSgpIG9yIC5hbGxtdWx0aWNh c3RfZGlzYWJsZSgpDQo+IGNhbGxiYWNrLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IENhbGxiYWNrcyBh cmUgY2FsbGVkIGRpcmVjdGx5IGluIGFsbCBvZiB0aGVzZSBjYXNlcywgdG8gYnlwYXNzDQo+ID4+ Pj4+PiB0aGUgY2hlY2tzIGZvciBhcHBseWluZyB0aGUgc2FtZSBjb25maWd1cmF0aW9uLCB3aGlj aCBleGlzdCBpbiByZWxldmFudA0KPiBBUElzLg0KPiA+Pj4+Pj4gQ2hlY2tzIGFyZSBieXBhc3Nl ZCB0byBmb3JjZSBkcml2ZXJzIHRvIHJlYXBwbHkgdGhlIGNvbmZpZ3VyYXRpb24uDQo+ID4+Pj4+ Pg0KPiA+Pj4+Pj4gTGV0J3MgY29uc2lkZXIgd2hhdCBoYXBwZW5zIGluIHRoZSBmb2xsb3dpbmcg c2VxdWVuY2Ugb2YgQVBJIGNhbGxzLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IDEuIHJ0ZV9ldGhfZGV2 X2NvbmZpZ3VyZSgpDQo+ID4+Pj4+PiAyLiBydGVfZXRoX3R4X3F1ZXVlX3NldHVwKCkNCj4gPj4+ Pj4+IDMuIHJ0ZV9ldGhfcnhfcXVldWVfc2V0dXAoKQ0KPiA+Pj4+Pj4gNC4gcnRlX2V0aF9wcm9t aXNjdW91c19lbmFibGUoKQ0KPiA+Pj4+Pj4gICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPnByb21p c2N1b3VzX2VuYWJsZSgpDQo+ID4+Pj4+PiAgICAgLSBTdG9yZXMgcHJvbWlzY3VvdXMgc3RhdGUg aW4gZGV2LT5kYXRhLT5wcm9taXNjdW91cyA1Lg0KPiA+Pj4+Pj4gcnRlX2V0aF9hbGxtdWx0aWNh c3RfZW5hYmxlKCkNCj4gPj4+Pj4+ICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5hbGxtdWx0aWNh c3RfZW5hYmxlKCkNCj4gPj4+Pj4+ICAgICAtIFN0b3JlcyBhbGxtdWx0aWNhc3Qgc3RhdGUgaW4g ZGV2LT5kYXRhLT5hbGxtdWx0aWNhc3QgNi4NCj4gPj4+Pj4+IHJ0ZV9ldGhfZGV2X3N0YXJ0KCkN Cj4gPj4+Pj4+ICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5kZXZfc3RhcnQoKQ0KPiA+Pj4+Pj4g ICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPm1hY19hZGRyX3NldCgpIC0gYXBwbHkgZGVmYXVsdCBN QUMgYWRkcmVzcw0KPiA+Pj4+Pj4gICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPnByb21pc2N1b3Vz X2VuYWJsZSgpDQo+ID4+Pj4+PiAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+YWxsbXVsdGljYXN0 X2VuYWJsZSgpDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gRXZlbiB0aG91Z2ggYWxsIGNvbmZpZ3VyYXRp b24gaXMgYXZhaWxhYmxlIGluIGRldi0+ZGF0YSBhZnRlcg0KPiA+Pj4+Pj4gc3RlcCA1LCBsaWJy YXJ5IGZvcmNlcyByZWFwcGx5aW5nIHRoaXMgY29uZmlndXJhdGlvbiBpbiBzdGVwIDYuDQo+ID4+ Pj4+Pg0KPiA+Pj4+Pj4gSW4gbWx4NSBQTUQgY2FzZSBhbGwgcmVsZXZhbnQgY2FsbGJhY2tzIHJl cXVpcmUgY29tbXVuaWNhdGlvbg0KPiA+Pj4+Pj4gd2l0aCB0aGUga2VybmVsIGRyaXZlciwgdG8g Y29uZmlndXJlIHRoZSBkZXZpY2UgKG1seDUgUE1EIG11c3QNCj4gPj4+Pj4+IGNyZWF0ZS9kZXN0 cm95IG5ldyBrZXJuZWwgZmxvdyBydWxlcyBhbmQvb3IgY2hhbmdlIG5ldGRldiBjb25maWcpLg0K PiA+Pj4+Pj4NCj4gPj4+Pj4+IG1seDUgUE1EIGhhbmRsZXMgYXBwbHlpbmcgYWxsIGNvbmZpZ3Vy YXRpb24gaW4gLmRldl9zdGFydCgpLCBzbw0KPiA+Pj4+Pj4gdGhlIGZvbGxvd2luZyBmb3JjZWQg Y2FsbGJhY2tzIGZvcmNlIGFkZGl0aW9uYWwgY29tbXVuaWNhdGlvbg0KPiA+Pj4+Pj4gd2l0aCB0 aGUga2VybmVsLiBUaGUNCj4gPj4+Pj4gc2FtZSBjb25maWd1cmF0aW9uIGlzIGFwcGxpZWQgbXVs dGlwbGUgdGltZXMuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQXMgYW4gb3B0aW1pemF0aW9uLCBtbHg1 IFBNRCBjb3VsZCBjaGVjayBpZiBhIGdpdmVuIGNvbmZpZ3VyYXRpb24NCj4gPj4+Pj4+IHdhcyBh cHBsaWVkLCBidXQgdGhpcyB3b3VsZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhl DQo+ID4+Pj4+PiBsaWJyYXJ5IChmb3IgZXhhbXBsZSBydGVfZXRoX3Byb21pc2N1b3VzX2VuYWJs ZSgpIGRvZXMgbm90IGNhbGwNCj4gPj4+Pj4+IHRoZSBkcml2ZXIgaWYNCj4gPj4+Pj4+IGRldi0+ ZGF0YS0+cHJvbWlzY3VvdXMgaXMgc2V0KS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBRdWVzdGlvbjog U2luY2UgYWxsIG9mIHRoZSBjb25maWd1cmF0aW9uIGlzIGF2YWlsYWJsZSBiZWZvcmUNCj4gPj4+ Pj4+IC5kZXZfc3RhcnQoKSBjYWxsYmFjayBpcyBjYWxsZWQsIHdoeSBldGhkZXYgbGlicmFyeSBk b2VzIG5vdA0KPiA+Pj4+Pj4gZXhwZWN0IC5kZXZfc3RhcnQoKSB0bw0KPiA+Pj4+PiB0YWtlIHRo aXMgY29uZmlndXJhdGlvbiBpbnRvIGFjY291bnQ/DQo+ID4+Pj4+PiBJbiBvdGhlciB3b3Jkcywg d2h5IGxpYnJhcnkgaGFzIHRvIHJlYXBwbHkgdGhlIGNvbmZpZ3VyYXRpb24/DQo+ID4+Pj4+Pg0K PiA+Pj4+Pj4gSSBjb3VsZCBub3QgZmluZCBhbnkgcGFydGljdWxhciByZWFzb24gd2h5IGNvbmZp Z3VyYXRpb24gcmVzdG9yZQ0KPiA+Pj4+Pj4gZXhpc3RzIGFzIHBhcnQgb2YgdGhlIHByb2Nlc3Mg KGl0IHdhcyBpbiB0aGUgaW5pdGlhbCBEUERLIGNvbW1pdCkuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pg0K PiA+Pj4+PiBNeSBhc3N1bXB0aW9uIGlzIC5kZXZfc3RvcCgpIGNhdXNlIHRoZXNlIHZhbHVlcyBy ZXNldCBpbiBzb21lDQo+ID4+Pj4+IGRldmljZXMsIHNvDQo+ID4+Pj4+IC5kZXZfc3RhcnQoKSBy ZXN0b3JlcyB0aGVtIGJhY2suDQo+ID4+Pj4+IEBCcnVjZSBvciBAS29uc3RhbnRpbiBtYXkgcmVt ZW1iZXIgdGhlIGhpc3RvcnkuDQo+ID4+Pg0KPiA+Pj4gWWVwLCBhcyBJIHJlbWVtYmVyLCBhdCBs ZWFzdCBzb21lIEludGVsIFBNRHMgY2FsbGluZyBod19yZXNldCgpIGFkDQo+ID4+PiBkZWNfc3Rv cCgpIGFuZCBldmVuIGRldl9zdGFydCgpIHRvIG1ha2Ugc3VyZSB0aGF0IEhXIGlzIGluIGEgY2xl YW4gKGtub3duKQ0KPiBzdGF0ZS4NCj4gPj4+DQo+ID4+Pj4+DQo+ID4+Pj4+IEJ1dCBJIGFncmVl IHRoaXMgaXMgZGV2aWNlIHNwZWNpZmljIGJlaGF2aW9yLCBhbmQgY2FuIGJlIG1hbmFnZWQNCj4g Pj4+Pj4gYnkgd2hhdCBkZXZpY2UgcmVxdWlyZXMuDQo+ID4+Pg0KPiA+Pj4gUHJvYmFibHkgeWVz Lg0KPiA+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4+IFRoZSBwYXRjaGVzIGluY2x1ZGVkIGluIHRoaXMg UkZDLCBwcm9wb3NlIGEgbWVjaGFuaXNtIHdoaWNoIHdvdWxkDQo+ID4+Pj4+PiBoZWxwIHdpdGgg bWFuYWdpbmcgd2hpY2ggZHJpdmVycyByZWx5IG9uIGZvcmNlZnVsIGNvbmZpZ3VyYXRpb24gcmVz dG9yZS4NCj4gPj4+Pj4+IERyaXZlcnMgY291bGQgYWR2ZXJ0aXNlIGlmIGZvcmNlZnVsIGNvbmZp Z3VyYXRpb24gcmVzdG9yZSBpcw0KPiA+Pj4+Pj4gbmVlZGVkIHRocm91Z2ggYFJURV9FVEhfREVW XypfRk9SQ0VfUkVTVE9SRWAgZGV2aWNlIGZsYWcuIElmIHRoaXMNCj4gPj4+Pj4+IGZsYWcgaXMg c2V0LCB0aGVuIHRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gcmVxdWlyZXMgZXRoZGV2IHRvDQo+ID4+ Pj4+PiBmb3JjZWZ1bGx5IHJlc3RvcmUNCj4gPj4+Pj4gY29uZmlndXJhdGlvbi4NCj4gPj4+Pj4+ DQo+ID4+Pj4+DQo+ID4+Pj4+IE9LIHRvIHVzZSBmbGFnIGZvciBpdCwgYnV0IG5vdCBzdXJlIGFi b3V0IHVzaW5nICdkZXZfaW5mby0+ZGV2X2ZsYWdzJw0KPiA+Pj4+PiAoUlRFX0VUSF9ERVZfKikg Zm9yIHRoaXMsIGFzIHRoaXMgZmxhZyBpcyBzaGFyZWQgd2l0aCB1c2VyIGFuZA0KPiA+Pj4+PiB0 aGlzIGlzIGFsbCBkcGRrIGludGVybmFsLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBXaGF0IGFib3V0IHRv IGhhdmUgYSBkZWRpY2F0ZWQgZmxhZyBmb3IgaXQ/IFdlIGNhbiBoYXZlIGENCj4gPj4+Pj4gZGVk aWNhdGVkIHNldCBvZiBmbGFnIHZhbHVlcyBmb3IgcmVzdG9yZS4NCj4gPj4+Pg0KPiA+Pj4+IEFn cmVlZC4gV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhlIGZvbGxvd2luZz8NCj4gPj4+DQo+ID4+ PiBJbnN0ZWFkIG9mIGV4cG9zaW5nIHRoYXQsIGNhbiB3ZSBwcm9iYWJseSBtYWtlIGl0IHRyYW5z cGFyZW50IHRvIHRoZQ0KPiA+Pj4gdXNlciBhbmQgcHJvYmFibHkgZXRoZGV2IGxheWVyIHRvbz8N Cj4gPj4+DQo+ID4+DQo+ID4+ICsxIHRvIG1ha2UgaXQgdHJhbnNwYXJlbnQgdG8gdXNlciwgYnV0 IG5vdCBzdXJlIGlmIHdlIGNhbiBtYWtlIGl0DQo+ID4+IHRyYW5zcGFyZW50IHRvIGV0aGRldiBs YXllci4NCj4gPg0KPiA+IEp1c3QgdG8gYmUgY2xlYXI6DQo+ID4gTGV0IHNheSwgdXNpbmcgZXhh bXBsZSBmcm9tIGFib3ZlOg0KPiA+DQo+ID4gIHJ0ZV9ldGhfZGV2X3N0YXJ0KCkNCj4gPiAgICAg IC0gQ2FsbCBkZXYtPmRldl9vcHMtPmRldl9zdGFydCgpDQo+ID4gICAgICAtIENhbGwgZGV2LT5k ZXZfb3BzLT5tYWNfYWRkcl9zZXQoKSAtIGFwcGx5IGRlZmF1bHQgTUFDIGFkZHJlc3MNCj4gPiAg ICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPnByb21pc2N1b3VzX2VuYWJsZSgpDQo+ID4gICAgICAt IENhbGwgZGV2LT5kZXZfb3BzLT5hbGxtdWx0aWNhc3RfZW5hYmxlKCkNCj4gPg0KPiA+IFdlIHBy b2JhYmx5IGNhbiBpbnRyb2R1Y2UgZXRoZGV2IGludGVybmFsIGZ1bmN0aW9uIChzdGlsbCB2aXNp YmxlIHRvDQo+ID4gUE1EcykgdGhhdCB3b3VsZCBkbyBsYXN0IDMgc3RlcHM6DQo+ID4gZXRoZGV2 X3JlcGxheV91c2VyX2NvbmYoLi4uKQ0KPiA+ICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+bWFj X2FkZHJfc2V0KCkgLSBhcHBseSBkZWZhdWx0IE1BQyBhZGRyZXNzDQo+ID4gICAgICAtIENhbGwg ZGV2LT5kZXZfb3BzLT5wcm9taXNjdW91c19lbmFibGUoKQ0KPiA+ICAgICAgLSBDYWxsIGRldi0+ ZGV2X29wcy0+YWxsbXVsdGljYXN0X2VuYWJsZSgpDQo+ID4NCj4gPiBBbmQgbGV0IFBNRCBpdHNl bGYgdG8gZGVjaWRlIGRvZXMgaXQgbmVlZHMgdG8gY2FsbCBpdCBhdCBkZXZfc3RhcnQoKSBvciBu b3QuDQo+ID4gU28gaXQgd2lsbCBiZWNvbWU6DQo+ID4gcnRlX2V0aF9kZXZfc3RhcnQoKQ0KPiA+ ICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+ZGV2X3N0YXJ0KCkNCj4gPiAgICAgICAtQ2FsbCBl dGhkZXZfcmVwbGF5X3VzZXJfY29uZiguKQ0KPiA+ICAgICAgICAgICAgICAgLSBDYWxsIGRldi0+ ZGV2X29wcy0+bWFjX2FkZHJfc2V0KCkgLSBhcHBseSBkZWZhdWx0IE1BQyBhZGRyZXNzDQo+ID4g ICAgICAgICAgICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5wcm9taXNjdW91c19lbmFibGUoKQ0K PiA+ICAgICAgICAgICAgICAgLUNhbGwgZGV2LT5kZXZfb3BzLT5hbGxtdWx0aWNhc3RfZW5hYmxl KCkNCj4gPg0KPiA+IEZvciBQTURzIHRoYXQgZG8gbmVlZCB0byByZXN0b3JlIHVzZXIgcHJvdmlk ZWQgY29uZmlnIEFuZA0KPiA+IHJ0ZV9ldGhfZGV2X3N0YXJ0KCkNCj4gPiAgICAgIC0gQ2FsbCBk ZXYtPmRldl9vcHMtPmRldl9zdGFydCgpDQo+ID4NCj4gPiBGb3IgdGhvc2Ugd2hvIGRvIG5vdC4N Cj4gPg0KPiANCj4gT0ssIGdvdCBpdCB3aGF0IHlvdSBtZWFuLg0KPiBQdXNoaW5nIHJlc3RvcmUg ZnVuY3Rpb25hbGl0eSB0byBQTURzIHdvcmtzLCBidXQgdGhpcyBtYXkgYmUgZG9pbmcgcmVkdW5k YW50DQo+IHdvcmsgb24gZWFjaCBQTUQuDQo+IA0KPiBJbnN0ZWFkIERhcml1c3ogc3VnZ2VzdHMg UE1EIHRvIHByb3ZpZGUgYSBmbGFnIHRvIGVodGRldiB0byB3aGF0IHRvIHJlc3RvcmUgYW5kDQo+ IGNvbW1vbiBjb2RlIGluIGV0aGRldiBkb2VzIHRoZSB3b3JrLg0KPiBNeSBiZWxvdyBkZWRpY2F0 ZWQgZGF0YSBzdHJ1Y3QgY29tbWVudCBpcyB0byBoYXZlIHRoaXMgZmxhZyBpbiBhIG5ldyBzdHJ1 Y3QsDQo+IG92ZXJhbGwgbGlrZSBmb2xsb3dpbmc6DQo+IA0KPiBydGVfZXRoX2Rldl9zdGFydCgp DQo+ICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPmRldl9zdGFydCgpDQo+ICAgIC0gQ2FsbCBkZXYt PmRldl9vcHMtPmdldF9yZXN0b3JlX2ZsYWdzKGV0aGRldiwgUlRFX0VUSF9TVEFSVCwgJmZsYWdz KQ0KPiAgICAtIGlmIChmbGFncyAmIE1BQykgZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9zZXQoKQ0K PiAgICAtIGlmIChmbGFncyAmIFBST01JU0MpIGRldi0+ZGV2X29wcy0+cHJvbWlzY3VvdXNfZW5h YmxlKCkNCj4gICAgLSAuLi4NCg0KQ291bGQgeW91IHBsZWFzZSBleHBsYWluIHdoYXQgaXMgdGhl IGJlbmVmaXQgb2YgZXhwb3NpbmcgZmxhZ3MgdGhyb3VnaCBkZXZfb3BzIGNhbGxiYWNrIHZzIGEg ZGVkaWNhdGVkIGZsYWdzIGZpZWxkIGluIHJ0ZV9ldGhfZGV2X2RhdGE/DQpJbiBib3RoIHNvbHV0 aW9uczoNCi0gY29uZmlnIHJlc3RvcmUgaXMgdHJhbnNwYXJlbnQgdG8gdGhlIHVzZXIsDQotIGRy aXZlcnMgY2FuIG9taXQgY29uZmlnIHJlc3RvcmUgKGVpdGhlciBieSBub3QgaW1wbGVtZW50aW5n IHRoZSBjYWxsYmFjayBvciBub3QgcHJvdmlkaW5nIHRoZSBmbGFncyksDQotIGFuIEFCSSBjaGFu Z2UgaXMgaW50cm9kdWNlZCAobm90IGEgaHVnZSBjb25jZXJuLCBhdCBsZWFzdCBmb3IgMjQuMTEp Lg0KDQpJIHVuZGVyc3RhbmQgdGhhdCBteSBpbml0aWFsIHByb3Bvc2FsIHdpdGggImludGVybmFs X2ZsYWdzIiB3YXMgdG9vIHZhZ3VlLA0KYnV0IHJlbmFtaW5nIGFuZCBzcGxpdHRpbmcgdGhpcyBm aWVsZCBpbnRvOg0KDQotIGRldl9zdGFydF9yZXN0b3JlX2ZsYWdzDQotIGRldl9yZXNldF9yZXN0 b3JlX2ZsYWdzDQotIGFuZCBzbyBvbi4uLg0KDQpzZWVtcyBzdWZmaWNpZW50LCBhdCBsZWFzdCBp biBteSBvcGluaW9uLg0KDQo+IA0KPiBTbyBQTURzIG9ubHkgd2lsbCBwcm92aWRlIHdoYXQgdG8g cmVzdG9yZSB3aXRoIGFuIGludGVybmFsIEFQSSBhbmQgY29tbW9uDQo+IGV0aGRldiBsYXllciB3 aWxsIHJlc3RvcmUgaXQuDQo+IElmIG5vIHJlc3RvcmUgcmVxdWlyZWQgUE1EIG1heSBub3QgaW1w bGVtZW50IC5nZXRfcmVzdG9yZV9mbGFncygpIGF0IGFsbC4NCj4gDQo+IEFkZGl0aW9uYWxseSwg UlRFX0VUSF9TVEFSVCwgUlRFX0VUSF9SRVNFVCBldGMgZmxhZyBjYW4gYmUgcHJvdmlkZWQgdG8g aW50ZXJuYWwNCj4gQVBJIHRvIGdldCB3aGF0IHRvIHJlc3RvcmUgaW4gZGlmZmVyZW50IHN0YXRl cy4uLg0KPiANCj4gPj4gU3VnZ2VzdGVkICdpbnRlcm5hbF9mbGFnJyBpbiAic3RydWN0IHJ0ZV9l dGhfZGV2X2RhdGEiIGNhbiBiZQ0KPiA+PiBjb25mdXNpbmcgYW5kIG9wZW4gdG8gaW50ZXJwcmV0 YXRpb24gd2hhdCB0byB1c2UgaXQgZm9yIGFuZCBieSB0aW1lDQo+ID4+IGJlY29tZSBzb3VyY2Ug b2YgZGVmZWN0Lg0KPiA+DQo+ID4gWWVzLCBzYW1lIHRob3VnaHRzLg0KPiA+DQo+ID4+IEluc3Rl YWQgd2hhdCBkbyB5b3UgdGhpbmsgdG8gaGF2ZSBhIHNlcGFyYXRlLCBkZWRpY2F0ZWQgZGF0YSBz dHJ1Y3QgZm9yIGl0Pw0KPiA+DQo+ID4gSG1tLi4uIG5vdCBzdXJlIEkgdW5kZXJzdG9vZCB5b3Ug aGVyZS4uLg0KPiA+DQo+ID4+DQo+ID4+PiBNaWdodCBiZSB3ZSBjYW4gbW92ZSB0aGlzIHJlc3Rv cmF0aW9uIGNvZGUgaW50byB0aGUgbmV3IGV0aGRldg0KPiA+Pj4gaGVscGVyIGZ1bmN0aW9uLChl dGhkZXZkX3VzZXJfY29uZmlnX3Jlc3RvcmUoKSAgb3Igc28pIHRoYXQgUE1EIGNhbiBpbnZva2UN Cj4gZHVyaW5nIGl0cyBkZXZfc3RhcnQoKSBpZiBuZWVkZWQ/DQo+ID4+Pg0KPiA+Pj4+DQo+ID4+ Pj4gI2RlZmluZSBSVEVfRVRIX0RFVl9JTlRFUk5BTF9QUk9NSVNDX0ZPUkNFX1JFU1RPUkUgUlRF X0JJVDMyKDApDQo+ID4+Pj4gI2RlZmluZSBSVEVfRVRIX0RFVl9JTlRFUk5BTF9BTExNVUxUSV9G T1JDRV9SRVNUT1JFIFJURV9CSVQzMigxKQ0KPiA+Pj4+ICNkZWZpbmUgUlRFX0VUSF9ERVZfSU5U RVJOQUxfTUFDX0FERFJfRk9SQ0VfUkVTVE9SRQ0KPiBSVEVfQklUMzIoMikNCj4gPj4+Pg0KPiA+ Pj4+IHN0cnVjdCBydGVfZXRoX2Rldl9kYXRhIHsNCj4gPj4+PiAgICAvKiBzbmlwICovDQo+ID4+ Pj4NCj4gPj4+PiAgICB1aW50MzJfdCBkZXZfZmxhZ3M7DQo+ID4+Pj4NCj4gPj4+PiAgICAvKioN Cj4gPj4+PiAgICAgKiBJbnRlcm5hbCBkZXZpY2UgY2FwYWJpbGl0aWVzLCB1c2VkIG9ubHkgYnkg ZXRoZGV2IGxpYnJhcnkuDQo+ID4+Pj4gICAgICogQ2VydGFpbiBmdW5jdGlvbmFsaXRpZXMgcHJv dmlkZWQgYnkgdGhlIGxpYnJhcnkgbWlnaHQgZW5hYmxlZC9kaXNhYmxlZCwNCj4gPj4+PiAgICAg KiBiYXNlZCBvbiBkcml2ZXIgZXhwb3NpbmcgY2VydGFpbiBjYXBhYmlsaXRpZXMuDQo+ID4+Pj4g ICAgICovDQo+ID4+Pj4gICAgdWludDMyX3QgaW50ZXJuYWxfZmxhZ3M7DQo+ID4+Pj4NCj4gPj4+ PiAgICAvKiBzbmlwICovDQo+ID4+Pj4gfTsNCj4gPj4+Pg0KPiA+Pj4+PiBBbHNvIHBlcmhhcHMg d2UgaGF2ZSBnbyBpbnRvIGRldGFpbHMgd2hhdCBuZWVkcyB0byBiZSByZXN0b3JlZA0KPiA+Pj4+ PiBhZnRlciAnc3RvcCcgYW5kIHdoYXQgbmVlZHMgdG8gYmUgcmVzdG9yZWQgYWZ0ZXIgJ3Jlc2V0 JyBhbmQgdXNlIHNpbWlsYXINCj4gbWVjaGFuaXNtIGV0Yy4uLg0KPiA+Pj4+DQo+ID4+Pj4gSSB0 aGluayB3ZSBzaG91bGQgbG9vayBpbnRvIHRoYXQuDQo+ID4+Pj4gQW55ICdjb2RpZmljYXRpb24n IG9mIHNlbWFudGljcyBiZXR3ZWVuIGRyaXZlcnMgYW5kIGV0aGRldiBsaWJyYXJ5IGlzIGdvb2Qg aW4NCj4gbXkgb3Bpbmlvbi4NCj4gPj4+Pg0KPiA+Pj4+IEF0IGxlYXN0IHJpZ2h0IG5vdywgZXRo ZGV2IGRvZXMgbm90IGNoYW5nZSBhbnkgY29uZmlndXJhdGlvbiBpbiAnc3RvcCcgYW5kDQo+ICdy ZXNldCcgZnJvbSB3aGF0IEkgc2VlLg0KPiA+Pj4+IEJ1dCB0aGF0J3Mgb24gbGlicmFyeSBzaWRl IG9ubHkuDQo+ID4+Pj4NCj4gPj4+Pj4+IFRoaXMgd2F5LCBpZiB3ZSB3b3VsZCBjb25jbHVkZSB0 aGF0IGl0IG1ha2VzIHNlbnNlIGZvcg0KPiA+Pj4+Pj4gLmRldl9zdGFydCgpIHRvIGhhbmRsZSBh bGwgc3RhcnRpbmcgY29uZmlndXJhdGlvbiBhc3BlY3RzLCB3ZQ0KPiA+Pj4+Pj4gY291bGQgdHJh Y2sgd2hpY2ggZHJpdmVycyBzdGlsbCByZWx5DQo+ID4+Pj4+IG9uIGNvbmZpZ3VyYXRpb24gcmVz dG9yZS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBEYXJpdXN6IFNvc25vd3NraSAoNCk6DQo+ID4+Pj4+ PiAgIGV0aGRldjogcmV3b3JrIGNvbmZpZyByZXN0b3JlDQo+ID4+Pj4+PiAgIGV0aGRldjogb21p dCBwcm9taXNjdW91cyBjb25maWcgcmVzdG9yZSBpZiBub3QgcmVxdWlyZWQNCj4gPj4+Pj4+ICAg ZXRoZGV2OiBvbWl0IGFsbCBtdWx0aWNhc3QgY29uZmlnIHJlc3RvcmUgaWYgbm90IHJlcXVpcmVk DQo+ID4+Pj4+PiAgIGV0aGRldjogb21pdCBNQUMgYWRkcmVzcyByZXN0b3JlIGlmIG5vdCByZXF1 aXJlZA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuYyB8IDM5DQo+ ID4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0NCj4gPj4+Pj4+ ICBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuaCB8IDE4ICsrKysrKysrKysrKysrKysrKw0KPiA+Pj4+ Pj4gIDIgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCj4g Pj4+Pj4+DQo+ID4+Pj4+PiAtLQ0KPiA+Pj4+Pj4gMi4zOS41DQo+ID4+Pj4+Pg0KPiA+Pj4NCj4g Pg0KDQo=