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 54A0DA054A; Wed, 7 Sep 2022 23:33:56 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 449D240697; Wed, 7 Sep 2022 23:33:56 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 0BC7D400D6 for ; Wed, 7 Sep 2022 23:33:53 +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 287G66qS029954; Wed, 7 Sep 2022 14:31:47 -0700 Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2048.outbound.protection.outlook.com [104.47.73.48]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3jen9wuktn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 07 Sep 2022 14:31:47 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jG8QlddXNuqdduChK6NqVxEuVzIfZxSU2W7Trt20BaZPU0OOyBVYKidAf5Kk+lgttbVG8s1GgCPWwXTN+OohsNPG1doVOOl7f44HXaPhoL/020Vij72T/fAzZLRj7mQOHw2tj0rL7XH3GqqZqOrKIl+1nozyLNSA0qm8hn+uwi61OFQbRMussyiMWyvM1Erq8cCOJI9ANn6PdKVca7K9vb3yRvjJAF2T641gKUdzQu9ZcBWzvi6tIXPu8AqT3MzYtJR6dt++cmHyiweP6WfjUiydBK7WdIhlXd44F0c4ytdaWMSaAbd2BXtW7W1YGtpO5sZoXT82qXXLys3ertvf+A== 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=VAyaAZoilaQn52ozJqbPtSyU5BK4q0CsRgwrZzoNhT4=; b=TCbnlUks0avWgszH3Q/H0X870rkzfoqhx99j7fwtiUiCJbLVvAtJslOnMml7IIP4PewnUmIwmdgfwqXen2rCPtRgShXXIfYqZ3z5GoETc6MyHoqC+0fKy9bdirRouLrbQ101Rf58qA1wiZNhfqLJZUW6sZlt74RHoOy977kXj14C+Zfk7ALZbP+MRvT0tmdkoWHMsOvR+Xzlk4u5gV/qqcVFAx2gOuMmsQugYMIbRS/6ezOkita3C73QMLzcpVOv18D1C1hLS9Ges9b25v2GLGU9nUhOpYdtpU26ImT5oqWRqhvAlEr6b9QAyjymDEveap7fdp5Dtc+DFKiYesyqwg== 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=VAyaAZoilaQn52ozJqbPtSyU5BK4q0CsRgwrZzoNhT4=; b=aEppRql3fbHxKYKZzE/m6gmcRe+0eS/ipGYcRoqbEYm+cntAtWVxeRAIIQMVY7FbrwU6JD/SsdhHyO97jABXT+NiAkRmM658yD+iu0+/O0XFJh01/T5EQAl1HtMwcpsrPJ3NlQdRTbgzjNI7eqZwKItsBiwU7Scuq5IhzXdmy84= Received: from PH0PR18MB4750.namprd18.prod.outlook.com (2603:10b6:510:cd::11) by DM6PR18MB3385.namprd18.prod.outlook.com (2603:10b6:5:1ce::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.17; Wed, 7 Sep 2022 21:31:43 +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 21:31:43 +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+1tZq27420AgAJddwCACL4lQIALeYSAgAEwFBCAAFNBAIAADzgQ Date: Wed, 7 Sep 2022 21:31:43 +0000 Message-ID: References: <20220812104648.1019978-1-hpothula@marvell.com> <20220812172451.1208933-1-hpothula@marvell.com> <76e4091d-4037-ef5b-377f-7daa183e27d3@xilinx.com> <1e1ae69c-8cf3-5447-762f-ef00616dc225@xilinx.com> In-Reply-To: <1e1ae69c-8cf3-5447-762f-ef00616dc225@xilinx.com> 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_|DM6PR18MB3385:EE_ x-ms-office365-filtering-correlation-id: 0b1ffdaa-36fb-480d-d3fd-08da91185c08 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0hYXFPZqjaZM5+gVynIDW0bc5ktaB4e/pQ2TogW6+gXkrnWhBj5JHo/5h0f3RfP8iKP7e8z6YAmzRPBmUkNBzcv0Of8wXD5rrnIyO6LelQr5VnT3N/jL+NsW9Hf6zjYIh72Ab9FSPZ9SvQAHln4AA1E3/vr3pt+zDyOrcjuq66sjYTEF1hWfKW8KANLUmi5uVe9W1d2EEGyyG6r9Re9AiXtSuPEzKn+eVZYAlc8aadNBqHT+c6LReto7Vozz8IPQsPxXpm9+yWTCje3rLuGhHZkp+Bj0Ovwxriynny2Vn04bYDvKB1p+vm9qUL1RoSe5IuIWqQnDJkRTF240sYn6gBCyCInx+cXOjKsJak8pPfY6VQJCp2sx9PLT3dxmmmtHqy27YyAFAitEHdXwu501P74ZcdVD0b0qemrK/OmInLvtEiAnWl+MYgBTzYb0QqfwkZLU8jhzgVP91qLoc3aOxyznKVgjE4m9EW+WyiL3G02sHOdAIh5W231tq3ah67mPbePrPfN6GOJQa3FIqiXrJIewf/4CEPzciuKunuQ3Pqv3I9a8gdd0oykHq7uS/6ErhTkOVDGb+xeKZV7t0VyAME3kFBJhBjaDfHPoofm/A8Efec9oznjk8KRfTkGo0FUgcHVRKirsfZE7n6nxjYWdXa3OtHMVoQMohuWDYB/0NWys1hNxiuSthqYQ12/gi7bA/kImpuVGZPk7GmukRLBmjPzw9anf11rvmHXQbksIGA+eZ3XkYJXtebNHQ/Kaa07Nnizozmp0iuv3cl1NVzZ+vw== 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)(39860400002)(376002)(396003)(136003)(366004)(346002)(7416002)(26005)(186003)(71200400001)(9686003)(55016003)(41300700001)(86362001)(6506007)(38100700002)(53546011)(38070700005)(7696005)(83380400001)(107886003)(478600001)(64756008)(8676002)(122000001)(2906002)(30864003)(5660300002)(76116006)(66946007)(66446008)(54906003)(110136005)(66476007)(66556008)(4326008)(8936002)(316002)(33656002)(52536014); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RkgyYXNQTlJrT3U0UkFSQjNMM2JnL1B4eXRlM2VjYkZ1bGxjTFNrQ3dKYkFo?= =?utf-8?B?U3ZuUmx6bldNTUw4MmJVY25pQjhiYnRycUh2Vm9KdVp5V04zOFEvcTl1RmJ6?= =?utf-8?B?T0ZNcGJERDBndkY4dFpUWWFDbHVFZ2JxTGJFWmxDeGFYUzJGbUluWEQramZN?= =?utf-8?B?OHBNd0NxcmRBVW1wYlA4bW15cnp5aDgya2plMlgvVHphUUNZam16N0pxeUtk?= =?utf-8?B?eGt0MndSS2M1cGtEN0hTOW0rOGhMU09WS1V5N0N6TnNseE01aWJyYzd3ZlQ4?= =?utf-8?B?VXNhNGY3b1A3czBleFZDckdLakZJUjNYRjhVaWtSMVFrM0RYbDFiUjR3cW40?= =?utf-8?B?UHpOOXBGQkxySk1wcFBmb00rMUpwOHRNMTNid2pGWDNwY29ZRlEwYlNpV0Z3?= =?utf-8?B?d1pCWEsvSjRHQ0dWTnNPZVFtZDNMWDhLczVERUEyYWFZMElKUUYyejhnanI2?= =?utf-8?B?S3VpSzJJVk5tMmdhMTAwQXRVNmJCdzZkUDFDQlA3bXFiT2dQbUZpMGJ2amRQ?= =?utf-8?B?UFJnRkUrTVhRTjh2TytvQXFRQ0wzUHY4MUl0aWNVekI1aGtsaXcxMjBvejE2?= =?utf-8?B?ZTk3REpjZzZucnpGSTJJalBVVGx4YXNMZitOc0l2eDFJZ3F5QStYZFZ6SkZJ?= =?utf-8?B?QW5UeXRaWnVhVHlhTXRUbnRuZnVHM3diQ2I4MTlFOFVZZGdHSDdFS1huTTFt?= =?utf-8?B?OWZCVE5McHBoTGZkZDNLeVFHWjJpMG83QWlManVwWjR6VkMwc1JnYnpXWGFC?= =?utf-8?B?QjdXVCtJSlZYMCtSM1Z5bHlsM1crUnlMTklOM1Z1aWFzNEJYdEFwcWNiVWtO?= =?utf-8?B?c0VqendLbURpWS9PL2lkT0ZlQjZvd1Iva2Fwa24rYTFWL0U4aXU4UzdlQ2Y2?= =?utf-8?B?OVkxN0tQUHB0Sy9uQTh6WkZSUnVtRStuS3BVS2llQTRBR2FGeDRoaHBMZG9D?= =?utf-8?B?K1FYOUdnNlVsMFRkcXZvbUlGZVQ0c25ZTWJ2Sk1GR2hBWC92SUVtNHlnWFlz?= =?utf-8?B?OEhxcE5DOG5zV3A3N3pXb0dvbTV0WndEYUZBZzY0cjU1WjE5RHA5dkxnUHVp?= =?utf-8?B?TUIyNzJxQWUwMHdEcnhoZURUekswbGZCTHc5T084aGQzL2hXaFFKQ0tKalRz?= =?utf-8?B?NUdGaWJoemcyYjQ4NlZycTBhTEdYSFZ3dVRrQjRneTVxcU12R09udlNVa0hB?= =?utf-8?B?ZFRxQkJLRzdRbFRQMm1nN1o3ME50dWM3NHB6V3lJYW9TV3hXd1pqWHRibUpy?= =?utf-8?B?YXplSm1tNi9kNWMyKzI0cExmSzFObUFoSDgrN0RqeFBWeStPZXhySG9IajVX?= =?utf-8?B?S084WmExWXJMYWExeE1Xd1BGWjVlazg3MVRzS0xIS3djMG5QKzdMNER1UTY5?= =?utf-8?B?ZWQvRWxIcElFeitSSmx4aGdSaTRxMVY0QUdvV05pSFBCVzQ5bnFHTFpLWWIr?= =?utf-8?B?Z0V2Y3M4SWt5ZGdKU0lwNGRUaWllQWlsbHZJWk85L0tlYjF3U0tnb01PUk1U?= =?utf-8?B?Z2Q2YXJoY3dRTnZkUEd5eWd6MWhicDNxZ0FiZlNxMVpnSlk5akhBRmtXMjhz?= =?utf-8?B?V2MvZllxeDN2K2xNMUd0WU92QU5qZlJDU0pIUmFBblhVa085NmNQMVFOUk5B?= =?utf-8?B?MDcvZ2RrME1CYUV6eFpNTEhYMkhRaWs1WkZuSFh0RFVOM0IzOVpnRVlTRGFL?= =?utf-8?B?MDZET0E5U2VwNnVmS0RuRHFpZmF6dWhxNFhaRWxkOUNuNDFQbTVyZko1U0Er?= =?utf-8?B?dDlKNXlMRHE2RUdkY1o1SlRkSW5hUHRQcDhvZ1JvejZVVSsvUGxDQzlxTE1t?= =?utf-8?B?MDF0VGtFS2NsOVBPL3JjMWhRang2aW82d3dRZFlLYWY4UWtPYXlPUUU2djE5?= =?utf-8?B?Ym9EdHZNNWJ6bk9VS1lpRG91dm8vQjJ4UkxxMkQ4SUVwNEk2L1BXTHNuRGZ0?= =?utf-8?B?TnVHTTczdGV6bmpkWU85WXVGTS90b3JrbThKVlpQSnU1UHZOUU0yNE5pZFQ2?= =?utf-8?B?VDgvVVRkY1ZQN1FVTWdqNUc3NXRtT3RuNGJUbjBhOTFCNGFmZmtiZ2VZeG9C?= =?utf-8?B?eDgrbkpvZmJWNXlDUGppRmgwYm9XSkxpbmVEWlM4YWhabDhuR2FLOGw4ZkJi?= =?utf-8?Q?JSJkLxJKAu1Be7MHlZTzYVfJ2?= 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: 0b1ffdaa-36fb-480d-d3fd-08da91185c08 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Sep 2022 21:31:43.5046 (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: OuB9dxSpjE2LsAFwEFq2yAgL1eC0nNAIhieJv3iwgko3bHlg+ox3kysiBtroA/0P4RwnTdVm9g2/ZH167DuHZw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR18MB3385 X-Proofpoint-ORIG-GUID: TAyRRHP_oIeVJ2I7W0cn1UwK-aLKD1Nd X-Proofpoint-GUID: TAyRRHP_oIeVJ2I7W0cn1UwK-aLKD1Nd 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_10,2022-09-07_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 ZXJydWgueWlnaXRAeGlsaW54LmNvbT4NCj4gU2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIgNywg MjAyMiA0OjU0IFBNDQo+IFRvOiBIYW51bWFudGggUmVkZHkgUG90aHVsYSA8aHBvdGh1bGFAbWFy dmVsbC5jb20+OyBEaW5nLCBYdWFuDQo+IDx4dWFuLmRpbmdAaW50ZWwuY29tPjsgVGhvbWFzIE1v bmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgQW5kcmV3DQo+IFJ5YmNoZW5rbyA8YW5kcmV3 LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+IENjOiBkZXZAZHBkay5vcmc7IFd1LCBXZW54dWFu WCA8d2VueHVhbngud3VAaW50ZWwuY29tPjsgTGksIFhpYW95dW4NCj4gPHhpYW95dW4ubGlAaW50 ZWwuY29tPjsgc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7IFdhbmcsIFl1YW5YDQo+IDx5dWFu eC53YW5nQGludGVsLmNvbT47IG1kckBhc2hyb2UuZXU7IFpoYW5nLCBZdXlpbmcNCj4gPHl1eWlu Zy56aGFuZ0BpbnRlbC5jb20+OyBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+Ow0K PiB2aWFjaGVzbGF2b0BudmlkaWEuY29tOyBKZXJpbiBKYWNvYiBLb2xsYW51a2thcmFuIDxqZXJp bmpAbWFydmVsbC5jb20+Ow0KPiBOaXRoaW4gS3VtYXIgRGFiaWxwdXJhbSA8bmRhYmlscHVyYW1A bWFydmVsbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbRVhUXSBSZTogW1BBVENIIHYyIDEvM10gZXRo ZGV2OiBpbnRyb2R1Y2UgcG9vbCBzb3J0IGNhcGFiaWxpdHkNCj4gDQo+IE9uIDkvNy8yMDIyIDg6 MDIgQU0sIEhhbnVtYW50aCBSZWRkeSBQb3RodWxhIHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogRmVycnVoIFlpZ2l0IDxmZXJydWgu eWlnaXRAeGlsaW54LmNvbT4NCj4gPj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDYsIDIwMjIg NTo0OCBQTQ0KPiA+PiBUbzogSGFudW1hbnRoIFJlZGR5IFBvdGh1bGEgPGhwb3RodWxhQG1hcnZl bGwuY29tPjsgRGluZywgWHVhbg0KPiA+PiA8eHVhbi5kaW5nQGludGVsLmNvbT47IFRob21hcyBN b25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD47DQo+IEFuZHJldw0KPiA+PiBSeWJjaGVua28g PGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+PiBDYzogZGV2QGRwZGsub3JnOyBX dSwgV2VueHVhblggPHdlbnh1YW54Lnd1QGludGVsLmNvbT47IExpLCBYaWFveXVuDQo+ID4+IDx4 aWFveXVuLmxpQGludGVsLmNvbT47IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnOyBXYW5nLCBZ dWFuWA0KPiA+PiA8eXVhbngud2FuZ0BpbnRlbC5jb20+OyBtZHJAYXNocm9lLmV1OyBaaGFuZywg WXV5aW5nDQo+ID4+IDx5dXlpbmcuemhhbmdAaW50ZWwuY29tPjsgWmhhbmcsIFFpIFogPHFpLnou emhhbmdAaW50ZWwuY29tPjsNCj4gPj4gdmlhY2hlc2xhdm9AbnZpZGlhLmNvbTsgSmVyaW4gSmFj b2IgS29sbGFudWtrYXJhbg0KPiA+PiA8amVyaW5qQG1hcnZlbGwuY29tPjsgTml0aGluIEt1bWFy IERhYmlscHVyYW0NCj4gPj4gPG5kYWJpbHB1cmFtQG1hcnZlbGwuY29tPg0KPiA+PiBTdWJqZWN0 OiBSZTogW0VYVF0gUmU6IFtQQVRDSCB2MiAxLzNdIGV0aGRldjogaW50cm9kdWNlIHBvb2wgc29y dA0KPiA+PiBjYXBhYmlsaXR5DQo+ID4+DQo+ID4+IE9uIDgvMzAvMjAyMiAxOjA4IFBNLCBIYW51 bWFudGggUmVkZHkgUG90aHVsYSB3cm90ZToNCj4gPj4+DQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogRmVycnVoIFlpZ2l0IDxmZXJydWgueWln aXRAeGlsaW54LmNvbT4NCj4gPj4+PiBTZW50OiBXZWRuZXNkYXksIEF1Z3VzdCAyNCwgMjAyMiA5 OjA0IFBNDQo+ID4+Pj4gVG86IERpbmcsIFh1YW4gPHh1YW4uZGluZ0BpbnRlbC5jb20+OyBIYW51 bWFudGggUmVkZHkgUG90aHVsYQ0KPiA+Pj4+IDxocG90aHVsYUBtYXJ2ZWxsLmNvbT47IFRob21h cyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD47DQo+ID4+IEFuZHJldw0KPiA+Pj4+IFJ5 YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+ID4+Pj4gQ2M6IGRldkBk cGRrLm9yZzsgV3UsIFdlbnh1YW5YIDx3ZW54dWFueC53dUBpbnRlbC5jb20+OyBMaSwNCj4gWGlh b3l1bg0KPiA+Pj4+IDx4aWFveXVuLmxpQGludGVsLmNvbT47IHN0ZXBoZW5AbmV0d29ya3BsdW1i ZXIub3JnOyBXYW5nLCBZdWFuWA0KPiA+Pj4+IDx5dWFueC53YW5nQGludGVsLmNvbT47IG1kckBh c2hyb2UuZXU7IFpoYW5nLCBZdXlpbmcNCj4gPj4+PiA8eXV5aW5nLnpoYW5nQGludGVsLmNvbT47 IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT47DQo+ID4+Pj4gdmlhY2hlc2xhdm9A bnZpZGlhLmNvbTsgSmVyaW4gSmFjb2IgS29sbGFudWtrYXJhbg0KPiA+Pj4+IDxqZXJpbmpAbWFy dmVsbC5jb20+OyBOaXRoaW4gS3VtYXIgRGFiaWxwdXJhbQ0KPiA+Pj4+IDxuZGFiaWxwdXJhbUBt YXJ2ZWxsLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBbRVhUXSBSZTogW1BBVENIIHYyIDEvM10gZXRo ZGV2OiBpbnRyb2R1Y2UgcG9vbCBzb3J0DQo+ID4+Pj4gY2FwYWJpbGl0eQ0KPiA+Pj4+DQo+ID4+ Pj4gRXh0ZXJuYWwgRW1haWwNCj4gPj4+Pg0KPiA+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPj4+PiAtLQ0K PiA+Pj4+IC0NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gVGhhbmtzIERpbmcgWHVhbiBhbmQgRmVycnVo IFlpZ2l0IGZvciByZXZpZXdpbmcgdGhlIGNoYW5nZXMgYW5kIGZvcg0KPiA+Pj4gcHJvdmlkaW5n DQo+ID4+IHlvdXIgdmFsdWFibGUgZmVlZGJhY2suDQo+ID4+PiBQbGVhc2UgZmluZCByZXNwb25z ZXMgaW5saW5lLg0KPiA+Pj4NCj4gPj4+PiBPbiA4LzIzLzIwMjIgNDoyNiBBTSwgRGluZywgWHVh biB3cm90ZToNCj4gPj4+Pj4gSGkgSGFudW1hbnRoLA0KPiA+Pj4+Pg0KPiA+Pj4+Pj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4+IEZyb206IEhhbnVtYW50aCBQb3RodWxhIDxo cG90aHVsYUBtYXJ2ZWxsLmNvbT4NCj4gPj4+Pj4+IFNlbnQ6IFNhdHVyZGF5LCBBdWd1c3QgMTMs IDIwMjIgMToyNSBBTQ0KPiA+Pj4+Pj4gVG86IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmph bG9uLm5ldD47IEZlcnJ1aCBZaWdpdA0KPiA+Pj4+Pj4gPGZlcnJ1aC55aWdpdEB4aWxpbnguY29t PjsgQW5kcmV3IFJ5YmNoZW5rbw0KPiA+Pj4+Pj4gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJz LnJ1Pg0KPiA+Pj4+Pj4gQ2M6IGRldkBkcGRrLm9yZzsgRGluZywgWHVhbiA8eHVhbi5kaW5nQGlu dGVsLmNvbT47IFd1LCBXZW54dWFuWA0KPiA+Pj4+Pj4gPHdlbnh1YW54Lnd1QGludGVsLmNvbT47 IExpLCBYaWFveXVuIDx4aWFveXVuLmxpQGludGVsLmNvbT47DQo+ID4+Pj4+PiBzdGVwaGVuQG5l dHdvcmtwbHVtYmVyLm9yZzsgV2FuZywgWXVhblgNCj4gPHl1YW54LndhbmdAaW50ZWwuY29tPjsN Cj4gPj4+Pj4+IG1kckBhc2hyb2UuZXU7IFpoYW5nLCBZdXlpbmcgPHl1eWluZy56aGFuZ0BpbnRl bC5jb20+OyBaaGFuZywgUWkNCj4gPj4+Pj4+IFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsgdmlh Y2hlc2xhdm9AbnZpZGlhLmNvbTsNCj4gPj4+Pj4+IGplcmluakBtYXJ2ZWxsLmNvbTsgbmRhYmls cHVyYW1AbWFydmVsbC5jb207IEhhbnVtYW50aCBQb3RodWxhDQo+ID4+Pj4+PiA8aHBvdGh1bGFA bWFydmVsbC5jb20+DQo+ID4+Pj4+PiBTdWJqZWN0OiBbUEFUQ0ggdjIgMS8zXSBldGhkZXY6IGlu dHJvZHVjZSBwb29sIHNvcnQgY2FwYWJpbGl0eQ0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFByZXNlbnRs eSwgdGhlICdCdWZmZXIgU3BsaXQnIGZlYXR1cmUgc3VwcG9ydHMgc2VuZGluZyBtdWx0aXBsZQ0K PiA+Pj4+Pj4gc2VnbWVudHMgb2YgdGhlIHJlY2VpdmVkIHBhY2tldCB0byBQTUQsIHdoaWNoIHBy b2dyYW1zIHRoZSBIVyB0bw0KPiA+Pj4+Pj4gcmVjZWl2ZSB0aGUgcGFja2V0IGluIHNlZ21lbnRz IGZyb20gZGlmZmVyZW50IHBvb2xzLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoaXMgcGF0Y2ggZXh0 ZW5kcyB0aGUgZmVhdHVyZSB0byBzdXBwb3J0IHRoZSBwb29sIHNvcnQgY2FwYWJpbGl0eS4NCj4g Pj4+Pj4+IFNvbWUgb2YgdGhlIEhXIGhhcyBzdXBwb3J0IGZvciBjaG9vc2luZyBtZW1vcnkgcG9v bHMgYmFzZWQgb24gdGhlDQo+ID4+Pj4+PiBwYWNrZXQncyBzaXplLiBUaGUgcG9vbCBzb3J0IGNh cGFiaWxpdHkgYWxsb3dzIFBNRCB0byBjaG9vc2UgYQ0KPiA+Pj4+Pj4gbWVtb3J5IHBvb2wgYmFz ZWQgb24gdGhlIHBhY2tldCdzIGxlbmd0aC4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBUaGlzIGlzIG9m dGVuIHVzZWZ1bCBmb3Igc2F2aW5nIHRoZSBtZW1vcnkgd2hlcmUgdGhlIGFwcGxpY2F0aW9uDQo+ ID4+Pj4+PiBjYW4gY3JlYXRlIGEgZGlmZmVyZW50IHBvb2wgdG8gc3RlZXIgdGhlIHNwZWNpZmlj IHNpemUgb2YgdGhlDQo+ID4+Pj4+PiBwYWNrZXQsIHRodXMgZW5hYmxpbmcgZWZmZWN0aXZlIHVz ZSBvZiBtZW1vcnkuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gRm9yIGV4YW1wbGUsIGxldCdzIHNheSBI VyBoYXMgYSBjYXBhYmlsaXR5IG9mIHRocmVlIHBvb2xzLA0KPiA+Pj4+Pj4gICAgIC0gcG9vbC0x IHNpemUgaXMgMksNCj4gPj4+Pj4+ICAgICAtIHBvb2wtMiBzaXplIGlzID4gMksgYW5kIDwgNEsN Cj4gPj4+Pj4+ICAgICAtIHBvb2wtMyBzaXplIGlzID4gNEsNCj4gPj4+Pj4+IEhlcmUsDQo+ID4+ Pj4+PiAgICAgICAgICAgIHBvb2wtMSBjYW4gYWNjb21tb2RhdGUgcGFja2V0cyB3aXRoIHNpemVz IDwgMksNCj4gPj4+Pj4+ICAgICAgICAgICAgcG9vbC0yIGNhbiBhY2NvbW1vZGF0ZSBwYWNrZXRz IHdpdGggc2l6ZXMgPiAySyBhbmQgPCA0Sw0KPiA+Pj4+Pj4gICAgICAgICAgICBwb29sLTMgY2Fu IGFjY29tbW9kYXRlIHBhY2tldHMgd2l0aCBzaXplcyA+IDRLDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4g V2l0aCBwb29sIHNvcnQgY2FwYWJpbGl0eSBlbmFibGVkIGluIFNXLCBhbiBhcHBsaWNhdGlvbiBt YXkNCj4gPj4+Pj4+IGNyZWF0ZSB0aHJlZSBwb29scyBvZiBkaWZmZXJlbnQgc2l6ZXMgYW5kIHNl bmQgdGhlbSB0byBQTUQuDQo+ID4+Pj4+PiBBbGxvd2luZyBQTUQgdG8gcHJvZ3JhbSBIVyBiYXNl ZCBvbiBwYWNrZXQgbGVuZ3Rocy4gU28gdGhhdA0KPiA+Pj4+Pj4gcGFja2V0cyB3aXRoIGxlc3Mg dGhhbiAySyBhcmUgcmVjZWl2ZWQgb24gcG9vbC0xLCBwYWNrZXRzIHdpdGgNCj4gPj4+Pj4+IGxl bmd0aHMgYmV0d2VlbiAySyBhbmQgNEsgYXJlIHJlY2VpdmVkIG9uIHBvb2wtMiBhbmQgZmluYWxs eQ0KPiA+Pj4+Pj4gcGFja2V0cyBncmVhdGVyIHRoYW4gNEsgYXJlIHJlY2VpdmVkIG9uIHBvb2wt DQo+ID4+Pj4gMy4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBUaGUgZm9sbG93aW5nIHR3byBjYXBhYmls aXRpZXMgYXJlIGFkZGVkIHRvIHRoZQ0KPiA+Pj4+Pj4gcnRlX2V0aF9yeHNlZ19jYXBhIHN0cnVj dHVyZSwgMS4gcG9vbF9zb3J0IC0tPiB0ZWxscyBwb29sIHNvcnQgY2FwYWJpbGl0eQ0KPiBpcyBz dXBwb3J0ZWQgYnkgSFcuDQo+ID4+Pj4+PiAyLiBtYXhfbnBvb2wgLS0+IG1heCBudW1iZXIgb2Yg cG9vbHMgc3VwcG9ydGVkIGJ5IEhXLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IERlZmluZWQgbmV3IHN0 cnVjdHVyZSBydGVfZXRoX3J4c2VnX3NvcnQsIHRvIGJlIHVzZWQgb25seSB3aGVuDQo+ID4+Pj4+ PiBwb29sIHNvcnQgY2FwYWJpbGl0eSBpcyBwcmVzZW50LiBJZiByZXF1aXJlZCB0aGlzIG1heSBi ZSBleHRlbmRlZA0KPiA+Pj4+Pj4gZnVydGhlciB0byBzdXBwb3J0IG1vcmUgY29uZmlndXJhdGlv bnMuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogSGFudW1hbnRoIFBvdGh1bGEg PGhwb3RodWxhQG1hcnZlbGwuY29tPg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IHYyOg0KPiA+Pj4+Pj4g ICAgIC0gQWxvbmcgd2l0aCBzcGVjIGNoYW5nZXMsIHVwbG9hZGluZyB0ZXN0cG1kIGFuZCBkcml2 ZXIgY2hhbmdlcy4NCj4gPj4+Pj4NCj4gPj4+Pj4gVGhhbmtzIGZvciBDQ2luZy4gSXQncyBhbiBp bnRlcmVzdGluZyBmZWF0dXJlLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBCdXQgSSBoYXZlIG9uZSBxdWVz dGlvbiBoZXJlOg0KPiA+Pj4+PiBCdWZmZXIgc3BsaXQgaXMgZm9yIHNwbGl0IHJlY2VpdmluZyBw YWNrZXRzIGludG8gbXVsdGlwbGUNCj4gPj4+Pj4gc2VnbWVudHMsIHdoaWxlIHBvb2wgc29ydCBz dXBwb3J0cyBQTUQgdG8gcHV0IHRoZSByZWNlaXZpbmcNCj4gPj4+Pj4gcGFja2V0cyBpbnRvIGRp ZmZlcmVudCBwb29scw0KPiA+Pj4+IGFjY29yZGluZyB0byBwYWNrZXQgc2l6ZS4NCj4gPj4+Pj4g RXZlcnkgcGFja2V0IGlzIHN0aWxsIGludGFjdC4NCj4gPj4+Pj4NCj4gPj4+Pj4gU28sIGF0IHRo aXMgbGV2ZWwsIHBvb2wgc29ydCBkb2VzIG5vdCBiZWxvbmcgdG8gYnVmZmVyIHNwbGl0Lg0KPiA+ Pj4+PiBBbmQgeW91IGFscmVhZHkgdXNlIGEgZGlmZmVyZW50IGZ1bmN0aW9uIHRvIGNoZWNrIHBv b2wgc29ydCByYXRoZXINCj4gPj4+Pj4gdGhhbiBjaGVjaw0KPiA+Pj4+IGJ1ZmZlciBzcGxpdC4N Cj4gPj4+Pj4NCj4gPj4+Pj4gU2hvdWxkIGEgbmV3IFJYIG9mZmxvYWQgYmUgaW50cm9kdWNlZD8g bGlrZQ0KPiA+Pj4+ICJSVEVfRVRIX1JYX09GRkxPQURfUE9PTF9TT1JUIi4NCj4gPj4+Pj4NCj4g Pj4+IFBsZWFzZSBmaW5kIG15IHJlc3BvbnNlIGJlbG93Lg0KPiA+Pj4+DQo+ID4+Pj4gSGkgSGFu dW1hbnRoLA0KPiA+Pj4+DQo+ID4+Pj4gSSBoYWQgdGhlIHNpbWlsYXIgY29uY2VybiB3aXRoIHRo ZSBmZWF0dXJlLiBJIGFzc3VtZSB5b3Ugd2FudCB0bw0KPiA+Pj4+IGJlbmVmaXQgZnJvbSBleGl0 aW5nIGNvbmZpZyBzdHJ1Y3R1cmUgdGhhdCBnZXRzIG11bHRpcGxlIG1lbXBvb2wgYXMNCj4gPj4+ PiBhcmd1bWVudCwgc2luY2UgdGhpcyBmZWF0dXJlIGFsc28gbmVlZHMgbXVsdGlwbGUgbWVtcG9v bHMsIGJ1dCB0aGUNCj4gPj4+PiBmZWF0dXJlIGlzDQo+ID4+IGRpZmZlcmVudC4NCj4gPj4+Pg0K PiA+Pj4+IEl0IGxvb2tzIHRvIG1lIHdyb25nIHRvIGNoZWNrICdPRkZMT0FEX0JVRkZFUl9TUExJ VCcgb2ZmbG9hZCB0bw0KPiA+Pj4+IGRlY2lkZSBpZiB0byByZWNlaXZlIGludG8gbXVsdGlwbGUg bWVtcG9vbCBvciBub3QsIHdoaWNoIGRvZXNuJ3QNCj4gPj4+PiBoYXZlDQo+ID4+IGFueXRoaW5n IHJlbGF0ZWQgc3BsaXQuDQo+ID4+Pj4gQWxzbyBub3Qgc3VyZSBhYm91dCB1c2luZyB0aGUgJ3Nv cnQnIGtleXdvcmQuDQo+ID4+Pj4gV2hhdCBkbyB5b3UgdGhpbmsgdG8gaW50cm9kdWNlIG5ldyBm ZXRhdXJlLCBpbnN0ZWFkIG9mIGV4dGVuZGluZw0KPiA+Pj4+IGV4aXN0aW5nIHNwbGl0IG9uZT8N Cj4gPj4+DQo+ID4+PiBBY3R1YWxseSB3ZSB0aG91Z2h0IGJvdGggQlVGRkVSX1NQTElUIGFuZCBQ T09MX1NPUlQgYXJlIHNpbWlsYXINCj4gPj4+IGZlYXR1cmVzIHdoZXJlIFJYIHBvb2xzIGFyZSBj b25maWd1cmVkIGluIGNlcnRhaW4gd2F5IGFuZCB0aG91Z2h0DQo+ID4+PiBub3QgdXNlIHVwIG9u ZSBtb3JlIFJYIG9mZmxvYWQgY2FwYWJpbGl0eSwgYXMgdGhlIGV4aXN0aW5nIHNvZnR3YXJlDQo+ ID4+PiBhcmNoaXRlY3R1cmUNCj4gPj4gY2FuIGJlIGV4dGVuZGVkIHRvIHN1cHBvcnQgcG9vbF9z b3J0IGNhcGFiaWxpdHkuDQo+ID4+PiBZZXMsIGFzIHBhcnQgb2YgcG9vbCBzb3J0LCB0aGVyZSBp cyBubyBidWZmZXIgc3BsaXQgYnV0IHBvb2xzIGFyZQ0KPiA+Pj4gcGlja2VkIGJhc2VkIG9uDQo+ ID4+IHRoZSBidWZmZXIgbGVuZ3RoLg0KPiA+Pj4NCj4gPj4+IFNpbmNlIHlvdSB0aGluayBpdCdz IGJldHRlciB0byB1c2UgbmV3IFJYIG9mZmxvYWQgZm9yIFBPT0xfU09SVCwNCj4gPj4+IHdpbGwg Z28gYWhlYWQNCj4gPj4gYW5kIGltcGxlbWVudCB0aGUgc2FtZS4NCj4gPj4+DQo+ID4+Pj4gVGhp cyBpcyBvcHRpbWlzYXRpb24sIHJpZ2h0PyBUbyBlbmFibGUgdXMgdG8gdXNlIGxlc3MgbWVtb3J5 IGZvcg0KPiA+Pj4+IHRoZSBwYWNrZXQgYnVmZmVyLCBkb2VzIGl0IHF1YWxpZnkgdG8gYSBkZXZp Y2Ugb2ZmbG9hZD8NCj4gPj4+Pg0KPiA+Pj4gWWVzLCBpdHMgcXVhbGlmeSBhcyBhIGRldmljZSBv ZmZsb2FkIGFuZCBzYXZlcyBtZW1vcnkuDQo+ID4+PiBNYXJ2ZWwgTklDIGhhcyBhIGNhcGFiaWxp dHkgdG8gcmVjZWl2ZSBwYWNrZXRzIG9uICB0d28gZGlmZmVyZW50DQo+ID4+PiBwb29scyBiYXNl ZA0KPiA+PiBvbiBpdHMgbGVuZ3RoLg0KPiA+Pj4gQmVsb3cgZXhwbGFpbmVkIG1vcmUgb24gdGhl IHNhbWUuDQo+ID4+Pj4NCj4gPj4+PiBBbHNvLCB3aGF0IGlzIHRoZSByZWxhdGlvbiB3aXRoIHNl Z21lbnRlZCBSeCwgaG93IGEgUE1EIGRlY2lkZSB0bw0KPiA+Pj4+IHVzZSBzZWdtZW50ZWQgUngg b3IgYmlnZ2VyIG1lbXBvb2w/IEhvdyBjYW4gYXBwbGljYXRpb24gY2FuIGNvbmZpZ3VyZQ0KPiB0 aGlzPw0KPiA+Pj4+DQo+ID4+Pj4gTmVlZCB0byBjbGFyaWZ5IHRoZSBydWxlcywgYmFzZWQgb24g eW91ciBzYW1wbGUsIGlmIGEgNTEyIGJ5dGVzDQo+ID4+Pj4gcGFja2V0IHJlY2VpdmVkLCBkb2Vz IGl0IGhhdmUgdG8gZ28gcG9vbC0xLCBvciBjYW4gaXQgZ28gdG8gYW55IG9mIHRocmVlDQo+IHBv b2xzPw0KPiA+Pj4+DQo+ID4+PiBIZXJlLCBNYXJ2ZWxsIE5JQyBzdXBwb3J0cyB0d28gSFcgcG9v bHMsIFNQQihzbWFsbCBwYWNrZXQgYnVmZmVyKQ0KPiA+Pj4gcG9vbCBhbmQNCj4gPj4gTFBCKGxh cmdlIHBhY2tldCBidWZmZXIpIHBvb2wuDQo+ID4+PiBTUEIgcG9vbCBjYW4gaG9sZCB1cCB0byA0 S0INCj4gPj4+IExQQiBwb29sIGNhbiBob2xkIGFueXRoaW5nIG1vcmUgdGhhbiA0S0IgU21hbGxl ciBwYWNrZXRzIGFyZQ0KPiA+Pj4gcmVjZWl2ZWQgb24gU1BCIHBvb2wgYW5kIGxhcmdlciBwYWNr ZXRzIG9uIExQQiBwb29sLCBiYXNlZCBvbiB0aGUgUlENCj4gY29uZmlndXJhdGlvbi4NCj4gPj4+ IEhlcmUsIGluIG91ciBjYXNlIEhXIHBvb2xzIGhvbGRzIHdob2xlIHBhY2tldC4gU28gaWYgYSBw YWNrZXQgaXMNCj4gPj4+IGRpdmlkZWQgaW50byBzZWdtZW50cywgbG93ZXIgbGF5ZXIgSFcgZ29p bmcgdG8gcmVjZWl2ZSBhbGwgc2VnbWVudHMNCj4gPj4+IG9mIHRoZSBwYWNrZXQgYW5kIHRoZW4g Z29pbmcgdG8gcGxhY2UgdGhlIHdob2xlIHBhY2tldCBpbiBTUEIvTFBCDQo+ID4+PiBwb29sLCBi YXNlZA0KPiA+PiBvbiB0aGUgcGFja2V0IGxlbmd0aC4NCj4gPj4+DQo+ID4+DQo+ID4+IElmIHRo ZSBwYWNrZXQgaXMgYmlnZ2VyIHRoYW4gNEtCLCB5b3UgaGF2ZSB0d28gb3B0aW9ucywNCj4gPj4g MS0gVXNlIG11bHRpcGxlIGNoYWluZWQgYnVmZmVycyBpbiBTUEINCj4gPj4gMi0gVXNlIHNpbmds ZSBMUEIgYnVmZmVyDQo+ID4+DQo+ID4+IEFzIEkgdW5kZXJzdGFuZCAoMikgaXMgdXNlZCBpbiB0 aGlzIGNhc2UsIGJ1dCBJIHRoaW5rIHdlIHNob3VsZA0KPiA+PiBjbGFyaWZ5IGhvdyB0aGlzIGZl YXR1cmUgd29ya3Mgd2l0aCAnUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVInDQo+ID4+IG9mZmxv YWQsIGlmIGl0IGlzIHJlcXVlc3RlZCBieSB1c2VyLg0KPiA+Pg0KPiA+PiBPciBsZXRzIHNheSBI VyBoYXMgdHdvIHBvb2xzIHdpdGggMUsgYW5kIDJLIHNpemVzLCB3aGF0IGlzIGV4cGVjdGVkDQo+ ID4+IHdpdGggNEsgcGFja2V0LCB3aXRoIG9yIHdpdGhvdXQgc2NhdHRlcmVkIFJ4IG9mZmxvYWQ/ DQo+ID4+DQo+ID4NCj4gPiBBcyBtZW50aW9uZWQsIE1hcnZlbGwgc3VwcG9ydHMgdHdvIHBvb2xz LCBwb29sLTEoU1BCKSBhbmQgcG9vbC0yKExQQikNCj4gPiBJZiB0aGUgcGFja2V0IGxlbmd0aCBp cyB3aXRoaW4gcG9vbC0xIGxlbmd0aCBhbmQgaGFzIG9ubHkgb25lIHNlZ21lbnQgdGhlbiB0aGUN Cj4gcGFja2V0IGlzIGFsbG9jYXRlZCBmcm9tIHBvb2wtMS4NCj4gPiBJZiB0aGUgcGFja2V0IGxl bmd0aCBpcyBncmVhdGVyIHRoYW4gcG9vbC0xIG9yIGhhcyBtb3JlIHRoYW4gb25lIHNlZ21lbnQg dGhlbg0KPiB0aGUgcGFja2V0IGlzIGFsbG9jYXRlZCBmcm9tIHBvb2wtMi4NCj4gPg0KPiA+IFNv LCBoZXJlIHBhY2tldHMgd2l0aCBhIHNpbmdsZSBzZWdtZW50IGFuZCBsZW5ndGggbGVzcyB0aGFu IDFLIGFyZQ0KPiA+IGFsbG9jYXRlZCBmcm9tIHBvb2wtMSBhbmQgcGFja2V0cyB3aXRoIG11bHRp cGxlIHNlZ21lbnRzIG9yIHBhY2tldHMgd2l0aA0KPiBsZW5ndGggZ3JlYXRlciB0aGFuIDFLIGFy ZSBhbGxvY2F0ZWQgZnJvbSBwb29sLTIuDQo+ID4NCj4gDQo+IFRvIGhhdmUgbXVsdGlwbGUgc2Vn bWVudCBvciBub3QgaXMgSFcgY29uZmlndXJhdGlvbiwgaXQgaXMgbm90IGV4dGVybmFsIHZhcmlh YmxlLg0KPiBEcml2ZXJzIG1vc3RseSBkZWNpZGUgdG8gY29uZmlndXJlIEhXIHRvIHJlY2VpdmUg bXVsdGlwbGUgc2VnbWVudCBvciBub3QgYmFzZWQNCj4gb24gYnVmZmVyIHNpemUgYW5kIG1heCBw YWNrZXQgc2l6ZSBkZXZpY2Ugc3VwcG9ydC4NCj4gSW4gdGhpcyBjYXNlIHNpbmNlIGJ1ZmZlciBz aXplIGlzIG5vdCBmaXhlZCwgdGhlcmUgYXJlIG11bHRpcGxlIGJ1ZmZlciBzaXplcywgaG93DQo+ IGRyaXZlciB3aWxsIGNvbmZpZ3VyZSBIVz8NCj4gDQo+IFRoaXMgaXMgbm90IHNwZWNpZmljIHRv IE1hcnZlbGwgSFcsIGZvciB0aGUgY2FzZSBtdWx0aXBsZSBtZW1wb29sIHN1cHBvcnRlZCwgaXQg aXMNCj4gYmV0dGVyIHRvIGNsYXJpZnkgaW4gdGhpcyBwYXRjaCBob3cgaXQgaXMgd29ya3Mgd2l0 aA0KPiAnUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVInIG9mZmxvYWQuDQo+IA0KDQpIZXJlLCBh cHBsaWNhdGlvbiBzZW5kcyBtdWx0aXBsZSBwb29scyB3aXRoIGRpZmZlcmVudCBidWZmZXIgbGVu Z3RocyB0byBQTUQgYW5kIFBNRCBmdXJ0aGVyIHByb2dyYW1zIEhXIGRlcGVuZGluZyBvbiBpdHMg YXJjaGl0ZWN0dXJlLg0KU2ltaWxhcmx5LCBpbiB0aGlzIGNhc2UsIHdoZXJlIG11bHRpcGxlIEhX IHBvb2xzIGFyZSBwcmVzZW50LCAgd2l0aCAnUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVInIGVu YWJsZWQsIFBNRCByZWNlaXZlcyBwYWNrZXRzL3NlZ21lbnRzIGJhc2VkIG9uIHRoZSBIVyBhcmNo aXRlY3R1cmUuDQpEZXBlbmRpbmcgdGhlIGFyY2hpdGVjdHVyZSwgaWYgYW55IGV4dHJhIHByb2dy YW1taW5nIGlzIHJlcXVpcmVkKGVpdGhlciB0byBpbXBsZW1lbnQgc29tZSBsb2dpYyBvciBIVyBw cm9ncmFtbWluZykgaW4gUlggcGF0aCwgaXRzIHRvIGJlIGltcGxlbWVudGVkIGluIHRoYXQgTklD IFBNRC4NCkFzIGZhciBhcyBtdWx0aXBsZSBwb29sIHN1cHBvcnQgaXMgY29uc2lkZXJlZCwgaW4g TWFydmVsbCBjYXNlLCBvbmNlIEhXIHBvb2xzIGFyZSBwcm9ncmFtbWVkIGluIGNvbnRyb2wgcGF0 aCwgdGhlcmUgaXMgbm90aGluZyB0byBiZSBkb25lIG9uIGZhc3QgcGF0aC4NCg0KU28sIEkgdGhp bmssIEl0IGRlcGVuZHMgb24gSFcgYXJjaGl0ZWN0dXJlIG9mIGhvdyBtdWx0aXBsZSBwb29sIGFu ZCBtdWx0aXBsZSBzZWdtZW50IHJlY2VpdmUgaXMgaW1wbGVtZW50ZWQuDQoNClBsZWFzZSBzdWdn ZXN0LCBpZiBJIGFtIG1pc3NpbmcgYW55IGdlbmVyaWMgc2NlbmFyaW8odXNlIGNhc2UpIGhlcmUu DQoNCj4gPj4+IEFzIHBvb2xzIGFyZSBwaWNrZWQgYmFzZWQgb24gdGhlIHBhY2tldHMgbGVuZ3Ro IHdlIHVzZWQgU09SVCB0ZXJtLg0KPiA+Pj4gSW4gY2FzZQ0KPiA+PiB5b3UgaGF2ZSBhbnkgYmV0 dGVyIHRlcm0od29yZCksIHBsZWFzZSBzdWdnZXN0Lg0KPiA+Pj4NCj4gPj4NCj4gPj4gd2hhdCBh Ym91dCBtdWx0aXBsZSBwb29sLCBsaWtlIFJURV9FVEhfUlhfT0ZGTE9BRF9NVUxUSVBMRV9QT09M LCBJDQo+ID4+IHRoaW5rIGl0IGlzIG1vcmUgY2xlYXIgYnV0IEkgd291bGQgbGlrZSB0byBnZXQg bW9yZSBjb21tZW50cyBmcm9tDQo+ID4+IG90aGVycywgbmFtaW5nIGlzIGhhcmQgOykNCj4gPj4N Cj4gPiBZZXMsIFJURV9FVEhfUlhfT0ZGTE9BRF9NVUxUSVBMRV9QT09MIGlzIGNsZWFyZXIgdGhh bg0KPiBSVEVfRVRIX1JYX09GRkxPQURfU09SVF9QT09MLg0KPiA+IFRoYW5rcyBmb3IgdGhlIHN1 Z2dlc3Rpb24uDQo+ID4gV2lsbCB1cGxvYWQgVjQgd2l0aCBSVEVfRVRIX1JYX09GRkxPQURfTVVM VElQTEVfUE9PTC4NCj4gPg0KPiA+Pj4+DQo+ID4+Pj4gQW5kIEkgZG9uJ3Qgc2VlIGFueSBjaGFu Z2UgaW4gdGhlICduZXQvY254aycgUnggYnVyc3QgY29kZSwgd2hlbg0KPiA+Pj4+IG11bHRpcGxl IG1lbXBvb2wgdXNlZCwgd2hpbGUgZmlsbGluZyB0aGUgbWJ1ZnMgc2hvdWxkbid0IGl0IGNoZWNr DQo+ID4+Pj4gd2hpY2ggbWVtcG9vbCBpcyBmaWxsZWQuIEhvdyB0aGlzIHdvcmtzIHdpdGhvdXQg dXBkYXRlIGluIHRoZSBSeA0KPiA+Pj4+IGJ1cnN0IGNvZGUsIG9yIGFtIEkgbWlzc2luZyBzb21l IGltcGxlbWVudGF0aW9uIGRldGFpbD8NCj4gPj4+Pg0KPiA+Pj4gUGxlYXNlIGZpbmQgUE1EIGNo YW5nZXMgaW4gcGF0Y2ggW3YyLDMvM10gbmV0L2NueGs6IGludHJvZHVjZSBwb29sDQo+ID4+PiBz b3J0IGNhcGFiaWxpdHkgSGVyZSwgaW4gY29udHJvbCBwYXRoLCBIVyBwb29scyBhcmUgcHJvZ3Jh bW1lZCBiYXNlZA0KPiA+Pj4gb24gdGhlDQo+ID4+IGlucHV0cyBpdCByZWNlaXZlZCBmcm9tIHRo ZSBhcHBsaWNhdGlvbi4NCj4gPj4+IE9uY2UgdGhlIEhXIGlzIHByb2dyYW1tZWQsIHBhY2tldHMg YXJlIHJlY2VpdmVkIG9uIEhXIHBvb2xzIGJhc2VkDQo+ID4+PiB0aGUNCj4gPj4gcGFja2V0cyBz aXplcy4NCj4gPj4NCj4gPj4gSSB3YXMgZXhwZWN0aW5nIHRvIGNoYW5nZXMgaW4gZGF0YXBhdGgg dG9vLCBzb21ldGhpbmcgbGlrZSBpbiBSeA0KPiA+PiBidXJzdCBmdW5jdGlvbiBjaGVjayBpZiBz cGIgb3IgbHBiIGlzIHVzZWQgYW5kIHVwZGF0ZSBtYnVmIHBvaW50ZXJzDQo+IGFjY29yZGluZ2x5 Lg0KPiA+PiBCdXQgaXQgc2VlbXMgSFcgZG9lc24ndCB3b3JrIHRoaXMgd2F5LCBjYW4geW91IHBs ZWFzZSBleHBsYWluIGhvdw0KPiA+PiB0aGlzIGZlYXR1cmUgd29ya3MgdHJhbnNwYXJlbnQgdG8g ZGF0YXBhdGggY29kZT8NCj4gPj4NCj4gPj4+Pg0KPiA+Pj4NCj4gPj4+IEkgd2lsbCB1cGxvYWQg VjMgd2hlcmUgUE9PTF9TT1JUIGlzIGltcGxlbWVudGVkIGFzIG5ldyBSWCBPRkZMT0FELA0KPiA+ Pj4gdW5sZXNzDQo+ID4+IElmIHlvdSBoYXZlIGFueSBvdGhlciBzdWdnZXN0aW9uL3Rob3VnaHRz Lg0KPiA+Pj4NCj4gPj4NCj4gPj4gPC4uLj4NCj4gPg0KDQo=