From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v3 04/17] x86: don't access saved user regs via rsp in trap handlers Date: Fri, 9 Feb 2018 15:01:38 +0100 Message-ID: <20180209140151.24714-5-jgross@suse.com> References: <20180209140151.24714-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ek9Fc-0003CR-Ax for xen-devel@lists.xenproject.org; Fri, 09 Feb 2018 14:02:04 +0000 In-Reply-To: <20180209140151.24714-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Juergen Gross , andrew.cooper3@citrix.com, dfaggioli@suse.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org SW4gb3JkZXIgdG8gc3VwcG9ydCBzd2l0Y2hpbmcgc3RhY2tzIHdoZW4gZW50ZXJpbmcgdGhlIGh5 cGVydmlzb3IgZm9yCnN1cHBvcnQgb2YgcGFnZSB0YWJsZSBpc29sYXRpb24sIGRvbid0IHVzZSAl cnNwIGZvciBhY2Nlc3NpbmcgdGhlCnNhdmVkIHVzZXIgcmVnaXN0ZXJzLCBidXQgZG8gdGhhdCB2 aWEgJXIxMi4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4K LS0tClYzOgotIHVzZSAlcjEyIGluc3RlYWQgJXJkaSAoSmFuIEJldWxpY2gpCi0gcmVtb3ZlIHNv bWUgY29tcGF0IGNoYW5nZXMgKEphbiBCZXVsaWNoKQotLS0KIHhlbi9hcmNoL3g4Ni94ODZfNjQv Y29tcGF0L2VudHJ5LlMgIHwgIDEwICsrLQogeGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TICAg ICAgICAgfCAxNTIgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5j bHVkZS9hc20teDg2L2N1cnJlbnQuaCAgICAgICB8ICAgOCArLQogeGVuL2luY2x1ZGUvYXNtLXg4 Ni9ub3BzLmggICAgICAgICAgfCAgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvc3BlY19jdHJs X2FzbS5oIHwgIDEzICstLQogNSBmaWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygrKSwgODMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50 cnkuUyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMKaW5kZXggOGZhYzVkMzA0 ZC4uZWNlZDE0NzViNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50 cnkuUworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9lbnRyeS5TCkBAIC0xOCwxNSAr MTgsMTYgQEAgRU5UUlkoZW50cnlfaW50ODIpCiAgICAgICAgIHB1c2hxICQwCiAgICAgICAgIG1v dmwgICRIWVBFUkNBTExfVkVDVE9SLCA0KCVyc3ApCiAgICAgICAgIFNBVkVfQUxMIGNvbXBhdD0x IC8qIERQTDEgZ2F0ZSwgcmVzdHJpY3RlZCB0byAzMmJpdCBQViBndWVzdHMgb25seS4gKi8KKyAg ICAgICAgbW92ICAgJXJzcCwgJXIxMgogCi0gICAgICAgIFNQRUNfQ1RSTF9FTlRSWV9GUk9NX1BW IC8qIFJlcTogJXJzcD1yZWdzL2NwdWluZm8sIENsb2I6IGFjZCAqLworICAgICAgICBTUEVDX0NU UkxfRU5UUllfRlJPTV9QViAvKiBSZXE6ICVyMTI9cmVncywgJXJzcD1jcHVpbmZvLCBDbG9iOiBh Y2QgKi8KICAgICAgICAgLyogV0FSTklORyEgYHJldGAsIGBjYWxsICpgLCBgam1wICpgIG5vdCBz YWZlIGJlZm9yZSB0aGlzIHBvaW50LiAqLwogCiAgICAgICAgIENSNF9QVjMyX1JFU1RPUkUKIAog ICAgICAgICBHRVRfQ1VSUkVOVChieCkKIAotICAgICAgICBtb3YgICAlcnNwLCAlcmRpCisgICAg ICAgIG1vdiAgICVyMTIsICVyZGkKICAgICAgICAgY2FsbCAgZG9fZW50cnlfaW50ODIKIAogLyog JXJieDogc3RydWN0IHZjcHUgKi8KQEAgLTIwMSw3ICsyMDIsNiBAQCBFTlRSWShjb21wYXRfcG9z dF9oYW5kbGVfZXhjZXB0aW9uKQogLyogU2VlIGxzdGFyX2VudGVyIGZvciBlbnRyeSByZWdpc3Rl ciBzdGF0ZS4gKi8KIEVOVFJZKGNzdGFyX2VudGVyKQogICAgICAgICBzdGkKLSAgICAgICAgQ1I0 X1BWMzJfUkVTVE9SRQogICAgICAgICBtb3ZxICA4KCVyc3ApLCVyYXggLyogUmVzdG9yZSAlcmF4 LiAqLwogICAgICAgICBtb3ZxICAkRkxBVF9LRVJORUxfU1MsOCglcnNwKQogICAgICAgICBwdXNo cSAlcjExCkBAIC0yMTAsMTAgKzIxMCwxMiBAQCBFTlRSWShjc3Rhcl9lbnRlcikKICAgICAgICAg cHVzaHEgJDAKICAgICAgICAgbW92bCAgJFRSQVBfc3lzY2FsbCwgNCglcnNwKQogICAgICAgICBT QVZFX0FMTAorICAgICAgICBtb3ZxICAlcnNwLCAlcjEyCiAKLSAgICAgICAgU1BFQ19DVFJMX0VO VFJZX0ZST01fUFYgLyogUmVxOiAlcnNwPXJlZ3MvY3B1aW5mbywgQ2xvYjogYWNkICovCisgICAg ICAgIFNQRUNfQ1RSTF9FTlRSWV9GUk9NX1BWIC8qIFJlcTogJXIxMj1yZWdzLCAlcnNwPWNwdWlu Zm8sIENsb2I6IGFjZCAqLwogICAgICAgICAvKiBXQVJOSU5HISBgcmV0YCwgYGNhbGwgKmAsIGBq bXAgKmAgbm90IHNhZmUgYmVmb3JlIHRoaXMgcG9pbnQuICovCiAKKyAgICAgICAgQ1I0X1BWMzJf UkVTVE9SRQogICAgICAgICBHRVRfQ1VSUkVOVChieCkKICAgICAgICAgbW92cSAgVkNQVV9kb21h aW4oJXJieCksJXJjeAogICAgICAgICBjbXBiICAkMCxET01BSU5faXNfMzJiaXRfcHYoJXJjeCkK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUyBiL3hlbi9hcmNoL3g4Ni94 ODZfNjQvZW50cnkuUwppbmRleCBhMDc4YWQ4OTc5Li5mMDY3YTc0YjBmIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRy eS5TCkBAIC0xNCwxMyArMTQsMTMgQEAKICNpbmNsdWRlIDxwdWJsaWMveGVuLmg+CiAjaW5jbHVk ZSA8aXJxX3ZlY3RvcnMuaD4KIAotLyogJXJieDogc3RydWN0IHZjcHUgKi8KKy8qICVyYng6IHN0 cnVjdCB2Y3B1LCAlcjEyOiB1c2VyX3JlZ3MgKi8KIEVOVFJZKHN3aXRjaF90b19rZXJuZWwpCiAg ICAgICAgIGxlYXEgIFZDUFVfdHJhcF9ib3VuY2UoJXJieCksJXJkeAogICAgICAgICAvKiBUQl9l aXAgPSAoMzItYml0IHN5c2NhbGwgJiYgc3lzY2FsbDMyX2FkZHIpID8KICAgICAgICAgICogICAg ICAgICAgc3lzY2FsbDMyX2FkZHIgOiBzeXNjYWxsX2FkZHIgKi8KICAgICAgICAgeG9yICAgJWVh eCwlZWF4Ci0gICAgICAgIGNtcHcgICRGTEFUX1VTRVJfQ1MzMixVUkVHU19jcyglcnNwKQorICAg ICAgICBjbXB3ICAkRkxBVF9VU0VSX0NTMzIsVVJFR1NfY3MoJXIxMikKICAgICAgICAgY21vdmVx IFZDUFVfc3lzY2FsbDMyX2FkZHIoJXJieCksJXJheAogICAgICAgICB0ZXN0cSAlcmF4LCVyYXgK ICAgICAgICAgY21vdnpxIFZDUFVfc3lzY2FsbF9hZGRyKCVyYngpLCVyYXgKQEAgLTMxLDcgKzMx LDcgQEAgRU5UUlkoc3dpdGNoX3RvX2tlcm5lbCkKICAgICAgICAgbGVhbCAgKCwlcmN4LFRCRl9J TlRFUlJVUFQpLCVlY3gKICAgICAgICAgbW92YiAgJWNsLFRSQVBCT1VOQ0VfZmxhZ3MoJXJkeCkK ICAgICAgICAgY2FsbCAgY3JlYXRlX2JvdW5jZV9mcmFtZQotICAgICAgICBhbmRsICAkflg4Nl9F RkxBR1NfREYsVVJFR1NfZWZsYWdzKCVyc3ApCisgICAgICAgIGFuZGwgICR+WDg2X0VGTEFHU19E RixVUkVHU19lZmxhZ3MoJXIxMikKICAgICAgICAgam1wICAgdGVzdF9hbGxfZXZlbnRzCiAKIC8q ICVyYng6IHN0cnVjdCB2Y3B1LCBpbnRlcnJ1cHRzIGRpc2FibGVkICovCkBAIC00Myw3ICs0Myw3 IEBAIHJlc3RvcmVfYWxsX2d1ZXN0OgogICAgICAgICBtb3YgVkNQVU1TUl9zcGVjX2N0cmxfcmF3 KCVyZHgpLCAlZWF4CiAKICAgICAgICAgLyogV0FSTklORyEgYHJldGAsIGBjYWxsICpgLCBgam1w ICpgIG5vdCBzYWZlIGJleW9uZCB0aGlzIHBvaW50LiAqLwotICAgICAgICBTUEVDX0NUUkxfRVhJ VF9UT19HVUVTVCAvKiBSZXE6IGE9c3BlY19jdHJsICVyc3A9cmVncy9jcHVpbmZvLCBDbG9iOiBj ZCAqLworICAgICAgICBTUEVDX0NUUkxfRVhJVF9UT19HVUVTVCAvKiBSZXE6IGE9c3BlY19jdHJs ICVyc3A9Y3B1aW5mbywgQ2xvYjogY2QgKi8KIAogICAgICAgICBSRVNUT1JFX0FMTAogICAgICAg ICB0ZXN0dyAkVFJBUF9zeXNjYWxsLDQoJXJzcCkKQEAgLTc3LDYgKzc3LDkgQEAgaXJldF9leGl0 X3RvX2d1ZXN0OgogICAgICAgICBfQVNNX1BSRV9FWFRBQkxFKC5MZnQwLCBoYW5kbGVfZXhjZXB0 aW9uKQogCiAgICAgICAgIEFMSUdOCisvKiAlcjEyOiBjb250ZXh0IHRvIHJldHVybiB0by4gKi8K K3Jlc3RvcmVfYWxsX3hlbl9yMTI6CisgICAgICAgIG1vdiAgJXIxMiwgJXJzcAogLyogTm8gc3Bl Y2lhbCByZWdpc3RlciBhc3N1bXB0aW9ucy4gKi8KIHJlc3RvcmVfYWxsX3hlbjoKICAgICAgICAg R0VUX1NUQUNLX0VORChieCkKQEAgLTExMiwxOCArMTE1LDE5IEBAIEVOVFJZKGxzdGFyX2VudGVy KQogICAgICAgICBwdXNocSAkMAogICAgICAgICBtb3ZsICAkVFJBUF9zeXNjYWxsLCA0KCVyc3Ap CiAgICAgICAgIFNBVkVfQUxMCisgICAgICAgIG1vdiAgICVyc3AsICVyMTIKIAotICAgICAgICBT UEVDX0NUUkxfRU5UUllfRlJPTV9QViAvKiBSZXE6ICVyc3A9cmVncy9jcHVpbmZvLCBDbG9iOiBh Y2QgKi8KKyAgICAgICAgU1BFQ19DVFJMX0VOVFJZX0ZST01fUFYgLyogUmVxOiAlcjEyPXJlZ3Ms ICVyc3A9Y3B1aW5mbywgQ2xvYjogYWNkICovCiAgICAgICAgIC8qIFdBUk5JTkchIGByZXRgLCBg Y2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBiZWZvcmUgdGhpcyBwb2ludC4gKi8KIAogICAgICAg ICBHRVRfQ1VSUkVOVChieCkKICAgICAgICAgdGVzdGIgJFRGX2tlcm5lbF9tb2RlLFZDUFVfdGhy ZWFkX2ZsYWdzKCVyYngpCiAgICAgICAgIGp6ICAgIHN3aXRjaF90b19rZXJuZWwKIAotICAgICAg ICBtb3YgICAlcnNwLCAlcmRpCisgICAgICAgIG1vdiAgICVyMTIsICVyZGkKICAgICAgICAgY2Fs bCAgcHZfaHlwZXJjYWxsCiAKLS8qICVyYng6IHN0cnVjdCB2Y3B1ICovCisvKiAlcmJ4OiBzdHJ1 Y3QgdmNwdSwgJXIxMjogdXNlcl9yZWdzICovCiB0ZXN0X2FsbF9ldmVudHM6CiAgICAgICAgIEFT U0VSVF9OT1RfSU5fQVRPTUlDCiAgICAgICAgIGNsaSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyB0ZXN0cyBtdXN0IG5vdCByYWNlIGludGVycnVwdHMKQEAgLTE1NCwxNCArMTU4LDE0IEBA IHRlc3RfZ3Vlc3RfZXZlbnRzOgogICAgICAgICBqbXAgICB0ZXN0X2FsbF9ldmVudHMKIAogICAg ICAgICBBTElHTgotLyogJXJieDogc3RydWN0IHZjcHUgKi8KKy8qICVyYng6IHN0cnVjdCB2Y3B1 LCAlcjEyOiB1c2VyX3JlZ3MgKi8KIHByb2Nlc3Nfc29mdGlycXM6CiAgICAgICAgIHN0aSAgICAg ICAKICAgICAgICAgY2FsbCBkb19zb2Z0aXJxCiAgICAgICAgIGptcCAgdGVzdF9hbGxfZXZlbnRz CiAKICAgICAgICAgQUxJR04KLS8qICVyYng6IHN0cnVjdCB2Y3B1ICovCisvKiAlcmJ4OiBzdHJ1 Y3QgdmNwdSwgJXIxMjogdXNlcl9yZWdzICovCiBwcm9jZXNzX21jZToKICAgICAgICAgdGVzdGIg JDEgPDwgVkNQVV9UUkFQX01DRSxWQ1BVX2FzeW5jX2V4Y2VwdGlvbl9tYXNrKCVyYngpCiAgICAg ICAgIGpueiAgLkx0ZXN0X2d1ZXN0X25taQpAQCAtMTc3LDcgKzE4MSw3IEBAIHByb2Nlc3NfbWNl OgogICAgICAgICBqbXAgIHByb2Nlc3NfdHJhcAogCiAgICAgICAgIEFMSUdOCi0vKiAlcmJ4OiBz dHJ1Y3QgdmNwdSAqLworLyogJXJieDogc3RydWN0IHZjcHUsICVyMTI6IHVzZXJfcmVncyAqLwog cHJvY2Vzc19ubWk6CiAgICAgICAgIHRlc3RiICQxIDw8IFZDUFVfVFJBUF9OTUksVkNQVV9hc3lu Y19leGNlcHRpb25fbWFzayglcmJ4KQogICAgICAgICBqbnogIHRlc3RfZ3Vlc3RfZXZlbnRzCkBA IC0yMDgsMTUgKzIxMiwxNiBAQCBHTE9CQUwoc3lzZW50ZXJfZWZsYWdzX3NhdmVkKQogICAgICAg ICBwdXNocSAkMAogICAgICAgICBtb3ZsICAkVFJBUF9zeXNjYWxsLCA0KCVyc3ApCiAgICAgICAg IFNBVkVfQUxMCisgICAgICAgIG1vdiAgICVyc3AsICVyMTIKIAotICAgICAgICBTUEVDX0NUUkxf RU5UUllfRlJPTV9QViAvKiBSZXE6ICVyc3A9cmVncy9jcHVpbmZvLCBDbG9iOiBhY2QgKi8KKyAg ICAgICAgU1BFQ19DVFJMX0VOVFJZX0ZST01fUFYgLyogUmVxOiAlcjEyPXJlZ3MsICVyc3A9Y3B1 aW5mbywgQ2xvYjogYWNkICovCiAgICAgICAgIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwg YGptcCAqYCBub3Qgc2FmZSBiZWZvcmUgdGhpcyBwb2ludC4gKi8KIAogICAgICAgICBHRVRfQ1VS UkVOVChieCkKICAgICAgICAgY21wYiAgJDAsVkNQVV9zeXNlbnRlcl9kaXNhYmxlc19ldmVudHMo JXJieCkKICAgICAgICAgbW92cSAgVkNQVV9zeXNlbnRlcl9hZGRyKCVyYngpLCVyYXgKICAgICAg ICAgc2V0bmUgJWNsCi0gICAgICAgIHRlc3RsICRYODZfRUZMQUdTX05ULFVSRUdTX2VmbGFncygl cnNwKQorICAgICAgICB0ZXN0bCAkWDg2X0VGTEFHU19OVCxVUkVHU19lZmxhZ3MoJXIxMikKICAg ICAgICAgbGVhcSAgVkNQVV90cmFwX2JvdW5jZSglcmJ4KSwlcmR4CiBVTkxJS0VMWV9TVEFSVChu eiwgc3lzZW50ZXJfbnRfc2V0KQogICAgICAgICBwdXNoZnEKQEAgLTIyOCw3ICsyMzMsNyBAQCBV TkxJS0VMWV9FTkQoc3lzZW50ZXJfbnRfc2V0KQogICAgICAgICBsZWFsICAoLCVyY3gsVEJGX0lO VEVSUlVQVCksJWVjeAogVU5MSUtFTFlfU1RBUlQoeiwgc3lzZW50ZXJfZ3BmKQogICAgICAgICBt b3ZxICBWQ1BVX3RyYXBfY3R4dCglcmJ4KSwlcnNpCi0gICAgICAgIG1vdmwgICRUUkFQX2dwX2Zh dWx0LFVSRUdTX2VudHJ5X3ZlY3RvciglcnNwKQorICAgICAgICBtb3ZsICAkVFJBUF9ncF9mYXVs dCxVUkVHU19lbnRyeV92ZWN0b3IoJXIxMikKICAgICAgICAgbW92bCAgJWVheCxUUkFQQk9VTkNF X2Vycm9yX2NvZGUoJXJkeCkKICAgICAgICAgbW92cSAgVFJBUF9ncF9mYXVsdCAqIFRSQVBJTkZP X3NpemVvZiArIFRSQVBJTkZPX2VpcCglcnNpKSwlcmF4CiAgICAgICAgIHRlc3RiICQ0LFRSQVBf Z3BfZmF1bHQgKiBUUkFQSU5GT19zaXplb2YgKyBUUkFQSU5GT19mbGFncyglcnNpKQpAQCAtMjQ3 LDggKzI1Miw5IEBAIEVOVFJZKGludDgwX2RpcmVjdF90cmFwKQogICAgICAgICBwdXNocSAkMAog ICAgICAgICBtb3ZsICAkMHg4MCwgNCglcnNwKQogICAgICAgICBTQVZFX0FMTAorICAgICAgICBt b3YgICAlcnNwLCAlcjEyCiAKLSAgICAgICAgU1BFQ19DVFJMX0VOVFJZX0ZST01fUFYgLyogUmVx OiAlcnNwPXJlZ3MvY3B1aW5mbywgQ2xvYjogYWNkICovCisgICAgICAgIFNQRUNfQ1RSTF9FTlRS WV9GUk9NX1BWIC8qIFJlcTogJXIxMj1yZWdzLCAlcnNwPWNwdWluZm8sIENsb2I6IGFjZCAqLwog ICAgICAgICAvKiBXQVJOSU5HISBgcmV0YCwgYGNhbGwgKmAsIGBqbXAgKmAgbm90IHNhZmUgYmVm b3JlIHRoaXMgcG9pbnQuICovCiAKICAgICAgICAgY21wYiAgJDAsdW50cnVzdGVkX21zaSglcmlw KQpAQCAtMjc2LDE2ICsyODIsMTYgQEAgaW50ODBfc2xvd19wYXRoOgogICAgICAgICAgKiBTZXR1 cCBlbnRyeSB2ZWN0b3IgYW5kIGVycm9yIGNvZGUgYXMgaWYgdGhpcyB3YXMgYSBHUEYgY2F1c2Vk IGJ5IGFuCiAgICAgICAgICAqIElEVCBlbnRyeSB3aXRoIERQTD09MC4KICAgICAgICAgICovCi0g ICAgICAgIG1vdmwgICQoKDB4ODAgPDwgMykgfCBYODZfWEVDX0lEVCksVVJFR1NfZXJyb3JfY29k ZSglcnNwKQotICAgICAgICBtb3ZsICAkVFJBUF9ncF9mYXVsdCxVUkVHU19lbnRyeV92ZWN0b3Io JXJzcCkKKyAgICAgICAgbW92bCAgJCgoMHg4MCA8PCAzKSB8IFg4Nl9YRUNfSURUKSxVUkVHU19l cnJvcl9jb2RlKCVyMTIpCisgICAgICAgIG1vdmwgICRUUkFQX2dwX2ZhdWx0LFVSRUdTX2VudHJ5 X3ZlY3RvciglcjEyKQogICAgICAgICAvKiBBIEdQRiB3b3VsZG4ndCBoYXZlIGluY3JlbWVudGVk IHRoZSBpbnN0cnVjdGlvbiBwb2ludGVyLiAqLwotICAgICAgICBzdWJxICAkMixVUkVHU19yaXAo JXJzcCkKKyAgICAgICAgc3VicSAgJDIsVVJFR1NfcmlwKCVyMTIpCiAgICAgICAgIGptcCAgIGhh bmRsZV9leGNlcHRpb25fc2F2ZWQKIAogLyogQ1JFQVRFIEEgQkFTSUMgRVhDRVBUSU9OIEZSQU1F IE9OIEdVRVNUIE9TIFNUQUNLOiAgICAgICAgICAgICAgICAgICAgICovCiAvKiAgIHsgUkNYLCBS MTEsIFtFUlJDT0RFLF0gUklQLCBDUywgUkZMQUdTLCBSU1AsIFNTIH0gICAgICAgICAgICAgICAg ICAgKi8KLS8qICVyZHg6IHRyYXBfYm91bmNlLCAlcmJ4OiBzdHJ1Y3QgdmNwdSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLwotLyogT24gcmV0dXJuIG9ubHkgJXJieCBhbmQgJXJk eCBhcmUgZ3VhcmFudGVlZCBub24tY2xvYmJlcmVkLiAgICAgICAgICAgICovCisvKiAlcmR4OiB0 cmFwX2JvdW5jZSwgJXJieDogc3RydWN0IHZjcHUsICVyMTI6IHVzZXJfcmVncyAgICAgICAgICAg ICAgICAgKi8KKy8qIE9uIHJldHVybiBvbmx5ICVyMTIsICVyYnggYW5kICVyZHggYXJlIGd1YXJh bnRlZWQgbm9uLWNsb2JiZXJlZC4gICAgICAqLwogY3JlYXRlX2JvdW5jZV9mcmFtZToKICAgICAg ICAgQVNTRVJUX0lOVEVSUlVQVFNfRU5BQkxFRAogICAgICAgICB0ZXN0YiAkVEZfa2VybmVsX21v ZGUsVkNQVV90aHJlYWRfZmxhZ3MoJXJieCkKQEAgLTI5OCw4ICszMDQsOCBAQCBjcmVhdGVfYm91 bmNlX2ZyYW1lOgogICAgICAgICBtb3ZxICBWQ1BVX2tlcm5lbF9zcCglcmJ4KSwlcnNpCiAgICAg ICAgIGptcCAgIDJmCiAxOiAgICAgIC8qIEluIGtlcm5lbCBjb250ZXh0IGFscmVhZHk6IHB1c2gg bmV3IGZyYW1lIGF0IGV4aXN0aW5nICVyc3AuICovCi0gICAgICAgIG1vdnEgIFVSRUdTX3JzcCs4 KCVyc3ApLCVyc2kKLSAgICAgICAgYW5kYiAgJDB4ZmMsVVJFR1NfY3MrOCglcnNwKSAgICAjIElu ZGljYXRlIGtlcm5lbCBjb250ZXh0IHRvIGd1ZXN0LgorICAgICAgICBtb3ZxICBVUkVHU19yc3Ao JXIxMiksJXJzaQorICAgICAgICBhbmRiICAkMHhmYyxVUkVHU19jcyglcjEyKSAgICAgICMgSW5k aWNhdGUga2VybmVsIGNvbnRleHQgdG8gZ3Vlc3QuCiAyOiAgICAgIGFuZHEgICR+MHhmLCVyc2kg ICAgICAgICAgICAgICAgIyBTdGFjayBmcmFtZXMgYXJlIDE2LWJ5dGUgYWxpZ25lZC4KICAgICAg ICAgbW92cSAgJEhZUEVSVklTT1JfVklSVF9TVEFSVCsxLCVyYXgKICAgICAgICAgY21wcSAgJXJh eCwlcnNpCkBAIC0zMTcsMTEgKzMyMywxMSBAQCBfX1VOTElLRUxZX0VORChjcmVhdGVfYm91bmNl X2ZyYW1lX2JhZF9zcCkKICAgICAgICAgX0FTTV9FWFRBQkxFKDBiLCBkb21haW5fY3Jhc2hfcGFn ZV9mYXVsdF8gIyMgbiAjIyB4OCkKIAogICAgICAgICBzdWJxICAkNyo4LCVyc2kKLSAgICAgICAg bW92cSAgVVJFR1Nfc3MrOCglcnNwKSwlcmF4CisgICAgICAgIG1vdnEgIFVSRUdTX3NzKCVyMTIp LCVyYXgKICAgICAgICAgQVNNX1NUQUMKICAgICAgICAgbW92cSAgVkNQVV9kb21haW4oJXJieCks JXJkaQogICAgICAgICBTVE9SRV9HVUVTVF9TVEFDSyhyYXgsNikgICAgICAgICMgU1MKLSAgICAg ICAgbW92cSAgVVJFR1NfcnNwKzgoJXJzcCksJXJheAorICAgICAgICBtb3ZxICBVUkVHU19yc3Ao JXIxMiksJXJheAogICAgICAgICBTVE9SRV9HVUVTVF9TVEFDSyhyYXgsNSkgICAgICAgICMgUlNQ CiAgICAgICAgIG1vdnEgIFZDUFVfdmNwdV9pbmZvKCVyYngpLCVyYXgKICAgICAgICAgcHVzaHEg VkNQVUlORk9fdXBjYWxsX21hc2soJXJheCkKQEAgLTMzMCwxMiArMzM2LDEyIEBAIF9fVU5MSUtF TFlfRU5EKGNyZWF0ZV9ib3VuY2VfZnJhbWVfYmFkX3NwKQogICAgICAgICBvcmIgICAlY2gsVkNQ VUlORk9fdXBjYWxsX21hc2soJXJheCkKICAgICAgICAgcG9wcSAgJXJheAogICAgICAgICBzaGxx ICAkMzIsJXJheCAgICAgICAgICAgICAgICAgICMgQml0cyAzMi0zOTogc2F2ZWRfdXBjYWxsX21h c2sKLSAgICAgICAgbW92dyAgVVJFR1NfY3MrOCglcnNwKSwlYXggICAgICAjIEJpdHMgIDAtMTU6 IENTCisgICAgICAgIG1vdncgIFVSRUdTX2NzKCVyMTIpLCVheCAgICAgICAgIyBCaXRzICAwLTE1 OiBDUwogICAgICAgICBTVE9SRV9HVUVTVF9TVEFDSyhyYXgsMykgICAgICAgICMgQ1MgLyBzYXZl ZF91cGNhbGxfbWFzawogICAgICAgICBzaHJxICAkMzIsJXJheAogICAgICAgICB0ZXN0YiAkMHhG RiwlYWwgICAgICAgICAgICAgICAgICMgQml0cyAwLTc6IHNhdmVkX3VwY2FsbF9tYXNrCiAgICAg ICAgIHNldHogICVjaCAgICAgICAgICAgICAgICAgICAgICAgIyAlY2ggPT0gIXNhdmVkX3VwY2Fs bF9tYXNrCi0gICAgICAgIG1vdmwgIFVSRUdTX2VmbGFncys4KCVyc3ApLCVlYXgKKyAgICAgICAg bW92bCAgVVJFR1NfZWZsYWdzKCVyMTIpLCVlYXgKICAgICAgICAgYW5kbCAgJH4oWDg2X0VGTEFH U19JRnxYODZfRUZMQUdTX0lPUEwpLCVlYXgKICAgICAgICAgYWRkYiAgJWNoLCVjaCAgICAgICAg ICAgICAgICAgICAjIEJpdCA5IChFRkxBR1MuSUYpCiAgICAgICAgIG9yYiAgICVjaCwlYWggICAg ICAgICAgICAgICAgICAgIyBGb2xkIEVGTEFHUy5JRiBpbnRvICVlYXgKQEAgLTM0NCw3ICszNTAs NyBAQCBfX1VOTElLRUxZX0VORChjcmVhdGVfYm91bmNlX2ZyYW1lX2JhZF9zcCkKICAgICAgICAg Y21vdm56bCBWQ1BVX2lvcGwoJXJieCksJWVjeCAgICAjIEJpdHMgMTM6MTIgKEVGTEFHUy5JT1BM KQogICAgICAgICBvcmwgICAlZWN4LCVlYXggICAgICAgICAgICAgICAgICMgRm9sZCBFRkxBR1Mu SU9QTCBpbnRvICVlYXgKICAgICAgICAgU1RPUkVfR1VFU1RfU1RBQ0socmF4LDQpICAgICAgICAj IFJGTEFHUwotICAgICAgICBtb3ZxICBVUkVHU19yaXArOCglcnNwKSwlcmF4CisgICAgICAgIG1v dnEgIFVSRUdTX3JpcCglcjEyKSwlcmF4CiAgICAgICAgIFNUT1JFX0dVRVNUX1NUQUNLKHJheCwy KSAgICAgICAgIyBSSVAKICAgICAgICAgdGVzdGIgJFRCRl9FWENFUFRJT05fRVJSQ09ERSxUUkFQ Qk9VTkNFX2ZsYWdzKCVyZHgpCiAgICAgICAgIGp6ICAgIDFmCkBAIC0zNTIsOSArMzU4LDkgQEAg X19VTkxJS0VMWV9FTkQoY3JlYXRlX2JvdW5jZV9mcmFtZV9iYWRfc3ApCiAgICAgICAgIG1vdmwg IFRSQVBCT1VOQ0VfZXJyb3JfY29kZSglcmR4KSwlZWF4CiAgICAgICAgIFNUT1JFX0dVRVNUX1NU QUNLKHJheCwyKSAgICAgICAgIyBFUlJPUiBDT0RFCiAxOgotICAgICAgICBtb3ZxICBVUkVHU19y MTErOCglcnNwKSwlcmF4CisgICAgICAgIG1vdnEgIFVSRUdTX3IxMSglcjEyKSwlcmF4CiAgICAg ICAgIFNUT1JFX0dVRVNUX1NUQUNLKHJheCwxKSAgICAgICAgIyBSMTEKLSAgICAgICAgbW92cSAg VVJFR1NfcmN4KzgoJXJzcCksJXJheAorICAgICAgICBtb3ZxICBVUkVHU19yY3goJXIxMiksJXJh eAogICAgICAgICBTVE9SRV9HVUVTVF9TVEFDSyhyYXgsMCkgICAgICAgICMgUkNYCiAgICAgICAg IEFTTV9DTEFDCiAKQEAgLTM2MywxOSArMzY5LDE5IEBAIF9fVU5MSUtFTFlfRU5EKGNyZWF0ZV9i b3VuY2VfZnJhbWVfYmFkX3NwKQogICAgICAgICAvKiBSZXdyaXRlIG91ciBzdGFjayBmcmFtZSBh bmQgcmV0dXJuIHRvIGd1ZXN0LU9TIG1vZGUuICovCiAgICAgICAgIC8qIElBMzIgUmVmLiBWb2wu IDM6IFRGLCBWTSwgUkYgYW5kIE5UIGZsYWdzIGFyZSBjbGVhcmVkIG9uIHRyYXAuICovCiAgICAg ICAgIC8qIEFsc28gY2xlYXIgQUM6IGFsaWdubWVudCBjaGVja3Mgc2hvdWxkbid0IHRyaWdnZXIg aW4ga2VybmVsIG1vZGUuICovCi0gICAgICAgIG9ybCAgICRUUkFQX3N5c2NhbGwsVVJFR1NfZW50 cnlfdmVjdG9yKzgoJXJzcCkKKyAgICAgICAgb3JsICAgJFRSQVBfc3lzY2FsbCxVUkVHU19lbnRy eV92ZWN0b3IoJXIxMikKICAgICAgICAgYW5kbCAgJH4oWDg2X0VGTEFHU19BQ3xYODZfRUZMQUdT X1ZNfFg4Nl9FRkxBR1NfUkZ8XAotICAgICAgICAgICAgICAgICBYODZfRUZMQUdTX05UfFg4Nl9F RkxBR1NfVEYpLFVSRUdTX2VmbGFncys4KCVyc3ApCi0gICAgICAgIG1vdnEgICRGTEFUX0tFUk5F TF9TUyxVUkVHU19zcys4KCVyc3ApCi0gICAgICAgIG1vdnEgICVyc2ksVVJFR1NfcnNwKzgoJXJz cCkKLSAgICAgICAgbW92cSAgJEZMQVRfS0VSTkVMX0NTLFVSRUdTX2NzKzgoJXJzcCkKKyAgICAg ICAgICAgICAgICAgWDg2X0VGTEFHU19OVHxYODZfRUZMQUdTX1RGKSxVUkVHU19lZmxhZ3MoJXIx MikKKyAgICAgICAgbW92cSAgJEZMQVRfS0VSTkVMX1NTLFVSRUdTX3NzKCVyMTIpCisgICAgICAg IG1vdnEgICVyc2ksVVJFR1NfcnNwKCVyMTIpCisgICAgICAgIG1vdnEgICRGTEFUX0tFUk5FTF9D UyxVUkVHU19jcyglcjEyKQogICAgICAgICBtb3ZxICBUUkFQQk9VTkNFX2VpcCglcmR4KSwlcmF4 CiAgICAgICAgIHRlc3RxICVyYXgsJXJheAogVU5MSUtFTFlfU1RBUlQoeiwgY3JlYXRlX2JvdW5j ZV9mcmFtZV9iYWRfYm91bmNlX2lwKQogICAgICAgICBsZWEgICBVTkxJS0VMWV9ESVNQQVRDSF9M QUJFTChjcmVhdGVfYm91bmNlX2ZyYW1lX2JhZF9ib3VuY2VfaXApKCVyaXApLCAlcmRpCiAgICAg ICAgIGptcCAgIGFzbV9kb21haW5fY3Jhc2hfc3luY2hyb25vdXMgIC8qIERvZXMgbm90IHJldHVy biAqLwogX19VTkxJS0VMWV9FTkQoY3JlYXRlX2JvdW5jZV9mcmFtZV9iYWRfYm91bmNlX2lwKQot ICAgICAgICBtb3ZxICAlcmF4LFVSRUdTX3JpcCs4KCVyc3ApCisgICAgICAgIG1vdnEgICVyYXgs VVJFR1NfcmlwKCVyMTIpCiAgICAgICAgIHJldAogCiAgICAgICAgIC5wdXNoc2VjdGlvbiAuZml4 dXAsICJheCIsIEBwcm9nYml0cwpAQCAtNDE0LDIyICs0MjAsMjMgQEAgRU5UUlkoZG9tX2NyYXNo X3N5bmNfZXh0YWJsZSkKIAogRU5UUlkoY29tbW9uX2ludGVycnVwdCkKICAgICAgICAgU0FWRV9B TEwgQ0xBQworICAgICAgICBtb3YgICAlcnNwLCAlcjEyCiAKICAgICAgICAgR0VUX1NUQUNLX0VO RCgxNCkKIAotICAgICAgICBTUEVDX0NUUkxfRU5UUllfRlJPTV9JTlRSIC8qIFJlcTogJXJzcD1y ZWdzLCAlcjE0PWVuZCwgQ2xvYjogYWNkICovCisgICAgICAgIFNQRUNfQ1RSTF9FTlRSWV9GUk9N X0lOVFIgLyogUmVxOiAlcjEyPXJlZ3MsICVyMTQ9ZW5kLCBDbG9iOiBhY2QgKi8KICAgICAgICAg LyogV0FSTklORyEgYHJldGAsIGBjYWxsICpgLCBgam1wICpgIG5vdCBzYWZlIGJlZm9yZSB0aGlz IHBvaW50LiAqLwogCiAgICAgICAgIENSNF9QVjMyX1JFU1RPUkUKLSAgICAgICAgbW92cSAlcnNw LCVyZGkKKyAgICAgICAgbW92ICAgJXIxMiwgJXJkaQogICAgICAgICBjYWxscSBkb19JUlEKICAg ICAgICAgam1wIHJldF9mcm9tX2ludHIKIAogLyogTm8gc3BlY2lhbCByZWdpc3RlciBhc3N1bXB0 aW9ucy4gKi8KIEVOVFJZKHJldF9mcm9tX2ludHIpCiAgICAgICAgIEdFVF9DVVJSRU5UKGJ4KQot ICAgICAgICB0ZXN0YiAkMyxVUkVHU19jcyglcnNwKQotICAgICAgICBqeiAgICByZXN0b3JlX2Fs bF94ZW4KKyAgICAgICAgdGVzdGIgJDMsVVJFR1NfY3MoJXIxMikKKyAgICAgICAganogICAgcmVz dG9yZV9hbGxfeGVuX3IxMgogICAgICAgICBtb3ZxICBWQ1BVX2RvbWFpbiglcmJ4KSwlcmF4CiAg ICAgICAgIHRlc3RiICQxLERPTUFJTl9pc18zMmJpdF9wdiglcmF4KQogICAgICAgICBqeiAgICB0 ZXN0X2FsbF9ldmVudHMKQEAgLTQ0MCwxNSArNDQ3LDE2IEBAIEVOVFJZKHBhZ2VfZmF1bHQpCiAv KiBObyBzcGVjaWFsIHJlZ2lzdGVyIGFzc3VtcHRpb25zLiAqLwogR0xPQkFMKGhhbmRsZV9leGNl cHRpb24pCiAgICAgICAgIFNBVkVfQUxMIENMQUMKKyAgICAgICAgbW92ICAgJXJzcCwgJXIxMgog CiAgICAgICAgIEdFVF9TVEFDS19FTkQoMTQpCiAKLSAgICAgICAgU1BFQ19DVFJMX0VOVFJZX0ZS T01fSU5UUiAvKiBSZXE6ICVyc3A9cmVncywgJXIxND1lbmQsIENsb2I6IGFjZCAqLworICAgICAg ICBTUEVDX0NUUkxfRU5UUllfRlJPTV9JTlRSIC8qIFJlcTogJXIxMj1yZWdzLCAlcjE0PWVuZCwg Q2xvYjogYWNkICovCiAgICAgICAgIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAq YCBub3Qgc2FmZSBiZWZvcmUgdGhpcyBwb2ludC4gKi8KIAogaGFuZGxlX2V4Y2VwdGlvbl9zYXZl ZDoKICAgICAgICAgR0VUX0NVUlJFTlQoYngpCi0gICAgICAgIHRlc3RiICRYODZfRUZMQUdTX0lG Pj44LFVSRUdTX2VmbGFncysxKCVyc3ApCisgICAgICAgIHRlc3RiICRYODZfRUZMQUdTX0lGPj44 LFVSRUdTX2VmbGFncysxKCVyMTIpCiAgICAgICAgIGp6ICAgIGV4Y2VwdGlvbl93aXRoX2ludHNf ZGlzYWJsZWQKIAogLkxjcjRfcHYzMl9vcmlnOgpAQCAtNDY5LDcgKzQ3Nyw3IEBAIGhhbmRsZV9l eGNlcHRpb25fc2F2ZWQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICguTGNyNF9wdjMy X2FsdF9lbmQgLSAuTGNyNF9wdjMyX2FsdCkKICAgICAgICAgLnBvcHNlY3Rpb24KIAotICAgICAg ICB0ZXN0YiAkMyxVUkVHU19jcyglcnNwKQorICAgICAgICB0ZXN0YiAkMyxVUkVHU19jcyglcjEy KQogICAgICAgICBqeiAgICAuTGNyNF9wdjMyX2RvbmUKICAgICAgICAgY21wYiAgJDAsRE9NQUlO X2lzXzMyYml0X3B2KCVyYXgpCiAgICAgICAgIGplICAgIC5MY3I0X3B2MzJfZG9uZQpAQCAtNDk4 LDIxICs1MDYsMjEgQEAgaGFuZGxlX2V4Y2VwdGlvbl9zYXZlZDoKICAgICAgICAgICogICAgIGdv dG8gY29tcGF0X3Rlc3RfYWxsX2V2ZW50czsKICAgICAgICAgICovCiAgICAgICAgIG1vdiAgICRQ RkVDX3BhZ2VfcHJlc2VudCwlYWwKLSAgICAgICAgY21wYiAgJFRSQVBfcGFnZV9mYXVsdCxVUkVH U19lbnRyeV92ZWN0b3IoJXJzcCkKKyAgICAgICAgY21wYiAgJFRSQVBfcGFnZV9mYXVsdCxVUkVH U19lbnRyeV92ZWN0b3IoJXIxMikKICAgICAgICAgam5lICAgLkxjcjRfcHYzMl9kb25lCi0gICAg ICAgIHhvciAgIFVSRUdTX2Vycm9yX2NvZGUoJXJzcCksJWVheAorICAgICAgICB4b3IgICBVUkVH U19lcnJvcl9jb2RlKCVyMTIpLCVlYXgKICAgICAgICAgdGVzdCAgJH4oUEZFQ193cml0ZV9hY2Nl c3N8UEZFQ19pbnNuX2ZldGNoKSwlZWF4CiAgICAgICAgIGp6ICAgIGNvbXBhdF90ZXN0X2FsbF9l dmVudHMKIC5MY3I0X3B2MzJfZG9uZToKICAgICAgICAgc3RpCi0xOiAgICAgIG1vdnEgICVyc3As JXJkaQotICAgICAgICBtb3Z6YmwgVVJFR1NfZW50cnlfdmVjdG9yKCVyc3ApLCVlYXgKKzE6ICAg ICAgbW92ICAgJXIxMiwlcmRpCisgICAgICAgIG1vdnpibCBVUkVHU19lbnRyeV92ZWN0b3IoJXIx MiksJWVheAogICAgICAgICBsZWFxICBleGNlcHRpb25fdGFibGUoJXJpcCksJXJkeAogICAgICAg ICBQRVJGQ19JTkNSKGV4Y2VwdGlvbnMsICVyYXgsICVyYngpCiAgICAgICAgIG1vdiAgICglcmR4 LCAlcmF4LCA4KSwgJXJkeAogICAgICAgICBJTkRJUkVDVF9DQUxMICVyZHgKLSAgICAgICAgdGVz dGIgJDMsVVJFR1NfY3MoJXJzcCkKLSAgICAgICAganogICAgcmVzdG9yZV9hbGxfeGVuCisgICAg ICAgIHRlc3RiICQzLFVSRUdTX2NzKCVyMTIpCisgICAgICAgIGp6ICAgIHJlc3RvcmVfYWxsX3hl bl9yMTIKICAgICAgICAgbGVhcSAgVkNQVV90cmFwX2JvdW5jZSglcmJ4KSwlcmR4CiAgICAgICAg IG1vdnEgIFZDUFVfZG9tYWluKCVyYngpLCVyYXgKICAgICAgICAgdGVzdGIgJDEsRE9NQUlOX2lz XzMyYml0X3B2KCVyYXgpCkBAIC01MjYsMjkgKzUzNCwyOSBAQCBoYW5kbGVfZXhjZXB0aW9uX3Nh dmVkOgogCiAvKiBObyBzcGVjaWFsIHJlZ2lzdGVyIGFzc3VtcHRpb25zLiAqLwogZXhjZXB0aW9u X3dpdGhfaW50c19kaXNhYmxlZDoKLSAgICAgICAgdGVzdGIgJDMsVVJFR1NfY3MoJXJzcCkgICAg ICAgICAjIGludGVycnVwdHMgZGlzYWJsZWQgb3V0c2lkZSBYZW4/CisgICAgICAgIHRlc3RiICQz LFVSRUdTX2NzKCVyMTIpICAgICAgICAgIyBpbnRlcnJ1cHRzIGRpc2FibGVkIG91dHNpZGUgWGVu PwogICAgICAgICBqbnogICBGQVRBTF9leGNlcHRpb25fd2l0aF9pbnRzX2Rpc2FibGVkCi0gICAg ICAgIG1vdnEgICVyc3AsJXJkaQorICAgICAgICBtb3YgICAlcjEyLCVyZGkKICAgICAgICAgY2Fs bCAgc2VhcmNoX3ByZV9leGNlcHRpb25fdGFibGUKICAgICAgICAgdGVzdHEgJXJheCwlcmF4ICAg ICAgICAgICAgICAgICAjIG5vIGZpeHVwIGNvZGUgZm9yIGZhdWx0aW5nIEVJUD8KICAgICAgICAg anogICAgMWIKLSAgICAgICAgbW92cSAgJXJheCxVUkVHU19yaXAoJXJzcCkKLSAgICAgICAgc3Vi cSAgJDgsVVJFR1NfcnNwKCVyc3ApICAgICAgICAjIGFkZCBlYy9ldiB0byBwcmV2aW91cyBzdGFj ayBmcmFtZQotICAgICAgICB0ZXN0YiAkMTUsVVJFR1NfcnNwKCVyc3ApICAgICAgICMgcmV0dXJu ICVyc3AgaXMgbm93IGFsaWduZWQ/CisgICAgICAgIG1vdnEgICVyYXgsVVJFR1NfcmlwKCVyMTIp CisgICAgICAgIHN1YnEgICQ4LFVSRUdTX3JzcCglcjEyKSAgICAgICAgIyBhZGQgZWMvZXYgdG8g cHJldmlvdXMgc3RhY2sgZnJhbWUKKyAgICAgICAgdGVzdGIgJDE1LFVSRUdTX3JzcCglcjEyKSAg ICAgICAjIHJldHVybiAlcnNwIGlzIG5vdyBhbGlnbmVkPwogICAgICAgICBqeiAgICAxZiAgICAg ICAgICAgICAgICAgICAgICAgICMgdGhlbiB0aGVyZSBpcyBhIHBhZCBxdWFkd29yZCBhbHJlYWR5 Ci0gICAgICAgIG1vdnEgICVyc3AsJXJzaQotICAgICAgICBzdWJxICAkOCwlcnNwCi0gICAgICAg IG1vdnEgICVyc3AsJXJkaQorICAgICAgICBtb3ZxICAlcjEyLCVyc2kKKyAgICAgICAgc3VicSAg JDgsJXIxMgorICAgICAgICBtb3ZxICAlcjEyLCVyZGkKICAgICAgICAgbW92cSAgJFVSRUdTX2tl cm5lbF9zaXplb2YvOCwlcmN4CiAgICAgICAgIHJlcDsgIG1vdnNxICAgICAgICAgICAgICAgICAg ICAgIyBtYWtlIHJvb20gZm9yIGVjL2V2Ci0xOiAgICAgIG1vdnEgIFVSRUdTX2Vycm9yX2NvZGUo JXJzcCksJXJheCAjIGVjL2V2Ci0gICAgICAgIG1vdnEgICVyYXgsVVJFR1Nfa2VybmVsX3NpemVv ZiglcnNwKQotICAgICAgICBqbXAgICByZXN0b3JlX2FsbF94ZW4gICAgICAgICAgICMgcmV0dXJu IHRvIGZpeHVwIGNvZGUKKzE6ICAgICAgbW92cSAgVVJFR1NfZXJyb3JfY29kZSglcjEyKSwlcmF4 ICMgZWMvZXYKKyAgICAgICAgbW92cSAgJXJheCxVUkVHU19rZXJuZWxfc2l6ZW9mKCVyMTIpCisg ICAgICAgIGptcCAgIHJlc3RvcmVfYWxsX3hlbl9yMTIgICAgICAgIyByZXR1cm4gdG8gZml4dXAg Y29kZQogCiAvKiBObyBzcGVjaWFsIHJlZ2lzdGVyIGFzc3VtcHRpb25zLiAqLwogRkFUQUxfZXhj ZXB0aW9uX3dpdGhfaW50c19kaXNhYmxlZDoKICAgICAgICAgeG9ybCAgJWVzaSwlZXNpCi0gICAg ICAgIG1vdnEgICVyc3AsJXJkaQorICAgICAgICBtb3YgICAlcjEyLCVyZGkKICAgICAgICAgY2Fs bCAgZmF0YWxfdHJhcAogICAgICAgICBCVUcgICAvKiBmYXRhbF90cmFwKCkgc2hvdWxkbid0IHJl dHVybi4gKi8KIApAQCAtNjIxLDEzICs2MjksMTQgQEAgRU5UUlkoZG91YmxlX2ZhdWx0KQogICAg ICAgICBtb3ZsICAkVFJBUF9kb3VibGVfZmF1bHQsNCglcnNwKQogICAgICAgICAvKiBTZXQgQUMg dG8gcmVkdWNlIGNoYW5jZSBvZiBmdXJ0aGVyIFNNQVAgZmF1bHRzICovCiAgICAgICAgIFNBVkVf QUxMIFNUQUMKKyAgICAgICAgbW92cSAgJXJzcCwgJXIxMgogCiAgICAgICAgIEdFVF9TVEFDS19F TkQoMTQpCiAKLSAgICAgICAgU1BFQ19DVFJMX0VOVFJZX0ZST01fSU5UUl9JU1QgLyogUmVxOiAl cnNwPXJlZ3MsICVyMTQ9ZW5kLCBDbG9iOiBhY2QgKi8KKyAgICAgICAgU1BFQ19DVFJMX0VOVFJZ X0ZST01fSU5UUl9JU1QgLyogUmVxOiAlcjEyPXJlZ3MsICVyMTQ9ZW5kLCBDbG9iOiBhY2QgKi8K ICAgICAgICAgLyogV0FSTklORyEgYHJldGAsIGBjYWxsICpgLCBgam1wICpgIG5vdCBzYWZlIGJl Zm9yZSB0aGlzIHBvaW50LiAqLwogCi0gICAgICAgIG1vdnEgICVyc3AsJXJkaQorICAgICAgICBt b3YgICAlcjEyLCVyZGkKICAgICAgICAgY2FsbCAgZG9fZG91YmxlX2ZhdWx0CiAgICAgICAgIEJV RyAgIC8qIGRvX2RvdWJsZV9mYXVsdCgpIHNob3VsZG4ndCByZXR1cm4uICovCiAKQEAgLTY0NSwz MiArNjU0LDM3IEBAIEVOVFJZKG5taSkKICAgICAgICAgbW92bCAgJFRSQVBfbm1pLDQoJXJzcCkK IGhhbmRsZV9pc3RfZXhjZXB0aW9uOgogICAgICAgICBTQVZFX0FMTCBDTEFDCisgICAgICAgIG1v diAgICVyc3AsICVyMTIKIAogICAgICAgICBHRVRfU1RBQ0tfRU5EKDE0KQogCi0gICAgICAgIFNQ RUNfQ1RSTF9FTlRSWV9GUk9NX0lOVFJfSVNUIC8qIFJlcTogJXJzcD1yZWdzLCAlcjE0PWVuZCwg Q2xvYjogYWNkICovCisgICAgICAgIFNQRUNfQ1RSTF9FTlRSWV9GUk9NX0lOVFJfSVNUIC8qIFJl cTogJXIxMj1yZWdzLCAlcjE0PWVuZCwgQ2xvYjogYWNkICovCiAgICAgICAgIC8qIFdBUk5JTkch IGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBiZWZvcmUgdGhpcyBwb2ludC4gKi8K IAogICAgICAgICBDUjRfUFYzMl9SRVNUT1JFCi0gICAgICAgIHRlc3RiICQzLFVSRUdTX2NzKCVy c3ApCisgICAgICAgIG1vdnEgICVyMTIsJXJieAorICAgICAgICBzdWJxICAlcnNwLCVyYngKKyAg ICAgICAgdGVzdGIgJDMsVVJFR1NfY3MoJXIxMikKICAgICAgICAganogICAgMWYKICAgICAgICAg LyogSW50ZXJydXB0ZWQgZ3Vlc3QgY29udGV4dC4gQ29weSB0aGUgY29udGV4dCB0byBzdGFjayBi b3R0b20uICovCiAgICAgICAgIEdFVF9DUFVJTkZPX0ZJRUxEKGd1ZXN0X2NwdV91c2VyX3JlZ3Ms ZGkpCi0gICAgICAgIG1vdnEgICVyc3AsJXJzaQorICAgICAgICBhZGRxICAlcmJ4LCVyZGkKKyAg ICAgICAgbW92cSAgJXIxMiwlcnNpCiAgICAgICAgIG1vdmwgICRVUkVHU19rZXJuZWxfc2l6ZW9m LzgsJWVjeAogICAgICAgICBtb3ZxICAlcmRpLCVyc3AKKyAgICAgICAgbW92cSAgJXJkaSwlcjEy CiAgICAgICAgIHJlcCAgIG1vdnNxCi0xOiAgICAgIG1vdnEgICVyc3AsJXJkaQotICAgICAgICBt b3Z6YmwgVVJFR1NfZW50cnlfdmVjdG9yKCVyc3ApLCVlYXgKKzE6ICAgICAgbW92emJsIFVSRUdT X2VudHJ5X3ZlY3RvciglcjEyKSwlZWF4CiAgICAgICAgIGxlYXEgIGV4Y2VwdGlvbl90YWJsZSgl cmlwKSwlcmR4CisgICAgICAgIG1vdiAgICVyMTIsJXJkaQogICAgICAgICBtb3YgICAoJXJkeCwg JXJheCwgOCksICVyZHgKICAgICAgICAgSU5ESVJFQ1RfQ0FMTCAlcmR4Ci0gICAgICAgIGNtcGIg ICRUUkFQX25taSxVUkVHU19lbnRyeV92ZWN0b3IoJXJzcCkKKyAgICAgICAgY21wYiAgJFRSQVBf bm1pLFVSRUdTX2VudHJ5X3ZlY3RvciglcjEyKQogICAgICAgICBqbmUgICByZXRfZnJvbV9pbnRy CiAKICAgICAgICAgLyogV2Ugd2FudCB0byBnZXQgc3RyYWlnaHQgdG8gdGhlIElSRVQgb24gdGhl IE5NSSBleGl0IHBhdGguICovCi0gICAgICAgIHRlc3RiICQzLFVSRUdTX2NzKCVyc3ApCi0gICAg ICAgIGp6ICAgIHJlc3RvcmVfYWxsX3hlbgorICAgICAgICB0ZXN0YiAkMyxVUkVHU19jcyglcjEy KQorICAgICAgICBqeiAgICByZXN0b3JlX2FsbF94ZW5fcjEyCiAgICAgICAgIEdFVF9DVVJSRU5U KGJ4KQogICAgICAgICAvKiBTZW5kIGFuIElQSSB0byBvdXJzZWx2ZXMgdG8gY292ZXIgZm9yIHRo ZSBsYWNrIG9mIGV2ZW50IGNoZWNraW5nLiAqLwogICAgICAgICBtb3ZsICBWQ1BVX3Byb2Nlc3Nv ciglcmJ4KSwlZWF4CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2N1cnJlbnQuaCBi L3hlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oCmluZGV4IDEwODcyMzkzNTcuLjgzZDIyNmEx YmEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oCisrKyBiL3hlbi9p bmNsdWRlL2FzbS14ODYvY3VycmVudC5oCkBAIC0xMDIsOSArMTAyLDExIEBAIHVuc2lnbmVkIGxv bmcgZ2V0X3N0YWNrX2R1bXBfYm90dG9tICh1bnNpZ25lZCBsb25nIHNwKTsKICAgICAoeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICJtb3YgJTAsJSUiX19PUCJzcDsi ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIENI RUNLX0ZPUl9MSVZFUEFUQ0hfV09SSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAotICAgICAgICAgICAgICJqbXAgJWMxIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgOiA6ICJyIiAoZ3Vlc3RfY3B1X3Vz ZXJfcmVncygpKSwgImkiIChfX2ZuKSA6ICJtZW1vcnkiICk7ICAgXAorICAgICAgICAgICAgIm1v diAlMSwlJXIxMjsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgICAgICAgQ0hFQ0tfRk9SX0xJVkVQQVRDSF9XT1JLICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgImptcCAlYzIiICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgOiA6ICJy IiAoZ2V0X2NwdV9pbmZvKCkpLCAiciIgKGd1ZXN0X2NwdV91c2VyX3JlZ3MoKSksICAgICAgXAor ICAgICAgICAgICAgICAgICJpIiAoX19mbikgOiAibWVtb3J5IiApOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAogICAgICAgICB1bnJlYWNoYWJsZSgpOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0pCiAKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL2FzbS14ODYvbm9wcy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ub3BzLmgK aW5kZXggNjEzMTljY2ZiYS4uZGFmOTVmNzE0NyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9ub3BzLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ub3BzLmgKQEAgLTY4LDcgKzY4 LDcgQEAKICNkZWZpbmUgQVNNX05PUDE3IEFTTV9OT1A4OyBBU01fTk9QNzsgQVNNX05PUDIKICNk ZWZpbmUgQVNNX05PUDIxIEFTTV9OT1A4OyBBU01fTk9QODsgQVNNX05PUDUKICNkZWZpbmUgQVNN X05PUDI0IEFTTV9OT1A4OyBBU01fTk9QODsgQVNNX05PUDgKLSNkZWZpbmUgQVNNX05PUDI5IEFT TV9OT1A4OyBBU01fTk9QODsgQVNNX05PUDg7IEFTTV9OT1A1CisjZGVmaW5lIEFTTV9OT1AzMCBB U01fTk9QODsgQVNNX05PUDg7IEFTTV9OT1A4OyBBU01fTk9QNgogI2RlZmluZSBBU01fTk9QMzIg QVNNX05PUDg7IEFTTV9OT1A4OyBBU01fTk9QODsgQVNNX05PUDgKICNkZWZpbmUgQVNNX05PUDQw IEFTTV9OT1A4OyBBU01fTk9QODsgQVNNX05PUDg7IEFTTV9OT1A4OyBBU01fTk9QOAogCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3NwZWNfY3RybF9hc20uaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvc3BlY19jdHJsX2FzbS5oCmluZGV4IDgxNGY1M2RmZmMuLjU4NjhkYjhkYjIgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvc3BlY19jdHJsX2FzbS5oCisrKyBiL3hlbi9p bmNsdWRlL2FzbS14ODYvc3BlY19jdHJsX2FzbS5oCkBAIC0xNDQsNyArMTQ0LDggQEAKIAogLm1h Y3JvIERPX1NQRUNfQ1RSTF9FTlRSWSBtYXliZXhlbjpyZXEgaWJyc192YWw6cmVxCiAvKgotICog UmVxdWlyZXMgJXJzcD1yZWdzIChhbHNvIGNwdWluZm8gaWYgIW1heWJleGVuKQorICogUmVxdWly ZXMgJXIxMj1yZWdzCisgKiBSZXF1aXJlcyAlcnNwPXN0YWNrX2VuZCAoaWYgIW1heWJleGVuKQog ICogUmVxdWlyZXMgJXIxND1zdGFja19lbmQgKGlmIG1heWJleGVuKQogICogQ2xvYmJlcnMgJXJh eCwgJXJjeCwgJXJkeAogICoKQEAgLTE2Miw3ICsxNjMsNyBAQAogICAgICAqLwogICAgIC5pZiBc bWF5YmV4ZW4KICAgICAgICAgLyogQnJhbmNobGVzcyBgaWYgKCAheGVuICkgY2xlYXJfc2hhZG93 aW5nYCAqLwotICAgICAgICB0ZXN0YiAkMywgVVJFR1NfY3MoJXJzcCkKKyAgICAgICAgdGVzdGIg JDMsIFVSRUdTX2NzKCVyMTIpCiAgICAgICAgIHNldHogJWFsCiAgICAgICAgIGFuZCAlYWwsIFNU QUNLX0NQVUlORk9fRklFTEQodXNlX3NoYWRvd19zcGVjX2N0cmwpKCVyMTQpCiAgICAgLmVsc2UK QEAgLTE5Nyw3ICsxOTgsNyBAQAogCiAubWFjcm8gRE9fU1BFQ19DVFJMX0VYSVRfVE9fR1VFU1QK IC8qCi0gKiBSZXF1aXJlcyAlZWF4PXNwZWNfY3RybCwgJXJzcD1yZWdzL2NwdWluZm8KKyAqIFJl cXVpcmVzICVlYXg9c3BlY19jdHJsLCAlcnNwPWNwdWluZm8KICAqIENsb2JiZXJzICVyY3gsICVy ZHgKICAqCiAgKiBXaGVuIHJldHVybmluZyB0byBndWVzdCBjb250ZXh0LCBzZXQgdXAgU1BFQ19D VFJMIHNoYWRvd2luZyBhbmQgbG9hZCB0aGUKQEAgLTI0MSw3ICsyNDIsNyBAQAogI2RlZmluZSBT UEVDX0NUUkxfRU5UUllfRlJPTV9JTlRSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgIEFMVEVSTkFUSVZFIF9fc3RyaW5naWZ5KEFTTV9OT1A0MCksICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBET19PVkVSV1JJVEVfUlNCLCBYODZf RkVBVFVSRV9SU0JfTkFUSVZFOyAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEFMVEVSTkFU SVZFXzIgX19zdHJpbmdpZnkoQVNNX05PUDI5KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgIEFMVEVSTkFUSVZFXzIgX19zdHJpbmdpZnkoQVNNX05PUDMwKSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBfX3N0cmluZ2lmeShET19TUEVDX0NUUkxf RU5UUlkgbWF5YmV4ZW49MSAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAg ICAgICBpYnJzX3ZhbD1TUEVDX0NUUkxfSUJSUyksICAgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgICAgICBYODZfRkVBVFVSRV9YRU5fSUJSU19TRVQsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXApAQCAtMjYzLDcgKzI2NCw3IEBACiAvKiBUT0RPOiBEcm9wIHRo ZXNlIHdoZW4gdGhlIGFsdGVybmF0aXZlcyBpbmZyYXN0cnVjdHVyZSBpcyBOTUkvI01DIHNhZmUu ICovCiAubWFjcm8gU1BFQ19DVFJMX0VOVFJZX0ZST01fSU5UUl9JU1QKIC8qCi0gKiBSZXF1aXJl cyAlcnNwPXJlZ3MsICVyMTQ9c3RhY2tfZW5kCisgKiBSZXF1aXJlcyAlcjEyPXJlZ3MsICVyMTQ9 c3RhY2tfZW5kCiAgKiBDbG9iYmVycyAlcmF4LCAlcmN4LCAlcmR4CiAgKgogICogVGhpcyBpcyBs b2dpY2FsIG1lcmdlIG9mIERPX09WRVJXUklURV9SU0IgYW5kIERPX1NQRUNfQ1RSTF9FTlRSWQpA QCAtMjgyLDcgKzI4Myw3IEBACiAgICAganogLkxcQF9za2lwX3dybXNyCiAKICAgICB4b3IgJWVk eCwgJWVkeAotICAgIHRlc3RiICQzLCBVUkVHU19jcyglcnNwKQorICAgIHRlc3RiICQzLCBVUkVH U19jcyglcjEyKQogICAgIHNldHogJWRsCiAgICAgYW5kICVkbCwgU1RBQ0tfQ1BVSU5GT19GSUVM RCh1c2Vfc2hhZG93X3NwZWNfY3RybCkoJXIxNCkKIAotLSAKMi4xMy42CgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0 Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==