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 56DEDA054A; Wed, 7 Sep 2022 09:04:42 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EFFE9400D6; Wed, 7 Sep 2022 09:04:41 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 41B6340042 for ; Wed, 7 Sep 2022 09:04:40 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 2875Zx4w029981; Wed, 7 Sep 2022 00:02:33 -0700 Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam04lp2045.outbound.protection.outlook.com [104.47.74.45]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3jen9wr9a3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 07 Sep 2022 00:02:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ScwkwbCBd98j4X1fLuxstTNWouhyUZqEDtwB/YjPIX8PFdU03lxT4z3XRCB7vzl/gAyK1y62bWJqcH/Id/vW3X0QnKWuDdgD/8/NJMOcbcVh60c6iMt7D90ALM6i1rSz1MhY3H3oA5PHna8vFVCk5rrStEK9PoPGVD7e4QW30QU/VoFxwX7wdnJUUb9t17Q288aJKNYgHz8lu0IpscOG08GsmQHaIBifnq5Ti26WlaM6CWq9Tig46Pac1GlcbYFhgDBEMp/pweorg/MlNbIdDBbihh6EaIKoJvZYDl2uQnyY1/kXAXGQMlU3wSAMYxEVT3YFA55OOWuFt/graZxY8A== 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=/5eu1GPh8ld0L+vNYFLOm52Aebl/r+13S9uFeWxOYCE=; b=XIaEFqFcjeWHHQAlmvLXUjkFMYZO7fnBVLmX7ktKLUyp5keRSdJsxAoODLzh9wICoDpfgFS8K5jo3WgnAUj2sNoHkrNBAhFmj5LOm15IwqHJYwzr/riSl8dggOve2gNrkMt7KTvlYRTNvTD8mYEYydpj7a9EJ2zQalAzFgMfUULB6sDpyBeQMn1DIBB2aIXT6kfiJ3FaH+1TgDMqoRBZ0aOi2FZWWUSoY9+jr7OgSUq6hoGaxT8TNDi7sHh3PCEc8D5MGggi2vmt+K3xyH+84ZRhxpCgnvmWntw+llZI8R9dESMRSzMvK4d3zfmw+iNtlgBYGAlo5dAinq/YdB4/cw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/5eu1GPh8ld0L+vNYFLOm52Aebl/r+13S9uFeWxOYCE=; b=KbyPsLyXjLtvF1UNTW4ixzA0JAy9Qu4bMQKY8LEodLKSA26XnwscwpESzRaXILboj5JA42iXa8S5QgRpVAPtJolTbNPVbGacibcDmnJjV9wGXfrQ5DghpEKFPW2HzgI5/c/O8Prg3Jz3M88aIebVd7WrYzGDv4iu5XLdUse6Jao= Received: from PH0PR18MB4750.namprd18.prod.outlook.com (2603:10b6:510:cd::11) by BN8PR18MB3779.namprd18.prod.outlook.com (2603:10b6:408:a7::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.18; Wed, 7 Sep 2022 07:02:31 +0000 Received: from PH0PR18MB4750.namprd18.prod.outlook.com ([fe80::a03c:8f55:3d23:6c48]) by PH0PR18MB4750.namprd18.prod.outlook.com ([fe80::a03c:8f55:3d23:6c48%3]) with mapi id 15.20.5612.015; Wed, 7 Sep 2022 07:02:30 +0000 From: Hanumanth Reddy Pothula To: Ferruh Yigit , "Ding, Xuan" , Thomas Monjalon , Andrew Rybchenko CC: "dev@dpdk.org" , "Wu, WenxuanX" , "Li, Xiaoyun" , "stephen@networkplumber.org" , "Wang, YuanX" , "mdr@ashroe.eu" , "Zhang, Yuying" , "Zhang, Qi Z" , "viacheslavo@nvidia.com" , Jerin Jacob Kollanukkaran , Nithin Kumar Dabilpuram Subject: RE: [EXT] Re: [PATCH v2 1/3] ethdev: introduce pool sort capability Thread-Topic: [EXT] Re: [PATCH v2 1/3] ethdev: introduce pool sort capability Thread-Index: AQHYrnCMDyPkZ/Wts0iubYwzR+1tZq27420AgAJddwCACL4lQIALeYSAgAEwFBA= Date: Wed, 7 Sep 2022 07:02:30 +0000 Message-ID: References: <20220812104648.1019978-1-hpothula@marvell.com> <20220812172451.1208933-1-hpothula@marvell.com> <76e4091d-4037-ef5b-377f-7daa183e27d3@xilinx.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR18MB4750:EE_|BN8PR18MB3779:EE_ x-ms-office365-filtering-correlation-id: 3bfa521a-e901-4135-e412-08da909eee96 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nk7GiLOlH25K7PnrL2OKLs0ix9lhoD859W98WXd3L01pbFBWNi8R65WpD1Z7Ge1scujG/ehpHeUMMIBeVy4QS8GuFyMkl2Hg2Ep69DIUxPivFx4NFSeZdf5rEKHMcwWxHhTSiaCFlT+lx77/Vg5g4KcthBxBTv8UuaRZVhBICrn+LaTvJl2Bj3qVtJqwVm+NI7X1zBENTftZ+a7PrtnS1eZXrcMeQP4Rv3hH130NihWtAnUBqhD1QoNqJCHj3zdADBwKFM2zHJqSefqUmDGxXp107as2F3cGvbWV511w28FHYeLhsAmx/XW+pKL0IBrhIhKjSYmdU/CkjWsaIAZ1P/EZ8leORxSI8757iODFozdKkFlh25lDEsF0SpX/aRl/Zh3juP+x+R43SYqjkW7EJvyuZFQohW99pgTxyTa17fDLg1r+9MCp5fteGD3KKCCF3uCeFtIh/pC7/g3Jmr5q0l+oc2ZUe8XH9288k6N4AkPH1PHjDQkmF1LI4+KIQjiG14mOlbiBdRfCxlsYVdIBJ2rrmVkB2hsLtQWEMad/9yqtW5Bmd5NIv3lpqFYQob4RWBottqcJtMmnK4jU34COR17+UqDmQeztOPHwOo3lsfB8RpPNfzdVBx/njDmPgJrNJ2D30kWy/ouoRWON6qn4l4gQp8FaB5IqabewRi6UOajBKy9DwHMd9GM4Pzto/dMRozOR2RK4miFMLiB0viuATYFflC40blmwo5FY6CMb2kbmCH/ZJRheRr8mREhzPVqesb+tkV1WhDlRUFBO267VKw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR18MB4750.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(136003)(396003)(366004)(346002)(39860400002)(376002)(316002)(5660300002)(66556008)(83380400001)(66446008)(110136005)(4326008)(54906003)(66476007)(7416002)(76116006)(52536014)(66946007)(64756008)(8936002)(8676002)(2906002)(33656002)(55016003)(478600001)(71200400001)(26005)(41300700001)(9686003)(86362001)(186003)(107886003)(53546011)(38070700005)(6506007)(7696005)(122000001)(38100700002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TThRRUo5TnZ2NmZTZ2N1c2s1a2RoM1kya1kyQzVmdEhtcWRIMzM3Tzl1RkN6?= =?utf-8?B?aWl5Z0JzMVFwUDlKaW9RaGd3aHVmL0c0NHI2YmNDOEpQcElpZm5wbVdIRTZK?= =?utf-8?B?TDI5NXpxSlZkUTdUNXNELzgxZ29vMWlPaUNvYldZSGkvclMwQ1NCenUyRnFH?= =?utf-8?B?TFpEZzhLNjdPd0xQRnpWYnF5cEtuRjlnMGdlcVMvd29FcjJ0VXJwMGtzak5a?= =?utf-8?B?QjgzVGJWUnJZaUp1c3lHM04rL2VFZ2VOVlJiUWYzblFwQU9UTDRScWJOb2J1?= =?utf-8?B?UFVUVDJlcERMNE9RVnArVTZOK0R5WE54VUgySThlZUJsTzJCa3pJYlM0QXNB?= =?utf-8?B?SEp5eTA5Yjl1Z3BubDk3SG90bFVaYnJIL2hQbzhlKzMvNE1PK05rTDZreUlV?= =?utf-8?B?bm15bVZRdCtacDFoSHJvM0x2UG1iNklWdmdvNjd2RCtKc2ZZM3ZEOWg3dDRV?= =?utf-8?B?RU5KSEdya3dtSldjdzQ3SVcyazRjZ1RKbEp4MExxaXdQbWxteE4vdCsrcUN5?= =?utf-8?B?NWFMazhxd1psYWxVQ0N6Tm9QdG9LVjcxVWIvNnQyWXQ5N1drOUdZdE9sekFm?= =?utf-8?B?ZkNzd1AwbmJCMHRKdmZzdGFWYVJuckZDMERSZFZ4U3AvMnI5S0ExQzZQWVhz?= =?utf-8?B?UFZ1aW5YVFhtdEc5ZGg5SmJVUzRVaXlLRjV1UExIajJwSUVSSzJUSElRN2Zr?= =?utf-8?B?SEUvcW5hbHo2V25FTWNGZnRZZm9nSjd2NkxYSG5BU0dWT2xJcUZPQjNqcDBC?= =?utf-8?B?c2xTbXI0Z3ppYVIvY2oyWGpOT3VCeWRRcFA2aUNzVVN3Qm15OEhIa2xtVEsz?= =?utf-8?B?YWdEOXNLQUl0RmhVOHptTXdQTDBPVkJ5cWxTYkFkanVsOXZmQjE2cEszeDhF?= =?utf-8?B?MFZPTXp0TWYzaWd0RE52dmFpallFWEhOd3UrelgzZGo4a3JLc2M2NUxqeWN5?= =?utf-8?B?Q0lJWXoxb3lZeGFLbitRMXdrUVVBYzMxRG1RMUc0ZkFPajg1UVFWSEt5ZTVy?= =?utf-8?B?ck5JaTVrMmp3TmF2MTBXbFp4RU5raytrK0g5ZHBIazlLeFNqSkt2SGFxN1F1?= =?utf-8?B?czRwMmp2Mlp5ODF5UVlHTitxRkx5dTBOVWYzWEdPM0ZTZzZ6d2p6L2t1RWts?= =?utf-8?B?cjZ2a3hhMVVYbmRHdlRneDRtcmIySldwYnlRSjJ0MXFqRTZNclU0NlhCT0Jy?= =?utf-8?B?TDBEdGEwbWJ0ZDJyOXJBOU0wcmpzUEF6anprRFFnQUg1R1pzb3VlSGtaeVZD?= =?utf-8?B?TkpBVzR5YzFKZmlVNjYxc0tzYmxzbkJWR2Q4VjZtNU1XZ0Z4YjFZbDB5V0tZ?= =?utf-8?B?Y1VwN3RKbjkrTFZMTXlmbS9jMU5VOVVxZEw3clI1K0hyVlpRNHFxV0VkVjJn?= =?utf-8?B?UENxQnN0b2tXUURFVWUxdk1KM0tXeENBM0FqZ1BPWitCSldJTlJzZmRIZllm?= =?utf-8?B?NXNrcEpMMGJJNEJ1UGhicWdhb3dMdk1vbHNPODhWcXhvSElORWtLZ0tkeGN5?= =?utf-8?B?QnEyVVBScU1DT1ZUS3JBbFBsVFhQazdEZnkyaUJvSDBYcE14KzVOUEduaEFB?= =?utf-8?B?T3FjcHB1TjA4SzMzcFJEQU5nQW1CK1JiSHQycnN3ZzdTcGxOU25TYUh5UmxT?= =?utf-8?B?VkUrSHlvbUFQWDEyUk0zcitoMVpoazRBUjhzS01NWERUZTdGYmJxc3J5Nkti?= =?utf-8?B?TDFXNmoybmplS0N0YWJtRk1ONWZFL0huMGdDS0gzbDdjSnhlMk05Y0JRQ1VL?= =?utf-8?B?OU0xOUFaUmN2VURMUHdiMkhDazY3dFNTbVBYQ2JReVhhVEU4T055akJTYXpm?= =?utf-8?B?dXZ4YUM0SmNIRXU2OVlJRXRJekord1NBZkd0RDBEVHJqUFpoQUw0VkxtSzhR?= =?utf-8?B?UEhNOGNXSVlwaXFWWDhWZkJCaVpYcUkvcldscERsaVdleTdTU0ltbEV3ZWJk?= =?utf-8?B?Nm4rNjh2N2VwT01oYmE3bjNDdFJMVGxDUnFoaCtSVWt0MStBNUY2RURoYW9t?= =?utf-8?B?bytJd204cTlVY0w1Z0VGTjEzZkdhalJoYktDUG45QmducHEremcwM0VvM01s?= =?utf-8?B?bU5KTU52VXFpRzl6bXFVZ3cyaENpYTh2cDFTWUFFOE1CYWdCd3dCRDVxQU5q?= =?utf-8?Q?CN2IOkV2ow0aNvlvkxuLfYHCu?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR18MB4750.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3bfa521a-e901-4135-e412-08da909eee96 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Sep 2022 07:02:30.8288 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: P4qt6sS+1v8/KFPUzaHa4njOkdjC5Twruki9p3rDdeIDAxhszE5khk7r95+bRswfUEMb8apb9Rb3HfDT+1VZvw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR18MB3779 X-Proofpoint-ORIG-GUID: WC6jcIHivkP-bcFieeWJtHI06G3AbcVI X-Proofpoint-GUID: WC6jcIHivkP-bcFieeWJtHI06G3AbcVI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.528,FMLib:17.11.122.1 definitions=2022-09-07_04,2022-09-06_02,2022-06-22_01 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAeGlsaW54LmNvbT4NCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDYsIDIw MjIgNTo0OCBQTQ0KPiBUbzogSGFudW1hbnRoIFJlZGR5IFBvdGh1bGEgPGhwb3RodWxhQG1hcnZl bGwuY29tPjsgRGluZywgWHVhbg0KPiA8eHVhbi5kaW5nQGludGVsLmNvbT47IFRob21hcyBNb25q YWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IEFuZHJldw0KPiBSeWJjaGVua28gPGFuZHJldy5y eWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiBDYzogZGV2QGRwZGsub3JnOyBXdSwgV2VueHVhblgg PHdlbnh1YW54Lnd1QGludGVsLmNvbT47IExpLCBYaWFveXVuDQo+IDx4aWFveXVuLmxpQGludGVs LmNvbT47IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnOyBXYW5nLCBZdWFuWA0KPiA8eXVhbngu d2FuZ0BpbnRlbC5jb20+OyBtZHJAYXNocm9lLmV1OyBaaGFuZywgWXV5aW5nDQo+IDx5dXlpbmcu emhhbmdAaW50ZWwuY29tPjsgWmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsNCj4g dmlhY2hlc2xhdm9AbnZpZGlhLmNvbTsgSmVyaW4gSmFjb2IgS29sbGFudWtrYXJhbiA8amVyaW5q QG1hcnZlbGwuY29tPjsNCj4gTml0aGluIEt1bWFyIERhYmlscHVyYW0gPG5kYWJpbHB1cmFtQG1h cnZlbGwuY29tPg0KPiBTdWJqZWN0OiBSZTogW0VYVF0gUmU6IFtQQVRDSCB2MiAxLzNdIGV0aGRl djogaW50cm9kdWNlIHBvb2wgc29ydCBjYXBhYmlsaXR5DQo+IA0KPiBPbiA4LzMwLzIwMjIgMTow OCBQTSwgSGFudW1hbnRoIFJlZGR5IFBvdGh1bGEgd3JvdGU6DQo+ID4NCj4gPg0KPiA+PiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBGZXJydWggWWlnaXQgPGZlcnJ1aC55 aWdpdEB4aWxpbnguY29tPg0KPiA+PiBTZW50OiBXZWRuZXNkYXksIEF1Z3VzdCAyNCwgMjAyMiA5 OjA0IFBNDQo+ID4+IFRvOiBEaW5nLCBYdWFuIDx4dWFuLmRpbmdAaW50ZWwuY29tPjsgSGFudW1h bnRoIFJlZGR5IFBvdGh1bGENCj4gPj4gPGhwb3RodWxhQG1hcnZlbGwuY29tPjsgVGhvbWFzIE1v bmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsNCj4gQW5kcmV3DQo+ID4+IFJ5YmNoZW5rbyA8 YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+ID4+IENjOiBkZXZAZHBkay5vcmc7IFd1 LCBXZW54dWFuWCA8d2VueHVhbngud3VAaW50ZWwuY29tPjsgTGksIFhpYW95dW4NCj4gPj4gPHhp YW95dW4ubGlAaW50ZWwuY29tPjsgc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7IFdhbmcsIFl1 YW5YDQo+ID4+IDx5dWFueC53YW5nQGludGVsLmNvbT47IG1kckBhc2hyb2UuZXU7IFpoYW5nLCBZ dXlpbmcNCj4gPj4gPHl1eWluZy56aGFuZ0BpbnRlbC5jb20+OyBaaGFuZywgUWkgWiA8cWkuei56 aGFuZ0BpbnRlbC5jb20+Ow0KPiA+PiB2aWFjaGVzbGF2b0BudmlkaWEuY29tOyBKZXJpbiBKYWNv YiBLb2xsYW51a2thcmFuDQo+ID4+IDxqZXJpbmpAbWFydmVsbC5jb20+OyBOaXRoaW4gS3VtYXIg RGFiaWxwdXJhbQ0KPiA+PiA8bmRhYmlscHVyYW1AbWFydmVsbC5jb20+DQo+ID4+IFN1YmplY3Q6 IFtFWFRdIFJlOiBbUEFUQ0ggdjIgMS8zXSBldGhkZXY6IGludHJvZHVjZSBwb29sIHNvcnQNCj4g Pj4gY2FwYWJpbGl0eQ0KPiA+Pg0KPiA+PiBFeHRlcm5hbCBFbWFpbA0KPiA+Pg0KPiA+PiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPj4gLQ0KPiA+DQo+ID4NCj4gPiBUaGFua3MgRGluZyBYdWFuIGFuZCBGZXJy dWggWWlnaXQgZm9yIHJldmlld2luZyB0aGUgY2hhbmdlcyBhbmQgZm9yIHByb3ZpZGluZw0KPiB5 b3VyIHZhbHVhYmxlIGZlZWRiYWNrLg0KPiA+IFBsZWFzZSBmaW5kIHJlc3BvbnNlcyBpbmxpbmUu DQo+ID4NCj4gPj4gT24gOC8yMy8yMDIyIDQ6MjYgQU0sIERpbmcsIFh1YW4gd3JvdGU6DQo+ID4+ PiBIaSBIYW51bWFudGgsDQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4+Pj4gRnJvbTogSGFudW1hbnRoIFBvdGh1bGEgPGhwb3RodWxhQG1hcnZlbGwuY29tPg0K PiA+Pj4+IFNlbnQ6IFNhdHVyZGF5LCBBdWd1c3QgMTMsIDIwMjIgMToyNSBBTQ0KPiA+Pj4+IFRv OiBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+OyBGZXJydWggWWlnaXQNCj4g Pj4+PiA8ZmVycnVoLnlpZ2l0QHhpbGlueC5jb20+OyBBbmRyZXcgUnliY2hlbmtvDQo+ID4+Pj4g PGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+Pj4+IENjOiBkZXZAZHBkay5vcmc7 IERpbmcsIFh1YW4gPHh1YW4uZGluZ0BpbnRlbC5jb20+OyBXdSwgV2VueHVhblgNCj4gPj4+PiA8 d2VueHVhbngud3VAaW50ZWwuY29tPjsgTGksIFhpYW95dW4gPHhpYW95dW4ubGlAaW50ZWwuY29t PjsNCj4gPj4+PiBzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZzsgV2FuZywgWXVhblggPHl1YW54 LndhbmdAaW50ZWwuY29tPjsNCj4gPj4+PiBtZHJAYXNocm9lLmV1OyBaaGFuZywgWXV5aW5nIDx5 dXlpbmcuemhhbmdAaW50ZWwuY29tPjsgWmhhbmcsIFFpIFoNCj4gPj4+PiA8cWkuei56aGFuZ0Bp bnRlbC5jb20+OyB2aWFjaGVzbGF2b0BudmlkaWEuY29tOyBqZXJpbmpAbWFydmVsbC5jb207DQo+ ID4+Pj4gbmRhYmlscHVyYW1AbWFydmVsbC5jb207IEhhbnVtYW50aCBQb3RodWxhIDxocG90aHVs YUBtYXJ2ZWxsLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBbUEFUQ0ggdjIgMS8zXSBldGhkZXY6IGlu dHJvZHVjZSBwb29sIHNvcnQgY2FwYWJpbGl0eQ0KPiA+Pj4+DQo+ID4+Pj4gUHJlc2VudGx5LCB0 aGUgJ0J1ZmZlciBTcGxpdCcgZmVhdHVyZSBzdXBwb3J0cyBzZW5kaW5nIG11bHRpcGxlDQo+ID4+ Pj4gc2VnbWVudHMgb2YgdGhlIHJlY2VpdmVkIHBhY2tldCB0byBQTUQsIHdoaWNoIHByb2dyYW1z IHRoZSBIVyB0bw0KPiA+Pj4+IHJlY2VpdmUgdGhlIHBhY2tldCBpbiBzZWdtZW50cyBmcm9tIGRp ZmZlcmVudCBwb29scy4NCj4gPj4+Pg0KPiA+Pj4+IFRoaXMgcGF0Y2ggZXh0ZW5kcyB0aGUgZmVh dHVyZSB0byBzdXBwb3J0IHRoZSBwb29sIHNvcnQgY2FwYWJpbGl0eS4NCj4gPj4+PiBTb21lIG9m IHRoZSBIVyBoYXMgc3VwcG9ydCBmb3IgY2hvb3NpbmcgbWVtb3J5IHBvb2xzIGJhc2VkIG9uIHRo ZQ0KPiA+Pj4+IHBhY2tldCdzIHNpemUuIFRoZSBwb29sIHNvcnQgY2FwYWJpbGl0eSBhbGxvd3Mg UE1EIHRvIGNob29zZSBhDQo+ID4+Pj4gbWVtb3J5IHBvb2wgYmFzZWQgb24gdGhlIHBhY2tldCdz IGxlbmd0aC4NCj4gPj4+Pg0KPiA+Pj4+IFRoaXMgaXMgb2Z0ZW4gdXNlZnVsIGZvciBzYXZpbmcg dGhlIG1lbW9yeSB3aGVyZSB0aGUgYXBwbGljYXRpb24NCj4gPj4+PiBjYW4gY3JlYXRlIGEgZGlm ZmVyZW50IHBvb2wgdG8gc3RlZXIgdGhlIHNwZWNpZmljIHNpemUgb2YgdGhlDQo+ID4+Pj4gcGFj a2V0LCB0aHVzIGVuYWJsaW5nIGVmZmVjdGl2ZSB1c2Ugb2YgbWVtb3J5Lg0KPiA+Pj4+DQo+ID4+ Pj4gRm9yIGV4YW1wbGUsIGxldCdzIHNheSBIVyBoYXMgYSBjYXBhYmlsaXR5IG9mIHRocmVlIHBv b2xzLA0KPiA+Pj4+ICAgIC0gcG9vbC0xIHNpemUgaXMgMksNCj4gPj4+PiAgICAtIHBvb2wtMiBz aXplIGlzID4gMksgYW5kIDwgNEsNCj4gPj4+PiAgICAtIHBvb2wtMyBzaXplIGlzID4gNEsNCj4g Pj4+PiBIZXJlLA0KPiA+Pj4+ICAgICAgICAgICBwb29sLTEgY2FuIGFjY29tbW9kYXRlIHBhY2tl dHMgd2l0aCBzaXplcyA8IDJLDQo+ID4+Pj4gICAgICAgICAgIHBvb2wtMiBjYW4gYWNjb21tb2Rh dGUgcGFja2V0cyB3aXRoIHNpemVzID4gMksgYW5kIDwgNEsNCj4gPj4+PiAgICAgICAgICAgcG9v bC0zIGNhbiBhY2NvbW1vZGF0ZSBwYWNrZXRzIHdpdGggc2l6ZXMgPiA0Sw0KPiA+Pj4+DQo+ID4+ Pj4gV2l0aCBwb29sIHNvcnQgY2FwYWJpbGl0eSBlbmFibGVkIGluIFNXLCBhbiBhcHBsaWNhdGlv biBtYXkgY3JlYXRlDQo+ID4+Pj4gdGhyZWUgcG9vbHMgb2YgZGlmZmVyZW50IHNpemVzIGFuZCBz ZW5kIHRoZW0gdG8gUE1ELiBBbGxvd2luZyBQTUQNCj4gPj4+PiB0byBwcm9ncmFtIEhXIGJhc2Vk IG9uIHBhY2tldCBsZW5ndGhzLiBTbyB0aGF0IHBhY2tldHMgd2l0aCBsZXNzDQo+ID4+Pj4gdGhh biAySyBhcmUgcmVjZWl2ZWQgb24gcG9vbC0xLCBwYWNrZXRzIHdpdGggbGVuZ3RocyBiZXR3ZWVu IDJLIGFuZA0KPiA+Pj4+IDRLIGFyZSByZWNlaXZlZCBvbiBwb29sLTIgYW5kIGZpbmFsbHkgcGFj a2V0cyBncmVhdGVyIHRoYW4gNEsgYXJlDQo+ID4+Pj4gcmVjZWl2ZWQgb24gcG9vbC0NCj4gPj4g My4NCj4gPj4+Pg0KPiA+Pj4+IFRoZSBmb2xsb3dpbmcgdHdvIGNhcGFiaWxpdGllcyBhcmUgYWRk ZWQgdG8gdGhlIHJ0ZV9ldGhfcnhzZWdfY2FwYQ0KPiA+Pj4+IHN0cnVjdHVyZSwgMS4gcG9vbF9z b3J0IC0tPiB0ZWxscyBwb29sIHNvcnQgY2FwYWJpbGl0eSBpcyBzdXBwb3J0ZWQgYnkgSFcuDQo+ ID4+Pj4gMi4gbWF4X25wb29sIC0tPiBtYXggbnVtYmVyIG9mIHBvb2xzIHN1cHBvcnRlZCBieSBI Vy4NCj4gPj4+Pg0KPiA+Pj4+IERlZmluZWQgbmV3IHN0cnVjdHVyZSBydGVfZXRoX3J4c2VnX3Nv cnQsIHRvIGJlIHVzZWQgb25seSB3aGVuIHBvb2wNCj4gPj4+PiBzb3J0IGNhcGFiaWxpdHkgaXMg cHJlc2VudC4gSWYgcmVxdWlyZWQgdGhpcyBtYXkgYmUgZXh0ZW5kZWQNCj4gPj4+PiBmdXJ0aGVy IHRvIHN1cHBvcnQgbW9yZSBjb25maWd1cmF0aW9ucy4NCj4gPj4+Pg0KPiA+Pj4+IFNpZ25lZC1v ZmYtYnk6IEhhbnVtYW50aCBQb3RodWxhIDxocG90aHVsYUBtYXJ2ZWxsLmNvbT4NCj4gPj4+Pg0K PiA+Pj4+IHYyOg0KPiA+Pj4+ICAgIC0gQWxvbmcgd2l0aCBzcGVjIGNoYW5nZXMsIHVwbG9hZGlu ZyB0ZXN0cG1kIGFuZCBkcml2ZXIgY2hhbmdlcy4NCj4gPj4+DQo+ID4+PiBUaGFua3MgZm9yIEND aW5nLiBJdCdzIGFuIGludGVyZXN0aW5nIGZlYXR1cmUuDQo+ID4+Pg0KPiA+Pj4gQnV0IEkgaGF2 ZSBvbmUgcXVlc3Rpb24gaGVyZToNCj4gPj4+IEJ1ZmZlciBzcGxpdCBpcyBmb3Igc3BsaXQgcmVj ZWl2aW5nIHBhY2tldHMgaW50byBtdWx0aXBsZSBzZWdtZW50cywNCj4gPj4+IHdoaWxlIHBvb2wg c29ydCBzdXBwb3J0cyBQTUQgdG8gcHV0IHRoZSByZWNlaXZpbmcgcGFja2V0cyBpbnRvDQo+ID4+ PiBkaWZmZXJlbnQgcG9vbHMNCj4gPj4gYWNjb3JkaW5nIHRvIHBhY2tldCBzaXplLg0KPiA+Pj4g RXZlcnkgcGFja2V0IGlzIHN0aWxsIGludGFjdC4NCj4gPj4+DQo+ID4+PiBTbywgYXQgdGhpcyBs ZXZlbCwgcG9vbCBzb3J0IGRvZXMgbm90IGJlbG9uZyB0byBidWZmZXIgc3BsaXQuDQo+ID4+PiBB bmQgeW91IGFscmVhZHkgdXNlIGEgZGlmZmVyZW50IGZ1bmN0aW9uIHRvIGNoZWNrIHBvb2wgc29y dCByYXRoZXINCj4gPj4+IHRoYW4gY2hlY2sNCj4gPj4gYnVmZmVyIHNwbGl0Lg0KPiA+Pj4NCj4g Pj4+IFNob3VsZCBhIG5ldyBSWCBvZmZsb2FkIGJlIGludHJvZHVjZWQ/IGxpa2UNCj4gPj4gIlJU RV9FVEhfUlhfT0ZGTE9BRF9QT09MX1NPUlQiLg0KPiA+Pj4NCj4gPiBQbGVhc2UgZmluZCBteSBy ZXNwb25zZSBiZWxvdy4NCj4gPj4NCj4gPj4gSGkgSGFudW1hbnRoLA0KPiA+Pg0KPiA+PiBJIGhh ZCB0aGUgc2ltaWxhciBjb25jZXJuIHdpdGggdGhlIGZlYXR1cmUuIEkgYXNzdW1lIHlvdSB3YW50 IHRvDQo+ID4+IGJlbmVmaXQgZnJvbSBleGl0aW5nIGNvbmZpZyBzdHJ1Y3R1cmUgdGhhdCBnZXRz IG11bHRpcGxlIG1lbXBvb2wgYXMNCj4gPj4gYXJndW1lbnQsIHNpbmNlIHRoaXMgZmVhdHVyZSBh bHNvIG5lZWRzIG11bHRpcGxlIG1lbXBvb2xzLCBidXQgdGhlIGZlYXR1cmUgaXMNCj4gZGlmZmVy ZW50Lg0KPiA+Pg0KPiA+PiBJdCBsb29rcyB0byBtZSB3cm9uZyB0byBjaGVjayAnT0ZGTE9BRF9C VUZGRVJfU1BMSVQnIG9mZmxvYWQgdG8NCj4gPj4gZGVjaWRlIGlmIHRvIHJlY2VpdmUgaW50byBt dWx0aXBsZSBtZW1wb29sIG9yIG5vdCwgd2hpY2ggZG9lc24ndCBoYXZlDQo+IGFueXRoaW5nIHJl bGF0ZWQgc3BsaXQuDQo+ID4+IEFsc28gbm90IHN1cmUgYWJvdXQgdXNpbmcgdGhlICdzb3J0JyBr ZXl3b3JkLg0KPiA+PiBXaGF0IGRvIHlvdSB0aGluayB0byBpbnRyb2R1Y2UgbmV3IGZldGF1cmUs IGluc3RlYWQgb2YgZXh0ZW5kaW5nDQo+ID4+IGV4aXN0aW5nIHNwbGl0IG9uZT8NCj4gPg0KPiA+ IEFjdHVhbGx5IHdlIHRob3VnaHQgYm90aCBCVUZGRVJfU1BMSVQgYW5kIFBPT0xfU09SVCBhcmUg c2ltaWxhcg0KPiA+IGZlYXR1cmVzIHdoZXJlIFJYIHBvb2xzIGFyZSBjb25maWd1cmVkIGluIGNl cnRhaW4gd2F5IGFuZCB0aG91Z2h0IG5vdA0KPiA+IHVzZSB1cCBvbmUgbW9yZSBSWCBvZmZsb2Fk IGNhcGFiaWxpdHksIGFzIHRoZSBleGlzdGluZyBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUNCj4gY2Fu IGJlIGV4dGVuZGVkIHRvIHN1cHBvcnQgcG9vbF9zb3J0IGNhcGFiaWxpdHkuDQo+ID4gWWVzLCBh cyBwYXJ0IG9mIHBvb2wgc29ydCwgdGhlcmUgaXMgbm8gYnVmZmVyIHNwbGl0IGJ1dCBwb29scyBh cmUgcGlja2VkIGJhc2VkIG9uDQo+IHRoZSBidWZmZXIgbGVuZ3RoLg0KPiA+DQo+ID4gU2luY2Ug eW91IHRoaW5rIGl0J3MgYmV0dGVyIHRvIHVzZSBuZXcgUlggb2ZmbG9hZCBmb3IgUE9PTF9TT1JU LCB3aWxsIGdvIGFoZWFkDQo+IGFuZCBpbXBsZW1lbnQgdGhlIHNhbWUuDQo+ID4NCj4gPj4gVGhp cyBpcyBvcHRpbWlzYXRpb24sIHJpZ2h0PyBUbyBlbmFibGUgdXMgdG8gdXNlIGxlc3MgbWVtb3J5 IGZvciB0aGUNCj4gPj4gcGFja2V0IGJ1ZmZlciwgZG9lcyBpdCBxdWFsaWZ5IHRvIGEgZGV2aWNl IG9mZmxvYWQ/DQo+ID4+DQo+ID4gWWVzLCBpdHMgcXVhbGlmeSBhcyBhIGRldmljZSBvZmZsb2Fk IGFuZCBzYXZlcyBtZW1vcnkuDQo+ID4gTWFydmVsIE5JQyBoYXMgYSBjYXBhYmlsaXR5IHRvIHJl Y2VpdmUgcGFja2V0cyBvbiAgdHdvIGRpZmZlcmVudCBwb29scyBiYXNlZA0KPiBvbiBpdHMgbGVu Z3RoLg0KPiA+IEJlbG93IGV4cGxhaW5lZCBtb3JlIG9uIHRoZSBzYW1lLg0KPiA+Pg0KPiA+PiBB bHNvLCB3aGF0IGlzIHRoZSByZWxhdGlvbiB3aXRoIHNlZ21lbnRlZCBSeCwgaG93IGEgUE1EIGRl Y2lkZSB0byB1c2UNCj4gPj4gc2VnbWVudGVkIFJ4IG9yIGJpZ2dlciBtZW1wb29sPyBIb3cgY2Fu IGFwcGxpY2F0aW9uIGNhbiBjb25maWd1cmUgdGhpcz8NCj4gPj4NCj4gPj4gTmVlZCB0byBjbGFy aWZ5IHRoZSBydWxlcywgYmFzZWQgb24geW91ciBzYW1wbGUsIGlmIGEgNTEyIGJ5dGVzDQo+ID4+ IHBhY2tldCByZWNlaXZlZCwgZG9lcyBpdCBoYXZlIHRvIGdvIHBvb2wtMSwgb3IgY2FuIGl0IGdv IHRvIGFueSBvZiB0aHJlZSBwb29scz8NCj4gPj4NCj4gPiBIZXJlLCBNYXJ2ZWxsIE5JQyBzdXBw b3J0cyB0d28gSFcgcG9vbHMsIFNQQihzbWFsbCBwYWNrZXQgYnVmZmVyKSBwb29sIGFuZA0KPiBM UEIobGFyZ2UgcGFja2V0IGJ1ZmZlcikgcG9vbC4NCj4gPiBTUEIgcG9vbCBjYW4gaG9sZCB1cCB0 byA0S0INCj4gPiBMUEIgcG9vbCBjYW4gaG9sZCBhbnl0aGluZyBtb3JlIHRoYW4gNEtCIFNtYWxs ZXIgcGFja2V0cyBhcmUgcmVjZWl2ZWQNCj4gPiBvbiBTUEIgcG9vbCBhbmQgbGFyZ2VyIHBhY2tl dHMgb24gTFBCIHBvb2wsIGJhc2VkIG9uIHRoZSBSUSBjb25maWd1cmF0aW9uLg0KPiA+IEhlcmUs IGluIG91ciBjYXNlIEhXIHBvb2xzIGhvbGRzIHdob2xlIHBhY2tldC4gU28gaWYgYSBwYWNrZXQg aXMNCj4gPiBkaXZpZGVkIGludG8gc2VnbWVudHMsIGxvd2VyIGxheWVyIEhXIGdvaW5nIHRvIHJl Y2VpdmUgYWxsIHNlZ21lbnRzIG9mDQo+ID4gdGhlIHBhY2tldCBhbmQgdGhlbiBnb2luZyB0byBw bGFjZSB0aGUgd2hvbGUgcGFja2V0IGluIFNQQi9MUEIgcG9vbCwgYmFzZWQNCj4gb24gdGhlIHBh Y2tldCBsZW5ndGguDQo+ID4NCj4gDQo+IElmIHRoZSBwYWNrZXQgaXMgYmlnZ2VyIHRoYW4gNEtC LCB5b3UgaGF2ZSB0d28gb3B0aW9ucywNCj4gMS0gVXNlIG11bHRpcGxlIGNoYWluZWQgYnVmZmVy cyBpbiBTUEINCj4gMi0gVXNlIHNpbmdsZSBMUEIgYnVmZmVyDQo+IA0KPiBBcyBJIHVuZGVyc3Rh bmQgKDIpIGlzIHVzZWQgaW4gdGhpcyBjYXNlLCBidXQgSSB0aGluayB3ZSBzaG91bGQgY2xhcmlm eSBob3cgdGhpcw0KPiBmZWF0dXJlIHdvcmtzIHdpdGggJ1JURV9FVEhfUlhfT0ZGTE9BRF9TQ0FU VEVSJyBvZmZsb2FkLCBpZiBpdCBpcyByZXF1ZXN0ZWQNCj4gYnkgdXNlci4NCj4gDQo+IE9yIGxl dHMgc2F5IEhXIGhhcyB0d28gcG9vbHMgd2l0aCAxSyBhbmQgMksgc2l6ZXMsIHdoYXQgaXMgZXhw ZWN0ZWQgd2l0aCA0Sw0KPiBwYWNrZXQsIHdpdGggb3Igd2l0aG91dCBzY2F0dGVyZWQgUnggb2Zm bG9hZD8NCj4NCg0KQXMgbWVudGlvbmVkLCBNYXJ2ZWxsIHN1cHBvcnRzIHR3byBwb29scywgcG9v bC0xKFNQQikgYW5kIHBvb2wtMihMUEIpDQpJZiB0aGUgcGFja2V0IGxlbmd0aCBpcyB3aXRoaW4g cG9vbC0xIGxlbmd0aCBhbmQgaGFzIG9ubHkgb25lIHNlZ21lbnQgdGhlbiB0aGUgcGFja2V0IGlz IGFsbG9jYXRlZCBmcm9tIHBvb2wtMS4NCklmIHRoZSBwYWNrZXQgbGVuZ3RoIGlzIGdyZWF0ZXIg dGhhbiBwb29sLTEgb3IgaGFzIG1vcmUgdGhhbiBvbmUgc2VnbWVudCB0aGVuIHRoZSBwYWNrZXQg aXMgYWxsb2NhdGVkIGZyb20gcG9vbC0yLiANCg0KU28sIGhlcmUgcGFja2V0cyB3aXRoIGEgc2lu Z2xlIHNlZ21lbnQgYW5kIGxlbmd0aCBsZXNzIHRoYW4gMUsgYXJlIGFsbG9jYXRlZCBmcm9tIHBv b2wtMSBhbmQNCnBhY2tldHMgd2l0aCBtdWx0aXBsZSBzZWdtZW50cyBvciBwYWNrZXRzIHdpdGgg bGVuZ3RoIGdyZWF0ZXIgdGhhbiAxSyBhcmUgYWxsb2NhdGVkIGZyb20gcG9vbC0yLg0KDQo+ID4g QXMgcG9vbHMgYXJlIHBpY2tlZCBiYXNlZCBvbiB0aGUgcGFja2V0cyBsZW5ndGggd2UgdXNlZCBT T1JUIHRlcm0uIEluIGNhc2UNCj4geW91IGhhdmUgYW55IGJldHRlciB0ZXJtKHdvcmQpLCBwbGVh c2Ugc3VnZ2VzdC4NCj4gPg0KPiANCj4gd2hhdCBhYm91dCBtdWx0aXBsZSBwb29sLCBsaWtlIFJU RV9FVEhfUlhfT0ZGTE9BRF9NVUxUSVBMRV9QT09MLCBJIHRoaW5rDQo+IGl0IGlzIG1vcmUgY2xl YXIgYnV0IEkgd291bGQgbGlrZSB0byBnZXQgbW9yZSBjb21tZW50cyBmcm9tIG90aGVycywgbmFt aW5nIGlzDQo+IGhhcmQgOykNCj4gDQpZZXMsIFJURV9FVEhfUlhfT0ZGTE9BRF9NVUxUSVBMRV9Q T09MIGlzIGNsZWFyZXIgdGhhbiBSVEVfRVRIX1JYX09GRkxPQURfU09SVF9QT09MLiANClRoYW5r cyBmb3IgdGhlIHN1Z2dlc3Rpb24uIA0KV2lsbCB1cGxvYWQgVjQgd2l0aCBSVEVfRVRIX1JYX09G RkxPQURfTVVMVElQTEVfUE9PTC4NCg0KPiA+Pg0KPiA+PiBBbmQgSSBkb24ndCBzZWUgYW55IGNo YW5nZSBpbiB0aGUgJ25ldC9jbnhrJyBSeCBidXJzdCBjb2RlLCB3aGVuDQo+ID4+IG11bHRpcGxl IG1lbXBvb2wgdXNlZCwgd2hpbGUgZmlsbGluZyB0aGUgbWJ1ZnMgc2hvdWxkbid0IGl0IGNoZWNr DQo+ID4+IHdoaWNoIG1lbXBvb2wgaXMgZmlsbGVkLiBIb3cgdGhpcyB3b3JrcyB3aXRob3V0IHVw ZGF0ZSBpbiB0aGUgUngNCj4gPj4gYnVyc3QgY29kZSwgb3IgYW0gSSBtaXNzaW5nIHNvbWUgaW1w bGVtZW50YXRpb24gZGV0YWlsPw0KPiA+Pg0KPiA+IFBsZWFzZSBmaW5kIFBNRCBjaGFuZ2VzIGlu IHBhdGNoIFt2MiwzLzNdIG5ldC9jbnhrOiBpbnRyb2R1Y2UgcG9vbA0KPiA+IHNvcnQgY2FwYWJp bGl0eSBIZXJlLCBpbiBjb250cm9sIHBhdGgsIEhXIHBvb2xzIGFyZSBwcm9ncmFtbWVkIGJhc2Vk IG9uIHRoZQ0KPiBpbnB1dHMgaXQgcmVjZWl2ZWQgZnJvbSB0aGUgYXBwbGljYXRpb24uDQo+ID4g T25jZSB0aGUgSFcgaXMgcHJvZ3JhbW1lZCwgcGFja2V0cyBhcmUgcmVjZWl2ZWQgb24gSFcgcG9v bHMgYmFzZWQgdGhlDQo+IHBhY2tldHMgc2l6ZXMuDQo+IA0KPiBJIHdhcyBleHBlY3RpbmcgdG8g Y2hhbmdlcyBpbiBkYXRhcGF0aCB0b28sIHNvbWV0aGluZyBsaWtlIGluIFJ4IGJ1cnN0IGZ1bmN0 aW9uDQo+IGNoZWNrIGlmIHNwYiBvciBscGIgaXMgdXNlZCBhbmQgdXBkYXRlIG1idWYgcG9pbnRl cnMgYWNjb3JkaW5nbHkuDQo+IEJ1dCBpdCBzZWVtcyBIVyBkb2Vzbid0IHdvcmsgdGhpcyB3YXks IGNhbiB5b3UgcGxlYXNlIGV4cGxhaW4gaG93IHRoaXMgZmVhdHVyZQ0KPiB3b3JrcyB0cmFuc3Bh cmVudCB0byBkYXRhcGF0aCBjb2RlPw0KPiANCj4gPj4NCj4gPg0KPiA+IEkgd2lsbCB1cGxvYWQg VjMgd2hlcmUgUE9PTF9TT1JUIGlzIGltcGxlbWVudGVkIGFzIG5ldyBSWCBPRkZMT0FELCB1bmxl c3MNCj4gSWYgeW91IGhhdmUgYW55IG90aGVyIHN1Z2dlc3Rpb24vdGhvdWdodHMuDQo+ID4NCj4g DQo+IDwuLi4+DQoNCg==