From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v6.5 21/26] x86/entry: Use MSR_SPEC_CTRL at each entry/exit point Date: Thu, 4 Jan 2018 00:15:50 +0000 Message-ID: <1515024955-13390-22-git-send-email-andrew.cooper3@citrix.com> References: <1515024955-13390-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: <1515024955-13390-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org U2V0IG9yIGNsZWFyIElCUlMgaW4gWGVuIGNvbnRleHQsIGFuZCBhcHByb3ByaWF0ZSBndWVzdCB2 YWx1ZXMgaW4gZ3Vlc3QKY29udGV4dC4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBpbiBhc20teDg2 L3NwZWNfY3RybF9hc20uaCBmb3IgZGV0YWlscy4KClR3byBzZW1pLXVucmVsYXRlZCBidWdmaXhl cyBhcmUgdGhhdCB2YXJpb3VzIGFzbV9kZWZuLmggbWFjcm9zIGhhdmUgYSBoaWRkZW4KZGVwZW5k ZW5jeSBvbiBQQUdFX1NJWkUsIHdoaWNoIHJlc3VsdHMgaW4gYW4gYXNzZW1ibGVyIGVycm9yIGlm IHVzZWQgaW4gYQoubWFjcm8gZGVmaW5pdGlvbi4gIFNlY29uZGx5LCBfQVNNX01LX05PUCgpIG5l ZWRzIGEgc2VwYXJhdG9yIGF0IHRoZSBlbmQsCnJhdGhlciB0aGFuIHJlbHlpbmcgb24gaXRzIGNh bGxpbmcgY29udGV4dCBmb3Igc2VwYXJhdGlvbi4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29w ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQp2MzoKICogQmFzaWNhbGx5IHJld3Jp dHRlbiBmcm9tIHNjcmF0Y2gKdjQ6CiAqIFVzZSBTVEFDSyogbWFjcm9jcwogKiBEcm9wIHNlbWlj b2xvbnMKICogRml4IHNldmVyYWwgb2Zmc2V0IGJ1Z3MKICogSW50cm9kdWNlIGluaXRfc2hhZG93 X3NwZWNfY3RybF9zdGF0ZSgpIHJhdGhlciB0aGFuIG9wZW5jb2RpbmcgaXQgZm9yIHRoZQogICBC U1AgYW5kIEFQcwogKiBSZWJhc2Ugb3ZlciBBTUQgY2hhbmdlcwotLS0KIHhlbi9hcmNoL3g4Ni9o dm0vc3ZtL2VudHJ5LlMgICAgICAgIHwgICA4ICstCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC9lbnRy eS5TICAgICAgICB8ICAxMSArKwogeGVuL2FyY2gveDg2L3NldHVwLmMgICAgICAgICAgICAgICAg fCAgIDEgKwogeGVuL2FyY2gveDg2L3NtcGJvb3QuYyAgICAgICAgICAgICAgfCAgIDIgKwogeGVu L2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jICAgfCAgIDYgKwogeGVuL2FyY2gveDg2L3g4 Nl82NC9jb21wYXQvZW50cnkuUyAgfCAgMTIgKysKIHhlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnku UyAgICAgICAgIHwgIDMzICsrKysrKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9hc21fZGVmbnMuaCAg ICAgfCAgIDMgKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmggICAgICAgfCAgIDYgKwog eGVuL2luY2x1ZGUvYXNtLXg4Ni9ub3BzLmggICAgICAgICAgfCAgIDggKy0KIHhlbi9pbmNsdWRl L2FzbS14ODYvc3BlY19jdHJsLmggICAgIHwgICA5ICsrCiB4ZW4vaW5jbHVkZS9hc20teDg2L3Nw ZWNfY3RybF9hc20uaCB8IDIzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IDEyIGZpbGVzIGNoYW5nZWQsIDMyNyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL2FzbS14ODYvc3BlY19jdHJsX2FzbS5oCgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vZW50cnkuUyBiL3hlbi9hcmNoL3g4Ni9odm0v c3ZtL2VudHJ5LlMKaW5kZXggZGY4NmRhMC4uZmIxMDQ4YiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS9zdm0vZW50cnkuUworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9lbnRyeS5TCkBA IC03OSw2ICs3OSw5IEBAIFVOTElLRUxZX0VORChzdm1fdHJhY2UpCiAgICAgICAgIG9yICAgJFg4 Nl9FRkxBR1NfTUJTLCVyYXgKICAgICAgICAgbW92ICAlcmF4LFZNQ0JfcmZsYWdzKCVyY3gpCiAK KyAgICAgICAgLyogV0FSTklORyEgYHJldGAsIGBjYWxsICpgLCBgam1wICpgIG5vdCBzYWZlIGJl eW9uZCB0aGlzIHBvaW50LiAqLworICAgICAgICBTUEVDX0NUUkxfRVhJVF9UT19HVUVTVCAvKiBS ZXE6IGI9Y3VyciAlcnNwPXJlZ3MvY3B1aW5mbywgQ2xvYjogYWNkICovCisKICAgICAgICAgcG9w ICAlcjE1CiAgICAgICAgIHBvcCAgJXIxNAogICAgICAgICBwb3AgICVyMTMKQEAgLTEwMSw4ICsx MDQsMTEgQEAgVU5MSUtFTFlfRU5EKHN2bV90cmFjZSkKICAgICAgICAgU0FWRV9BTEwKIAogICAg ICAgICBHRVRfQ1VSUkVOVChieCkKLSAgICAgICAgbW92ICBWQ1BVX3N2bV92bWNiKCVyYngpLCVy Y3gKIAorICAgICAgICBTUEVDX0NUUkxfRU5UUllfRlJPTV9WTUVYSVQgLyogUmVxOiBiPWN1cnIg JXJzcD1yZWdzL2NwdWluZm8sIENsb2I6IGFjZCAqLworICAgICAgICAvKiBXQVJOSU5HISBgcmV0 YCwgYGNhbGwgKmAsIGBqbXAgKmAgbm90IHNhZmUgYmVmb3JlIHRoaXMgcG9pbnQuICovCisKKyAg ICAgICAgbW92ICBWQ1BVX3N2bV92bWNiKCVyYngpLCVyY3gKICAgICAgICAgbW92YiAkMCxWQ1BV X3N2bV92bWNiX2luX3N5bmMoJXJieCkKICAgICAgICAgbW92ICBWTUNCX3JheCglcmN4KSwlcmF4 CiAgICAgICAgIG1vdiAgJXJheCxVUkVHU19yYXgoJXJzcCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9odm0vdm14L2VudHJ5LlMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC9lbnRyeS5TCmluZGV4 IGIyZjk4YmUuLjIxZTk1OWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L2VudHJ5 LlMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvZW50cnkuUwpAQCAtMzgsNiArMzgsOSBAQCBF TlRSWSh2bXhfYXNtX3ZtZXhpdF9oYW5kbGVyKQogICAgICAgICBtb3ZiICQxLFZDUFVfdm14X2xh dW5jaGVkKCVyYngpCiAgICAgICAgIG1vdiAgJXJheCxWQ1BVX2h2bV9ndWVzdF9jcjIoJXJieCkK IAorICAgICAgICBTUEVDX0NUUkxfRU5UUllfRlJPTV9WTUVYSVQgLyogUmVxOiBiPWN1cnIgJXJz cD1yZWdzL2NwdWluZm8sIENsb2I6IGFjZCAqLworICAgICAgICAvKiBXQVJOSU5HISBgcmV0YCwg YGNhbGwgKmAsIGBqbXAgKmAgbm90IHNhZmUgYmVmb3JlIHRoaXMgcG9pbnQuICovCisKICAgICAg ICAgbW92ICAlcnNwLCVyZGkKICAgICAgICAgY2FsbCB2bXhfdm1leGl0X2hhbmRsZXIKIApAQCAt NjgsNiArNzEsMTAgQEAgVU5MSUtFTFlfRU5EKHJlYWxtb2RlKQogICAgICAgICBjYWxsIHZteF92 bWVudGVyX2hlbHBlcgogICAgICAgICB0ZXN0ICVhbCwgJWFsCiAgICAgICAgIGp6IC5Mdm14X3Zt ZW50cnlfcmVzdGFydAorCisgICAgICAgIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGpt cCAqYCBub3Qgc2FmZSBiZXlvbmQgdGhpcyBwb2ludC4gKi8KKyAgICAgICAgU1BFQ19DVFJMX0VY SVRfVE9fR1VFU1QgLyogUmVxOiBiPWN1cnIgJXJzcD1yZWdzL2NwdWluZm8sIENsb2I6IGFjZCAq LworCiAgICAgICAgIG1vdiAgVkNQVV9odm1fZ3Vlc3RfY3IyKCVyYngpLCVyYXgKIAogICAgICAg ICBwb3AgICVyMTUKQEAgLTk5LDYgKzEwNiwxMCBAQCBVTkxJS0VMWV9FTkQocmVhbG1vZGUpCiAu THZteF92bWVudHJ5X2ZhaWw6CiAgICAgICAgIHN0aQogICAgICAgICBTQVZFX0FMTAorCisgICAg ICAgIFNQRUNfQ1RSTF9FTlRSWV9GUk9NX1BWIC8qIFJlcTogJXJzcD1yZWdzL2NwdWluZm8gQ2xv YjogYWNkICovCisgICAgICAgIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBu b3Qgc2FmZSBiZWZvcmUgdGhpcyBwb2ludC4gKi8KKwogICAgICAgICBjYWxsIHZteF92bWVudHJ5 X2ZhaWx1cmUKICAgICAgICAgQlVHICAvKiB2bXhfdm1lbnRyeV9mYWlsdXJlKCkgc2hvdWxkbid0 IHJldHVybi4gKi8KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NldHVwLmMgYi94ZW4vYXJj aC94ODYvc2V0dXAuYwppbmRleCA0NzA0MjdiLi5iMmFhMjgxIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvc2V0dXAuYworKysgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwpAQCAtNjY4LDYgKzY2OCw3 IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3Ap CiAgICAgc2V0X3Byb2Nlc3Nvcl9pZCgwKTsKICAgICBzZXRfY3VycmVudChJTlZBTElEX1ZDUFUp OyAvKiBkZWJ1ZyBzYW5pdHkuICovCiAgICAgaWRsZV92Y3B1WzBdID0gY3VycmVudDsKKyAgICBp bml0X3NoYWRvd19zcGVjX2N0cmxfc3RhdGUoKTsKIAogICAgIHBlcmNwdV9pbml0X2FyZWFzKCk7 CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zbXBib290LmMgYi94ZW4vYXJjaC94ODYvc21w Ym9vdC5jCmluZGV4IDdiOTdmZjguLmE2OTVkMTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9z bXBib290LmMKKysrIGIveGVuL2FyY2gveDg2L3NtcGJvb3QuYwpAQCAtNDAsNiArNDAsNyBAQAog I2luY2x1ZGUgPGFzbS9mbHVzaHRsYi5oPgogI2luY2x1ZGUgPGFzbS9tc3IuaD4KICNpbmNsdWRl IDxhc20vbXRyci5oPgorI2luY2x1ZGUgPGFzbS9zcGVjX2N0cmwuaD4KICNpbmNsdWRlIDxhc20v dGltZS5oPgogI2luY2x1ZGUgPGFzbS90Ym9vdC5oPgogI2luY2x1ZGUgPG1hY2hfYXBpYy5oPgpA QCAtMzA4LDYgKzMwOSw3IEBAIHZvaWQgc3RhcnRfc2Vjb25kYXJ5KHZvaWQgKnVudXNlZCkKICAg ICBzZXRfY3VycmVudChpZGxlX3ZjcHVbY3B1XSk7CiAgICAgdGhpc19jcHUoY3Vycl92Y3B1KSA9 IGlkbGVfdmNwdVtjcHVdOwogICAgIHJkbXNybChNU1JfRUZFUiwgdGhpc19jcHUoZWZlcikpOwor ICAgIGluaXRfc2hhZG93X3NwZWNfY3RybF9zdGF0ZSgpOwogCiAgICAgLyoKICAgICAgKiBKdXN0 IGFzIGR1cmluZyBlYXJseSBib290c3RyYXAsIGl0IGlzIGNvbnZlbmllbnQgaGVyZSB0byBkaXNh YmxlCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMgYi94ZW4v YXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKaW5kZXggZTEzNmFmNi4uN2QzNjE4NSAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCisrKyBiL3hlbi9hcmNo L3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYwpAQCAtODgsNiArODgsNyBAQCB2b2lkIF9fZHVtbXlf Xyh2b2lkKQogICAgIE9GRlNFVChWQ1BVX2tlcm5lbF9zcywgc3RydWN0IHZjcHUsIGFyY2gucHZf dmNwdS5rZXJuZWxfc3MpOwogICAgIE9GRlNFVChWQ1BVX2lvcGwsIHN0cnVjdCB2Y3B1LCBhcmNo LnB2X3ZjcHUuaW9wbCk7CiAgICAgT0ZGU0VUKFZDUFVfZ3Vlc3RfY29udGV4dF9mbGFncywgc3Ry dWN0IHZjcHUsIGFyY2gudmdjX2ZsYWdzKTsKKyAgICBPRkZTRVQoVkNQVV9hcmNoX21zciwgc3Ry dWN0IHZjcHUsIGFyY2gubXNyKTsKICAgICBPRkZTRVQoVkNQVV9ubWlfcGVuZGluZywgc3RydWN0 IHZjcHUsIG5taV9wZW5kaW5nKTsKICAgICBPRkZTRVQoVkNQVV9tY2VfcGVuZGluZywgc3RydWN0 IHZjcHUsIG1jZV9wZW5kaW5nKTsKICAgICBPRkZTRVQoVkNQVV9ubWlfb2xkX21hc2ssIHN0cnVj dCB2Y3B1LCBubWlfc3RhdGUub2xkX21hc2spOwpAQCAtMTM3LDYgKzEzOCw4IEBAIHZvaWQgX19k dW1teV9fKHZvaWQpCiAgICAgT0ZGU0VUKENQVUlORk9fcHJvY2Vzc29yX2lkLCBzdHJ1Y3QgY3B1 X2luZm8sIHByb2Nlc3Nvcl9pZCk7CiAgICAgT0ZGU0VUKENQVUlORk9fY3VycmVudF92Y3B1LCBz dHJ1Y3QgY3B1X2luZm8sIGN1cnJlbnRfdmNwdSk7CiAgICAgT0ZGU0VUKENQVUlORk9fY3I0LCBz dHJ1Y3QgY3B1X2luZm8sIGNyNCk7CisgICAgT0ZGU0VUKENQVUlORk9fc2hhZG93X3NwZWNfY3Ry bCwgc3RydWN0IGNwdV9pbmZvLCBzaGFkb3dfc3BlY19jdHJsKTsKKyAgICBPRkZTRVQoQ1BVSU5G T191c2Vfc2hhZG93X3NwZWNfY3RybCwgc3RydWN0IGNwdV9pbmZvLCB1c2Vfc2hhZG93X3NwZWNf Y3RybCk7CiAgICAgREVGSU5FKENQVUlORk9fc2l6ZW9mLCBzaXplb2Yoc3RydWN0IGNwdV9pbmZv KSk7CiAgICAgQkxBTksoKTsKIApAQCAtMTUyLDYgKzE1NSw5IEBAIHZvaWQgX19kdW1teV9fKHZv aWQpCiAgICAgT0ZGU0VUKFRSQVBCT1VOQ0VfZWlwLCBzdHJ1Y3QgdHJhcF9ib3VuY2UsIGVpcCk7 CiAgICAgQkxBTksoKTsKIAorICAgIE9GRlNFVChWQ1BVTVNSX3NwZWNfY3RybF9ob3N0LCBzdHJ1 Y3QgbXNyX3ZjcHVfcG9saWN5LCBzcGVjX2N0cmwuaG9zdCk7CisgICAgQkxBTksoKTsKKwogI2lm ZGVmIENPTkZJR19QRVJGX0NPVU5URVJTCiAgICAgREVGSU5FKEFTTV9QRVJGQ19leGNlcHRpb25z LCBQRVJGQ19leGNlcHRpb25zKTsKICAgICBCTEFOSygpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2Vu dHJ5LlMKaW5kZXggM2ZlYTU0ZS4uNDIyYzI1ZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4 Nl82NC9jb21wYXQvZW50cnkuUworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9lbnRy eS5TCkBAIC0xOCw2ICsxOCwxMCBAQCBFTlRSWShlbnRyeV9pbnQ4MikKICAgICAgICAgcHVzaHEg JDAKICAgICAgICAgbW92bCAgJEhZUEVSQ0FMTF9WRUNUT1IsIDQoJXJzcCkKICAgICAgICAgU0FW RV9BTEwgY29tcGF0PTEgLyogRFBMMSBnYXRlLCByZXN0cmljdGVkIHRvIDMyYml0IFBWIGd1ZXN0 cyBvbmx5LiAqLworCisgICAgICAgIFNQRUNfQ1RSTF9FTlRSWV9GUk9NX1BWIC8qIFJlcTogJXJz cD1yZWdzL2NwdWluZm8gQ2xvYjogYWNkICovCisgICAgICAgIC8qIFdBUk5JTkchIGByZXRgLCBg Y2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBiZWZvcmUgdGhpcyBwb2ludC4gKi8KKwogICAgICAg ICBDUjRfUFYzMl9SRVNUT1JFCiAKICAgICAgICAgR0VUX0NVUlJFTlQoYngpCkBAIC0xNDIsNiAr MTQ2LDEwIEBAIEVOVFJZKGNvbXBhdF9yZXN0b3JlX2FsbF9ndWVzdCkKICAgICAgICAgLnBvcHNl Y3Rpb24KICAgICAgICAgb3IgICAgJFg4Nl9FRkxBR1NfSUYsJXIxMQogICAgICAgICBtb3YgICAl cjExZCxVUkVHU19lZmxhZ3MoJXJzcCkKKworICAgICAgICAvKiBXQVJOSU5HISBgcmV0YCwgYGNh bGwgKmAsIGBqbXAgKmAgbm90IHNhZmUgYmV5b25kIHRoaXMgcG9pbnQuICovCisgICAgICAgIFNQ RUNfQ1RSTF9FWElUX1RPX0dVRVNUIC8qIFJlcTogYj1jdXJyICVyc3A9cmVncy9jcHVpbmZvLCBD bG9iOiBhY2QgKi8KKwogICAgICAgICBSRVNUT1JFX0FMTCBhZGo9OCBjb21wYXQ9MQogLkxmdDA6 ICBpcmV0cQogICAgICAgICBfQVNNX1BSRV9FWFRBQkxFKC5MZnQwLCBoYW5kbGVfZXhjZXB0aW9u KQpAQCAtMTk5LDYgKzIwNywxMCBAQCBFTlRSWShjc3Rhcl9lbnRlcikKICAgICAgICAgcHVzaHEg JDAKICAgICAgICAgbW92bCAgJFRSQVBfc3lzY2FsbCwgNCglcnNwKQogICAgICAgICBTQVZFX0FM TAorCisgICAgICAgIFNQRUNfQ1RSTF9FTlRSWV9GUk9NX1BWIC8qIFJlcTogJXJzcD1yZWdzL2Nw dWluZm8gQ2xvYjogYWNkICovCisgICAgICAgIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwg YGptcCAqYCBub3Qgc2FmZSBiZWZvcmUgdGhpcyBwb2ludC4gKi8KKwogICAgICAgICBHRVRfQ1VS UkVOVChieCkKICAgICAgICAgbW92cSAgVkNQVV9kb21haW4oJXJieCksJXJjeAogICAgICAgICBj bXBiICAkMCxET01BSU5faXNfMzJiaXRfcHYoJXJjeCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni94ODZfNjQvZW50cnkuUyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUwppbmRleCBiNDlk NjJiLi5iYTdjNWU5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMKKysr IGIveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCkBAIC0zNyw2ICszNywxMCBAQCBFTlRSWShz d2l0Y2hfdG9fa2VybmVsKQogLyogJXJieDogc3RydWN0IHZjcHUsIGludGVycnVwdHMgZGlzYWJs ZWQgKi8KIHJlc3RvcmVfYWxsX2d1ZXN0OgogICAgICAgICBBU1NFUlRfSU5URVJSVVBUU19ESVNB QkxFRAorCisgICAgICAgIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qg c2FmZSBiZXlvbmQgdGhpcyBwb2ludC4gKi8KKyAgICAgICAgU1BFQ19DVFJMX0VYSVRfVE9fR1VF U1QgLyogUmVxOiBiPWN1cnIgJXJzcD1yZWdzL2NwdWluZm8sIENsb2I6IGFjZCAqLworCiAgICAg ICAgIFJFU1RPUkVfQUxMCiAgICAgICAgIHRlc3R3ICRUUkFQX3N5c2NhbGwsNCglcnNwKQogICAg ICAgICBqeiAgICBpcmV0X2V4aXRfdG9fZ3Vlc3QKQEAgLTcxLDYgKzc1LDggQEAgaXJldF9leGl0 X3RvX2d1ZXN0OgogICAgICAgICBBTElHTgogLyogTm8gc3BlY2lhbCByZWdpc3RlciBhc3N1bXB0 aW9ucy4gKi8KIHJlc3RvcmVfYWxsX3hlbjoKKyAgICAgICAgLyogV0FSTklORyEgYHJldGAsIGBj YWxsICpgLCBgam1wICpgIG5vdCBzYWZlIGJleW9uZCB0aGlzIHBvaW50LiAqLworICAgICAgICBT UEVDX0NUUkxfRVhJVF9UT19YRU4gLyogUmVxOiBub3RoaW5nICAgICAgICAgICBDbG9iOiBhY2Qg Ki8KICAgICAgICAgUkVTVE9SRV9BTEwgYWRqPTgKICAgICAgICAgaXJldHEKIApAQCAtMTAwLDYg KzEwNiwxMCBAQCBFTlRSWShsc3Rhcl9lbnRlcikKICAgICAgICAgcHVzaHEgJDAKICAgICAgICAg bW92bCAgJFRSQVBfc3lzY2FsbCwgNCglcnNwKQogICAgICAgICBTQVZFX0FMTAorCisgICAgICAg IFNQRUNfQ1RSTF9FTlRSWV9GUk9NX1BWIC8qIFJlcTogJXJzcD1yZWdzL2NwdWluZm8gQ2xvYjog YWNkICovCisgICAgICAgIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qg c2FmZSBiZWZvcmUgdGhpcyBwb2ludC4gKi8KKwogICAgICAgICBHRVRfQ1VSUkVOVChieCkKICAg ICAgICAgdGVzdGIgJFRGX2tlcm5lbF9tb2RlLFZDUFVfdGhyZWFkX2ZsYWdzKCVyYngpCiAgICAg ICAgIGp6ICAgIHN3aXRjaF90b19rZXJuZWwKQEAgLTE5Miw2ICsyMDIsMTAgQEAgR0xPQkFMKHN5 c2VudGVyX2VmbGFnc19zYXZlZCkKICAgICAgICAgcHVzaHEgJDAKICAgICAgICAgbW92bCAgJFRS QVBfc3lzY2FsbCwgNCglcnNwKQogICAgICAgICBTQVZFX0FMTAorCisgICAgICAgIFNQRUNfQ1RS TF9FTlRSWV9GUk9NX1BWIC8qIFJlcTogJXJzcD1yZWdzL2NwdWluZm8gQ2xvYjogYWNkICovCisg ICAgICAgIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBiZWZv cmUgdGhpcyBwb2ludC4gKi8KKwogICAgICAgICBHRVRfQ1VSUkVOVChieCkKICAgICAgICAgY21w YiAgJDAsVkNQVV9zeXNlbnRlcl9kaXNhYmxlc19ldmVudHMoJXJieCkKICAgICAgICAgbW92cSAg VkNQVV9zeXNlbnRlcl9hZGRyKCVyYngpLCVyYXgKQEAgLTIyOCw2ICsyNDIsOSBAQCBFTlRSWShp bnQ4MF9kaXJlY3RfdHJhcCkKICAgICAgICAgbW92bCAgJDB4ODAsIDQoJXJzcCkKICAgICAgICAg U0FWRV9BTEwKIAorICAgICAgICBTUEVDX0NUUkxfRU5UUllfRlJPTV9QViAvKiBSZXE6ICVyc3A9 cmVncy9jcHVpbmZvIENsb2I6IGFjZCAqLworICAgICAgICAvKiBXQVJOSU5HISBgcmV0YCwgYGNh bGwgKmAsIGBqbXAgKmAgbm90IHNhZmUgYmVmb3JlIHRoaXMgcG9pbnQuICovCisKICAgICAgICAg Y21wYiAgJDAsdW50cnVzdGVkX21zaSglcmlwKQogVU5MSUtFTFlfU1RBUlQobmUsIG1zaV9jaGVj aykKICAgICAgICAgbW92bCAgJDB4ODAsJWVkaQpAQCAtMzkxLDYgKzQwOCwxMCBAQCBFTlRSWShk b21fY3Jhc2hfc3luY19leHRhYmxlKQogCiBFTlRSWShjb21tb25faW50ZXJydXB0KQogICAgICAg ICBTQVZFX0FMTCBDTEFDCisKKyAgICAgICAgU1BFQ19DVFJMX0VOVFJZX0ZST01fSU5UUiAvKiBS ZXE6ICVyc3A9cmVncyAgICAgICAgIENsb2I6IGFjZCAqLworICAgICAgICAvKiBXQVJOSU5HISBg cmV0YCwgYGNhbGwgKmAsIGBqbXAgKmAgbm90IHNhZmUgYmVmb3JlIHRoaXMgcG9pbnQuICovCisK ICAgICAgICAgQ1I0X1BWMzJfUkVTVE9SRQogICAgICAgICBtb3ZxICVyc3AsJXJkaQogICAgICAg ICBjYWxscSBkb19JUlEKQEAgLTQxMSw2ICs0MzIsMTAgQEAgRU5UUlkocGFnZV9mYXVsdCkKIC8q IE5vIHNwZWNpYWwgcmVnaXN0ZXIgYXNzdW1wdGlvbnMuICovCiBHTE9CQUwoaGFuZGxlX2V4Y2Vw dGlvbikKICAgICAgICAgU0FWRV9BTEwgQ0xBQworCisgICAgICAgIFNQRUNfQ1RSTF9FTlRSWV9G Uk9NX0lOVFIgLyogUmVxOiAlcnNwPXJlZ3MgICAgICAgICBDbG9iOiBhY2QgKi8KKyAgICAgICAg LyogV0FSTklORyEgYHJldGAsIGBjYWxsICpgLCBgam1wICpgIG5vdCBzYWZlIGJlZm9yZSB0aGlz IHBvaW50LiAqLworCiBoYW5kbGVfZXhjZXB0aW9uX3NhdmVkOgogICAgICAgICBHRVRfQ1VSUkVO VChieCkKICAgICAgICAgdGVzdGIgJFg4Nl9FRkxBR1NfSUY+PjgsVVJFR1NfZWZsYWdzKzEoJXJz cCkKQEAgLTU4Niw2ICs2MTEsMTAgQEAgRU5UUlkoZG91YmxlX2ZhdWx0KQogICAgICAgICBtb3Zs ICAkVFJBUF9kb3VibGVfZmF1bHQsNCglcnNwKQogICAgICAgICAvKiBTZXQgQUMgdG8gcmVkdWNl IGNoYW5jZSBvZiBmdXJ0aGVyIFNNQVAgZmF1bHRzICovCiAgICAgICAgIFNBVkVfQUxMIFNUQUMK KworICAgICAgICBTUEVDX0NUUkxfRU5UUllfRlJPTV9JTlRSIC8qIFJlcTogJXJzcD1yZWdzIENs b2I6IGFjZCAqLworICAgICAgICAvKiBXQVJOSU5HISBgcmV0YCwgYGNhbGwgKmAsIGBqbXAgKmAg bm90IHNhZmUgYmVmb3JlIHRoaXMgcG9pbnQuICovCisKICAgICAgICAgbW92cSAgJXJzcCwlcmRp CiAgICAgICAgIGNhbGwgIGRvX2RvdWJsZV9mYXVsdAogICAgICAgICBCVUcgICAvKiBkb19kb3Vi bGVfZmF1bHQoKSBzaG91bGRuJ3QgcmV0dXJuLiAqLwpAQCAtNjA0LDYgKzYzMywxMCBAQCBFTlRS WShubWkpCiAgICAgICAgIG1vdmwgICRUUkFQX25taSw0KCVyc3ApCiBoYW5kbGVfaXN0X2V4Y2Vw dGlvbjoKICAgICAgICAgU0FWRV9BTEwgQ0xBQworCisgICAgICAgIFNQRUNfQ1RSTF9FTlRSWV9G Uk9NX0lOVFIgLyogUmVxOiAlcnNwPXJlZ3MgQ2xvYjogYWNkICovCisgICAgICAgIC8qIFdBUk5J TkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBiZWZvcmUgdGhpcyBwb2ludC4g Ki8KKwogICAgICAgICBDUjRfUFYzMl9SRVNUT1JFCiAgICAgICAgIHRlc3RiICQzLFVSRUdTX2Nz KCVyc3ApCiAgICAgICAgIGp6ICAgIDFmCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2 L2FzbV9kZWZucy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9hc21fZGVmbnMuaAppbmRleCA0MGIw MjUwLi5iYzEwMTY3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2FzbV9kZWZucy5o CisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvYXNtX2RlZm5zLmgKQEAgLTcsNiArNyw3IEBACiAj aW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CiAjZW5kaWYKICNpbmNsdWRlIDxhc20vYnVnLmg+ CisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAjaW5j bHVkZSA8YXNtL3BlcmNwdS5oPgogI2luY2x1ZGUgPHhlbi9zdHJpbmdpZnkuaD4KQEAgLTM0NCw0 ICszNDUsNiBAQCBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHN0YWModm9pZCkKICNkZWZpbmUg UkVYNjRfUFJFRklYICJyZXg2NC8iCiAjZW5kaWYKIAorI2luY2x1ZGUgPGFzbS9zcGVjX2N0cmxf YXNtLmg+CisKICNlbmRpZiAvKiBfX1g4Nl9BU01fREVGTlNfSF9fICovCmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20teDg2L2N1cnJlbnQuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVu dC5oCmluZGV4IDg5ODQ5OTIuLjc0OWQ3YWEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvY3VycmVudC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oCkBAIC00MSw2 ICs0MSwxMiBAQCBzdHJ1Y3QgY3B1X2luZm8gewogICAgIHN0cnVjdCB2Y3B1ICpjdXJyZW50X3Zj cHU7CiAgICAgdW5zaWduZWQgbG9uZyBwZXJfY3B1X29mZnNldDsKICAgICB1bnNpZ25lZCBsb25n IGNyNDsKKworICAgIC8qIFNlZSBhc20teDg2L3NwZWNfY3RybF9hc20uaCBmb3IgdXNhZ2UuICov CisgICAgdW5zaWduZWQgaW50IHNoYWRvd19zcGVjX2N0cmw7CisgICAgYm9vbCAgICAgICAgIHVz ZV9zaGFkb3dfc3BlY19jdHJsOworCisgICAgdW5zaWduZWQgbG9uZyBfX3BhZDsKICAgICAvKiBn ZXRfc3RhY2tfYm90dG9tKCkgbXVzdCBiZSAxNi1ieXRlIGFsaWduZWQgKi8KIH07CiAKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbm9wcy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9u b3BzLmgKaW5kZXggMWE0NmI5Ny4uOWU4ZjUzMCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9ub3BzLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ub3BzLmgKQEAgLTUwLDcgKzUw LDcgQEAKICNkZWZpbmUgUDZfTk9QOSAweDY2LDB4MGYsMHgxZiwweDg0LDB4MDAsMCwwLDAsMAog CiAjaWZkZWYgX19BU1NFTUJMWV9fCi0jZGVmaW5lIF9BU01fTUtfTk9QKHgpIC5ieXRlIHgKKyNk ZWZpbmUgX0FTTV9NS19OT1AoeCkgLmJ5dGUgeDsKICNlbHNlCiAjZGVmaW5lIF9BU01fTUtfTk9Q KHgpICIuYnl0ZSAiIF9fc3RyaW5naWZ5KHgpICJcbiIKICNlbmRpZgpAQCAtNjUsNiArNjUsMTIg QEAKICNkZWZpbmUgQVNNX05PUDggX0FTTV9NS19OT1AoUDZfTk9QOCkKICNkZWZpbmUgQVNNX05P UDkgX0FTTV9NS19OT1AoUDZfTk9QOSkKIAorI2RlZmluZSBBU01fTk9QMjIgQVNNX05PUDggQVNN X05PUDggQVNNX05PUDYKKyNkZWZpbmUgQVNNX05PUDI2IEFTTV9OT1A4IEFTTV9OT1A4IEFTTV9O T1A4IEFTTV9OT1AyCisjZGVmaW5lIEFTTV9OT1AzMiBBU01fTk9QOCBBU01fTk9QOCBBU01fTk9Q OCBBU01fTk9QOAorI2RlZmluZSBBU01fTk9QMzMgQVNNX05PUDggQVNNX05PUDggQVNNX05PUDgg QVNNX05PUDcgQVNNX05PUDIKKyNkZWZpbmUgQVNNX05PUDM5IEFTTV9OT1A4IEFTTV9OT1A4IEFT TV9OT1A4IEFTTV9OT1A4IEFTTV9OT1A3CisKICNkZWZpbmUgQVNNX05PUF9NQVggOQogCiAjZW5k aWYgLyogX19YODZfQVNNX05PUFNfSF9fICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20t eDg2L3NwZWNfY3RybC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9zcGVjX2N0cmwuaAppbmRleCBk MGI0NGY2Li4yOWEzMWE5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3NwZWNfY3Ry bC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvc3BlY19jdHJsLmgKQEAgLTIwLDggKzIwLDE3 IEBACiAjaWZuZGVmIF9fWDg2X1NQRUNfQ1RSTF9IX18KICNkZWZpbmUgX19YODZfU1BFQ19DVFJM X0hfXwogCisjaW5jbHVkZSA8YXNtL2N1cnJlbnQuaD4KKwogdm9pZCBpbml0X3NwZWN1bGF0aW9u X21pdGlnYXRpb25zKHZvaWQpOwogCitzdGF0aWMgaW5saW5lIHZvaWQgaW5pdF9zaGFkb3dfc3Bl Y19jdHJsX3N0YXRlKHZvaWQpCit7CisgICAgc3RydWN0IGNwdV9pbmZvICppbmZvID0gZ2V0X2Nw dV9pbmZvKCk7CisKKyAgICBpbmZvLT5zaGFkb3dfc3BlY19jdHJsID0gaW5mby0+dXNlX3NoYWRv d19zcGVjX2N0cmwgPSAwOworfQorCiAjZW5kaWYgLyogIV9fWDg2X1NQRUNfQ1RSTF9IX18gKi8K IAogLyoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvc3BlY19jdHJsX2FzbS5oIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9zcGVjX2N0cmxfYXNtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMTNlMDU4YwotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvc3BlY19jdHJsX2FzbS5oCkBAIC0wLDAgKzEsMjMwIEBACisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisgKiBpbmNsdWRlL2FzbS14ODYvc3BlY19jdHJsLmgKKyAqCisgKiBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisgKgorICogQ29weXJpZ2h0IChjKSAyMDE3IENpdHJpeCBTeXN0ZW1z IEx0ZC4KKyAqLworCisjaWZuZGVmIF9fWDg2X1NQRUNfQ1RSTF9BU01fSF9fCisjZGVmaW5lIF9f WDg2X1NQRUNfQ1RSTF9BU01fSF9fCisKKyNpZmRlZiBfX0FTU0VNQkxZX18KKyNpbmNsdWRlIDxh c20vbXNyLmg+CisKKy8qCisgKiBTYXZpbmcgYW5kIHJlc3RvcmluZyBNU1JfU1BFQ19DVFJMIHN0 YXRlIGlzIGEgbGl0dGxlIHRyaWNreS4KKyAqCisgKiBXZSB3YW50IHRoZSBndWVzdHMgY2hvaWNl IG9mIFNQRUNfQ1RSTCB3aGlsZSBpbiBndWVzdCBjb250ZXh0LCBhbmQgSUJSUworICogKHNldCBv ciBjbGVhciwgZGVwZW5kaW5nIG9uIHRoZSBoYXJkd2FyZSkgd2hpbGUgcnVubmluZyBpbiBYZW4g Y29udGV4dC4KKyAqIFRoZXJlZm9yZSwgYSBzaW1wbGlzdGljIGFsZ29yaXRobSBpczoKKyAqCisg KiAgLSBTZXQvY2xlYXIgSUJSUyBvbiBlbnRyeSB0byBYZW4KKyAqICAtIFNldCB0aGUgZ3Vlc3Rz JyBjaG9pY2Ugb24gZXhpdCB0byBndWVzdAorICogIC0gTGVhdmUgU1BFQ19DVFJMIHVuY2hhbmdl ZCBvbiBleGl0IHRvIHhlbgorICoKKyAqIFRoZXJlIGFyZSB0d28gY29tcGxpY2F0aW5nIGZhY3Rv cnM6CisgKiAgMSkgSFZNIGd1ZXN0cyBjYW4gaGF2ZSBkaXJlY3QgYWNjZXNzIHRvIHRoZSBNU1Is IHNvIGl0IGNhbiBjaGFuZ2UKKyAqICAgICBiZWhpbmQgWGVuJ3MgYmFjay4KKyAqICAyKSBBbiBO TUkgb3IgTUNFIGNhbiBpbnRlcnJ1cHQgYXQgYW55IHBvaW50LCBpbmNsdWRpbmcgZWFybHkgaW4g dGhlIGVudHJ5CisgKiAgICAgcGF0aCwgb3IgbGF0ZSBpbiB0aGUgZXhpdCBwYXRoIGFmdGVyIHJl c3RvcmluZyB0aGUgZ3Vlc3QgdmFsdWUuICBUaGlzCisgKiAgICAgd2lsbCBjb3JydXB0IHRoZSBn dWVzdCB2YWx1ZS4KKyAqCisgKiBGYWN0b3IgMSBpcyBkZWFsdCB3aXRoIGJ5IHJlbHlpbmcgb24g Tk1Jcy9NQ0VzIGJlaW5nIGJsb2NrZWQgaW1tZWRpYXRlbHkKKyAqIGFmdGVyIFZNRVhJVC4gIFRo ZSBWTUVYSVQtc3BlY2lmaWMgY29kZSByZWFkcyBNU1JfU1BFQ19DVFJMIGFuZCB1cGRhdGVzCisg KiBjdXJyZW50IGJlZm9yZSBsb2FkaW5nIFhlbidzIE1TUl9TUEVDX0NUUkwgc2V0dGluZy4KKyAq CisgKiBGYWN0b3IgMiBpcyBoYXJkZXIuICBXZSBtYWludGFpbiBhIHNoYWRvd19zcGVjX2N0cmwg dmFsdWUsIGFuZAorICogdXNlX3NoYWRvd19zcGVjX2N0cmwgYm9vbGVhbiBwZXIgY3B1LiAgVGhl IHN5bmNocm9ub3VzIHVzZSBpczoKKyAqCisgKiAgMSkgU3RvcmUgZ3Vlc3QgdmFsdWUgaW4gc2hh ZG93X3NwZWNfY3RybAorICogIDIpIFNldCB1c2Vfc2hhZG93X3NwZWNfY3RybCBib29sZWFuCisg KiAgMykgTG9hZCBndWVzdCB2YWx1ZSBpbnRvIE1TUl9TUEVDX0NUUkwKKyAqICA0KSBFeGl0IHRv IGd1ZXN0CisgKiAgNSkgRW50cnkgZnJvbSBndWVzdAorICogIDYpIENsZWFyIHVzZV9zaGFkb3df c3BlY19jdHJsIGJvb2xlYW4KKyAqCisgKiBUaGUgYXN5bmNocm9ub3VzIHVzZSBmb3IgaW50ZXJy dXB0cy9leGNlcHRpb25zIGlzOgorICogIC0gIFNldC9jbGVhciBJQlJTIG9uIGVudHJ5IHRvIFhl bgorICogIC0gIE9uIGV4aXQgdG8gWGVuLCBjaGVjayB1c2Vfc2hhZG93X3NwZWNfY3RybAorICog IC0gIElmIHNldCwgbG9hZCBzaGFkb3dfc3BlY19jdHJsCisgKgorICogVGhlcmVmb3JlLCBhbiBp bnRlcnJ1cHQvZXhjZXB0aW9uIHdoaWNoIGhpdHMgdGhlIHN5bmNocm9ub3VzIHBhdGggYmV0d2Vl bgorICogc3RlcHMgMiBhbmQgNiB3aWxsIHJlc3RvcmUgdGhlIHNoYWRvdyB2YWx1ZSByYXRoZXIg dGhhbiBsZWF2aW5nIFhlbidzIHZhbHVlCisgKiBsb2FkZWQgYW5kIGNvcnJ1cHRpbmcgdGhlIHZh bHVlIHVzZWQgaW4gZ3Vlc3QgY29udGV4dC4KKyAqCisgKiBUaGUgZm9sbG93aW5nIEFTTSBmcmFn bWVudHMgaW1wbGVtZW50IHRoaXMgYWxnb3JpdGhtLiAgU2VlIHRoZWlyIGxvY2FsCisgKiBjb21t ZW50cyBmb3IgZnVydGhlciBkZXRhaWxzLgorICogIC0gU1BFQ19DVFJMX0VOVFJZX0ZST01fVk1F WElUCisgKiAgLSBTUEVDX0NUUkxfRU5UUllfRlJPTV9QVgorICogIC0gU1BFQ19DVFJMX0VOVFJZ X0ZST01fSU5UUgorICogIC0gU1BFQ19DVFJMX0VYSVRfVE9fWEVOCisgKiAgLSBTUEVDX0NUUkxf RVhJVF9UT19HVUVTVAorICovCisKKy5tYWNybyBET19TUEVDX0NUUkxfRU5UUllfRlJPTV9WTUVY SVQgaWJyc192YWw6cmVxCisvKgorICogUmVxdWlyZXMgJXJieD1jdXJyZW50LCAlcnNwPXJlZ3Mv Y3B1aW5mbworICogQ2xvYmJlcnMgJXJheCwgJXJjeCwgJXJkeAorICoKKyAqIFRoZSBjb21tb24g Y2FzZSBpcyB0aGF0IGEgZ3Vlc3QgaGFzIGRpcmVjdCBhY2Nlc3MgdG8gTVNSX1NQRUNfQ1RSTCwg YXQKKyAqIHdoaWNoIHBvaW50IHdlIG5lZWQgdG8gc2F2ZSB0aGUgZ3Vlc3QgdmFsdWUgYmVmb3Jl IHNldHRpbmcgSUJSUyBmb3IgWGVuLgorICogVW5pbGF0ZXJhbGx5IHNhdmluZyB0aGUgZ3Vlc3Qg dmFsdWUgaXMgc2hvcnRlciBhbmQgZmFzdGVyIHRoYW4gY2hlY2tpbmcuCisgKi8KKyAgICBtb3Yg JE1TUl9TUEVDX0NUUkwsICVlY3gKKyAgICByZG1zcgorCisgICAgLyogU3Rhc2ggdGhlIHZhbHVl IGZyb20gaGFyZHdhcmUuICovCisgICAgbW92IFZDUFVfYXJjaF9tc3IoJXJieCksICVyZHgKKyAg ICBtb3YgJWFsLCBWQ1BVTVNSX3NwZWNfY3RybF9ob3N0KCVyZHgpCisgICAgeG9yICVlZHgsICVl ZHgKKworICAgIC8qIENsZWFyIFNQRUNfQ1RSTCBzaGFkb3dpbmcgKmJlZm9yZSogbG9hZGluZyBY ZW4ncyB2YWx1ZS4gKi8KKyAgICBtb3ZiICVkbCwgQ1BVSU5GT191c2Vfc2hhZG93X3NwZWNfY3Ry bCglcnNwKQorCisgICAgLyogTG9hZCBYZW4ncyBpbmRlbnRlZCB2YWx1ZS4gKi8KKyAgICBtb3Yg JFxpYnJzX3ZhbCwgJWVheAorICAgIHdybXNyCisuZW5kbQorCisubWFjcm8gRE9fU1BFQ19DVFJM X0VOVFJZIG1heWJleGVuOnJlcSBpYnJzX3ZhbDpyZXEKKy8qCisgKiBSZXF1aXJlcyAlcnNwPXJl Z3MgKGFsc28gY3B1aW5mbyBpZiAhbWF5YmV4ZW4pCisgKiBDbG9iYmVycyAlcmF4LCAlcmN4LCAl cmR4CisgKgorICogUFYgZ3Vlc3RzIGNhbid0IHVwZGF0ZSBNU1JfU1BFQ19DVFJMIGJlaGluZCBY ZW4ncyBiYWNrLCBzbyBubyBuZWVkIHRvIHJlYWQKKyAqIGl0IGJhY2suICBFbnRyaWVzIGZyb20g Z3Vlc3QgY29udGV4dCBuZWVkIHRvIGNsZWFyIFNQRUNfQ1RSTCBzaGFkb3dpbmcsCisgKiB3aGls ZSBlbnRyaWVzIGZyb20gWGVuIG11c3QgbGVhdmUgc2hhZG93aW5nIGluIGl0cyBjdXJyZW50IHN0 YXRlLgorICovCisgICAgbW92ICRNU1JfU1BFQ19DVFJMLCAlZWN4CisKKyAgICAuaWYgXG1heWJl eGVuCisgICAgICAgIGNtcGwgJF9fSFlQRVJWSVNPUl9DUywgVVJFR1NfY3MoJXJzcCkKKyAgICAg ICAgamUgLkxlbnRyeV9mcm9tX3hlblxACisgICAgLmVuZGlmCisKKyAgICAvKgorICAgICAqIENs ZWFyIFNQRUNfQ1RSTCBzaGFkb3dpbmcgKmJlZm9yZSogbG9hZGluZyBYZW4ncyB2YWx1ZS4gIElm IGVudGVyaW5nCisgICAgICogZnJvbSBhIHBvc3NpYmx5LXhlbiBjb250ZXh0LCAlcnNwIGRvZXNu J3QgbmVjZXNzZXJpbHkgYWxpYXMgdGhlIGNwdWluZm8KKyAgICAgKiBibG9jayBzbyBjYWxjdWxh dGUgdGhlIHBvc2l0aW9uIGRpcmVjdGx5LgorICAgICAqLworICAgIC5pZiBcbWF5YmV4ZW4KKyAg ICAgICAgR0VUX1NUQUNLX0VORChkeCkKKyAgICAgICAgbW92YiAkMCwgU1RBQ0tfQ1BVSU5GT19G SUVMRCh1c2Vfc2hhZG93X3NwZWNfY3RybCkoJXJkeCkKKyAgICAuZWxzZQorICAgICAgICBtb3Zi ICQwLCBDUFVJTkZPX3VzZV9zaGFkb3dfc3BlY19jdHJsKCVyc3ApCisgICAgLmVuZGlmCisKKy5M ZW50cnlfZnJvbV94ZW5cQDoKKyAgICAvKiBMb2FkIFhlbidzIGluZGVudGVkIHZhbHVlLiAqLwor ICAgIG1vdiAkXGlicnNfdmFsLCAlZWF4CisgICAgeG9yICVlZHgsICVlZHgKKyAgICB3cm1zcgor LmVuZG0KKworLm1hY3JvIERPX1NQRUNfQ1RSTF9FWElUX1RPX1hFTgorLyoKKyAqIFJlcXVpcmVz IG5vdGhpbmcKKyAqIENsb2JiZXJzICVyYXgsICVyY3gsICVyZHgKKyAqCisgKiBXaGVuIHJldHVy bmluZyB0byBYZW4gY29udGV4dCwgbG9vayB0byBzZWUgd2hldGhlciBTUEVDX0NUUkwgc2hhZG93 aW5nIGlzCisgKiBpbiBlZmZlY3QsIGFuZCByZWxvYWQgdGhlIHNoYWRvdyB2YWx1ZS4gIFRoaXMg Y292ZXJzIHJhY2UgY29uZGl0aW9ucyB3aGljaAorICogZXhpc3Qgd2l0aCBhbiBOTUkvTUNFL2V0 YyBoaXR0aW5nIGxhdGUgaW4gdGhlIHJldHVybi10by1ndWVzdCBwYXRoLgorICovCisgICAgR0VU X1NUQUNLX0VORChkeCkKKyAgICBjbXBiICQwLCBTVEFDS19DUFVJTkZPX0ZJRUxEKHVzZV9zaGFk b3dfc3BlY19jdHJsKSglcmR4KQorICAgIGplIC5MZW5kX1xACisKKyAgICBtb3YgU1RBQ0tfQ1BV SU5GT19GSUVMRChzaGFkb3dfc3BlY19jdHJsKSglcmR4KSwgJWVheAorICAgIG1vdiAkTVNSX1NQ RUNfQ1RSTCwgJWVjeAorICAgIHhvciAlZWR4LCAlZWR4CisgICAgd3Jtc3IKKworLkxlbmRfXEA6 CisuZW5kbQorCisubWFjcm8gRE9fU1BFQ19DVFJMX0VYSVRfVE9fR1VFU1QKKy8qCisgKiBSZXF1 aXJlcyAlcmJ4PWN1cnJlbnQsICVyc3A9cmVncy9jcHVpbmZvCisgKiBDbG9iYmVycyAlcmF4LCAl cmN4LCAlcmR4CisgKgorICogV2hlbiByZXR1cm5pbmcgdG8gZ3Vlc3QgY29udGV4dCwgc2V0IHVw IFNQRUNfQ1RSTCBzaGFkb3dpbmcgYW5kIGxvYWQgdGhlCisgKiBndWVzdCB2YWx1ZS4KKyAqLwor ICAgIG1vdiBWQ1BVX2FyY2hfbXNyKCVyYngpLCAlcmR4CisgICAgbW92IFZDUFVNU1Jfc3BlY19j dHJsX2hvc3QoJXJkeCksICVlYXgKKworICAgIC8qIFNldCB1cCBzaGFkb3cgdmFsdWUgKmJlZm9y ZSogZW5hYmxpbmcgc2hhZG93aW5nLiAqLworICAgIG1vdiAlZWF4LCBDUFVJTkZPX3NoYWRvd19z cGVjX2N0cmwoJXJzcCkKKworICAgIC8qIFNldCBTUEVDX0NUUkwgc2hhZG93aW5nICpiZWZvcmUq IGxvYWRpbmcgdGhlIGd1ZXN0IHZhbHVlLiAqLworICAgIG1vdmIgJDEsIENQVUlORk9fdXNlX3No YWRvd19zcGVjX2N0cmwoJXJzcCkKKworICAgIG1vdiAkTVNSX1NQRUNfQ1RSTCwgJWVjeAorICAg IHhvciAlZWR4LCAlZWR4CisgICAgd3Jtc3IKKy5lbmRtCisKKy8qIFVzZSBhZnRlciBhIFZNRVhJ VCBmcm9tIGFuIEhWTSBndWVzdC4gKi8KKyNkZWZpbmUgU1BFQ19DVFJMX0VOVFJZX0ZST01fVk1F WElUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBBTFRFUk5BVElW RV8yIF9fc3RyaW5naWZ5KEFTTV9OT1AzMiksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgX19zdHJpbmdpZnkoRE9fU1BFQ19DVFJMX0VOVFJZX0ZST01fVk1FWElUICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgaWJyc192YWw9U1BFQ19D VFJMX0lCUlMpLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgWDg2X0ZFQVRV UkVfWEVOX0lCUlNfU0VULCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICAgICAgX19zdHJpbmdpZnkoRE9fU1BFQ19DVFJMX0VOVFJZX0ZST01fVk1FWElUICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgaWJyc192YWw9MCksICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgWDg2X0ZFQVRVUkVf WEVOX0lCUlNfQ0xFQVIKKworLyogVXNlIGFmdGVyIGFuIGVudHJ5IGZyb20gUFYgY29udGV4dCAo c3lzY2FsbC9zeXNlbnRlci9pbnQ4MC9pbnQ4Mi9ldGMpLiAqLworI2RlZmluZSBTUEVDX0NUUkxf RU5UUllfRlJPTV9QViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgIEFMVEVSTkFUSVZFXzIgX19zdHJpbmdpZnkoQVNNX05PUDIyKSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgICBfX3N0cmluZ2lmeShET19TUEVDX0NUUkxfRU5UUlkg bWF5YmV4ZW49MCAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICBp YnJzX3ZhbD1TUEVDX0NUUkxfSUJSUyksICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgICBYODZfRkVBVFVSRV9YRU5fSUJSU19TRVQsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgICBfX3N0cmluZ2lmeShET19TUEVDX0NUUkxfRU5UUlkgbWF5 YmV4ZW49MCBpYnJzX3ZhbD0wKSwgICAgICAgICAgXAorICAgICAgICBYODZfRkVBVFVSRV9YRU5f SUJSU19DTEVBUgorCisvKiBVc2UgaW4gaW50ZXJydXB0L2V4Y2VwdGlvbiBjb250ZXh0LiAgTWF5 IGludGVycnVwdCBYZW4gb3IgUFYgY29udGV4dC4gKi8KKyNkZWZpbmUgU1BFQ19DVFJMX0VOVFJZ X0ZST01fSU5UUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBB TFRFUk5BVElWRV8yIF9fc3RyaW5naWZ5KEFTTV9OT1AzOSksICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAgICAgX19zdHJpbmdpZnkoRE9fU1BFQ19DVFJMX0VOVFJZIG1heWJl eGVuPTEgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgaWJyc192 YWw9U1BFQ19DVFJMX0lCUlMpLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg WDg2X0ZFQVRVUkVfWEVOX0lCUlNfU0VULCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgX19zdHJpbmdpZnkoRE9fU1BFQ19DVFJMX0VOVFJZIG1heWJleGVu PTEgaWJyc192YWw9MCksICAgICAgICAgIFwKKyAgICAgICAgWDg2X0ZFQVRVUkVfWEVOX0lCUlNf Q0xFQVIKKworLyogVXNlIHdoZW4gZXhpdGluZyB0byBYZW4gY29udGV4dC4gKi8KKyNkZWZpbmUg U1BFQ19DVFJMX0VYSVRfVE9fWEVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICBBTFRFUk5BVElWRV8yIF9fc3RyaW5naWZ5KEFTTV9OT1AyNiksICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgRE9fU1BFQ19DVFJMX0VYSVRfVE9f WEVOLCBYODZfRkVBVFVSRV9YRU5fSUJSU19TRVQsICAgICAgICAgICAgIFwKKyAgICAgICAgRE9f U1BFQ19DVFJMX0VYSVRfVE9fWEVOLCBYODZfRkVBVFVSRV9YRU5fSUJSU19DTEVBUgorCisvKiBV c2Ugd2hlbiBleGl0aW5nIHRvIGd1ZXN0IGNvbnRleHQuICovCisjZGVmaW5lIFNQRUNfQ1RSTF9F WElUX1RPX0dVRVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgQUxURVJOQVRJVkVfMiBfX3N0cmluZ2lmeShBU01fTk9QMzMpLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgICAgIERPX1NQRUNfQ1RSTF9FWElUX1RPX0dVRVNULCBYODZf RkVBVFVSRV9YRU5fSUJSU19TRVQsICAgICAgICAgICBcCisgICAgICAgIERPX1NQRUNfQ1RSTF9F WElUX1RPX0dVRVNULCBYODZfRkVBVFVSRV9YRU5fSUJSU19DTEVBUgorCisjZW5kaWYgLyogX19B U1NFTUJMWV9fICovCisjZW5kaWYgLyogIV9fWDg2X1NQRUNfQ1RSTF9BU01fSF9fICovCisKKy8q CisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0Qi CisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1t b2RlOiBuaWwKKyAqIEVuZDoKKyAqLwotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs