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 121FD41C38; Tue, 14 Feb 2023 10:38:17 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B688F40ED9; Tue, 14 Feb 2023 10:38:16 +0100 (CET) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2055.outbound.protection.outlook.com [40.107.92.55]) by mails.dpdk.org (Postfix) with ESMTP id 1B42D40E2D for ; Tue, 14 Feb 2023 10:38:15 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZUYoXrNDrMyDXJsf9VzuW/HaQWTRHiURP9o8eQIjbt+SKdgiGUkxWUps7xUaff8MAqrNcRJ0GA9yDG2Q6rWTAHjsneWQZ69Tr3be7KskRVgpAfA6cgh0Tx+yHNeqFJm+H1TqRxLgok9JbAzPuyTdwLkBOmyGDXh+DMVNVAF4oLi3XwZMvSOPQIHCx1IImcdOodzf9XavKnlEdMZJ9MR6qymEjCk6k7KAvLQyVVPwmE5bSpmG8u35gDmKcZ5qtvGm49pfvcpGm63s1FyLypD3J8qBYYiLJvBYDhMOvECPk7K6HtFQcijmZB4mdl68UF20BuxT135R+g5luBq7UMlNDg== 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=n5ZnJpg60CcofNZOsotmliYsZzZw5QxTh+HUttybT2o=; b=Q7YxPXCUj/gerqcViY32dku4XBeoV5hkkVRo9FY6Mvrf/45yeJAY6zQwAQjThk9VK+bXcnKj8+8H77fUkUhZnnaz9dVoePYY7Vy8OAN6GfX9kw0aF3Rjkr39LowkbAM4HlA77S7zioIj2FEOBqT+ETKSB6K3HRD3LZ0OEyXCDlsd2leQdTlzdaztuwv26SLnIBqrHeHxZItimhRSn8AX/kJts0yKejKvNXXNU8EcoYVKwRZmU1Tfa+Ung8qFCUV1B5JKvnwJQLFdtd9qSh4905fvYDT/WfBLvZuqd7nv/+wKzVq2OYemIzw9rFjTE86dplAdr0CT+iZbKRczGTrtvA== 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=n5ZnJpg60CcofNZOsotmliYsZzZw5QxTh+HUttybT2o=; b=eZiCjy/dhy1WfKwBivnjFTvENOh7QQ9CshG8J80z5QMC0gv/pwFcWAv6GbicwOgP775RH7bvylvsc22wKWD+dcILR+rGHJvqKykx6KT1YisFJ1quVpfOhSvqAoCua/xULVekTOnDa12XvIeaDv+w9NiQ+5d//k9fk+ANUMCSqzEN6mCvV5YHGAoOJPfK9ugEGnlql7u0IqJVXLLX8N8crIniZNpfkpIoS9vxDn72SrhkfogSQWkNuzan2Eq6ZM7I3zRl+uHOmkQFPVgyrPA0ClqxLGVynkMcxO/EWhxIkEO8b6P6d5iqtksMilgXLx1PzIDafAFR6J0ukcgvYuy2PA== Received: from PH0PR12MB5451.namprd12.prod.outlook.com (2603:10b6:510:ee::20) by SJ0PR12MB6879.namprd12.prod.outlook.com (2603:10b6:a03:484::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.23; Tue, 14 Feb 2023 09:38:13 +0000 Received: from PH0PR12MB5451.namprd12.prod.outlook.com ([fe80::fd7d:5f69:a136:a51d]) by PH0PR12MB5451.namprd12.prod.outlook.com ([fe80::fd7d:5f69:a136:a51d%5]) with mapi id 15.20.6086.024; Tue, 14 Feb 2023 09:38:12 +0000 From: "Jiawei(Jonny) Wang" To: Ferruh Yigit , Slava Ovsiienko , Ori Kam , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "andrew.rybchenko@oktetlabs.ru" , Aman Singh , Yuying Zhang CC: "dev@dpdk.org" , Raslan Darawsheh Subject: RE: [PATCH v4 1/2] ethdev: introduce the PHY affinity field in Tx queue API Thread-Topic: [PATCH v4 1/2] ethdev: introduce the PHY affinity field in Tx queue API Thread-Index: AQHZN9Q4XKYML/HSVUC75oLIdCXXZa7HDk0AgAcSa/A= Date: Tue, 14 Feb 2023 09:38:12 +0000 Message-ID: References: <20230203050717.46914-1-jiaweiw@nvidia.com> <20230203133339.30271-1-jiaweiw@nvidia.com> <20230203133339.30271-2-jiaweiw@nvidia.com> <562e77e6-ea8a-7a56-6fbd-8aba70b295d4@amd.com> In-Reply-To: <562e77e6-ea8a-7a56-6fbd-8aba70b295d4@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: PH0PR12MB5451:EE_|SJ0PR12MB6879:EE_ x-ms-office365-filtering-correlation-id: 7557b889-ef03-4b10-5e7c-08db0e6f30f0 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; x-microsoft-antispam-message-info: biDtdN9CAzmfQFgrLsH+EfeH2kbs6ecNL0cVoEW1QWq/AilgXF+eYy/r0ph6itTuhSav4O0jnjoGv7BHTWRPZ2EuOtqAvHR3n6uinx+if+bWGKg5cDZEsIqp6v7yLgBH1a6LyLvlX3MMzqk6RCjBjMO5utrRlaMG1vKpKCwCofwUd+nquCAe+UMrvq+9T8TiLyD9+NB6LxweaanocXuzjS4rkT9q7WO6Mj8FdK59Nn4DarzFPdYVwvwEDiM97yDLK3blCZFTlfvsMzCK7r6xb/A5rrtK2+MQ3W/28wVU5JAAgTHQvRZvCmX2Z+xpOB6o8OCCckGm6TlMQWYnA2keHuQEK4+0la4AdYuYkG64a2Hj31OL3w/N0oqN4IqFhpvDhHKowDqbtK7SGmGmJloUqSThj5qLqLCAaK17EvZnn3GnshoowpVf1HvFfdReeIvH7d3rbwQlRaFnZFCgOuB3rd7/cyB+yULi5X1fAv0KQeFwgVlqqi8JNB8LvOpLkXaWwPw3bfMmHAyFEK7Th7wFVSHLvfoMicqdMb88Ip3Y/NnexC94PxyeZXZ2nD/T8k87D/slwQb0au0eEjcxsBZ8SezKC1JnJ64yXh67++fE4BHEdMmfc1MpYVC5rvEjUelLurDAsU93zDhHPMmZ8bq8v2y8uEj5dtIwCKjG5cs+B3uGFnvwHiYzbuThlrj+Oz8Aii3jhYl8IIhg8nCC/eVJrg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR12MB5451.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(396003)(39860400002)(376002)(346002)(366004)(136003)(451199018)(41300700001)(66446008)(66946007)(66556008)(54906003)(64756008)(316002)(30864003)(52536014)(110136005)(8676002)(66476007)(5660300002)(76116006)(2906002)(71200400001)(8936002)(7696005)(478600001)(4326008)(6506007)(53546011)(26005)(9686003)(186003)(107886003)(33656002)(55016003)(83380400001)(38070700005)(38100700002)(86362001)(122000001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Y1VpRmx2TzV3RVppOGc3a1JTRFVoMDAxWHNOZ2tYbDkva3dLQVVQRFJQdEdq?= =?utf-8?B?OTMreTIrTVl1MkxyczZaMjNWL3JIWHN6OWhuNUxWbDFzdkVvdTdoNmdWdTBy?= =?utf-8?B?Z2Y1VDB5U0t0VVVGUVpxMHQzTStHbkdPNXBmNHI2QTNBOUhHaHBFYStIUkxw?= =?utf-8?B?WXZqWW5pQ2Roekl2WlpOQnB5QzBGdHpQZFA1N09YR1ZoOVNQOHQzK2kwaTlz?= =?utf-8?B?TCtFRXBwcW5yN0lLZTJ1V21Zd3RiS1VZWUxFVjdqZlZzdWtaMzV1RHVHeE9x?= =?utf-8?B?TjcyU0wxTllTMnJhL3Jqc1AwNVd3c3pEaENPa0JrVndtRXV4am5MYVdsR0VI?= =?utf-8?B?S0hSa2RqSVR2NXp4a0RuTEdSbFBmTEtZNnlLeTY1dFBhVG1GNVQzTkFZWkJE?= =?utf-8?B?cExPaXVOcGNiazAwcXZmVGtxQlc4QTVaaUUycks3cnpMS3ljelluVnlQQzZr?= =?utf-8?B?SVZQdHF5U1E0WEtBaXB0Q0IwYVg5WnNDVXVVNktYaUZ2OVpWR2tudVJCMVRW?= =?utf-8?B?NWNFZkcxRk1YVjQ1VGxNcWdSTXVHcHdyOENLdWZ4ejdGdHhFeVM3VHpNdmNE?= =?utf-8?B?eHFCUi9rQmVFWVltOWhpRExiUHZYdXFqVkdoeGYyL2dvaHRFUUZ1NFBnZUhy?= =?utf-8?B?dkZtbkZYcU1PbmIwWXdxcitqbGFZWEFlNEpqRnNjUnBXWjkzdXVUSUtUbE5E?= =?utf-8?B?dUxacVB3b0VsbWhkeFdOWjhqbytiVVdMb24xMEpVWTJMQXB2LzRKT3kzejZm?= =?utf-8?B?VFFDbUc3UGhmdy9lZVVDK3l2WmFPRmNJWFJOZFJjdGY5b1J4cTRORS9DdTRR?= =?utf-8?B?MnIwNjE3NlNoa2VoVmo1cU42WStNanRJVEFESjRCQm12Uk5kdDFDTEg1VC9k?= =?utf-8?B?dEFSdm1OQjhjU0tCRE94QXB6NmtjTmpSY3NhTmFnM0lkOGtKcVQ1UDJKZkdu?= =?utf-8?B?TDVxUThFdzYwZTBHRnJXa1o1NG5vcmpNOW5VU3VkSHNmRm96RDcxejBhWkNa?= =?utf-8?B?ck0xYjZWcmx5enBXeUxtOXNuWGprT3MrOTF4TVZMYU5naWJIbHFsWVMxbFZD?= =?utf-8?B?bTVZd1B3NnlXU0t6UTk1TWFpM2orOGYxODhrM2hPTDNLdURuc3hJT1JIYnRT?= =?utf-8?B?VGsvZ3ZwS2Fsb3FnaGc5TGYrREtOQnFJUmR5NGFBTHlBc09lUFVISmVWaFBB?= =?utf-8?B?TnNPYW9NRlJTWTlKQ1RqZzNhSGNCWWNUT1UvT2J5RCt0Rm1kZDNOY2VhOWlN?= =?utf-8?B?SU5PZ2F1Vy9DNkJEVHNyamxjSXVmSEpuOFJPU2R3dSswVHE1Vy9abldVaElw?= =?utf-8?B?VS9YYmlwSmRIUkFzbFlaTW40aEFDcTZ6NkFxSlVyUFBTVHJhZ1lLUlFoUU5W?= =?utf-8?B?bjlYQ05pZmx2UkFQSk00azBMWk4rUFNlbTFNMFVYbW1KMXdtOENBMEZ3SEpC?= =?utf-8?B?cjBaNFFzVjlwQWJxVlNxdHFSaThnWVRuMW5qVEUrTHJNQ0NqcGxRVnJQc0R1?= =?utf-8?B?QnNzR2lRM3ZOZGorNmRlN2RSSXJNUkdxQmltVXBROHVXUUdQZ0ptaXB3S3lN?= =?utf-8?B?NFkwQXJva1BWQ2xTbmlZWjdKZTBsZjh6WVRaQmRYQ3FPem9WZGlnQXFNeHhk?= =?utf-8?B?OUdKckt6TzRFSEdDWjM1eUhxVlg5MFVQYWIyV0xmakprZTBSSFBjRUgzN2NO?= =?utf-8?B?S0ZTdEhBanZ0ZnFPNHRyaExMYU4xcTN0azFtV2RBMkthMDk4WnRsUFBTcGN3?= =?utf-8?B?ZitBTEJCODNsaTN4MWVURXE4eDJUY3dBYVZHaXltNEVOTTJYOVhYQ1MvR0Z3?= =?utf-8?B?SzV3RFJIZ29Sdno4MGptUWl3MnRuYjNjMmVTYklxVkpXRk5jOVlwaVE2MTBD?= =?utf-8?B?VW1UMEQvZVVnNlBRS2IrUGZvN0NEWDV3WjZGa1cvTHBRQWtaQ3Y1aS9HZE43?= =?utf-8?B?amd2TWF4TU9HS2tLYjh1aDFnQ1BKWUNYOHdzTmJ4RGxrRU95VkdhbjEzdGtG?= =?utf-8?B?OVlVRTJPdnNUQytTbHdwUEtlM2dtaFVINzlOQXpQdUxIRjl1WjdHUzhJWEtY?= =?utf-8?B?K0hUakRrREk1RHFackdTZ3NyeUlnemVuTkp5RllvUHVWRkNGTHJoREw5bFk0?= =?utf-8?Q?sWsAV9wAUvs+VCMYtP+SLvdad?= 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: PH0PR12MB5451.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7557b889-ef03-4b10-5e7c-08db0e6f30f0 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Feb 2023 09:38:12.8118 (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: pftxbVyNmYIn8jz0kNno/dvQ/LtlJIUyd9FTk4V3hHE4tnwjBPkm3oyVMHC0flFxO/3xRmNvztrOumFq6uFbzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6879 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 SGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0 IDxmZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gU2VudDogRnJpZGF5LCBGZWJydWFyeSAxMCwgMjAy MyAzOjQ1IEFNDQo+IFRvOiBKaWF3ZWkoSm9ubnkpIFdhbmcgPGppYXdlaXdAbnZpZGlhLmNvbT47 IFNsYXZhIE92c2lpZW5rbw0KPiA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IE9yaSBLYW0gPG9y aWthQG52aWRpYS5jb20+OyBOQlUtQ29udGFjdC0NCj4gVGhvbWFzIE1vbmphbG9uIChFWFRFUk5B TCkgPHRob21hc0Btb25qYWxvbi5uZXQ+Ow0KPiBhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5y dTsgQW1hbiBTaW5naCA8YW1hbi5kZWVwLnNpbmdoQGludGVsLmNvbT47DQo+IFl1eWluZyBaaGFu ZyA8eXV5aW5nLnpoYW5nQGludGVsLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgUmFzbGFuIERh cmF3c2hlaCA8cmFzbGFuZEBudmlkaWEuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY0IDEv Ml0gZXRoZGV2OiBpbnRyb2R1Y2UgdGhlIFBIWSBhZmZpbml0eSBmaWVsZCBpbiBUeCBxdWV1ZQ0K PiBBUEkNCj4gDQo+IE9uIDIvMy8yMDIzIDE6MzMgUE0sIEppYXdlaSBXYW5nIHdyb3RlOg0KPiA+ IFdoZW4gbXVsdGlwbGUgcGh5c2ljYWwgcG9ydHMgYXJlIGNvbm5lY3RlZCB0byBhIHNpbmdsZSBE UERLIHBvcnQsDQo+ID4gKGV4YW1wbGU6IGtlcm5lbCBib25kaW5nLCBEUERLIGJvbmRpbmcsIGZh aWxzYWZlLCBldGMuKSwgd2Ugd2FudCB0bw0KPiA+IGtub3cgd2hpY2ggcGh5c2ljYWwgcG9ydCBp cyB1c2VkIGZvciBSeCBhbmQgVHguDQo+ID4NCj4gDQo+IEkgYXNzdW1lICJrZXJuZWwgYm9uZGlu ZyIgaXMgb3V0IG9mIGNvbnRleHQsIGJ1dCB0aGlzIHBhdGNoIGNvbmNlcm5zIERQREsNCj4gYm9u ZGluZywgZmFpbHNhZmUgb3Igc29mdG5pYy4gKEkgd2lsbCByZWZlciB0aGVtIGFzIHZpcnR1YWwg Ym9uZGluZw0KPiBkZXZpY2UuKQ0KPiANCj4gVG8gdXNlIHNwZWNpZmljIHF1ZXVlcyBvZiB0aGUg dmlydHVhbCBib25kaW5nIGRldmljZSBtYXkgaW50ZXJmZXJlIHdpdGggdGhlDQo+IGxvZ2ljIG9m IHRoZXNlIGRldmljZXMsIGxpa2UgYm9uZGluZyBtb2RlcyBvciBSU1Mgb2YgdGhlIHVuZGVybHlp bmcgZGV2aWNlcy4gSQ0KPiBjYW4gc2VlIGZlYXR1cmUgZm9jdXNlcyBvbiBhIHZlcnkgc3BlY2lm aWMgdXNlIGNhc2UsIGJ1dCBub3Qgc3VyZSBpZiBhbGwgcG9zc2libGUNCj4gc2lkZSBlZmZlY3Rz IHRha2VuIGludG8gY29uc2lkZXJhdGlvbi4NCj4gDQo+IA0KPiBBbmQgYWx0aG91Z2ggdGhlIGZl YXR1cmUgaXMgb25seSByZWxhdmVudCB0byB2aXJ0dWFsIGJvbmRpb25nIGRldmljZSwgY29yZQ0K PiBldGhkZXYgc3RydWN0dXJlcyBhcmUgdXBkYXRlZCBmb3IgdGhpcy4gTW9zdCB1c2UgY2FzZXMg d29uJ3QgbmVlZCB0aGVzZSwgc28gaXMNCj4gdGhlcmUgYSB3YXkgdG8gcmVkdWNlIHRoZSBzY29w ZSBvZiB0aGUgY2hhbmdlcyB0byB2aXJ0dWFsIGJvbmRpbmcgZGV2aWNlcz8NCj4gDQo+IA0KPiBU aGVyZSBhcmUgYSBmZXcgdmVyeSBjb3JlIGV0aGRldiBBUElzLCBsaWtlOg0KPiBydGVfZXRoX2Rl dl9jb25maWd1cmUoKQ0KPiBydGVfZXRoX3R4X3F1ZXVlX3NldHVwKCkNCj4gcnRlX2V0aF9yeF9x dWV1ZV9zZXR1cCgpDQo+IHJ0ZV9ldGhfZGV2X3N0YXJ0KCkNCj4gcnRlX2V0aF9kZXZfaW5mb19n ZXQoKQ0KPiANCj4gQWxtb3N0IGV2ZXJ5IHVzZXIgb2YgZWh0ZGV2IHVzZXMgdGhlc2UgQVBJcywg c2luY2UgdGhlc2UgYXJlIHNvIGZ1bmRlbWVudGFsIEkNCj4gYW0gZm9yIGJlaW5nIGEgbGl0dGxl IG1vcmUgY29uc2VydmF0aXZlIG9uIHRoZXNlIEFQSXMuDQo+IA0KPiBFdmVyeSBlY2NlbnRyaWMg ZmVhdHVyZXMgYXJlIHRhcmdldHRpbmcgdGhlc2UgQVBJcyBmaXJzdCBiZWNhdXNlIHRoZXkgYXJl DQo+IGNvbW1vbiBhbmQgZXh0ZW5kaW5nIHRoZW0gZ2l2ZXMgYW4gZWFzeSBzb2x1dGlvbiwgYnV0 IGluIGxvbmcgcnVuIG1ha2luZw0KPiB0aGVzZSBBUElzIG1vcmUgY29tcGxleCwgaGFyZGVyIHRv IG1haW50YWluIGFuZCBoYXJkZXIgZm9yIFBNRHMgdG8gc3VwcG9ydA0KPiB0aGVtIGNvcnJlY3Rs eS4gU28gSSBhbSBmb3Igbm90IHVwZGF0aW5nIHRoZW0gdW5sZXNzIGl0IGlzIGEgZ2VuZXJpYyB1 c2UgY2FzZS4NCj4gDQo+IA0KPiBBbHNvIGFzIHdlIHRhbGtlZCBhYm91dCBQTURzIHN1cHBvcnRp bmcgdGhlbSwgSSBhc3N1bWUgeW91ciBjb21pbmcgUE1EDQo+IHBhdGNoIHdpbGwgYmUgaW1wbGVt ZW50aW5nICd0eF9waHlfYWZmaW5pdHknIGNvbmZpZyBvcHRpb24gb25seSBmb3IgbWx4IGRyaXZl cnMuDQo+IFdoYXQgd2lsbCBoYXBwZW4gZm9yIG90aGVyIE5JQ3M/IFdpbGwgdGhleSBzaWxlbnRs eSBpZ25vcmUgdGhlIGNvbmZpZyBvcHRpb24NCj4gZnJvbSB1c2VyPyBTbyB0aGlzIGlzIGEgcHJv YmxlbSBmb3IgdGhlIERQREsgYXBwbGljYXRpb24gcG9ydGFiaWx0aXkuDQo+IA0KPiANCj4gDQo+ IEFzIGZhciBhcyBJIHVuZGVyc3RhbmQgdGFyZ2V0IGlzIGFwcGxpY2F0aW9uIGNvbnRyb2xsaW5n IHdoaWNoIHN1Yi1kZXZpY2UgaXMgdXNlZA0KPiB1bmRlciB0aGUgdmlydHVhbCBib25kaW5nIGRl dmljZSwgY2FuIHlvdSBwbGVhZXMgZ2l2ZSBtb3JlIGluZm9ybWF0aW9uIHdoeQ0KPiB0aGlzIGlz IHJlcXVpcmVkLCBwZXJoYXBzIGl0IGNhbiBoZWxwIHRvIHByb3ZpZGUgYSBiZXR0ZXIvZGlmZmVy ZW50IHNvbHV0aW9uLg0KPiBMaWtlIGFkZGluZyB0aGUgYWJpbGl0eSB0byB1c2UgYm90aCBib25k aW5nIGRldmljZSBhbmQgc3ViLWRldmljZSBmb3IgZGF0YSBwYXRoLA0KPiB0aGlzIHdheSBhcHBs aWNhdGlvbiBjYW4gdXNlIHdoaWNoZXZlciBpdCB3YW50cy4gKHRoaXMgaXMganVzdCBmaXJzdCBz b2x1dGlvbiBJDQo+IGNvbWUgd2l0aCwgSSBhbSBub3Qgc3VnZ2VzdGluZyBhcyByZXBsYWNlbWVu dCBzb2x1dGlvbiwgYnV0IGlmIHlvdSBjYW4gZGVzY3JpYmUNCj4gdGhlIHByb2JsZW0gbW9yZSBJ IGFtIHN1cmUgb3RoZXIgcGVvcGxlIGNhbiBjb21lIHdpdGggYmV0dGVyIHNvbHV0aW9ucy4pDQo+ IA0KPiBBbmQgaXNuJ3QgdGhpcyBhZ2FpbnN0IHRoZSBhcHBsaWNhdGlvIHRyYW5zcGFyZW50IHRv IHVuZGVybmVhdGggZGV2aWNlIGJlaW5nDQo+IGJvbmRpbmcgZGV2aWNlIG9yIGFjdHVhbCBkZXZp Y2U/DQo+IA0KPiANCg0KT0ssIEkgd2lsbCBzZW5kIHRoZSBuZXcgdmVyc2lvbiB3aXRoIHNlcGFy YXRlIGZ1bmN0aW9ucyBpbiBldGhkZXYgbGF5ZXIsIA0KdG8gc3VwcG9ydCB0aGUgTWFwIGEgVHgg cXVldWUgdG8gcG9ydCBhbmQgZ2V0IHRoZSBudW1iZXIgb2YgcG9ydHMuDQpBbmQgdGhlc2UgZnVu Y3Rpb25zIHdvcmsgd2l0aCBkZXZpY2Ugb3BzIGNhbGxiYWNrLCBvdGhlciBOSUNzIHdpbGwgcmVw b3J0ZWQNClRoZSB1bnN1cHBvcnRlZCB0aGUgb3BzIGNhbGxiYWNrIGlzIE5VTEwuDQoNCj4gPiBU aGlzIHBhdGNoIG1hcHMgYSBEUERLIFR4IHF1ZXVlIHdpdGggYSBwaHlzaWNhbCBwb3J0LCBieSBh ZGRpbmcNCj4gPiB0eF9waHlfYWZmaW5pdHkgc2V0dGluZyBpbiBUeCBxdWV1ZS4NCj4gPiBUaGUg YWZmaW5pdHkgbnVtYmVyIGlzIHRoZSBwaHlzaWNhbCBwb3J0IElEIHdoZXJlIHBhY2tldHMgd2ls bCBiZQ0KPiA+IHNlbnQuDQo+ID4gVmFsdWUgMCBtZWFucyBubyBhZmZpbml0eSBhbmQgdHJhZmZp YyBjb3VsZCBiZSByb3V0ZWQgdG8gYW55IGNvbm5lY3RlZA0KPiA+IHBoeXNpY2FsIHBvcnRzLCB0 aGlzIGlzIHRoZSBkZWZhdWx0IGN1cnJlbnQgYmVoYXZpb3IuDQo+ID4NCj4gPiBUaGUgbnVtYmVy IG9mIHBoeXNpY2FsIHBvcnRzIGlzIHJlcG9ydGVkIHdpdGggcnRlX2V0aF9kZXZfaW5mb19nZXQo KS4NCj4gPg0KPiA+IFRoZSBuZXcgdHhfcGh5X2FmZmluaXR5IGZpZWxkIGlzIGFkZGVkIGludG8g dGhlIHBhZGRpbmcgaG9sZSBvZg0KPiA+IHJ0ZV9ldGhfdHhjb25mIHN0cnVjdHVyZSwgdGhlIHNp emUgb2YgcnRlX2V0aF90eGNvbmYga2VlcHMgdGhlIHNhbWUuDQo+ID4gQW4gQUJJIGNoZWNrIHJ1 bGUgbmVlZHMgdG8gYmUgYWRkZWQgdG8gYXZvaWQgZmFsc2Ugd2FybmluZy4NCj4gPg0KPiA+IEFk ZCB0aGUgdGVzdHBtZCBjb21tYW5kIGxpbmU6DQo+ID4gdGVzdHBtZD4gcG9ydCBjb25maWcgKHBv cnRfaWQpIHR4cSAocXVldWVfaWQpIHBoeV9hZmZpbml0eSAodmFsdWUpDQo+ID4NCj4gPiBGb3Ig ZXhhbXBsZSwgdGhlcmUncmUgdHdvIHBoeXNpY2FsIHBvcnRzIGNvbm5lY3RlZCB0byBhIHNpbmds ZSBEUERLDQo+ID4gcG9ydCAocG9ydCBpZCAwKSwgYW5kIHBoeV9hZmZpbml0eSAxIHN0b29kIGZv ciB0aGUgZmlyc3QgcGh5c2ljYWwgcG9ydA0KPiA+IGFuZCBwaHlfYWZmaW5pdHkgMiBzdG9vZCBm b3IgdGhlIHNlY29uZCBwaHlzaWNhbCBwb3J0Lg0KPiA+IFVzZSB0aGUgYmVsb3cgY29tbWFuZHMg dG8gY29uZmlnIHR4IHBoeSBhZmZpbml0eSBmb3IgcGVyIFR4IFF1ZXVlOg0KPiA+ICAgICAgICAg cG9ydCBjb25maWcgMCB0eHEgMCBwaHlfYWZmaW5pdHkgMQ0KPiA+ICAgICAgICAgcG9ydCBjb25m aWcgMCB0eHEgMSBwaHlfYWZmaW5pdHkgMQ0KPiA+ICAgICAgICAgcG9ydCBjb25maWcgMCB0eHEg MiBwaHlfYWZmaW5pdHkgMg0KPiA+ICAgICAgICAgcG9ydCBjb25maWcgMCB0eHEgMyBwaHlfYWZm aW5pdHkgMg0KPiA+DQo+ID4gVGhlc2UgY29tbWFuZHMgY29uZmlnIHRoZSBUeCBRdWV1ZSBpbmRl eCAwIGFuZCBUeCBRdWV1ZSBpbmRleCAxIHdpdGgNCj4gPiBwaHkgYWZmaW5pdHkgMSwgdXNlcyBU eCBRdWV1ZSAwIG9yIFR4IFF1ZXVlIDEgc2VuZCBwYWNrZXRzLCB0aGVzZQ0KPiA+IHBhY2tldHMg d2lsbCBiZSBzZW50IGZyb20gdGhlIGZpcnN0IHBoeXNpY2FsIHBvcnQsIGFuZCBzaW1pbGFyIHdp dGgNCj4gPiB0aGUgc2Vjb25kIHBoeXNpY2FsIHBvcnQgaWYgc2VuZGluZyBwYWNrZXRzIHdpdGgg VHggUXVldWUgMiBvciBUeA0KPiA+IFF1ZXVlIDMuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBK aWF3ZWkgV2FuZyA8amlhd2Vpd0BudmlkaWEuY29tPg0KPiA+IC0tLQ0KPiA+ICBhcHAvdGVzdC1w bWQvY21kbGluZS5jICAgICAgICAgICAgICAgICAgICAgIHwgMTAwICsrKysrKysrKysrKysrKysr KysrDQo+ID4gIGFwcC90ZXN0LXBtZC9jb25maWcuYyAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKw0KPiA+ICBkZXZ0b29scy9saWJhYmlnYWlsLmFiaWdub3JlICAgICAgICAgICAgICAgIHwg ICA1ICsNCj4gPiAgZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yM18wMy5yc3QgICAgICB8 ICAgNCArDQo+ID4gIGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3Qg fCAgMTMgKysrDQo+ID4gIGxpYi9ldGhkZXYvcnRlX2V0aGRldi5oICAgICAgICAgICAgICAgICAg ICAgfCAgMTAgKysNCj4gPiAgNiBmaWxlcyBjaGFuZ2VkLCAxMzMgaW5zZXJ0aW9ucygrKQ0KPiA+ DQo+ID4gZGlmZiAtLWdpdCBhL2FwcC90ZXN0LXBtZC9jbWRsaW5lLmMgYi9hcHAvdGVzdC1wbWQv Y21kbGluZS5jIGluZGV4DQo+ID4gY2I4YzE3NDAyMC4uZjc3MWZjZjhhYyAxMDA2NDQNCj4gPiAt LS0gYS9hcHAvdGVzdC1wbWQvY21kbGluZS5jDQo+ID4gKysrIGIvYXBwL3Rlc3QtcG1kL2NtZGxp bmUuYw0KPiA+IEBAIC03NzYsNiArNzc2LDEwIEBAIHN0YXRpYyB2b2lkIGNtZF9oZWxwX2xvbmdf cGFyc2VkKHZvaWQNCj4gPiAqcGFyc2VkX3Jlc3VsdCwNCj4gPg0KPiA+ICAJCQkicG9ydCBjbGVh bnVwIChwb3J0X2lkKSB0eHEgKHF1ZXVlX2lkKSAoZnJlZV9jbnQpXG4iDQo+ID4gIAkJCSIgICAg Q2xlYW51cCB0eHEgbWJ1ZnMgZm9yIGEgc3BlY2lmaWMgVHggcXVldWVcblxuIg0KPiA+ICsNCj4g PiArCQkJInBvcnQgY29uZmlnIChwb3J0X2lkKSB0eHEgKHF1ZXVlX2lkKSBwaHlfYWZmaW5pdHkN Cj4gKHZhbHVlKVxuIg0KPiA+ICsJCQkiICAgIFNldCB0aGUgcGh5c2ljYWwgYWZmaW5pdHkgdmFs dWUgIg0KPiA+ICsJCQkib24gYSBzcGVjaWZpYyBUeCBxdWV1ZVxuXG4iDQo+ID4gIAkJKTsNCj4g PiAgCX0NCj4gPg0KPiA+IEBAIC0xMjYzMyw2ICsxMjYzNywxMDEgQEAgc3RhdGljIGNtZGxpbmVf cGFyc2VfaW5zdF90DQo+IGNtZF9zaG93X3BvcnRfZmxvd190cmFuc2Zlcl9wcm94eSA9IHsNCj4g PiAgCX0NCj4gPiAgfTsNCj4gPg0KPiA+ICsvKiAqKiogY29uZmlndXJlIHBvcnQgdHhxIHBoeV9h ZmZpbml0eSB2YWx1ZSAqKiogKi8gc3RydWN0DQo+ID4gK2NtZF9jb25maWdfdHhfcGh5X2FmZmlu aXR5IHsNCj4gPiArCWNtZGxpbmVfZml4ZWRfc3RyaW5nX3QgcG9ydDsNCj4gPiArCWNtZGxpbmVf Zml4ZWRfc3RyaW5nX3QgY29uZmlnOw0KPiA+ICsJcG9ydGlkX3QgcG9ydGlkOw0KPiA+ICsJY21k bGluZV9maXhlZF9zdHJpbmdfdCB0eHE7DQo+ID4gKwl1aW50MTZfdCBxaWQ7DQo+ID4gKwljbWRs aW5lX2ZpeGVkX3N0cmluZ190IHBoeV9hZmZpbml0eTsNCj4gPiArCXVpbnQ4X3QgdmFsdWU7DQo+ ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZA0KPiA+ICtjbWRfY29uZmlnX3R4X3BoeV9h ZmZpbml0eV9wYXJzZWQodm9pZCAqcGFyc2VkX3Jlc3VsdCwNCj4gPiArCQkJCSAgX19ydGVfdW51 c2VkIHN0cnVjdCBjbWRsaW5lICpjbCwNCj4gPiArCQkJCSAgX19ydGVfdW51c2VkIHZvaWQgKmRh dGEpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBjbWRfY29uZmlnX3R4X3BoeV9hZmZpbml0eSAqcmVz ID0gcGFyc2VkX3Jlc3VsdDsNCj4gPiArCXN0cnVjdCBydGVfZXRoX2Rldl9pbmZvIGRldl9pbmZv Ow0KPiA+ICsJc3RydWN0IHJ0ZV9wb3J0ICpwb3J0Ow0KPiA+ICsJaW50IHJldDsNCj4gPiArDQo+ ID4gKwlpZiAocG9ydF9pZF9pc19pbnZhbGlkKHJlcy0+cG9ydGlkLCBFTkFCTEVEX1dBUk4pKQ0K PiA+ICsJCXJldHVybjsNCj4gPiArDQo+ID4gKwlpZiAocmVzLT5wb3J0aWQgPT0gKHBvcnRpZF90 KVJURV9QT1JUX0FMTCkgew0KPiA+ICsJCXByaW50ZigiSW52YWxpZCBwb3J0IGlkXG4iKTsNCj4g PiArCQlyZXR1cm47DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcG9ydCA9ICZwb3J0c1tyZXMtPnBv cnRpZF07DQo+ID4gKw0KPiA+ICsJaWYgKHN0cmNtcChyZXMtPnR4cSwgInR4cSIpKSB7DQo+ID4g KwkJcHJpbnRmKCJVbmtub3duIHBhcmFtZXRlclxuIik7DQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsJ fQ0KPiA+ICsJaWYgKHR4X3F1ZXVlX2lkX2lzX2ludmFsaWQocmVzLT5xaWQpKQ0KPiA+ICsJCXJl dHVybjsNCj4gPiArDQo+ID4gKwlyZXQgPSBldGhfZGV2X2luZm9fZ2V0X3ByaW50X2VycihyZXMt PnBvcnRpZCwgJmRldl9pbmZvKTsNCj4gPiArCWlmIChyZXQgIT0gMCkNCj4gPiArCQlyZXR1cm47 DQo+ID4gKw0KPiA+ICsJaWYgKGRldl9pbmZvLm5iX3BoeV9wb3J0cyA9PSAwKSB7DQo+ID4gKwkJ cHJpbnRmKCJOdW1iZXIgb2YgcGh5c2ljYWwgcG9ydHMgaXMgMCB3aGljaCBpcyBpbnZhbGlkIGZv ciBQSFkNCj4gQWZmaW5pdHlcbiIpOw0KPiA+ICsJCXJldHVybjsNCj4gPiArCX0NCj4gPiArCXBy aW50ZigiVGhlIG51bWJlciBvZiBwaHlzaWNhbCBwb3J0cyBpcyAldVxuIiwgZGV2X2luZm8ubmJf cGh5X3BvcnRzKTsNCj4gPiArCWlmIChkZXZfaW5mby5uYl9waHlfcG9ydHMgPCByZXMtPnZhbHVl KSB7DQo+ID4gKwkJcHJpbnRmKCJUaGUgUEhZIGFmZmluaXR5IHZhbHVlICV1IGlzIEludmFsaWQs IGV4Y2VlZHMgdGhlICINCj4gPiArCQkgICAgICAgIm51bWJlciBvZiBwaHlzaWNhbCBwb3J0c1xu IiwgcmVzLT52YWx1ZSk7DQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsJfQ0KPiA+ICsJcG9ydC0+dHhx W3Jlcy0+cWlkXS5jb25mLnR4X3BoeV9hZmZpbml0eSA9IHJlcy0+dmFsdWU7DQo+ID4gKw0KPiA+ ICsJY21kX3JlY29uZmlnX2RldmljZV9xdWV1ZShyZXMtPnBvcnRpZCwgMCwgMSk7IH0NCj4gPiAr DQo+ID4gK2NtZGxpbmVfcGFyc2VfdG9rZW5fc3RyaW5nX3QgY21kX2NvbmZpZ190eF9waHlfYWZm aW5pdHlfcG9ydCA9DQo+ID4gKwlUT0tFTl9TVFJJTkdfSU5JVElBTElaRVIoc3RydWN0IGNtZF9j b25maWdfdHhfcGh5X2FmZmluaXR5LA0KPiA+ICsJCQkJIHBvcnQsICJwb3J0Iik7DQo+ID4gK2Nt ZGxpbmVfcGFyc2VfdG9rZW5fc3RyaW5nX3QgY21kX2NvbmZpZ190eF9waHlfYWZmaW5pdHlfY29u ZmlnID0NCj4gPiArCVRPS0VOX1NUUklOR19JTklUSUFMSVpFUihzdHJ1Y3QgY21kX2NvbmZpZ190 eF9waHlfYWZmaW5pdHksDQo+ID4gKwkJCQkgY29uZmlnLCAiY29uZmlnIik7DQo+ID4gK2NtZGxp bmVfcGFyc2VfdG9rZW5fbnVtX3QgY21kX2NvbmZpZ190eF9waHlfYWZmaW5pdHlfcG9ydGlkID0N Cj4gPiArCVRPS0VOX05VTV9JTklUSUFMSVpFUihzdHJ1Y3QgY21kX2NvbmZpZ190eF9waHlfYWZm aW5pdHksDQo+ID4gKwkJCQkgcG9ydGlkLCBSVEVfVUlOVDE2KTsNCj4gPiArY21kbGluZV9wYXJz ZV90b2tlbl9zdHJpbmdfdCBjbWRfY29uZmlnX3R4X3BoeV9hZmZpbml0eV90eHEgPQ0KPiA+ICsJ VE9LRU5fU1RSSU5HX0lOSVRJQUxJWkVSKHN0cnVjdCBjbWRfY29uZmlnX3R4X3BoeV9hZmZpbml0 eSwNCj4gPiArCQkJCSB0eHEsICJ0eHEiKTsNCj4gPiArY21kbGluZV9wYXJzZV90b2tlbl9udW1f dCBjbWRfY29uZmlnX3R4X3BoeV9hZmZpbml0eV9xaWQgPQ0KPiA+ICsJVE9LRU5fTlVNX0lOSVRJ QUxJWkVSKHN0cnVjdCBjbWRfY29uZmlnX3R4X3BoeV9hZmZpbml0eSwNCj4gPiArCQkJICAgICAg cWlkLCBSVEVfVUlOVDE2KTsNCj4gPiArY21kbGluZV9wYXJzZV90b2tlbl9zdHJpbmdfdCBjbWRf Y29uZmlnX3R4X3BoeV9hZmZpbml0eV9od3BvcnQgPQ0KPiA+ICsJVE9LRU5fU1RSSU5HX0lOSVRJ QUxJWkVSKHN0cnVjdCBjbWRfY29uZmlnX3R4X3BoeV9hZmZpbml0eSwNCj4gPiArCQkJCSBwaHlf YWZmaW5pdHksICJwaHlfYWZmaW5pdHkiKTsNCj4gPiArY21kbGluZV9wYXJzZV90b2tlbl9udW1f dCBjbWRfY29uZmlnX3R4X3BoeV9hZmZpbml0eV92YWx1ZSA9DQo+ID4gKwlUT0tFTl9OVU1fSU5J VElBTElaRVIoc3RydWN0IGNtZF9jb25maWdfdHhfcGh5X2FmZmluaXR5LA0KPiA+ICsJCQkgICAg ICB2YWx1ZSwgUlRFX1VJTlQ4KTsNCj4gPiArDQo+ID4gK3N0YXRpYyBjbWRsaW5lX3BhcnNlX2lu c3RfdCBjbWRfY29uZmlnX3R4X3BoeV9hZmZpbml0eSA9IHsNCj4gPiArCS5mID0gY21kX2NvbmZp Z190eF9waHlfYWZmaW5pdHlfcGFyc2VkLA0KPiA+ICsJLmRhdGEgPSAodm9pZCAqKTAsDQo+ID4g KwkuaGVscF9zdHIgPSAicG9ydCBjb25maWcgPHBvcnRfaWQ+IHR4cSA8cXVldWVfaWQ+IHBoeV9h ZmZpbml0eSA8dmFsdWU+IiwNCj4gPiArCS50b2tlbnMgPSB7DQo+ID4gKwkJKHZvaWQgKikmY21k X2NvbmZpZ190eF9waHlfYWZmaW5pdHlfcG9ydCwNCj4gPiArCQkodm9pZCAqKSZjbWRfY29uZmln X3R4X3BoeV9hZmZpbml0eV9jb25maWcsDQo+ID4gKwkJKHZvaWQgKikmY21kX2NvbmZpZ190eF9w aHlfYWZmaW5pdHlfcG9ydGlkLA0KPiA+ICsJCSh2b2lkICopJmNtZF9jb25maWdfdHhfcGh5X2Fm ZmluaXR5X3R4cSwNCj4gPiArCQkodm9pZCAqKSZjbWRfY29uZmlnX3R4X3BoeV9hZmZpbml0eV9x aWQsDQo+ID4gKwkJKHZvaWQgKikmY21kX2NvbmZpZ190eF9waHlfYWZmaW5pdHlfaHdwb3J0LA0K PiA+ICsJCSh2b2lkICopJmNtZF9jb25maWdfdHhfcGh5X2FmZmluaXR5X3ZhbHVlLA0KPiA+ICsJ CU5VTEwsDQo+ID4gKwl9LA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgLyoNCj4gPg0KPiAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq DQo+ICoqKioqKg0KPiA+ICoqKioqKioqKiogKi8NCj4gPg0KPiA+ICAvKiBsaXN0IG9mIGluc3Ry dWN0aW9ucyAqLw0KPiA+IEBAIC0xMjg2Niw2ICsxMjk2NSw3IEBAIHN0YXRpYyBjbWRsaW5lX3Bh cnNlX2N0eF90IGJ1aWx0aW5fY3R4W10gPSB7DQo+ID4gIAkoY21kbGluZV9wYXJzZV9pbnN0X3Qg KikmY21kX3Nob3dfcG9ydF9jbWFuX2NhcGEsDQo+ID4gIAkoY21kbGluZV9wYXJzZV9pbnN0X3Qg KikmY21kX3Nob3dfcG9ydF9jbWFuX2NvbmZpZywNCj4gPiAgCShjbWRsaW5lX3BhcnNlX2luc3Rf dCAqKSZjbWRfc2V0X3BvcnRfY21hbl9jb25maWcsDQo+ID4gKwkoY21kbGluZV9wYXJzZV9pbnN0 X3QgKikmY21kX2NvbmZpZ190eF9waHlfYWZmaW5pdHksDQo+ID4gIAlOVUxMLA0KPiA+ICB9Ow0K PiA+DQo+ID4gZGlmZiAtLWdpdCBhL2FwcC90ZXN0LXBtZC9jb25maWcuYyBiL2FwcC90ZXN0LXBt ZC9jb25maWcuYyBpbmRleA0KPiA+IGFjY2NiNmIwMzUuLmI4M2ZiMTdjZmEgMTAwNjQ0DQo+ID4g LS0tIGEvYXBwL3Rlc3QtcG1kL2NvbmZpZy5jDQo+ID4gKysrIGIvYXBwL3Rlc3QtcG1kL2NvbmZp Zy5jDQo+ID4gQEAgLTkzNiw2ICs5MzYsNyBAQCBwb3J0X2luZm9zX2Rpc3BsYXkocG9ydGlkX3Qg cG9ydF9pZCkNCj4gPiAgCQlwcmludGYoInVua25vd25cbiIpOw0KPiA+ICAJCWJyZWFrOw0KPiA+ ICAJfQ0KPiA+ICsJcHJpbnRmKCJDdXJyZW50IG51bWJlciBvZiBwaHlzaWNhbCBwb3J0czogJXVc biIsDQo+ID4gK2Rldl9pbmZvLm5iX3BoeV9wb3J0cyk7DQo+ID4gIH0NCj4gPg0KPiA+ICB2b2lk DQo+ID4gZGlmZiAtLWdpdCBhL2RldnRvb2xzL2xpYmFiaWdhaWwuYWJpZ25vcmUNCj4gPiBiL2Rl dnRvb2xzL2xpYmFiaWdhaWwuYWJpZ25vcmUgaW5kZXggN2E5M2RlM2JhMS4uYWM3ZDNmYjJkYSAx MDA2NDQNCj4gPiAtLS0gYS9kZXZ0b29scy9saWJhYmlnYWlsLmFiaWdub3JlDQo+ID4gKysrIGIv ZGV2dG9vbHMvbGliYWJpZ2FpbC5hYmlnbm9yZQ0KPiA+IEBAIC0zNCwzICszNCw4IEBADQo+ID4g IDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsNCj4g PiAgOyBUZW1wb3JhcnkgZXhjZXB0aW9ucyB0aWxsIG5leHQgbWFqb3IgQUJJIHZlcnNpb24gOw0K PiA+IDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsN Cj4gPiArDQo+ID4gKzsgSWdub3JlIGZpZWxkcyBpbnNlcnRlZCBpbiBwYWRkaW5nIGhvbGUgb2Yg cnRlX2V0aF90eGNvbmYNCj4gPiArW3N1cHByZXNzX3R5cGVdDQo+ID4gKyAgICAgICAgbmFtZSA9 IHJ0ZV9ldGhfdHhjb25mDQo+ID4gKyAgICAgICAgaGFzX2RhdGFfbWVtYmVyX2luc2VydGVkX2Jl dHdlZW4gPQ0KPiA+ICt7b2Zmc2V0X29mKHR4X2RlZmVycmVkX3N0YXJ0KSwgb2Zmc2V0X29mKG9m ZmxvYWRzKX0NCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8y M18wMy5yc3QNCj4gPiBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjNfMDMucnN0DQo+ ID4gaW5kZXggNzNmNWQ5NGUxNC4uZTk5YmQyZGNiNiAxMDA2NDQNCj4gPiAtLS0gYS9kb2MvZ3Vp ZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIzXzAzLnJzdA0KPiA+ICsrKyBiL2RvYy9ndWlkZXMvcmVs X25vdGVzL3JlbGVhc2VfMjNfMDMucnN0DQo+ID4gQEAgLTU1LDYgKzU1LDEwIEBAIE5ldyBGZWF0 dXJlcw0KPiA+ICAgICAgIEFsc28sIG1ha2Ugc3VyZSB0byBzdGFydCB0aGUgYWN0dWFsIHRleHQg YXQgdGhlIG1hcmdpbi4NCj4gPiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4NCj4gPiArKiAqKkFkZGVkIGFmZmluaXR5IGZv ciBtdWx0aXBsZSBwaHlzaWNhbCBwb3J0cyBjb25uZWN0ZWQgdG8gYSBzaW5nbGUNCj4gPiArRFBE SyBwb3J0LioqDQo+ID4gKw0KPiA+ICsgICogQWRkZWQgVHggYWZmaW5pdHkgaW4gcXVldWUgc2V0 dXAgdG8gbWFwIGEgcGh5c2ljYWwgcG9ydC4NCj4gPiArDQo+ID4gICogKipVcGRhdGVkIEFNRCBh eGdiZSBkcml2ZXIuKioNCj4gPg0KPiA+ICAgICogQWRkZWQgbXVsdGktcHJvY2VzcyBzdXBwb3J0 Lg0KPiA+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVu Y3MucnN0DQo+ID4gYi9kb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0 DQo+ID4gaW5kZXggNzlhMWZhOWNiNy4uNWM3MTZmNzY3OSAxMDA2NDQNCj4gPiAtLS0gYS9kb2Mv Z3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0DQo+ID4gKysrIGIvZG9jL2d1 aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdA0KPiA+IEBAIC0xNjA1LDYgKzE2 MDUsMTkgQEAgRW5hYmxlIG9yIGRpc2FibGUgYSBwZXIgcXVldWUgVHggb2ZmbG9hZGluZyBvbmx5 DQo+IG9uIGEgc3BlY2lmaWMgVHggcXVldWU6Og0KPiA+DQo+ID4gIFRoaXMgY29tbWFuZCBzaG91 bGQgYmUgcnVuIHdoZW4gdGhlIHBvcnQgaXMgc3RvcHBlZCwgb3IgZWxzZSBpdCB3aWxsIGZhaWwu DQo+ID4NCj4gPiArY29uZmlnIHBlciBxdWV1ZSBUeCBwaHlzaWNhbCBhZmZpbml0eQ0KPiA+ICt+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ID4gKw0KPiA+ICtDb25maWd1 cmUgYSBwZXIgcXVldWUgcGh5c2ljYWwgYWZmaW5pdHkgdmFsdWUgb25seSBvbiBhIHNwZWNpZmlj IFR4IHF1ZXVlOjoNCj4gPiArDQo+ID4gKyAgIHRlc3RwbWQ+IHBvcnQgKHBvcnRfaWQpIHR4cSAo cXVldWVfaWQpIHBoeV9hZmZpbml0eSAodmFsdWUpDQo+ID4gKw0KPiA+ICsqIGBgcGh5X2FmZmlu aXR5YGA6IHBoeXNpY2FsIHBvcnQgdG8gdXNlIGZvciBzZW5kaW5nLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgIHdoZW4gbXVsdGlwbGUgcGh5c2ljYWwgcG9ydHMgYXJlIGNvbm5lY3RlZCB0bw0K PiA+ICsgICAgICAgICAgICAgICAgICAgIGEgc2luZ2xlIERQREsgcG9ydC4NCj4gPiArDQo+ID4g K1RoaXMgY29tbWFuZCBzaG91bGQgYmUgcnVuIHdoZW4gdGhlIHBvcnQgaXMgc3RvcHBlZCwgb3Ro ZXJ3aXNlIGl0IGZhaWxzLg0KPiA+ICsNCj4gPiAgQ29uZmlnIFZYTEFOIEVuY2FwIG91dGVyIGxh eWVycw0KPiA+ICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ID4NCj4gPiBkaWZm IC0tZ2l0IGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmggYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXYu aCBpbmRleA0KPiA+IGMxMjljYTFlYWYuLjJmZDk3MWI3YjUgMTAwNjQ0DQo+ID4gLS0tIGEvbGli L2V0aGRldi9ydGVfZXRoZGV2LmgNCj4gPiArKysgYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuaA0K PiA+IEBAIC0xMTM4LDYgKzExMzgsMTQgQEAgc3RydWN0IHJ0ZV9ldGhfdHhjb25mIHsNCj4gPiAg CQkJCSAgICAgIGxlc3MgZnJlZSBkZXNjcmlwdG9ycyB0aGFuIHRoaXMgdmFsdWUuICovDQo+ID4N Cj4gPiAgCXVpbnQ4X3QgdHhfZGVmZXJyZWRfc3RhcnQ7IC8qKjwgRG8gbm90IHN0YXJ0IHF1ZXVl IHdpdGgNCj4gPiBydGVfZXRoX2Rldl9zdGFydCgpLiAqLw0KPiA+ICsJLyoqDQo+ID4gKwkgKiBB ZmZpbml0eSB3aXRoIG9uZSBvZiB0aGUgbXVsdGlwbGUgcGh5c2ljYWwgcG9ydHMgY29ubmVjdGVk IHRvIHRoZQ0KPiBEUERLIHBvcnQuDQo+ID4gKwkgKiBWYWx1ZSAwIG1lYW5zIG5vIGFmZmluaXR5 IGFuZCB0cmFmZmljIGNvdWxkIGJlIHJvdXRlZCB0byBhbnkNCj4gY29ubmVjdGVkDQo+ID4gKwkg KiBwaHlzaWNhbCBwb3J0Lg0KPiA+ICsJICogVGhlIGZpcnN0IHBoeXNpY2FsIHBvcnQgaXMgbnVt YmVyIDEgYW5kIHNvIG9uLg0KPiA+ICsJICogTnVtYmVyIG9mIHBoeXNpY2FsIHBvcnRzIGlzIHJl cG9ydGVkIGJ5IG5iX3BoeV9wb3J0cyBpbg0KPiBydGVfZXRoX2Rldl9pbmZvLg0KPiA+ICsJICov DQo+ID4gKwl1aW50OF90IHR4X3BoeV9hZmZpbml0eTsNCj4gPiAgCS8qKg0KPiA+ICAJICogUGVy LXF1ZXVlIFR4IG9mZmxvYWRzIHRvIGJlIHNldCAgdXNpbmcgUlRFX0VUSF9UWF9PRkZMT0FEXyoN Cj4gZmxhZ3MuDQo+ID4gIAkgKiBPbmx5IG9mZmxvYWRzIHNldCBvbiB0eF9xdWV1ZV9vZmZsb2Fk X2NhcGEgb3IgdHhfb2ZmbG9hZF9jYXBhIEBADQo+ID4gLTE3NDQsNiArMTc1Miw4IEBAIHN0cnVj dCBydGVfZXRoX2Rldl9pbmZvIHsNCj4gPiAgCS8qKiBEZXZpY2UgcmVkaXJlY3Rpb24gdGFibGUg c2l6ZSwgdGhlIHRvdGFsIG51bWJlciBvZiBlbnRyaWVzLiAqLw0KPiA+ICAJdWludDE2X3QgcmV0 YV9zaXplOw0KPiA+ICAJdWludDhfdCBoYXNoX2tleV9zaXplOyAvKio8IEhhc2gga2V5IHNpemUg aW4gYnl0ZXMgKi8NCj4gPiArCS8qKiBOdW1iZXIgb2YgcGh5c2ljYWwgcG9ydHMgY29ubmVjdGVk IHdpdGggRFBESyBwb3J0LiAqLw0KPiA+ICsJdWludDhfdCBuYl9waHlfcG9ydHM7DQo+ID4gIAkv KiogQml0IG1hc2sgb2YgUlNTIG9mZmxvYWRzLCB0aGUgYml0IG9mZnNldCBhbHNvIG1lYW5zIGZs b3cgdHlwZSAqLw0KPiA+ICAJdWludDY0X3QgZmxvd190eXBlX3Jzc19vZmZsb2FkczsNCj4gPiAg CXN0cnVjdCBydGVfZXRoX3J4Y29uZiBkZWZhdWx0X3J4Y29uZjsgLyoqPCBEZWZhdWx0IFJ4IGNv bmZpZ3VyYXRpb24NCj4gPiAqLw0KDQo=