From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v5 13/16] x86: add multiboot2 protocol support for EFI platforms Date: Sat, 20 Aug 2016 00:43:23 +0200 Message-ID: <1471646606-28519-14-git-send-email-daniel.kiper@oracle.com> References: <1471646606-28519-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 1basYM-0003US-NM for xen-devel@lists.xenproject.org; Fri, 19 Aug 2016 22:46:18 +0000 In-Reply-To: <1471646606-28519-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 LQp2NCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHJlbW92ZSByZWR1bmRhbnQgQlNTIGFsaWdu bWVudCwKICAgLSB1cGRhdGUgQlNTIGFsaWdubWVudCBjaGVjaywKICAgLSB1c2UgX19zZXRfYml0 KCkgaW5zdGVhZCBvZiBzZXRfYml0KCkgaWYgcG9zc2libGUKICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKSwKICAgLSBjYWxsIGVmaV9hcmNoX2NwdSgpIGZyb20gZWZpX211bHRpYm9vdDIo KQogICAgIGV2ZW4gaWYgdGhlIHNhbWUgd29yayBpcyBkb25lIGxhdGVyIGluCiAgICAgb3RoZXIg cGxhY2UgcmlnaHQgbm93CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0geGVu L2FyY2gveDg2L2VmaS9zdHViLmM6ZWZpX211bHRpYm9vdDIoKQogICAgIGZhaWwgcHJvcGVybHkg b24gRUZJIHBsYXRmb3JtcywKICAgLSBkbyBub3QgcmVhZCBkYXRhIGJleW9uZCB0aGUgZW5kIG9m IG11bHRpYm9vdDIKICAgICBpbmZvcm1hdGlvbiBpbiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1c2UgMzItYml0IHJlZ2lzdGVy cyBpbiB4ODZfNjQgY29kZSBpZiBwb3NzaWJsZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAtIG11bHRpYm9vdDIgaW5mb3JtYXRpb24gYWRkcmVzcyBpcyA2NC1iaXQKICAgICBp biB4ODZfNjQgY29kZSwgc28sIHRyZWF0IGl0IGlzIGFzIGlzCiAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCksCiAgIC0gdXNlIGNtb3ZjYyBpZiBwb3NzaWJsZSwKICAgLSBsZWF2ZSBvbmx5 IG9uZSBzcGFjZSBiZXR3ZWVuIHJlcCBhbmQgc3Rvc3EKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKSwKICAgLSBpbXByb3ZlIGVycm9yIGhhbmRsaW5nLAogICAtIGltcHJvdmUgZWFybHkg ZXJyb3IgbWVzc2FnZXMsCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1w cm92ZSBlYXJseSBlcnJvciBtZXNzYWdlcyBwcmludGluZyBjb2RlLAogICAtIGltcHJvdmUgbGFi ZWwgbmFtZXMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNv bW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdmFyaW91cyBtaW5v ciBjbGVhbnVwcy4KCnYzIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gdGFrZSBpbnRvIGFjY291 bnQgYWxpZ25tZW50IHdoZW4gc2tpcHBpbmcgbXVsdGlib290MiBmaXhlZCBwYXJ0CiAgICAgKHN1 Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspLAogICAtIGltcHJvdmUgc2VnbWVudCBy ZWdpc3RlcnMgaW5pdGlhbGl6YXRpb24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwK ICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCBhbmQg S29ucmFkIFJ6ZXN6dXRlayBXaWxrKSwKICAgLSBpbXByb3ZlIGNvbW1pdCBtZXNzYWdlCiAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2MiAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAt IGdlbmVyYXRlIG11bHRpYm9vdDIgaGVhZGVyIHVzaW5nIG1hY3JvcwogICAgIChzdWdnZXN0ZWQg YnkgSmFuIEJldWxpY2gpLAogICAtIHN3aXRjaCBDUFUgdG8geDg2XzMyIG1vZGUgYmVmb3JlCiAg ICAganVtcGluZyB0byAzMi1iaXQgY29kZQogICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3IENvb3Bl ciksCiAgIC0gcmVkdWNlIGNvZGUgY2hhbmdlcyB0byBpbmNyZWFzZSBwYXRjaCByZWFkYWJpbGl0 eQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVudHMK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpZ25vcmUgTVVMVElCT09UMl9U QUdfVFlQRV9CQVNJQ19NRU1JTkZPIHRhZyBvbiBFRkkgcGxhdGZvcm0KICAgICBhbmQgZmluZCBv biBteSBvd24gbXVsdGlib290Mi5tZW1fbG93ZXIgdmFsdWUsCiAgIC0gc3RvcCBleGVjdXRpb24g aWYgRUZJIHBsYXRmb3JtIGlzIGRldGVjdGVkCiAgICAgaW4gbGVnYWN5IEJJT1MgcGF0aC4KLS0t CiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMgICAgICAgICAgfCAgMjQzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaCAgICAg ICB8ICAgNDkgKysrKysrKy0KIHhlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jICAgICAgICAgICB8ICAg MjQgKysrKwogeGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jIHwgICAgMiArCiB4ZW4v YXJjaC94ODYveGVuLmxkcy5TICAgICAgICAgICAgfCAgICA0ICstCiB4ZW4vY29tbW9uL2VmaS9i b290LmMgICAgICAgICAgICAgfCAgIDExICsrCiA2IGZpbGVzIGNoYW5nZWQsIDMxMiBpbnNlcnRp b25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYm9vdC9o ZWFkLlMgYi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKaW5kZXggNWU2MTg1NC4uYWNhNTM3MCAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCisrKyBiL3hlbi9hcmNoL3g4Ni9i b290L2hlYWQuUwpAQCAtODksNiArODksMTMgQEAgbXVsdGlib290Ml9oZWFkZXJfc3RhcnQ6CiAg ICAgICAgICAgICAgICAgICAgMCwgLyogTnVtYmVyIG9mIHRoZSBsaW5lcyAtIG5vIHByZWZlcmVu Y2UuICovIFwKICAgICAgICAgICAgICAgICAgICAwICAvKiBOdW1iZXIgb2YgYml0cyBwZXIgcGl4 ZWwgLSBubyBwcmVmZXJlbmNlLiAqLwogCisgICAgICAgIC8qIEluaGliaXQgYm9vdGxvYWRlciBm cm9tIGNhbGxpbmcgRXhpdEJvb3RTZXJ2aWNlcygpLiAqLworICAgICAgICBtYjJodF9pbml0IE1C Ml9IVChFRklfQlMpLCBNQjJfSFQoT1BUSU9OQUwpCisKKyAgICAgICAgLyogRUZJNjQgZW50cnkg cG9pbnQuICovCisgICAgICAgIG1iMmh0X2luaXQgTUIyX0hUKEVOVFJZX0FERFJFU1NfRUZJNjQp LCBNQjJfSFQoT1BUSU9OQUwpLCBcCisgICAgICAgICAgICAgICAgICAgc3ltX3BoeXMoX19lZmk2 NF9zdGFydCkKKwogICAgICAgICAvKiBNdWx0aWJvb3QyIGhlYWRlciBlbmQgdGFnLiAqLwogICAg ICAgICBtYjJodF9pbml0IE1CMl9IVChFTkQpLCBNQjJfSFQoUkVRVUlSRUQpCiAuTG11bHRpYm9v dDJfaGVhZGVyX2VuZDoKQEAgLTEwMCwxOSArMTA3LDQ1IEBAIG11bHRpYm9vdDJfaGVhZGVyX3N0 YXJ0OgogZ2R0X2Jvb3RfZGVzY3I6CiAgICAgICAgIC53b3JkICAgNio4LTEKICAgICAgICAgLmxv bmcgICBzeW1fcGh5cyh0cmFtcG9saW5lX2dkdCkKKyAgICAgICAgLmxvbmcgICAwIC8qIE5lZWRl ZCBmb3IgNjQtYml0IGxnZHQgKi8KKworY3MzMl9zd2l0Y2hfYWRkcjoKKyAgICAgICAgLmxvbmcg ICBzeW1fcGh5cyhjczMyX3N3aXRjaCkKKyAgICAgICAgLndvcmQgICBCT09UX0NTMzIKKwordmdh X3RleHRfYnVmZmVyOgorICAgICAgICAubG9uZyAgIDB4YjgwMDAKIAogLkxiYWRfY3B1X21zZzog LmFzY2l6ICJFUlI6IE5vdCBhIDY0LWJpdCBDUFUhIgogLkxiYWRfbGRyX21zZzogLmFzY2l6ICJF UlI6IE5vdCBhIE11bHRpYm9vdCBib290bG9hZGVyISIKKy5MYmFkX2xkcl9uYnM6IC5hc2NpeiAi RVJSOiBCb290bG9hZGVyIHNodXRkb3duIEVGSSB4NjQgYm9vdCBzZXJ2aWNlcyEiCisuTGJhZF9s ZHJfbnN0OiAuYXNjaXogIkVSUjogRUZJIFN5c3RlbVRhYmxlIGlzIG5vdCBwcm92aWRlZCBieSBi b290bG9hZGVyISIKKy5MYmFkX2xkcl9uaWg6IC5hc2NpeiAiRVJSOiBFRkkgSW1hZ2VIYW5kbGUg aXMgbm90IHByb3ZpZGVkIGJ5IGJvb3Rsb2FkZXIhIgorLkxiYWRfZWZpX21zZzogLmFzY2l6ICJF UlI6IEVGSSBJQS0zMiBwbGF0Zm9ybXMgYXJlIG5vdCBzdXBwb3J0ZWQhIgogCiAgICAgICAgIC5z ZWN0aW9uIC5pbml0LnRleHQsICJheCIsIEBwcm9nYml0cwogCiBiYWRfY3B1OgogICAgICAgICBt b3YgICAgICQoc3ltX3BoeXMoLkxiYWRfY3B1X21zZykpLCVlc2kgIyBFcnJvciBtZXNzYWdlCi0g ICAgICAgIGptcCAgICAgcHJpbnRfZXJyCisgICAgICAgIGptcCAgICAgMGYKIG5vdF9tdWx0aWJv b3Q6CiAgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9sZHJfbXNnKSksJWVzaSAjIEVy cm9yIG1lc3NhZ2UKLXByaW50X2VycjoKLSAgICAgICAgbW92ICAgICAkMHhCODAwMCwlZWRpICAj IFZHQSBmcmFtZWJ1ZmZlcgorICAgICAgICBqbXAgICAgIDBmCittYjJfbm9fc3Q6CisgICAgICAg IG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9sZHJfbnN0KSksJWVzaSAjIEVycm9yIG1lc3NhZ2UK KyAgICAgICAgam1wICAgICAwZgorbWIyX25vX2loOgorICAgICAgICBtb3YgICAgICQoc3ltX3Bo eXMoLkxiYWRfbGRyX25paCkpLCVlc2kgIyBFcnJvciBtZXNzYWdlCisgICAgICAgIGptcCAgICAg MGYKK21iMl9ub19iczoKKyAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uYnMp KSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICB4b3IgICAgICVlZGksJWVkaSAgICAgICAg ICAgICAgICAgICAgICAgIyBObyBWR0EgdGV4dCBidWZmZXIKKyAgICAgICAgam1wICAgICAxZgor bWIyX2VmaV9pYV8zMjoKKyAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2VmaV9tc2cp KSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICB4b3IgICAgICVlZGksJWVkaSAgICAgICAg ICAgICAgICAgICAgICAgIyBObyBWR0EgdGV4dCBidWZmZXIKKyAgICAgICAgam1wICAgICAxZgor MDogICAgICBtb3YgICAgIHN5bV9waHlzKHZnYV90ZXh0X2J1ZmZlciksJWVkaQogMTogICAgICBt b3YgICAgICglZXNpKSwlYmwKICAgICAgICAgdGVzdCAgICAlYmwsJWJsICAgICAgICAjIFRlcm1p bmF0ZSBvbiAnXDAnIHNlbnRpbmVsCiAgICAgICAgIGplICAgICAgLkxoYWx0CkBAIC0xMjMsMTMg KzE1NiwxNzMgQEAgcHJpbnRfZXJyOgogICAgICAgICBtb3YgICAgICQweDNmOCswLCVkeCAgICMg VUFSVCBUcmFuc21pdCBIb2xkaW5nIFJlZ2lzdGVyCiAgICAgICAgIG1vdiAgICAgJWJsLCVhbAog ICAgICAgICBvdXQgICAgICVhbCwlZHggICAgICAgICMgU2VuZCBhIGNoYXJhY3RlciBvdmVyIHRo ZSBzZXJpYWwgbGluZQotICAgICAgICBtb3ZzYiAgICAgICAgICAgICAgICAgICMgV3JpdGUgYSBj aGFyYWN0ZXIgdG8gdGhlIFZHQSBmcmFtZWJ1ZmZlcgorICAgICAgICB0ZXN0ICAgICVlZGksJWVk aSAgICAgICMgSXMgdGhlIFZHQSB0ZXh0IGJ1ZmZlciBhdmFpbGFibGU/CisgICAgICAgIGp6ICAg ICAgMWIKKyAgICAgICAgbW92c2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVy IHRvIHRoZSBWR0EgdGV4dCBidWZmZXIKICAgICAgICAgbW92ICAgICAkNywlYWwKLSAgICAgICAg c3Rvc2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGFuIGF0dHJpYnV0ZSB0byB0aGUgVkdBIGZy YW1lYnVmZmVyCisgICAgICAgIHN0b3NiICAgICAgICAgICAgICAgICAgIyBXcml0ZSBhbiBhdHRy aWJ1dGUgdG8gdGhlIFZHQSB0ZXh0IGJ1ZmZlcgogICAgICAgICBqbXAgICAgIDFiCiAuTGhhbHQ6 IGhsdAogICAgICAgICBqbXAgICAgIC5MaGFsdAogCisgICAgICAgIC5jb2RlNjQKKworX19lZmk2 NF9zdGFydDoKKyAgICAgICAgY2xkCisKKyAgICAgICAgLyogVkdBIGlzIG5vdCBhdmFpbGFibGUg b24gRUZJIHBsYXRmb3Jtcy4gKi8KKyAgICAgICAgbW92bCAgICQwLHZnYV90ZXh0X2J1ZmZlcigl cmlwKQorCisgICAgICAgIC8qIENoZWNrIGZvciBNdWx0aWJvb3QyIGJvb3Rsb2FkZXIuICovCisg ICAgICAgIGNtcCAgICAgJE1VTFRJQk9PVDJfQk9PVExPQURFUl9NQUdJQywlZWF4CisgICAgICAg IGplICAgICAgLkxlZmlfbXVsdGlib290Ml9wcm90bworCisgICAgICAgIC8qIEp1bXAgdG8gbm90 X211bHRpYm9vdCBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLworICAgICAg ICBsZWEgICAgIG5vdF9tdWx0aWJvb3QoJXJpcCksJWVkaQorICAgICAgICBqbXAgICAgIHg4Nl8z Ml9zd2l0Y2gKKworLkxlZmlfbXVsdGlib290Ml9wcm90bzoKKyAgICAgICAgLyogWmVybyBFRkkg U3lzdGVtVGFibGUgYW5kIEVGSSBJbWFnZUhhbmRsZSBhZGRyZXNzZXMuICovCisgICAgICAgIHhv ciAgICAgJWVzaSwlZXNpCisgICAgICAgIHhvciAgICAgJWVkaSwlZWRpCisKKyAgICAgICAgLyog U2tpcCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIGZpeGVkIHBhcnQuICovCisgICAgICAgIGxlYSAg ICAgKE1CMl9maXhlZF9zaXplb2YrTVVMVElCT09UMl9UQUdfQUxJR04tMSkoJWVieCksJWVjeAor ICAgICAgICBhbmQgICAgICR+KE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKKworMDoKKyAg ICAgICAgLyogQ2hlY2sgTXVsdGlib290MiBpbmZvcm1hdGlvbiB0b3RhbCBzaXplLiAqLworICAg ICAgICBtb3YgICAgICVlY3gsJXI4ZAorICAgICAgICBzdWIgICAgICVlYngsJXI4ZAorICAgICAg ICBjbXAgICAgICVyOGQsTUIyX2ZpeGVkX3RvdGFsX3NpemUoJXJieCkKKyAgICAgICAgamJlICAg ICBydW5fYnMKKworICAgICAgICAvKiBBcmUgRUZJIGJvb3Qgc2VydmljZXMgYXZhaWxhYmxlPyAq LworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSV9CUyxNQjJfdGFnX3R5 cGUoJXJjeCkKKyAgICAgICAgam5lICAgICAxZgorCisgICAgICAgIC8qIFllcywgc2tpcCByZWFs IG1vZGUgYW5kIGRvIG5vdCBkbyBvdGhlciB1bm5lZWRlZCB0aGluZ3MuICovCisgICAgICAgIGlu Y2IgICAgc2tpcF9yZWFsbW9kZSglcmlwKQorICAgICAgICBqbXAgICAgIDlmCisKKzE6CisgICAg ICAgIC8qIEdldCBFRkkgU3lzdGVtVGFibGUgYWRkcmVzcyBmcm9tIE11bHRpYm9vdDIgaW5mb3Jt YXRpb24uICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJNjQsTUIy X3RhZ190eXBlKCVyY3gpCisgICAgICAgIGNtb3ZlICAgTUIyX2VmaTY0X3N0KCVyY3gpLCVyc2kK KyAgICAgICAgamUgICAgICA5ZgorCisgICAgICAgIC8qIEdldCBFRkkgSW1hZ2VIYW5kbGUgYWRk cmVzcyBmcm9tIE11bHRpYm9vdDIgaW5mb3JtYXRpb24uICovCisgICAgICAgIGNtcGwgICAgJE1V TFRJQk9PVDJfVEFHX1RZUEVfRUZJNjRfSUgsTUIyX3RhZ190eXBlKCVyY3gpCisgICAgICAgIGNt b3ZlICAgTUIyX2VmaTY0X2loKCVyY3gpLCVyZGkKKyAgICAgICAgamUgICAgICA5ZgorCisgICAg ICAgIC8qIElzIGl0IHRoZSBlbmQgb2YgTXVsdGlib290MiBpbmZvcm1hdGlvbj8gKi8KKyAgICAg ICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FTkQsTUIyX3RhZ190eXBlKCVyY3gpCisg ICAgICAgIGplICAgICAgcnVuX2JzCisKKzk6CisgICAgICAgIC8qIEdvIHRvIG5leHQgTXVsdGli b290MiBpbmZvcm1hdGlvbiB0YWcuICovCisgICAgICAgIGFkZCAgICAgTUIyX3RhZ19zaXplKCVy Y3gpLCVlY3gKKyAgICAgICAgYWRkICAgICAkKE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gK KyAgICAgICAgYW5kICAgICAkfihNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4CisgICAgICAg IGptcCAgICAgMGIKKworcnVuX2JzOgorICAgICAgICAvKiBBcmUgRUZJIGJvb3Qgc2VydmljZXMg YXZhaWxhYmxlPyAqLworICAgICAgICBjbXBiICAgICQwLHNraXBfcmVhbG1vZGUoJXJpcCkKKyAg ICAgICAgam56ICAgICAwZgorCisgICAgICAgIC8qIEp1bXAgdG8gbWIyX25vX2JzIGFmdGVyIHN3 aXRjaGluZyBDUFUgdG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAgbWIyX25vX2Jz KCVyaXApLCVlZGkKKyAgICAgICAgam1wICAgICB4ODZfMzJfc3dpdGNoCisKKzA6CisgICAgICAg IC8qIElzIEVGSSBTeXN0ZW1UYWJsZSBhZGRyZXNzIHByb3ZpZGVkIGJ5IGJvb3QgbG9hZGVyPyAq LworICAgICAgICB0ZXN0ICAgICVyc2ksJXJzaQorICAgICAgICBqbnogICAgIDFmCisKKyAgICAg ICAgLyogSnVtcCB0byBtYjJfbm9fc3QgYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIgbW9k ZS4gKi8KKyAgICAgICAgbGVhICAgICBtYjJfbm9fc3QoJXJpcCksJWVkaQorICAgICAgICBqbXAg ICAgIHg4Nl8zMl9zd2l0Y2gKKworMToKKyAgICAgICAgLyogSXMgRUZJIEltYWdlSGFuZGxlIGFk ZHJlc3MgcHJvdmlkZWQgYnkgYm9vdCBsb2FkZXI/ICovCisgICAgICAgIHRlc3QgICAgJXJkaSwl cmRpCisgICAgICAgIGpueiAgICAgMmYKKworICAgICAgICAvKiBKdW1wIHRvIG1iMl9ub19paCBh ZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLworICAgICAgICBsZWEgICAgIG1i Ml9ub19paCglcmlwKSwlZWRpCisgICAgICAgIGptcCAgICAgeDg2XzMyX3N3aXRjaAorCisyOgor ICAgICAgICBwdXNoICAgICVyYXgKKyAgICAgICAgcHVzaCAgICAlcmRpCisKKyAgICAgICAgLyoK KyAgICAgICAgICogSW5pdGlhbGl6ZSBCU1MgKG5vIG5hc3R5IHN1cnByaXNlcyEpLgorICAgICAg ICAgKiBJdCBtdXN0IGJlIGRvbmUgZWFybGllciB0aGFuIGluIEJJT1MgY2FzZQorICAgICAgICAg KiBiZWNhdXNlIGVmaV9tdWx0aWJvb3QyKCkgdG91Y2hlcyBpdC4KKyAgICAgICAgICovCisgICAg ICAgIGxlYSAgICAgX19ic3Nfc3RhcnQoJXJpcCksJWVkaQorICAgICAgICBsZWEgICAgIF9fYnNz X2VuZCglcmlwKSwlZWN4CisgICAgICAgIHN1YiAgICAgJWVkaSwlZWN4CisgICAgICAgIHNociAg ICAgJDMsJWVjeAorICAgICAgICB4b3IgICAgICVlYXgsJWVheAorICAgICAgICByZXAgc3Rvc3EK KworICAgICAgICBwb3AgICAgICVyZGkKKworICAgICAgICAvKgorICAgICAgICAgKiBJTjogJXJk aSAtIEVGSSBJbWFnZUhhbmRsZSwgJXJzaSAtIEVGSSBTeXN0ZW1UYWJsZS4KKyAgICAgICAgICog T1VUOiAlcmF4IC0gSGlnaGVzdCBhdmFpbGFibGUgbWVtb3J5IGFkZHJlc3MgYmVsb3cgMSBNaUIu CisgICAgICAgICAqCisgICAgICAgICAqIE1VTFRJQk9PVDJfVEFHX1RZUEVfQkFTSUNfTUVNSU5G TyB0YWcgaXMgbm90IHByb3ZpZGVkCisgICAgICAgICAqIG9uIEVGSSBwbGF0Zm9ybXMuIEhlbmNl LCBpdCBjb3VsZCBub3QgYmUgdXNlZCBsaWtlCisgICAgICAgICAqIG9uIGxlZ2FjeSBCSU9TIHBs YXRmb3Jtcy4KKyAgICAgICAgICovCisgICAgICAgIGNhbGwgICAgZWZpX211bHRpYm9vdDIKKwor ICAgICAgICAvKiBDb252ZXJ0IG1lbW9yeSBhZGRyZXNzIHRvIGJ5dGVzLzE2IGFuZCBzdG9yZSBp dCBpbiBzYWZlIHBsYWNlLiAqLworICAgICAgICBzaHIgICAgICQ0LCVlYXgKKyAgICAgICAgbW92 ICAgICAlZWF4LCVlY3gKKworICAgICAgICBwb3AgICAgICVyYXgKKworICAgICAgICAvKiBKdW1w IHRvIHRyYW1wb2xpbmVfc2V0dXAgYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIgbW9kZS4g Ki8KKyAgICAgICAgbGVhICAgICB0cmFtcG9saW5lX3NldHVwKCVyaXApLCVlZGkKKworeDg2XzMy X3N3aXRjaDoKKyAgICAgICAgY2xpCisKKyAgICAgICAgLyogSW5pdGlhbGlzZSBHRFQuICovCisg ICAgICAgIGxnZHQgICAgZ2R0X2Jvb3RfZGVzY3IoJXJpcCkKKworICAgICAgICAvKiBSZWxvYWQg Y29kZSBzZWxlY3Rvci4gKi8KKyAgICAgICAgbGptcGwgICAqY3MzMl9zd2l0Y2hfYWRkciglcmlw KQorCisgICAgICAgIC5jb2RlMzIKKworY3MzMl9zd2l0Y2g6CisgICAgICAgIC8qIEluaXRpYWxp c2UgYmFzaWMgZGF0YSBzZWdtZW50cy4gKi8KKyAgICAgICAgbW92ICAgICAkQk9PVF9EUywlZWR4 CisgICAgICAgIG1vdiAgICAgJWVkeCwlZHMKKyAgICAgICAgbW92ICAgICAlZWR4LCVlcworICAg ICAgICBtb3YgICAgICVlZHgsJXNzCisgICAgICAgIC8qICVlc3AgaXMgaW5pdGlhbGlzZWQgbGF0 ZXIuICovCisKKyAgICAgICAgLyogTG9hZCBudWxsIGRlc2NyaXB0b3IgdG8gdW51c2VkIHNlZ21l bnQgcmVnaXN0ZXJzLiAqLworICAgICAgICB4b3IgICAgICVlZHgsJWVkeAorICAgICAgICBtb3Yg ICAgICVlZHgsJWZzCisgICAgICAgIG1vdiAgICAgJWVkeCwlZ3MKKworICAgICAgICAvKiBEaXNh YmxlIHBhZ2luZy4gKi8KKyAgICAgICAgbW92ICAgICAlY3IwLCVlZHgKKyAgICAgICAgYW5kICAg ICAkKH5YODZfQ1IwX1BHKSwlZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlY3IwCisKKyAgICAg ICAgLyogSnVtcCB0byBlYXJsaWVyIGxvYWRlZCBhZGRyZXNzLiAqLworICAgICAgICBqbXAgICAg IColZWRpCisKIF9fc3RhcnQ6CiAgICAgICAgIGNsZAogICAgICAgICBjbGkKQEAgLTE1Nyw3ICsz NTAsNyBAQCBfX3N0YXJ0OgogCiAgICAgICAgIC8qIE5vdCBhdmFpbGFibGU/IEJEQSB2YWx1ZSB3 aWxsIGJlIGZpbmUuICovCiAgICAgICAgIGNtb3ZueiAgTUJfbWVtX2xvd2VyKCVlYngpLCVlZHgK LSAgICAgICAgam1wICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGptcCAgICAgdHJhbXBv bGluZV9iaW9zX3NldHVwCiAKIC5MbXVsdGlib290Ml9wcm90bzoKICAgICAgICAgLyogU2tpcCBN dWx0aWJvb3QyIGluZm9ybWF0aW9uIGZpeGVkIHBhcnQuICovCkBAIC0xNjksMTYgKzM2MiwyNCBA QCBfX3N0YXJ0OgogICAgICAgICBtb3YgICAgICVlY3gsJWVkaQogICAgICAgICBzdWIgICAgICVl YngsJWVkaQogICAgICAgICBjbXAgICAgICVlZGksTUIyX2ZpeGVkX3RvdGFsX3NpemUoJWVieCkK LSAgICAgICAgamJlICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGpiZSAgICAgdHJhbXBv bGluZV9iaW9zX3NldHVwCiAKICAgICAgICAgLyogR2V0IG1lbV9sb3dlciBmcm9tIE11bHRpYm9v dDIgaW5mb3JtYXRpb24uICovCiAgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVf QkFTSUNfTUVNSU5GTyxNQjJfdGFnX3R5cGUoJWVjeCkKICAgICAgICAgY21vdmUgICBNQjJfbWVt X2xvd2VyKCVlY3gpLCVlZHgKLSAgICAgICAgamUgICAgICB0cmFtcG9saW5lX3NldHVwCisgICAg ICAgIGplICAgICAgdHJhbXBvbGluZV9iaW9zX3NldHVwCisKKyAgICAgICAgLyogRUZJIElBLTMy IHBsYXRmb3JtcyBhcmUgbm90IHN1cHBvcnRlZC4gKi8KKyAgICAgICAgY21wbCAgICAkTVVMVElC T09UMl9UQUdfVFlQRV9FRkkzMixNQjJfdGFnX3R5cGUoJWVjeCkKKyAgICAgICAgamUgICAgICBt YjJfZWZpX2lhXzMyCisKKyAgICAgICAgLyogQm9vdGxvYWRlciBzaHV0ZG93biBFRkkgeDY0IGJv b3Qgc2VydmljZXMuICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJ NjQsTUIyX3RhZ190eXBlKCVlY3gpCisgICAgICAgIGplICAgICAgbWIyX25vX2JzCiAKICAgICAg ICAgLyogSXMgaXQgdGhlIGVuZCBvZiBNdWx0aWJvb3QyIGluZm9ybWF0aW9uPyAqLwogICAgICAg ICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VORCxNQjJfdGFnX3R5cGUoJWVjeCkKLSAg ICAgICAgamUgICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGplICAgICAgdHJhbXBvbGlu ZV9iaW9zX3NldHVwCiAKICAgICAgICAgLyogR28gdG8gbmV4dCBNdWx0aWJvb3QyIGluZm9ybWF0 aW9uIHRhZy4gKi8KICAgICAgICAgYWRkICAgICBNQjJfdGFnX3NpemUoJWVjeCksJWVjeApAQCAt MTg2LDcgKzM4Nyw3IEBAIF9fc3RhcnQ6CiAgICAgICAgIGFuZCAgICAgJH4oTVVMVElCT09UMl9U QUdfQUxJR04tMSksJWVjeAogICAgICAgICBqbXAgICAgIDBiCiAKLXRyYW1wb2xpbmVfc2V0dXA6 Cit0cmFtcG9saW5lX2Jpb3Nfc2V0dXA6CiAgICAgICAgIC8qIFNldCB1cCB0cmFtcG9saW5lIHNl Z21lbnQgNjRrIGJlbG93IEVCREEgKi8KICAgICAgICAgbW92endsICAweDQwZSwlZWN4ICAgICAg ICAgIC8qIEVCREEgc2VnbWVudCAqLwogICAgICAgICBjbXAgICAgICQweGEwMDAsJWVjeCAgICAg ICAgLyogc2FuaXR5IGNoZWNrIChoaWdoKSAqLwpAQCAtMjAyLDEyICs0MDMsMTMgQEAgdHJhbXBv bGluZV9zZXR1cDoKICAgICAgICAgICogbXVsdGlib290IHN0cnVjdHVyZSAoaWYgYXZhaWxhYmxl KSBhbmQgdXNlIHRoZSBzbWFsbGVzdC4KICAgICAgICAgICovCiAgICAgICAgIGNtcCAgICAgJDB4 MTAwLCVlZHggICAgICAgICAvKiBpcyB0aGUgbXVsdGlib290IHZhbHVlIHRvbyBzbWFsbD8gKi8K LSAgICAgICAgamIgICAgICAyZiAgICAgICAgICAgICAgICAgIC8qIGlmIHNvLCBkbyBub3QgdXNl IGl0ICovCisgICAgICAgIGpiICAgICAgdHJhbXBvbGluZV9zZXR1cCAgICAvKiBpZiBzbywgZG8g bm90IHVzZSBpdCAqLwogICAgICAgICBzaGwgICAgICQxMC00LCVlZHgKICAgICAgICAgY21wICAg ICAlZWN4LCVlZHggICAgICAgICAgIC8qIGNvbXBhcmUgd2l0aCBCREEgdmFsdWUgKi8KICAgICAg ICAgY21vdmIgICAlZWR4LCVlY3ggICAgICAgICAgIC8qIGFuZCB1c2UgdGhlIHNtYWxsZXIgKi8K IAotMjogICAgICAvKiBSZXNlcnZlIDY0a2IgZm9yIHRoZSB0cmFtcG9saW5lICovCit0cmFtcG9s aW5lX3NldHVwOgorICAgICAgICAvKiBSZXNlcnZlIDY0a2IgZm9yIHRoZSB0cmFtcG9saW5lLiAq LwogICAgICAgICBzdWIgICAgICQweDEwMDAsJWVjeAogCiAgICAgICAgIC8qIEZyb20gYXJjaC94 ODYvc21wYm9vdC5jOiBzdGFydF9laXAgaGFkIGJldHRlciBiZSBwYWdlLWFsaWduZWQhICovCkBA IC0yMjMsMTQgKzQyNSwyMiBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBjYWxsICAgIHJl bG9jCiAgICAgICAgIG1vdiAgICAgJWVheCxzeW1fcGh5cyhtdWx0aWJvb3RfcHRyKQogCi0gICAg ICAgIC8qIEluaXRpYWxpemUgQlNTIChubyBuYXN0eSBzdXJwcmlzZXMhKSAqLworICAgICAgICAv KgorICAgICAgICAgKiBEbyBub3QgemVybyBCU1Mgb24gRUZJIHBsYXRmb3JtIGhlcmUuCisgICAg ICAgICAqIEl0IHdhcyBpbml0aWFsaXplZCBlYXJsaWVyLgorICAgICAgICAgKi8KKyAgICAgICAg Y21wYiAgICAkMCxzeW1fcGh5cyhza2lwX3JlYWxtb2RlKQorICAgICAgICBqbnogICAgIDFmCisK KyAgICAgICAgLyogSW5pdGlhbGl6ZSBCU1MgKG5vIG5hc3R5IHN1cnByaXNlcyEpLiAqLwogICAg ICAgICBtb3YgICAgICRzeW1fcGh5cyhfX2Jzc19zdGFydCksJWVkaQogICAgICAgICBtb3YgICAg ICRzeW1fcGh5cyhfX2Jzc19lbmQpLCVlY3gKICAgICAgICAgc3ViICAgICAlZWRpLCVlY3gKLSAg ICAgICAgeG9yICAgICAlZWF4LCVlYXgKICAgICAgICAgc2hyICAgICAkMiwlZWN4CisgICAgICAg IHhvciAgICAgJWVheCwlZWF4CiAgICAgICAgIHJlcCBzdG9zbAogCisxOgogICAgICAgICAvKiBJ bnRlcnJvZ2F0ZSBDUFUgZXh0ZW5kZWQgZmVhdHVyZXMgdmlhIENQVUlELiAqLwogICAgICAgICBt b3YgICAgICQweDgwMDAwMDAwLCVlYXgKICAgICAgICAgY3B1aWQKQEAgLTI4Miw4ICs0OTIsMTMg QEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgY21wICAgICAkc3ltX3BoeXMoX190cmFtcG9s aW5lX3NlZ19zdG9wKSwlZWRpCiAgICAgICAgIGpiICAgICAgMWIKIAorICAgICAgICAvKiBEbyBu b3QgcGFyc2UgY29tbWFuZCBsaW5lIG9uIEVGSSBwbGF0Zm9ybSBoZXJlLiAqLworICAgICAgICBj bXBiICAgICQwLHN5bV9waHlzKHNraXBfcmVhbG1vZGUpCisgICAgICAgIGpueiAgICAgMWYKKwog ICAgICAgICBjYWxsICAgIGNtZGxpbmVfcGFyc2VfZWFybHkKIAorMToKICAgICAgICAgLyogU3dp dGNoIHRvIGxvdy1tZW1vcnkgc3RhY2suICAqLwogICAgICAgICBtb3YgICAgIHN5bV9waHlzKHRy YW1wb2xpbmVfcGh5cyksJWVkaQogICAgICAgICBsZWEgICAgIDB4MTAwMDAoJWVkaSksJWVzcApk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oIGIveGVuL2FyY2gveDg2L2Vm aS9lZmktYm9vdC5oCmluZGV4IDNmODdiN2MuLjI2MjJjZjcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9lZmkvZWZpLWJvb3QuaAorKysgYi94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgKQEAg LTI0OCwxMiArMjQ4LDE0IEBAIHN0YXRpYyB2b2lkICpfX2luaXQgZWZpX2FyY2hfYWxsb2NhdGVf bW1hcF9idWZmZXIoVUlOVE4gbWFwX3NpemUpCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBlZmlfYXJj aF9wcmVfZXhpdF9ib290KHZvaWQpCiB7Ci0gICAgaWYgKCAhdHJhbXBvbGluZV9waHlzICkKLSAg ICB7Ci0gICAgICAgIGlmICggIWNmZy5hZGRyICkKLSAgICAgICAgICAgIGJsZXhpdChMIk5vIG1l bW9yeSBmb3IgdHJhbXBvbGluZSIpOworICAgIGlmICggdHJhbXBvbGluZV9waHlzICkKKyAgICAg ICAgcmV0dXJuOworCisgICAgaWYgKCAhY2ZnLmFkZHIgKQorICAgICAgICBibGV4aXQoTCJObyBt ZW1vcnkgZm9yIHRyYW1wb2xpbmUiKTsKKworICAgIGlmICggZWZpX2VuYWJsZWQoRUZJX0xPQURF UikgKQogICAgICAgICByZWxvY2F0ZV90cmFtcG9saW5lKGNmZy5hZGRyKTsKLSAgICB9CiB9CiAK IHN0YXRpYyB2b2lkIF9faW5pdCBub3JldHVybiBlZmlfYXJjaF9wb3N0X2V4aXRfYm9vdCh2b2lk KQpAQCAtNjg3LDYgKzY4OSw0MyBAQCBzdGF0aWMgYm9vbF90IF9faW5pdCBlZmlfYXJjaF91c2Vf Y29uZmlnX2ZpbGUoRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpCiAKIHN0YXRpYyB2b2lk IGVmaV9hcmNoX2ZsdXNoX2RjYWNoZV9hcmVhKGNvbnN0IHZvaWQgKnZhZGRyLCBVSU5UTiBzaXpl KSB7IH0KIAorcGFkZHJfdCBfX2luaXQgZWZpX211bHRpYm9vdDIoRUZJX0hBTkRMRSBJbWFnZUhh bmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpCit7CisgICAgRUZJX0dSQVBISUNT X09VVFBVVF9QUk9UT0NPTCAqZ29wOworICAgIFVJTlROIGNvbHMsIGdvcF9tb2RlID0gfjAsIHJv d3M7CisKKyAgICBfX3NldF9iaXQoRUZJX0JPT1QsICZlZmlfZmxhZ3MpOworICAgIF9fc2V0X2Jp dChFRklfUlMsICZlZmlfZmxhZ3MpOworCisgICAgZWZpX2luaXQoSW1hZ2VIYW5kbGUsIFN5c3Rl bVRhYmxlKTsKKworICAgIGVmaV9jb25zb2xlX3NldF9tb2RlKCk7CisKKyAgICBpZiAoIFN0ZE91 dC0+UXVlcnlNb2RlKFN0ZE91dCwgU3RkT3V0LT5Nb2RlLT5Nb2RlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmNvbHMsICZyb3dzKSA9PSBFRklfU1VDQ0VTUyApCisgICAgICAgIGVmaV9h cmNoX2NvbnNvbGVfaW5pdChjb2xzLCByb3dzKTsKKworICAgIGdvcCA9IGVmaV9nZXRfZ29wKCk7 CisKKyAgICBpZiAoIGdvcCApCisgICAgICAgIGdvcF9tb2RlID0gZWZpX2ZpbmRfZ29wX21vZGUo Z29wLCAwLCAwLCAwKTsKKworICAgIGVmaV9hcmNoX2VkZCgpOworICAgIGVmaV9hcmNoX2NwdSgp OworCisgICAgZWZpX3RhYmxlcygpOworICAgIHNldHVwX2VmaV9wY2koKTsKKyAgICBlZmlfdmFy aWFibGVzKCk7CisKKyAgICBpZiAoIGdvcCApCisgICAgICAgIGVmaV9zZXRfZ29wX21vZGUoZ29w LCBnb3BfbW9kZSk7CisKKyAgICBlZmlfZXhpdF9ib290KEltYWdlSGFuZGxlLCBTeXN0ZW1UYWJs ZSk7CisKKyAgICAvKiBSZXR1cm4gaGlnaGVzdCBhdmFpbGFibGUgbWVtb3J5IGFkZHJlc3MgYmVs b3cgMSBNaUIuICovCisgICAgcmV0dXJuIGNmZy5hZGRyOworfQorCiAvKgogICogTG9jYWwgdmFy aWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2VmaS9zdHViLmMg Yi94ZW4vYXJjaC94ODYvZWZpL3N0dWIuYwppbmRleCBmN2JjMDQyLi5kODg2ZGU2IDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvZWZpL3N0dWIuYworKysgYi94ZW4vYXJjaC94ODYvZWZpL3N0dWIu YwpAQCAtMyw2ICszLDMwIEBACiAjaW5jbHVkZSA8eGVuL2luaXQuaD4KICNpbmNsdWRlIDx4ZW4v bGliLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vZWZpYmluZC5oPgor I2luY2x1ZGUgPGVmaS9lZmlkZWYuaD4KKyNpbmNsdWRlIDxlZmkvZWZpY2Fwc3VsZS5oPgorI2lu Y2x1ZGUgPGVmaS9lZmljb24uaD4KKyNpbmNsdWRlIDxlZmkvZWZpZGV2cC5oPgorI2luY2x1ZGUg PGVmaS9lZmlhcGkuaD4KKworcGFkZHJfdCBfX2luaXQgbm9yZXR1cm4gZWZpX211bHRpYm9vdDIo RUZJX0hBTkRMRSBJbWFnZUhhbmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpCit7 CisgICAgQ0hBUjE2ICplcnIgPSBMIlhlbiBkb2VzIG5vdCBoYXZlIEVGSSBjb2RlIGJ1aWxkIGlu ISEhXHJcblN5c3RlbSBoYWx0ZWQhISFcclxuIjsKKyAgICBTSU1QTEVfVEVYVF9PVVRQVVRfSU5U RVJGQUNFICpTdGRFcnI7CisKKyAgICBTdGRFcnIgPSBTeXN0ZW1UYWJsZS0+U3RkRXJyID8gU3lz dGVtVGFibGUtPlN0ZEVyciA6IFN5c3RlbVRhYmxlLT5Db25PdXQ7CisKKyAgICAvKiBQcmludCBl cnJvciBtZXNzYWdlIGFuZCBoYWx0IHRoZSBzeXN0ZW0uICovCisgICAgYXNtIHZvbGF0aWxlKAor ICAgICIgICAgY2FsbCAlMiAgICAgICAgICAgICAgICAgICAgICBcbiIKKyAgICAiMDogIGhsdCAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgIiAgICBqbXAgIDBiICAgICAgICAgICAg ICAgICAgICAgIFxuIgorICAgICAgIDogIitjIiAoU3RkRXJyKSwgIitkIiAoZXJyKSA6ICJnIiAo U3RkRXJyLT5PdXRwdXRTdHJpbmcpCisgICAgICAgOiAicmF4IiwgInI4IiwgInI5IiwgInIxMCIs ICJyMTEiLCAiY2MiLCAibWVtb3J5Iik7CisKKyAgICB1bnJlYWNoYWJsZSgpOworfQogCiBib29s X3QgZWZpX2VuYWJsZWQoaW50IGZlYXR1cmUpCiB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv eDg2XzY0L2FzbS1vZmZzZXRzLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMK aW5kZXggMGZjMWM2My4uOTY5NWVhNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9h c20tb2Zmc2V0cy5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYwpAQCAt MTc2LDYgKzE3Niw4IEBAIHZvaWQgX19kdW1teV9fKHZvaWQpCiAgICAgT0ZGU0VUKE1CMl90YWdf dHlwZSwgbXVsdGlib290Ml90YWdfdCwgdHlwZSk7CiAgICAgT0ZGU0VUKE1CMl90YWdfc2l6ZSwg bXVsdGlib290Ml90YWdfdCwgc2l6ZSk7CiAgICAgT0ZGU0VUKE1CMl9tZW1fbG93ZXIsIG11bHRp Ym9vdDJfdGFnX2Jhc2ljX21lbWluZm9fdCwgbWVtX2xvd2VyKTsKKyAgICBPRkZTRVQoTUIyX2Vm aTY0X3N0LCBtdWx0aWJvb3QyX3RhZ19lZmk2NF90LCBwb2ludGVyKTsKKyAgICBPRkZTRVQoTUIy X2VmaTY0X2loLCBtdWx0aWJvb3QyX3RhZ19lZmk2NF9paF90LCBwb2ludGVyKTsKICAgICBCTEFO SygpOwogCiAgICAgT0ZGU0VUKERPTUFJTl92bV9hc3Npc3QsIHN0cnVjdCBkb21haW4sIHZtX2Fz c2lzdCk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveGVuLmxkcy5TIGIveGVuL2FyY2gveDg2 L3hlbi5sZHMuUwppbmRleCA0MGViNGM1Li5hNjI0NmMwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYveGVuLmxkcy5TCisrKyBiL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMKQEAgLTMyMyw1ICszMjMs NSBAQCBBU1NFUlQoSVNfQUxJR05FRChfX2luaXRfZW5kLCAgIFBBR0VfU0laRSksICJfX2luaXRf ZW5kIG1pc2FsaWduZWQiKQogCiBBU1NFUlQoSVNfQUxJR05FRCh0cmFtcG9saW5lX3N0YXJ0LCA0 KSwgInRyYW1wb2xpbmVfc3RhcnQgbWlzYWxpZ25lZCIpCiBBU1NFUlQoSVNfQUxJR05FRCh0cmFt cG9saW5lX2VuZCwgICA0KSwgInRyYW1wb2xpbmVfZW5kIG1pc2FsaWduZWQiKQotQVNTRVJUKElT X0FMSUdORUQoX19ic3Nfc3RhcnQsICAgICAgNCksICJfX2Jzc19zdGFydCBtaXNhbGlnbmVkIikK LUFTU0VSVChJU19BTElHTkVEKF9fYnNzX2VuZCwgICAgICAgIDQpLCAiX19ic3NfZW5kIG1pc2Fs aWduZWQiKQorQVNTRVJUKElTX0FMSUdORUQoX19ic3Nfc3RhcnQsICAgICAgOCksICJfX2Jzc19z dGFydCBtaXNhbGlnbmVkIikKK0FTU0VSVChJU19BTElHTkVEKF9fYnNzX2VuZCwgICAgICAgIDgp LCAiX19ic3NfZW5kIG1pc2FsaWduZWQiKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9lZmkvYm9v dC5jIGIveGVuL2NvbW1vbi9lZmkvYm9vdC5jCmluZGV4IDQ4ZWY4YWQuLjhkODEwNjkgMTAwNjQ0 Ci0tLSBhL3hlbi9jb21tb24vZWZpL2Jvb3QuYworKysgYi94ZW4vY29tbW9uL2VmaS9ib290LmMK QEAgLTc5LDYgKzc5LDE3IEBAIHN0YXRpYyBzaXplX3Qgd3N0cmxlbihjb25zdCBDSEFSMTYgKiBz KTsKIHN0YXRpYyBpbnQgc2V0X2NvbG9yKHUzMiBtYXNrLCBpbnQgYnBwLCB1OCAqcG9zLCB1OCAq c3opOwogc3RhdGljIGJvb2xfdCBtYXRjaF9ndWlkKGNvbnN0IEVGSV9HVUlEICpndWlkMSwgY29u c3QgRUZJX0dVSUQgKmd1aWQyKTsKIAorc3RhdGljIHZvaWQgZWZpX2luaXQoRUZJX0hBTkRMRSBJ bWFnZUhhbmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpOworc3RhdGljIHZvaWQg ZWZpX2NvbnNvbGVfc2V0X21vZGUodm9pZCk7CitzdGF0aWMgRUZJX0dSQVBISUNTX09VVFBVVF9Q Uk9UT0NPTCAqZWZpX2dldF9nb3Aodm9pZCk7CitzdGF0aWMgVUlOVE4gZWZpX2ZpbmRfZ29wX21v ZGUoRUZJX0dSQVBISUNTX09VVFBVVF9QUk9UT0NPTCAqZ29wLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFVJTlROIGNvbHMsIFVJTlROIHJvd3MsIFVJTlROIGRlcHRoKTsKK3N0YXRp YyB2b2lkIGVmaV90YWJsZXModm9pZCk7CitzdGF0aWMgdm9pZCBzZXR1cF9lZmlfcGNpKHZvaWQp Oworc3RhdGljIHZvaWQgZWZpX3ZhcmlhYmxlcyh2b2lkKTsKK3N0YXRpYyB2b2lkIGVmaV9zZXRf Z29wX21vZGUoRUZJX0dSQVBISUNTX09VVFBVVF9QUk9UT0NPTCAqZ29wLCBVSU5UTiBnb3BfbW9k ZSk7CitzdGF0aWMgdm9pZCBlZmlfZXhpdF9ib290KEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsIEVG SV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKTsKKwogc3RhdGljIGNvbnN0IEVGSV9CT09UX1NF UlZJQ0VTICpfX2luaXRkYXRhIGVmaV9iczsKIHN0YXRpYyBVSU5UMzIgX19pbml0ZGF0YSBlZmlf YnNfcmV2aXNpb247CiBzdGF0aWMgRUZJX0hBTkRMRSBfX2luaXRkYXRhIGVmaV9paDsKLS0gCjEu Ny4xMC40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==