From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v5 01/28] HYPERCALL_version_op. New hypercall mirroring XENVER_ but sane. Date: Thu, 24 Mar 2016 17:30:09 -0400 Message-ID: <20160324212905.GA9589@localhost.localdomain> References: <1458849640-22588-1-git-send-email-konrad.wilk@oracle.com> <1458849640-22588-2-git-send-email-konrad.wilk@oracle.com> <56F44C85.8010003@citrix.com> <6313AFDA-2BCB-421B-BD57-07B7CFA7BE3C@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ajCpe-000407-KU for xen-devel@lists.xenproject.org; Thu, 24 Mar 2016 21:30:18 +0000 Received: by mail-qk0-f195.google.com with SMTP id q184so2569546qkb.0 for ; Thu, 24 Mar 2016 14:30:16 -0700 (PDT) Content-Disposition: inline In-Reply-To: <6313AFDA-2BCB-421B-BD57-07B7CFA7BE3C@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Konrad Rzeszutek Wilk Cc: Wei Liu , Stefano Stabellini , Andrew Cooper , Ian Jackson , mpohlack@amazon.de, ross.lagerwall@citrix.com, Julien Grall , Stefano Stabellini , Jan Beulich , xen-devel@lists.xenproject.org, sasha.levin@oracle.com, Daniel De Graaf , Keir Fraser List-Id: xen-devel@lists.xenproject.org PiBUaGFua3MhCj4gCj4gQW5kIEFyZ2ghCj4gCj4gSSBuZWdsZWN0ZWQgdG8gY2hhbmdlIHRoZSBu YW1lIG9mIGtlcm5lbF9jYWNoZV9pbml0IGFzIEphbiByZXF1ZXN0ZWQuCgpKYW4sIGhlcmUgaXMg YW4gdXBkYXRlZCBwYXRjaC4gSSBjaGFuZ2VkIHRoZSBuYW1lIHRvIApjYXBhYmlsaXRpZXNfY2Fj aGVfaW5pdC4gU29ycnkgYWJvdXQgdGhhdCEKCkZyb20gZTc2NmRkYjM3YWNkYTE2YzNhZGJkNjUx NzlkNTMyYjkzODFiZGE4ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS29ucmFkIFJ6 ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpEYXRlOiBUdWUsIDIyIE1hciAy MDE2IDE2OjUzOjE5IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gSFlQRVJDQUxMX3ZlcnNpb25fb3Au IE5ldyBoeXBlcmNhbGwgbWlycm9yaW5nIFhFTlZFUl8gYnV0CiBzYW5lLgoKVGhpcyBoeXBlcmNh bGwgbWlycm9ycyB0aGUgWEVOVkVSXyBpbiB0aGF0IGl0IGhhcyBzaW1pbGFyIGZ1bmN0aW9uYWxp dHkuCkhvd2V2ZXIgaXQgaXMgZGVzaWduZWQgZGlmZmVyZW50bHk6CiAtIE5vIGNvbXBhdCBsYXll ci4gVGhlIGRhdGEgc3RydWN0dXJlcyBhcmUgdGhlIHNhbWUgc2l6ZSBvbiAzMgogICBhcyBvbiA2 NC1iaXQuCiAtIFRoZSBoeXBlcmNhbGwgYWNjZXB0cyB0aHJlZSBhcmd1bWVudHMgLSB0aGUgY29t bWFuZCwgcG9pbnRlciB0bwogICBhbiBidWZmZXIsIGFuZCB0aGUgbGVuZ3RoIG9mIHRoZSBidWZm ZXIuCiAtIEVhY2ggc3ViLW9wcyBjYW4gYmUgInByb2JlZCIgZm9yIHNpemUgYnkgcmV0dXJuaW5n IHRoZSBzaXplIG9mCiAgIGJ1ZmZlciB0aGF0IHdpbGwgYmUgbmVlZGVkIC0gaWYgdGhlIGJ1ZmZl ciBpcyBOVUxMLgogLSBTdWJvcHMgY2FuIGNvbXBsZXRlIGV2ZW4gaWYgdGhlIGJ1ZmZlciBpcyB0 b28gc21hbGwgLSB0cnVuY2F0ZWQKICAgZGF0YSB3aWxsIGJlIGZpbGxlZCBhbmQgaHlwZXJjYWxs IHdpbGwgcmV0dXJuIC1FTk9CVUZTLgogLSBWRVJTSU9OX2NvbW1hbmRsaW5lLCBWRVJTSU9OX2No YW5nZXNldCBhcmUgcHJpdmlsZWdlZC4KIC0gVGhlcmUgaXMgbm8gWEVOVkVSX2NvbXBpbGVfaW5m byBlcXVpdmFsZW50LgogLSBUaGUgaHlwZXJjYWxsIGNhbiByZXR1cm4gLUVQRVJNIGFuZCB0b29s c3RhY2svT1NlcyBhcmUgZXhwZWN0ZWQKICAgdG8gZGVhbCB3aXRoLiBIb3dldmVyIHRoZXJlIGFy ZSB0aHJlZSBzdWJvcHM6IFhFTl9WRVJTSU9OX3ZlcnNpb24sCiAgIFhFTl9WRVJTSU9OX3BsYXRm b3JtX3BhcmFtZXRlcnMgYW5kIFhFTl9WRVJTSU9OX2dldF9mZWF0dXJlcwogICB0aGF0IHdpbGwg YWx3YXlzIHJldHVybiBhbiB2YWx1ZSBhcyBndWVzdHMgY2Fubm90IHN1cnZpdmUgd2l0aG91dCB0 aGVtLgoKV2hpbGUgd2UgY29tYmluZSBzb21lIG9mIHRoZSBjb21tb24gY29kZSBiZXR3ZWVuIFhF TlZFUl8gYW5kIFZFUlNJT05fCnRha2UgdGhlIGxpYmVydHkgb2YgbW92aW5nIHBhZV9leHRlbmRl ZF9jcjMgaW4geDg2IGFyZWEuCgpTdWdnZXN0ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5j b29wZXIzQGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8 a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQWNrZWQtYnk6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdy YUB0eWNoby5uc2EuZ292PiBbWFNNIGJpdHNdClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxh bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKLS0tCkNjOiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVn cmFAdHljaG8ubnNhLmdvdj4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXgu Y29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vLnN0YWJlbGxpbmlAZXUuY2l0cml4 LmNvbT4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBTdGVmYW5vIFN0YWJl bGxpbmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBjaXRyaXguY29tPgpDYzogSnVsaWVuIEdyYWxsIDxq dWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ2M6IEtlaXIgRnJhc2VyIDxrZWlyQHhlbi5vcmc+CkNjOiBK YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcu Y29vcGVyM0BjaXRyaXguY29tPgoKdjEtdjM6IFdhcyBub3QgcGFydCBvZiB0aGUgc2VyaWVzLgp2 NDogTmV3IHBvc3RpbmcuCnY1OiBSZW1vdmUgbWVtc2V0IGFuZCB1c2Uge30uIFR3ZWFrIGNvcHlf dG9fZ3Vlc3QgYW5kIGNhcGFiaWxpdGllc19pbmZvLAogICAgYWRkIEFTU0VSVChzeikgcGVyIEFu ZHJldydzIHJldmlldy4gQWRkIGNhY2hlZD0xIGJhY2sgaW4uCiAgICBQZXIgSmFuLCBzL1ZFUlNJ T05fT1AvVkVSU0lPTi8sIHNxdWFzaCBzaXplIGNoZWNrIHdpdGggZG9fdmVyc2lvbl9vcCwKICAg IHVwZGF0ZSB0aGUgY29tbWVudHMuIERyb3BwZWQgQW5kcmV3J3MgUmV2aWV3LWJ5LiBBdGUgbmV3 bGluZXMuCiAgICBBZGRlZCBpbml0Y2FsbCB0byBndWFyZCBhZ2FpbnN0IGdhcmJhZ2UgYmVpbmcg c2V0IGluIGNhY2hlZCBkYXRhLgogICAgRm9sZGVkIGNvZGUgcG9wdWxhdGluZyBjYWNoZSBpbiBf X2luaXQuIHMvY2hhci9jaGFyW10vIGluIHB1YmxpYy5oCi0tLQotLS0KIHRvb2xzL2ZsYXNrL3Bv bGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlIHwgICA3ICstCiB4ZW4vYXJjaC9hcm0vdHJh cHMuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiB4ZW4vYXJjaC94ODYvaHZtL2h2 bS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiB4ZW4vYXJjaC94ODYveDg2XzY0L2Nv bXBhdC9lbnRyeS5TICAgICAgICAgICB8ICAgMiArCiB4ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5 LlMgICAgICAgICAgICAgICAgICB8ICAgMiArCiB4ZW4vY29tbW9uL2NvbXBhdC9rZXJuZWwuYyAg ICAgICAgICAgICAgICAgICB8ICAgMiArCiB4ZW4vY29tbW9uL2tlcm5lbC5jICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDIxMyArKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIHhlbi9pbmNs dWRlL3B1YmxpYy9hcmNoLWFybS5oICAgICAgICAgICAgICAgIHwgICAyICsKIHhlbi9pbmNsdWRl L3B1YmxpYy92ZXJzaW9uLmggICAgICAgICAgICAgICAgIHwgIDcwICsrKysrKysrLQogeGVuL2lu Y2x1ZGUvcHVibGljL3hlbi5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogeGVuL2luY2x1 ZGUveGVuL2h5cGVyY2FsbC5oICAgICAgICAgICAgICAgICAgfCAgIDQgKwogeGVuL2luY2x1ZGUv eHNtL2R1bW15LmggICAgICAgICAgICAgICAgICAgICAgfCAgMjEgKysrCiB4ZW4vaW5jbHVkZS94 c20veHNtLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiB4ZW4veHNtL2R1bW15LmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiB4ZW4veHNtL2ZsYXNrL2hvb2tz LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNSArKysrKwogeGVuL3hzbS9mbGFzay9wb2xp Y3kvYWNjZXNzX3ZlY3RvcnMgICAgICAgICAgfCAgMjEgKystCiAxNiBmaWxlcyBjaGFuZ2VkLCAz NDYgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxh c2svcG9saWN5L3BvbGljeS9tb2R1bGVzL3hlbi94ZW4udGUgYi90b29scy9mbGFzay9wb2xpY3kv cG9saWN5L21vZHVsZXMveGVuL3hlbi50ZQppbmRleCBlMTc0ZTQ4Li43ZTY5Y2U5IDEwMDY0NAot LS0gYS90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVuL3hlbi50ZQorKysgYi90 b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVuL3hlbi50ZQpAQCAtNzQsMTEgKzc0 LDEyIEBAIGFsbG93IGRvbTBfdCB4ZW5fdDp4ZW4yIHsKICAgICBnZXRfc3ltYm9sCiB9OwogCi0j IEFsbG93IGRvbTAgdG8gdXNlIGFsbCBYRU5WRVJfIHN1Ym9wcyB0aGF0IGhhdmUgY2hlY2tzLgor IyBBbGxvdyBkb20wIHRvIHVzZSBhbGwgWEVOVkVSXyBzdWJvcHMgYW5kIFZFUlNJT04gc3Vib3Bz IHRoYXQgaGF2ZSBjaGVja3MuCiAjIE5vdGUgdGhhdCBkb20wIGlzIHBhcnQgb2YgZG9tYWluX3R5 cGUgc28gdGhpcyBoYXMgZHVwbGljYXRlcy4KIGFsbG93IGRvbTBfdCB4ZW5fdDp2ZXJzaW9uIHsK ICAgICB4ZW5fZXh0cmF2ZXJzaW9uIHhlbl9jb21waWxlX2luZm8geGVuX2NhcGFiaWxpdGllcwog ICAgIHhlbl9jaGFuZ2VzZXQgeGVuX3BhZ2VzaXplIHhlbl9ndWVzdF9oYW5kbGUgeGVuX2NvbW1h bmRsaW5lCisgICAgZXh0cmF2ZXJzaW9uIGNhcGFiaWxpdGllcyBjaGFuZ2VzZXQgcGFnZXNpemUg Z3Vlc3RfaGFuZGxlIGNvbW1hbmRsaW5lCiB9OwogCiBhbGxvdyBkb20wX3QgeGVuX3Q6bW11IG1l bW9yeW1hcDsKQEAgLTE0NSwxMCArMTQ2LDEyIEBAIGlmIChndWVzdF93cml0ZWNvbnNvbGUpIHsK ICMgcG11X2N0cmwgaXMgZm9yKQogYWxsb3cgZG9tYWluX3R5cGUgeGVuX3Q6eGVuMiBwbXVfdXNl OwogCi0jIEZvciBub3JtYWwgZ3Vlc3RzIGFsbCBwb3NzaWJsZSBleGNlcHQgWEVOVkVSX2NvbW1h bmRsaW5lLgorIyBGb3Igbm9ybWFsIGd1ZXN0cyBhbGwgcG9zc2libGUgZXhjZXB0IFhFTlZFUl9j b21tYW5kbGluZSwgVkVSU0lPTl9jaGFuZ2VzZXQsCisjIGFuZCBWRVJTSU9OX2NvbW1hbmRsaW5l CiBhbGxvdyBkb21haW5fdHlwZSB4ZW5fdDp2ZXJzaW9uIHsKICAgICB4ZW5fZXh0cmF2ZXJzaW9u IHhlbl9jb21waWxlX2luZm8geGVuX2NhcGFiaWxpdGllcwogICAgIHhlbl9jaGFuZ2VzZXQgeGVu X3BhZ2VzaXplIHhlbl9ndWVzdF9oYW5kbGUKKyAgICBleHRyYXZlcnNpb24gY2FwYWJpbGl0aWVz IHBhZ2VzaXplIGd1ZXN0X2hhbmRsZQogfTsKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZm IC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RyYXBzLmMgYi94ZW4vYXJjaC9hcm0vdHJhcHMuYwppbmRl eCA4Mzc0NGU4Li4zMWQyMTE1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vdHJhcHMuYworKysg Yi94ZW4vYXJjaC9hcm0vdHJhcHMuYwpAQCAtMTIzNSw2ICsxMjM1LDcgQEAgc3RhdGljIGFybV9o eXBlcmNhbGxfdCBhcm1faHlwZXJjYWxsX3RhYmxlW10gPSB7CiAgICAgSFlQRVJDQUxMKG11bHRp Y2FsbCwgMiksCiAgICAgSFlQRVJDQUxMKHBsYXRmb3JtX29wLCAxKSwKICAgICBIWVBFUkNBTExf QVJNKHZjcHVfb3AsIDMpLAorICAgIEhZUEVSQ0FMTCh2ZXJzaW9uX29wLCAzKSwKIH07CiAKICNp Zm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2Fy Y2gveDg2L2h2bS9odm0uYwppbmRleCA4MGQ1OWZmLi5mMTZiNTkwIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTUzMjIs NiArNTMyMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgIENPTVBBVF9DQUxMKHBsYXRm b3JtX29wKSwKICAgICBDT01QQVRfQ0FMTChtbXVleHRfb3ApLAogICAgIEhZUEVSQ0FMTCh4ZW5w bXVfb3ApLAorICAgIEhZUEVSQ0FMTCh2ZXJzaW9uX29wKSwKICAgICBIWVBFUkNBTEwoYXJjaF8x KQogfTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUyBi L3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMKaW5kZXggMzNlMmMxMi4uZmQyNWU4 NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUworKysgYi94 ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9lbnRyeS5TCkBAIC0zOTQsNiArMzk0LDcgQEAgRU5U UlkoY29tcGF0X2h5cGVyY2FsbF90YWJsZSkKICAgICAgICAgLnF1YWQgZG9fdG1lbV9vcAogICAg ICAgICAucXVhZCBkb19uaV9oeXBlcmNhbGwgICAgICAgICAgIC8qIHJlc2VydmVkIGZvciBYZW5D bGllbnQgKi8KICAgICAgICAgLnF1YWQgZG9feGVucG11X29wICAgICAgICAgICAgICAvKiA0MCAq LworICAgICAgICAucXVhZCBkb192ZXJzaW9uX29wCiAgICAgICAgIC5yZXB0IF9fSFlQRVJWSVNP Ul9hcmNoXzAtKCguLWNvbXBhdF9oeXBlcmNhbGxfdGFibGUpLzgpCiAgICAgICAgIC5xdWFkIGNv bXBhdF9uaV9oeXBlcmNhbGwKICAgICAgICAgLmVuZHIKQEAgLTQ0NSw2ICs0NDYsNyBAQCBFTlRS WShjb21wYXRfaHlwZXJjYWxsX2FyZ3NfdGFibGUpCiAgICAgICAgIC5ieXRlIDEgLyogZG9fdG1l bV9vcCAgICAgICAgICAgICAgICovCiAgICAgICAgIC5ieXRlIDAgLyogcmVzZXJ2ZWQgZm9yIFhl bkNsaWVudCAgICovCiAgICAgICAgIC5ieXRlIDIgLyogZG9feGVucG11X29wICAgICAgICAgICAg ICovICAvKiA0MCAqLworICAgICAgICAuYnl0ZSAzIC8qIGRvX3ZlcnNpb25fb3AgICAgICAgICAg ICAqLwogICAgICAgICAucmVwdCBfX0hZUEVSVklTT1JfYXJjaF8wLSguLWNvbXBhdF9oeXBlcmNh bGxfYXJnc190YWJsZSkKICAgICAgICAgLmJ5dGUgMCAvKiBjb21wYXRfbmlfaHlwZXJjYWxsICAg ICAgKi8KICAgICAgICAgLmVuZHIKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50 cnkuUyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUwppbmRleCAwN2VmMDk2Li5iMGU3MjU3 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMKKysrIGIveGVuL2FyY2gv eDg2L3g4Nl82NC9lbnRyeS5TCkBAIC03MzAsNiArNzMwLDcgQEAgRU5UUlkoaHlwZXJjYWxsX3Rh YmxlKQogICAgICAgICAucXVhZCBkb190bWVtX29wCiAgICAgICAgIC5xdWFkIGRvX25pX2h5cGVy Y2FsbCAgICAgICAvKiByZXNlcnZlZCBmb3IgWGVuQ2xpZW50ICovCiAgICAgICAgIC5xdWFkIGRv X3hlbnBtdV9vcCAgICAgICAgICAvKiA0MCAqLworICAgICAgICAucXVhZCBkb192ZXJzaW9uX29w CiAgICAgICAgIC5yZXB0IF9fSFlQRVJWSVNPUl9hcmNoXzAtKCguLWh5cGVyY2FsbF90YWJsZSkv OCkKICAgICAgICAgLnF1YWQgZG9fbmlfaHlwZXJjYWxsCiAgICAgICAgIC5lbmRyCkBAIC03ODEs NiArNzgyLDcgQEAgRU5UUlkoaHlwZXJjYWxsX2FyZ3NfdGFibGUpCiAgICAgICAgIC5ieXRlIDEg LyogZG9fdG1lbV9vcCAgICAgICAgICAgKi8KICAgICAgICAgLmJ5dGUgMCAvKiByZXNlcnZlZCBm b3IgWGVuQ2xpZW50ICovCiAgICAgICAgIC5ieXRlIDIgLyogZG9feGVucG11X29wICAgICAgICAg Ki8gIC8qIDQwICovCisgICAgICAgIC5ieXRlIDMgLyogZG9fdmVyc2lvbl9vcCAgICAgICAgKi8K ICAgICAgICAgLnJlcHQgX19IWVBFUlZJU09SX2FyY2hfMC0oLi1oeXBlcmNhbGxfYXJnc190YWJs ZSkKICAgICAgICAgLmJ5dGUgMCAvKiBkb19uaV9oeXBlcmNhbGwgICAgICAqLwogICAgICAgICAu ZW5kcgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9jb21wYXQva2VybmVsLmMgYi94ZW4vY29tbW9u L2NvbXBhdC9rZXJuZWwuYwppbmRleCBkZjkzZmRkLi43YTdjYTUzIDEwMDY0NAotLS0gYS94ZW4v Y29tbW9uL2NvbXBhdC9rZXJuZWwuYworKysgYi94ZW4vY29tbW9uL2NvbXBhdC9rZXJuZWwuYwpA QCAtMzksNiArMzksOCBAQCBDSEVDS19UWVBFKGNhcGFiaWxpdGllc19pbmZvKTsKIAogQ0hFQ0tf VFlQRShkb21haW5faGFuZGxlKTsKIAorQ0hFQ0tfVFlQRSh2ZXJzaW9uX29wX3ZhbCk7CisKICNk ZWZpbmUgeGVubm1pX2NhbGxiYWNrIGNvbXBhdF9ubWlfY2FsbGJhY2sKICNkZWZpbmUgeGVubm1p X2NhbGxiYWNrX3QgY29tcGF0X25taV9jYWxsYmFja190CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24va2VybmVsLmMgYi94ZW4vY29tbW9uL2tlcm5lbC5jCmluZGV4IGE0YTNjMzYuLmY2ZDI2NzYg MTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24va2VybmVsLmMKKysrIGIveGVuL2NvbW1vbi9rZXJuZWwu YwpAQCAtMjIxLDYgKzIyMSw0NyBAQCB2b2lkIF9faW5pdCBkb19pbml0Y2FsbHModm9pZCkKIAog I2VuZGlmCiAKK3N0YXRpYyBpbnQgZ2V0X2ZlYXR1cmVzKHN0cnVjdCBkb21haW4gKmQsIHhlbl9m ZWF0dXJlX2luZm9fdCAqZmkpCit7CisgICAgc3dpdGNoICggZmktPnN1Ym1hcF9pZHggKQorICAg IHsKKyAgICBjYXNlIDA6CisgICAgICAgIGZpLT5zdWJtYXAgPSAoMVUgPDwgWEVORkVBVF9tZW1v cnlfb3Bfdm5vZGVfc3VwcG9ydGVkKTsKKyAgICAgICAgaWYgKCBwYWdpbmdfbW9kZV90cmFuc2xh dGUoZCkgKQorICAgICAgICAgICAgZmktPnN1Ym1hcCB8PQorICAgICAgICAgICAgICAgICgxVSA8 PCBYRU5GRUFUX3dyaXRhYmxlX3BhZ2VfdGFibGVzKSB8CisgICAgICAgICAgICAgICAgKDFVIDw8 IFhFTkZFQVRfYXV0b190cmFuc2xhdGVkX3BoeXNtYXApOworICAgICAgICBpZiAoIGlzX2hhcmR3 YXJlX2RvbWFpbihkKSApCisgICAgICAgICAgICBmaS0+c3VibWFwIHw9IDFVIDw8IFhFTkZFQVRf ZG9tMDsKKyNpZmRlZiBDT05GSUdfWDg2CisgICAgICAgIGlmICggVk1fQVNTSVNUKGQsIHBhZV9l eHRlbmRlZF9jcjMpICkKKyAgICAgICAgICAgIGZpLT5zdWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRf cGFlX3BnZGlyX2Fib3ZlXzRnYik7CisgICAgICAgIHN3aXRjaCAoIGQtPmd1ZXN0X3R5cGUgKQor ICAgICAgICB7CisgICAgICAgIGNhc2UgZ3Vlc3RfdHlwZV9wdjoKKyAgICAgICAgICAgIGZpLT5z dWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRfbW11X3B0X3VwZGF0ZV9wcmVzZXJ2ZV9hZCkgfAorICAg ICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9oaWdobWVtX2Fzc2lzdCkgfAor ICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9nbnR0YWJfbWFwX2F2YWls X2JpdHMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgZ3Vlc3RfdHlwZV9wdmg6 CisgICAgICAgICAgICBmaS0+c3VibWFwIHw9ICgxVSA8PCBYRU5GRUFUX2h2bV9zYWZlX3B2Y2xv Y2spIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfc3VwZXJ2aXNv cl9tb2RlX2tlcm5lbCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVB VF9odm1fY2FsbGJhY2tfdmVjdG9yKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl IGd1ZXN0X3R5cGVfaHZtOgorICAgICAgICAgICAgZmktPnN1Ym1hcCB8PSAoMVUgPDwgWEVORkVB VF9odm1fc2FmZV9wdmNsb2NrKSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBY RU5GRUFUX2h2bV9jYWxsYmFja192ZWN0b3IpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg KDFVIDw8IFhFTkZFQVRfaHZtX3BpcnFzKTsKKyAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K KyNlbmRpZgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gLUVJ TlZBTDsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBTaW1wbGUgaHlwZXJjYWxs cy4KICAqLwpAQCAtMjk4LDQ3ICszMzksMTQgQEAgRE8oeGVuX3ZlcnNpb24pKGludCBjbWQsIFhF Tl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgIGNhc2UgWEVOVkVSX2dldF9mZWF0 dXJlczoKICAgICB7CiAgICAgICAgIHhlbl9mZWF0dXJlX2luZm9fdCBmaTsKLSAgICAgICAgc3Ry dWN0IGRvbWFpbiAqZCA9IGN1cnJlbnQtPmRvbWFpbjsKKyAgICAgICAgaW50IHJjOwogCiAgICAg ICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZmaSwgYXJnLCAxKSApCiAgICAgICAgICAgICByZXR1 cm4gLUVGQVVMVDsKIAotICAgICAgICBzd2l0Y2ggKCBmaS5zdWJtYXBfaWR4ICkKLSAgICAgICAg ewotICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBmaS5zdWJtYXAgPSAoMVUgPDwgWEVORkVB VF9tZW1vcnlfb3Bfdm5vZGVfc3VwcG9ydGVkKTsKLSAgICAgICAgICAgIGlmICggVk1fQVNTSVNU KGQsIHBhZV9leHRlbmRlZF9jcjMpICkKLSAgICAgICAgICAgICAgICBmaS5zdWJtYXAgfD0gKDFV IDw8IFhFTkZFQVRfcGFlX3BnZGlyX2Fib3ZlXzRnYik7Ci0gICAgICAgICAgICBpZiAoIHBhZ2lu Z19tb2RlX3RyYW5zbGF0ZShkKSApCi0gICAgICAgICAgICAgICAgZmkuc3VibWFwIHw9IAotICAg ICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF93cml0YWJsZV9wYWdlX3RhYmxlcykgfAot ICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9hdXRvX3RyYW5zbGF0ZWRfcGh5c21h cCk7Ci0gICAgICAgICAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSApCi0gICAgICAgICAg ICAgICAgZmkuc3VibWFwIHw9IDFVIDw8IFhFTkZFQVRfZG9tMDsKLSNpZmRlZiBDT05GSUdfWDg2 Ci0gICAgICAgICAgICBzd2l0Y2ggKCBkLT5ndWVzdF90eXBlICkKLSAgICAgICAgICAgIHsKLSAg ICAgICAgICAgIGNhc2UgZ3Vlc3RfdHlwZV9wdjoKLSAgICAgICAgICAgICAgICBmaS5zdWJtYXAg fD0gKDFVIDw8IFhFTkZFQVRfbW11X3B0X3VwZGF0ZV9wcmVzZXJ2ZV9hZCkgfAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9oaWdobWVtX2Fzc2lzdCkgfAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9nbnR0YWJfbWFwX2F2YWls X2JpdHMpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBndWVzdF90 eXBlX3B2aDoKLSAgICAgICAgICAgICAgICBmaS5zdWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRfaHZt X3NhZmVfcHZjbG9jaykgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVO RkVBVF9zdXBlcnZpc29yX21vZGVfa2VybmVsKSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgxVSA8PCBYRU5GRUFUX2h2bV9jYWxsYmFja192ZWN0b3IpOwotICAgICAgICAgICAgICAg IGJyZWFrOwotICAgICAgICAgICAgY2FzZSBndWVzdF90eXBlX2h2bToKLSAgICAgICAgICAgICAg ICBmaS5zdWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRfaHZtX3NhZmVfcHZjbG9jaykgfAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9odm1fY2FsbGJhY2tfdmVjdG9y KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2h2bV9waXJx cyk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAg ICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7Ci0gICAgICAgIH0KKyAgICAgICAgcmMgPSBnZXRfZmVhdHVyZXMoY3VycmVudC0+ZG9tYWlu LCAmZmkpOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgIHJldHVybiByYzsKIAogICAg ICAgICBpZiAoIF9fY29weV90b19ndWVzdChhcmcsICZmaSwgMSkgKQogICAgICAgICAgICAgcmV0 dXJuIC1FRkFVTFQ7CkBAIC0zODEsNiArMzg5LDEyMyBAQCBETyh4ZW5fdmVyc2lvbikoaW50IGNt ZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgcmV0dXJuIC1FTk9TWVM7 CiB9CiAKKy8qIENvbXB1dGVkIGJ5IGNhcGFiaWxpdGllc19jYWNoZV9pbml0LiAqLworc3RhdGlj IHhlbl9jYXBhYmlsaXRpZXNfaW5mb190IF9fcmVhZF9tb3N0bHkgY2FjaGVkX2NhcDsKK3N0YXRp YyB1bnNpZ25lZCBpbnQgX19yZWFkX21vc3RseSBjYWNoZWRfY2FwX2xlbjsKKworLyoKKyAqIFNp bWlsYXIgdG8gSFlQRVJWSVNPUl94ZW5fdmVyc2lvbiBidXQgd2l0aCBhIHNhbmUgaW50ZXJmYWNl CisgKiAoaGFzIGEgbGVuZ3RoLCBvbmUgY2FuIHByb2JlIGZvciB0aGUgbGVuZ3RoKSBhbmQgd2l0 aCBvbmUgbGVzcyBzdWItb3BzOgorICogbWlzc2luZyBYRU5WRVJfY29tcGlsZV9pbmZvLgorICov CitETyh2ZXJzaW9uX29wKSh1bnNpZ25lZCBpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFN KHZvaWQpIGFyZywKKyAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgdW5p b24geworICAgICAgICB4ZW5fdmVyc2lvbl9vcF92YWxfdCB2YWw7CisgICAgICAgIHhlbl9mZWF0 dXJlX2luZm9fdCBmaTsKKyAgICB9IHUgPSB7fTsKKyAgICB1bnNpZ25lZCBpbnQgc3ogPSAwOwor ICAgIGNvbnN0IHZvaWQgKnB0ciA9IE5VTEw7CisgICAgaW50IHJjID0geHNtX3ZlcnNpb25fb3Ao WFNNX09USEVSLCBjbWQpOworCisgICAgLyogV2UgY2FuIHNhZmVseSByZXR1cm4gLUVQRVJNISAq LworICAgIGlmICggcmMgKQorICAgICAgICByZXR1cm4gcmM7CisKKyAgICAvKgorICAgICAqIFRo ZSBIWVBFUlZJU09SX3hlbl92ZXJzaW9uIGRpZmZlcnMgaW4gdGhhdCBzb21lIHJldHVybiB0aGUg dmFsdWUsCisgICAgICogYW5kIHNvbWUgY29weSBpdCBvbiBiYWNrIG9uIGFyZ3VtZW50LiBXZSBm b2xsb3cgdGhlIHNhbWUgcnVsZSBmb3IgYWxsCisgICAgICogc3ViLW9wczogcmV0dXJuIHRoZSBu dW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiwgb3IgbmVnYXRpdmUgZXJybm8gb24KKyAgICAgKiBmYWls dXJlLCBhbmQgYWx3YXlzIGNvcHkgdGhlIHJlc3VsdCBpbiBhcmcuIFllZXkgc2FuaXR5IQorICAg ICAqLworICAgIHN3aXRjaCAoIGNtZCApCisgICAgeworICAgIGNhc2UgWEVOX1ZFUlNJT05fdmVy c2lvbjoKKyAgICAgICAgc3ogPSBzaXplb2YoeGVuX3ZlcnNpb25fb3BfdmFsX3QpOworICAgICAg ICB1LnZhbCA9ICh4ZW5fbWFqb3JfdmVyc2lvbigpIDw8IDE2KSB8IHhlbl9taW5vcl92ZXJzaW9u KCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9leHRyYXZlcnNpb246 CisgICAgICAgIHN6ID0gc3RybGVuKHhlbl9leHRyYV92ZXJzaW9uKCkpICsgMTsKKyAgICAgICAg cHRyID0geGVuX2V4dHJhX3ZlcnNpb24oKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhF Tl9WRVJTSU9OX2NhcGFiaWxpdGllczoKKyAgICAgICAgc3ogPSBjYWNoZWRfY2FwX2xlbjsKKyAg ICAgICAgcHRyID0gY2FjaGVkX2NhcDsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTl9W RVJTSU9OX2NoYW5nZXNldDoKKyAgICAgICAgc3ogPSBzdHJsZW4oeGVuX2NoYW5nZXNldCgpKSAr IDE7CisgICAgICAgIHB0ciA9IHhlbl9jaGFuZ2VzZXQoKTsKKyAgICAgICAgYnJlYWs7CisKKyAg ICBjYXNlIFhFTl9WRVJTSU9OX3BsYXRmb3JtX3BhcmFtZXRlcnM6CisgICAgICAgIHN6ID0gc2l6 ZW9mKHhlbl92ZXJzaW9uX29wX3ZhbF90KTsKKyAgICAgICAgdS52YWwgPSBIWVBFUlZJU09SX1ZJ UlRfU1RBUlQ7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9nZXRfZmVh dHVyZXM6CisgICAgICAgIHN6ID0gc2l6ZW9mKHhlbl9mZWF0dXJlX2luZm9fdCk7CisKKyAgICAg ICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbChhcmcpICkKKyAgICAgICAgICAgIGJyZWFrOwor CisgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZ1LmZpLCBhcmcsIDEpICkKKyAgICAgICAg eworICAgICAgICAgICAgcmMgPSAtRUZBVUxUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg IH0KKyAgICAgICAgcmMgPSBnZXRfZmVhdHVyZXMoY3VycmVudC0+ZG9tYWluLCAmdS5maSk7Cisg ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9wYWdlc2l6ZToKKyAgICAgICAg c3ogPSBzaXplb2YoeGVuX3ZlcnNpb25fb3BfdmFsX3QpOworICAgICAgICB1LnZhbCA9IFBBR0Vf U0laRTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTl9WRVJTSU9OX2d1ZXN0X2hhbmRs ZToKKyAgICAgICAgc3ogPSBBUlJBWV9TSVpFKGN1cnJlbnQtPmRvbWFpbi0+aGFuZGxlKTsKKyAg ICAgICAgcHRyID0gY3VycmVudC0+ZG9tYWluLT5oYW5kbGU7CisgICAgICAgIGJyZWFrOworCisg ICAgY2FzZSBYRU5fVkVSU0lPTl9jb21tYW5kbGluZToKKyAgICAgICAgc3ogPSBzdHJsZW4oc2F2 ZWRfY21kbGluZSkgKyAxOworICAgICAgICBwdHIgPSBzYXZlZF9jbWRsaW5lOworICAgICAgICBi cmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJjID0gLUVOT1NZUzsKKyAgICB9CisKKyAg ICBpZiAoIHJjICkKKyAgICAgICAgcmV0dXJuIHJjOworCisgICAgLyoKKyAgICAgKiBUaGlzIGh5 cGVyY2FsbCBhbHNvIGFsbG93cyB0aGUgY2xpZW50IHRvIHByb2JlLiBJZiBpdCBwcm92aWRlcwor ICAgICAqIGEgTlVMTCBhcmcgd2Ugd2lsbCByZXR1cm4gdGhlIHNpemUgb2YgdGhlIHNwYWNlIGl0 IGhhcyB0bworICAgICAqIGFsbG9jYXRlIGZvciB0aGUgc3BlY2lmaWMgc3ViLW9wLgorICAgICAq LworICAgIEFTU0VSVChzeik7CisgICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbChhcmcpICkK KyAgICAgICAgcmV0dXJuIHN6OworCisgICAgaWYgKCAhcmMgKQorICAgIHsKKyAgICAgICAgdW5z aWduZWQgaW50IGJ5dGVzID0gbWluKHN6LCBsZW4pOworCisgICAgICAgIGlmICggY29weV90b19n dWVzdChhcmcsIHB0ciA/IDogJnUsIGJ5dGVzKSApCisgICAgICAgICAgICByYyA9IC1FRkFVTFQ7 CisKKyAgICAgICAgLyogV2UgcmV0dXJuIGxlbiAodHJ1bmNhdGUpIHdvcnRoIG9mIGRhdGEgZXZl biBpZiB3ZSBmYWlsLiAqLworICAgICAgICBpZiAoICFyYyAmJiBzeiA+IGxlbiApCisgICAgICAg ICAgICByYyA9IC1FTk9CVUZTOworICAgIH0KKworICAgIHJldHVybiByYyA9PSAwID8gc3ogOiBy YzsKK30KKwogRE8obm1pX29wKSh1bnNpZ25lZCBpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BB UkFNKHZvaWQpIGFyZykKIHsKICAgICBzdHJ1Y3QgeGVubm1pX2NhbGxiYWNrIGNiOwpAQCAtNDE4 LDYgKzU0MywyMCBAQCBETyhuaV9oeXBlcmNhbGwpKHZvaWQpCiAgICAgcmV0dXJuIC1FTk9TWVM7 CiB9CiAKK3N0YXRpYyBpbnQgX19pbml0IGNhcGFiaWxpdGllc19jYWNoZV9pbml0KHZvaWQpCit7 CisgICAgLyoKKyAgICAgKiBQcmUtYWxsb2NhdGUgdGhlIGNhY2hlIHNvIHdlIGRvIG5vdCBoYXZl IHRvIHdvcnJ5IGFib3V0CisgICAgICogc2ltdWx0YW5lb3VzIGludm9jYXRpb25zIG9uIHNhZmVf c3RyY2F0IGJ5IGd1ZXN0cyBhbmQgdGhlIGNhY2hlCisgICAgICogZGF0YSBiZWNvbWluZyBnYXJi YWdlLgorICAgICAqLworICAgIGFyY2hfZ2V0X3hlbl9jYXBzKCZjYWNoZWRfY2FwKTsKKyAgICBj YWNoZWRfY2FwX2xlbiA9IHN0cmxlbihjYWNoZWRfY2FwKSArIDE7CisKKyAgICByZXR1cm4gMDsK K30KK19faW5pdGNhbGwoY2FwYWJpbGl0aWVzX2NhY2hlX2luaXQpOworCiAvKgogICogTG9jYWwg dmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2Fy Y2gtYXJtLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaAppbmRleCA4NzBiYzNiLi41 ZjkwNzE4IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaAorKysgYi94 ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaApAQCAtMTI4LDYgKzEyOCw4IEBACiAgKiAgICAq IFZDUFVPUF9yZWdpc3Rlcl92Y3B1X2luZm8KICAqICAgICogVkNQVU9QX3JlZ2lzdGVyX3J1bnN0 YXRlX21lbW9yeV9hcmVhCiAgKgorICogIEhZUEVSVklTT1JfdmVyc2lvbl9vcAorICogICBBbGwg Z2VuZXJpYyBzdWItb3BlcmF0aW9ucwogICoKICAqIE90aGVyIG5vdGVzIG9uIHRoZSBBUk0gQUJJ OgogICoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy92ZXJzaW9uLmggYi94ZW4vaW5j bHVkZS9wdWJsaWMvdmVyc2lvbi5oCmluZGV4IDI0YTU4MmYuLmQ3MWVjNWIgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3B1YmxpYy92ZXJzaW9uLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3Zl cnNpb24uaApAQCAtMzAsNyArMzAsMTQgQEAKIAogI2luY2x1ZGUgInhlbi5oIgogCi0vKiBOQi4g QWxsIG9wcyByZXR1cm4gemVybyBvbiBzdWNjZXNzLCBleGNlcHQgWEVOVkVSX3t2ZXJzaW9uLHBh Z2VzaXplfSAqLworLyoKKyAqIFRoZXJlIGFyZSB0d28gaHlwZXJjYWxscyBtZW50aW9uZWQgaW4g aGVyZS4gVGhlIFhFTlZFUl8gYXJlIGZvcgorICogSFlQRVJDQUxMX3hlbl92ZXJzaW9uICgxNyks IHdoaWxlIFZFUlNJT05fIGFyZSBmb3IgdGhlCisgKiBIWVBFUkNBTExfdmVyc2lvbl9vcCAoNDEp LgorICoKKyAqIFRoZSBzdWJvcHMgYXJlIHZlcnkgc2ltaWxhciBleGNlcHQgdGhhdCB0aGUgbGF0 ZXIgaHlwZXJjYWxsIGhhcyBhCisgKiBzYW5lIGludGVyZmFjZS4KKyAqLwogCiAvKiBhcmcgPT0g TlVMTDsgcmV0dXJucyBtYWpvcjptaW5vciAoMTY6MTYpLiAqLwogI2RlZmluZSBYRU5WRVJfdmVy c2lvbiAgICAgIDAKQEAgLTg3LDYgKzk0LDY3IEBAIHR5cGVkZWYgc3RydWN0IHhlbl9mZWF0dXJl X2luZm8geGVuX2ZlYXR1cmVfaW5mb190OwogI2RlZmluZSBYRU5WRVJfY29tbWFuZGxpbmUgOQog dHlwZWRlZiBjaGFyIHhlbl9jb21tYW5kbGluZV90WzEwMjRdOwogCisvKgorICogVGhlIEhZUEVS Q0FMTF92ZXJzaW9uX29wIGhhcyBhIHNldCBvZiBzdWItb3BzIHdoaWNoIG1pcnJvciB0aGUKKyAq IHN1Yi1vcHMgb2YgSFlQRVJDQUxMX3hlbl92ZXJzaW9uLiBIb3dldmVyIHRoaXMgaHlwZXJjYWxs IGRpZmZlcnMKKyAqIHJhZGljYWxseSBmcm9tIHRoZSBmb3JtZXI6CisgKiAgLSBJdCByZXR1cm5z IHRoZSBhbW91bnQgb2YgYnl0ZXMgcmV0dXJuZWQuCisgKiAgLSBJdCB3aWxsIHJldHVybiAtWEVO X0VQRVJNIGlmIHRoZSBndWVzdCBpcyBub3QgcGVybWl0dGVkCisgKiAgICAoQWxiZWl0IFhFTl9W RVJTSU9OX3ZlcnNpb24sIFhFTl9WRVJTSU9OX3BsYXRmb3JtX3BhcmFtZXRlcnMsIGFuZAorICog ICAgWEVOX1ZFUlNJT05fZ2V0X2ZlYXR1cmVzIHdpbGwgYWx3YXlzIHJldHVybiBhbiB2YWx1ZSBh cyBndWVzdCBjYW5ub3QKKyAqICAgIHN1cnZpdmUgd2l0aG91dCB0aGlzIGluZm9ybWF0aW9uKS4K KyAqICAtIEl0IHdpbGwgcmV0dXJuIHRoZSByZXF1ZXN0ZWQgZGF0YSBpbiBhcmcuCisgKiAgLSBJ dCByZXF1aXJlcyBhbiB0aGlyZCBhcmd1bWVudCAobGVuKSBmb3IgdGhlIGxlbmd0aCBvZiB0aGUK KyAqICAgIGFyZy4gTmF0dXJhbGx5IHRoZSBhcmcgaGFzIHRvIGZpdCB0aGUgcmVxdWVzdGVkIGRh dGEgb3RoZXJ3aXNlCisgKiAgICAtWEVOX0VOT0JVRlMgaXMgcmV0dXJuZWQuCisgKgorICogSXQg YWxzbyBvZmZlcnMgYW4gbWVjaGFuaXNtIHRvIHByb2JlIGZvciB0aGUgYW1vdW50IG9mIGJ5dGVz IGFuCisgKiBzdWItb3Agd2lsbCByZXF1aXJlLiBIYXZpbmcgdGhlIGFyZyBoYXZlIGFuIE5VTEwg aGFuZGxlIHdpbGwKKyAqIHJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlcXVlc3RlZCBmb3Ig dGhlIG9wZXJhdGlvbi4gT3IgYW4KKyAqIG5lZ2F0aXZlIHZhbHVlIGlmIGFuIGVycm9yIGlzIGVu Y291bnRlcmVkLgorICovCisKK3R5cGVkZWYgdWludDY0X3QgeGVuX3ZlcnNpb25fb3BfdmFsX3Q7 CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdmVyc2lvbl9vcF92YWxfdCk7CisKKy8qCisg KiBhcmcgPT0geGVuX3ZlcnNpb25fb3BfdmFsX3QuIEVuY29kZWQgYXMgbWFqb3I6bWlub3IgKDMx Li4xNjoxNS4uMCksIHdoaWxlCisgKiA2My4uMzIgYXJlIHplcm8uCisgKi8KKyNkZWZpbmUgWEVO X1ZFUlNJT05fdmVyc2lvbiAgICAgICAgICAgICAwCisKKy8qIGFyZyA9PSBjaGFyW10uIENvbnRh aW5zIE5VTCB0ZXJtaW5hdGVkIHV0Zi04IHN0cmluZy4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05f ZXh0cmF2ZXJzaW9uICAgICAgICAxCisKKy8qIGFyZyA9PSBjaGFyW10uIENvbnRhaW5zIE5VTCB0 ZXJtaW5hdGVkIHV0Zi04IHN0cmluZy4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fY2FwYWJpbGl0 aWVzICAgICAgICAzCisKKy8qIGFyZyA9PSBjaGFyW10uIENvbnRhaW5zIE5VTCB0ZXJtaW5hdGVk IHV0Zi04IHN0cmluZy4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fY2hhbmdlc2V0ICAgICAgICAg ICA0CisKKy8qIGFyZyA9PSB4ZW5fdmVyc2lvbl9vcF92YWxfdC4gKi8KKyNkZWZpbmUgWEVOX1ZF UlNJT05fcGxhdGZvcm1fcGFyYW1ldGVycyA1CisKKy8qCisgKiBhcmcgPSB4ZW5fZmVhdHVyZV9p bmZvX3QgLSBzaGFyZXMgdGhlIHNhbWUgc3RydWN0dXJlCisgKiBhcyB0aGUgWEVOVkVSX2dldF9m ZWF0dXJlcy4KKyAqLworI2RlZmluZSBYRU5fVkVSU0lPTl9nZXRfZmVhdHVyZXMgICAgICAgIDYK KworLyogYXJnID09IHhlbl92ZXJzaW9uX29wX3ZhbF90LiAqLworI2RlZmluZSBYRU5fVkVSU0lP Tl9wYWdlc2l6ZSAgICAgICAgICAgIDcKKworLyoKKyAqIGFyZyA9PSB2b2lkLgorICoKKyAqIFRo ZSB0b29sc3RhY2sgZmlsbHMgaXQgb3V0IGZvciBndWVzdCBjb25zdW1wdGlvbi4gSXQgaXMgaW50 ZW5kZWQgdG8gaG9sZAorICogdGhlIFVVSUQgb2YgdGhlIGd1ZXN0LgorICovCisjZGVmaW5lIFhF Tl9WRVJTSU9OX2d1ZXN0X2hhbmRsZSAgICAgICAgOAorCisvKiBhcmcgPSBjaGFyW10uIENvbnRh aW5zIE5VTCB0ZXJtaW5hdGVkIHV0Zi04IHN0cmluZy4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05f Y29tbWFuZGxpbmUgICAgICAgICA5CisKICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfVkVSU0lPTl9I X18gKi8KIAogLyoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaCBiL3hlbi9p bmNsdWRlL3B1YmxpYy94ZW4uaAppbmRleCA2NGJhN2FiLi4xYTk5OTI5IDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oCkBA IC0xMTUsNiArMTE1LDcgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Vsb25nX3QpOwog I2RlZmluZSBfX0hZUEVSVklTT1JfdG1lbV9vcCAgICAgICAgICAgICAgMzgKICNkZWZpbmUgX19I WVBFUlZJU09SX3hjX3Jlc2VydmVkX29wICAgICAgIDM5IC8qIHJlc2VydmVkIGZvciBYZW5DbGll bnQgKi8KICNkZWZpbmUgX19IWVBFUlZJU09SX3hlbnBtdV9vcCAgICAgICAgICAgIDQwCisjZGVm aW5lIF9fSFlQRVJWSVNPUl92ZXJzaW9uX29wICAgICAgICAgICA0MSAvKiBzdXBlcnNlZGVzIHhl bl92ZXJzaW9uICgxNykgKi8KIAogLyogQXJjaGl0ZWN0dXJlLXNwZWNpZmljIGh5cGVyY2FsbCBk ZWZpbml0aW9ucy4gKi8KICNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMCAgICAgICAgICAgICAg IDQ4CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vaHlwZXJjYWxsLmggYi94ZW4vaW5jbHVk ZS94ZW4vaHlwZXJjYWxsLmgKaW5kZXggMGM4YWUwZS4uZThkMmI4MSAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUveGVuL2h5cGVyY2FsbC5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwu aApAQCAtMTQ3LDYgKzE0NywxMCBAQCBkb194ZW5vcHJvZl9vcChpbnQgb3AsIFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0odm9pZCkgYXJnKTsKIGV4dGVybiBsb25nCiBkb194ZW5wbXVfb3AodW5zaWdu ZWQgaW50IG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9wbXVfcGFyYW1zX3QpIGFyZyk7 CiAKK2V4dGVybiBsb25nCitkb192ZXJzaW9uX29wKHVuc2lnbmVkIGludCBjbWQsCisgICAgWEVO X0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcsIHVuc2lnbmVkIGludCBsZW4pOworCiAjaWZk ZWYgQ09ORklHX0NPTVBBVAogCiBleHRlcm4gaW50CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 c20vZHVtbXkuaCBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCmluZGV4IGFiYmUyODIuLmU1ZGFk MzUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKyBiL3hlbi9pbmNsdWRl L3hzbS9kdW1teS5oCkBAIC03NTEsMyArNzUxLDI0IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCB4 c21feGVuX3ZlcnNpb24gKFhTTV9ERUZBVUxUX0FSRyB1aW50MzJfdCBvcCkKICAgICAgICAgcmV0 dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihYU01fUFJJViwgY3VycmVudC0+ZG9tYWluLCBOVUxMKTsK ICAgICB9CiB9CisKK3N0YXRpYyBYU01fSU5MSU5FIGludCB4c21fdmVyc2lvbl9vcCAoWFNNX0RF RkFVTFRfQVJHIHVpbnQzMl90IG9wKQoreworICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9PVEhF Uik7CisgICAgc3dpdGNoICggb3AgKQorICAgIHsKKyAgICBjYXNlIFhFTl9WRVJTSU9OX3ZlcnNp b246CisgICAgY2FzZSBYRU5fVkVSU0lPTl9wbGF0Zm9ybV9wYXJhbWV0ZXJzOgorICAgIGNhc2Ug WEVOX1ZFUlNJT05fZ2V0X2ZlYXR1cmVzOgorICAgICAgICAvKiBUaGVzZSBNVVNUIGFsd2F5cyBi ZSBhY2Nlc3NpYmxlIHRvIGFueSBndWVzdCBieSBkZWZhdWx0LiAqLworICAgICAgICByZXR1cm4g MDsKKyAgICBjYXNlIFhFTl9WRVJTSU9OX2V4dHJhdmVyc2lvbjoKKyAgICBjYXNlIFhFTl9WRVJT SU9OX2NhcGFiaWxpdGllczoKKyAgICBjYXNlIFhFTl9WRVJTSU9OX3BhZ2VzaXplOgorICAgIGNh c2UgWEVOX1ZFUlNJT05fZ3Vlc3RfaGFuZGxlOgorICAgICAgICAvKiBUaGVzZSBjYW4gYmUgYWNj ZXNzaWJsZSB0byBhIGd1ZXN0LiAqLworICAgICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9u KFhTTV9IT09LLCBjdXJyZW50LT5kb21haW4sIE5VTEwpOworICAgIGRlZmF1bHQ6CisgICAgICAg IHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX1BSSVYsIGN1cnJlbnQtPmRvbWFpbiwgTlVM TCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveHNtL3hzbS5oIGIveGVuL2lu Y2x1ZGUveHNtL3hzbS5oCmluZGV4IDVlY2JlZTAuLmFjODA0NzIgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3hzbS94c20uaAorKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKQEAgLTE5NCw2ICsx OTQsNyBAQCBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgewogICAgIGludCAoKnBtdV9vcCkgKHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBvcCk7CiAjZW5kaWYKICAgICBpbnQgKCp4ZW5fdmVy c2lvbikgKHVpbnQzMl90IGNtZCk7CisgICAgaW50ICgqdmVyc2lvbl9vcCkgKHVpbnQzMl90IGNt ZCk7CiB9OwogCiAjaWZkZWYgQ09ORklHX1hTTQpAQCAtNzM3LDYgKzczOCwxMSBAQCBzdGF0aWMg aW5saW5lIGludCB4c21feGVuX3ZlcnNpb24gKHhzbV9kZWZhdWx0X3QgZGVmLCB1aW50MzJfdCBv cCkKICAgICByZXR1cm4geHNtX29wcy0+eGVuX3ZlcnNpb24ob3ApOwogfQogCitzdGF0aWMgaW5s aW5lIGludCB4c21fdmVyc2lvbl9vcCAoeHNtX2RlZmF1bHRfdCBkZWYsIHVpbnQzMl90IG9wKQor eworICAgIHJldHVybiB4c21fb3BzLT52ZXJzaW9uX29wKG9wKTsKK30KKwogI2VuZGlmIC8qIFhT TV9OT19XUkFQUEVSUyAqLwogCiAjaWZkZWYgQ09ORklHX01VTFRJQk9PVApkaWZmIC0tZ2l0IGEv eGVuL3hzbS9kdW1teS5jIGIveGVuL3hzbS9kdW1teS5jCmluZGV4IDk3OTFhZDQuLjc3NmRkMDkg MTAwNjQ0Ci0tLSBhL3hlbi94c20vZHVtbXkuYworKysgYi94ZW4veHNtL2R1bW15LmMKQEAgLTE2 Myw0ICsxNjMsNSBAQCB2b2lkIHhzbV9maXh1cF9vcHMgKHN0cnVjdCB4c21fb3BlcmF0aW9ucyAq b3BzKQogICAgIHNldF90b19kdW1teV9pZl9udWxsKG9wcywgcG11X29wKTsKICNlbmRpZgogICAg IHNldF90b19kdW1teV9pZl9udWxsKG9wcywgeGVuX3ZlcnNpb24pOworICAgIHNldF90b19kdW1t eV9pZl9udWxsKG9wcywgdmVyc2lvbl9vcCk7CiB9CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNr L2hvb2tzLmMgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKaW5kZXggMjA2OWNiMy4uMWVhZWM1OCAx MDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5jCisrKyBiL3hlbi94c20vZmxhc2svaG9v a3MuYwpAQCAtMTY1OCw2ICsxNjU4LDQwIEBAIHN0YXRpYyBpbnQgZmxhc2tfeGVuX3ZlcnNpb24g KHVpbnQzMl90IG9wKQogICAgIH0KIH0KIAorc3RhdGljIGludCBmbGFza192ZXJzaW9uX29wICh1 aW50MzJfdCBvcCkKK3sKKyAgICB1MzIgZHNpZCA9IGRvbWFpbl9zaWQoY3VycmVudC0+ZG9tYWlu KTsKKworICAgIHN3aXRjaCAoIG9wICkKKyAgICB7CisgICAgY2FzZSBYRU5fVkVSU0lPTl92ZXJz aW9uOgorICAgIGNhc2UgWEVOX1ZFUlNJT05fcGxhdGZvcm1fcGFyYW1ldGVyczoKKyAgICBjYXNl IFhFTl9WRVJTSU9OX2dldF9mZWF0dXJlczoKKyAgICAgICAgLyogVGhlc2UgTVVTVCBhbHdheXMg YmUgYWNjZXNzaWJsZSB0byBhbnkgZ3Vlc3QgYnkgZGVmYXVsdC4gKi8KKyAgICAgICAgcmV0dXJu IDA7CisgICAgY2FzZSBYRU5fVkVSU0lPTl9leHRyYXZlcnNpb246CisgICAgICAgIHJldHVybiBh dmNfaGFzX3Blcm0oZHNpZCwgU0VDSU5JVFNJRF9YRU4sIFNFQ0NMQVNTX1ZFUlNJT04sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVkVSU0lPTl9fRVhUUkFWRVJTSU9OLCBOVUxMKTsKKyAg ICBjYXNlIFhFTl9WRVJTSU9OX2NhcGFiaWxpdGllczoKKyAgICAgICAgcmV0dXJuIGF2Y19oYXNf cGVybShkc2lkLCBTRUNJTklUU0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBWRVJTSU9OX19DQVBBQklMSVRJRVMsIE5VTEwpOworICAgIGNhc2Ug WEVOX1ZFUlNJT05fY2hhbmdlc2V0OgorICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQs IFNFQ0lOSVRTSURfWEVOLCBTRUNDTEFTU19WRVJTSU9OLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFZFUlNJT05fX0NIQU5HRVNFVCwgTlVMTCk7CisgICAgY2FzZSBYRU5fVkVSU0lPTl9w YWdlc2l6ZToKKyAgICAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklUU0lEX1hF TiwgU0VDQ0xBU1NfVkVSU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRVJTSU9O X19QQUdFU0laRSwgTlVMTCk7CisgICAgY2FzZSBYRU5fVkVSU0lPTl9ndWVzdF9oYW5kbGU6Cisg ICAgICAgIHJldHVybiBhdmNfaGFzX3Blcm0oZHNpZCwgU0VDSU5JVFNJRF9YRU4sIFNFQ0NMQVNT X1ZFUlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVSU0lPTl9fR1VFU1RfSEFO RExFLCBOVUxMKTsKKyAgICBjYXNlIFhFTl9WRVJTSU9OX2NvbW1hbmRsaW5lOgorICAgICAgICBy ZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQsIFNFQ0lOSVRTSURfWEVOLCBTRUNDTEFTU19WRVJTSU9O LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFUlNJT05fX0NPTU1BTkRMSU5FLCBOVUxM KTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gLUVQRVJNOworICAgIH0KK30KKwogbG9u ZyBkb19mbGFza19vcChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhzbV9vcF90KSB1X2ZsYXNrX29w KTsKIGludCBjb21wYXRfZmxhc2tfb3AoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4c21fb3BfdCkg dV9mbGFza19vcCk7CiAKQEAgLTE3OTcsNiArMTgzMSw3IEBAIHN0YXRpYyBzdHJ1Y3QgeHNtX29w ZXJhdGlvbnMgZmxhc2tfb3BzID0gewogICAgIC5wbXVfb3AgPSBmbGFza19wbXVfb3AsCiAjZW5k aWYKICAgICAueGVuX3ZlcnNpb24gPSBmbGFza194ZW5fdmVyc2lvbiwKKyAgICAudmVyc2lvbl9v cCA9IGZsYXNrX3ZlcnNpb25fb3AsCiB9OwogCiBzdGF0aWMgX19pbml0IHZvaWQgZmxhc2tfaW5p dCh2b2lkKQpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMg Yi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwppbmRleCBiYWRjZjFjLi41NjYw MGJiIDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycworKysg Yi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwpAQCAtNDk2LDEyICs0OTYsMTQg QEAgY2xhc3Mgc2VjdXJpdHkKICAgICBkZWxfb2NvbnRleHQKIH0KIAotIyBDbGFzcyB2ZXJzaW9u IGlzIHVzZWQgdG8gZGVzY3JpYmUgdGhlIFhFTlZFUl8gaHlwZXJjYWxsLgorIyBDbGFzcyB2ZXJz aW9uIGlzIHVzZWQgdG8gZGVzY3JpYmUgdGhlIFhFTlZFUl8gYW5kIFZFUlNJT04gaHlwZXJjYWxs LgogIyBBbG1vc3QgYWxsIHN1Yi1vcHMgYXJlIGRlc2NyaWJlZCBoZXJlIC0gaW4gdGhlIGRlZmF1 bHQgY2FzZSBhbGwgb2YgdGhlbSBzaG91bGQKLSMgYmUgYWxsb3dlZCBleGNlcHQgdGhlIFhFTlZF Ul9jb21tYW5kbGluZS4KKyMgYmUgYWxsb3dlZCBleGNlcHQgdGhlIFhFTlZFUl9jb21tYW5kbGlu ZSwgVkVSU0lPTl9jb21tYW5kbGluZSwgYW5kCisjIFZFUlNJT05fY2hhbmdlc2V0LgogIwogIyBU aGUgb25lcyB0aGF0IGFyZSBvbWl0dGVkIGFyZSBYRU5WRVJfdmVyc2lvbiwgWEVOVkVSX3BsYXRm b3JtX3BhcmFtZXRlcnMsCi0jIGFuZCBYRU5WRVJfZ2V0X2ZlYXR1cmVzICAtIGFzIHRoZXkgTVVT VCBhbHdheXMgYmUgcmV0dXJuZWQgdG8gYSBndWVzdC4KKyMgWEVOVkVSX2dldF9mZWF0dXJlcywg WEVOX1ZFUlNJT05fdmVyc2lvbiwgWEVOX1ZFUlNJT05fcGxhdGZvcm1fcGFyYW1ldGVycywKKyMg YW5kIFhFTl9WRVJTSU9OX2dldF9mZWF0dXJlcyAtIGFzIHRoZXkgTVVTVCBhbHdheXMgYmUgcmV0 dXJuZWQgdG8gYSBndWVzdC4KICMKIGNsYXNzIHZlcnNpb24KIHsKQEAgLTUxOSw0ICs1MjEsMTcg QEAgY2xhc3MgdmVyc2lvbgogICAgIHhlbl9ndWVzdF9oYW5kbGUKICMgWGVuIGNvbW1hbmQgbGlu ZS4KICAgICB4ZW5fY29tbWFuZGxpbmUKKyMgLS0tIFZFUlNJT04gaHlwZXJjYWxsIC0tLQorIyBF eHRyYSBpbmZvcm1hdGlvbnMgKC11bnN0YWJsZSkuCisgICAgZXh0cmF2ZXJzaW9uCisjIFN1Y2gg YXMgInhlbi0zLjAteDg2XzY0IHhlbi0zLjAteDg2XzMycCBodm0tMy4wLXg4Nl8zMiBodm0tMy4w LXg4Nl8zMnAgaHZtLTMuMC14ODZfNjQiLgorICAgIGNhcGFiaWxpdGllcworIyBTb3VyY2UgY29k ZSBjaGFuZ2VzZXQuCisgICAgY2hhbmdlc2V0CisjIFBhZ2Ugc2l6ZSB0aGUgaHlwZXJ2aXNvciB1 c2VzLgorICAgIHBhZ2VzaXplCisjIEFuIHZhbHVlIHRoYXQgdGhlIGNvbnRyb2wgc3RhY2sgY2Fu IGNob29zZS4KKyAgICBndWVzdF9oYW5kbGUKKyMgWGVuIGNvbW1hbmQgbGluZS4KKyAgICBjb21t YW5kbGluZQogfQotLSAKMi40LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=