From mboxrd@z Thu Jan 1 00:00:00 1970 From: Petre Pircalabu Subject: [PATCH v12 1/4] x86emul: New return code for unimplemented instruction Date: Thu, 21 Sep 2017 08:12:03 +0300 Message-ID: <1505970726-5671-2-git-send-email-ppircalabu@bitdefender.com> References: <1505970726-5671-1-git-send-email-ppircalabu@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1505970726-5671-1-git-send-email-ppircalabu@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Petre Pircalabu , kevin.tian@intel.com, sstabellini@kernel.org, wei.liu2@citrix.com, jun.nakajima@intel.com, rcojocaru@bitdefender.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, paul.durrant@citrix.com, tamas@tklengyel.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org RW5mb3JjZSB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiBhbiBpbnN0cnVjdGlvbiBub3QgaW1wbGVt ZW50ZWQgYnkgdGhlCmVtdWxhdG9yIGFuZCB0aGUgZmFpbHVyZSB0byBlbXVsYXRlIHRoYXQgaW5z dHJ1Y3Rpb24gYnkgZGVmaW5pbmcgYSBuZXcKcmV0dXJuIGNvZGUsIFg4NkVNVUxfVU5JTVBMRU1F TlRFRC4KClRoaXMgdmFsdWUgc2hvdWxkIG9ubHkgYmUgcmV0dXJuZWQgYnkgdGhlIGNvcmUgZW11 bGF0b3Igb25seSBpZiBpdCBmYWlscyB0bwpwcm9wZXJseSBkZWNvZGUgdGhlIGN1cnJlbnQgaW5z dHJ1Y3Rpb24ncyBvcGNvZGUsIGFuZCBub3QgYnkgYW55IG9mIG90aGVyCmZ1bmN0aW9ucywgc3Vj aCBhcyB0aGUgeDg2X2VtdWxhdGVfb3BzIG9yIHRoZSBodm1faW9fb3BzIGNhbGxiYWNrcy4KCmUu Zy4gaHZtX3Byb2Nlc3NfaW9faW50ZXJjZXB0IHNob3VsZCBub3QgcmV0dXJuIFg4NkVNVUxfVU5J TVBMRU1FTlRFRC4KVGhlIHJldHVybiB2YWx1ZSBvZiB0aGlzIGZ1bmN0aW9uIGRlcGVuZHMgb24g ZWl0aGVyIHRoZSByZXR1cm4gY29kZSBvZgpvbmUgb2YgdGhlIGh2bV9pb19vcHMgaGFuZGxlcnMg KHJlYWQvd3JpdGUpIG9yIHRoZSB2YWx1ZSByZXR1cm5lZCBieQpodm1fY29weV9ndWVzdF9mcm9t X3BoeXMgLyBodm1fY29weV90b19ndWVzdF9waHlzLgoKU2ltaWxhcnksIG5vbmUgb2YgdGhpcyBm dW5jdGlvbnMgc2hvdWxkIHJldHVybiBYODZFTVVMX1VOSU1QTEVNRU5URUQuCiAtIGh2bV9pb19p bnRlcmNlcHQKIC0gaHZtZW11bF9kb19pbwogLSBodm1fc2VuZF9idWZmZXJlZF9pb3JlcQogLSBo dm1fc2VuZF9pb3JlcQogLSBodm1fYnJvYWRjYXN0X2lvcmVxCiAtIGh2bWVtdWxfZG9faW9fYnVm ZmVyCiAtIGh2bWVtdWxfdmFsaWRhdGUKClNpZ25lZC1vZmYtYnk6IFBldHJlIFBpcmNhbGFidSA8 cHBpcmNhbGFidUBiaXRkZWZlbmRlci5jb20+CgotLS0KQ2hhbmdlZCBzaW5jZSB2MTA6CiAgICAq IEFkZGVkIGFzc2VydHMgdG8gbWFrZSBzdXJlIHRoZSByZXR1cm4gY29kZSBjYW5ub3QgYmUgWDg2 RU1VTF9VTklNUExFTUVOVEVELgogICAgKiBBZGQgbmV3IHJldHVybiBjb2RlIChYODZFTVVMX1VO UkVDT0dOSVpFRCkgdG8gYmUgdXNlZCB3aGVuIHRyeWluZwogICAgdG8gZW11bGF0ZSBhbiBpbnN0 cnVjdGlvbiB3aXRoIGFuIGludmFsaWQgb3Bjb2RlLgoKQ2hhbmdlZCBzaW5jZSB2MTE6CiAgICAq IEZpeGVkIGRvdWJsZSBuZWdhdGl2ZSBpbiB0aGUgcGF0Y2ggZGVzY3JpcHRpb24uCiAgICAqIE1v dmUgYXNzZXJ0aW9uIGludG8gdGhlIHN3aXRjaCBhbmQgdXNlIEFTU0VSVF9VTlJFQUNIQUJMRSgp IHdoZW4KICAgIGFwcGxpY2FibGUuCiAgICAqIENoYW5nZWQgdGhlIGRlc2NyaXB0aW9uIG9mIFg4 NkVNVUxfVU5JTVBMRU1FTlRFRCAvIFg4NkVNVUxfVU5SRUNPR05JWkVECiAgICB0byByZWZsZWN0 IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRob3NlIDIgcmV0dXJuIGNvZGVzLgogICAgKiBDaGFu Z2VkIHRoZSByZXR1cm5lZCB2YWx1ZSB0byBYODZFTVVMX1VOUkVDT0dOSVpFRCBpbiB0aGUKICAg IGZvbGxvd2luZyBjYXNlczoKICAgICAgICBYODZFTVVMX09QQygweDBmLCAweDczKTogLyogR3Jv dXAgMTQgKi8KICAgICAgICBYODZFTVVMX09QQ182NigweDBmLCAweDczKToKICAgICAgICBYODZF TVVMX09QQ19WRVhfNjYoMHgwZiwgMHg3Myk6CiAgICAgICAgICAgICAgICAtIEFsbCB2YWxpZCBv cGNvZGVzIGFyZSBkZWZpbmVkLCBzbyBpdCBzaG91bGQgcmV0dXJuCiAgICAgICAgICAgICAgICBY ODZFTVVMX1VOUkVDT0dOSVpFRCBpZiBtb2QgUi9NIGJpdHMgYXJlIG5vdCBtYXRjaGVkLgoKICAg ICAgICBYODZFTVVMX09QQygweDBmLCAweGM3KSAvKiBHcm91cCA5ICovCiAgICAgICAgICAgICAg ICAtIEZvciByZWdpc3RlciB0eXBlIGluc3RydWN0aW9ucyBhbGwgcG9zc2libGUgb3Bjb2RlcyBh cmUKICAgICAgICAgICAgICAgIGRlZmluZWQsIHNvIGl0IHNob3VsZCByZXR1cm4gWDg2RU1VTF9V TlJFQ09HTklaRUQgaWYKICAgICAgICAgICAgICAgIG1vZCBSL00gYml0cyBhcmUgbm90IG1hdGNo ZWQuCgogICAgICAgIFg4NkVNVUxfT1BDX1ZFWCgweDBmMzgsIDB4ZjMpOiAvKiBHcm91cCAxNyAq LwogICAgICAgICAgICAgICAgLSBBbGwgdmFsaWQgb3Bjb2RlcyBhcmUgZGVmaW5lZCwgc28gaXQg c2hvdWxkIHJldHVybgogICAgICAgICAgICAgICAgWDg2RU1VTF9VTlJFQ09HTklaRUQgaWYgbW9k IFIvTSBiaXRzIGFyZSBub3QgbWF0Y2hlZC4KCiAgICAgICAgWDg2RU1VTF9PUENfWE9QKDA5LCAw eDAxKTogLyogWE9QIEdycDEgKi8KICAgICAgICBYODZFTVVMX09QQ19YT1AoMDksIDB4MDIpOiAv KiBYT1AgR3JwMiAqLwogICAgICAgICAgICAgICAgLSBBbGwgdmFsaWQgb3Bjb2RlcyBhcmUgZGVm aW5lZCwgc28gaXQgc2hvdWxkIHJldHVybgogICAgICAgICAgICAgICAgWDg2RU1VTF9VTlJFQ09H TklaRUQgaWYgbW9kIFIvTSBiaXRzIGFyZSBub3QgbWF0Y2hlZC4KCiAgICAgICAgWDg2RU1VTF9P UEMoMHgwZiwgMHgwMSk6IC8qIEdycDcgKi8KICAgICAgICAgICAgICAgIC0gTm90IGFsbCB2YWxp ZCBvcGNvZGVzIGFyZSBkZWZpbmVkIHNvIGl0IHNob3VsZCByZXR1cm4KICAgICAgICAgICAgICAg IFg4NkVNVUxfVU5JTVBMRU1FTlRFRCBpZiBtb2QgUi9NIGJpdHMgYXJlIG5vdCBtYXRjaGVkLgog ICAgICAgICAgICAgICAgKGUuZy4gWEdFVEJWKQoKICAgICAgICBYODZFTVVMX09QQ182NigweDBm LCAweDc4KToKICAgICAgICAgICAgICAgIC0gQWxsIHZhbGlkIG9wY29kZXMgYXJlIGRlZmluZWQs IHNvIGl0IHNob3VsZCByZXR1cm4KICAgICAgICAgICAgICAgIFg4NkVNVUxfVU5SRUNPR05JWkVE IGlmIG1vZCBSL00gYml0cyBhcmUgbm90IG1hdGNoZWQuCgogICAgICAgIFg4NkVNVUxfT1BDKDB4 MGYsIDB4YWUpOgogICAgICAgIFg4NkVNVUxfT1BDXzY2KDB4MGYsIDB4YWUpOiAvKiBHcnAxNSAq LwogICAgICAgICAgICAgICAgLSBOb3QgYWxsIHZhbGlkIG9wY29kZXMgYXJlIGRlZmluZWQgc28g aXQgc2hvdWxkIHJldHVybgogICAgICAgICAgICAgICAgWDg2RU1VTF9VTklNUExFTUVOVEVEIGlm IG1vZCBSL00gYml0cyBhcmUgbm90IG1hdGNoZWQuCiAgICAgICAgICAgICAgICAoZS5nLiBGWFNB VkUvRlhSU1RPUiApCi0tLQogeGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgICAgICAgICAgICAg fCAxMiArKysrKysrKwogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgICAgfCAg MSArCiB4ZW4vYXJjaC94ODYvaHZtL2lvLmMgICAgICAgICAgICAgICAgICB8ICAxICsKIHhlbi9h cmNoL3g4Ni9odm0vdm14L3JlYWxtb2RlLmMgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9t bS9zaGFkb3cvbXVsdGkuYyAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni94ODZfZW11bGF0 ZS94ODZfZW11bGF0ZS5jIHwgNTIgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQog eGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmggfCAxMyArKysrKysrKysKIDcg ZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxh dGUuYwppbmRleCBjYzg3NGNlLi4zODVmZTFlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZt L2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwpAQCAtMjg0LDEwICsy ODQsMTUgQEAgc3RhdGljIGludCBodm1lbXVsX2RvX2lvKAogICAgICAgICB9CiAgICAgICAgIGJy ZWFrOwogICAgIH0KKyAgICBjYXNlIFg4NkVNVUxfVU5JTVBMRU1FTlRFRDoKKyAgICAgICAgQVNT RVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIC8qIEZhbGwtdGhyb3VnaCAqLwogICAgIGRlZmF1 bHQ6CiAgICAgICAgIEJVRygpOwogICAgIH0KIAorICAgIEFTU0VSVChyYyAhPSBYODZFTVVMX1VO SU1QTEVNRU5URUQpOworCiAgICAgaWYgKCByYyAhPSBYODZFTVVMX09LQVkgKQogICAgICAgICBy ZXR1cm4gcmM7CiAKQEAgLTMxMyw2ICszMTgsOSBAQCBzdGF0aWMgaW50IGh2bWVtdWxfZG9faW9f YnVmZmVyKAogCiAgICAgcmMgPSBodm1lbXVsX2RvX2lvKGlzX21taW8sIGFkZHIsIHJlcHMsIHNp emUsIGRpciwgZGYsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICh1aW50cHRyX3QpYnVmZmVy KTsKKworICAgIEFTU0VSVChyYyAhPSBYODZFTVVMX1VOSU1QTEVNRU5URUQpOworCiAgICAgaWYg KCByYyA9PSBYODZFTVVMX1VOSEFORExFQUJMRSAmJiBkaXIgPT0gSU9SRVFfUkVBRCApCiAgICAg ICAgIG1lbXNldChidWZmZXIsIDB4ZmYsIHNpemUpOwogCkBAIC00MDUsNiArNDEzLDggQEAgc3Rh dGljIGludCBodm1lbXVsX2RvX2lvX2FkZHIoCiAgICAgcmMgPSBodm1lbXVsX2RvX2lvKGlzX21t aW8sIGFkZHIsICZjb3VudCwgc2l6ZSwgZGlyLCBkZiwgMSwKICAgICAgICAgICAgICAgICAgICAg ICAgcmFtX2dwYSk7CiAKKyAgICBBU1NFUlQocmMgIT0gWDg2RU1VTF9VTklNUExFTUVOVEVEKTsK KwogICAgIGlmICggcmMgPT0gWDg2RU1VTF9PS0FZICkKICAgICAgICAgdi0+YXJjaC5odm1fdmNw dS5odm1faW8ubW1pb19yZXRyeSA9IChjb3VudCA8ICpyZXBzKTsKIApAQCAtMjA0NSw2ICsyMDU1 LDcgQEAgaW50IGh2bV9lbXVsYXRlX29uZV9tbWlvKHVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25l ZCBsb25nIGdsYSkKICAgICBzd2l0Y2ggKCByYyApCiAgICAgewogICAgIGNhc2UgWDg2RU1VTF9V TkhBTkRMRUFCTEU6CisgICAgY2FzZSBYODZFTVVMX1VOSU1QTEVNRU5URUQ6CiAgICAgICAgIGh2 bV9kdW1wX2VtdWxhdGlvbl9zdGF0ZShYRU5MT0dfR19XQVJOSU5HLCAiTU1DRkciLCAmY3R4dCk7 CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgWDg2RU1VTF9FWENFUFRJT046CkBAIC0yMTAyLDYg KzIxMTMsNyBAQCB2b2lkIGh2bV9lbXVsYXRlX29uZV92bV9ldmVudChlbnVtIGVtdWxfa2luZCBr aW5kLCB1bnNpZ25lZCBpbnQgdHJhcG5yLAogICAgICAgICAgKiBjb25zaXN0ZW50IHdpdGggWDg2 RU1VTF9SRVRSWS4KICAgICAgICAgICovCiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFg4NkVN VUxfVU5JTVBMRU1FTlRFRDoKICAgICBjYXNlIFg4NkVNVUxfVU5IQU5ETEVBQkxFOgogICAgICAg ICBodm1fZHVtcF9lbXVsYXRpb25fc3RhdGUoWEVOTE9HX0dfREVCVUcsICJNZW0gZXZlbnQiLCAm Y3R4KTsKICAgICAgICAgaHZtX2luamVjdF9od19leGNlcHRpb24odHJhcG5yLCBlcnJjb2RlKTsK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2 bS5jCmluZGV4IDkzMzk0YzEuLjQzZmY1YWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v aHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpAQCAtMzcyMyw2ICszNzIzLDcgQEAg dm9pZCBodm1fdWRfaW50ZXJjZXB0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIHN3 aXRjaCAoIGh2bV9lbXVsYXRlX29uZSgmY3R4dCkgKQogICAgIHsKICAgICBjYXNlIFg4NkVNVUxf VU5IQU5ETEVBQkxFOgorICAgIGNhc2UgWDg2RU1VTF9VTklNUExFTUVOVEVEOgogICAgICAgICBo dm1faW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQX2ludmFsaWRfb3AsIFg4Nl9FVkVOVF9OT19FQyk7 CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgWDg2RU1VTF9FWENFUFRJT046CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvaHZtL2lvLmMgYi94ZW4vYXJjaC94ODYvaHZtL2lvLmMKaW5kZXggYmY0 MTk1NC4uOTg0ZGIyMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9pby5jCisrKyBiL3hl bi9hcmNoL3g4Ni9odm0vaW8uYwpAQCAtOTYsNiArOTYsNyBAQCBib29sIGh2bV9lbXVsYXRlX29u ZV9pbnNuKGh2bV9lbXVsYXRlX3ZhbGlkYXRlX3QgKnZhbGlkYXRlLCBjb25zdCBjaGFyICpkZXNj cikKICAgICBzd2l0Y2ggKCByYyApCiAgICAgewogICAgIGNhc2UgWDg2RU1VTF9VTkhBTkRMRUFC TEU6CisgICAgY2FzZSBYODZFTVVMX1VOSU1QTEVNRU5URUQ6CiAgICAgICAgIGh2bV9kdW1wX2Vt dWxhdGlvbl9zdGF0ZShYRU5MT0dfR19XQVJOSU5HLCBkZXNjciwgJmN0eHQpOwogICAgICAgICBy ZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3JlYWxtb2Rl LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jCmluZGV4IDEyZDQzYWQuLmNmNDgx MzkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3JlYWxtb2RlLmMKKysrIGIveGVu L2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUuYwpAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgdm14 X3JlYWxtb2RlX2VtdWxhdGVfb25lKHN0cnVjdCBodm1fZW11bGF0ZV9jdHh0ICpodm1lbXVsX2N0 eHQpCiAgICAgaWYgKCBodm1fdmNwdV9pb19uZWVkX2NvbXBsZXRpb24odmlvKSB8fCB2aW8tPm1t aW9fcmV0cnkgKQogICAgICAgICB2aW8tPmlvX2NvbXBsZXRpb24gPSBIVk1JT19yZWFsbW9kZV9j b21wbGV0aW9uOwogCi0gICAgaWYgKCByYyA9PSBYODZFTVVMX1VOSEFORExFQUJMRSApCisgICAg aWYgKCByYyA9PSBYODZFTVVMX1VOSEFORExFQUJMRSB8fCByYyA9PSBYODZFTVVMX1VOSU1QTEVN RU5URUQgKQogICAgIHsKICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgIkZhaWxlZCB0byBl bXVsYXRlIGluc24uXG4iKTsKICAgICAgICAgZ290byBmYWlsOwpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21tL3NoYWRvdy9tdWx0aS5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5j CmluZGV4IDhkNGYyNDQuLjI1NTdlMjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFk b3cvbXVsdGkuYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMKQEAgLTM0ODgs NyArMzQ4OCw3IEBAIHN0YXRpYyBpbnQgc2hfcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAqdiwKICAg ICAgKiB3b3VsZCBiZSBhIGdvb2QgdW5zaGFkb3cgaGludC4gSWYgd2UgKmRvKiBkZWNpZGUgdG8g dW5zaGFkb3ctb24tZmF1bHQKICAgICAgKiB0aGVuIGl0IG11c3QgYmUgJ2ZhaWxhYmxlJzogd2Ug Y2Fubm90IHJlcXVpcmUgdGhlIHVuc2hhZG93IHRvIHN1Y2NlZWQuCiAgICAgICovCi0gICAgaWYg KCByID09IFg4NkVNVUxfVU5IQU5ETEVBQkxFICkKKyAgICBpZiAoIHIgPT0gWDg2RU1VTF9VTkhB TkRMRUFCTEUgfHwgciA9PSBYODZFTVVMX1VOSU1QTEVNRU5URUQgKQogICAgIHsKICAgICAgICAg cGVyZmNfaW5jcihzaGFkb3dfZmF1bHRfZW11bGF0ZV9mYWlsZWQpOwogI2lmIFNIQURPV19PUFRJ TUlaQVRJT05TICYgU0hPUFRfRkFTVF9FTVVMQVRJT04KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4 Nl9lbXVsYXRlLmMKaW5kZXggYzFlMjMwMC4uZjMzNGRlOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVs YXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTg0OCw3ICs4NDgsOCBAQCBkb3sgYXNtIHZvbGF0aWxlICgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg ICAgICAgICAgICAgICAgc3R1Yi5mdW5jKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihyZXNfLmZpZWxk cy50cmFwbnIgPT0gRVhDX1VELCBFWENfVUQpOyAgICBcCiAgICAgICAgIGRvbWFpbl9jcmFzaChj dXJyZW50LT5kb21haW4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg ICAgIGdvdG8gY2Fubm90X2VtdWxhdGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgICAgIHJjID0gWDg2RU1VTF9VTkhBTkRMRUFCTEU7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGdvdG8gZG9uZTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiB9IHdoaWxlICgwKQogI2Vsc2UKQEAgLTI1ODUsNyArMjU4Niw3IEBAIHg4Nl9k ZWNvZGUoCiAgICAgICAgICAgICAgICAgICAgICAgICBkID0gdHdvYnl0ZV90YWJsZVsweDNhXS5k ZXNjOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg IGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYyA9IFg4NkVNVUxfVU5IQU5ETEVB QkxFOworICAgICAgICAgICAgICAgICAgICAgICAgcmMgPSBYODZFTVVMX1VOUkVDT0dOSVpFRDsK ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgIH0KQEAgLTI1OTksNyArMjYwMCw3IEBAIHg4Nl9kZWNvZGUoCiAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB7 Ci0gICAgICAgICAgICAgICAgICAgIHJjID0gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CisgICAgICAg ICAgICAgICAgICAgIHJjID0gWDg2RU1VTF9VTlJFQ09HTklaRUQ7CiAgICAgICAgICAgICAgICAg ICAgIGdvdG8gZG9uZTsKICAgICAgICAgICAgICAgICB9CiAKQEAgLTI4NzksNyArMjg4MCw3IEBA IHg4Nl9kZWNvZGUoCiAKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUo KTsKLSAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOworICAgICAgICByZXR1cm4g WDg2RU1VTF9VTklNUExFTUVOVEVEOwogICAgIH0KIAogICAgIGlmICggZWEudHlwZSA9PSBPUF9N RU0gKQpAQCAtNDE5MSw3ICs0MTkyLDcgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgICAgICBjYXNlIDQ6IC8qIGZsZGVudiAtIFRPRE8gKi8KICAgICAgICAg ICAgICAgICBzdGF0ZS0+ZnB1X2N0cmwgPSB0cnVlOwotICAgICAgICAgICAgICAgIGdvdG8gY2Fu bm90X2VtdWxhdGU7CisgICAgICAgICAgICAgICAgZ290byB1bmltcGxlbWVudGVkX2luc247CiAg ICAgICAgICAgICBjYXNlIDU6IC8qIGZsZGN3IG0yYnl0ZSAqLwogICAgICAgICAgICAgICAgIHN0 YXRlLT5mcHVfY3RybCA9IHRydWU7CiAgICAgICAgICAgICAgICAgaWYgKCAocmMgPSBvcHMtPnJl YWQoZWEubWVtLnNlZywgZWEubWVtLm9mZiwgJnNyYy52YWwsCkBAIC00MjAyLDcgKzQyMDMsNyBA QCB4ODZfZW11bGF0ZSgKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug NjogLyogZm5zdGVudiAtIFRPRE8gKi8KICAgICAgICAgICAgICAgICBzdGF0ZS0+ZnB1X2N0cmwg PSB0cnVlOwotICAgICAgICAgICAgICAgIGdvdG8gY2Fubm90X2VtdWxhdGU7CisgICAgICAgICAg ICAgICAgZ290byB1bmltcGxlbWVudGVkX2luc247CiAgICAgICAgICAgICBjYXNlIDc6IC8qIGZu c3RjdyBtMmJ5dGUgKi8KICAgICAgICAgICAgICAgICBzdGF0ZS0+ZnB1X2N0cmwgPSB0cnVlOwog ICAgICAgICAgICAgICAgIGVtdWxhdGVfZnB1X2luc25fbWVtZHN0KCJmbnN0Y3ciLCBkc3QudmFs KTsKQEAgLTQ0MzgsNyArNDQzOSw3IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICAgICAgY2FzZSA0 OiAvKiBmcnN0b3IgLSBUT0RPICovCiAgICAgICAgICAgICBjYXNlIDY6IC8qIGZuc2F2ZSAtIFRP RE8gKi8KICAgICAgICAgICAgICAgICBzdGF0ZS0+ZnB1X2N0cmwgPSB0cnVlOwotICAgICAgICAg ICAgICAgIGdvdG8gY2Fubm90X2VtdWxhdGU7CisgICAgICAgICAgICAgICAgZ290byB1bmltcGxl bWVudGVkX2luc247CiAgICAgICAgICAgICBjYXNlIDc6IC8qIGZuc3RzdyBtMmJ5dGUgKi8KICAg ICAgICAgICAgICAgICBzdGF0ZS0+ZnB1X2N0cmwgPSB0cnVlOwogICAgICAgICAgICAgICAgIGVt dWxhdGVfZnB1X2luc25fbWVtZHN0KCJmbnN0c3ciLCBkc3QudmFsKTsKQEAgLTUxOTcsNyArNTE5 OCw3IEBAIHg4Nl9lbXVsYXRlKAogI3VuZGVmIF9HUlA3CiAKICAgICAgICAgZGVmYXVsdDoKLSAg ICAgICAgICAgIGdvdG8gY2Fubm90X2VtdWxhdGU7CisgICAgICAgICAgICBnb3RvIHVuaW1wbGVt ZW50ZWRfaW5zbjsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CkBAIC02MTk1LDcg KzYxOTYsNyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgICAgICAgICAvKiB2cHNsbHt3LGR9ICRp bW04LHt4LHl9bW0se3gseX1tbSAqLwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1 bHQ6Ci0gICAgICAgICAgICBnb3RvIGNhbm5vdF9lbXVsYXRlOworICAgICAgICAgICAgZ290byB1 bmltcGxlbWVudGVkX2luc247CiAgICAgICAgIH0KICAgICBzaW1kXzBmX3NoaWZ0X2ltbToKICAg ICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGVhLnR5cGUgIT0gT1BfUkVHLCBFWENfVUQpOwpA QCAtNjI0Myw3ICs2MjQ0LDggQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgIGNhc2UgNjogLyogcHNs bHEgJGltbTgsbW0gKi8KICAgICAgICAgICAgIGdvdG8gc2ltZF8wZl9zaGlmdF9pbW07CiAgICAg ICAgIH0KLSAgICAgICAgZ290byBjYW5ub3RfZW11bGF0ZTsKKyAgICAgICAgcmMgPSBYODZFTVVM X1VOUkVDT0dOSVpFRDsKKyAgICAgICAgZ290byBkb25lOwogCiAgICAgY2FzZSBYODZFTVVMX09Q Q182NigweDBmLCAweDczKToKICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmLCAweDcz KToKQEAgLTYyNTksNyArNjI2MSw4IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICAgICAgICAgIC8q IHZwc2xsZHEgJGltbTgse3gseX1tbSx7eCx5fW1tICovCiAgICAgICAgICAgICBnb3RvIHNpbWRf MGZfc2hpZnRfaW1tOwogICAgICAgICB9Ci0gICAgICAgIGdvdG8gY2Fubm90X2VtdWxhdGU7Cisg ICAgICAgIHJjID0gWDg2RU1VTF9VTlJFQ09HTklaRUQ7CisgICAgICAgIGdvdG8gZG9uZTsKIAog ICAgIGNhc2UgWDg2RU1VTF9PUEMoMHgwZiwgMHg3Nyk6ICAgICAgICAvKiBlbW1zICovCiAgICAg Y2FzZSBYODZFTVVMX09QQ19WRVgoMHgwZiwgMHg3Nyk6ICAgIC8qIHZ6ZXJve2FsbCx1cHBlcn0g Ki8KQEAgLTYzMjMsNyArNjMyNiw4IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBjYXNlIDA6IC8q IGV4dHJxICRpbW04LCRpbW04LHhtbSAqLwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRl ZmF1bHQ6Ci0gICAgICAgICAgICBnb3RvIGNhbm5vdF9lbXVsYXRlOworICAgICAgICAgICAgcmMg PSBYODZFTVVMX1VOUkVDT0dOSVpFRDsKKyAgICAgICAgICAgIGdvdG8gZG9uZTsKICAgICAgICAg fQogICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0YyKDB4 MGYsIDB4NzgpOiAgICAgLyogaW5zZXJ0cSAkaW1tOCwkaW1tOCx4bW0seG1tICovCkBAIC02NTE4 LDcgKzY1MjIsNyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CiAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGdvdG8gY2Fu bm90X2VtdWxhdGU7CisgICAgICAgICAgICBnb3RvIHVuaW1wbGVtZW50ZWRfaW5zbjsKICAgICAg ICAgfQogICAgICAgICBicmVhazsKIApAQCAtNjUzNCw3ICs2NTM4LDggQEAgeDg2X2VtdWxhdGUo CiAgICAgICAgICAgICB2Y3B1X211c3RfaGF2ZShhdngpOwogICAgICAgICAgICAgZ290byBzdG14 Y3NyOwogICAgICAgICB9Ci0gICAgICAgIGdvdG8gY2Fubm90X2VtdWxhdGU7CisgICAgICAgIHJj ID0gWDg2RU1VTF9VTlJFQ09HTklaRUQ7CisgICAgICAgIGdvdG8gZG9uZTsKIAogICAgIGNhc2Ug WDg2RU1VTF9PUENfRjMoMHgwZiwgMHhhZSk6IC8qIEdycDE1ICovCiAgICAgICAgIGZhaWxfaWYo bW9kcm1fbW9kICE9IDMpOwpAQCAtNjc3Nyw3ICs2NzgyLDggQEAgeDg2X2VtdWxhdGUoCiAgICAg ICAgICAgICBzd2l0Y2ggKCBtb2RybV9yZWcgJiA3ICkKICAgICAgICAgICAgIHsKICAgICAgICAg ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgZ290byBjYW5ub3RfZW11bGF0ZTsKKyAgICAg ICAgICAgICAgICByYyA9IFg4NkVNVUxfVU5SRUNPR05JWkVEOworICAgICAgICAgICAgICAgIGdv dG8gZG9uZTsKIAogI2lmZGVmIEhBVkVfR0FTX1JEUkFORAogICAgICAgICAgICAgY2FzZSA2OiAv KiByZHJhbmQgKi8KQEAgLTczNTksNyArNzM2NSw4IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICAg ICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYm1pMSk7CiAgICAgICAgICAgICBicmVhazsKICAg ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGdvdG8gY2Fubm90X2VtdWxhdGU7CisgICAgICAg ICAgICByYyA9IFg4NkVNVUxfVU5SRUNPR05JWkVEOworICAgICAgICAgICAgZ290byBkb25lOwog ICAgICAgICB9CiAKICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKHZleC5sLCBFWENfVUQp OwpAQCAtNzY3MCw3ICs3Njc3LDggQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgICAgICBob3N0X2Fu ZF92Y3B1X211c3RfaGF2ZSh0Ym0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1 bHQ6Ci0gICAgICAgICAgICBnb3RvIGNhbm5vdF9lbXVsYXRlOworICAgICAgICAgICAgcmMgPSBY ODZFTVVMX1VOUkVDT0dOSVpFRDsKKyAgICAgICAgICAgIGdvdG8gZG9uZTsKICAgICAgICAgfQog CiAgICAgeG9wXzA5X3JtX3J2OgpAQCAtNzcwNCw3ICs3NzEyLDggQEAgeDg2X2VtdWxhdGUoCiAg ICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZSh0Ym0pOwogICAgICAgICAgICAgZ290 byB4b3BfMDlfcm1fcnY7CiAgICAgICAgIH0KLSAgICAgICAgZ290byBjYW5ub3RfZW11bGF0ZTsK KyAgICAgICAgcmMgPSBYODZFTVVMX1VOUkVDT0dOSVpFRDsKKyAgICAgICAgZ290byBkb25lOwog CiAgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMGEsIDB4MTApOiAvKiBiZXh0ciBpbW0sci9tLHIg Ki8KICAgICB7CkBAIC03NzM2LDggKzc3NDUsOCBAQCB4ODZfZW11bGF0ZSgKICAgICB9CiAKICAg ICBkZWZhdWx0OgotICAgIGNhbm5vdF9lbXVsYXRlOgotICAgICAgICByYyA9IFg4NkVNVUxfVU5I QU5ETEVBQkxFOworICAgIHVuaW1wbGVtZW50ZWRfaW5zbjoKKyAgICAgICAgcmMgPSBYODZFTVVM X1VOSU1QTEVNRU5URUQ7CiAgICAgICAgIGdvdG8gZG9uZTsKICAgICB9CiAKQEAgLTc3ODksNyAr Nzc5OCw4IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICAgICAgICAgIGlmICggKGQgJiBEc3RNYXNr KSAhPSBEc3RNZW0gKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgQVNT RVJUX1VOUkVBQ0hBQkxFKCk7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gY2Fubm90X2VtdWxh dGU7CisgICAgICAgICAgICAgICAgICAgIHJjID0gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CisgICAg ICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2 X2VtdWxhdGUveDg2X2VtdWxhdGUuaCBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11 bGF0ZS5oCmluZGV4IDRkZGYxMTEuLjFmYjc0YzAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94 ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5oCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94 ODZfZW11bGF0ZS5oCkBAIC0xMzMsNiArMTMzLDE5IEBAIHN0cnVjdCB4ODZfZW11bF9mcHVfYXV4 IHsKICAgKiBVbmRlZmluZWQgYmVoYXZpb3Igd2hlbiB1c2VkIGFueXdoZXJlIGVsc2UuCiAgICov CiAjZGVmaW5lIFg4NkVNVUxfRE9ORSAgICAgICAgICAgNAorIC8qCisgICogQ3VycmVudCBpbnN0 cnVjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgYnkgdGhlIGVtdWxhdG9yLgorICAqIFRoaXMgdmFs dWUgc2hvdWxkIG9ubHkgYmUgcmV0dXJuZWQgYnkgdGhlIGNvcmUgZW11bGF0b3Igd2hlbiBhIHZh bGlkCisgICogb3Bjb2RlIGlzIGZvdW5kIGJ1dCB0aGUgZXhlY3V0aW9uIGxvZ2ljIGZvciB0aGF0 IGluc3RydWN0aW9uIGlzIG1pc3NpbmcuCisgICogSXQgc2hvdWxkIE5PVCBiZSByZXR1cm5lZCBi eSBhbnkgb2YgdGhlIHg4Nl9lbXVsYXRlX29wcyBjYWxsYmFja3MuCisgICovCisjZGVmaW5lIFg4 NkVNVUxfVU5JTVBMRU1FTlRFRCAgNQorIC8qCisgICogVGhlIGN1cnJlbnQgaW5zdHJ1Y3Rpb24n cyBvcGNvZGUgaXMgbm90IHZhbGlkLgorICAqIElmIHRoaXMgZXJyb3IgY29kZSBpcyByZXR1cm5l ZCBieSBhIGZ1bmN0aW9uLCBhbiAjVUQgdHJhcCBzaG91bGQgYmUKKyAgKiByYWlzZWQgYnkgdGhl IGZpbmFsIGNvbnN1bWVyIG9mIGl0LgorICovCisjZGVmaW5lIFg4NkVNVUxfVU5SRUNPR05JWkVE ICAgWDg2RU1VTF9VTklNUExFTUVOVEVECiAKIC8qIEZQVSBzdWItdHlwZXMgd2hpY2ggbWF5IGJl IHJlcXVlc3RlZCB2aWEgLT5nZXRfZnB1KCkuICovCiBlbnVtIHg4Nl9lbXVsYXRlX2ZwdV90eXBl IHsKLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw czovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==