From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 1/6] x86/vmx: Fix handing of MSR_DEBUGCTL on VMExit Date: Mon, 28 May 2018 15:27:53 +0100 Message-ID: <1527517678-1779-2-git-send-email-andrew.cooper3@citrix.com> References: <1527517678-1779-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: <1527517678-1779-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: Kevin Tian , Wei Liu , Jan Beulich , Andrew Cooper , Jun Nakajima , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5LCB3aGVuZXZlciB0aGUgZ3Vlc3Qgd3JpdGVzIGEgbm9uemVybyB2YWx1ZSB0byBN U1JfREVCVUdDVEwsIFhlbgp1cGRhdGVzIGEgaG9zdCBNU1IgbG9hZCBsaXN0IGVudHJ5IHdpdGgg dGhlIGN1cnJlbnQgaGFyZHdhcmUgdmFsdWUgb2YKTVNSX0RFQlVHQ1RMLiAgVGhpcyBpcyB3cm9u Zy4KCk9uIFZNRXhpdCwgaGFyZHdhcmUgYXV0b21hdGljYWxseSByZXNldHMgTVNSX0RFQlVHQ1RM IHRvIDAuICBUaGUgb25seSBjYXNlCndoZXJlIGRpZmZlcmVudCBiZWhhdmlvdXIgaXMgbmVlZGVk IGlzIGlmIFhlbiBpcyBkZWJ1Z2dpbmcgaXRzZWxmLCBhbmQgdGhpcwpuZWVkcyBzZXR0aW5nIHVw IHVuY29uZGl0aW9uYWxseSBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBWTSwgcmF0aGVyIHRoYW4g YmFzZWQKb24gZ3Vlc3QgYWN0aW9ucy4KClRoaXMgY291bGQgYmUgZml4ZWQgYnkgdXNpbmcgYSBo b3N0IE1TUiBsb2FkIGxpc3QgZW50cnkgc2V0IHVwIGR1cmluZwpjb25zdHJ1Y3Rfdm1jcygpLiAg SG93ZXZlciwgYSBtb3JlIGVmZmljaWVudCBvcHRpb24gaXMgdG8gdXNlIGFuIGFsdGVybmF0aXZl CmJsb2NrIGluIHRoZSBWTUV4aXQgcGF0aCwga2V5ZWQgb24gd2hldGhlciBoeXBlcnZpc29yIGRl YnVnZ2luZyBoYXMgYmVlbgplbmFibGVkLgoKSW4gb3JkZXIgdG8gc2V0IHRoaXMgdXAsIGRyb3Ag dGhlIHBlciBjcHUgbGVyX21zciB2YXJpYWJsZSAoYXMgdGhlcmUgaXMgbm8KcG9pbnQgaGF2aW5n IGl0IHBlciBjcHUgd2hlbiBpdCB3aWxsIGJlIHRoZSBzYW1lIGV2ZXJ5d2hlcmUpLCBhbmQgdXNl IGEgc2luZ2xlCnJlYWRfbW9zdGx5IHZhcmlhYmxlIGluc3RlYWQuICBTcGxpdCBjYWxjX2xlcl9t c3IoKSBvdXQgb2YgcGVyY3B1X3RyYXBzX2luaXQoKQpmb3IgY2xhcml0eSwgYW5kIG9ubHkgcGVy Zm9ybSB0aGUgY2FsY3VsYXRpb24gb24gdGhlIGZpcnN0IGNhbGwuCgpGaW5hbGx5LCBjbGVhbiB1 cCBkb19kZWJ1ZygpLiAgUmVhcnJhbmdlIGl0IHRvIGhhdmUgYSBjb21tb24gdGFpbCwgYW5kIGNh bGwKb3V0IHRoZSBMQlIgYmVoYXZpb3VyIHNwZWNpZmljYWxseS4KClNpZ25lZC1vZmYtYnk6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxp Y2ggPEpCZXVsaWNoQHN1c2UuY29tPgpDQzogSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWppbWFAaW50 ZWwuY29tPgpDQzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+CkNDOiBXZWkgTGl1 IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNp dHJpeC5jb20+CgpJbml0aWFsbHksIEkgdHJpZWQgdG8gaGF2ZSBhIGNvbW1vbiB4ZW5fbXNyX2Rl YnVnY3RsIHZhcmlhYmxlLCBidXQKcmlwLXJlbGF0aXZlIGFkZHJlc3NlcyBkb24ndCByZXNvbHZl IGNvcnJlY3RseSBpbiBhbHRlcm5hdGl2ZSBibG9ja3MuCkxCUi1vbmx5IGhhcyBiZWVuIGZpbmUg Zm9yIGFnZXMsIGFuZCBJIGRvbid0IHNlZSB0aGF0IGNoYW5naW5nIGFueSB0aW1lIHNvb24uCi0t LQogeGVuL2FyY2gveDg2L2h2bS92bXgvZW50cnkuUyAgICAgIHwgIDkgKysrKysrCiB4ZW4vYXJj aC94ODYvaHZtL3ZteC92bXguYyAgICAgICAgfCAgMyArLQogeGVuL2FyY2gveDg2L3RyYXBzLmMg ICAgICAgICAgICAgIHwgNTggKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t CiB4ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMgICAgICAgfCAgNyArKystLQogeGVuL2luY2x1 ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlLmggIHwgIDEgKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVm ZWF0dXJlcy5oIHwgIDEgKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9tc3IuaCAgICAgICAgIHwgIDIg Ky0KIDcgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvZW50cnkuUyBiL3hlbi9hcmNoL3g4Ni9o dm0vdm14L2VudHJ5LlMKaW5kZXggYWEyZjEwMy4uYWZkNTUyZiAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS92bXgvZW50cnkuUworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC9lbnRyeS5T CkBAIC00MSw2ICs0MSwxNSBAQCBFTlRSWSh2bXhfYXNtX3ZtZXhpdF9oYW5kbGVyKQogICAgICAg ICBTUEVDX0NUUkxfRU5UUllfRlJPTV9IVk0gICAgLyogUmVxOiBiPWN1cnIgJXJzcD1yZWdzL2Nw dWluZm8sIENsb2I6IGFjZCAqLwogICAgICAgICAvKiBXQVJOSU5HISBgcmV0YCwgYGNhbGwgKmAs IGBqbXAgKmAgbm90IHNhZmUgYmVmb3JlIHRoaXMgcG9pbnQuICovCiAKKyAgICAgICAgLyogSGFy ZHdhcmUgY2xlYXJzIE1TUl9ERUJVR0NUTCBvbiBWTUV4aXQuICBSZWluc3RhdGUgaXQgaWYgZGVi dWdnaW5nIFhlbi4gKi8KKyAgICAgICAgLm1hY3JvIHJlc3RvcmVfbGJyCisgICAgICAgICAgICBt b3YgJElBMzJfREVCVUdDVExNU1JfTEJSLCAlZWF4CisgICAgICAgICAgICBtb3YgJE1TUl9JQTMy X0RFQlVHQ1RMTVNSLCAlZWN4CisgICAgICAgICAgICB4b3IgJWVkeCwgJWVkeAorICAgICAgICAg ICAgd3Jtc3IKKyAgICAgICAgLmVuZG0KKyAgICAgICAgQUxURVJOQVRJVkUgIiIsIHJlc3RvcmVf bGJyLCBYODZfRkVBVFVSRV9YRU5fTEJSCisKICAgICAgICAgbW92ICAlcnNwLCVyZGkKICAgICAg ICAgY2FsbCB2bXhfdm1leGl0X2hhbmRsZXIKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2 bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwppbmRleCA5NzA3NTE0Li4z M2QzOWY2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYworKysgYi94ZW4v YXJjaC94ODYvaHZtL3ZteC92bXguYwpAQCAtMzEyMCw4ICszMTIwLDcgQEAgc3RhdGljIGludCB2 bXhfbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCBtc3JfY29u dGVudCkKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCAo cmMgPCAwKSB8fAotICAgICAgICAgICAgIChtc3JfY29udGVudCAmJiAodm14X2FkZF9ob3N0X2xv YWRfbXNyKG1zcikgPCAwKSkgKQorICAgICAgICBpZiAoIHJjIDwgMCApCiAgICAgICAgICAgICBo dm1faW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQX21hY2hpbmVfY2hlY2ssIFg4Nl9FVkVOVF9OT19F Qyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIF9fdm13cml0ZShHVUVTVF9JQTMyX0RFQlVH Q1RMLCBtc3JfY29udGVudCk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdHJhcHMuYyBiL3hl bi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IDhhOTkxNzQuLjc0Nzg0YTIgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCkBAIC05Niw4ICs5 Niw2IEBAIHN0cmluZ19wYXJhbSgibm1pIiwgb3B0X25taSk7CiBERUZJTkVfUEVSX0NQVSh1aW50 NjRfdCwgZWZlcik7CiBzdGF0aWMgREVGSU5FX1BFUl9DUFUodW5zaWduZWQgbG9uZywgbGFzdF9l eHRhYmxlX2FkZHIpOwogCi1ERUZJTkVfUEVSX0NQVV9SRUFEX01PU1RMWSh1MzIsIGxlcl9tc3Ip OwotCiBERUZJTkVfUEVSX0NQVV9SRUFEX01PU1RMWShzdHJ1Y3QgZGVzY19zdHJ1Y3QgKiwgZ2R0 X3RhYmxlKTsKIERFRklORV9QRVJfQ1BVX1JFQURfTU9TVExZKHN0cnVjdCBkZXNjX3N0cnVjdCAq LCBjb21wYXRfZ2R0X3RhYmxlKTsKIApAQCAtMTE3LDYgKzExNSw5IEBAIGludGVnZXJfcGFyYW0o ImRlYnVnX3N0YWNrX2xpbmVzIiwgZGVidWdfc3RhY2tfbGluZXMpOwogc3RhdGljIGJvb2wgb3B0 X2xlcjsKIGJvb2xlYW5fcGFyYW0oImxlciIsIG9wdF9sZXIpOwogCisvKiBMYXN0RXhjZXB0aW9u RnJvbUlQIG9uIHRoaXMgaGFyZHdhcmUuICBaZXJvIGlmIExFUiBpcyBub3QgaW4gdXNlLiAqLwor dWludDMyX3QgX19yZWFkX21vc3RseSBsZXJfbXNyOworCiAjZGVmaW5lIHN0YWNrX3dvcmRzX3Bl cl9saW5lIDQKICNkZWZpbmUgRVNQX0JFRk9SRV9FWENFUFRJT04ocmVncykgKCh1bnNpZ25lZCBs b25nICopcmVncy0+cnNwKQogCkBAIC0xNzY0LDE3ICsxNzY1LDYgQEAgdm9pZCBkb19kZXZpY2Vf bm90X2F2YWlsYWJsZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICByZXR1cm47CiB9 CiAKLXN0YXRpYyB2b2lkIGxlcl9lbmFibGUodm9pZCkKLXsKLSAgICB1NjQgZGVidWdjdGw7Ci0K LSAgICBpZiAoICF0aGlzX2NwdShsZXJfbXNyKSApCi0gICAgICAgIHJldHVybjsKLQotICAgIHJk bXNybChNU1JfSUEzMl9ERUJVR0NUTE1TUiwgZGVidWdjdGwpOwotICAgIHdybXNybChNU1JfSUEz Ml9ERUJVR0NUTE1TUiwgZGVidWdjdGwgfCBJQTMyX0RFQlVHQ1RMTVNSX0xCUik7Ci19Ci0KIHZv aWQgZG9fZGVidWcoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiB7CiAgICAgdW5zaWduZWQg bG9uZyBkcjY7CkBAIC0xODcwLDEzICsxODYwLDEzIEBAIHZvaWQgZG9fZGVidWcoc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgdi0+YXJjaC5kZWJ1Z3JlZ1s2XSB8PSAoZHI2ICYgflg4 Nl9EUjZfREVGQVVMVCk7CiAgICAgdi0+YXJjaC5kZWJ1Z3JlZ1s2XSAmPSAoZHI2IHwgflg4Nl9E UjZfREVGQVVMVCk7CiAKLSAgICBsZXJfZW5hYmxlKCk7CiAgICAgcHZfaW5qZWN0X2h3X2V4Y2Vw dGlvbihUUkFQX2RlYnVnLCBYODZfRVZFTlRfTk9fRUMpOwotICAgIHJldHVybjsKIAogIG91dDoK LSAgICBsZXJfZW5hYmxlKCk7Ci0gICAgcmV0dXJuOworCisgICAgLyogI0RCIGF1dG9tYXRpY2Fs bHkgZGlzYWJsZWQgTEJSLiAgUmVpbnN0YXRlIGl0IGlmIGRlYnVnZ2luZyBYZW4uICovCisgICAg aWYgKCBjcHVfaGFzX3hlbl9sYnIgKQorICAgICAgICB3cm1zcmwoTVNSX0lBMzJfREVCVUdDVExN U1IsIElBMzJfREVCVUdDVExNU1JfTEJSKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IG5vaW5s aW5lIF9fc2V0X2ludHJfZ2F0ZSh1bnNpZ25lZCBpbnQgbiwKQEAgLTE5MjAsMzggKzE5MTAsNDYg QEAgdm9pZCBsb2FkX1RSKHZvaWQpCiAgICAgICAgIDogIj1tIiAob2xkX2dkdCkgOiAicm0iIChU U1NfRU5UUlkgPDwgMyksICJtIiAodHNzX2dkdCkgOiAibWVtb3J5IiApOwogfQogCi12b2lkIHBl cmNwdV90cmFwc19pbml0KHZvaWQpCitzdGF0aWMgdWludDMyX3QgY2FsY19sZXJfbXNyKHZvaWQp CiB7Ci0gICAgc3ViYXJjaF9wZXJjcHVfdHJhcHNfaW5pdCgpOwotCi0gICAgaWYgKCAhb3B0X2xl ciApCi0gICAgICAgIHJldHVybjsKLQogICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2X3Zl bmRvciApCiAgICAgewogICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoKICAgICAgICAgc3dpdGNo ICggYm9vdF9jcHVfZGF0YS54ODYgKQogICAgICAgICB7CiAgICAgICAgIGNhc2UgNjoKLSAgICAg ICAgICAgIHRoaXNfY3B1KGxlcl9tc3IpID0gTVNSX0lBMzJfTEFTVElOVEZST01JUDsKLSAgICAg ICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIE1TUl9JQTMyX0xBU1RJTlRGUk9NSVA7 CisKICAgICAgICAgY2FzZSAxNToKLSAgICAgICAgICAgIHRoaXNfY3B1KGxlcl9tc3IpID0gTVNS X1A0X0xFUl9GUk9NX0xJUDsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJu IE1TUl9QNF9MRVJfRlJPTV9MSVA7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CisKICAgICBj YXNlIFg4Nl9WRU5ET1JfQU1EOgogICAgICAgICBzd2l0Y2ggKCBib290X2NwdV9kYXRhLng4NiAp CiAgICAgICAgIHsKICAgICAgICAgY2FzZSA2OgogICAgICAgICBjYXNlIDB4ZiAuLi4gMHgxNzoK LSAgICAgICAgICAgIHRoaXNfY3B1KGxlcl9tc3IpID0gTVNSX0lBMzJfTEFTVElOVEZST01JUDsK LSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIE1TUl9JQTMyX0xBU1RJTlRG Uk9NSVA7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgbGVyX2VuYWJs ZSgpOworICAgIHJldHVybiAwOworfQorCit2b2lkIHBlcmNwdV90cmFwc19pbml0KHZvaWQpCit7 CisgICAgc3ViYXJjaF9wZXJjcHVfdHJhcHNfaW5pdCgpOworCisgICAgaWYgKCAhb3B0X2xlciAp CisgICAgICAgIHJldHVybjsKKworICAgIGlmICggIWxlcl9tc3IgJiYgKGxlcl9tc3IgPSBjYWxj X2xlcl9tc3IoKSkgKQorICAgICAgICBzZXR1cF9mb3JjZV9jcHVfY2FwKFg4Nl9GRUFUVVJFX1hF Tl9MQlIpOworCisgICAgaWYgKCBjcHVfaGFzX3hlbl9sYnIgKQorICAgICAgICB3cm1zcmwoTVNS X0lBMzJfREVCVUdDVExNU1IsIElBMzJfREVCVUdDVExNU1JfTEJSKTsKIH0KIAogdm9pZCBfX2lu aXQgaW5pdF9pZHRfdHJhcHModm9pZCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQv dHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvdHJhcHMuYwppbmRleCBmN2Y2OTI4Li5iMDQw MTg1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMKKysrIGIveGVuL2Fy Y2gveDg2L3g4Nl82NC90cmFwcy5jCkBAIC0xNDQsMTEgKzE0NCwxMiBAQCB2b2lkIHNob3dfcmVn aXN0ZXJzKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIHByaW50aygiQ1BV OiAgICAlZFxuIiwgc21wX3Byb2Nlc3Nvcl9pZCgpKTsKICAgICBfc2hvd19yZWdpc3RlcnMoJmZh dWx0X3JlZ3MsIGZhdWx0X2NycywgY29udGV4dCwgdik7CiAKLSAgICBpZiAoIHRoaXNfY3B1KGxl cl9tc3IpICYmICFndWVzdF9tb2RlKHJlZ3MpICkKKyAgICBpZiAoIGxlcl9tc3IgJiYgIWd1ZXN0 X21vZGUocmVncykgKQogICAgIHsKICAgICAgICAgdTY0IGZyb20sIHRvOwotICAgICAgICByZG1z cmwodGhpc19jcHUobGVyX21zciksIGZyb20pOwotICAgICAgICByZG1zcmwodGhpc19jcHUobGVy X21zcikgKyAxLCB0byk7CisKKyAgICAgICAgcmRtc3JsKGxlcl9tc3IsIGZyb20pOworICAgICAg ICByZG1zcmwobGVyX21zciArIDEsIHRvKTsKICAgICAgICAgcHJpbnRrKCJsZXI6ICUwMTZseCAt PiAlMDE2bHhcbiIsIGZyb20sIHRvKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20teDg2L2NwdWZlYXR1cmUuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5o CmluZGV4IDJjZjhmN2UuLmIyMzdkYTEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYv Y3B1ZmVhdHVyZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCkBAIC0x MTMsNiArMTEzLDcgQEAKICNkZWZpbmUgY3B1X2hhc19hcGVyZm1wZXJmICAgICAgYm9vdF9jcHVf aGFzKFg4Nl9GRUFUVVJFX0FQRVJGTVBFUkYpCiAjZGVmaW5lIGNwdV9oYXNfbGZlbmNlX2Rpc3Bh dGNoIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9MRkVOQ0VfRElTUEFUQ0gpCiAjZGVmaW5lIGNw dV9oYXNfbm9feHB0aSAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9OT19YUFRJKQor I2RlZmluZSBjcHVfaGFzX3hlbl9sYnIgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVf WEVOX0xCUikKIAogZW51bSBfY2FjaGVfdHlwZSB7CiAgICAgQ0FDSEVfVFlQRV9OVUxMID0gMCwK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZXMuaCBiL3hlbi9pbmNs dWRlL2FzbS14ODYvY3B1ZmVhdHVyZXMuaAppbmRleCBiOTBhYTJkLi44ZTVjYzUzIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmVzLmgKKysrIGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9jcHVmZWF0dXJlcy5oCkBAIC0zMiwzICszMiw0IEBAIFhFTl9DUFVGRUFUVVJFKFND X1JTQl9QViwgICAgICAgKEZTQ0FQSU5UUyswKSozMisxOCkgLyogUlNCIG92ZXJ3cml0ZSBuZWVk ZWQgZm9yCiBYRU5fQ1BVRkVBVFVSRShTQ19SU0JfSFZNLCAgICAgIChGU0NBUElOVFMrMCkqMzIr MTkpIC8qIFJTQiBvdmVyd3JpdGUgbmVlZGVkIGZvciBIVk0gKi8KIFhFTl9DUFVGRUFUVVJFKE5P X1hQVEksICAgICAgICAgKEZTQ0FQSU5UUyswKSozMisyMCkgLyogWFBUSSBtaXRpZ2F0aW9uIG5v dCBpbiB1c2UgKi8KIFhFTl9DUFVGRUFUVVJFKFNDX01TUl9JRExFLCAgICAgKEZTQ0FQSU5UUysw KSozMisyMSkgLyogKFNDX01TUl9QViB8fCBTQ19NU1JfSFZNKSAmJiBkZWZhdWx0X3hlbl9zcGVj X2N0cmwgKi8KK1hFTl9DUFVGRUFUVVJFKFhFTl9MQlIsICAgICAgICAgKEZTQ0FQSU5UUyswKSoz MisyMikgLyogWGVuIHVzZXMgTVNSX0RFQlVHQ1RMLkxCUiAqLwpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9tc3IuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbXNyLmgKaW5kZXggZjE0 ZjI2NS4uOWY2ZDNiMiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tc3IuaAorKysg Yi94ZW4vaW5jbHVkZS9hc20teDg2L21zci5oCkBAIC0yNDEsNyArMjQxLDcgQEAgc3RhdGljIGlu bGluZSB2b2lkIHdyaXRlX2VmZXIodWludDY0X3QgdmFsKQogICAgIHdybXNybChNU1JfRUZFUiwg dmFsKTsKIH0KIAotREVDTEFSRV9QRVJfQ1BVKHUzMiwgbGVyX21zcik7CitleHRlcm4gdWludDMy X3QgbGVyX21zcjsKIAogREVDTEFSRV9QRVJfQ1BVKHVpbnQzMl90LCB0c2NfYXV4KTsKIAotLSAK Mi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs