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 42993A0543; Thu, 22 Sep 2022 16:46:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DFC4B40156; Thu, 22 Sep 2022 16:46:32 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2067.outbound.protection.outlook.com [40.107.93.67]) by mails.dpdk.org (Postfix) with ESMTP id 229C7400D7 for ; Thu, 22 Sep 2022 16:46:32 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QIxpudeAd07M+gL0vDAAkyFOW6UAtnstAridTaM5t4wSCFh+qb/c69D9Tu5Ww8ffMUGenyagRAqcUPI2mwiZvzFkg1vbxhoA9kNdUJwWNCIoX7HyNsNJfbVlxS82ouCrggHorTxOn6egU5iBNSLRgF/YWmAOoiTSPi1eKVVIiaLwefsdDvfg+oDGZQmacN6gt6qB/XXTAnCsDGz2FFPoe3wOOWvLpLruk8Pm/qoCNNFjP1FQoAG8GxZmuu/4tqmfjRgUnI+XQBEw5dGOmqT/Rq4bXdKnPiF0zIQe7PQqwV+jQ0G8hRwwY4B+5yVyZzRNQnLJ7GEcKgcJR7xvK5RTiQ== 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=STn6mUa8WLywEbeArwnbO1nXFgD1kFRqG57/Qt02W1E=; b=B1dbPPVHqVU2RRNoJAmYMp5agYGel+fHQhsnc9YVA8H3avXSxBHpIRFUko32iQeKSOKRFY7iXnXBFBKKYw+/MN5vkyD8OMfb5nrsXAonB5b/sZiUnMS/txZ9EQFvyusMp5ygSYbNKq1BBzf63QprPaAyXkSn1s1W/GfKOIQfWe/gEfhXsqwnTUnT+y3ApD8TjJQqjMwrCAQQB8v8ob69CkL59jkqAeH6izBr/SXhyRBDobdKELqlgMNebOQpgPpxmll4Bm5AQWiLcpviT/nIR4QnP5YAysKXSYyejFRrLQ3DsggmtkThTDua0tp9/ZOIqY1oUQDvT8puv2HdTcxdmw== 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=STn6mUa8WLywEbeArwnbO1nXFgD1kFRqG57/Qt02W1E=; b=fJ7RqcE+8dLY0HLTy0U1EA41oBYq6ga3tBNFl2GivMjq4RNi1pYvRjV3viEKt3PpOsO9RRu7caHTKKibSKVuwrHAZCGLtpA6Lio4QvGRV7/a/OkmmHvqASlXSd0/fEFAjNkBth9+FNg06MDQ2q0Rg6PfYf+ufz6pMNv0WP3VuhjcTDPW0uZ01PqcxFIwTY5OuUZfjNPLXW1Z/HsT0qYLzfhLKYYOZjFRJQXbKOtOdu0ahL8FKzNt2djiwECdz/+3DVWW5BKzRLxMrMwm0ULxsTWIAwGdYaTQMQXYvelCRjGFjJftMHr5aqIxktyjxibNc0hgIsMwnBPdeQUyrkl1Mg== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by CH3PR12MB7596.namprd12.prod.outlook.com (2603:10b6:610:14b::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.16; Thu, 22 Sep 2022 14:46:29 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::9847:f2a5:c4f:ec52]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::9847:f2a5:c4f:ec52%5]) with mapi id 15.20.5632.021; Thu, 22 Sep 2022 14:46:29 +0000 From: Ori Kam To: Ivan Malov CC: Andrew Rybchenko , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Rongwei Liu , Matan Azrad , Slava Ovsiienko , Aman Singh , Yuying Zhang , "dev@dpdk.org" , Raslan Darawsheh , "jerinj@marvell.com" , "ajit.khaparde@broadcom.com" Subject: RE: [PATCH v1] ethdev: add direction info when creating the transfer table Thread-Topic: [PATCH v1] ethdev: add direction info when creating the transfer table Thread-Index: AQHYwmNBlMPGSxWFbECmDbi50+NQZa3cDLOAgAFdCwCAAAzvgIAA9vIAgAAlywCAAC4vAIAAU/oAgACiMQCAAHInAIAAEUWAgAAkdICAAATEgIAHt1DAgAA9WICAAAyHcIAAIM+AgADwaXCAADbcAIAACcuAgAAGtYCAACjowIAABEJQgAE8sgCAACQsgIAAMMQAgAAFCZA= Date: Thu, 22 Sep 2022 14:46:29 +0000 Message-ID: References: <20220907024020.2474860-1-rongweil@nvidia.com> <4733483b-effe-1eac-cbf-d238e1ec2b8@oktetlabs.ru> <13527775.RDIVbhacDa@thomas> <98CBD80474FA8B44BF855DF32C47DC35D87342@smartserver.smartshare.dk> <70f9638b-1f35-e4c8-87ad-a0ae4d44f475@oktetlabs.ru> In-Reply-To: <70f9638b-1f35-e4c8-87ad-a0ae4d44f475@oktetlabs.ru> 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: MW2PR12MB4666:EE_|CH3PR12MB7596:EE_ x-ms-office365-filtering-correlation-id: b3213dd7-f900-4817-b929-08da9ca93c04 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: WuHHP5jwD316fHdL0rKgIcXzEoNCWKYR76F3Z9I+DYjhb1gOyjHS6pX4KYUEgDXS/l5KHW1RidUGCs8/NNe7zhu5Xjlt8Fq7dnKVQ0ubz88DO0YLyvWg6k4/cMaf5JCOkyNpHEvt1I4IrRBtcEMBm/LdBIObar6p38h7/CuKatPnpH58X6wTtMLGd2FZ+1Hh7qzxoYqcLq7rA3PzAsOxVrauxM8snY2mcrdJFupbRv/qy+hITAaeQv/SEZkpJF695IsjrXLK+EafsYQ50LXm81GcSqiNaH1H+17aJjO0QcZLhvF7ETUcFVXL8Ux7X4QZYLXJdQoWN00W9HeSDNuEt0It4VhMXX5waPYBK98yPhlkNPRD/kAOn65Et5iE7qtb19Vrm9aI8FwOqJPe3+uZYgmm2i0XXd9/7D0EH372NhkmVfDboUYEx+7zobbscFpI1K5ZixEK//fj0LYXXHExsI4pLCyCB3HyOrkAAmDuZwVXV6uqksXqniIkyHc3gFdLbeq97q/9EMao7rSnJJ6+OAiiMqjvlvS8DCaCxZE9OC19Km2otyLjmU3nLNe1SahbxUs4MNXCz1u9xLNLu0wPbxSUZUOUY68nBi42Vhgy9UIymu20EiGax863yffg6/5r5wyD5ygEQlv4YDz33KW7sywsKkqVANYTzBggfzqNe81Ht/OS/rSTgYm1ZekN9kaTrdqaBii0egdHYIRaBZNJoeFbPTBihvU9vpgFzGeTPOupw7j0nFnO871LIHyfkmt54C/mVof7Bu/5NGxAWSlXgg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB4666.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(136003)(396003)(376002)(346002)(366004)(39860400002)(451199015)(76116006)(83380400001)(86362001)(66574015)(122000001)(41300700001)(186003)(55016003)(38100700002)(38070700005)(64756008)(5660300002)(2906002)(8676002)(8936002)(52536014)(316002)(66946007)(6916009)(66556008)(66476007)(66446008)(54906003)(4326008)(9686003)(7696005)(6506007)(53546011)(26005)(478600001)(71200400001)(33656002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OHg3ZzdpQkl0WlZFbjE5U2ZncTVPL25aVFdkeDJueXpFbkEySjFsbjNvQ0cz?= =?utf-8?B?dWVpdG5QeUdsNGN5eFhWRW0zV3d0SWtLMWc2VFZCTHBlUXVnMWhrYWl0bUpG?= =?utf-8?B?ckFaMEFOTXNLc1JPQ0swSm44WStYeEE3SFc0WDNaci96RUxwTmpLYWI3cFA2?= =?utf-8?B?d1dVWDU5Q3NyWlByT3orNFlaTEhtUXVBcTRqNTVTei9VbzRDeHlUd2hUNDhx?= =?utf-8?B?NlYvSkZUblZsanhDY0JtWTBGOVR5ZkNCNG1nTnRnRDJBc1pZSGVjMmNkaXdx?= =?utf-8?B?M2VZTzdEeE5KZ3QxcUpJQU1rTzBzM3diNHZrTmVSN3RSeGhpNkg4bnNSN2VT?= =?utf-8?B?VXZqMEdYb1dPdDhVRUV4R1ViNjI5L0U0TjlzYVdhR1BWaGJLS25YMFNXSWNW?= =?utf-8?B?Y1ZSYXdVTTNsMVczMFlzdUJuUlRzV2RmK21hdGFMNDNEYWZwc2VqUWhNSUFE?= =?utf-8?B?elhBMEVRc1Vmb0srdVoxMDQxSmxQOTYvY3FTRXA1L2h2azNWU2lmYUdNL1pK?= =?utf-8?B?Mm0yNWpPRWdRL0EzczEvamZwNFFwa1B0THRiOUIxS3c0NnFQTnRaSEZJSzdE?= =?utf-8?B?S0RnRURMS2RZemI5dlBMUlpWRjc0cTJWMk9wNnRwRjBYRmdpT0FPQWhsMklw?= =?utf-8?B?ZkJIeVduSXFLbWxZWlJ2N1ZLTzIzZW5SUll5bEpjckR4ZExaQlU3bFFodTdW?= =?utf-8?B?ZTF3U05KK1pBVUFrOUJCcVhPYzJEUlJWV2kyRjNRQm5QMkNCVE9aUnhCY3BQ?= =?utf-8?B?NHo3RTZJZExKa0JGcWtTMGJpaHBtL0g4WkFMS3NIcmtaOGhjT2g4emhiTzlv?= =?utf-8?B?SmQzTTExdjRURzFQeldMSlZPNWdrUy9BR1RCTUdSYm00Yy90bzJBV3pmK1Q3?= =?utf-8?B?RFUxMU1zN3hrZ21za2pxc2czd0g0S1JkRks2U1BlWUI5ZndjWGcwNzNycUI4?= =?utf-8?B?NE1SSzU2MThocFE4Zk5naHFWUWoveUYvQ3REOGlEU2Q4RkN6TnF2OFY5ZTN3?= =?utf-8?B?R3lHa1hNQjlZcDM5dXZLR2Y2NXBPRTVEQm5ZdlF3T0x2N3lNYWJOV3hCTVdR?= =?utf-8?B?YkZXWXU1Zm5zd0h1TVZncWdjR2VFaVBjZlh0UWJxRlpjOEU3dDZxa3NNVVR6?= =?utf-8?B?ZVJTYkVSZHcwK2ovSGZFV0ZIY1NQdUNJb3dobzBUU20rUDdKc3d2c3d0SW9j?= =?utf-8?B?K2FuVVVCWVZjaHNxYnBSOGtpYUE5THloUXE4VWhmSnRjcDVIZGR5SXRZdEkw?= =?utf-8?B?T3NQVkQ5elFoR0hsUzZMZStMYUZtRjc4YU1RUHBaVEpZMXNoczQwWmE4OVRN?= =?utf-8?B?Ulk2L0t4WE8xdStDczNWWmVqemVBY3E4VEx2NU5RbDlEN1hpY0NXOGVBWTA3?= =?utf-8?B?dUVKa29OOEs0THJ1U0hYM0tlM2ppRWJoSUtydkE4OFg5dkpEU1kzU1FHL1B6?= =?utf-8?B?Vk95K2k1MDBXcHgxMkFFUUR0U0YvaGJMa1Vhbk9EUEdPU1dXWmdTUVd0WUpI?= =?utf-8?B?R2hWeFNVVldiK0J0YUcxTU1mNFljbHhKVEt5OTZMMExwTjNwcGMxeVA5cUk4?= =?utf-8?B?Q3JyZTRhdkRnaHgrYWxPY0xFUXNxdkxzenY3SVIveWFuTmQzSFhyV3Rta3Nl?= =?utf-8?B?NUFISDdoRmJFaHZvTkFrWGs2SUJwL0NrVCtWMjZiRzFhWmlYNzMxRlRmZXdp?= =?utf-8?B?VDFldHN0N20zTy9icHQxWHpzOXNoc1l6c01FeXRBOTJtczRQK0J3THFlZUJM?= =?utf-8?B?alVuUjMzcC85ZkMrZVBycTR0NW9YRjFEL3N1WkNUeENWU0MvT1dPQlNMS0s3?= =?utf-8?B?NWJ3SG94TFRDclFidDVrdmdaa2FvMGE4K0ZLSTFuem9kVEkvVHQ2YjdiMFJn?= =?utf-8?B?cTUwOGE5dGdGVitlcTRhcWZlUVZ3QjNFeGZrZ29nTGtCczhRdzBZanRmUnVZ?= =?utf-8?B?V0ZRZUc0a0ovWVluMWpMY2JlVXJDK2hwVzdOcVVZUnpYb3FIRy9LU0dYTi9K?= =?utf-8?B?bGI2c3BwbVhscUJKbkYzL2grU3hjMy9qVHk1UzVYZXRGcUI0SzVkSktRR0tC?= =?utf-8?B?RWdtNFRPb210dzlVdDNiNmVYZ1Z4Z0NsUVg0THYzRXRQUys2dit5WHc3VVRo?= =?utf-8?Q?J17o=3D?= 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: MW2PR12MB4666.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3213dd7-f900-4817-b929-08da9ca93c04 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Sep 2022 14:46:29.6538 (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: CJ2Mdw+drKuHDtOUh2USww/Ak3JjFXg2DjJU45YGHykfdAMifO1BLcljFNQifOM+KaSvemUkqMK/NLlUEHcd8Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7596 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 SGkgSXZhbiwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBJdmFuIE1h bG92IDxpdmFuLm1hbG92QG9rdGV0bGFicy5ydT4NCj4gU2VudDogVGh1cnNkYXksIDIyIFNlcHRl bWJlciAyMDIyIDE1OjQzDQo+IA0KPiBIaSBPcmksDQo+IA0KPiBPbiBUaHUsIDIyIFNlcCAyMDIy LCBPcmkgS2FtIHdyb3RlOg0KPiANCj4gPiBIaSBBbmRyZXcsDQo+ID4NCj4gPj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogQW5kcmV3IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5 YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+ID4+IFNlbnQ6IFRodXJzZGF5LCAyMiBTZXB0ZW1iZXIg MjAyMiAxMDozOQ0KPiA+Pg0KPiA+PiBPbiA5LzIxLzIyIDE1OjUxLCBNb3J0ZW4gQnLDuHJ1cCB3 cm90ZToNCj4gPj4+PiBGcm9tOiBPcmkgS2FtIFttYWlsdG86b3Jpa2FAbnZpZGlhLmNvbV0NCj4g Pj4+PiBTZW50OiBXZWRuZXNkYXksIDIxIFNlcHRlbWJlciAyMDIyIDE0LjQxDQo+ID4+Pj4NCj4g Pj4+Pj4gRnJvbTogQW5kcmV3IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMu cnU+DQo+ID4+Pj4+DQo+ID4+Pj4+IE9uIDkvMjEvMjIgMTI6NDAsIFRob21hcyBNb25qYWxvbiB3 cm90ZToNCj4gPj4+Pj4+IDIxLzA5LzIwMjIgMTE6MDQsIEl2YW4gTWFsb3Y6DQo+ID4+Pj4+Pj4g Tm93IGl0J3MgY2xlYXIgdG8gbWUgdGhhdCB5b3VyIGludGVudGlvbiBpcyB0byBtYXRjaCBvbiBl eGFjdA0KPiA+Pj4+IHBvcnRzLA0KPiA+Pj4+Pj4+IGFzIHVzdWFsLCBidXQgdGhpcyB0aW1lIHdp dGggYSBoaW50IGZvciB0aGUgZmxvdyB0YWJsZS4gR290IGl0Lg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+ Pj4gSW4geW91ciByZXNwb25zZSwgeW91IHNheSB0aGF0IG1hdGNoaW5nIG9uIEFMTCB2cG9ydHMg aXMgbm90IHdoYXQNCj4gPj4+Pj4+PiB0aGUgdXNlIGNhc2UgbmVlZHMuIE9LLCBJIHVuZGVyc3Rv b2QuIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IHRoZQ0KPiA+Pj4+Pj4+IGl0ZW0gbmFtZSBkb2VzIG5v dCBzYXkgIkFMTCIsIGl0IHNheXMgIkFOWSIuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBPSy4gU2F5 LCAiQU5ZIiBpcyBhbHNvIGNvbmZ1c2luZy4gTGV0J3MgdGhlbiBuYW1lIGl0DQo+ICJWUE9SVFNf T05MWSINCj4gPj4+Pj4+PiBhbmQgIlBIWV9QT1JUU19PTkxZIi4gVGhpcyB3YXksIGlmIHVzZXIg cHJvdmlkZXMgaXRlbQ0KPiA+PiBWUE9SVFNfT05MWQ0KPiA+Pj4+Pj4+IGFuZCB0aGVuICBwcm92 aWRlcyBpdGVtIFJFUFJFU0VOVEVEX1BPUlQsIHRoZXNlIHR3byBpdGVtcyBkbw0KPiBub3QNCj4g Pj4+Pj4+PiBjb250cmFkaWN0IGVhY2ggb3RoZXIuIEl0ZW0gVlBPUlRTX09OTFkgZGVmaW5lcyB0 aGUgc2NvcGUgb2YNCj4gc29tZQ0KPiA+Pj4+Pj4+IGtpbmQsIHRoZW4gdGhlIGZvbGxvd2luZyBp dGVtLCBSRVBSRVNFTlRFRF9QT1JULCBtYWtlcyBpdA0KPiA+Pj4+IG5hcnJvd2VyLg0KPiA+Pj4+ Pj4+DQo+ID4+Pj4+Pj4gQW5kLCBpbiBkb2N1bWVudGF0aW9uLCBvbmUgY2FuIHNheSBjbGVhcmx5 IHRoYXQgdGhlIHVzZXIgKm1heSoNCj4gPj4+Pj4+PiBvbWl0IGl0ZW0gVlBPUlRTX09OTFkgaW4g dGhlIGV4YWN0IHJ1bGUgcGF0dGVybiBwcm92aWRlZCB0aGF0DQo+ID4+Pj4+Pj4gdGhleSBoYXZl IGFscmVhZHkgc3VibWl0dGVkIHRoaXMgaXRlbSBhcyBwYXJ0IG9mIHRoZSB0ZW1wbGF0ZS4NCj4g Pj4+Pj4+DQo+ID4+Pj4+PiBJIHRoaW5rIHRoZSBwcm9ibGVtIHRoYXQgUm9uZ3dlaSAmIE9yaSBh cmUgdHJ5aW5nIHRvIHNvbHZlDQo+ID4+Pj4+PiBpcyB0byBhbGxvY2F0ZSByZXNvdXJjZXMgZm9y IHRoZSB0ZW1wbGF0ZXMgdGFibGUgaW4gdGhlIHJpZ2h0DQo+ID4+Pj4gcGxhY2UuDQo+ID4+Pj4+ PiBBIHRhYmxlIGNhbiBoYXZlIG11bHRpcGxlIHRlbXBsYXRlcy4NCj4gPj4+Pj4+IElmIGFsbCBy dWxlcy90ZW1wbGF0ZXMgZm9yIHRoaXMgdGFibGUgYXJlIGRlZGljYXRlZCB0byB2aXJ0dWFsDQo+ ID4+Pj4gcG9ydHMsDQo+ID4+Pj4+PiB0aGVuIHRoZSB0YWJsZSB3aWxsIGJlIGFsbG9jYXRlZCBp biBhIHBsYWNlIG1hbmFnaW5nIG9ubHkgdmlydHVhbA0KPiA+Pj4+IHBvcnRzLg0KPiA+Pj4+Pj4g VGhpcyBhbGxvY2F0aW9uIGRlY2lzaW9uIG11c3QgYmUgdGFrZW4gYXQgdGFibGUgY3JlYXRpb24s DQo+ID4+Pj4+PiB3aGVyZWFzIHJ1bGVzIHdpbGwgYmUgY3JlYXRlZCBsYXRlci4NCj4gPj4+Pj4+ IEluIG9yZGVyIHRvIGRvIHRoaXMgc3BlY2lmaWMgdGFibGUgYWxsb2NhdGlvbiBmb3IgdnBvcnRz LA0KPiA+Pj4+Pj4gd2UgbmVlZCB0byByZXN0cmljdCBhbGwgdGVtcGxhdGVzIG9mIHRoZSB0YWJs ZSB0byBiZSAidnBvcnRzIG9ubHkiLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgaG9wZSBpdCBtYWtl cyB0aGluZ3MgY2xlYXJlci4NCj4gPj4+Pj4+IE5vdyB0aGUgcXVlc3Rpb24gaXMgaG93IHRvIGFj aGlldmUgdGhpcz8gU29sdXRpb25zIGFyZToNCj4gPj4+Pj4+DQo+ID4+Pj4+PiAxLyBnaXZlIGEg aGludCB0byB0aGUgdGFibGUgYWxsb2NhdGlvbg0KPiA+Pj4+Pj4gMi8gaW5zZXJ0IGEgcGF0dGVy biBpdGVtIGluIGFsbCB0ZW1wbGF0ZXMgb2YgdGhlIHRhYmxlDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4g SSBkb24ndCBzZWUgYW55IG90aGVyIHNvbHV0aW9uLiBQbGVhc2UgcHJvcG9zZSBpZiB0aGVyZSBh cmUgbW9yZQ0KPiA+Pj4+IG9wdGlvbnMuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4NCj4g Pj4+Pj4gU2VlIG15IG1haWwNCj4gPj4+Pj4NCj4gPj4+Pj4gMy8gdXNlIGp1bXAgcnVsZSB3aGlj aCBlbnN1cmVzIHRoYXQgYWxsIHRyYWZmaWMgbWVldHMgb3V0DQo+ID4+Pj4+ICAgICAgZXhwZWN0 YXRpb25zDQo+ID4+Pj4+DQo+ID4+Pj4+IEl0IG1lYW5zIHRoYXQgdGhlIHRhYmxlIGNyZWF0aW9u IGNvdWxkIGJlIHBvc3Rwb25lZC4gT3IgdGhlDQo+ID4+Pj4+IHRhYmxlIGNvdWxkIGJlIHBlci1j b25maWd1cmVkIGF0IHRoZSBwb2ludCBvZiBjcmVhdGlvbiBhbmQNCj4gPj4+Pj4gZmluYWxpemVk IHdoZW4gd2Uga25vdyB0aGF0IGFsbCB0cmFmZmljIHdpbGwgYmUgZnJvbSB3aXJlcw0KPiA+Pj4+ PiBvciBmcm9tIHZwb3J0cy4gWWVzLCBpdCBjb21wbGljYXRlcyBpbnRlcm5hbHMgdG8gYWNoaWV2 ZQ0KPiA+Pj4+PiB0aGUgb3B0aW1pemF0aW9uLg0KPiA+Pj4+DQo+ID4+Pj4gU29ycnkgQW5kcmV3 IHlvdXIgc3VnZ2VzdGlvbiBpcyBub3QgYSB2YWxpZCBvbmUgZm9yIHRoZSBmb2xsb3dpbmcNCj4g Pj4+PiByZWFzb25zOg0KPiA+Pj4+IDEuIHRhYmxlIGNyZWF0aW9uIGNhbid0IGJlIHBvc3Rwb25l ZCB0aGlzIGlzIGEga2V5IGlkZWEgb2YgdGhlIHJ0ZV9mbG93DQo+ID4+Pj4gdGVtcGxhdGUgQVBJ Lg0KPiA+Pg0KPiA+PiBJIGd1ZXNzIG5vYm9keSBjYXJlcyBpZiBpdCBkZWxheXMgaW5zZXJ0aW9u IG9uIHRoZSBmaXJzdCBydWxlDQo+ID4+IG9ubHkuIEFueXdheSwgc2VlIGJlbG93Lg0KPiA+Pg0K PiA+Pj4+IDIuIHdlIGNhbiBuZXZlciBrbm93IHdoYXQgcnVsZXMgd2lsbCBiZSBpbnNlcnRlZCBp ZiB0aGUgYXBwbGljYXRpb24NCj4gPj4+PiBkb2Vzbid0IHRlbGwgdXMuDQo+ID4+Pj4gICAgICAg aG93IGNhbiB3ZSBrbm93IHRoaXMgaXMgdGhlIGxhc3QgcnVsZT8gV2hhdCBkbyB3ZSBkbyB3aXRo IHRoZQ0KPiA+Pj4+IGZpcnN0IHJ1bGU/DQo+ID4+Pj4gMy4gSSBkb24ndCBzZWUgaG93IGp1bXBp bmcgaGVscHMgc2luY2UgaXQgd29yc2VucyB0aGUgaXNzdWUgd2hlbiB5b3UNCj4gPj4+PiBqdW1w IHRvIGEgdGFibGUsDQo+ID4+Pj4gICAgICBob3cgZG9lcyB0aGUgUE1EIGtub3cgaWYgdGhpcyB0 YWJsZSBzaG91bGQgaGF2ZSBvbmx5IHdpcmUgb3Igb25seQ0KPiA+Pj4+IHZwb3J0cz8NCj4gPj4N Cj4gPj4gSnVtcCBydWxlcyBzYXkgc28uIFBNRCBjYW4gYW5hbHl6ZSB0aGVyZSBydWxlcy4NCj4g Pj4gTWF5IGJlIGp1c3QgbmVlZCBhbiBhdHRyaWJ1dGUgc2F5aW5nIHRoYXQgYWxsIGp1bXAgcnVs ZXMNCj4gPj4gdG8gdGhlIHRhYmxlIGFyZSBjb25maWd1cmVkIGFuZCBmdXJ0aGVyIGF0dGVtcHRz IHRvIHJlY29uZmlndXJlDQo+ID4+IHdpbGwgYmUgcmVqZWN0ZWQ/DQo+ID4+DQo+ID4NCj4gPiBU aGUgaWRlYSBpcyB0aGUgUE1EIHdpbGwgbm90IGFuYWx5emUgcnVsZXMuIFRoYXQgaXMgd2h5IHdl IGhhdmUgdGhlIHRhYmxlDQo+ID4gYW5kIHRlbXBsYXRlLg0KPiANCj4gUE1EcyB3aWxsIG5vdCBh bmFseXplICoqcnVsZXMqKiwgeWVzLiBCdXQgdGhhdCBkb2VzIG5vdCBkaXNtaXNzIHRoZQ0KPiBu ZWVkIHRvIGFuYWx5emUgKip0YWJsZXMqKiBhbmQgKip0ZW1wbGF0ZXMqKiB3aGVuIHRoZXkgYXJl IGNyZWF0ZWQuDQo+IEkuZS4gdGFibGUvdGVtcGxhdGUgY3JlYXRpb24gaXMgc29tZSBzb3J0IG9m ICJjb2xkIi8ic2xvdyIgcGF0aC4NCj4gVGhlIFBNRCBzZWVzIHRoZSBpdGVtIGluIHRoZSBwYXR0 ZXJuIGFuZCB0cmFuc2xhdGVzIGl0IHRvIHRoZQ0KPiBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBv ZiB0aGUgdGFibGUuIEp1c3QgbGlrZSBpdCAqKndvdWxkKioNCj4gZG8gaW4gY2FzZSBvZiB0aGUg YXR0cmlidXRlIGFwcHJvYWNoLiBCdXQgd2hlbiB0aGUgcnVsZXMNCj4gYXJlIGluc2VydGVkICgq KmhvdCoqIGFzeW5jIHBhdGgpLCB0aGUgUE1EIHNob3VsZCBqdXN0DQo+IGNvbGxlY3QgZXhhY3Qg InNwZWMiIHZhbHVlcyBmcm9tIHRoZSBwYXR0ZXJuIHdpdGhvdXQNCj4gYW5hbHl6aW5nIGl0LCBh cyBwZXIgdGhlIHByZXZpb3VzbHkgbGVhcm5lZCB0ZW1wbGF0ZS4NCj4gDQoNClJpZ2h0IHNvIHdo eSBzaG91bGQgd2UgZm9yY2UgdGhlIGFwcGxpY2F0aW9uIHRvIGdpdmUgdXMgd2hhdCANCndlIGJv dGggYWdyZWUgaXMganVzdCBhbiBoaW50IGZvciBlYWNoIHJ1bGUsIHRoZSBQTUQgd2lsbCBub3Qg dXNlIGl0DQpzbyB3aHkgZ2l2ZSBpdD8NCg0KPiBGcm9tIHRoZSBIVyByZXNvdXJjZSB1c2FnZSBw ZXJzcGVjdGl2ZSAoaW4geW91ciBjYXNlKSwNCj4gd2h5IGlzbid0IHN1Y2ggZGVzaWduIGdvb2Qg ZW5vdWdoPw0KPiANCg0KRnJvbSBteSBmaXJzdCByZXBseSBJIHRvbGQgeW91IHRoYXQgYm90aCB3 YXlzIGNhbiB3b3JrLg0KSSB0aGluayBhcyBTVyBkZXZlbG9wZXIgKG5vdCBhcyBOdmlkaWEgZ3V5 KSB0aGF0IHNpbmNlIHRoaXMgaXMgYW4gYXR0cmlidXRlDQpmb3IgdGhlIHRhYmxlLCBqdXN0IGxp a2UgeW91IHNhaWQgdGhlIG9ubHkgcGxhY2Ugd2UgdXNlIGl0IGlzIGR1cmluZyB0YWJsZSBjcmVh dGlvbg0KdGhlIGNvcnJlY3QgcGxhY2UgZm9yIGl0IGlzIGluIHRoZSB0YWJsZSBhbmQgbm90IGFz IHBhcnQgb2YgdGhlIHBhdHRlcm4uDQpQdXJlIFNXIGRlc2lnbi4NCg0KPiA+IFNvcnJ5LCBJIGRv bid0IHVuZGVyc3RhbmQgd2hhdCBhdHRyaWJ1dGUgY2FuIGJlIGluIGp1bXA/IFRoZSBqdW1wIGlz IGp1c3QNCj4gPiB0byB0YWJsZS4gSXQgY2FuJ3Qgc2F5IGFueXRoaW5nIGFib3V0IHRoZSB0YWJs ZSBkZXN0aW5hdGlvbiB0YWJsZS4NCj4gPiBUaGlzIGlzIGFsbCB0aGlzIHBhdGNoIGFkZHMgdGhl IGF0dHJpYnV0ZSB0byBhIHRhYmxlIHRvIHNheSB3aGVyZSB0aGlzDQo+ID4gdGFibGUgc2hvdWxk IGJlIGxvY2F0ZWQuDQo+ID4NCj4gPj4+Pg0KPiA+Pj4+IEkgYWdyZWUgd2l0aCBUaG9tYXMsIHRo ZXJlIGFyZSB0d28gdmFsaWQgb3B0aW9ucywgSSB2b3RlIGZvciB0aGUgaGludA0KPiA+Pj4+IHNp bmNlIHRoaXMgaXMgdGhlDQo+ID4+Pj4gZmVhdHVyZSBpZGVhIHRvIHRlbGwgdGhlIFBNRCB3aGVy ZSB0aGlzIHJlc291cmNlIHNob3VsZCBiZSBhbGxvY2F0ZWQuDQo+ID4+Pg0KPiA+Pj4gVGhpcyBp cyBhbiBvcHRpbWl6YXRpb247IEkgYWdyZWUgd2l0aCBPcmkgdGhhdCBhIGhpbnQgaXMgYXBwcm9w cmlhdGUsIGxpa2UgdGhlDQo+ID4+IE1CVUZfRkFTVF9GUkVFIGhpbnQgb24gVFggcXVldWVzLg0K PiA+Pj4NCj4gPj4+IE5vIG5lZWQgdG8gYWRkIG1vcmUgY29tcGxleGl0eSBieSByZXF1aXJpbmcg dGhlIGRyaXZlciB0byByZWNvZ25pemUNCj4gdGhhdA0KPiA+PiB0aGUgcGF0dGVybiBpcyBwcmVz ZW50IGluIGFsbCB0ZW1wbGF0ZXMuIChBbmQgcGVyaGFwcyBhbHNvIHJlbW92ZSB0aGF0DQo+ID4+ IHBhdHRlcm4gd2hlbiBhcHBseWluZyB0aGUgdGVtcGxhdGVzLikNCj4gPj4NCj4gPj4gV2hhdCBk b2VzIHRoZSBwYXJ0IG9mIHRoZSBtYXRjaGluZyBjcml0ZXJpYSBzbyBzcGVjaWFsDQo+ID4+IHRo YXQgaXQgaXMgYWxsb3dlZCB0byBoYXZlIGRlZGljYXRlZCBoaW50IGF0dHJpYnV0ZT8NCj4gPj4N Cj4gPj4gTWF5IGJlIHdlIGNhbiBoYXZlIHJlYWxseSBnZW5lcmljIHNvbHV0aW9uIHdoZW4gYW55 DQo+ID4+IHBhcnQgb2YgdGhlIG1hdGNoaW5nIGNyaXRlcmlhIGNvdWxkIHByb3ZpZGUgc3VjaCBo aW50cz8NCj4gPg0KPiA+IFRoYXQgaXMgdGhlIHBvaW50IEkga2VlcCByZXR1cm5pbmcgdG8sIGl0 IGlzIG5vdCBtYXRjaGluZyENCj4gDQo+IExldCdzIGZhY2UgaXQ6IHRoZXNlIGF0dHJpYnV0ZXMg YXJlIGluIGZhY3QgbWF0Y2hpbmcsIHdoaWNoLA0KPiBpbiB0aGUgY2FzZSBvZiBNTFg1LCBpcyB0 cmFuc2xhdGVkIGludG8gcmVzb3VyY2UgcHJvcGVydGllcy4NCj4gSS5lLiwgdG8gTUxYNSAoaW50 ZXJuYWxseSEpLCB0aGVzZSBhdHRyaWJ1dGVzIGFyZSBpbmRlZWQNCj4gbm90IG1hdGNoaW5nIGJ1 dCBzZXBhcmF0ZSByZXNvdXJjZSBhbGxvY2F0aW9uLiBHb3QgaXQuDQo+IA0KDQpIYXBweSB0byBo ZWFyLg0KDQo+IEJ1dCB3aGF0IGFib3V0IG90aGVyIHZlbmRvcnM/IEkgZ3Vlc3MsIGhhcmRseSBj YW4gc29tZW9uZQ0KPiBzYXkgZm9yIHN1cmUgdGhhdCBvdGhlcnMnIGludGVybmFscyB3b3JrIHRo ZSBzYW1lIHdheS4uLg0KPiANCg0KTWF5YmUgc29tZSBwbGVhc2Ugc2VlIG15ICBhbnN3ZXIgdG8g QW5kcmV3LA0KdGhlIGlkZWEgaXMgdGhhdCB3ZSBpbiBEUERLIHdhbnQgdGhlIGJlc3QgaW5zZXJ0 aW9uIGZvciBhbGwgdmVuZG9ycywNCmFueSB2ZW5kb3IgdGhhdCB0aGlua3MgaGUgY2FuIGdldCBh IHBlcmYgYm9vc3QgYnkgZ2V0dGluZyBhIGhpbnQgZnJvbSANCnRoZSBhcHBsaWNhdGlvbiB3aWxs IGdldCBteSBzdXBwb3J0LiBUaGlzIGlzIHRoZSBpZGVhIG9mIHRlbXBsYXRlIEFQSSBhbmQNCmZh c3QgaW5zZXJ0aW9uLg0KDQo+ID4gVGhpcyBpcyBvbiB3aGljaCBIVyByZXNvdXJjZSB0aGUgdGFi bGUgc2hvdWxkIGJlIGFsbG9jYXRlZC4NCj4gPiBUaGluayBhYm91dCBpbmdyZXNzL2VncmVzcy90 cmFuc2ZlciB3aHkgYXJlIHRoZXkgbm90IGluIHRoZSAgcGF0dGVybj8NCj4gDQo+IC0gaW5ncmVz L2VncmVzcyBvbmx5IGFwcGxpZXMgdG8gbm9uLXRyYW5zZmVyIHJ1bGVzDQo+ICAgIGFuZCBzZXJ2 ZXMgdG8gY2F0Y2ggZWl0aGVyIGluY29taW5nIG9yIG91dGNvbWluZw0KPiAgICB0cmFmZmljIG9m IHRoZSBzaW5nbGUgImRvb3IiIChldGhkZXYpDQo+IA0KPiAgICAoZnVydGhlcm1vcmUsIHRoZXNl IGF0dHJpYnV0ZXMgaGFkIGJlZW4gZGVmaW5lZA0KPiAgICAgbG9uZyBiZWZvcmUgdGhlIHRyYW5z ZmVyIGNvbmNlcHQgd2FzIGFkZGVkLCBzbw0KPiAgICAgZXZlbiBpZiB3ZSBOT1cgcmVhbGlzZSB0 aGVzZSBhdHRyaWJ1dGVzICoqY291bGQqKg0KPiAgICAgaGF2ZSBiZWVuIGV4cHJlc3NlZCBpbiB0 aGUgZm9ybSBvZiBpdGVtcywgSSdtDQo+ICAgICBhZnJhaWQgaXQncyBubyB1c2UgY3J5aW5nIG92 ZXIgc3BpbHQgbWlsaykNCj4gDQo+IC0gdHJhbnNmZXIgaXMgbm90IGluIHBhdHRlcm4gYmVjYXVz ZSBpdCBpcyBub3QNCj4gICAgYSBtYXRjaCBjcml0ZXJpb247IGl0IGlzIGluIGZhY3QgdGhlIGlu ZGljYXRpb24NCj4gICAgb2Ygd2hpY2ggKiptYXRjaCBlbmdpbmUqKiB0byB1c2U6IGVpdGhlciB0 aGUNCj4gICAgb25lIG9mIHRoZSBlbWJlZGRlZCBzd2l0Y2ggb3IgdGhlIG9uZSBvZg0KPiAgICB0 aGUgdk5JQyAvIGV0aGRldg0KPiANCg0KVGhpcyB3YXMganVzdCB0byBzaG93IHNvbWUgcG9pbnQg dGhhdCB0aGVyZSBhcmUgY2FzZXMgdGhhdA0KZXZlbiBpZiBzb21ldGhpbmcgY291bGQgYmUgdXNl ZCBhcyBpdGVtIG1heWJlIGl0IGlzIG5vdCB0aGUgYmVzdA0Kd2F5Lg0KSW4gYW55IGNhc2UganVz dCBsaWtlIG15IHJlcGx5IGFib3V0LiBGcm9tIHB1cmUgU1cgcG9pbnQgb2Ygdmlldw0KSSB0aGlu ayB0aGF0IGl0IG1vcmUgY29ycmVjdCB0byBoYXZlIGl0IGFzIGFuIGF0dHJpYnV0ZS4NCg0KPiA+ IFRoZXkgYXJlIHdoZXJlIHJ1bGVzIHNob3VsZCBiZSBvZmZsb2FkZWQsIHRoZXkgYXJlIGRpZmZl cmVudCBkb21haW4uDQo+IA0KPiBJdCdzIE9LIHRvIHNheSB0aGF0IGdlbmVyaWMgY29uY2VwdCBv ZiAiZW1iZWRkZWQgc3dpdGNoIGxldmVsIiwNCj4gb3IgInRyYW5zZmVyIGRvbWFpbiIsIGluIHRo ZSBjYXNlIG9mIE1MWDUsIGlzIGluIHR1cm4gc3BsaXQNCj4gaW50byB0d28gZGlmZmVyZW50IEhX IGRvbWFpbnMsIC0gaXQncyB2ZW5kb3Itc3BlY2lmaWMNCj4gaW50ZXJuYWxzLCAtIGJ1dCBpdCdz IG5vdCBPSyB0byBhc3N1bWUgdGhhdCB0aGUgc2FtZQ0KPiBzZXBhcmF0aW9uIGlzIGFsc28gdmFs aWQgZm9yIG90aGVyIHZlbmRvcnMuDQo+IA0KDQpOZXZlciBzYWlkIGl0IGlzIHRydWUgdG8gYWxs IHZlbmRvcnMsIEkgZ3Vlc3MgdG8gc29tZSBidXQgZm9yIHN1cmUgbm90IGFsbCBvZiB0aGVtLg0K SnVzdCBsaWtlIEknbSBzdXJlIG5vdCBhbGwgdmVuZG9ycyB3aWxsIHVzZSBvdGhlciBoaW50cy4N Cg0KPiA+IExpa2Ugd2UgaGF2ZSBlbHNld2hlcmUgZm9yIGV4YW1wbGUgaW4gYWN0aW9uIGNyZWF0 ZSB3ZSBjYW4gc3RhdGUgb24gd2hpY2gNCj4gPiBkb21haW4gdGhlIGFjdGlvbiBzaG91bGQgYmUg Y3JlYXRlZC4gSWYgdGhlIGFwcGxpY2F0aW9uIHNlbGVjdHMgYSBudW1iZXIgb2YNCj4gZG9tYWlu cw0KPiA+IGl0IG1heSBtZWFuIHRoYXQgZXh0cmEgcmVzb3VyY2VzIHdpbGwgYmUgYWxsb2NhdGVk Lg0KPiANCj4gQ291bGQgeW91IHBsZWFzZSBleHBhbmQgb24gdGhpcyAvIGdpdmUgYW4gZXhhbXBs ZT8NCj4gSnVzdCBmb3IgbWUgdG8gY2hlY2sgd2hldGhlciBteSBwb2ludCBvZiB2aWV3DQo+IGNv dWxkIGJlIHdyb25nIGJhc2VkIG9uIHRoZSBleGFtcGxlIG9yIG5vdC4NCj4NCg0KTGV0J3MgbG9v ayBhdCBydGVfZmxvd19hY3Rpb25faGFuZGxlX2NyZWF0ZSBvbmUgb2YgdGhlIGNvbmYgcGFyYW1l dGVycyBpcyBpbmdyZXNzL2VncmVzcy90cmFuc2Zlcg0KYXBwbGljYXRpb24gbWF5IG1hcmsgYW4g YWN0aW9uIHRvIGJlIHVzZWQgb25seSBpbiBpbmdyZXNzIG9yIGluIGluZ3Jlc3MrZWdyZXNzDQpp ZiB0aGUgYXBwbGljYXRpb24gc2VsZWN0cyBpbmdyZXNzK2VncmVzcyBpdCBpcyBwb3NzaWJsZSB0 aGF0IGluc2VydGlvbiByYXRlIGFuZCBQUFMNCm1heWJlIHNsb3dlci4NCkkgaG9wZSB0aGlzIG1h a2VzIGl0IGNsZWFyZXIuDQoNCkJlc3QsDQpPcmkNCiANCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+ DQo+IA0KPiBJdmFuDQo=