From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v6 09/15] x86: add multiboot2 protocol support for EFI platforms Date: Mon, 12 Sep 2016 22:18:24 +0200 Message-ID: <1473711511-11931-10-git-send-email-daniel.kiper@oracle.com> References: <1473711511-11931-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 1bjXjn-0006Ql-3N for xen-devel@lists.xenproject.org; Mon, 12 Sep 2016 20:21:55 +0000 In-Reply-To: <1473711511-11931-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, david.vrabel@citrix.com, jbeulich@suse.com, qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org VGhpcyB3YXkgWGVuIGNhbiBiZSBsb2FkZWQgb24gRUZJIHBsYXRmb3JtcyB1c2luZyBHUlVCMiBh bmQKb3RoZXIgYm9vdCBsb2FkZXJzIHdoaWNoIHN1cHBvcnQgbXVsdGlib290MiBwcm90b2NvbC4K ClNpZ25lZC1vZmYtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+Ci0t LQp2NiAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGltcHJvdmUgbGFiZWwgbmFtZXMgaW4gYXNz ZW1ibHkKICAgICBlcnJvciBwcmludGluZyBjb2RlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1 bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAtIHZhcmlvdXMgbWlub3IgY2xlYW51cHMgYW5kIGZpeGVzCiAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCkuCgp2NCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHJlbW92ZSBy ZWR1bmRhbnQgQlNTIGFsaWdubWVudCwKICAgLSB1cGRhdGUgQlNTIGFsaWdubWVudCBjaGVjaywK ICAgLSB1c2UgX19zZXRfYml0KCkgaW5zdGVhZCBvZiBzZXRfYml0KCkgaWYgcG9zc2libGUKICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBjYWxsIGVmaV9hcmNoX2NwdSgpIGZy b20gZWZpX211bHRpYm9vdDIoKQogICAgIGV2ZW4gaWYgdGhlIHNhbWUgd29yayBpcyBkb25lIGxh dGVyIGluCiAgICAgb3RoZXIgcGxhY2UgcmlnaHQgbm93CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCksCiAgIC0geGVuL2FyY2gveDg2L2VmaS9zdHViLmM6ZWZpX211bHRpYm9vdDIoKQog ICAgIGZhaWwgcHJvcGVybHkgb24gRUZJIHBsYXRmb3JtcywKICAgLSBkbyBub3QgcmVhZCBkYXRh IGJleW9uZCB0aGUgZW5kIG9mIG11bHRpYm9vdDIKICAgICBpbmZvcm1hdGlvbiBpbiB4ZW4vYXJj aC94ODYvYm9vdC9oZWFkLlMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1 c2UgMzItYml0IHJlZ2lzdGVycyBpbiB4ODZfNjQgY29kZSBpZiBwb3NzaWJsZQogICAgIChzdWdn ZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIG11bHRpYm9vdDIgaW5mb3JtYXRpb24gYWRkcmVz cyBpcyA2NC1iaXQKICAgICBpbiB4ODZfNjQgY29kZSwgc28sIHRyZWF0IGl0IGlzIGFzIGlzCiAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlIGNtb3ZjYyBpZiBwb3NzaWJs ZSwKICAgLSBsZWF2ZSBvbmx5IG9uZSBzcGFjZSBiZXR3ZWVuIHJlcCBhbmQgc3Rvc3EKICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGVycm9yIGhhbmRsaW5nLAog ICAtIGltcHJvdmUgZWFybHkgZXJyb3IgbWVzc2FnZXMsCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCksCiAgIC0gaW1wcm92ZSBlYXJseSBlcnJvciBtZXNzYWdlcyBwcmludGluZyBjb2Rl LAogICAtIGltcHJvdmUgbGFiZWwgbmFtZXMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCks CiAgIC0gdmFyaW91cyBtaW5vciBjbGVhbnVwcy4KCnYzIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAg IC0gdGFrZSBpbnRvIGFjY291bnQgYWxpZ25tZW50IHdoZW4gc2tpcHBpbmcgbXVsdGlib290MiBm aXhlZCBwYXJ0CiAgICAgKHN1Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspLAogICAt IGltcHJvdmUgc2VnbWVudCByZWdpc3RlcnMgaW5pdGlhbGl6YXRpb24KICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCBhbmQgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKSwKICAgLSBpbXByb3ZlIGNv bW1pdCBtZXNzYWdlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2MiAtIHN1Z2dl c3Rpb25zL2ZpeGVzOgogICAtIGdlbmVyYXRlIG11bHRpYm9vdDIgaGVhZGVyIHVzaW5nIG1hY3Jv cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHN3aXRjaCBDUFUgdG8geDg2 XzMyIG1vZGUgYmVmb3JlCiAgICAganVtcGluZyB0byAzMi1iaXQgY29kZQogICAgIChzdWdnZXN0 ZWQgYnkgQW5kcmV3IENvb3BlciksCiAgIC0gcmVkdWNlIGNvZGUgY2hhbmdlcyB0byBpbmNyZWFz ZSBwYXRjaCByZWFkYWJpbGl0eQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAt IGltcHJvdmUgY29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBp Z25vcmUgTVVMVElCT09UMl9UQUdfVFlQRV9CQVNJQ19NRU1JTkZPIHRhZyBvbiBFRkkgcGxhdGZv cm0KICAgICBhbmQgZmluZCBvbiBteSBvd24gbXVsdGlib290Mi5tZW1fbG93ZXIgdmFsdWUsCiAg IC0gc3RvcCBleGVjdXRpb24gaWYgRUZJIHBsYXRmb3JtIGlzIGRldGVjdGVkCiAgICAgaW4gbGVn YWN5IEJJT1MgcGF0aC4KLS0tCiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMgICAgICAgICAgfCAg MjU1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9hcmNoL3g4Ni9l ZmkvZWZpLWJvb3QuaCAgICAgICB8ICAgNDkgKysrKysrLQogeGVuL2FyY2gveDg2L2VmaS9zdHVi LmMgICAgICAgICAgIHwgICAzNyArKysrKysKIHhlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNl dHMuYyB8ICAgIDIgKwogeGVuL2FyY2gveDg2L3hlbi5sZHMuUyAgICAgICAgICAgIHwgICAgNCAr LQogeGVuL2NvbW1vbi9lZmkvYm9vdC5jICAgICAgICAgICAgIHwgICAxMSArKwogNiBmaWxlcyBj aGFuZ2VkLCAzMzYgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TIGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCmluZGV4 IDM4M2ZmNzkuLjAwZmE0N2QgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUwor KysgYi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKQEAgLTg5LDYgKzg5LDEzIEBAIG11bHRpYm9v dDJfaGVhZGVyX3N0YXJ0OgogICAgICAgICAgICAgICAgICAgIDAsIC8qIE51bWJlciBvZiB0aGUg bGluZXMgLSBubyBwcmVmZXJlbmNlLiAqLyBcCiAgICAgICAgICAgICAgICAgICAgMCAgLyogTnVt YmVyIG9mIGJpdHMgcGVyIHBpeGVsIC0gbm8gcHJlZmVyZW5jZS4gKi8KIAorICAgICAgICAvKiBJ bmhpYml0IGJvb3Rsb2FkZXIgZnJvbSBjYWxsaW5nIEV4aXRCb290U2VydmljZXMoKS4gKi8KKyAg ICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoRUZJX0JTKSwgTUIyX0hUKE9QVElPTkFMKQorCisgICAg ICAgIC8qIEVGSTY0IGVudHJ5IHBvaW50LiAqLworICAgICAgICBtYjJodF9pbml0IE1CMl9IVChF TlRSWV9BRERSRVNTX0VGSTY0KSwgTUIyX0hUKE9QVElPTkFMKSwgXAorICAgICAgICAgICAgICAg ICAgIHN5bV9waHlzKF9fZWZpNjRfc3RhcnQpCisKICAgICAgICAgLyogTXVsdGlib290MiBoZWFk ZXIgZW5kIHRhZy4gKi8KICAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoRU5EKSwgTUIyX0hUKFJF UVVJUkVEKQogLkxtdWx0aWJvb3QyX2hlYWRlcl9lbmQ6CkBAIC0xMDAsMjAgKzEwNyw0OSBAQCBt dWx0aWJvb3QyX2hlYWRlcl9zdGFydDoKIGdkdF9ib290X2Rlc2NyOgogICAgICAgICAud29yZCAg IDYqOC0xCiAgICAgICAgIC5sb25nICAgc3ltX3BoeXModHJhbXBvbGluZV9nZHQpCisgICAgICAg IC5sb25nICAgMCAvKiBOZWVkZWQgZm9yIDY0LWJpdCBsZ2R0ICovCisKK2NzMzJfc3dpdGNoX2Fk ZHI6CisgICAgICAgIC5sb25nICAgc3ltX3BoeXMoY3MzMl9zd2l0Y2gpCisgICAgICAgIC53b3Jk ICAgQk9PVF9DUzMyCisKKyAgICAgICAgLmFsaWduIDQKK3ZnYV90ZXh0X2J1ZmZlcjoKKyAgICAg ICAgLmxvbmcgICAweGI4MDAwCiAKIC5MYmFkX2NwdV9tc2c6IC5hc2NpeiAiRVJSOiBOb3QgYSA2 NC1iaXQgQ1BVISIKIC5MYmFkX2xkcl9tc2c6IC5hc2NpeiAiRVJSOiBOb3QgYSBNdWx0aWJvb3Qg Ym9vdGxvYWRlciEiCisuTGJhZF9sZHJfbmJzOiAuYXNjaXogIkVSUjogQm9vdGxvYWRlciBzaHV0 ZG93biBFRkkgeDY0IGJvb3Qgc2VydmljZXMhIgorLkxiYWRfbGRyX25zdDogLmFzY2l6ICJFUlI6 IEVGSSBTeXN0ZW1UYWJsZSBpcyBub3QgcHJvdmlkZWQgYnkgYm9vdGxvYWRlciEiCisuTGJhZF9s ZHJfbmloOiAuYXNjaXogIkVSUjogRUZJIEltYWdlSGFuZGxlIGlzIG5vdCBwcm92aWRlZCBieSBi b290bG9hZGVyISIKKy5MYmFkX2VmaV9tc2c6IC5hc2NpeiAiRVJSOiBFRkkgSUEtMzIgcGxhdGZv cm1zIGFyZSBub3Qgc3VwcG9ydGVkISIKIAogICAgICAgICAuc2VjdGlvbiAuaW5pdC50ZXh0LCAi YXgiLCBAcHJvZ2JpdHMKIAogYmFkX2NwdToKICAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5M YmFkX2NwdV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQotICAgICAgICBqbXAgICAgIHByaW50 X2VycgorICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0Ygogbm90X211bHRpYm9vdDoKICAgICAgICAg bW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQot cHJpbnRfZXJyOgotICAgICAgICBtb3YgICAgICQweEI4MDAwLCVlZGkgICMgVkdBIGZyYW1lYnVm ZmVyCi0xOiAgICAgIG1vdiAgICAgKCVlc2kpLCVibAorICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0 YgorLkxtYjJfbm9fc3Q6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9sZHJfbnN0 KSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgam1wICAgICAuTGdldF92dGIKKy5MbWIy X25vX2loOgorICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRfbGRyX25paCkpLCVlc2kg IyBFcnJvciBtZXNzYWdlCisgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCisuTG1iMl9ub19iczoK KyAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uYnMpKSwlZXNpICMgRXJyb3Ig bWVzc2FnZQorICAgICAgICB4b3IgICAgICVlZGksJWVkaSAgICAgICAgICAgICAgICAgICAgICAg IyBObyBWR0EgdGV4dCBidWZmZXIKKyAgICAgICAgam1wICAgICAuTHNlbmRfY2hyCisuTG1iMl9l ZmlfaWFfMzI6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9lZmlfbXNnKSksJWVz aSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgeG9yICAgICAlZWRpLCVlZGkgICAgICAgICAgICAg ICAgICAgICAgICMgTm8gVkdBIHRleHQgYnVmZmVyCisgICAgICAgIGptcCAgICAgLkxzZW5kX2No cgorLkxnZXRfdnRiOgorICAgICAgICBtb3YgICAgIHN5bV9waHlzKHZnYV90ZXh0X2J1ZmZlciks JWVkaQorLkxzZW5kX2NocjoKKyAgICAgICAgbW92ICAgICAoJWVzaSksJWJsCiAgICAgICAgIHRl c3QgICAgJWJsLCVibCAgICAgICAgIyBUZXJtaW5hdGUgb24gJ1wwJyBzZW50aW5lbAogICAgICAg ICBqZSAgICAgIC5MaGFsdAogICAgICAgICBtb3YgICAgICQweDNmOCs1LCVkeCAgICMgVUFSVCBM aW5lIFN0YXR1cyBSZWdpc3RlcgpAQCAtMTIzLDEzICsxNTksMTgwIEBAIHByaW50X2VycjoKICAg ICAgICAgbW92ICAgICAkMHgzZjgrMCwlZHggICAjIFVBUlQgVHJhbnNtaXQgSG9sZGluZyBSZWdp c3RlcgogICAgICAgICBtb3YgICAgICVibCwlYWwKICAgICAgICAgb3V0ICAgICAlYWwsJWR4ICAg ICAgICAjIFNlbmQgYSBjaGFyYWN0ZXIgb3ZlciB0aGUgc2VyaWFsIGxpbmUKLSAgICAgICAgbW92 c2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVyIHRvIHRoZSBWR0EgZnJhbWVi dWZmZXIKKyAgICAgICAgdGVzdCAgICAlZWRpLCVlZGkgICAgICAjIElzIHRoZSBWR0EgdGV4dCBi dWZmZXIgYXZhaWxhYmxlPworICAgICAgICBqeiAgICAgIC5Mc2VuZF9jaHIKKyAgICAgICAgbW92 c2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVyIHRvIHRoZSBWR0EgdGV4dCBi dWZmZXIKICAgICAgICAgbW92ICAgICAkNywlYWwKLSAgICAgICAgc3Rvc2IgICAgICAgICAgICAg ICAgICAjIFdyaXRlIGFuIGF0dHJpYnV0ZSB0byB0aGUgVkdBIGZyYW1lYnVmZmVyCi0gICAgICAg IGptcCAgICAgMWIKKyAgICAgICAgc3Rvc2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGFuIGF0 dHJpYnV0ZSB0byB0aGUgVkdBIHRleHQgYnVmZmVyCisgICAgICAgIGptcCAgICAgLkxzZW5kX2No cgogLkxoYWx0OiBobHQKICAgICAgICAgam1wICAgICAuTGhhbHQKIAorICAgICAgICAuY29kZTY0 CisKK19fZWZpNjRfc3RhcnQ6CisgICAgICAgIGNsZAorCisgICAgICAgIC8qIFZHQSBpcyBub3Qg YXZhaWxhYmxlIG9uIEVGSSBwbGF0Zm9ybXMuICovCisgICAgICAgIG1vdmwgICAkMCx2Z2FfdGV4 dF9idWZmZXIoJXJpcCkKKworICAgICAgICAvKiBDaGVjayBmb3IgTXVsdGlib290MiBib290bG9h ZGVyLiAqLworICAgICAgICBjbXAgICAgICRNVUxUSUJPT1QyX0JPT1RMT0FERVJfTUFHSUMsJWVh eAorICAgICAgICBqZSAgICAgIC5MZWZpX211bHRpYm9vdDJfcHJvdG8KKworICAgICAgICAvKiBK dW1wIHRvIG5vdF9tdWx0aWJvb3QgYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIgbW9kZS4g Ki8KKyAgICAgICAgbGVhICAgICBub3RfbXVsdGlib290KCVyaXApLCVlZGkKKyAgICAgICAgam1w ICAgICB4ODZfMzJfc3dpdGNoCisKKy5MZWZpX211bHRpYm9vdDJfcHJvdG86CisgICAgICAgIC8q IFplcm8gRUZJIFN5c3RlbVRhYmxlIGFuZCBFRkkgSW1hZ2VIYW5kbGUgYWRkcmVzc2VzLiAqLwor ICAgICAgICB4b3IgICAgICVlc2ksJWVzaQorICAgICAgICB4b3IgICAgICVlZGksJWVkaQorCisg ICAgICAgIC8qIFNraXAgTXVsdGlib290MiBpbmZvcm1hdGlvbiBmaXhlZCBwYXJ0LiAqLworICAg ICAgICBsZWEgICAgIChNQjJfZml4ZWRfc2l6ZW9mK01VTFRJQk9PVDJfVEFHX0FMSUdOLTEpKCVy YngpLCVlY3gKKyAgICAgICAgYW5kICAgICAkfihNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4 CisKKzA6CisgICAgICAgIC8qIENoZWNrIE11bHRpYm9vdDIgaW5mb3JtYXRpb24gdG90YWwgc2l6 ZS4gKi8KKyAgICAgICAgbW92ICAgICAlZWN4LCVyOGQKKyAgICAgICAgc3ViICAgICAlZWJ4LCVy OGQKKyAgICAgICAgY21wICAgICAlcjhkLE1CMl9maXhlZF90b3RhbF9zaXplKCVyYngpCisgICAg ICAgIGpiZSAgICAgcnVuX2JzCisKKyAgICAgICAgLyogQXJlIEVGSSBib290IHNlcnZpY2VzIGF2 YWlsYWJsZT8gKi8KKyAgICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRklfQlMs TUIyX3RhZ190eXBlKCVyY3gpCisgICAgICAgIGpuZSAgICAgMWYKKworICAgICAgICAvKgorICAg ICAgICAgKiBZZXMsIHN0b3JlIHRoYXQgaW5mbyBpbiBza2lwX3JlYWxtb2RlIHZhcmlhYmxlLiBJ IGFncmVlIHRoYXQKKyAgICAgICAgICogaXRzIG5hbWUgaXMgYSBiaXQgdW5mb3J0dW5hdGUgaW4g dGhpcyBjb250ZXh0LCBob3dldmVyLCBieSB0aGUKKyAgICAgICAgICogd2F5IHdlIGRpc2FibGUg cmVhbCBtb2RlIGFuZCBvdGhlciBsZWdhY3kgc3R1ZmYgd2hpY2ggc2hvdWxkCisgICAgICAgICAq IG5vdCBiZSBydW4gb24gRUZJIHBsYXRmb3Jtcy4KKyAgICAgICAgICovCisgICAgICAgIGluY2Ig ICAgc2tpcF9yZWFsbW9kZSglcmlwKQorICAgICAgICBqbXAgICAgIDlmCisKKzE6CisgICAgICAg IC8qIEdldCBFRkkgU3lzdGVtVGFibGUgYWRkcmVzcyBmcm9tIE11bHRpYm9vdDIgaW5mb3JtYXRp b24uICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJNjQsTUIyX3Rh Z190eXBlKCVyY3gpCisgICAgICAgIGNtb3ZlICAgTUIyX2VmaTY0X3N0KCVyY3gpLCVyc2kKKyAg ICAgICAgamUgICAgICA5ZgorCisgICAgICAgIC8qIEdldCBFRkkgSW1hZ2VIYW5kbGUgYWRkcmVz cyBmcm9tIE11bHRpYm9vdDIgaW5mb3JtYXRpb24uICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJ Qk9PVDJfVEFHX1RZUEVfRUZJNjRfSUgsTUIyX3RhZ190eXBlKCVyY3gpCisgICAgICAgIGNtb3Zl ICAgTUIyX2VmaTY0X2loKCVyY3gpLCVyZGkKKyAgICAgICAgamUgICAgICA5ZgorCisgICAgICAg IC8qIElzIGl0IHRoZSBlbmQgb2YgTXVsdGlib290MiBpbmZvcm1hdGlvbj8gKi8KKyAgICAgICAg Y21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FTkQsTUIyX3RhZ190eXBlKCVyY3gpCisgICAg ICAgIGplICAgICAgcnVuX2JzCisKKzk6CisgICAgICAgIC8qIEdvIHRvIG5leHQgTXVsdGlib290 MiBpbmZvcm1hdGlvbiB0YWcuICovCisgICAgICAgIGFkZCAgICAgTUIyX3RhZ19zaXplKCVyY3gp LCVlY3gKKyAgICAgICAgYWRkICAgICAkKE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKKyAg ICAgICAgYW5kICAgICAkfihNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4CisgICAgICAgIGpt cCAgICAgMGIKKworcnVuX2JzOgorICAgICAgICAvKiBBcmUgRUZJIGJvb3Qgc2VydmljZXMgYXZh aWxhYmxlPyAqLworICAgICAgICBjbXBiICAgICQwLHNraXBfcmVhbG1vZGUoJXJpcCkKKyAgICAg ICAgam56ICAgICAwZgorCisgICAgICAgIC8qIEp1bXAgdG8gLkxtYjJfbm9fYnMgYWZ0ZXIgc3dp dGNoaW5nIENQVSB0byB4ODZfMzIgbW9kZS4gKi8KKyAgICAgICAgbGVhICAgICAuTG1iMl9ub19i cyglcmlwKSwlZWRpCisgICAgICAgIGptcCAgICAgeDg2XzMyX3N3aXRjaAorCiswOgorICAgICAg ICAvKiBJcyBFRkkgU3lzdGVtVGFibGUgYWRkcmVzcyBwcm92aWRlZCBieSBib290IGxvYWRlcj8g Ki8KKyAgICAgICAgdGVzdCAgICAlcnNpLCVyc2kKKyAgICAgICAgam56ICAgICAxZgorCisgICAg ICAgIC8qIEp1bXAgdG8gLkxtYjJfbm9fc3QgYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIg bW9kZS4gKi8KKyAgICAgICAgbGVhICAgICAuTG1iMl9ub19zdCglcmlwKSwlZWRpCisgICAgICAg IGptcCAgICAgeDg2XzMyX3N3aXRjaAorCisxOgorICAgICAgICAvKiBJcyBFRkkgSW1hZ2VIYW5k bGUgYWRkcmVzcyBwcm92aWRlZCBieSBib290IGxvYWRlcj8gKi8KKyAgICAgICAgdGVzdCAgICAl cmRpLCVyZGkKKyAgICAgICAgam56ICAgICAyZgorCisgICAgICAgIC8qIEp1bXAgdG8gLkxtYjJf bm9faWggYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIgbW9kZS4gKi8KKyAgICAgICAgbGVh ICAgICAuTG1iMl9ub19paCglcmlwKSwlZWRpCisgICAgICAgIGptcCAgICAgeDg2XzMyX3N3aXRj aAorCisyOgorICAgICAgICBwdXNoICAgICVyYXgKKyAgICAgICAgcHVzaCAgICAlcmRpCisKKyAg ICAgICAgLyoKKyAgICAgICAgICogSW5pdGlhbGl6ZSBCU1MgKG5vIG5hc3R5IHN1cnByaXNlcyEp LgorICAgICAgICAgKiBJdCBtdXN0IGJlIGRvbmUgZWFybGllciB0aGFuIGluIEJJT1MgY2FzZQor ICAgICAgICAgKiBiZWNhdXNlIGVmaV9tdWx0aWJvb3QyKCkgdG91Y2hlcyBpdC4KKyAgICAgICAg ICovCisgICAgICAgIGxlYSAgICAgLnN0YXJ0b2YuKC5ic3MpKCVyaXApLCVlZGkKKyAgICAgICAg bW92ICAgICAkLnNpemVvZi4oLmJzcyksJWVjeAorICAgICAgICBzaHIgICAgICQzLCVlY3gKKyAg ICAgICAgeG9yICAgICAlZWF4LCVlYXgKKyAgICAgICAgcmVwIHN0b3NxCisKKyAgICAgICAgcG9w ICAgICAlcmRpCisKKyAgICAgICAgLyoKKyAgICAgICAgICogZWZpX211bHRpYm9vdDIoKSBpcyBj YWxsZWQgYWNjb3JkaW5nIHRvIFN5c3RlbSBWIEFNRDY0IEFCSToKKyAgICAgICAgICogICAtIElO OiAlcmRpIC0gRUZJIEltYWdlSGFuZGxlLCAlcnNpIC0gRUZJIFN5c3RlbVRhYmxlLAorICAgICAg ICAgKiAgIC0gT1VUOiAlcmF4IC0gaGlnaGVzdCB1c2FibGUgbWVtb3J5IGFkZHJlc3MgYmVsb3cg MSBNaUI7CisgICAgICAgICAqICAgICAgICAgICAgICAgICBtZW1vcnkgdGhlcmUgaXMgdXNlZCBs YXRlciBmb3Igc3RhY2sgYW5kCisgICAgICAgICAqICAgICAgICAgICAgICAgICBhcyBhIHN0b3Jh Z2UgZm9yIGJvb3QgZGF0YS4KKyAgICAgICAgICoKKyAgICAgICAgICogTVVMVElCT09UMl9UQUdf VFlQRV9CQVNJQ19NRU1JTkZPIHRhZyBpcyBub3QgcHJvdmlkZWQKKyAgICAgICAgICogb24gRUZJ IHBsYXRmb3Jtcy4gSGVuY2UsIGl0IGNvdWxkIG5vdCBiZSB1c2VkIGxpa2UKKyAgICAgICAgICog b24gbGVnYWN5IEJJT1MgcGxhdGZvcm1zLgorICAgICAgICAgKi8KKyAgICAgICAgY2FsbCAgICBl ZmlfbXVsdGlib290MgorCisgICAgICAgIC8qIENvbnZlcnQgbWVtb3J5IGFkZHJlc3MgdG8gYnl0 ZXMvMTYgYW5kIHN0b3JlIGl0IGluIHNhZmUgcGxhY2UuICovCisgICAgICAgIHNociAgICAgJDQs JWVheAorICAgICAgICBtb3YgICAgICVlYXgsJWVjeAorCisgICAgICAgIHBvcCAgICAgJXJheAor CisgICAgICAgIC8qIEp1bXAgdG8gdHJhbXBvbGluZV9zZXR1cCBhZnRlciBzd2l0Y2hpbmcgQ1BV IHRvIHg4Nl8zMiBtb2RlLiAqLworICAgICAgICBsZWEgICAgIHRyYW1wb2xpbmVfc2V0dXAoJXJp cCksJWVkaQorCit4ODZfMzJfc3dpdGNoOgorICAgICAgICBjbGkKKworICAgICAgICAvKiBJbml0 aWFsaXplIEdEVFIuICovCisgICAgICAgIGxnZHQgICAgZ2R0X2Jvb3RfZGVzY3IoJXJpcCkKKwor ICAgICAgICAvKiBSZWxvYWQgY29kZSBzZWxlY3Rvci4gKi8KKyAgICAgICAgbGptcGwgICAqY3Mz Ml9zd2l0Y2hfYWRkciglcmlwKQorCisgICAgICAgIC5jb2RlMzIKKworY3MzMl9zd2l0Y2g6Cisg ICAgICAgIC8qIEluaXRpYWxpemUgYmFzaWMgZGF0YSBzZWdtZW50cy4gKi8KKyAgICAgICAgbW92 ICAgICAkQk9PVF9EUywlZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlZHMKKyAgICAgICAgbW92 ICAgICAlZWR4LCVlcworICAgICAgICBtb3YgICAgICVlZHgsJXNzCisgICAgICAgIC8qICVlc3Ag aXMgaW5pdGlhbGl6ZWQgbGF0ZXIuICovCisKKyAgICAgICAgLyogTG9hZCBudWxsIGRlc2NyaXB0 b3IgdG8gdW51c2VkIHNlZ21lbnQgcmVnaXN0ZXJzLiAqLworICAgICAgICB4b3IgICAgICVlZHgs JWVkeAorICAgICAgICBtb3YgICAgICVlZHgsJWZzCisgICAgICAgIG1vdiAgICAgJWVkeCwlZ3MK KworICAgICAgICAvKiBEaXNhYmxlIHBhZ2luZy4gKi8KKyAgICAgICAgbW92ICAgICAlY3IwLCVl ZHgKKyAgICAgICAgYW5kICAgICAkKH5YODZfQ1IwX1BHKSwlZWR4CisgICAgICAgIG1vdiAgICAg JWVkeCwlY3IwCisKKyAgICAgICAgLyogSnVtcCB0byBlYXJsaWVyIGxvYWRlZCBhZGRyZXNzLiAq LworICAgICAgICBqbXAgICAgIColZWRpCisKIF9fc3RhcnQ6CiAgICAgICAgIGNsZAogICAgICAg ICBjbGkKQEAgLTE1Nyw3ICszNjAsNyBAQCBfX3N0YXJ0OgogCiAgICAgICAgIC8qIE5vdCBhdmFp bGFibGU/IEJEQSB2YWx1ZSB3aWxsIGJlIGZpbmUuICovCiAgICAgICAgIGNtb3ZueiAgTUJfbWVt X2xvd2VyKCVlYngpLCVlZHgKLSAgICAgICAgam1wICAgICB0cmFtcG9saW5lX3NldHVwCisgICAg ICAgIGptcCAgICAgdHJhbXBvbGluZV9iaW9zX3NldHVwCiAKIC5MbXVsdGlib290Ml9wcm90bzoK ICAgICAgICAgLyogU2tpcCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIGZpeGVkIHBhcnQuICovCkBA IC0xNjksMTYgKzM3MiwyNCBAQCBfX3N0YXJ0OgogICAgICAgICBtb3YgICAgICVlY3gsJWVkaQog ICAgICAgICBzdWIgICAgICVlYngsJWVkaQogICAgICAgICBjbXAgICAgICVlZGksTUIyX2ZpeGVk X3RvdGFsX3NpemUoJWVieCkKLSAgICAgICAgamJlICAgICB0cmFtcG9saW5lX3NldHVwCisgICAg ICAgIGpiZSAgICAgdHJhbXBvbGluZV9iaW9zX3NldHVwCiAKICAgICAgICAgLyogR2V0IG1lbV9s b3dlciBmcm9tIE11bHRpYm9vdDIgaW5mb3JtYXRpb24uICovCiAgICAgICAgIGNtcGwgICAgJE1V TFRJQk9PVDJfVEFHX1RZUEVfQkFTSUNfTUVNSU5GTyxNQjJfdGFnX3R5cGUoJWVjeCkKICAgICAg ICAgY21vdmUgICBNQjJfbWVtX2xvd2VyKCVlY3gpLCVlZHgKLSAgICAgICAgamUgICAgICB0cmFt cG9saW5lX3NldHVwCisgICAgICAgIGplICAgICAgdHJhbXBvbGluZV9iaW9zX3NldHVwCisKKyAg ICAgICAgLyogRUZJIElBLTMyIHBsYXRmb3JtcyBhcmUgbm90IHN1cHBvcnRlZC4gKi8KKyAgICAg ICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRkkzMixNQjJfdGFnX3R5cGUoJWVjeCkK KyAgICAgICAgamUgICAgICAuTG1iMl9lZmlfaWFfMzIKKworICAgICAgICAvKiBCb290bG9hZGVy IHNodXRkb3duIEVGSSB4NjQgYm9vdCBzZXJ2aWNlcy4gKi8KKyAgICAgICAgY21wbCAgICAkTVVM VElCT09UMl9UQUdfVFlQRV9FRkk2NCxNQjJfdGFnX3R5cGUoJWVjeCkKKyAgICAgICAgamUgICAg ICAuTG1iMl9ub19icwogCiAgICAgICAgIC8qIElzIGl0IHRoZSBlbmQgb2YgTXVsdGlib290MiBp bmZvcm1hdGlvbj8gKi8KICAgICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FTkQs TUIyX3RhZ190eXBlKCVlY3gpCi0gICAgICAgIGplICAgICAgdHJhbXBvbGluZV9zZXR1cAorICAg ICAgICBqZSAgICAgIHRyYW1wb2xpbmVfYmlvc19zZXR1cAogCiAgICAgICAgIC8qIEdvIHRvIG5l eHQgTXVsdGlib290MiBpbmZvcm1hdGlvbiB0YWcuICovCiAgICAgICAgIGFkZCAgICAgTUIyX3Rh Z19zaXplKCVlY3gpLCVlY3gKQEAgLTE4Niw3ICszOTcsNyBAQCBfX3N0YXJ0OgogICAgICAgICBh bmQgICAgICR+KE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKICAgICAgICAgam1wICAgICAw YgogCi10cmFtcG9saW5lX3NldHVwOgordHJhbXBvbGluZV9iaW9zX3NldHVwOgogICAgICAgICAv KiBTZXQgdXAgdHJhbXBvbGluZSBzZWdtZW50IDY0ayBiZWxvdyBFQkRBICovCiAgICAgICAgIG1v dnp3bCAgMHg0MGUsJWVjeCAgICAgICAgICAvKiBFQkRBIHNlZ21lbnQgKi8KICAgICAgICAgY21w ICAgICAkMHhhMDAwLCVlY3ggICAgICAgIC8qIHNhbml0eSBjaGVjayAoaGlnaCkgKi8KQEAgLTIw MiwxMiArNDEzLDEzIEBAIHRyYW1wb2xpbmVfc2V0dXA6CiAgICAgICAgICAqIG11bHRpYm9vdCBz dHJ1Y3R1cmUgKGlmIGF2YWlsYWJsZSkgYW5kIHVzZSB0aGUgc21hbGxlc3QuCiAgICAgICAgICAq LwogICAgICAgICBjbXAgICAgICQweDEwMCwlZWR4ICAgICAgICAgLyogaXMgdGhlIG11bHRpYm9v dCB2YWx1ZSB0b28gc21hbGw/ICovCi0gICAgICAgIGpiICAgICAgMmYgICAgICAgICAgICAgICAg ICAvKiBpZiBzbywgZG8gbm90IHVzZSBpdCAqLworICAgICAgICBqYiAgICAgIHRyYW1wb2xpbmVf c2V0dXAgICAgLyogaWYgc28sIGRvIG5vdCB1c2UgaXQgKi8KICAgICAgICAgc2hsICAgICAkMTAt NCwlZWR4CiAgICAgICAgIGNtcCAgICAgJWVjeCwlZWR4ICAgICAgICAgICAvKiBjb21wYXJlIHdp dGggQkRBIHZhbHVlICovCiAgICAgICAgIGNtb3ZiICAgJWVkeCwlZWN4ICAgICAgICAgICAvKiBh bmQgdXNlIHRoZSBzbWFsbGVyICovCiAKLTI6ICAgICAgLyogUmVzZXJ2ZSA2NGtiIGZvciB0aGUg dHJhbXBvbGluZSAqLwordHJhbXBvbGluZV9zZXR1cDoKKyAgICAgICAgLyogUmVzZXJ2ZSA2NGti IGZvciB0aGUgdHJhbXBvbGluZS4gKi8KICAgICAgICAgc3ViICAgICAkMHgxMDAwLCVlY3gKIAog ICAgICAgICAvKiBGcm9tIGFyY2gveDg2L3NtcGJvb3QuYzogc3RhcnRfZWlwIGhhZCBiZXR0ZXIg YmUgcGFnZS1hbGlnbmVkISAqLwpAQCAtMjIzLDcgKzQzNSwxNCBAQCB0cmFtcG9saW5lX3NldHVw OgogICAgICAgICBjYWxsICAgIHJlbG9jCiAgICAgICAgIG1vdiAgICAgJWVheCxzeW1fcGh5cyht dWx0aWJvb3RfcHRyKQogCi0gICAgICAgIC8qIEluaXRpYWxpemUgQlNTIChubyBuYXN0eSBzdXJw cmlzZXMhKSAqLworICAgICAgICAvKgorICAgICAgICAgKiBEbyBub3QgemVybyBCU1Mgb24gRUZJ IHBsYXRmb3JtIGhlcmUuCisgICAgICAgICAqIEl0IHdhcyBpbml0aWFsaXplZCBlYXJsaWVyLgor ICAgICAgICAgKi8KKyAgICAgICAgY21wYiAgICAkMCxzeW1fcGh5cyhza2lwX3JlYWxtb2RlKQor ICAgICAgICBqbnogICAgIDFmCisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSBCU1MgKG5vIG5hc3R5 IHN1cnByaXNlcyEpLiAqLwogICAgICAgICBtb3YgICAgICRzeW1fcGh5cyhfX2Jzc19zdGFydCks JWVkaQogICAgICAgICBtb3YgICAgICRzeW1fcGh5cyhfX2Jzc19lbmQpLCVlY3gKICAgICAgICAg c3ViICAgICAlZWRpLCVlY3gKQEAgLTIzMSw2ICs0NTAsNyBAQCB0cmFtcG9saW5lX3NldHVwOgog ICAgICAgICBzaHIgICAgICQyLCVlY3gKICAgICAgICAgcmVwIHN0b3NsCiAKKzE6CiAgICAgICAg IC8qIEludGVycm9nYXRlIENQVSBleHRlbmRlZCBmZWF0dXJlcyB2aWEgQ1BVSUQuICovCiAgICAg ICAgIG1vdiAgICAgJDB4ODAwMDAwMDAsJWVheAogICAgICAgICBjcHVpZApAQCAtMjgyLDggKzUw MiwxMyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBjbXAgICAgICRzeW1fcGh5cyhfX3Ry YW1wb2xpbmVfc2VnX3N0b3ApLCVlZGkKICAgICAgICAgamIgICAgICAxYgogCisgICAgICAgIC8q IERvIG5vdCBwYXJzZSBjb21tYW5kIGxpbmUgb24gRUZJIHBsYXRmb3JtIGhlcmUuICovCisgICAg ICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoc2tpcF9yZWFsbW9kZSkKKyAgICAgICAgam56ICAgICAx ZgorCiAgICAgICAgIGNhbGwgICAgY21kbGluZV9wYXJzZV9lYXJseQogCisxOgogICAgICAgICAv KiBTd2l0Y2ggdG8gbG93LW1lbW9yeSBzdGFjay4gICovCiAgICAgICAgIG1vdiAgICAgc3ltX3Bo eXModHJhbXBvbGluZV9waHlzKSwlZWRpCiAgICAgICAgIGxlYSAgICAgMHgxMDAwMCglZWRpKSwl ZXNwCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmggYi94ZW4vYXJjaC94 ODYvZWZpL2VmaS1ib290LmgKaW5kZXggNDJjYzVmOC4uYTE3ZTMxNSAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2VmaS9lZmktYm9vdC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3Qu aApAQCAtMjEzLDEyICsyMTMsMTQgQEAgc3RhdGljIHZvaWQgKl9faW5pdCBlZmlfYXJjaF9hbGxv Y2F0ZV9tbWFwX2J1ZmZlcihVSU5UTiBtYXBfc2l6ZSkKIAogc3RhdGljIHZvaWQgX19pbml0IGVm aV9hcmNoX3ByZV9leGl0X2Jvb3Qodm9pZCkKIHsKLSAgICBpZiAoICF0cmFtcG9saW5lX3BoeXMg KQotICAgIHsKLSAgICAgICAgaWYgKCAhY2ZnLmFkZHIgKQotICAgICAgICAgICAgYmxleGl0KEwi Tm8gbWVtb3J5IGZvciB0cmFtcG9saW5lIik7CisgICAgaWYgKCB0cmFtcG9saW5lX3BoeXMgKQor ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoICFjZmcuYWRkciApCisgICAgICAgIGJsZXhpdChM Ik5vIG1lbW9yeSBmb3IgdHJhbXBvbGluZSIpOworCisgICAgaWYgKCBlZmlfZW5hYmxlZChFRklf TE9BREVSKSApCiAgICAgICAgIHJlbG9jYXRlX3RyYW1wb2xpbmUoY2ZnLmFkZHIpOwotICAgIH0K IH0KIAogc3RhdGljIHZvaWQgX19pbml0IG5vcmV0dXJuIGVmaV9hcmNoX3Bvc3RfZXhpdF9ib290 KHZvaWQpCkBAIC02NTYsNiArNjU4LDQzIEBAIHN0YXRpYyBib29sX3QgX19pbml0IGVmaV9hcmNo X3VzZV9jb25maWdfZmlsZShFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkKIAogc3RhdGlj IHZvaWQgZWZpX2FyY2hfZmx1c2hfZGNhY2hlX2FyZWEoY29uc3Qgdm9pZCAqdmFkZHIsIFVJTlRO IHNpemUpIHsgfQogCitwYWRkcl90IF9faW5pdCBlZmlfbXVsdGlib290MihFRklfSEFORExFIElt YWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkKK3sKKyAgICBFRklfR1JB UEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3A7CisgICAgVUlOVE4gY29scywgZ29wX21vZGUgPSB+ MCwgcm93czsKKworICAgIF9fc2V0X2JpdChFRklfQk9PVCwgJmVmaV9mbGFncyk7CisgICAgX19z ZXRfYml0KEVGSV9SUywgJmVmaV9mbGFncyk7CisKKyAgICBlZmlfaW5pdChJbWFnZUhhbmRsZSwg U3lzdGVtVGFibGUpOworCisgICAgZWZpX2NvbnNvbGVfc2V0X21vZGUoKTsKKworICAgIGlmICgg U3RkT3V0LT5RdWVyeU1vZGUoU3RkT3V0LCBTdGRPdXQtPk1vZGUtPk1vZGUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAmY29scywgJnJvd3MpID09IEVGSV9TVUNDRVNTICkKKyAgICAgICAg ZWZpX2FyY2hfY29uc29sZV9pbml0KGNvbHMsIHJvd3MpOworCisgICAgZ29wID0gZWZpX2dldF9n b3AoKTsKKworICAgIGlmICggZ29wICkKKyAgICAgICAgZ29wX21vZGUgPSBlZmlfZmluZF9nb3Bf bW9kZShnb3AsIDAsIDAsIDApOworCisgICAgZWZpX2FyY2hfZWRkKCk7CisgICAgZWZpX2FyY2hf Y3B1KCk7CisKKyAgICBlZmlfdGFibGVzKCk7CisgICAgc2V0dXBfZWZpX3BjaSgpOworICAgIGVm aV92YXJpYWJsZXMoKTsKKworICAgIGlmICggZ29wICkKKyAgICAgICAgZWZpX3NldF9nb3BfbW9k ZShnb3AsIGdvcF9tb2RlKTsKKworICAgIGVmaV9leGl0X2Jvb3QoSW1hZ2VIYW5kbGUsIFN5c3Rl bVRhYmxlKTsKKworICAgIC8qIFJldHVybiBoaWdoZXN0IHVzYWJsZSBtZW1vcnkgYWRkcmVzcyBi ZWxvdyAxIE1pQi4gKi8KKyAgICByZXR1cm4gY2ZnLmFkZHI7Cit9CisKIC8qCiAgKiBMb2NhbCB2 YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZWZpL3N0dWIu YyBiL3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCmluZGV4IDAxNDczOWEuLmQzMTNiMzMgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9lZmkvc3R1 Yi5jCkBAIC0zLDYgKzMsNDMgQEAKICNpbmNsdWRlIDx4ZW4vaW5pdC5oPgogI2luY2x1ZGUgPHhl bi9saWIuaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgorI2luY2x1ZGUgPGFzbS9lZmliaW5kLmg+ CisjaW5jbHVkZSA8ZWZpL2VmaWRlZi5oPgorI2luY2x1ZGUgPGVmaS9lZmljYXBzdWxlLmg+Cisj aW5jbHVkZSA8ZWZpL2VmaWNvbi5oPgorI2luY2x1ZGUgPGVmaS9lZmlkZXZwLmg+CisjaW5jbHVk ZSA8ZWZpL2VmaWFwaS5oPgorCisvKgorICogSGVyZSB3ZSBhcmUgaW4gRUZJIHN0dWIuIEVGSSBj YWxscyBhcmUgbm90IHN1cHBvcnRlZCBkdWUgdG8gbGFjaworICogb2YgcmVsZXZhbnQgZnVuY3Rp b25hbGl0eSBpbiBjb21waWxlciBhbmQvb3IgbGlua2VyLgorICoKKyAqIGVmaV9tdWx0aWJvb3Qy KCkgaXMgYW4gZXhjZXB0aW9uLiBQbGVhc2UgbG9vayBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgor ICovCisKK3BhZGRyX3QgX19pbml0IG5vcmV0dXJuIGVmaV9tdWx0aWJvb3QyKEVGSV9IQU5ETEUg SW1hZ2VIYW5kbGUsIEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKQoreworICAgIENIQVIx NiAqZXJyID0gTCJYZW4gZG9lcyBub3QgaGF2ZSBFRkkgY29kZSBidWlsZCBpbiEhIVxyXG5TeXN0 ZW0gaGFsdGVkISEhXHJcbiI7CisgICAgU0lNUExFX1RFWFRfT1VUUFVUX0lOVEVSRkFDRSAqU3Rk RXJyOworCisgICAgU3RkRXJyID0gU3lzdGVtVGFibGUtPlN0ZEVyciA/IFN5c3RlbVRhYmxlLT5T dGRFcnIgOiBTeXN0ZW1UYWJsZS0+Q29uT3V0OworCisgICAgLyoKKyAgICAgKiBQcmludCBlcnJv ciBtZXNzYWdlIGFuZCBoYWx0IHRoZSBzeXN0ZW0uCisgICAgICoKKyAgICAgKiBXZSBoYXZlIHRv IG9wZW4gY29kZSBNUyB4NjQgY2FsbGluZyBjb252ZW50aW9uCisgICAgICogaW4gYXNzZW1ibHkg YmVjYXVzZSBoZXJlIHRoaXMgY29udmVudGlvbiBpcyBub3QKKyAgICAgKiBkaXJlY3RseSBzdXBw b3J0ZWQgYnkgQyBjb21waWxlciBhbmQvb3IgbGlua2VyLgorICAgICAqLworICAgIGFzbSB2b2xh dGlsZSgKKyAgICAiICAgIGNhbGwgJTIgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgIjA6 ICBobHQgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICIgICAgam1wICAwYiAgICAg ICAgICAgICAgICAgICAgICBcbiIKKyAgICAgICA6ICIrYyIgKFN0ZEVyciksICIrZCIgKGVycikg OiAiZyIgKFN0ZEVyci0+T3V0cHV0U3RyaW5nKQorICAgICAgIDogInJheCIsICJyOCIsICJyOSIs ICJyMTAiLCAicjExIiwgIm1lbW9yeSIpOworCisgICAgdW5yZWFjaGFibGUoKTsKK30KIAogYm9v bCBlZmlfZW5hYmxlZCh1bnNpZ25lZCBpbnQgZmVhdHVyZSkKIHsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9m ZnNldHMuYwppbmRleCBiNDM3YThmLi4yYTIyNjU5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv eDg2XzY0L2FzbS1vZmZzZXRzLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0 cy5jCkBAIC0xNzUsNiArMTc1LDggQEAgdm9pZCBfX2R1bW15X18odm9pZCkKICAgICBPRkZTRVQo TUIyX3RhZ190eXBlLCBtdWx0aWJvb3QyX3RhZ190LCB0eXBlKTsKICAgICBPRkZTRVQoTUIyX3Rh Z19zaXplLCBtdWx0aWJvb3QyX3RhZ190LCBzaXplKTsKICAgICBPRkZTRVQoTUIyX21lbV9sb3dl ciwgbXVsdGlib290Ml90YWdfYmFzaWNfbWVtaW5mb190LCBtZW1fbG93ZXIpOworICAgIE9GRlNF VChNQjJfZWZpNjRfc3QsIG11bHRpYm9vdDJfdGFnX2VmaTY0X3QsIHBvaW50ZXIpOworICAgIE9G RlNFVChNQjJfZWZpNjRfaWgsIG11bHRpYm9vdDJfdGFnX2VmaTY0X2loX3QsIHBvaW50ZXIpOwog ICAgIEJMQU5LKCk7CiAKICAgICBPRkZTRVQoRE9NQUlOX3ZtX2Fzc2lzdCwgc3RydWN0IGRvbWFp biwgdm1fYXNzaXN0KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMgYi94ZW4v YXJjaC94ODYveGVuLmxkcy5TCmluZGV4IDU3ZjUzNjguLmQ3YmQwM2UgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni94ZW4ubGRzLlMKKysrIGIveGVuL2FyY2gveDg2L3hlbi5sZHMuUwpAQCAtMzMy LDUgKzMzMiw1IEBAIEFTU0VSVChJU19BTElHTkVEKF9faW5pdF9lbmQsICAgUEFHRV9TSVpFKSwg Il9faW5pdF9lbmQgbWlzYWxpZ25lZCIpCiAKIEFTU0VSVChJU19BTElHTkVEKHRyYW1wb2xpbmVf c3RhcnQsIDQpLCAidHJhbXBvbGluZV9zdGFydCBtaXNhbGlnbmVkIikKIEFTU0VSVChJU19BTElH TkVEKHRyYW1wb2xpbmVfZW5kLCAgIDQpLCAidHJhbXBvbGluZV9lbmQgbWlzYWxpZ25lZCIpCi1B U1NFUlQoSVNfQUxJR05FRChfX2Jzc19zdGFydCwgICAgICA0KSwgIl9fYnNzX3N0YXJ0IG1pc2Fs aWduZWQiKQotQVNTRVJUKElTX0FMSUdORUQoX19ic3NfZW5kLCAgICAgICAgNCksICJfX2Jzc19l bmQgbWlzYWxpZ25lZCIpCitBU1NFUlQoSVNfQUxJR05FRChfX2Jzc19zdGFydCwgICAgICA4KSwg Il9fYnNzX3N0YXJ0IG1pc2FsaWduZWQiKQorQVNTRVJUKElTX0FMSUdORUQoX19ic3NfZW5kLCAg ICAgICAgOCksICJfX2Jzc19lbmQgbWlzYWxpZ25lZCIpCmRpZmYgLS1naXQgYS94ZW4vY29tbW9u L2VmaS9ib290LmMgYi94ZW4vY29tbW9uL2VmaS9ib290LmMKaW5kZXggMTkyYzBiOC4uNWVkYjg3 ZCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9lZmkvYm9vdC5jCisrKyBiL3hlbi9jb21tb24vZWZp L2Jvb3QuYwpAQCAtODEsNiArODEsMTcgQEAgc3RhdGljIGJvb2xfdCBtYXRjaF9ndWlkKGNvbnN0 IEVGSV9HVUlEICpndWlkMSwgY29uc3QgRUZJX0dVSUQgKmd1aWQyKTsKIAogc3RhdGljIHZvaWQg KmVibWFsbG9jKHNpemVfdCBzaXplKTsKIAorc3RhdGljIHZvaWQgZWZpX2luaXQoRUZJX0hBTkRM RSBJbWFnZUhhbmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpOworc3RhdGljIHZv aWQgZWZpX2NvbnNvbGVfc2V0X21vZGUodm9pZCk7CitzdGF0aWMgRUZJX0dSQVBISUNTX09VVFBV VF9QUk9UT0NPTCAqZWZpX2dldF9nb3Aodm9pZCk7CitzdGF0aWMgVUlOVE4gZWZpX2ZpbmRfZ29w X21vZGUoRUZJX0dSQVBISUNTX09VVFBVVF9QUk9UT0NPTCAqZ29wLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFVJTlROIGNvbHMsIFVJTlROIHJvd3MsIFVJTlROIGRlcHRoKTsKK3N0 YXRpYyB2b2lkIGVmaV90YWJsZXModm9pZCk7CitzdGF0aWMgdm9pZCBzZXR1cF9lZmlfcGNpKHZv aWQpOworc3RhdGljIHZvaWQgZWZpX3ZhcmlhYmxlcyh2b2lkKTsKK3N0YXRpYyB2b2lkIGVmaV9z ZXRfZ29wX21vZGUoRUZJX0dSQVBISUNTX09VVFBVVF9QUk9UT0NPTCAqZ29wLCBVSU5UTiBnb3Bf bW9kZSk7CitzdGF0aWMgdm9pZCBlZmlfZXhpdF9ib290KEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUs IEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKTsKKwogc3RhdGljIGNvbnN0IEVGSV9CT09U X1NFUlZJQ0VTICpfX2luaXRkYXRhIGVmaV9iczsKIHN0YXRpYyBVSU5UMzIgX19pbml0ZGF0YSBl ZmlfYnNfcmV2aXNpb247CiBzdGF0aWMgRUZJX0hBTkRMRSBfX2luaXRkYXRhIGVmaV9paDsKLS0g CjEuNy4xMC40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==