From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: [PATCH v4 8/8] x86/vm_event: Add HVM debug exception vm_events Date: Sun, 29 May 2016 16:37:10 -0600 Message-ID: <1464561430-13465-8-git-send-email-tamas@tklengyel.com> References: <1464561430-13465-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b79LU-0004BW-0s for xen-devel@lists.xenproject.org; Sun, 29 May 2016 22:38:08 +0000 Received: by mail-io0-f195.google.com with SMTP id d197so10112476ioe.1 for ; Sun, 29 May 2016 15:38:06 -0700 (PDT) In-Reply-To: <1464561430-13465-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 aW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAppbmRleCAz MDg1MTMwLi4yOWQ5ODNlIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwu aAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMjE2Miw3ICsyMTYyLDgg QEAgaW50IHhjX21vbml0b3JfZ3Vlc3RfcmVxdWVzdCh4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRf dCBkb21haW5faWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZW5hYmxlLCBi b29sIHN5bmMpOwogaW50IHhjX21vbml0b3JfcHJpdmlsZWdlZF9jYWxsKHhjX2ludGVyZmFjZSAq eGNoLCBkb21pZF90IGRvbWFpbl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi b29sIGVuYWJsZSk7Ci0KK2ludCB4Y19tb25pdG9yX2RlYnVnX2V4Y2VwdGlvbnMoeGNfaW50ZXJm YWNlICp4Y2gsIGRvbWlkX3QgZG9tYWluX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBib29sIGVuYWJsZSwgYm9vbCBzeW5jKTsKIC8qKgogICogVGhpcyBmdW5jdGlvbiBlbmFi bGVzIC8gZGlzYWJsZXMgZW11bGF0aW9uIGZvciBlYWNoIFJFUCBmb3IgYQogICogUkVQLWNvbXBh dGlibGUgaW5zdHJ1Y3Rpb24uCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19tb25pdG9yLmMg Yi90b29scy9saWJ4Yy94Y19tb25pdG9yLmMKaW5kZXggMWU0YTlkMi4uYjBiZjcwOCAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGMveGNfbW9uaXRvci5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX21vbml0 b3IuYwpAQCAtMTcxLDYgKzE3MSwyMSBAQCBpbnQgeGNfbW9uaXRvcl9wcml2aWxlZ2VkX2NhbGwo eGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tYWluX2lkLAogICAgIHJldHVybiBkb19kb21j dGwoeGNoLCAmZG9tY3RsKTsKIH0KIAoraW50IHhjX21vbml0b3JfZGVidWdfZXhjZXB0aW9ucyh4 Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb21haW5faWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgZW5hYmxlLCBib29sIHN5bmMpCit7CisgICAgREVDTEFSRV9ET01D VEw7CisKKyAgICBkb21jdGwuY21kID0gWEVOX0RPTUNUTF9tb25pdG9yX29wOworICAgIGRvbWN0 bC5kb21haW4gPSBkb21haW5faWQ7CisgICAgZG9tY3RsLnUubW9uaXRvcl9vcC5vcCA9IGVuYWJs ZSA/IFhFTl9ET01DVExfTU9OSVRPUl9PUF9FTkFCTEUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogWEVOX0RPTUNUTF9NT05JVE9SX09QX0RJU0FCTEU7CisgICAgZG9tY3Rs LnUubW9uaXRvcl9vcC5ldmVudCA9IFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF9ERUJVR19FWENF UFRJT047CisgICAgZG9tY3RsLnUubW9uaXRvcl9vcC51LmRlYnVnX2V4Y2VwdGlvbi5zeW5jID0g c3luYzsKKworICAgIHJldHVybiBkb19kb21jdGwoeGNoLCAmZG9tY3RsKTsKK30KKwogLyoKICAq IExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3RzL3hl bi1hY2Nlc3MveGVuLWFjY2Vzcy5jIGIvdG9vbHMvdGVzdHMveGVuLWFjY2Vzcy94ZW4tYWNjZXNz LmMKaW5kZXggMWIyYjNmZC4uODY3OGNjZCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdHMveGVuLWFj Y2Vzcy94ZW4tYWNjZXNzLmMKKysrIGIvdG9vbHMvdGVzdHMveGVuLWFjY2Vzcy94ZW4tYWNjZXNz LmMKQEAgLTUyLDYgKzUyLDEwIEBACiAjZGVmaW5lIEVSUk9SKGEsIGIuLi4pIGZwcmludGYoc3Rk ZXJyLCBhICJcbiIsICMjIGIpCiAjZGVmaW5lIFBFUlJPUihhLCBiLi4uKSBmcHJpbnRmKHN0ZGVy ciwgYSAiOiAlc1xuIiwgIyMgYiwgc3RyZXJyb3IoZXJybm8pKQogCisvKiBGcm9tIHhlbi9pbmNs dWRlL2FzbS14ODYvcHJvY2Vzc29yLmggKi8KKyNkZWZpbmUgWDg2X1RSQVBfREVCVUcgIDEKKyNk ZWZpbmUgWDg2X1RSQVBfSU5UMyAgIDMKKwogdHlwZWRlZiBzdHJ1Y3Qgdm1fZXZlbnQgewogICAg IGRvbWlkX3QgZG9tYWluX2lkOwogICAgIHhlbmV2dGNobl9oYW5kbGUgKnhjZV9oYW5kbGU7CkBA IC0zMzIsNyArMzM2LDcgQEAgdm9pZCB1c2FnZShjaGFyKiBwcm9nbmFtZSkKIHsKICAgICBmcHJp bnRmKHN0ZGVyciwgIlVzYWdlOiAlcyBbLW1dIDxkb21haW5faWQ+IHdyaXRlfGV4ZWMiLCBwcm9n bmFtZSk7CiAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQotICAg ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJ8YnJlYWtwb2ludHxhbHRwMm1fd3JpdGV8YWx0cDJt X2V4ZWMiKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAifGJyZWFrcG9pbnR8YWx0cDJt X3dyaXRlfGFsdHAybV9leGVjfGRlYnVnIik7CiAjZWxpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRl ZmluZWQoX19hYXJjaDY0X18pCiAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInxwcml2Y2Fs bCIpOwogI2VuZGlmCkBAIC0zNTUsMTEgKzM1OSwxMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqYXJndltdKQogICAgIHhjX2ludGVyZmFjZSAqeGNoOwogICAgIHhlbm1lbV9hY2Nlc3NfdCBk ZWZhdWx0X2FjY2VzcyA9IFhFTk1FTV9hY2Nlc3Nfcnd4OwogICAgIHhlbm1lbV9hY2Nlc3NfdCBh ZnRlcl9maXJzdF9hY2Nlc3MgPSBYRU5NRU1fYWNjZXNzX3J3eDsKKyAgICBpbnQgbWVtYWNjZXNz ID0gMDsKICAgICBpbnQgcmVxdWlyZWQgPSAwOwogICAgIGludCBicmVha3BvaW50ID0gMDsKICAg ICBpbnQgc2h1dHRpbmdfZG93biA9IDA7CiAgICAgaW50IHByaXZjYWxsID0gMDsKICAgICBpbnQg YWx0cDJtID0gMDsKKyAgICBpbnQgZGVidWcgPSAwOwogICAgIHVpbnQxNl90IGFsdHAybV92aWV3 X2lkID0gMDsKIAogICAgIGNoYXIqIHByb2duYW1lID0gYXJndlswXTsKQEAgLTM5MywxMSArMzk5 LDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgewogICAgICAgICBk ZWZhdWx0X2FjY2VzcyA9IFhFTk1FTV9hY2Nlc3Nfcng7CiAgICAgICAgIGFmdGVyX2ZpcnN0X2Fj Y2VzcyA9IFhFTk1FTV9hY2Nlc3Nfcnd4OworICAgICAgICBtZW1hY2Nlc3MgPSAxOwogICAgIH0K ICAgICBlbHNlIGlmICggIXN0cmNtcChhcmd2WzBdLCAiZXhlYyIpICkKICAgICB7CiAgICAgICAg IGRlZmF1bHRfYWNjZXNzID0gWEVOTUVNX2FjY2Vzc19ydzsKICAgICAgICAgYWZ0ZXJfZmlyc3Rf YWNjZXNzID0gWEVOTUVNX2FjY2Vzc19yd3g7CisgICAgICAgIG1lbWFjY2VzcyA9IDE7CiAgICAg fQogI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKICAgICBlbHNl IGlmICggIXN0cmNtcChhcmd2WzBdLCAiYnJlYWtwb2ludCIpICkKQEAgLTQwOCwxMSArNDE2LDE3 IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgewogICAgICAgICBkZWZh dWx0X2FjY2VzcyA9IFhFTk1FTV9hY2Nlc3Nfcng7CiAgICAgICAgIGFsdHAybSA9IDE7CisgICAg ICAgIG1lbWFjY2VzcyA9IDE7CiAgICAgfQogICAgIGVsc2UgaWYgKCAhc3RyY21wKGFyZ3ZbMF0s ICJhbHRwMm1fZXhlYyIpICkKICAgICB7CiAgICAgICAgIGRlZmF1bHRfYWNjZXNzID0gWEVOTUVN X2FjY2Vzc19ydzsKICAgICAgICAgYWx0cDJtID0gMTsKKyAgICAgICAgbWVtYWNjZXNzID0gMTsK KyAgICB9CisgICAgZWxzZSBpZiAoICFzdHJjbXAoYXJndlswXSwgImRlYnVnIikgKQorICAgIHsK KyAgICAgICAgZGVidWcgPSAxOwogICAgIH0KICNlbGlmIGRlZmluZWQoX19hcm1fXykgfHwgZGVm aW5lZChfX2FhcmNoNjRfXykKICAgICBlbHNlIGlmICggIXN0cmNtcChhcmd2WzBdLCAicHJpdmNh bGwiKSApCkBAIC00NTMsNyArNDY3LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkKICAgICB9CiAKICAgICAvKiBXaXRoIGFsdHAybSB3ZSBqdXN0IGNyZWF0ZSBhIG5ldywgcmVz dHJpY3RlZCB2aWV3IG9mIHRoZSBtZW1vcnkgKi8KLSAgICBpZiAoIGFsdHAybSApCisgICAgaWYg KCBtZW1hY2Nlc3MgJiYgYWx0cDJtICkKICAgICB7CiAgICAgICAgIHhlbl9wZm5fdCBnZm4gPSAw OwogICAgICAgICB1bnNpZ25lZCBsb25nIHBlcm1fc2V0ID0gMDsKQEAgLTUwMCw3ICs1MTQsNyBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICB9CiAgICAgfQogCi0g ICAgaWYgKCAhYWx0cDJtICkKKyAgICBpZiAoIG1lbWFjY2VzcyAmJiAhYWx0cDJtICkKICAgICB7 CiAgICAgICAgIC8qIFNldCB0aGUgZGVmYXVsdCBhY2Nlc3MgdHlwZSBhbmQgY29udmVydCBhbGwg cGFnZXMgdG8gaXQgKi8KICAgICAgICAgcmMgPSB4Y19zZXRfbWVtX2FjY2Vzcyh4Y2gsIGRvbWFp bl9pZCwgZGVmYXVsdF9hY2Nlc3MsIH4wdWxsLCAwKTsKQEAgLTU0MSw2ICs1NTUsMTYgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgfQogICAgIH0KIAorICAgIGlm ICggZGVidWcgKQorICAgIHsKKyAgICAgICAgcmMgPSB4Y19tb25pdG9yX2RlYnVnX2V4Y2VwdGlv bnMoeGNoLCBkb21haW5faWQsIDEsIDEpOworICAgICAgICBpZiAoIHJjIDwgMCApCisgICAgICAg IHsKKyAgICAgICAgICAgIEVSUk9SKCJFcnJvciAlZCBzZXR0aW5nIGRlYnVnIGV4Y2VwdGlvbiBs aXN0ZW5lciB3aXRoIHZtX2V2ZW50XG4iLCByYyk7CisgICAgICAgICAgICBnb3RvIGV4aXQ7Cisg ICAgICAgIH0KKyAgICB9CisKICAgICAvKiBXYWl0IGZvciBhY2Nlc3MgKi8KICAgICBmb3IgKDs7 KQogICAgIHsKQEAgLTU1MSw5ICs1NzUsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSkKIAogICAgICAgICAgICAgaWYgKCBicmVha3BvaW50ICkKICAgICAgICAgICAgICAgICBy YyA9IHhjX21vbml0b3Jfc29mdHdhcmVfYnJlYWtwb2ludCh4Y2gsIGRvbWFpbl9pZCwgMCk7Ci0K ICAgICAgICAgICAgIGlmICggcHJpdmNhbGwgKQogICAgICAgICAgICAgICAgIHJjID0geGNfbW9u aXRvcl9wcml2aWxlZ2VkX2NhbGwoeGNoLCBkb21haW5faWQsIDApOworICAgICAgICAgICAgaWYg KCBkZWJ1ZyApCisgICAgICAgICAgICAgICAgcmMgPSB4Y19tb25pdG9yX2RlYnVnX2V4Y2VwdGlv bnMoeGNoLCBkb21haW5faWQsIDAsIDApOwogCiAgICAgICAgICAgICBpZiAoIGFsdHAybSApCiAg ICAgICAgICAgICB7CkBAIC02NjEsOSArNjg2LDEwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAgICAgICAgICAgICAgICAgICAgICAgIHJlcS52Y3B1X2lkKTsKIAogICAgICAg ICAgICAgICAgIC8qIFJlaW5qZWN0ICovCi0gICAgICAgICAgICAgICAgcmMgPSB4Y19odm1faW5q ZWN0X3RyYXAoCi0gICAgICAgICAgICAgICAgICAgIHhjaCwgZG9tYWluX2lkLCByZXEudmNwdV9p ZCwgMywKLSAgICAgICAgICAgICAgICAgICAgSFZNT1BfVFJBUF9zd19leGMsIC0xLCAwLCAwKTsK KyAgICAgICAgICAgICAgICByYyA9IHhjX2h2bV9pbmplY3RfdHJhcCh4Y2gsIGRvbWFpbl9pZCwg cmVxLnZjcHVfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWDg2 X1RSQVBfSU5UMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEu dS5zb2Z0d2FyZV9icmVha3BvaW50LnR5cGUsIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlcS51LnNvZnR3YXJlX2JyZWFrcG9pbnQuaW5zbl9sZW5ndGgsIDAp OwogICAgICAgICAgICAgICAgIGlmIChyYyA8IDApCiAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICBFUlJPUigiRXJyb3IgJWQgaW5qZWN0aW5nIGJyZWFrcG9pbnRcbiIsIHJj KTsKQEAgLTcxMSw2ICs3MzcsMjcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK ICAgICAgICAgICAgICAgICByc3AuZmxhZ3MgfD0gVk1fRVZFTlRfRkxBR19UT0dHTEVfU0lOR0xF U1RFUDsKIAogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBWTV9FVkVO VF9SRUFTT05fREVCVUdfRVhDRVBUSU9OOgorICAgICAgICAgICAgICAgIHByaW50ZigiRGVidWcg ZXhjZXB0aW9uOiByaXA9JTAxNiJQUkl4NjQiLCB2Y3B1ICVkLiBUeXBlOiAldS4gTGVuZ3RoOiAl dVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgcmVxLmRhdGEucmVncy54ODYucmlwLAorICAg ICAgICAgICAgICAgICAgICAgICByZXEudmNwdV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg cmVxLnUuZGVidWdfZXhjZXB0aW9uLnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgIHJlcS51 LmRlYnVnX2V4Y2VwdGlvbi5pbnNuX2xlbmd0aCk7CisKKyAgICAgICAgICAgICAgICAvKiBSZWlu amVjdCAqLworICAgICAgICAgICAgICAgIHJjID0geGNfaHZtX2luamVjdF90cmFwKHhjaCwgZG9t YWluX2lkLCByZXEudmNwdV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBYODZfVFJBUF9ERUJVRywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXEudS5kZWJ1Z19leGNlcHRpb24udHlwZSwgLTEsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVxLnUuZGVidWdfZXhjZXB0aW9uLmluc25fbGVuZ3RoLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcS5kYXRhLnJlZ3MueDg2 LmNyMik7CisgICAgICAgICAgICAgICAgaWYgKHJjIDwgMCkKKyAgICAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgICAgIEVSUk9SKCJFcnJvciAlZCBpbmplY3RpbmcgYnJlYWtwb2ludFxu IiwgcmMpOworICAgICAgICAgICAgICAgICAgICBpbnRlcnJ1cHRlZCA9IC0xOworICAgICAgICAg ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgZnByaW50Zihz dGRlcnIsICJVTktOT1dOIFJFQVNPTiBDT0RFICVkXG4iLCByZXEucmVhc29uKTsKICAgICAgICAg ICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vbW9uaXRvci5jIGIveGVuL2FyY2gv eDg2L2h2bS9tb25pdG9yLmMKaW5kZXggOGI0MWI1Ni4uNWUwNDBlZCAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2h2bS9tb25pdG9yLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9tb25pdG9yLmMK QEAgLTg4LDEyICs4OCwxNCBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2ZuX29mX3Jp cCh1bnNpZ25lZCBsb25nIHJpcCkKICAgICByZXR1cm4gcGFnaW5nX2d2YV90b19nZm4oY3Vyciwg c3JlZy5iYXNlICsgcmlwLCAmcGZlYyk7CiB9CiAKLWludCBodm1fbW9uaXRvcl9icmVha3BvaW50 KHVuc2lnbmVkIGxvbmcgcmlwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBodm1f bW9uaXRvcl9icmVha3BvaW50X3R5cGUgdHlwZSkKK2ludCBodm1fbW9uaXRvcl9kZWJ1Zyh1bnNp Z25lZCBsb25nIHJpcCwgZW51bSBodm1fbW9uaXRvcl9kZWJ1Z190eXBlIHR5cGUsCisgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB0cmFwX3R5cGUsIHVuc2lnbmVkIGxvbmcgaW5z bl9sZW5ndGgpCiB7CiAgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OwogICAgIHN0cnVj dCBhcmNoX2RvbWFpbiAqYWQgPSAmY3Vyci0+ZG9tYWluLT5hcmNoOwogICAgIHZtX2V2ZW50X3Jl cXVlc3RfdCByZXEgPSB7fTsKKyAgICBib29sX3Qgc3luYzsKKyAgICBpbnQgcmM7CiAKICAgICBz d2l0Y2ggKCB0eXBlICkKICAgICB7CkBAIC0xMDIsNiArMTA0LDkgQEAgaW50IGh2bV9tb25pdG9y X2JyZWFrcG9pbnQodW5zaWduZWQgbG9uZyByaXAsCiAgICAgICAgICAgICByZXR1cm4gMDsKICAg ICAgICAgcmVxLnJlYXNvbiA9IFZNX0VWRU5UX1JFQVNPTl9TT0ZUV0FSRV9CUkVBS1BPSU5UOwog ICAgICAgICByZXEudS5zb2Z0d2FyZV9icmVha3BvaW50LmdmbiA9IGdmbl9vZl9yaXAocmlwKTsK KyAgICAgICAgcmVxLnUuc29mdHdhcmVfYnJlYWtwb2ludC50eXBlID0gdHJhcF90eXBlOworICAg ICAgICByZXEudS5zb2Z0d2FyZV9icmVha3BvaW50Lmluc25fbGVuZ3RoID0gaW5zbl9sZW5ndGg7 CisgICAgICAgIHN5bmMgPSAxOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgSFZNX01PTklU T1JfU0lOR0xFU1RFUF9CUkVBS1BPSU5UOgpAQCAtMTA5LDYgKzExNCwxNyBAQCBpbnQgaHZtX21v bml0b3JfYnJlYWtwb2ludCh1bnNpZ25lZCBsb25nIHJpcCwKICAgICAgICAgICAgIHJldHVybiAw OwogICAgICAgICByZXEucmVhc29uID0gVk1fRVZFTlRfUkVBU09OX1NJTkdMRVNURVA7CiAgICAg ICAgIHJlcS51LnNpbmdsZXN0ZXAuZ2ZuID0gZ2ZuX29mX3JpcChyaXApOworICAgICAgICBzeW5j ID0gMTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEhWTV9NT05JVE9SX0RFQlVHX0VYQ0VQ VElPTjoKKyAgICAgICAgaWYgKCAhYWQtPm1vbml0b3IuZGVidWdfZXhjZXB0aW9uX2VuYWJsZWQg KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJlcS5yZWFzb24gPSBWTV9FVkVOVF9S RUFTT05fREVCVUdfRVhDRVBUSU9OOworICAgICAgICByZXEudS5kZWJ1Z19leGNlcHRpb24uZ2Zu ID0gZ2ZuX29mX3JpcChyaXApOworICAgICAgICByZXEudS5kZWJ1Z19leGNlcHRpb24udHlwZSA9 IHRyYXBfdHlwZTsKKyAgICAgICAgcmVxLnUuZGVidWdfZXhjZXB0aW9uLmluc25fbGVuZ3RoID0g aW5zbl9sZW5ndGg7CisgICAgICAgIHN5bmMgPSAhIWFkLT5tb25pdG9yLmRlYnVnX2V4Y2VwdGlv bl9zeW5jOwogICAgICAgICBicmVhazsKIAogICAgIGRlZmF1bHQ6CkBAIC0xMTcsNyArMTMzLDEx IEBAIGludCBodm1fbW9uaXRvcl9icmVha3BvaW50KHVuc2lnbmVkIGxvbmcgcmlwLAogCiAgICAg cmVxLnZjcHVfaWQgPSBjdXJyLT52Y3B1X2lkOwogCi0gICAgcmV0dXJuIHZtX2V2ZW50X21vbml0 b3JfdHJhcHMoY3VyciwgMSwgJnJlcSk7CisgICAgcmMgPSB2bV9ldmVudF9tb25pdG9yX3RyYXBz KGN1cnIsIHN5bmMsICZyZXEpOworICAgIGlmICggdHlwZSA9PSBIVk1fTU9OSVRPUl9ERUJVR19F WENFUFRJT04gJiYgcmMgPT0gMSAmJiAhc3luYyApCisgICAgICAgIHJjID0gMDsKKworICAgIHJl dHVybiByYzsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5j IGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKaW5kZXggMDgxYWVmMS4uY2VhMDc2MSAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKKysrIGIveGVuL2FyY2gveDg2L2h2 bS92bXgvdm14LmMKQEAgLTMzNzcsOSArMzM3NywyNSBAQCB2b2lkIHZteF92bWV4aXRfaGFuZGxl cihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgICAgIEhWTVRSQUNFXzFEKFRS QVBfREVCVUcsIGV4aXRfcXVhbGlmaWNhdGlvbik7CiAgICAgICAgICAgICB3cml0ZV9kZWJ1Z3Jl Zyg2LCBleGl0X3F1YWxpZmljYXRpb24gfCBEUl9TVEFUVVNfUkVTRVJWRURfT05FKTsKICAgICAg ICAgICAgIGlmICggIXYtPmRvbWFpbi0+ZGVidWdnZXJfYXR0YWNoZWQgKQotICAgICAgICAgICAg ICAgIHZteF9wcm9wYWdhdGVfaW50cihpbnRyX2luZm8pOworICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgaW5zbl9sZW5ndGggPSAwOworICAgICAgICAgICAgICAg IGludCBoYW5kbGVkOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdHJhcF90eXBlID0g TUFTS19FWFRSKGludHJfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJTlRSX0lORk9fSU5UUl9UWVBFX01BU0spOworCisgICAgICAgICAg ICAgICAgaWYoIHRyYXBfdHlwZSA+PSBYODZfRVZFTlRUWVBFX1NXX0lOVEVSUlVQVCApCisgICAg ICAgICAgICAgICAgICAgIF9fdm1yZWFkKFZNX0VYSVRfSU5TVFJVQ1RJT05fTEVOLCAmaW5zbl9s ZW5ndGgpOworCisgICAgICAgICAgICAgICAgaGFuZGxlZCA9IGh2bV9tb25pdG9yX2RlYnVnKHJl Z3MtPmVpcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFZN X01PTklUT1JfREVCVUdfRVhDRVBUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0cmFwX3R5cGUsIGluc25fbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBp ZiAoIGhhbmRsZWQgPD0gMCApCisgICAgICAgICAgICAgICAgICAgIHZteF9wcm9wYWdhdGVfaW50 cihpbnRyX2luZm8pOworCisgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg ICAgICAgICAgZG9tYWluX3BhdXNlX2Zvcl9kZWJ1Z2dlcigpOworCiAgICAgICAgICAgICBicmVh azsKICAgICAgICAgY2FzZSBUUkFQX2ludDM6IAogICAgICAgICB7CkBAIC0zMzkzLDggKzM0MDks OSBAQCB2b2lkIHZteF92bWV4aXRfaGFuZGxlcihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykK ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGludCBo YW5kbGVkID0KLSAgICAgICAgICAgICAgICAgICAgaHZtX21vbml0b3JfYnJlYWtwb2ludChyZWdz LT5laXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFZNX01P TklUT1JfU09GVFdBUkVfQlJFQUtQT0lOVCk7CisgICAgICAgICAgICAgICAgICAgICAgICBodm1f bW9uaXRvcl9kZWJ1ZyhyZWdzLT5laXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBIVk1fTU9OSVRPUl9TT0ZUV0FSRV9CUkVBS1BPSU5ULAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWDg2X0VWRU5UVFlQRV9TV19FWENFUFRJT04s IDEpOwogCiAgICAgICAgICAgICAgICAgaWYgKCBoYW5kbGVkIDwgMCApIAogICAgICAgICAgICAg ICAgIHsKQEAgLTM3MjEsOCArMzczOCw3IEBAIHZvaWQgdm14X3ZtZXhpdF9oYW5kbGVyKHN0cnVj dCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICB2bXhfdXBkYXRlX2NwdV9leGVjX2NvbnRy b2wodik7CiAgICAgICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS5zaW5nbGVfc3RlcCApCiAgICAg ICAgIHsKLSAgICAgICAgICAgIGh2bV9tb25pdG9yX2JyZWFrcG9pbnQocmVncy0+ZWlwLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVk1fTU9OSVRPUl9TSU5HTEVTVEVQX0JS RUFLUE9JTlQpOworICAgICAgICAgICAgaHZtX21vbml0b3JfZGVidWcocmVncy0+ZWlwLCBIVk1f TU9OSVRPUl9TSU5HTEVTVEVQX0JSRUFLUE9JTlQsIDAsIDApOwogICAgICAgICAgICAgaWYgKCB2 LT5kb21haW4tPmRlYnVnZ2VyX2F0dGFjaGVkICkKICAgICAgICAgICAgICAgICBkb21haW5fcGF1 c2VfZm9yX2RlYnVnZ2VyKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9t b25pdG9yLmMgYi94ZW4vYXJjaC94ODYvbW9uaXRvci5jCmluZGV4IDYyMWY5MWEuLmU4Yjc5ZjYg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tb25pdG9yLmMKKysrIGIveGVuL2FyY2gveDg2L21v bml0b3IuYwpAQCAtMTI0LDYgKzEyNCwyMiBAQCBpbnQgYXJjaF9tb25pdG9yX2RvbWN0bF9ldmVu dChzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFhF Tl9ET01DVExfTU9OSVRPUl9FVkVOVF9ERUJVR19FWENFUFRJT046CisgICAgeworICAgICAgICBi b29sX3Qgb2xkX3N0YXR1cyA9IGFkLT5tb25pdG9yLmRlYnVnX2V4Y2VwdGlvbl9lbmFibGVkOwor CisgICAgICAgIGlmICggdW5saWtlbHkob2xkX3N0YXR1cyA9PSByZXF1ZXN0ZWRfc3RhdHVzKSAp CisgICAgICAgICAgICByZXR1cm4gLUVFWElTVDsKKworICAgICAgICBkb21haW5fcGF1c2UoZCk7 CisgICAgICAgIGFkLT5tb25pdG9yLmRlYnVnX2V4Y2VwdGlvbl9lbmFibGVkID0gcmVxdWVzdGVk X3N0YXR1czsKKyAgICAgICAgYWQtPm1vbml0b3IuZGVidWdfZXhjZXB0aW9uX3N5bmMgPSByZXF1 ZXN0ZWRfc3RhdHVzID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbW9wLT51LmRlYnVnX2V4Y2VwdGlvbi5zeW5jIDoKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMDsKKyAgICAgICAgZG9tYWluX3VucGF1c2UoZCk7CisgICAg ICAgIGJyZWFrOworICAgIH0KKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8qCiAgICAgICAgICAq IFNob3VsZCBub3QgYmUgcmVhY2hlZCB1bmxlc3MgYXJjaF9tb25pdG9yX2dldF9jYXBhYmlsaXRp ZXMoKSBpcwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCBiL3hlbi9p bmNsdWRlL2FzbS14ODYvZG9tYWluLmgKaW5kZXggMTY1ZTUzMy4uMWNmOTdjMyAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2 L2RvbWFpbi5oCkBAIC00MDUsNiArNDA1LDggQEAgc3RydWN0IGFyY2hfZG9tYWluCiAgICAgICAg IHVuc2lnbmVkIGludCBtb3ZfdG9fbXNyX2V4dGVuZGVkICAgICAgICAgOiAxOwogICAgICAgICB1 bnNpZ25lZCBpbnQgc2luZ2xlc3RlcF9lbmFibGVkICAgICAgICAgIDogMTsKICAgICAgICAgdW5z aWduZWQgaW50IHNvZnR3YXJlX2JyZWFrcG9pbnRfZW5hYmxlZCA6IDE7CisgICAgICAgIHVuc2ln bmVkIGludCBkZWJ1Z19leGNlcHRpb25fZW5hYmxlZCAgICAgOiAxOworICAgICAgICB1bnNpZ25l ZCBpbnQgZGVidWdfZXhjZXB0aW9uX3N5bmMgICAgICAgIDogMTsKICAgICB9IG1vbml0b3I7CiAK ICAgICAvKiBNZW1fYWNjZXNzIGVtdWxhdGlvbiBjb250cm9sICovCmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9hc20teDg2L2h2bS9tb25pdG9yLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9t b25pdG9yLmgKaW5kZXggNTVkNDM1ZS4uOGIwZjExOSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9odm0vbW9uaXRvci5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL21vbml0 b3IuaApAQCAtMjMsMTAgKzIzLDExIEBACiAjaW5jbHVkZSA8eGVuL3BhZ2luZy5oPgogI2luY2x1 ZGUgPHB1YmxpYy92bV9ldmVudC5oPgogCi1lbnVtIGh2bV9tb25pdG9yX2JyZWFrcG9pbnRfdHlw ZQorZW51bSBodm1fbW9uaXRvcl9kZWJ1Z190eXBlCiB7CiAgICAgSFZNX01PTklUT1JfU09GVFdB UkVfQlJFQUtQT0lOVCwKICAgICBIVk1fTU9OSVRPUl9TSU5HTEVTVEVQX0JSRUFLUE9JTlQsCisg ICAgSFZNX01PTklUT1JfREVCVUdfRVhDRVBUSU9OLAogfTsKIAogLyoKQEAgLTM5LDggKzQwLDgg QEAgYm9vbF90IGh2bV9tb25pdG9yX2NyKHVuc2lnbmVkIGludCBpbmRleCwgdW5zaWduZWQgbG9u ZyB2YWx1ZSwKICNkZWZpbmUgaHZtX21vbml0b3JfY3JYKGNyLCBuZXcsIG9sZCkgXAogICAgICAg ICAgICAgICAgICAgICAgICAgaHZtX21vbml0b3JfY3IoVk1fRVZFTlRfWDg2XyMjY3IsIG5ldywg b2xkKQogdm9pZCBodm1fbW9uaXRvcl9tc3IodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgdmFs dWUpOwotaW50IGh2bV9tb25pdG9yX2JyZWFrcG9pbnQodW5zaWduZWQgbG9uZyByaXAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGh2bV9tb25pdG9yX2JyZWFrcG9pbnRfdHlwZSB0 eXBlKTsKK2ludCBodm1fbW9uaXRvcl9kZWJ1Zyh1bnNpZ25lZCBsb25nIHJpcCwgZW51bSBodm1f bW9uaXRvcl9kZWJ1Z190eXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyB0cmFwX3R5cGUsIHVuc2lnbmVkIGxvbmcgaW5zbl9sZW5ndGgpOwogCiAjZW5kaWYgLyog X19BU01fWDg2X0hWTV9NT05JVE9SX0hfXyAqLwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9h c20teDg2L21vbml0b3IuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW9uaXRvci5oCmluZGV4IDBm ZWU3NTAuLjc0YTA4ZjBmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L21vbml0b3Iu aAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L21vbml0b3IuaApAQCAtNzQsNyArNzQsOCBAQCBz dGF0aWMgaW5saW5lIHVpbnQzMl90IGFyY2hfbW9uaXRvcl9nZXRfY2FwYWJpbGl0aWVzKHN0cnVj dCBkb21haW4gKmQpCiAgICAgY2FwYWJpbGl0aWVzID0gKDFVIDw8IFhFTl9ET01DVExfTU9OSVRP Ul9FVkVOVF9XUklURV9DVFJMUkVHKSB8CiAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTl9E T01DVExfTU9OSVRPUl9FVkVOVF9NT1ZfVE9fTVNSKSB8CiAgICAgICAgICAgICAgICAgICAgKDFV IDw8IFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF9TT0ZUV0FSRV9CUkVBS1BPSU5UKSB8Ci0gICAg ICAgICAgICAgICAgICAgKDFVIDw8IFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF9HVUVTVF9SRVFV RVNUKTsKKyAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5U X0dVRVNUX1JFUVVFU1QpIHwKKyAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVOX0RPTUNUTF9N T05JVE9SX0VWRU5UX0RFQlVHX0VYQ0VQVElPTik7CiAKICAgICAvKiBTaW5jZSB3ZSBrbm93IHRo aXMgaXMgb24gVk1YLCB3ZSBjYW4ganVzdCBjYWxsIHRoZSBodm0gZnVuYyAqLwogICAgIGlmICgg aHZtX2lzX3NpbmdsZXN0ZXBfc3VwcG9ydGVkKCkgKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv cHVibGljL2RvbWN0bC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCmluZGV4IDM1YWRj ZTIuLmI2OWIxYmIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaAorKysg Yi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKQEAgLTEwODEsNiArMTA4MSw3IEBAIERFRklO RV9YRU5fR1VFU1RfSEFORExFKHhlbl9kb21jdGxfcHNyX2NtdF9vcF90KTsKICNkZWZpbmUgWEVO X0RPTUNUTF9NT05JVE9SX0VWRU5UX1NPRlRXQVJFX0JSRUFLUE9JTlQgICAzCiAjZGVmaW5lIFhF Tl9ET01DVExfTU9OSVRPUl9FVkVOVF9HVUVTVF9SRVFVRVNUICAgICAgICAgNAogI2RlZmluZSBY RU5fRE9NQ1RMX01PTklUT1JfRVZFTlRfUFJJVklMRUdFRF9DQUxMICAgICAgIDUKKyNkZWZpbmUg WEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX0RFQlVHX0VYQ0VQVElPTiAgICAgICA2CiAKIHN0cnVj dCB4ZW5fZG9tY3RsX21vbml0b3Jfb3AgewogICAgIHVpbnQzMl90IG9wOyAvKiBYRU5fRE9NQ1RM X01PTklUT1JfT1BfKiAqLwpAQCAtMTExNiw2ICsxMTE3LDExIEBAIHN0cnVjdCB4ZW5fZG9tY3Rs X21vbml0b3Jfb3AgewogICAgICAgICAgICAgLyogUGF1c2UgdkNQVSB1bnRpbCByZXNwb25zZSAq LwogICAgICAgICAgICAgdWludDhfdCBzeW5jOwogICAgICAgICB9IGd1ZXN0X3JlcXVlc3Q7CisK KyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIC8qIFBhdXNlIHZDUFUgdW50aWwgcmVzcG9u c2UgKi8KKyAgICAgICAgICAgIHVpbnQ4X3Qgc3luYzsKKyAgICAgICAgfSBkZWJ1Z19leGNlcHRp b247CiAgICAgfSB1OwogfTsKIHR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfbW9uaXRvcl9vcCB4 ZW5fZG9tY3RsX21vbml0b3Jfb3BfdDsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy92 bV9ldmVudC5oIGIveGVuL2luY2x1ZGUvcHVibGljL3ZtX2V2ZW50LmgKaW5kZXggNmZmN2NjMC4u MTM4NTViNSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL3ZtX2V2ZW50LmgKKysrIGIv eGVuL2luY2x1ZGUvcHVibGljL3ZtX2V2ZW50LmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1 ZGUgInhlbi5oIgogCi0jZGVmaW5lIFZNX0VWRU5UX0lOVEVSRkFDRV9WRVJTSU9OIDB4MDAwMDAw MDEKKyNkZWZpbmUgVk1fRVZFTlRfSU5URVJGQUNFX1ZFUlNJT04gMHgwMDAwMDAwMgogCiAjaWYg ZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAKQEAgLTEyMSw2ICsx MjEsOCBAQAogI2RlZmluZSBWTV9FVkVOVF9SRUFTT05fR1VFU1RfUkVRVUVTVCAgICAgICAgICAg OAogLyogUHJpdmlsZWdlZCBjYWxsIGV4ZWN1dGVkIChlLmcuIFNNQykgKi8KICNkZWZpbmUgVk1f RVZFTlRfUkVBU09OX1BSSVZJTEVHRURfQ0FMTCAgICAgICAgIDkKKy8qIEEgZGVidWcgZXhjZXB0 aW9uIHdhcyBjYXVnaHQgKi8KKyNkZWZpbmUgVk1fRVZFTlRfUkVBU09OX0RFQlVHX0VYQ0VQVElP TiAgICAgICAgIDEwCiAKIC8qIFN1cHBvcnRlZCB2YWx1ZXMgZm9yIHRoZSB2bV9ldmVudF93cml0 ZV9jdHJscmVnIGluZGV4LiAqLwogI2RlZmluZSBWTV9FVkVOVF9YODZfQ1IwICAgIDAKQEAgLTI1 OCw4ICsyNjAsMTUgQEAgc3RydWN0IHZtX2V2ZW50X3dyaXRlX2N0cmxyZWcgewogICAgIHVpbnQ2 NF90IG9sZF92YWx1ZTsKIH07CiAKK3N0cnVjdCB2bV9ldmVudF9zaW5nbGVzdGVwIHsKKyAgICB1 aW50NjRfdCBnZm47Cit9OworCiBzdHJ1Y3Qgdm1fZXZlbnRfZGVidWcgewogICAgIHVpbnQ2NF90 IGdmbjsKKyAgICB1aW50OF90IHR5cGU7ICAgICAgICAvKiBIVk1PUF9UUkFQXyogKi8KKyAgICB1 aW50OF90IGluc25fbGVuZ3RoOworICAgIHVpbnQ4X3QgX3BhZFs2XTsKIH07CiAKIHN0cnVjdCB2 bV9ldmVudF9tb3ZfdG9fbXNyIHsKQEAgLTMwMyw3ICszMTIsOCBAQCB0eXBlZGVmIHN0cnVjdCB2 bV9ldmVudF9zdCB7CiAgICAgICAgIHN0cnVjdCB2bV9ldmVudF93cml0ZV9jdHJscmVnICAgICAg ICAgd3JpdGVfY3RybHJlZzsKICAgICAgICAgc3RydWN0IHZtX2V2ZW50X21vdl90b19tc3IgICAg ICAgICAgICBtb3ZfdG9fbXNyOwogICAgICAgICBzdHJ1Y3Qgdm1fZXZlbnRfZGVidWcgICAgICAg ICAgICAgICAgIHNvZnR3YXJlX2JyZWFrcG9pbnQ7Ci0gICAgICAgIHN0cnVjdCB2bV9ldmVudF9k ZWJ1ZyAgICAgICAgICAgICAgICAgc2luZ2xlc3RlcDsKKyAgICAgICAgc3RydWN0IHZtX2V2ZW50 X3NpbmdsZXN0ZXAgICAgICAgICAgICBzaW5nbGVzdGVwOworICAgICAgICBzdHJ1Y3Qgdm1fZXZl bnRfZGVidWcgICAgICAgICAgICAgICAgIGRlYnVnX2V4Y2VwdGlvbjsKICAgICB9IHU7CiAKICAg ICB1bmlvbiB7Ci0tIAoyLjguMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==