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 D8437A0A02; Thu, 15 Apr 2021 04:00:29 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C1E96161EEB; Thu, 15 Apr 2021 04:00:29 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2064.outbound.protection.outlook.com [40.107.93.64]) by mails.dpdk.org (Postfix) with ESMTP id E57D9161EE9 for ; Thu, 15 Apr 2021 04:00:28 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HniDlqTnZ04bYo1+TSKVz+689PumgHvmbxjxvOqiack6jYbfKkNUUqHr9Y4t7wOWF9IO3Rk6bHBhJoc7MC8gZmd+wNcr2MNvM7THO7tCz6bTed9y212JHVg4b3T7MbHpzF3veOWyj95J3/DbxDosiSlC9d4gl+ygUdjIBSD7xi10M4QYkWDGENdNLUY/ZdJquSaV+NYzbaVFIuX7bRiPuKd20F/6jIgDfG3B1smvKwBNGAwOqOFPRjStP7Jy+MffuhB0+K4sq6FNz4I8H1SqM1DghjTV0wdC9S0HzC5e1anUSGtJlFBinaiWMod9v9SjViHNKsC8RZK+ICYNtO63zQ== 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=kkDfwzYL0BDLKDzTKDhSFqIGHf6k0WQS5H1itNu51nE=; b=XecXMUQ919fLrDPJKmr3tOvhDoWPwlxJ3jAzCqz/DQ13p/h2A9WAdSAmdwPEmiA0vzeDVqDhqraR08CluZ9rXmlSrdYmwSlt6MRbrxnZxtzzAMV//rLzMN6eklzW1FFXB9otVDZCP53hKYaUuw7NbWNrn2PcwMuv/8dQ672EYfAcDMUbT1U4abIcI3DGbH0AIzqKBVYWg3p8jSxS6ub4xkTSLBFXRGiQ2pHEiODWHkABewO6iBAwHPktg4FNzxQ5ge6ckPKBviVUzTwt9FDqP1TPZfIv2uA9RfFBkeFB9UmAuVtadCSDhgs5w/9EDxoxPRKUl3Y9m5a0kCDscjoEzQ== 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=kkDfwzYL0BDLKDzTKDhSFqIGHf6k0WQS5H1itNu51nE=; b=UaVMR5k+4E64oJ+aQg3dBTZM2MeR9aoHWQheCFdkVVH73fM5KqOjTTr5UkEhtxBBPWAEpRn8XavWRdj+3TnYIVuEmbnjfMAEK88W7FY95emvi18DzRlEM983A82AbR/OIKYJnbSsr0cTF+y1vLTIhodWJMJPrI6UboG/+sD+Wr4QCPbjLwe2uZ5nClmGhB3L2w82BpJMHO9HXLOLlIWJFOJMqZZJLfzS+IyhQmU3ZCDJu5+Ta+TnkA5E2q1SVIhYSM2QEL+hEKyQMmMTQggtYJIoPXN5fQtpWb8P6jpO9NrTWbQnQC8JaYCHYXCIQviX+PzQFuUGOxlakujSFbJgEA== Received: from DM6PR12MB4090.namprd12.prod.outlook.com (2603:10b6:5:217::11) by DM6PR12MB4090.namprd12.prod.outlook.com (2603:10b6:5:217::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.21; Thu, 15 Apr 2021 02:00:27 +0000 Received: from DM6PR12MB4090.namprd12.prod.outlook.com ([fe80::fd19:da7e:347b:87da]) by DM6PR12MB4090.namprd12.prod.outlook.com ([fe80::fd19:da7e:347b:87da%4]) with mapi id 15.20.4020.023; Thu, 15 Apr 2021 02:00:27 +0000 From: Li Zhang To: "Singh, Jasvinder" , "dekelp@nvidia.com" , Ori Kam , Slava Ovsiienko , Matan Azrad , Shahaf Shuler , "Dumitrescu, Cristian" , "lironh@marvell.com" , "jerinj@marvell.com" , "Yigit, Ferruh" , "ajit.khaparde@broadcom.com" , Wisam Monther , "Li, Xiaoyun" , NBU-Contact-Thomas Monjalon , Andrew Rybchenko , Ray Kinsella , Neil Horman CC: "dev@dpdk.org" , Raslan Darawsheh , Roni Bar Yanai , Haifei Luo , "Jiawei(Jonny) Wang" Thread-Topic: [PATCH v6 1/2] ethdev: add pre-defined meter policy API Thread-Index: AQHXMXyMGm0IPStxyk6HawG8DCO1Daq00xvw Date: Thu, 15 Apr 2021 02:00:27 +0000 Message-ID: References: <20210318085815.804896-1-lizh@nvidia.com> <20210414085800.2051439-1-lizh@nvidia.com> <20210414085800.2051439-2-lizh@nvidia.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [139.227.253.12] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c393e4d1-71ce-4678-20d4-08d8ffb23d84 x-ms-traffictypediagnostic: DM6PR12MB4090: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5236; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5tnaoUYKSuLDKsDodAXYuYF6zFtfny8yQm1UcKmvo9UztIuZjQnb73FI18jCcyjMxlL/WRLglfPgbt2omb+b7jTg2XNH3nVxfsFW3WPw7H/Si0RUhoHnNsxw9YqV4iSEUDNGlHamG9FlWhq35LATel73ZUdCJ+kLPh9yDL4yO4GMqHYqwOHn1vyIXwqEYsBqOIzLkK8/daARBg/82d83gtRKQdjDpmflXhr8cVuKjt78BL6y9uF9FKnCNW2qsG1UZf8CXHBJsgfSFMi03b4JOnSbYMdWapIpKfGp6CBmUuzwK5goaI1QYRwL2e9r/ROdTI/x2Qa0CGJGIRSqk+NB070PHjkVG6MEMCbHNn8+014MghwaER/VAfTCxeP0iGnAYu6xTxqUDhFjKAPdgAsmSPlOINR+Kg5PZ3NMqZwQn+cnJDl2erOOxXK/GeOcD83yS4nB9DPd11O5L2Gy9ycT7syRC1q20xzBbXjfaneoUtikiLYV/3v3CCnS90RdHDzT0CjNCxhMkrdsDnPu9EXChUgl/6OhEBI4rBp6BNaSMOH5bY3kTtgMnkzbjZYOR+hCR6ZrdX8fFk16sPrAcTT2pFBeaKh9CdfRyYoyWwHAPeIZjQ1tLIbDBfBzxXqIoS4trUcXn1bXO7mgHAG0US9GYg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB4090.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(366004)(396003)(39860400002)(346002)(376002)(86362001)(478600001)(53546011)(107886003)(7416002)(6506007)(316002)(7696005)(55016002)(8936002)(71200400001)(5660300002)(9686003)(8676002)(110136005)(54906003)(2906002)(83380400001)(26005)(66446008)(66556008)(66476007)(64756008)(186003)(921005)(76116006)(66946007)(122000001)(52536014)(38100700002)(4326008)(33656002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?YlU3NUpjQ05mOGF2Wk1aRDN0b0h2TXE2eDd2Mll3bVRpSDN3WGxYV1FIQXpR?= =?utf-8?B?RUFRcUhvSnQxTFprQVJXUzV5RE9YV2o2R3FxR2JTRFA5YmI4Rll4RkRtVFln?= =?utf-8?B?NmVkS2NpVE1jMFZaSG9zS0xBaDB3blM5dDJkSU94SHBSdE9pZUh5SnY4ZUlF?= =?utf-8?B?a01yTVBWY3hMTjBHaGdqT0c0UG9rM2xYVmJWYnlZSklJN0JsaE9FNlc0VE91?= =?utf-8?B?UWpBOHNGNnVJVjNEdzJISjRhcldnSjhJN0RDenZSbzh3NExLenl2U3RoMjR3?= =?utf-8?B?MEwrYkl4NmJvMnMrMmM3aXR6UEVWR1BMa1ZxUnFkcHlNMjUvRGNrRDEwVlNX?= =?utf-8?B?cjExcFB3Z1RuazZneVNPTFlRWGd6ekRSQlNHTGJ5c2ZGb0E5aG04cWtCMTJw?= =?utf-8?B?UFhvZGxPSGI0YW50aUZMaXBxSGVrUURGeEJ6WDI2dmxjZVJxMmoyZUlpNXll?= =?utf-8?B?WXoxK1ExdzJrQis2K1VjdkN3Mm1tOTA5czhPbGJoeTlPdGtkd3lIaEk1SGl5?= =?utf-8?B?Mkhuc1IxcU1OY2d4THpRcHZiOFRFNnZyenFTV3U2OTBUaDNsNXZaN2lINTRT?= =?utf-8?B?bVA2UVRkRHRzVTBLeFFtZnIvcWxLRHp2ZENaYkVPYlZxZERuR0U5TExieU54?= =?utf-8?B?dTBZWDVaK2Nrbm5VU3Q0dnJZYURZQjd2SnhyV0RwQSszTFFmbjg5VnI2S2tu?= =?utf-8?B?VmYzdUk4SWo3eGRxY1FLK0RBcVV4SUFLZkVGb0FjUmZvcEI1TXVlS2lMRUR1?= =?utf-8?B?blBiSnd4VUJML1ZoakJ2NlJMWlhleDV4dUs1R3MwNjJFdlZEUVpCQWlhb2gy?= =?utf-8?B?U3ZwdGVSbVJ0ZW9SSndnWWl0a1hVRzNwMFNnK1EyUVd4TEdiRWNEM1VwTFJY?= =?utf-8?B?YTRQRHB2SVVhWS9xVXZzWGUvbXN3M085eStwWW9hWGxpeHBoRkRXSzR4MCtQ?= =?utf-8?B?MEVWOTRKTXVENVhkSHZwZW8zSmlHZEwvbll2RE1jLytsaWI2MWpQWURTZTll?= =?utf-8?B?UjRMRllLaFF6OFNnUWZsOXFKZHV0V1lQLzZTQ2hoSmRnYzJqdjN4WG96dkpv?= =?utf-8?B?alhmdGZMQUVRZUhYTjJsUkhQV0pEYmo1ZUc1b3ZYL1hKRzk2T2hmZ042aUFs?= =?utf-8?B?Z2tWUjBxalRaWkpYbkJWeFFiRnJIRlVZZVJ5Z25semhScWFSU2tQak84Z0xR?= =?utf-8?B?Z285ZDRMZkplNmZpT2VqQjNWOGtQa0VtQ2JuWXh6QXo4Q1E5bmFwYVhQYnA2?= =?utf-8?B?b2orZUZ5VkV0NXZHNittMzZveStPOGx4SlF6SDhzcXB3RFo1cEpFV1E5RTM2?= =?utf-8?B?SmpRMkF6Sk5SU2RKaHQyK1hqNUJ3MHZiSjd2NC9SS0JKYjlIems1ZmZHQyt6?= =?utf-8?B?U0dtZHoyMkJQQnAydFlFejJ1M3FLWVQ5aGVuV0p5TkVGTkNLS3E2Q0lYZFhH?= =?utf-8?B?a0V5YVkxRzJFN1VQTnVyd0VWRDNyZG1KM0xhVmswTlhEWWJCSkplSzZSSUJi?= =?utf-8?B?ZUF4aDVnUmdTQml4dHNVQUlxRHBMQzFWT2pUYjN6alZSRGhXN0VDTEZFYkpu?= =?utf-8?B?WkZLZlpVNmYvQ2tIRXh4Ty9ucitya0V3UCtrQWRSd04vaHhxY002ZU1JSndW?= =?utf-8?B?cDV0RU1vRExqTmNYay9QUlcrTUR5YlVpS3VjOWt3aTZTRFpmWEdRVXp2aHhG?= =?utf-8?B?dnpEUXBtSFZhT1d1ZzNpSjF5UFNyalpMUTJmNU1Hc0FDS2Zsdmd6VDZFVzV6?= =?utf-8?Q?j3hZtD4+Tc6GGjqh0VtjR02rAIM3O/xqWnOUDZP?= 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: DM6PR12MB4090.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c393e4d1-71ce-4678-20d4-08d8ffb23d84 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Apr 2021 02:00:27.1637 (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: cCp+wY7+FCU39bXDF7kjcjd0BQ3A0FAjgHvb5Lnf82LGj9TIHH3rcngQesGmqMq6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4090 Subject: Re: [dpdk-dev] [PATCH v6 1/2] ethdev: add pre-defined meter policy API 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" VGhhbmtzIEphc3ZpbmRlci4NCldpbGwgY2hhbmdlIGl0IGluIFY3IHBhdGNoLg0KDQpSZWdhcmRz LA0KTGkgWmhhbmcNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBTaW5n aCwgSmFzdmluZGVyIDxqYXN2aW5kZXIuc2luZ2hAaW50ZWwuY29tPg0KPiBTZW50OiBUaHVyc2Rh eSwgQXByaWwgMTUsIDIwMjEgNjoyMiBBTQ0KPiBUbzogTGkgWmhhbmcgPGxpemhAbnZpZGlhLmNv bT47IGRla2VscEBudmlkaWEuY29tOyBPcmkgS2FtDQo+IDxvcmlrYUBudmlkaWEuY29tPjsgU2xh dmEgT3ZzaWllbmtvIDx2aWFjaGVzbGF2b0BudmlkaWEuY29tPjsgTWF0YW4NCj4gQXpyYWQgPG1h dGFuQG52aWRpYS5jb20+OyBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG52aWRpYS5jb20+Ow0KPiBE dW1pdHJlc2N1LCBDcmlzdGlhbiA8Y3Jpc3RpYW4uZHVtaXRyZXNjdUBpbnRlbC5jb20+OyBsaXJv bmhAbWFydmVsbC5jb207DQo+IGplcmluakBtYXJ2ZWxsLmNvbTsgWWlnaXQsIEZlcnJ1aCA8ZmVy cnVoLnlpZ2l0QGludGVsLmNvbT47DQo+IGFqaXQua2hhcGFyZGVAYnJvYWRjb20uY29tOyBXaXNh bSBNb250aGVyIDx3aXNhbW1AbnZpZGlhLmNvbT47IExpLA0KPiBYaWFveXVuIDx4aWFveXVuLmxp QGludGVsLmNvbT47IE5CVS1Db250YWN0LVRob21hcyBNb25qYWxvbg0KPiA8dGhvbWFzQG1vbmph bG9uLm5ldD47IEFuZHJldyBSeWJjaGVua28NCj4gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJz LnJ1PjsgUmF5IEtpbnNlbGxhIDxtZHJAYXNocm9lLmV1PjsgTmVpbA0KPiBIb3JtYW4gPG5ob3Jt YW5AdHV4ZHJpdmVyLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgUmFzbGFuIERhcmF3c2hlaCA8 cmFzbGFuZEBudmlkaWEuY29tPjsgUm9uaSBCYXIgWWFuYWkNCj4gPHJvbmliYUBudmlkaWEuY29t PjsgSGFpZmVpIEx1byA8aGFpZmVpbEBudmlkaWEuY29tPjsgSmlhd2VpKEpvbm55KSBXYW5nDQo+ IDxqaWF3ZWl3QG52aWRpYS5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjYgMS8yXSBldGhk ZXY6IGFkZCBwcmUtZGVmaW5lZCBtZXRlciBwb2xpY3kgQVBJDQo+IA0KPiBFeHRlcm5hbCBlbWFp bDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBhdHRhY2htZW50cw0KPiANCj4gDQo+IDxz bmlwPg0KPiANCj4gPiArLyogTVRSIG1ldGVyIHBvbGljeSBhZGQgKi8NCj4gPiArc3RhdGljIGlu dA0KPiA+ICtwbWRfbXRyX21ldGVyX3BvbGljeV9hZGQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs DQo+ID4gKyAgICAgdWludDMyX3QgbWV0ZXJfcG9saWN5X2lkLA0KPiA+ICsgICAgIHN0cnVjdCBy dGVfbXRyX21ldGVyX3BvbGljeV9wYXJhbXMgKnBvbGljeSwNCj4gPiArICAgICBzdHJ1Y3QgcnRl X210cl9lcnJvciAqZXJyb3IpDQo+ID4gK3sNCj4gPiArICAgICBzdHJ1Y3QgcG1kX2ludGVybmFs cyAqcCA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gKyAgICAgc3RydWN0IHNvZnRuaWNf bXRyX21ldGVyX3BvbGljeV9saXN0ICptcGwgPSAmcC0NCj4gPiA+bXRyLm1ldGVyX3BvbGljaWVz Ow0KPiA+ICsgICAgIHN0cnVjdCBzb2Z0bmljX210cl9tZXRlcl9wb2xpY3kgKm1wOw0KPiA+ICsg ICAgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdDsNCj4gPiArICAgICBjb25zdCBz dHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX21ldGVyX2NvbG9yICpyZWNvbG9yOw0KPiA+ICsgICAgIHVp bnQzMl90IGk7DQo+ID4gKw0KPiA+ICsgICAgIC8qIE1ldGVyIHBvbGljeSBJRCBtdXN0IGJlIHZh bGlkLiAqLw0KPiA+ICsgICAgIGlmIChtZXRlcl9wb2xpY3lfaWQgPT0gVUlOVDMyX01BWCkNCj4g PiArICAgICAgICAgICAgIHJldHVybiAtcnRlX210cl9lcnJvcl9zZXQoZXJyb3IsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgIEVJTlZBTCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgUlRF X01UUl9FUlJPUl9UWVBFX01FVEVSX1BPTElDWV9JRCwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgTlVMTCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgIk1ldGVyIHBvbGljeSBpZCBub3Qg dmFsaWQiKTsNCj4gDQo+IEFkZCBjaGVjayBmb3IgInBvbGljeSIsICBjb3VsZCBiZSBudWxsLCBi ZWZvcmUgZGVyZWZlcmVuY2luZyB0aGlzLg0KPiANCj4gDQo+IDxzbmlwPg0KPiA+DQo+ID4gLS8q IE1UUiBvYmplY3QgcG9saWNlciBhY3Rpb24gdXBkYXRlICovDQo+ID4gKy8qIE1UUiBvYmplY3Qg cG9saWN5IHVwZGF0ZSAqLw0KPiA+ICBzdGF0aWMgaW50DQo+ID4gLXBtZF9tdHJfcG9saWNlcl9h Y3Rpb25zX3VwZGF0ZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPiArcG1kX210cl9tZXRl cl9wb2xpY3lfdXBkYXRlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ICAgICAgIHVpbnQz Ml90IG10cl9pZCwNCj4gPiAtICAgICB1aW50MzJfdCBhY3Rpb25fbWFzaywNCj4gPiAtICAgICBl bnVtIHJ0ZV9tdHJfcG9saWNlcl9hY3Rpb24gKmFjdGlvbnMsDQo+ID4gKyAgICAgdWludDMyX3Qg bWV0ZXJfcG9saWN5X2lkLA0KPiA+ICAgICAgIHN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcikN Cj4gPiAgew0KPiA+ICAgICAgIHN0cnVjdCBwbWRfaW50ZXJuYWxzICpwID0gZGV2LT5kYXRhLT5k ZXZfcHJpdmF0ZTsNCj4gPiAgICAgICBzdHJ1Y3Qgc29mdG5pY19tdHIgKm07DQo+ID4gICAgICAg dWludDMyX3QgaTsNCj4gPiAgICAgICBpbnQgc3RhdHVzOw0KPiA+ICsgICAgIHN0cnVjdCBzb2Z0 bmljX210cl9tZXRlcl9wb2xpY3kgKm1wX25ldywgKm1wX29sZDsNCj4gPg0KPiA+ICAgICAgIC8q IE1UUiBvYmplY3QgaWQgbXVzdCBiZSB2YWxpZCAqLw0KPiA+ICAgICAgIG0gPSBzb2Z0bmljX210 cl9maW5kKHAsIG10cl9pZCk7IEBAIC01MjcsMjkgKzY1MiwxNCBAQA0KPiA+IHBtZF9tdHJfcG9s aWNlcl9hY3Rpb25zX3VwZGF0ZShzdHJ1Y3QNCj4gPiBydGVfZXRoX2RldiAqZGV2LA0KPiA+ICAg ICAgICAgICAgICAgICAgICAgICBSVEVfTVRSX0VSUk9SX1RZUEVfTVRSX0lELA0KPiA+ICAgICAg ICAgICAgICAgICAgICAgICBOVUxMLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAiTVRSIG9i amVjdCBpZCBub3QgdmFsaWQiKTsNCj4gPiAtDQo+ID4gLSAgICAgLyogVmFsaWQgcG9saWNlciBh Y3Rpb25zICovDQo+ID4gLSAgICAgaWYgKGFjdGlvbnMgPT0gTlVMTCkNCj4gPiArICAgICAvKiBN ZXRlciBwb2xpY3kgbXVzdCBleGlzdCAqLw0KPiA+ICsgICAgIG1wX25ldyA9IHNvZnRuaWNfbXRy X21ldGVyX3BvbGljeV9maW5kKHAsIG1ldGVyX3BvbGljeV9pZCk7DQo+ID4gKyAgICAgaWYgKG1w X25ldyA9PSBOVUxMKQ0KPiA+ICAgICAgICAgICAgICAgcmV0dXJuIC1ydGVfbXRyX2Vycm9yX3Nl dChlcnJvciwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgRUlOVkFMLA0KPiA+IC0gICAgICAg ICAgICAgICAgICAgICBSVEVfTVRSX0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgIFJURV9NVFJfRVJST1JfVFlQRV9NRVRFUl9QT0xJQ1lfSUQsDQo+ID4g ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICJJ bnZhbGlkIGFjdGlvbnMiKTsNCj4gPiAtDQo+ID4gLSAgICAgZm9yIChpID0gMDsgaSA8IFJURV9D T0xPUlM7IGkrKykgew0KPiA+IC0gICAgICAgICAgICAgaWYgKGFjdGlvbl9tYXNrICYgKDEgPDwg aSkpIHsNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGlvbnNbaV0gIT0NCj4gPiBN VFJfUE9MSUNFUl9BQ1RJT05fQ09MT1JfR1JFRU4gICYmDQo+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYWN0aW9uc1tpXSAhPQ0KPiA+IE1UUl9QT0xJQ0VSX0FDVElPTl9DT0xPUl9Z RUxMT1cgJiYNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zW2ldICE9 DQo+ID4gTVRSX1BPTElDRVJfQUNUSU9OX0NPTE9SX1JFRCAmJg0KPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFjdGlvbnNbaV0gIT0gTVRSX1BPTElDRVJfQUNUSU9OX0RST1ApIHsN Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLXJ0ZV9tdHJfZXJyb3Jf c2V0KGVycm9yLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUlO VkFMLA0KPiA+IC0NCj4gPiAgICAgICBSVEVfTVRSX0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQsDQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLA0KPiA+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBJbnZhbGlkIGFjdGlvbiB2YWx1ZSIp Ow0KPiA+IC0gICAgICAgICAgICAgICAgICAgICB9DQo+ID4gLSAgICAgICAgICAgICB9DQo+ID4g LSAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAiTWV0ZXIgcG9saWN5IGlkIGludmFs aWQiKTsNCj4gDQo+IFBsZWFzZSBhZGQgY2hlY2sgd2hldGhlciBNVFIgb2JqZWN0IGlzIGFscmVh ZHkgc2V0IHRvIG1ldGVyIHBvbGljeSAgaWQsDQo+IHJldHVybiBzdWNjZXNzIGlmIHRydWUsIG5v IG5lZWQgdG8gY29udGludWUuDQo+IGlmIChtLT5wYXJhbXMubWV0ZXJfcG9saWN5X2lkID09IG1l dGVyX3BvbGljeV9pZCkNCj4gICAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiANCj4gPiAgICAg ICAvKiBNVFIgb2JqZWN0IG93bmVyIHZhbGlkPyAqLw0KPiA+ICAgICAgIGlmIChtLT5mbG93KSB7 DQo+IA0KPiANCj4gDQo+IFJlZ2FyZHMsDQo+IEphc3ZpbmRlcg0K