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 B5066A0C54; Tue, 10 Aug 2021 11:07:36 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6E32040686; Tue, 10 Aug 2021 11:07:36 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2063.outbound.protection.outlook.com [40.107.244.63]) by mails.dpdk.org (Postfix) with ESMTP id 9B19A4014F for ; Tue, 10 Aug 2021 11:07:34 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b6TxdoZB0Pu1wthbxpUtZb1jFkcbIGVe3ttwpOLCueXSMowHwbIx3Z+EiR/7EdHr4BhhOr0ZzapdNFdm7HthV7A4nglPvubcrNeJISnz9qzbLa21AppnVNW+TxLFHjSWhYug84EMPhDROPwS2MbBp6VYNoV/iKScauEs+2pJIRNX+FSwrmfwZrWxKR3tVtMbeHHp2D7f7njbWn18PzvofCeItqFGET9bmY8TY64Mo4vEY+jRLLzeBQUki9aLJ4SfNYlTUR8oWLVJZCs7DQZk5qCZQVSdE6CPyULxKK1UoslO7M1iluubilFrdOYYDZAbHjuR9d63A5Vz76mjWyecyg== 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=LpbU0H5Ams/TnT+x1q0VELdc0Gc1WyzBOBY3gmENcc4=; b=gWG6pUfz/1m0Mrxm5u+mTiR+t1oJSqKKB5n5WS/8DQOsphwotK6GVFLjOHhuT4WSqJaEqXJkfrLELNV9ZBlqF7yTXGZDbj4vFl/nFbq2nISecch0yRRUIq0SeFvzJcrvm6KSUO7hYhCABi7ZpruT1hP3gtMeAR3r7W1syZuzmO8BmFRu2neyVlsdz7KLAyf8y+MTZ+jgI1vuNiG80JRAHwnDdc/uWnm2/QsFLicgxCMja/j4aJlVLFXNW93Meuxt7TfV/S9d9QFexNTdAf5znWBgy/5lwbhVrg8ttVu4UbthR2CkmLfLTqphdzHARfO/W6zNvjdcaJZa6L0KxdbuoQ== 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=LpbU0H5Ams/TnT+x1q0VELdc0Gc1WyzBOBY3gmENcc4=; b=M/ihTW47XbKjxIiOreolsFSsvMLmjEITcuuEHCQBWsoOHt7OZYvvJg1Q+tTvFB1O5MU8NQdYGndBhJmkLYHlT6shFJSMreI4IU6tyT6CY4c0A3auv07PY5qRzhwANL3Pypsmvl3QU67DO+XEGjoGy4X3brxd//XW4prHAxVsiQyc/hPcmsZLD5N5dfB7vlVM/Ug8INUae5HoJ7IEprGV/9MfKmNVMr7FETlFjePl24JSlXWW69Ese3Fpv+aksuXVJUCvOz4yySBUwbflSnGRPJ9vcYZjCvU5o/+GACw1NKJCnvM1/nnw48AnYkgG/Y8lqbp4s2mwJ9elPEjLCDesDQ== Received: from DM4PR12MB5373.namprd12.prod.outlook.com (2603:10b6:5:39a::17) by DM4PR12MB5056.namprd12.prod.outlook.com (2603:10b6:5:38b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.19; Tue, 10 Aug 2021 09:07:33 +0000 Received: from DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::20f5:dbdd:64b1:617b]) by DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::20f5:dbdd:64b1:617b%9]) with mapi id 15.20.4394.023; Tue, 10 Aug 2021 09:07:33 +0000 From: "Xueming(Steven) Li" To: Ferruh Yigit , "Singh, Aman Deep" , Andrew Rybchenko CC: "dev@dpdk.org" , Slava Ovsiienko , NBU-Contact-Thomas Monjalon Thread-Topic: [dpdk-dev] [RFC] ethdev: change queue release callback Thread-Index: AQHXgpljDVfm/8YqW0ivT75D62VYsqtYApaAgBNREoCAAA5jAIABFCyggAAPMICAAACt4A== Date: Tue, 10 Aug 2021 09:07:33 +0000 Message-ID: References: <20210727034134.20556-1-xuemingl@nvidia.com> <24309185-57e8-9a21-6b3a-939c4d74f1e7@oktetlabs.ru> <3032fdb1-58a5-5470-9903-09b992c059d4@intel.com> <8f8178d5-65e5-43f4-fc17-f753183e8042@intel.com> <534241c3-4423-bfa9-b7ee-56f0f5e59f5f@intel.com> In-Reply-To: <534241c3-4423-bfa9-b7ee-56f0f5e59f5f@intel.com> Accept-Language: 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-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 94354973-c435-400f-bfcd-08d95bde4a1c x-ms-traffictypediagnostic: DM4PR12MB5056: 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:8273; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nSicTUUjdvU/ogyPK+R9GOMCv1GtxkjHjzBeHuxc//jY9pooFa6F71tNaKgqyzH5WMry8skyViP2t1RFh4JiA4yGtSJ8dr2U9NKPmU1n+CtHmdU3ze08Kppzg4H53/ZvTYfL8AnCYnxg+cIPD4EJbbLSLytATBlI4gzJYxb67YY7hUYjWUI2/lCAfsV34VWSSmsS/wtpcqp75M7vsKdwznRFRVOs45rvj1j6aaUZQ78e0dhP+V75arpclXnTmECPu7GqM5xvFQmgSTyOExXwApoJ68WYHLg3ZyXq8V5NKSpG6S9sZf4KFd/qGq8nseYHeelvQafnjrZonk2ncHT8a6ILk/3g4PKijXrA+PVM3V6aBoACqDLD9fmWqw7o5fGZU+rXjjtlj1+0cWrEuUVRhoHHqJ4oRUwClqOdeY1uKtQuqf4kLmQo+BZBrN7Oe53KBmOwYTgANdmwfe9rR+QgEWL8v0ZuoVIQdg360mNEGp0U92VUiGEcEC1zBGcpS+kxWa4urZt3YLBHWvvQZR3SqItwOtQrUmY4I4hJDiI2nbcN1v5Ou+ZvCVWdnqFtUiC9+aln44IHrBXjs3CUhlLzy88J2Q0M6qc+RxiEdF3e/t7DWNpK4CzpyleKsBRKd49YgSdg9Kx1BqmAdUkE3G3zc+xviU5ZfTzzlC5A51SSt8MGzU9yw5My2m+e4PvP2oho6ab190LlWleUxkX2r70qGQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5373.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(376002)(396003)(346002)(39860400002)(76116006)(122000001)(38070700005)(33656002)(26005)(110136005)(186003)(316002)(38100700002)(478600001)(4326008)(54906003)(86362001)(7696005)(5660300002)(9686003)(83380400001)(8936002)(52536014)(2906002)(55016002)(71200400001)(66446008)(66476007)(53546011)(66556008)(6506007)(66946007)(64756008)(8676002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eFRpREIwV1hMZXZwS0dWZzFTS1hydytSc1JuSGxMQUM1T0x5TkxGd3hlTWtp?= =?utf-8?B?QnFRUVd5bzJmbi9VQzE1OWRVZ3k2RmJjVjJ6Vngxc2lGdHRBTGt3dFJxTXhJ?= =?utf-8?B?MTNoUWZxY0JLb0JYYVcrRjdkNTJ5ZXAvQUQ2SkRGeGJua0hyN01CTlBkVVRj?= =?utf-8?B?R2RKa3J4bndwazE1a0xiMWFYcXV1cUZCS3REN21jOHN0VUpFcGF4QlR4TjBF?= =?utf-8?B?RzR4RUM4SDIvZ3dUbkhJRld5T1NzMkJGQ1VVbU5UeGt3bkE2Ui9sNXJPZGJ1?= =?utf-8?B?K05xV1V0WUJzMGdWeDlYVjB0Nlg2OFdLS3NKT2crc0xwbVJRUnlpVCtqeWFp?= =?utf-8?B?TW9qOUdSKzA5TXIvWUhNUzUyNVdjak5ET3NXME5nTm9KcFFUSnA3SzRXUjdz?= =?utf-8?B?YzNqRlB4NjZ6WVNRSHBDbFVlOTFJdm1ibUI1ZlJhbWNvUFhoT1JJMkwrWThy?= =?utf-8?B?U0VQb0l0WUtxcXdFbUZUVEpzVk5GQmF1RUdFQi81cVk2OXA3ZnFGRkEzQk9X?= =?utf-8?B?RVlsVDNTSjN3S2pkSDhMOWpPTWFHa2RvQ2RndWpBQzBHM2dlTnJxcmEwelIr?= =?utf-8?B?ZWNJdnlzeUpSSW1oa0p2emVBcnRXa01OdHNudmhNZkd5SUdtVVl6OSs3dVdO?= =?utf-8?B?b29MdnhibnFzOW0wUDllVEloV0ZXOS9jYTBOSlg0enE3TCtVdG1RZVEwb3ZR?= =?utf-8?B?bHlvcTJtblJrZFluc21hMGhORkZRZmhWT2dLYzIrb2FDczliT3dtellJRUpW?= =?utf-8?B?NGpGUm8zdUxoelc5ckFRL3FPbDFSSEg1M0RPcy9lTTFtd09ySDRjQVY3Ky9Q?= =?utf-8?B?QXgrbkNJQWhydlY2eTVzRHp2akhsQzh2djdqRFh2K0tJY0hUcXR5c2cxVGsv?= =?utf-8?B?cStPdURGcmd4b0xoWTVoQWw3a2IycWVwVmxuMnVwTXVpVG5lWHFvSFQrQVpr?= =?utf-8?B?RlRYdzhmSHk0TVdoWUl6VTV3dXlUTnllUXNISFVISmNidWlvdzNCRVpsb3kv?= =?utf-8?B?eEhRVTJKaXQrT1FBUnJuR1dBOUVmR3cydTNxZVFydytIWkJKT3R0V1VwdzI3?= =?utf-8?B?Qm1tV25pWngvaUN3NHVHelhlOU5uMTZoWXhqRVJ2Mk9wVXhOWGdFekFyVmZI?= =?utf-8?B?MkRZNm0zdFYwVzlNckZkWUhGNFh1N2kzWk9Uekova25Ic1B5TEllNjNJdm85?= =?utf-8?B?UlF6djlaL3ZPRW4zOHMyV0pLaVBnOXFHL1lwMkpMNmRVcTlyaXA0dlBteVpW?= =?utf-8?B?RGQ1L1VFTjFTeWFsRytOU1VpYnhQWWRXelJoVVo4WUlpRjM4cWtKZXYvN1do?= =?utf-8?B?cHM2S2FyeWNXaEplOGdNOVdEVGR1TlQvVzZvSElRVzdmQXkvK1FrK0FNUWt5?= =?utf-8?B?cTA4T3dvdlRmY290cTFHTkw4YlJJUFFwcnJtTnkrYVE4VUZwNVA0am83Si9P?= =?utf-8?B?V2xvdVExVGxQYVBMUlhrQ0VnNmZtcWhGOTRlL0kwbFZkYUU3RW9yL1psMHRv?= =?utf-8?B?U0F3eFVVSUJCVkhkdmRtSzBzTWpwa0RBeC9uZUViTlBwNVBMUEJaVDcydTBq?= =?utf-8?B?Zk0zL05nRkF6bEFGdUxKT0VZaWM1ZUxZS0tMWWV2TEpnSUwxVjI2ZmhzeDE0?= =?utf-8?B?VS9GdmJLTC8wY0F0YXh4WWVlcWc4S1JZODlkRXZFSTN0UU9ub1R1aGFUdUtU?= =?utf-8?B?QlltR0pSajNZNUNpN2x3d0VjSDNtaVh4TXFIWGpydVRFZTRXS2d6TXFadXFX?= =?utf-8?Q?sEdv4VU2jb7mbcD6Nu7fmRrpMyMgivow3AqVp3P?= 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: DM4PR12MB5373.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94354973-c435-400f-bfcd-08d95bde4a1c X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Aug 2021 09:07:33.2935 (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: hH86MLnfXTCDniT+jW6Bej11RAZ5J3wMz1QiUej38iluB1c+3u5ac1xilbE/WMQVLcsvbPBsuFZi2R8gD4uQlA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5056 Subject: Re: [dpdk-dev] [RFC] ethdev: change queue release callback 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMTAsIDIwMjEg NDo1NCBQTQ0KPiBUbzogWHVlbWluZyhTdGV2ZW4pIExpIDx4dWVtaW5nbEBudmlkaWEuY29tPjsg U2luZ2gsIEFtYW4gRGVlcCA8YW1hbi5kZWVwLnNpbmdoQGludGVsLmNvbT47IEFuZHJldyBSeWJj aGVua28NCj4gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiBDYzogZGV2QGRwZGsu b3JnOyBTbGF2YSBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG52aWRpYS5jb20+OyBOQlUtQ29udGFj dC1UaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+DQo+IFN1YmplY3Q6IFJlOiBb ZHBkay1kZXZdIFtSRkNdIGV0aGRldjogY2hhbmdlIHF1ZXVlIHJlbGVhc2UgY2FsbGJhY2sNCj4g DQo+IE9uIDgvMTAvMjAyMSA5OjAzIEFNLCBYdWVtaW5nKFN0ZXZlbikgTGkgd3JvdGU6DQo+ID4g SGkgU2luZ2ggYW5kIEZlcnJ1aCwNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+PiBGcm9tOiBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+DQo+ID4+ IFNlbnQ6IE1vbmRheSwgQXVndXN0IDksIDIwMjEgMTE6MzEgUE0NCj4gPj4gVG86IFNpbmdoLCBB bWFuIERlZXAgPGFtYW4uZGVlcC5zaW5naEBpbnRlbC5jb20+OyBBbmRyZXcgUnliY2hlbmtvDQo+ ID4+IDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT47IFh1ZW1pbmcoU3RldmVuKSBMaQ0K PiA+PiA8eHVlbWluZ2xAbnZpZGlhLmNvbT4NCj4gPj4gQ2M6IGRldkBkcGRrLm9yZzsgU2xhdmEg T3ZzaWllbmtvIDx2aWFjaGVzbGF2b0BudmlkaWEuY29tPjsNCj4gPj4gTkJVLUNvbnRhY3QtVGhv bWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0Pg0KPiA+PiBTdWJqZWN0OiBSZTogW2Rw ZGstZGV2XSBbUkZDXSBldGhkZXY6IGNoYW5nZSBxdWV1ZSByZWxlYXNlIGNhbGxiYWNrDQo+ID4+ DQo+ID4+IE9uIDgvOS8yMDIxIDM6MzkgUE0sIFNpbmdoLCBBbWFuIERlZXAgd3JvdGU6DQo+ID4+ PiBIaSBYdWVtaW5nLA0KPiA+Pj4NCj4gPj4+IE9uIDcvMjgvMjAyMSAxOjEwIFBNLCBBbmRyZXcg UnliY2hlbmtvIHdyb3RlOg0KPiA+Pj4+IE9uIDcvMjcvMjEgNjo0MSBBTSwgWHVlbWluZyBMaSB3 cm90ZToNCj4gPj4+Pj4gVG8gYWxpZ24gd2l0aCBvdGhlciBldGggZGV2aWNlIHF1ZXVlIGNvbmZp Z3VyYXRpb24gY2FsbGJhY2tzLA0KPiA+Pj4+PiBjaGFuZ2UgUlggYW5kIFRYIHF1ZXVlIHJlbGVh c2UgY2FsbGJhY2sgQVBJIHBhcmFtZXRlciBmcm9tIHF1ZXVlDQo+ID4+Pj4+IG9iamVjdCB0byBk ZXZpY2UgYW5kIHF1ZXVlIGluZGV4Lg0KPiA+Pj4+Pg0KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBY dWVtaW5nIExpIDx4dWVtaW5nbEBudmlkaWEuY29tPg0KPiA+Pj4+DQo+ID4+Pj4gSW4gZmFjdCwg dGhlcmUgaXMgbm8gc3Ryb25nIHJlYXNvbnMgdG8gZG8gaXQsIGJ1dCBJIHRoaW5rIGl0IGlzIGEN Cj4gPj4+PiBuaWNlIGNsZWFudXAgdG8gdXNlIChkZXYgKyBxdWV1ZSBpbmRleCkgb24gY29udHJv bCBwYXRoLg0KPiA+Pj4+DQo+ID4+Pj4gSG9wZWZ1bGx5IGl0IHdpbGwgbm90IHJlc3VsdCBpbiBh bnkgcmVncmVzc2lvbnMuDQo+ID4+Pg0KPiA+Pj4gQ29tYmluZWQgdGhlcmUgYXJlIDEwMCsgQVBJ J3MgZm9yIFJ4L1R4IHF1ZXVlX3JlbGVhc2UgdGhhdCBuZWVkIHRvDQo+ID4+PiBiZSBtb2RpZmll ZCBmb3IgaXQuDQo+ID4+Pg0KPiA+Pj4gSSBiZWxpZXZlIGFsbCByZWdyZXNzaW9uIHBvc3NpYmls aXRpZXMgaGVyZSB3aWxsIGJlIGNhdWdodCwgaW4NCj4gPj4+IGNvbXBpbGF0aW9uIHBoYXNlIGl0 c2VsZi4NCj4gPj4+DQo+ID4+DQo+ID4+IFNhbWUgaGVyZSwgaXQgaXMgYSBnb29kIGNsZWFudXAg YnV0IHRoZXJlIGlzIG5vIHN0cm9uZyByZWFzb24gZm9yIGl0Lg0KPiA+Pg0KPiA+PiBTaW5jZSBp dCBpcyBhbGwgaW50ZXJuYWwsIHRoZXJlIGlzIG5vIEFCSSByZXN0cmljdGlvbiBvbiB0aGUgcGF0 Y2gsDQo+ID4+IGFuZCB2MjEuMTEgd2lsbCBiZSBmdWxsIEFCSSBicmVhayBwYXRjaGVzLCB0byBu b3QgY2F1c2UgY29uZmxpY3RzIHdpdGggdGhpcyBjaGFuZ2UsIHdoYXQgd291bGQgeW91IHRoaW5r IHRvIGhhdmUgaXQgb24gdjIyLjAyPw0KPiA+DQo+ID4gVGhpcyBwYXRjaCBpcyByZXF1aXJlZCBi eSBzaGFyZWQtcnhxIGZlYXR1cmUgd2hpY2ggQUJJIGJyb2tlbiwgdGFyZ2V0IHRvIDIxLjExLg0K PiANCj4gV2h5IGl0IGlzIHJlcXVpcmVkPw0KDQpJbiByeCBidXJzdCBmdW5jdGlvbiwgcnhxIG9i amVjdCBpcyB1c2VkIGluIGRhdGEgcGF0aC4gRm9yIGJlc3QgZGF0YSBwZXJmb3JtYW5jZSwgaXQn cyBzaGFyZWQtcnhxIG9iamVjdCBpbiBjYXNlIG9mIHNoYXJlZCByeHEgZW5hYmxlZC4NCkkgdGhp bmsgZXRoIGFwaSBkZWZpbmVkIHJ4cSBvYmplY3QgZm9yIHBlcmZvcm1hbmNlIGFzIHdlbGwsIHNw ZWNpZmljIG9uIGRhdGEgcGxhbmUuIA0KSGFyZHdhcmUgc2F2ZXMgcG9ydCBpbmZvIHJlY2VpdmVk IHBhY2tldCBkZXNjcmlwdG9yIGZvciBteSBjYXNlLg0KQ2FuJ3QgdGVsbCB3aGljaCBkZXZpY2Un cyBxdWV1ZSB3aXRoIHRoaXMgc2hhcmVkIHJ4cSBvYmplY3QsIGNvbnRyb2wgcGF0aCBjYW4ndCB1 c2UgdGhpcyBzaGFyZWQgcnhxIGFueW1vcmUsIGhhdmUgdG8gYmUgc3BlY2lmaWMgb24gZGV2IGFu ZCBxdWV1ZSBpZC4NCg0KPiANCj4gPiBJJ2xsIGRvIGl0IGNhcmVmdWxseSwgZm9ydHVuYXRlbHks IHRoZSBjaGFuZ2UgaXMgc3RyYWlnaHRmb3J3YXJkLg0KPiA+DQoNCg==