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 E3ED8A0C4E; Sun, 1 Aug 2021 16:25:16 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6A2AA40143; Sun, 1 Aug 2021 16:25:16 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2042.outbound.protection.outlook.com [40.107.236.42]) by mails.dpdk.org (Postfix) with ESMTP id 0334540140; Sun, 1 Aug 2021 16:25:14 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j0YQm5O92VmJA68wIr0xzXaE9mfkHv+46typcIYmC6XRli8meE/pfG8Zm+3tKanvXyC9uQsfT0TxBO/y05zKYixih7b6fsELnmh5unddXOwBJ1ZvD8AF6rvKU6UXy+4sAeSlZDugdmKnr8OBoktbX0uyLbD4nvipVpMMPS9bRs/fEuQIs2MYiscnuZ1iVMSahPKHD6bL8NnA7YrKfGQ4FZpKLS2cTqyYk/MKnfWWjAjU2nSNQ1PkfDZcjg8Wicj+jqIzfznb4XJWkSrxfRXL5+qffsyJX95vV/PgNasxO+dPvPgMOcB+0N6VTRHsi6ax1zPDa6DZ45KHrtiIKx6G7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Vw1j1FomnvdEAjTqpi1q8DszFJvYycoK45ceUIL/EA0=; b=FAEBKezv6W7kddyoJ8ZPw28XCr5cqpolhxDri9oOHtIGDWkJ8ozE6XZhUxbuaCm4JpnXCu7pqch4wtwsSfClbc8G5RFT/A3teUUnqlHP5FAK44SeG1z7I4Cz+gVNFqzW+M2Dzd9IZ+MIakoEptPS6mYJ7FwsG9UIuU4XqKqVn/gJKyWoAQEVhRaO0F7p68KTP+L4+VOHZUt57rhNKiPlYLqb2O00fG+vLlc9p5xrqySvBjKCmgr11gpQI0TZgSJ9lDJfXc7L7WX4GkdZ2KyXVbxecx/w9P3As5TMJy28iHPl+Xgoi/TpPoa8ZKQzHAIgp5toRPoPLIXkucAW8v1muQ== 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=Vw1j1FomnvdEAjTqpi1q8DszFJvYycoK45ceUIL/EA0=; b=nseAd0qPyIluV8Ze3/jT9XT0FoP1Xl4q6kHWAAw7SXDXDRMdQVhLzkCOxdLCQHPKflWc1//1HOIiJNFriP0r+ORbzy7FKHFUM+623NF8Sf98ggqrRxMkXe03M1uZCfNTwvEMLB0avH0TrH2nK9iHgpX5QN7bq4UWvx1cNsx5M+TR3cp+twPbdSB7F7k/7CxrtXz0pDrcG+Rqdq8Ht2rSsEEzzw+LU86XxOgh3LQIW4c/y9wq9CFBfzqBSqiTAgNuvcgMNFwMxljFzXlJzrn60FDf/5wq3yDu71WfBRlRmyg+1C5QRzcq8otn4AfCRs5DWVBZbyrPisKXxn17a9D4SQ== Received: from DM4PR12MB5373.namprd12.prod.outlook.com (2603:10b6:5:39a::17) by DM4PR12MB5200.namprd12.prod.outlook.com (2603:10b6:5:397::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.20; Sun, 1 Aug 2021 14:25:13 +0000 Received: from DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::20f5:dbdd:64b1:617b]) by DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::20f5:dbdd:64b1:617b%9]) with mapi id 15.20.4373.026; Sun, 1 Aug 2021 14:25:13 +0000 From: "Xueming(Steven) Li" To: Andrew Rybchenko , Ajit Khaparde , Somnath Kotur , John Daley , Hyong Youb Kim , Beilei Xing , Qiming Yang , Qi Zhang , Haiyue Wang , Matan Azrad , Shahaf Shuler , Slava Ovsiienko , NBU-Contact-Thomas Monjalon , Ferruh Yigit CC: "dev@dpdk.org" , Viacheslav Galaktionov , "stable@dpdk.org" Thread-Topic: [PATCH] ethdev: fix representor port ID search by name Thread-Index: AQHXdzmBL03cdLFgc0azq8W9R2FptatJ5kowgAAgZICAACw70IAAE+0AgAAAMmCAAVWfgIAN1DMQgAUCaICAAF/bMA== Date: Sun, 1 Aug 2021 14:25:13 +0000 Message-ID: References: <20210712161747.958019-1-andrew.rybchenko@oktetlabs.ru> <498b2d48-4c04-24f5-12a7-b1da3a55fc51@oktetlabs.ru> <0164acb5-9644-4058-ee4c-8eeead751f58@oktetlabs.ru> <04a83f6b-8d7e-0bcf-27cf-856f311af599@oktetlabs.ru> In-Reply-To: <04a83f6b-8d7e-0bcf-27cf-856f311af599@oktetlabs.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: oktetlabs.ru; dkim=none (message not signed) header.d=none;oktetlabs.ru; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: af4a9781-722d-487b-f464-08d954f82d26 x-ms-traffictypediagnostic: DM4PR12MB5200: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Icpd2wETUjIZe0IrT+vmaxy1APT1948ViPQfot0YHiQTSOHBe9JuO5TrRy8NMs+Q5dYlYP65rIA4bkuD1BtwlK0Wf6xIVNDXPzapRF2i29XVpETNWqcrprh8gBcxJmobwk+lGQ+byEbfxEhYOCqUecXd+Szcu40Jp2LuXpTfLl6HO4+vnpNDw3OxeeUjbiF8AaJ52ZdK1tSyvJMSJsuKfPM30962WE44sGG7p7pnslzZWIJnCNweWNB8cw9PAmhCQiuPFlCTKOF6HG55SATffO420+nEAGMqREbvkZ2v0/PSZWAg/DC1xZ9woXUIlYtWUl8R5p4Pv3hCgG/PQGMUdzQVAchk+SX/nWRzPB3/lqXaAcoFkz98csKm0KoTbOnCVD5hFVAPxmLjG/9n6BDGYk2mukSvV25vaggncuvVf31e7j+x9bp8qKgcP2yKadd5nK+aiZeLlpIWiYTjP7bP3WwHs8gNrWmU+1ayBek6bxWTSFCafP6+uFITm3mnhRWmCp3ZXegutvKYVUyf6TgE4QCuGeEaKcNy1qITKG5YV3eb79GgxYAR8qhsuU1izAZX1sjpFqfb/K4RUxSnzu47yoJTA0M0/ZfIHMXhsyZ2HpwSVkxlqTS3SU9Db9q63vA3dOWYhrg4dI4EdAGotlK89e66DX10CWxXPyboD3BeFffx/l1B0NJuekg7aPEDZgmv7/2ZP1oaKiDv/Nr/l/RQCohHAg4s8yuimjmN+Csm4vfKl4Dgw4Wm2T7Os5cul0kFWMCMjKuRcclBRtoS0F0j35GObYjMOQ24vQvKKTvzdOgyTNA0290PzLknwKC74z30 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5373.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(346002)(366004)(396003)(376002)(39860400002)(478600001)(64756008)(66556008)(66476007)(66446008)(66946007)(316002)(186003)(38100700002)(76116006)(9686003)(8676002)(8936002)(5660300002)(4326008)(71200400001)(122000001)(966005)(55016002)(52536014)(86362001)(38070700005)(83380400001)(7696005)(7416002)(26005)(54906003)(53546011)(2906002)(33656002)(921005)(6506007)(110136005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TEc2UWU3YVpiOVY4Qnd4a2Y2bGEvT0thKzkrNHdQdkFBK1NnR1hLQm5OUWZy?= =?utf-8?B?Ym5iYVg0cjZFVk5QNzZCc1Q3ZjkvdUUzckxVOURrak1qdmVVOHk0WXF2Q2V6?= =?utf-8?B?WVRSREhBcENrWlhCcEZzTFRWMERRK2FBNjRjKzAwQVN2WmhkSFVhak5FVnRm?= =?utf-8?B?Z0Q2ZGRPM2NxdHFZdGo3UlBUL2QxVVhDcmtyakRMbjZoV0RpSTlSeE91dTNU?= =?utf-8?B?bWpuamtrTmJTNTY0bjk1K0JEM3JUS0d1ejFUZjgxY0xOVDBFbzFBcEN5cVNw?= =?utf-8?B?R3JOODdvUkxxV3k0U3pFYTkvb2NmOUFvcUVLdElmL2FFMEhNNkltNWl0RTVn?= =?utf-8?B?aXk3UXVjSXlmbXBVYURhUlNybTk4U2ZySnJzOFFqN2h2bmRZcy91bldmMFEr?= =?utf-8?B?dzlKWFlJaVdFY1kyVmxHMTY5REg2ZUhyZ1YvMUZOc2trTFE4TDVWY1F0bWRm?= =?utf-8?B?a0xlLzJ0b29NVVpyYWVMMlNITWpTallXOTVHdXEzVks2NUZZcWlzWWtONUJ2?= =?utf-8?B?T1NxK1hhVkhTMFJGcjZzNHo2YW1hdXlYUjlGN0xqejBkQUViZ1Z6aG04eDlZ?= =?utf-8?B?YmRJcklLRWdYYUM0YUxiTFh3QnhmbGJFTDBtT1Y1N3JtalVhMUlQZWZyOWdL?= =?utf-8?B?cmxPdE13YTBCeng1Z2JpakovTEJFRDRjZHlPY2ZCbm0wNjVNSWRON1RpWkY2?= =?utf-8?B?OS9DQVB1K21rRzAyZzY0cnp2SWpQalQ5UHhzYWtoalVldis4TFlnN1Zia0RY?= =?utf-8?B?WXB0QU4vSDRWV1ptMXM4Q2hJZzc0ZWJ4WktncXVqUXdRQ0lzbEZJOXZHbzRK?= =?utf-8?B?R1NYaHRCNmM4Z0JVVzluR2xUMUxSVkNJT3lTbGJTc3lWTExQVE42eC9QaVRT?= =?utf-8?B?UXh6MG9BUGpKaDRlUXgrV2NpZnE2cTE3VTNvamxWLzJYNktwMzNaZHdUbE5u?= =?utf-8?B?UnZaTGtLMzRnVlBOTjVCb0s5K214dzZPRlgxYmpKbm43TUh6S3kvbjZCSzBN?= =?utf-8?B?cGxhRGJBNFNLNDVPblRuWk9XOWFzM2Q4elV5ODZWYkZsVWZJSmFNVW1RalJV?= =?utf-8?B?UEpyZHRxejRTNUNXdGp0T3M0WWhHellnNlkxbW00em9BbGw5VWR2L1JNZndP?= =?utf-8?B?ZnR4VytaTUIyWTlNbnZuUDJ1N2NBaGlxanBlNDJLa3ZMVldxRnp1a21IeklF?= =?utf-8?B?SDlNQU9SK1gzb3VWMVhrYzN6SkQ2eXRxQ2ZYbS82OXZoR2dMMVB5YmJsdDR4?= =?utf-8?B?aFNuSkFKMjdmb1ZDMTltTENZSk41S1k0dUJFc2Q3WEZ2N1d6OWF2cUMxWFZL?= =?utf-8?B?TDV3d0Q2dDlqcTE3aDVhR1BuOGdnOExPUUZKODkvbnNGVFVNeks5UWVhYmtJ?= =?utf-8?B?SWFvdGQ4T2lmcW5nM21RaG8rRTZqaENmeHl6YXI5YnYrWmJucnJDOUYxaDJF?= =?utf-8?B?UEFPVXpOZDR2bnFCOXIzUlRYakNHMTI1bkhPc21mRlg2RE5VRGRNZnJHN1o3?= =?utf-8?B?SlVGY0p6Uyt3OCtpUUVjRDl5Z08rQnlDUnVHc1ZPYmVEK2dwaGtHckN0MjBa?= =?utf-8?B?V2lwNVdibzFLa2hWMGtKdCtzdnIrNzJZS2NNTGJaRmRnOXlIOEhMZURKbW5x?= =?utf-8?B?VnNGSHpTSW9aVVhnZnhtaGZSWnNJYS8xbmkxQ3FWNGwyS0FtemZsZkJSMlNQ?= =?utf-8?B?SUNLcjZUa3FFS240RmlGVzBtM2dTSzk4Zi9tcVNFVll4ZkdGNWxFdFFiS3Fa?= =?utf-8?Q?VrKhb2BiCwsZXdZe24PbK5ALW78/ENmpzy4SU1E?= 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: DM4PR12MB5373.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: af4a9781-722d-487b-f464-08d954f82d26 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2021 14:25:13.3316 (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: VtmeQxOwI1PT2oMiZJOi9riJA9K05R60Gv6ZGnvn5kx9JW+vCCtN8k67j6oVZpsLhj72vo1vL1PG24+wrwHaWA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5200 Subject: Re: [dpdk-dev] [PATCH] ethdev: fix representor port ID search by name 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 Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5kcmV3IFJ5YmNoZW5r byA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+IFNlbnQ6IFN1bmRheSwgQXVndXN0 IDEsIDIwMjEgNDo0MCBQTQ0KPiBUbzogWHVlbWluZyhTdGV2ZW4pIExpIDx4dWVtaW5nbEBudmlk aWEuY29tPjsgQWppdCBLaGFwYXJkZSA8YWppdC5raGFwYXJkZUBicm9hZGNvbS5jb20+OyBTb21u YXRoIEtvdHVyDQo+IDxzb21uYXRoLmtvdHVyQGJyb2FkY29tLmNvbT47IEpvaG4gRGFsZXkgPGpv aG5kYWxlQGNpc2NvLmNvbT47IEh5b25nIFlvdWIgS2ltIDxoeW9ua2ltQGNpc2NvLmNvbT47IEJl aWxlaSBYaW5nDQo+IDxiZWlsZWkueGluZ0BpbnRlbC5jb20+OyBRaW1pbmcgWWFuZyA8cWltaW5n LnlhbmdAaW50ZWwuY29tPjsgUWkgWmhhbmcgPHFpLnouemhhbmdAaW50ZWwuY29tPjsgSGFpeXVl IFdhbmcNCj4gPGhhaXl1ZS53YW5nQGludGVsLmNvbT47IE1hdGFuIEF6cmFkIDxtYXRhbkBudmlk aWEuY29tPjsgU2hhaGFmIFNodWxlciA8c2hhaGFmc0BudmlkaWEuY29tPjsgU2xhdmEgT3ZzaWll bmtvDQo+IDx2aWFjaGVzbGF2b0BudmlkaWEuY29tPjsgTkJVLUNvbnRhY3QtVGhvbWFzIE1vbmph bG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50 ZWwuY29tPg0KPiBDYzogZGV2QGRwZGsub3JnOyBWaWFjaGVzbGF2IEdhbGFrdGlvbm92IDx2aWFj aGVzbGF2LmdhbGFrdGlvbm92QG9rdGV0bGFicy5ydT47IHN0YWJsZUBkcGRrLm9yZw0KPiBTdWJq ZWN0OiBSZTogW1BBVENIXSBldGhkZXY6IGZpeCByZXByZXNlbnRvciBwb3J0IElEIHNlYXJjaCBi eSBuYW1lDQo+IA0KPiBPbiA3LzI5LzIxIDc6MTMgQU0sIFh1ZW1pbmcoU3RldmVuKSBMaSB3cm90 ZToNCj4gPg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206 IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+PiBT ZW50OiBUdWVzZGF5LCBKdWx5IDIwLCAyMDIxIDU6MDAgUE0NCj4gPj4gVG86IFh1ZW1pbmcoU3Rl dmVuKSBMaSA8eHVlbWluZ2xAbnZpZGlhLmNvbT47IEFqaXQgS2hhcGFyZGUNCj4gPj4gPGFqaXQu a2hhcGFyZGVAYnJvYWRjb20uY29tPjsgU29tbmF0aCBLb3R1cg0KPiA+PiA8c29tbmF0aC5rb3R1 ckBicm9hZGNvbS5jb20+OyBKb2huIERhbGV5IDxqb2huZGFsZUBjaXNjby5jb20+OyBIeW9uZw0K PiA+PiBZb3ViIEtpbSA8aHlvbmtpbUBjaXNjby5jb20+OyBCZWlsZWkgWGluZyA8YmVpbGVpLnhp bmdAaW50ZWwuY29tPjsNCj4gPj4gUWltaW5nIFlhbmcgPHFpbWluZy55YW5nQGludGVsLmNvbT47 IFFpIFpoYW5nIDxxaS56LnpoYW5nQGludGVsLmNvbT47DQo+ID4+IEhhaXl1ZSBXYW5nIDxoYWl5 dWUud2FuZ0BpbnRlbC5jb20+OyBNYXRhbiBBenJhZCA8bWF0YW5AbnZpZGlhLmNvbT47DQo+ID4+ IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbnZpZGlhLmNvbT47IFNsYXZhIE92c2lpZW5rbw0KPiA+ PiA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IE5CVS1Db250YWN0LVRob21hcyBNb25qYWxvbg0K PiA+PiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGlu dGVsLmNvbT4NCj4gPj4gQ2M6IGRldkBkcGRrLm9yZzsgVmlhY2hlc2xhdiBHYWxha3Rpb25vdg0K PiA+PiA8dmlhY2hlc2xhdi5nYWxha3Rpb25vdkBva3RldGxhYnMucnU+OyBzdGFibGVAZHBkay5v cmcNCj4gPj4gU3ViamVjdDogUmU6IFtQQVRDSF0gZXRoZGV2OiBmaXggcmVwcmVzZW50b3IgcG9y dCBJRCBzZWFyY2ggYnkgbmFtZQ0KPiA+Pg0KPiA+PiBPbiA3LzE5LzIxIDM6NTAgUE0sIFh1ZW1p bmcoU3RldmVuKSBMaSB3cm90ZToNCj4gPj4+DQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogQW5kcmV3IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5YmNo ZW5rb0Bva3RldGxhYnMucnU+DQo+ID4+Pj4gU2VudDogTW9uZGF5LCBKdWx5IDE5LCAyMDIxIDg6 MzYgUE0NCj4gPj4+PiBUbzogWHVlbWluZyhTdGV2ZW4pIExpIDx4dWVtaW5nbEBudmlkaWEuY29t PjsgQWppdCBLaGFwYXJkZQ0KPiA+Pj4+IDxhaml0LmtoYXBhcmRlQGJyb2FkY29tLmNvbT47IFNv bW5hdGggS290dXINCj4gPj4+PiA8c29tbmF0aC5rb3R1ckBicm9hZGNvbS5jb20+OyBKb2huIERh bGV5IDxqb2huZGFsZUBjaXNjby5jb20+Ow0KPiA+Pj4+IEh5b25nIFlvdWIgS2ltIDxoeW9ua2lt QGNpc2NvLmNvbT47IEJlaWxlaSBYaW5nDQo+ID4+Pj4gPGJlaWxlaS54aW5nQGludGVsLmNvbT47 IFFpbWluZyBZYW5nIDxxaW1pbmcueWFuZ0BpbnRlbC5jb20+OyBRaQ0KPiA+Pj4+IFpoYW5nIDxx aS56LnpoYW5nQGludGVsLmNvbT47IEhhaXl1ZSBXYW5nIDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+ Ow0KPiA+Pj4+IE1hdGFuIEF6cmFkIDxtYXRhbkBudmlkaWEuY29tPjsgU2hhaGFmIFNodWxlciA8 c2hhaGFmc0BudmlkaWEuY29tPjsNCj4gPj4+PiBTbGF2YSBPdnNpaWVua28gPHZpYWNoZXNsYXZv QG52aWRpYS5jb20+OyBOQlUtQ29udGFjdC1UaG9tYXMNCj4gPj4+PiBNb25qYWxvbiA8dGhvbWFz QG1vbmphbG9uLm5ldD47IEZlcnJ1aCBZaWdpdA0KPiA+Pj4+IDxmZXJydWgueWlnaXRAaW50ZWwu Y29tPg0KPiA+Pj4+IENjOiBkZXZAZHBkay5vcmc7IFZpYWNoZXNsYXYgR2FsYWt0aW9ub3YNCj4g Pj4+PiA8dmlhY2hlc2xhdi5nYWxha3Rpb25vdkBva3RldGxhYnMucnU+OyBzdGFibGVAZHBkay5v cmcNCj4gPj4+PiBTdWJqZWN0OiBSZTogW1BBVENIXSBldGhkZXY6IGZpeCByZXByZXNlbnRvciBw b3J0IElEIHNlYXJjaCBieSBuYW1lDQo+ID4+Pj4NCj4gPj4+PiBPbiA3LzE5LzIxIDI6NTQgUE0s IFh1ZW1pbmcoU3RldmVuKSBMaSB3cm90ZToNCj4gPj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+PiBGcm9tOiBBbmRyZXcgUnliY2hlbmtv IDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT4NCj4gPj4+Pj4+IFNlbnQ6IE1vbmRheSwg SnVseSAxOSwgMjAyMSA0OjQ2IFBNDQo+ID4+Pj4+PiBUbzogWHVlbWluZyhTdGV2ZW4pIExpIDx4 dWVtaW5nbEBudmlkaWEuY29tPjsgQWppdCBLaGFwYXJkZQ0KPiA+Pj4+Pj4gPGFqaXQua2hhcGFy ZGVAYnJvYWRjb20uY29tPjsgU29tbmF0aCBLb3R1cg0KPiA+Pj4+Pj4gPHNvbW5hdGgua290dXJA YnJvYWRjb20uY29tPjsgSm9obiBEYWxleSA8am9obmRhbGVAY2lzY28uY29tPjsNCj4gPj4+Pj4+ IEh5b25nIFlvdWIgS2ltIDxoeW9ua2ltQGNpc2NvLmNvbT47IEJlaWxlaSBYaW5nDQo+ID4+Pj4+ PiA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPjsgUWltaW5nIFlhbmcgPHFpbWluZy55YW5nQGludGVs LmNvbT47IFFpDQo+ID4+Pj4+PiBaaGFuZyA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBIYWl5dWUg V2FuZw0KPiA+Pj4+Pj4gPGhhaXl1ZS53YW5nQGludGVsLmNvbT47IE1hdGFuIEF6cmFkIDxtYXRh bkBudmlkaWEuY29tPjsgU2hhaGFmDQo+ID4+Pj4+PiBTaHVsZXIgPHNoYWhhZnNAbnZpZGlhLmNv bT47IFNsYXZhIE92c2lpZW5rbw0KPiA+Pj4+Pj4gPHZpYWNoZXNsYXZvQG52aWRpYS5jb20+OyBO QlUtQ29udGFjdC1UaG9tYXMgTW9uamFsb24NCj4gPj4+Pj4+IDx0aG9tYXNAbW9uamFsb24ubmV0 PjsgRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiA+Pj4+Pj4gQ2M6IGRl dkBkcGRrLm9yZzsgVmlhY2hlc2xhdiBHYWxha3Rpb25vdg0KPiA+Pj4+Pj4gPHZpYWNoZXNsYXYu Z2FsYWt0aW9ub3ZAb2t0ZXRsYWJzLnJ1Pjsgc3RhYmxlQGRwZGsub3JnDQo+ID4+Pj4+PiBTdWJq ZWN0OiBSZTogW1BBVENIXSBldGhkZXY6IGZpeCByZXByZXNlbnRvciBwb3J0IElEIHNlYXJjaCBi eQ0KPiA+Pj4+Pj4gbmFtZQ0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IE9uIDcvMTkvMjEgOTo1OCBBTSwg WHVlbWluZyhTdGV2ZW4pIExpIHdyb3RlOg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4+Pj4gRnJvbTogQW5kcmV3IFJ5 YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+ID4+Pj4+Pj4+IFNlbnQ6 IFR1ZXNkYXksIEp1bHkgMTMsIDIwMjEgMTI6MTggQU0NCj4gPj4+Pj4+Pj4gVG86IEFqaXQgS2hh cGFyZGUgPGFqaXQua2hhcGFyZGVAYnJvYWRjb20uY29tPjsgU29tbmF0aCBLb3R1cg0KPiA+Pj4+ Pj4+PiA8c29tbmF0aC5rb3R1ckBicm9hZGNvbS5jb20+OyBKb2huIERhbGV5IDxqb2huZGFsZUBj aXNjby5jb20+Ow0KPiA+Pj4+Pj4+PiBIeW9uZyBZb3ViIEtpbSA8aHlvbmtpbUBjaXNjby5jb20+ OyBCZWlsZWkgWGluZw0KPiA+Pj4+Pj4+PiA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPjsgUWltaW5n IFlhbmcgPHFpbWluZy55YW5nQGludGVsLmNvbT47DQo+ID4+Pj4+Pj4+IFFpIFpoYW5nIDxxaS56 LnpoYW5nQGludGVsLmNvbT47IEhhaXl1ZSBXYW5nDQo+ID4+Pj4+Pj4+IDxoYWl5dWUud2FuZ0Bp bnRlbC5jb20+OyBNYXRhbiBBenJhZCA8bWF0YW5AbnZpZGlhLmNvbT47IFNoYWhhZg0KPiA+Pj4+ Pj4+PiBTaHVsZXIgPHNoYWhhZnNAbnZpZGlhLmNvbT47IFNsYXZhIE92c2lpZW5rbw0KPiA+Pj4+ Pj4+PiA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IE5CVS1Db250YWN0LVRob21hcyBNb25qYWxv bg0KPiA+Pj4+Pj4+PiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IEZlcnJ1aCBZaWdpdCA8ZmVycnVo LnlpZ2l0QGludGVsLmNvbT47DQo+ID4+Pj4+Pj4+IFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVlbWlu Z2xAbnZpZGlhLmNvbT4NCj4gPj4+Pj4+Pj4gQ2M6IGRldkBkcGRrLm9yZzsgVmlhY2hlc2xhdiBH YWxha3Rpb25vdg0KPiA+Pj4+Pj4+PiA8dmlhY2hlc2xhdi5nYWxha3Rpb25vdkBva3RldGxhYnMu cnU+OyBzdGFibGVAZHBkay5vcmcNCj4gPj4+Pj4+Pj4gU3ViamVjdDogW1BBVENIXSBldGhkZXY6 IGZpeCByZXByZXNlbnRvciBwb3J0IElEIHNlYXJjaCBieSBuYW1lDQo+ID4+Pj4+Pj4+DQo+ID4+ Pj4+Pj4+IEZyb206IFZpYWNoZXNsYXYgR2FsYWt0aW9ub3YNCj4gPj4+Pj4+Pj4gPHZpYWNoZXNs YXYuZ2FsYWt0aW9ub3ZAb2t0ZXRsYWJzLnJ1Pg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBGaXgg cmVwcmVzZW50b3IgcG9ydCBJRCBzZWFyY2ggYnkgbmFtZSBpZiB0aGUgcmVwcmVzZW50b3INCj4g Pj4+Pj4+Pj4gaXRzZWxmIGRvZXMgbm90IHByb3ZpZGUgcmVwcmVzZW50b3JzIGluZm8uIEdldHRp bmcgYSBsaXN0IG9mDQo+ID4+Pj4+Pj4+IHJlcHJlc2VudG9ycyBmcm9tIGEgcmVwcmVzZW50b3Ig ZG9lcyBub3QgbWFrZSBzZW5zZS4gSW5zdGVhZCwgYQ0KPiA+Pj4+Pj4+PiBwYXJlbnQgZGV2aWNl DQo+ID4+Pj4+PiBzaG91bGQgYmUgdXNlZC4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gVG8gdGhp cyBlbmQsIGV4dGVuZCB0aGUgcnRlX2V0aF9kZXZfZGF0YSBzdHJ1Y3R1cmUgdG8gaW5jbHVkZSB0 aGUgcG9ydCBJRCBvZiB0aGUgcGFyZW50IGRldmljZSBmb3IgcmVwcmVzZW50b3JzLg0KPiA+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+PiBGaXhlczogZGY3NTQ3YTZhMmNjICgiZXRoZGV2OiBhZGQgaGVscGVy IGZ1bmN0aW9uIHRvIGdldA0KPiA+Pj4+Pj4+PiByZXByZXNlbnRvcg0KPiA+Pj4+Pj4+PiBJRCIp DQo+ID4+Pj4+Pj4+IENjOiBzdGFibGVAZHBkay5vcmcNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4g U2lnbmVkLW9mZi1ieTogVmlhY2hlc2xhdiBHYWxha3Rpb25vdg0KPiA+Pj4+Pj4+PiA8dmlhY2hl c2xhdi5nYWxha3Rpb25vdkBva3RldGxhYnMucnU+DQo+ID4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6 IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+Pj4+ Pj4+PiAtLS0NCj4gPj4+Pj4+Pj4gVGhlIG5ldyBmaWVsZCBpcyBhZGRlZCBpbnRvIHRoZSBob2xl IGluIHJ0ZV9ldGhfZGV2X2RhdGEgc3RydWN0dXJlLg0KPiA+Pj4+Pj4+PiBUaGUgcGF0Y2ggZG9l cyBub3QgY2hhbmdlIEFCSSwgYnV0IGV4dHJhIGNhcmUgaXMgcmVxdWlyZWQgc2luY2UNCj4gPj4+ Pj4+Pj4gQUJJIGNoZWNrIGlzIGRpc2FibGVkIGZvciB0aGUgc3RydWN0dXJlIGJlY2F1c2Ugb2Yg dGhlDQo+ID4+Pj4+Pj4+IGxpYmFiaWdhaWwgYnVnDQo+ID4+Pj4+PiBbMV0uDQo+ID4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+IFBvdGVudGlhbGx5IGl0IGlzIGJhZCBmb3Igb3V0LW9mLXRyZWUgZHJpdmVy cyB3aGljaCBpbXBsZW1lbnQNCj4gPj4+Pj4+Pj4gcmVwcmVzZW50b3JzIGJ1dCBkbyBub3QgZmls bCBpbiBhIG5ldyBwYXJlcnRfcG9ydF9pZCBmaWVsZCBpbiBydGVfZXRoX2Rldl9kYXRhIHN0cnVj dHVyZS4gRG8gd2UgY2FyZT8NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gTWF5IGJlIHRoZSBwYXRj aCBzaG91bGQgYWRkIGxpbmVzIHRvIHJlbGVhc2Ugbm90ZXMsIGJ1dCBJJ2QgbGlrZSB0byBnZXQg aW5pdGlhbCBmZWVkYmFjayBmaXJzdC4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gbWx4NSBjaGFu Z2VzIHNob3VsZCBiZSByZXZpd2VkIGJ5IG1haW50YWluZXJzIHZlcnkgY2FyZWZ1bGx5LCBzaW5j ZSB3ZSBhcmUgbm90IHN1cmUgaWYgd2UgcGF0Y2ggaXQgY29ycmVjdGx5Lg0KPiA+Pj4+Pj4+Pg0K PiA+Pj4+Pj4+PiBbMV0gaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5j Z2k/aWQ9MjgwNjANCj4gPj4+Pj4+DQo+ID4+Pj4+PiBbc25pcF0NCj4gPj4+Pj4+DQo+ID4+Pj4+ Pj4+IC0tLSBhL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oDQo+ID4+Pj4+Pj4+ICsrKyBiL2xp Yi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oDQo+ID4+Pj4+Pj4+IEBAIC0xMjQ4LDggKzEyNDgsOCBA QCBzdHJ1Y3QgcnRlX2V0aF9kZXZhcmdzIHsNCj4gPj4+Pj4+Pj4gICAgICAgKiBGb3IgYmFja3dh cmQgY29tcGF0aWJpbGl0eSwgaWYgbm8gcmVwcmVzZW50b3IgaW5mbywgZGlyZWN0DQo+ID4+Pj4+ Pj4+ICAgICAgICogbWFwIGxlZ2FjeSBWRiAobm8gY29udHJvbGxlciBhbmQgcGYpLg0KPiA+Pj4+ Pj4+PiAgICAgICAqDQo+ID4+Pj4+Pj4+IC0gKiBAcGFyYW0gZXRoZGV2DQo+ID4+Pj4+Pj4+IC0g KiAgSGFuZGxlIG9mIGV0aGRldiBwb3J0Lg0KPiA+Pj4+Pj4+PiArICogQHBhcmFtIHBhcmVudF9w b3J0X2lkDQo+ID4+Pj4+Pj4+ICsgKiAgUG9ydCBJRCBvZiB0aGUgYmFja2luZyBkZXZpY2UuDQo+ ID4+Pj4+Pj4+ICAgICAgICogQHBhcmFtIHR5cGUNCj4gPj4+Pj4+Pj4gICAgICAgKiAgUmVwcmVz ZW50b3IgdHlwZS4NCj4gPj4+Pj4+Pj4gICAgICAgKiBAcGFyYW0gY29udHJvbGxlcg0KPiA+Pj4+ Pj4+PiBAQCAtMTI2Niw3ICsxMjY2LDcgQEAgc3RydWN0IHJ0ZV9ldGhfZGV2YXJncyB7DQo+ID4+ Pj4+Pj4+ICAgICAgICovDQo+ID4+Pj4+Pj4+ICAgICAgX19ydGVfaW50ZXJuYWwNCj4gPj4+Pj4+ Pj4gICAgICBpbnQNCj4gPj4+Pj4+Pj4gLXJ0ZV9ldGhfcmVwcmVzZW50b3JfaWRfZ2V0KGNvbnN0 IHN0cnVjdCBydGVfZXRoX2RldiAqZXRoZGV2LA0KPiA+Pj4+Pj4+PiArcnRlX2V0aF9yZXByZXNl bnRvcl9pZF9nZXQodWludDE2X3QgcGFyZW50X3BvcnRfaWQsDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+ PiBJdCBtYWtlIG1vcmUgc2Vuc2UgdG8gZ2V0IHJlcHJlc2VudG9yIGluZm8gZnJvbSBwYXJlbnQg cG9ydC4NCj4gPj4+Pj4+PiBSZXByZXNlbnRvciBpcyBhIG1lbWJlciBvZiBzd2l0Y2ggZG9tYWlu LCBQTUQgb3ducyB0aGUNCj4gPj4+Pj4+PiBpbmZvcm1hdGlvbiBvZiB0aGUgcmVwcmVzZW50b3Ig b3duZXIgcG9ydCBhbmQgaW5mbyBvZg0KPiA+Pj4+Pj4+IHJlcHJlc2VudG9ycy4gVGhpcyBjaGFu Z2UgbG9va3MgYmV0dGVyLCBidXQgbm90IHN1cmUgd2hldGhlciBpdA0KPiA+Pj4+Pj4+IHZhbHVh YmxlIHRvIGludHJvZHVjZSBhIG5ldw0KPiA+Pj4+Pj4gbWVtYmVyIHRvIHRoZSBFQUwgZGF0YSBz dHJ1Y3R1cmUuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gSU1ITywgaXQgaXMgc2ltcGx5IGluY29ycmVj dCB0byByZXR1cm4gcmVwcmVzZW50b3JzIGluZm8gb24gYQ0KPiA+Pj4+Pj4gcmVwcmVzZW50b3Ig aXRzZWxmLiBSZXByZXNlbnRvciBpbmZvIGlzIGFuIGluZm9ybWF0aW9uIHdoaWNoIHJlcHJlc2Vu dG9ycyBtYXkgYmUgcG9wdWxhdGVkIHVzaW5nIHRoZSBkZXZpY2UuDQo+ID4+Pj4+Pg0KPiA+Pj4+ Pj4gSWYgYWJvdmUgc3RhdGVtZW50IGlzIGNvcnJlY3QsIHdlIG5lZWQgYSB3YXkgdG8gZ2V0IHBh cmVudCBkZXZpY2UNCj4gPj4+Pj4+IGJ5IHJlcHJlc2VudG9yIHRvIGRvIG5hbWUgdG8gcmVwcmVz ZW50b3IgSUQgbWFwcGluZy4gSSBzZWUgdHdvIG9wdGlvbnMgdG8gZG8gaXQ6DQo+ID4+Pj4+PiAg ICAgIEEuIERlZGljYXRlZCBmaWVsZCBpbiBydGVfZXRoX2Rldl9kYXRhIGFzIHRoZSBwYXRjaCBk b2VzLg0KPiA+Pj4+Pj4gICAgICBCLiBEZWRpY2F0ZWQgZXRoZGV2IG9wIChzaW5jZSByZXByZXNl bnRvciBrbm93cyBwYXJlbnQgcG9ydCBJRCBhbnl3YXkpLg0KPiA+Pj4+Pj4gV2UgaGF2ZSBjaG9z ZW4gKEEpIGJlY2F1c2Ugb2Ygc2ltcGxpY2l0eS4NCj4gPj4+Pj4NCj4gPj4+Pj4gSnVzdCByZWNh bGxlZCB0aGF0IHJlcHJlc2VudG9yIHBvcnQgY291bGQgYmUgcHJvYmVkIHcvbyBvd25lciBQRiwg aXMgYSBmb3JjZSBmb3IgcGFyZW50IHBvcnQ/DQo+ID4+Pj4NCj4gPj4+PiBJIHRob3VnaHQgdGhh dCBpdCBpcyBpbXBvc3NpYmxlIGFuZCBwYXJlbnQgcG9ydCBpcyBhYnNvbHV0ZWx5DQo+ID4+Pj4g cmVxdWlyZWQgZm9yIGEgcmVwcmVzZW50b3IuIENvdWxkIHlvdSBwcm92aWRlIGFuIGV4YW1wbGUg YW5kIGV4cGxhaW4gaG93IHdpbGwgaXQgd29yaz8NCj4gPj4+DQo+ID4+PiBJbiBjYXNlIG9mIGJv bmRpbmcsIFBGMCBhbmQgUEYxIGJlY29tZSBvbmUgUEYgcG9ydCBgYm9uZDBgLCBQQ0kgYWRkcmVz cyBpcyBQRjAuDQo+ID4+PiAJLWEgPFBGMD4scmVwcmVzZW50b3I9cGZbMC0xXXZmWzAtOTldIC8v IHRoaXMgaXMgdGhlIHN5bnRheCB3ZSBwcm9wb3NlZC4NCj4gPj4NCj4gPj4gSXMgaXQgbmV0L2Jv bmRpbmcgb3IgdmVuZG9yLXNwZWNpZmljIGJvbmRpbmcgaW4gSFc/DQo+ID4+IElmIEkgcmVtZW1i ZXIgY29ycmVjdGx5IGluIHRoZSBjYXNlIG9mIG5ldC9ib25kaW5nIHdlIGhhdmUgZXRoZGV2IHBv cnRzIGZvciBib25kZWQgZGV2aWNlcy4NCj4gPg0KPiA+IE5vdCBuZXQvYm9uZGluZyBwbWQsIGl0 J3MgTGludXggYm9uZGluZywgc3VwcG9ydGVkIGJ5IGh3IGRyaXZlci4NCj4gDQo+IEdvdCBpdC4N Cj4gDQo+ID4+DQo+ID4+Pg0KPiA+Pj4gVG8gYmUgYmFja3dhcmQgY29tcGF0aWJsZSwgYWxzbyBz dXBwb3J0IHRoZSBmb2xsb3dpbmcgMiBkZXZhcmdzOg0KPiA+Pj4gCS1hIDxwZjA+LHJlcHJlc2Vu dG9yPVswLTk5XSAvLyBwcm9iZSBib25kMCBhbmQgcmVwcmVzZW50b3Igb24gcGYwDQo+ID4+PiAJ LWEgPHBmMT4scmVwcmVzZW50b3I9WzAtOTldIC8vIHByb2JlIHJlcHJlc2VudG9ycyBvbiBwZjEu DQo+ID4+PiBJZiBkZXZhcmdzIHN0YXJ0IHdpdGggUEYxIGRldmFyZ3MsIG5vIG93bmVyIFBGMSBj cmVhdGVkIGFzIGl0DQo+ID4+PiBkaXNhYmxlZCBpbiBib25kaW5nLiBDYW4ndCBjcmVhdGUgYm9u ZDAoUEYwKSBhdXRvbWF0aWNhbGx5IGhlcmUgYXMgZGV2aWNlIGlzIGxvY2F0ZWQgYnkgUENJIGFk ZHJlc3MoUEYxKSBmcm9tIGRldmFyZ3MuDQo+ID4+DQo+ID4+IFNvLCBJIGd1ZXNzIHRoZSBwcm9i bGVtIGlzIHZlbmRvci1zcGVjaWZpYyBib25kaW5nIGluIEhXLiBBbnl3YXkNCj4gPj4gbGVnYWN5 IGJhY2t3YXJkIGNvbXBhdGlibGUgcmVwcmVzZW50b3Igc3BlYyBzaG91bGQgbm90IHJlcXVpcmUN Cj4gPj4gcmVwcmVzZW50b3JzIGluZm8gc2luY2UgaXQgd29ya2VkIGJlZm9yZSB3aXRob3V0IGl0 LiBTbywgaXQgZG9lcyBub3Qgc291bmQgbGlrZSBhIHJlYXNvbiB0byBoYXZlIHJlcHJlc2VudG9y cyBpbmZvIG9uIGEgcmVwcmVzZW50b3INCj4gaXRzZWxmLg0KPiA+DQo+ID4gTGVnYWN5IGJhY2t3 YXJkIGxvZ2ljIGNvdWxkIGJlIHNvbWV0aGluZyBsaWtlIHRoaXM6IGlmIFBGIG93bmVyIHBvcnQg Zm91bmQsIHVzZSBpdCwgZmFsbGJhY2sgdG8gY3VycmVudCByZXByZXNlbnRvci4NCj4gPiBUaGlz IHdvbid0IGJyZWFrIGFueXRoaW5nIEkgZ3Vlc3MsIGhvdyBkbyB5b3UgdGhpbms/DQo+IA0KPiBM b2dpY2FsbHkgZXZlbiBpbiBsZWdhY3kgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBQRjEgVkZzIHJl cHJlc2VudG9ycyBoYXZlIHBhcmVudCBwb3J0IElEIC0gUEYwIHdoaWNoIGlzIGEgYm9uZCBvZiBQ RjAgJiBQRjEuIFNvLA0KPiBwYXJlbnRfcG9ydF9pZCBzaG91bGQgYmUgZmlsbGVkIGluLiBJbiB0 aGlzIGNhc2UgZXRoX3JlcHJlc2VudG9yX2NtcCgpIHdpbGwgZG8gcnRlX2V0aF9yZXByZXNlbnRv cl9pZF9nZXQoUEYwLWJvbmQtaWQsIC0xLCAtMSwgVkYsICZpZCkNCj4gd2hpY2ggd2lsbCByZXR1 cm4gUEYwIFZGIHJlcHJlc2VudG9yIElELiBNb3N0IGxpa2VseSBpdCB3aWxsIGV2ZW4gbWF0Y2gg YW5kIGV2ZXJ5dGhpbmcgd29ya3MsIGJ1dCBpdCBpcyBzdGlsbCBpbmNvcnJlY3QuDQoNClRoZSBQ RjAsIGJvbmQgb2YgUEYwIGFuZCBQRjEgd2lsbCByZXR1cm4gcmVwcmVzZW50b3IgaW5mbyBmb3Ig VkYvU0ZzIHVuZGVyIGJvdGggUEZzLiBJdCBzaG91bGQgd29yay4NCg0KPiANCj4gSW4gZmFjdCwg SSBoYXZlIGFub3RoZXIgaWRlYS4gVHJ5IHRvIGRvOg0KPiBydGVfZXRoX3JlcHJlc2VudG9yX2lk X2dldChyZXByZXNlbnRvci1wb3J0LWlkLCAuLi4pIGZpcnN0IGZvciB0aGUgYmFja3dhcmQgY29t cGF0aWJpbGl0eSBjYXNlIGFuZCwgaWYgbm90IHN1cHBvcnRlZCwgZG8gaXQgb24gcGFyZW50DQo+ IHBvcnQgSUQuDQoNCkxvb2tzIGdvb2QgdG8gbWUNCg==