From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: [PATCH v3 8/9] x86/hvm: Add debug exception vm_events Date: Wed, 4 May 2016 08:51:19 -0600 Message-ID: <1462373480-20206-8-git-send-email-tamas@tklengyel.com> References: <1462373480-20206-1-git-send-email-tamas@tklengyel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1axy9P-0003C7-At for xen-devel@lists.xenproject.org; Wed, 04 May 2016 14:51:43 +0000 Received: by mail-ig0-f177.google.com with SMTP id s8so50030740ign.0 for ; Wed, 04 May 2016 07:51:41 -0700 (PDT) In-Reply-To: <1462373480-20206-1-git-send-email-tamas@tklengyel.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 Cc: Kevin Tian , Tamas K Lengyel , Wei Liu , Jun Nakajima , Razvan Cojocaru , Andrew Cooper , Ian Jackson , Jan Beulich List-Id: xen-devel@lists.xenproject.org U2luY2UgaW4tZ3Vlc3QgZGVidWcgZXhjZXB0aW9ucyBhcmUgbm93IHVuY29uZGl0aW9uYWxseSB0 cmFwcGVkIHRvIFhlbiwgYWRkaW5nCmEgaG9vayBmb3Igdm1fZXZlbnQgc3Vic2NyaWJlcnMgdG8g dGFwIGludG8gdGhpcyBuZXcgYWx3YXlzLW9uIGd1ZXN0IGV2ZW50LiBXZQpyZW5hbWUgYWxvbmcg dGhlIHdheSBodm1fZXZlbnRfYnJlYWtwb2ludF90eXBlIHRvIGh2bV9ldmVudF90eXBlIHRvIGJl dHRlcgptYXRjaCB0aGUgdmFyaW91cyBldmVudHMgdGhhdCBjYW4gYmUgcGFzc2VkIHdpdGggaXQu IFdlIGFsc28gaW50cm9kdWNlIHRoZQpuZWNlc3NhcnkgbW9uaXRvcl9vcCBkb21jdGwncyB0byBl bmFibGUgc3Vic2NyaWJpbmcgdG8gdGhlIGV2ZW50cy4KClNpZ25lZC1vZmYtYnk6IFRhbWFzIEsg TGVuZ3llbCA8dGFtYXNAdGtsZW5neWVsLmNvbT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmph Y2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNj OiBSYXp2YW4gQ29qb2NhcnUgPHJjb2pvY2FydUBiaXRkZWZlbmRlci5jb20+CkNjOiBKYW4gQmV1 bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVy M0BjaXRyaXguY29tPgpDYzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWppbWFAaW50ZWwuY29tPgpD YzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+Cgp2MzogSW5jcmVtZW50IHZtX2V2 ZW50IGludGVyZmFjZSB2ZXJzaW9uCnYyOiBSZW5hbWUgaHZtX21vbml0b3JfZXZlbnQgdG8gaHZt X21vbml0b3JfZGVidWcKLS0tCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCAgICAgICB8 ICAzICstCiB0b29scy9saWJ4Yy94Y19tb25pdG9yLmMgICAgICAgICAgICB8IDE1ICsrKysrKysr KwogdG9vbHMvdGVzdHMveGVuLWFjY2Vzcy94ZW4tYWNjZXNzLmMgfCA2MSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL21vbml0b3IuYyAgICAg ICAgICB8IDI2ICsrKysrKysrKysrKysrLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jICAg ICAgICAgIHwgMjYgKysrKysrKysrKysrKy0tLQogeGVuL2FyY2gveDg2L21vbml0b3IuYyAgICAg ICAgICAgICAgfCAxNiArKysrKysrKysrCiB4ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oICAg ICAgICB8ICAyICsrCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9tb25pdG9yLmggICB8ICA3ICsr Ky0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L21vbml0b3IuaCAgICAgICB8ICAzICstCiB4ZW4vaW5j bHVkZS9wdWJsaWMvZG9tY3RsLmggICAgICAgICB8ICA2ICsrKysKIHhlbi9pbmNsdWRlL3B1Ymxp Yy92bV9ldmVudC5oICAgICAgIHwgMTQgKysrKysrKy0tCiAxMSBmaWxlcyBjaGFuZ2VkLCAxNTcg aW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMv aW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAppbmRleCA0 Yjc1YWU0Li5mZjNiYTllIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwu aAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMjE2Miw3ICsyMTYyLDgg QEAgaW50IHhjX21vbml0b3JfZ3Vlc3RfcmVxdWVzdCh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRf dCBkb21haW5faWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZW5hYmxlLCBi b29sIHN5bmMpOwogaW50IHhjX21vbml0b3JfcHJpdmlsZWdlZF9jYWxsKHhjX2ludGVyZmFjZSAq eGNoLCBkb21pZF90IGRvbWFpbl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi b29sIGVuYWJsZSk7Ci0KK2ludCB4Y19tb25pdG9yX2RlYnVnX2V4Y2VwdGlvbnMoeGNfaW50ZXJm YWNlICp4Y2gsIGRvbWlkX3QgZG9tYWluX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBib29sIGVuYWJsZSwgYm9vbCBzeW5jKTsKIC8qKgogICogVGhpcyBmdW5jdGlvbiBlbmFi bGVzIC8gZGlzYWJsZXMgZW11bGF0aW9uIGZvciBlYWNoIFJFUCBmb3IgYQogICogUkVQLWNvbXBh dGlibGUgaW5zdHJ1Y3Rpb24uCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19tb25pdG9yLmMg Yi90b29scy9saWJ4Yy94Y19tb25pdG9yLmMKaW5kZXggMmNiNDI0Ny4uNzZiOWQyYyAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGMveGNfbW9uaXRvci5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX21vbml0 b3IuYwpAQCAtMTcxLDYgKzE3MSwyMSBAQCBpbnQgeGNfbW9uaXRvcl9wcml2aWxlZ2VkX2NhbGwo eGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tYWluX2lkLAogICAgIHJldHVybiBkb19kb21j dGwoeGNoLCAmZG9tY3RsKTsKIH0KIAoraW50IHhjX21vbml0b3JfZGVidWdfZXhjZXB0aW9ucyh4 Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21haW5faWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgZW5hYmxlLCBib29sIHN5bmMpCit7CisgICAgREVDTEFSRV9ET01D VEw7CisKKyAgICBkb21jdGwuY21kID0gWEVOX0RPTUNUTF9tb25pdG9yX29wOworICAgIGRvbWN0 bC5kb21haW4gPSBkb21haW5faWQ7CisgICAgZG9tY3RsLnUubW9uaXRvcl9vcC5vcCA9IGVuYWJs ZSA/IFhFTl9ET01DVExfTU9OSVRPUl9PUF9FTkFCTEUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogWEVOX0RPTUNUTF9NT05JVE9SX09QX0RJU0FCTEU7CisgICAgZG9tY3Rs LnUubW9uaXRvcl9vcC5ldmVudCA9IFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF9ERUJVR19FWENF UFRJT047CisgICAgZG9tY3RsLnUubW9uaXRvcl9vcC51LmRlYnVnX2V4Y2VwdGlvbi5zeW5jID0g c3luYzsKKworICAgIHJldHVybiBkb19kb21jdGwoeGNoLCAmZG9tY3RsKTsKK30KKwogLyoKICsg KiBMb2NhbCB2YXJpYWJsZXM6CiArICogbW9kZTogQwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdHMv eGVuLWFjY2Vzcy94ZW4tYWNjZXNzLmMgYi90b29scy90ZXN0cy94ZW4tYWNjZXNzL3hlbi1hY2Nl c3MuYwppbmRleCBkYjY1ODQ2Li42NGNlODJmIDEwMDY0NAotLS0gYS90b29scy90ZXN0cy94ZW4t YWNjZXNzL3hlbi1hY2Nlc3MuYworKysgYi90b29scy90ZXN0cy94ZW4tYWNjZXNzL3hlbi1hY2Nl c3MuYwpAQCAtNTIsNiArNTIsMTAgQEAKICNkZWZpbmUgRVJST1IoYSwgYi4uLikgZnByaW50Zihz dGRlcnIsIGEgIlxuIiwgIyMgYikKICNkZWZpbmUgUEVSUk9SKGEsIGIuLi4pIGZwcmludGYoc3Rk ZXJyLCBhICI6ICVzXG4iLCAjIyBiLCBzdHJlcnJvcihlcnJubykpCiAKKy8qIEZyb20geGVuL2lu Y2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaCAqLworI2RlZmluZSBYODZfVFJBUF9ERUJVRyAgMQor I2RlZmluZSBYODZfVFJBUF9JTlQzICAgMworCiB0eXBlZGVmIHN0cnVjdCB2bV9ldmVudCB7CiAg ICAgZG9taWRfdCBkb21haW5faWQ7CiAgICAgeGVuZXZ0Y2huX2hhbmRsZSAqeGNlX2hhbmRsZTsK QEAgLTMzMiw3ICszMzYsNyBAQCB2b2lkIHVzYWdlKGNoYXIqIHByb2duYW1lKQogewogICAgIGZw cmludGYoc3RkZXJyLCAiVXNhZ2U6ICVzIFstbV0gPGRvbWFpbl9pZD4gd3JpdGV8ZXhlYyIsIHBy b2duYW1lKTsKICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCi0g ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInxicmVha3BvaW50fGFsdHAybV93cml0ZXxhbHRw Mm1fZXhlYyIpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJ8YnJlYWtwb2ludHxhbHRw Mm1fd3JpdGV8YWx0cDJtX2V4ZWN8ZGVidWciKTsKICNlbGlmIGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX2FhcmNoNjRfXykKICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAifHByaXZj YWxsIik7CiAjZW5kaWYKQEAgLTM1NSwxMSArMzU5LDEzIEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICphcmd2W10pCiAgICAgeGNfaW50ZXJmYWNlICp4Y2g7CiAgICAgeGVubWVtX2FjY2Vzc190 IGRlZmF1bHRfYWNjZXNzID0gWEVOTUVNX2FjY2Vzc19yd3g7CiAgICAgeGVubWVtX2FjY2Vzc190 IGFmdGVyX2ZpcnN0X2FjY2VzcyA9IFhFTk1FTV9hY2Nlc3Nfcnd4OworICAgIGludCBtZW1hY2Nl c3MgPSAwOwogICAgIGludCByZXF1aXJlZCA9IDA7CiAgICAgaW50IGJyZWFrcG9pbnQgPSAwOwog ICAgIGludCBzaHV0dGluZ19kb3duID0gMDsKICAgICBpbnQgcHJpdmNhbGwgPSAwOwogICAgIGlu dCBhbHRwMm0gPSAwOworICAgIGludCBkZWJ1ZyA9IDA7CiAgICAgdWludDE2X3QgYWx0cDJtX3Zp ZXdfaWQgPSAwOwogCiAgICAgY2hhciogcHJvZ25hbWUgPSBhcmd2WzBdOwpAQCAtMzkzLDExICsz OTksMTMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICB7CiAgICAgICAg IGRlZmF1bHRfYWNjZXNzID0gWEVOTUVNX2FjY2Vzc19yeDsKICAgICAgICAgYWZ0ZXJfZmlyc3Rf YWNjZXNzID0gWEVOTUVNX2FjY2Vzc19yd3g7CisgICAgICAgIG1lbWFjY2VzcyA9IDE7CiAgICAg fQogICAgIGVsc2UgaWYgKCAhc3RyY21wKGFyZ3ZbMF0sICJleGVjIikgKQogICAgIHsKICAgICAg ICAgZGVmYXVsdF9hY2Nlc3MgPSBYRU5NRU1fYWNjZXNzX3J3OwogICAgICAgICBhZnRlcl9maXJz dF9hY2Nlc3MgPSBYRU5NRU1fYWNjZXNzX3J3eDsKKyAgICAgICAgbWVtYWNjZXNzID0gMTsKICAg ICB9CiAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQogICAgIGVs c2UgaWYgKCAhc3RyY21wKGFyZ3ZbMF0sICJicmVha3BvaW50IikgKQpAQCAtNDA4LDExICs0MTYs MTcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICB7CiAgICAgICAgIGRl ZmF1bHRfYWNjZXNzID0gWEVOTUVNX2FjY2Vzc19yeDsKICAgICAgICAgYWx0cDJtID0gMTsKKyAg ICAgICAgbWVtYWNjZXNzID0gMTsKICAgICB9CiAgICAgZWxzZSBpZiAoICFzdHJjbXAoYXJndlsw XSwgImFsdHAybV9leGVjIikgKQogICAgIHsKICAgICAgICAgZGVmYXVsdF9hY2Nlc3MgPSBYRU5N RU1fYWNjZXNzX3J3OwogICAgICAgICBhbHRwMm0gPSAxOworICAgICAgICBtZW1hY2Nlc3MgPSAx OworICAgIH0KKyAgICBlbHNlIGlmICggIXN0cmNtcChhcmd2WzBdLCAiZGVidWciKSApCisgICAg eworICAgICAgICBkZWJ1ZyA9IDE7CiAgICAgfQogI2VsaWYgZGVmaW5lZChfX2FybV9fKSB8fCBk ZWZpbmVkKF9fYWFyY2g2NF9fKQogICAgIGVsc2UgaWYgKCAhc3RyY21wKGFyZ3ZbMF0sICJwcml2 Y2FsbCIpICkKQEAgLTQ1Myw3ICs0NjcsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogICAgIH0KIAogICAgIC8qIFdpdGggYWx0cDJtIHdlIGp1c3QgY3JlYXRlIGEgbmV3LCBy ZXN0cmljdGVkIHZpZXcgb2YgdGhlIG1lbW9yeSAqLwotICAgIGlmICggYWx0cDJtICkKKyAgICBp ZiAoIG1lbWFjY2VzcyAmJiBhbHRwMm0gKQogICAgIHsKICAgICAgICAgeGVuX3Bmbl90IGdmbiA9 IDA7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgcGVybV9zZXQgPSAwOwpAQCAtNTAwLDcgKzUxNCw3 IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgIH0KICAgICB9CiAK LSAgICBpZiAoICFhbHRwMm0gKQorICAgIGlmICggbWVtYWNjZXNzICYmICFhbHRwMm0gKQogICAg IHsKICAgICAgICAgLyogU2V0IHRoZSBkZWZhdWx0IGFjY2VzcyB0eXBlIGFuZCBjb252ZXJ0IGFs bCBwYWdlcyB0byBpdCAqLwogICAgICAgICByYyA9IHhjX3NldF9tZW1fYWNjZXNzKHhjaCwgZG9t YWluX2lkLCBkZWZhdWx0X2FjY2VzcywgfjB1bGwsIDApOwpAQCAtNTQxLDYgKzU1NSwxNiBAQCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICB9CiAgICAgfQogCisgICAg aWYgKCBkZWJ1ZyApCisgICAgeworICAgICAgICByYyA9IHhjX21vbml0b3JfZGVidWdfZXhjZXB0 aW9ucyh4Y2gsIGRvbWFpbl9pZCwgMSwgMSk7CisgICAgICAgIGlmICggcmMgPCAwICkKKyAgICAg ICAgeworICAgICAgICAgICAgRVJST1IoIkVycm9yICVkIHNldHRpbmcgZGVidWcgZXhjZXB0aW9u IGxpc3RlbmVyIHdpdGggdm1fZXZlbnRcbiIsIHJjKTsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsK KyAgICAgICAgfQorICAgIH0KKwogICAgIC8qIFdhaXQgZm9yIGFjY2VzcyAqLwogICAgIGZvciAo OzspCiAgICAgewpAQCAtNTUxLDkgKzU3NSwxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq YXJndltdKQogCiAgICAgICAgICAgICBpZiAoIGJyZWFrcG9pbnQgKQogICAgICAgICAgICAgICAg IHJjID0geGNfbW9uaXRvcl9zb2Z0d2FyZV9icmVha3BvaW50KHhjaCwgZG9tYWluX2lkLCAwKTsK LQogICAgICAgICAgICAgaWYgKCBwcml2Y2FsbCApCiAgICAgICAgICAgICAgICAgcmMgPSB4Y19t b25pdG9yX3ByaXZpbGVnZWRfY2FsbCh4Y2gsIGRvbWFpbl9pZCwgMCk7CisgICAgICAgICAgICBp ZiAoIGRlYnVnICkKKyAgICAgICAgICAgICAgICByYyA9IHhjX21vbml0b3JfZGVidWdfZXhjZXB0 aW9ucyh4Y2gsIGRvbWFpbl9pZCwgMCwgMCk7CiAKICAgICAgICAgICAgIGlmICggYWx0cDJtICkK ICAgICAgICAgICAgIHsKQEAgLTY2MSw5ICs2ODYsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKICAgICAgICAgICAgICAgICAgICAgICAgcmVxLnZjcHVfaWQpOwogCiAgICAg ICAgICAgICAgICAgLyogUmVpbmplY3QgKi8KLSAgICAgICAgICAgICAgICByYyA9IHhjX2h2bV9p bmplY3RfdHJhcCgKLSAgICAgICAgICAgICAgICAgICAgeGNoLCBkb21haW5faWQsIHJlcS52Y3B1 X2lkLCAzLAotICAgICAgICAgICAgICAgICAgICBIVk1PUF9UUkFQX3N3X2V4YywgLTEsIDAsIDAp OworICAgICAgICAgICAgICAgIHJjID0geGNfaHZtX2luamVjdF90cmFwKHhjaCwgZG9tYWluX2lk LCByZXEudmNwdV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBY ODZfVFJBUF9JTlQzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl cS51LnNvZnR3YXJlX2JyZWFrcG9pbnQudHlwZSwgLTEsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVxLnUuc29mdHdhcmVfYnJlYWtwb2ludC5pbnNuX2xlbmd0aCwg MCk7CiAgICAgICAgICAgICAgICAgaWYgKHJjIDwgMCkKICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgIEVSUk9SKCJFcnJvciAlZCBpbmplY3RpbmcgYnJlYWtwb2ludFxuIiwg cmMpOwpAQCAtNjk3LDYgKzcyMywyNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd KQogICAgICAgICAgICAgICAgIHJzcC5mbGFncyB8PSBWTV9FVkVOVF9GTEFHX1RPR0dMRV9TSU5H TEVTVEVQOwogCiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFZNX0VW RU5UX1JFQVNPTl9ERUJVR19FWENFUFRJT046CisgICAgICAgICAgICAgICAgcHJpbnRmKCJEZWJ1 ZyBleGNlcHRpb246IHJpcD0lMDE2IlBSSXg2NCIsIHZjcHUgJWQuIFR5cGU6ICV1LiBMZW5ndGg6 ICV1XG4iLAorICAgICAgICAgICAgICAgICAgICAgICByZXEuZGF0YS5yZWdzLng4Ni5yaXAsCisg ICAgICAgICAgICAgICAgICAgICAgIHJlcS52Y3B1X2lkLAorICAgICAgICAgICAgICAgICAgICAg ICByZXEudS5kZWJ1Z19leGNlcHRpb24udHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmVx LnUuZGVidWdfZXhjZXB0aW9uLmluc25fbGVuZ3RoKTsKKworICAgICAgICAgICAgICAgIC8qIFJl aW5qZWN0ICovCisgICAgICAgICAgICAgICAgcmMgPSB4Y19odm1faW5qZWN0X3RyYXAoeGNoLCBk b21haW5faWQsIHJlcS52Y3B1X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFg4Nl9UUkFQX0RFQlVHLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlcS51LmRlYnVnX2V4Y2VwdGlvbi50eXBlLCAtMSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXEudS5kZWJ1Z19leGNlcHRpb24uaW5zbl9sZW5ndGgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxLmRhdGEucmVncy54 ODYuY3IyKTsKKyAgICAgICAgICAgICAgICBpZiAocmMgPCAwKQorICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgRVJST1IoIkVycm9yICVkIGluamVjdGluZyBicmVha3BvaW50 XG4iLCByYyk7CisgICAgICAgICAgICAgICAgICAgIGludGVycnVwdGVkID0gLTE7CisgICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg ICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBmcHJpbnRm KHN0ZGVyciwgIlVOS05PV04gUkVBU09OIENPREUgJWRcbiIsIHJlcS5yZWFzb24pOwogICAgICAg ICAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9tb25pdG9yLmMgYi94ZW4vYXJj aC94ODYvaHZtL21vbml0b3IuYwppbmRleCAxOTA0OGY0Li40MDY5ZGZmIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvaHZtL21vbml0b3IuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL21vbml0b3Iu YwpAQCAtOTAsMTIgKzkwLDE0IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBnZm5fb2Zf cmlwKHVuc2lnbmVkIGxvbmcgcmlwKQogICAgIHJldHVybiBwYWdpbmdfZ3ZhX3RvX2dmbihjdXJy LCBzcmVnLmJhc2UgKyByaXAsICZwZmVjKTsKIH0KIAotaW50IGh2bV9tb25pdG9yX2JyZWFrcG9p bnQodW5zaWduZWQgbG9uZyByaXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBodm1f bW9uaXRvcl9icmVha3BvaW50X3R5cGUgdHlwZSkKK2ludCBodm1fbW9uaXRvcl9kZWJ1Zyh1bnNp Z25lZCBsb25nIHJpcCwgZW51bSBodm1fbW9uaXRvcl9kZWJ1Z190eXBlIHR5cGUsCisgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB0cmFwX3R5cGUsIHVuc2lnbmVkIGxvbmcgaW5z bl9sZW5ndGgpCiB7CiAgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OwogICAgIHN0cnVj dCBhcmNoX2RvbWFpbiAqYWQgPSAmY3Vyci0+ZG9tYWluLT5hcmNoOwogICAgIHZtX2V2ZW50X3Jl cXVlc3RfdCByZXEgPSB7fTsKKyAgICBib29sX3Qgc3luYzsKKyAgICBpbnQgcmM7CiAKICAgICBz d2l0Y2ggKCB0eXBlICkKICAgICB7CkBAIC0xMDQsNiArMTA2LDkgQEAgaW50IGh2bV9tb25pdG9y X2JyZWFrcG9pbnQodW5zaWduZWQgbG9uZyByaXAsCiAgICAgICAgICAgICByZXR1cm4gMDsKICAg ICAgICAgcmVxLnJlYXNvbiA9IFZNX0VWRU5UX1JFQVNPTl9TT0ZUV0FSRV9CUkVBS1BPSU5UOwog ICAgICAgICByZXEudS5zb2Z0d2FyZV9icmVha3BvaW50LmdmbiA9IGdmbl9vZl9yaXAocmlwKTsK KyAgICAgICAgcmVxLnUuc29mdHdhcmVfYnJlYWtwb2ludC50eXBlID0gdHJhcF90eXBlOworICAg ICAgICByZXEudS5zb2Z0d2FyZV9icmVha3BvaW50Lmluc25fbGVuZ3RoID0gaW5zbl9sZW5ndGg7 CisgICAgICAgIHN5bmMgPSAxOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgSFZNX01PTklU T1JfU0lOR0xFU1RFUF9CUkVBS1BPSU5UOgpAQCAtMTExLDYgKzExNiwxNyBAQCBpbnQgaHZtX21v bml0b3JfYnJlYWtwb2ludCh1bnNpZ25lZCBsb25nIHJpcCwKICAgICAgICAgICAgIHJldHVybiAw OwogICAgICAgICByZXEucmVhc29uID0gVk1fRVZFTlRfUkVBU09OX1NJTkdMRVNURVA7CiAgICAg ICAgIHJlcS51LnNpbmdsZXN0ZXAuZ2ZuID0gZ2ZuX29mX3JpcChyaXApOworICAgICAgICBzeW5j ID0gMTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEhWTV9NT05JVE9SX0RFQlVHX0VYQ0VQ VElPTjoKKyAgICAgICAgaWYgKCAhYWQtPm1vbml0b3IuZGVidWdfZXhjZXB0aW9uX2VuYWJsZWQg KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJlcS5yZWFzb24gPSBWTV9FVkVOVF9S RUFTT05fREVCVUdfRVhDRVBUSU9OOworICAgICAgICByZXEudS5kZWJ1Z19leGNlcHRpb24uZ2Zu ID0gZ2ZuX29mX3JpcChyaXApOworICAgICAgICByZXEudS5kZWJ1Z19leGNlcHRpb24udHlwZSA9 IHRyYXBfdHlwZTsKKyAgICAgICAgcmVxLnUuZGVidWdfZXhjZXB0aW9uLmluc25fbGVuZ3RoID0g aW5zbl9sZW5ndGg7CisgICAgICAgIHN5bmMgPSAhIWFkLT5tb25pdG9yLmRlYnVnX2V4Y2VwdGlv bl9zeW5jOwogICAgICAgICBicmVhazsKIAogICAgIGRlZmF1bHQ6CkBAIC0xMjAsNyArMTM2LDEx IEBAIGludCBodm1fbW9uaXRvcl9icmVha3BvaW50KHVuc2lnbmVkIGxvbmcgcmlwLAogICAgIHJl cS52Y3B1X2lkID0gY3Vyci0+dmNwdV9pZDsKICAgICB2bV9ldmVudF9maWxsX3JlZ3MoJnJlcSk7 CiAKLSAgICByZXR1cm4gdm1fZXZlbnRfbW9uaXRvcl90cmFwcyhjdXJyLCAxLCAmcmVxKTsKKyAg ICByYyA9IHZtX2V2ZW50X21vbml0b3JfdHJhcHMoY3Vyciwgc3luYywgJnJlcSk7CisgICAgaWYg KCB0eXBlID09IEhWTV9NT05JVE9SX0RFQlVHX0VYQ0VQVElPTiAmJiByYyA9PSAxICYmICFzeW5j ICkKKyAgICAgICAgcmMgPSAwOworCisgICAgcmV0dXJuIHJjOwogfQogCiAvKgpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXgu YwppbmRleCA0NzZhNjA2Li5hYzU0NmFiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3Zt eC92bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwpAQCAtMzM3Myw5ICszMzcz LDI1IEBAIHZvaWQgdm14X3ZtZXhpdF9oYW5kbGVyKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz KQogICAgICAgICAgICAgSFZNVFJBQ0VfMUQoVFJBUF9ERUJVRywgZXhpdF9xdWFsaWZpY2F0aW9u KTsKICAgICAgICAgICAgIHdyaXRlX2RlYnVncmVnKDYsIGV4aXRfcXVhbGlmaWNhdGlvbiB8IERS X1NUQVRVU19SRVNFUlZFRF9PTkUpOwogICAgICAgICAgICAgaWYgKCAhdi0+ZG9tYWluLT5kZWJ1 Z2dlcl9hdHRhY2hlZCApCi0gICAgICAgICAgICAgICAgdm14X3Byb3BhZ2F0ZV9pbnRyKGludHJf aW5mbyk7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBpbnNu X2xlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgaW50IGhhbmRsZWQ7CisgICAgICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyB0cmFwX3R5cGUgPSBNQVNLX0VYVFIoaW50cl9pbmZvLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOVFJfSU5GT19J TlRSX1RZUEVfTUFTSyk7CisKKyAgICAgICAgICAgICAgICBpZiggdHJhcF90eXBlID49IFg4Nl9F VkVOVFRZUEVfU1dfSU5URVJSVVBUICkKKyAgICAgICAgICAgICAgICAgICAgX192bXJlYWQoVk1f RVhJVF9JTlNUUlVDVElPTl9MRU4sICZpbnNuX2xlbmd0aCk7CisKKyAgICAgICAgICAgICAgICBo YW5kbGVkID0gaHZtX21vbml0b3JfZGVidWcocmVncy0+ZWlwLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBIVk1fTU9OSVRPUl9ERUJVR19FWENFUFRJT04sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYXBfdHlwZSwgaW5z bl9sZW5ndGgpOworICAgICAgICAgICAgICAgIGlmICggaGFuZGxlZCA8PSAwICkKKyAgICAgICAg ICAgICAgICAgICAgdm14X3Byb3BhZ2F0ZV9pbnRyKGludHJfaW5mbyk7CisKKyAgICAgICAgICAg IH0KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBkb21haW5fcGF1c2VfZm9yX2Rl YnVnZ2VyKCk7CisKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFRSQVBfaW50Mzog CiAgICAgICAgIHsKQEAgLTMzODksOCArMzQwNSw5IEBAIHZvaWQgdm14X3ZtZXhpdF9oYW5kbGVy KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICAgICAgfQogICAgICAgICAgICAg ZWxzZSB7CiAgICAgICAgICAgICAgICAgaW50IGhhbmRsZWQgPQotICAgICAgICAgICAgICAgICAg ICBodm1fbW9uaXRvcl9icmVha3BvaW50KHJlZ3MtPmVpcCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBIVk1fTU9OSVRPUl9TT0ZUV0FSRV9CUkVBS1BPSU5UKTsK KyAgICAgICAgICAgICAgICAgICAgICAgIGh2bV9tb25pdG9yX2RlYnVnKHJlZ3MtPmVpcCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhWTV9NT05JVE9SX1NPRlRX QVJFX0JSRUFLUE9JTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBYODZfRVZFTlRUWVBFX1NXX0VYQ0VQVElPTiwgMSk7CiAKICAgICAgICAgICAgICAgICBpZiAo IGhhbmRsZWQgPCAwICkgCiAgICAgICAgICAgICAgICAgewpAQCAtMzcxNyw4ICszNzM0LDcgQEAg dm9pZCB2bXhfdm1leGl0X2hhbmRsZXIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAg ICAgIHZteF91cGRhdGVfY3B1X2V4ZWNfY29udHJvbCh2KTsKICAgICAgICAgaWYgKCB2LT5hcmNo Lmh2bV92Y3B1LnNpbmdsZV9zdGVwICkKICAgICAgICAgewotICAgICAgICAgICAgaHZtX21vbml0 b3JfYnJlYWtwb2ludChyZWdzLT5laXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEhWTV9NT05JVE9SX1NJTkdMRVNURVBfQlJFQUtQT0lOVCk7CisgICAgICAgICAgICBodm1f bW9uaXRvcl9kZWJ1ZyhyZWdzLT5laXAsIEhWTV9NT05JVE9SX1NJTkdMRVNURVBfQlJFQUtQT0lO VCwgMCwgMCk7CiAgICAgICAgICAgICBpZiAoIHYtPmRvbWFpbi0+ZGVidWdnZXJfYXR0YWNoZWQg KQogICAgICAgICAgICAgICAgIGRvbWFpbl9wYXVzZV9mb3JfZGVidWdnZXIoKTsKICAgICAgICAg fQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21vbml0b3IuYyBiL3hlbi9hcmNoL3g4Ni9tb25p dG9yLmMKaW5kZXggODU5ODA0OS4uYWNkZTc1OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21v bml0b3IuYworKysgYi94ZW4vYXJjaC94ODYvbW9uaXRvci5jCkBAIC0xMjUsNiArMTI1LDIyIEBA IGludCBhcmNoX21vbml0b3JfZG9tY3RsX2V2ZW50KHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAg IGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX0RFQlVH X0VYQ0VQVElPTjoKKyAgICB7CisgICAgICAgIGJvb2xfdCBvbGRfc3RhdHVzID0gYWQtPm1vbml0 b3IuZGVidWdfZXhjZXB0aW9uX2VuYWJsZWQ7CisKKyAgICAgICAgaWYgKCB1bmxpa2VseShvbGRf c3RhdHVzID09IHJlcXVlc3RlZF9zdGF0dXMpICkKKyAgICAgICAgICAgIHJldHVybiAtRUVYSVNU OworCisgICAgICAgIGRvbWFpbl9wYXVzZShkKTsKKyAgICAgICAgYWQtPm1vbml0b3IuZGVidWdf ZXhjZXB0aW9uX2VuYWJsZWQgPSByZXF1ZXN0ZWRfc3RhdHVzOworICAgICAgICBhZC0+bW9uaXRv ci5kZWJ1Z19leGNlcHRpb25fc3luYyA9IHJlcXVlc3RlZF9zdGF0dXMgPworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3AtPnUuZGVidWdfZXhjZXB0aW9uLnN5 bmMgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwOworICAg ICAgICBkb21haW5fdW5wYXVzZShkKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgZGVm YXVsdDoKICAgICAgICAgLyoKICAgICAgICAgICogU2hvdWxkIG5vdCBiZSByZWFjaGVkIHVubGVz cyBhcmNoX21vbml0b3JfZ2V0X2NhcGFiaWxpdGllcygpIGlzCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAppbmRl eCAxNjVlNTMzLi4xY2Y5N2MzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFp bi5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgKQEAgLTQwNSw2ICs0MDUsOCBA QCBzdHJ1Y3QgYXJjaF9kb21haW4KICAgICAgICAgdW5zaWduZWQgaW50IG1vdl90b19tc3JfZXh0 ZW5kZWQgICAgICAgICA6IDE7CiAgICAgICAgIHVuc2lnbmVkIGludCBzaW5nbGVzdGVwX2VuYWJs ZWQgICAgICAgICAgOiAxOwogICAgICAgICB1bnNpZ25lZCBpbnQgc29mdHdhcmVfYnJlYWtwb2lu dF9lbmFibGVkIDogMTsKKyAgICAgICAgdW5zaWduZWQgaW50IGRlYnVnX2V4Y2VwdGlvbl9lbmFi bGVkICAgICA6IDE7CisgICAgICAgIHVuc2lnbmVkIGludCBkZWJ1Z19leGNlcHRpb25fc3luYyAg ICAgICAgOiAxOwogICAgIH0gbW9uaXRvcjsKIAogICAgIC8qIE1lbV9hY2Nlc3MgZW11bGF0aW9u IGNvbnRyb2wgKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL21vbml0b3Iu aCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL21vbml0b3IuaAppbmRleCAxZDNjNjY4Li40MjJi YzExIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9tb25pdG9yLmgKKysrIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vbW9uaXRvci5oCkBAIC0yMywxMCArMjMsMTEgQEAKICNp bmNsdWRlIDx4ZW4vcGFnaW5nLmg+CiAjaW5jbHVkZSA8cHVibGljL3ZtX2V2ZW50Lmg+CiAKLWVu dW0gaHZtX21vbml0b3JfYnJlYWtwb2ludF90eXBlCitlbnVtIGh2bV9tb25pdG9yX2RlYnVnX3R5 cGUKIHsKICAgICBIVk1fTU9OSVRPUl9TT0ZUV0FSRV9CUkVBS1BPSU5ULAogICAgIEhWTV9NT05J VE9SX1NJTkdMRVNURVBfQlJFQUtQT0lOVCwKKyAgICBIVk1fTU9OSVRPUl9ERUJVR19FWENFUFRJ T04sCiB9OwogCiAvKgpAQCAtMzksOCArNDAsOCBAQCBib29sX3QgaHZtX21vbml0b3JfY3IodW5z aWduZWQgaW50IGluZGV4LCB1bnNpZ25lZCBsb25nIHZhbHVlLAogI2RlZmluZSBodm1fbW9uaXRv cl9jclgoY3IsIG5ldywgb2xkKSBcCiAgICAgaHZtX21vbml0b3JfY3IoVk1fRVZFTlRfWDg2XyMj Y3IsIG5ldywgb2xkKQogdm9pZCBodm1fbW9uaXRvcl9tc3IodW5zaWduZWQgaW50IG1zciwgdWlu dDY0X3QgdmFsdWUpOwotaW50IGh2bV9tb25pdG9yX2JyZWFrcG9pbnQodW5zaWduZWQgbG9uZyBy aXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGh2bV9tb25pdG9yX2JyZWFrcG9p bnRfdHlwZSB0eXBlKTsKK2ludCBodm1fbW9uaXRvcl9kZWJ1Zyh1bnNpZ25lZCBsb25nIHJpcCwg ZW51bSBodm1fbW9uaXRvcl9kZWJ1Z190eXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgbG9uZyB0cmFwX3R5cGUsIHVuc2lnbmVkIGxvbmcgaW5zbl9sZW5ndGgpOwogCiAj ZW5kaWYgLyogX19BU01fWDg2X0hWTV9NT05JVE9SX0hfXyAqLwogCmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9hc20teDg2L21vbml0b3IuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW9uaXRvci5o CmluZGV4IDQ0NmIyYWYuLjI0MGE5NGUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYv bW9uaXRvci5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW9uaXRvci5oCkBAIC02NCw3ICs2 NCw4IEBAIHN0YXRpYyBpbmxpbmUgdWludDMyX3QgYXJjaF9tb25pdG9yX2dldF9jYXBhYmlsaXRp ZXMoc3RydWN0IGRvbWFpbiAqZCkKICAgICBjYXBhYmlsaXRpZXMgPSAoMVUgPDwgWEVOX0RPTUNU TF9NT05JVE9SX0VWRU5UX1dSSVRFX0NUUkxSRUcpIHwKICAgICAgICAgICAgICAgICAgICAoMVUg PDwgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX01PVl9UT19NU1IpIHwKICAgICAgICAgICAgICAg ICAgICAoMVUgPDwgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX1NPRlRXQVJFX0JSRUFLUE9JTlQp IHwKLSAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX0dV RVNUX1JFUVVFU1QpOworICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5fRE9NQ1RMX01PTklU T1JfRVZFTlRfR1VFU1RfUkVRVUVTVCkgfAorICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5f RE9NQ1RMX01PTklUT1JfRVZFTlRfREVCVUdfRVhDRVBUSU9OKTsKIAogICAgIC8qIFNpbmNlIHdl IGtub3cgdGhpcyBpcyBvbiBWTVgsIHdlIGNhbiBqdXN0IGNhbGwgdGhlIGh2bSBmdW5jICovCiAg ICAgaWYgKCBodm1faXNfc2luZ2xlc3RlcF9zdXBwb3J0ZWQoKSApCmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKaW5k ZXggMzVhZGNlMi4uYjY5YjFiYiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0 bC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaApAQCAtMTA4MSw2ICsxMDgxLDcg QEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9wc3JfY210X29wX3QpOwogI2Rl ZmluZSBYRU5fRE9NQ1RMX01PTklUT1JfRVZFTlRfU09GVFdBUkVfQlJFQUtQT0lOVCAgIDMKICNk ZWZpbmUgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX0dVRVNUX1JFUVVFU1QgICAgICAgICA0CiAj ZGVmaW5lIFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF9QUklWSUxFR0VEX0NBTEwgICAgICAgNQor I2RlZmluZSBYRU5fRE9NQ1RMX01PTklUT1JfRVZFTlRfREVCVUdfRVhDRVBUSU9OICAgICAgIDYK IAogc3RydWN0IHhlbl9kb21jdGxfbW9uaXRvcl9vcCB7CiAgICAgdWludDMyX3Qgb3A7IC8qIFhF Tl9ET01DVExfTU9OSVRPUl9PUF8qICovCkBAIC0xMTE2LDYgKzExMTcsMTEgQEAgc3RydWN0IHhl bl9kb21jdGxfbW9uaXRvcl9vcCB7CiAgICAgICAgICAgICAvKiBQYXVzZSB2Q1BVIHVudGlsIHJl c3BvbnNlICovCiAgICAgICAgICAgICB1aW50OF90IHN5bmM7CiAgICAgICAgIH0gZ3Vlc3RfcmVx dWVzdDsKKworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgLyogUGF1c2UgdkNQVSB1bnRp bCByZXNwb25zZSAqLworICAgICAgICAgICAgdWludDhfdCBzeW5jOworICAgICAgICB9IGRlYnVn X2V4Y2VwdGlvbjsKICAgICB9IHU7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9tb25p dG9yX29wIHhlbl9kb21jdGxfbW9uaXRvcl9vcF90OwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv cHVibGljL3ZtX2V2ZW50LmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvdm1fZXZlbnQuaAppbmRleCBm YWJlZWU4Li4xN2RmYTYxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvdm1fZXZlbnQu aAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvdm1fZXZlbnQuaApAQCAtMjksNyArMjksNyBAQAog CiAjaW5jbHVkZSAieGVuLmgiCiAKLSNkZWZpbmUgVk1fRVZFTlRfSU5URVJGQUNFX1ZFUlNJT04g MHgwMDAwMDAwMQorI2RlZmluZSBWTV9FVkVOVF9JTlRFUkZBQ0VfVkVSU0lPTiAweDAwMDAwMDAy CiAKICNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKIApAQCAt MTIxLDYgKzEyMSw4IEBACiAjZGVmaW5lIFZNX0VWRU5UX1JFQVNPTl9HVUVTVF9SRVFVRVNUICAg ICAgICAgICA4CiAvKiBQcml2aWxlZ2VkIGNhbGwgZXhlY3V0ZWQgKGUuZy4gU01DKSAqLwogI2Rl ZmluZSBWTV9FVkVOVF9SRUFTT05fUFJJVklMRUdFRF9DQUxMICAgICAgICAgOQorLyogQSBkZWJ1 ZyBleGNlcHRpb24gd2FzIGNhdWdodCAqLworI2RlZmluZSBWTV9FVkVOVF9SRUFTT05fREVCVUdf RVhDRVBUSU9OICAgICAgICAgMTAKIAogLyogU3VwcG9ydGVkIHZhbHVlcyBmb3IgdGhlIHZtX2V2 ZW50X3dyaXRlX2N0cmxyZWcgaW5kZXguICovCiAjZGVmaW5lIFZNX0VWRU5UX1g4Nl9DUjAgICAg MApAQCAtMjUzLDggKzI1NSwxNSBAQCBzdHJ1Y3Qgdm1fZXZlbnRfd3JpdGVfY3RybHJlZyB7CiAg ICAgdWludDY0X3Qgb2xkX3ZhbHVlOwogfTsKIAorc3RydWN0IHZtX2V2ZW50X3NpbmdsZXN0ZXAg eworICAgIHVpbnQ2NF90IGdmbjsKK307CisKIHN0cnVjdCB2bV9ldmVudF9kZWJ1ZyB7CiAgICAg dWludDY0X3QgZ2ZuOworICAgIHVpbnQ4X3QgdHlwZTsgICAgICAgIC8qIEhWTU9QX1RSQVBfKiAq LworICAgIHVpbnQ4X3QgaW5zbl9sZW5ndGg7CisgICAgdWludDhfdCBfcGFkWzZdOwogfTsKIAog c3RydWN0IHZtX2V2ZW50X21vdl90b19tc3IgewpAQCAtMjk4LDcgKzMwNyw4IEBAIHR5cGVkZWYg c3RydWN0IHZtX2V2ZW50X3N0IHsKICAgICAgICAgc3RydWN0IHZtX2V2ZW50X3dyaXRlX2N0cmxy ZWcgICAgICAgICB3cml0ZV9jdHJscmVnOwogICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRfbW92X3Rv X21zciAgICAgICAgICAgIG1vdl90b19tc3I7CiAgICAgICAgIHN0cnVjdCB2bV9ldmVudF9kZWJ1 ZyAgICAgICAgICAgICAgICAgc29mdHdhcmVfYnJlYWtwb2ludDsKLSAgICAgICAgc3RydWN0IHZt X2V2ZW50X2RlYnVnICAgICAgICAgICAgICAgICBzaW5nbGVzdGVwOworICAgICAgICBzdHJ1Y3Qg dm1fZXZlbnRfc2luZ2xlc3RlcCAgICAgICAgICAgIHNpbmdsZXN0ZXA7CisgICAgICAgIHN0cnVj dCB2bV9ldmVudF9kZWJ1ZyAgICAgICAgICAgICAgICAgZGVidWdfZXhjZXB0aW9uOwogICAgIH0g dTsKIAogICAgIHVuaW9uIHsKLS0gCjIuOC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK