From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 04/24] x86/emul: Rename hvm_trap to x86_event and move it into the emulation infrastructure Date: Wed, 30 Nov 2016 13:50:21 +0000 Message-ID: <1480513841-7565-5-git-send-email-andrew.cooper3@citrix.com> References: <1480513841-7565-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1480513841-7565-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org VGhlIHg4NiBlbXVsYXRvciBuZWVkcyB0byBnYWluIGFuIHVuZGVyc3RhbmRpbmcgb2YgaW50ZXJy dXB0cyBhbmQgZXhjZXB0aW9ucwpnZW5lcmF0ZWQgYnkgaXRzIGFjdGlvbnMuICBUaGUgbmFtaW5n IGNob2ljZSBpcyB0byBtYXRjaCBib3RoIHRoZSBJbnRlbCBhbmQKQU1EIHRlcm1zLCBhbmQgdG8g YXZvaWQgJ3RyYXAnIHNwZWNpZmljYWxseSBhcyBpdCBoYXMgYW4gYXJjaGl0ZWN0dXJhbCBtZWFu aW5nCmRpZmZlcmVudCB0byBpdHMgY3VycmVudCB1c2FnZS4KCldoaWxlIG1ha2luZyB0aGlzIGNo YW5nZSwgbWFrZSBvdGhlciBjaGFuZ2VzIGZvciBjb25zaXN0ZW5jeQoKICogUmVuYW1lICpfdHJh cCgpIGluZnJhc3RydWN0dXJlIHRvICpfZXZlbnQoKQogKiBSZW5hbWUgdHJhcG5yL3RyYXAgcGFy YW1ldGVycyB0byB2ZWN0b3IKICogQ29udmVydCBodm1faW5qZWN0X2h3X2V4Y2VwdGlvbigpIGFu ZCBodm1faW5qZWN0X3BhZ2VfZmF1bHQoKSB0byBiZWluZwogICBzdGF0aWMgaW5saW5lcywgYXMg dGhleSBhcmUgb25seSB0aGluIHdyYXBwZXJzIGFyb3VuZCBodm1faW5qZWN0X2V2ZW50KCkKCk5v IGZ1bmN0aW9uYWwgY2hhbmdlLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJy YW50QGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJv dnNreUBvcmFjbGUuY29tPgpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRl bC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQog eGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgICAgICAgICAgICAgIHwgIDYgKy0tCiB4ZW4vYXJj aC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgICAgICAgfCAzMyArKysrLS0tLS0tLS0tLS0tCiB4 ZW4vYXJjaC94ODYvaHZtL2lvLmMgICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gv eDg2L2h2bS9zdm0vbmVzdGVkc3ZtLmMgICAgICAgIHwgIDcgKystLQogeGVuL2FyY2gveDg2L2h2 bS9zdm0vc3ZtLmMgICAgICAgICAgICAgIHwgNjIgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jICAgICAgICAgICAgICB8IDY2ICsrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYyAgICAg ICAgICAgICB8IDExICsrKy0tLQogeGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRl LmMgIHwgMTEgKysrKysrCiB4ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaCAg fCAyMiArKysrKysrKysrKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZW11bGF0ZS5oICAgICAg IHwgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oICAgICAgICAgICB8IDY5ICsr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0v c3ZtL25lc3RlZHN2bS5oIHwgIDYgKy0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92Y3B1Lmgg ICAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3Z2bXguaCAgICAg IHwgIDQgKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDE1OSBpbnNlcnRpb25zKCspLCAxNDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgYi94ZW4vYXJj aC94ODYvaHZtL2VtdWxhdGUuYwppbmRleCAzZWZlZWFkLi5iYjI2ZDQwIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUu YwpAQCAtMTY3OSw3ICsxNjc5LDcgQEAgc3RhdGljIGludCBodm1lbXVsX2ludmxwZygKICAgICAg ICAgICogdmlvbGF0aW9ucywgc28gc3F1YXNoIHRoZW0uCiAgICAgICAgICAqLwogICAgICAgICBo dm1lbXVsX2N0eHQtPmV4bl9wZW5kaW5nID0gMDsKLSAgICAgICAgaHZtZW11bF9jdHh0LT50cmFw ID0gKHN0cnVjdCBodm1fdHJhcCl7fTsKKyAgICAgICAgaHZtZW11bF9jdHh0LT50cmFwID0gKHN0 cnVjdCB4ODZfZXZlbnQpe307CiAgICAgICAgIHJjID0gWDg2RU1VTF9PS0FZOwogICAgIH0KIApA QCAtMTg2OSw3ICsxODY5LDcgQEAgaW50IGh2bV9lbXVsYXRlX29uZV9tbWlvKHVuc2lnbmVkIGxv bmcgbWZuLCB1bnNpZ25lZCBsb25nIGdsYSkKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBYODZF TVVMX0VYQ0VQVElPTjoKICAgICAgICAgaWYgKCBjdHh0LmV4bl9wZW5kaW5nICkKLSAgICAgICAg ICAgIGh2bV9pbmplY3RfdHJhcCgmY3R4dC50cmFwKTsKKyAgICAgICAgICAgIGh2bV9pbmplY3Rf ZXZlbnQoJmN0eHQudHJhcCk7CiAgICAgICAgIC8qIGZhbGx0aHJvdWdoICovCiAgICAgZGVmYXVs dDoKICAgICAgICAgaHZtX2VtdWxhdGVfd3JpdGViYWNrKCZjdHh0KTsKQEAgLTE5MjksNyArMTky OSw3IEBAIHZvaWQgaHZtX2VtdWxhdGVfb25lX3ZtX2V2ZW50KGVudW0gZW11bF9raW5kIGtpbmQs IHVuc2lnbmVkIGludCB0cmFwbnIsCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgWDg2RU1VTF9F WENFUFRJT046CiAgICAgICAgIGlmICggY3R4LmV4bl9wZW5kaW5nICkKLSAgICAgICAgICAgIGh2 bV9pbmplY3RfdHJhcCgmY3R4LnRyYXApOworICAgICAgICAgICAgaHZtX2luamVjdF9ldmVudCgm Y3R4LnRyYXApOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDI1ZGM3NTkuLjdi NDM0YWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS9odm0uYwpAQCAtNTM1LDcgKzUzNSw3IEBAIHZvaWQgaHZtX2RvX3Jlc3VtZShzdHJ1 Y3QgdmNwdSAqdikKICAgICAvKiBJbmplY3QgcGVuZGluZyBody9zdyB0cmFwICovCiAgICAgaWYg KCB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLnZlY3RvciAhPSAtMSApCiAgICAgewotICAg ICAgICBodm1faW5qZWN0X3RyYXAoJnYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X3RyYXApOworICAg ICAgICBodm1faW5qZWN0X2V2ZW50KCZ2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwKTsKICAg ICAgICAgdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfdHJhcC52ZWN0b3IgPSAtMTsKICAgICB9CiB9 CkBAIC0xNjc2LDE5ICsxNjc2LDE5IEBAIHZvaWQgaHZtX3RyaXBsZV9mYXVsdCh2b2lkKQogICAg IGRvbWFpbl9zaHV0ZG93bihkLCByZWFzb24pOwogfQogCi12b2lkIGh2bV9pbmplY3RfdHJhcChj b25zdCBzdHJ1Y3QgaHZtX3RyYXAgKnRyYXApCit2b2lkIGh2bV9pbmplY3RfZXZlbnQoY29uc3Qg c3RydWN0IHg4Nl9ldmVudCAqZXZlbnQpCiB7CiAgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJy ZW50OwogCiAgICAgaWYgKCBuZXN0ZWRodm1fZW5hYmxlZChjdXJyLT5kb21haW4pICYmCiAgICAg ICAgICAhbmVzdGVkaHZtX3Ztc3dpdGNoX2luX3Byb2dyZXNzKGN1cnIpICYmCiAgICAgICAgICBu ZXN0ZWRodm1fdmNwdV9pbl9ndWVzdG1vZGUoY3VycikgJiYKLSAgICAgICAgIG5odm1fdm1jeF9n dWVzdF9pbnRlcmNlcHRzX3RyYXAoCi0gICAgICAgICAgICAgY3VyciwgdHJhcC0+dmVjdG9yLCB0 cmFwLT5lcnJvcl9jb2RlKSApCisgICAgICAgICBuaHZtX3ZtY3hfZ3Vlc3RfaW50ZXJjZXB0c19l dmVudCgKKyAgICAgICAgICAgICBjdXJyLCBldmVudC0+dmVjdG9yLCBldmVudC0+ZXJyb3JfY29k ZSkgKQogICAgIHsKICAgICAgICAgZW51bSBuZXN0ZWRodm1fdm1leGl0cyBuc3JldDsKIAotICAg ICAgICBuc3JldCA9IG5odm1fdmNwdV92bWV4aXRfdHJhcChjdXJyLCB0cmFwKTsKKyAgICAgICAg bnNyZXQgPSBuaHZtX3ZjcHVfdm1leGl0X2V2ZW50KGN1cnIsIGV2ZW50KTsKIAogICAgICAgICBz d2l0Y2ggKCBuc3JldCApCiAgICAgICAgIHsKQEAgLTE3MDQsMjYgKzE3MDQsNyBAQCB2b2lkIGh2 bV9pbmplY3RfdHJhcChjb25zdCBzdHJ1Y3QgaHZtX3RyYXAgKnRyYXApCiAgICAgICAgIH0KICAg ICB9CiAKLSAgICBodm1fZnVuY3MuaW5qZWN0X3RyYXAodHJhcCk7Ci19Ci0KLXZvaWQgaHZtX2lu amVjdF9od19leGNlcHRpb24odW5zaWduZWQgaW50IHRyYXBuciwgaW50IGVycmNvZGUpCi17Ci0g ICAgc3RydWN0IGh2bV90cmFwIHRyYXAgPSB7Ci0gICAgICAgIC52ZWN0b3IgPSB0cmFwbnIsCi0g ICAgICAgIC50eXBlID0gWDg2X0VWRU5UVFlQRV9IV19FWENFUFRJT04sCi0gICAgICAgIC5lcnJv cl9jb2RlID0gZXJyY29kZSB9OwotICAgIGh2bV9pbmplY3RfdHJhcCgmdHJhcCk7Ci19Ci0KLXZv aWQgaHZtX2luamVjdF9wYWdlX2ZhdWx0KGludCBlcnJjb2RlLCB1bnNpZ25lZCBsb25nIGNyMikK LXsKLSAgICBzdHJ1Y3QgaHZtX3RyYXAgdHJhcCA9IHsKLSAgICAgICAgLnZlY3RvciA9IFRSQVBf cGFnZV9mYXVsdCwKLSAgICAgICAgLnR5cGUgPSBYODZfRVZFTlRUWVBFX0hXX0VYQ0VQVElPTiwK LSAgICAgICAgLmVycm9yX2NvZGUgPSBlcnJjb2RlLAotICAgICAgICAuY3IyID0gY3IyIH07Ci0g ICAgaHZtX2luamVjdF90cmFwKCZ0cmFwKTsKKyAgICBodm1fZnVuY3MuaW5qZWN0X2V2ZW50KGV2 ZW50KTsKIH0KIAogaW50IGh2bV9oYXBfbmVzdGVkX3BhZ2VfZmF1bHQocGFkZHJfdCBncGEsIHVu c2lnbmVkIGxvbmcgZ2xhLApAQCAtNDA5Niw3ICs0MDc3LDcgQEAgdm9pZCBodm1fdWRfaW50ZXJj ZXB0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICBicmVhazsKICAgICBjYXNl IFg4NkVNVUxfRVhDRVBUSU9OOgogICAgICAgICBpZiAoIGN0eHQuZXhuX3BlbmRpbmcgKQotICAg ICAgICAgICAgaHZtX2luamVjdF90cmFwKCZjdHh0LnRyYXApOworICAgICAgICAgICAgaHZtX2lu amVjdF9ldmVudCgmY3R4dC50cmFwKTsKICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCiAgICAg ZGVmYXVsdDoKICAgICAgICAgaHZtX2VtdWxhdGVfd3JpdGViYWNrKCZjdHh0KTsKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vaW8uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaW8uYwppbmRleCA3 MzA1ODAxLi4xMjc5ZjY4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lvLmMKKysrIGIv eGVuL2FyY2gveDg2L2h2bS9pby5jCkBAIC0xMDMsNyArMTAzLDcgQEAgaW50IGhhbmRsZV9tbWlv KHZvaWQpCiAgICAgICAgIHJldHVybiAwOwogICAgIGNhc2UgWDg2RU1VTF9FWENFUFRJT046CiAg ICAgICAgIGlmICggY3R4dC5leG5fcGVuZGluZyApCi0gICAgICAgICAgICBodm1faW5qZWN0X3Ry YXAoJmN0eHQudHJhcCk7CisgICAgICAgICAgICBodm1faW5qZWN0X2V2ZW50KCZjdHh0LnRyYXAp OwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL25lc3RlZHN2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9z dm0vbmVzdGVkc3ZtLmMKaW5kZXggZjliMzhhYi4uYjZiODUyNiAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS9zdm0vbmVzdGVkc3ZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vbmVz dGVkc3ZtLmMKQEAgLTgyMSw3ICs4MjEsNyBAQCBuc3ZtX3ZjcHVfdm1leGl0X2luamVjdChzdHJ1 Y3QgdmNwdSAqdiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCiB9CiAKIGludAotbnN2bV92 Y3B1X3ZtZXhpdF90cmFwKHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBzdHJ1Y3QgaHZtX3RyYXAgKnRy YXApCituc3ZtX3ZjcHVfdm1leGl0X2V2ZW50KHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBzdHJ1Y3Qg eDg2X2V2ZW50ICp0cmFwKQogewogICAgIEFTU0VSVCh2Y3B1X25lc3RlZGh2bSh2KS5udl92dm1j eCAhPSBOVUxMKTsKIApAQCAtOTk0LDEwICs5OTQsMTEgQEAgbnN2bV92bWNiX2d1ZXN0X2ludGVy Y2VwdHNfZXhpdGNvZGUoc3RydWN0IHZjcHUgKnYsCiB9CiAKIGJvb2xfdAotbnN2bV92bWNiX2d1 ZXN0X2ludGVyY2VwdHNfdHJhcChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHRyYXBuciwg aW50IGVycmNvZGUpCituc3ZtX3ZtY2JfZ3Vlc3RfaW50ZXJjZXB0c19ldmVudCgKKyAgICBzdHJ1 Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHZlY3RvciwgaW50IGVycmNvZGUpCiB7CiAgICAgcmV0 dXJuIG5zdm1fdm1jYl9ndWVzdF9pbnRlcmNlcHRzX2V4aXRjb2RlKHYsCi0gICAgICAgIGd1ZXN0 X2NwdV91c2VyX3JlZ3MoKSwgVk1FWElUX0VYQ0VQVElPTl9ERSArIHRyYXBucik7CisgICAgICAg IGd1ZXN0X2NwdV91c2VyX3JlZ3MoKSwgVk1FWElUX0VYQ0VQVElPTl9ERSArIHZlY3Rvcik7CiB9 CiAKIHN0YXRpYyBpbnQKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jIGIv eGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKaW5kZXggMzdiZDZjNC4uY2FhYjVjZSAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9z dm0vc3ZtLmMKQEAgLTEyMDMsMTUgKzEyMDMsMTUgQEAgc3RhdGljIHZvaWQgc3ZtX3ZjcHVfZGVz dHJveShzdHJ1Y3QgdmNwdSAqdikKICAgICBwYXNzaXZlX2RvbWFpbl9kZXN0cm95KHYpOwogfQog Ci1zdGF0aWMgdm9pZCBzdm1faW5qZWN0X3RyYXAoY29uc3Qgc3RydWN0IGh2bV90cmFwICp0cmFw KQorc3RhdGljIHZvaWQgc3ZtX2luamVjdF9ldmVudChjb25zdCBzdHJ1Y3QgeDg2X2V2ZW50ICpl dmVudCkKIHsKICAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7CiAgICAgc3RydWN0IHZt Y2Jfc3RydWN0ICp2bWNiID0gY3Vyci0+YXJjaC5odm1fc3ZtLnZtY2I7Ci0gICAgZXZlbnRpbmpf dCBldmVudCA9IHZtY2ItPmV2ZW50aW5qOwotICAgIHN0cnVjdCBodm1fdHJhcCBfdHJhcCA9ICp0 cmFwOworICAgIGV2ZW50aW5qX3QgZXZlbnRpbmogPSB2bWNiLT5ldmVudGluajsKKyAgICBzdHJ1 Y3QgeDg2X2V2ZW50IF9ldmVudCA9ICpldmVudDsKICAgICBjb25zdCBzdHJ1Y3QgY3B1X3VzZXJf cmVncyAqcmVncyA9IGd1ZXN0X2NwdV91c2VyX3JlZ3MoKTsKIAotICAgIHN3aXRjaCAoIF90cmFw LnZlY3RvciApCisgICAgc3dpdGNoICggX2V2ZW50LnZlY3RvciApCiAgICAgewogICAgIGNhc2Ug VFJBUF9kZWJ1ZzoKICAgICAgICAgaWYgKCByZWdzLT5lZmxhZ3MgJiBYODZfRUZMQUdTX1RGICkK QEAgLTEyMjksMjEgKzEyMjksMjEgQEAgc3RhdGljIHZvaWQgc3ZtX2luamVjdF90cmFwKGNvbnN0 IHN0cnVjdCBodm1fdHJhcCAqdHJhcCkKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICggdW5s aWtlbHkoZXZlbnQuZmllbGRzLnYpICYmCi0gICAgICAgICAoZXZlbnQuZmllbGRzLnR5cGUgPT0g WDg2X0VWRU5UVFlQRV9IV19FWENFUFRJT04pICkKKyAgICBpZiAoIHVubGlrZWx5KGV2ZW50aW5q LmZpZWxkcy52KSAmJgorICAgICAgICAgKGV2ZW50aW5qLmZpZWxkcy50eXBlID09IFg4Nl9FVkVO VFRZUEVfSFdfRVhDRVBUSU9OKSApCiAgICAgewotICAgICAgICBfdHJhcC52ZWN0b3IgPSBodm1f Y29tYmluZV9od19leGNlcHRpb25zKAotICAgICAgICAgICAgZXZlbnQuZmllbGRzLnZlY3Rvciwg X3RyYXAudmVjdG9yKTsKLSAgICAgICAgaWYgKCBfdHJhcC52ZWN0b3IgPT0gVFJBUF9kb3VibGVf ZmF1bHQgKQotICAgICAgICAgICAgX3RyYXAuZXJyb3JfY29kZSA9IDA7CisgICAgICAgIF9ldmVu dC52ZWN0b3IgPSBodm1fY29tYmluZV9od19leGNlcHRpb25zKAorICAgICAgICAgICAgZXZlbnRp bmouZmllbGRzLnZlY3RvciwgX2V2ZW50LnZlY3Rvcik7CisgICAgICAgIGlmICggX2V2ZW50LnZl Y3RvciA9PSBUUkFQX2RvdWJsZV9mYXVsdCApCisgICAgICAgICAgICBfZXZlbnQuZXJyb3JfY29k ZSA9IDA7CiAgICAgfQogCi0gICAgZXZlbnQuYnl0ZXMgPSAwOwotICAgIGV2ZW50LmZpZWxkcy52 ID0gMTsKLSAgICBldmVudC5maWVsZHMudmVjdG9yID0gX3RyYXAudmVjdG9yOworICAgIGV2ZW50 aW5qLmJ5dGVzID0gMDsKKyAgICBldmVudGluai5maWVsZHMudiA9IDE7CisgICAgZXZlbnRpbmou ZmllbGRzLnZlY3RvciA9IF9ldmVudC52ZWN0b3I7CiAKICAgICAvKiBSZWZlciB0byBBTUQgVm9s IDI6IFN5c3RlbSBQcm9ncmFtbWluZywgMTUuMjAgRXZlbnQgSW5qZWN0aW9uLiAqLwotICAgIHN3 aXRjaCAoIF90cmFwLnR5cGUgKQorICAgIHN3aXRjaCAoIF9ldmVudC50eXBlICkKICAgICB7CiAg ICAgY2FzZSBYODZfRVZFTlRUWVBFX1NXX0lOVEVSUlVQVDogLyogaW50ICRuICovCiAgICAgICAg IC8qCkBAIC0xMjUzLDggKzEyNTMsOCBAQCBzdGF0aWMgdm9pZCBzdm1faW5qZWN0X3RyYXAoY29u c3Qgc3RydWN0IGh2bV90cmFwICp0cmFwKQogICAgICAgICAgKiBtb3ZlZCBlaXAgZm9yd2FyZCBp ZiBhcHByb3ByaWF0ZS4KICAgICAgICAgICovCiAgICAgICAgIGlmICggY3B1X2hhc19zdm1fbnJp cHMgKQotICAgICAgICAgICAgdm1jYi0+bmV4dHJpcCA9IHJlZ3MtPmVpcCArIF90cmFwLmluc25f bGVuOwotICAgICAgICBldmVudC5maWVsZHMudHlwZSA9IFg4Nl9FVkVOVFRZUEVfU1dfSU5URVJS VVBUOworICAgICAgICAgICAgdm1jYi0+bmV4dHJpcCA9IHJlZ3MtPmVpcCArIF9ldmVudC5pbnNu X2xlbjsKKyAgICAgICAgZXZlbnRpbmouZmllbGRzLnR5cGUgPSBYODZfRVZFTlRUWVBFX1NXX0lO VEVSUlVQVDsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFg4Nl9FVkVOVFRZUEVfUFJJX1NX X0VYQ0VQVElPTjogLyogaWNlYnAgKi8KQEAgLTEyNjUsNyArMTI2NSw3IEBAIHN0YXRpYyB2b2lk IHN2bV9pbmplY3RfdHJhcChjb25zdCBzdHJ1Y3QgaHZtX3RyYXAgKnRyYXApCiAgICAgICAgICAq LwogICAgICAgICBpZiAoIGNwdV9oYXNfc3ZtX25yaXBzICkKICAgICAgICAgICAgIHZtY2ItPm5l eHRyaXAgPSByZWdzLT5laXA7Ci0gICAgICAgIGV2ZW50LmZpZWxkcy50eXBlID0gWDg2X0VWRU5U VFlQRV9IV19FWENFUFRJT047CisgICAgICAgIGV2ZW50aW5qLmZpZWxkcy50eXBlID0gWDg2X0VW RU5UVFlQRV9IV19FWENFUFRJT047CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBYODZfRVZF TlRUWVBFX1NXX0VYQ0VQVElPTjogLyogaW50MywgaW50byAqLwpAQCAtMTI3OSwyOCArMTI3OSwy OCBAQCBzdGF0aWMgdm9pZCBzdm1faW5qZWN0X3RyYXAoY29uc3Qgc3RydWN0IGh2bV90cmFwICp0 cmFwKQogICAgICAgICAgKiB0aGUgY29ycmVjdCBmYXVsdGluZyBlaXAgc2hvdWxkIGEgZmF1bHQg b2NjdXIuCiAgICAgICAgICAqLwogICAgICAgICBpZiAoIGNwdV9oYXNfc3ZtX25yaXBzICkKLSAg ICAgICAgICAgIHZtY2ItPm5leHRyaXAgPSByZWdzLT5laXAgKyBfdHJhcC5pbnNuX2xlbjsKLSAg ICAgICAgZXZlbnQuZmllbGRzLnR5cGUgPSBYODZfRVZFTlRUWVBFX0hXX0VYQ0VQVElPTjsKKyAg ICAgICAgICAgIHZtY2ItPm5leHRyaXAgPSByZWdzLT5laXAgKyBfZXZlbnQuaW5zbl9sZW47Cisg ICAgICAgIGV2ZW50aW5qLmZpZWxkcy50eXBlID0gWDg2X0VWRU5UVFlQRV9IV19FWENFUFRJT047 CiAgICAgICAgIGJyZWFrOwogCiAgICAgZGVmYXVsdDoKLSAgICAgICAgZXZlbnQuZmllbGRzLnR5 cGUgPSBYODZfRVZFTlRUWVBFX0hXX0VYQ0VQVElPTjsKLSAgICAgICAgZXZlbnQuZmllbGRzLmV2 ID0gKF90cmFwLmVycm9yX2NvZGUgIT0gSFZNX0RFTElWRVJfTk9fRVJST1JfQ09ERSk7Ci0gICAg ICAgIGV2ZW50LmZpZWxkcy5lcnJvcmNvZGUgPSBfdHJhcC5lcnJvcl9jb2RlOworICAgICAgICBl dmVudGluai5maWVsZHMudHlwZSA9IFg4Nl9FVkVOVFRZUEVfSFdfRVhDRVBUSU9OOworICAgICAg ICBldmVudGluai5maWVsZHMuZXYgPSAoX2V2ZW50LmVycm9yX2NvZGUgIT0gSFZNX0RFTElWRVJf Tk9fRVJST1JfQ09ERSk7CisgICAgICAgIGV2ZW50aW5qLmZpZWxkcy5lcnJvcmNvZGUgPSBfZXZl bnQuZXJyb3JfY29kZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgdm1jYi0+ZXZlbnRp bmogPSBldmVudDsKKyAgICB2bWNiLT5ldmVudGluaiA9IGV2ZW50aW5qOwogCi0gICAgaWYgKCBf dHJhcC52ZWN0b3IgPT0gVFJBUF9wYWdlX2ZhdWx0ICkKKyAgICBpZiAoIF9ldmVudC52ZWN0b3Ig PT0gVFJBUF9wYWdlX2ZhdWx0ICkKICAgICB7Ci0gICAgICAgIGN1cnItPmFyY2guaHZtX3ZjcHUu Z3Vlc3RfY3JbMl0gPSBfdHJhcC5jcjI7Ci0gICAgICAgIHZtY2Jfc2V0X2NyMih2bWNiLCBfdHJh cC5jcjIpOwotICAgICAgICBIVk1UUkFDRV9MT05HXzJEKFBGX0lOSkVDVCwgX3RyYXAuZXJyb3Jf Y29kZSwgVFJDX1BBUl9MT05HKF90cmFwLmNyMikpOworICAgICAgICBjdXJyLT5hcmNoLmh2bV92 Y3B1Lmd1ZXN0X2NyWzJdID0gX2V2ZW50LmNyMjsKKyAgICAgICAgdm1jYl9zZXRfY3IyKHZtY2Is IF9ldmVudC5jcjIpOworICAgICAgICBIVk1UUkFDRV9MT05HXzJEKFBGX0lOSkVDVCwgX2V2ZW50 LmVycm9yX2NvZGUsIFRSQ19QQVJfTE9ORyhfZXZlbnQuY3IyKSk7CiAgICAgfQogICAgIGVsc2UK ICAgICB7Ci0gICAgICAgIEhWTVRSQUNFXzJEKElOSl9FWEMsIF90cmFwLnZlY3RvciwgX3RyYXAu ZXJyb3JfY29kZSk7CisgICAgICAgIEhWTVRSQUNFXzJEKElOSl9FWEMsIF9ldmVudC52ZWN0b3Is IF9ldmVudC5lcnJvcl9jb2RlKTsKICAgICB9CiB9CiAKQEAgLTIyMzgsNyArMjIzOCw3IEBAIHN0 YXRpYyBzdHJ1Y3QgaHZtX2Z1bmN0aW9uX3RhYmxlIF9faW5pdGRhdGEgc3ZtX2Z1bmN0aW9uX3Rh YmxlID0gewogICAgIC5zZXRfZ3Vlc3RfcGF0ICAgICAgICA9IHN2bV9zZXRfZ3Vlc3RfcGF0LAog ICAgIC5nZXRfZ3Vlc3RfcGF0ICAgICAgICA9IHN2bV9nZXRfZ3Vlc3RfcGF0LAogICAgIC5zZXRf dHNjX29mZnNldCAgICAgICA9IHN2bV9zZXRfdHNjX29mZnNldCwKLSAgICAuaW5qZWN0X3RyYXAg ICAgICAgICAgPSBzdm1faW5qZWN0X3RyYXAsCisgICAgLmluamVjdF9ldmVudCAgICAgICAgID0g c3ZtX2luamVjdF9ldmVudCwKICAgICAuaW5pdF9oeXBlcmNhbGxfcGFnZSAgPSBzdm1faW5pdF9o eXBlcmNhbGxfcGFnZSwKICAgICAuZXZlbnRfcGVuZGluZyAgICAgICAgPSBzdm1fZXZlbnRfcGVu ZGluZywKICAgICAuaW52bHBnICAgICAgICAgICAgICAgPSBzdm1faW52bHBnLApAQCAtMjI1Myw5 ICsyMjUzLDkgQEAgc3RhdGljIHN0cnVjdCBodm1fZnVuY3Rpb25fdGFibGUgX19pbml0ZGF0YSBz dm1fZnVuY3Rpb25fdGFibGUgPSB7CiAgICAgLm5odm1fdmNwdV9pbml0aWFsaXNlID0gbnN2bV92 Y3B1X2luaXRpYWxpc2UsCiAgICAgLm5odm1fdmNwdV9kZXN0cm95ID0gbnN2bV92Y3B1X2Rlc3Ry b3ksCiAgICAgLm5odm1fdmNwdV9yZXNldCA9IG5zdm1fdmNwdV9yZXNldCwKLSAgICAubmh2bV92 Y3B1X3ZtZXhpdF90cmFwID0gbnN2bV92Y3B1X3ZtZXhpdF90cmFwLAorICAgIC5uaHZtX3ZjcHVf dm1leGl0X2V2ZW50ID0gbnN2bV92Y3B1X3ZtZXhpdF9ldmVudCwKICAgICAubmh2bV92Y3B1X3Ay bV9iYXNlID0gbnN2bV92Y3B1X2hvc3RjcjMsCi0gICAgLm5odm1fdm1jeF9ndWVzdF9pbnRlcmNl cHRzX3RyYXAgPSBuc3ZtX3ZtY2JfZ3Vlc3RfaW50ZXJjZXB0c190cmFwLAorICAgIC5uaHZtX3Zt Y3hfZ3Vlc3RfaW50ZXJjZXB0c19ldmVudCA9IG5zdm1fdm1jYl9ndWVzdF9pbnRlcmNlcHRzX2V2 ZW50LAogICAgIC5uaHZtX3ZtY3hfaGFwX2VuYWJsZWQgPSBuc3ZtX3ZtY2JfaGFwX2VuYWJsZWQs CiAgICAgLm5odm1faW50cl9ibG9ja2VkID0gbnN2bV9pbnRyX2Jsb2NrZWQsCiAgICAgLm5odm1f aGFwX3dhbGtfTDFfcDJtID0gbnN2bV9oYXBfd2Fsa19MMV9wMm0sCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCmluZGV4 IDdiMmM1MGMuLmVkOWI2OWIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5j CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCkBAIC0xNjIzLDkgKzE2MjMsOSBAQCB2 b2lkIG52bXhfZW5xdWV1ZV9uMl9leGNlcHRpb25zKHN0cnVjdCB2Y3B1ICp2LAogICAgICAgICAg ICAgICAgICBudm14LT5pbnRyLmludHJfaW5mbywgbnZteC0+aW50ci5lcnJvcl9jb2RlKTsKIH0K IAotc3RhdGljIGludCBudm14X3ZtZXhpdF90cmFwKHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBzdHJ1 Y3QgaHZtX3RyYXAgKnRyYXApCitzdGF0aWMgaW50IG52bXhfdm1leGl0X2V2ZW50KHN0cnVjdCB2 Y3B1ICp2LCBjb25zdCBzdHJ1Y3QgeDg2X2V2ZW50ICpldmVudCkKIHsKLSAgICBudm14X2VucXVl dWVfbjJfZXhjZXB0aW9ucyh2LCB0cmFwLT52ZWN0b3IsIHRyYXAtPmVycm9yX2NvZGUsCisgICAg bnZteF9lbnF1ZXVlX24yX2V4Y2VwdGlvbnModiwgZXZlbnQtPnZlY3RvciwgZXZlbnQtPmVycm9y X2NvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHZtX2ludHNyY19ub25lKTsK ICAgICByZXR1cm4gTkVTVEVESFZNX1ZNRVhJVF9ET05FOwogfQpAQCAtMTcwNywxMyArMTcwNywx MyBAQCB2b2lkIHZteF9pbmplY3Rfbm1pKHZvaWQpCiAgKiAgLSAjREIgaXMgWDg2X0VWRU5UVFlQ RV9IV19FWENFUFRJT04sIGV4Y2VwdCB3aGVuIGdlbmVyYXRlZCBieQogICogICAgb3Bjb2RlIDB4 ZjEgKHdoaWNoIGlzIFg4Nl9FVkVOVFRZUEVfUFJJX1NXX0VYQ0VQVElPTikKICAqLwotc3RhdGlj IHZvaWQgdm14X2luamVjdF90cmFwKGNvbnN0IHN0cnVjdCBodm1fdHJhcCAqdHJhcCkKK3N0YXRp YyB2b2lkIHZteF9pbmplY3RfZXZlbnQoY29uc3Qgc3RydWN0IHg4Nl9ldmVudCAqZXZlbnQpCiB7 CiAgICAgdW5zaWduZWQgbG9uZyBpbnRyX2luZm87CiAgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBj dXJyZW50OwotICAgIHN0cnVjdCBodm1fdHJhcCBfdHJhcCA9ICp0cmFwOworICAgIHN0cnVjdCB4 ODZfZXZlbnQgX2V2ZW50ID0gKmV2ZW50OwogCi0gICAgc3dpdGNoICggX3RyYXAudmVjdG9yIHwg LShfdHJhcC50eXBlID09IFg4Nl9FVkVOVFRZUEVfU1dfSU5URVJSVVBUKSApCisgICAgc3dpdGNo ICggX2V2ZW50LnZlY3RvciB8IC0oX2V2ZW50LnR5cGUgPT0gWDg2X0VWRU5UVFlQRV9TV19JTlRF UlJVUFQpICkKICAgICB7CiAgICAgY2FzZSBUUkFQX2RlYnVnOgogICAgICAgICBpZiAoIGd1ZXN0 X2NwdV91c2VyX3JlZ3MoKS0+ZWZsYWdzICYgWDg2X0VGTEFHU19URiApCkBAIC0xNzIyLDcgKzE3 MjIsNyBAQCBzdGF0aWMgdm9pZCB2bXhfaW5qZWN0X3RyYXAoY29uc3Qgc3RydWN0IGh2bV90cmFw ICp0cmFwKQogICAgICAgICAgICAgd3JpdGVfZGVidWdyZWcoNiwgcmVhZF9kZWJ1Z3JlZyg2KSB8 IERSX1NURVApOwogICAgICAgICB9CiAgICAgICAgIGlmICggIW5lc3RlZGh2bV92Y3B1X2luX2d1 ZXN0bW9kZShjdXJyKSB8fAotICAgICAgICAgICAgICFudm14X2ludGVyY2VwdHNfZXhjZXB0aW9u KGN1cnIsIFRSQVBfZGVidWcsIF90cmFwLmVycm9yX2NvZGUpICkKKyAgICAgICAgICAgICAhbnZt eF9pbnRlcmNlcHRzX2V4Y2VwdGlvbihjdXJyLCBUUkFQX2RlYnVnLCBfZXZlbnQuZXJyb3JfY29k ZSkgKQogICAgICAgICB7CiAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHZhbDsKIApAQCAtMTc0 NCw4ICsxNzQ0LDggQEAgc3RhdGljIHZvaWQgdm14X2luamVjdF90cmFwKGNvbnN0IHN0cnVjdCBo dm1fdHJhcCAqdHJhcCkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFRSQVBfcGFnZV9mYXVs dDoKLSAgICAgICAgQVNTRVJUKF90cmFwLnR5cGUgPT0gWDg2X0VWRU5UVFlQRV9IV19FWENFUFRJ T04pOwotICAgICAgICBjdXJyLT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzJdID0gX3RyYXAuY3Iy OworICAgICAgICBBU1NFUlQoX2V2ZW50LnR5cGUgPT0gWDg2X0VWRU5UVFlQRV9IV19FWENFUFRJ T04pOworICAgICAgICBjdXJyLT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzJdID0gX2V2ZW50LmNy MjsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC0xNzU4LDM0ICsxNzU4LDM0IEBAIHN0YXRp YyB2b2lkIHZteF9pbmplY3RfdHJhcChjb25zdCBzdHJ1Y3QgaHZtX3RyYXAgKnRyYXApCiAgICAg ICAgICAoTUFTS19FWFRSKGludHJfaW5mbywgSU5UUl9JTkZPX0lOVFJfVFlQRV9NQVNLKSA9PQog ICAgICAgICAgIFg4Nl9FVkVOVFRZUEVfSFdfRVhDRVBUSU9OKSApCiAgICAgewotICAgICAgICBf dHJhcC52ZWN0b3IgPSBodm1fY29tYmluZV9od19leGNlcHRpb25zKAotICAgICAgICAgICAgKHVp bnQ4X3QpaW50cl9pbmZvLCBfdHJhcC52ZWN0b3IpOwotICAgICAgICBpZiAoIF90cmFwLnZlY3Rv ciA9PSBUUkFQX2RvdWJsZV9mYXVsdCApCi0gICAgICAgICAgICBfdHJhcC5lcnJvcl9jb2RlID0g MDsKKyAgICAgICAgX2V2ZW50LnZlY3RvciA9IGh2bV9jb21iaW5lX2h3X2V4Y2VwdGlvbnMoCisg ICAgICAgICAgICAodWludDhfdClpbnRyX2luZm8sIF9ldmVudC52ZWN0b3IpOworICAgICAgICBp ZiAoIF9ldmVudC52ZWN0b3IgPT0gVFJBUF9kb3VibGVfZmF1bHQgKQorICAgICAgICAgICAgX2V2 ZW50LmVycm9yX2NvZGUgPSAwOwogICAgIH0KIAotICAgIGlmICggX3RyYXAudHlwZSA+PSBYODZf RVZFTlRUWVBFX1NXX0lOVEVSUlVQVCApCi0gICAgICAgIF9fdm13cml0ZShWTV9FTlRSWV9JTlNU UlVDVElPTl9MRU4sIF90cmFwLmluc25fbGVuKTsKKyAgICBpZiAoIF9ldmVudC50eXBlID49IFg4 Nl9FVkVOVFRZUEVfU1dfSU5URVJSVVBUICkKKyAgICAgICAgX192bXdyaXRlKFZNX0VOVFJZX0lO U1RSVUNUSU9OX0xFTiwgX2V2ZW50Lmluc25fbGVuKTsKIAogICAgIGlmICggbmVzdGVkaHZtX3Zj cHVfaW5fZ3Vlc3Rtb2RlKGN1cnIpICYmCi0gICAgICAgICBudm14X2ludGVyY2VwdHNfZXhjZXB0 aW9uKGN1cnIsIF90cmFwLnZlY3RvciwgX3RyYXAuZXJyb3JfY29kZSkgKQorICAgICAgICAgbnZt eF9pbnRlcmNlcHRzX2V4Y2VwdGlvbihjdXJyLCBfZXZlbnQudmVjdG9yLCBfZXZlbnQuZXJyb3Jf Y29kZSkgKQogICAgIHsKICAgICAgICAgbnZteF9lbnF1ZXVlX24yX2V4Y2VwdGlvbnMgKGN1cnIs IAogICAgICAgICAgICAgSU5UUl9JTkZPX1ZBTElEX01BU0sgfAotICAgICAgICAgICAgTUFTS19J TlNSKF90cmFwLnR5cGUsIElOVFJfSU5GT19JTlRSX1RZUEVfTUFTSykgfAotICAgICAgICAgICAg TUFTS19JTlNSKF90cmFwLnZlY3RvciwgSU5UUl9JTkZPX1ZFQ1RPUl9NQVNLKSwKLSAgICAgICAg ICAgIF90cmFwLmVycm9yX2NvZGUsIGh2bV9pbnRzcmNfbm9uZSk7CisgICAgICAgICAgICBNQVNL X0lOU1IoX2V2ZW50LnR5cGUsIElOVFJfSU5GT19JTlRSX1RZUEVfTUFTSykgfAorICAgICAgICAg ICAgTUFTS19JTlNSKF9ldmVudC52ZWN0b3IsIElOVFJfSU5GT19WRUNUT1JfTUFTSyksCisgICAg ICAgICAgICBfZXZlbnQuZXJyb3JfY29kZSwgaHZtX2ludHNyY19ub25lKTsKICAgICAgICAgcmV0 dXJuOwogICAgIH0KICAgICBlbHNlCi0gICAgICAgIF9fdm14X2luamVjdF9leGNlcHRpb24oX3Ry YXAudmVjdG9yLCBfdHJhcC50eXBlLCBfdHJhcC5lcnJvcl9jb2RlKTsKKyAgICAgICAgX192bXhf aW5qZWN0X2V4Y2VwdGlvbihfZXZlbnQudmVjdG9yLCBfZXZlbnQudHlwZSwgX2V2ZW50LmVycm9y X2NvZGUpOwogCi0gICAgaWYgKCAoX3RyYXAudmVjdG9yID09IFRSQVBfcGFnZV9mYXVsdCkgJiYK LSAgICAgICAgIChfdHJhcC50eXBlID09IFg4Nl9FVkVOVFRZUEVfSFdfRVhDRVBUSU9OKSApCi0g ICAgICAgIEhWTVRSQUNFX0xPTkdfMkQoUEZfSU5KRUNULCBfdHJhcC5lcnJvcl9jb2RlLAorICAg IGlmICggKF9ldmVudC52ZWN0b3IgPT0gVFJBUF9wYWdlX2ZhdWx0KSAmJgorICAgICAgICAgKF9l dmVudC50eXBlID09IFg4Nl9FVkVOVFRZUEVfSFdfRVhDRVBUSU9OKSApCisgICAgICAgIEhWTVRS QUNFX0xPTkdfMkQoUEZfSU5KRUNULCBfZXZlbnQuZXJyb3JfY29kZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICBUUkNfUEFSX0xPTkcoY3Vyci0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclsyXSkp OwogICAgIGVsc2UKLSAgICAgICAgSFZNVFJBQ0VfMkQoSU5KX0VYQywgX3RyYXAudmVjdG9yLCBf dHJhcC5lcnJvcl9jb2RlKTsKKyAgICAgICAgSFZNVFJBQ0VfMkQoSU5KX0VYQywgX2V2ZW50LnZl Y3RvciwgX2V2ZW50LmVycm9yX2NvZGUpOwogfQogCiBzdGF0aWMgaW50IHZteF9ldmVudF9wZW5k aW5nKHN0cnVjdCB2Y3B1ICp2KQpAQCAtMjE2Miw3ICsyMTYyLDcgQEAgc3RhdGljIHN0cnVjdCBo dm1fZnVuY3Rpb25fdGFibGUgX19pbml0ZGF0YSB2bXhfZnVuY3Rpb25fdGFibGUgPSB7CiAgICAg LnNldF9ndWVzdF9wYXQgICAgICAgID0gdm14X3NldF9ndWVzdF9wYXQsCiAgICAgLmdldF9ndWVz dF9wYXQgICAgICAgID0gdm14X2dldF9ndWVzdF9wYXQsCiAgICAgLnNldF90c2Nfb2Zmc2V0ICAg ICAgID0gdm14X3NldF90c2Nfb2Zmc2V0LAotICAgIC5pbmplY3RfdHJhcCAgICAgICAgICA9IHZt eF9pbmplY3RfdHJhcCwKKyAgICAuaW5qZWN0X2V2ZW50ICAgICAgICAgPSB2bXhfaW5qZWN0X2V2 ZW50LAogICAgIC5pbml0X2h5cGVyY2FsbF9wYWdlICA9IHZteF9pbml0X2h5cGVyY2FsbF9wYWdl LAogICAgIC5ldmVudF9wZW5kaW5nICAgICAgICA9IHZteF9ldmVudF9wZW5kaW5nLAogICAgIC5p bnZscGcgICAgICAgICAgICAgICA9IHZteF9pbnZscGcsCkBAIC0yMTgyLDggKzIxODIsOCBAQCBz dGF0aWMgc3RydWN0IGh2bV9mdW5jdGlvbl90YWJsZSBfX2luaXRkYXRhIHZteF9mdW5jdGlvbl90 YWJsZSA9IHsKICAgICAubmh2bV92Y3B1X3Jlc2V0ICAgICAgPSBudm14X3ZjcHVfcmVzZXQsCiAg ICAgLm5odm1fdmNwdV9wMm1fYmFzZSAgID0gbnZteF92Y3B1X2VwdHBfYmFzZSwKICAgICAubmh2 bV92bWN4X2hhcF9lbmFibGVkID0gbnZteF9lcHRfZW5hYmxlZCwKLSAgICAubmh2bV92bWN4X2d1 ZXN0X2ludGVyY2VwdHNfdHJhcCA9IG52bXhfaW50ZXJjZXB0c19leGNlcHRpb24sCi0gICAgLm5o dm1fdmNwdV92bWV4aXRfdHJhcCA9IG52bXhfdm1leGl0X3RyYXAsCisgICAgLm5odm1fdm1jeF9n dWVzdF9pbnRlcmNlcHRzX2V2ZW50ID0gbnZteF9pbnRlcmNlcHRzX2V4Y2VwdGlvbiwKKyAgICAu bmh2bV92Y3B1X3ZtZXhpdF9ldmVudCA9IG52bXhfdm1leGl0X2V2ZW50LAogICAgIC5uaHZtX2lu dHJfYmxvY2tlZCAgICA9IG52bXhfaW50cl9ibG9ja2VkLAogICAgIC5uaHZtX2RvbWFpbl9yZWxp bnF1aXNoX3Jlc291cmNlcyA9IG52bXhfZG9tYWluX3JlbGlucXVpc2hfcmVzb3VyY2VzLAogICAg IC51cGRhdGVfZW9pX2V4aXRfYml0bWFwID0gdm14X3VwZGF0ZV9lb2lfZXhpdF9iaXRtYXAsCkBA IC0zMjAxLDcgKzMyMDEsNyBAQCBzdGF0aWMgaW50IHZteF9oYW5kbGVfZW9pX3dyaXRlKHZvaWQp CiAgKi8KIHN0YXRpYyB2b2lkIHZteF9wcm9wYWdhdGVfaW50cih1bnNpZ25lZCBsb25nIGludHIp CiB7Ci0gICAgc3RydWN0IGh2bV90cmFwIHRyYXAgPSB7CisgICAgc3RydWN0IHg4Nl9ldmVudCBl dmVudCA9IHsKICAgICAgICAgLnZlY3RvciA9IE1BU0tfRVhUUihpbnRyLCBJTlRSX0lORk9fVkVD VE9SX01BU0spLAogICAgICAgICAudHlwZSA9IE1BU0tfRVhUUihpbnRyLCBJTlRSX0lORk9fSU5U Ul9UWVBFX01BU0spLAogICAgIH07CkBAIC0zMjEwLDIwICszMjEwLDIwIEBAIHN0YXRpYyB2b2lk IHZteF9wcm9wYWdhdGVfaW50cih1bnNpZ25lZCBsb25nIGludHIpCiAgICAgaWYgKCBpbnRyICYg SU5UUl9JTkZPX0RFTElWRVJfQ09ERV9NQVNLICkKICAgICB7CiAgICAgICAgIF9fdm1yZWFkKFZN X0VYSVRfSU5UUl9FUlJPUl9DT0RFLCAmdG1wKTsKLSAgICAgICAgdHJhcC5lcnJvcl9jb2RlID0g dG1wOworICAgICAgICBldmVudC5lcnJvcl9jb2RlID0gdG1wOwogICAgIH0KICAgICBlbHNlCi0g ICAgICAgIHRyYXAuZXJyb3JfY29kZSA9IEhWTV9ERUxJVkVSX05PX0VSUk9SX0NPREU7CisgICAg ICAgIGV2ZW50LmVycm9yX2NvZGUgPSBIVk1fREVMSVZFUl9OT19FUlJPUl9DT0RFOwogCi0gICAg aWYgKCB0cmFwLnR5cGUgPj0gWDg2X0VWRU5UVFlQRV9TV19JTlRFUlJVUFQgKQorICAgIGlmICgg ZXZlbnQudHlwZSA+PSBYODZfRVZFTlRUWVBFX1NXX0lOVEVSUlVQVCApCiAgICAgewogICAgICAg ICBfX3ZtcmVhZChWTV9FWElUX0lOU1RSVUNUSU9OX0xFTiwgJnRtcCk7Ci0gICAgICAgIHRyYXAu aW5zbl9sZW4gPSB0bXA7CisgICAgICAgIGV2ZW50Lmluc25fbGVuID0gdG1wOwogICAgIH0KICAg ICBlbHNlCi0gICAgICAgIHRyYXAuaW5zbl9sZW4gPSAwOworICAgICAgICBldmVudC5pbnNuX2xl biA9IDA7CiAKLSAgICBodm1faW5qZWN0X3RyYXAoJnRyYXApOworICAgIGh2bV9pbmplY3RfZXZl bnQoJmV2ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgdm14X2lkdHZfcmVpbmplY3QodW5zaWduZWQg bG9uZyBpZHR2X2luZm8pCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMg Yi94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMKaW5kZXggYmVkMmUwYS4uYjU4MzdkNCAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9o dm0vdm14L3Z2bXguYwpAQCAtNDkxLDE4ICs0OTEsMTkgQEAgc3RhdGljIHZvaWQgdm1yZXR1cm4o c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGVudW0gdm14X29wc19yZXN1bHQgb3BzX3JlcykK ICAgICByZWdzLT5lZmxhZ3MgPSBlZmxhZ3M7CiB9CiAKLWJvb2xfdCBudm14X2ludGVyY2VwdHNf ZXhjZXB0aW9uKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgdHJhcCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBlcnJvcl9jb2RlKQorYm9vbF90IG52bXhfaW50ZXJj ZXB0c19leGNlcHRpb24oCisgICAgc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCB2ZWN0b3Is IGludCBlcnJvcl9jb2RlKQogewogICAgIHUzMiBleGNlcHRpb25fYml0bWFwLCBwZmVjX21hdGNo PTAsIHBmZWNfbWFzaz0wOwogICAgIGludCByOwogCi0gICAgQVNTRVJUICggdHJhcCA8IDMyICk7 CisgICAgQVNTRVJUKHZlY3RvciA8IDMyKTsKIAogICAgIGV4Y2VwdGlvbl9iaXRtYXAgPSBnZXRf dnZtY3ModiwgRVhDRVBUSU9OX0JJVE1BUCk7Ci0gICAgciA9IGV4Y2VwdGlvbl9iaXRtYXAgJiAo MSA8PCB0cmFwKSA/IDE6IDA7CisgICAgciA9IGV4Y2VwdGlvbl9iaXRtYXAgJiAoMSA8PCB2ZWN0 b3IpID8gMTogMDsKIAotICAgIGlmICggdHJhcCA9PSBUUkFQX3BhZ2VfZmF1bHQgKSB7CisgICAg aWYgKCB2ZWN0b3IgPT0gVFJBUF9wYWdlX2ZhdWx0ICkKKyAgICB7CiAgICAgICAgIHBmZWNfbWF0 Y2ggPSBnZXRfdnZtY3ModiwgUEFHRV9GQVVMVF9FUlJPUl9DT0RFX01BVENIKTsKICAgICAgICAg cGZlY19tYXNrICA9IGdldF92dm1jcyh2LCBQQUdFX0ZBVUxUX0VSUk9SX0NPREVfTUFTSyk7CiAg ICAgICAgIGlmICggKGVycm9yX2NvZGUgJiBwZmVjX21hc2spICE9IHBmZWNfbWF0Y2ggKQpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMgYi94ZW4vYXJj aC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYwppbmRleCA1MzJiZDMyLi45YzI4ZWQ0IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYworKysgYi94 ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYwpAQCAtNTQ1MSw2ICs1NDUxLDE3 IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBfX21heWJlX3VudXNlZCBidWlsZF9hc3NlcnRpb25zKHZv aWQpCiAgICAgQlVJTERfQlVHX09OKHg4Nl9zZWdfZHMgIT0gMyk7CiAgICAgQlVJTERfQlVHX09O KHg4Nl9zZWdfZnMgIT0gNCk7CiAgICAgQlVJTERfQlVHX09OKHg4Nl9zZWdfZ3MgIT0gNSk7CisK KyAgICAvKgorICAgICAqIENoZWNrIFg4Nl9FVkVOVFRZUEVfKiBhZ2FpbnN0IFZNQ0IgRVZFTlRJ TkogYW5kIFZNQ1MgSU5UUl9JTkZPIHR5cGUKKyAgICAgKiBmaWVsZHMuCisgICAgICovCisgICAg QlVJTERfQlVHX09OKFg4Nl9FVkVOVFRZUEVfRVhUX0lOVFIgIT0gMCk7CisgICAgQlVJTERfQlVH X09OKFg4Nl9FVkVOVFRZUEVfTk1JICE9IDIpOworICAgIEJVSUxEX0JVR19PTihYODZfRVZFTlRU WVBFX0hXX0VYQ0VQVElPTiAhPSAzKTsKKyAgICBCVUlMRF9CVUdfT04oWDg2X0VWRU5UVFlQRV9T V19JTlRFUlJVUFQgIT0gNCk7CisgICAgQlVJTERfQlVHX09OKFg4Nl9FVkVOVFRZUEVfUFJJX1NX X0VYQ0VQVElPTiAhPSA1KTsKKyAgICBCVUlMRF9CVUdfT04oWDg2X0VWRU5UVFlQRV9TV19FWENF UFRJT04gIT0gNik7CiB9CiAKICNpZmRlZiBfX1hFTl9fCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaCBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94 ODZfZW11bGF0ZS5oCmluZGV4IGFiNTY2YzAuLjU0YzUzMmMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5oCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11 bGF0ZS94ODZfZW11bGF0ZS5oCkBAIC02Nyw2ICs2NywyOCBAQCBlbnVtIHg4Nl9zd2ludF9lbXVs YXRpb24gewogICAgIHg4Nl9zd2ludF9lbXVsYXRlX2FsbCwgIC8qIEhlbHAgbmVlZGVkIHdpdGgg YWxsIHNvZnR3YXJlIGV2ZW50cyAqLwogfTsKIAorLyoKKyAqIHg4NiBldmVudCB0eXBlcy4gVGhp cyBlbnVtZXJhdGlvbiBpcyB2YWxpZCBmb3I6CisgKiAgSW50ZWwgVk1YOiB7Vk1fRU5UUlksVk1f RVhJVCxJRFRfVkVDVE9SSU5HfV9JTlRSX0lORk9bMTA6OF0KKyAqICBBTUQgU1ZNOiBldmVudGlu alsxMDo4XSBhbmQgZXhpdGludGluZm9bMTA6OF0gKHR5cGVzIDAtNCBvbmx5KQorICovCitlbnVt IHg4Nl9ldmVudF90eXBlIHsKKyAgICBYODZfRVZFTlRUWVBFX0VYVF9JTlRSLCAgICAgICAgIC8q IEV4dGVybmFsIGludGVycnVwdCAqLworICAgIFg4Nl9FVkVOVFRZUEVfTk1JID0gMiwgICAgICAg ICAgLyogTk1JICovCisgICAgWDg2X0VWRU5UVFlQRV9IV19FWENFUFRJT04sICAgICAvKiBIYXJk d2FyZSBleGNlcHRpb24gKi8KKyAgICBYODZfRVZFTlRUWVBFX1NXX0lOVEVSUlVQVCwgICAgIC8q IFNvZnR3YXJlIGludGVycnVwdCAoQ0Qgbm4pICovCisgICAgWDg2X0VWRU5UVFlQRV9QUklfU1df RVhDRVBUSU9OLCAvKiBJQ0VCUCAoRjEpICovCisgICAgWDg2X0VWRU5UVFlQRV9TV19FWENFUFRJ T04sICAgICAvKiBJTlQzIChDQyksIElOVE8gKENFKSAqLworfTsKKworc3RydWN0IHg4Nl9ldmVu dCB7CisgICAgaW50MTZfdCAgICAgICB2ZWN0b3I7CisgICAgdWludDhfdCAgICAgICB0eXBlOyAg ICAgICAgIC8qIFg4Nl9FVkVOVFRZUEVfKiAqLworICAgIHVpbnQ4X3QgICAgICAgaW5zbl9sZW47 ICAgICAvKiBJbnN0cnVjdGlvbiBsZW5ndGggKi8KKyAgICB1aW50MzJfdCAgICAgIGVycm9yX2Nv ZGU7ICAgLyogSFZNX0RFTElWRVJfTk9fRVJST1JfQ09ERSBpZiBuL2EgKi8KKyAgICB1bnNpZ25l ZCBsb25nIGNyMjsgICAgICAgICAgLyogT25seSBmb3IgVFJBUF9wYWdlX2ZhdWx0IGgvdyBleGNl cHRpb24gKi8KK307CisKIC8qIAogICogQXR0cmlidXRlIGZvciBzZWdtZW50IHNlbGVjdG9yLiBU aGlzIGlzIGEgY29weSBvZiBiaXQgNDA6NDcgJiA1Mjo1NSBvZiB0aGUKICAqIHNlZ21lbnQgZGVz Y3JpcHRvci4gSXQgaGFwcGVucyB0byBtYXRjaCB0aGUgZm9ybWF0IG9mIGFuIEFNRCBTVk0gVk1D Qi4KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2VtdWxhdGUuaCBiL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL2VtdWxhdGUuaAppbmRleCBkNDE4NmEyLi4zYjdlYzMzIDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9lbXVsYXRlLmgKKysrIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9odm0vZW11bGF0ZS5oCkBAIC0zMCw3ICszMCw3IEBAIHN0cnVjdCBodm1fZW11 bGF0ZV9jdHh0IHsKICAgICB1bnNpZ25lZCBsb25nIHNlZ19yZWdfZGlydHk7CiAKICAgICBib29s X3QgZXhuX3BlbmRpbmc7Ci0gICAgc3RydWN0IGh2bV90cmFwIHRyYXA7CisgICAgc3RydWN0IHg4 Nl9ldmVudCB0cmFwOwogCiAgICAgdWludDMyX3QgaW50cl9zaGFkb3c7CiAKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0v aHZtLmgKaW5kZXggN2U3NDYyZS4uNTFhNjRmNyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9odm0vaHZtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmgKQEAgLTc3 LDE0ICs3Nyw2IEBAIGVudW0gaHZtX2ludGJsayB7CiAjZGVmaW5lIEhWTV9IQVBfU1VQRVJQQUdF XzJNQiAgIDB4MDAwMDAwMDEKICNkZWZpbmUgSFZNX0hBUF9TVVBFUlBBR0VfMUdCICAgMHgwMDAw MDAwMgogCi1zdHJ1Y3QgaHZtX3RyYXAgewotICAgIGludDE2X3QgICAgICAgdmVjdG9yOwotICAg IHVpbnQ4X3QgICAgICAgdHlwZTsgICAgICAgICAvKiBYODZfRVZFTlRUWVBFXyogKi8KLSAgICB1 aW50OF90ICAgICAgIGluc25fbGVuOyAgICAgLyogSW5zdHJ1Y3Rpb24gbGVuZ3RoICovCi0gICAg dWludDMyX3QgICAgICBlcnJvcl9jb2RlOyAgIC8qIEhWTV9ERUxJVkVSX05PX0VSUk9SX0NPREUg aWYgbi9hICovCi0gICAgdW5zaWduZWQgbG9uZyBjcjI7ICAgICAgICAgIC8qIE9ubHkgZm9yIFRS QVBfcGFnZV9mYXVsdCBoL3cgZXhjZXB0aW9uICovCi19OwotCiAvKgogICogVGhlIGhhcmR3YXJl IHZpcnR1YWwgbWFjaGluZSAoSFZNKSBpbnRlcmZhY2UgYWJzdHJhY3RzIGF3YXkgZnJvbSB0aGUK ICAqIHg4Ni94ODZfNjQgQ1BVIHZpcnR1YWxpemF0aW9uIGFzc2lzdCBzcGVjaWZpY3MuIEN1cnJl bnRseSB0aGlzIGludGVyZmFjZQpAQCAtMTUyLDcgKzE0NCw3IEBAIHN0cnVjdCBodm1fZnVuY3Rp b25fdGFibGUgewogCiAgICAgdm9pZCAoKnNldF90c2Nfb2Zmc2V0KShzdHJ1Y3QgdmNwdSAqdiwg dTY0IG9mZnNldCwgdTY0IGF0X3RzYyk7CiAKLSAgICB2b2lkICgqaW5qZWN0X3RyYXApKGNvbnN0 IHN0cnVjdCBodm1fdHJhcCAqdHJhcCk7CisgICAgdm9pZCAoKmluamVjdF9ldmVudCkoY29uc3Qg c3RydWN0IHg4Nl9ldmVudCAqZXZlbnQpOwogCiAgICAgdm9pZCAoKmluaXRfaHlwZXJjYWxsX3Bh Z2UpKHN0cnVjdCBkb21haW4gKmQsIHZvaWQgKmh5cGVyY2FsbF9wYWdlKTsKIApAQCAtMTg1LDEx ICsxNzcsMTAgQEAgc3RydWN0IGh2bV9mdW5jdGlvbl90YWJsZSB7CiAgICAgaW50ICgqbmh2bV92 Y3B1X2luaXRpYWxpc2UpKHN0cnVjdCB2Y3B1ICp2KTsKICAgICB2b2lkICgqbmh2bV92Y3B1X2Rl c3Ryb3kpKHN0cnVjdCB2Y3B1ICp2KTsKICAgICBpbnQgKCpuaHZtX3ZjcHVfcmVzZXQpKHN0cnVj dCB2Y3B1ICp2KTsKLSAgICBpbnQgKCpuaHZtX3ZjcHVfdm1leGl0X3RyYXApKHN0cnVjdCB2Y3B1 ICp2LCBjb25zdCBzdHJ1Y3QgaHZtX3RyYXAgKnRyYXApOworICAgIGludCAoKm5odm1fdmNwdV92 bWV4aXRfZXZlbnQpKHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBzdHJ1Y3QgeDg2X2V2ZW50ICpldmVu dCk7CiAgICAgdWludDY0X3QgKCpuaHZtX3ZjcHVfcDJtX2Jhc2UpKHN0cnVjdCB2Y3B1ICp2KTsK LSAgICBib29sX3QgKCpuaHZtX3ZtY3hfZ3Vlc3RfaW50ZXJjZXB0c190cmFwKShzdHJ1Y3QgdmNw dSAqdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgdHJhcG5yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCBlcnJjb2RlKTsKKyAgICBib29sX3QgKCpuaHZtX3ZtY3hfZ3Vlc3RfaW50ZXJj ZXB0c19ldmVudCkoCisgICAgICAgIHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgdmVjdG9y LCBpbnQgZXJyY29kZSk7CiAKICAgICBib29sX3QgKCpuaHZtX3ZtY3hfaGFwX2VuYWJsZWQpKHN0 cnVjdCB2Y3B1ICp2KTsKIApAQCAtNDE5LDkgKzQxMCwzMCBAQCB2b2lkIGh2bV9taWdyYXRlX3Rp bWVycyhzdHJ1Y3QgdmNwdSAqdik7CiB2b2lkIGh2bV9kb19yZXN1bWUoc3RydWN0IHZjcHUgKnYp Owogdm9pZCBodm1fbWlncmF0ZV9waXJxcyhzdHJ1Y3QgdmNwdSAqdik7CiAKLXZvaWQgaHZtX2lu amVjdF90cmFwKGNvbnN0IHN0cnVjdCBodm1fdHJhcCAqdHJhcCk7Ci12b2lkIGh2bV9pbmplY3Rf aHdfZXhjZXB0aW9uKHVuc2lnbmVkIGludCB0cmFwbnIsIGludCBlcnJjb2RlKTsKLXZvaWQgaHZt X2luamVjdF9wYWdlX2ZhdWx0KGludCBlcnJjb2RlLCB1bnNpZ25lZCBsb25nIGNyMik7Cit2b2lk IGh2bV9pbmplY3RfZXZlbnQoY29uc3Qgc3RydWN0IHg4Nl9ldmVudCAqZXZlbnQpOworCitzdGF0 aWMgaW5saW5lIHZvaWQgaHZtX2luamVjdF9od19leGNlcHRpb24odW5zaWduZWQgaW50IHZlY3Rv ciwgaW50IGVycmNvZGUpCit7CisgICAgc3RydWN0IHg4Nl9ldmVudCBldmVudCA9IHsKKyAgICAg ICAgLnZlY3RvciA9IHZlY3RvciwKKyAgICAgICAgLnR5cGUgPSBYODZfRVZFTlRUWVBFX0hXX0VY Q0VQVElPTiwKKyAgICAgICAgLmVycm9yX2NvZGUgPSBlcnJjb2RlLAorICAgIH07CisKKyAgICBo dm1faW5qZWN0X2V2ZW50KCZldmVudCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBodm1faW5q ZWN0X3BhZ2VfZmF1bHQoaW50IGVycmNvZGUsIHVuc2lnbmVkIGxvbmcgY3IyKQoreworICAgIHN0 cnVjdCB4ODZfZXZlbnQgZXZlbnQgPSB7CisgICAgICAgIC52ZWN0b3IgPSBUUkFQX3BhZ2VfZmF1 bHQsCisgICAgICAgIC50eXBlID0gWDg2X0VWRU5UVFlQRV9IV19FWENFUFRJT04sCisgICAgICAg IC5lcnJvcl9jb2RlID0gZXJyY29kZSwKKyAgICAgICAgLmNyMiA9IGNyMiwKKyAgICB9OworCisg ICAgaHZtX2luamVjdF9ldmVudCgmZXZlbnQpOworfQogCiBzdGF0aWMgaW5saW5lIGludCBodm1f ZXZlbnRfcGVuZGluZyhzdHJ1Y3QgdmNwdSAqdikKIHsKQEAgLTQzNywxOCArNDQ5LDYgQEAgc3Rh dGljIGlubGluZSBpbnQgaHZtX2V2ZW50X3BlbmRpbmcoc3RydWN0IHZjcHUgKnYpCiAgICAgICAg ICAgICAgICAgICAgICAgICgxVSA8PCBUUkFQX2FsaWdubWVudF9jaGVjaykgfCBcCiAgICAgICAg ICAgICAgICAgICAgICAgICgxVSA8PCBUUkFQX21hY2hpbmVfY2hlY2spKQogCi0vKgotICogeDg2 IGV2ZW50IHR5cGVzLiBUaGlzIGVudW1lcmF0aW9uIGlzIHZhbGlkIGZvcjoKLSAqICBJbnRlbCBW TVg6IHtWTV9FTlRSWSxWTV9FWElULElEVF9WRUNUT1JJTkd9X0lOVFJfSU5GT1sxMDo4XQotICog IEFNRCBTVk06IGV2ZW50aW5qWzEwOjhdIGFuZCBleGl0aW50aW5mb1sxMDo4XSAodHlwZXMgMC00 IG9ubHkpCi0gKi8KLSNkZWZpbmUgWDg2X0VWRU5UVFlQRV9FWFRfSU5UUiAgICAgICAgIDAgLyog ZXh0ZXJuYWwgaW50ZXJydXB0ICovCi0jZGVmaW5lIFg4Nl9FVkVOVFRZUEVfTk1JICAgICAgICAg ICAgICAyIC8qIE5NSSAqLwotI2RlZmluZSBYODZfRVZFTlRUWVBFX0hXX0VYQ0VQVElPTiAgICAg MyAvKiBoYXJkd2FyZSBleGNlcHRpb24gKi8KLSNkZWZpbmUgWDg2X0VWRU5UVFlQRV9TV19JTlRF UlJVUFQgICAgIDQgLyogc29mdHdhcmUgaW50ZXJydXB0IChDRCBubikgKi8KLSNkZWZpbmUgWDg2 X0VWRU5UVFlQRV9QUklfU1dfRVhDRVBUSU9OIDUgLyogSUNFQlAgKEYxKSAqLwotI2RlZmluZSBY ODZfRVZFTlRUWVBFX1NXX0VYQ0VQVElPTiAgICAgNiAvKiBJTlQzIChDQyksIElOVE8gKENFKSAq LwotCiBpbnQgaHZtX2V2ZW50X25lZWRzX3JlaW5qZWN0aW9uKHVpbnQ4X3QgdHlwZSwgdWludDhf dCB2ZWN0b3IpOwogCiB1aW50OF90IGh2bV9jb21iaW5lX2h3X2V4Y2VwdGlvbnModWludDhfdCB2 ZWMxLCB1aW50OF90IHZlYzIpOwpAQCAtNTQyLDEwICs1NDIsMTAgQEAgaW50IGh2bV94MmFwaWNf bXNyX3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCBtc3Jf Y29udGVudCkKIC8qIGluamVjdCB2bWV4aXQgaW50byBsMSBndWVzdC4gbDEgZ3Vlc3Qgd2lsbCBz ZWUgYSBWTUVYSVQgZHVlIHRvCiAgKiAndHJhcG5yJyBleGNlcHRpb24uCiAgKi8gCi1zdGF0aWMg aW5saW5lIGludCBuaHZtX3ZjcHVfdm1leGl0X3RyYXAoc3RydWN0IHZjcHUgKnYsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGh2bV90cmFwICp0 cmFwKQorc3RhdGljIGlubGluZSBpbnQgbmh2bV92Y3B1X3ZtZXhpdF9ldmVudCgKKyAgICBzdHJ1 Y3QgdmNwdSAqdiwgY29uc3Qgc3RydWN0IHg4Nl9ldmVudCAqZXZlbnQpCiB7Ci0gICAgcmV0dXJu IGh2bV9mdW5jcy5uaHZtX3ZjcHVfdm1leGl0X3RyYXAodiwgdHJhcCk7CisgICAgcmV0dXJuIGh2 bV9mdW5jcy5uaHZtX3ZjcHVfdm1leGl0X2V2ZW50KHYsIGV2ZW50KTsKIH0KIAogLyogcmV0dXJu cyBsMSBndWVzdCdzIGNyMyB0aGF0IHBvaW50cyB0byB0aGUgcGFnZSB0YWJsZSB1c2VkIHRvCkBA IC01NTcsMTEgKzU1NywxMCBAQCBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IG5odm1fdmNwdV9wMm1f YmFzZShzdHJ1Y3QgdmNwdSAqdikKIH0KIAogLyogcmV0dXJucyB0cnVlLCB3aGVuIGwxIGd1ZXN0 IGludGVyY2VwdHMgdGhlIHNwZWNpZmllZCB0cmFwICovCi1zdGF0aWMgaW5saW5lIGJvb2xfdCBu aHZtX3ZtY3hfZ3Vlc3RfaW50ZXJjZXB0c190cmFwKHN0cnVjdCB2Y3B1ICp2LAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg dHJhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IGVycmNvZGUpCitzdGF0aWMgaW5saW5lIGJvb2xfdCBuaHZtX3ZtY3hfZ3Vlc3RfaW50 ZXJjZXB0c19ldmVudCgKKyAgICBzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHZlY3Rvciwg aW50IGVycmNvZGUpCiB7Ci0gICAgcmV0dXJuIGh2bV9mdW5jcy5uaHZtX3ZtY3hfZ3Vlc3RfaW50 ZXJjZXB0c190cmFwKHYsIHRyYXAsIGVycmNvZGUpOworICAgIHJldHVybiBodm1fZnVuY3Mubmh2 bV92bWN4X2d1ZXN0X2ludGVyY2VwdHNfZXZlbnQodiwgdmVjdG9yLCBlcnJjb2RlKTsKIH0KIAog LyogcmV0dXJucyB0cnVlIHdoZW4gbDEgZ3Vlc3Qgd2FudHMgdG8gdXNlIGhhcCB0byBydW4gbDIg Z3Vlc3QgKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9uZXN0ZWRz dm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9uZXN0ZWRzdm0uaAppbmRleCAwZGJj NWVjLi40YjM2YzI1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vbmVz dGVkc3ZtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL25lc3RlZHN2bS5oCkBA IC0xMTAsMTAgKzExMCwxMCBAQCB2b2lkIG5zdm1fdmNwdV9kZXN0cm95KHN0cnVjdCB2Y3B1ICp2 KTsKIGludCBuc3ZtX3ZjcHVfaW5pdGlhbGlzZShzdHJ1Y3QgdmNwdSAqdik7CiBpbnQgbnN2bV92 Y3B1X3Jlc2V0KHN0cnVjdCB2Y3B1ICp2KTsKIGludCBuc3ZtX3ZjcHVfdm1ydW4oc3RydWN0IHZj cHUgKnYsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKTsKLWludCBuc3ZtX3ZjcHVfdm1leGl0 X3RyYXAoc3RydWN0IHZjcHUgKnYsIGNvbnN0IHN0cnVjdCBodm1fdHJhcCAqdHJhcCk7CitpbnQg bnN2bV92Y3B1X3ZtZXhpdF9ldmVudChzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgc3RydWN0IHg4Nl9l dmVudCAqZXZlbnQpOwogdWludDY0X3QgbnN2bV92Y3B1X2hvc3RjcjMoc3RydWN0IHZjcHUgKnYp OwotYm9vbF90IG5zdm1fdm1jYl9ndWVzdF9pbnRlcmNlcHRzX3RyYXAoc3RydWN0IHZjcHUgKnYs IHVuc2lnbmVkIGludCB0cmFwbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgZXJyY29kZSk7Citib29sX3QgbnN2bV92bWNiX2d1ZXN0X2ludGVyY2VwdHNfZXZl bnQoCisgICAgc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCB2ZWN0b3IsIGludCBlcnJjb2Rl KTsKIGJvb2xfdCBuc3ZtX3ZtY2JfaGFwX2VuYWJsZWQoc3RydWN0IHZjcHUgKnYpOwogZW51bSBo dm1faW50YmxrIG5zdm1faW50cl9ibG9ja2VkKHN0cnVjdCB2Y3B1ICp2KTsKIApkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdmNwdS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vdmNwdS5oCmluZGV4IDg0ZDk0MDYuLmQ0ODU1MzYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L2FzbS14ODYvaHZtL3ZjcHUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92Y3B1LmgK QEAgLTIwNiw3ICsyMDYsNyBAQCBzdHJ1Y3QgaHZtX3ZjcHUgewogICAgIHZvaWQgKmZwdV9leGNl cHRpb25fY2FsbGJhY2tfYXJnOwogCiAgICAgLyogUGVuZGluZyBody9zdyBpbnRlcnJ1cHQgKC52 ZWN0b3IgPSAtMSBtZWFucyBub3RoaW5nIHBlbmRpbmcpLiAqLwotICAgIHN0cnVjdCBodm1fdHJh cCAgICAgaW5qZWN0X3RyYXA7CisgICAgc3RydWN0IHg4Nl9ldmVudCAgICAgaW5qZWN0X3RyYXA7 CiAKICAgICBzdHJ1Y3QgdmlyaWRpYW5fdmNwdSB2aXJpZGlhbjsKIH07CmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgvdnZteC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vdm14L3Z2bXguaAppbmRleCBhY2E4YjRiLi5lYWQ1ODZlIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS92bXgvdnZteC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZt L3ZteC92dm14LmgKQEAgLTExMiw4ICsxMTIsOCBAQCB2b2lkIG52bXhfdmNwdV9kZXN0cm95KHN0 cnVjdCB2Y3B1ICp2KTsKIGludCBudm14X3ZjcHVfcmVzZXQoc3RydWN0IHZjcHUgKnYpOwogdWlu dDY0X3QgbnZteF92Y3B1X2VwdHBfYmFzZShzdHJ1Y3QgdmNwdSAqdik7CiBlbnVtIGh2bV9pbnRi bGsgbnZteF9pbnRyX2Jsb2NrZWQoc3RydWN0IHZjcHUgKnYpOwotYm9vbF90IG52bXhfaW50ZXJj ZXB0c19leGNlcHRpb24oc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCB0cmFwLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVycm9yX2NvZGUpOworYm9vbF90IG52bXhf aW50ZXJjZXB0c19leGNlcHRpb24oCisgICAgc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCB2 ZWN0b3IsIGludCBlcnJvcl9jb2RlKTsKIHZvaWQgbnZteF9kb21haW5fcmVsaW5xdWlzaF9yZXNv dXJjZXMoc3RydWN0IGRvbWFpbiAqZCk7CiAKIGJvb2xfdCBudm14X2VwdF9lbmFibGVkKHN0cnVj dCB2Y3B1ICp2KTsKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==