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 9DD4AA0C47; Tue, 15 Jun 2021 12:08:56 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 193644067A; Tue, 15 Jun 2021 12:08:56 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 8569940140 for ; Tue, 15 Jun 2021 12:08:54 +0200 (CEST) IronPort-SDR: X7z7/xL2qf/bdErhWCNOtNGjSmLjLO6mqTwVRb/EIE9w971MLZlMOhDRkLfQsmnloTN98Z1aGg /S0LMAN7S7xw== X-IronPort-AV: E=McAfee;i="6200,9189,10015"; a="205780095" X-IronPort-AV: E=Sophos;i="5.83,275,1616482800"; d="scan'208";a="205780095" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Jun 2021 03:08:53 -0700 IronPort-SDR: IhrGUHoR7FCD0M/Ug+eLXLZY9DjDy1Fg+Z5uldYJU4StIWxucX+LjKibzvDTndogUvP8o/rlqw ijENY2PMV9qA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,275,1616482800"; d="scan'208";a="478679563" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by FMSMGA003.fm.intel.com with ESMTP; 15 Jun 2021 03:08:53 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) 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; Tue, 15 Jun 2021 03:08:53 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Tue, 15 Jun 2021 03:08:53 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.173) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Tue, 15 Jun 2021 03:08:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oAcSi1CFrbev9pPwCLlW6nMAW5xvnV4+mi8R/ah3cRPVyNZygjC21nL3PDijA3vLgJhmYXpkZjPKL8JxdkCJpJk75I7dDmKHA9VjYomBfu1gkavBgaFy1ScsvTHet10Qg3dmHKRdwo+GLLbKENQrKnaSmqaRSltrjouLQGAZBaC0D1EPQWpVT29z5LA3vn4pbWrATQs+xVhNYHHNqm4nz0N2SP8VrRswnvs2QwL4mVZrmnECE32WeOKzCtavPx8Hwc8OInmr7JzGOu1tN8ectELFwtJKfh0Djk+dbah/xHV8M5vYAM1SHDHBgYLbb2q2Y57vDp9/owqSn5C1CD8tgg== 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=BBs7KbjVUXNFOK8IH/nMCKDXfu4TvDaRbXxQ4sg62W4=; b=Mq9kRfl2/bakeG4dHaWg2AHJqQcUI1FRM5YBP2seRzoZQYWHOEEmr6/JUzb//cCWTN5neyPdZkWImVtziyfilkvbgq/10T0ioH4VLDVsA7VyK8H3FdOoDz48YAGDZoq9ZUoOUgFAZryJ5y78xetlYkoz85YOKNuGPPnvAuXdbkbvrXbQ+Gnfb8kWEXZE8zDH0o746Bv3LkuNbFpAJ91M9SVHpLNIz9IHDCzFuFiSWiQwIA5CvcpXkCgLYWsl4DrP8BAMmjomrUYs4vaUZPvGg9g9rI0A/mvOh+cSJozK3We/7/a8t38Ov7Cln3ucAEZct45HBO6LVE0XRJhMfBVz4A== 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=BBs7KbjVUXNFOK8IH/nMCKDXfu4TvDaRbXxQ4sg62W4=; b=foHU0jEAyE8OCUIh4XEvTyqmptxJK+bV/+UciiSsuZ0Wg/zJh2S1IuA73OrK/OeYIjiOHzUAlTEbtskppwVJSXjBOjftOMWHqlJKnJ/RSu/Pr1fn7MalSixsGFsoe6H2u83gMADzVrj2j/qIzShUx0fdfz2b014m2p41ujLUGvI= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM5PR11MB1817.namprd11.prod.outlook.com (2603:10b6:3:10e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.24; Tue, 15 Jun 2021 10:08:51 +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.4219.025; Tue, 15 Jun 2021 10:08:51 +0000 From: "Ananyev, Konstantin" To: Thomas Monjalon , Jerin Jacob CC: "Richardson, Bruce" , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "dev@dpdk.org" , "olivier.matz@6wind.com" , "andrew.rybchenko@oktetlabs.ru" , "honnappa.nagarahalli@arm.com" , "Yigit, Ferruh" , "jerinj@marvell.com" , "gakhil@marvell.com" Thread-Topic: [dpdk-dev] [PATCH] parray: introduce internal API for dynamic arrays Thread-Index: AQHXYQxT3nKj3OToOE+g04oypCLg2asTbdkAgAAOoICAAATCgIAAFeZggAAQUgCAAPyKAIAAIe3QgAAPrQCAAAImcA== Date: Tue, 15 Jun 2021 10:08:50 +0000 Message-ID: References: <20210614105839.3379790-1-thomas@monjalon.net> <52380960.E65VIl4Blx@thomas> <27997952.XWs9bGgn2z@thomas> In-Reply-To: <27997952.XWs9bGgn2z@thomas> 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: monjalon.net; dkim=none (message not signed) header.d=none;monjalon.net; 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: e4be0ff8-bd52-415a-40d5-08d92fe5930e x-ms-traffictypediagnostic: DM5PR11MB1817: 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: shXWgQt6nzYd03Zq5//v3lpUDTou/0ZbF9gSOxSXYBbSDrhEi6kMcZfmuWc/kH4k8Hw1GulzTM9UAEBL+UGk7RuyCrUvoF4j9hHEc+vPeCSeCIF885lnyTvSNayo94dZSWGPmU4ldx7ohTytFjVmak7+tjRPwk/7jl2l7P3LwbnS+5LcBd/hT/7CPBu1hW0XYmRkO1qI+JGNeHmS6JEnoY3vaFOp38TzGmnmxBeAhweSpjqUSAQ0diaOWWFcYRhwcNBoPYtfiw9LbWOTO8rqT0MIxhbHqyZRCQx3nNQc5IW3e8qoM1VJgni9wq/4WBk9OeGdT07lpg66KclxJYStq3fbRjtFPjbSetplga2EgynWa0/CIWSBZ1VAn4eTd73+rHg9ila6uiGYTX7YsQQSR72ASnvQJYAhNHPtFBkDYfDc/+Nd/QzPKd340wpduENA8ttq+cDhyoKyaFiNvmwqyw2zpPiKMZf/bQ4lFCXECYzH2yqdnDxIrj4Vvc4N27Y7psii9Y/Yug1+3rvzr9AFaObFpKXHrJJABFyocTVk97JOZp1YwdlFfEz5qC/x1ouuOEBKl3h4D2Y2RttHD+3csMpo+JOQ5lrCleaMYsjR99Q= 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:(39860400002)(396003)(136003)(376002)(346002)(366004)(53546011)(316002)(6506007)(5660300002)(4326008)(33656002)(54906003)(110136005)(71200400001)(86362001)(9686003)(8936002)(55016002)(7696005)(478600001)(52536014)(83380400001)(2906002)(66946007)(186003)(76116006)(66476007)(38100700002)(66446008)(64756008)(66556008)(122000001)(55236004)(26005)(8676002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?KzBpbGFYOGJIYW1CY0ZRajh2SUFCQzQvUW11OG5HdGd5amhDK3B4SmdhMkNu?= =?utf-8?B?bGZZZFAxdGFOTjhYaXFwSkxGTitqZ25CSU42NHNuU2dCa3ZQMndacEV2aGxJ?= =?utf-8?B?Z2tqb3ZyNzgvcTlNRjJXWVRqNGZHZ0xERk1uakQ4aWhQQ0JkOW0zN3hZbk9L?= =?utf-8?B?R3dGb1lRdlpFYTVZWFRZdVZDMXhMSUkxVWF4am90WHU0VGh0QkFsaFhWUVFZ?= =?utf-8?B?bzJPVjVydEw4K0dFQVNRT1QzRFp0VlI0ak1OS0lSdGgxZWpnbElhWmVaT25O?= =?utf-8?B?VVQweVF5bENYSW5oK1pnRGh4cDgzRE9pMkVUS2p5T2pMdCtTUG5MNGhnQnlX?= =?utf-8?B?T284RDJYaTA2Z3lDeUNha3k5bHBrK1FGWll4dVF6NnRJeXp6TjJ6d0lsR3pP?= =?utf-8?B?ZTR3VERWWHhiRS9Wc2RhZk1jcUcxWEJiMWpRSytZUGFjcWRzS3p2STR4QmM2?= =?utf-8?B?RE9iZElYZzc0cWhIV1dvMzV6dlRyaVNESFF0Q2trZkxFSEdzOHFqQUdGaU0z?= =?utf-8?B?YnRaZTZqZHovN2dERkJTTlM0WFZtRk9PL2FXNkNEUW9YMmxUckJFRURmNUhs?= =?utf-8?B?UHNtdXJvVXJmNHNuWXJWVHFVbFdROWcxOHF1K3ZLRFVKWEo2Z0lLcEw1RlZB?= =?utf-8?B?NFk1Znk5WFFmNW1Zb1I3ZEhZZ1JZbUxxWCtLM2g0NHl4UEE5WlIwVWtRQ2dI?= =?utf-8?B?aW5hN0Yrc010OEZTNGRrUE14RkhhRzVHTE5zcG1jNkZQK2syUjFud3RnaWxr?= =?utf-8?B?dlVKKzQ2Qm1xT2Y0c1VoN1loY3NKZ0wyK3N3THdlMjhxVW4yemxlcjhBTGlh?= =?utf-8?B?elFlRHNQU2ptSWZIYUo3TlFwOEhhR2lEbVVhRTVXbEhTcllKTEsxM205N1NT?= =?utf-8?B?TjI3WGZKaEx0dmtKVTZIbXhiUEtDSTRlbTBkekJ2Uk1aNXo2aGpZdDlLMmJ2?= =?utf-8?B?Sm5weEczWjRsOWRUcVFNbDZleW80RTNBMVlLV1kwR21wMG54ZWRZS1UxL0E1?= =?utf-8?B?MkpLRHJzWHAwY004SjAwMU1pTzlsM3ZLZ3NrQjJLV3B5eEY5bGxWOVgwdXVn?= =?utf-8?B?QVhsOWI2SkY1d1NuYmJkNnU2OHRRc0N0WkVpeXdXQXQwVkJLMThkY2JzUGk5?= =?utf-8?B?dDdUWTR5YzVjRU5IRkRscTNhcVdBQ1RTWVJKTmVXNy8yOHJTeDhtZ0JDYzhQ?= =?utf-8?B?b29DTEt3VzZhTTcrWm1WY3RQQXF4MXNHNGRJU0VKTGhiMHhvcXA2L3gyeU5y?= =?utf-8?B?M1h2dHl5U1VSQmVJenJCQ3Q5OTdHSjFnVUVZRDZEYkxOVjNneWRrRUVuU1Fi?= =?utf-8?B?b2ZTd203bGFlN25wNlIxWFlrNjUyZUFTbkdXVkplWDRuWG5HS0w0OGFQTTVX?= =?utf-8?B?Ny9hbllsUlRiT3FjeVdnVVdabjdpS1hUVlNZYzV1ZnpxOHB4Tk1zZlpYQ1FI?= =?utf-8?B?Qll6UVJxVStVbkdzWFBRQnVtZEQxTVd5NERqZGxvam9pQ3RmcForaXJUQkpv?= =?utf-8?B?eUd2M2h0TEdQVkpCMGgyR3VMeHcwY2xyTlZhQXphWFYvRC95SHhjOUY2eW1G?= =?utf-8?B?c2h5eHVxeDFXRWxCTGdVTGFOOXF0blh5aTJUb0wzdkhhTHZma25qOTlCSWRt?= =?utf-8?B?N0xEOGVNS084ZUpHOVVWN0piN1dVWnZIKzhEaW81cExCd1NUMXdJazJNOEVy?= =?utf-8?B?eURCdE82TDJEMXN2NFovSHBpV0pEcE1kMnpZem1YVFNSTVdJUEVKQ01jbjV4?= =?utf-8?Q?we0TdOqgrD7aFEidOFV1eqWuAleiLnEOilOe25B?= 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: e4be0ff8-bd52-415a-40d5-08d92fe5930e X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jun 2021 10:08:50.8948 (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: S7CO3j/2i9sbHc7i6qWgn/UNDZ613Ywb4DNdLJef8tBKUYK6yiMyOsIQkj9fsAt0FUS0d/p7NlaznTBzEzDTFHStMQrTtJGuhFf3WPBMyeI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1817 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" DQoNCj4gDQo+IDE1LzA2LzIwMjEgMTE6MzMsIEFuYW55ZXYsIEtvbnN0YW50aW46DQo+ID4gPiAx NC8wNi8yMDIxIDE3OjQ4LCBKZXJpbiBKYWNvYjoNCj4gPiA+ID4gT24gTW9uLCBKdW4gMTQsIDIw MjEgYXQgODoyOSBQTSBBbmFueWV2LCBLb25zdGFudGluDQo+ID4gPiA+IDxrb25zdGFudGluLmFu YW55ZXZAaW50ZWwuY29tPiB3cm90ZToNCj4gPiA+ID4gPiBJIGhhZCBvbmx5IGEgcXVpY2sgbG9v ayBhdCB5b3VyIGFwcHJvYWNoIHNvIGZhci4NCj4gPiA+ID4gPiBCdXQgZnJvbSB3aGF0IEkgY2Fu IHJlYWQsIGluIE1UIGVudmlyb25tZW50IHlvdXIgc3VnZ2VzdGlvbiB3aWxsIHJlcXVpcmUNCj4g PiA+ID4gPiBleHRyYSBzeW5jaHJvbml6YXRpb24gZm9yIGVhY2ggcmVhZC13cml0ZSBhY2Nlc3Mg dG8gc3VjaCBwYXJyYXkgZWxlbWVudCAobG9jaywgcmN1LCAuLi4pLg0KPiA+ID4gPiA+IEkgdGhp bmsgd2hhdCBCcnVjZSBzdWdnZXN0cyB3aWxsIGJlIG11Y2ggbGlndGhlciwgZWFzaWVyIHRvIGlt cGxlbWVudCBhbmQgbGVzcyBlcnJvciBwcm9uZS4NCj4gPiA+ID4gPiBBdCBsZWFzdCBmb3IgcnRl X2V0aGRldnNbXSBhbmQgZnJpZW5kcy4NCj4gPiA+ID4NCj4gPiA+ID4gKzENCj4gPiA+DQo+ID4g PiBQbGVhc2UgY291bGQgeW91IGhhdmUgYSBkZWVwZXIgbG9vayBhbmQgdGVsbCBtZSB3aHkgd2Ug bmVlZCBtb3JlIGxvY2tzPw0KPiA+ID4gVGhlIGVsZW1lbnQgcG9pbnRlcnMgZG9lc24ndCBjaGFu Z2UuDQo+ID4gPiBPbmx5IHRoZSBhcnJheSBwb2ludGVyIGNoYW5nZSBhdCByZXNpemUsDQo+ID4N Cj4gPiBZZXMsIGFycmF5IHBvaW50ZXIgY2hhbmdlcyBhdCByZXNpemUsIGFuZCByZWFkZXIgaGFz IHRvIHJlYWQgdGhhdCB2YWx1ZQ0KPiA+IHRvIGFjY2VzcyBlbGVtZW50cyBpbiB0aGUgcGFycmF5 LiBXaGljaCBtZWFucyB0aGF0IHdlIG5lZWQgc29tZSBzeW5jDQo+ID4gYmV0d2VlbiByZWFkZXJz IGFuZCB1cGRhdGVycyB0byBhdm9pZCByZWFkZXIgdXNpbmcgc3RhbGUgcG9pbnRlciAocmVmLWNv dW50ZXIsIHJjdSwgZXRjLikuDQo+IA0KPiBObw0KPiBUaGUgb2xkIGFycmF5IGlzIHN0aWxsIHRo ZXJlLCBzbyB3ZSBkb24ndCBuZWVkIHN5bmMuDQo+IA0KPiA+IEkuRS4gdXBkYXRlciBjYW4gZnJl ZSBvbGQgYXJyYXkgcG9pbnRlciAqb25seSogd2hlbiBpdCBjYW4gZ3VhcmFudGVlIHRoYXQgdGhl cmUgYXJlIG5vDQo+ID4gcmVhZGVycyB0aGF0IHN0aWxsIHVzZSBpdC4NCj4gDQo+IE5vDQo+IFJl YWRpbmcgYW4gZWxlbWVudCBpcyBPSyBiZWNhdXNlIHRoZSBwb2ludGVyIHRvIHRoZSBlbGVtZW50 IGlzIG5vdCBjaGFuZ2VkLg0KPiBHZXR0aW5nIHRoZSBwb2ludGVyIHRvIGFuIGVsZW1lbnQgZnJv bSB0aGUgaW5kZXggaXMgdGhlIG9ubHkgdGhpbmcNCj4gd2hpY2ggaXMgYmxvY2tpbmcgdGhlIGZy ZWVpbmcgb2YgYW4gYXJyYXksDQo+IGFuZCBJIHNlZSBubyByZWFzb24gd2h5IGRlcmVmZXJlbmNp bmcgYW4gaW5kZXggd291bGQgYmUgbG9uZ2VyDQo+IHRoYW4gMiBjb25zZWN1dGl2ZSByZXNpemVz IG9mIHRoZSBhcnJheS4NCg0KSW4gZ2VuZXJhbCwgeW91ciB0aHJlYWQgY2FuIGJlIHN3aXRjaGVk IG9mZiB0aGUgY3B1IGF0IGFueSBtb21lbnQuDQpBbmQgeW91IGRvbid0IGtub3cgZm9yIHN1cmUg d2hlbiBpdCB3aWxsIGJlIHNjaGVkdWxlZCBiYWNrLg0KDQo+IA0KPiA+ID4gYnV0IHRoZSBvbGQg b25lIGlzIHN0aWxsIHVzYWJsZSB1bnRpbCB0aGUgbmV4dCByZXNpemUuDQo+ID4NCj4gPiBPaywg YnV0IHdoYXQgaXMgdGhlIGd1YXJhbnRlZSB0aGF0IHJlYWRlciB3b3VsZCAqYWx3YXlzKiBmaW5p c2ggdGlsbCBuZXh0IHJlc2l6ZT8NCj4gPiBBcyBhbiBleGFtcGxlIG9mIHN1Y2ggcmFjZSBjb25k aXRpb246DQo+ID4NCj4gPiAvKiBnbG9iYWwgb25lICovDQo+ID4gCXN0cnVjdCBydGVfcGFycmF5 IHBhOw0KPiA+DQo+ID4gLyogdGhyZWFkICMxLCB0cmllcyB0byByZWFkIGVsZW0gZnJvbSB0aGUg YXJyYXkgKi8NCj4gPiAgCS4uLi4NCj4gPiAJaW50ICoqeCA9IHBhLT5hcnJheTsNCj4gDQo+IFdl IHNob3VsZCBub3Qgc2F2ZSB0aGUgYXJyYXkgcG9pbnRlci4NCj4gRWFjaCBpbmRleCBtdXN0IGJl IGRlcmVmZXJlbmNlZCB3aXRoIHRoZSBtYWNybw0KPiBnZXR0aW5nIHRoZSBjdXJyZW50IGFycmF5 IHBvaW50ZXIuDQo+IFNvIHRoZSBpbnRlcnJ1cHQgaXMgZHVyaW5nIGRlcmVmZXJlbmNlIG9mIGEg c2luZ2xlIGluZGV4Lg0KDQpZb3Ugc3RpbGwgbmVlZCB0byByZWFkIHlvdXIgcGEtPmFycmF5IHNv bWV3aGVyZSAobGV0IHNheSBpbnRvIGEgcmVnaXN0ZXIpLg0KU3RyYWlnaHQgYWZ0ZXIgdGhhdCB5 b3VyIHRocmVhZCBjYW4gYmUgaW50ZXJydXB0ZWQuDQpUaGVuIHdoZW4gaXQgaXMgc2NoZWR1bGVk IGJhY2sgdG8gdGhlIENQVSB0aGF0IHZhbHVlIChpbiBhIHJlZ2lzdGVyKSBtaWdodCBiZSBzIHN0 YWxlIG9uZS4NCg0KPiANCj4gPiAvKiB0aHJlYWQgIyAxIGdldCBzdXNwZW5kZWQgZm9yIGEgd2hp bGUgIGF0IHRoYXQgcG9pbnQgKi8NCj4gPg0KPiA+IC8qIG1lYW53aGlsZSB0aHJlYWQgIzIgZG9l czogKi8NCj4gPiAJLi4uLg0KPiA+IAkvKiBjYXVzZXMgZmlyc3QgcmVzaXplKCksIHggc3RpbGwg dmFsaWQsIHBvaW50cyB0byBwYS0+b2xkX2FycmF5ICovDQo+ID4gCXJ0ZV9wYXJyYXlfYWxsb2Mo JnBhLCAuLi4pOw0KPiA+IAkuLi4uLg0KPiA+IAkvKiBjYXVzZXMgc2Vjb25kIHJlc2l6ZSgpLCB4 IG5vdyBwb2ludHMgdG8gZnJlZWQgbWVtb3J5ICovDQo+ID4gCXJ0ZV9wYXJyYXlfYWxsb2MoJnBh LCAuLi4pOw0KPiA+IAkuLi4NCj4gDQo+IDIgcmVzaXplcyBpcyBhIHZlcnkgbG9uZyB0aW1lLCBp dCBpcyBhdCBtaW5pbXVtIDMzIGFsbG9jYXRpb25zIQ0KPiANCj4gPiAvKiBhdCB0aGF0IHBvaW50 IHRocmVhZCAjMSByZXN1bWVzOiAqLw0KPiA+DQo+ID4gCS8qIGNvbnRlbnRzIG9mIHhbMF0gYXJl IHVuZGVmaW5lZCwgJ3AnIGNvdWxkIHBvaW50IGFueXdoZXJlLA0KPiA+IAkgICAgIG1pZ2h0IGNh dXNlIHNlZ2ZhdWx0IG9yIHNpbGVudCBtZW1vcnkgY29ycnVwdGlvbiAqLw0KPiA+IAlpbnQgKnAg PSB4WzBdOw0KPiA+DQo+ID4NCj4gPiBZZXMgcHJvYmFiaWxpdHkgb2Ygc3VjaCBzaXR1YXRpb24g aXMgcXVpdGUgc21hbGwuDQo+ID4gQnV0IGl0IGlzIHN0aWxsIHBvc3NpYmxlLg0KPiANCj4gSW4g ZGV2aWNlIHByb2JpbmcsIEkgZG9uJ3Qgc2VlIGhvdyBpdCBpcyByZWFsaXN0aWNhbGx5IHBvc3Np YmxlOg0KPiAzMyBkZXZpY2UgYWxsb2NhdGlvbnMgZHVyaW5nIDEgZGV2aWNlIGluZGV4IGJlaW5n IGRlcmVmZXJlbmNlZC4NCg0KWWVoLCBpdCB3b3VsZCB3b3JrIGZpbmUgMU0gdGltZXMsIGJ1dCBz b21ldGltZXMgd2lsbCBjcmFzaC4NCldoaWNoIHdpbGwgbWFrZSBpdCBldmVuIGhhcmRlciB0byBy ZXByb2R1Y2UsIGRlYnVnIGFuZCBmaXguDQpJIHRoaW5rIHRoYXQgd2hlbiBpbnRyb2R1Y2luZyBh IG5ldyBnZW5lcmljIGxpYnJhcnkgaW50byBEUERLLA0Kd2Ugc2hvdWxkIGF2b2lkIG1ha2luZyBz dWNoIGFzc3VtcHRpb25zLg0KDQo+IEkgYWdyZWUgaXQgaXMgdHJpY2t5LCBidXQgdGhhdCdzIHRo ZSB3aG9sZSBwb2ludCBvZiBmaW5kaW5nIHRyaWNrcw0KPiB0byBrZWVwIGZhc3QgY29kZS4NCg0K SXQgaXMgbm90IHRyaWNreSwgaXQgaXMgYnVnZ3kg8J+Yig0KWW91IGludHJvZHVjaW5nIGEgcmFj ZSBjb25kaXRpb24gaW50byB0aGUgbmV3IGNvcmUgZ2VuZXJpYyBsaWJyYXJ5IGJ5IGRlc2lnbiwN CmFuZCB0cnlpbmcgdG8gY29udmluY2UgcGVvcGxlIHRoYXQgaXQgaXMgKk9LKi4NClNvcnJ5LCBi dXQgTkFDSyBmcm9tIG1lIHRpbGwgdGhhdCBpc3N1ZSB3aWxsIGJlIGFkZHJlc3NlZC4NCg0KDQo+ IA0KPiA+ID4gSSB0aGluayB3ZSBkb24ndCBuZWVkIG1vcmUuDQo+IA0KPiANCg0K