From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id A83282C39 for ; Tue, 26 Feb 2019 09:13:13 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Feb 2019 00:13:12 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,414,1544515200"; d="scan'208";a="117834116" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga007.jf.intel.com with ESMTP; 26 Feb 2019 00:13:12 -0800 Received: from fmsmsx157.amr.corp.intel.com (10.18.116.73) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 26 Feb 2019 00:13:11 -0800 Received: from shsmsx106.ccr.corp.intel.com (10.239.4.159) by FMSMSX157.amr.corp.intel.com (10.18.116.73) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 26 Feb 2019 00:13:10 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.194]) by SHSMSX106.ccr.corp.intel.com ([169.254.10.174]) with mapi id 14.03.0415.000; Tue, 26 Feb 2019 16:13:09 +0800 From: "Liu, Changpeng" To: Ilya Maximets , "dev@dpdk.org" CC: "Stojaczyk, Dariusz" , "maxime.coquelin@redhat.com" , "Bie, Tiwei" , "Wang, Zhihong" , Jason Wang Thread-Topic: vhost: add virtio configuration space access socket messages Thread-Index: AQHUzQzfI1lCmYncskSQXvPmdP6JRKXxptfQ//+FpACAAIyKMA== Date: Tue, 26 Feb 2019 08:13:08 +0000 Message-ID: References: <1551081095-14286-1-git-send-email-changpeng.liu@intel.com> <2c1b8abc-47a9-0d0b-5056-0092fc58e310@samsung.com> <4ba6108c-78b0-c7e6-f810-3faa13c7765e@samsung.com> In-Reply-To: <4ba6108c-78b0-c7e6-f810-3faa13c7765e@samsung.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMTc2YTAzN2MtNGIyZi00OWZlLWFkY2UtMzU3YTk0M2U2M2JlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiWVd1SEdjMW1CWjJaRk5pN3hIS0Rsc005SXN2QTBcLzRkVHNRTVhTN0RSWHlmMVhHTkgrdWtHK3FLQ1ArNlBQVHoifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action 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] vhost: add virtio configuration space access socket messages 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: Tue, 26 Feb 2019 08:13:14 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSWx5YSBNYXhpbWV0cyBb bWFpbHRvOmkubWF4aW1ldHNAc2Ftc3VuZy5jb21dDQo+IFNlbnQ6IFR1ZXNkYXksIEZlYnJ1YXJ5 IDI2LCAyMDE5IDM6MzkgUE0NCj4gVG86IExpdSwgQ2hhbmdwZW5nIDxjaGFuZ3BlbmcubGl1QGlu dGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogU3RvamFjenlrLCBEYXJpdXN6IDxkYXJpdXN6 LnN0b2phY3p5a0BpbnRlbC5jb20+Ow0KPiBtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbTsgQmll LCBUaXdlaSA8dGl3ZWkuYmllQGludGVsLmNvbT47IFdhbmcsDQo+IFpoaWhvbmcgPHpoaWhvbmcu d2FuZ0BpbnRlbC5jb20+OyBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPg0KPiBTdWJq ZWN0OiBSZTogdmhvc3Q6IGFkZCB2aXJ0aW8gY29uZmlndXJhdGlvbiBzcGFjZSBhY2Nlc3Mgc29j a2V0IG1lc3NhZ2VzDQo+IA0KPiBPbiAyNi4wMi4yMDE5IDEwOjAxLCBMaXUsIENoYW5ncGVuZyB3 cm90ZToNCj4gPg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZy b206IElseWEgTWF4aW1ldHMgW21haWx0bzppLm1heGltZXRzQHNhbXN1bmcuY29tXQ0KPiA+PiBT ZW50OiBNb25kYXksIEZlYnJ1YXJ5IDI1LCAyMDE5IDk6MjAgUE0NCj4gPj4gVG86IExpdSwgQ2hh bmdwZW5nIDxjaGFuZ3BlbmcubGl1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+PiBDYzog U3RvamFjenlrLCBEYXJpdXN6IDxkYXJpdXN6LnN0b2phY3p5a0BpbnRlbC5jb20+Ow0KPiA+PiBt YXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbTsgQmllLCBUaXdlaSA8dGl3ZWkuYmllQGludGVsLmNv bT47IFdhbmcsDQo+ID4+IFpoaWhvbmcgPHpoaWhvbmcud2FuZ0BpbnRlbC5jb20+OyBKYXNvbiBX YW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPg0KPiA+PiBTdWJqZWN0OiBSZTogdmhvc3Q6IGFkZCB2 aXJ0aW8gY29uZmlndXJhdGlvbiBzcGFjZSBhY2Nlc3Mgc29ja2V0IG1lc3NhZ2VzDQo+ID4+DQo+ ID4+IE9uIDI1LjAyLjIwMTkgMTA6NTEsIENoYW5ncGVuZyBMaXUgd3JvdGU6DQo+ID4+PiBUaGlz IHBhdGNoIGFkZHMgbmV3IHZob3N0IHVzZXIgbWVzc2FnZXMgR0VUX0NPTkZJRyBhbmQgU0VUX0NP TkZJRw0KPiA+Pj4gdXNlZCB0byBnZXQvc2V0IHZpcnRpbyBkZXZpY2UncyBQQ0kgY29uZmlndXJh dGlvbiBzcGFjZS4NCj4gPj4NCj4gPj4gQmVzaWRlIHRoZSBmYWN0IHRoYXQgc29tZSBhZGRpdGlv bmFsIGRlc2NyaXB0aW9uIGFuZCByZWFzb25pbmcgcmVxdWlyZWQsDQo+ID4+IEkgZG8gbm90IHNl ZSB0aGUgdXNhZ2Ugb2YgdGhpcyBmZWF0dXJlLiBZb3UncmUgZGVmaW5pbmcgdGhlIGZsYWcNCj4g Pj4gVkhPU1RfVVNFUl9QUk9UT0NPTF9GX0NPTkZJRywgYnV0IGl0J3MgbmV2ZXIgdXNlZC4gU28s IG5vbmUgb2YgZHBkaw0KPiB2aG9zdA0KPiA+PiBiYWNrZW5kcyAodmRwYSwgdmhvc3QtdXNlcikg d2lsbCB1c2UgdGhpcyBmZWF0dXJlLg0KPiA+PiBZb3UsIHByb2JhYmx5LCBtaXNzZWQgYWRkaW5n IGl0IHRvIFZIT1NUX1VTRVJfUFJPVE9DT0xfRkVBVFVSRVMgb3INCj4gPj4gVkRQQV9TVVBQT1JU RURfUFJPVE9DT0xfRkVBVFVSRVMuDQo+ID4+DQo+ID4+IEZyb20gdGhlIG90aGVyIHNpZGUsIGN1 cnJlbnQgaW1wbGVtZW50YXRpb24gZm9yY2VzIGFwcGxpY2F0aW9uIHRvIHByb3Blcmx5DQo+ID4+ IGltcGxlbWVudCB0aGUgZ2V0L3NldF9jb25maWcgY2FsbGJhY2tzLiBPdGhlcndpc2UsIHJlY2Vp dmluZyBvZiB0aGUgbWVzc2FnZXMNCj4gPj4gd2lsbCByZXN1bHQgaW4gUlRFX1ZIT1NUX01TR19S RVNVTFRfRVJSIGFuZCBzdWJzZXF1ZW50IHZob3N0DQo+ID4+IGRpc2Nvbm5lY3Rpb24uDQo+ID4+ IFRoaXMgbG9va3Mgc3RyYW5nZSwgYmVjYXVzZSBzdXBwb3J0ZWQgcHJvdG9jb2wgZmVhdHVyZXMg bm9ybWFsbHkgZW5hYmxlZCBieQ0KPiA+PiBkZWZhdWx0LiBBbSBJIG1pc3VuZGVyc3Rvb2Qgc29t ZXRoaW5nID8NCj4gPiBRRU1VIHdpbGwgbm90IHNlbmQgdGhlIG1lc3NhZ2VzIGlmIFZIT1NUX1VT RVJfUFJPVE9DT0xfRl9DT05GSUcNCj4gd2Fzbid0IGVuYWJsZWQuDQo+IA0KPiBTbywgeW91J3Jl IGdvaW5nIHRvIGVuYWJsZSBpdCBvbmx5IGJ5IGV4cGxpY2l0IGNhbGwgdG8NCj4gJ3J0ZV92aG9z dF9kcml2ZXJfc2V0X2ZlYXR1cmVzJyA/DQo+IA0KPiBJbiB0aGlzIGNhc2UgSSdtIGFzc3VtaW5n IHRoYXQgeW91J3JlIGltcGxlbWVudGluZyB5b3VyIG93biB2aG9zdCBiYWNrZW5kLg0KPiBCdXQg d2h5IHlvdSdyZSBub3QgdXNpbmcgJ2Rldi0+ZXh0ZXJuX29wcycgYW5kIGNvcnJlc3BvbmRpbmcg J3ByZV9tc2dfaGFuZGxlJw0KPiBvciAncG9zdF9tc2dfaGFuZGxlJyB0byBoYW5kbGUgeW91ciBH RVQvU0VUX0NPTkZJRyBtZXNzYWdlcyBsaWtlIGl0IGRvZXMNCj4gJ3Zob3N0X2NyeXB0bycgYmFj a2VuZCA/DQpUaGUgcGF0Y2ggd2FzIGRldmVsb3BlZCBvbmUgeWVhciBhZ28sIHdoaWxlIERQREsg ZGlkbid0IGhhdmUgZXh0ZXJuYWwgb3BzLg0KVGhlIGdldF9jb25maWcvc2V0X2NvbmZpZyB3YXMg ZGVmaW5lZCBmb3IgYWxsIHRoZSB2aXJ0aW8gZGV2aWNlcywgc28gSSB0aGluayBpdCBtYWtlcw0K bW9yZSBzZW5zZSBhZGRpbmcgaGVyZS4NCj4gDQo+IA0KPiA+Pg0KPiA+PiBPbmUgbW9yZSB0aGlu Zy4gQWNjb3JkaW5nIHRvIHNwZWM6ICJ2aG9zdC11c2VyIHNsYXZlIHVzZXMgemVybyBsZW5ndGgg b2YNCj4gPj4gcGF5bG9hZCB0byBpbmRpY2F0ZSBhbiBlcnJvciB0byB2aG9zdC11c2VyIG1hc3Rl ciIuIEhvd2V2ZXIsIGN1cnJlbnQgdmVyc2lvbg0KPiA+PiBvZiAndmhvc3RfdXNlcl9nZXRfY29u ZmlnJyByZXBsaWVzIHdpdGggc2l6ZSBlcXVhbCB0byAnc2l6ZW9mKHVpbnQ2NF90KScuDQo+ID4g WWVhaCwgY2FuIGJlIGNoYW5nZWQgdG8gMCBoZXJlLCBRRU1VIGNhbiBwcm9jZXNzIGl0Lg0KPiA+ Pg0KPiA+PiBCZXN0IHJlZ2FyZHMsIElseWEgTWF4aW1ldHMuDQo+ID4+DQo+ID4+PiBTaWduZWQt b2ZmLWJ5OiBDaGFuZ3BlbmcgTGl1IDxjaGFuZ3BlbmcubGl1QGludGVsLmNvbT4NCj4gPj4+IFJl dmlld2VkLWJ5OiBEYXJlayBTdG9qYWN6eWsgPGRhcml1c3ouc3RvamFjenlrQGludGVsLmNvbT4N Cj4gPj4+IC0tLQ0KPiA+Pj4gIGxpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0LmggIHwgIDggKysr KysrKysNCj4gPj4+ICBsaWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYyB8IDQ0DQo+ID4+ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPj4+ICBsaWIvbGli cnRlX3Zob3N0L3Zob3N0X3VzZXIuaCB8IDE2ICsrKysrKysrKysrKysrKysNCj4gPj4+ICAzIGZp bGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKykNCj4gPj4+DQo+ID4+PiBkaWZmIC0tZ2l0IGEv bGliL2xpYnJ0ZV92aG9zdC9ydGVfdmhvc3QuaCBiL2xpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0 LmgNCj4gPj4+IGluZGV4IDI3NTM2NzAuLmFiNzEwY2UgMTAwNjQ0DQo+ID4+PiAtLS0gYS9saWIv bGlicnRlX3Zob3N0L3J0ZV92aG9zdC5oDQo+ID4+PiArKysgYi9saWIvbGlicnRlX3Zob3N0L3J0 ZV92aG9zdC5oDQo+ID4+PiBAQCAtNjMsNiArNjMsMTAgQEANCj4gPj4+ICAjZGVmaW5lIFZIT1NU X1VTRVJfUFJPVE9DT0xfRl9QQUdFRkFVTFQgOA0KPiA+Pj4gICNlbmRpZg0KPiA+Pj4NCj4gPj4+ ICsjaWZuZGVmIFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9DT05GSUcNCj4gPj4+ICsjZGVmaW5lIFZI T1NUX1VTRVJfUFJPVE9DT0xfRl9DT05GSUcgOQ0KPiA+Pj4gKyNlbmRpZg0KPiA+Pj4gKw0KPiA+ Pj4gICNpZm5kZWYgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1NMQVZFX1NFTkRfRkQNCj4gPj4+ICAj ZGVmaW5lIFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9TTEFWRV9TRU5EX0ZEIDEwDQo+ID4+PiAgI2Vu ZGlmDQo+ID4+PiBAQCAtMTczLDYgKzE3NywxMCBAQCBzdHJ1Y3Qgdmhvc3RfZGV2aWNlX29wcyB7 DQo+ID4+Pg0KPiA+Pj4gIAlpbnQgKCp2cmluZ19zdGF0ZV9jaGFuZ2VkKShpbnQgdmlkLCB1aW50 MTZfdCBxdWV1ZV9pZCwgaW50IGVuYWJsZSk7DQo+ID4+IAkvKio8IHRyaWdnZXJlZCB3aGVuIGEg dnJpbmcgaXMgZW5hYmxlZCBvciBkaXNhYmxlZCAqLw0KPiA+Pj4NCj4gPj4+ICsJaW50ICgqZ2V0 X2NvbmZpZykoaW50IHZpZCwgdWludDhfdCAqY29uZmlnLCB1aW50MzJfdCBjb25maWdfbGVuPj4+ ICsNCj4gCWludCAoKnNldF9jb25maWcpKGludCB2aWQsIHVpbnQ4X3QgKmNvbmZpZywgdWludDMy X3Qgb2Zmc2V0LA0KPiA+Pj4gKwkJCSAgdWludDMyX3QgbGVuLCB1aW50MzJfdCBmbGFncyk7DQo+ ID4+PiArDQo+ID4+PiAgCS8qKg0KPiA+Pj4gIAkgKiBGZWF0dXJlcyBjb3VsZCBiZSBjaGFuZ2Vk IGFmdGVyIHRoZSBmZWF0dXJlIG5lZ290aWF0aW9uLg0KPiA+Pj4gIAkgKiBGb3IgZXhhbXBsZSwg VkhPU1RfRl9MT0dfQUxMIHdpbGwgYmUgc2V0L2NsZWFyZWQgYXQgdGhlDQo+ID4+PiBkaWZmIC0t Z2l0IGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMgYi9saWIvbGlicnRlX3Zob3N0L3Zo b3N0X3VzZXIuYw0KPiA+Pj4gaW5kZXggYjA4NmFkOS4uOGU0MjczNCAxMDA2NDQNCj4gPj4+IC0t LSBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4+PiArKysgYi9saWIvbGlicnRl X3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+Pj4gQEAgLTczLDYgKzczLDggQEANCj4gPj4+ICAJW1ZI T1NUX1VTRVJfTkVUX1NFVF9NVFVdICA9ICJWSE9TVF9VU0VSX05FVF9TRVRfTVRVIiwNCj4gPj4+ ICAJW1ZIT1NUX1VTRVJfU0VUX1NMQVZFX1JFUV9GRF0gID0NCj4gPj4gIlZIT1NUX1VTRVJfU0VU X1NMQVZFX1JFUV9GRCIsDQo+ID4+PiAgCVtWSE9TVF9VU0VSX0lPVExCX01TR10gID0gIlZIT1NU X1VTRVJfSU9UTEJfTVNHIiwNCj4gPj4+ICsJW1ZIT1NUX1VTRVJfR0VUX0NPTkZJR10gPSAiVkhP U1RfVVNFUl9HRVRfQ09ORklHIiwNCj4gPj4+ICsJW1ZIT1NUX1VTRVJfU0VUX0NPTkZJR10gPSAi VkhPU1RfVVNFUl9TRVRfQ09ORklHIiwNCj4gPj4+ICAJW1ZIT1NUX1VTRVJfQ1JZUFRPX0NSRUFU RV9TRVNTXSA9DQo+ID4+ICJWSE9TVF9VU0VSX0NSWVBUT19DUkVBVEVfU0VTUyIsDQo+ID4+PiAg CVtWSE9TVF9VU0VSX0NSWVBUT19DTE9TRV9TRVNTXSA9DQo+ID4+ICJWSE9TVF9VU0VSX0NSWVBU T19DTE9TRV9TRVNTIiwNCj4gPj4+ICAJW1ZIT1NUX1VTRVJfUE9TVENPUFlfQURWSVNFXSAgPSAi VkhPU1RfVVNFUl9QT1NUQ09QWV9BRFZJU0UiLA0KPiA+Pj4gQEAgLTM1OSw2ICszNjEsNDYgQEAN Cj4gPj4+ICAJcmV0dXJuIFJURV9WSE9TVF9NU0dfUkVTVUxUX09LOw0KPiA+Pj4gIH0NCj4gPj4+ DQo+ID4+PiArc3RhdGljIGludA0KPiA+Pj4gK3Zob3N0X3VzZXJfZ2V0X2NvbmZpZyhzdHJ1Y3Qg dmlydGlvX25ldCAqKnBkZXYsIHN0cnVjdCBWaG9zdFVzZXJNc2cgKm1zZywNCj4gPj4+ICsJCSAg ICAgIGludCBtYWluX2ZkIF9fcnRlX3VudXNlZCkNCj4gPj4+ICt7DQo+ID4+PiArCXN0cnVjdCB2 aXJ0aW9fbmV0ICpkZXYgPSAqcGRldjsNCj4gPj4+ICsNCj4gPj4+ICsJaWYgKCFkZXYtPm5vdGlm eV9vcHMtPmdldF9jb25maWcpIHsNCj4gPj4+ICsJCW1zZy0+c2l6ZSA9IHNpemVvZih1aW50NjRf dCk7DQo+ID4+PiArCQlyZXR1cm4gUlRFX1ZIT1NUX01TR19SRVNVTFRfUkVQTFk7DQo+ID4+PiAr CX0NCj4gPj4+ICsNCj4gPj4+ICsJaWYgKGRldi0+bm90aWZ5X29wcy0+Z2V0X2NvbmZpZyhkZXYt PnZpZCwNCj4gPj4+ICsJCQkJCW1zZy0+cGF5bG9hZC5jb25maWcucmVnaW9uLA0KPiA+Pj4gKwkJ CQkJbXNnLT5wYXlsb2FkLmNvbmZpZy5zaXplKSAhPSAwKSB7DQo+ID4+PiArCQltc2ctPnNpemUg PSBzaXplb2YodWludDY0X3QpOw0KPiA+Pj4gKwl9DQo+ID4+PiArDQo+ID4+PiArCXJldHVybiBS VEVfVkhPU1RfTVNHX1JFU1VMVF9SRVBMWTsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiArc3Rh dGljIGludA0KPiA+Pj4gK3Zob3N0X3VzZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgdmlydGlvX25ldCAq KnBkZXYsIHN0cnVjdCBWaG9zdFVzZXJNc2cgKm1zZywNCj4gPj4+ICsJCSAgICAgIGludCBtYWlu X2ZkIF9fcnRlX3VudXNlZCkNCj4gPj4+ICt7DQo+ID4+PiArCXN0cnVjdCB2aXJ0aW9fbmV0ICpk ZXYgPSAqcGRldjsNCj4gPj4+ICsNCj4gPj4+ICsJaWYgKCFkZXYtPm5vdGlmeV9vcHMtPnNldF9j b25maWcpDQo+ID4+PiArCQlyZXR1cm4gUlRFX1ZIT1NUX01TR19SRVNVTFRfRVJSOw0KPiA+Pj4g Kw0KPiA+Pj4gKwlpZiAoZGV2LT5ub3RpZnlfb3BzLT5zZXRfY29uZmlnKGRldi0+dmlkLA0KPiA+ Pj4gKwkJCQkJbXNnLT5wYXlsb2FkLmNvbmZpZy5yZWdpb24sDQo+ID4+PiArCQkJCQltc2ctPnBh eWxvYWQuY29uZmlnLm9mZnNldCwNCj4gPj4+ICsJCQkJCW1zZy0+cGF5bG9hZC5jb25maWcuc2l6 ZSwNCj4gPj4+ICsJCQkJCW1zZy0+cGF5bG9hZC5jb25maWcuZmxhZ3MpICE9IDApIHsNCj4gPj4+ ICsJCXJldHVybiBSVEVfVkhPU1RfTVNHX1JFU1VMVF9FUlI7DQo+ID4+PiArCX0NCj4gPj4+ICsN Cj4gPj4+ICsJcmV0dXJuIFJURV9WSE9TVF9NU0dfUkVTVUxUX09LOw0KPiA+Pj4gK30NCj4gPj4+ ICsNCj4gPj4+ICAvKg0KPiA+Pj4gICAqIFJlYWxsb2NhdGUgdmlydGlvX2RldiBhbmQgdmhvc3Rf dmlydHF1ZXVlIGRhdGEgc3RydWN0dXJlIHRvIG1ha2UgdGhlbQ0KPiBvbg0KPiA+PiB0aGUNCj4g Pj4+ICAgKiBzYW1lIG51bWEgbm9kZSBhcyB0aGUgbWVtb3J5IG9mIHZyaW5nIGRlc2NyaXB0b3Iu DQo+ID4+PiBAQCAtMTcyNSw2ICsxNzY3LDggQEAgdHlwZWRlZiBpbnQgKCp2aG9zdF9tZXNzYWdl X2hhbmRsZXJfdCkoc3RydWN0DQo+ID4+IHZpcnRpb19uZXQgKipwZGV2LA0KPiA+Pj4gIAlbVkhP U1RfVVNFUl9ORVRfU0VUX01UVV0gPSB2aG9zdF91c2VyX25ldF9zZXRfbXR1LA0KPiA+Pj4gIAlb VkhPU1RfVVNFUl9TRVRfU0xBVkVfUkVRX0ZEXSA9IHZob3N0X3VzZXJfc2V0X3JlcV9mZCwNCj4g Pj4+ICAJW1ZIT1NUX1VTRVJfSU9UTEJfTVNHXSA9IHZob3N0X3VzZXJfaW90bGJfbXNnLA0KPiA+ Pj4gKwlbVkhPU1RfVVNFUl9HRVRfQ09ORklHXSA9IHZob3N0X3VzZXJfZ2V0X2NvbmZpZywNCj4g Pj4+ICsJW1ZIT1NUX1VTRVJfU0VUX0NPTkZJR10gPSB2aG9zdF91c2VyX3NldF9jb25maWcsDQo+ ID4+PiAgCVtWSE9TVF9VU0VSX1BPU1RDT1BZX0FEVklTRV0gPSB2aG9zdF91c2VyX3NldF9wb3N0 Y29weV9hZHZpc2UsDQo+ID4+PiAgCVtWSE9TVF9VU0VSX1BPU1RDT1BZX0xJU1RFTl0gPSB2aG9z dF91c2VyX3NldF9wb3N0Y29weV9saXN0ZW4sDQo+ID4+PiAgCVtWSE9TVF9VU0VSX1BPU1RDT1BZ X0VORF0gPSB2aG9zdF91c2VyX3Bvc3Rjb3B5X2VuZCwNCj4gPj4+IGRpZmYgLS1naXQgYS9saWIv bGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuaCBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5o DQo+ID4+PiBpbmRleCAyYTY1MGZlLi4wNTdjZGVjIDEwMDY0NA0KPiA+Pj4gLS0tIGEvbGliL2xp YnJ0ZV92aG9zdC92aG9zdF91c2VyLmgNCj4gPj4+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhv c3RfdXNlci5oDQo+ID4+PiBAQCAtMTIsNiArMTIsMTEgQEANCj4gPj4+DQo+ID4+PiAgLyogcmVm ZXIgdG8gaHcvdmlydGlvL3Zob3N0LXVzZXIuYyAqLw0KPiA+Pj4NCj4gPj4+ICsvKg0KPiA+Pj4g KyAqIE1heGltdW0gc2l6ZSBvZiB2aXJ0aW8gZGV2aWNlIGNvbmZpZyBzcGFjZQ0KPiA+Pj4gKyAq Lw0KPiA+Pj4gKyNkZWZpbmUgVkhPU1RfVVNFUl9NQVhfQ09ORklHX1NJWkUgMjU2DQo+ID4+PiAr DQo+ID4+PiAgI2RlZmluZSBWSE9TVF9NRU1PUllfTUFYX05SRUdJT05TIDgNCj4gPj4+DQo+ID4+ PiAgI2RlZmluZSBWSE9TVF9VU0VSX1BST1RPQ09MX0ZFQVRVUkVTCSgoMVVMTCA8PA0KPiA+PiBW SE9TVF9VU0VSX1BST1RPQ09MX0ZfTVEpIHwgXA0KPiA+Pj4gQEAgLTQ5LDYgKzU0LDggQEANCj4g Pj4+ICAJVkhPU1RfVVNFUl9ORVRfU0VUX01UVSA9IDIwLA0KPiA+Pj4gIAlWSE9TVF9VU0VSX1NF VF9TTEFWRV9SRVFfRkQgPSAyMSwNCj4gPj4+ICAJVkhPU1RfVVNFUl9JT1RMQl9NU0cgPSAyMiwN Cj4gPj4+ICsJVkhPU1RfVVNFUl9HRVRfQ09ORklHID0gMjQsDQo+ID4+PiArCVZIT1NUX1VTRVJf U0VUX0NPTkZJRyA9IDI1LA0KPiA+Pj4gIAlWSE9TVF9VU0VSX0NSWVBUT19DUkVBVEVfU0VTUyA9 IDI2LA0KPiA+Pj4gIAlWSE9TVF9VU0VSX0NSWVBUT19DTE9TRV9TRVNTID0gMjcsDQo+ID4+PiAg CVZIT1NUX1VTRVJfUE9TVENPUFlfQURWSVNFID0gMjgsDQo+ID4+PiBAQCAtNjAsNiArNjcsNyBA QA0KPiA+Pj4gIHR5cGVkZWYgZW51bSBWaG9zdFVzZXJTbGF2ZVJlcXVlc3Qgew0KPiA+Pj4gIAlW SE9TVF9VU0VSX1NMQVZFX05PTkUgPSAwLA0KPiA+Pj4gIAlWSE9TVF9VU0VSX1NMQVZFX0lPVExC X01TRyA9IDEsDQo+ID4+PiArCVZIT1NUX1VTRVJfU0xBVkVfQ09ORklHX0NIQU5HRV9NU0cgPSAy LA0KPiA+Pj4gIAlWSE9TVF9VU0VSX1NMQVZFX1ZSSU5HX0hPU1RfTk9USUZJRVJfTVNHID0gMywN Cj4gPj4+ICAJVkhPU1RfVVNFUl9TTEFWRV9NQVgNCj4gPj4+ICB9IFZob3N0VXNlclNsYXZlUmVx dWVzdDsNCj4gPj4+IEBAIC0xMTIsNiArMTIwLDEzIEBADQo+ID4+PiAgCXVpbnQ2NF90IG9mZnNl dDsNCj4gPj4+ICB9IFZob3N0VXNlclZyaW5nQXJlYTsNCj4gPj4+DQo+ID4+PiArdHlwZWRlZiBz dHJ1Y3QgVmhvc3RVc2VyQ29uZmlnIHsNCj4gPj4+ICsJdWludDMyX3Qgb2Zmc2V0Ow0KPiA+Pj4g Kwl1aW50MzJfdCBzaXplOw0KPiA+Pj4gKwl1aW50MzJfdCBmbGFnczsNCj4gPj4+ICsJdWludDhf dCByZWdpb25bVkhPU1RfVVNFUl9NQVhfQ09ORklHX1NJWkVdOw0KPiA+Pj4gK30gVmhvc3RVc2Vy Q29uZmlnOw0KPiA+Pj4gKw0KPiA+Pj4gIHR5cGVkZWYgc3RydWN0IFZob3N0VXNlck1zZyB7DQo+ ID4+PiAgCXVuaW9uIHsNCj4gPj4+ICAJCXVpbnQzMl90IG1hc3RlcjsgLyogYSBWaG9zdFVzZXJS ZXF1ZXN0IHZhbHVlICovDQo+ID4+PiBAQCAtMTMxLDYgKzE0Niw3IEBADQo+ID4+PiAgCQlzdHJ1 Y3Qgdmhvc3RfdnJpbmdfYWRkciBhZGRyOw0KPiA+Pj4gIAkJVmhvc3RVc2VyTWVtb3J5IG1lbW9y eTsNCj4gPj4+ICAJCVZob3N0VXNlckxvZyAgICBsb2c7DQo+ID4+PiArCQlWaG9zdFVzZXJDb25m aWcgY29uZmlnOw0KPiA+Pj4gIAkJc3RydWN0IHZob3N0X2lvdGxiX21zZyBpb3RsYjsNCj4gPj4+ ICAJCVZob3N0VXNlckNyeXB0b1Nlc3Npb25QYXJhbSBjcnlwdG9fc2Vzc2lvbjsNCj4gPj4+ICAJ CVZob3N0VXNlclZyaW5nQXJlYSBhcmVhOw0KPiA+Pj4NCg==