From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v4 04/34] HYPERCALL_version_op. New hypercall mirroring XENVER_ but sane. Date: Tue, 15 Mar 2016 13:56:26 -0400 Message-ID: <1458064616-23101-5-git-send-email-konrad.wilk@oracle.com> References: <1458064616-23101-1-git-send-email-konrad.wilk@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 1aftGp-0001bX-CE for xen-devel@lists.xenproject.org; Tue, 15 Mar 2016 18:00:39 +0000 In-Reply-To: <1458064616-23101-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, ross.lagerwall@citrix.com, konrad@kernel.org, andrew.cooper3@citrix.com, mpohlack@amazon.de, sasha.levin@oracle.com Cc: Wei Liu , Stefano Stabellini , Konrad Rzeszutek Wilk , Ian Jackson , Julien Grall , Stefano Stabellini , Jan Beulich , Keir Fraser , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org VGhpcyBoeXBlcmNhbGwgbWlycm9ycyB0aGUgWEVOVkVSXyBpbiB0aGF0IGl0IGhhcyBzaW1pbGFy IGZ1bmN0aW9uYWxpdHkuCkhvd2V2ZXIgaXQgaXMgZGVzaWduZWQgZGlmZmVyZW50bHk6CiAtIE5v IGNvbXBhdCBsYXllci4gVGhlIGRhdGEgc3RydWN0dXJlcyBhcmUgdGhlIHNhbWUgc2l6ZSBvbiAz MgogICBhcyBvbiA2NC1iaXQuCiAtIFRoZSBoeXBlcmNhbGwgYWNjZXB0cyB0aHJlZSBhcmd1bWVu dHMgLSB0aGUgY29tbWFuZCwgcG9pbnRlciB0bwogICBhbiBidWZmZXIsIGFuZCB0aGUgbGVuZ3Ro IG9mIHRoZSBidWZmZXIuCiAtIEVhY2ggc3ViLW9wcyBjYW4gYmUgInByb2JlZCIgZm9yIHNpemUg YnkgcmV0dXJuaW5nIHRoZSBzaXplIG9mCiAgIGJ1ZmZlciB0aGF0IHdpbGwgYmUgbmVlZGVkIC0g aWYgdGhlIGJ1ZmZlciBpcyBOVUxMLgogLSBTdWJvcHMgY2FuIGNvbXBsZXRlIGV2ZW4gaWYgdGhl IGJ1ZmZlciBpcyB0b28gc2xvdyAtIHRydW5jYXRlZAogICBkYXRhIHdpbGwgYmUgZmlsbGVkIGFu ZCBoeXBlcmNhbGwgd2lsbCByZXR1cm4gLUVOT0JVRlMuCiAtIFZFUlNJT05fT1BfY29tbWFuZGxp bmUsIFZFUlNJT05fT1BfY2hhbmdlc2V0IGFyZSBwcml2aWxlZ2VkLgogLSBUaGVyZSBhcmUgbm8g WEVOVkVSX2NvbXBpbGVfaW5mbyBlcXVpdmFsZW50LgogLSBUaGUgaHlwZXJjYWxsIGNhbiByZXR1 cm4gLUVQRVJNIGFuZCB0b29sc3RhY2svT1NlcyBhcmUgZXhwZWN0ZWQKICAgdG8gZGVhbCB3aXRo IGl0LgoKU3VnZ2VzdGVkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXgu Y29tPgpTaWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9y YWNsZS5jb20+CgotLS0KQ2M6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292 PgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBTdGVmYW5v IFN0YWJlbGxpbmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBldS5jaXRyaXguY29tPgpDYzogV2VpIExp dSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFuby5z dGFiZWxsaW5pQGNpdHJpeC5jb20+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0u Y29tPgpDYzogS2VpciBGcmFzZXIgPGtlaXJAeGVuLm9yZz4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1 bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5j b20+Ci0tLQotLS0KIHRvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRl IHwgICA5ICstCiB4ZW4vYXJjaC9hcm0vdHJhcHMuYyAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMSArCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAg MSArCiB4ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9lbnRyeS5TICAgICAgICAgICB8ICAgMiAr CiB4ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMgICAgICAgICAgICAgICAgICB8ICAgMiArCiB4 ZW4vY29tbW9uL2NvbXBhdC9rZXJuZWwuYyAgICAgICAgICAgICAgICAgICB8ICAgMyArCiB4ZW4v Y29tbW9uL2tlcm5lbC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI2NSArKysrKysrKysr KysrKysrKysrKysrKy0tLS0KIHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oICAgICAgICAg ICAgICAgIHwgICAzICsKIHhlbi9pbmNsdWRlL3B1YmxpYy92ZXJzaW9uLmggICAgICAgICAgICAg ICAgIHwgIDcyICsrKysrKystCiB4ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmggICAgICAgICAgICAg ICAgICAgICB8ICAgMSArCiB4ZW4vaW5jbHVkZS94ZW4vaHlwZXJjYWxsLmggICAgICAgICAgICAg ICAgICB8ICAgNCArCiB4ZW4vaW5jbHVkZS94c20vZHVtbXkuaCAgICAgICAgICAgICAgICAgICAg ICB8ICAxOSArKwogeGVuL2luY2x1ZGUveHNtL3hzbS5oICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDcgKwogeGVuL3hzbS9kdW1teS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogeGVuL3hzbS9mbGFzay9ob29rcy5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzkg KysrKwogeGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgICAgICAgICAgfCAgMjQg KystCiAxNiBmaWxlcyBjaGFuZ2VkLCA0MTAgaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1bGVzL3hlbi94ZW4u dGUgYi90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVuL3hlbi50ZQppbmRleCA3 ZTc0MDBkLi5iZWE0MGMxIDEwMDY0NAotLS0gYS90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21v ZHVsZXMveGVuL3hlbi50ZQorKysgYi90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMv eGVuL3hlbi50ZQpAQCAtNzQsMTIgKzc0LDE0IEBAIGFsbG93IGRvbTBfdCB4ZW5fdDp4ZW4yIHsK ICAgICBnZXRfc3ltYm9sCiB9OwogCi0jIEFsbG93IGRvbTAgdG8gdXNlIGFsbCBYRU5WRVJfIHN1 Ym9wcworIyBBbGxvdyBkb20wIHRvIHVzZSBhbGwgWEVOVkVSXyBzdWJvcHMgYW5kIFZFUlNJT05f T1Agc3Vib3BzCiAjIE5vdGUgdGhhdCBkb20wIGlzIHBhcnQgb2YgZG9tYWluX3R5cGUgc28gdGhp cyBoYXMgZHVwbGljYXRlcy4KIGFsbG93IGRvbTBfdCB4ZW5fdDp2ZXJzaW9uIHsKICAgICB4ZW5f dmVyc2lvbiB4ZW5fZXh0cmF2ZXJzaW9uIHhlbl9jb21waWxlX2luZm8geGVuX2NhcGFiaWxpdGll cwogICAgIHhlbl9jaGFuZ2VzZXQgeGVuX3BsYXRmb3JtX3BhcmFtZXRlcnMgeGVuX2dldF9mZWF0 dXJlcyB4ZW5fcGFnZXNpemUKICAgICB4ZW5fZ3Vlc3RfaGFuZGxlIHhlbl9jb21tYW5kbGluZQor ICAgIHZlcnNpb24gZXh0cmF2ZXJzaW9uIGNhcGFiaWxpdGllcyBjaGFuZ2VzZXQgcGxhdGZvcm1f cGFyYW1ldGVycworICAgIGdldF9mZWF0dXJlcyBwYWdlc2l6ZSBndWVzdF9oYW5kbGUgY29tbWFu ZGxpbmUKIH07CiAKIGFsbG93IGRvbTBfdCB4ZW5fdDptbXUgbWVtb3J5bWFwOwpAQCAtMTQ2LDEx ICsxNDgsMTQgQEAgaWYgKGd1ZXN0X3dyaXRlY29uc29sZSkgewogIyBwbXVfY3RybCBpcyBmb3Ip CiBhbGxvdyBkb21haW5fdHlwZSB4ZW5fdDp4ZW4yIHBtdV91c2U7CiAKLSMgRm9yIG5vcm1hbCBn dWVzdHMgYWxsIGV4Y2VwdCBYRU5WRVJfY29tbWFuZGxpbmUKKyMgRm9yIG5vcm1hbCBndWVzdHMg YWxsIGV4Y2VwdCBYRU5WRVJfY29tbWFuZGxpbmUsIFZFUlNJT05fT1BfY2hhbmdlc2V0LAorIyBh bmQgVkVSU0lPTl9PUF9jb21tYW5kbGluZQogYWxsb3cgZG9tYWluX3R5cGUgeGVuX3Q6dmVyc2lv biB7CiAgICAgeGVuX3ZlcnNpb24geGVuX2V4dHJhdmVyc2lvbiB4ZW5fY29tcGlsZV9pbmZvIHhl bl9jYXBhYmlsaXRpZXMKICAgICB4ZW5fY2hhbmdlc2V0IHhlbl9wbGF0Zm9ybV9wYXJhbWV0ZXJz IHhlbl9nZXRfZmVhdHVyZXMgeGVuX3BhZ2VzaXplCiAgICAgeGVuX2d1ZXN0X2hhbmRsZQorICAg IHZlcnNpb24gZXh0cmF2ZXJzaW9uIGNhcGFiaWxpdGllcyAgcGxhdGZvcm1fcGFyYW1ldGVycwor ICAgIGdldF9mZWF0dXJlcyBwYWdlc2l6ZSBndWVzdF9oYW5kbGUKIH07CiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCiAjCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdHJhcHMuYyBiL3hlbi9hcmNo L2FybS90cmFwcy5jCmluZGV4IDgzNzQ0ZTguLjMxZDIxMTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L2FybS90cmFwcy5jCisrKyBiL3hlbi9hcmNoL2FybS90cmFwcy5jCkBAIC0xMjM1LDYgKzEyMzUs NyBAQCBzdGF0aWMgYXJtX2h5cGVyY2FsbF90IGFybV9oeXBlcmNhbGxfdGFibGVbXSA9IHsKICAg ICBIWVBFUkNBTEwobXVsdGljYWxsLCAyKSwKICAgICBIWVBFUkNBTEwocGxhdGZvcm1fb3AsIDEp LAogICAgIEhZUEVSQ0FMTF9BUk0odmNwdV9vcCwgMyksCisgICAgSFlQRVJDQUxMKHZlcnNpb25f b3AsIDMpLAogfTsKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9o dm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDI1NWExZDYuLjU2YjlmNmIg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2 bS9odm0uYwpAQCAtNTMzMiw2ICs1MzMyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAg Q09NUEFUX0NBTEwocGxhdGZvcm1fb3ApLAogICAgIENPTVBBVF9DQUxMKG1tdWV4dF9vcCksCiAg ICAgSFlQRVJDQUxMKHhlbnBtdV9vcCksCisgICAgSFlQRVJDQUxMKHZlcnNpb25fb3ApLAogICAg IEhZUEVSQ0FMTChhcmNoXzEpCiB9OwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0 L2NvbXBhdC9lbnRyeS5TIGIveGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUwppbmRl eCA5Mjc0MzlkLi44NzE1OTQ1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBh dC9lbnRyeS5TCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMKQEAgLTM5 MSw2ICszOTEsNyBAQCBFTlRSWShjb21wYXRfaHlwZXJjYWxsX3RhYmxlKQogICAgICAgICAucXVh ZCBkb190bWVtX29wCiAgICAgICAgIC5xdWFkIGRvX25pX2h5cGVyY2FsbCAgICAgICAgICAgLyog cmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAqLwogICAgICAgICAucXVhZCBkb194ZW5wbXVfb3AgICAg ICAgICAgICAgIC8qIDQwICovCisgICAgICAgIC5xdWFkIGRvX3ZlcnNpb25fb3AKICAgICAgICAg LnJlcHQgX19IWVBFUlZJU09SX2FyY2hfMC0oKC4tY29tcGF0X2h5cGVyY2FsbF90YWJsZSkvOCkK ICAgICAgICAgLnF1YWQgY29tcGF0X25pX2h5cGVyY2FsbAogICAgICAgICAuZW5kcgpAQCAtNDQy LDYgKzQ0Myw3IEBAIEVOVFJZKGNvbXBhdF9oeXBlcmNhbGxfYXJnc190YWJsZSkKICAgICAgICAg LmJ5dGUgMSAvKiBkb190bWVtX29wICAgICAgICAgICAgICAgKi8KICAgICAgICAgLmJ5dGUgMCAv KiByZXNlcnZlZCBmb3IgWGVuQ2xpZW50ICAgKi8KICAgICAgICAgLmJ5dGUgMiAvKiBkb194ZW5w bXVfb3AgICAgICAgICAgICAgKi8gIC8qIDQwICovCisgICAgICAgIC5ieXRlIDMgLyogZG9fdmVy c2lvbl9vcCAgICAgICAgICAgICovCiAgICAgICAgIC5yZXB0IF9fSFlQRVJWSVNPUl9hcmNoXzAt KC4tY29tcGF0X2h5cGVyY2FsbF9hcmdzX3RhYmxlKQogICAgICAgICAuYnl0ZSAwIC8qIGNvbXBh dF9uaV9oeXBlcmNhbGwgICAgICAqLwogICAgICAgICAuZW5kcgpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3g4Nl82NC9lbnRyeS5TIGIveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCmluZGV4 IGRkN2YxMTQuLjE3OGRjM2EgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnku UworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMKQEAgLTcyNyw2ICs3MjcsNyBAQCBF TlRSWShoeXBlcmNhbGxfdGFibGUpCiAgICAgICAgIC5xdWFkIGRvX3RtZW1fb3AKICAgICAgICAg LnF1YWQgZG9fbmlfaHlwZXJjYWxsICAgICAgIC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8K ICAgICAgICAgLnF1YWQgZG9feGVucG11X29wICAgICAgICAgIC8qIDQwICovCisgICAgICAgIC5x dWFkIGRvX3ZlcnNpb25fb3AKICAgICAgICAgLnJlcHQgX19IWVBFUlZJU09SX2FyY2hfMC0oKC4t aHlwZXJjYWxsX3RhYmxlKS84KQogICAgICAgICAucXVhZCBkb19uaV9oeXBlcmNhbGwKICAgICAg ICAgLmVuZHIKQEAgLTc3OCw2ICs3NzksNyBAQCBFTlRSWShoeXBlcmNhbGxfYXJnc190YWJsZSkK ICAgICAgICAgLmJ5dGUgMSAvKiBkb190bWVtX29wICAgICAgICAgICAqLwogICAgICAgICAuYnl0 ZSAwIC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8KICAgICAgICAgLmJ5dGUgMiAvKiBkb194 ZW5wbXVfb3AgICAgICAgICAqLyAgLyogNDAgKi8KKyAgICAgICAgLmJ5dGUgMyAvKiBkb192ZXJz aW9uX29wICAgICAgICAqLwogICAgICAgICAucmVwdCBfX0hZUEVSVklTT1JfYXJjaF8wLSguLWh5 cGVyY2FsbF9hcmdzX3RhYmxlKQogICAgICAgICAuYnl0ZSAwIC8qIGRvX25pX2h5cGVyY2FsbCAg ICAgICovCiAgICAgICAgIC5lbmRyCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2NvbXBhdC9rZXJu ZWwuYyBiL3hlbi9jb21tb24vY29tcGF0L2tlcm5lbC5jCmluZGV4IGUxYjkwMTMuLmU5OGJhN2Qg MTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vY29tcGF0L2tlcm5lbC5jCisrKyBiL3hlbi9jb21tb24v Y29tcGF0L2tlcm5lbC5jCkBAIC0zOCw2ICszOCw5IEBAIENIRUNLX1RZUEUoY2FwYWJpbGl0aWVz X2luZm8pOwogCiBDSEVDS19UWVBFKGRvbWFpbl9oYW5kbGUpOwogCitDSEVDS19UWVBFKHZlcnNp b25fb3BfYnVmKTsKK0NIRUNLX1RZUEUodmVyc2lvbl9vcF92YWwpOworCiAjZGVmaW5lIHhlbm5t aV9jYWxsYmFjayBjb21wYXRfbm1pX2NhbGxiYWNrCiAjZGVmaW5lIHhlbm5taV9jYWxsYmFja190 IGNvbXBhdF9ubWlfY2FsbGJhY2tfdAogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2tlcm5lbC5j IGIveGVuL2NvbW1vbi9rZXJuZWwuYwppbmRleCAyNjk5YWMwLi5mMDZiM2Q5IDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL2tlcm5lbC5jCisrKyBiL3hlbi9jb21tb24va2VybmVsLmMKQEAgLTIyMSw2 ICsyMjEsNDcgQEAgdm9pZCBfX2luaXQgZG9faW5pdGNhbGxzKHZvaWQpCiAKICNlbmRpZgogCitz dGF0aWMgaW50IGdldF9mZWF0dXJlcyhzdHJ1Y3QgZG9tYWluICpkLCB4ZW5fZmVhdHVyZV9pbmZv X3QgKmZpKQoreworICAgIHN3aXRjaCAoIGZpLT5zdWJtYXBfaWR4ICkKKyAgICB7CisgICAgY2Fz ZSAwOgorICAgICAgICBmaS0+c3VibWFwID0gKDFVIDw8IFhFTkZFQVRfbWVtb3J5X29wX3Zub2Rl X3N1cHBvcnRlZCk7CisgICAgICAgIGlmICggVk1fQVNTSVNUKGQsIHBhZV9leHRlbmRlZF9jcjMp ICkKKyAgICAgICAgICAgIGZpLT5zdWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRfcGFlX3BnZGlyX2Fi b3ZlXzRnYik7CisgICAgICAgIGlmICggcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkKKyAgICAg ICAgICAgIGZpLT5zdWJtYXAgfD0gCisgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfd3Jp dGFibGVfcGFnZV90YWJsZXMpIHwKKyAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9hdXRv X3RyYW5zbGF0ZWRfcGh5c21hcCk7CisgICAgICAgIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQp ICkKKyAgICAgICAgICAgIGZpLT5zdWJtYXAgfD0gMVUgPDwgWEVORkVBVF9kb20wOworI2lmZGVm IENPTkZJR19YODYKKyAgICAgICAgc3dpdGNoICggZC0+Z3Vlc3RfdHlwZSApCisgICAgICAgIHsK KyAgICAgICAgY2FzZSBndWVzdF90eXBlX3B2OgorICAgICAgICAgICAgZmktPnN1Ym1hcCB8PSAo MVUgPDwgWEVORkVBVF9tbXVfcHRfdXBkYXRlX3ByZXNlcnZlX2FkKSB8CisgICAgICAgICAgICAg ICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2hpZ2htZW1fYXNzaXN0KSB8CisgICAgICAgICAg ICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2dudHRhYl9tYXBfYXZhaWxfYml0cyk7Cisg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBndWVzdF90eXBlX3B2aDoKKyAgICAgICAg ICAgIGZpLT5zdWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRfaHZtX3NhZmVfcHZjbG9jaykgfAorICAg ICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9zdXBlcnZpc29yX21vZGVfa2Vy bmVsKSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2h2bV9jYWxs YmFja192ZWN0b3IpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgZ3Vlc3RfdHlw ZV9odm06CisgICAgICAgICAgICBmaS0+c3VibWFwIHw9ICgxVSA8PCBYRU5GRUFUX2h2bV9zYWZl X3B2Y2xvY2spIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfaHZt X2NhbGxiYWNrX3ZlY3RvcikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVO RkVBVF9odm1fcGlycXMpOworICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorI2VuZGlmCisg ICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAg IH0KKyAgICByZXR1cm4gMDsKK30KKwogLyoKICAqIFNpbXBsZSBoeXBlcmNhbGxzLgogICovCkBA IC0zMDIsNTAgKzM0MywxNiBAQCBETyh4ZW5fdmVyc2lvbikoaW50IGNtZCwgWEVOX0dVRVNUX0hB TkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgY2FzZSBYRU5WRVJfZ2V0X2ZlYXR1cmVzOgogICAg IHsKICAgICAgICAgeGVuX2ZlYXR1cmVfaW5mb190IGZpOwotICAgICAgICBzdHJ1Y3QgZG9tYWlu ICpkID0gY3VycmVudC0+ZG9tYWluOwogCiAgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZm aSwgYXJnLCAxKSApCiAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKIAotICAgICAgICBzd2l0 Y2ggKCBmaS5zdWJtYXBfaWR4ICkKKyAgICAgICAgaWYgKCAhZGVueSApCiAgICAgICAgIHsKLSAg ICAgICAgY2FzZSAwOgotICAgICAgICAgICAgaWYgKCBkZW55ICkKLSAgICAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgICAgIGZpLnN1Ym1hcCA9ICgxVSA8PCBYRU5GRUFUX21lbW9yeV9vcF92 bm9kZV9zdXBwb3J0ZWQpOwotICAgICAgICAgICAgaWYgKCBWTV9BU1NJU1QoZCwgcGFlX2V4dGVu ZGVkX2NyMykgKQotICAgICAgICAgICAgICAgIGZpLnN1Ym1hcCB8PSAoMVUgPDwgWEVORkVBVF9w YWVfcGdkaXJfYWJvdmVfNGdiKTsKLSAgICAgICAgICAgIGlmICggcGFnaW5nX21vZGVfdHJhbnNs YXRlKGQpICkKLSAgICAgICAgICAgICAgICBmaS5zdWJtYXAgfD0gCi0gICAgICAgICAgICAgICAg ICAgICgxVSA8PCBYRU5GRUFUX3dyaXRhYmxlX3BhZ2VfdGFibGVzKSB8Ci0gICAgICAgICAgICAg ICAgICAgICgxVSA8PCBYRU5GRUFUX2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKTsKLSAgICAgICAg ICAgIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKLSAgICAgICAgICAgICAgICBmaS5zdWJt YXAgfD0gMVUgPDwgWEVORkVBVF9kb20wOwotI2lmZGVmIENPTkZJR19YODYKLSAgICAgICAgICAg IHN3aXRjaCAoIGQtPmd1ZXN0X3R5cGUgKQotICAgICAgICAgICAgewotICAgICAgICAgICAgY2Fz ZSBndWVzdF90eXBlX3B2OgotICAgICAgICAgICAgICAgIGZpLnN1Ym1hcCB8PSAoMVUgPDwgWEVO RkVBVF9tbXVfcHRfdXBkYXRlX3ByZXNlcnZlX2FkKSB8Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgxVSA8PCBYRU5GRUFUX2hpZ2htZW1fYXNzaXN0KSB8Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2dudHRhYl9tYXBfYXZhaWxfYml0cyk7Ci0gICAg ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIGd1ZXN0X3R5cGVfcHZoOgotICAg ICAgICAgICAgICAgIGZpLnN1Ym1hcCB8PSAoMVUgPDwgWEVORkVBVF9odm1fc2FmZV9wdmNsb2Nr KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX3N1cGVydmlz b3JfbW9kZV9rZXJuZWwpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhF TkZFQVRfaHZtX2NhbGxiYWNrX3ZlY3Rvcik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg ICAgICAgICBjYXNlIGd1ZXN0X3R5cGVfaHZtOgotICAgICAgICAgICAgICAgIGZpLnN1Ym1hcCB8 PSAoMVUgPDwgWEVORkVBVF9odm1fc2FmZV9wdmNsb2NrKSB8Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2h2bV9jYWxsYmFja192ZWN0b3IpIHwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfaHZtX3BpcnFzKTsKLSAgICAgICAg ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSNlbmRpZgotICAgICAgICAgICAgYnJlYWs7 Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAg ICAgIGludCByYyA9IGdldF9mZWF0dXJlcyhjdXJyZW50LT5kb21haW4sICZmaSk7CisgICAgICAg ICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmM7CiAgICAgICAgIH0KLQog ICAgICAgICBpZiAoIF9fY29weV90b19ndWVzdChhcmcsICZmaSwgMSkgKQogICAgICAgICAgICAg cmV0dXJuIC1FRkFVTFQ7CiAgICAgICAgIHJldHVybiAwOwpAQCAtMzg4LDYgKzM5NSwxODggQEAg RE8oeGVuX3ZlcnNpb24pKGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJn KQogICAgIHJldHVybiAtRU5PU1lTOwogfQogCitzdGF0aWMgY29uc3QgY2hhciAqY2FwYWJpbGl0 aWVzX2luZm8oc3NpemVfdCAqbGVuKQoreworICAgIHN0YXRpYyB4ZW5fY2FwYWJpbGl0aWVzX2lu Zm9fdCBjYWNoZWRfY2FwOworICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgY2FjaGVkX2NhcF9sZW47 CisgICAgc3RhdGljIGJvb2xfdCBjYWNoZWQ7CisKKyAgICBpZiAoIGNhY2hlZCApCisgICAgewor ICAgICAgICAqbGVuID0gY2FjaGVkX2NhcF9sZW47CisgICAgICAgIHJldHVybiBjYWNoZWRfY2Fw OworICAgIH0KKyAgICBhcmNoX2dldF94ZW5fY2FwcygmY2FjaGVkX2NhcCk7CisgICAgY2FjaGVk X2NhcF9sZW4gPSBzdHJsZW4oY2FjaGVkX2NhcCkgKyAxOworCisgICAgKmxlbiA9IGNhY2hlZF9j YXBfbGVuOworICAgIHJldHVybiBjYWNoZWRfY2FwOworfQorCitzdGF0aWMgaW50IHNpemVfb2Zf c3Vib3BzX2RhdGEodW5zaWduZWQgaW50IGNtZCwgc3NpemVfdCAqc3opCit7CisgICAgaW50IHJj ID0gMDsKKyAgICAvKiBDb21wdXRlIHNpemUuICovCisgICAgc3dpdGNoICggY21kICkKKyAgICB7 CisgICAgY2FzZSBYRU5fVkVSU0lPTl9PUF92ZXJzaW9uOgorICAgICAgICAqc3ogPSBzaXplb2Yo eGVuX3ZlcnNpb25fb3BfdmFsX3QpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgWEVOX1ZF UlNJT05fT1BfZXh0cmF2ZXJzaW9uOgorICAgICAgICAqc3ogPSBzdHJsZW4oeGVuX2V4dHJhX3Zl cnNpb24oKSkgKyAxOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgWEVOX1ZFUlNJT05fT1Bf Y2FwYWJpbGl0aWVzOgorICAgICAgICBjYXBhYmlsaXRpZXNfaW5mbyhzeik7CisgICAgICAgIGJy ZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9PUF9wbGF0Zm9ybV9wYXJhbWV0ZXJzOgorICAg ICAgICAqc3ogPSBzaXplb2YoeGVuX3ZlcnNpb25fb3BfdmFsX3QpOworICAgICAgICBicmVhazsK KworICAgIGNhc2UgWEVOX1ZFUlNJT05fT1BfY2hhbmdlc2V0OgorICAgICAgICAqc3ogPSBzdHJs ZW4oeGVuX2NoYW5nZXNldCgpKSArIDE7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5f VkVSU0lPTl9PUF9nZXRfZmVhdHVyZXM6CisgICAgICAgICpzeiA9IHNpemVvZih4ZW5fZmVhdHVy ZV9pbmZvX3QpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgWEVOX1ZFUlNJT05fT1BfcGFn ZXNpemU6CisgICAgICAgICpzeiA9IHNpemVvZih4ZW5fdmVyc2lvbl9vcF92YWxfdCk7CisgICAg ICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9PUF9ndWVzdF9oYW5kbGU6CisgICAg ICAgICpzeiA9IEFSUkFZX1NJWkUoY3VycmVudC0+ZG9tYWluLT5oYW5kbGUpOworICAgICAgICBi cmVhazsKKworICAgIGNhc2UgWEVOX1ZFUlNJT05fT1BfY29tbWFuZGxpbmU6CisgICAgICAgICpz eiA9IEFSUkFZX1NJWkUoc2F2ZWRfY21kbGluZSk7CisgICAgICAgIGJyZWFrOworCisgICAgZGVm YXVsdDoKKyAgICAgICAgcmMgPSAtRU5PU1lTOworICAgIH0KKworICAgIHJldHVybiByYzsKK30K KworLyoKKyAqIFNpbWlsYXIgdG8gSFlQRVJWSVNPUl94ZW5fdmVyc2lvbiBidXQgd2l0aCBhIHNh bmUgaW50ZXJmYWNlCisgKiAoaGFzIGEgbGVuZ3RoLCBvbmUgY2FuIHByb2JlIGZvciB0aGUgbGVu Z3RoKSBhbmQgd2l0aCBvbmUgbGVzcyBzdWItb3BzOgorICogbWlzc2luZyBYRU5WRVJfY29tcGls ZV9pbmZvLgorICovCitETyh2ZXJzaW9uX29wKSh1bnNpZ25lZCBpbnQgY21kLCBYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHZvaWQpIGFyZywKKyAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsZW4p Cit7CisgICAgdW5pb24geworICAgICAgICB4ZW5fdmVyc2lvbl9vcF92YWxfdCBuOworICAgICAg ICB4ZW5fZmVhdHVyZV9pbmZvX3QgZmk7CisgICAgfSB1OworICAgIHNzaXplX3Qgc3ogPSAwOwor ICAgIGNvbnN0IHZvaWQgKnB0ciA9IE5VTEw7CisgICAgaW50IHJjID0geHNtX3ZlcnNpb25fb3Ao WFNNX09USEVSLCBjbWQpOworCisgICAgLyogV2UgY2FuIHNhZmVseSByZXR1cm4gLUVQRVJNISAq LworICAgIGlmICggcmMgKQorICAgICAgICByZXR1cm4gcmM7CisKKyAgICByYyA9IHNpemVfb2Zf c3Vib3BzX2RhdGEoY21kLCAmc3opOworICAgIGlmICggcmMgKQorICAgICAgICByZXR1cm4gcmM7 CisKKyAgICAvKiBTb21lIG9mIHRoZSBzdWJvcHMgbWF5IGhhdmUgbm8gZGF0YS4gKi8KKyAgICBp ZiAoICFzeiApCisgICAgICAgIHJldHVybiAwOworICAgIC8qCisgICAgICogVGhpcyBoeXBlcmNh bGwgYWxzbyBhbGxvd3MgdGhlIGNsaWVudCB0byBwcm9iZS4gSWYgaXQgcHJvdmlkZXMKKyAgICAg KiBhIE5VTEwgYXJnIHdlIHdpbGwgcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBzcGFjZSBpdCBoYXMg dG8KKyAgICAgKiBhbGxvY2F0ZSBmb3IgdGhlIHNwZWNpZmljIHN1Yi1vcC4KKyAgICAgKi8KKyAg ICBpZiAoIGd1ZXN0X2hhbmRsZV9pc19udWxsKGFyZykgKQorICAgICAgICByZXR1cm4gc3o7CisK KyAgICBtZW1zZXQoJnUsIDAsIHNpemVvZih1KSk7CisgICAgLyoKKyAgICAgKiBUaGUgSFlQRVJW SVNPUl94ZW5fdmVyc2lvbiBkaWZmZXJzIGluIHRoYXQgc29tZSByZXR1cm4gdGhlIHZhbHVlLAor ICAgICAqIGFuZCBzb21lIGNvcHkgaXQgb24gYmFjayBvbiBhcmd1bWVudC4gV2UgZm9sbG93IHRo ZSBzYW1lIHJ1bGUgZm9yIGFsbAorICAgICAqIHN1Yi1vcHM6IHJldHVybiAwIG9uIHN1Y2Nlc3Ms IHBvc2l0aXZlIHZhbHVlIG9mIGJ5dGVzIHJldHVybmVkLCBhbmQKKyAgICAgKiBhbHdheXMgY29w eSB0aGUgcmVzdWx0IGluIGFyZy4gWWVleSBzYW5pdHkhCisgICAgICovCisKKyAgICByYyA9IDA7 CisgICAgc3dpdGNoICggY21kICkKKyAgICB7CisgICAgY2FzZSBYRU5fVkVSU0lPTl9PUF92ZXJz aW9uOgorICAgICAgICB1Lm4gPSAoeGVuX21ham9yX3ZlcnNpb24oKSA8PCAxNikgfCB4ZW5fbWlu b3JfdmVyc2lvbigpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgWEVOX1ZFUlNJT05fT1Bf ZXh0cmF2ZXJzaW9uOgorICAgICAgICBwdHIgPSB4ZW5fZXh0cmFfdmVyc2lvbigpOworICAgICAg ICBicmVhazsKKworICAgIGNhc2UgWEVOX1ZFUlNJT05fT1BfY2FwYWJpbGl0aWVzOgorICAgICAg ICBwdHIgPSBjYXBhYmlsaXRpZXNfaW5mbygmc3opOworICAgICAgICBicmVhazsKKworICAgIGNh c2UgWEVOX1ZFUlNJT05fT1BfcGxhdGZvcm1fcGFyYW1ldGVyczoKKyAgICAgICAgdS5uID0gSFlQ RVJWSVNPUl9WSVJUX1NUQVJUOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgWEVOX1ZFUlNJ T05fT1BfY2hhbmdlc2V0OgorICAgICAgICBwdHIgPSB4ZW5fY2hhbmdlc2V0KCk7CisgICAgICAg IGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9PUF9nZXRfZmVhdHVyZXM6CisgICAgICAg IGlmICggY29weV9mcm9tX2d1ZXN0KCZ1LmZpLCBhcmcsIDEpICkKKyAgICAgICAgeworICAgICAg ICAgICAgcmMgPSAtRUZBVUxUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg ICAgcmMgPSBnZXRfZmVhdHVyZXMoY3VycmVudC0+ZG9tYWluLCAmdS5maSk7CisgICAgICAgIGJy ZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9PUF9wYWdlc2l6ZToKKyAgICAgICAgdS5uID0g UEFHRV9TSVpFOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgWEVOX1ZFUlNJT05fT1BfZ3Vl c3RfaGFuZGxlOgorICAgICAgICBwdHIgPSBjdXJyZW50LT5kb21haW4tPmhhbmRsZTsKKyAgICAg ICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTl9WRVJTSU9OX09QX2NvbW1hbmRsaW5lOgorICAgICAg ICBwdHIgPSBzYXZlZF9jbWRsaW5lOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6Cisg ICAgICAgIHJjID0gLUVOT1NZUzsKKyAgICB9CisKKyAgICBpZiAoICFyYyApCisgICAgeworICAg ICAgICBzc2l6ZV90IGJ5dGVzOworCisgICAgICAgIGlmICggc3ogPiBsZW4gKQorICAgICAgICAg ICAgYnl0ZXMgPSBsZW47CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ5dGVzID0gc3o7CisK KyAgICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0KGFyZywgcHRyID8gcHRyIDogJnUsIGJ5dGVzKSAp CisgICAgICAgICAgICByYyA9IC1FRkFVTFQ7CisgICAgfQorICAgIGlmICggIXJjICkKKyAgICB7 CisgICAgICAgIC8qCisgICAgICAgICAqIFdlIHJldHVybiBsZW4gKHRydW5jYXRlKSB3b3J0aCBv ZiBkYXRhIGV2ZW4gaWYgd2UgZmFpbC4KKyAgICAgICAgICovCisgICAgICAgIGlmICggc3ogPiBs ZW4gKQorICAgICAgICAgICAgcmMgPSAtRU5PQlVGUzsKKyAgICB9CisKKyAgICByZXR1cm4gcmMg PT0gMCA/IHN6IDogcmM7Cit9CisKIERPKG5taV9vcCkodW5zaWduZWQgaW50IGNtZCwgWEVOX0dV RVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiB7CiAgICAgc3RydWN0IHhlbm5taV9jYWxsYmFj ayBjYjsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oIGIveGVuL2lu Y2x1ZGUvcHVibGljL2FyY2gtYXJtLmgKaW5kZXggODcwYmMzYi4uYzlhZTMxNSAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGlj L2FyY2gtYXJtLmgKQEAgLTEyOCw2ICsxMjgsOSBAQAogICogICAgKiBWQ1BVT1BfcmVnaXN0ZXJf dmNwdV9pbmZvCiAgKiAgICAqIFZDUFVPUF9yZWdpc3Rlcl9ydW5zdGF0ZV9tZW1vcnlfYXJlYQog ICoKKyAqICBIWVBFUlZJU09SX3ZlcnNpb25fb3AKKyAqICAgQWxsIGdlbmVyaWMgc3ViLW9wZXJh dGlvbnMKKyAqCiAgKgogICogT3RoZXIgbm90ZXMgb24gdGhlIEFSTSBBQkk6CiAgKgpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUvcHVibGljL3ZlcnNpb24uaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy92 ZXJzaW9uLmgKaW5kZXggMjRhNTgyZi4uNGNlYjk3YiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv cHVibGljL3ZlcnNpb24uaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvdmVyc2lvbi5oCkBAIC0z MCw3ICszMCwxNSBAQAogCiAjaW5jbHVkZSAieGVuLmgiCiAKLS8qIE5CLiBBbGwgb3BzIHJldHVy biB6ZXJvIG9uIHN1Y2Nlc3MsIGV4Y2VwdCBYRU5WRVJfe3ZlcnNpb24scGFnZXNpemV9ICovCisv KgorICogVGhlcmUgYXJlIHR3byBoeXBlcmNhbGxzIG1lbnRpb25lZCBpbiBoZXJlLiBUaGUgWEVO VkVSXyBhcmUgZm9yCisgKiBIWVBFUkNBTExfeGVuX3ZlcnNpb24gKDE3KSwgd2hpbGUgVkVSU0lP Tl9PUF8gYXJlIGZvciB0aGUKKyAqIEhZUEVSQ0FMTF92ZXJzaW9uX29wICg0MSkuCisgKgorICog VGhlIHN1Ym9wcyBhcmUgdmVyeSBzaW1pbGFyIGV4Y2VwdCB0aGF0IHRoZSBsYXRlciBoeXBlcmNh bGwgaGFzIGEKKyAqIHNhbmUgaW50ZXJmYWNlLgorICovCisKIAogLyogYXJnID09IE5VTEw7IHJl dHVybnMgbWFqb3I6bWlub3IgKDE2OjE2KS4gKi8KICNkZWZpbmUgWEVOVkVSX3ZlcnNpb24gICAg ICAwCkBAIC04Nyw2ICs5NSw2OCBAQCB0eXBlZGVmIHN0cnVjdCB4ZW5fZmVhdHVyZV9pbmZvIHhl bl9mZWF0dXJlX2luZm9fdDsKICNkZWZpbmUgWEVOVkVSX2NvbW1hbmRsaW5lIDkKIHR5cGVkZWYg Y2hhciB4ZW5fY29tbWFuZGxpbmVfdFsxMDI0XTsKIAorCisKKy8qCisgKiBUaGUgSFlQRVJDQUxM X3ZlcnNpb25fb3AgaGFzIGEgc2V0IG9mIHN1Yi1vcHMgd2hpY2ggbWlycm9yIHRoZQorICogc3Vi LW9wcyBvZiBIWVBFUkNBTExfeGVuX3ZlcnNpb24uIEhvd2V2ZXIgdGhpcyBoeXBlcmNhbGwgZGlm ZmVycworICogcmFkaWNhbGx5IGZyb20gdGhlIGZvcm1lcjoKKyAqICAtIEl0IHJldHVybnMgdGhl IGFtb3VudCBvZiBieXRlcyByZXR1cm5lZC4KKyAqICAtIEl0IHdpbGwgcmV0dXJuIC1YRU5fRVBF Uk0gaWYgdGhlIGd1ZXN0IGlzIG5vdCBwZXJtaXR0ZWQuCisgKiAgLSBJdCB3aWxsIHJldHVybiB0 aGUgcmVxdWVzdGVkIGRhdGEgaW4gYXJnLgorICogIC0gSXQgcmVxdWlyZXMgYW4gdGhpcmQgYXJn dW1lbnQgKGxlbikgZm9yIHRoZSBsZW5ndGggb2YgdGhlCisgKiAgICBhcmcuIE5hdHVyYWxseSB0 aGUgYXJnIGhhcyB0byBmaXQgdGhlIHJlcXVlc3RlZCBkYXRhIG90aGVyd2lzZQorICogICAgLVhF Tl9FTk9CVUZTIGlzIHJldHVybmVkLgorICoKKyAqIEl0IGFsc28gb2ZmZXJzIGFuIG1lY2hhbmlz bSB0byBwcm9iZSBmb3IgdGhlIGFtb3VudCBvZiBieXRlcyBhbgorICogc3ViLW9wIHdpbGwgcmVx dWlyZS4gSGF2aW5nIHRoZSBhcmcgaGF2ZSBhbiBOVUxMIHBvaW50ZXIgd2lsbAorICogcmV0dXJu IHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWVzdGVkIGZvciB0aGUgb3BlcmF0aW9uLiBPciBhbgor ICogbmVnYXRpdmUgdmFsdWUgaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuCisgKi8KKwordHlw ZWRlZiB1aW50NjRfdCB4ZW5fdmVyc2lvbl9vcF92YWxfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFO RExFKHhlbl92ZXJzaW9uX29wX3ZhbF90KTsKKwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIHhlbl92 ZXJzaW9uX29wX2J1Zl90W107CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdmVyc2lvbl9v cF9idWZfdCk7CisKKy8qIGFyZyA9PSB2ZXJzaW9uX29wX3ZhbF90LiBFbmNvZGVkIGFzIG1ham9y Om1pbm9yICgzMS4uMTY6MTUuLjApICovCisjZGVmaW5lIFhFTl9WRVJTSU9OX09QX3ZlcnNpb24g ICAgICAwCisKKy8qIGFyZyA9PSB2ZXJzaW9uX29wX2J1Zi4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJ T05fT1BfZXh0cmF2ZXJzaW9uIDEKKworLyogYXJnID09IHZlcnNpb25fb3BfYnVmICovCisjZGVm aW5lIFhFTl9WRVJTSU9OX09QX2NhcGFiaWxpdGllcyAzCisKKy8qIGFyZyA9PSB2ZXJzaW9uX29w X2J1ZiAqLworI2RlZmluZSBYRU5fVkVSU0lPTl9PUF9jaGFuZ2VzZXQgNAorCisvKgorICogYXJn ID09IHhlbl92ZXJzaW9uX29wX3ZhbF90LiBDb250YWlucyB0aGUgdmlydHVhbCBhZGRyZXNzCisg KiBvZiB0aGUgaHlwZXJ2aXNvciBlbmNvZGVkIGFzIFs2My4uMF0uCisgKi8KKyNkZWZpbmUgWEVO X1ZFUlNJT05fT1BfcGxhdGZvcm1fcGFyYW1ldGVycyA1CisKKy8qCisgKiBhcmcgPSB4ZW5fZmVh dHVyZV9pbmZvX3QgLSBzaGFyZXMgdGhlIHNhbWUgc3RydWN0dXJlCisgKiBhcyB0aGUgWEVOVkVS X2dldF9mZWF0dXJlcy4KKyAqLworI2RlZmluZSBYRU5fVkVSU0lPTl9PUF9nZXRfZmVhdHVyZXMg NgorCisvKiBhcmcgPT0geGVuX3ZlcnNpb25fb3BfdmFsX3QgKi8KKyNkZWZpbmUgWEVOX1ZFUlNJ T05fT1BfcGFnZXNpemUgNworCisvKiBhcmcgPT0gdmVyc2lvbl9vcF9idWYuCisgKgorICogVGhl IHRvb2xzdGFjayBmaWxscyBpdCBvdXQgZm9yIGd1ZXN0IGNvbnN1bXB0aW9uLiBJdCBpcyBpbnRl bmRlZCB0byBob2xkCisgKiB0aGUgVVVJRCBvZiB0aGUgZ3Vlc3QuCisgKi8KKyNkZWZpbmUgWEVO X1ZFUlNJT05fT1BfZ3Vlc3RfaGFuZGxlIDgKKworLyogYXJnID0gdmVyc2lvbl9vcF9idWYgKi8K KyNkZWZpbmUgWEVOX1ZFUlNJT05fT1BfY29tbWFuZGxpbmUgOQorCiAjZW5kaWYgLyogX19YRU5f UFVCTElDX1ZFUlNJT05fSF9fICovCiAKIC8qCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJs aWMveGVuLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKaW5kZXggNjRiYTdhYi4uMWE5OTky OSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oCisrKyBiL3hlbi9pbmNsdWRl L3B1YmxpYy94ZW4uaApAQCAtMTE1LDYgKzExNSw3IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExF KHhlbl91bG9uZ190KTsKICNkZWZpbmUgX19IWVBFUlZJU09SX3RtZW1fb3AgICAgICAgICAgICAg IDM4CiAjZGVmaW5lIF9fSFlQRVJWSVNPUl94Y19yZXNlcnZlZF9vcCAgICAgICAzOSAvKiByZXNl cnZlZCBmb3IgWGVuQ2xpZW50ICovCiAjZGVmaW5lIF9fSFlQRVJWSVNPUl94ZW5wbXVfb3AgICAg ICAgICAgICA0MAorI2RlZmluZSBfX0hZUEVSVklTT1JfdmVyc2lvbl9vcCAgICAgICAgICAgNDEg Lyogc3VwZXJzZWRlcyB4ZW5fdmVyc2lvbiAoMTcpICovCiAKIC8qIEFyY2hpdGVjdHVyZS1zcGVj aWZpYyBoeXBlcmNhbGwgZGVmaW5pdGlvbnMuICovCiAjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNo XzAgICAgICAgICAgICAgICA0OApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2h5cGVyY2Fs bC5oIGIveGVuL2luY2x1ZGUveGVuL2h5cGVyY2FsbC5oCmluZGV4IDI2Y2I2MTUuLjAwZTQyNDUg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaAorKysgYi94ZW4vaW5jbHVk ZS94ZW4vaHlwZXJjYWxsLmgKQEAgLTE0Myw2ICsxNDMsMTAgQEAgZG9feGVub3Byb2Zfb3AoaW50 IG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZyk7CiBleHRlcm4gbG9uZwogZG9f eGVucG11X29wKHVuc2lnbmVkIGludCBvcCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fcG11 X3BhcmFtc190KSBhcmcpOwogCitleHRlcm4gbG9uZworZG9fdmVyc2lvbl9vcCh1bnNpZ25lZCBp bnQgY21kLAorICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnLCB1bnNpZ25lZCBp bnQgbGVuKTsKKwogI2lmZGVmIENPTkZJR19DT01QQVQKIAogZXh0ZXJuIGludApkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmggYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAppbmRl eCA5NGI4ODU1Li44YzZhZTkwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAor KysgYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaApAQCAtNzQ5LDMgKzc0OSwyMiBAQCBzdGF0aWMg WFNNX0lOTElORSBpbnQgeHNtX3hlbl92ZXJzaW9uIChYU01fREVGQVVMVF9BUkcgdWludDMyX3Qg b3ApCiAgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX1BSSVYsIGN1cnJlbnQt PmRvbWFpbiwgTlVMTCk7CiAgICAgfQogfQorCitzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX3Zl cnNpb25fb3AgKFhTTV9ERUZBVUxUX0FSRyB1aW50MzJfdCBvcCkKK3sKKyAgICBYU01fQVNTRVJU X0FDVElPTihYU01fT1RIRVIpOworICAgIHN3aXRjaCAoIG9wICkKKyAgICB7CisgICAgY2FzZSBY RU5fVkVSU0lPTl9PUF92ZXJzaW9uOgorICAgIGNhc2UgWEVOX1ZFUlNJT05fT1BfZXh0cmF2ZXJz aW9uOgorICAgIGNhc2UgWEVOX1ZFUlNJT05fT1BfY2FwYWJpbGl0aWVzOgorICAgIGNhc2UgWEVO X1ZFUlNJT05fT1BfcGxhdGZvcm1fcGFyYW1ldGVyczoKKyAgICBjYXNlIFhFTl9WRVJTSU9OX09Q X2dldF9mZWF0dXJlczoKKyAgICBjYXNlIFhFTl9WRVJTSU9OX09QX3BhZ2VzaXplOgorICAgIGNh c2UgWEVOX1ZFUlNJT05fT1BfZ3Vlc3RfaGFuZGxlOgorICAgICAgICAvKiBUaGVzZSBNVVNUIGFs d2F5cyBiZSBhY2Nlc3NpYmxlIHRvIGFueSBndWVzdCBieSBkZWZhdWx0LiAqLworICAgICAgICBy ZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKFhTTV9IT09LLCBjdXJyZW50LT5kb21haW4sIE5VTEwp OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX1BS SVYsIGN1cnJlbnQtPmRvbWFpbiwgTlVMTCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUveHNtL3hzbS5oIGIveGVuL2luY2x1ZGUveHNtL3hzbS5oCmluZGV4IGRiNDQwZjYuLmFj ODA0NzIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS94c20uaAorKysgYi94ZW4vaW5jbHVk ZS94c20veHNtLmgKQEAgLTE5NCw2ICsxOTQsNyBAQCBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgewog ICAgIGludCAoKnBtdV9vcCkgKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBvcCk7CiAj ZW5kaWYKICAgICBpbnQgKCp4ZW5fdmVyc2lvbikgKHVpbnQzMl90IGNtZCk7CisgICAgaW50ICgq dmVyc2lvbl9vcCkgKHVpbnQzMl90IGNtZCk7CiB9OwogCiAjaWZkZWYgQ09ORklHX1hTTQpAQCAt NzM2LDYgKzczNywxMiBAQCBzdGF0aWMgaW5saW5lIGludCB4c21feGVuX3ZlcnNpb24gKHhzbV9k ZWZhdWx0X3QgZGVmLCB1aW50MzJfdCBvcCkKIHsKICAgICByZXR1cm4geHNtX29wcy0+eGVuX3Zl cnNpb24ob3ApOwogfQorCitzdGF0aWMgaW5saW5lIGludCB4c21fdmVyc2lvbl9vcCAoeHNtX2Rl ZmF1bHRfdCBkZWYsIHVpbnQzMl90IG9wKQoreworICAgIHJldHVybiB4c21fb3BzLT52ZXJzaW9u X29wKG9wKTsKK30KKwogI2VuZGlmIC8qIFhTTV9OT19XUkFQUEVSUyAqLwogCiAjaWZkZWYgQ09O RklHX01VTFRJQk9PVApkaWZmIC0tZ2l0IGEveGVuL3hzbS9kdW1teS5jIGIveGVuL3hzbS9kdW1t eS5jCmluZGV4IDk3OTFhZDQuLjc3NmRkMDkgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZHVtbXkuYwor KysgYi94ZW4veHNtL2R1bW15LmMKQEAgLTE2Myw0ICsxNjMsNSBAQCB2b2lkIHhzbV9maXh1cF9v cHMgKHN0cnVjdCB4c21fb3BlcmF0aW9ucyAqb3BzKQogICAgIHNldF90b19kdW1teV9pZl9udWxs KG9wcywgcG11X29wKTsKICNlbmRpZgogICAgIHNldF90b19kdW1teV9pZl9udWxsKG9wcywgeGVu X3ZlcnNpb24pOworICAgIHNldF90b19kdW1teV9pZl9udWxsKG9wcywgdmVyc2lvbl9vcCk7CiB9 CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMgYi94ZW4veHNtL2ZsYXNrL2hvb2tz LmMKaW5kZXggZDFiZWY0My4uMjUxMDIyOSAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9ob29r cy5jCisrKyBiL3hlbi94c20vZmxhc2svaG9va3MuYwpAQCAtMTY2Miw2ICsxNjYyLDQ0IEBAIHN0 YXRpYyBpbnQgZmxhc2tfeGVuX3ZlcnNpb24gKHVpbnQzMl90IG9wKQogICAgIH0KIH0KIAorc3Rh dGljIGludCBmbGFza192ZXJzaW9uX29wICh1aW50MzJfdCBvcCkKK3sKKyAgICB1MzIgZHNpZCA9 IGRvbWFpbl9zaWQoY3VycmVudC0+ZG9tYWluKTsKKworICAgIHN3aXRjaCAoIG9wICkKKyAgICB7 CisgICAgY2FzZSBYRU5fVkVSU0lPTl9PUF92ZXJzaW9uOgorICAgICAgICByZXR1cm4gYXZjX2hh c19wZXJtKGRzaWQsIFNFQ0lOSVRTSURfWEVOLCBTRUNDTEFTU19WRVJTSU9OLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFZFUlNJT05fX1ZFUlNJT04sIE5VTEwpOworICAgIGNhc2UgWEVO X1ZFUlNJT05fT1BfZXh0cmF2ZXJzaW9uOgorICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRz aWQsIFNFQ0lOSVRTSURfWEVOLCBTRUNDTEFTU19WRVJTSU9OLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFZFUlNJT05fX0VYVFJBVkVSU0lPTiwgTlVMTCk7CisgICAgY2FzZSBYRU5fVkVS U0lPTl9PUF9jYXBhYmlsaXRpZXM6CisgICAgICAgIHJldHVybiBhdmNfaGFzX3Blcm0oZHNpZCwg U0VDSU5JVFNJRF9YRU4sIFNFQ0NMQVNTX1ZFUlNJT04sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVkVSU0lPTl9fQ0FQQUJJTElUSUVTLCBOVUxMKTsKKyAgICBjYXNlIFhFTl9WRVJTSU9O X09QX2NoYW5nZXNldDoKKyAgICAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklU U0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBW RVJTSU9OX19DSEFOR0VTRVQsIE5VTEwpOworICAgIGNhc2UgWEVOX1ZFUlNJT05fT1BfcGxhdGZv cm1fcGFyYW1ldGVyczoKKyAgICAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklU U0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBW RVJTSU9OX19QTEFURk9STV9QQVJBTUVURVJTLCBOVUxMKTsKKyAgICBjYXNlIFhFTl9WRVJTSU9O X09QX2dldF9mZWF0dXJlczoKKyAgICAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJ TklUU0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBWRVJTSU9OX19HRVRfRkVBVFVSRVMsIE5VTEwpOworICAgIGNhc2UgWEVOX1ZFUlNJT05fT1Bf cGFnZXNpemU6CisgICAgICAgIHJldHVybiBhdmNfaGFzX3Blcm0oZHNpZCwgU0VDSU5JVFNJRF9Y RU4sIFNFQ0NMQVNTX1ZFUlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVSU0lP Tl9fUEFHRVNJWkUsIE5VTEwpOworICAgIGNhc2UgWEVOX1ZFUlNJT05fT1BfZ3Vlc3RfaGFuZGxl OgorICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQsIFNFQ0lOSVRTSURfWEVOLCBTRUND TEFTU19WRVJTSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFUlNJT05fX0dVRVNU X0hBTkRMRSwgTlVMTCk7CisgICAgY2FzZSBYRU5fVkVSU0lPTl9PUF9jb21tYW5kbGluZToKKyAg ICAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklUU0lEX1hFTiwgU0VDQ0xBU1Nf VkVSU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRVJTSU9OX19DT01NQU5ETElO RSwgTlVMTCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIC1FUEVSTTsKKyAgICB9Cit9 CisKIGxvbmcgZG9fZmxhc2tfb3AoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4c21fb3BfdCkgdV9m bGFza19vcCk7CiBpbnQgY29tcGF0X2ZsYXNrX29wKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeHNt X29wX3QpIHVfZmxhc2tfb3ApOwogCkBAIC0xODAxLDYgKzE4MzksNyBAQCBzdGF0aWMgc3RydWN0 IHhzbV9vcGVyYXRpb25zIGZsYXNrX29wcyA9IHsKICAgICAucG11X29wID0gZmxhc2tfcG11X29w LAogI2VuZGlmCiAgICAgLnhlbl92ZXJzaW9uID0gZmxhc2tfeGVuX3ZlcnNpb24sCisgICAgLnZl cnNpb25fb3AgPSBmbGFza192ZXJzaW9uX29wLAogfTsKIAogc3RhdGljIF9faW5pdCB2b2lkIGZs YXNrX2luaXQodm9pZCkKZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192 ZWN0b3JzIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKaW5kZXggNjI4ZGQ1 Yy4uNTljOWY2OSAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3Rv cnMKKysrIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKQEAgLTQ5Niw5ICs0 OTYsMTAgQEAgY2xhc3Mgc2VjdXJpdHkKICAgICBkZWxfb2NvbnRleHQKIH0KIAotIyBDbGFzcyB2 ZXJzaW9uIGlzIHVzZWQgdG8gZGVzY3JpYmUgdGhlIFhFTlZFUl8gaHlwZXJjYWxsLgorIyBDbGFz cyB2ZXJzaW9uIGlzIHVzZWQgdG8gZGVzY3JpYmUgdGhlIFhFTlZFUl8gYW5kIFZFUlNJT05fT1Ag aHlwZXJjYWxsLgogIyBFYWNoIHN1Yi1vcHMgaXMgZGVzY3JpYmVkIGhlcmUgLSBpbiB0aGUgZGVm YXVsdCBjYXNlIGFsbCBvZiB0aGVtIHNob3VsZAotIyBiZSBhbGxvd2VkIGV4Y2VwdCB0aGUgWEVO VkVSX2NvbW1hbmRsaW5lLgorIyBiZSBhbGxvd2VkIGV4Y2VwdCB0aGUgWEVOVkVSX2NvbW1hbmRs aW5lLCBWRVJTSU9OX09QX2NvbW1hbmRsaW5lLCBhbmQKKyMgVkVSU0lPTl9PUF9jaGFuZ2VzZXQu CiAjCiBjbGFzcyB2ZXJzaW9uCiB7CkBAIC01MjIsNCArNTIzLDIzIEBAIGNsYXNzIHZlcnNpb24K ICAgICB4ZW5fZ3Vlc3RfaGFuZGxlCiAjIFhlbiBjb21tYW5kIGxpbmUuCiAgICAgeGVuX2NvbW1h bmRsaW5lCisKKyMgT2Z0ZW4gY2FsbGVkIGJ5IFBWIGtlcm5lbHMgdG8gZm9yY2UgYW4gY2FsbGJh Y2suCisgICAgdmVyc2lvbgorIyBFeHRyYSBpbmZvcm1hdGlvbnMgKC11bnN0YWJsZSkuCisgICAg ZXh0cmF2ZXJzaW9uCisjIFN1Y2ggYXMgInhlbi0zLjAteDg2XzY0IHhlbi0zLjAteDg2XzMycCBo dm0tMy4wLXg4Nl8zMiBodm0tMy4wLXg4Nl8zMnAgaHZtLTMuMC14ODZfNjQiLgorICAgIGNhcGFi aWxpdGllcworIyBTdWNoIGFzIHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2Ygd2hlcmUgdGhlIGh5cGVy dmlzb3IgcmVzaWRlcy4KKyAgICBwbGF0Zm9ybV9wYXJhbWV0ZXJzCisjIFNvdXJjZSBjb2RlIGNo YW5nZXNldC4KKyAgICBjaGFuZ2VzZXQKKyMgVGhlIGZlYXR1cmVzIHRoZSBoeXBlcnZpc29yIHN1 cHBvcnRzLgorICAgIGdldF9mZWF0dXJlcworIyBQYWdlIHNpemUgdGhlIGh5cGVydmlzb3IgdXNl cy4KKyAgICBwYWdlc2l6ZQorIyBBbiB2YWx1ZSB0aGF0IHRoZSBjb250cm9sIHN0YWNrIGNhbiBj aG9vc2UuCisgICAgZ3Vlc3RfaGFuZGxlCisjIFhlbiBjb21tYW5kIGxpbmUuCisgICAgY29tbWFu ZGxpbmUKIH0KLS0gCjIuNS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK