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 76B3F42CC2; Thu, 15 Jun 2023 09:42:25 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 44ACB40DDA; Thu, 15 Jun 2023 09:42:25 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id A333440A84; Thu, 15 Jun 2023 09:42:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686814944; x=1718350944; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=RpekDRCJYRjVGZsY8p8gnwdfN5gbOPeiWX098RPY38I=; b=n7yx0X6pbP2r2HaXCz9AViFzFDEHCuaIctWcZHBH03cgILCPNmIH7XIk 0MAjUs7S/d5TGv07v1LKLu4TyF7+UXKA49aelhj671b6jlS8kEwBZ+XQ8 KBWRCKPAtwbQYLWtvO/Siu7tgfVbZLtc3z9INJMLX7phy0q8NR9Ik4h7/ P/WDSZ9GBC4TNMnGS1y0UzPE1lYeirq/5mIb9ewMU7oh/l99+VIKjSXiw vn2jRi8XZpeXs4GDr+dNzDvjGo2bZv/S73DJEOSQC2CdojRtG5kwB57Sm 1mudvAkOpWrPk8u/RvtP3nW+28vBdpN1BXJWtYHFu7xyD5Kldqh1V2E72 w==; X-IronPort-AV: E=McAfee;i="6600,9927,10741"; a="343540691" X-IronPort-AV: E=Sophos;i="6.00,244,1681196400"; d="scan'208";a="343540691" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Jun 2023 00:42:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10741"; a="662691352" X-IronPort-AV: E=Sophos;i="6.00,244,1681196400"; d="scan'208";a="662691352" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga003.jf.intel.com with ESMTP; 15 Jun 2023 00:42:21 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Thu, 15 Jun 2023 00:42:20 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Thu, 15 Jun 2023 00:42:20 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.105) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Thu, 15 Jun 2023 00:42:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kqvxaOWKb+TsKn7hgi+1eLt3dIT3jFJSefhtwIt/TcZvfACFQqauYA2KtOBhJQHhtbSa6/iorHkD3dx9HYMWaoxSJi2jU7FDpTxOZsUCo8OXOBaPJpxoAGBkc7eWv0gSP0BEmwgIEvaWDHUC7Esi4nk9jzVloOqlvNaTNCN4NMZmVEjXNBj5abOoySLIjl+FE1wspchAa++PStOsRo0Lh6wF4d4O83SWbzdf0E/JbaY1jPlIQMzXWi3SSAAoLDqNzExMb6lfa6O4j/VdG0u9rqmKiWKnW/hpUW7zNPkchPzWrn2ZMJtM4BLQkxmNgBaVerfYKf7SS3wHCuvYNhjIKg== 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=RpekDRCJYRjVGZsY8p8gnwdfN5gbOPeiWX098RPY38I=; b=EBlhxhJL5mto29L32U5U8UJh83MsRB/3Klc7Gztisd7OZwb3fk9TCf4XPJ9shPgNMjWwj5UnCNClaSdcd1jZBNQuX+6JdJW7o5qv/hHXEqoUid9JhpYSsWn9swDcVtpfOjlfoUAe6Flb7B1GQqmuFhRogH/WILl4gPqVQocEKW9IpBK04S8LXNC/4z+ABlsIDy538pJwVsY94r17yZtwLJG1M601Ro8qPnMDdgXgWgy1piAKv9gK75Yc1zU0pQiznznQYGyTLrIXj+a2dm33O/GZUQlFuUeI0sUF/9TI2CL1b40w/r7RqJMj8F8ZTA3NmEFm1D3JoarVLFTnH4fSFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM4PR11MB5994.namprd11.prod.outlook.com (2603:10b6:8:5d::20) by PH7PR11MB5913.namprd11.prod.outlook.com (2603:10b6:510:137::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.37; Thu, 15 Jun 2023 07:42:12 +0000 Received: from DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::e570:d9a7:df1b:1589]) by DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::e570:d9a7:df1b:1589%6]) with mapi id 15.20.6477.037; Thu, 15 Jun 2023 07:42:12 +0000 From: "Zhang, Qi Z" To: Jerin Jacob CC: Ori Kam , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "david.marchand@redhat.com" , "Richardson, Bruce" , "jerinj@marvell.com" , "ferruh.yigit@amd.com" , "Mcnamara, John" , "Zhang, Helin" , "techboard@dpdk.org" , "dev@dpdk.org" , Ivan Malov Subject: RE: [RFC] lib/ethdev: introduce table driven APIs Thread-Topic: [RFC] lib/ethdev: introduce table driven APIs Thread-Index: AQHZnNl/YukvwyUJXUylZdiSr9fMFq+Kou2AgABcbMCAAFLcAIAACM5AgAAOhgCAAAXmIA== Date: Thu, 15 Jun 2023 07:42:12 +0000 Message-ID: References: <20230612111539.462084-1-qi.z.zhang@intel.com> In-Reply-To: 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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB5994:EE_|PH7PR11MB5913:EE_ x-ms-office365-filtering-correlation-id: d45e2345-a034-4f8a-d49d-08db6d740834 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hjfpTbU6KCyq+IcEY2BOR0jZnQoUzn4E//CuonXp34KaVxzCzgCLEZBxxKbVZCVUVmZuYzBii5MS1pPiPJPymvW5LXKHU/n6Krtw/0nvySiglWOkZT675rv0CKEv1fU7MaBsdM4ju3/pCrV4G0/IRtyVNgV7EV/DYqvKdDjnLI03je07k46NhaJ2Lg/Yy/uwNmFs3TEaY7iIFhMfZ+BB22M+waTBX8yQVqcqorxwDoeCDglwJKQcEoryRkJZcFCj3ehE/ewtjCP1O7f9sllg2WaHbEmtPsDrzgVHB1fAES11/XtwpHFzedXzZLuTYxaU3PT0fjbVod5FVkEE+hszXynUjiF7qFyy5rG5cqL0s8qxDeSrxLkhZWSmaIkK4UowuQBhXSpAzegqaYpPplPjBLUtL8ko91hBPbCLqkwIt5NL34PF324riTnveBjIRQ+sDEKQJr3u7gteAxIpbuqtkc3CPRp4PRKiWBc+po8tDg0+LLlKQRDpBkuNg1LCA7/hKgdIvae0fZI36huZrAMgXti6tW0VkXqvLdNGvJiVM0dRRUjTiIGUd1p5Kf5nT6BPZ+Fi31eDNzfpfmcaiss5IFrsVf/YKsxDwbrLGXDB01Y= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB5994.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(39860400002)(346002)(136003)(376002)(396003)(366004)(451199021)(8676002)(8936002)(2906002)(5660300002)(64756008)(66556008)(316002)(82960400001)(33656002)(52536014)(66946007)(6916009)(76116006)(66446008)(66476007)(4326008)(122000001)(41300700001)(38100700002)(83380400001)(54906003)(186003)(478600001)(53546011)(9686003)(26005)(71200400001)(55016003)(6506007)(7696005)(38070700005)(86362001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TFVDbnVJbWo3OU5MeTQyaXJldHJFalJudDM4NkgvMzkvblA2aEJ3Nk01ZFBS?= =?utf-8?B?bDRDcUpjaTgybFd5S3RsNzZYZXNZY1oyeG55WG5Zc3FMeVArREdZZnRZUmhv?= =?utf-8?B?c2F2VFYvV0VaWktYT0xCZE9EM2NXaGsyQ20xdzFZVE1RNURxOVIrcy9MS2Ew?= =?utf-8?B?MW40T2dUdXl0b1N0UEhDTnNaQU1YSnR0QTRNZDNJTUE4RHhFYkxYMEl4S3hB?= =?utf-8?B?Q3FHL1NUd3VrUm5RMXpGYWx6bThSMENaeFdVS2gzL0tLUmVJaU96Uzl3aUVE?= =?utf-8?B?U0RXeDZUcTlvREtQUTdtTjM3K1hoZGo4N3dMVWxuZWhFMDJhSHJGakI1cEdD?= =?utf-8?B?RDRLQ3BDWmNBZHdZQWk2NEhYUEJjbzFrTjY1ZUJXaEUzdk5qWkpraEtSeWRi?= =?utf-8?B?YVZmVkRLWlZCbUtGSCtFVFFlWVJocTZBNEp4QnJGbmZmRHh5WU42OUVaNWFC?= =?utf-8?B?K0hUT1hleDlzcXV6N1E2dUw5bHFjcXcvandVSElrSXVWOWJvMWtpdGFiLzVE?= =?utf-8?B?NW4zOFg0WGlSbXR6ak16RkJTcHlOcWphVldjNk5LcnN1bkc4QkxYTmtrak1Y?= =?utf-8?B?ejZDcERmNG1oYitieHNpUzhTQTQvMGZHVXE2anJoa21taTlJRSt5UFpoWjNQ?= =?utf-8?B?R2NxSVhJWDAxeEpSUHVWQVhLaWNHQ2MzWTRxaHdCOXp6MGF2T2g3NUNkends?= =?utf-8?B?eFVuREZ2QXk3dW5hV0NOY0lUdkw5U3IvN2VDbmdaMGFFWGVDM00wSDFhRnFs?= =?utf-8?B?QnQvWVZSTGZPWXVMN21ENjRmYlhyUm5yNUxtS05YUUVFUUR6YTNBWU9oNmx6?= =?utf-8?B?eG1XbmorY2tQQ3FaclY3eXc1UGpqQTY0V1dScnhPVXNPWkI5UUpGVkNQdWlJ?= =?utf-8?B?am1RYTR1N3ZpSGVVN2FacUh0Vm1tSkJkK2YrRHR6THdsY0JJZURVdjFVNUIr?= =?utf-8?B?dmVhZnJiYjhXcUtCS1N5R0NFYnh5TGppcWpuNnVaQk5JaDJVZHAwZ0p5Zmpz?= =?utf-8?B?bVc2VktQczRkbExQbFk5YnBPU3RXVVVIQXNFZnhXRlBIcER4OUJpWFp3ZWxW?= =?utf-8?B?bWNuaGlyWTdpZjhPTmhDUVpjK1MwV1d3ejNnTTc4VFJqTEY0bFNoMEVwektu?= =?utf-8?B?S084Um5BS0JienJsS3pPKzFrVjR4cTI4SGRiakhLbDBnVFpjRVNOaVcwTFVk?= =?utf-8?B?Mi9EdG10YmpsSExZbWE0VU9SUnNtVk1BVFo3TUdRMGIrUmhSTGl5S3ErQzNS?= =?utf-8?B?S2RXTUoyN1BxY3A4NzNRajh2cU5ld0kyTGVqakF4UUU3b0JnZ3lIK2lxTWhC?= =?utf-8?B?OEVaZE1EdmNDcHgwdzFPWkJjZEg3ZWc3U2xKU0xGQkI2MWdFV3lMZWJaNjZo?= =?utf-8?B?R3VETHNYU3kzUFRrS3owUUdJRWlueFdVKzd6VFUrSkRoRHdSMTk4M3M2TWxx?= =?utf-8?B?UytEV2NsVXZ2SHVZbjFiNzBkUzlzWWd2b05CcWJ2WEp2enVjV1UrVGthS3JZ?= =?utf-8?B?WUN4cDBhRG45SnR3bTNuV3RpWnpCdk1NS2x4UTlyQWp3OWhUTm0va1laRTVG?= =?utf-8?B?UUMrVWp0bWorQ1lIVDFBSm83SjB1cG9VYVpVSDhoTklpZFVOY2VuRnpGME14?= =?utf-8?B?VHFVMFhuc1JYbjlLSzZWNERvOTlqUUkyTk9Zb3RRVFcwNWZENlFwYnZaWGRB?= =?utf-8?B?cmRBMEx5WTJ6R2JuakhNUEJwSGJQNEZlZ3ZPaitmMUJtdTI4aS91N2xLOWsy?= =?utf-8?B?NmZVcXJFTDdaWmtaWlJJbk1DbHJnajYweC9kZ1JwWTBSV2NkNnRXbzUxVStR?= =?utf-8?B?NGVpaUhWWXIzZ3RDVWJiZEp1UjhGSWVxTlU0ZVZMMW16VTlSRFdrbW1uVjh3?= =?utf-8?B?SDlSWlFIVkVkb0IxTnRIV1k2MkZmWjkxbk5FeW9Cc2FmQlNkSGF2VFg2YnFo?= =?utf-8?B?c1l2ZzNtSGx3TmdMaGk2a0tSNkFPOWVKdTh6K3ZFaCtVOE1nUlNsNVErNXJR?= =?utf-8?B?TXd4QTVBWXhFTW9zZGZkanVOem9FMjErSWg3M0xPZnBZRWpXVU9EWERDdGNL?= =?utf-8?B?eTExTzBERFF4blc0Z1IvSTh6emFzVnZyS0dDZmxVR0NLL2tNbndRbzY3NllS?= =?utf-8?Q?o2N4yB3jqEgKXsVNARqEUYz5J?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5994.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d45e2345-a034-4f8a-d49d-08db6d740834 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jun 2023 07:42:12.3943 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: HaTHUKa7SIQzY45g/+/ljrGZqxqBDeoGWHcuRA0SKbbnOIe4lG0sYtWpaAFi/Mka2PnkfJ+3P2czvXeOquAl4g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5913 X-OriginatorOrg: intel.com 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmVyaW4gSmFjb2IgPGpl cmluamFjb2JrQGdtYWlsLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEp1bmUgMTUsIDIwMjMgMjoy MSBQTQ0KPiBUbzogWmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPg0KPiBDYzogT3Jp IEthbSA8b3Jpa2FAbnZpZGlhLmNvbT47IE5CVS1Db250YWN0LVRob21hcyBNb25qYWxvbiAoRVhU RVJOQUwpDQo+IDx0aG9tYXNAbW9uamFsb24ubmV0PjsgZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNv bTsgUmljaGFyZHNvbiwgQnJ1Y2UNCj4gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPjsgamVy aW5qQG1hcnZlbGwuY29tOyBmZXJydWgueWlnaXRAYW1kLmNvbTsNCj4gTWNuYW1hcmEsIEpvaG4g PGpvaG4ubWNuYW1hcmFAaW50ZWwuY29tPjsgWmhhbmcsIEhlbGluDQo+IDxoZWxpbi56aGFuZ0Bp bnRlbC5jb20+OyB0ZWNoYm9hcmRAZHBkay5vcmc7IGRldkBkcGRrLm9yZzsgSXZhbiBNYWxvdg0K PiA8aXZhbi5tYWxvdkBhcmtuZXR3b3Jrcy5hbT4NCj4gU3ViamVjdDogUmU6IFtSRkNdIGxpYi9l dGhkZXY6IGludHJvZHVjZSB0YWJsZSBkcml2ZW4gQVBJcw0KPiANCj4gT24gVGh1LCBKdW4gMTUs IDIwMjMgYXQgMTE6MzPigK9BTSBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+IHdy b3RlOg0KPiA+DQo+ID4gSGkgSmVyaW46DQo+IA0KPiBIaSBRaQ0KPiANCj4gPg0KPiA+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IEplcmluIEphY29iIDxqZXJpbmph Y29ia0BnbWFpbC5jb20+DQo+ID4gPiBTZW50OiBUaHVyc2RheSwgSnVuZSAxNSwgMjAyMyAxMjo1 OCBQTQ0KPiA+ID4gVG86IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT4NCj4gPiA+ IENjOiBPcmkgS2FtIDxvcmlrYUBudmlkaWEuY29tPjsgTkJVLUNvbnRhY3QtVGhvbWFzIE1vbmph bG9uDQo+ID4gPiAoRVhURVJOQUwpIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgZGF2aWQubWFyY2hh bmRAcmVkaGF0LmNvbTsNCj4gPiA+IFJpY2hhcmRzb24sIEJydWNlIDxicnVjZS5yaWNoYXJkc29u QGludGVsLmNvbT47IGplcmluakBtYXJ2ZWxsLmNvbTsNCj4gPiA+IGZlcnJ1aC55aWdpdEBhbWQu Y29tOyBNY25hbWFyYSwgSm9obiA8am9obi5tY25hbWFyYUBpbnRlbC5jb20+Ow0KPiA+ID4gWmhh bmcsIEhlbGluIDxoZWxpbi56aGFuZ0BpbnRlbC5jb20+OyB0ZWNoYm9hcmRAZHBkay5vcmc7DQo+ ID4gPiBkZXZAZHBkay5vcmc7IEl2YW4gTWFsb3YgPGl2YW4ubWFsb3ZAYXJrbmV0d29ya3MuYW0+ DQo+ID4gPiBTdWJqZWN0OiBSZTogW1JGQ10gbGliL2V0aGRldjogaW50cm9kdWNlIHRhYmxlIGRy aXZlbiBBUElzDQo+ID4gPg0KPiA+ID4gT24gVGh1LCBKdW4gMTUsIDIwMjMgYXQgNzo1NeKAr0FN IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT4NCj4gd3JvdGU6DQo+ID4gPiA+DQo+ ID4gPiA+IEhpIE9yaToNCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICBUaGFuayB5b3UgZm9yIHlv dXIgcmV2aWV3IQ0KPiA+ID4gPiAgICAgICAgIENvbW1lbnQgaW5saW5lLg0KPiA+ID4gPiAgICAg ICAgIFBsZWFzZSBsZXQgbWUga25vdyBpZiBhbnl0aGluZyBJIG1pc3NlZC4NCj4gPiA+ID4NCj4g PiA+ID4gVGhhbmtzDQo+ID4gPiA+IFFpDQo+ID4gPiA+DQo+ID4gPiA+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBPcmkgS2FtIDxvcmlrYUBudmlkaWEuY29t Pg0KPiA+ID4gPiA+IFNlbnQ6IFRodXJzZGF5LCBKdW5lIDE1LCAyMDIzIDI6MzEgQU0NCj4gPiA+ ID4gPiBUbzogWmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsgTkJVLUNvbnRhY3Qt VGhvbWFzDQo+ID4gPiA+ID4gTW9uamFsb24NCj4gPiA+ID4gPiAoRVhURVJOQUwpIDx0aG9tYXNA bW9uamFsb24ubmV0PjsgZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbTsNCj4gPiA+ID4gPiBSaWNo YXJkc29uLCBCcnVjZSA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+Ow0KPiA+ID4gPiA+IGpl cmluakBtYXJ2ZWxsLmNvbTsgZmVycnVoLnlpZ2l0QGFtZC5jb20NCj4gPiA+ID4gPiBDYzogTWNu YW1hcmEsIEpvaG4gPGpvaG4ubWNuYW1hcmFAaW50ZWwuY29tPjsgWmhhbmcsIEhlbGluDQo+ID4g PiA+ID4gPGhlbGluLnpoYW5nQGludGVsLmNvbT47IHRlY2hib2FyZEBkcGRrLm9yZzsgZGV2QGRw ZGsub3JnDQo+ID4gPiA+ID4gU3ViamVjdDogUkU6IFtSRkNdIGxpYi9ldGhkZXY6DQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBIaSBRaSwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gMS4g aXQgbWF5IGJlIHVzZWZ1bCB0byBnZXQgc29tZSBnZW5lcmFsIGNhbGxpbmcgZmxvdyB3aGF0IGNv bWVzDQo+ID4gPiA+ID4gZnJvbSB0aGUgYXBwbGljYXRpb24sIHdoYXQgY29tZXMgZnJvbSB0aGUg Y29tcGlsZXIuDQo+ID4gPiA+ID4gU2ltcGxlIGV4YW1wbGUgd2lsbCBiZSBnb29kLg0KPiA+ID4g Pg0KPiA+ID4gPiBBbiBleGFtcGxlIG9mIGRlY2FwIFZYTEFOIFRDUCBmbG93IGlzIGV4cGxhaW5l ZCBpbiBwcm9ibGVtDQo+ID4gPiA+IHN0YXRlbWVudA0KPiA+ID4gPiAoaHR0cDovL21haWxzLmRw ZGsub3JnL2FyY2hpdmVzL2Rldi8yMDIzLU1heS8yNjc3MTkuaHRtbCkNCj4gPiA+ID4gY292ZXJp bmcgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbi4NCj4gPiA+ID4NCj4gPiA+ID4gMS4gdGhlIHA0 IHNvdXJjZSBjb2RlLCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgdGFibGUgYW5kIGFjdGlvbnMgMi4N Cj4gPiA+ID4gdGhlIHRhYmxlIC8gYWN0aW9uIGhpbnRzIGdlbmVyYXRlZCBieSB0aGUgY29tcGls ZXIsIGRldGFpbHMgdG8gZWFjaA0KPiBmaWVsZHMuDQo+ID4gPiA+IDMuIEhvdyB0aGUgQ29udHJv bCBQbGFuZSBBcHBsaWNhdGlvbiB1dGlsaXplcyB0aGUgUDQgUnVudGltZSBBUEkNCj4gPiA+ID4g dG8gcHJvZ3JhbSB0aGUgcnVsZSB3aXRoIHRoZSByZXNwZWN0aXZlIHRhYmxlIGFuZCBhY3Rpb24g SURzDQo+ID4gPiA+DQo+ID4gPiA+IFRoZSBEUERLIFBNRCBpcyByZXNwb25zaWJsZSBmb3IgbG9h ZGluZyB0aGUgaGludHMgZ2VuZXJhdGVkIGJ5IHRoZQ0KPiA+ID4gY29tcGlsZXIuDQo+ID4gPiA+ IFRoaXMgZW5hYmxlcyB0aGUgUE1EIHRvIGFjY2VwdCByZXF1ZXN0cyBmcm9tIHRoZSBQNCBSdW50 aW1lIGFuZA0KPiA+ID4gPiByZWplY3QNCj4gPiA+IGFueSBpbmNvbXBhdGlibGUgcmVxdWVzdC4N Cj4gPiA+DQo+ID4gPiBJIHNlZSB0d28gZGlmZmVyZW50IHR5cGVzIG9mIGRldmljZS9zeXN0ZW0g Y2F0ZWdvcnkNCj4gPiA+DQo+ID4gPiAxKSBIVyArIFNXL0ZXIGNvbWJpbmF0aW9uIHRoYXQgcmVh bGx5IHVuZGVyc3RhbmRzIHA0IHN0cnVjdHVyZXMgYW5kDQo+ID4gPiBqb2Igb2YgdGhlIGRyaXZl ciB0byBpcyB0byBnaXZlIHdvcmsgdG8gSFcvU1cgYXMgcDQgc3RydWN0dXJlDQo+ID4gPiBnZW5l cmF0ZWQgZnJvbSB2ZW5kb3Igc3BlY2lmaWMgY29tcGlsZXIgYW5kIHJ1bnRpbWUgZ1JQQyBtZXNz YWdlDQo+ID4gPiAyKSBFeGlzdGluZyBIVyBhbmQgU1cgZHJpdmVycyBpbXBsZW1lbnRzIHJ0ZS1m bG93IGRyaXZlci4NCj4gPiA+DQo+ID4gPiBGb3IgaXRlbSAoMSksIGlmIGVuZCB1c2VyIGFwcGxp Y2F0aW9uIGlzIHVzaW5nIFA0IHByb2dyYW0gYW5kIFA0DQo+ID4gPiBydW50aW1lIGFuZCB0aGlz IGlzIF9BUEkgY29udHJhY3RfIHRvIGFwcGxpY2F0aW9uLCBOb3Qgc3VyZSB3aHkgZW5kDQo+ID4g PiB1c2VyIGNhcmUgaXQgaXMgRFBESyBQTUQgb3Igbm90Pw0KPiA+DQo+ID4gVGhhdCdzIHRydWUu IERQREsgYXMgYSBwbGF0Zm9ybSB0aGF0IG1hbmFnZSB0aGUgaGFyZHdhcmUsIGl0IGlzIHJlcXVp cmVkIHRvDQo+IHByb3ZpZGUgYSBjaGFubmVsIHRoYXQgY29ubmVjdHMgYXBwbGljYXRpb25zIHdp dGggdGhlIGhhcmR3YXJlIHJlc3BvbnNpYmxlDQo+IGZvciBpbXBsZW1lbnRpbmcgdGhlIGNvbnRy YWN0Lg0KPiA+IEluIHRoaXMgY29udGV4dCwgdGhlIFBNRCAoZXRoZGV2KSBzZXJ2ZXMgYXMgdGhl IGNvbmR1aXQgdGhhdCBjYW4gZnVsZmlsbCB0aGlzDQo+IHJlcXVpcmVtZW50Lg0KPiANCj4gSSBt ZWFudCB2ZGV2ICsgcmF3ZGV2IGNvbWJvIGNhbiBiZSB1c2VkIHRvIHRhbGsgdG8gRlcuDQoNCk9L LCBJIHdpbGwgY29tbWVudCB0aGlzIHRvZ2V0aGVyIHdoZW4gdmRldiArIHJhd2RldiBiZSBtZW50 aW9uZWQgYWdhaW4gYXQgYmVsb3cuDQoNCj4gDQo+ID4gPiBJZiBkcml2ZXIgd3JpdGVyIGNhcmUg YWJvdXQgdXNpbmcgRFBESyBmb3IgZHJpdmVyIGZyYW1ld29yayBmb3IgRUFMDQo+ID4gPiBzZXJ2 aWNlcywgc2ltcGx5IHVzaW5nIHZkZXYgZXRjIHdvdWxkIGJlIGVub3VnaC4gUmlnaHQ/DQo+ID4N Cj4gPiBJIG1heSBub3QgZnVsbHkgdW5kZXJzdGFuZCB0aGlzLCBhIHZkZXYgc2hvdWxkIGhhdmUg YSBkZXZpY2UgdHlwZSwgSSBkaWRuJ3QNCj4gc2VlIGFueSBpc3N1ZSBmb3IgYSBldGhkZXYgdmRl diB0byBpbXBsZW1lbnQgdGhlIHRhYmxlLWRyaXZlbiBBUElzLg0KPiANCj4gU2VlIGFib3ZlLg0K PiANCj4gVGhlcmUgaXMgYSBsb3Qgb2Ygb3ZlcmxhcCBiZXR3ZWVuIHJ0ZV9mbG93IGFuZCB0YWJs ZSBkcml2ZW4gQVBJIGlzIHRoZSBpc3N1ZS4NCj4gVG8gbWFrZSB0aGluZ3Mgd29yc3QsIHRoZXJl IGlzIGFsc28gbGliL3RhYmxlLyBBUEkuDQoNCkkgYXNzdW1lIHRoaXMgaXMganVzdCB0aGUgY29u Y2VybiBhYm91dCBuYW1pbmc/IEF0IGxlYXN0LCB0aGV5IGFyZSB0YXJnZXQgdG8gZGlmZmVyZW50 IHVzYWdlLg0KDQo+IA0KPiA+DQo+ID4gPg0KPiA+ID4gRm9yIGl0ZW0gKDIpLCBJIHRoaW5rLCBp bnRlcmVzdCBpcyBob3cgdG8gb2ZmbG9hZCBwNCB3b3JrbG9hZCB0bw0KPiA+ID4gcnRlX2Zsb3cu IFNvIHRoYXQgX2V4aXN0aW5nXyBkcml2ZXJzIGltcGxlbWVudHMgcnRlX2Zsb3cgY2FuIHN1cHBv cnQNCj4gPiA+IHA0IG5hdHVyYWxseSBpbiBhZGRpdGlvbiB0byBleGlzdGluZyBydGVfZmxvdyBB UEkuIElmIHRoYXQgaXMNCj4gPiA+IGRpcmVjdGlvbiwgdGhlbiB3ZSBuZWVkIHRvIHRoZSBmb2xs b3dpbmcuDQo+ID4NCj4gPiBXaGlsZSB0aGUgaWRlYSBvZiBvZmZsb2FkaW5nIFA0IHRvIHJ0ZV9m bG93IGlzIGNlcnRhaW5seSBpbnRlcmVzdGluZywgaXQNCj4gZG9lc24ndCBzZWVtIHRvIGRpcmVj dGx5IGFkZHJlc3Mgb3VyIGluaXRpYWwgcHJvYmxlbSBzdGF0ZW1lbnQuDQo+ID4gVGhlIHByaW1h cnkgb2JqZWN0aXZlIGlzIHRvIGZpbmQgYSBzb2x1dGlvbiBmb3Igb2ZmbG9hZGluZyBydGVfZmxv dyBpbnRvIGEgUDQtDQo+IGJhc2VkIHBpcGVsaW5lLg0KPiANCj4gSXNuJ3Qgc2FtZT8gSWYgbm90 LCBQbGVhc2UgZWxhYm9yYXRlIG9uICJQNCB0byBydGVfZmxvdyBtYXBwaW5nIiB2cw0KPiAib2Zm bG9hZGluZyBydGVfZmxvdyBpbnRvIGEgUDQtYmFzZWQgcGlwZWxpbmUiDQoNCk9LIEkgZ3Vlc3Mg dGhlIGdhcCBoZXJlIGlzIEkgbWF5IG5vdCBmdWxseSB1bmRlcnN0YW5kIGlzIA0KaG93IHdlIGRl ZmluZWQgdGhlIGNhc2Ugb2YgaXRlbSgyKSBFeGlzdGluZyBIVyBhbmQgU1cgZHJpdmVycyBpbXBs ZW1lbnRzIHJ0ZS1mbG93IGRyaXZlci4NCg0KSWYgd2UgYXNzdW1lIHRoYXQgdGhlIGFwcGxpY2F0 aW9uIGlzIG5vdCBQNC1hd2FyZSwgaXQgd2lsbCBjb25zdW1lIGV4aXN0aW5nIHJ0ZV9mbG93IEFQ SSBmb3IgZmxvdyBvZmZsb2FkaW5nLiBJbiB0aGlzIGNhc2UsIGFsbCB3ZSBuZWVkIHRvIGRvIGlz IGltcGxlbWVudCBpdCBpbiB0aGUgUE1ELCB3aGljaCB3aWxsIGJlIGEgaGlnaGx5IGhhcmR3YXJl LXNwZWNpZmljIHRhc2suIERvIHlvdSBwcm9wb3NlIGdlbmVyYWxpemluZyB0aGlzIGNvbW1vbiBw YXJ0Pw0KDQpPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhlIGFwcGxpY2F0aW9uIGlzIFA0LWF3YXJl LCB3ZSBjYW4gYXNzdW1lIHRoYXQgdGhlcmUgd29uJ3QgYmUgYSBuZWVkIGZvciB0cmFuc2xhdGlv biBiZXR3ZWVuIFA0IHRva2VucyBhbmQgcnRlX2Zsb3cgcHJvdG9jb2xzIGluIHRoZSBQTUQuDQoN Cj4gDQo+IA0KPiA+DQo+ID4gV2UgaGF2ZSBpZGVudGlmaWVkIHR3byBkaXN0aW5jdCB1c2UgY2Fz ZXM6DQo+ID4NCj4gPiBQNC1Bd2FyZSBBcHBsaWNhdGlvbnM6DQo+ID4NCj4gPiBGb3IgYXBwbGlj YXRpb25zIHRoYXQgYXJlIGFscmVhZHkgUDQgYXdhcmUsIHRoZSBwcm9wb3NhbCBzdWdnZXN0cyB0 aGUNCj4gaW50cm9kdWN0aW9uIG9mIGEgbmV3IHNldCBvZiBBUElzIHRvIHJ0ZV9mbG93Lg0KPiA+ IFRoZXNlIEFQSXMgYWltIHRvIGZhY2lsaXRhdGUgc2VhbWxlc3MgaW50ZWdyYXRpb24gYmV0d2Vl biBEUERLIGFuZCBQNA0KPiBhd2FyZSBhcHBsaWNhdGlvbnMuDQo+IA0KPiBDb3VudGVyIGFyZ3Vt ZW50IGZvciB0aGF0IGlzLCBJZiB0aGUgUDQgaXMgQVBJIGNvbnRyYWN0IHRoZW4gd2h5IGJvdGhl ciB3aXRoDQo+IERQREsgYWJzdHJhY3Rpb24gdXNlIHZkZXYgKyAgcmF3ZGV2IHRhbGsgdG8gRlcg YXMgUE1EIGlzIGp1c3QgcGFzc2luZw0KPiBtZXNzYWdlIHRvIEZXLiBGVyBpcyBkb2luZyB0aGUg aGVhdnkgbGlmdGluZyBhbnl3YXkuDQoNCldlIGFyZSBhdHRlbXB0aW5nIHRvIGdlbmVyYWxpemUg dGhlIGNvbW1vbiBhc3BlY3RzLCBjb25zaWRlcmluZyB0aGF0IFA0IFJ1bnRpbWUgaXMgYSBzdGFu ZGFyZCBBUEkuIEl0IGFwcGVhcnMgd29ydGh3aGlsZSB0byBleHBvc2UgY2VydGFpbiBBUElzIHRo YXQgY2FuIGFzc2lzdCBpdHMgYmFja2VuZCBpbXBsZW1lbnRhdGlvbi4NCkkgbWF5IG5lZWQgc29t ZSB0aW1lIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmNlcHQgb2YgdmRldiArcmF3ZGV2IGNvbWJvIHNv bHV0aW9uLCBjdXJyZW50bHkgb25lIHF1ZXN0aW9uIGluIG15IG1pbmQgaXM6IGluIHRoaXMgc29s dXRpb24sIGlzIGFib3ZlIGNvbnNpZGVyYXRpb24gY292ZXJlZD8NCg0KVGhhbmtzDQpRaQ0KDQo+ IA0KPiANCj4gPg0KPiA+IE5vbi1QNCBBd2FyZSBBcHBsaWNhdGlvbnM6DQo+ID4NCj4gPiBJbiB0 aGUgY2FzZSwgb3VyIGZvY3VzIGlzIG9uIGJyaWRnaW5nIHRoZSBleGlzdGluZyBydGVfZmxvdyBB UEkgdG8gdGhlDQo+IHVuZGVybHlpbmcgUDQgcGlwZWxpbmUuDQo+ID4gQ3VycmVudGx5LCB3ZSBo YXZlbid0IGlkZW50aWZpZWQgYW55IHNpZ25pZmljYW50IGdhcHMgaW4gdGhlIERQREsgQVBJcy4N Cj4gPiBUaGUga2V5IGNoYWxsZW5nZSBsaWVzIGluIGhhbmRsaW5nIHRoZSB0cmFuc2xhdGlvbiBw cm9jZXNzIHdpdGhpbiB0aGUNCj4gPiBQTUQNCj4gPg0KPiA+IFRoYW5rcw0KPiA+IFFpDQo+ID4N Cj4gPiA+DQo+ID4gPiBhKUltcHJvdmUgcDQtZHBkayBjb21waWxlciBiYWNrZW5kIG9yIGFkZCBu ZXcgY29tcGlsZXIgRFBESw0KPiBiYWNrZW5kDQo+ID4gPiB0byB1bmRlcnN0YW5kIHRoZSBydGVf ZmxvdyBhbmQgaGF2ZSBoZWxwZXIgbGlicmFyeSBpbiBEUERLIHRvDQo+ID4gPiB1bmRlcnN0YW5k IHRoZSBjb21waWxlciBzcGVjIGZpbGUgdG8gdHJhbnNsYXRlIHRvIHJ0ZV9mbG93IG9iamVjdHMN Cj4gPiA+IGIpU2ltaWxhciBjYXNlIGZvciBydW50aW1lIEFQSS4gaS5lIEhhdmUgaGVscGVyIGZ1 bmN0aW9ucyB0bw0KPiA+ID4gdHJhbnNsYXRlDQo+ID4gPiBwNCBNYXRjaEZpZWxkIG5hbWUgZXRj IHRvIGFwcHJvcHJpYXRlIHJ0ZV9mbG93IG9iamVjdHMuDQo+ID4gPiBjKUVuaGFuY2UgYmFzZSBy dGVfZmxvdyBzcGVjaWZpY2F0aW9uIGlmIHRoZXJlIGFyZSBhbnkgZnVuZGFtZW50YWwNCj4gPiA+ IGdhcHMgdG8gZXhwcmVzcyB0aGUgbmV3IHBhdHRlcm4gb3IgYWN0aW9ucyAod2hpY2ggaXMgbm90 IHNwZWNpZmljIHRvDQo+ID4gPiBwNCBhbmQgYXBwbGljYWJsZSBmb3IgYW55IGZsb3cgbWF0Y2hp bmcgdXNlIGNhc2UpDQo+ID4gPg0KPiA+ID4gSWYgd2UgaW50cm9kdWNlIGNvbXBpbGVyIGluIHRo ZSBwaXBlbGluZSwgYSBsb3Qgb2YgdHJhbnNsYXRpb24gd2lsbA0KPiA+ID4gZ2V0IGluIHRoZSBz bG93cGF0aC4gQW5kIGZvciBydW50aW1lIEFQSSwgdGhlIHRyYW5zbGF0aW9uIHByaW1hcmlseQ0K PiA+ID4gd2lsbCBiZSBuYW1lIHRvIHJ0ZV9mbG93IG9iamVjdCBsb29rdXAgKHdoaWNoIGlzIG5v dCB0aGF0IGNvc3RseSkNCj4gPiA+IGFuZCB1c2luZyBydGVfZmxvd190ZW1wbGF0ZSBldGMuIHRv IGFtb3J0aXplIHRoZSBjb3N0IGJ5IG1ha2luZyBpdCBidXJzdC4NCj4gPiA+DQo+ID4gPiAgSnVz dCBteSAyYy4NCg0K