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 DEF5BA0547; Mon, 21 Jun 2021 16:38:44 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6025C41158; Mon, 21 Jun 2021 16:38:44 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 5EBAD40040 for ; Mon, 21 Jun 2021 16:38:42 +0200 (CEST) IronPort-SDR: jnF7gMfUA3WnYrIjnnp/nw4g9U+vvTaI6184VK4UBnnlIaSKF5dxMcdC4XZmKCoc02OuY1OBHd yBGCPSrxMSHw== X-IronPort-AV: E=McAfee;i="6200,9189,10022"; a="186550481" X-IronPort-AV: E=Sophos;i="5.83,289,1616482800"; d="scan'208";a="186550481" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jun 2021 07:38:41 -0700 IronPort-SDR: mFkRV3sAhey6Ff3mWixhVDbzPlbMSaHZSYb9qWhaYq9MbrMVFmze+a5HUigyFO4yxNZ1wLWt5+ O4q284osDQ3Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,289,1616482800"; d="scan'208";a="555436723" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga004.jf.intel.com with ESMTP; 21 Jun 2021 07:38:40 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Mon, 21 Jun 2021 07:38:40 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Mon, 21 Jun 2021 07:38:40 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Mon, 21 Jun 2021 07:38:39 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.109) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Mon, 21 Jun 2021 07:38:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QpwT4W7amJ2j3P5cojmUBscK6oLj1MAJGQaFuUSS8cjhnbfcZntnU5jL+ALbXw/B0ha+oy3Oa1dRSGapBwDr28+F7YVJGV6ScL0tu7h2C9Z1AGA4PLt0VsBcBUTbpWOqnFtWoNX1+CZtThTxPywbX8IIW8GuiORd/iEOBqNrdj6DRZ9iDfB3tTwS2cOspSDJ6m+QPf7U08VZ3F1Yo0WZxdK/GmWIzgYoVv1vozdJsK4MrrvTOVfc404OhiEeHwsNPi3kJRnImAohIZNdmZwecAch8urWqur4Bc+20ASEjCv3CSBcoxYo6+hXuM8HnQLEuZtXR0cyzh0PRMiMfa/L+w== 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-SenderADCheck; bh=4MVMeon6HKxOulYpnYPPbW2YDxo3ZPqEYdYeQQMk+VQ=; b=GubHOAHDBvrS8wzbVW0qruRMU/ikzyUa+K1DXhqoeyuvFGkK9/P2gPeOBq8bkha5PUGPQE7o0D0fZXI63FiCjDXoFCUiJn8qfSMuDS368DzmMLOc1gDx7kjAMDztl8k3ggqVXqOPYutLokadlgb7Fyq5/n6Bwfz6YpDtCWsFAPyQflgFSl+zf/GmzxnqGyCC5TbN6vqT7RWAG8mNmtzVdaqhdQmB5tEYFZZtyly4O4sNdu7gfk44qaLy3nsC5rYuqkWx++pgG8TPv6Pn1GreL7LpFWBgZF+bU2hj/YTZvvuaXU6tw2VCYbnonff/dF8UF5p/pfyHv8tX3HIt5j6CNA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4MVMeon6HKxOulYpnYPPbW2YDxo3ZPqEYdYeQQMk+VQ=; b=WrJtVrvbmpa5q5D08YkDaLn0G6jqpffw/ZJyuJ4ZcnKqVHrZTHAVuimp4XJu6ync9FenXtOUFORr49WS0RvYwHsIU/8UYaeUQ9Bev79rnsmPBPfVoL4f5lHLS3L3FRmOq/eXu/PLcy0F0PLCaD69B7S6JAiBE0A7sa2Q2Pi74KI= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM4PR11MB5357.namprd11.prod.outlook.com (2603:10b6:5:394::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.21; Mon, 21 Jun 2021 14:38:37 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48%7]) with mapi id 15.20.4242.023; Mon, 21 Jun 2021 14:38:37 +0000 From: "Ananyev, Konstantin" To: "Yigit, Ferruh" , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Thomas Monjalon , "Richardson, Bruce" CC: "dev@dpdk.org" , "olivier.matz@6wind.com" , "andrew.rybchenko@oktetlabs.ru" , "honnappa.nagarahalli@arm.com" , "jerinj@marvell.com" , "gakhil@marvell.com" Thread-Topic: [dpdk-dev] [PATCH] parray: introduce internal API for dynamic arrays Thread-Index: AQHXYQxT3nKj3OToOE+g04oypCLg2asTbdkAgAAOoICAAATCgIAAFeZggAAOq/CABIvGAIAAHL6ggAAPB4CAATs50IAEplTQgAApWQCAAAaAEIAAHYUAgAAHjwA= Date: Mon, 21 Jun 2021 14:38:37 +0000 Message-ID: References: <20210614105839.3379790-1-thomas@monjalon.net> <98CBD80474FA8B44BF855DF32C47DC35C6184E@smartserver.smartshare.dk> <2004320.XGyPsaEoyj@thomas> <0bb118ba-2658-a7d7-ad8f-bf27f62849f7@intel.com> <98CBD80474FA8B44BF855DF32C47DC35C6187A@smartserver.smartshare.dk> <5669a171-2bb2-2f99-1dad-e5e0eefb5ddd@intel.com> In-Reply-To: <5669a171-2bb2-2f99-1dad-e5e0eefb5ddd@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [109.255.184.192] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 431bc0e6-5a35-4025-6132-08d934c241a2 x-ms-traffictypediagnostic: DM4PR11MB5357: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pANAK1wtWvLKDnoM565mD9Yy6E71482BTeEDnmjdr1gnfkIoozbFf2B4ked5n5gW3mNuCZV0AbaNiFp7w3BbT852slhMbcFPS8uiMk+OWck9S5qapRhBU43XsmfMyUbZihodhJp0MsFYE0Au1rnLsXsMOS74oOoHtj6np9Pfi7j5oTVo4vxKh2TE59NbV4TDoc9QYy9lQKu7aeMfxOx6Sjzhx6/99Dqx4OBFj8vyQExUGDTNwFXlhvrPGt9LFApZPh79V3PqrrIZmGBSApz+/NYKdE2OPHjLmX0zaOIMUVcPpi3J6XCzBLCzh5R9ifyqJdW1P+uMYAr4DN1l7v7AphUVNE0UqJ06kya04WOJUw7heSf1MkPNKxu2twPS7tDXxyGij1LpKOnbPOE4VNP2uVvcfhfSurvkUFiZlr1QWPRIzD2FkZxTCC0GOHrO02Bj0lhCSiwaHfMLm9+/ifmfbANMgfCumDqKf8op9j3g0Pi4Zp6rTimkhyJL7wp/9UbFCBTyR3FzwynAIaB7cMkbYvAWI33UDeWknCGYpyFivNBptculZRLKjEGo7Gwva5aBgQawFDWrqQSlRAeMD3FIGCGdi3PzJGgzrYep7hRoSLw= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(39860400002)(396003)(346002)(136003)(376002)(76116006)(64756008)(66446008)(66556008)(66946007)(66476007)(86362001)(2906002)(4326008)(5660300002)(33656002)(52536014)(55236004)(6506007)(53546011)(7696005)(186003)(9686003)(54906003)(478600001)(8676002)(26005)(316002)(38100700002)(8936002)(83380400001)(110136005)(71200400001)(122000001)(55016002)(6636002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VnBoalNPeFVqdEQ0Tm4yMktSWHN0V29FWkFWaDVEeEdXRGJJRjE5SjlzTkFE?= =?utf-8?B?SGRvd0hyNWNsaE5Bc29CSlFNQmJuTThhVHRQb2dyY3Myc0VXL2YzMlBtVzYv?= =?utf-8?B?aFlpdzluZlhyWFY0OHhPdy9YL1cwMmVNWHF5cXFyTmxuYzJoM0ZPNFNVQ2dG?= =?utf-8?B?LzNvNzBQTkxqZTZhaTlCaXFKdTZ2K0VCcWd0ci9hU0F2ZExNY2FPYkc3NTBZ?= =?utf-8?B?aDhhWHVyUXZmRU9kdDd6ZU5ZWHJwd0RUM211c1Z3NjVQbTRhMWtrenVJeHds?= =?utf-8?B?NFJ3RGt6ZnMvZjJJbXNCenJmOFBHdVgrVElGSVJjQ05uY3g4eU0zZk13N0pu?= =?utf-8?B?LzFENzIzOGplWm0vNG1IYWhHUDZJcmp5aktwRDNMclBHSksxanNmMXg5K25p?= =?utf-8?B?R2lCQ2hxeDBJeGFGRVAydkg4T2FqWWl0ckk0NGxSeWJJVytObnNRUFlGNEhL?= =?utf-8?B?NG9HTXF5LzdUS044RklaYjhSNEd4STZaNzdxcElzOW9DLzJZYm1FVnVXcTJa?= =?utf-8?B?MEh3WmlYN0ZnZytTdS91M2d5Y245ZUVsTVFQMExpS29iTHVSRDloaStuU0pi?= =?utf-8?B?YXB2c3J5NlZjNU5jcmpZREFYclN0V2x0SWlPRVovUlYzcG9LbTM3alN0aEND?= =?utf-8?B?NzZ0S2thdmFYUC9DS0h0OW9nYnhxRTNKNDRXZGhDeDNYY1JlSXlBSTVrTW5t?= =?utf-8?B?Zm1tT0NtdDQrcVZMRlYzK1J4WTVLQzA3Vkl1UW11K0hhS2wwU3VubitRVzh6?= =?utf-8?B?dy95cEJkeE1RQjd4VFlkTkNveHU2T0NHRWZqbHlHTmJ1TURMMGxqSHlpeVdR?= =?utf-8?B?TjNMMHBKRlp3b0lpZTh2eFJsVS9LQi9RcmY3azhXNndGYXNRRjVtSUVlVEV3?= =?utf-8?B?VnYyNFQ2NlUvSnlGMXBXN2J2NkhJblNCdnMyTFUzcnkzU3g3M2RwZUNyaE9D?= =?utf-8?B?Zk5HY1gzNjJXSkcyVDhBZnFXY1UzTlhJVEh2RnZaWkdFUGswVFNhMDRXSndk?= =?utf-8?B?VnJlUnlYNGdzTGl0U1pLSzNra3AzU3R5dU51dUhhVXp0Y2J3RUVPY0FtVWFC?= =?utf-8?B?SzZZUjUxQUdMTFBHSGRVbWtaVE5yRnlxcjBHZWxwdEptTGduOTZBUU9IWGl4?= =?utf-8?B?STM0VmoxYVFrSWFDQjc5VUZncmlJY0E2UmNFQ0lGZzJwdGp2MnBIb3hIa0pS?= =?utf-8?B?Tm9EaVdETHBGWlV4YlZwT083c3ZPek5IeHFUaG81NkRaN1l2elFYSXF3VjI5?= =?utf-8?B?WEh2N0ZDeVo5SDY5UnM0eDBxa3BzTmRMT0J6RmgwdWpYKzhTUkFLNWR1NmJT?= =?utf-8?B?Y1RiK0x6M2lxSU5jNkg3aUI4ZVFGbkdvOVhabXJTUkJJYzBkNVo4WjJKWVI5?= =?utf-8?B?VWJNZzZicTJQR0VxeVQ2cThNMy9ZRkNGcFBaNmFOaEFKSndkNGFzWUFoUUt5?= =?utf-8?B?NEdNL2IxMmVCQ25lSVNreWxlWUh3UFFRaG12dk1seTBiQktBMzdYMHVkNzlW?= =?utf-8?B?YWY2Y1RRZFp0V0hHZzBGR2NCS0FudjIyY25xOXZuNjZtVUZpTEdNc1FlSmVV?= =?utf-8?B?a3lndWNITHZCeERNc250ZXEvMUd3WnJUcWJaTGNlNXBxbGxQUDZ6MlhyT3Q3?= =?utf-8?B?bmdLVENyWEpkamhWRUN6SEJYQkMzeWFvQk5PTEs0dXF1ZkdPZEJQYlNLeFRD?= =?utf-8?B?L010Wi9zOGRuOFJJbFc5aW9qaTVrOEdVb1FoZCtWWCtRU3B2bGdGT1lPQ3VT?= =?utf-8?Q?JTTsU8foim0ntvC2iMvtpDzCQYqK6K2vKKAH83i?= 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: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 431bc0e6-5a35-4025-6132-08d934c241a2 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jun 2021 14:38:37.7877 (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: G0sdElZOQW7oGyRSDtPZyzeTdrmqps10ARAxYRjBzIsD4n2Z32rDzAcqiz8/CBQgok4rMJ5AEquopw3YTwPiK5kU4/0ce831qjKspshbEpY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5357 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] parray: introduce internal API for dynamic arrays 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 Sender: "dev" DQo+IA0KPiBPbiA2LzIxLzIwMjEgMTozMCBQTSwgQW5hbnlldiwgS29uc3RhbnRpbiB3cm90ZToN Cj4gPg0KPiA+Pg0KPiA+Pj4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmdd IE9uIEJlaGFsZiBPZiBBbmFueWV2LA0KPiA+Pj4gS29uc3RhbnRpbg0KPiA+Pj4NCj4gPj4+Pj4g SG93IGNhbiB3ZSBoaWRlIHRoZSBjYWxsYmFja3Mgc2luY2UgdGhleSBhcmUgdXNlZCBieSBpbmxp bmUgYnVyc3QNCj4gPj4+IGZ1bmN0aW9ucy4NCj4gPj4+Pg0KPiA+Pj4+IEkgcHJvYmFibHkgSSBv d2UgYSBiZXR0ZXIgZXhwbGFuYXRpb24gdG8gd2hhdCBJIG1lYW50IGluIGZpcnN0IG1haWwuDQo+ ID4+Pj4gT3RoZXJ3aXNlIGl0IHNvdW5kcyBjb25mdXNpbmcuDQo+ID4+Pj4gSSdsbCB0cnkgdG8g d3JpdGUgYSBtb3JlIGRldGFpbGVkIG9uZSBpbiBuZXh0IGZldyBkYXlzLg0KPiA+Pj4NCj4gPj4+ IEFjdHVhbGx5IEkgZ2F2ZSBpdCBhbm90aGVyIHRob3VnaHQgb3ZlciB3ZWVrZW5kLCBhbmQgbWln aHQgYmUgd2UgY2FuDQo+ID4+PiBoaWRlIHJ0ZV9ldGhfZGV2X2NiIGV2ZW4gaW4gYSBzaW1wbGVy IHdheS4gSSdkIHVzZSBldGhfcnhfYnVyc3QoKSBhcw0KPiA+Pj4gYW4gZXhhbXBsZSwgYnV0IHRo ZSBzYW1lIHByaW5jaXBsZSBhcHBsaWVzIHRvIG90aGVyICdmYXN0JyBmdW5jdGlvbnMuDQo+ID4+ Pg0KPiA+Pj4gIDEuIE5lZWRlZCBjaGFuZ2VzIGZvciBQTURzIHJ4X3BrdF9idXJzdCgpOg0KPiA+ Pj4gICAgIGEpIGNoYW5nZSBmdW5jdGlvbiBwcm90b3R5cGUgdG8gYWNjZXB0ICd1aW50MTZfdCBw b3J0X2lkJyBhbmQNCj4gPj4+ICd1aW50MTZfdCBxdWV1ZV9pZCcsDQo+ID4+PiAgICAgICAgICBp bnN0ZWFkIG9mIGN1cnJlbnQgJ3ZvaWQgKicuDQo+ID4+PiAgICAgYikgRWFjaCBQTUQgcnhfcGt0 X2J1cnN0KCkgd2lsbCBoYXZlIHRvIGNhbGwgcnRlX2V0aF9yeF9lcGlsb2coKQ0KPiA+Pj4gZnVu Y3Rpb24gYXQgcmV0dXJuLg0KPiA+Pj4gICAgICAgICAgVGhpcyAgaW5saW5lIGZ1bmN0aW9uIHdp bGwgZG8gYWxsIENCIGNhbGxzIGZvciB0aGF0IHF1ZXVlLg0KPiA+Pj4NCj4gPj4+IFRvIGJlIG1v cmUgc3BlY2lmaWMsIGxldCBzYXkgd2UgaGF2ZSBzb21lIFBNRDogeHl6IHdpdGggUlggZnVuY3Rp b246DQo+ID4+Pg0KPiA+Pj4gdWludDE2X3QNCj4gPj4+IHh5el9yZWN2X3BrdHModm9pZCAqcnhf cXVldWUsIHN0cnVjdCBydGVfbWJ1ZiAqKnJ4X3BrdHMsIHVpbnQxNl90DQo+ID4+PiBuYl9wa3Rz KQ0KPiA+Pj4gew0KPiA+Pj4gICAgICBzdHJ1Y3QgeHl6X3J4X3F1ZXVlICpyeHEgPSByeF9xdWV1 ZTsNCj4gPj4+ICAgICAgdWludDE2X3QgbmJfcnggPSAwOw0KPiA+Pj4NCj4gPj4+ICAgICAgLyog ZG8gYWN0dWFsIHN0dWZmIGhlcmUgKi8NCj4gPj4+ICAgICAuLi4uDQo+ID4+PiAgICAgcmV0dXJu IG5iX3J4Ow0KPiA+Pj4gfQ0KPiA+Pj4NCj4gPj4+IEl0IHdpbGwgYmUgdHJhbnNmb3JtZWQgdG86 DQo+ID4+Pg0KPiA+Pj4gdWludDE2X3QNCj4gPj4+IHh5el9yZWN2X3BrdHModWludDE2X3QgcG9y dF9pZCwgdWludDE2X3QgcXVldWVfaWQsIHN0cnVjdCBydGVfbWJ1Zg0KPiA+Pj4gKipyeF9wa3Rz LCB1aW50MTZfdCBuYl9wa3RzKQ0KPiA+Pj4gew0KPiA+Pj4gICAgICAgICAgc3RydWN0IHh5el9y eF9xdWV1ZSAqcnhxOw0KPiA+Pj4gICAgICAgICAgdWludDE2X3QgbmJfcng7DQo+ID4+Pg0KPiA+ Pj4gICAgICAgICAgcnhxID0gX3J0ZV9ldGhfcnhfcHJvbG9nKHBvcnRfaWQsIHF1ZXVlX2lkKTsN Cj4gPj4+ICAgICAgICAgIGlmIChyeHEgPT0gTlVMTCkNCj4gPj4+ICAgICAgICAgICAgICByZXR1 cm4gMDsNCj4gPj4+ICAgICAgICAgIG5iX3J4ID0gX3h5el9yZWFsX3JlY3ZfcGt0cyhyeHEsIHJ4 X3BrdHMsIG5iX3BrdHMpOw0KPiA+Pj4gICAgICAgICAgcmV0dXJuIF9ydGVfZXRoX3J4X2VwaWxv Zyhwb3J0X2lkLCBxdWV1ZV9pZCwgcnhfcGt0cywNCj4gPj4+IG5iX3BrdHMpOw0KPiA+Pj4gfQ0K PiA+Pj4NCj4gPj4+IEFuZCBzb21ld2hlcmUgaW4gZXRoZGV2X3ByaXZhdGUuaDoNCj4gPj4+DQo+ ID4+PiBzdGF0aWMgaW5saW5lIHZvaWQgKg0KPiA+Pj4gX3J0ZV9ldGhfcnhfcHJvbG9nKHVpbnQx Nl90IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkKTsNCj4gPj4+IHsNCj4gPj4+ICAgIHN0cnVj dCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gPj4+DQo+ ID4+PiAjaWZkZWYgUlRFX0VUSERFVl9ERUJVR19SWA0KPiA+Pj4gICAgICAgICBSVEVfRVRIX1ZB TElEX1BPUlRJRF9PUl9FUlJfUkVUKHBvcnRfaWQsIE5VTEwpOw0KPiA+Pj4gICAgICAgICBSVEVf RlVOQ19QVFJfT1JfRVJSX1JFVCgqZGV2LT5yeF9wa3RfYnVyc3QsIE5VTEwpOw0KPiA+Pj4NCj4g Pj4+ICAgICAgICAgaWYgKHF1ZXVlX2lkID49IGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzKSB7DQo+ ID4+PiAgICAgICAgICAgICAgICAgUlRFX0VUSERFVl9MT0coRVJSLCAiSW52YWxpZCBSWCBxdWV1 ZV9pZD0ldVxuIiwNCj4gPj4+IHF1ZXVlX2lkKTsNCj4gPj4+ICAgICAgICAgICAgICAgICByZXR1 cm4gTlVMTDsNCj4gPj4+ICAgICAgICAgfQ0KPiA+Pj4gI2VuZGlmDQo+ID4+PiAgIHJldHVybiBk ZXYtPmRhdGEtPnJ4X3F1ZXVlc1txdWV1ZV9pZF07DQo+ID4+PiB9DQo+ID4+Pg0KPiA+Pj4gc3Rh dGljIGlubGluZSB1aW50MTZfdA0KPiA+Pj4gX3J0ZV9ldGhfcnhfZXBpbG9nKHVpbnQxNl90IHBv cnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLCBzdHJ1Y3QgcnRlX21idWYNCj4gPj4+ICoqcnhfcGt0 cywgY29uc3QgdWludDE2X3QgbmJfcGt0cyk7DQo+ID4+PiB7DQo+ID4+PiAgICAgc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYgPSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiA+Pj4NCj4gPj4+ ICNpZmRlZiBSVEVfRVRIREVWX1JYVFhfQ0FMTEJBQ0tTDQo+ID4+PiAgICAgICAgIHN0cnVjdCBy dGVfZXRoX3J4dHhfY2FsbGJhY2sgKmNiOw0KPiA+Pj4NCj4gPj4+ICAgICAgICAgLyogX19BVE9N SUNfUkVMRUFTRSBtZW1vcnkgb3JkZXIgd2FzIHVzZWQgd2hlbiB0aGUNCj4gPj4+ICAgICAgICAg ICogY2FsbCBiYWNrIHdhcyBpbnNlcnRlZCBpbnRvIHRoZSBsaXN0Lg0KPiA+Pj4gICAgICAgICAg KiBTaW5jZSB0aGVyZSBpcyBhIGNsZWFyIGRlcGVuZGVuY3kgYmV0d2VlbiBsb2FkaW5nDQo+ID4+ PiAgICAgICAgICAqIGNiIGFuZCBjYi0+Zm4vY2ItPm5leHQsIF9fQVRPTUlDX0FDUVVJUkUgbWVt b3J5IG9yZGVyIGlzDQo+ID4+PiAgICAgICAgICAqIG5vdCByZXF1aXJlZC4NCj4gPj4+ICAgICAg ICAgICovDQo+ID4+PiAgICAgICAgIGNiID0gX19hdG9taWNfbG9hZF9uKCZkZXYtPnBvc3Rfcnhf YnVyc3RfY2JzW3F1ZXVlX2lkXSwNCj4gPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4+Pg0KPiA+Pj4gICAgICAgICBpZiAodW5saWtlbHko Y2IgIT0gTlVMTCkpIHsNCj4gPj4+ICAgICAgICAgICAgICAgICBkbyB7DQo+ID4+PiAgICAgICAg ICAgICAgICAgICAgICAgICBuYl9yeCA9IGNiLT5mbi5yeChwb3J0X2lkLCBxdWV1ZV9pZCwgcnhf cGt0cywNCj4gPj4+IG5iX3J4LA0KPiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmJfcGt0cywgY2ItPnBhcmFtKTsNCj4gPj4+ICAgICAgICAgICAg ICAgICAgICAgICAgIGNiID0gY2ItPm5leHQ7DQo+ID4+PiAgICAgICAgICAgICAgICAgfSB3aGls ZSAoY2IgIT0gTlVMTCk7DQo+ID4+PiAgICAgICAgIH0NCj4gPj4+ICNlbmRpZg0KPiA+Pj4NCj4g Pj4+ICAgICAgICAgcnRlX2V0aGRldl90cmFjZV9yeF9idXJzdChwb3J0X2lkLCBxdWV1ZV9pZCwg KHZvaWQgKiopcnhfcGt0cywNCj4gPj4+IG5iX3J4KTsNCj4gPj4+ICAgICAgICAgcmV0dXJuIG5i X3J4Ow0KPiA+Pj4gIH0NCj4gPj4NCj4gPj4gVGhhdCB3b3VsZCBtYWtlIHRoZSBjb21waWxlciBp bmxpbmUgX3J0ZV9ldGhfcnhfZXBpbG9nKCkgaW50byB0aGUgZHJpdmVyIHdoZW4gY29tcGlsaW5n IHRoZSBEUERLIGxpYnJhcnkuIEJ1dA0KPiA+PiBSVEVfRVRIREVWX1JYVFhfQ0FMTEJBQ0tTIGlz IGEgZGVmaW5pdGlvbiBmb3IgdGhlIGFwcGxpY2F0aW9uIGRldmVsb3BlciB0byB1c2Ugd2hlbiBj b21waWxpbmcgdGhlIERQREsgYXBwbGljYXRpb24uDQo+ID4NCj4gPiBJIGJlbGlldmUgaXQgaXMg Zm9yIGJvdGggLSB1c2VyIGFwcCBhbmQgRFBESyBkcml2ZXJzLg0KPiA+IEFGQUlLLCB0aGV5IGJv dGggaGF2ZSB0byB1c2UgdGhlIHNhbWUgcnRlX2NvbmZpZy5oLCBvdGhlcndpc2UgdGhpbmdzIHdp bGwgYmUgYnJva2VuLg0KPiA+IElmIGxldCBzYXkgUlRFX0VUSERFVl9SWFRYX0NBTExCQUNLUyBp cyBub3QgZW5hYmxlZCBpbiBldGhkZXYsIHRoZW4NCj4gPiB1c2VyIHdvdWxkbid0IGJlIGFibGUg dG8gYWRkIGEgY2FsbGJhY2sgYXQgZmlyc3QgcGxhY2UuDQo+ID4gQlRXLCAgc3VjaCBjaGFuZ2Ug d2lsbCBhbGxvdyB1cyB0byBtYWtlIFJURV9FVEhERVZfUlhUWF9DQUxMQkFDS1MNCj4gPiBpbnRl cm5hbCBmb3IgZXRoZGV2L1BNRCBsYXllciwgd2hpY2ggaXMgYSBnb29kIHRoaW5nIGZyb20gbXkg cGVyc3BlY3RpdmUuDQo+ID4NCj4gDQo+IEl0IGlzIHBvc3NpYmxlIHRvIHVzZSBiaW5hcnkgZHJp dmVycyAoLnNvKSBhcyBwbHVnaW4uIEN1cnJlbnRseSBhcHBsaWNhdGlvbiBjYW4NCj4gZGVjaWRl IHRvIHVzZSBvciBub3QgdXNlIFJ4L1R4IGNhbGxiYWNrcyBldmVuIHdpdGggYmluYXJ5IGRyaXZl cnMsIGJ1dCB0aGlzDQo+IGNoYW5nZSBhZGRzIGEgY29tcGxleGl0eSB0byB0aGlzIHVzZWNhc2Uu DQoNCk5vdCBzdXJlIEkgdW5kZXJzdGFuZCB5b3UgaGVyZS4uLg0KQ2FuIHlvdSBleHBsYWluIGEg Yml0IG1vcmUgd2hhdCBkbyB5b3UgbWVhbj8NCg0KPiANCj4gPj4NCj4gPj4+DQo+ID4+PiBOb3cs IGFzIHlvdSBzYWlkIGFib3ZlLCBpbiBydGVfZXRoZGV2Lmggd2Ugd2lsbCBrZWVwIG9ubHkgYSBm bGF0IGFycmF5DQo+ID4+PiB3aXRoIHBvaW50ZXJzIHRvICdmYXN0JyBmdW5jdGlvbnM6DQo+ID4+ PiBzdHJ1Y3Qgew0KPiA+Pj4gICAgICBldGhfcnhfYnVyc3RfdCAgICAgICAgICAgICByeF9wa3Rf YnVyc3QNCj4gPj4+ICAgICAgIGV0aF90eF9idXJzdF90ICAgICAgICAgICAgIHR4X3BrdF9idXJz dDsNCj4gPj4+ICAgICAgIGV0aF90eF9wcmVwX3QgICAgICAgICAgICAgIHR4X3BrdF9wcmVwYXJl Ow0KPiA+Pj4gICAgICAuLi4uLg0KPiA+Pj4gfSBydGVfZXRoX2Rldl9idXJzdFtdOw0KPiA+Pj4N Cj4gPj4+IEFuZCBydGVfZXRoX3J4X2J1cnN0KCkgd2lsbCBsb29rIGxpa2U6DQo+ID4+Pg0KPiA+ Pj4gc3RhdGljIGlubGluZSB1aW50MTZfdA0KPiA+Pj4gcnRlX2V0aF9yeF9idXJzdCh1aW50MTZf dCBwb3J0X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gPj4+ICAgICAgICAgICAgICAgICAgc3Ry dWN0IHJ0ZV9tYnVmICoqcnhfcGt0cywgY29uc3QgdWludDE2X3QgbmJfcGt0cykNCj4gPj4+IHsN Cj4gPj4+ICAgICBpZiAocG9ydF9pZCA+PSBSVEVfTUFYX0VUSFBPUlRTKQ0KPiA+Pj4gICAgICAg ICByZXR1cm4gMDsNCj4gPj4+ICAgIHJldHVybiBydGVfZXRoX2Rldl9idXJzdFtwb3J0X2lkXShw b3J0X2lkLCBxdWV1ZV9pZCwgcnhfcGt0cywNCj4gPj4+IG5iX3BrdHMpOw0KPiA+Pj4gfQ0KPiA+ Pj4NCj4gPj4+IFllcywgaXQgd2lsbCByZXF1aXJlIGNoYW5nZXMgaW4gKmFsbCogUE1EcywgYnV0 IGFzIEkgc2FpZCBiZWZvcmUgdGhlDQo+ID4+PiBjaGFuZ2VzIHdpbGwgYmUgYSBtZWNoYW5pYyBv bmVzLg0KDQo=