From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Wiles, Keith" Subject: Re: [RFC] Yet another option for DPDK options Date: Fri, 3 Jun 2016 19:07:50 +0000 Message-ID: References: <20160602200837.GC12923@hmsreliant.think-freely.org> <20160603102943.GC16616@bricha3-MOBL3> <20160603110129.GB17812@bricha3-MOBL3> <20160603115048.GA12627@hmsreliant.think-freely.org> <8CE01283-1E89-4302-BE7D-486975B43EF6@intel.com> <20160603174437.GC12627@hmsreliant.think-freely.org> <62A67FEB-AE18-43B1-8D15-27F23D5C8A7D@intel.com> <20160603183819.GD12627@hmsreliant.think-freely.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Panu Matilainen , "Richardson, Bruce" , Thomas Monjalon , Yuanhan Liu , "dev@dpdk.org" , "Tan, Jianfeng" , Stephen Hemminger , Christian Ehrhardt , Olivier Matz To: Arnon Warshavsky , Neil Horman Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id A46272BB8 for ; Fri, 3 Jun 2016 21:07:53 +0200 (CEST) In-Reply-To: Content-Language: en-US Content-ID: <83541A5CF1DA0D498D54C93890B3F7CE@intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" T24gNi8zLzE2LCAyOjAwIFBNLCAiZGV2IG9uIGJlaGFsZiBvZiBXaWxlcywgS2VpdGgiIDxkZXYt Ym91bmNlc0BkcGRrLm9yZyBvbiBiZWhhbGYgb2Yga2VpdGgud2lsZXNAaW50ZWwuY29tPiB3cm90 ZToNCg0KPk9uIDYvMy8xNiwgMTo1MiBQTSwgIkFybm9uIFdhcnNoYXZza3kiIDxhcm5vbkBxd2ls dC5jb208bWFpbHRvOmFybm9uQHF3aWx0LmNvbT4+IHdyb3RlOg0KPg0KPg0KPg0KPk9uIEZyaSwg SnVuIDMsIDIwMTYgYXQgOTozOCBQTSwgTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNv bTxtYWlsdG86bmhvcm1hbkB0dXhkcml2ZXIuY29tPj4gd3JvdGU6DQo+T24gRnJpLCBKdW4gMDMs IDIwMTYgYXQgMDY6Mjk6MTNQTSArMDAwMCwgV2lsZXMsIEtlaXRoIHdyb3RlOg0KPj4NCj4+IE9u IDYvMy8xNiwgMTI6NDQgUE0sICJOZWlsIEhvcm1hbiIgPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbTxt YWlsdG86bmhvcm1hbkB0dXhkcml2ZXIuY29tPj4gd3JvdGU6DQo+Pg0KPj4gPk9uIEZyaSwgSnVu IDAzLCAyMDE2IGF0IDA0OjA0OjE0UE0gKzAwMDAsIFdpbGVzLCBLZWl0aCB3cm90ZToNCj4+ID4+ IFNvcnJ5LCBJIGRlbGV0ZWQgYWxsIG9mIHRoZSB0ZXh0IGFzIGl0IHdhcyBnZXR0aW5nIGEgYml0 IGxvbmcuDQo+PiA+Pg0KPj4gPj4gSGVyZSBhcmUgbXkgdGhvdWdodHMgYXMgb2Ygbm93LCB3aGlj aCBpcyBhIGNvbWJpbmF0aW9uIG9mIG1hbnkgc3VnZ2VzdGlvbnMgSSByZWFkIGZyb20gZXZlcnlv bmXigJlzIGVtYWlscy4gSSBob3BlIHRoaXMgaXMgbm90IHRvbyBoYXJkIHRvIHVuZGVyc3RhbmQu DQo+PiA+Pg0KPj4gPj4gLSBCcmVhayBvdXQgdGhlIGN1cnJlbnQgY29tbWFuZCBsaW5lIG9wdGlv bnMgb3V0IG9mIHRoZSBEUERLIGNvbW1vbiBjb2RlIGFuZCBtb3ZlIGludG8gYSBuZXcgbGliLg0K Pj4gPj4gICAtIEF0IHRoaXMgcG9pbnQgSSB3YXMgdGhpbmtpbmcgb2Yga2VlcGluZyB0aGUgcnRl X2VhbF9pbml0KGFyZ3MsIGFyZ3YpIEFQSSBhbmQganVzdCBoYXZlIGl0IHBhc3MgdGhlIGFyZ3Mv YXJndiB0byB0aGUgbmV3IGxpYiB0byBjcmVhdGUgdGhlIGRhdGEgc3RvcmFnZS4NCj4+ID4+ICAg ICAgLSBNYXliZSBtb3ZlIHRoZSBydGVfZWFsX2luaXQoKSBBUEkgdG8gdGhlIG5ldyBsaWIgb3Ig a2VlcCBpdCBpbiB0aGUgY29tbW9uIGVhbCBjb2RlLiBEbyBub3Qgd2FudCB0byBnbyBob2cgd2ls ZC4NCj4+ID4+ICAgLSBUaGUgcnRlX2VhbF9pbml0KGFyZ3MsIGFyZ3YpIHdvdWxkIHRoZW4gY2Fs bCB0byB0aGUgbmV3IEFQSSBydGVfZWFsX2luaXRpYWxpemUodm9pZCksIHdoaWNoIGluIHR1cm4g cXVlcmllcyB0aGUgZGF0YSBzdG9yYWdlLiAoc3RpbGwgdGhpbmtpbmcgaGVyZSkNCj4+ID5UaGVz ZSB0aHJlZSBpdGVtcyBzZWVtIHRvIGJlIHRoZSBleGFjdCBvcHBvc2l0ZSBvZiBteSBzdWdnZXN0 aW9uLiAgVGhlIHBvaW50IG9mDQo+PiA+dGhpcyBjaGFuZ2Ugd2FzIHRvIHNlZ3JlZ2F0ZSB0aGUg cGFyc2luZyBvZiBjb25maWd1cmF0aW9uIGF3YXkgZnJvbSB0aGUNCj4+ID5pbml0YWxpemF0aW9u IGRwZGsgdXNpbmcgdGhhdCBjb25maWd1cnRpb24uICBCeSBrZWVwaW5nIHJ0ZV9lYWxfaW5pdCBp biBzdWNoIGENCj4+ID53YXkgdGhhdCB0aGUgY29tbWFuZCBsaW5lIGlzIGRpcmVjdGx5IHBhc3Nl ZCBpbnRvIGl0LCB5b3UndmUgbm90IGNoYW5nZWQgdGhhdA0KPj4gPmltcGxpY2l0IGJpbmRpbmcg dG8gY29tbWFuZCBsaW5lIG9wdGlvbnMuDQo+Pg0KPj4gTmVpbCwNCj4+DQo+PiBZb3UgbWF5YmUg cmVhZGluZyB0aGUgYWJvdmUgd3Jvbmcgb3IgSSB3cm90ZSBpdCB3cm9uZywgd2hpY2ggaXMgYSBo aWdoIHBvc3NpYmlsaXR5LiBJIHdhbnQgdG8gbW92ZSB0aGUgY29tbWFuZCBsaW5lIHBhcnNpbmcg b3V0IG9mIERQREsgYW4gaW50byBhIGxpYnJhcnksIGJ1dCBJIHN0aWxsIGJlbGlldmUgSSBuZWVk IHRvIHByb3ZpZGUgc29tZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBBQkkgYW5kIHRvIHJl ZHVjZSB0aGUgbGVhcm5pbmcgY3VydmUuIFRoZSBjdXJyZW50IGFwcGxpY2F0aW9ucyBjYW4gc3Rp bGwgY2FsbCB0aGUgcnRlX2VhbF9pbml0KCksIHdoaWNoIHRoZW4gY2FsbHMgdGhlIG5ldyBsaWIg cGFyc2VyIGZvciBkcGRrIGNvbW1hbmQgbGluZSBvcHRpb25zIGFuZCB0aGVuIGNhbGxzIHJ0ZV9l YWxfaW5pdGlhbGl6ZSgpIG9yIG1vdmUgdG8gdGhlIG5ldyBBUEkgcnRlX2VhbF9pbml0aWFsaXpl KCkgcHJlY2VkZWQgYnkgYSBuZXcgbGlicmFyeSBjYWxsIHRvIHBhcnNlIHRoZSBvbGQgY29tbWFu ZCBsaW5lIGFyZ3MuIEF0IHNvbWUgcG9pbnQgd2UgY2FuIGRlcHJlY2F0ZSB0aGUgcnRlX2VhbF9p bml0KCkgaWYgd2UgdGhpbmsgaXQgaXMgcmVhc29uYWJsZS4NCj4+DQo+PiA+DQo+PiA+SSBjYW4g dW5kZXJzdGFuZCBpZiB5b3Ugd2FudCB0byBrZWVwIHJ0ZV9lYWxfaW5pdCBhcyBpcyBmb3IgQUJJ IHB1cnBvc2VzLCBidXQNCj4+ID50aGVuIHlvdSBzaG91bGQgY3JlYXRlIGFuIHJ0ZV9lYWxfaW5p dDIoZm9vKSwgd2hlcmUgZm9vIGlzIHNvbWUgaGFuZGxlIHRvIGluDQo+PiA+bWVtb3J5IHBhcnNl ZCBjb25maWd1cmF0aW9uLCBzbyB0aGF0IGFwcGxpY2F0aW9ucyBjYW4gcHJlZm9ybSB0aGF0IHNl cGFyYXRpb24uDQo+Pg0KPj4gSSB0aGluayB5b3UgZGVzY3JpYmUgd2hhdCBJIGhhZCBwbGFubmVk IGhlcmUuIFRoZSBydGVfZWFsX2luaXRpYWxpemUoKSByb3V0aW5lIGlzIHRoZSBuZXcgcnRlX2Vh bF9pbml0MigpIEFQSSBhbmQgdGhlIHJ0ZV9lYWxfaW5pdCgpIHdhcyBvbmx5IGZvciBiYWNrd2Fy ZCBjb21wYXRpYmlsaXR5IHdhcyBteSB0aGlua2luZy4gSSBmaWd1cmVkIHRoZSBhcmd1bWVudCB0 byBydGVfZWFsX2luaXRpYWxpemUoKSB3b3VsZCBiZSBzb21ldGhpbmcgdG8gYmUgZGVjaWRlZCwg YnV0IGl0IHdpbGwgbW9zdGx5IGxpa2VseSBiZSBzb21lIHR5cGUgb2YgcG9pbnRlciB0byB0aGUg c3RvcmFnZS4NCj4+DQo+PiBJIGhvcGUgdGhhdCBjbGVhcnMgdGhhdCB1cCwgYnV0IGxldCBtZSBr bm93Lg0KPj4NCj55ZXMsIHRoYXQgY2xhcmlmaWVzIHlvdXIgdGhpbmtpbmcsIGFuZCBJIGFncmVl IHdpdGggaXQuICBUaGFuayB5b3UhDQo+TmVpbA0KPg0KPj4gKytLZWl0aA0KPj4NCj4+ID4NCj4+ ID5OZWlsDQo+PiA+DQo+PiA+PiAgIC0gVGhlIGV4YW1wbGUgYXBwcyBhcmdzIG5lZWRzIHRvIGJl IHBhc3NlZCB0byB0aGUgZXhhbXBsZXMgYXMgaXMgZm9yIG5vdywgdGhlbiB3ZSBjYW4gY29udmVy dCB0aGVtIG9uZSBhdCBhIHRpbWUgaWYgbmVlZGVkLg0KPj4gPj4NCj4+ID4+IC0gSSB3b3VsZCBs aWtlIHRvIGtlZXAgdGhlIHN0b3JhZ2Ugb2YgdGhlIGRhdGEgc2VwYXJhdGUgZnJvbSB0aGUgZmls ZSBwYXJzZXIgYXMgdGhleSBjYW4gdXNlIHRoZSDigJhzZXTigJkgcm91dGluZXMgdG8gYnVpbGQg dGhlIGRhdGEgc3RvcmFnZSB1cC4NCj4+ID4+ICAgLSBLZWVwaW5nIHRoZW0gc3BsaXQgYWxsb3dz IGZvciBuZXcgcGFyc2VycyB0byBiZSBjcmVhdGVkLCB3aGlsZSBrZWVwaW5nIHRoZSBkYXRhIHN0 b3JhZ2UgZnJvbSBjaGFuZ2luZy4NCj4+ID4+IC0gVGhlIHJ0ZV9jZmcgY29kZSBjb3VsZCBiZSBt b2RpZmllZCB0byB1c2UgdGhlIG5ldyBjb25maWd1cmF0aW9uIGlmIHNvbWVvbmUgd2FudHMgdG8g dGFrZSBvbiB0aGF0IHRhc2sg4pi6DQo+PiA+Pg0KPj4gPj4gLSBOZXh0IGlzIHRoZSBkYXRhIHN0 b3JhZ2UgYW5kIGhvdyB3ZSBjYW4gYWNjZXNzIHRoZSBkYXRhIGluIGEgY2xlYW4gc2ltcGxlIHdh eS4NCj4+ID4+IC0gSSB3YW50IHRvIGhhdmUgc29tZSBzaW1wbGUgbGV2ZWwgb2YgaGllcmFyY2h5 IGluIHRoZSBkYXRhLg0KPj4gPj4gICAtIEhhdmluZyBhIHN0cmluZyBjb250YWluaW5nIGF0IGxl YXN0IHR3byBsZXZlbHMg4oCccHJpbWFyeTpzZWNvbmRhcnnigJ0uDQo+PiA+PiAgICAgIC0gUHJp bWFyeSBzdHJpbmcgaXMgc29tZXRoaW5nIGxpa2Ug4oCcRUFM4oCdIG9yIOKAnFBrdGdlbuKAnSBv ciDigJx0ZXN0cG1k4oCdIHRvIGRpdmlkZSB0aGUgZGF0YSBzdG9yYWdlIGludG8gbG9naWNhbCBt YWpvciBncm91cHMuDQo+PiA+PiAgICAgICAgIC0gVGhlIHByaW1hcnkgYWxsb3dzIHVzIHRvIGhh dmUgZ3JvdXBzIGFuZCB0aGVuIHdlIGNhbiBoYXZlIGNvbW1vbiBzZWNvbmRhcnkgc3RyaW5ncyBp biBkaWZmZXJlbnQgZ3JvdXBzIGlmIG5lZWRlZC4NCj4+ID4+ICAgICAgLSBTZWNvbmRhcnkgc3Ry aW5nIGNhbiBiZSB3aGF0ZXZlciB0aGUgZGV2ZWxvcGVyIG9mIHRoYXQgZ3JvdXAgd291bGQgbGlr ZSBlLmcuIHNpbXBsZSDigJxFQUw6Zm9vYmFy4oCdLCB0d28gbGV2ZWxzIOKAnHRlc3RwbWQ6Zm9v LmJhcuKAnQ0KPj4gPj4NCj4+ID4+ICAgLSBUaGUgc2Vjb25kYXJ5IHN0cmluZyBpcyB0cmVhdGVk IGFzIGEgc2luZ2xlIHN0cmluZyBpZiBpdCBoYXMgYSBoaWVyYXJjaHkgb3Igbm90LCBidXQgcmVm ZXJlbmNpbmcgYSBzaW5nbGUgdmFsdWUgaW4gdGhlIGRhdGEgc3RvcmFnZS4NCj4+ID4+ICAgICAg LSBLZXkgdmFsdWUgcGFpcnMgKEtWUCkgb3IgYSBoYXNobWFwIGRhdGEgc3RvcmUuDQo+PiA+PiAg ICAgICAgIC0gVGhlIGtleSBoZXJlIGlzIHRoZSB3aG9sZSBzdHJpbmcg4oCcRUFMOmZvb2JhcuKA nSBub3QganVzdCDigJxmb29iYXLigJ0gc2Vjb25kYXJ5IHN0cmluZy4NCj4+ID4+ICAgICAgICAg ICAgLSBJZiB3ZSB3YW50IHRvIGhhdmUgdGhlIHR3byBzcGxpdCBJIGFtIG9rIHdpdGggdGhhdCBh cyB3ZWxsIG1lYW5pbmcgdGhlIEFQSSB3b3VsZCBiZToNCj4+ID4+ICAgICAgICAgICAgICBydGVf bWFwX2dldChtYXBPYmosIOKAnEVBTOKAnSwg4oCcZm9vLmJhcuKAnSk7DQo+PiA+PiAgICAgICAg ICAgICAgcnRlX21hcF9zZXQobWFwT2JqLCDigJxFQUzigJ0sIOKAnGZvby5iYXLigJ0sIHZhbHVl KTsNCj4+ID4+ICAgICAgICAgICAgLSBIYXZlIHRoZSBwcmltYXJ5IGFzIGEgZGlmZmVyZW50IHNl Y3Rpb24gaW4gdGhlIGRhdGEgc3RvcmUsIHdvdWxkIGFsbG93IGZvciBkdW1waW5nIHRoYXQgc2Vj dGlvbiBtYXliZSBlYXNpZXIsIG5vdCBzdXJlLg0KPj4gPj4gICAgICAgICAgICAgICAtIEkgYW0g bGVhbmluZyB0b3dhcmQNCj4+ID4+ICAgICAgLSBOb3QgZ29pbmcgdG8gdHJ5IHNwbGl0dGluZyB1 cCB0aGUgc3RyaW5nIG9yIHBhcnNlIGl0IGFzIGl0IGlzIHVwIHRvIHRoZSBkZXZlbG9wZXIgdG8g bWFrZSBpdCB1bmlxdWUgaW4gdGhlIGRhdGEgc3RvcmUuDQo+PiA+PiAtIFVzZSBhIGNvZGUgZGVz aWduIHRvIG1ha2UgdGhlIHN0cmluZ3Mgc2ltcGxlIHRvIHVzZSB3aXRob3V0IGhhdmluZyB0eXBv cyBiZSBhIHByb2JsZW0uDQo+PiA+PiAgICAtIE5vdCBzdXJlIHdoYXQgdGhlIGRlc2lnbiBpcyB5 ZXQsIGJ1dCBJIGRvIG5vdCB3YW50IHRvIGhhdmUgdG8gY29uY2F0IHR3byBzdHJpbmcgb3Igc3Bs aXQgc3RyaW5ncyBpbiB0aGUgY29kZS4NCj4+ID4+DQo+PiA+PiBUaGlzIGlzIGFzIGZhciBhcyBJ IGhhdmUgZ290dGVuIGFuZCBnb3QgdGlyZWQgb2YgdHlwaW5nIOKYug0KPj4gPj4NCj4+ID4+IEkg aG9wZSB0aGlzIHdpbGwgc2F0aXNmeSBtb3N0IGV2ZXJ5b25l4oCZcyBuZWVkcyBmb3Igbm93Lg0K Pj4gPj4NCj4+ID4+DQo+PiA+PiBSZWdhcmRzLA0KPj4gPj4gS2VpdGgNCj4+ID4+DQo+PiA+Pg0K Pj4gPj4NCj4+ID4NCj4+DQo+Pg0KPj4NCj4NCj5LZWl0aA0KPldoYXQgYWJvdXQgdGhlIGRhdGEg dHlwZXMgb2YgdGhlIHZhbHVlcz8NCj5JIHdvdWxkIGFzc3VtZSB0aGF0IGFzIGEgbGlicmFyeSBp dCBjYW4gcHJvdmlkZSB0aGUgc2VydmljZSBvZiB0eXBlZCBnZXQvc2V0IGFuZCBub3QgbGVhdmUg Y29udmVyc2lvbiBhbmQgdmFsaWRhdGlvbiB0byB0aGUgYXBwLg0KPg0KPnJ0ZV9tYXBfZ2V0X2lu dChtYXAsc2VjdGlvbixrZXkpDQo+cnRlX21hcF9nZXRfZG91YmxlKC4uLikNCj5ydGVfbWFwX2dl dF9zdHJpbmcoLi4uKQ0KPnJ0ZV9tYXBfZ2V0X2J5dGVzKC4uLixkZXN0QnVmZiAsIGRlc3RCdWZm U2l6ZSkgLy9lLmcgYnl0ZSBhcnJheSBvZiBSU1Mga2V5DQo+VGhpcyBtYXkgYWxzbyBhbGxvdyBz b21lIGJhc2ljIHZhbGlkaXR5IG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGUNCj5Bbm90aGVyIHBv aW50IEkgZm9yZ290IGFib3V0IGlzIGRlZmF1bHQgdmFsdWVzLg0KPldlIHNvbWV0aW1lcyB1c2Ug YSBub3RhdGlvbiB3aGVyZSB0aGUgYXBwIGFsc28gc3BlY2lmaWVzIGEgZGVmYXVsdCB2YWx1ZSBp biBjYXNlIHRoZSBjb25maWd1cmF0aW9uIGRpZCBub3Qgc3BlY2lmeSBpdA0KPiAgcnRlX21hcF9n ZXRfaW50KG1hcCxzZWN0aW9uLGtleSAsIGRlZmF1bHRWYWx1ZSApDQo+YW5kIHNwZWNpZnkgaWYg dGhpcyB3YXMgYSBtYW5kYXRvcnkgdGhhdCBoYXMgbm8gZGVmYXVsdA0KPiAgcnRlX21hcF9nZXRf aW50X2NyYXNoX2lmX21pc3NpbmcgKG1hcCxzZWN0aW9uLGtleSkNCj4NCj4NCj4NCj4NCj4vQXJu b24NCj4NCj5Bcm5vbiwNCj4NCj5ZZXMsIEkgdG9vIHdhcyB0aGlua2luZyBhYm91dCBhY2Nlc3Mg dHlwZSBBUElzLCBidXQgaGFkIG5vdCBjb21lIHRvIGEgZnVsbCBjb25jbHVzaW9uIHlldC4gQXMg bG9uZyBhcyB0aGUgQVBJIGZvciBnZXQvcHV0IGNhbiByZXR1cm4gYW55IHZhbHVlLCB3ZSBjYW4g YWRkIGEgbGF5ZXIgb24gdG9wIG9mIHRoZXNlIHByaW1hcnkgZ2V0L3B1dCBBUElzIHRvIGRvIHNv bWUgYmFzaWMgdHlwZSBjaGVja2luZy4gVGhpcyB3YXkgdGhlIGRldmVsb3BlciBjYW4gYWRkIGhp cy9oZXIgb3duIHR5cGUgY2hlY2tpbmcgQVBJcyBvciB3ZSBwcm92aWRlIGEgY291cGxlIGJhc2lj IHR5cGVzIGZvciBzaW1wbGUgdmFsdWVzLg0KDQpPbmUgbW9yZSB0aGluZy4gSSBoYWQgbm90IHRo b3VnaHQgYWJvdXQgZGVmYXVsdCB2YWx1ZXMgYXMgdGhlIGRlZmF1bHRzIGFyZSBoYW5kbGUgZGly ZWN0bHkgYnkgdGhlIGNvZGUgd2hlbiBhbiBvcHRpb24gaXMgbm90IGFwcGxpZWQuIEkgdGhpbmsg aXQgc2hvdWxkIGJlIGxlZnQgdXAgdG8gdGhlIGRldmVsb3BlciB0byBhZGQgZGVmYXVsdCB2YWx1 ZXMgdG8gdGhlIHN0b3JhZ2Ugb3IgaGFuZGxlIGl0IHdoZW4gYW4gb3B0aW9uIGlzIG5vdCBmb3Vu ZCBpbiB0aGUgc3RvcmFnZS4NCg0KSWYgSSB1bmRlcnN0YW5kIHlvdXIgY29kZSBhYm92ZSB0aGUg QVBJIHdvdWxkIHBhc3MgaW4gYSBkZWZhdWx0IHZhbHVlIGlmIG9uZSBkaWQgbm90IGV4aXN0IGlu IHRoZSBzdG9yYWdlLCB3aGljaCBJIGd1ZXNzIGlzIHJlYXNvbmFibGUuIEFueW9uZSB0aGluayB0 aGlzIGlzIGEgZ29vZCBpZGVhIG9yIG5vdD8NCg0KPg0KPkRvZXMgdGhhdCBtYWtlIHNlbnNlPw0K Pg0KPisrS2VpdGgNCj4NCg0KDQoNCg==