From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v16 7/9] x86: make Xen early boot code relocatable Date: Tue, 21 Feb 2017 20:19:56 +0100 Message-ID: <1487704799-21162-8-git-send-email-daniel.kiper@oracle.com> References: <1487704799-21162-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cgFzd-0001x9-5F for xen-devel@lists.xenproject.org; Tue, 21 Feb 2017 19:20:57 +0000 In-Reply-To: <1487704799-21162-1-git-send-email-daniel.kiper@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: jgross@suse.com, sstabellini@kernel.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, julien.grall@arm.com, jbeulich@suse.com, qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org RXZlcnkgbXVsdGlib290IHByb3RvY29sIChyZWdhcmRsZXNzIG9mIHZlcnNpb24pIGNvbXBhdGli bGUgaW1hZ2UgbXVzdApzcGVjaWZ5IGl0cyBsb2FkIGFkZHJlc3MgKGluIEVMRiBvciBtdWx0aWJv b3QgaGVhZGVyKS4gTXVsdGlib290IHByb3RvY29sCmNvbXBhdGlibGUgbG9hZGVyIGhhdmUgdG8g bG9hZCBpbWFnZSBhdCBzcGVjaWZpZWQgYWRkcmVzcy4gSG93ZXZlciwgdGhlcmUKaXMgbm8gZ3Vh cmFudGVlIHRoYXQgdGhlIHJlcXVlc3RlZCBtZW1vcnkgcmVnaW9uIChpbiBjYXNlIG9mIFhlbiBp dCBzdGFydHMKYXQgMiBNaUIgYW5kIGVuZHMgYXQgfjUgTWlCKSB3aGVyZSBpbWFnZSBzaG91bGQg YmUgbG9hZGVkIGluaXRpYWxseSBpcyBhIFJBTQphbmQgaXQgaXMgZnJlZSAobGVnYWN5IEJJT1Mg cGxhdGZvcm1zIGFyZSBtZXJjaWZ1bCBmb3IgWGVuIGJ1dCBJIGZvdW5kIGF0CmxlYXN0IG9uZSBF RkkgcGxhdGZvcm0gb24gd2hpY2ggWGVuIGxvYWQgYWRkcmVzcyBjb25mbGljdHMgd2l0aCBFRkkg Ym9vdApzZXJ2aWNlczsgaXQgaXMgRGVsbCBQb3dlckVkZ2UgUjgyMCB3aXRoIGxhdGVzdCBmaXJt d2FyZSkuIFRvIGNvcGUgd2l0aCB0aGF0CnByb2JsZW0gd2UgbXVzdCBtYWtlIFhlbiBlYXJseSBi b290IGNvZGUgcmVsb2NhdGFibGUgYW5kIGhlbHAgYm9vdCBsb2FkZXIgdG8KcmVsb2NhdGUgaW1h Z2UgaW4gcHJvcGVyIHdheSBieSBzdWdnZXN0aW5nLCBub3QgcmVxdWVzdGluZyBzcGVjaWZpYyBs b2FkCmFkZHJlc3NlcyBhcyBpdCBpcyByaWdodCBub3csIGFsbG93ZWQgYWRkcmVzcyByYW5nZXMu IFRoaXMgcGF0Y2ggZG9lcyBmb3JtZXIuCkl0IGRvZXMgbm90IGFkZCBtdWx0aWJvb3QyIHByb3Rv Y29sIGludGVyZmFjZSB3aGljaCBpcyBkb25lIGluICJ4ODY6IGFkZAptdWx0aWJvb3QyIHByb3Rv Y29sIHN1cHBvcnQgZm9yIHJlbG9jYXRhYmxlIGltYWdlcyIgcGF0Y2guCgpUaGlzIHBhdGNoIGNo YW5nZXMgZm9sbG93aW5nIHRoaW5nczoKICAtICVlc2kgcmVnaXN0ZXIgaXMgdXNlZCBhcyBhIHN0 b3JhZ2UgZm9yIFhlbiBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzczsKICAgIGl0IGlzIG1vc3RseSB1 bnVzZWQgaW4gZWFybHkgYm9vdCBjb2RlIGFuZCBwcmVzZXJ2ZWQgZHVyaW5nIEMgZnVuY3Rpb25z CiAgICBjYWxscyBpbiAzMi1iaXQgbW9kZSwKICAtICVmcyBpcyB1c2VkIGFzIGJhc2UgZm9yIFhl biBkYXRhIHJlbGF0aXZlIGFkZHJlc3NpbmcgaW4gMzItYml0IGNvZGUKICAgIGlmIGl0IGlzIHBv c3NpYmxlOyAlZXNpIGlzIHVzZWQgZm9yIHRoYXQgdGhpbmcgZHVyaW5nIGVycm9yIHByaW50aW5n CiAgICBiZWNhdXNlIGl0IGlzIG5vdCBhbHdheXMgcG9zc2libGUgdG8gcHJvcGVybHkgYW5kIGVm ZmljaWVudGx5CiAgICBpbml0aWFsaXplICVmcy4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBLaXBl ciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+Ci0tLQp2MTMgLSBzdWdnZXN0aW9ucy9maXhlczoK ICAgIC0gbW92ZSBnZHRfYm9vdF9kZXNjciB0byAuaW5pdC5kYXRhIHNlY3Rpb24KICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2MTIgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgIC0g c3RvcmUgWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzIGRpcmVjdGx5IGludG8gJWVzaSwKICAg IC0gc3RvcmUgWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzIGFmdGVyIHg4Nl8zMl9zd2l0Y2gK ICAgICAgKHN1Z2dlc3RlZCBieSBEb3VnIEdvbGRzdGVpbiksCiAgICAtIGltcHJvdmUgY29tbWl0 IG1lc3NhZ2UuCgp2OCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHVzZSBzaGxkIGluc3RlYWQg b2YgbW92IGFuZCBzaHIgaW4gQk9PVF9GUyBzZWdtZW50CiAgICAgZGVzY3JpcHRvciBiYXNlIGFk ZHJlc3MgaW5pdGlhbGl6YXRpb24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAg LSBzaW1wbGlmeSBjb2RlIHVwZGF0aW5nIGZyYW1lIGFkZHJlc3NlcyBpbiBwYWdlIHRhYmxlcwog ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHByaW50IFhlbiBpbWFnZSBiYXNl IGFkZHJlc3NlcyB1c2luZyAiJSNseCIgZm9ybWF0CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1 bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLgoKdjYgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBsZWF2ZSBzdGF0aWMgbWFwcGluZyBv ZiBmaXJzdAogICAgIDE2IE1pQiBpbiBsMl9pZGVudG1hcCBhcyBpcwogICAgIChzdWdnZXN0ZWQg YnkgSmFuIEJldWxpY2gpLAogICAtIHVzZSB4ZW5fcGh5c19zdGFydCBpbnN0ZWFkIG9mIHhlbl9p bWdfbG9hZF9iYXNlX2FkZHIKICAgICAoc3VnZ2VzdGVkIGJ5IERhbmllbCBLaXBlciBhbmQgSmFu IEJldWxpY2gpLAogICAtIHNpbXBsaWZ5IEJPT1RfRlMgc2VnbWVudCBkZXNjcmlwdG9yCiAgICAg YmFzZSBhZGRyZXNzIGluaXRpYWxpemF0aW9uCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCksCiAgIC0gZml4IEJPT1RfRlMgc2VnbWVudCBsaW1pdAogICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2gpLAogICAtIGRvIG5vdCByZW5hbWUgc3ltX3BoeXMgaW4gdGhpcyBwYXRjaAogICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHJlbmFtZSBlc2lfb2Zmc2V0L2ZzX29m ZnNldCB0bwogICAgIHN5bV9lc2kvc3ltX2ZzIHJlc3BlY3RpdmVseQogICAgIChzdWdnZXN0ZWQg YnkgSmFuIEJldWxpY2gpLAogICAtIHVzZSBhZGQgaW5zdGVhZCBvZiBsZWEgaW4gYXNzZW1ibHkK ICAgICBlcnJvciBwcmludGluZyBjb2RlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCks CiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAog ICAtIGltcHJvdmUgY29tbWl0IG1lc3NhZ2UKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KSwKICAgLSB2YXJpb3VzIG1pbm9yIGNsZWFudXBzIGFuZCBmaXhlcwogICAgIChzdWdnZXN0ZWQg YnkgSmFuIEJldWxpY2gpLgoKdjQgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBkbyBub3QgcmVs b2NhdGUgWGVuIGltYWdlIGlmIGJvb3QgbG9hZGVyIGRpZCB3b3JrIGZvciB1cwogICAgIChzdWdn ZXN0ZWQgYnkgQW5kcmV3IENvb3BlciBhbmQgSmFuIEJldWxpY2gpLAogICAtIGluaXRpYWxpemUg eGVuX2ltZ19sb2FkX2Jhc2VfYWRkciBpbiBFRkkgYm9vdCBjb2RlIHRvbywKICAgLSBwcm9wZXJs eSBpbml0aWFsaXplIHRyYW1wb2xpbmVfeGVuX3BoeXNfc3RhcnQsCiAgIC0gY2FsY3VsYXRlIFhl biBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzcyBpbgogICAgIHg4Nl82NCBjb2RlIG91cnNlbHZlcywK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBjaGFuZ2UgaG93IGFuZCB3aGVu IFhlbiBpbWFnZSBiYXNlIGFkZHJlc3MgaXMgcHJpbnRlZCwKICAgLSB1c2UgJWZzIGluc3RlYWQg b2YgJWVzaSBmb3IgcmVsYXRpdmUgYWRkcmVzc2luZwogICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3 IENvb3BlciBhbmQgSmFuIEJldWxpY2gpLAogICAtIGNyZWF0ZSBlc2lfb2Zmc2V0IGFuZCBmc19v ZmZzZXQoKSBtYWNyb3MgaW4gYXNzZW1ibHksCiAgIC0gY2FsY3VsYXRlIDxmaW5hbC1leGVjLWFk ZHI+IG1rZWxmMzIgYXJndW1lbnQgYXV0b21hdGljYWxseSwKICAgLSBvcHRpbWl6ZSBhbmQgY2xl YW51cCBjb2RlLAogICAtIGltcHJvdmUgY29tbWVudHMsCiAgIC0gaW1wcm92ZSBjb21taXQgbWVz c2FnZS4KCnYzIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gaW1wcm92ZSBzZWdtZW50IHJlZ2lz dGVycyBpbml0aWFsaXphdGlvbgogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAt IHNpbXBsaWZ5IFhlbiBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzcyBjYWxjdWxhdGlvbgogICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHVzZSAlZXNpIGFuZCAlcjE1ZCBpbnN0ZWFk IG9mICVlYnAgdG8gc3RvcmUKICAgICBYZW4gaW1hZ2UgbG9hZCBiYXNlIGFkZHJlc3MsCiAgIC0g dXNlICVlc2kgaW5zdGVhZCBvZiAlZnMgZm9yIHJlbGF0aXZlIGFkZHJlc3Npbmc7CiAgICAgdGhp cyB3YXkgd2UgZ2V0IHNob3J0ZXIgYW5kIHNpbXBsZXIgY29kZSwKICAgLSByZW5hbWUgc29tZSB2 YXJpYWJsZXMgYW5kIGNvbnN0YW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAog ICAtIGltcHJvdmUgY29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVzenV0ZWsg V2lsayksCiAgIC0gaW1wcm92ZSBjb21taXQgbWVzc2FnZQogICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2gpLgotLS0KIHhlbi9hcmNoL3g4Ni9ib290L2hlYWQuUyAgICAgICAgICB8ICAxNzAg KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2Jvb3Qv dHJhbXBvbGluZS5TICAgIHwgICAgNSArKwogeGVuL2FyY2gveDg2L2Jvb3QveDg2XzY0LlMgICAg ICAgIHwgICAyMSArKystLQogeGVuL2FyY2gveDg2L3NldHVwLmMgICAgICAgICAgICAgIHwgICAx NCArLS0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYyB8ICAgIDMgKwogeGVuL2lu Y2x1ZGUvYXNtLXg4Ni9wYWdlLmggICAgICAgIHwgICAgMiArLQogNiBmaWxlcyBjaGFuZ2VkLCAx NTggaW5zZXJ0aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2Jvb3QvaGVhZC5TIGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCmluZGV4IGI1ZDllYzgu LjY1OGU0MGEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUworKysgYi94ZW4v YXJjaC94ODYvYm9vdC9oZWFkLlMKQEAgLTEyLDEyICsxMiwxNSBAQAogICAgICAgICAuY29kZTMy CiAKICNkZWZpbmUgc3ltX3BoeXMoc3ltKSAgICAgKChzeW0pIC0gX19YRU5fVklSVF9TVEFSVCkK KyNkZWZpbmUgc3ltX2VzaShzeW0pICAgICAgc3ltX3BoeXMoc3ltKSglZXNpKQorI2RlZmluZSBz eW1fZnMoc3ltKSAgICAgICAlZnM6c3ltX3BoeXMoc3ltKQogCiAjZGVmaW5lIEJPT1RfQ1MzMiAg ICAgICAgMHgwMDA4CiAjZGVmaW5lIEJPT1RfQ1M2NCAgICAgICAgMHgwMDEwCiAjZGVmaW5lIEJP T1RfRFMgICAgICAgICAgMHgwMDE4CiAjZGVmaW5lIEJPT1RfUFNFVURPUk1fQ1MgMHgwMDIwCiAj ZGVmaW5lIEJPT1RfUFNFVURPUk1fRFMgMHgwMDI4CisjZGVmaW5lIEJPT1RfRlMgICAgICAgICAg MHgwMDMwCiAKICNkZWZpbmUgTUIyX0hUKG5hbWUpICAgICAgKE1VTFRJQk9PVDJfSEVBREVSX1RB R18jI25hbWUpCiAjZGVmaW5lIE1CMl9UVChuYW1lKSAgICAgIChNVUxUSUJPT1QyX1RBR19UWVBF XyMjbmFtZSkKQEAgLTEwMCwxMyArMTAzLDYgQEAgbXVsdGlib290Ml9oZWFkZXJfc3RhcnQ6CiAu TG11bHRpYm9vdDJfaGVhZGVyX2VuZDoKIAogICAgICAgICAuc2VjdGlvbiAuaW5pdC5yb2RhdGEs ICJhIiwgQHByb2diaXRzCi0gICAgICAgIC5hbGlnbiA0Ci0KLSAgICAgICAgLndvcmQgICAwCi1n ZHRfYm9vdF9kZXNjcjoKLSAgICAgICAgLndvcmQgICA2KjgtMQotICAgICAgICAubG9uZyAgIHN5 bV9waHlzKHRyYW1wb2xpbmVfZ2R0KQotICAgICAgICAubG9uZyAgIDAgLyogTmVlZGVkIGZvciA2 NC1iaXQgbGdkdCAqLwogCiAuTGJhZF9jcHVfbXNnOiAuYXNjaXogIkVSUjogTm90IGEgNjQtYml0 IENQVSEiCiAuTGJhZF9sZHJfbXNnOiAuYXNjaXogIkVSUjogTm90IGEgTXVsdGlib290IGJvb3Rs b2FkZXIhIgpAQCAtMTE4LDYgKzExNCwxMyBAQCBnZHRfYm9vdF9kZXNjcjoKICAgICAgICAgLnNl Y3Rpb24gLmluaXQuZGF0YSwgImF3IiwgQHByb2diaXRzCiAgICAgICAgIC5hbGlnbiA0CiAKKyAg ICAgICAgLndvcmQgICAwCitnZHRfYm9vdF9kZXNjcjoKKyAgICAgICAgLndvcmQgICA3KjgtMQor Z2R0X2Jvb3RfYmFzZToKKyAgICAgICAgLmxvbmcgICBzeW1fcGh5cyh0cmFtcG9saW5lX2dkdCkK KyAgICAgICAgLmxvbmcgICAwIC8qIE5lZWRlZCBmb3IgNjQtYml0IGxnZHQgKi8KKwogdmdhX3Rl eHRfYnVmZmVyOgogICAgICAgICAubG9uZyAgIDB4YjgwMDAKIApAQCAtMTI3LDIxICsxMzAsMjEg QEAgZWZpX3BsYXRmb3JtOgogICAgICAgICAuc2VjdGlvbiAuaW5pdC50ZXh0LCAiYXgiLCBAcHJv Z2JpdHMKIAogYmFkX2NwdToKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2NwdV9t c2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJh ZF9jcHVfbXNnKSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRf dnRiCiBub3RfbXVsdGlib290OgotICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRfbGRy X21zZykpLCVlc2kgIyBFcnJvciBtZXNzYWdlCisgICAgICAgIGFkZCAgICAgJHN5bV9waHlzKC5M YmFkX2xkcl9tc2cpLCVlc2kgICAjIEVycm9yIG1lc3NhZ2UKICAgICAgICAgam1wICAgICAuTGdl dF92dGIKIC5MbWIyX25vX3N0OgogICAgICAgICAvKgogICAgICAgICAgKiBIZXJlIHdlIGFyZSBv biBFRkkgcGxhdGZvcm0uIHZnYV90ZXh0X2J1ZmZlciB3YXMgemFwcGVkIGVhcmxpZXIKICAgICAg ICAgICogYmVjYXVzZSB0aGVyZSBpcyBwcmV0dHkgZ29vZCBjaGFuY2UgdGhhdCBWR0EgaXMgdW5h dmFpbGFibGUuCiAgICAgICAgICAqLwotICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRf bGRyX25zdCkpLCVlc2kgIyBFcnJvciBtZXNzYWdlCisgICAgICAgIGFkZCAgICAgJHN5bV9waHlz KC5MYmFkX2xkcl9uc3QpLCVlc2kgICAjIEVycm9yIG1lc3NhZ2UKICAgICAgICAgam1wICAgICAu TGdldF92dGIKIC5MbWIyX25vX2loOgogICAgICAgICAvKiBEaXR0by4gKi8KLSAgICAgICAgbW92 ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uaWgpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAg ICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbmloKSwlZXNpICAgIyBFcnJvciBtZXNz YWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCiAuTG1iMl9ub19iczoKICAgICAgICAgLyoK QEAgLTE0OSw3ICsxNTIsNyBAQCBub3RfbXVsdGlib290OgogICAgICAgICAgKiB2aWEgc3RhcnQg bGFiZWwuIFRoZW4gcmVsaWFibGUgdmdhX3RleHRfYnVmZmVyIHphcCBpcyBpbXBvc3NpYmxlCiAg ICAgICAgICAqIGluIE11bHRpYm9vdDIgc2Nhbm5pbmcgbG9vcCBhbmQgd2UgaGF2ZSB0byB6ZXJv ICVlZGkgYmVsb3cuCiAgICAgICAgICAqLwotICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxi YWRfbGRyX25icykpLCVlc2kgIyBFcnJvciBtZXNzYWdlCisgICAgICAgIGFkZCAgICAgJHN5bV9w aHlzKC5MYmFkX2xkcl9uYnMpLCVlc2kgICAjIEVycm9yIG1lc3NhZ2UKICAgICAgICAgeG9yICAg ICAlZWRpLCVlZGkgICAgICAgICAgICAgICAgICAgICAgICMgTm8gVkdBIHRleHQgYnVmZmVyCiAg ICAgICAgIGptcCAgICAgLkxzZW5kX2NocgogLkxtYjJfZWZpX2lhXzMyOgpAQCAtMTU3LDExICsx NjAsMTEgQEAgbm90X211bHRpYm9vdDoKICAgICAgICAgICogSGVyZSB3ZSBhcmUgb24gRUZJIElB LTMyIHBsYXRmb3JtLiBUaGVuIHJlbGlhYmxlIHZnYV90ZXh0X2J1ZmZlciB6YXAgaXMKICAgICAg ICAgICogaW1wb3NzaWJsZSBpbiBNdWx0aWJvb3QyIHNjYW5uaW5nIGxvb3AgYW5kIHdlIGhhdmUg dG8gemVybyAlZWRpIGJlbG93LgogICAgICAgICAgKi8KLSAgICAgICAgbW92ICAgICAkKHN5bV9w aHlzKC5MYmFkX2VmaV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAg ICRzeW1fcGh5cyguTGJhZF9lZmlfbXNnKSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAg IHhvciAgICAgJWVkaSwlZWRpICAgICAgICAgICAgICAgICAgICAgICAjIE5vIFZHQSB0ZXh0IGJ1 ZmZlcgogICAgICAgICBqbXAgICAgIC5Mc2VuZF9jaHIKIC5MZ2V0X3Z0YjoKLSAgICAgICAgbW92 ICAgICBzeW1fcGh5cyh2Z2FfdGV4dF9idWZmZXIpLCVlZGkKKyAgICAgICAgbW92ICAgICBzeW1f ZXNpKHZnYV90ZXh0X2J1ZmZlciksJWVkaQogLkxzZW5kX2NocjoKICAgICAgICAgbW92ICAgICAo JWVzaSksJWJsCiAgICAgICAgIHRlc3QgICAgJWJsLCVibCAgICAgICAgIyBUZXJtaW5hdGUgb24g J1wwJyBzZW50aW5lbApAQCAtMzI1LDkgKzMyOCwxMyBAQCBfX2VmaTY0X21iMl9zdGFydDoKIHg4 Nl8zMl9zd2l0Y2g6CiAgICAgICAgIG1vdiAgICAgJXIxNSwlcmRpCiAKKyAgICAgICAgLyogU3Rv cmUgWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzIGluIHBsYWNlIGFjY2Vzc2libGUgZm9yIDMy LWJpdCBjb2RlLiAqLworICAgICAgICBsZWEgICAgIF9faW1hZ2VfYmFzZV9fKCVyaXApLCVlc2kK KwogICAgICAgICBjbGkKIAogICAgICAgICAvKiBJbml0aWFsaXplIEdEVFIuICovCisgICAgICAg IGFkZCAgICAgJWVzaSxnZHRfYm9vdF9iYXNlKCVyaXApCiAgICAgICAgIGxnZHQgICAgZ2R0X2Jv b3RfZGVzY3IoJXJpcCkKIAogICAgICAgICAvKiBSZWxvYWQgY29kZSBzZWxlY3Rvci4gKi8KQEAg LTM2MywxMiArMzcwLDggQEAgX19zdGFydDoKICAgICAgICAgY2xkCiAgICAgICAgIGNsaQogCi0g ICAgICAgIC8qIEluaXRpYWxpc2UgR0RUIGFuZCBiYXNpYyBkYXRhIHNlZ21lbnRzLiAqLwotICAg ICAgICBsZ2R0ICAgICVjczpzeW1fcGh5cyhnZHRfYm9vdF9kZXNjcikKLSAgICAgICAgbW92ICAg ICAkQk9PVF9EUywlZWN4Ci0gICAgICAgIG1vdiAgICAgJWVjeCwlZHMKLSAgICAgICAgbW92ICAg ICAlZWN4LCVlcwotICAgICAgICBtb3YgICAgICVlY3gsJXNzCisgICAgICAgIC8qIExvYWQgZGVm YXVsdCBYZW4gaW1hZ2UgbG9hZCBiYXNlIGFkZHJlc3MuICovCisgICAgICAgIG1vdiAgICAgJHN5 bV9waHlzKF9faW1hZ2VfYmFzZV9fKSwlZXNpCiAKICAgICAgICAgLyogQm9vdGxvYWRlcnMgbWF5 IHNldCBtdWx0aWJvb3R7MSwyfS5tZW1fbG93ZXIgdG8gYSBub256ZXJvIHZhbHVlLiAqLwogICAg ICAgICB4b3IgICAgICVlZHgsJWVkeApAQCAtNDI1LDYgKzQyOCwyNSBAQCBfX3N0YXJ0OgogICAg ICAgICBqbXAgICAgIC5MbWIyX3RzaXplCiAKIHRyYW1wb2xpbmVfYmlvc19zZXR1cDoKKyAgICAg ICAgLyoKKyAgICAgICAgICogQ2FsbGVkIG9uIGxlZ2FjeSBCSU9TIHBsYXRmb3JtcyBvbmx5Lgor ICAgICAgICAgKgorICAgICAgICAgKiBJbml0aWFsaXplIEdEVFIgYW5kIGJhc2ljIGRhdGEgc2Vn bWVudHMuCisgICAgICAgICAqLworICAgICAgICBhZGQgICAgICVlc2ksc3ltX2VzaShnZHRfYm9v dF9iYXNlKQorICAgICAgICBsZ2R0ICAgIHN5bV9lc2koZ2R0X2Jvb3RfZGVzY3IpCisKKyAgICAg ICAgbW92ICAgICAkQk9PVF9EUywlZWN4CisgICAgICAgIG1vdiAgICAgJWVjeCwlZHMKKyAgICAg ICAgbW92ICAgICAlZWN4LCVlcworICAgICAgICBtb3YgICAgICVlY3gsJXNzCisgICAgICAgIC8q ICVlc3AgaXMgaW5pdGlhbGl6ZWQgbGF0ZXIuICovCisKKyAgICAgICAgLyogTG9hZCBudWxsIGRl c2NyaXB0b3IgdG8gdW51c2VkIHNlZ21lbnQgcmVnaXN0ZXJzLiAqLworICAgICAgICB4b3IgICAg ICVlY3gsJWVjeAorICAgICAgICBtb3YgICAgICVlY3gsJWZzCisgICAgICAgIG1vdiAgICAgJWVj eCwlZ3MKKwogICAgICAgICAvKiBTZXQgdXAgdHJhbXBvbGluZSBzZWdtZW50IDY0ayBiZWxvdyBF QkRBICovCiAgICAgICAgIG1vdnp3bCAgMHg0MGUsJWVjeCAgICAgICAgICAvKiBFQkRBIHNlZ21l bnQgKi8KICAgICAgICAgY21wICAgICAkMHhhMDAwLCVlY3ggICAgICAgIC8qIHNhbml0eSBjaGVj ayAoaGlnaCkgKi8KQEAgLTQ1MiwyMSArNDc0LDQ5IEBAIHRyYW1wb2xpbmVfYmlvc19zZXR1cDoK ICAgICAgICAgLyogRnJvbSBhcmNoL3g4Ni9zbXBib290LmM6IHN0YXJ0X2VpcCBoYWQgYmV0dGVy IGJlIHBhZ2UtYWxpZ25lZCEgKi8KICAgICAgICAgeG9yICAgICAlY2wsICVjbAogICAgICAgICBz aGwgICAgICQ0LCAlZWN4Ci0gICAgICAgIG1vdiAgICAgJWVjeCxzeW1fcGh5cyh0cmFtcG9saW5l X3BoeXMpCisgICAgICAgIG1vdiAgICAgJWVjeCxzeW1fZXNpKHRyYW1wb2xpbmVfcGh5cykKIAog dHJhbXBvbGluZV9zZXR1cDoKLSAgICAgICAgbW92ICAgICBzeW1fcGh5cyh0cmFtcG9saW5lX3Bo eXMpLCVlY3gKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2FsbGVkIG9uIGxlZ2FjeSBCSU9TIGFu ZCBFRkkgcGxhdGZvcm1zLgorICAgICAgICAgKgorICAgICAgICAgKiBJbml0aWFsaXplIDAtMTUg Yml0cyBvZiBCT09UX0ZTIHNlZ21lbnQgZGVzY3JpcHRvciBiYXNlIGFkZHJlc3MuCisgICAgICAg ICAqLworICAgICAgICBtb3YgICAgICVzaSxCT09UX0ZTKzIrc3ltX2VzaSh0cmFtcG9saW5lX2dk dCkKKworICAgICAgICAvKiBJbml0aWFsaXplIDE2LTIzIGJpdHMgb2YgQk9PVF9GUyBzZWdtZW50 IGRlc2NyaXB0b3IgYmFzZSBhZGRyZXNzLiAqLworICAgICAgICBzaGxkICAgICQxNiwlZXNpLCVl ZHgKKyAgICAgICAgbW92ICAgICAlZGwsQk9PVF9GUys0K3N5bV9lc2kodHJhbXBvbGluZV9nZHQp CisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSAyNC0zMSBiaXRzIG9mIEJPT1RfRlMgc2VnbWVudCBk ZXNjcmlwdG9yIGJhc2UgYWRkcmVzcy4gKi8KKyAgICAgICAgbW92ICAgICAlZGgsQk9PVF9GUys3 K3N5bV9lc2kodHJhbXBvbGluZV9nZHQpCisKKyAgICAgICAgLyoKKyAgICAgICAgICogSW5pdGlh bGl6ZSAlZnMgYW5kIGxhdGVyIHVzZSBpdCB0byBhY2Nlc3MgWGVuIGRhdGEgaWYgcG9zc2libGUu CisgICAgICAgICAqIEFjY29yZGluZyB0byBJbnRlbCA2NCBhbmQgSUEtMzIgQXJjaGl0ZWN0dXJl cyBTb2Z0d2FyZSBEZXZlbG9wZXIncworICAgICAgICAgKiBNYW51YWwgaXQgaXMgc2FmZSB0byBk byB0aGF0IHdpdGhvdXQgcmVsb2FkaW5nIEdEVFIgYmVmb3JlLgorICAgICAgICAgKi8KKyAgICAg ICAgbW92ICAgICAkQk9PVF9GUywlZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlZnMKKworICAg ICAgICAvKiBTYXZlIFhlbiBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzcyBmb3IgbGF0ZXIgdXNlLiAq LworICAgICAgICBtb3YgICAgICVlc2ksc3ltX2ZzKHhlbl9waHlzX3N0YXJ0KQorICAgICAgICBt b3YgICAgICVlc2ksc3ltX2ZzKHRyYW1wb2xpbmVfeGVuX3BoeXNfc3RhcnQpCisKKyAgICAgICAg LyogU2V0dXAgc3RhY2suICVzcyB3YXMgaW5pdGlhbGl6ZWQgZWFybGllci4gKi8KKyAgICAgICAg bGVhICAgICAxMDI0K3N5bV9lc2koY3B1MF9zdGFjayksJWVzcAorCisgICAgICAgIG1vdiAgICAg c3ltX2ZzKHRyYW1wb2xpbmVfcGh5cyksJWVjeAogCiAgICAgICAgIC8qIEdldCBib3R0b20tbW9z dCBsb3ctbWVtb3J5IHN0YWNrIGFkZHJlc3MuICovCiAgICAgICAgIGFkZCAgICAgJFRSQU1QT0xJ TkVfU1BBQ0UsJWVjeAogCiAgICAgICAgIC8qIFNhdmUgdGhlIE11bHRpYm9vdCBpbmZvIHN0cnVj dCAoYWZ0ZXIgcmVsb2NhdGlvbikgZm9yIGxhdGVyIHVzZS4gKi8KLSAgICAgICAgbW92ICAgICAk c3ltX3BoeXMoY3B1MF9zdGFjaykrMTAyNCwlZXNwCiAgICAgICAgIHB1c2ggICAgJWVjeCAgICAg ICAgICAgICAgICAvKiBCb3R0b20tbW9zdCBsb3ctbWVtb3J5IHN0YWNrIGFkZHJlc3MuICovCiAg ICAgICAgIHB1c2ggICAgJWVieCAgICAgICAgICAgICAgICAvKiBNdWx0aWJvb3QgaW5mb3JtYXRp b24gYWRkcmVzcy4gKi8KICAgICAgICAgcHVzaCAgICAlZWF4ICAgICAgICAgICAgICAgIC8qIE11 bHRpYm9vdCBtYWdpYy4gKi8KICAgICAgICAgY2FsbCAgICByZWxvYwotICAgICAgICBtb3YgICAg ICVlYXgsc3ltX3BoeXMobXVsdGlib290X3B0cikKKyAgICAgICAgbW92ICAgICAlZWF4LHN5bV9m cyhtdWx0aWJvb3RfcHRyKQogCiAgICAgICAgIC8qCiAgICAgICAgICAqIE5vdyB0cmFtcG9saW5l X3BoeXMgcG9pbnRzIHRvIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlIChsb3dlc3QgYWRkcmVzcwpA QCAtNDg5LDE2ICs1MzksMjAgQEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgICogRG8gbm90 IHplcm8gQlNTIG9uIEVGSSBwbGF0Zm9ybSBoZXJlLgogICAgICAgICAgKiBJdCB3YXMgaW5pdGlh bGl6ZWQgZWFybGllci4KICAgICAgICAgICovCi0gICAgICAgIGNtcGIgICAgJDAsc3ltX3BoeXMo ZWZpX3BsYXRmb3JtKQorICAgICAgICBjbXBiICAgICQwLHN5bV9mcyhlZmlfcGxhdGZvcm0pCiAg ICAgICAgIGpueiAgICAgMWYKIAogICAgICAgICAvKiBJbml0aWFsaXplIEJTUyAobm8gbmFzdHkg c3VycHJpc2VzISkuICovCiAgICAgICAgIG1vdiAgICAgJHN5bV9waHlzKF9fYnNzX3N0YXJ0KSwl ZWRpCiAgICAgICAgIG1vdiAgICAgJHN5bV9waHlzKF9fYnNzX2VuZCksJWVjeAorICAgICAgICBw dXNoICAgICVmcworICAgICAgICBwb3AgICAgICVlcwogICAgICAgICBzdWIgICAgICVlZGksJWVj eAogICAgICAgICB4b3IgICAgICVlYXgsJWVheAogICAgICAgICBzaHIgICAgICQyLCVlY3gKICAg ICAgICAgcmVwIHN0b3NsCisgICAgICAgIHB1c2ggICAgJWRzCisgICAgICAgIHBvcCAgICAgJWVz CiAKIDE6CiAgICAgICAgIC8qIEludGVycm9nYXRlIENQVSBleHRlbmRlZCBmZWF0dXJlcyB2aWEg Q1BVSUQuICovCkBAIC01MTIsOCArNTY2LDggQEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAg amJlICAgICAxZgogICAgICAgICBtb3YgICAgICQweDgwMDAwMDAxLCVlYXgKICAgICAgICAgY3B1 aWQKLTE6ICAgICAgbW92ICAgICAlZWR4LHN5bV9waHlzKGNwdWlkX2V4dF9mZWF0dXJlcykKLSAg ICAgICAgbW92ICAgICAlZWR4LHN5bV9waHlzKGJvb3RfY3B1X2RhdGEpK0NQVUlORk9fRkVBVFVS RV9PRkZTRVQoWDg2X0ZFQVRVUkVfTE0pCisxOiAgICAgIG1vdiAgICAgJWVkeCxzeW1fZnMoY3B1 aWRfZXh0X2ZlYXR1cmVzKQorICAgICAgICBtb3YgICAgICVlZHgsc3ltX2ZzKGJvb3RfY3B1X2Rh dGEpK0NQVUlORk9fRkVBVFVSRV9PRkZTRVQoWDg2X0ZFQVRVUkVfTE0pCiAKICAgICAgICAgLyog Q2hlY2sgZm9yIGF2YWlsYWJpbGl0eSBvZiBsb25nIG1vZGUuICovCiAgICAgICAgIGJ0ICAgICAg JGNwdWZlYXRfYml0KFg4Nl9GRUFUVVJFX0xNKSwlZWR4CkBAIC01MjEsMTUgKzU3NSw1MiBAQCB0 cmFtcG9saW5lX3NldHVwOgogCiAgICAgICAgIC8qIFN0YXNoIFRTQyB0byBjYWxjdWxhdGUgYSBn b29kIGFwcHJveGltYXRpb24gb2YgdGltZS1zaW5jZS1ib290ICovCiAgICAgICAgIHJkdHNjCi0g ICAgICAgIG1vdiAgICAgJWVheCxzeW1fcGh5cyhib290X3RzY19zdGFtcCkKLSAgICAgICAgbW92 ICAgICAlZWR4LHN5bV9waHlzKGJvb3RfdHNjX3N0YW1wKzQpCisgICAgICAgIG1vdiAgICAgJWVh eCxzeW1fZnMoYm9vdF90c2Nfc3RhbXApCisgICAgICAgIG1vdiAgICAgJWVkeCxzeW1fZnMoYm9v dF90c2Nfc3RhbXApKzQKKworICAgICAgICAvKgorICAgICAgICAgKiBVcGRhdGUgZnJhbWUgYWRk cmVzc2VzIGluIHBhZ2UgdGFibGVzIGV4Y2x1ZGluZyBsMl9pZGVudG1hcAorICAgICAgICAgKiB3 aXRob3V0IGl0cyBmaXJzdCBlbnRyeSB3aGljaCBwb2ludHMgdG8gbDFfaWRlbnRtYXAuCisgICAg ICAgICAqLworICAgICAgICBtb3YgICAgICQoKF9fcGFnZV90YWJsZXNfZW5kLV9fcGFnZV90YWJs ZXNfc3RhcnQpLzgpLCVlY3gKKyAgICAgICAgbW92ICAgICAkKCgobDJfaWRlbnRtYXAtX19wYWdl X3RhYmxlc19zdGFydCkvOCkrMSksJWVkeAorMTogICAgICBjbXAgICAgICQoKGwyX2lkZW50bWFw K2wyX2lkZW50bWFwX3NpemVvZi1fX3BhZ2VfdGFibGVzX3N0YXJ0KS84KSwlZWN4CisgICAgICAg IGNtb3ZlICAgJWVkeCwlZWN4CisgICAgICAgIHRlc3RsICAgJF9QQUdFX1BSRVNFTlQsc3ltX2Zz KF9fcGFnZV90YWJsZXNfc3RhcnQpLTgoLCVlY3gsOCkKKyAgICAgICAganogICAgICAyZgorICAg ICAgICBhZGQgICAgICVlc2ksc3ltX2ZzKF9fcGFnZV90YWJsZXNfc3RhcnQpLTgoLCVlY3gsOCkK KzI6ICAgICAgbG9vcCAgICAxYgorCisgICAgICAgIC8qIEluaXRpYWxpemUgTDIgYm9vdC1tYXAv ZGlyZWN0IG1hcCBwYWdlIHRhYmxlIGVudHJpZXMgKDE2TUIpLiAqLworICAgICAgICBsZWEgICAg IHN5bV9lc2koc3RhcnQpLCVlYngKKyAgICAgICAgbGVhICAgICAoMTw8TDJfUEFHRVRBQkxFX1NI SUZUKSo3KyhQQUdFX0hZUEVSVklTT1J8X1BBR0VfUFNFKSglZWJ4KSwlZWF4CisgICAgICAgIHNo ciAgICAgJChMMl9QQUdFVEFCTEVfU0hJRlQtMyksJWVieAorICAgICAgICBtb3YgICAgICQ4LCVl Y3gKKzE6ICAgICAgbW92ICAgICAlZWF4LHN5bV9mcyhsMl9ib290bWFwKS04KCVlYngsJWVjeCw4 KQorICAgICAgICBtb3YgICAgICVlYXgsc3ltX2ZzKGwyX2lkZW50bWFwKS04KCVlYngsJWVjeCw4 KQorICAgICAgICBzdWIgICAgICQoMTw8TDJfUEFHRVRBQkxFX1NISUZUKSwlZWF4CisgICAgICAg IGxvb3AgICAgMWIKKworICAgICAgICAvKiBJbml0aWFsaXplIEwzIGJvb3QtbWFwIHBhZ2UgZGly ZWN0b3J5IGVudHJ5LiAqLworICAgICAgICBsZWEgICAgIF9fUEFHRV9IWVBFUlZJU09SKyhMMl9Q QUdFVEFCTEVfRU5UUklFUyo4KSozK3N5bV9lc2kobDJfYm9vdG1hcCksJWVheAorICAgICAgICBt b3YgICAgICQ0LCVlY3gKKzE6ICAgICAgbW92ICAgICAlZWF4LHN5bV9mcyhsM19ib290bWFwKS04 KCwlZWN4LDgpCisgICAgICAgIHN1YiAgICAgJChMMl9QQUdFVEFCTEVfRU5UUklFUyo4KSwlZWF4 CisgICAgICAgIGxvb3AgICAgMWIKKworICAgICAgICAvKgorICAgICAgICAgKiBEdXJpbmcgYm9v dCwgaG9vayA0a0IgbWFwcGluZ3Mgb2YgZmlyc3QgMk1CIG9mIG1lbW9yeSBpbnRvIEwyLgorICAg ICAgICAgKiBUaGlzIGF2b2lkcyBtaXhpbmcgY2FjaGFiaWxpdHkgZm9yIHRoZSBsZWdhY3kgVkdB IHJlZ2lvbi4KKyAgICAgICAgICovCisgICAgICAgIGxlYSAgICAgX19QQUdFX0hZUEVSVklTT1Ir c3ltX2VzaShsMV9pZGVudG1hcCksJWVkaQorICAgICAgICBtb3YgICAgICVlZGksc3ltX2ZzKGwy X2Jvb3RtYXApCiAKICAgICAgICAgLyogQXBwbHkgcmVsb2NhdGlvbnMgdG8gYm9vdHN0cmFwIHRy YW1wb2xpbmUuICovCi0gICAgICAgIG1vdiAgICAgc3ltX3BoeXModHJhbXBvbGluZV9waHlzKSwl ZWR4CisgICAgICAgIG1vdiAgICAgc3ltX2ZzKHRyYW1wb2xpbmVfcGh5cyksJWVkeAogICAgICAg ICBtb3YgICAgICRzeW1fcGh5cyhfX3RyYW1wb2xpbmVfcmVsX3N0YXJ0KSwlZWRpCiAxOgotICAg ICAgICBtb3YgICAgICglZWRpKSwlZWF4Ci0gICAgICAgIGFkZCAgICAgJWVkeCwoJWVkaSwlZWF4 KQorICAgICAgICBtb3YgICAgICVmczooJWVkaSksJWVheAorICAgICAgICBhZGQgICAgICVlZHgs JWZzOiglZWRpLCVlYXgpCiAgICAgICAgIGFkZCAgICAgJDQsJWVkaQogICAgICAgICBjbXAgICAg ICRzeW1fcGh5cyhfX3RyYW1wb2xpbmVfcmVsX3N0b3ApLCVlZGkKICAgICAgICAgamIgICAgICAx YgpAQCAtNTM4LDI4ICs2MjksMjkgQEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgc2hyICAg ICAkNCwlZWR4CiAgICAgICAgIG1vdiAgICAgJHN5bV9waHlzKF9fdHJhbXBvbGluZV9zZWdfc3Rh cnQpLCVlZGkKIDE6Ci0gICAgICAgIG1vdiAgICAgKCVlZGkpLCVlYXgKLSAgICAgICAgbW92ICAg ICAlZHgsKCVlZGksJWVheCkKKyAgICAgICAgbW92ICAgICAlZnM6KCVlZGkpLCVlYXgKKyAgICAg ICAgbW92ICAgICAlZHgsJWZzOiglZWRpLCVlYXgpCiAgICAgICAgIGFkZCAgICAgJDQsJWVkaQog ICAgICAgICBjbXAgICAgICRzeW1fcGh5cyhfX3RyYW1wb2xpbmVfc2VnX3N0b3ApLCVlZGkKICAg ICAgICAgamIgICAgICAxYgogCiAgICAgICAgIC8qIERvIG5vdCBwYXJzZSBjb21tYW5kIGxpbmUg b24gRUZJIHBsYXRmb3JtIGhlcmUuICovCi0gICAgICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoZWZp X3BsYXRmb3JtKQorICAgICAgICBjbXBiICAgICQwLHN5bV9mcyhlZmlfcGxhdGZvcm0pCiAgICAg ICAgIGpueiAgICAgMWYKIAogICAgICAgICAvKiBCYWlsIGlmIHRoZXJlIGlzIG5vIGNvbW1hbmQg bGluZSB0byBwYXJzZS4gKi8KLSAgICAgICAgbW92ICAgICBzeW1fcGh5cyhtdWx0aWJvb3RfcHRy KSwlZWJ4CisgICAgICAgIG1vdiAgICAgc3ltX2ZzKG11bHRpYm9vdF9wdHIpLCVlYngKICAgICAg ICAgdGVzdGwgICAkTUJJX0NNRExJTkUsTUJfZmxhZ3MoJWVieCkKICAgICAgICAganogICAgICAx ZgogCi0gICAgICAgIHB1c2hsICAgJHN5bV9waHlzKGVhcmx5X2Jvb3Rfb3B0cykKKyAgICAgICAg bGVhICAgICBzeW1fZXNpKGVhcmx5X2Jvb3Rfb3B0cyksJWVheAorICAgICAgICBwdXNoICAgICVl YXgKICAgICAgICAgcHVzaGwgICBNQl9jbWRsaW5lKCVlYngpCiAgICAgICAgIGNhbGwgICAgY21k bGluZV9wYXJzZV9lYXJseQogCiAxOgogICAgICAgICAvKiBTd2l0Y2ggdG8gbG93LW1lbW9yeSBz dGFjayB3aGljaCBsaXZlcyBhdCB0aGUgZW5kIG9mIHRyYW1wb2xpbmUgcmVnaW9uLiAqLwotICAg ICAgICBtb3YgICAgIHN5bV9waHlzKHRyYW1wb2xpbmVfcGh5cyksJWVkaQorICAgICAgICBtb3Yg ICAgIHN5bV9mcyh0cmFtcG9saW5lX3BoeXMpLCVlZGkKICAgICAgICAgbGVhICAgICBUUkFNUE9M SU5FX1NQQUNFK1RSQU1QT0xJTkVfU1RBQ0tfU1BBQ0UoJWVkaSksJWVzcAogICAgICAgICBsZWEg ICAgIHRyYW1wb2xpbmVfYm9vdF9jcHVfZW50cnktdHJhbXBvbGluZV9zdGFydCglZWRpKSwlZWF4 CiAgICAgICAgIHB1c2hsICAgJEJPT1RfQ1MzMgpAQCAtNTY4LDcgKzY2MCw3IEBAIHRyYW1wb2xp bmVfc2V0dXA6CiAgICAgICAgIC8qIENvcHkgYm9vdHN0cmFwIHRyYW1wb2xpbmUgdG8gbG93IG1l bW9yeSwgYmVsb3cgMU1CLiAqLwogICAgICAgICBtb3YgICAgICRzeW1fcGh5cyh0cmFtcG9saW5l X3N0YXJ0KSwlZXNpCiAgICAgICAgIG1vdiAgICAgJCgodHJhbXBvbGluZV9lbmQgLSB0cmFtcG9s aW5lX3N0YXJ0KSAvIDQpLCVlY3gKLSAgICAgICAgcmVwIG1vdnNsCisgICAgICAgIHJlcCBtb3Zz bCAlZnM6KCVlc2kpLCVlczooJWVkaSkKIAogICAgICAgICAvKiBKdW1wIGludG8gdGhlIHJlbG9j YXRlZCB0cmFtcG9saW5lLiAqLwogICAgICAgICBscmV0CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvYm9vdC90cmFtcG9saW5lLlMgYi94ZW4vYXJjaC94ODYvYm9vdC90cmFtcG9saW5lLlMKaW5k ZXggMjcxNWQxNy4uNjRmOGVmZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvdHJhbXBv bGluZS5TCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290L3RyYW1wb2xpbmUuUwpAQCAtNTQsNiArNTQs MTEgQEAgdHJhbXBvbGluZV9nZHQ6CiAgICAgICAgIC8qIDB4MDAyODogcmVhbC1tb2RlIGRhdGEg QCBCT09UX1RSQU1QT0xJTkUgKi8KICAgICAgICAgLmxvbmcgICAweDAwMDBmZmZmCiAgICAgICAg IC5sb25nICAgMHgwMDAwOTIwMAorICAgICAgICAvKgorICAgICAgICAgKiAweDAwMzA6IHJpbmcg MCBYZW4gZGF0YSwgMTYgTWlCIHNpemUsIGJhc2UKKyAgICAgICAgICogYWRkcmVzcyBpcyBjb21w dXRlZCBkdXJpbmcgcnVudGltZS4KKyAgICAgICAgICovCisgICAgICAgIC5xdWFkICAgMHgwMGMw OTIwMDAwMDAwZmZmCiAKICAgICAgICAgLnB1c2hzZWN0aW9uIC50cmFtcG9saW5lX3JlbCwgImEi CiAgICAgICAgIC5sb25nICAgdHJhbXBvbGluZV9nZHQgKyBCT09UX1BTRVVET1JNX0NTICsgMiAt IC4KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TIGIveGVuL2FyY2gveDg2 L2Jvb3QveDg2XzY0LlMKaW5kZXggZjlkMTAyMi4uZDA3YzM2MCAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2Jvb3QveDg2XzY0LlMKKysrIGIveGVuL2FyY2gveDg2L2Jvb3QveDg2XzY0LlMKQEAg LTgxLDcgKzgxLDYgQEAgR0xPQkFMKGJvb3RfY3B1X2NvbXBhdF9nZHRfdGFibGUpCiAgICAgICAg IC5xdWFkIDB4MDAwMDkxMDAwMDAwMDAwMCAgICAgLyogcGVyLUNQVSBlbnRyeSAobGltaXQgPT0g Y3B1KSAgICAgICovCiAgICAgICAgIC5hbGlnbiBQQUdFX1NJWkUsIDAKIAotR0xPQkFMKF9fcGFn ZV90YWJsZXNfc3RhcnQpCiAvKgogICogTWFwcGluZyBvZiBmaXJzdCAyIG1lZ2FieXRlcyBvZiBt ZW1vcnkuIFRoaXMgaXMgbWFwcGVkIHdpdGggNGtCIG1hcHBpbmdzCiAgKiB0byBhdm9pZCB0eXBl IGNvbmZsaWN0cyB3aXRoIGZpeGVkLXJhbmdlIE1UUlJzIGNvdmVyaW5nIHRoZSBsb3dlc3QgbWVn YWJ5dGUKQEAgLTEwMiw2ICsxMDEsMTMgQEAgbDFfaWRlbnRtYXA6CiAgICAgICAgIC5zaXplIGwx X2lkZW50bWFwLCAuIC0gbDFfaWRlbnRtYXAKIAogLyoKKyAqIF9fcGFnZV90YWJsZXNfc3RhcnQg ZG9lcyBub3QgY292ZXIgbDFfaWRlbnRtYXAgYmVjYXVzZSBpdCAobDFfaWRlbnRtYXApCisgKiBj b250YWlucyAxLTEgbWFwcGluZ3MuIFRoaXMgbWVhbnMgdGhhdCBmcmFtZSBhZGRyZXNzZXMgb2Yg dGhlc2UgbWFwcGluZ3MKKyAqIGFyZSBzdGF0aWMgYW5kIHNob3VsZCBub3QgYmUgdXBkYXRlZCBk dXJpbmcgcnVudGltZS4KKyAqLworR0xPQkFMKF9fcGFnZV90YWJsZXNfc3RhcnQpCisKKy8qCiAg KiBTcGFjZSBmb3IgbWFwcGluZyB0aGUgZmlyc3QgNEdCIG9mIG1lbW9yeSwgd2l0aCB0aGUgZmly c3QgMTYgbWVnYWJ5dGVzCiAgKiBhY3R1YWx5IG1hcHBlZCAobW9zdGx5IHVzaW5nIHN1cGVycGFn ZXMpLiAgVXNlcyA0eCA0ayBwYWdlcy4KICAqLwpAQCAtMTg2LDIxICsxOTIsMTQgQEAgR0xPQkFM KGlkbGVfcGdfdGFibGUpCiAKIEdMT0JBTChfX3BhZ2VfdGFibGVzX2VuZCkKIAotLyogSW5pdCBw YWdldGFibGVzLiAgRW5vdWdoIHBhZ2UgZGlyZWN0b3JpZXMgdG8gbWFwIGludG8gdGhlIGJvdHRv bSAxR0IuICovCisvKiBJbml0IHBhZ2V0YWJsZXMuIEVub3VnaCBwYWdlIGRpcmVjdG9yaWVzIHRv IG1hcCBpbnRvIDRHQi4gKi8KICAgICAgICAgLnNlY3Rpb24gLmluaXQuZGF0YSwgImF3IiwgQHBy b2diaXRzCiAgICAgICAgIC5hbGlnbiBQQUdFX1NJWkUsIDAKIAogR0xPQkFMKGwyX2Jvb3RtYXAp Ci0gICAgICAgIC5xdWFkIHN5bV9waHlzKGwxX2lkZW50bWFwKSArIF9fUEFHRV9IWVBFUlZJU09S Ci0gICAgICAgIGlkeCA9IDEKLSAgICAgICAgLnJlcHQgNwotICAgICAgICAucXVhZCAoaWR4IDw8 IEwyX1BBR0VUQUJMRV9TSElGVCkgfCBfX1BBR0VfSFlQRVJWSVNPUiB8IF9QQUdFX1BTRQotICAg ICAgICBpZHggPSBpZHggKyAxCi0gICAgICAgIC5lbmRyCi0gICAgICAgIC5maWxsIEwyX1BBR0VU QUJMRV9FTlRSSUVTIC0gOCwgOCwgMAorICAgICAgICAuZmlsbCA0ICogTDJfUEFHRVRBQkxFX0VO VFJJRVMsIDgsIDAKICAgICAgICAgLnNpemUgbDJfYm9vdG1hcCwgLiAtIGwyX2Jvb3RtYXAKIAog R0xPQkFMKGwzX2Jvb3RtYXApCi0gICAgICAgIC5xdWFkIHN5bV9waHlzKGwyX2Jvb3RtYXApICsg X19QQUdFX0hZUEVSVklTT1IKLSAgICAgICAgLmZpbGwgTDNfUEFHRVRBQkxFX0VOVFJJRVMgLSAx LCA4LCAwCisgICAgICAgIC5maWxsIEwzX1BBR0VUQUJMRV9FTlRSSUVTLCA4LCAwCiAgICAgICAg IC5zaXplIGwzX2Jvb3RtYXAsIC4gLSBsM19ib290bWFwCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvc2V0dXAuYyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCmluZGV4IDhmZWVkMzUuLmI5OTczZDIg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zZXR1 cC5jCkBAIC0zMjksOSArMzI5LDYgQEAgc3RhdGljIHZvaWQgKl9faW5pdCBib290c3RyYXBfbWFw KGNvbnN0IG1vZHVsZV90ICptb2QpCiAgICAgaWYgKCBzdGFydCA+PSBlbmQgKQogICAgICAgICBy ZXR1cm4gTlVMTDsKIAotICAgIGlmICggZW5kIDw9IEJPT1RTVFJBUF9NQVBfQkFTRSApCi0gICAg ICAgIHJldHVybiAodm9pZCAqKSh1bnNpZ25lZCBsb25nKXN0YXJ0OwotCiAgICAgcmV0ID0gKHZv aWQgKikobWFwX2N1ciArICh1bnNpZ25lZCBsb25nKShzdGFydCAmIG1hc2spKTsKICAgICBzdGFy dCAmPSB+bWFzazsKICAgICBlbmQgPSAoZW5kICsgbWFzaykgJiB+bWFzazsKQEAgLTcxNSw2ICs3 MTIsOCBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1i aV9wKQogCiAgICAgcHJpbnRrKCJDb21tYW5kIGxpbmU6ICVzXG4iLCBjbWRsaW5lKTsKIAorICAg IHByaW50aygiWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzOiAlI2x4XG4iLCB4ZW5fcGh5c19z dGFydCk7CisKICAgICBwcmludGsoIlZpZGVvIGluZm9ybWF0aW9uOlxuIik7CiAKICAgICAvKiBQ cmludCBWR0EgZGlzcGxheSBtb2RlIGluZm9ybWF0aW9uLiAqLwpAQCAtOTcyLDcgKzk3MSw3IEBA IHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAg ICAgICAgICAgICAgICAgICAgIC8qIE5vdCBwcmVzZW50LCAxR0IgbWFwcGluZywgb3IgYWxyZWFk eSByZWxvY2F0ZWQ/ICovCiAgICAgICAgICAgICAgICAgICAgIGlmICggIShsM2VfZ2V0X2ZsYWdz KCpwbDNlKSAmIF9QQUdFX1BSRVNFTlQpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKGwz ZV9nZXRfZmxhZ3MoKnBsM2UpICYgX1BBR0VfUFNFKSB8fAotICAgICAgICAgICAgICAgICAgICAg ICAgIChsM2VfZ2V0X3BmbigqcGwzZSkgPiAweDEwMDApICkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAobDNlX2dldF9wZm4oKnBsM2UpID4gUEZOX0RPV04oeGVuX3BoeXNfc3RhcnQpKSApCiAg ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgKnBs M2UgPSBsM2VfZnJvbV9pbnRwdGUobDNlX2dldF9pbnRwdGUoKnBsM2UpICsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3BoeXNfc3RhcnQpOwpAQCAtOTgy LDcgKzk4MSw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxv bmcgbWJpX3ApCiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBOb3QgcHJlc2VudCwgUFNFLCBv ciBhbHJlYWR5IHJlbG9jYXRlZD8gKi8KICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggIShs MmVfZ2V0X2ZsYWdzKCpwbDJlKSAmIF9QQUdFX1BSRVNFTlQpIHx8CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsMmVfZ2V0X2ZsYWdzKCpwbDJlKSAmIF9QQUdFX1BTRSkgfHwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGwyZV9nZXRfcGZuKCpwbDJlKSA+IDB4MTAwMCkgKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobDJlX2dldF9wZm4oKnBsMmUpID4gUEZOX0RP V04oeGVuX3BoeXNfc3RhcnQpKSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu dWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAqcGwyZSA9IGwyZV9mcm9tX2ludHB0ZShsMmVf Z2V0X2ludHB0ZSgqcGwyZSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeGVuX3BoeXNfc3RhcnQpOwpAQCAtMTAwNSw3ICsxMDA0LDggQEAgdm9pZCBf X2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAKLSAgICAgICAgICAg ICAgICBpZiAoICEobDJlX2dldF9mbGFncygqcGwyZSkgJiBfUEFHRV9QUkVTRU5UKSApCisgICAg ICAgICAgICAgICAgaWYgKCAhKGwyZV9nZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFJFU0VOVCkg fHwKKyAgICAgICAgICAgICAgICAgICAgIChsMmVfZ2V0X3BmbigqcGwyZSkgPiBQRk5fRE9XTih4 ZW5fcGh5c19zdGFydCkpICkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAg ICAgICAgICAgICBpZiAoICF1c2luZ18yTV9tYXBwaW5nKCkgKQpAQCAtMTA1OSw2ICsxMDU5LDgg QEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkK ICAgICAgICAgICAgICAgICA6ICJtZW1vcnkiICk7CiAKICAgICAgICAgICAgIGJvb3RzdHJhcF9t YXAoTlVMTCk7CisKKyAgICAgICAgICAgIHByaW50aygiTmV3IFhlbiBpbWFnZSBiYXNlIGFkZHJl c3M6ICUjbHhcbiIsIHhlbl9waHlzX3N0YXJ0KTsKICAgICAgICAgfQogCiAgICAgICAgIC8qIElz IHRoZSByZWdpb24gc3VpdGFibGUgZm9yIHJlbG9jYXRpbmcgdGhlIG11bHRpYm9vdCBtb2R1bGVz PyAqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jIGIveGVu L2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCmluZGV4IGIyYjU5ZjEuLjgzNmZlZDMgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYworKysgYi94ZW4vYXJj aC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKQEAgLTE3OCw1ICsxNzgsOCBAQCB2b2lkIF9fZHVt bXlfXyh2b2lkKQogICAgIE9GRlNFVChNQjJfZWZpNjRfaWgsIG11bHRpYm9vdDJfdGFnX2VmaTY0 X2loX3QsIHBvaW50ZXIpOwogICAgIEJMQU5LKCk7CiAKKyAgICBERUZJTkUobDJfaWRlbnRtYXBf c2l6ZW9mLCBzaXplb2YobDJfaWRlbnRtYXApKTsKKyAgICBCTEFOSygpOworCiAgICAgT0ZGU0VU KERPTUFJTl92bV9hc3Npc3QsIHN0cnVjdCBkb21haW4sIHZtX2Fzc2lzdCk7CiB9CmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFn ZS5oCmluZGV4IGFmN2QzZTguLmE1NGZkZDEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvcGFnZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnZS5oCkBAIC0yODgsNyArMjg4 LDcgQEAgZXh0ZXJuIHJvb3RfcGdlbnRyeV90IGlkbGVfcGdfdGFibGVbUk9PVF9QQUdFVEFCTEVf RU5UUklFU107CiBleHRlcm4gbDJfcGdlbnRyeV90ICAqY29tcGF0X2lkbGVfcGdfdGFibGVfbDI7 CiBleHRlcm4gdW5zaWduZWQgaW50ICAgbTJwX2NvbXBhdF92c3RhcnQ7CiBleHRlcm4gbDJfcGdl bnRyeV90IGwyX3hlbm1hcFtMMl9QQUdFVEFCTEVfRU5UUklFU10sCi0gICAgbDJfYm9vdG1hcFtM Ml9QQUdFVEFCTEVfRU5UUklFU107CisgICAgbDJfYm9vdG1hcFs0KkwyX1BBR0VUQUJMRV9FTlRS SUVTXTsKIGV4dGVybiBsM19wZ2VudHJ5X3QgbDNfYm9vdG1hcFtMM19QQUdFVEFCTEVfRU5UUklF U107CiBleHRlcm4gbDJfcGdlbnRyeV90IGwyX2lkZW50bWFwWzQqTDJfUEFHRVRBQkxFX0VOVFJJ RVNdOwogZXh0ZXJuIGwxX3BnZW50cnlfdCBsMV9maXhtYXBbTDFfUEFHRVRBQkxFX0VOVFJJRVNd OwotLSAKMS43LjEwLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK