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 1C94A43A0F; Tue, 30 Jan 2024 17:08:46 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9488D402CD; Tue, 30 Jan 2024 17:08:45 +0100 (CET) Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2069.outbound.protection.outlook.com [40.107.102.69]) by mails.dpdk.org (Postfix) with ESMTP id 0BB6A402A8 for ; Tue, 30 Jan 2024 17:08:44 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jkLTdkzG6O1q8ayy/Rscg10lxTM0pzqsocnRud0db4GmbAhha0mI8gyobkxSYae1v1Jafsd/vlShp0edf7rAfSgUtm/mBsPFPHkpFckLr2KTqLgRNX4LStEUFp3FIrhiY2JfG5KJD9KJ6/VQYKH0F5GMnNrXDVf30fu8UyOsOcvJuMyLyce8h+RW3kQYM9DovRRMf1+fncrBf9zIlt05d2BXVx90a8ToWjhawQMT9DbYkCgbB90e//7Vqb3X6lgEnkPxgawiU5NzdsJxq0elM2jVfI8Evx1J9TnrBynoqUj5r2xdpPCbyinZW5LZ4uKDQcI4FerWCNAwRN6yMHq3rw== 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=H9fmRPzfyUKmQg+aV4owhWFPNS9+h+HuCgvOqk8KUWw=; b=VZlAjWH8BZsl/KdnLAQaqVE5gDN8WGxSZJxEgasoth3SoTnQ+OCE5NNIjnKcjB7AnK8nUCnBGirmUYahLM4JYXhTBdKNqXN52KNgIRbV+TA7sBi8D++QDHMi+qRpWkuolMC4OfdnV5Wezgq8CTlbhTVtsWpRR0wxdCCV7yoUChFljJd/BSQTkJzzUH+tL75wyAKchS60WcfqvkQnaB5OoektyyMTD5Z9X9KKLQ5+XAzFWhtlZsl7AxUuh2TbOfgnbWyq4GlSEDOr3fRpBdsLfkPbEFkLo4kX4P1Vcv1hnixM4/q0dMJ/1vm/uTVJPwgNzmQ781bmilJT8Ij25EQrfQ== 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=H9fmRPzfyUKmQg+aV4owhWFPNS9+h+HuCgvOqk8KUWw=; b=q7BU3jEf0lrfNJ0WbkAv2xLLQEX9+wRMlpYAD9I7s6Hj95ZFisyKoNR6N33ujJfdNg813DBwCasntUaQt7269MANhH45TgSLfzntdk+fMzLQyTZBpE6YAuO1JbEHvg7nibNzU5oXSzB3Lrc7DpsIo8bu4wqnxqXwafKI8qu+TsHVYixPJWCK42Pk/pnAAAewsxoz+9hMdkQT2rBzHBWRFke/HPlU8S6zFGx11zSNTVDzzTGo8iDlozvZ/uhFMXX9akRVfHdYqGP/VCMIS5+ow8FMq78ZqlUF3sdkinNB//SpcyHD2M7U7qguVZg5ROVRVD0Ll8iX9coFyRF1X6YIBg== Received: from IA1PR12MB8311.namprd12.prod.outlook.com (2603:10b6:208:3fa::12) by DM6PR12MB4249.namprd12.prod.outlook.com (2603:10b6:5:223::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Tue, 30 Jan 2024 16:08:38 +0000 Received: from IA1PR12MB8311.namprd12.prod.outlook.com ([fe80::708b:e498:d9c4:94]) by IA1PR12MB8311.namprd12.prod.outlook.com ([fe80::708b:e498:d9c4:94%4]) with mapi id 15.20.7228.029; Tue, 30 Jan 2024 16:08:35 +0000 From: Dariusz Sosnowski To: Ferruh Yigit , Stephen Hemminger CC: "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Andrew Rybchenko , Ori Kam , "dev@dpdk.org" Subject: RE: [RFC] ethdev: fast path async flow API Thread-Topic: [RFC] ethdev: fast path async flow API Thread-Index: AQHaOLOJMBiGV3bi0EOK9su1qim887C+8euAgAl5pJCAAHfyAIAeiClggAl+HjCAAFgigIABMtOggAAGbgCAABldsA== Date: Tue, 30 Jan 2024 16:08:35 +0000 Message-ID: References: <20231227105709.1951231-1-dsosnowski@nvidia.com> <20231228091657.14769682@hermes.local> <20240103170758.119e99d4@hermes.local> <97bbc06c-3baf-43fd-930d-27b01007f672@amd.com> <66c200cf-56e2-48f1-b386-78dbd9cdf78a@amd.com> In-Reply-To: <66c200cf-56e2-48f1-b386-78dbd9cdf78a@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA1PR12MB8311:EE_|DM6PR12MB4249:EE_ x-ms-office365-filtering-correlation-id: 509312f2-ba31-40c5-7b15-08dc21adb6c3 x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 1jiLpddSr+ZRhISn96W4GCqlipK+46D7Xc0T9ZJxTPp73UPuCw0cVBqVeQcAzuHNnXIGJORkJxEUWwLAh49d7aES5KELwr29NM3vJHsk+tuu1eB1yPnF/jcjN9wnIY6QeqDRzZS3Hm3rXV11skGQSeV6gbsAQl+Xfcpb1XWtjpwxMyan0NHPhyKwP5D6Jsn4lEnYwK5kPZQ5Vv9KRbyfwP5vjsc+k1VmDxUWsxwCvcrM3gdl6mglHeEtu7w+3V2ZP4+e15eQ2UHAQl/hNB6uAc3zNEgUdizDI3DvCpheTYRXuEfsaVnFWGCQZygXgo/os5FKVtH28ru/tFUAAQxTBhRx3mKoNYYX0GU4dc2xdf5cD9AwGwguqRmxhQQOx/63O7hk8Fzl0iVbwSniPA6yuXl9722H2iCvSRNxcKIOYghWLwBfUcFTSLYO1CzQ8iJ3brAePExQz0fpGzZ0e+RExceMZ3lY1PTWZec3mjxOARKi3+yB9CszuayELTL+3eTaTh5jxqFc2StRGPG30yIXSN8vRrtGoVU+f5ptNn2RItc2KpXMV8Z1xgjJt1NLXtg92f0l7CHAjgz6LqQo/2U79/l4d3zdT+6dFywU/2Vdadb58NQtz6mHx0OwGGQScgire5rRxRRF+bxPGDKPnrMNIPWzJcJY1oJ/wrfMC2Sc6oM= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:IA1PR12MB8311.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(346002)(136003)(396003)(39860400002)(376002)(230173577357003)(230273577357003)(230922051799003)(451199024)(186009)(1800799012)(64100799003)(83380400001)(26005)(41300700001)(71200400001)(478600001)(9686003)(7696005)(6506007)(53546011)(66476007)(66556008)(110136005)(54906003)(316002)(76116006)(64756008)(66446008)(66946007)(8936002)(4326008)(8676002)(122000001)(38100700002)(52536014)(55016003)(33656002)(5660300002)(86362001)(38070700009)(2906002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?elkxMXU1K3ZWVXBoQ3JINDNMbHB1ckRNeHBOY2FDQkMyNmJ1Nm5kejYvbG5y?= =?utf-8?B?dENzNTdCcnlMMUhFcFZDUEVSU1kzYXduM0V5M1VTRnhKMXNjbkdHS29xVXVY?= =?utf-8?B?aEt5aGJXQXdGWE14MVVCY0FuQXgvNmNSSDRkSUM1TFVzZXpYSEk2Q3VWa0RK?= =?utf-8?B?UytUeEtIWTRwZGNLYmN1dUgvdElBTnFHd1BDbmthRG85Nm56Uk9yZmlDeFhN?= =?utf-8?B?Z281aytqR0s3bjB1clBvcEdkWDdFbDdJbHpHREZ0VmhQT3E1dVFHeTF5dHZ3?= =?utf-8?B?T2hrb0xmRmxvS2hoZzFBK1N3YkhUd0hvcTVCK1NoMllPU2VlOWNwTC9teitp?= =?utf-8?B?aGZNS09RczZORWllVTh1N2Q3Uk8yRkF5a3dXd1hNdXQ3YjhoR2NlSG16bzVm?= =?utf-8?B?T0ZUOS9Vay9mRHlyK1Q1dTloejMxOHVhcGhsYlZ2dTZrUFBjQXM3MUVmWjAv?= =?utf-8?B?WVcyYmVHUE1KbHk4WW9UWkZ1eG9FS0xxcFJpZVVncDZNcXBMWmoxY0JiZ1dx?= =?utf-8?B?b3FwRjc5UjJSS1BCaURXK0dUWS9QbzlhK1NyanhmUHovazFXclhOd0N0dk12?= =?utf-8?B?U0JrdVZYNUJhZlc1MlZKSWU0QThHdlpIVEhQdVU5bkhnQ3VLTU8ycmZKWnhG?= =?utf-8?B?RktEY25ZQit4V0VKL3BPdGJDaGJTSEMzb3FNZFBXMlhSSDBGMU1May96WTBp?= =?utf-8?B?SnhDUDQ2WXpBWUJxZE9IZGRjVWVRb3FIaTlUaFdZeXZQVjNrZVViQzkxQTJ5?= =?utf-8?B?RG1zMll4cVdTeGVBTGszcmd5UUVzaTZhT0FzVXhvVVdGY2tWNXR5d1UyTzZM?= =?utf-8?B?QWY2N0cvdDFLYmxpdVBKa2p4Mk4zcitzOGQ3R2NHRy9IOUhla3hML1RHWUlQ?= =?utf-8?B?c3lwbkgxbU9DTkltZzFlTTRVM0xidnJMbXlZTkdmdloyS1k4NHE1cGQvbVg4?= =?utf-8?B?SzcrZDFHTEVCbkpTRWhwQjNkZFR3eWgwdTN6bitmRks0d3VjN3FIVDhiaXN5?= =?utf-8?B?YnRSNmRpTzVMbkRWK2VLMGY4ZkRaSm5Nd3RJU1hWQmVzRWpQdWpCR0V3WTU5?= =?utf-8?B?RkFoMkJ5aXpjYUVmQ2RsK3dYQk1rRlFzdlFuc3lsYnpRbFUwaVk1ZjN2aG85?= =?utf-8?B?VTA2Y2V3ZzFPOFMyblBrRzR3MUZzblVwWVFoQ3JleExndDJKSW51N0NhSFph?= =?utf-8?B?ZFp5YjVXNVIwRUI5bkZUUDZjNGZJUzE3cDFtS25OQnUrWmtab1VkcDRodmVz?= =?utf-8?B?SVpkaEhxUm5NZzRVRHBBMUdBeW5ZVUNKQVVLbm11Q1Q1d1lMSzF6Ukhab2xR?= =?utf-8?B?VWFvdjhIMzRRNnhOOXVoZFp6QWZoSjNrQ0k0UUdndWtyYUJxZEJkRVpWamxJ?= =?utf-8?B?aFVONmxtUStVU2xuZlQvUVdZQ0w5UG5ITmRsK2I5S2RZdkZaSXFQK00wVzZl?= =?utf-8?B?L3p6RmRqaXR0ejFZN3ZiNGUxeHpaTzk0Q1p4VFc2U2haT0xjeFRyQkpZMGEr?= =?utf-8?B?MmpOTWo3MUJTZGZjelBZWTc0ajhyQUM0dEhBejZtQWpPSzZiYmVHcWdtbTNQ?= =?utf-8?B?bE5qM3dpSWVPZW9KdzlhWXNVTUNhQmN1NFp0SE0rTVhkZXk5RXc2cVA5SE5r?= =?utf-8?B?M0w3OFowRkVpR1RtTjd1dlI3cFBQNFQxSU1jS2V3Y21wa3FOUVV0OTdVejU0?= =?utf-8?B?bmZDVDVETUFVUWxMemM5L2JhRTZsaStSMUFPQ0wrVVVlbDVoaUhqMk5DTkJG?= =?utf-8?B?b2pIN0p3QytNY1FNVUlKRXFER1ROenowNk1JdDd4NDQvVWplWWFOcmpQQ1Jp?= =?utf-8?B?YmhTYWxtU3JNNVg4SWdhUmxya25ybytuQ1JTc2x6aWpYSkNqL01UMXFuNnk0?= =?utf-8?B?QTRCclN3U3JrMjFTejNjT0hjNE5WdUszOHgweStZYXRYbGZrUTlCY1ZRclhk?= =?utf-8?B?NXRaOWlnUXpIN2RLQTJNSk5VeUxRN3NNcjNCSjZjdDN2YnlJZUlJc2NLK2o4?= =?utf-8?B?eTZndmV4Snh2b2haQWR0clFCUWpmcDRWQmdUN0hxYVFiVHFVREpleEIrbTVt?= =?utf-8?B?S3V1UHhLVmdrY0FWaTUrQ0lSUzVoYXlEY1lDazFQU2Q5bG9YaUNxWW1GdTNT?= =?utf-8?Q?L8GxDEg7oXKhnYKUtodH1DDG3?= 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: IA1PR12MB8311.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 509312f2-ba31-40c5-7b15-08dc21adb6c3 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jan 2024 16:08:35.8692 (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: QdqcQB2bzyiOWt2LWNiSZ0Cj4OKuUTsTSAeAlRxm9n0J6UqnoEqSWG0HYqrgOEw7xluwzr3NDSQjJqjE5r2OnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4249 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBGZXJydWggWWlnaXQgPGZlcnJ1 aC55aWdpdEBhbWQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBKYW51YXJ5IDMwLCAyMDI0IDEzOjE3 DQo+IFRvOiBEYXJpdXN6IFNvc25vd3NraSA8ZHNvc25vd3NraUBudmlkaWEuY29tPjsgU3RlcGhl biBIZW1taW5nZXINCj4gPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPg0KPiBDYzogTkJVLUNv bnRhY3QtVGhvbWFzIE1vbmphbG9uIChFWFRFUk5BTCkgPHRob21hc0Btb25qYWxvbi5uZXQ+Ow0K PiBBbmRyZXcgUnliY2hlbmtvIDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT47IE9yaSBL YW0NCj4gPG9yaWthQG52aWRpYS5jb20+OyBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtS RkNdIGV0aGRldjogZmFzdCBwYXRoIGFzeW5jIGZsb3cgQVBJIA0KPiANCj4gT24gMS8zMC8yMDI0 IDEyOjA2IFBNLCBEYXJpdXN6IFNvc25vd3NraSB3cm90ZToNCj4gPiBIaSBGZXJydWgsDQo+ID4N Cj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogRmVycnVoIFlpZ2l0 IDxmZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gPj4gU2VudDogTW9uZGF5LCBKYW51YXJ5IDI5LCAy MDI0IDE4OjM2DQo+ID4+IFRvOiBEYXJpdXN6IFNvc25vd3NraSA8ZHNvc25vd3NraUBudmlkaWEu Y29tPjsgU3RlcGhlbiBIZW1taW5nZXINCj4gPj4gPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3Jn Pg0KPiA+PiBDYzogTkJVLUNvbnRhY3QtVGhvbWFzIE1vbmphbG9uIChFWFRFUk5BTCkgPHRob21h c0Btb25qYWxvbi5uZXQ+Ow0KPiA+PiBBbmRyZXcgUnliY2hlbmtvIDxhbmRyZXcucnliY2hlbmtv QG9rdGV0bGFicy5ydT47IE9yaSBLYW0NCj4gPj4gPG9yaWthQG52aWRpYS5jb20+OyBkZXZAZHBk ay5vcmcNCj4gPj4gU3ViamVjdDogUmU6IFtSRkNdIGV0aGRldjogZmFzdCBwYXRoIGFzeW5jIGZs b3cgQVBJDQo+ID4+DQo+ID4+IE9uIDEvMjkvMjAyNCAxOjM4IFBNLCBEYXJpdXN6IFNvc25vd3Nr aSB3cm90ZToNCj4gPj4+IEhpIGFsbCwNCj4gPj4+DQo+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBEYXJpdXN6IFNvc25vd3NraSA8ZHNvc25vd3NraUBudmlk aWEuY29tPg0KPiA+Pj4+IFNlbnQ6IFR1ZXNkYXksIEphbnVhcnkgMjMsIDIwMjQgMTI6MzcNCj4g Pj4+PiBUbzogU3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPg0K PiA+Pj4+IENjOiBOQlUtQ29udGFjdC1UaG9tYXMgTW9uamFsb24gKEVYVEVSTkFMKQ0KPiA8dGhv bWFzQG1vbmphbG9uLm5ldD47DQo+ID4+Pj4gRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAYW1k LmNvbT47IEFuZHJldyBSeWJjaGVua28NCj4gPj4+PiA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxh YnMucnU+OyBPcmkgS2FtIDxvcmlrYUBudmlkaWEuY29tPjsNCj4gPj4+PiBkZXZAZHBkay5vcmcN Cj4gPj4+PiBTdWJqZWN0OiBSRTogW1JGQ10gZXRoZGV2OiBmYXN0IHBhdGggYXN5bmMgZmxvdyBB UEkNCj4gPj4+Pg0KPiA+Pj4+IEhpIFN0ZXBoZW4sDQo+ID4+Pj4NCj4gPj4+PiBTb3JyeSBmb3Ig c3VjaCBhIGxhdGUgcmVzcG9uc2UuDQo+ID4+Pj4NCj4gPj4+PiBGcm9tOiBTdGVwaGVuIEhlbW1p bmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+DQo+ID4+Pj4gU2VudDogVGh1cnNkYXks IEphbnVhcnkgNCwgMjAyNCAwMjowOA0KPiA+Pj4+PiBPbiBXZWQsIDMgSmFuIDIwMjQgMTk6MTQ6 NDkgKzAwMDANCj4gPj4+Pj4gRGFyaXVzeiBTb3Nub3dza2kgPGRzb3Nub3dza2lAbnZpZGlhLmNv bT4gd3JvdGU6DQo+ID4+Pj4+PiBJbiBzdW1tYXJ5LCBpbiBteSBvcGluaW9uIGV4dGVuZGluZyB0 aGUgYXN5bmMgZmxvdyBBUEkgd2l0aA0KPiA+Pj4+Pj4gYnVsa2luZw0KPiA+Pj4+PiBjYXBhYmls aXRpZXMgb3IgZXhwb3NpbmcgdGhlIHF1ZXVlIGRpcmVjdGx5IHRvIHRoZSBhcHBsaWNhdGlvbiBp cw0KPiA+Pj4+PiBub3QNCj4gPj4gZGVzaXJhYmxlLg0KPiA+Pj4+Pj4gVGhpcyBwcm9wb3NhbCBh aW1zIHRvIHJlZHVjZSB0aGUgSS1jYWNoZSBvdmVyaGVhZCBpbiBhc3luYyBmbG93DQo+ID4+Pj4+ PiBBUEkgYnkNCj4gPj4+Pj4gcmV1c2luZyB0aGUgZXhpc3RpbmcgZGVzaWduIHBhdHRlcm4gaW4g RFBESyAtIGZhc3QgcGF0aCBmdW5jdGlvbnMNCj4gPj4+Pj4gYXJlIGlubGluZWQgdG8gdGhlIGFw cGxpY2F0aW9uIGNvZGUgYW5kIHRoZXkgY2FsbCBjYWNoZWQgUE1EIGNhbGxiYWNrcy4NCj4gPj4+ Pj4NCj4gPj4+Pj4gSW5saW5lIG5lZWRzIHRvIG1vcmUgZGlzY291cmFnZWQgaW4gRFBESywgYmVj YXVzZSBpdCBvbmx5IHdvcmtzIGlmDQo+ID4+Pj4+IGFwcGxpY2F0aW9uIGVuZHMgdXAgYnVpbGRp bmcgd2l0aCBEUERLIGZyb20gc291cmNlLg0KPiA+Pj4+PiBJdCBkb2Vzbid0IHdvcmsgZm9yIHRo ZSBMaW51eCBkaXN0cm8gcGFja2FnaW5nIG1vZGVsIGFuZCBzeW1ib2wNCj4gPj4+Pj4gdmVyc2lv bmluZywgZXRjLg0KPiA+Pj4+DQo+ID4+Pj4gSSB1bmRlcnN0YW5kIHRoZSBwcm9ibGVtLiBJbiB0 aGF0IGNhc2UsIEkgaGF2ZSBhIHByb3Bvc2FsLg0KPiA+Pj4+IEkgaGFkIGEgY2hhdCB3aXRoIFRo b21hcyByZWdhcmRpbmcgdGhpcyBSRkMsIGFuZCBoZSBub3RpY2VkIHRoYXQNCj4gPj4+PiB0aGVy ZSBhcmUgMiBzZXBhcmF0ZSBjaGFuZ2VzIHByb3Bvc2VkIGhlcmU6DQo+ID4+Pj4NCj4gPj4+PiAx LiBQZXItcG9ydCBjYWxsYmFja3MgZm9yIGFzeW5jIGZsb3cgQVBJLg0KPiA+Pj4+ICAgICAtIE1v dmVzIHNwZWNpZmllZCBjYWxsYmFja3MgdG8gcnRlX2Zsb3dfZnBfb3BzIHN0cnVjdCBhbmQgYWxs b3cNCj4gPj4+PiBQTURzIHRvIHJlZ2lzdGVyIHRoZW0gZHluYW1pY2FsbHkuDQo+ID4+Pj4gICAg IC0gUmVtb3ZlcyBpbmRpcmVjdGlvbiBhdCBBUEkgbGV2ZWwgLSBubyBuZWVkIHRvIGNhbGwgcnRl X2Zsb3dfb3BzX2dldCgpLg0KPiA+Pj4+ICAgICAtIFJlbW92ZXMgY2hlY2tpbmcgaWYgY2FsbGJh Y2tzIGFyZSBkZWZpbmVkIC0gZWl0aGVyIHRoZQ0KPiA+Pj4+IGRlZmF1bHQgRFBESyBjYWxsYmFj ayBpcyB1c2VkIG9yIHRoZSBvbmUgcHJvdmlkZWQgYnkgUE1ELg0KPiA+Pj4+IDIuIE1ha2UgYXN5 bmMgZmxvdyBBUEkgZnVuY3Rpb25zIGlubGluZWFibGUuDQo+ID4+Pj4NCj4gPj4+PiBDaGFuZ2Ug KDEpIHdvbid0IGJyZWFrIEFCSSAoZXhpc3RpbmcgY2FsbGJhY2tzIGluIHJ0ZV9mbG93X29wcyBj YW4NCj4gPj4+PiBiZSBtYXJrZWQgYXMgZGVwcmVjYXRlZCBmb3Igbm93IGFuZCBwaGFzZWQgb3V0 IGxhdGVyKSBhbmQgaW4gbXkNCj4gPj4+PiBvcGluaW9uIGlzIGxlc3MgY29udHJvdmVyc2lhbCBj b21wYXJlZCB0byBjaGFuZ2UgKDIpLg0KPiA+Pj4+DQo+ID4+Pj4gSSdsbCByZXJ1biB0aGUgYmVu Y2htYXJrcyBmb3IgYm90aCBjaGFuZ2VzIHNlcGFyYXRlbHkgdG8gY29tcGFyZQ0KPiA+Pj4+IHRo ZWlyIGJlbmVmaXRzIGluIGlzb2xhdGlvbi4NCj4gPj4+PiBUaGlzIHdvdWxkIGFsbG93IHVzIHRv IGRlY2lkZSBpZiBjaGFuZ2UgKDIpIGlzIHdvcnRoIHRoZSBkcmF3YmFja3MNCj4gPj4+PiBpdCBp bnRyb2R1Y2VzLg0KPiA+Pj4+DQo+ID4+Pj4gV2hhdCBkbyB5b3UgdGhpbms/DQo+ID4+Pg0KPiA+ Pj4gSSBzcGxpdCB0aGUgUkZDIGludG8gMiBwYXJ0czoNCj4gPj4+DQo+ID4+PiAxLiBJbnRyb2R1 Y2UgcGVyLXBvcnQgY2FsbGJhY2tzOg0KPiA+Pj4gICAgIC0gSW50cm9kdWNlIHJ0ZV9mbG93X2Zw X29wcyBzdHJ1Y3QgLSBob2xkcyBjYWxsYmFja3MgZm9yIGZhc3QNCj4gPj4+IHBhdGggY2FsbHMs IGZvcg0KPiA+PiBlYWNoIHBvcnQuIFBNRCByZWdpc3RlcnMgY2FsbGJhY2tzIHRocm91Z2ggcnRl X2Zsb3dfZnBfb3BzX3JlZ2lzdGVyKCkuDQo+ID4+PiAgICAgLSBSZWxldmFudCBydGVfZmxvd19h c3luY18qIGZ1bmN0aW9ucyBqdXN0IHBhc3MgYXJndW1lbnRzIHRvDQo+ID4+PiBmYXN0IHBhdGgN Cj4gPj4gY2FsbGJhY2tzLiBWYWxpZGF0aW9uIGNoZWNrcyBhcmUgZG9uZSBvbmx5IGlmIFJURV9G TE9XX0RFQlVHIG1hY3JvIGlzDQo+ID4+IGRlZmluZWQuDQo+ID4+PiAgICAgLSBCaWdnZXN0IGRp ZmZlcmVuY2UgaXMgdGhlIHJlbW92YWwgb2YgY2FsbGJhY2sgYWNjZXNzIHRocm91Z2gNCj4gPj4g cnRlX2Zsb3dfZ2V0X29wcygpLg0KPiA+Pj4gMi4gSW5saW5lIGFzeW5jIGZsb3cgQVBJIGZ1bmN0 aW9ucy4NCj4gPj4+ICAgICAtIFJlbGV2YW50IHJ0ZV9mbG93X2FzeW5jXyogZnVuY3Rpb25zIGRl ZmluaXRpb25zIGFyZSBtb3ZlZCB0bw0KPiA+Pj4gcnRlX2Zsb3cuaA0KPiA+PiBhbmQgbWFkZSBp bmxpbmVhYmxlLg0KPiA+Pj4NCj4gPj4+IEhlcmUgYXJlIHRoZSByZXN1bHRzIG9mIHRoZSBiZW5j aG1hcms6DQo+ID4+Pg0KPiA+Pj4gfCAgICAgICAgICAgICAgICAgICAgICAgfCBBdmcgSW5zZXJ0 aW9uIHwgRGlmZiBvdmVyIGJhc2VsaW5lIHwgQXZnDQo+ID4+PiB8IERlbGV0aW9uIHwgRGlmZiBv dmVyIGJhc2VsaW5lIHwNCj4gPj4+IHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0t LS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLQ0KPiAt LS0NCj4gPj4gLS0tLS0tLXwNCj4gPj4+IHwgYmFzZWxpbmUgKHYyNC4wMy1yYzApIHwgICAgIDU4 NTUuNCAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgIDkwMjYuOCAgICB8ICAgICAgICAgICAg ICAgICAgICB8DQo+ID4+PiB8IGFwcGxpZWQgKDEpICAgICAgICAgICB8ICAgICA2Mzg0LjIgICAg fCAgICArNTI4LjggKCs5JSkgICAgfCAgICAxMDA1NC4yICAgfCAgKzEwMjcuNA0KPiA+PiAoKzEx LjQlKSAgfA0KPiA+Pj4gfCBhcHBsaWVkICgyKSAgICAgICAgICAgfCAgICAgNjQzNC42ICAgIHwg ICArNTc5LjIgKCs5LjklKSAgIHwgICAgMTAwMTEuNCAgIHwgICArOTg0LjYNCj4gPj4gKCsxMC45 JSkgIHwNCj4gPj4+DQo+ID4+PiBSZXN1bHRzIGFyZSBpbiBLRmxvd3Mvc2VjLg0KPiA+Pj4gVGhl IGJlbmNobWFyayBpcyBjb250aW51b3VzbHkgaW5zZXJ0aW5nIGFuZCBkZWxldGluZyAyTSBmbG93 IHJ1bGVzLg0KPiA+Pj4gVGhlc2UgcnVsZXMgbWF0Y2ggb24gSVB2NCBkZXN0aW5hdGlvbiBhZGRy ZXNzIGFuZCB3aXRoIGEgc2luZ2xlDQo+ID4+PiBhY3Rpb24NCj4gPj4gRFJPUC4NCj4gPj4+IEZs b3cgcnVsZXMgYXJlIGluc2VydGVkIGFuZCBkZWxldGVkIHVzaW5nIGEgc2luZ2xlIGZsb3cgcXVl dWUuDQo+ID4+Pg0KPiA+Pj4gQ2hhbmdlICgyKSBpbXByb3ZlcyBpbnNlcnRpb24gcmF0ZSBwZXJm b3JtYW5jZSBieSB+MSUgY29tcGFyZWQgdG8NCj4gPj4+ICgxKSwNCj4gPj4gYnV0IGRlY3JlYXNl cyBkZWxldGlvbiByYXRlIGJ5IH4wLjUlLg0KPiA+Pj4gQmFzZWQgb24gdGhlc2UgcmVzdWx0cywg SSB0aGluayB3ZSBjYW4gc2F5IHRoYXQgbWFraW5nDQo+ID4+PiBydGVfZmxvd19hc3luY18qKCkN Cj4gPj4gY2FsbHMgaW5saW5lYWJsZSBtYXkgbm90IGJlIHdvcnRoIGl0IGNvbXBhcmVkIHRvIHRo ZSBpc3N1ZXMgaXQgY2F1c2VzLg0KPiA+Pj4NCj4gPj4+IFdoYXQgZG8geW91IGFsbCB0aGluayBh Ym91dCB0aGUgcmVzdWx0cz8NCj4gPj4+DQo+ID4+DQo+ID4+IEhpIERhcml1c3osDQo+ID4+DQo+ ID4+IEFzIGRpc2N1c3NlZCBiZWZvcmUsIGNvbnZlcnRpbmcgQVBJcyB0byBzdGF0aWMgaW5saW5l IGZ1bmN0aW9ucyBvcg0KPiA+PiBleHBvc2luZyAncnRlX2V0aF9kZXYnIGhhcyBjb25zIGJ1dCB3 aXRoIG9ubHkgYXBwbHlpbmcgZmlyc3QgcGFydA0KPiA+PiBhYm92ZSBzZWVtcyBnZXQgcmlkIG9m IHRoZW0gd2l0aCByZWFzb25hYmxlIHBlcmZvcm1hbmNlIGdhaW4sIHNvIEkNCj4gPj4gdGhpbmsg d2UgY2FuIGNvbnRpbnVlIHdpdGggdGhpcyBhcHByb2FjaCBhbmQgY29udGludWUgdG8gcmV2aWV3 cy4NCj4gPj4NCj4gPj4gTW9zdCBvZiB0aGUgJ3J0ZV9mbG93X2FzeW5jXyonIGFyZSBhbHJlYWR5 IG1pc3NpbmcgdGhlIGZ1bmN0aW9uDQo+ID4+IHZhbGlkaXR5IGNoZWNrLCBzbyBoYXZpbmcgYSBk ZWZhdWx0IChkdW1teT8pIHJ0ZV9mbG93X2ZwX29wcyBmb3IgdGhlbQ0KPiA+PiBzZWVtcyBldmVu IGFuIGltcHJvdmVtZW50IHRoZXJlLg0KPiA+Pg0KPiA+Pg0KPiA+PiBPbmx5IHByZXZpb3VzbHkg J3N0cnVjdCBydGVfZmxvd19vcHMnIHdhcyBjb21pbmcgZnJvbSBkcml2ZXJzLCBldGhkZXYNCj4g Pj4gbGF5ZXIgZG9lc24ndCBuZWVkIHRvIG1haW50YWluIGFueXRoaW5nLg0KPiA+PiBCdXQgd2l0 aCAncnRlX2Zsb3dfZnBfb3BzJyBzdHJ1Y3QsIGV0aGRldiBuZWVkcyB0byBzdG9yZSBhbm90aGVy DQo+ID4+IGFycmF5IHdpdGggZml4ZWQgKCdSVEVfTUFYX0VUSFBPUlRTJykgc2l6ZSB3aGljaCB3 aWxsIGJlIGFub3RoZXINCj4gPj4gYmxvY2tlciBpbiB0aGUgZnV0dXJlIHRvIGNvbnZlcnQgdGhp cyBmaXhlZCBhcnJheXMgdG8gZHluYW1pY2FsbHkgYWxsb2NhdGVkDQo+IGFycmF5cy4NCj4gPj4N Cj4gPj4gRm9yIHRoaXMsIGRvZXMgaXQgc3RpbGwgaGVscCB3ZSBhZGQgYW4gYSBuZXcgZmllbGQg dG8gInN0cnVjdA0KPiA+PiBydGVfZXRoX2RldiIsIGxpa2UgInN0cnVjdCBydGVfZmxvd19vcHMg KmZsb3dfb3BzIiwgc2ltaWxhciB0byAnZGV2X29wcyc/DQo+ID4+IFRoZSBpbmRpcmVjdGlvbiBz dGlsbCB3aWxsIGJlIHRoZXJlLCBidXQgZWxpbWluYXRlICdydGVfZmxvd19nZXRfb3BzKCknDQo+ ID4+IGNhbGwgYW5kIGNoZWNrcyBjb21lcyB3aXRoIGl0Lg0KPiA+PiBJZiBtYWtlcyBzZW5zZSwg aXMgdGhlcmUgYSBjaGFuY2UgdG8gZXhwZXJpbWVudCB0aGlzIGFuZCBnZXQgc29tZQ0KPiA+PiBw ZXJmb3JtYW5jZSBudW1iZXJzIHdpdGggaXQ/DQo+ID4gV2hpY2ggb3B0aW9uIGRvIHlvdSBoYXZl IGluIG1pbmQgc3BlY2lmaWNhbGx5Pw0KPiA+DQo+ID4gMS4gS2VlcGluZyBvbmx5IGZhc3QgcGF0 aCBjYWxsYmFja3MgaW4gImRldi0+Zmxvd19vcHMiLCBzbyAic3RydWN0DQo+IHJ0ZV9ldGhfZGV2 IiB3aWxsIGhvbGQgb25seSBhIHBvaW50ZXIgdG8gInN0cnVjdCBydGVfZmxvd19mcF9vcHMiIGFz IGRlZmluZWQgaW4NCj4gUkZDLg0KPiA+ICAgICAtIE9ubHkgYXN5bmMgZmxvdyBBUEkgd2lsbCB1 c2UgImRldi0+Zmxvd19vcHMtPmNhbGxiYWNrIi4NCj4gPiAgICAgLSBPdGhlciBBUElzIHdpbGwg Z28gdGhyb3VnaCAicnRlX2Zsb3dfb3BzX2dldCgpIg0KPiA+IDIuIEtlZXBpbmcgYWxsIGZsb3cg Y2FsbGJhY2tzIGluICJkZXYtPmZsb3dfb3BzIiwgc28gInN0cnVjdCBydGVfZmxvd19vcHMiLg0K PiA+ICAgICAtIEFzIGEgcmVzdWx0LCBJIHRoaW5rIHRoYXQgInJ0ZV9mbG93X2dldF9vcHMoKSIg Y291bGQgYmUgcmVtb3ZlZA0KPiBhbHRvZ2V0aGVyIGFzc3VtaW5nIHRoYXQgYWxsIGZ1bmN0aW9u cyBoYXZlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sDQo+ID4gICAgICAgY2hlY2tpbmcgZm9yIHBv cnQgdmFsaWRpdHkgKEVOT0RFViBpZiBwb3J0IG5vdCB2YWxpZCkgYW5kIHJldHVybmluZw0KPiBF Tk9TWVMuDQo+ID4NCj4gPiBSZWdhcmRsZXNzIG9mIHRoZSB2ZXJzaW9uLCBJIGNhbiBleHBlcmlt ZW50IHdpdGggYWRkaXRpb25hbCBpbmRpcmVjdGlvbi4NCj4gPg0KPiA+DQo+IA0KPiBCb3RoIGNh biB3b3JrLCBoYXMgc29tZSBjb25zLA0KPiANCj4gSSB0aGluayAicnRlX2Zsb3dfb3BzX2dldCgp IiBpcyBtb3JlIGNsZWFyIGFwcHJvYWNoIGFuZCBydGVfZmxvdyBBUElzIGFscmVhZHkNCj4gdXNp bmcgaXQsIHNvIG5vIGNoYW5nZSBpcyByZXF1aXJlZCwgYnV0IHVzaW5nIHNlcGFyYXRlIHN0cnVj dCBmb3IgZmFzdCBwYXRoIHdpbGwNCj4gY3JlYXRlIHR3byBkaWZmZXJlbnQgc3RydWN0cyBkcml2 ZXJzIG5lZWRzIHRvIGZpbGwsIGFuZCBib3RoIHVzZXMgc2xpZ2h0bHkgZGlmZmVyZW50DQo+IHdh eSB0byBwb3B1bGF0ZSB3aGljaCBpcyBub3QgbmljZS4NCj4gDQo+IEZvciB0aGlzIFJGQyBJIHRo aW5rIHdlIGNhbiBnbyB3aXRoIG9wdGlvbiAxLCBhbmQgY29uc2lkZXIgdXBkYXRpbmcgcmVzdCBp Zg0KPiB0aGVyZSBpcyBtb3JlIG1vdGl2YXRpb24gZm9yIGl0Lg0KDQpPaywgc291bmRzIGdvb2Qg dG8gbWUuDQoNCkkgcmVkaWQgdGhlIGJlbmNobWFyayB3aXRoICJkZXYtPmZsb3dfb3BzLT5jYWxs YmFjaygpIiBtZXRob2QuDQpUaGVyZSdzIG5vIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgZGlm ZmVyZW5jZSBiZXR3ZWVuIHRoaXMgYW5kIHN0YXRpYyBhcnJheSBvZiBydGVfZmxvd19mcF9vcHMs IHNvIEkgdGhpbmsgd2UgY2FuIGdvIHdpdGggb3B0aW9uIDEuDQpJJ2xsIHNlbmQgdGhlIHBhdGNo IGZvciByZXZpZXcgYXMgc29vbiBhcyBwb3NzaWJsZS4NCg0KQmVzdCByZWdhcmRzLA0KRGFyaXVz eiBTb3Nub3dza2kNCg==