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 3B7D5A0C41; Mon, 2 Aug 2021 09:28:42 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1F09D41109; Mon, 2 Aug 2021 09:28:42 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2076.outbound.protection.outlook.com [40.107.244.76]) by mails.dpdk.org (Postfix) with ESMTP id 7E79640140 for ; Mon, 2 Aug 2021 09:28:40 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mJN7xGfDacQU1WyFGMUGSRnKBp5UppEdBCAWiD5wm6eqLIMtVE22nj7x9/olPeIwEG/5rGs92I/r3rTrJPqV0zYlw4pOXnBT/BcFgUGDR+FKwEvvM/UygG26i03TvMNADB4OYWUqpCF/PrraTkryIUlKO6lW3rRZGkYjFsTyoc46Rwp36Xz9l0o2FAwN5qnNct1MFnk47kgY4uX7CEHCB9gborJ/hKO+eWYt3Puc35MLvwCnp/2VKeA80+Xk+j7DyG4W4NHa0IBW3zBMidlLA9KNtbCsrCgutEIGgacIPUQF+JGLauEBhyRC5xN0PwoSHGU+5tuNtlBi1j3LIIRitQ== 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=kCIGzo5HEVN8R4hEMQz8qbF2pKrRWDUE5gC2rg/99HA=; b=SWKQcv/5gJAtTKihfnLP7RiyZ7MHtKrJnk3GbZaugFxObSVZW47fP6c2V9H0YKcz644xp1euKUHWXGOXGFXpyeKfh+mO5pRzisw5THCLx2V7pEgEvBkslhKMjkqsSU94qjp4ddd9EigyRx0PuhbQF/4miM+Q19sM44RsJZVgzc6UaKaDK7LJi5g4rcVfZxSLGdzzDrx8xHglEULhFchdzUC03OSABRVRkM27Py/i5JYUU8AVytADU761++1LUUgeq1HET5NauywPAOMbXajYd9yqW6IjGlfDDxZpkfsLGuXuPLs6Qs5AvDhclZJ80IFbuEOq4G34lebDqayHkLyslw== 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=kCIGzo5HEVN8R4hEMQz8qbF2pKrRWDUE5gC2rg/99HA=; b=Hw3Xo9mczyTtScef++mWEg3LC1GYi6u1YMeBc7hhr9f5FXniXizybZWnr8ITn8+PmshVKQ6rXbo+cKhsml8QggDw1eadyEr9/kIMwK+4T/7nLffKZYodVDm2KYm97TnB3MEz2CZ29In92CI7HYE8HEWKnh5XI943ov3HM33WwInoCEk2x3awHJSywNhvD/eXSKK7vtrKBET4IkcukN3TMk5Z+7aQaHbdis/w1q9jo3q0zwLo3RApggQ3a1J5A5IIThWv8lelSWOm9DrpylCVCXsZckK6KC6bTl2GSbnyxqj5a+7RK6WxvUfCAvUUGNyuXaxYxRCJvc0m3laREKjA2A== Received: from DM8PR12MB5400.namprd12.prod.outlook.com (2603:10b6:8:3b::12) by DM6PR12MB5520.namprd12.prod.outlook.com (2603:10b6:5:208::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.18; Mon, 2 Aug 2021 07:28:38 +0000 Received: from DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::9cf5:169b:e9a5:5811]) by DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::9cf5:169b:e9a5:5811%8]) with mapi id 15.20.4373.026; Mon, 2 Aug 2021 07:28:38 +0000 From: Ori Kam To: Andrew Rybchenko , Eli Britstein , NBU-Contact-Thomas Monjalon , Ferruh Yigit CC: "dev@dpdk.org" , Ilya Maximets , Ajit Khaparde , Matan Azrad , Ivan Malov , Viacheslav Galaktionov Thread-Topic: [PATCH 1/2] ethdev: announce flow API action PORT_ID changes Thread-Index: AQHXhsQO1hoPZvP6bUeMv92BqQYaPqtejRaAgAABDuCAAAn9AIAAAfgwgAAJToCAACdIwIAASg2AgAC5liA= Date: Mon, 2 Aug 2021 07:28:38 +0000 Message-ID: References: <20210801102214.1566104-1-andrew.rybchenko@oktetlabs.ru> <49eca7ed-ad3b-d47c-99d1-9ac109efc31a@nvidia.com> <1d0c3022-afb6-6526-cd47-8945a455899a@oktetlabs.ru> <62851a01-57ed-0e2c-8160-16699452bebc@oktetlabs.ru> In-Reply-To: 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: d5682f1d-d576-4331-5c3e-08d955872573 x-ms-traffictypediagnostic: DM6PR12MB5520: 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:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: kqu51EoXFaoQJm1Jp8hvAszYzSzta4Fh9QNpYbY+3/aUH6vJNVnf0e4OpkdA8mGFnNUMItMJBn1IhKaZj4kxM1eODtEx7NeWA7Eup7Q7XiHoESvo46CpaGuwwZVtJglfohraD/Tn6duCjp1W9uk/Xo4JEkfH0U6058CRjSB5tpp8YIrHvAxRhLQ86CKp6Bcx8Ulr3TSLnPftOv7VaxRMlhblK0TZemq2primx6uX5eF9jc5DsXsO4ySXt87uPFm6lKa3ZQER1gTvkR+o/JyzaGLRebgRr1fZjdxm4TZMLJl0yCAsvwTVkR18Hih5MmFlZBXChhIfvfGno9CmweQ5h6lBx0QzJ7jt00mHnkkrfp5TnHlxPlQgC5bETYi53PGTw9om4q/e1dPmeJn/h1v4MoAkhUhbTMpy0ZMDXyrbGDHF1Ium59r05v3Bs66QR/aVZ4tQUlAzb6/Qw9sPXvl7kq5euSZbt2Y+o0PRir89MljOuw0LhEoNjlqFXV3N64UexrxCaTFFh5rHXFiShjE8dnxs4gieX0SeHSDVusQJpAJ2N7wNviUTOZoLr+5yT/RBAuJ+RiL3USVyP3IzhXtYNk4xDQ3eoQyYMPmSVic9PudIp6lJWSzXPJ4kvJ2p5ttHI39pSBl8eDLb/snbdFw5TnDKWIRFOZoRuUR8cJ9jJYwuqXDyD/1va7UuDtGbxuWlNaMpHoj9TZbiaxVDz5MnS7ju8qoevUkrm9QfCYaMH6nfuYxKFM2djQipP7gM6ljoDr7a0NyOeFd9XPa5aKz8Ukp5nnf10O5PQwu2c0iF7B5zMo82v9dDaMsEUAC6CHEFOeClrGtSNopcbf2fwUIb1g== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR12MB5400.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(39860400002)(366004)(136003)(346002)(396003)(7696005)(86362001)(4326008)(83380400001)(316002)(2906002)(5660300002)(478600001)(186003)(122000001)(76116006)(8676002)(966005)(54906003)(38100700002)(8936002)(33656002)(52536014)(9686003)(55016002)(66556008)(53546011)(71200400001)(66476007)(6506007)(38070700005)(64756008)(26005)(110136005)(66446008)(30864003)(66946007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?LzRjQ2NRbUErRng0NkphMDJFa0ovU3paNW5pNlVRTlV0SDRaMkwzVkpISmdX?= =?utf-8?B?aEdJVlpsV0dFYW1wd05mN09NczV5d1ViSHhjU0F2ZDNjWTRrYzRJNzZzM0NQ?= =?utf-8?B?c00zQklxOHF2eHdhQ2Q0cjY3WFVHOEo0bHk1YUdmZU9wd3ZOamlRYkhRM3FG?= =?utf-8?B?YnVoNVNGK21lMGZPOHMzeGJZWGVJZHhJcmVyWUt2S3RwelJkaU9aQXB0L3l1?= =?utf-8?B?Vmo3THI0akozaGYxdE1ZNmVJWHdYSHRkOWpFcVRLN2ovN2wrcGVBYk45ZG5P?= =?utf-8?B?UE94WGhmUi8vRERKOWhSVEJhL0ZnV2xQQ1RMenNHMnBiU0NjU2lOdzY2WjlN?= =?utf-8?B?aG9LRmNXTFhQZHpqZXNYY0V1UkVCOGJGMUlLUFUrbS9DVEFQMGtMcGZkTVhE?= =?utf-8?B?UFBsTGNlRWhOckZsTlFHdUh3Wkh5dnVOeHBDektSallCTVJiN3h2RXRuYUVv?= =?utf-8?B?NU1CQ01GdEhnWTNKYlRqT20vS1k2UHVEWlpDcWg5LzcwWnk5dkNGVlJpVzNz?= =?utf-8?B?U0ZCLzlmSVMyR1pQM0F2OUV6cTQ1S2dzdThZV0Q5aHFDSVgzUGVKQTh6QjRx?= =?utf-8?B?UmhiYUJCN1k1cHBhcmRGb2N0T0VaZDBocElaVTdJRlU3Y0wvZm5pUHdOOThC?= =?utf-8?B?VnYzdGRTWW9RZi9MQjRPSVcvNGFiNTE4SDE0R0xXam5ONlFrbDdNRVhyOVpE?= =?utf-8?B?dXo0SUVGektUdEcyWk5XemRFU2RraHUwQ2VYYW03L1NibjRsOGgwczZWcVp4?= =?utf-8?B?Q3dseVBhR1RVVGFqYVNuUVBzajk3NEJXZWRXekE5VXpoTFNZNnJBcGx0cFF0?= =?utf-8?B?UGZMWnZTd0NPK2JNV1BtN1VBTlQ5MVFqUHl5T0k1NDJkQzd2SkFETEdtdGR6?= =?utf-8?B?dWxubXgzdU5ENHpLZnp2cTFPN0JMcm80RVYyOUNMNlZ4R0hiQVFoTHQ0Ry8r?= =?utf-8?B?TjNicC9yOWlqZ3NuWm9Vd1J6WVlFaTVRaFJBVWM0TTBwVTA4ejNEU1VaSWJU?= =?utf-8?B?Zy9yRnJsZ1BYVUVadi9Bd1dnRnhxVU9WWUxRNmJEdTEwdVlsc1B1b1NGNEli?= =?utf-8?B?ZERsSEo0R0lhMWxaQ2xMRkRGa3h5MExRL1NOZWRKVklpNTF0M1pUTTJsaThB?= =?utf-8?B?TVZjc2FHWTM2QzBJSnd2MjE0N2MwQXorOFNLZG9CYURvR0ZZUjdraFc4SWQ3?= =?utf-8?B?amVwWXBjMlZRUUhsNkl3eG5SQm13V0pUSzFvYVE0OXA0MVBsNnNYQkJNSjY5?= =?utf-8?B?bHljaTBFSWpZUC9STUFGZURwY25JbU9PQUE1cEdDTHZZanVXQVRnNkxadmdr?= =?utf-8?B?TzRTUS96V25oRVNob1dldlpIT2UzWExMcHRQOUErbWN6TmZ2bU45OEd1THdJ?= =?utf-8?B?RVdKUjlBSExXekhRMXBrcGZhVGFGZEJXRytSZ1VnR0toOXRidkd3Q0EzWXU2?= =?utf-8?B?cEpwSWV1VzYrTE1SRjh5YTdkY29ZTFMrdmV2b3RSTlE1aHhGZlFHekZ3eGRu?= =?utf-8?B?aHNyVk1Zd0FSNVpEaXQwVnkxd0RETEE1K2RTMEY1aXlkdUhUK1krdTZqWWRq?= =?utf-8?B?a3c2NFY0dGd6TnIwNHhJQmNJcjlxOUhzRFpnNjhlUklTT1VXOVJSL0g0ck5i?= =?utf-8?B?MmtqT2x4WlpaaUNZTjJDVTBBRStJZUppQjkyRzRKV3crb1JPK3dmcm9UQzlP?= =?utf-8?B?OHlHMFRreHduL0VIdVVVbE1RZ04xQi9iV1BZZWI3eHBrM1hKeFVEd01kN2xV?= =?utf-8?Q?vZEZ+REdoH+HiFmxcHKoekh+xvz/wGglE6W8CJy?= 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: DM8PR12MB5400.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d5682f1d-d576-4331-5c3e-08d955872573 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Aug 2021 07:28:38.5992 (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: rixxAjYRXOLzvfmC9ElHk+y9HMAsI4mmJ3HDmzWTH+PDNr/QiHtdaAI+vG6cRHYKBSx/t9mVIcbx/3qC7WZDig== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB5520 Subject: Re: [dpdk-dev] [PATCH 1/2] ethdev: announce flow API action PORT_ID changes 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+IA0KPiBPbiA4LzEvMjEgNzoxMyBQ TSwgT3JpIEthbSB3cm90ZToNCj4gPiBIaSAgQW5kcmV3LA0KPiA+DQo+ID4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJj aGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+PiBTZW50OiBTdW5kYXksIEF1Z3VzdCAxLCAyMDIxIDQ6 MjQgUE0NCj4gPj4gU3ViamVjdDogUmU6IFtQQVRDSCAxLzJdIGV0aGRldjogYW5ub3VuY2UgZmxv dyBBUEkgYWN0aW9uIFBPUlRfSUQNCj4gPj4gY2hhbmdlcw0KPiA+Pg0KPiA+PiBPbiA4LzEvMjEg Mzo1NiBQTSwgT3JpIEthbSB3cm90ZToNCj4gPj4+IEhpIEFuZHJldywNCj4gPj4+DQo+ID4+Pj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBBbmRyZXcgUnliY2hlbmtv IDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT4NCj4gPj4+PiBTZW50OiBTdW5kYXksIEF1 Z3VzdCAxLCAyMDIxIDM6NDQgUE0NCj4gPj4+PiBTdWJqZWN0OiBSZTogW1BBVENIIDEvMl0gZXRo ZGV2OiBhbm5vdW5jZSBmbG93IEFQSSBhY3Rpb24gUE9SVF9JRA0KPiA+Pj4+IGNoYW5nZXMNCj4g Pj4+Pg0KPiA+Pj4+IEhpIE9yaSwNCj4gPj4+Pg0KPiA+Pj4+IE9uIDgvMS8yMSAzOjIzIFBNLCBP cmkgS2FtIHdyb3RlOg0KPiA+Pj4+PiBIaSBBbmRyZXcsDQo+ID4+Pj4+DQo+ID4+Pj4+IEkgdGhp bmsgYmVmb3JlIHdlIGNhbiBjaGFuZ2UgdGhlIEFQSSB3ZSBtdXN0IGFncmVlIG9uIHRoZSBtZWFu aW5nDQo+ID4+Pj4+IG9mDQo+ID4+Pj4gcmVwcmVzZW50b3IuDQo+ID4+Pj4NCj4gPj4+PiBUaGUg cXVlc3Rpb24gaXMgbm90IGRpcmVjdGx5IHJlbGF0ZWQgdG8gYSByZXByZXNlbnRvciBkZWZpbml0 aW9uLg0KPiA+Pj4+IEp1c3QgaW5kaXJlY3RseS4gUE9SVF9JRCBhY3Rpb24gbWFrZXMgc2Vuc2Ug Zm9yIG5vbi1yZXByZXNlbnRvcg0KPiA+Pj4+IHBvcnRzIGFzIHdlbGwuDQo+ID4+Pj4NCj4gPj4+ Pj4gUFNCIG1vcmUgY29tbWVudHMNCj4gPj4+Pj4NCj4gPj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4+Pj4+PiBGcm9tOiBBbmRyZXcgUnliY2hlbmtvIDxhbmRyZXcucnliY2hl bmtvQG9rdGV0bGFicy5ydT4NCj4gPj4+Pj4+IFNlbnQ6IFN1bmRheSwgQXVndXN0IDEsIDIwMjEg MzowNCBQTQ0KPiA+Pj4+Pj4gVG86IEVsaSBCcml0c3RlaW4gPGVsaWJyQG52aWRpYS5jb20+OyBO QlUtQ29udGFjdC1UaG9tYXMgTW9uamFsb24NCj4gPj4+Pj4+IDx0aG9tYXNAbW9uamFsb24ubmV0 PjsgRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsgT3JpDQo+ID4+Pj4+PiBL YW0gPG9yaWthQG52aWRpYS5jb20+DQo+ID4+Pj4+PiBDYzogZGV2QGRwZGsub3JnOyBJbHlhIE1h eGltZXRzIDxpLm1heGltZXRzQG92bi5vcmc+OyBBaml0DQo+ID4+IEtoYXBhcmRlDQo+ID4+Pj4+ PiA8YWppdC5raGFwYXJkZUBicm9hZGNvbS5jb20+OyBNYXRhbiBBenJhZA0KPiA8bWF0YW5AbnZp ZGlhLmNvbT47DQo+ID4+Pj4gSXZhbg0KPiA+Pj4+Pj4gTWFsb3YgPGl2YW4ubWFsb3ZAb2t0ZXRs YWJzLnJ1PjsgVmlhY2hlc2xhdiBHYWxha3Rpb25vdg0KPiA+Pj4+Pj4gPHZpYWNoZXNsYXYuZ2Fs YWt0aW9ub3ZAb2t0ZXRsYWJzLnJ1Pg0KPiA+Pj4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCAxLzJd IGV0aGRldjogYW5ub3VuY2UgZmxvdyBBUEkgYWN0aW9uIFBPUlRfSUQNCj4gPj4+Pj4+IGNoYW5n ZXMNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBPbiA4LzEvMjEgMTo1NyBQTSwgRWxpIEJyaXRzdGVpbiB3 cm90ZToNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IE9uIDgvMS8yMDIxIDE6MjIgUE0sIEFuZHJldyBS eWJjaGVua28gd3JvdGU6DQo+ID4+Pj4+Pj4+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBv cGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRzDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+DQo+ID4+ Pj4+Pj4+IEJ5IGl0cyB2ZXJ5IG5hbWUsIGFjdGlvbiBQT1JUX0lEIG1lYW5zIHRoYXQgcGFja2V0 cyBoaXQgYW4NCj4gPj4+Pj4+Pj4gZXRoZGV2IHdpdGggdGhlIGdpdmVuIERQREsgcG9ydCBJRC4g QXQgbGVhc3QgdGhlIGN1cnJlbnQNCj4gPj4+Pj4+Pj4gY29tbWVudHMgZG9uJ3Qgc3RhdGUgdGhl IG9wcG9zaXRlLg0KPiA+Pj4+Pj4+PiBUaGF0IHNhaWQsIHNpbmNlIHBvcnQgcmVwcmVzZW50b3Jz IGhhZCBiZWVuIGFkb3B0ZWQsDQo+ID4+Pj4+Pj4+IGFwcGxpY2F0aW9ucyBsaWtlIE92UyBoYXZl IGJlZW4gbWlzdXNpbmcgdGhlIGFjdGlvbi4gVGhleQ0KPiA+Pj4+Pj4+PiBtaXNyZWFkIGl0cyBw dXJwb3NlIGFzIHNlbmRpbmcgcGFja2V0cyB0byB0aGUgb3Bwb3NpdGUgZW5kIG9mDQo+ID4+Pj4+ Pj4+IHRoZSAid2lyZSIgcGx1Z2dlZCB0byB0aGUgZ2l2ZW4gZXRoZGV2LCBmb3IgZXhhbXBsZSwN Cj4gPj4+Pj4+Pj4gcmVkaXJlY3RpbmcgcGFja2V0cyB0byB0aGUgVkYgaXRzZWxmIHJhdGhlciB0 aGFuIHRvIGl0cyByZXByZXNlbnRvcg0KPiBldGhkZXYuDQo+ID4+Pj4+Pj4+IEFub3RoZXIgZXhh bXBsZTogT3ZTIHJlbGllcyBvbiB0aGlzIGFjdGlvbiB3aXRoIHRoZSBhZG1pbiBQRidzDQo+ID4+ Pj4+Pj4+IGV0aGRldiBwb3J0IElEIHNwZWNpZmllZCBpbiBpdCBpbiBvcmRlciB0byBzZW5kIG9m ZmxvYWRlZA0KPiA+Pj4+Pj4+PiBwYWNrZXRzIHRvIHRoZSBwaHlzaWNhbCBwb3J0Lg0KPiA+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+PiBTaW5jZSB0aGVyZSBtaWdodCBiZSBhcHBsaWNhdGlvbnMgd2hpY2gg dXNlIHRoaXMgYWN0aW9uIGluIGl0cw0KPiA+Pj4+Pj4+PiB2YWxpZCBzZW5zZSwgb25lIGNhbid0 IGp1c3QgY2hhbmdlIHRoZSBkb2N1bWVudGF0aW9uIHRvDQo+ID4+Pj4+Pj4+IGdyZWVubGlnaHQg dGhlIG9wcG9zaXRlIG1lYW5pbmcuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IFRoZSBkb2N1bWVu dGF0aW9uIG11c3QgYmUgY2xhcmlmaWVkIGFuZCBydGVfZmxvd19hY3Rpb25fcG9ydF9pZA0KPiA+ Pj4+Pj4+PiBzdHJ1Y3R1cmUgc2hvdWxkIGJlIGV4dGVuZGVkIHRvIHN1cHBvcnQgYm90aCBtZWFu aW5ncy4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEkgdGhpbmsgdGhlIG9ubHkgY2xhcmlmaWNhdGlv biBuZWVkZWQgaXMgdGhhdCBQT1JUX0lEIGFjdHMgYXMgaWYNCj4gPj4+Pj4+PiBydGVfZXRoX3R4 X2J1cnN0IGlzIGNhbGxlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcG9ydC1pZC4NCj4gPj4+Pj4+DQo+ ID4+Pj4+PiBTb3JyeSwgYnV0IEkgc3RpbGwgdGhpbmsgdGhhdCBpdCBpcyBvcHBvc2l0ZSBtZWFu aW5nIHRvIHRoZQ0KPiA+Pj4+Pj4gY3VycmVudCBkb2N1bWVudGF0aW9uIHdoaWNoIHNheXMgIkRp cmVjdHMgbWF0Y2hpbmcgdHJhZmZpYyB0byBhDQo+ID4+Pj4+PiBnaXZlbiBEUERLIHBvcnQNCj4g Pj4+PiBJRC4iDQo+ID4+Pj4+PiBTaW5jZSBpdCBoYXBwZW5zIG9uIHN3aXRjaGluZyBsZXZlbCAo dHJhbnNmZXIgcnVsZSkgInRvIGEgZ2l2ZW4NCj4gPj4+Pj4+IERQREsNCj4gPj4gcG9ydCINCj4g Pj4+Pj4+IG1lYW5zIHRoYXQgaXQgd2lsbCBiZSByZWNlaXZlZCBvbiBhIGdpdmVuIERQREsgcG9y dC4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBBbnl3YXksIHRoZSBnb2FsIG9mIHRoZSBkZXByZWNhdGlv biBub3RpY2UgaXMgdG8gaGlnaGxpZ2h0IHRoYXQNCj4gPj4+Pj4+IGl0IG11c3QgYmUgZml4ZWQg YW5kIGVuc3VyZSB0aGF0IHdlIGNhbiBjaG9vc2UgcmlnaHQgZGVjaXNpb24NCj4gPj4+Pj4+IGV2 ZW4gaWYgaXQNCj4gPj4+PiBicmVha3MgQVBJL0FCSS4NCj4gPj4+Pj4+DQo+ID4+Pj4+IEFncmVl LCBpdCBpcyBnb29kIHRoYXQgeW91IGNyZWF0ZWQgdGhlIGFubm91bmNlbWVudC4NCj4gPj4+Pg0K PiA+Pj4+IEhvcGVmdWxseSB5b3UgYWdyZWUgdGhhdCB0aGUgYXJlYSByZXF1aXJlcyBjbGFyaWZp Y2F0aW9uIGFuZCBtdXN0DQo+ID4+Pj4gYmUgaW1wcm92ZWQuIEkgdGhpbmsgc28gaG90IGRpc2N1 c3Npb25zIHJlYWxseSBwcm92ZSBpdC4NCj4gPj4+Pg0KPiA+Pj4gKzENCj4gPj4+DQo+ID4+Pj4+ IEkgdGhpbmsgd2Ugc2hvdWxkIGNvbnRpbnVlIG91ciBkaXNjdXNzaW9uIG9uIHdoYXQgaXMgYSBy ZXByZXNlbnRvci4NCj4gPj4+Pg0KPiA+Pj4+IFllcywgYnV0IGl0IGlzIGEgaGFyZCB0b3BpYy4g SSdkIGxpa2UgdG8gdW5iaW5kIFBPUlRfSUQgYWN0aW9uIGZyb20NCj4gPj4+PiB0aGUgZGlzY3Vz c2lvbiwgc2luY2UgdGhlIGFjdGlvbiBtYWtlcyBzZW5zZSBmb3Igbm9uLXJlcHJlc2VudG9ycyBh cw0KPiB3ZWxsLg0KPiA+Pj4+DQo+ID4+PiBJZiB0aGlzIGNhbiBiZSBkb25lIGdyZWF0LCBJJ20g Zm9yIGl0LCBidXQgSSdtIG5vdCBzdXJlIGl0IGNhbiBiZSwgYnV0IGxldCdzDQo+IHRyeS4NCj4g Pj4+DQo+ID4+Pj4+IEkgdGhpbmsgZm9yIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gdGhlIGRvYyBz aG91bGQgc2F5ICJkaXJlY3QgLw0KPiA+Pj4+PiBtYXRjaGVzIHRyYWZmaWMgdG8gLyBmcm9tIHRo ZSBzd2l0Y2ggcG9ydCB3aGljaCB0aGUgc2VsZWN0ZWQgRFBESw0KPiA+Pj4+PiByZXByZXNlbnRv ciBwb3J0IGlzIGNvbm5lY3RlZCB0byBvciB0byBEUERLIHBvcnQgaWYgdGhpcyBwb3J0IGlzDQo+ ID4+Pj4+IG5vdCBhDQo+ID4+Pj4gcmVwcmVzZW50b3IuIg0KPiA+Pj4+DQo+ID4+Pj4gSU1ITyBp dCBpcyBiZXR0ZXIgdG8ga2VlcCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgYWN0aW9uIHNpbXBsZSBh bmQNCj4gPj4+PiBkbyBub3QgaGF2ZSBhbnkgcmVwcmVzZW50b3Igc3BlY2lmaWNzIGluIGl0LiBS ZXByZXNlbnRvciBpcyBhbg0KPiA+Pj4+IGV0aGRldiBwb3J0LiBJZiB3ZSBkaXJlY3QgdHJhZmZp YyB0byBhbiBldGhkZXYgcG9ydCwgaXQgc2hvdWxkIGJlDQo+ID4+Pj4gcmVjZWl2ZWQgb24gdGhl IGV0aGRldiBwb3J0IHJlZ2FyZGxlc3MgaWYgaXQgaXMgYSByZXByZXNlbnRvciBvciBub3QuDQo+ ID4+Pj4gSXQgaXMgYmV0dGVyIHRvIGF2b2lkIGV4Y2VwdGlvbnMgYW5kIHNwZWNpYWwgY2FzZXMu DQo+ID4+Pj4NCj4gPj4+DQo+ID4+PiBMZXRzIHNlZSBpZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5 LCB5b3Ugc3VnZ2VzdCB0aGF0IHBvcnQgIGFjdGlvbiAvDQo+ID4+PiBpdGVtIHdpbGwgYmUgZm9y IERQREsgcG9ydCwgdW5sZXNzIHRoZXkgYXJlIG1hcmtlZCB3aXRoIHNvbWUgYml0DQo+ID4+PiB3 aGljaCBtZWFucyB0aGF0IHRoZSB0cmFmZmljIHNob3VsZCBiZSByb3V0ZWQgdG8gdGhlIHN3aXRj aCBwb3J0DQo+ID4+PiB3aGljaCB0aGUgRFBESyBwb3J0IHJlcHJlc2VudCBhbSBJIGNvcnJlY3Q/ DQo+ID4+DQo+ID4+IEhlcmUgSSdtIHRhbGtpbmcgYWJvdXQgUE9SVF9JRCBhY3Rpb24gb25seS4g QXMgZm9yIGRldGFpbHMsIEkndmUNCj4gPj4gdHJpZWQgdG8ga2VlcCBpdCBvdXQtb2Ytc2NvcGUg b2YgdGhlIGRlcHJlY2F0aW9uIG5vdGljZS4NCj4gPj4NCj4gPiArMSBidXQgd2UgbmVlZCB0byBj aGVjayBpZiB3ZSBuZWVkIGl0IGF0IGFsbCBvciBqdXN0IGNoYW5nZSBkb2MuDQo+ID4NCj4gPj4g SG93ZXZlciwgc2luY2Ugd2UgYXJlIGdvaW5nIHRvIGJyZWFrIHNvbWV0aGluZyBoZXJlLCBpdCBp cyBiZXR0ZXIgdG8NCj4gPj4gYnJlYWsgaGFyZCB0byBiZSBzdXJlIHRoYXQgZXZlcnkgc2luY2Ug dXNhZ2UgaXMgdXBkYXRlZC4gU28sIEkgdGVuZA0KPiA+PiB0byB0byBzb2x1dGlvbiBzdWdnZXN0 ZWQgYnkgSWx5YSBbMV0gd2hpY2ggaXMgc2ltaWxhciB0byBMaW51eCBrZXJuZWwuDQo+ID4+IEku ZS4gYWRkIGFuIGVudW0gd2l0aCBpbnZhbGlkIHplcm8gdmFsdWUgYW5kIHR3byBtZW1iZXJzIHRv IHNwZWNpZnkNCj4gPj4gZGlyZWN0aW9uLg0KPiA+Pg0KPiA+PiBbMV0NCj4gPj4gaHR0cHM6Ly9w YXRjaGVzLmRwZGsub3JnL3Byb2plY3QvZHBkay9wYXRjaC8yMDIxMDYwMTExMTQyMC41NTQ5LTEt DQo+ID4+IGl2YW4ubWFsb3ZAb2t0ZXRsYWJzLnJ1LyMxMzM0MzENCj4gPj4NCj4gPj4gYXMgZm9y IFBPUlRfSUQgcGF0dGVybiBpdGVtLCBJIHRoaW5rIGluZ3Jlc3MvZWdyZXNzIGF0dHJpYnV0ZXMg ZGVmaW5lDQo+ID4+IGRpcmVjdGlvbi4gSWYgaXQgaXMgYW4gaW5ncmVzcyBmbG93IHJ1bGUsIFBP UlRfSUQgaXRlbSBzaG91bGQgbWF0Y2gNCj4gPj4gdHJhZmZpYyBjb21pbmcgZnJvbSByZXByZXNl bnRlZCBlbnRpdHkgaW4gdGhlIGNhc2Ugb2YgcG9ydA0KPiA+PiByZXByZXNlbnRvciBhbmQgYXNz b2NpYXRlZCBuZXR3b3JrIHBvcnQgaW4gdGhlIGNhc2Ugb2YgZXRoZGV2IHBvcnQNCj4gPj4gYXNz b2NpYXRlZCB3aXRoIGl0LiBJbiBlZ3Jlc3MgY2FzZSBpdCBvdGhlcndpc2UgbWF0Y2hlcyB0cmFm ZmljIHNlbnQNCj4gPj4gdXNpbmcgVHggYnVyc3QgdmlhIGNvcnJlc3BvbmRpbmcgZXRoZGV2IHBv cnQuDQo+ID4+DQo+ID4gSSB0aGluayB0aGF0IEluZ3Jlc3MgZWdyZXNzIGhhcyBvbmx5IG1lYW5p bmcgd2hlbiB0YWxraW5nIGFib3V0IE5JQw0KPiA+IHN0ZWVyaW5nIGFuZCBub3QgRS1Td2l0Y2gg c3RlZXJpbmcuDQo+IA0KPiBTZWUgWzJdICAxMi4yLjIuNC4gQXR0cmlidXRlOiBUcmFuc2ZlciBs YXN0IHBhcmFncmFwaC4NCj4gDQo+IFsyXSBodHRwczovL2RvYy5kcGRrLm9yZy9ndWlkZXMvcHJv Z19ndWlkZS9ydGVfZmxvdy5odG1sI2F0dHJpYnV0ZXMNCj4gDQo+IEluIGZhY3QgSSB3YXMgZ29p bmcgdG8gc3VibWl0IG9uZSBtb3JlIGRlcHJlY2F0aW9uIG5vdGljZSBvbiB0aGUgdG9waWMgdG8N Cj4gY2xhcmlmeSBpdCwgYnV0IHJlcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgbm93IHRoaW5r IHRoYXQgaXQgaXMgZ29vZCBlbm91Z2guDQo+IA0KDQpJIHRoaW5rIHRoaXMgbmVlZHMgdG8gY2hh bmdlLCANCiIgV2hlbiB0cmFuc2ZlcnJpbmcgZmxvdyBydWxlcywgaW5ncmVzcyBhbmQgZWdyZXNz IGF0dHJpYnV0ZXMgKEF0dHJpYnV0ZTogVHJhZmZpYyBkaXJlY3Rpb24pIGtlZXAgdGhlaXIgb3Jp Z2luYWwgbWVhbmluZywgDQphcyBpZiBwcm9jZXNzaW5nIHRyYWZmaWMgZW1pdHRlZCBvciByZWNl aXZlZCBieSB0aGUgYXBwbGljYXRpb24uIg0KQnV0IGlmIHdlIHJvdXRlIHRyYWZmaWMgYmV0d2Vl biB2cG9ydHMgd2FzIGlzIHRoZSBhcHAgZGlyZWN0aW9uPw0KRm9yIGV4YW1wbGUgaWYgc2VuZGlu ZyB0cmFmZmljIGZyb20gVkYgQSB0byBWRiBCIChhcHAgaXMgb24gUEYpDQppcyBpdCBpbmdyZXNz IG9yIGVncmVzcyB0cmFmZmljPyBJZiB0aGUgZGlyZWN0aW9uIGlzIHJldmVyc2UgKEIgdG8gQSkg ZG9lcyBpdCBjaGFuZ2U/DQp3aGF0IGlmIHdlIGFyZSBzZW5kaW5nIHRyYWZmaWMgZnJvbSBWRiBB IHRvIHdpcmUgb3IgZnJvbSB3aXJlIHRvIEEgd2hhdCBpcyBpbmdyZXNzIC8gZWdyZXNzPw0KKEFz c3VtaW5nIHRoYXQgdGhlIFZGcyBhcmUgY29ubmVjdGVkIHRvIGRpZmZlcmVudCBhcHBsaWNhdGlv bi4pDQoNCg0KDQo+ID4gSSB0aGluayB0aGF0IHdlIGNhbiBqdXN0IHVzZSBvcmlnaW5hbCBiaXQg dG8gbWFyayBpZiB3ZSB3YW50IHRvIHNlbmQNCj4gPiB0cmFmZmljIHRvIERQREsgcG9ydCBvciB0 byBvdGhlciBwb3J0Lg0KPiANCj4gQXMgSSBzYXkgdGhlIHByb2JsZW0gb2YgdGhlIHNvbHV0aW9u IGlzIHRoYXQgYSBzaWxlbnQgYnJlYWthZ2UuDQo+IEl0IGlzIHR5cGljYWxseSBiYWQgc2luY2Ug IG9sZCBjb2RlIGNhbiBzaW1wbHkgbWlzdXNlIGl0Lg0KPiANCllvdSBoYXZlIGEgcG9pbnQgYnV0 IHRoZW4gbWF5YmUgd2Ugc2hvdWxkIGFsc28gZGVsZXRlIHRoaXMgYml0Lg0KQWxzbyBJIGRvbid0 IGxpa2UgdGhlIGlkZWEgdG8gYnJlYWsgYWxtb3N0IGFsbCBhcHBzIHRoYXQgYXJlIHVzaW5nIERQ REsuDQplc3BlY2lhbGx5IGlmIGl0IHdpbGwgbm90IGNhdXNlIGVycm9yIG9uIGJ1aWxkLg0KanVz dCBhZGRpbmcgbW9yZSBmaWVsZHMgd2lsbCBicmVhayB0aGUgYXBwIGxvZ2ljIG5vdCB0aGUgY29t cGlsYXRpb24gd2hpY2gNCkkgdGhpbmsgaXMgdGhlIHdvcnN0IHRoaW5nLiAobGFyZ2UgbnVtYmVy IG9mIGFwcGxpY2F0aW9uIGFyZSBiYXNlZCBvbg0KdGhlIGN1cnJlbnQgbG9naWMpDQoNCj4gPiBJ biBhbnkgY2FzZSBJIHdpbGwgYmUgaGFwcHkgaWYgd2UgY291bGQgaGF2ZSBhIG1lZXRpbmcgdG8g ZGlzY3VzcyB0aGlzDQo+ID4gYXBwcm9hY2ggYmVmb3JlIHNlbmRpbmcgeW91ciBwYXRjaC4NCj4g DQo+IFBsZWFzZSwgbGV0IHRoZSBkZXByZWNhdGlvbiBub3RpY2UgaW4uIEluIHdoYXRldmVyIGRp cmVjdGlvbiB3ZSBmaXggaXQsIHdlJ2xsDQo+IGJyZWFrIHNvbWV0aGluZyBpbiBhbnkgY2FzZSBh bmQgRFBESyB1c2VycyBtdXN0IGJlIHdhcm5lZCBpbiBhZHZhbmNlLg0KPiBXZSBlaXRoZXIgY2hh bmdlIGRlZmluaXRpb24gb2YgdGhlIGFjdGlvbiBvciBjaGFuZ2Ugc3VwcG9ydCBvZiB0aGUgYWN0 aW9uIGluDQo+IGRyaXZlcnMgKGluIGRpZmZlcmVudCB3YXlzIGluIGRpZmZlcmVudCBkcml2ZXJz KSBvciBkbyBib3RoLg0KDQpPLksuDQo+IA0KPiA+IEkgdGhpbmsgdGhpcyBjYW4gc2F2ZSBhIGxv dCBvZiB0aW1lLg0KPiANCj4gSXQgaXMgYSBnb29kIGlkZWEsIGxldCdzIHNjaGVkdWxlIHRvIHRo ZSBlbmQgb2YgQXVndXN0LiBJIGd1ZXNzIG1hbnkgb2YgdXMgaGF2ZQ0KPiB2YWNhdGlvbnMgbm93 IG9yIGluIHRoZSBuZWFyZXN0IHRpbWUuIEl0IHdpbGwgYmUgc2ltcGx5IGhhcmQgdG8gZmluZCB0 aW1lIGluIHRoZQ0KPiBuZWFyZXN0IDMgd2Vla3Mgd2hpY2ggaXMgZ29vZCBmb3IgYWxsIG9yIGF0 IGxlYXN0IG1ham9yaXR5IG9mIHVzLg0KPiANCg0KU3VyZS4NCkJlc3QsDQpPcmkNCj4gVGhhbmtz LA0KPiBBbmRyZXcuDQo+IA0KPiA+IEJlc3QsDQo+ID4gT3JpDQo+ID4NCj4gPg0KPiA+Pj4+PiBJ ZiB3ZSBnbyB0aGlzIHdheSB0aGVyZSBpcyBubyBuZWVkIHRvIGNoYW5nZSB0aGUgQVBJIG9ubHkg dGhlIGRvYy4NCj4gPj4+Pj4NCj4gPj4+Pj4+PiBSZWdhcmRpbmcgcmVwcmVzZW50b3JzLCBpdCdz IG5vdCBkaWZmZXJlbnQuIFdoZW4gdXNpbmcgVFggb24gYQ0KPiA+Pj4+Pj4+IHJlcHJlc2VudG9y IHBvcnQsIHRoZSBwYWNrZXRzIGFwcGVhciBhcyBSWCBvbiBpdHMgcmVwcmVzZW50ZWQgcG9ydC4N Cj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFBsZWFzZSBlbGFib3JhdGUgaWYgdGhlcmUgaXMgYSB1c2Ug Y2FzZSBmb3IgdGhlIFBPUlRfSUR+IGluDQo+ID4+Pj4+Pj4gd2hpY2ggdGhlIGFwcCBjYW4gZ2V0 IHRoZSBwYWNrZXRzIHVzaW5nIHJ0ZV9ldGhfcnhfYnVyc3Qgb24gdGhlDQo+ID4+Pj4+Pj4gc3Bl Y2lmaWVkDQo+ID4+Pj4gcG9ydC1pZC4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBNdWx0aS1ob21lIGhv c3Qgd2l0aCBhIE5JQyB3aXRoIHR3byBwaHlzaWNhbCBwb3J0cyBhbmQgdHdvIFBGcw0KPiA+Pj4+ Pj4gdXNlZCBieSBEUERLIGFwcCB3aXRoIGxheWVyIDMgKElQIGFkZHJlc3NlcykuIERpZmZlcmVu dCBjb3Jlcw0KPiA+Pj4+Pj4gdXNlZCB0byBoYW5kbGUgdHJhZmZpYyBmcm9tIGRpZmZlcmVudCBw b3J0cyBwbHVzIHJvdXRpbmcgaW4gRFBESw0KPiA+Pj4+Pj4gYXBwLiBJZiB0cmFmZmljIHRvIHBv cnQgIzAgSVAgYWRkcmVzcyBpcyByZWNlaXZlZCBvbiBwaHlzIHBvcnQNCj4gPj4+Pj4+ICMxLCBp dCBpcyB1c2VmdWwgdG8gcmVkaXJlY3QgdHJhZmZpYyB0byBwb3J0IElEIDAgZGlyZWN0bHkgdG8N Cj4gPj4+Pj4+IGhhdmUgdGhlc2UgcGFja2V0cyBvbiBjb3JyZWN0IENQVSBjb3JlcyBmcm9tIHRo ZSB2ZXJ5IGJlZ2lubmluZw0KPiA+Pj4+Pj4gdG8gYXZvaWQgU1cNCj4gPj4+PiBtZWNoYW5pc21z IHRvIHBhc3MgZnJvbSBwb3J0ICMxIENQVSBjb3JlcyB0byBwb3J0ICMwIENQVSBjb3Jlcy4NCj4g Pj4+Pj4+DQo+ID4+Pj4+IFRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgeW91IGFyZSB0YWxraW5n IGFib3V0IGEgRFBESyBhcHBsaWNhdGlvbg0KPiA+Pj4+PiB0aGF0IGlzIGNvbm5lY3RlZCB0byBu dW1iZXIgb2YgcG9ydHMgYW5kIGl0IGlzIEVzd2l0Y2ggbWFuYWdlciwNCj4gPj4+Pj4gYnV0IGl0 IGRvZXNuJ3QgdXNlIHJlcHJlc2VudG9ycyBidXQgdGhlIGFjdHVhbCBwb3J0cywgcmlnaHQ/DQo+ ID4+Pj4+IEkgdGhpbmsgdGhlIGRlZmluaXRpb24gSSB3cm90ZSBhYm92ZSBhbHNvIHdvcmtzIGZv ciB0aGlzIGNhc2UuDQo+ID4+Pj4NCj4gPj4+PiBPdGhlciBwb3NzaWJsZSByZXF1ZXN0IGlzIHRv IGRpcmVjdCB0cmFmZmljIGZyb20gcGh5cyBwb3J0ICMwIHRvDQo+ID4+Pj4gcGh5cyBwb3J0ICMx IGRpcmVjdGx5IGFuZCBzYXkgaXQgaW4gdGVybXMgb2YgUE9SVF9JRCBhY3Rpb24uDQo+ID4+Pj4N Cj4gPj4+IEJ1dCB3ZSBhcmUgdGFsa2luZyB1c2luZyB0aGUgc3dpdGNoIGxheWVyKHRyYW5zZmVy IG1vZGUpIHJpZ2h0Pw0KPiA+Pg0KPiA+PiBZZXMuDQo+ID4+DQo+ID4+PiBCZXN0LA0KPiA+Pj4g T3JpDQo+ID4+Pj4gVGhhbmtzLA0KPiA+Pj4+IEFuZHJldy4NCj4gPj4+Pg0KPiA+Pj4+PiBCZXN0 LA0KPiA+Pj4+PiBPcmkNCj4gPj4+Pj4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gU2lnbmVkLW9m Zi1ieTogQW5kcmV3IFJ5YmNoZW5rbw0KPiA+PiA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMu cnU+DQo+ID4+Pj4+Pj4+IC0tLQ0KPiA+Pj4+Pj4+PiAgICDCoCBkb2MvZ3VpZGVzL3JlbF9ub3Rl cy9kZXByZWNhdGlvbi5yc3QgfCA1ICsrKysrDQo+ID4+Pj4+Pj4+ICAgIMKgIDEgZmlsZSBjaGFu Z2VkLCA1IGluc2VydGlvbnMoKykNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gZGlmZiAtLWdpdCBh L2RvYy9ndWlkZXMvcmVsX25vdGVzL2RlcHJlY2F0aW9uLnJzdA0KPiA+Pj4+Pj4+PiBiL2RvYy9n dWlkZXMvcmVsX25vdGVzL2RlcHJlY2F0aW9uLnJzdA0KPiA+Pj4+Pj4+PiBpbmRleCBkOWMwZTY1 OTIxLi42ZTY0MTNjODlmIDEwMDY0NA0KPiA+Pj4+Pj4+PiAtLS0gYS9kb2MvZ3VpZGVzL3JlbF9u b3Rlcy9kZXByZWNhdGlvbi5yc3QNCj4gPj4+Pj4+Pj4gKysrIGIvZG9jL2d1aWRlcy9yZWxfbm90 ZXMvZGVwcmVjYXRpb24ucnN0DQo+ID4+Pj4+Pj4+IEBAIC0xNTgsMyArMTU4LDggQEAgRGVwcmVj YXRpb24gTm90aWNlcw0KPiA+Pj4+Pj4+PiAgICDCoCAqIHNlY3VyaXR5OiBUaGUgZnVuY3Rpb25z IGBgcnRlX3NlY3VyaXR5X3NldF9wa3RfbWV0YWRhdGFgYCBhbmQNCj4gPj4+Pj4+Pj4gICAgwqDC oMKgIGBgcnRlX3NlY3VyaXR5X2dldF91c2VyZGF0YWBgIHdpbGwgYmUgbWFkZSBpbmxpbmUNCj4g Pj4+Pj4+Pj4gZnVuY3Rpb25zIGFuZCBhZGRpdGlvbmFsDQo+ID4+Pj4+Pj4+ICAgIMKgwqDCoCBm bGFncyB3aWxsIGJlIGFkZGVkIGluIHN0cnVjdHVyZSBgYHJ0ZV9zZWN1cml0eV9jdHhgYCBpbiBE UERLDQo+IDIxLjExLg0KPiA+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+ICsqIGV0aGRldjogRGVmaW5p dGlvbiBvZiB0aGUgZmxvdyBBUEkgYWN0aW9uIFBPUlRfSUQgaXMNCj4gPj4+Pj4+Pj4gK2FtYmln dW91cyBhbmQNCj4gPj4+Pj4+Pj4gbmVlZHMNCj4gPj4+Pj4+Pj4gK8KgIGNsYXJpZmljYXRpb24u IFN0cnVjdHVyZSBydGVfZmxvd19hY3Rpb25fcG9ydF9pZCB3aWxsIGJlDQo+ID4+Pj4+Pj4+ICtl eHRlbmRlZCB0bw0KPiA+Pj4+Pj4+PiArwqAgc3BlY2lmeSB0cmFmZmljIGRpcmVjdGlvbiB0byBy ZXByZXNlbnRlZCBlbnRpdHkgb3IgZXRoZGV2DQo+ID4+Pj4+Pj4+ICtwb3J0DQo+ID4+Pj4+Pj4+ IGl0c2VsZiBpbg0KPiA+Pj4+Pj4+PiArwqAgRFBESyAyMS4xMS4NCj4gPj4+Pj4+Pj4gLS0NCj4g Pj4+Pj4+Pj4gMi4zMC4yDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+DQo+ID4+Pg0KPiA+DQoNCg==