From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH 2/2] xen/input: add multi-touch support Date: Fri, 12 May 2017 16:44:06 +0300 Message-ID: <8d522e12-8a1b-1eb4-981c-9bb1042e9703__30078.1642007225$1494596711$gmane$org@gmail.com> References: <1492083484-31786-1-git-send-email-andr2000@gmail.com> <1492083484-31786-3-git-send-email-andr2000@gmail.com> <20170421021018.GB23279@dtor-ws> <8a43bbdf-f843-2c4d-e7b7-0cddb2e7fd7e@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d9Ara-0006pS-NY for xen-devel@lists.xenproject.org; Fri, 12 May 2017 13:44:10 +0000 Received: by mail-wr0-f195.google.com with SMTP id v42so7690268wrc.3 for ; Fri, 12 May 2017 06:44:09 -0700 (PDT) In-Reply-To: <8a43bbdf-f843-2c4d-e7b7-0cddb2e7fd7e@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Dmitry Torokhov Cc: jgross@suse.com, vlad.babchuk@gmail.com, linux-kernel@vger.kernel.org, andrii.anisov@gmail.com, olekstysh@gmail.com, al1img@gmail.com, linux-input@vger.kernel.org, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org Z2VudGxlIHJlbWluZGVyCgoKT24gMDUvMDUvMjAxNyAwNzo0NSBBTSwgT2xla3NhbmRyIEFuZHJ1 c2hjaGVua28gd3JvdGU6Cj4gSGksIERtaXRyeSEKPgo+IE9uIDA0LzIxLzIwMTcgMDk6NDAgQU0s IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOgo+PiBIaSwgRG1pdHJ5IQo+Pgo+PiBPbiAw NC8yMS8yMDE3IDA1OjEwIEFNLCBEbWl0cnkgVG9yb2tob3Ygd3JvdGU6Cj4+PiBIaSBPbGVrc2Fu ZHIsCj4+Pgo+Pj4gT24gVGh1LCBBcHIgMTMsIDIwMTcgYXQgMDI6Mzg6MDRQTSArMDMwMCwgT2xl a3NhbmRyIEFuZHJ1c2hjaGVua28gCj4+PiB3cm90ZToKPj4+PiBGcm9tOiBPbGVrc2FuZHIgQW5k cnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+Cj4+Pj4KPj4+PiBF eHRlbmQgeGVuX2tiZGZyb250IHRvIHByb3ZpZGUgbXVsdGktdG91Y2ggc3VwcG9ydAo+Pj4+IHRv IHVucHJpdmlsZWdlZCBkb21haW5zLgo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRy IEFuZHJ1c2hjaGVua28gCj4+Pj4gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+ Pj4+IC0tLQo+Pj4+ICAgZHJpdmVycy9pbnB1dC9taXNjL3hlbi1rYmRmcm9udC5jIHwgMTQyIAo+ Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4+Pj4gICAxIGZpbGUg Y2hhbmdlZCwgMTQwIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+Pj4KPj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9taXNjL3hlbi1rYmRmcm9udC5jIAo+Pj4+IGIvZHJpdmVy cy9pbnB1dC9taXNjL3hlbi1rYmRmcm9udC5jCj4+Pj4gaW5kZXggMDFjMjdiNGMzMjg4Li5lNWQw NjRhYWEyMzcgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9pbnB1dC9taXNjL3hlbi1rYmRmcm9u dC5jCj4+Pj4gKysrIGIvZHJpdmVycy9pbnB1dC9taXNjL3hlbi1rYmRmcm9udC5jCj4+Pj4gQEAg LTE3LDYgKzE3LDcgQEAKPj4+PiAgICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgo+Pj4+ICAgI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+Pj4+ICAgI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+Cj4+ Pj4gKyNpbmNsdWRlIDxsaW51eC9pbnB1dC9tdC5oPgo+Pj4+ICAgI2luY2x1ZGUgPGxpbnV4L3Ns YWIuaD4KPj4+PiAgICAgI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJ2aXNvci5oPgo+Pj4+IEBAIC0z NCwxMSArMzUsMTQgQEAKPj4+PiAgIHN0cnVjdCB4ZW5rYmRfaW5mbyB7Cj4+Pj4gICAgICAgc3Ry dWN0IGlucHV0X2RldiAqa2JkOwo+Pj4+ICAgICAgIHN0cnVjdCBpbnB1dF9kZXYgKnB0cjsKPj4+ PiArICAgIHN0cnVjdCBpbnB1dF9kZXYgKm10b3VjaDsKPj4+PiAgICAgICBzdHJ1Y3QgeGVua2Jk X3BhZ2UgKnBhZ2U7Cj4+Pj4gICAgICAgaW50IGdyZWY7Cj4+Pj4gICAgICAgaW50IGlycTsKPj4+ PiAgICAgICBzdHJ1Y3QgeGVuYnVzX2RldmljZSAqeGJkZXY7Cj4+Pj4gICAgICAgY2hhciBwaHlz WzMyXTsKPj4+PiArICAgIC8qIGN1cnJlbnQgTVQgc2xvdC9jb250YWN0IElEIHdlIGFyZSBpbmpl Y3RpbmcgZXZlbnRzIGluICovCj4+Pj4gKyAgICBpbnQgbXRvdWNoX2N1cl9jb250YWN0X2lkOwo+ Pj4+ICAgfTsKPj4+PiAgICAgZW51bSB7IEtQQVJBTV9YLCBLUEFSQU1fWSwgS1BBUkFNX0NOVCB9 Owo+Pj4+IEBAIC00Nyw2ICs1MSwxMiBAQCBtb2R1bGVfcGFyYW1fYXJyYXkocHRyX3NpemUsIGlu dCwgTlVMTCwgMDQ0NCk7Cj4+Pj4gICBNT0RVTEVfUEFSTV9ERVNDKHB0cl9zaXplLAo+Pj4+ICAg ICAgICJQb2ludGluZyBkZXZpY2Ugd2lkdGgsIGhlaWdodCBpbiBwaXhlbHMgKGRlZmF1bHQgODAw LDYwMCkiKTsKPj4+PiAgICtlbnVtIHsgS1BBUkFNX01UX1gsIEtQQVJBTV9NVF9ZLCBLUEFSQU1f TVRfQ05UIH07Cj4+Pj4gK3N0YXRpYyBpbnQgbXRvdWNoX3NpemVbS1BBUkFNX01UX0NOVF0gPSB7 IFhFTkZCX1dJRFRILCAKPj4+PiBYRU5GQl9IRUlHSFQgfTsKPj4+PiArbW9kdWxlX3BhcmFtX2Fy cmF5KG10b3VjaF9zaXplLCBpbnQsIE5VTEwsIDA0NDQpOwo+Pj4+ICtNT0RVTEVfUEFSTV9ERVND KHB0cl9zaXplLAo+Pj4+ICsgICAgIk11bHRpLXRvdWNoIGRldmljZSB3aWR0aCwgaGVpZ2h0IGlu IHBpeGVscyAoZGVmYXVsdCA4MDAsNjAwKSIpOwo+Pj4+ICsKPj4+IFdoeSBkbyB5b3UgbmVlZCBz ZXBhcmF0ZSBtb2R1bGUgcGFyYW1ldGVycyBmb3IgbXVsdGktdG91Y2ggZGV2aWNlPwo+PiBwbGVh c2Ugc2VlIGJlbG93Cj4+Pgo+Pj4+ICAgc3RhdGljIGludCB4ZW5rYmRfcmVtb3ZlKHN0cnVjdCB4 ZW5idXNfZGV2aWNlICopOwo+Pj4+ICAgc3RhdGljIGludCB4ZW5rYmRfY29ubmVjdF9iYWNrZW5k KHN0cnVjdCB4ZW5idXNfZGV2aWNlICosIHN0cnVjdCAKPj4+PiB4ZW5rYmRfaW5mbyAqKTsKPj4+ PiAgIHN0YXRpYyB2b2lkIHhlbmtiZF9kaXNjb25uZWN0X2JhY2tlbmQoc3RydWN0IHhlbmtiZF9p bmZvICopOwo+Pj4+IEBAIC0xMDAsNiArMTEwLDYwIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpbnB1 dF9oYW5kbGVyKGludCBycSwgdm9pZCAKPj4+PiAqZGV2X2lkKQo+Pj4+ICAgICAgICAgICAgICAg ICAgIGlucHV0X3JlcG9ydF9yZWwoZGV2LCBSRUxfV0hFRUwsCj4+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLWV2ZW50LT5wb3MucmVsX3opOwo+Pj4+ICAgICAgICAgICAgICAgYnJlYWs7 Cj4+Pj4gKyAgICAgICAgY2FzZSBYRU5LQkRfVFlQRV9NVE9VQ0g6Cj4+Pj4gKyAgICAgICAgICAg IGRldiA9IGluZm8tPm10b3VjaDsKPj4+PiArICAgICAgICAgICAgaWYgKHVubGlrZWx5KCFkZXYp KQo+Pj4+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4+Pj4gKyAgICAgICAgICAgIGlmICh1bmxp a2VseShldmVudC0+bXRvdWNoLmNvbnRhY3RfaWQgIT0KPj4+PiArICAgICAgICAgICAgICAgICAg ICBpbmZvLT5tdG91Y2hfY3VyX2NvbnRhY3RfaWQpKSB7Cj4+PiBXaHkgaXMgdGhpcyB1bmxpa2Vs eT8gRG9lcyBjb250YWN0IElEIGNoYW5nZXMgb25jZSBpbiAxMDAwIHBhY2tldHMgb3IKPj4+IGV2 ZW4gbGVzcz8KPj4gTXUgYXNzdW1wdGlvbiB3YXMgdGhhdCByZWdhcmRsZXNzIG9mIHRoZSBmYWN0 IHRoYXQgd2UgYXJlIG11bHRpLXRvdWNoCj4+IGRldmljZSBzdGlsbCBzaW5nbGUgdG91Y2hlcyB3 aWxsIGNvbWUgaW4gbW9yZSBmcmVxdWVudGx5Cj4+IEJ1dCBJIGNhbiByZW1vdmUgKnVubGlrZWx5 KiBpZiBteSBhc3N1bXB0aW9uIGlzIG5vdCBjb3JyZWN0Cj4+Pj4gKyBpbmZvLT5tdG91Y2hfY3Vy X2NvbnRhY3RfaWQgPQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgIGV2ZW50LT5tdG91Y2guY29u dGFjdF9pZDsKPj4+PiArICAgICAgICAgICAgICAgIGlucHV0X210X3Nsb3QoZGV2LCBldmVudC0+ bXRvdWNoLmNvbnRhY3RfaWQpOwo+Pj4+ICsgICAgICAgICAgICB9Cj4+Pj4gKyAgICAgICAgICAg IHN3aXRjaCAoZXZlbnQtPm10b3VjaC5ldmVudF90eXBlKSB7Cj4+Pj4gKyAgICAgICAgICAgIGNh c2UgWEVOS0JEX01UX0VWX0RPV046Cj4+Pj4gKyAgICAgICAgICAgICAgICBpbnB1dF9tdF9yZXBv cnRfc2xvdF9zdGF0ZShkZXYsIE1UX1RPT0xfRklOR0VSLAo+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdHJ1ZSk7Cj4+Pj4gKyAgICAgICAgICAgICAgICBpbnB1dF9ldmVudChk ZXYsIEVWX0FCUywgQUJTX01UX1BPU0lUSU9OX1gsCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIGV2ZW50LT5tdG91Y2gudS5wb3MuYWJzX3gpOwo+Pj4+ICsgICAgICAgICAgICAgICAgaW5w dXRfZXZlbnQoZGV2LCBFVl9BQlMsIEFCU19NVF9QT1NJVElPTl9ZLAo+Pj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICBldmVudC0+bXRvdWNoLnUucG9zLmFic195KTsKPj4+PiArICAgICAgICAg ICAgICAgIGlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfWCwKPj4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgZXZlbnQtPm10b3VjaC51LnBvcy5hYnNfeCk7Cj4+Pj4gKyAgICAgICAgICAg ICAgICBpbnB1dF9ldmVudChkZXYsIEVWX0FCUywgQUJTX1ksCj4+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIGV2ZW50LT5tdG91Y2gudS5wb3MuYWJzX3kpOwo+Pj4+ICsgICAgICAgICAgICAg ICAgYnJlYWs7Cj4+Pj4gKyAgICAgICAgICAgIGNhc2UgWEVOS0JEX01UX0VWX1VQOgo+Pj4+ICsg ICAgICAgICAgICAgICAgaW5wdXRfbXRfcmVwb3J0X3Nsb3Rfc3RhdGUoZGV2LCBNVF9UT09MX0ZJ TkdFUiwKPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKPj4+PiAr ICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4+ICsgICAgICAgICAgICBjYXNlIFhFTktCRF9NVF9F Vl9NT1RJT046Cj4+Pj4gKyAgICAgICAgICAgICAgICBpbnB1dF9ldmVudChkZXYsIEVWX0FCUywg QUJTX01UX1BPU0lUSU9OX1gsCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LT5t dG91Y2gudS5wb3MuYWJzX3gpOwo+Pj4+ICsgICAgICAgICAgICAgICAgaW5wdXRfZXZlbnQoZGV2 LCBFVl9BQlMsIEFCU19NVF9QT1NJVElPTl9ZLAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICBldmVudC0+bXRvdWNoLnUucG9zLmFic195KTsKPj4+PiArICAgICAgICAgICAgICAgIGlucHV0 X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfWCwKPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ZXZlbnQtPm10b3VjaC51LnBvcy5hYnNfeCk7Cj4+Pj4gKyAgICAgICAgICAgICAgICBpbnB1dF9l dmVudChkZXYsIEVWX0FCUywgQUJTX1ksCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGV2 ZW50LT5tdG91Y2gudS5wb3MuYWJzX3kpOwo+Pj4+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ Pj4gKyAgICAgICAgICAgIGNhc2UgWEVOS0JEX01UX0VWX1NZTjoKPj4+PiArICAgICAgICAgICAg ICAgIGlucHV0X210X3N5bmNfZnJhbWUoZGV2KTsKPj4+PiArICAgICAgICAgICAgICAgIGJyZWFr Owo+Pj4+ICsgICAgICAgICAgICBjYXNlIFhFTktCRF9NVF9FVl9TSEFQRToKPj4+PiArICAgICAg ICAgICAgICAgIGlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfTVRfVE9VQ0hfTUFKT1IsCj4+ Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LT5tdG91Y2gudS5zaGFwZS5tYWpvcik7 Cj4+Pj4gKyAgICAgICAgICAgICAgICBpbnB1dF9ldmVudChkZXYsIEVWX0FCUywgQUJTX01UX1RP VUNIX01JTk9SLAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBldmVudC0+bXRvdWNoLnUu c2hhcGUubWlub3IpOwo+Pj4+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4+Pj4gKyAgICAgICAg ICAgIGNhc2UgWEVOS0JEX01UX0VWX09SSUVOVDoKPj4+PiArICAgICAgICAgICAgICAgIGlucHV0 X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfTVRfT1JJRU5UQVRJT04sCj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGV2ZW50LT5tdG91Y2gudS5vcmllbnRhdGlvbik7Cj4+Pj4gKyAgICAgICAg ICAgICAgICBicmVhazsKPj4+PiArICAgICAgICAgICAgfQo+Pj4+ICsgICAgICAgICAgICAvKiBv bmx5IHJlcG9ydCBzeW4gd2hlbiByZXF1ZXN0ZWQgKi8KPj4+PiArICAgICAgICAgICAgaWYgKGV2 ZW50LT5tdG91Y2guZXZlbnRfdHlwZSAhPSBYRU5LQkRfTVRfRVZfU1lOKQo+Pj4+ICsgICAgICAg ICAgICAgICAgZGV2ID0gTlVMTDsKPj4+PiAgICAgICAgICAgfQo+Pj4+ICAgICAgICAgICBpZiAo ZGV2KQo+Pj4+ICAgICAgICAgICAgICAgaW5wdXRfc3luYyhkZXYpOwo+Pj4+IEBAIC0xMTUsOSAr MTc5LDkgQEAgc3RhdGljIGludCB4ZW5rYmRfcHJvYmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRl diwKPj4+PiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB4ZW5idXNfZGV2aWNlX2lk ICppZCkKPj4+PiAgIHsKPj4+PiAgICAgICBpbnQgcmV0LCBpOwo+Pj4+IC0gICAgdW5zaWduZWQg aW50IGFiczsKPj4+PiArICAgIHVuc2lnbmVkIGludCBhYnMsIHRvdWNoOwo+Pj4+ICAgICAgIHN0 cnVjdCB4ZW5rYmRfaW5mbyAqaW5mbzsKPj4+PiAtICAgIHN0cnVjdCBpbnB1dF9kZXYgKmtiZCwg KnB0cjsKPj4+PiArICAgIHN0cnVjdCBpbnB1dF9kZXYgKmtiZCwgKnB0ciwgKm10b3VjaDsKPj4+ PiAgICAgICAgIGluZm8gPSBremFsbG9jKHNpemVvZigqaW5mbyksIEdGUF9LRVJORUwpOwo+Pj4+ ICAgICAgIGlmICghaW5mbykgewo+Pj4+IEBAIC0xNTIsNiArMjE2LDE3IEBAIHN0YXRpYyBpbnQg eGVua2JkX3Byb2JlKHN0cnVjdCB4ZW5idXNfZGV2aWNlIAo+Pj4+ICpkZXYsCj4+Pj4gICAgICAg ICAgIH0KPj4+PiAgICAgICB9Cj4+Pj4gICArICAgIHRvdWNoID0geGVuYnVzX3JlYWRfdW5zaWdu ZWQoZGV2LT5ub2RlbmFtZSwKPj4+PiArICAgICAgICAgICAgICAgICAgICAgWEVOS0JEX0ZJRUxE X0ZFQVRfTVRPVUNILCAwKTsKPj4+PiArICAgIGlmICh0b3VjaCkgewo+Pj4+ICsgICAgICAgIHJl dCA9IHhlbmJ1c193cml0ZShYQlRfTklMLCBkZXYtPm5vZGVuYW1lLAo+Pj4+ICsgICAgICAgICAg ICAgICAgICAgWEVOS0JEX0ZJRUxEX1JFUV9NVE9VQ0gsICIxIik7Cj4+Pj4gKyAgICAgICAgaWYg KHJldCkgewo+Pj4+ICsgICAgICAgICAgICBwcl93YXJuaW5nKCJ4ZW5rYmQ6IGNhbid0IHJlcXVl c3QgbXVsdGktdG91Y2giKTsKPj4+PiArICAgICAgICAgICAgdG91Y2ggPSAwOwo+Pj4+ICsgICAg ICAgIH0KPj4+PiArICAgIH0KPj4+PiArCj4+Pj4gICAgICAgLyoga2V5Ym9hcmQgKi8KPj4+PiAg ICAgICBrYmQgPSBpbnB1dF9hbGxvY2F0ZV9kZXZpY2UoKTsKPj4+PiAgICAgICBpZiAoIWtiZCkK Pj4+PiBAQCAtMjA4LDYgKzI4Myw2NyBAQCBzdGF0aWMgaW50IHhlbmtiZF9wcm9iZShzdHJ1Y3Qg eGVuYnVzX2RldmljZSAKPj4+PiAqZGV2LAo+Pj4+ICAgICAgIH0KPj4+PiAgICAgICBpbmZvLT5w dHIgPSBwdHI7Cj4+Pj4gICArICAgIC8qIG11bHRpLXRvdWNoIGRldmljZSAqLwo+Pj4+ICsgICAg aWYgKHRvdWNoKSB7Cj4+Pj4gKyAgICAgICAgaW50IG51bV9jb250LCB3aWR0aCwgaGVpZ2h0Owo+ Pj4+ICsKPj4+PiArICAgICAgICBtdG91Y2ggPSBpbnB1dF9hbGxvY2F0ZV9kZXZpY2UoKTsKPj4+ PiArICAgICAgICBpZiAoIW10b3VjaCkKPj4+PiArICAgICAgICAgICAgZ290byBlcnJvcl9ub21l bTsKPj4+PiArCj4+Pj4gKyAgICAgICAgbnVtX2NvbnQgPSB4ZW5idXNfcmVhZF91bnNpZ25lZChp bmZvLT54YmRldi0+bm9kZW5hbWUsCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFhFTktC RF9GSUVMRF9NVF9OVU1fQ09OVEFDVFMsCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIDEp Owo+Pj4+ICsgICAgICAgIHdpZHRoID0geGVuYnVzX3JlYWRfdW5zaWduZWQoaW5mby0+eGJkZXYt Pm5vZGVuYW1lLAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgWEVOS0JEX0ZJRUxEX01U X1dJRFRILAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgWEVORkJfV0lEVEgpOwo+Pj4+ ICsgICAgICAgIGhlaWdodCA9IHhlbmJ1c19yZWFkX3Vuc2lnbmVkKGluZm8tPnhiZGV2LT5ub2Rl bmFtZSwKPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5LQkRfRklFTERfTVRfSEVJ R0hULAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTkZCX0hFSUdIVCk7Cj4+PiBD dXJpb3VzIHdoeSB5b3UgbmVlZCBzZXBhcmF0ZSBwYXJhbWV0ZXJzIGhlcmUgdG9vLi4uCj4+IFRo aXMgaXMgYmVjYXVzZSBtdCBwYXJhbWV0ZXJzIGFyZSBkaWZmZXJlbnQgZnJvbSBwdHIKPj4gaW4g YSB3YXkgdGhhdCB0aGV5IGFyZSBjb25maWd1cmFibGUgcGVyIGZyb250IGRyaXZlcidzCj4+IGlu c3RhbmNlIHJhdGhlciB0aGFuIHBlciBiYWNrZW5kLCBlLmcuIGluIFhlblN0b3JlOgo+Pgo+PiAv bG9jYWwvZG9tYWluLzAvYmFja2VuZC92a2JkLzEvMC93aWR0aCA9ICIxOTIwIgo+PiAvbG9jYWwv ZG9tYWluLzAvYmFja2VuZC92a2JkLzEvMC9oZWlnaHQgPSAiMTA4MCIKPj4KPj4gL2xvY2FsL2Rv bWFpbi8xL2RldmljZS92a2JkLzAvbXVsdGktdG91Y2gtd2lkdGggPSAiMTkyMCIKPj4gL2xvY2Fs L2RvbWFpbi8xL2RldmljZS92a2JkLzAvbXVsdGktdG91Y2gtaGVpZ2h0ID0gIjEwODAiCj4+IC9s b2NhbC9kb21haW4vMS9kZXZpY2UvdmtiZC8wL211bHRpLXRvdWNoLW51bS1jb250YWN0cyA9ICIx MCIKPj4KPj4gL2xvY2FsL2RvbWFpbi8xL2RldmljZS92a2JkLzEvbXVsdGktdG91Y2gtd2lkdGgg PSAiODAwIgo+PiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZrYmQvMS9tdWx0aS10b3VjaC1oZWln aHQgPSAiNjAwIgo+PiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZrYmQvMS9tdWx0aS10b3VjaC1u dW0tY29udGFjdHMgPSAiMyIKPj4KPj4gVGhlIG1haW4gcmVhc29uIGZvciBzdWNoIGNvbmZpZ3Vy YXRpb24gaXMgdGhhdCB5b3UgY2FuCj4+IGNvbmZpZ3VyZSBtdWx0aXBsZSBtdCBpbnB1dCBkZXZp Y2VzIGV2ZW4gZm9yIHRoZSBzYW1lIGd1ZXN0Cj4+IHdpdGggZGlmZmVyZW50IHJlc29sdXRpb25z IHdoaWNoIG1heSBub3QgbWF0Y2ggdGhvc2UKPj4gY29uZmlndXJlZCBmb3IgcHRyLgo+PiAoSW4g bXkgdXNlLWNhc2UgSSB1c2UgbmV3IGRpc3BsaWYgcHJvdG9jb2wgWzFdIGluIGNvbmp1bmN0aW9u Cj4+IHdpdGggbXQgaW5wdXQgZGV2aWNlcyBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYmFja2VuZCBp cyBub3QKPj4gUUVNVSdzIHhlbmZiKQo+Pgo+PiBBcyB0byBtb2R1bGUgcGFyYW1ldGVycywgSSBh ZGRlZCB0aG9zZSB0byBiZSBjb25zaXN0ZW50IHdpdGgKPj4gcHRyIGRldmljZS4gRG8geW91IHRo aW5rIHdlIGNhbiBsaXZlIHdpdGhvdXQgdGhlbSBhbmQKPj4gZG8geW91IHdhbnQgbWUgdG8gcmVt b3ZlIHRoZW0/Cj4+Pj4gKwo+Pj4+ICsgICAgICAgIG10b3VjaC0+bmFtZSA9ICJYZW4gVmlydHVh bCBNdWx0aS10b3VjaCI7Cj4+Pj4gKyAgICAgICAgbXRvdWNoLT5waHlzID0gaW5mby0+cGh5czsK Pj4+PiArICAgICAgICBtdG91Y2gtPmlkLmJ1c3R5cGUgPSBCVVNfUENJOwo+Pj4+ICsgICAgICAg IG10b3VjaC0+aWQudmVuZG9yID0gMHg1ODUzOwo+Pj4+ICsgICAgICAgIG10b3VjaC0+aWQucHJv ZHVjdCA9IDB4ZmZmZDsKPj4+PiArCj4+Pj4gKyAgICAgICAgX19zZXRfYml0KEVWX0FCUywgbXRv dWNoLT5ldmJpdCk7Cj4+Pj4gKyAgICAgICAgX19zZXRfYml0KEVWX0tFWSwgbXRvdWNoLT5ldmJp dCk7Cj4+Pj4gKyAgICAgICAgX19zZXRfYml0KEJUTl9UT1VDSCwgbXRvdWNoLT5rZXliaXQpOwo+ Pj4+ICsKPj4+PiArICAgICAgICBpbnB1dF9zZXRfYWJzX3BhcmFtcyhtdG91Y2gsIEFCU19YLAo+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAwLCB3aWR0aCwgMCwgMCk7Cj4+Pj4gKyAgICAgICAg aW5wdXRfc2V0X2Fic19wYXJhbXMobXRvdWNoLCBBQlNfWSwKPj4+PiArICAgICAgICAgICAgICAg ICAgICAgMCwgaGVpZ2h0LCAwLCAwKTsKPj4+PiArICAgICAgICBpbnB1dF9zZXRfYWJzX3BhcmFt cyhtdG91Y2gsIEFCU19QUkVTU1VSRSwKPj4+PiArICAgICAgICAgICAgICAgICAgICAgMCwgMjU1 LCAwLCAwKTsKPj4+PiArCj4+Pj4gKyAgICAgICAgaW5wdXRfc2V0X2Fic19wYXJhbXMobXRvdWNo LCBBQlNfTVRfVE9VQ0hfTUFKT1IsCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIDAsIDI1NSwg MCwgMCk7Cj4+Pj4gKyAgICAgICAgaW5wdXRfc2V0X2Fic19wYXJhbXMobXRvdWNoLCBBQlNfTVRf UE9TSVRJT05fWCwKPj4+PiArICAgICAgICAgICAgICAgICAgICAgMCwgd2lkdGgsIDAsIDApOwo+ Pj4+ICsgICAgICAgIGlucHV0X3NldF9hYnNfcGFyYW1zKG10b3VjaCwgQUJTX01UX1BPU0lUSU9O X1ksCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIDAsIGhlaWdodCwgMCwgMCk7Cj4+Pj4gKyAg ICAgICAgaW5wdXRfc2V0X2Fic19wYXJhbXMobXRvdWNoLCBBQlNfTVRfUFJFU1NVUkUsCj4+Pj4g KyAgICAgICAgICAgICAgICAgICAgIDAsIDI1NSwgMCwgMCk7Cj4+Pj4gKwo+Pj4+ICsgICAgICAg IGlucHV0X210X2luaXRfc2xvdHMobXRvdWNoLCBudW1fY29udCwgMCk7Cj4+Pj4gKwo+Pj4+ICsg ICAgICAgIG10b3VjaF9zaXplW0tQQVJBTV9NVF9YXSA9IHdpZHRoOwo+Pj4+ICsgICAgICAgIG10 b3VjaF9zaXplW0tQQVJBTV9NVF9ZXSA9IGhlaWdodDsKPj4+PiArICAgICAgICBpbmZvLT5tdG91 Y2hfY3VyX2NvbnRhY3RfaWQgPSAtMTsKPj4+PiArCj4+Pj4gKyAgICAgICAgcmV0ID0gaW5wdXRf cmVnaXN0ZXJfZGV2aWNlKG10b3VjaCk7Cj4+Pj4gKyAgICAgICAgaWYgKHJldCkgewo+Pj4+ICsg ICAgICAgICAgICBpbnB1dF9mcmVlX2RldmljZShtdG91Y2gpOwo+Pj4+ICsgICAgICAgICAgICB4 ZW5idXNfZGV2X2ZhdGFsKGluZm8tPnhiZGV2LCByZXQsCj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICJpbnB1dF9yZWdpc3Rlcl9kZXZpY2UobXRvdWNoKSIpOwo+Pj4+ICsgICAgICAgICAgICBn b3RvIGVycm9yOwo+Pj4+ICsgICAgICAgIH0KPj4+PiArICAgICAgICBpbmZvLT5tdG91Y2hfY3Vy X2NvbnRhY3RfaWQgPSAtMTsKPj4+PiArICAgICAgICBpbmZvLT5tdG91Y2ggPSBtdG91Y2g7Cj4+ Pj4gKyAgICB9Cj4+Pj4gKwo+Pj4+ICAgICAgIHJldCA9IHhlbmtiZF9jb25uZWN0X2JhY2tlbmQo ZGV2LCBpbmZvKTsKPj4+PiAgICAgICBpZiAocmV0IDwgMCkKPj4+PiAgICAgICAgICAgZ290byBl cnJvcjsKPj4+PiBAQCAtMjQwLDYgKzM3Niw4IEBAIHN0YXRpYyBpbnQgeGVua2JkX3JlbW92ZShz dHJ1Y3QgeGVuYnVzX2RldmljZSAKPj4+PiAqZGV2KQo+Pj4+ICAgICAgICAgICBpbnB1dF91bnJl Z2lzdGVyX2RldmljZShpbmZvLT5rYmQpOwo+Pj4+ICAgICAgIGlmIChpbmZvLT5wdHIpCj4+Pj4g ICAgICAgICAgIGlucHV0X3VucmVnaXN0ZXJfZGV2aWNlKGluZm8tPnB0cik7Cj4+Pj4gKyAgICBp ZiAoaW5mby0+bXRvdWNoKQo+Pj4+ICsgICAgICAgIGlucHV0X3VucmVnaXN0ZXJfZGV2aWNlKGlu Zm8tPm10b3VjaCk7Cj4+Pj4gICAgICAgZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKWluZm8tPnBh Z2UpOwo+Pj4+ICAgICAgIGtmcmVlKGluZm8pOwo+Pj4+ICAgICAgIHJldHVybiAwOwo+Pj4+IC0t IAo+Pj4+IDIuNy40Cj4+Pj4KPj4+IFRoYW5rcy4KPj4gVGhhbmsgeW91LAo+PiBPbGVrc2FuZHIK Pj4gWzFdIAo+PiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dp dC94ZW4vdGlwLmdpdC9jb21taXQvP2g9Zm9yLWxpbnVzLTQuMTImaWQ9ZTI3YzUzM2RjNGQwMzM4 MjY2Y2NiNmRhYjQyODE1MGQ0ZDYyOWU2YQo+Pgo+Cj4gQXMgYWxsIHRoZSBkZXBlbmRlbmNpZXMg YXJlIG5vdyBtZXJnZWQgaW50byB0aGUga2VybmVsIGFuZCAqaWYqCj4gdGhlIGFib3ZlIHNvdW5k cyByZWFzb25hYmxlIGZvciB5b3UgY2FuIHdlIHBsZWFzZSBwcm9jZWVkIHdpdGggdGhpcyAKPiBw YXRjaD8KPgo+IFRoYW5rIHlvdSwKPiBPbGVrc2FuZHIKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK