From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [RFC] kbdif: add multi-touch support Date: Wed, 4 Jan 2017 09:24:09 +0200 Message-ID: <4cdab1fa-7e05-f90e-adf1-f040d31354d9@gmail.com> References: <1483457954-5566-1-git-send-email-andr2000@gmail.com> <1483457954-5566-2-git-send-email-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cOfvi-0004EL-FU for xen-devel@lists.xenproject.org; Wed, 04 Jan 2017 07:24:14 +0000 Received: by mail-wm0-f66.google.com with SMTP id m203so90021450wma.3 for ; Tue, 03 Jan 2017 23:24:11 -0800 (PST) In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Stefano Stabellini Cc: lars.kurth@citrix.com, vlad.babchuk@gmail.com, dario.faggioli@citrix.com, julien.grall@arm.com, andrii.anisov@gmail.com, olekstysh@gmail.com, al1img@gmail.com, JBeulich@suse.com, xen-devel@lists.xenproject.org, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org Rmlyc3Qgb2YgYWxsLCB0aGFuayB5b3UgZm9yIGNvbW1lbnRzCgpPbiAwMS8wNC8yMDE3IDAzOjAz IEFNLCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6Cj4gT24gVHVlLCAzIEphbiAyMDE3LCBPbGVr c2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToKPj4gRnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVu a28gPE9sZWtzYW5kcl9BbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+Pgo+PiBTaWduZWQtb2ZmLWJ5 OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8T2xla3NhbmRyX0FuZHJ1c2hjaGVua29AZXBhbS5j b20+Cj4+IC0tLQo+PiAgIHhlbi9pbmNsdWRlL3B1YmxpYy9pby9rYmRpZi5oIHwgNjQgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgIDEgZmlsZSBjaGFuZ2Vk LCA2NCBpbnNlcnRpb25zKCspCj4+Cj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMv aW8va2JkaWYuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9rYmRpZi5oCj4+IGluZGV4IDJkMmFl YmQuLmFkOTRiNTMgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9rYmRpZi5o Cj4+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9rYmRpZi5oCj4+IEBAIC00NSw2ICs0NSwx OSBAQAo+PiAgICAqLwo+PiAgICNkZWZpbmUgWEVOS0JEX1RZUEVfUE9TICAgICA0Cj4+ICAgCj4+ ICsvKgo+PiArICogTXVsdGktdG91Y2ggZXZlbnQKPj4gKyAqIENhcGFibGUgYmFja2VuZCBzZXRz IGZlYXR1cmUtbXVsdGktdG91Y2ggaW4geGVuc3RvcmUuCj4+ICsgKiBGcm9udGVuZCByZXF1ZXN0 cyBmZWF0dXJlIGJ5IHNldHRpbmcgcmVxdWVzdC1tdWx0aS10b3VjaCBpbiB4ZW5zdG9yZS4KPj4g KyAqIEZyb250ZW5kIHN1cHBvcnRzIHVwIHRvIFhFTktCRF9NVF9OVU1fREVWIHZpcnR1YWwgbXVs dGktdG91Y2ggaW5wdXQgZGV2aWNlcywKPj4gKyAqIGNvbmZpZ3VyZWQgYnkgdGhlIGJhY2tlbmQg aW4geGVuc3RvcmUgdW5kZXIgbXQtJWQgZm9sZGVyLCAlZCBiZWluZwo+PiArICogYSBzZXF1ZW50 aWFsIG51bWJlciBvZiB0aGUgdmlydHVhbCBpbnB1dCBkZXZpY2U6Cj4+ICsgKiAgIG8gbnVtLWNv bnRhY3RzIC0gbnVtYmVyIG9mIHNpbXVsdGFuZW91cyB0b3VjaGVzIHN1cHBvcnRlZAo+PiArICog ICBvIHdpZHRoIC0gd2lkdGggb2YgdGhlIHRvdWNoIGFyZWEgaW4gcGl4ZWxzCj4+ICsgKiAgIG8g aGVpZ2h0IC0gaGVpZ2h0IG9mIHRoZSB0b3VjaCBhcmVhIGluIHBpeGVscwo+IFBsZWFzZSB3cml0 ZSBkb3duIHRoZSBtYXggd2lkdGggYW5kIGhlaWdodCBzdXBwb3J0ZWQgYnkgdGhlIHByb3RvY29s LAo+IGtlZXBpbmcgaW4gbWluZCB0aGF0IG1vdGlvbiBldmVudHMgYmVsb3cgdXNlIGludDMyX3Qg Zm9yIGNvb3JkaW5hdGVzLgpJIHdpbGwgcHV0ICJ3aWR0aChoZWlnaHQpIG9mIHRoZS4uLiBpbiBw aXhlbHMsIDMyLWJpdCBzaWduZWQgaW50ZWdlciIKPgo+IEFyZSB0aGVyZSBhbnkgYmVuZWZpdHMg b2YgdGhpcyBjb21wYXJlZCB0byBqdXN0IHNldHRpbmcgdXAgbXVsdGlwbGUga2JkCj4gY29ubmVj dGlvbnMsIG9uZSBwZXIgbXVsdGktdG91Y2ggZGV2aWNlPyBUaGUgb25seSBiZW5lZml0IEkgY2Fu IHRoaW5rIG9mCj4gaXMgc2F2aW5nIGZldyBwYWdlcy4KV2VsbCwgbm90IG9ubHkgc2F2aW5nIGEg ZmV3IHBhZ2VzLCBidXQgc29tZXdoYXQKc2ltcGxpZnlpbmcgaGFuZGxpbmcgb2YgdGhlIHByb3Rv Y29sIG9uIGJvdGggYmFjayBhbmQKZnJvbnQgZW5kcy4gQnV0LCB5b3UgYXJlIHByb2JhYmx5IHJp Z2h0IGFzIGN1cnJlbnQKcHJvdG9jb2wgaXMgY2FwYWJsZSBvZiBob2xkaW5nCihYRU5LQkRfSU5f UklOR19TSVpFIC0gWEVOS0JEX0lOX1JJTkdfT0ZGUykgLyBYRU5LQkRfSU5fRVZFTlRfU0laRSA9 PQooMjA0OCAtIDEwMjQpIC8gNDAgPSAyNSBpbmNvbWluZyBldmVudHMgd2hpY2ggbWF5IG5vdCBi ZQplbm91Z2ggZm9yIG11bHRpcGxlIG10IGRldmljZXMgZGVsaXZlcmluZyBodW5kcmVkcyBvZgpl dmVudHMgcGVyIHNlY29uZC4KV2lsbCBzZXQtdXAgZGVkaWNhdGVkIHJpbmdzIHBlciBtdCBkZXZp Y2UgdGhlbi4KV2lsbCBhbHNvIHJlbW92ZQogICB1aW50OF90IGRldl9pZHg7ICAgICAgICAvKiBp bmRleCBvZiB0aGUgbXVsdGktdG91Y2ggZGV2aWNlICovCmFzIGV2ZXJ5IGRldmljZSB3aWxsIGhh dmUgaXRzIG93biByaW5nLgpXaWxsIGV4dGVuZCBYZW5TdG9yZSBjb25maWd1cmF0aW9uIGZvciBt dCBkZXZpY2VzIHdpdGg6CiAgbyBwYWdlLXJlZiAoPykKICBvIHBhZ2UtZ3JlZgogIG8gZXZlbnQt Y2hhbm5lbAphcyBpdCBpcyBkb25lIGJ5IHRoZSBMaW51eCB4ZW4ta2JkZnJvbnQgZHJpdmVyLgoK QlRXLCBpcyB0aGVyZSBhbnkgcmVhc29uIHdlIG5lZWQgInBhZ2UtcmVmIj8gTXkgdW5kZXJzdGFu ZGluZyBpcwp0aGF0IHRoZSBwYWlyIG9mIHBhZ2UtZ3JlZiArIGV2ZW50LWNoYW5uZWwgaXMgZW5v dWdoIHRvIGVzdGFibGlzaAphbmQgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGNvbm5lY3Rpb24uCgo+ PiArICovCj4+ICsjZGVmaW5lIFhFTktCRF9UWVBFX01UT1VDSCAgNQo+PiAgIHN0cnVjdCB4ZW5r YmRfbW90aW9uCj4+ICAgewo+PiAgICAgICB1aW50OF90IHR5cGU7ICAgICAgICAvKiBYRU5LQkRf VFlQRV9NT1RJT04gKi8KPj4gQEAgLTY4LDYgKzgxLDU2IEBAIHN0cnVjdCB4ZW5rYmRfcG9zaXRp b24KPj4gICAgICAgaW50MzJfdCByZWxfejsgICAgICAgLyogcmVsYXRpdmUgWiBtb3Rpb24gKHdo ZWVsKSAqLwo+PiAgIH07Cj4+ICAgCj4+ICsvKiBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzbHkgc3Vw cG9ydGVkIG11bHRpLXRvdWNoIHZpcnR1YWwgaW5wdXQgZGV2aWNlcyAqLwo+PiArI2RlZmluZSBY RU5LQkRfTVRfTlVNX0RFViAgIDQKPiBJZiBpdCB0dXJucyBvdXQgdGhhdCBzdXBwb3J0aW5nIG11 bHRpcGxlIGRldmljZXMgcGVyIGNvbm5lY3Rpb24gaXMgYQo+IGdvb2QgaWRlYSwgdGhlbiBJIHN1 Z2dlc3QgdGhhdCB0aGUgbWF4IG51bWJlciBvZiBkZXZpY2VzIGlzIGEgYmFja2VuZAo+IHByb3Bl cnR5IG9uIHhlbnN0b3JlLgpJbnN0ZWFkIG9mIHNldHRpbmcgdGhlIG51bWJlciBvZiBtdCBkZXZp Y2VzIGZyb250IGNhbiBlYXNpbHkKZmluZCB0aGlzIHZhbHVlIGJ5IHJlYWRpbmcgIm10LSVkIiBY ZW5TdG9yZSBlbnRyaWVzLgpUaGUgcmVxdWlyZW1lbnQgaW4gdGhlIHByb3RvY29sIGlzIHRoYXQg Ii4uLiVkIGJlaW5nCmEgc2VxdWVudGlhbCBudW1iZXIgb2YgdGhlIHZpcnR1YWwgaW5wdXQgZGV2 aWNlIi4gVGh1cywKZmlyc3QgZW50cnkgd2hpY2ggd2UgZmFpbCB0byBzZXF1ZW50aWFsbHkgcmVh ZCB3aWxsCmluZGljYXRlIGVuZCBvZiBjb25maWd1cmVkIGRldmljZXMuIE9mIGNvdXJzZSwKeGVu YnVzX3NjYW5mIHJldHVybiB2YWx1ZSBuZWVkcyB0byBiZSBjaGVja2VkIGlmIGl0CmhhcyBmYWls ZWQgYmVjYXVzZSB0aGVyZSBpcyBubyBzdWNoIHZhbHVlIGluIFhlblN0b3JlCm9yIGZvciBhbnkg b3RoZXIgcmVhc29uLgoKPgo+PiArLyogU2VudCB3aGVuIGEgbmV3IHRvdWNoIGlzIG1hZGU6IHRv dWNoIGlzIGFzc2lnbmVkIGEgdW5pcXVlIGNvbnRhY3QKPj4gKyAqIElELCBzZW50IHdpdGggdGhp cyBhbmQgY29uc2VxdWVudCBldmVudHMgcmVsYXRlZCB0byB0aGlzIHRvdWNoLgo+PiArICogQ29u dGFjdCBJRCB3aWxsIGJlIHJldXNlZCBhZnRlciBYRU5LQkRfTVRfRVZfVVAgZXZlbnQuCj4gV2ls bCBiZSByZXVzZWQgb3IgY2FuIGJlIHJldXNlZD8KSSB3b3VsZCBwcm9iYWJseSBzYXkgIm1heSBi ZSByZXVzZWQiIGFzIGl0IGRlcGVuZHMgb24gaG93CmFuZCBpZiBuZXcgdG91Y2hlcy9jb250YWN0 cyBhcmUgbWFkZQo+ICAgUGxlYXNlIHByb3ZpZGUgYW4gZXhhbXBsZSBvZiBhIENvbnRhY3QKPiBJ RCBsaWZlY3ljbGUuCkRvIHlvdSB3YW50IGl0IHRvIGJlIGRlc2NyaWJlZCBpbiB0aGUgcHJvdG9j b2wgb3IganVzdCBoZXJlPwpJZiB0aGUgbGF0dGVyIHRoZW4sIGZvciBleGFtcGxlLCBhcyBXYXls YW5kIGRvY3VtZW50YXRpb24KZGVzY3JpYmVzIGl0IFsxXToKIlRvdWNoIGludGVyYWN0aW9ucyBj YW4gY29uc2lzdCBvZiBvbmUgb3IgbW9yZSBjb250YWN0cy4KICBGb3IgZWFjaCBjb250YWN0LCBh IHNlcmllcyBvZiBldmVudHMgaXMgZ2VuZXJhdGVkLCBzdGFydGluZwogIHdpdGggYSBkb3duIGV2 ZW50LCBmb2xsb3dlZCBieSB6ZXJvIG9yIG1vcmUgbW90aW9uIGV2ZW50cywKICBhbmQgZW5kaW5n IHdpdGggYW4gdXAgZXZlbnQuIEV2ZW50cyByZWxhdGluZyB0byB0aGUgc2FtZQogIGNvbnRhY3Qg cG9pbnQgY2FuIGJlIGlkZW50aWZpZWQgYnkgdGhlIElEIG9mIHRoZSBzZXF1ZW5jZS4iClNvLCBp ZiB0aGVyZSBpcyBjb250YWN0L3RvdWNoIGEgZnJlZSBDb250YWN0IElEIGlzIGFzc2lnbmVkIHRv CnRoaXMgY29udGFjdChzZXF1ZW5jZSkgYW5kIGl0IGlzICJyZWxlYXNlZCIgd2hlbiBjb250YWN0 IGlzCmRvbmUsIGUuZy4gYWZ0ZXIgdXAgZXZlbnQuIEZyb20gdGhpcyBwb2ludCBjb250YWN0IElE IG1heSBiZQpyZXVzZWQuCgpJIHdhcyBiYXNpbmcgdGhlIG10IGFkZGl0aW9ucyB0byB0aGUgcHJv dG9jb2wgb24gV2F5bGFuZCBbMV0sCkxpbnV4IFsyXSBhbmQgV2luZG93cyBbM10gbXVsdGktdG91 Y2ggc3VwcG9ydCwgc28gdGhvc2UgbWF5CmJldHRlciBleHBsYWluIHRoZSBpZGVhCj4gV2hhdCBp cyB0aGUgbWF4IENvbnRhY3QgSUQ/Cj4KLyogY29udGFjdCBJRCwgWzA7IG51bS1jb250YWN0cyAt IDFdICovCm51bS1jb250YWN0cyAtIG51bWJlciBvZiBzaW11bHRhbmVvdXMgdG91Y2hlcyBzdXBw b3J0ZWQKPj4gKyAqLwo+PiArI2RlZmluZSBYRU5LQkRfTVRfRVZfRE9XTiAgIDAKPj4gKy8qIFRv dWNoIHBvaW50IGhhcyBiZWVuIHJlbGVhc2VkICovCj4+ICsjZGVmaW5lIFhFTktCRF9NVF9FVl9V UCAgICAgMQo+PiArLyogVG91Y2ggcG9pbnQgaGFzIGNoYW5nZWQgaXRzIGNvb3JkaW5hdGUocykg Ki8KPj4gKyNkZWZpbmUgWEVOS0JEX01UX0VWX01PVElPTiAyCj4+ICsvKiBJbnB1dCBzeW5jaHJv bml6YXRpb24gZXZlbnQ6IHNob3dzIGVuZCBvZiBhIHNldCBvZiBldmVudHMKPj4gKyAqIHdoaWNo IGxvZ2ljYWxseSBiZWxvbmcgdG9nZXRoZXIuCj4+ICsgKi8KPj4gKyNkZWZpbmUgWEVOS0JEX01U X0VWX1NZTiAgICAzCj4+ICsvKiBUb3VjaCBwb2ludCBoYXMgY2hhbmdlZCBpdHMgc2hhcGUuIFNo YXBlIGlzIGFwcHJveGltYXRlZCBieSBhbiBlbGxpcHNlCj4+ICsgKiB0aHJvdWdoIHRoZSBtYWpv ciBhbmQgbWlub3IgYXhpcyBsZW5ndGhzOiBtYWpvciBpcyB0aGUgbG9uZ2VyIGRpYW1ldGVyCj4+ ICsgKiBvZiB0aGUgZWxsaXBzZSBhbmQgbWlub3IgaXMgdGhlIHNob3J0ZXIgb25lLiBDZW50ZXIg b2YgdGhlIGVsbGlwc2UgaXMKPj4gKyAqIHJlcG9ydGVkIHZpYSBYRU5LQkRfTVRfRVZfRE9XTi9Y RU5LQkRfTVRfRVZfTU9USU9OIGV2ZW50cy4KPj4gKyAqLwo+PiArI2RlZmluZSBYRU5LQkRfTVRf RVZfU0hBUEUgIDQKPj4gKy8qIFRvdWNoIHBvaW50J3Mgc2hhcGUgaGFzIGNoYW5nZWQgaXRzIG9y aWVudGF0aW9uOiBjYWxjdWxhdGVkIGFzIGEgY2xvY2t3aXNlCj4+ICsgKiBhbmdsZSBiZXR3ZWVu IHRoZSBtYWpvciBheGlzIG9mIHRoZSBlbGxpcHNlIGFuZCBwb3NpdGl2ZSBZIGF4aXMgaW4gZGVn cmVlcywKPj4gKyAqIFstMTgwOyArMTgwXS4KPj4gKyAqLwo+PiArI2RlZmluZSBYRU5LQkRfTVRf RVZfT1JJRU5UIDUKPj4gKwo+PiArc3RydWN0IHhlbmtiZF9tdG91Y2ggewo+PiArICAgIHVpbnQ4 X3QgdHlwZTsgICAgICAgICAgICAgLyogWEVOS0JEX1RZUEVfTVRPVUNIICovCj4+ICsgICAgdWlu dDhfdCBkZXZfaWR4OyAgICAgICAgICAvKiBpbmRleCBvZiB0aGUgbXVsdGktdG91Y2ggZGV2aWNl ICovCj4+ICsgICAgdWludDhfdCBldmVudF90eXBlOyAgICAgICAvKiBYRU5LQkRfTVRfRVZfPz8/ ICovCj4+ICsgICAgdWludDhfdCByZXNlcnZlZDsgICAgICAgICAvKiByZXNlcnZlZCBmb3IgdGhl IGZ1dHVyZSB1c2UgKi8KPj4gKyAgICBpbnQzMl90IGNvbnRhY3RfaWQ7ICAgICAgIC8qIGNvbnRh Y3QgSUQsIFswOyBudW0tY29udGFjdHMgLSAxXSAqLwo+PiArICAgIHVuaW9uIHsKPj4gKyAgICAg ICAgLyogWEVOS0JEX01UX0VWX0RPV04vWEVOS0JEX01UX0VWX01PVElPTiAqLwo+PiArICAgICAg ICBzdHJ1Y3Qgewo+PiArICAgICAgICAgICAgaW50MzJfdCBhYnNfeDsgICAgLyogYWJzb2x1dGUg WCBwb3NpdGlvbiwgcGl4ZWxzICovCj4+ICsgICAgICAgICAgICBpbnQzMl90IGFic195OyAgICAv KiBhYnNvbHV0ZSBZIHBvc2l0aW9uLCBwaXhlbHMgKi8KPj4gKyAgICAgICAgfSBwb3M7Cj4+ICsg ICAgICAgIC8qIFhFTktCRF9NVF9FVl9TSEFQRSAqLwo+PiArICAgICAgICBzdHJ1Y3Qgewo+PiAr ICAgICAgICAgICAgdWludDMyX3QgbWFqb3I7ICAgLyogbGVuZ3RoIG9mIHRoZSBtYWpvciBheGlz LCBwaXhlbHMgKi8KPj4gKyAgICAgICAgICAgIHVpbnQzMl90IG1pbm9yOyAgIC8qIGxlbmd0aCBv ZiB0aGUgbWlub3IgYXhpcywgcGl4ZWxzICovCj4+ICsgICAgICAgIH0gc2hhcGU7Cj4+ICsgICAg ICAgIC8qIFhFTktCRF9NVF9FVl9PUklFTlQgKi8KPj4gKyAgICAgICAgdWludDE2X3Qgb3JpZW50 YXRpb247IC8qIGNsb2Nrd2lzZSBhbmdsZSBvZiB0aGUgbWFqb3IgYXhpcyAqLwo+PiArICAgIH0g dTsKPj4gK307Cj4gTmVlZCBhIGJpbmFyeSByZXByZXNlbnRhdGlvbi4KPgpDb3VsZCB5b3UgcGxl YXNlIGVsYWJvcmF0ZSBtb3JlIG9uIHRoaXMsIHRoaXMgaXMgbm90CmNsZWFyIHRvIG1lLgo+PiAg ICNkZWZpbmUgWEVOS0JEX0lOX0VWRU5UX1NJWkUgNDAKPj4gICAKPj4gICB1bmlvbiB4ZW5rYmRf aW5fZXZlbnQKPj4gQEAgLTc2LDYgKzEzOSw3IEBAIHVuaW9uIHhlbmtiZF9pbl9ldmVudAo+PiAg ICAgICBzdHJ1Y3QgeGVua2JkX21vdGlvbiBtb3Rpb247Cj4+ICAgICAgIHN0cnVjdCB4ZW5rYmRf a2V5IGtleTsKPj4gICAgICAgc3RydWN0IHhlbmtiZF9wb3NpdGlvbiBwb3M7Cj4+ICsgICAgc3Ry dWN0IHhlbmtiZF9tdG91Y2ggbXRvdWNoOwo+PiAgICAgICBjaGFyIHBhZFtYRU5LQkRfSU5fRVZF TlRfU0laRV07Cj4+ICAgfTsKPj4gICAKPj4gLS0gCj4+IDIuNy40CgpSZWxhdGVkIHF1ZXN0aW9u OiB3aGF0IGlmIEkgYWxzbyBleHRlbmQgZXhpc3RpbmcKeGVua2JkX21vdGlvbi9rZXkvcG9zaXRp b24gYnkgYWRkaW5nIHVpbnQzMig4PylfdCBkZXZfaWR4CmF0IHRoZSBib3R0b20gb2YgdGhlIHN0 cnVjdHVyZXMsIGUuZy4KCnN0cnVjdCB4ZW5rYmRfbW90aW9uIHsKICAgICB1aW50OF90IHR5cGU7 ICAgICAgICAvKiBYRU5LQkRfVFlQRV9NT1RJT04gKi8KICAgICBpbnQzMl90IHJlbF94OyAgICAg ICAgLyogcmVsYXRpdmUgWCBtb3Rpb24gKi8KICAgICBpbnQzMl90IHJlbF95OyAgICAgICAgLyog cmVsYXRpdmUgWSBtb3Rpb24gKi8KICAgICBpbnQzMl90IHJlbF96OyAgICAgICAgLyogcmVsYXRp dmUgWiBtb3Rpb24gKHdoZWVsKSAqLwogICAgIHVpbnQzMl90IGRldl9pZHg7IG9yIHVpbnQ4X3Qg ZGV2X2lkeDsKfTsKClRoaXMgd2F5OgoxLiBFeGlzdGluZyBmcm9udHMvYmFja3Mgd2lsbCBub3Qg YmUgYWZmZWN0ZWQKMi4gTmV3IGZyb250cy9iYWNrcyBtYXkgdXNlIHRoaXMgZmllbGQgdG8gc2Vy dmUKbXVsdGlwbGUga2V5Ym9hcmRzIGFuZC9vciBwb2ludGVyIGRldmljZXMgdmlhIHNpbmdsZSBy aW5nCgpTaG91bGQgSSBtYWtlIHRoaXMgY2hhbmdlIGFzIGEgZGVkaWNhdGVkIHBhdGNoIG9yIGRv IHlvdSB0aGluawppdCBjYW4gYmUgaW4gdGhlIHNhbWUgb25lIGZvciBtdD8KClRoYW5rIHlvdSwK T2xla3NhbmRyClsxXSAKaHR0cHM6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy93YXlsYW5kL3dheWxh bmQvdHJlZS9wcm90b2NvbC93YXlsYW5kLnhtbCNuMjE5NgpbMl0gaHR0cHM6Ly93d3cua2VybmVs Lm9yZy9kb2MvRG9jdW1lbnRhdGlvbi9pbnB1dC9tdWx0aS10b3VjaC1wcm90b2NvbC50eHQKWzNd IApodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2pqMTUxNTY0KHY9dnMu ODUpLmFzcHgjb3B0aW9uYWxfaGlkX3VzYWdlcwoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==