From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:33593) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gjR1A-00013o-In for qemu-devel@nongnu.org; Tue, 15 Jan 2019 10:52:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gjR19-000680-Aj for qemu-devel@nongnu.org; Tue, 15 Jan 2019 10:52:44 -0500 From: Vladimir Sementsov-Ogievskiy Date: Tue, 15 Jan 2019 15:52:11 +0000 Message-ID: <52cbe9ac-0b58-e545-4b50-ab03fee642d4@virtuozzo.com> References: <20190112175812.27068-1-eblake@redhat.com> <20190112175812.27068-11-eblake@redhat.com> In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH v3 10/19] nbd/client: Split out nbd_send_one_meta_context() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake , "qemu-devel@nongnu.org" Cc: "nsoffer@redhat.com" , "rjones@redhat.com" , "jsnow@redhat.com" , "qemu-block@nongnu.org" MTUuMDEuMjAxOSAxODo0NCwgRXJpYyBCbGFrZSB3cm90ZToNCj4gT24gMS8xNS8xOSA3OjE4IEFN LCBWbGFkaW1pciBTZW1lbnRzb3YtT2dpZXZza2l5IHdyb3RlOg0KPj4gMTIuMDEuMjAxOSAyMDo1 OCwgRXJpYyBCbGFrZSB3cm90ZToNCj4+PiBSZWZhY3RvciBuYmRfbmVnb3RpYXRlX3NpbXBsZV9t ZXRhX2NvbnRleHQoKSB0byBwdWxsIG91dCB0aGUNCj4+PiBjb2RlIHRoYXQgY2FuIGJlIHJldXNl ZCB0byBzZW5kIGEgTElTVCByZXF1ZXN0IGZvciAwIG9yIDEgcXVlcnkuDQo+Pj4gTm8gc2VtYW50 aWMgY2hhbmdlLiAgVGhlIG9sZCBjb21tZW50IGFib3V0ICdzaXplb2YodWludDMyX3QpJw0KPj4+ IGJlaW5nIGVxdWl2YWxlbnQgdG8gJy8qIG51bWJlciBvZiBxdWVyaWVzICovJyBpcyBubyBsb25n ZXINCj4+PiBuZWVkZWQsIG5vdyB0aGF0IHdlIGFyZSBjb21wdXRpbmcgJ3NpemVvZihxdWVyaWVz KScgaW5zdGVhZC4NCj4+Pg0KPj4+IFNpZ25lZC1vZmYtYnk6IEVyaWMgQmxha2UgPGVibGFrZUBy ZWRoYXQuY29tPg0KPj4+IE1lc3NhZ2UtSWQ6IDwyMDE4MTIxNTEzNTMyNC4xNTI2MjktMTQtZWJs YWtlQHJlZGhhdC5jb20+DQo+Pj4gUmV2aWV3ZWQtYnk6IFJpY2hhcmQgVy5NLiBKb25lcyA8cmpv bmVzQHJlZGhhdC5jb20+DQo+Pj4NCj4+PiAtLS0NCj4+PiB2MzogSW1wcm92ZSBjb21taXQgbWVz c2FnZSBbUmljaF0sIGZvcm1hdHRpbmcgdHdlYWsgW2NoZWNrcGF0Y2hdLA0KPj4+IHJlYmFzZSB0 byBkcm9wcGVkIHBhdGNoDQo+Pj4gLS0tDQo+IA0KPj4+ICsrKyBiL25iZC9jbGllbnQuYw0KPj4+ IEBAIC02MjksNiArNjI5LDQ5IEBAIHN0YXRpYyBRSU9DaGFubmVsICpuYmRfcmVjZWl2ZV9zdGFy dHRscyhRSU9DaGFubmVsICppb2MsDQo+Pj4gICAgICAgIHJldHVybiBRSU9fQ0hBTk5FTCh0aW9j KTsNCj4+PiAgICB9DQo+Pj4NCj4+PiArLyoNCj4+PiArICogbmJkX3NlbmRfb25lX21ldGFfY29u dGV4dDoNCj4+PiArICogU2VuZCAwIG9yIDEgc2V0L2xpc3QgbWV0YSBjb250ZXh0IHF1ZXJpZXMu DQo+Pj4gKyAqIFJldHVybiAwIG9uIHN1Y2Nlc3MsIC0xIHdpdGggZXJycCBzZXQgZm9yIGFueSBl cnJvcg0KPj4+ICsgKi8NCj4+PiArc3RhdGljIGludCBuYmRfc2VuZF9vbmVfbWV0YV9jb250ZXh0 KFFJT0NoYW5uZWwgKmlvYywNCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90IG9wdCwNCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKmV4cG9ydCwNCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKnF1ZXJ5LA0KPj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKQ0KPj4+ICt7DQo+Pj4gKyAgICBpbnQgcmV0Ow0K Pj4+ICsgICAgdWludDMyX3QgZXhwb3J0X2xlbiA9IHN0cmxlbihleHBvcnQpOw0KPj4+ICsgICAg dWludDMyX3QgcXVlcmllcyA9ICEhcXVlcnk7DQo+Pg0KPj4gbl8gb3IgbmJfIHByZWZpeCBtYXkg bWFrZSBpdCBtb3JlIGNsZWFyDQo+Pg0KPj4+ICsgICAgdWludDMyX3QgY29udGV4dF9sZW4gPSAw Ow0KPj4+ICsgICAgdWludDMyX3QgZGF0YV9sZW47DQo+Pj4gKyAgICBjaGFyICpkYXRhOw0KPj4+ ICsgICAgY2hhciAqcDsNCj4+PiArDQo+Pj4gKyAgICBkYXRhX2xlbiA9IHNpemVvZihleHBvcnRf bGVuKSArIGV4cG9ydF9sZW4gKyBzaXplb2YocXVlcmllcyk7DQo+IA0KPiBbMV0NCj4gDQo+Pj4g KyAgICBpZiAocXVlcnkpIHsNCj4+PiArICAgICAgICBjb250ZXh0X2xlbiA9IHN0cmxlbihxdWVy eSk7DQo+Pg0KPj4gbG9va3MgbGlrZSBpdCB0aGVuIHNob3VsZCBiZSBxdWVyeV9sZW4NCj4gDQo+ IFN1cmUsIGFuIGFsdGVybmF0aXZlIG5hbWUgbWF5IG1ha2UgdGhpbmdzIGVhc2llciB0byByZWFk IChJIHRoaW5rIHRoaXMNCj4gaXMgc29tZXdoYXQgZmFsbG91dCBmcm9tIG15IHJlYmFzZSBjaHVy biwgd2hlcmUgZWFybGllciB2ZXJzaW9ucyBvZiB0aGUNCj4gcGF0Y2ggc2hhcmVkIGFzIG11Y2gg Y29kZSB3aXRoIE5CRF9PUFRfU0VUX01FVEFfQ09OVEVYVCwgYW5kIHRoYXQgY29kZQ0KPiB1c2Vk IHRoZSBuYW1lICdjb250ZXh0JyByYXRoZXIgdGhhbiAncXVlcnknOyBidXQgbm93IHRoYXQgSSd2 ZSBzcGxpdA0KPiB0aGluZ3MgdG8gYWRkIGEgbmV3IGZ1bmN0aW9uLCBpdCBkb2Vzbid0IGhhdmUg dG8gbWFpbnRhaW4gdGhlIG9sZCBuYW1pbmcpLg0KPiANCj4+DQo+Pj4gKyAgICAgICAgZGF0YV9s ZW4gKz0gc2l6ZW9mKGNvbnRleHRfbGVuKSArIGNvbnRleHRfbGVuOw0KPj4+ICsgICAgfSBlbHNl IHsNCj4+PiArICAgICAgICBhc3NlcnQob3B0ID09IE5CRF9PUFRfTElTVF9NRVRBX0NPTlRFWFQp Ow0KPj4+ICsgICAgfQ0KPj4+ICsgICAgZGF0YSA9IGdfbWFsbG9jKGRhdGFfbGVuKTsNCj4+PiAr ICAgIHAgPSBkYXRhOw0KPj4NCj4+IG1heSB1c2UgcCA9IGRhdGEgPSBnX21hbGxvYw0KPiANCj4g V2lsbCBkby4NCj4gDQo+Pg0KPj4+ICsNCj4+PiArICAgIHRyYWNlX25iZF9vcHRfbWV0YV9yZXF1 ZXN0KG5iZF9vcHRfbG9va3VwKG9wdCksIHF1ZXJ5ID86ICIoYWxsKSIsIGV4cG9ydCk7DQo+IA0K PiBbMl0NCj4gDQo+Pj4gKyAgICBzdGxfYmVfcChwLCBleHBvcnRfbGVuKTsNCj4+PiArICAgIG1l bWNweShwICs9IHNpemVvZihleHBvcnRfbGVuKSwgZXhwb3J0LCBleHBvcnRfbGVuKTsNCj4+PiAr ICAgIHN0bF9iZV9wKHAgKz0gZXhwb3J0X2xlbiwgcXVlcmllcyk7DQo+Pj4gKyAgICBpZiAocXVl cnkpIHsNCj4+PiArICAgICAgICBzdGxfYmVfcChwICs9IHNpemVvZih1aW50MzJfdCksIGNvbnRl eHRfbGVuKTsNCj4+DQo+PiA6KSwgYWhhLCBwbGVhc2UsIHMvdWludDMyX3QvcXVlcmllcywgYXMg eW91IHByb21pc2VkDQo+IA0KPiBJIGRpZCB1cCBhdCBbMV0sIGJ1dCBzaG91bGQgaW5kZWVkIGRv IHNvIGFnYWluIGhlcmUuDQo+IA0KPj4NCj4+IEhtbSwgaXRzIG15IGNvZGUuIEl0J3MgaGFyZCB0 byByZWFkIGFuZCBub3QgdmVyeSBjb21mb3J0YWJsZSB0byBtYWludGFpbi4uDQo+Pg0KPj4gSW4g YmxvY2svbmJkLWNsaWVudC5jIHdlIGhhdmUNCj4+IHBheWxvYWRfYWR2YW5jZSogZnVuY3Rpb25z LCB0byByZWFkIHN1Y2ggZm9ybWF0dGVkIGRhdGEsIEkgdGhpbmssIGl0IHNob3VsZCBiZQ0KPj4g Z29vZCB0byBtYWtlIHNvbWV0aGluZyBsaWtlIHRoaXMgZm9yIHNlcnZlci1wYXJ0LiBOb3QgYWJv dXQgdGhlc2Ugc2VyaWVzLCBvZiBjb3Vyc2UuDQo+IA0KPiBZZXMsIEkgd291bGRuJ3Qgb2JqZWN0 IHRvIGV2ZW4gbW9yZSBjbGVhbnVwcyB0byBtYWtlIHRoZSBjb2RlIGVhc2llciB0bw0KPiBtYWlu dGFpbiwgYnV0IG5vdCBhcyBwYXJ0IG9mIHRoaXMgc2VyaWVzLg0KPiANCj4+DQo+PiBJbnRlcmVz dGluZywgdHJvdWJsZXMgYXJvdW5kICJkb24ndCB1c2UgYmU2NF90b19jcHVTLCB1c2Ugb25seSBi ZTY0X3RvX2NwdSIsDQo+PiBkbyB0aGV5IGFwcGx5IHNvbWVob3cgdG8gKl9iZV9wIGZ1bmN0aW9u cyBmYW1pbHk/DQo+IA0KPiBUaGUgcHJvYmxlbSB3YXMgaW4gdGhlIGluLXBsYWNlIGNvbnZlcnNp b24gcm91dGluZXMgd2hlcmUgdGhlDQo+IGRlc3RpbmF0aW9uIHR5cGUgd2FzIHN0cm9uZ2x5IHR5 cGVkIHRvIHNvbWV0aGluZyB3aWRlciB0aGFuIGNoYXIqLiAgVGhpcw0KPiBpcyBub3QgYW4gaW5w bGFjZSBjb252ZXJzaW9uLCBiZWNhdXNlIHN0Kl9wIHRha2VzIGEgcmF3IHBvaW50ZXINCj4gaW50 ZXJwcmV0ZWQgYXMgY2hhciogYXMgaXRzIGRlc3RpbmF0aW9uLiAgU28gbm8sIGNsYW5nIGRvZXMg bm90IGhhdmUNCj4gcHJvYmxlbXMgd2l0aCB0aGlzIGNvbnN0cnVjdC4NCj4gDQo+Pg0KPj4+ICsg ICAgICAgIG1lbWNweShwICs9IHNpemVvZihjb250ZXh0X2xlbiksIHF1ZXJ5LCBjb250ZXh0X2xl bik7DQo+Pj4gKyAgICB9DQo+Pj4gKw0KPj4+ICsgICAgcmV0ID0gbmJkX3NlbmRfb3B0aW9uX3Jl cXVlc3QoaW9jLCBvcHQsIGRhdGFfbGVuLCBkYXRhLCBlcnJwKTsNCj4+PiArICAgIGdfZnJlZShk YXRhKTsNCj4+PiArICAgIHJldHVybiByZXQ7DQo+Pj4gK30NCj4+PiArDQo+Pj4gICAgLyogbmJk X25lZ290aWF0ZV9zaW1wbGVfbWV0YV9jb250ZXh0Og0KPj4+ICAgICAqIFJlcXVlc3QgdGhlIHNl cnZlciB0byBzZXQgdGhlIG1ldGEgY29udGV4dCBmb3IgZXhwb3J0IEBpbmZvLT5uYW1lDQo+Pj4g ICAgICogdXNpbmcgQGluZm8tPnhfZGlydHlfYml0bWFwIHdpdGggYSBmYWxsYmFjayB0byAiYmFz ZTphbGxvY2F0aW9uIiwNCj4+PiBAQCAtNjUzLDI2ICs2OTYsMTAgQEAgc3RhdGljIGludCBuYmRf bmVnb3RpYXRlX3NpbXBsZV9tZXRhX2NvbnRleHQoUUlPQ2hhbm5lbCAqaW9jLA0KPj4+ICAgICAg ICBOQkRPcHRpb25SZXBseSByZXBseTsNCj4+PiAgICAgICAgY29uc3QgY2hhciAqY29udGV4dCA9 IGluZm8tPnhfZGlydHlfYml0bWFwID86ICJiYXNlOmFsbG9jYXRpb24iOw0KPj4+ICAgICAgICBi b29sIHJlY2VpdmVkID0gZmFsc2U7DQo+Pj4gLSAgICB1aW50MzJfdCBleHBvcnRfbGVuID0gc3Ry bGVuKGluZm8tPm5hbWUpOw0KPj4+IC0gICAgdWludDMyX3QgY29udGV4dF9sZW4gPSBzdHJsZW4o Y29udGV4dCk7DQo+Pj4gLSAgICB1aW50MzJfdCBkYXRhX2xlbiA9IHNpemVvZihleHBvcnRfbGVu KSArIGV4cG9ydF9sZW4gKw0KPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodWlu dDMyX3QpICsgLyogbnVtYmVyIG9mIHF1ZXJpZXMgKi8NCj4+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mKGNvbnRleHRfbGVuKSArIGNvbnRleHRfbGVuOw0KPj4+IC0gICAgY2hhciAq ZGF0YSA9IGdfbWFsbG9jKGRhdGFfbGVuKTsNCj4+PiAtICAgIGNoYXIgKnAgPSBkYXRhOw0KPj4+ DQo+Pj4gLSAgICB0cmFjZV9uYmRfb3B0X21ldGFfcmVxdWVzdChjb250ZXh0LCBpbmZvLT5uYW1l KTsNCj4+PiAtICAgIHN0bF9iZV9wKHAsIGV4cG9ydF9sZW4pOw0KPj4+IC0gICAgbWVtY3B5KHAg Kz0gc2l6ZW9mKGV4cG9ydF9sZW4pLCBpbmZvLT5uYW1lLCBleHBvcnRfbGVuKTsNCj4+PiAtICAg IHN0bF9iZV9wKHAgKz0gZXhwb3J0X2xlbiwgMSk7DQo+Pj4gLSAgICBzdGxfYmVfcChwICs9IHNp emVvZih1aW50MzJfdCksIGNvbnRleHRfbGVuKTsNCj4+PiAtICAgIG1lbWNweShwICs9IHNpemVv Zihjb250ZXh0X2xlbiksIGNvbnRleHQsIGNvbnRleHRfbGVuKTsNCj4+PiAtDQo+Pj4gLSAgICBy ZXQgPSBuYmRfc2VuZF9vcHRpb25fcmVxdWVzdChpb2MsIE5CRF9PUFRfU0VUX01FVEFfQ09OVEVY VCwgZGF0YV9sZW4sIGRhdGEsDQo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlcnJwKTsNCj4+PiAtICAgIGdfZnJlZShkYXRhKTsNCj4+PiAtICAgIGlmIChyZXQgPCAwKSB7 DQo+Pj4gLSAgICAgICAgcmV0dXJuIHJldDsNCj4+PiArICAgIGlmIChuYmRfc2VuZF9vbmVfbWV0 YV9jb250ZXh0KGlvYywgTkJEX09QVF9TRVRfTUVUQV9DT05URVhULA0KPj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+bmFtZSwgY29udGV4dCwgZXJycCkgPCAwKSB7 DQo+Pj4gKyAgICAgICAgcmV0dXJuIC0xOw0KPj4+ICAgICAgICB9DQo+Pj4NCj4+PiAgICAgICAg aWYgKG5iZF9yZWNlaXZlX29wdGlvbl9yZXBseShpb2MsIE5CRF9PUFRfU0VUX01FVEFfQ09OVEVY VCwgJnJlcGx5LA0KPj4+IEBAIC02ODksNyArNzE2LDcgQEAgc3RhdGljIGludCBuYmRfbmVnb3Rp YXRlX3NpbXBsZV9tZXRhX2NvbnRleHQoUUlPQ2hhbm5lbCAqaW9jLA0KPj4+ICAgICAgICBpZiAo cmVwbHkudHlwZSA9PSBOQkRfUkVQX01FVEFfQ09OVEVYVCkgew0KPj4+ICAgICAgICAgICAgY2hh ciAqbmFtZTsNCj4+Pg0KPj4+IC0gICAgICAgIGlmIChyZXBseS5sZW5ndGggIT0gc2l6ZW9mKGlu Zm8tPmNvbnRleHRfaWQpICsgY29udGV4dF9sZW4pIHsNCj4+PiArICAgICAgICBpZiAocmVwbHku bGVuZ3RoICE9IHNpemVvZihpbmZvLT5jb250ZXh0X2lkKSArIHN0cmxlbihjb250ZXh0KSkgew0K Pj4+ICAgICAgICAgICAgICAgIGVycm9yX3NldGcoZXJycCwgIkZhaWxlZCB0byBuZWdvdGlhdGUg bWV0YSBjb250ZXh0ICclcycsIHNlcnZlciAiDQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAiYW5zd2VyZWQgd2l0aCB1bmV4cGVjdGVkIGxlbmd0aCAlIiBQUkl1MzIsIGNvbnRleHQsDQo+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICByZXBseS5sZW5ndGgpOw0KPj4+IGRpZmYgLS1n aXQgYS9uYmQvdHJhY2UtZXZlbnRzIGIvbmJkL3RyYWNlLWV2ZW50cw0KPj4+IGluZGV4IGMzOTY2 ZDJiNjUzLi41OTUyMWU0N2EzZCAxMDA2NDQNCj4+PiAtLS0gYS9uYmQvdHJhY2UtZXZlbnRzDQo+ Pj4gKysrIGIvbmJkL3RyYWNlLWV2ZW50cw0KPj4+IEBAIC0xMiw3ICsxMiw3IEBAIG5iZF9yZWNl aXZlX3F1ZXJ5X2V4cG9ydHNfc3RhcnQoY29uc3QgY2hhciAqd2FudG5hbWUpICJRdWVyeWluZyBl eHBvcnQgbGlzdCBmb3INCj4+PiAgICBuYmRfcmVjZWl2ZV9xdWVyeV9leHBvcnRzX3N1Y2Nlc3Mo Y29uc3QgY2hhciAqd2FudG5hbWUpICJGb3VuZCBkZXNpcmVkIGV4cG9ydCBuYW1lICclcyciDQo+ Pj4gICAgbmJkX3JlY2VpdmVfc3RhcnR0bHNfbmV3X2NsaWVudCh2b2lkKSAiU2V0dGluZyB1cCBU TFMiDQo+Pj4gICAgbmJkX3JlY2VpdmVfc3RhcnR0bHNfdGxzX2hhbmRzaGFrZSh2b2lkKSAiU3Rh cnRpbmcgVExTIGhhbmRzaGFrZSINCj4+PiAtbmJkX29wdF9tZXRhX3JlcXVlc3QoY29uc3QgY2hh ciAqY29udGV4dCwgY29uc3QgY2hhciAqZXhwb3J0KSAiUmVxdWVzdGluZyB0byBzZXQgbWV0YSBj b250ZXh0ICVzIGZvciBleHBvcnQgJXMiDQo+Pj4gK25iZF9vcHRfbWV0YV9yZXF1ZXN0KGNvbnN0 IGNoYXIgKm9wdG5hbWUsIGNvbnN0IGNoYXIgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmV4cG9ydCkg IlJlcXVlc3RpbmcgJXMgJXMgZm9yIGV4cG9ydCAlcyINCj4+DQo+PiBIbW0sIHlvdSBmb3JnZXQg bmJkX29wdF9sb29rdXAoKQ0KPiANCj4gV2hlcmU/IFRoZSB1cGRhdGVkIHRyYWNlIHBvaW50IGF0 IFsyXSBoYXMgbmJkX29wdF9sb29rdXAoKSBmb3INCj4gZGV0ZXJtaW5pbmcgb3B0bmFtZS4NCg0K WW91ciBtb3JuaW5nIGlzIG15IGV2ZW5pbmcpDQoNClllcywgaXQncyBvaywgYW5kIGluIHRoZSBu ZXh0IHBhdGNoIHRvby4gQnV0IHlvdSB1c3VhbGx5IHRyYWNlIGJvdGggbnVtYmVyICsgbG9va3Vw LXN0cmluZywNCmFuZCBoZXJlIG9ubHkgc3RyaW5nLiBJcyB0aGVyZSBhIHJlYXNvbiB0bz8NCg0K PiANCj4+DQo+PiBXaXRoIHRoaXMgYW5kIHMvdWludDMyX3QvcXVlcmllcyAob3RoZXIgdGlueSB0 aGluZ3MgdXAgdG8geW91KToNCj4+IFJldmlld2VkLWJ5OiBWbGFkaW1pciBTZW1lbnRzb3YtT2dp ZXZza2l5IDx2c2VtZW50c292QHZpcnR1b3p6by5jb20+DQo+Pg0KPj4+ICAgIG5iZF9vcHRfbWV0 YV9yZXBseShjb25zdCBjaGFyICpjb250ZXh0LCB1aW50MzJfdCBpZCkgIlJlY2VpdmVkIG1hcHBp bmcgb2YgY29udGV4dCAlcyB0byBpZCAlIiBQUkl1MzINCj4+PiAgICBuYmRfcmVjZWl2ZV9uZWdv dGlhdGUodm9pZCAqdGxzY3JlZHMsIGNvbnN0IGNoYXIgKmhvc3RuYW1lKSAiUmVjZWl2aW5nIG5l Z290aWF0aW9uIHRsc2NyZWRzPSVwIGhvc3RuYW1lPSVzIg0KPj4+ICAgIG5iZF9yZWNlaXZlX25l Z290aWF0ZV9tYWdpYyh1aW50NjRfdCBtYWdpYykgIk1hZ2ljIGlzIDB4JSIgUFJJeDY0DQo+Pj4N Cj4+DQo+Pg0KPiANCg0KDQotLSANCkJlc3QgcmVnYXJkcywNClZsYWRpbWlyDQo=