From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A0D1FA2E1B for ; Tue, 3 Sep 2019 13:26:42 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1046B1D441; Tue, 3 Sep 2019 13:26:42 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 327D81D425 for ; Tue, 3 Sep 2019 13:26:41 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x83BQJOY001404; Tue, 3 Sep 2019 04:26:40 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=dzpgPFy7+hjSK/jh2mcXGqhyn7RQQdnrFymmiOv9NCU=; b=tDE+0bDxveKp/Nv3MLXoZ+af/uPwgXjKGcKa4d19Az5WwW/yvrpC9xT2HbnoZZdQTIoG SIEuU3fFZSusxQulnBmcAB9E146O7mSoE8KCFkIcY1XNrZ5Zmh8E0bxlzFC4gZinM9J1 zGCPBm1z6vlnej2AFOuZBmeEv0VHzFrUGYurHlYVADh70nL69GtgJoetMgyaReFo8Jmb A36XnPdIk50L6h5MG6qwj/sTwDLeUoYB/fWNJ6LHcj8ckp+M62J7teoiOoe2mvbVsxyt V/wHa0Z/ZDy/n9J9jmKpd3GYh7RL+a5U9WoxqG/rmIUvcdraTO0yzQtSJd74tnVRMpUS Vg== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 2uqrdm97mq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 03 Sep 2019 04:26:40 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 3 Sep 2019 04:26:37 -0700 Received: from NAM05-CO1-obe.outbound.protection.outlook.com (104.47.48.53) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Tue, 3 Sep 2019 04:26:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FczKxBysU2wV/ZXXx8kiw1ScAmN1IMGTUsvApIY+S+7qiHlv5SY0DSrHXueAPdMqEwOnPBSCa+cmYFsa0sCCLqGQbCAyA2PHD1x/vMbHQW0/1BVlFZW8rbWDbPqfqLPntEiJv+dwoJUZBABEoNLyLadrLndT9sQoYB1gpzHQ6DZTmkbaOsKWPJbj831BHtIcGVk+8C9FHum6x3edas57aIXZqE7kx2MWsdaPqytYQ0nxXLvzu/tggbkIiB3g9X16cOMpGZxRJKngtpalaokNlOeEmexN7MJbyNM51W2IydAJ/ukyAnf4ir6xorAqnjGgE/lvvN1daBhmj1ASpx3OmQ== 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=dzpgPFy7+hjSK/jh2mcXGqhyn7RQQdnrFymmiOv9NCU=; b=Bm6RY6uPtdNa6ypxZYXqL4xigcOJqKw0UAoh6Tj4NKW7q6AC66uaowkmMjg4G/aKSDRl8rR88hCakEYTcSEwdp5ButE8t7MFS98R01U03bPLLItqe8Bs0P9nl1F7gddZISWYcvOxsK57TM1vrjg6jg8EBlVZCFqe9k7F3p1MkYAbCat4WeTf2JqcCncoKKXAC0rDwVIpCh4vPwzbWM0/oxzVbsFLT4Umi9K3KZ1zCxhUkUiIz+Ypq549b87TBXai4IIp1KxPsK882FASMkNd42VG+R/jOQ9301i7ymTSUBXX/cDe2+aZN36zmZv1V/St/u+J3n+ytfJGYVmuyxCYwg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector2-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dzpgPFy7+hjSK/jh2mcXGqhyn7RQQdnrFymmiOv9NCU=; b=gpfQOcZqZMO8aB4U+pvzmj449dMVPyYpsoPr9ERTeGKjD3ZuIO7rf40QWsPPFM5QU6hNZDBqQmzxbLX83Vqhi0L3unJPHukXaQKP2QXfr8D0MbX7KTr429DzBf0m/uq3kO7J7VqLLsOOnq/Y+8FmFDYNx9DDtAMptutMIhgH26U= Received: from MN2PR18MB2877.namprd18.prod.outlook.com (20.179.20.218) by MN2PR18MB3085.namprd18.prod.outlook.com (20.179.21.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2220.18; Tue, 3 Sep 2019 11:26:36 +0000 Received: from MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::7cdd:71d0:6771:4bed]) by MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::7cdd:71d0:6771:4bed%6]) with mapi id 15.20.2220.021; Tue, 3 Sep 2019 11:26:36 +0000 From: Anoob Joseph To: "Nicolau, Radu" , "dev@dpdk.org" CC: "akhil.goyal@nxp.com" , "konstantin.ananyev@intel.com" , "bernard.iremonger@intel.com" , "declan.doherty@intel.com" , "stephen@networkplumber.org" Thread-Topic: [EXT] Re: [dpdk-dev] [PATCH v2] security: add statistics definitions and update API Thread-Index: AQHVYkBXPWH7j61K2kmdPRsFonuGHqcZzxOg Date: Tue, 3 Sep 2019 11:26:35 +0000 Message-ID: References: <1567156760-29520-1-git-send-email-radu.nicolau@intel.com> <1567503690-15586-1-git-send-email-radu.nicolau@intel.com> In-Reply-To: Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [115.113.156.2] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a8759b09-42cf-440b-9d1c-08d7306194d3 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:MN2PR18MB3085; x-ms-traffictypediagnostic: MN2PR18MB3085: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 01494FA7F7 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(39850400004)(376002)(136003)(346002)(366004)(13464003)(199004)(189003)(8676002)(11346002)(446003)(486006)(86362001)(6436002)(966005)(14454004)(54906003)(102836004)(55236004)(478600001)(110136005)(71200400001)(476003)(81166006)(81156014)(71190400001)(6246003)(55016002)(4326008)(53936002)(9686003)(2501003)(6306002)(25786009)(15650500001)(305945005)(52536014)(7736002)(33656002)(74316002)(5660300002)(6116002)(256004)(14444005)(3846002)(76176011)(8936002)(99286004)(316002)(6506007)(53546011)(7696005)(2906002)(76116006)(66946007)(26005)(66066001)(186003)(66476007)(66556008)(64756008)(66446008)(229853002); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR18MB3085; H:MN2PR18MB2877.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: X8o89Hm1Krk3gN1bG7ITCCZC2hUXv+aHzTFV8fN1t3T0sqUtf2wSzWqt3zNJAQFEbR9VzlI84kPjGgl0+svjuDQsJhkliuLzz94NjqKL8j7Vnl9caq9899x/FmKiCrnssIUObrT1OViBo82n3saHsxmXhJ32kfe+2+MfcUCF0SQW15lh45qq5NrJqK46GDzU2HjvRoLK18EHz5+RfUDDMfAIaUJ6oJH6ysA5U3WAzzgmOaa5ajTg6VBNuOpeGTqCOW9HnqqYOsFNdlbc/LR0AbjitmZ3VTRpt0m1m1iXuwLM8r2yIFEmJRz/JFV4T14dAvBcG/xoAmUetOWx5YPYAD9FMhOPI64cS01pZqbjcCD3N1m584+lJQYVpa2jbyr481sgkyJMqD8bidnaI2N5ZM51zKE13mGt8G2LdEiUQOk= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: a8759b09-42cf-440b-9d1c-08d7306194d3 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Sep 2019 11:26:35.5136 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 7XQr53iBmS+o3W2Y7SR2lNbOsADpabGwOlKcJIBOhm6dIJ4qzREZ3GwldG+h5JkoIV3vr2gUrHTZsZ8VFmjHLQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB3085 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.70,1.0.8 definitions=2019-09-03_01:2019-09-03,2019-09-03 signatures=0 Subject: Re: [dpdk-dev] [EXT] Re: [PATCH v2] security: add statistics definitions and update API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" SGkgUmFkdSwNCg0KUGxlYXNlIHNlZSBpbmxpbmUuDQoNClRoYW5rcywNCkFub29iDQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTmljb2xhdSwgUmFkdSA8cmFkdS5uaWNv bGF1QGludGVsLmNvbT4NCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDMsIDIwMTkgMzo0NCBQ TQ0KPiBUbzogQW5vb2IgSm9zZXBoIDxhbm9vYmpAbWFydmVsbC5jb20+OyBkZXZAZHBkay5vcmcN Cj4gQ2M6IGFraGlsLmdveWFsQG54cC5jb207IGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb207 DQo+IGJlcm5hcmQuaXJlbW9uZ2VyQGludGVsLmNvbTsgZGVjbGFuLmRvaGVydHlAaW50ZWwuY29t Ow0KPiBzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZw0KPiBTdWJqZWN0OiBbRVhUXSBSZTogW2Rw ZGstZGV2XSBbUEFUQ0ggdjJdIHNlY3VyaXR5OiBhZGQgc3RhdGlzdGljcyBkZWZpbml0aW9ucw0K PiBhbmQgdXBkYXRlIEFQSQ0KPiANCj4gRXh0ZXJuYWwgRW1haWwNCj4gDQo+IC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gSGksIHJlcGxpZXMgaW5saW5lOg0KPiANCj4gT24gOS8zLzIwMTkgMTE6MDQgQU0sIEFu b29iIEpvc2VwaCB3cm90ZToNCj4gPiBIaSBSYWR1LA0KPiA+DQo+ID4gUGxlYXNlIHNlZSBpbmxp bmUuDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gQW5vb2INCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBkZXYgPGRldi1ib3VuY2VzQGRwZGsub3JnPiBPbiBC ZWhhbGYgT2YgUmFkdSBOaWNvbGF1DQo+ID4+IFNlbnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAzLCAy MDE5IDM6MTIgUE0NCj4gPj4gVG86IGRldkBkcGRrLm9yZw0KPiA+PiBDYzogYWtoaWwuZ295YWxA bnhwLmNvbTsga29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbTsNCj4gPj4gYmVybmFyZC5pcmVt b25nZXJAaW50ZWwuY29tOyBkZWNsYW4uZG9oZXJ0eUBpbnRlbC5jb207DQo+ID4+IHN0ZXBoZW5A bmV0d29ya3BsdW1iZXIub3JnOyBSYWR1IE5pY29sYXUgPHJhZHUubmljb2xhdUBpbnRlbC5jb20+ DQo+ID4+IFN1YmplY3Q6IFtkcGRrLWRldl0gW1BBVENIIHYyXSBzZWN1cml0eTogYWRkIHN0YXRp c3RpY3MgZGVmaW5pdGlvbnMNCj4gPj4gYW5kIHVwZGF0ZSBBUEkNCj4gPj4NCj4gPj4gVXBkYXRl IElQc2VjIHN0YXRpc3RpY3Mgc3RydWN0IGRlZmluaXRpb24sIGFkZCBwZXIgU0Egc3RhdGlzdGlj cw0KPiA+PiBjb2xsZWN0aW9uIGVuYWJsZSBmbGFnLg0KPiA+Pg0KPiA+PiBTaWduZWQtb2ZmLWJ5 OiBSYWR1IE5pY29sYXUgPHJhZHUubmljb2xhdUBpbnRlbC5jb20+DQo+ID4+IC0tLQ0KPiA+PiB2 MjogYWRkZWQgc2Vjb25kIHJlc2VydmVkIGZpZWxkDQo+ID4+DQo+ID4+ICAgbGliL2xpYnJ0ZV9z ZWN1cml0eS9ydGVfc2VjdXJpdHkuaCB8IDI0ICsrKysrKysrKysrKysrKysrKysrLS0tLQ0KPiA+ PiAgIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0KPiA+ Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9zZWN1cml0eS9ydGVfc2VjdXJpdHkuaA0K PiA+PiBiL2xpYi9saWJydGVfc2VjdXJpdHkvcnRlX3NlY3VyaXR5LmgNCj4gPj4gaW5kZXggOTY4 MDZlMy4uMjFiYmVlMiAxMDA2NDQNCj4gPj4gLS0tIGEvbGliL2xpYnJ0ZV9zZWN1cml0eS9ydGVf c2VjdXJpdHkuaA0KPiA+PiArKysgYi9saWIvbGlicnRlX3NlY3VyaXR5L3J0ZV9zZWN1cml0eS5o DQo+ID4+IEBAIC0xNzIsNiArMTcyLDE0IEBAIHN0cnVjdCBydGVfc2VjdXJpdHlfaXBzZWNfc2Ff b3B0aW9ucyB7DQo+ID4+ICAgCSAqICogMDogSW5uZXIvb3V0ZXIgaGVhZGVyIGFyZSBub3QgbW9k aWZpZWQuDQo+ID4+ICAgCSAqLw0KPiA+PiAgIAl1aW50MzJfdCBlY24gOiAxOw0KPiA+PiArDQo+ ID4+ICsJLyoqPCBTZWN1cml0eSBzdGF0aXN0aWNzDQo+ID4+ICsJICoNCj4gPj4gKwkgKiAqIDE6 IEVuYWJsZSBwZXIgc2Vzc2lvbiBzZWN1cml0eSBzdGF0aXN0aWNzIGNvbGxlY3Rpb24gZm9yDQo+ ID4+ICsJICogICAgICB0aGlzIFNBLCBpZiBzdXBwb3J0ZWQgYnkgdGhlIGRyaXZlci4NCj4gPj4g KwkgKiAqIDA6IERpc2FibGUgcGVyIHNlc3Npb24gc2VjdXJpdHkgc3RhdGlzdGljcyBjb2xsZWN0 aW9uIGZvciB0aGlzIFNBLg0KPiA+PiArCSAqLw0KPiA+IFtBbm9vYl0gSSBiZWxpZXZlIHlvdSB3 aWxsIGhhdmUgdG8gYWRkIHRoZSBhYm92ZSBkZXNjcmlwdGlvbiBhZnRlciB0aGUgaXRlbS4NCj4g RWxzZSB0aGUgZG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgY291bGQgZW5kIHVwIHdyb25nLiBEZXNj cmlwdGlvbiBvZiBhbGwNCj4gaXRlbXMgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgYWN0dWFsbHkgd3Jv bmcuDQo+ID4gaHR0cHM6Ly9kb2MuZHBkay5vcmcvYXBpL3N0cnVjdHJ0ZV9fc2VjdXJpdHlfX2lw c2VjX19zYV9fb3B0aW9ucy5odG1sDQo+IEl0IGlzIHdyb25nIGluZGVlZCwgSSB3aWxsIGZpeCBp dCBmb3IgdGhlIHdob2xlIHN0cnVjdC4NCj4gPg0KPiA+PiArCXVpbnQzMl90IHN0YXRzIDogMTsN Cj4gPj4gICB9Ow0KPiA+Pg0KPiA+PiAgIC8qKiBJUFNlYyBzZWN1cml0eSBhc3NvY2lhdGlvbiBk aXJlY3Rpb24gKi8gQEAgLTQ4Miw4ICs0OTAsMTQgQEANCj4gPj4gc3RydWN0IHJ0ZV9zZWN1cml0 eV9tYWNzZWNfc3RhdHMgeyAgfTsNCj4gPj4NCj4gPj4gICBzdHJ1Y3QgcnRlX3NlY3VyaXR5X2lw c2VjX3N0YXRzIHsNCj4gPj4gLQl1aW50NjRfdCByZXNlcnZlZDsNCj4gPj4gLQ0KPiA+PiArCXVp bnQ2NF90IGlwYWNrZXRzOyAgLyoqPCBTdWNjZXNzZnVsbHkgcmVjZWl2ZWQgSVBzZWMgcGFja2V0 cy4gKi8NCj4gPj4gKwl1aW50NjRfdCBvcGFja2V0czsgIC8qKjwgU3VjY2Vzc2Z1bGx5IHRyYW5z bWl0dGVkIElQc2VjIHBhY2tldHMuKi8NCj4gPj4gKwl1aW50NjRfdCBpYnl0ZXM7ICAgIC8qKjwg U3VjY2Vzc2Z1bGx5IHJlY2VpdmVkIElQc2VjIGJ5dGVzLiAqLw0KPiA+PiArCXVpbnQ2NF90IG9i eXRlczsgICAgLyoqPCBTdWNjZXNzZnVsbHkgdHJhbnNtaXR0ZWQgSVBzZWMgYnl0ZXMuICovDQo+ ID4+ICsJdWludDY0X3QgaWVycm9yczsgICAvKio8IElQc2VjIHBhY2tldHMgcmVjZWl2ZS9kZWNy eXB0IGVycm9ycy4gKi8NCj4gPj4gKwl1aW50NjRfdCBvZXJyb3JzOyAgIC8qKjwgSVBzZWMgcGFj a2V0cyB0cmFuc21pdC9lbmNyeXB0IGVycm9ycy4gKi8NCj4gPj4gKwl1aW50NjRfdCByZXNlcnZl ZDE7IC8qKjwgUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuICovDQo+ID4+ICsJdWludDY0X3QgcmVz ZXJ2ZWQyOyAvKio8IFJlc2VydmVkIGZvciBmdXR1cmUgdXNlLiAqLw0KPiA+PiAgIH07DQo+ID4+ DQo+ID4+ICAgc3RydWN0IHJ0ZV9zZWN1cml0eV9wZGNwX3N0YXRzIHsNCj4gPj4gQEAgLTUwNywx MCArNTIxLDEyIEBAIHN0cnVjdCBydGVfc2VjdXJpdHlfc3RhdHMgew0KPiA+PiAgICAqDQo+ID4+ ICAgICogQHBhcmFtCWluc3RhbmNlCXNlY3VyaXR5IGluc3RhbmNlDQo+ID4+ICAgICogQHBhcmFt CXNlc3MJCXNlY3VyaXR5IHNlc3Npb24NCj4gPj4gKyAqIElmIHNlY3VyaXR5IHNlc3Npb24gaXMg TlVMTCB0aGVuIGdsb2JhbCAocGVyIHNlY3VyaXR5IGluc3RhbmNlKQ0KPiA+PiArIHN0YXRpc3Rp Y3MNCj4gPj4gKyAqIHdpbGwgYmUgcmV0cmlldmVkLCBpZiBzdXBwb3J0ZWQNCj4gPiBbQW5vb2Jd IFdpdGggTlVMTCBhcyBzZWN1cml0eSBzZXNzaW9uLCBkbyB3ZSBleHBlY3QgUE1EcyB0byByZXR1 cm4gc3RhdHMNCj4gZm9yIGFsbCBzZXNzaW9ucyBvciBvbmx5IGZvciB0aGUgb25lcyAnc3RhdHMn IGlzIGVuYWJsZWQ/DQo+IFdlIGV4cGVjdCBnbG9iYWwgc3RhdHMsIG5vdCBhIHN1bSBvZiBwZXIg c2Vzc2lvbiBzdGF0cywgYW5kIGluZGVwZW5kZW50IG9mDQo+IHRoZSBwZXIgc2Vzc2lvbiBjb25m aWd1cmF0aW9uIC0gdGhhdCBpcywgaWYgdGhlcmUgYXJlIDIgc2Vzc2lvbnMgYW5kIHRoZSBwZXIN Cj4gc2Vlc2lvbiBzdGF0cyBhcmUgZW5hYmxlZCBmb3Igb25seSBvbmUsIHRoaXMgd2lsbCBzdGls bCByZXR1cm4gdGhlIGdsb2JhbCB0b3RhbC4gSQ0KPiB3aWxsIG1ha2UgYSBub3RlIG9mIHRoaXMg aW4gdGhlIGRvYy4NCg0KW0Fub29iXSBUaGF0IHNvdW5kcyBnb29kLg0KIA0KPiA+DQo+ID4+ICAg ICogQHBhcmFtCXN0YXRzCQlzdGF0aXN0aWNzDQo+ID4+ICAgICogQHJldHVybg0KPiA+PiAtICog IC0gT24gc3VjY2VzcyByZXR1cm4gMA0KPiA+PiAtICogIC0gT24gZmFpbHVyZSBlcnJubw0KPiA+ PiArICogIC0gT24gc3VjY2VzcywgcmV0dXJuIDANCj4gPj4gKyAqICAtIE9uIGZhaWx1cmUsIGEg bmVnYXRpdmUgdmFsdWUNCj4gPiBbQW5vb2JdIFBNRHMgd2hpY2ggZG9lc24ndCBzdXBwb3J0IHRo aXMgd291bGQgcmV0dXJuIEVOT1RTVVAsIHJpZ2h0Pw0KPiBEbyB5b3UgdGhpbmsgd2Ugc2hvdWxk IGRvY3VtZW50IHRoYXQ/DQo+IEkgZG9uJ3QgdGhpbmsgd2UgbmVlZCB0byBleHBsaWNpdGx5IGRv Y3VtZW50IGl0LCBhcyB0aGUgRU5PVFNVUCBpcyBxdWl0ZSBzZWxmDQo+IGV4cGxhbmF0b3J5Lg0K DQpbQW5vb2JdIEFncmVlZC4NCiANCj4gPg0KPiA+PiAgICAqLw0KPiA+PiAgIF9fcnRlX2V4cGVy aW1lbnRhbA0KPiA+PiAgIGludA0KPiA+PiAtLQ0KPiA+PiAyLjcuNA0K