From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id B3FD05F2A for ; Thu, 15 Mar 2018 11:58:47 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Mar 2018 03:58:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,310,1517904000"; d="scan'208";a="208459466" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga005.jf.intel.com with ESMTP; 15 Mar 2018 03:58:46 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 15 Mar 2018 03:58:46 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.235]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.226]) with mapi id 14.03.0319.002; Thu, 15 Mar 2018 18:58:43 +0800 From: "Wang, Zhihong" To: Maxime Coquelin , "Tan, Jianfeng" , "dev@dpdk.org" CC: "Bie, Tiwei" , "yliu@fridaylinux.org" , "Liang, Cunming" , "Wang, Xiao W" , "Daly, Dan" Thread-Topic: [PATCH v2 1/6] vhost: export vhost feature definitions Thread-Index: AQHTtGM/VNLzKpUIPES1AHK5lQkBkKPCbrAAgABKGQCADnb1MA== Date: Thu, 15 Mar 2018 10:58:43 +0000 Message-ID: <8F6C2BD409508844A0EFC19955BE094151406D15@SHSMSX103.ccr.corp.intel.com> References: <1517614137-62926-1-git-send-email-zhihong.wang@intel.com> <20180213092106.57996-1-zhihong.wang@intel.com> <20180213092106.57996-2-zhihong.wang@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2 1/6] vhost: export vhost feature definitions 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: , X-List-Received-Date: Thu, 15 Mar 2018 10:58:48 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWF4aW1lIENvcXVlbGlu IFttYWlsdG86bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb21dDQo+IFNlbnQ6IFR1ZXNkYXksIE1h cmNoIDYsIDIwMTggMTA6MDMgUE0NCj4gVG86IFRhbiwgSmlhbmZlbmcgPGppYW5mZW5nLnRhbkBp bnRlbC5jb20+OyBXYW5nLCBaaGlob25nDQo+IDx6aGlob25nLndhbmdAaW50ZWwuY29tPjsgZGV2 QGRwZGsub3JnDQo+IENjOiBCaWUsIFRpd2VpIDx0aXdlaS5iaWVAaW50ZWwuY29tPjsgeWxpdUBm cmlkYXlsaW51eC5vcmc7IExpYW5nLCBDdW5taW5nDQo+IDxjdW5taW5nLmxpYW5nQGludGVsLmNv bT47IFdhbmcsIFhpYW8gVyA8eGlhby53LndhbmdAaW50ZWwuY29tPjsgRGFseSwNCj4gRGFuIDxk YW4uZGFseUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjIgMS82XSB2aG9zdDog ZXhwb3J0IHZob3N0IGZlYXR1cmUgZGVmaW5pdGlvbnMNCj4gDQo+IA0KPiANCj4gT24gMDMvMDYv MjAxOCAxMDozNyBBTSwgVGFuLCBKaWFuZmVuZyB3cm90ZToNCj4gPg0KPiA+DQo+ID4+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IFdhbmcsIFpoaWhvbmcNCj4gPj4gU2Vu dDogVHVlc2RheSwgRmVicnVhcnkgMTMsIDIwMTggNToyMSBQTQ0KPiA+PiBUbzogZGV2QGRwZGsu b3JnDQo+ID4+IENjOiBUYW4sIEppYW5mZW5nOyBCaWUsIFRpd2VpOyBtYXhpbWUuY29xdWVsaW5A cmVkaGF0LmNvbTsNCj4gPj4geWxpdUBmcmlkYXlsaW51eC5vcmc7IExpYW5nLCBDdW5taW5nOyBX YW5nLCBYaWFvIFc7IERhbHksIERhbjsgV2FuZywNCj4gPj4gWmhpaG9uZw0KPiA+PiBTdWJqZWN0 OiBbUEFUQ0ggdjIgMS82XSB2aG9zdDogZXhwb3J0IHZob3N0IGZlYXR1cmUgZGVmaW5pdGlvbnMN Cj4gPj4NCj4gPj4gVGhpcyBwYXRjaCBleHBvcnRzIHZob3N0LXVzZXIgcHJvdG9jb2wgZmVhdHVy ZXMgdG8gc3VwcG9ydCBkZXZpY2UgZHJpdmVyDQo+ID4+IGRldmVsb3BtZW50Lg0KPiA+Pg0KPiA+ PiBTaWduZWQtb2ZmLWJ5OiBaaGlob25nIFdhbmcgPHpoaWhvbmcud2FuZ0BpbnRlbC5jb20+DQo+ ID4+IC0tLQ0KPiA+PiAgIGxpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0LmggIHwgIDggKysrKysr KysNCj4gPj4gICBsaWIvbGlicnRlX3Zob3N0L3Zob3N0LmggICAgICB8ICA0ICstLS0NCj4gPj4g ICBsaWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYyB8ICA5ICsrKysrLS0tLQ0KPiA+PiAgIGxp Yi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5oIHwgMjAgKysrKysrKy0tLS0tLS0tLS0tLS0NCj4g Pj4gICA0IGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQ0K PiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC9ydGVfdmhvc3QuaCBiL2xp Yi9saWJydGVfdmhvc3QvcnRlX3Zob3N0LmgNCj4gPj4gaW5kZXggZDMzMjA2OTk3Li5iMDUxNjIz NjYgMTAwNjQ0DQo+ID4+IC0tLSBhL2xpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0LmgNCj4gPj4g KysrIGIvbGliL2xpYnJ0ZV92aG9zdC9ydGVfdmhvc3QuaA0KPiA+PiBAQCAtMjksNiArMjksMTQg QEAgZXh0ZXJuICJDIiB7DQo+ID4+ICAgI2RlZmluZSBSVEVfVkhPU1RfVVNFUl9ERVFVRVVFX1pF Uk9fQ09QWQkoMVVMTCA8PCAyKQ0KPiA+PiAgICNkZWZpbmUgUlRFX1ZIT1NUX1VTRVJfSU9NTVVf U1VQUE9SVAkoMVVMTCA8PCAzKQ0KPiA+Pg0KPiA+PiArI2RlZmluZSBSVEVfVkhPU1RfVVNFUl9Q Uk9UT0NPTF9GX01RCQkwDQo+ID4NCj4gPiBJbnN0ZWFkIG9mIGFkZGluZyBhICJSVEVfIiBwcmVm aXguIEkgcHJlZmVyIHRvIGRlZmluZSBpdCBsaWtlIHRoaXM6DQo+ID4gI2lmbmRlZiBWSE9TVF9V U0VSX1BST1RPQ09MX0ZfTVENCj4gPiAjZGVmaW5lIFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9NUSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwDQo+ID4gI2VuZGlmDQo+ ID4NCj4gPiBTaW1pbGFyIHRvIG90aGVyIG1hY3Jvcy4NCj4gDQo+IEkgYWdyZWUsIGl0IGlzIGJl dHRlciB0byBrZWVwIHNhbWUgbmFtaW5nIGFzIGluIHRoZSBzcGVjIElNSE8uDQoNCk9rLiBUaGFu a3MgSmlhbmZlbmcgYW5kIE1heGltZS4NCg0KPiANCj4gPj4gKyNkZWZpbmUgUlRFX1ZIT1NUX1VT RVJfUFJPVE9DT0xfRl9MT0dfU0hNRkQJMQ0KPiA+PiArI2RlZmluZSBSVEVfVkhPU1RfVVNFUl9Q Uk9UT0NPTF9GX1JBUlAJCTINCj4gPj4gKyNkZWZpbmUgUlRFX1ZIT1NUX1VTRVJfUFJPVE9DT0xf Rl9SRVBMWV9BQ0sJMw0KPiA+PiArI2RlZmluZSBSVEVfVkhPU1RfVVNFUl9QUk9UT0NPTF9GX05F VF9NVFUJNA0KPiA+PiArI2RlZmluZSBSVEVfVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1NMQVZFX1JF UQk1DQo+ID4+ICsjZGVmaW5lIFJURV9WSE9TVF9VU0VSX0ZfUFJPVE9DT0xfRkVBVFVSRVMJMzAN Cj4gDQo+IFBsZWFzZSBwdXQgdGhlIGFib3ZlIGRlY2xhcmF0aW9uIHNlcGFyYXRlbHksIGl0IGNv dWxkIGJlIG1pc2xlYWRpbmcsDQo+IG1ha2luZyB0byB0aGluayBpdCBpcyBhIHZob3N0LXVzZXIg cHJvdG9jb2wgZmVhdHVyZSB3aGVyZWFzIGl0IGlzIGENCj4gVmlydGlvIGZlYXR1cmUuDQoNCkdv b2QgcG9pbnQuIFdpbGwgY2hhbmdlIGl0Lg0KDQotWmhpaG9uZw0KDQo+IA0KPiA+PiArDQo+ID4+ ICAgLyoqDQo+ID4+ICAgICogSW5mb3JtYXRpb24gcmVsYXRpbmcgdG8gbWVtb3J5IHJlZ2lvbnMg aW5jbHVkaW5nIG9mZnNldHMgdG8NCj4gPj4gICAgKiBhZGRyZXNzZXMgaW4gUUVNVXMgbWVtb3J5 IGZpbGUuDQo+ID4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmggYi9saWIv bGlicnRlX3Zob3N0L3Zob3N0LmgNCj4gPj4gaW5kZXggNThhZWMyZTBkLi5hMGIwNTIwZTIgMTAw NjQ0DQo+ID4+IC0tLSBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3QuaA0KPiA+PiArKysgYi9saWIv bGlicnRlX3Zob3N0L3Zob3N0LmgNCj4gPj4gQEAgLTE3NCw4ICsxNzQsNiBAQCBzdHJ1Y3Qgdmhv c3RfbXNnIHsNCj4gPj4gICAgI2RlZmluZSBWSVJUSU9fRl9WRVJTSU9OXzEgMzINCj4gPj4gICAj ZW5kaWYNCj4gPj4NCj4gPj4gLSNkZWZpbmUgVkhPU1RfVVNFUl9GX1BST1RPQ09MX0ZFQVRVUkVT CTMwDQo+ID4+IC0NCj4gPj4gICAvKiBGZWF0dXJlcyBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsdGlu IHZob3N0LXVzZXIgbmV0IGRyaXZlci4gKi8NCj4gPj4gICAjZGVmaW5lIFZJUlRJT19ORVRfU1VQ UE9SVEVEX0ZFQVRVUkVTICgoMVVMTCA8PA0KPiA+PiBWSVJUSU9fTkVUX0ZfTVJHX1JYQlVGKSB8 IFwNCj4gPj4gICAJCQkJKDFVTEwgPDwgVklSVElPX0ZfQU5ZX0xBWU9VVCkgfCBcDQo+ID4+IEBA IC0xODUsNyArMTgzLDcgQEAgc3RydWN0IHZob3N0X21zZyB7DQo+ID4+ICAgCQkJCSgxVUxMIDw8 IFZJUlRJT19ORVRfRl9NUSkgICAgICB8IFwNCj4gPj4gICAJCQkJKDFVTEwgPDwgVklSVElPX0Zf VkVSU0lPTl8xKSAgIHwgXA0KPiA+PiAgIAkJCQkoMVVMTCA8PCBWSE9TVF9GX0xPR19BTEwpICAg ICAgfCBcDQo+ID4+IC0JCQkJKDFVTEwgPDwNCj4gPj4gVkhPU1RfVVNFUl9GX1BST1RPQ09MX0ZF QVRVUkVTKSB8IFwNCj4gPj4gKwkJCQkoMVVMTCA8PA0KPiA+PiBSVEVfVkhPU1RfVVNFUl9GX1BS T1RPQ09MX0ZFQVRVUkVTKSB8IFwNCj4gPj4gICAJCQkJKDFVTEwgPDwgVklSVElPX05FVF9GX0dT TykgfCBcDQo+ID4+ICAgCQkJCSgxVUxMIDw8IFZJUlRJT19ORVRfRl9IT1NUX1RTTzQpIHwgXA0K PiA+PiAgIAkJCQkoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfSE9TVF9UU082KSB8IFwNCj4gPj4gZGlm ZiAtLWdpdCBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jIGIvbGliL2xpYnJ0ZV92aG9z dC92aG9zdF91c2VyLmMNCj4gPj4gaW5kZXggNWM1MzYxMDY2Li5jOTNlNDhlNGQgMTAwNjQ0DQo+ ID4+IC0tLSBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4+ICsrKyBiL2xpYi9s aWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4+IEBAIC01MjcsNyArNTI3LDcgQEAgdmhvc3Rf dXNlcl9zZXRfdnJpbmdfYWRkcihzdHJ1Y3QgdmlydGlvX25ldA0KPiAqKnBkZXYsDQo+ID4+IFZo b3N0VXNlck1zZyAqbXNnKQ0KPiA+PiAgIAl2cmluZ19pbnZhbGlkYXRlKGRldiwgdnEpOw0KPiA+ Pg0KPiA+PiAgIAlpZiAodnEtPmVuYWJsZWQgJiYgKGRldi0+ZmVhdHVyZXMgJg0KPiA+PiAtCQkJ CSgxVUxMIDw8DQo+ID4+IFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUykpKSB7DQo+ID4+ ICsJCQkJKDFVTEwgPDwNCj4gPj4gUlRFX1ZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUykp KSB7DQo+ID4+ICAgCQlkZXYgPSB0cmFuc2xhdGVfcmluZ19hZGRyZXNzZXMoZGV2LCBtc2ctDQo+ ID4+PiBwYXlsb2FkLmFkZHIuaW5kZXgpOw0KPiA+PiAgIAkJaWYgKCFkZXYpDQo+ID4+ICAgCQkJ cmV0dXJuIC0xOw0KPiA+PiBAQCAtODk3LDExICs4OTcsMTEgQEAgdmhvc3RfdXNlcl9zZXRfdnJp bmdfa2ljayhzdHJ1Y3QgdmlydGlvX25ldA0KPiA+PiAqKnBkZXYsIHN0cnVjdCBWaG9zdFVzZXJN c2cgKnBtc2cpDQo+ID4+ICAgCXZxID0gZGV2LT52aXJ0cXVldWVbZmlsZS5pbmRleF07DQo+ID4+ DQo+ID4+ICAgCS8qDQo+ID4+IC0JICogV2hlbiBWSE9TVF9VU0VSX0ZfUFJPVE9DT0xfRkVBVFVS RVMgaXMgbm90IG5lZ290aWF0ZWQsDQo+ID4+ICsJICogV2hlbiBSVEVfVkhPU1RfVVNFUl9GX1BS T1RPQ09MX0ZFQVRVUkVTIGlzIG5vdA0KPiA+PiBuZWdvdGlhdGVkLA0KPiA+PiAgIAkgKiB0aGUg cmluZyBzdGFydHMgYWxyZWFkeSBlbmFibGVkLiBPdGhlcndpc2UsIGl0IGlzIGVuYWJsZWQgdmlh DQo+ID4+ICAgCSAqIHRoZSBTRVRfVlJJTkdfRU5BQkxFIG1lc3NhZ2UuDQo+ID4+ICAgCSAqLw0K PiA+PiAtCWlmICghKGRldi0+ZmVhdHVyZXMgJiAoMVVMTCA8PA0KPiA+PiBWSE9TVF9VU0VSX0Zf UFJPVE9DT0xfRkVBVFVSRVMpKSkNCj4gPj4gKwlpZiAoIShkZXYtPmZlYXR1cmVzICYgKDFVTEwg PDwNCj4gPj4gUlRFX1ZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUykpKQ0KPiA+PiAgIAkJ dnEtPmVuYWJsZWQgPSAxOw0KPiA+Pg0KPiA+PiAgIAlpZiAodnEtPmtpY2tmZCA+PSAwKQ0KPiA+ PiBAQCAtMTAxMiw3ICsxMDEyLDggQEAgdmhvc3RfdXNlcl9nZXRfcHJvdG9jb2xfZmVhdHVyZXMo c3RydWN0DQo+ID4+IHZpcnRpb19uZXQgKmRldiwNCj4gPj4gICAJICogUWVtdSB2ZXJzaW9ucyAo ZnJvbSB2Mi43LjAgdG8gdjIuOS4wKS4NCj4gPj4gICAJICovDQo+ID4+ICAgCWlmICghKGZlYXR1 cmVzICYgKDFVTEwgPDwgVklSVElPX0ZfSU9NTVVfUExBVEZPUk0pKSkNCj4gPj4gLQkJcHJvdG9j b2xfZmVhdHVyZXMgJj0gfigxVUxMIDw8DQo+ID4+IFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9SRVBM WV9BQ0spOw0KPiA+PiArCQlwcm90b2NvbF9mZWF0dXJlcyAmPQ0KPiA+PiArCQkJfigxVUxMIDw8 DQo+ID4+IFJURV9WSE9TVF9VU0VSX1BST1RPQ09MX0ZfUkVQTFlfQUNLKTsNCj4gPj4NCj4gPj4g ICAJbXNnLT5wYXlsb2FkLnU2NCA9IHByb3RvY29sX2ZlYXR1cmVzOw0KPiA+PiAgIAltc2ctPnNp emUgPSBzaXplb2YobXNnLT5wYXlsb2FkLnU2NCk7DQo+ID4+IGRpZmYgLS1naXQgYS9saWIvbGli cnRlX3Zob3N0L3Zob3N0X3VzZXIuaCBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5oDQo+ ID4+IGluZGV4IDBmYWZiZTZlMC4uMDY2ZTc3MmRkIDEwMDY0NA0KPiA+PiAtLS0gYS9saWIvbGli cnRlX3Zob3N0L3Zob3N0X3VzZXIuaA0KPiA+PiArKysgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0 X3VzZXIuaA0KPiA+PiBAQCAtMTQsMTkgKzE0LDEzIEBADQo+ID4+DQo+ID4+ICAgI2RlZmluZSBW SE9TVF9NRU1PUllfTUFYX05SRUdJT05TIDgNCj4gPj4NCj4gPj4gLSNkZWZpbmUgVkhPU1RfVVNF Ul9QUk9UT0NPTF9GX01RCTANCj4gPj4gLSNkZWZpbmUgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX0xP R19TSE1GRAkxDQo+ID4+IC0jZGVmaW5lIFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9SQVJQCTINCj4g Pj4gLSNkZWZpbmUgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1JFUExZX0FDSwkzDQo+ID4+IC0jZGVm aW5lIFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9ORVRfTVRVIDQNCj4gPj4gLSNkZWZpbmUgVkhPU1Rf VVNFUl9QUk9UT0NPTF9GX1NMQVZFX1JFUSA1DQo+ID4+IC0NCj4gPj4gLSNkZWZpbmUgVkhPU1Rf VVNFUl9QUk9UT0NPTF9GRUFUVVJFUwkoKDFVTEwgPDwNCj4gPj4gVkhPU1RfVVNFUl9QUk9UT0NP TF9GX01RKSB8IFwNCj4gPj4gLQkJCQkJICgxVUxMIDw8DQo+ID4+IFZIT1NUX1VTRVJfUFJPVE9D T0xfRl9MT0dfU0hNRkQpIHxcDQo+ID4+IC0JCQkJCSAoMVVMTCA8PA0KPiA+PiBWSE9TVF9VU0VS X1BST1RPQ09MX0ZfUkFSUCkgfCBcDQo+ID4+IC0JCQkJCSAoMVVMTCA8PA0KPiA+PiBWSE9TVF9V U0VSX1BST1RPQ09MX0ZfUkVQTFlfQUNLKSB8IFwNCj4gPj4gLQkJCQkJICgxVUxMIDw8DQo+ID4+ IFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9ORVRfTVRVKSB8IFwNCj4gPj4gLQkJCQkJICgxVUxMIDw8 DQo+ID4+IFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9TTEFWRV9SRVEpKQ0KPiA+PiArI2RlZmluZSBW SE9TVF9VU0VSX1BST1RPQ09MX0ZFQVRVUkVTIFwNCj4gPj4gKwkJCSgoMVVMTCA8PCBSVEVfVkhP U1RfVVNFUl9QUk9UT0NPTF9GX01RKSB8IFwNCj4gPj4gKwkJCSAoMVVMTCA8PA0KPiA+PiBSVEVf VkhPU1RfVVNFUl9QUk9UT0NPTF9GX0xPR19TSE1GRCkgfFwNCj4gPj4gKwkJCSAoMVVMTCA8PCBS VEVfVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1JBUlApIHwgXA0KPiA+PiArCQkJICgxVUxMIDw8DQo+ ID4+IFJURV9WSE9TVF9VU0VSX1BST1RPQ09MX0ZfUkVQTFlfQUNLKSB8IFwNCj4gPj4gKwkJCSAo MVVMTCA8PA0KPiA+PiBSVEVfVkhPU1RfVVNFUl9QUk9UT0NPTF9GX05FVF9NVFUpIHwgXA0KPiA+ PiArCQkJICgxVUxMIDw8DQo+ID4+IFJURV9WSE9TVF9VU0VSX1BST1RPQ09MX0ZfU0xBVkVfUkVR KSkNCj4gPj4NCj4gPj4gICB0eXBlZGVmIGVudW0gVmhvc3RVc2VyUmVxdWVzdCB7DQo+ID4+ICAg CVZIT1NUX1VTRVJfTk9ORSA9IDAsDQo+ID4+IC0tDQo+ID4+IDIuMTMuNg0KPiA+DQo=