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 D29CEA0C45; Wed, 22 Sep 2021 13:30:56 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7602541198; Wed, 22 Sep 2021 13:30:56 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 055CF41196 for ; Wed, 22 Sep 2021 13:30:54 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10114"; a="309126104" X-IronPort-AV: E=Sophos;i="5.85,313,1624345200"; d="scan'208";a="309126104" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Sep 2021 04:30:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,313,1624345200"; d="scan'208";a="454703498" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga002.jf.intel.com with ESMTP; 22 Sep 2021 04:30:53 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Wed, 22 Sep 2021 04:30:53 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) 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.2242.12; Wed, 22 Sep 2021 04:30:52 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Wed, 22 Sep 2021 04:30:52 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.172) 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.2242.12; Wed, 22 Sep 2021 04:30:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cciiQX1+3S61kR3BJpJCKvOPlH4k+4XQT1PWalOZMrcDOyORhCfer1dsnv0vvxWVtbQj63gZcN1URnxcFnRqDI9pkkiGSxDHvtfKUV2HKcberUrhJJUjcaXYHkd6SLruwX0vJCmHqo4Pv517CbGuVPlxfqj+xkiV2rXOg9htw2NGeGUM9TrkkP1m2VzdtPy//pKtVK/o0+dJZFQHESTKkRUoPyb9NdOQEL6Ivra+nnEXtT8190h6wjT91vefs56t7u8vXLRfpq1ZmQtNeCUjgzXj1SIKoIibgxwt5LDgrCA6348OZ5Y1Br0+5CBhAE2kQQl7glhbVhdg0VfNCefROA== 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; bh=rx219hU1nGBj1J1EEt2OOXFiAgtbMHYmpRHljdu+qNo=; b=IUJmAIMKTmswIW92LErjs05FHus5QumI+yJolp/NdSO65zGllJHWj39nkUSRwpyuoLVC9RnVWvnBwdklG4L5OjOogr7JtCLcGPp1zQtJpE+v45+N9195oOFJDtqL/hNV8+L/XMwGp+KkYobPiOB+OAFOmpyaP013LmvdqcQZI9xvPmMLN/fsqDav0EFpJ+N0XAgWvyKwng1GCNGL5HVPBDfo7kgCcrKj7V/VYIFgQ+ohsdu9mjU5GrjVawWyGiFH7lYvLmO7vv2wW5YhFDO7rbl9DvWH3wc+63Z5iqfpYJgpK+p/pv+7BJ3qgw2RYH+Rxd80ZPRSoTrBKB9bD7eiVQ== 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=rx219hU1nGBj1J1EEt2OOXFiAgtbMHYmpRHljdu+qNo=; b=dUWnRYx9vyBHat9z+f2HV5kwJKzIMf4ah13TkpoXMisMFplG6N76P7ezf7J2YUF7mppx7VFz3sFoNcuu/ipQdxGU/V4MxW3ZlgRXGbZJUPitwwelYBUYKLBzeM6MpegCkjl6A44Ck9ZZ7coOQjqbjdfULheWFJwYk6B8txpIYN8= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3725.namprd11.prod.outlook.com (2603:10b6:208:f9::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.17; Wed, 22 Sep 2021 11:30:51 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::6873:dced:7f68:801]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::6873:dced:7f68:801%3]) with mapi id 15.20.4544.014; Wed, 22 Sep 2021 11:30:51 +0000 From: "Xia, Chenbo" To: "Yigit, Ferruh" , "Burakov, Anatoly" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v1 1/2] vfio: make API return values consistent Thread-Index: AQHXqubKZ61nbE7t9UW49rWXMD44UauvbLtAgABlWACAACELAA== Date: Wed, 22 Sep 2021 11:30:50 +0000 Message-ID: References: <25dd76eca01ec57d64be9c0a78ac2752f602984f.1631788595.git.anatoly.burakov@intel.com> In-Reply-To: Accept-Language: en-US, zh-CN 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=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e6de39e8-5044-438b-7939-08d97dbc6e86 x-ms-traffictypediagnostic: MN2PR11MB3725: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: F5sf8YO944lt4NGzgl+P1gIqolmIQFDcCEoUeHCcI4ZQntp05yQbLBAClHk3fr7jZLktFK7y8ZH6t24yW0enQT5B0ki2pw4ksNRLlToivOWa3Q3PINQm4Yuk3mWuQCXd+cRFp1NruUprYueykA7Wo+m46P5SSKIbWkWf5ZG6rXBE9rpkUxnZcqCwae+76+GpLlkkZ0KoJSegx+z8SUF1o7JeUNzGDJGturyFvVgw50tfSFm0pOBxVX7N9magzCc+vrH8AD3Rn35TI/OlVYXBF0i6putjy8UnZg2yp0FKgy2FWtRr8P7rL60MEIcZESMdF6W4zmQfrqMeBJa4qHD0f893ABLP1375osJ9xGWNJBcJC7GnRmHi6djoB19irRkk+qLSvQKo01dkz9BqlTxzTd9owytgWRv3fM/H2aSRPxsRbbE++fU2JF/UqA5Q2KlHT+joWgoWEsW9pEZYeBn0CYScOqbjhBWXLkYo/HlydvOR3W8KHEzWNyJWXuuSH+CpT4fm6JArSt8uDxO3O3NMCCYKcdEXHzHlhjgh8T8uVpgNGJmUdVUuhn5vhwqUVli67ftfo54Vazn1YNuZVuXFDWME+inab2AzbN2sPHsPCr46yt3OVndXjwYzvWkp9KX479t7tmXGN7Ek94Qn52dWs53P+fBxaWNEm+b53u4PcVzBG8P37IQt9ZH4IIfGqCZnJjzq5L7gAKqB7l3qRndAgFI0eE5OtG9kuccJqphemNPTDz3bQ0d/lpkWAjJvO1EyE2uS/znlHsVgmOFAgvVZyqvY8TsFP1U4u6qk2WyKWss= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(52536014)(8676002)(7696005)(33656002)(6506007)(53546011)(83380400001)(9686003)(66556008)(71200400001)(26005)(66946007)(66476007)(64756008)(66446008)(2906002)(86362001)(186003)(110136005)(38100700002)(122000001)(55016002)(8936002)(316002)(508600001)(966005)(76116006)(38070700005)(5660300002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Y2hnNXYvTVZkdWRoYjVYeFhzMGl2SzlETXAxbTB3ekhIcnd0bnpBWWdVRDNL?= =?utf-8?B?bVFxeXI0Sk05b3IyWVNoRHlQcVo2UldOT0djY2RYN2FoMnRaaHpEd2FGcGNG?= =?utf-8?B?U2tnVEJtSDU5ZUdoL2E0d0ROOVZ3Q2N2TzVnVktJVEJ0VXhwTjJZaW1mbGJi?= =?utf-8?B?dFhYMFU0S0xzUnZmUHdVa0pNMEQ2MmlWRmlJWGRMcjdBLzcxT2x6NFRXUVFB?= =?utf-8?B?alVzQm5tYUNqdkkzUThJVC9OTE5sQ2lZUHUyenp6bDdTSmZNSy8yZEY4RzVs?= =?utf-8?B?TFRqWkx0TktMQ0lBb2RoUlMxL3Q1clZqSVUzZU1oT1BtcmQ1eUdXU0pwUjFH?= =?utf-8?B?bEhtRENWMEFBQmJpQW5ZSjZ0enVlZmZ0Z3N6Q1BEWTRiSEJjaE5qcVFXbU50?= =?utf-8?B?U0d5bFpqQ0JUaEtXcDRvdlFYelhValM1QjhNZExwNUEvV05OTnBQT2crcEc5?= =?utf-8?B?NHJkS0QvMEJuQ09aMEpod0c2T0VXci9oT1hZVVc1N0pnRGN1ZTlQdTE5ZjNG?= =?utf-8?B?amFYR2tVQ25jU2VKSUZLR1hPWFpJS0dZbENFNEJOT0c1MWo3Rm01UjlaR1Z4?= =?utf-8?B?RFAyQXFOSVFweWtDRUhHeW9NWk1qWStsa3ZCZ2xBYkt2VURoVWVWNUVQSlli?= =?utf-8?B?RDVMczJpUUozV3Vuc1NsZUhNd0hqWXdYSHZJQnQxMkJPaFQxam9YMjRwNkYz?= =?utf-8?B?YTZZZFNjN2RwaFZZb3N6QkZ0U3R5d0RjNkRaV2llSGJHelJnTitDbGM3bDl4?= =?utf-8?B?eWNwLzZJN2VsY3plbzVZc09Qb081VjYrN0ZXU29DT1lQS21JZVZOTlpaZ3VV?= =?utf-8?B?QXBVaHFRa3JmTlhONXJSV1Z6UUcvTFVYRkQyVC9HcGxZWm83LzRFaDNHMzhU?= =?utf-8?B?TCtGRlRWcjJ0NThiQ1NBUlQzVDdEODhITVFpNGlIdTNTaDBFWGdQS0QrNUta?= =?utf-8?B?ZVJ6azBUNVRNS081QjBmSmpJNnRKbUljYzczQk1zU1c3TWc5WWVBbmR0NGt4?= =?utf-8?B?dkNoMDluV3ZIUzBxbk1vMDdWaDJwdWNlN3Q2WDl5UnJxSDdnOEZMQmE1bEVC?= =?utf-8?B?L1VmM1p6ZlhkRUFZZE9PMGhmMzFNME9EWjI5SjN4THhXRUxXVGg1dHdhMmE1?= =?utf-8?B?Y1QzTDJ6WHF5dm80ZlhzUlkrY3d5bHl3bWxzajNrSmkzMmVzRnlKZDIxaVha?= =?utf-8?B?YU5Hc2phUzhmR2dGYWVRUVcwbnl2emJLUm1TQVhQMVNXSHl2NldmTmhOQlFj?= =?utf-8?B?d2doNmhhTFV3aWI1ZUNNUjlKN0NWYWVHMnFrY1djZUJBV0tpcEZmY1NsQ0pr?= =?utf-8?B?QkZiVzJmVGUrWHlwcEtUNmVXcWhiYUlkT1VtbXFheEV3VlJlRjJmN1VIT25y?= =?utf-8?B?YVJqSEhCMmlieE02ME9FV0cyVlZMK2VyVlp2QkVjOXR0cGVIdUc4RVowZEZQ?= =?utf-8?B?TXhNK2R5RFkxZ3liRE5jSXAzY294cy84SVY5WjZxZ0V4SXlSZ0RCVkFCRHli?= =?utf-8?B?aWpzazlaZ09KUzNWUVVxbUIzczNlQjlCYnE1aTVlVEQ1R0xic0N2MEIxUXVU?= =?utf-8?B?aGJjVGdidXN6WmFUTE1wY2YzcGxneFpIOHlyWDBIemhhUHJZcEpIV1QwRjhH?= =?utf-8?B?TFJSUTBoWVpFdG02ZDhJMi9IemtCcXliSGJSUHA2S0MzeXJOVzJDYmliUEtt?= =?utf-8?B?Z2gzM0ZZKzBKSEh1OCswNFhtejNzYW56Smw1TDhXdmtGRlBCSHg3akFtLzhv?= =?utf-8?Q?sRlCfWAktrF1CDK1mY=3D?= 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: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6de39e8-5044-438b-7939-08d97dbc6e86 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Sep 2021 11:30:50.9906 (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: qRGDP2qrjJf/Red5FiRrCKbf9b+01qGkt4mk8ZuuWatYTd3DvVLVsQUl3zuIy4m7eo2Ab7K+vfKcvte7e0e97g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3725 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v1 1/2] vfio: make API return values consistent 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" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBZaWdpdCwgRmVycnVoIDxmZXJy dWgueWlnaXRAaW50ZWwuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIFNlcHRlbWJlciAyMiwgMjAy MSA1OjI3IFBNDQo+IFRvOiBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+OyBCdXJh a292LCBBbmF0b2x5DQo+IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPjsgZGV2QGRwZGsub3Jn DQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MSAxLzJdIHZmaW86IG1ha2UgQVBJ IHJldHVybiB2YWx1ZXMgY29uc2lzdGVudA0KPiANCj4gT24gOS8yMi8yMDIxIDQ6MzAgQU0sIFhp YSwgQ2hlbmJvIHdyb3RlOg0KPiA+IEhpIEFuYXRvbHksDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogZGV2IDxkZXYtYm91bmNlc0BkcGRrLm9yZz4gT24g QmVoYWxmIE9mIEFuYXRvbHkgQnVyYWtvdg0KPiA+PiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVy IDE2LCAyMDIxIDY6MzcgUE0NCj4gPj4gVG86IGRldkBkcGRrLm9yZw0KPiA+PiBTdWJqZWN0OiBb ZHBkay1kZXZdIFtQQVRDSCB2MSAxLzJdIHZmaW86IG1ha2UgQVBJIHJldHVybiB2YWx1ZXMgY29u c2lzdGVudA0KPiA+Pg0KPiA+PiBDdXJyZW50bHksIHdoZW4gVkZJTyBzdXBwb3J0IGlzIG5vdCBj b21waWxlZCwgRnJlZUJTRCBhbmQgTGludXggaGF2ZQ0KPiA+PiBkaWZmZXJlbnQgcmV0dXJuIHZh bHVlcy4gRml4IExpbnV4IGltcGxlbWVudGF0aW9uIHRvIGZvbGxvdyBGcmVlQlNEIG9uZS4NCj4g Pj4NCj4gPj4gU2lnbmVkLW9mZi1ieTogQW5hdG9seSBCdXJha292IDxhbmF0b2x5LmJ1cmFrb3ZA aW50ZWwuY29tPg0KPiA+PiAtLS0NCj4gPj4NCj4gPj4gTm90ZXM6DQo+ID4+ICAgICBDdXJyZW50 IG1pbmltdW0gc3VwcG9ydCBMaW51eCBrZXJuZWwgaXMgNC40LCBhbmQgTWVzb24gYnVpbGQgZmls ZSBzZXRzDQo+IHRoZQ0KPiA+DQo+ID4gRG8geW91IG1lYW4gY3VycmVudGx5IERQREsgc3VwcG9y dCBsaW51eCA+PSA0LjQ/IEkgYW0gbm90IGF3YXJlIG9mIHRoaXMsDQo+IGNvdWxkIHlvdQ0KPiA+ IHNob3cgbWUgd2hlcmUgaXQgaXMgZGVmaW5lZD8NCj4gPg0KPiANCj4gaHR0cHM6Ly9naXQuZHBk ay5vcmcvZHBkay90cmVlL2RvYy9ndWlkZXMvbGludXhfZ3NnL3N5c19yZXFzLnJzdD9oPXYyMS4w OCNuMTI0DQo+IA0KPiBDb21taXQgZDJmZWFlNjhiZjMwICgiZG9jOiB1cGRhdGUgbWluaW11bSBz dXBwb3J0ZWQgTGludXgga2VybmVsIikNCg0KVGhhbmtzIEZlcnJ1aCENCg0KQWJvdXQgcmVtb3Zp bmcgdGhlIGZhbGxiYWNrIG9yIG5vdCwgaWYgd2UgZGVjaWRlIHRvIHJlbW92ZSwgbWF5YmUgZm9y IG90aGVyIGZpbGVzDQp0aGF0IGNoZWNrIGxpbnV4IGtlcm5lbCB2ZXJzaW9uLCB3ZSBhbHNvIG5l ZWQgdG8gY2hhbmdlIHNvbWUgY2hlY2sgYmVjYXVzZSB3ZSBhcmUNCmFzc3VtaW5nIGtlcm5lbCB2 ZXJzaW9uID49IDQuNCBoZXJlLiBJZiB0aGF0J3MgYSBzdHJvbmcgcmVxdWlyZW1lbnQsIEknbGwg dm90ZSBmb3INCnllcy4uLg0KDQovQ2hlbmJvDQoNCj4gDQo+ID4gQW5kIGRvIHdlIG5lZWQgYmFj a3BvcnQ/IEFzICdyZXR1cm4gLTEnIGRvZXMgbm90IGFsaWduIHdpdGggdGhlIEFQSSBkb3h5Z2Vu Lg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IENoZW5ibw0KPiA+DQo+ID4+ICAgICBSVEVfRUFMX1ZG SU8gY29uZmlnIG9wdGlvbiB0byBgdHJ1ZWAgc2ltcGx5IGJlY2F1c2Ugd2UgYXJlIGNvbXBpbGlu Zw0KPiBmb3INCj4gPj4gTGludXguDQo+ID4+ICAgICBTbywgaXQgbG9va3MgbGlrZSBWRklPIHN1 cHBvcnQgaXMgcHJldHR5IG11Y2ggYXNzdW1lZCBvbiBMaW51eCwgc28gaQ0KPiB0aGluaw0KPiA+ PiB3ZQ0KPiA+PiAgICAgY2FuIHNhZmVseSBkcm9wIHRoZSBmYWxsYmFjayBkdW1teSBpbXBsZW1l bnRhdGlvbiBmcm9tIExpbnV4IGFsdG9nZXRoZXI/DQo+ID4+DQo+ID4+ICBsaWIvZWFsL2xpbnV4 L2VhbF92ZmlvLmMgfCA2ICsrKy0tLQ0KPiA+PiAgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL2xpYi9lYWwvbGlu dXgvZWFsX3ZmaW8uYyBiL2xpYi9lYWwvbGludXgvZWFsX3ZmaW8uYw0KPiA+PiBpbmRleCAyNWFk ZDJmYTVkLi5iOWU0ZDNhZDNjIDEwMDY0NA0KPiA+PiAtLS0gYS9saWIvZWFsL2xpbnV4L2VhbF92 ZmlvLmMNCj4gPj4gKysrIGIvbGliL2VhbC9saW51eC9lYWxfdmZpby5jDQo+ID4+IEBAIC0yMTEx LDE5ICsyMTExLDE5IEBAIHJ0ZV92ZmlvX2VuYWJsZShfX3J0ZV91bnVzZWQgY29uc3QgY2hhciAq bW9kbmFtZSkNCj4gPj4gIGludA0KPiA+PiAgcnRlX3ZmaW9faXNfZW5hYmxlZChfX3J0ZV91bnVz ZWQgY29uc3QgY2hhciAqbW9kbmFtZSkNCj4gPj4gIHsNCj4gPj4gLQlyZXR1cm4gLTE7DQo+ID4+ ICsJcmV0dXJuIDA7DQo+ID4+ICB9DQo+ID4+DQo+ID4+ICBpbnQNCj4gPj4gIHJ0ZV92ZmlvX25v aW9tbXVfaXNfZW5hYmxlZCh2b2lkKQ0KPiA+PiAgew0KPiA+PiAtCXJldHVybiAtMTsNCj4gPj4g KwlyZXR1cm4gMDsNCj4gPj4gIH0NCj4gPj4NCj4gPj4gIGludA0KPiA+PiAgcnRlX3ZmaW9fY2xl YXJfZ3JvdXAoX19ydGVfdW51c2VkIGludCB2ZmlvX2dyb3VwX2ZkKQ0KPiA+PiAgew0KPiA+PiAt CXJldHVybiAtMTsNCj4gPj4gKwlyZXR1cm4gMDsNCj4gPj4gIH0NCj4gPj4NCj4gPj4gIGludA0K PiA+PiAtLQ0KPiA+PiAyLjI1LjENCj4gPg0KDQo=