From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v3 1/3] x86/ioreq server(patch for 4.7): Rename p2m_mmio_write_dm to p2m_ioreq_server. Date: Mon, 25 Apr 2016 17:01:01 +0000 Message-ID: <20a28db770fa43bf94be56548116206a@AMSPEX02CL03.citrite.net> References: <1461580540-9314-1-git-send-email-yu.c.zhang@linux.intel.com> <1461580540-9314-2-git-send-email-yu.c.zhang@linux.intel.com> <81c8eb898bb0419fa4dba588ccc6131a@AMSPEX02CL03.citrite.net> <571E563202000078000E5747@prv-mh.provo.novell.com> <571E42A7.9080503@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <571E42A7.9080503@citrix.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: George Dunlap , "Yu, Zhang" , Jan Beulich Cc: Kevin Tian , Wei Liu , Andrew Cooper , "Tim (Xen.org)" , "xen-devel@lists.xen.org" , Zhiyuan Lv , Jun Nakajima , "Keir (Xen.org)" List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IEdlb3JnZSBEdW5sYXAgW21haWx0 bzpnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb21dCj4gU2VudDogMjUgQXByaWwgMjAxNiAxNzoxNgo+ IFRvOiBZdSwgWmhhbmc7IEphbiBCZXVsaWNoOyBQYXVsIER1cnJhbnQKPiBDYzogQW5kcmV3IENv b3BlcjsgV2VpIExpdTsgSnVuIE5ha2FqaW1hOyBLZXZpbiBUaWFuOyBaaGl5dWFuIEx2OyB4ZW4t Cj4gZGV2ZWxAbGlzdHMueGVuLm9yZzsgS2VpciAoWGVuLm9yZyk7IFRpbSAoWGVuLm9yZykKPiBT dWJqZWN0OiBSZTogW1hlbi1kZXZlbF0gW1BBVENIIHYzIDEvM10geDg2L2lvcmVxIHNlcnZlcihw YXRjaCBmb3IgNC43KToKPiBSZW5hbWUgcDJtX21taW9fd3JpdGVfZG0gdG8gcDJtX2lvcmVxX3Nl cnZlci4KPiAKPiBPbiAyNS8wNC8xNiAxNjo1MywgWXUsIFpoYW5nIHdyb3RlOgo+ID4KPiA+Cj4g PiBPbiA0LzI1LzIwMTYgMTE6MzggUE0sIEphbiBCZXVsaWNoIHdyb3RlOgo+ID4+Pj4+IE9uIDI1 LjA0LjE2IGF0IDE3OjI5LCA8UGF1bC5EdXJyYW50QGNpdHJpeC5jb20+IHdyb3RlOgo+ID4+Pj4g IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4+PiBGcm9tOiBZdSwgWmhhbmcgW21haWx0 bzp5dS5jLnpoYW5nQGxpbnV4LmludGVsLmNvbV0KPiA+Pj4+IFNlbnQ6IDI1IEFwcmlsIDIwMTYg MTY6MjIKPiA+Pj4+IFRvOiBQYXVsIER1cnJhbnQ7IEdlb3JnZSBEdW5sYXAKPiA+Pj4+IENjOiB4 ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZzsgS2V2aW4gVGlhbjsgS2VpciAoWGVuLm9yZyk7IEp1biBO YWthamltYTsKPiA+Pj4+IEFuZHJldyBDb29wZXI7IFRpbSAoWGVuLm9yZyk7IEx2LCBaaGl5dWFu OyBKYW4gQmV1bGljaDsgV2VpIExpdQo+ID4+Pj4gU3ViamVjdDogUmU6IFtYZW4tZGV2ZWxdIFtQ QVRDSCB2MyAxLzNdIHg4Ni9pb3JlcSBzZXJ2ZXIocGF0Y2ggZm9yCj4gPj4+PiA0LjcpOgo+ID4+ Pj4gUmVuYW1lIHAybV9tbWlvX3dyaXRlX2RtIHRvIHAybV9pb3JlcV9zZXJ2ZXIuCj4gPj4+Pgo+ ID4+Pj4KPiA+Pj4+Cj4gPj4+PiBPbiA0LzI1LzIwMTYgMTA6MDEgUE0sIFBhdWwgRHVycmFudCB3 cm90ZToKPiA+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+Pj4+Pj4gRnJvbTog ZHVubGFwZ0BnbWFpbC5jb20gW21haWx0bzpkdW5sYXBnQGdtYWlsLmNvbV0gT24gQmVoYWxmCj4g T2YKPiA+Pj4+Pj4gR2VvcmdlIER1bmxhcAo+ID4+Pj4+PiBTZW50OiAyNSBBcHJpbCAyMDE2IDE0 OjM5Cj4gPj4+Pj4+IFRvOiBZdSBaaGFuZwo+ID4+Pj4+PiBDYzogeGVuLWRldmVsQGxpc3RzLnhl bi5vcmc7IEtldmluIFRpYW47IEtlaXIgKFhlbi5vcmcpOyBKdW4KPiA+Pj4+Pj4gTmFrYWppbWE7 Cj4gPj4+Pj4+IEFuZHJldyBDb29wZXI7IFRpbSAoWGVuLm9yZyk7IFBhdWwgRHVycmFudDsgTHYs IFpoaXl1YW47IEphbgo+ID4+Pj4+PiBCZXVsaWNoOyBXZWkKPiA+Pj4+IExpdQo+ID4+Pj4+PiBT dWJqZWN0OiBSZTogW1hlbi1kZXZlbF0gW1BBVENIIHYzIDEvM10geDg2L2lvcmVxIHNlcnZlcihw YXRjaCBmb3IKPiA+Pj4+Pj4gNC43KToKPiA+Pj4+Pj4gUmVuYW1lIHAybV9tbWlvX3dyaXRlX2Rt IHRvIHAybV9pb3JlcV9zZXJ2ZXIuCj4gPj4+Pj4+Cj4gPj4+Pj4+IE9uIE1vbiwgQXByIDI1LCAy MDE2IGF0IDExOjM1IEFNLCBZdSBaaGFuZwo+ID4+Pj4gPHl1LmMuemhhbmdAbGludXguaW50ZWwu Y29tPgo+ID4+Pj4+PiB3cm90ZToKPiA+Pj4+Pj4+IFByZXZpb3VzbHkgcDJtIHR5cGUgcDJtX21t aW9fd3JpdGVfZG0gd2FzIGludHJvZHVjZWQgZm9yCj4gd3JpdGUtCj4gPj4+Pj4+PiBwcm90ZWN0 ZWQgbWVtb3J5IHBhZ2VzIHdob3NlIHdyaXRlIG9wZXJhdGlvbnMgYXJlIHN1cHBvc2VkIHRvCj4g YmUKPiA+Pj4+Pj4+IGZvcndhcmRlZCB0byBhbmQgZW11bGF0ZWQgYnkgYW4gaW9yZXEgc2VydmVy LiBZZXQgbGltaXRhdGlvbnMgb2YKPiA+Pj4+Pj4+IHJhbmdlc2V0IHJlc3RyaWN0IHRoZSBudW1i ZXIgb2YgZ3Vlc3QgcGFnZXMgdG8gYmUgd3JpdGUtcHJvdGVjdGVkLgo+ID4+Pj4+Pj4KPiA+Pj4+ Pj4+IFRoaXMgcGF0Y2ggcmVwbGFjZXMgdGhlIHAybSB0eXBlIHAybV9tbWlvX3dyaXRlX2RtIHdp dGggYSBuZXcKPiA+Pj4+IG5hbWU6Cj4gPj4+Pj4+PiBwMm1faW9yZXFfc2VydmVyLCB3aGljaCBt ZWFucyB0aGlzIHAybSB0eXBlIGNhbiBiZSBjbGFpbWVkIGJ5Cj4gb25lCj4gPj4+Pj4+PiBpb3Jl cSBzZXJ2ZXIsIGluc3RlYWQgb2YgYmVpbmcgdHJhY2tlZCBpbnNpZGUgdGhlIHJhbmdlc2V0IG9m IGlvcmVxCj4gPj4+Pj4+PiBzZXJ2ZXIuIFBhdGNoZXMgZm9sbG93aW5nIHVwIHdpbGwgYWRkIHRo ZSByZWxhdGVkIGh2bW9wIGhhbmRsaW5nCj4gPj4+Pj4+PiBjb2RlIHdoaWNoIG1hcC91bm1hcCB0 eXBlIHAybV9pb3JlcV9zZXJ2ZXIgdG8vZnJvbSBhbiBpb3JlcQo+ID4+Pj4gc2VydmVyLgo+ID4+ Pj4+Pj4KPiA+Pj4+Pj4+IGNoYW5nZXMgaW4gdjM6Cj4gPj4+Pj4+PiAgIC0gQWNjb3JkaW5nIHRv IEphbiAmIEdlb3JnZSdzIGNvbW1lbnRzLCBrZWVwCj4gPj4+Pj4+IEhWTU1FTV9tbWlvX3dyaXRl X2RtCj4gPj4+Pj4+PiAgICAgZm9yIG9sZCB4ZW4gaW50ZXJmYWNlIHZlcnNpb25zLCBhbmQgcmVw bGFjZSBpdCB3aXRoCj4gPj4+Pj4+PiBIVk1NRU1fdW51c2VkCj4gPj4+Pj4+PiAgICAgZm9yIHhl biBpbnRlcmZhY2VzIG5ld2VyIHRoYW4gNC43LjA7IEZvciBwMm1faW9yZXFfc2VydmVyLCBhCj4g bmV3Cj4gPj4+Pj4+PiAgICAgZW51bSAtIEhWTU1FTV9pb3JlcV9zZXJ2ZXIgaXMgaW50cm9kdWNl ZCBmb3IgdGhlIGdldC9zZXQKPiBtZW0KPiA+Pj4+IHR5cGUKPiA+Pj4+Pj4+ICAgICBpbnRlcmZh Y2VzOwo+ID4+Pj4+Pj4gICAtIEFkZCBHZW9yZ2UncyBSZXZpZXdlZC1ieSBhbmQgQWNrZWQtYnkg ZnJvbSBUaW0gJiBBbmRyZXcuCj4gPj4+Pj4+Cj4gPj4+Pj4+IFVuZm9ydHVuYXRlbHkgdGhlc2Ug cmF0aGVyIGNvbnRyYWRpY3QgZWFjaCBvdGhlciAtLSBJIGNvbnNpZGVyCj4gPj4+Pj4+IFJldmll d2VkLWJ5IHRvIG9ubHkgc3RpY2sgaWYgdGhlIGNvZGUgSSd2ZSBzcGVjaWZpZWQgaGFzbid0IGNo YW5nZWQKPiA+Pj4+Pj4gKG9yIGhhcyBvbmx5IGNoYW5nZWQgdHJpdmlhbGx5KS4KPiA+Pj4+Pj4K PiA+Pj4+Pj4gQWxzby4uLgo+ID4+Pj4+Pgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IGNoYW5nZXMgaW4g djI6Cj4gPj4+Pj4+PiAgIC0gQWNjb3JkaW5nIHRvIEdlb3JnZSBEdW5sYXAncyBjb21tZW50cywg b25seSByZW5hbWUgdGhlIHAybQo+IHR5cGUsCj4gPj4+Pj4+PiAgICAgd2l0aCBubyBiZWhhdmlv ciBjaGFuZ2VzLgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFu dCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Cj4gPj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBZdSBa aGFuZyA8eXUuYy56aGFuZ0BsaW51eC5pbnRlbC5jb20+Cj4gPj4+Pj4+PiBBY2tlZC1ieTogVGlt IERlZWdhbiA8dGltQHhlbi5vcmc+Cj4gPj4+Pj4+PiBBY2tlZC1ieTogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KPiA+Pj4+Pj4+IFJldmlld2VkLWJ5OiBHZW9yZ2Ug RHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Cj4gPj4+Pj4+PiBDYzogS2VpciBGcmFz ZXIgPGtlaXJAeGVuLm9yZz4KPiA+Pj4+Pj4+IENjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+Cj4gPj4+Pj4+PiBDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4 LmNvbT4KPiA+Pj4+Pj4+IENjOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+ Cj4gPj4+Pj4+PiBDYzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+Cj4gPj4+Pj4+ PiBDYzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgo+ID4+Pj4+ Pj4gQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgo+ID4+Pj4+Pj4gLS0tCj4gPj4+Pj4+PiAg eGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICB8IDE0ICsrKysrKysrLS0tLS0tCj4gPj4+ Pj4+PiAgeGVuL2FyY2gveDg2L21tL3AybS1lcHQuYyAgICAgICB8ICAyICstCj4gPj4+Pj4+PiAg eGVuL2FyY2gveDg2L21tL3AybS1wdC5jICAgICAgICB8ICAyICstCj4gPj4+Pj4+PiAgeGVuL2Fy Y2gveDg2L21tL3NoYWRvdy9tdWx0aS5jICB8ICAyICstCj4gPj4+Pj4+PiAgeGVuL2luY2x1ZGUv YXNtLXg4Ni9wMm0uaCAgICAgICB8ICA0ICsrLS0KPiA+Pj4+Pj4+ICB4ZW4vaW5jbHVkZS9wdWJs aWMvaHZtL2h2bV9vcC5oIHwgIDggKysrKysrKy0KPiA+Pj4+Pj4+ICA2IGZpbGVzIGNoYW5nZWQs IDIwIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IGRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0u Ywo+ID4+Pj4+Pj4gaW5kZXggZjI0MTI2ZC4uODc0Y2IwZiAxMDA2NDQKPiA+Pj4+Pj4+IC0tLSBh L3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKPiA+Pj4+Pj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0v aHZtLmMKPiA+Pj4+Pj4+IEBAIC0xODU3LDcgKzE4NTcsNyBAQCBpbnQgaHZtX2hhcF9uZXN0ZWRf cGFnZV9mYXVsdChwYWRkcl90Cj4gZ3BhLAo+ID4+Pj4+PiB1bnNpZ25lZCBsb25nIGdsYSwKPiA+ Pj4+Pj4+ICAgICAgICovCj4gPj4+Pj4+PiAgICAgIGlmICggKHAybXQgPT0gcDJtX21taW9fZG0p IHx8Cj4gPj4+Pj4+PiAgICAgICAgICAgKG5wZmVjLndyaXRlX2FjY2VzcyAmJgo+ID4+Pj4+Pj4g LSAgICAgICAgICAocDJtX2lzX2Rpc2NhcmRfd3JpdGUocDJtdCkgfHwgKHAybXQgPT0KPiA+Pj4+ IHAybV9tbWlvX3dyaXRlX2RtKSkpICkKPiA+Pj4+Pj4+ICsgICAgICAgICAgKHAybV9pc19kaXNj YXJkX3dyaXRlKHAybXQpIHx8IChwMm10ID09Cj4gPj4+Pj4+PiBwMm1faW9yZXFfc2VydmVyKSkp ICkKPiA+Pj4+Pj4+ICAgICAgewo+ID4+Pj4+Pj4gICAgICAgICAgX19wdXRfZ2ZuKHAybSwgZ2Zu KTsKPiA+Pj4+Pj4+ICAgICAgICAgIGlmICggYXAybV9hY3RpdmUgKQo+ID4+Pj4+Pj4gQEAgLTU0 OTksOCArNTQ5OSw4IEBAIGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxvbmcgb3AsCj4gPj4+Pj4+ IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQo+ID4+Pj4+Pj4gICAgICAgICAgICAg IGdldF9nZm5fcXVlcnlfdW5sb2NrZWQoZCwgYS5wZm4sICZ0KTsKPiA+Pj4+Pj4+ICAgICAgICAg ICAgICBpZiAoIHAybV9pc19tbWlvKHQpICkKPiA+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgYS5t ZW1fdHlwZSA9ICBIVk1NRU1fbW1pb19kbTsKPiA+Pj4+Pj4+IC0gICAgICAgICAgICBlbHNlIGlm ICggdCA9PSBwMm1fbW1pb193cml0ZV9kbSApCj4gPj4+Pj4+PiAtICAgICAgICAgICAgICAgIGEu bWVtX3R5cGUgPSBIVk1NRU1fbW1pb193cml0ZV9kbTsKPiA+Pj4+Pj4+ICsgICAgICAgICAgICBl bHNlIGlmICggdCA9PSBwMm1faW9yZXFfc2VydmVyICkKPiA+Pj4+Pj4+ICsgICAgICAgICAgICAg ICAgYS5tZW1fdHlwZSA9IEhWTU1FTV9pb3JlcV9zZXJ2ZXI7Cj4gPj4+Pj4+PiAgICAgICAgICAg ICAgZWxzZSBpZiAoIHAybV9pc19yZWFkb25seSh0KSApCj4gPj4+Pj4+PiAgICAgICAgICAgICAg ICAgIGEubWVtX3R5cGUgPSAgSFZNTUVNX3JhbV9ybzsKPiA+Pj4+Pj4+ICAgICAgICAgICAgICBl bHNlIGlmICggcDJtX2lzX3JhbSh0KSApCj4gPj4+Pj4+PiBAQCAtNTUzMSw3ICs1NTMxLDggQEAg bG9uZyBkb19odm1fb3AodW5zaWduZWQgbG9uZyBvcCwKPiA+Pj4+Pj4gWEVOX0dVRVNUX0hBTkRM RV9QQVJBTSh2b2lkKSBhcmcpCj4gPj4+Pj4+PiAgICAgICAgICAgICAgW0hWTU1FTV9yYW1fcndd ICA9IHAybV9yYW1fcncsCj4gPj4+Pj4+PiAgICAgICAgICAgICAgW0hWTU1FTV9yYW1fcm9dICA9 IHAybV9yYW1fcm8sCj4gPj4+Pj4+PiAgICAgICAgICAgICAgW0hWTU1FTV9tbWlvX2RtXSA9IHAy bV9tbWlvX2RtLAo+ID4+Pj4+Pj4gLSAgICAgICAgICAgIFtIVk1NRU1fbW1pb193cml0ZV9kbV0g PSBwMm1fbW1pb193cml0ZV9kbQo+ID4+Pj4+Pj4gKyAgICAgICAgICAgIFtIVk1NRU1fdW51c2Vk XSA9IHAybV9pbnZhbGlkLAo+ID4+Pj4+Pj4gKyAgICAgICAgICAgIFtIVk1NRU1faW9yZXFfc2Vy dmVyXSA9IHAybV9pb3JlcV9zZXJ2ZXIKPiA+Pj4+Pj4+ICAgICAgICAgIH07Cj4gPj4+Pj4+Pgo+ ID4+Pj4+Pj4gICAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmEsIGFyZywgMSkgKQo+ID4+ Pj4+Pj4gQEAgLTU1NTUsNyArNTU1Niw4IEBAIGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxvbmcg b3AsCj4gPj4+Pj4+IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQo+ID4+Pj4+Pj4g ICAgICAgICAgICAgICAoKGEuZmlyc3RfcGZuICsgYS5uciAtIDEpID4KPiA+Pj4+Pj4+IGRvbWFp bl9nZXRfbWF4aW11bV9ncGZuKGQpKSApCj4gPj4+Pj4+PiAgICAgICAgICAgICAgZ290byBzZXRt ZW10eXBlX2ZhaWw7Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gLSAgICAgICAgaWYgKCBhLmh2bW1lbV90 eXBlID49IEFSUkFZX1NJWkUobWVtdHlwZSkgKQo+ID4+Pj4+Pj4gKyAgICAgICAgaWYgKCBhLmh2 bW1lbV90eXBlID49IEFSUkFZX1NJWkUobWVtdHlwZSkgfHwKPiA+Pj4+Pj4+ICsgICAgICAgICAg ICAgdW5saWtlbHkoYS5odm1tZW1fdHlwZSA9PSBIVk1NRU1fdW51c2VkKSApCj4gPj4+Pj4+PiAg ICAgICAgICAgICAgZ290byBzZXRtZW10eXBlX2ZhaWw7Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gICAg ICAgICAgd2hpbGUgKCBhLm5yID4gc3RhcnRfaXRlciApCj4gPj4+Pj4+PiBAQCAtNTU3OSw3ICs1 NTgxLDcgQEAgbG9uZyBkb19odm1fb3AodW5zaWduZWQgbG9uZyBvcCwKPiA+Pj4+Pj4gWEVOX0dV RVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCj4gPj4+Pj4+PiAgICAgICAgICAgICAgfQo+ID4+ Pj4+Pj4gICAgICAgICAgICAgIGlmICggIXAybV9pc19yYW0odCkgJiYKPiA+Pj4+Pj4+ICAgICAg ICAgICAgICAgICAgICghcDJtX2lzX2hvbGUodCkgfHwgYS5odm1tZW1fdHlwZSAhPQo+ID4+Pj4+ Pj4gSFZNTUVNX21taW9fZG0pCj4gPj4+Pj4+ICYmCj4gPj4+Pj4+PiAtICAgICAgICAgICAgICAg ICAodCAhPSBwMm1fbW1pb193cml0ZV9kbSB8fCBhLmh2bW1lbV90eXBlICE9Cj4gPj4+Pj4+IEhW TU1FTV9yYW1fcncpICkKPiA+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICh0ICE9IHAybV9pb3Jl cV9zZXJ2ZXIgfHwgYS5odm1tZW1fdHlwZSAhPQo+ID4+Pj4+PiBIVk1NRU1fcmFtX3J3KSApCj4g Pj4+Pj4+PiAgICAgICAgICAgICAgewo+ID4+Pj4+Pj4gICAgICAgICAgICAgICAgICBwdXRfZ2Zu KGQsIHBmbik7Cj4gPj4+Pj4+PiAgICAgICAgICAgICAgICAgIGdvdG8gc2V0bWVtdHlwZV9mYWls Owo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKPiBiL3hl bi9hcmNoL3g4Ni9tbS9wMm0tCj4gPj4+PiBlcHQuYwo+ID4+Pj4+Pj4gaW5kZXggM2NiNjg2OC4u MzgwZWMyNSAxMDA2NDQKPiA+Pj4+Pj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMK PiA+Pj4+Pj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKPiA+Pj4+Pj4+IEBAIC0x NzEsNyArMTcxLDcgQEAgc3RhdGljIHZvaWQgZXB0X3AybV90eXBlX3RvX2ZsYWdzKHN0cnVjdAo+ ID4+Pj4+PiBwMm1fZG9tYWluICpwMm0sIGVwdF9lbnRyeV90ICplbnRyeSwKPiA+Pj4+Pj4+ICAg ICAgICAgICAgICBlbnRyeS0+YSA9IGVudHJ5LT5kID0gISFjcHVfaGFzX3ZteF9lcHRfYWQ7Cj4g Pj4+Pj4+PiAgICAgICAgICAgICAgYnJlYWs7Cj4gPj4+Pj4+PiAgICAgICAgICBjYXNlIHAybV9n cmFudF9tYXBfcm86Cj4gPj4+Pj4+PiAtICAgICAgICBjYXNlIHAybV9tbWlvX3dyaXRlX2RtOgo+ ID4+Pj4+Pj4gKyAgICAgICAgY2FzZSBwMm1faW9yZXFfc2VydmVyOgo+ID4+Pj4+Pj4gICAgICAg ICAgICAgIGVudHJ5LT5yID0gMTsKPiA+Pj4+Pj4+ICAgICAgICAgICAgICBlbnRyeS0+dyA9IGVu dHJ5LT54ID0gMDsKPiA+Pj4+Pj4+ICAgICAgICAgICAgICBlbnRyeS0+YSA9ICEhY3B1X2hhc192 bXhfZXB0X2FkOwo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQu YyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tCj4gcHQuYwo+ID4+Pj4+Pj4gaW5kZXggM2Q4MDYxMi4u ZWFiZDJlMyAxMDA2NDQKPiA+Pj4+Pj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwo+ ID4+Pj4+Pj4gKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCj4gPj4+Pj4+PiBAQCAtOTQs NyArOTQsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZwo+ID4+Pj4gcDJtX3R5cGVfdG9fZmxhZ3Mo cDJtX3R5cGVfdAo+ID4+Pj4+PiB0LCBtZm5fdCBtZm4sCj4gPj4+Pj4+PiAgICAgIGRlZmF1bHQ6 Cj4gPj4+Pj4+PiAgICAgICAgICByZXR1cm4gZmxhZ3MgfCBfUEFHRV9OWF9CSVQ7Cj4gPj4+Pj4+ PiAgICAgIGNhc2UgcDJtX2dyYW50X21hcF9ybzoKPiA+Pj4+Pj4+IC0gICAgY2FzZSBwMm1fbW1p b193cml0ZV9kbToKPiA+Pj4+Pj4+ICsgICAgY2FzZSBwMm1faW9yZXFfc2VydmVyOgo+ID4+Pj4+ Pj4gICAgICAgICAgcmV0dXJuIGZsYWdzIHwgUDJNX0JBU0VfRkxBR1MgfCBfUEFHRV9OWF9CSVQ7 Cj4gPj4+Pj4+PiAgICAgIGNhc2UgcDJtX3JhbV9ybzoKPiA+Pj4+Pj4+ICAgICAgY2FzZSBwMm1f cmFtX2xvZ2RpcnR5Ogo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFk b3cvbXVsdGkuYwo+ID4+Pj4+PiBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYwo+ID4+ Pj4+Pj4gaW5kZXggZTVjODQ5OS4uYzgxMzAyYSAxMDA2NDQKPiA+Pj4+Pj4+IC0tLSBhL3hlbi9h cmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYwo+ID4+Pj4+Pj4gKysrIGIveGVuL2FyY2gveDg2L21t L3NoYWRvdy9tdWx0aS5jCj4gPj4+Pj4+PiBAQCAtMzIyNSw3ICszMjI1LDcgQEAgc3RhdGljIGlu dCBzaF9wYWdlX2ZhdWx0KHN0cnVjdCB2Y3B1ICp2LAo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+ICAgICAg LyogTmVlZCB0byBoYW5kIG9mZiBkZXZpY2UtbW9kZWwgTU1JTyB0byB0aGUgZGV2aWNlIG1vZGVs ICovCj4gPj4+Pj4+PiAgICAgIGlmICggcDJtdCA9PSBwMm1fbW1pb19kbQo+ID4+Pj4+Pj4gLSAg ICAgICAgIHx8IChwMm10ID09IHAybV9tbWlvX3dyaXRlX2RtICYmIGZ0ID09Cj4gZnRfZGVtYW5k X3dyaXRlKSApCj4gPj4+Pj4+PiArICAgICAgICAgfHwgKHAybXQgPT0gcDJtX2lvcmVxX3NlcnZl ciAmJiBmdCA9PSBmdF9kZW1hbmRfd3JpdGUpICkKPiA+Pj4+Pj4+ICAgICAgewo+ID4+Pj4+Pj4g ICAgICAgICAgZ3BhID0gZ3Vlc3Rfd2Fsa190b19ncGEoJmd3KTsKPiA+Pj4+Pj4+ICAgICAgICAg IGdvdG8gbW1pbzsKPiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3Ay bS5oIGIveGVuL2luY2x1ZGUvYXNtLQo+IHg4Ni9wMm0uaAo+ID4+Pj4+Pj4gaW5kZXggNTM5MmVi MC4uZWUyZWE5YyAxMDA2NDQKPiA+Pj4+Pj4+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJt LmgKPiA+Pj4+Pj4+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKPiA+Pj4+Pj4+IEBA IC03MSw3ICs3MSw3IEBAIHR5cGVkZWYgZW51bSB7Cj4gPj4+Pj4+PiAgICAgIHAybV9yYW1fc2hh cmVkID0gMTIsICAgICAgICAgIC8qIFNoYXJlZCBvciBzaGFyYWJsZSBtZW1vcnkgKi8KPiA+Pj4+ Pj4+ICAgICAgcDJtX3JhbV9icm9rZW4gPSAxMywgICAgICAgICAgLyogQnJva2VuIHBhZ2UsIGFj Y2VzcyBjYXVzZQo+ID4+Pj4+Pj4gZG9tYWluCj4gPj4+PiBjcmFzaAo+ID4+Pj4+PiAqLwo+ID4+ Pj4+Pj4gICAgICBwMm1fbWFwX2ZvcmVpZ24gID0gMTQsICAgICAgICAvKiByYW0gcGFnZXMgZnJv bSBmb3JlaWduCj4gPj4+Pj4+PiBkb21haW4gKi8KPiA+Pj4+Pj4+IC0gICAgcDJtX21taW9fd3Jp dGVfZG0gPSAxNSwgICAgICAgLyogUmVhZC1vbmx5OyB3cml0ZXMgZ28gdG8gdGhlCj4gPj4+Pj4+ PiBkZXZpY2UKPiA+Pj4+Pj4gbW9kZWwgKi8KPiA+Pj4+Pj4+ICsgICAgcDJtX2lvcmVxX3NlcnZl ciA9IDE1LAo+ID4+Pj4+Pj4gIH0gcDJtX3R5cGVfdDsKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiAgLyog TW9kaWZpZXJzIHRvIHRoZSBxdWVyeSAqLwo+ID4+Pj4+Pj4gQEAgLTExMiw3ICsxMTIsNyBAQCB0 eXBlZGVmIHVuc2lnbmVkIGludCBwMm1fcXVlcnlfdDsKPiA+Pj4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgfCBwMm1fdG9fbWFzayhwMm1fcmFtX3JvKSAgICAgICAgIFwKPiA+Pj4+Pj4+ICAg ICAgICAgICAgICAgICAgICAgICAgfCBwMm1fdG9fbWFzayhwMm1fZ3JhbnRfbWFwX3JvKSAgIFwK PiA+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgfCBwMm1fdG9fbWFzayhwMm1fcmFtX3No YXJlZCkgICAgIFwKPiA+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgfCBwMm1fdG9fbWFz ayhwMm1fbW1pb193cml0ZV9kbSkpCj4gPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgIHwg cDJtX3RvX21hc2socDJtX2lvcmVxX3NlcnZlcikpCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gIC8qIFdy aXRlLWRpc2NhcmQgdHlwZXMsIHdoaWNoIHNob3VsZCBkaXNjYXJkIHRoZSB3cml0ZQo+ID4+Pj4+ Pj4gb3BlcmF0aW9ucyAqLwo+ID4+Pj4+Pj4gICNkZWZpbmUgUDJNX0RJU0NBUkRfV1JJVEVfVFlQ RVMKPiAocDJtX3RvX21hc2socDJtX3JhbV9ybykgICAgIFwKPiA+Pj4+Pj4+IGRpZmYgLS1naXQg YS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCj4gPj4+Pj4+IGIveGVuL2luY2x1ZGUv cHVibGljL2h2bS9odm1fb3AuaAo+ID4+Pj4+Pj4gaW5kZXggMTYwNjE4NS4uYjNlNDVjZiAxMDA2 NDQKPiA+Pj4+Pj4+IC0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKPiA+Pj4+ Pj4+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKPiA+Pj4+Pj4+IEBAIC04 Myw3ICs4MywxMyBAQCB0eXBlZGVmIGVudW0gewo+ID4+Pj4+Pj4gICAgICBIVk1NRU1fcmFtX3J3 LCAgICAgICAgICAgICAvKiBOb3JtYWwgcmVhZC93cml0ZSBndWVzdCBSQU0gKi8KPiA+Pj4+Pj4+ ICAgICAgSFZNTUVNX3JhbV9ybywgICAgICAgICAgICAgLyogUmVhZC1vbmx5OyB3cml0ZXMgYXJl Cj4gPj4+Pj4+PiBkaXNjYXJkZWQgKi8KPiA+Pj4+Pj4+ICAgICAgSFZNTUVNX21taW9fZG0sICAg ICAgICAgICAgLyogUmVhZHMgYW5kIHdyaXRlIGdvIHRvIHRoZSBkZXZpY2UKPiA+Pj4+IG1vZGVs Cj4gPj4+Pj4+ICovCj4gPj4+Pj4+PiAtICAgIEhWTU1FTV9tbWlvX3dyaXRlX2RtICAgICAgIC8q IFJlYWQtb25seTsgd3JpdGVzIGdvIHRvIHRoZQo+ID4+Pj4+Pj4gZGV2aWNlCj4gPj4+Pj4+IG1v ZGVsICovCj4gPj4+Pj4+PiArI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQw NzAwCj4gPj4+Pj4+PiArICAgIEhWTU1FTV9tbWlvX3dyaXRlX2RtLCAgICAgIC8qIFJlYWQtb25s eTsgd3JpdGVzIGdvIHRvIHRoZQo+ID4+Pj4+Pj4gZGV2aWNlCj4gPj4+Pj4+IG1vZGVsICovCj4g Pj4+Pj4+PiArI2Vsc2UKPiA+Pj4+Pj4+ICsgICAgSFZNTUVNX3VudXNlZCwgICAgICAgICAgICAg LyogUGxhY2Vob2xkZXI7IHNldHRpbmcgbWVtb3J5IHRvCj4gPj4+Pj4+PiB0aGlzCj4gPj4+PiB0 eXBlCj4gPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwgZmFp bCBmb3IgY29kZSBhZnRlciA0LjcuMCAqLwo+ID4+Pj4+Pj4gKyNlbmRpZgo+ID4+Pj4+Pj4gKyAg ICBIVk1NRU1faW9yZXFfc2VydmVyCj4gPj4+Pj4+Cj4gPj4+Pj4+IEFsc28sIEkgZG9uJ3QgdGhp bmsgd2UndmUgaGFkIGEgY29udmluY2luZyBhcmd1bWVudCBmb3Igd2h5IHRoaXMKPiA+Pj4+Pj4g cGF0Y2gKPiA+Pj4+Pj4gbmVlZHMgdG8gYmUgaW4gNC43LiAgVGhlIHAybSBuYW1lIGNoYW5nZXMg YXJlIGludGVybmFsIG9ubHksIGFuZCBzbwo+ID4+Pj4+PiBkb24ndCBuZWVkIHRvIGJlIG1hZGUg YXQgYWxsOyBhbmQgdGhlIG9sZCBmdW5jdGlvbmFsaXR5IHdpbGwgd29yayBhcwo+ID4+Pj4+PiB3 ZWxsIGFzIGl0IGV2ZXIgZGlkLiAgRnVydGhlcm1vcmUsIHRoZSB3aG9sZSByZWFzb24gd2UncmUg aW4gdGhpcwo+ID4+Pj4+PiBzaXR1YXRpb24gaXMgdGhhdCB3ZSBjaGVja2VkIGluIGEgcHVibGlj bHktdmlzaWJsZSBjaGFuZ2UgdG8gdGhlCj4gPj4+Pj4+IGludGVyZmFjZSBiZWZvcmUgaXQgd2Fz IHByb3Blcmx5IHJlYWR5OyBJIHRoaW5rIHdlIHNob3VsZCBhdm9pZAo+ID4+Pj4+PiBtYWtpbmcK PiA+Pj4+Pj4gdGhlIHNhbWUgbWlzdGFrZSB0aGlzIHRpbWUuCj4gPj4+Pj4+Cj4gPj4+Pj4+IFNv IHBlcnNvbmFsbHkgSSdkIGp1c3QgbGVhdmUgdGhpcyBwYXRjaCBlbnRpcmVseSBmb3IgNC44OyBi dXQgaWYgUGF1bAo+ID4+Pj4+PiBhbmQvb3IgSmFuIGhhdmUgc3Ryb25nIG9waW5pb25zLCB0aGVu IEkgd291bGQgc2F5IGNoZWNrIGluIG9ubHkgYQo+ID4+Pj4+PiBwYXRjaCB0byBkbyB0aGUgI2lm LyNlbHNlLyNlbmRpZiwgYW5kIGxlYXZlIGJvdGggdGhlIHAybSB0eXBlCj4gY2hhbmdlcwo+ID4+ Pj4+PiBhbmQgdGhlIG5ldyBIVk1NRU1faW9yZXFfc2VydmVyIGVudW0gZm9yIHdoZW4gdGhlIDQu OAo+ID4+Pj4gZGV2ZWxvcG1lbnQKPiA+Pj4+Pj4gd2luZG93IG9wZW5zLgo+ID4+Pj4+Pgo+ID4+ Pj4+Cj4gPj4+Pj4gSWYgdGhlIHdob2xlIHNlcmllcyBpcyBnb2luZyBpbiB0aGVuIEkgdGhpbmsg dGhpcyBwYXRjaCBpcyBvay4gSWYKPiA+Pj4+PiB0aGlzIHRoZQo+ID4+PiBvbmx5Cj4gPj4+PiBw YXRjaCB0aGF0IGlzIGdvaW5nIGluIGZvciA0LjcgdGhlbiBJIHRoaW5nIHdlIG5lZWQgdGhlIHBh dGNoIHRvCj4gPj4+PiBodm1fb3AuaCB0bwo+ID4+Pj4gZGVwcmVjYXRlIHRoZSBvbGQgdHlwZSBh bmQgdGhhdCdzIGl0LiBXZSBkZWZpbml0ZWx5IHNob3VsZCBub3QKPiA+Pj4+IGludHJvZHVjZSBh bgo+ID4+Pj4gaW1wbGVtZW50YXRpb24gb2YgdGhlIHR5cGUgSFZNTUVNX2lvcmVxX3NlcnZlciB0 aGF0IGhhcyB0aGUgc2FtZQo+ID4+Pj4gaGFyZGNvZGVkIHNlbWFudGljcyBhcyB0aGUgb2xkIHR5 cGUgYW5kIHRoZW4gY2hhbmdlIGl0Lgo+ID4+Pj4+IFRoZSBwMm0gdHlwZSBjaGFuZ2VzIGFyZSBh bHNvIHdyb25nLiBUaGF0IHR5cGUgbmVlZHMgdG8gYmUgbGVmdAo+IGFsb25lLAo+ID4+Pj4gcHJl c3VtYWJseSwgc28gdGhhdCBhbnl0aGluZyB1c2luZyBIVk1NRU1fbW1pb193cml0ZV9kbSBhbmQK PiA+Pj4+IGNvbXBpbGVkIHRvIHRoZSBvbGQgaW50ZXJmYWNlIHZlcnNpb24gY29udGludWVzIHRv IGZ1bmN0aW9uLiBJIHRoaW5rCj4gPj4+PiBIVk1NRU1faW9yZXFfc2VydmVyIG5lZWRzIHRvIG1h cCB0byBhIG5ldyBwMm0gdHlwZSB3aGljaAo+IHNob3VsZCBiZQo+ID4+Pj4gaW50cm9kdWNlZCBp biBwYXRjaCAjMy4KPiA+Pj4+Pgo+ID4+Pj4KPiA+Pj4+IFNvcnJ5LCBJJ20gYWxzbyBjb25mdXNl ZCBub3cuIDooCj4gPj4+Pgo+ID4+Pj4gRG8gd2UgcmVhbGx5IHdhbnQgdG8gaW50cm9kdWNlIGEg bmV3IHAybSB0eXBlPyBXaHk/Cj4gPj4+PiBNeSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBwcmV2aW91 cyBhZ3JlZW1lbnQgaXMgdGhhdDoKPiA+Pj4+IDE+IFdlIG5lZWQgdGhlIGludGVyZmFjZSB0byB3 b3JrIG9uIG9sZCBoeXBlcnZpc29yIGZvcgo+ID4+Pj4gSFZNTUVNX21taW9fd3JpdGVfZG07Cj4g Pj4+PiAyPiBXZSBuZWVkIHRoZSBpbnRlcmZhY2UgdG8gcmV0dXJuIC1FSU5WQUwgZm9yIG5ldyBo eXBlcnZpc29yCj4gPj4+PiBmb3IgSFZNTUVNX21taW9fd3JpdGVfZG07Cj4gPj4+PiAzPiBXZSBu ZWVkIHRoZSBuZXcgdHlwZSBIVk1NRU1faW9yZXFfc2VydmVyIHRvIHdvcmsgb24gbmV3Cj4gPj4+ PiBoeXBlcnZpc29yOwo+ID4+Pj4KPiA+Pj4+IERpZCBJIG1pc3Mgc29tZXRoaW5nPyBPciBJIHRv dGFsbHkgbWlzdW5kZXJzdG9vZD8KPiA+Pj4+Cj4gPj4+Cj4gPj4+IEkgZG9uJ3Qga25vdy4gSSdt IGNvbmZ1c2VkIHRvby4gV2hhdCB3ZSBkZWZpbml0ZWx5IGRvbid0IHdhbnQgdG8gZG8KPiA+Pj4g aXMgYWRkIGEKPiA+Pj4gbmV3IEhWTU1FTSB0eXBlIGFuZCBoYXZlIGl0IG1hcCB0byB0aGUgb2xk IGJlaGF2aW91ciwgb3RoZXJ3aXNlCj4gd2UncmUgbm8KPiA+Pj4gYmV0dGVyIG9mZi4KPiA+Pj4K PiA+Pj4gVGhlIHF1ZXN0aW9uIEknbSBub3QgY2xlYXIgb24gdGhlIGFuc3dlciB0byBpcyB3aGF0 IGhhcHBlbnMgdG8gb2xkIGNvZGU6Cj4gPj4+Cj4gPj4+IFNob3VsZCBpdCBjb250aW51ZSB0byBj b21waWxlPyBJZiBzbywgc2hvdWxkIGl0IGNvbnRpbnVlIHRvIHJ1bi4KPiA+Pgo+ID4+IFdlIG9u bHkgbmVlZCB0byBiZSBjb25jZXJuZWQgYWJvdXQgdGhlICJnZXQgdHlwZSIgZnVuY3Rpb25hbGl0 eSwKPiA+PiBhcyB0aGF0J3MgdGhlIG9ubHkgdGhpbmcgYW4gYXJiaXRyYXJ5IGd1ZXN0IGNhbiB1 c2UuIElmIHRoZQo+ID4+IGh5cGVyY2FsbCBzaW1wbHkgbmV2ZXIgcmV0dXJucyB0aGUgb2xkIHR5 cGUsIHRoZW4gb2xkIGNvZGUgd2lsbAo+ID4+IHN0aWxsIHdvcmsgKGl0J2xsIGp1c3QgaGF2ZSBz b21lIGRlYWQgY29kZSBvbiBuZXcgWGVuKSwgYW5kIGhlbmNlCj4gPj4gaXQgY29tcGlsaW5nIGFn YWluc3QgdGhlIG9sZGVyIGludGVyZmFjZSBpcyBmaW5lIChhbmQsIGZyb20gZ2VuZXJhbAo+ID4+ IGNvbnNpZGVyYXRpb25zLCBhIHJlcXVpcmVtZW50KS4KPiA+Pgo+ID4KPiA+IFRoYW5rcyBKYW4u IEFuZCBJIHRoaW5rIHRoZSBhbnN3ZXIgaXMgeWVzLiBUaGUgbmV3IGh5cGVydmlzb3Igd2lsbAo+ ID4gb25seSByZXR1cm4gSFZNTUVNX2lvcmVxX3NlcnZlciwgd2hpY2ggaXMgYSBkaWZmZXJlbnQg dmFsdWUgbm93Lgo+IAo+IFJpZ2h0IC0tIGJ1dCB3ZSBjYW4ndCBjaGVjayBpbiB0aGlzIGVudGly ZSBzZXJpZXMgZm9yIDQuNzsgaG93ZXZlciwgUGF1bAo+IHdvdWxkIGxpa2UgdG8gbWFrZSBpdCBj bGVhciB0aGF0IEhWTU1FTV9tbWlvX3dyaXRlX2RtIGlzIGRlcHJlY2F0ZWQ7Cj4gc28KPiB3ZSBu ZWVkIGEgcGF0Y2ggd2hpY2ggZG9lcyB0aGUgI2lmZGVmLyNlbHNlLyNlbmRpZiBjbGF1c2UsIGFu ZCB0aGVuCj4gZXZlcnl0aGluZyBlbHNlIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgdGhhdCB0aGlu Z3MgY29tcGlsZSBwcm9wZXJseQo+IGVpdGhlciB3YXksIGJ1dCBubyBwMm0gY2hhbmdlcyBvciBh ZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHkuCj4gCgpGb3IgY2xhcml0eSwgZG8geW91IGV4cGVjdCBh bnkgZXhpc3RpbmcgdXNlIG9mIEhWTU1FTV9tbWlvX3dyaXRlX2RtIHRvIGNvbnRpbnVlIHRvICpm dW5jdGlvbio/IEkgYWdyZWUgdGhhdCB0aGluZ3Mgc2hvdWxkIGNvbnRpbnVlIHRvIGJ1aWxkLCBi dXQgaWYgdGhleSBkb24ndCBuZWVkIHRvIGZ1bmN0aW9uIHRoZW4gdGhlIG5vdyByZWR1bmRhbnQg cDJtIHR5cGUgc2hvdWxkIGJlIHJlbW92ZWQgSU1PIGFuZCBhbnkgYXR0ZW1wdCB0byBzZXQgYSBw YWdlIHRvIEhWTU1FTV9tbWlvX3dyaXRlX2RtIChvciB0aGUgbmV3IEhWTU1FTV91bnVzZWQpIG5h bWUgc2hvdWxkIHJlc3VsdCBpbiAtRUlOVkFMLiBXaGF0IGlzIHlvdXIgcG9zaXRpb24gb24gdGhp cz8KCiAgUGF1bAoKPiAgLUdlb3JnZQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK