From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v8 07/13] x86: add multiboot2 protocol support for EFI platforms Date: Thu, 29 Sep 2016 00:51:26 +0200 Message-ID: <1475103092-27893-8-git-send-email-daniel.kiper@oracle.com> References: <1475103092-27893-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 1bpNiG-0004R0-Nt for xen-devel@lists.xenproject.org; Wed, 28 Sep 2016 22:52:28 +0000 In-Reply-To: <1475103092-27893-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, 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 LQp2OCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHVzZSBfX2Jzc19zdGFydCglcmlwKS9fX2Jz c19lbmQoJXJpcCkgaW5zdGVhZCBvZgogICAgIG9mIC5zdGFydG9mLiguYnNzKSglcmlwKS8kLnNp emVvZi4oLmJzcykgYmVjYXVzZQogICAgIGxhdHRlciBpcyBub3QgdGVzdGVkIGV4dGVuc2l2ZWx5 IGluIGRpZmZlcmVudAogICAgIGJ1aWx0IGVudmlyb25tZW50cyB5ZXQKICAgICAoc3VnZ2VzdGVk IGJ5IEFuZHJldyBDb29wZXIpLAogICAtIGZpeCBtdWx0aWJvb3QyIGRhdGEgc2Nhbm5pbmcgbG9v cCBpbiB4ODZfMzIgY29kZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGFk ZCBjaGVjayBmb3IgZXh0cmEgbWVtIGZvciBtYmkgZGF0YSBpZiBYZW4gaXMgbG9hZGVkCiAgICAg dmlhIG11bHRpYm9vdDIgcHJvdG9jb2wgb24gRUZJIHBsYXRmb3JtCiAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpLgoKdjcgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBkbyBub3QgYWxsb2Nh dGUgdHdpY2UgbWVtb3J5IGZvciB0cmFtcG9saW5lIGlmIHdlIHdlcmUKICAgICBsb2FkZWQgdmlh IG11bHRpYm9vdDIgcHJvdG9jb2wgb24gRUZJIHBsYXRmb3JtLAogICAtIHdyYXAgbG9uZyBsaW5l CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwog ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjYgLSBzdWdnZXN0aW9ucy9maXhlczoK ICAgLSBpbXByb3ZlIGxhYmVsIG5hbWVzIGluIGFzc2VtYmx5CiAgICAgZXJyb3IgcHJpbnRpbmcg Y29kZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVu dHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB2YXJpb3VzIG1pbm9yIGNs ZWFudXBzIGFuZCBmaXhlcwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjQgLSBz dWdnZXN0aW9ucy9maXhlczoKICAgLSByZW1vdmUgcmVkdW5kYW50IEJTUyBhbGlnbm1lbnQsCiAg IC0gdXBkYXRlIEJTUyBhbGlnbm1lbnQgY2hlY2ssCiAgIC0gdXNlIF9fc2V0X2JpdCgpIGluc3Rl YWQgb2Ygc2V0X2JpdCgpIGlmIHBvc3NpYmxlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCksCiAgIC0gY2FsbCBlZmlfYXJjaF9jcHUoKSBmcm9tIGVmaV9tdWx0aWJvb3QyKCkKICAgICBl dmVuIGlmIHRoZSBzYW1lIHdvcmsgaXMgZG9uZSBsYXRlciBpbgogICAgIG90aGVyIHBsYWNlIHJp Z2h0IG5vdwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHhlbi9hcmNoL3g4 Ni9lZmkvc3R1Yi5jOmVmaV9tdWx0aWJvb3QyKCkKICAgICBmYWlsIHByb3Blcmx5IG9uIEVGSSBw bGF0Zm9ybXMsCiAgIC0gZG8gbm90IHJlYWQgZGF0YSBiZXlvbmQgdGhlIGVuZCBvZiBtdWx0aWJv b3QyCiAgICAgaW5mb3JtYXRpb24gaW4geGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCiAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlIDMyLWJpdCByZWdpc3RlcnMgaW4geDg2 XzY0IGNvZGUgaWYgcG9zc2libGUKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAg LSBtdWx0aWJvb3QyIGluZm9ybWF0aW9uIGFkZHJlc3MgaXMgNjQtYml0CiAgICAgaW4geDg2XzY0 IGNvZGUsIHNvLCB0cmVhdCBpdCBpcyBhcyBpcwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAtIHVzZSBjbW92Y2MgaWYgcG9zc2libGUsCiAgIC0gbGVhdmUgb25seSBvbmUgc3Bh Y2UgYmV0d2VlbiByZXAgYW5kIHN0b3NxCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCks CiAgIC0gaW1wcm92ZSBlcnJvciBoYW5kbGluZywKICAgLSBpbXByb3ZlIGVhcmx5IGVycm9yIG1l c3NhZ2VzLAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgZWFy bHkgZXJyb3IgbWVzc2FnZXMgcHJpbnRpbmcgY29kZSwKICAgLSBpbXByb3ZlIGxhYmVsIG5hbWVz CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwog ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHZhcmlvdXMgbWlub3IgY2xlYW51 cHMuCgp2MyAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHRha2UgaW50byBhY2NvdW50IGFsaWdu bWVudCB3aGVuIHNraXBwaW5nIG11bHRpYm9vdDIgZml4ZWQgcGFydAogICAgIChzdWdnZXN0ZWQg YnkgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKSwKICAgLSBpbXByb3ZlIHNlZ21lbnQgcmVnaXN0ZXJz IGluaXRpYWxpemF0aW9uCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1w cm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2ggYW5kIEtvbnJhZCBS emVzenV0ZWsgV2lsayksCiAgIC0gaW1wcm92ZSBjb21taXQgbWVzc2FnZQogICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjIgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBnZW5lcmF0 ZSBtdWx0aWJvb3QyIGhlYWRlciB1c2luZyBtYWNyb3MKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKSwKICAgLSBzd2l0Y2ggQ1BVIHRvIHg4Nl8zMiBtb2RlIGJlZm9yZQogICAgIGp1bXBp bmcgdG8gMzItYml0IGNvZGUKICAgICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBDb29wZXIpLAogICAt IHJlZHVjZSBjb2RlIGNoYW5nZXMgdG8gaW5jcmVhc2UgcGF0Y2ggcmVhZGFiaWxpdHkKICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaWdub3JlIE1VTFRJQk9PVDJfVEFHX1RZUEVf QkFTSUNfTUVNSU5GTyB0YWcgb24gRUZJIHBsYXRmb3JtCiAgICAgYW5kIGZpbmQgb24gbXkgb3du IG11bHRpYm9vdDIubWVtX2xvd2VyIHZhbHVlLAogICAtIHN0b3AgZXhlY3V0aW9uIGlmIEVGSSBw bGF0Zm9ybSBpcyBkZXRlY3RlZAogICAgIGluIGxlZ2FjeSBCSU9TIHBhdGguCi0tLQogeGVuL2Fy Y2gveDg2L2Jvb3QvaGVhZC5TICAgICAgICAgIHwgIDI2MCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tCiB4ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmggICAgICAgfCAgIDU0 ICsrKysrKystCiB4ZW4vYXJjaC94ODYvZWZpL3N0dWIuYyAgICAgICAgICAgfCAgIDM4ICsrKysr KwogeGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jIHwgICAgMiArCiB4ZW4vYXJjaC94 ODYveGVuLmxkcy5TICAgICAgICAgICAgfCAgICA0ICstCiB4ZW4vY29tbW9uL2VmaS9ib290LmMg ICAgICAgICAgICAgfCAgIDExICsrCiA2IGZpbGVzIGNoYW5nZWQsIDM0NiBpbnNlcnRpb25zKCsp LCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMg Yi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKaW5kZXggMzgzZmY3OS4uM2M0YjFlMiAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290L2hl YWQuUwpAQCAtODksNiArODksMTMgQEAgbXVsdGlib290Ml9oZWFkZXJfc3RhcnQ6CiAgICAgICAg ICAgICAgICAgICAgMCwgLyogTnVtYmVyIG9mIHRoZSBsaW5lcyAtIG5vIHByZWZlcmVuY2UuICov IFwKICAgICAgICAgICAgICAgICAgICAwICAvKiBOdW1iZXIgb2YgYml0cyBwZXIgcGl4ZWwgLSBu byBwcmVmZXJlbmNlLiAqLwogCisgICAgICAgIC8qIEluaGliaXQgYm9vdGxvYWRlciBmcm9tIGNh bGxpbmcgRXhpdEJvb3RTZXJ2aWNlcygpLiAqLworICAgICAgICBtYjJodF9pbml0IE1CMl9IVChF RklfQlMpLCBNQjJfSFQoT1BUSU9OQUwpCisKKyAgICAgICAgLyogRUZJNjQgZW50cnkgcG9pbnQu ICovCisgICAgICAgIG1iMmh0X2luaXQgTUIyX0hUKEVOVFJZX0FERFJFU1NfRUZJNjQpLCBNQjJf SFQoT1BUSU9OQUwpLCBcCisgICAgICAgICAgICAgICAgICAgc3ltX3BoeXMoX19lZmk2NF9zdGFy dCkKKwogICAgICAgICAvKiBNdWx0aWJvb3QyIGhlYWRlciBlbmQgdGFnLiAqLwogICAgICAgICBt YjJodF9pbml0IE1CMl9IVChFTkQpLCBNQjJfSFQoUkVRVUlSRUQpCiAuTG11bHRpYm9vdDJfaGVh ZGVyX2VuZDoKQEAgLTEwMCwyMCArMTA3LDQ5IEBAIG11bHRpYm9vdDJfaGVhZGVyX3N0YXJ0Ogog Z2R0X2Jvb3RfZGVzY3I6CiAgICAgICAgIC53b3JkICAgNio4LTEKICAgICAgICAgLmxvbmcgICBz eW1fcGh5cyh0cmFtcG9saW5lX2dkdCkKKyAgICAgICAgLmxvbmcgICAwIC8qIE5lZWRlZCBmb3Ig NjQtYml0IGxnZHQgKi8KKworY3MzMl9zd2l0Y2hfYWRkcjoKKyAgICAgICAgLmxvbmcgICBzeW1f cGh5cyhjczMyX3N3aXRjaCkKKyAgICAgICAgLndvcmQgICBCT09UX0NTMzIKKworICAgICAgICAu YWxpZ24gNAordmdhX3RleHRfYnVmZmVyOgorICAgICAgICAubG9uZyAgIDB4YjgwMDAKIAogLkxi YWRfY3B1X21zZzogLmFzY2l6ICJFUlI6IE5vdCBhIDY0LWJpdCBDUFUhIgogLkxiYWRfbGRyX21z ZzogLmFzY2l6ICJFUlI6IE5vdCBhIE11bHRpYm9vdCBib290bG9hZGVyISIKKy5MYmFkX2xkcl9u YnM6IC5hc2NpeiAiRVJSOiBCb290bG9hZGVyIHNodXRkb3duIEVGSSB4NjQgYm9vdCBzZXJ2aWNl cyEiCisuTGJhZF9sZHJfbnN0OiAuYXNjaXogIkVSUjogRUZJIFN5c3RlbVRhYmxlIGlzIG5vdCBw cm92aWRlZCBieSBib290bG9hZGVyISIKKy5MYmFkX2xkcl9uaWg6IC5hc2NpeiAiRVJSOiBFRkkg SW1hZ2VIYW5kbGUgaXMgbm90IHByb3ZpZGVkIGJ5IGJvb3Rsb2FkZXIhIgorLkxiYWRfZWZpX21z ZzogLmFzY2l6ICJFUlI6IEVGSSBJQS0zMiBwbGF0Zm9ybXMgYXJlIG5vdCBzdXBwb3J0ZWQhIgog CiAgICAgICAgIC5zZWN0aW9uIC5pbml0LnRleHQsICJheCIsIEBwcm9nYml0cwogCiBiYWRfY3B1 OgogICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRfY3B1X21zZykpLCVlc2kgIyBFcnJv ciBtZXNzYWdlCi0gICAgICAgIGptcCAgICAgcHJpbnRfZXJyCisgICAgICAgIGptcCAgICAgLkxn ZXRfdnRiCiBub3RfbXVsdGlib290OgogICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRf bGRyX21zZykpLCVlc2kgIyBFcnJvciBtZXNzYWdlCi1wcmludF9lcnI6Ci0gICAgICAgIG1vdiAg ICAgJDB4QjgwMDAsJWVkaSAgIyBWR0EgZnJhbWVidWZmZXIKLTE6ICAgICAgbW92ICAgICAoJWVz aSksJWJsCisgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCisuTG1iMl9ub19zdDoKKyAgICAgICAg bW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uc3QpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQor ICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0YgorLkxtYjJfbm9faWg6CisgICAgICAgIG1vdiAgICAg JChzeW1fcGh5cyguTGJhZF9sZHJfbmloKSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAg am1wICAgICAuTGdldF92dGIKKy5MbWIyX25vX2JzOgorICAgICAgICBtb3YgICAgICQoc3ltX3Bo eXMoLkxiYWRfbGRyX25icykpLCVlc2kgIyBFcnJvciBtZXNzYWdlCisgICAgICAgIHhvciAgICAg JWVkaSwlZWRpICAgICAgICAgICAgICAgICAgICAgICAjIE5vIFZHQSB0ZXh0IGJ1ZmZlcgorICAg ICAgICBqbXAgICAgIC5Mc2VuZF9jaHIKKy5MbWIyX2VmaV9pYV8zMjoKKyAgICAgICAgbW92ICAg ICAkKHN5bV9waHlzKC5MYmFkX2VmaV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAg ICB4b3IgICAgICVlZGksJWVkaSAgICAgICAgICAgICAgICAgICAgICAgIyBObyBWR0EgdGV4dCBi dWZmZXIKKyAgICAgICAgam1wICAgICAuTHNlbmRfY2hyCisuTGdldF92dGI6CisgICAgICAgIG1v diAgICAgc3ltX3BoeXModmdhX3RleHRfYnVmZmVyKSwlZWRpCisuTHNlbmRfY2hyOgorICAgICAg ICBtb3YgICAgICglZXNpKSwlYmwKICAgICAgICAgdGVzdCAgICAlYmwsJWJsICAgICAgICAjIFRl cm1pbmF0ZSBvbiAnXDAnIHNlbnRpbmVsCiAgICAgICAgIGplICAgICAgLkxoYWx0CiAgICAgICAg IG1vdiAgICAgJDB4M2Y4KzUsJWR4ICAgIyBVQVJUIExpbmUgU3RhdHVzIFJlZ2lzdGVyCkBAIC0x MjMsMTMgKzE1OSwxODIgQEAgcHJpbnRfZXJyOgogICAgICAgICBtb3YgICAgICQweDNmOCswLCVk eCAgICMgVUFSVCBUcmFuc21pdCBIb2xkaW5nIFJlZ2lzdGVyCiAgICAgICAgIG1vdiAgICAgJWJs LCVhbAogICAgICAgICBvdXQgICAgICVhbCwlZHggICAgICAgICMgU2VuZCBhIGNoYXJhY3RlciBv dmVyIHRoZSBzZXJpYWwgbGluZQotICAgICAgICBtb3ZzYiAgICAgICAgICAgICAgICAgICMgV3Jp dGUgYSBjaGFyYWN0ZXIgdG8gdGhlIFZHQSBmcmFtZWJ1ZmZlcgorICAgICAgICB0ZXN0ICAgICVl ZGksJWVkaSAgICAgICMgSXMgdGhlIFZHQSB0ZXh0IGJ1ZmZlciBhdmFpbGFibGU/CisgICAgICAg IGp6ICAgICAgLkxzZW5kX2NocgorICAgICAgICBtb3ZzYiAgICAgICAgICAgICAgICAgICMgV3Jp dGUgYSBjaGFyYWN0ZXIgdG8gdGhlIFZHQSB0ZXh0IGJ1ZmZlcgogICAgICAgICBtb3YgICAgICQ3 LCVhbAotICAgICAgICBzdG9zYiAgICAgICAgICAgICAgICAgICMgV3JpdGUgYW4gYXR0cmlidXRl IHRvIHRoZSBWR0EgZnJhbWVidWZmZXIKLSAgICAgICAgam1wICAgICAxYgorICAgICAgICBzdG9z YiAgICAgICAgICAgICAgICAgICMgV3JpdGUgYW4gYXR0cmlidXRlIHRvIHRoZSBWR0EgdGV4dCBi dWZmZXIKKyAgICAgICAgam1wICAgICAuTHNlbmRfY2hyCiAuTGhhbHQ6IGhsdAogICAgICAgICBq bXAgICAgIC5MaGFsdAogCisgICAgICAgIC5jb2RlNjQKKworX19lZmk2NF9zdGFydDoKKyAgICAg ICAgY2xkCisKKyAgICAgICAgLyogVkdBIGlzIG5vdCBhdmFpbGFibGUgb24gRUZJIHBsYXRmb3Jt cy4gKi8KKyAgICAgICAgbW92bCAgICQwLHZnYV90ZXh0X2J1ZmZlciglcmlwKQorCisgICAgICAg IC8qIENoZWNrIGZvciBNdWx0aWJvb3QyIGJvb3Rsb2FkZXIuICovCisgICAgICAgIGNtcCAgICAg JE1VTFRJQk9PVDJfQk9PVExPQURFUl9NQUdJQywlZWF4CisgICAgICAgIGplICAgICAgLkxlZmlf bXVsdGlib290Ml9wcm90bworCisgICAgICAgIC8qIEp1bXAgdG8gbm90X211bHRpYm9vdCBhZnRl ciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLworICAgICAgICBsZWEgICAgIG5vdF9t dWx0aWJvb3QoJXJpcCksJWVkaQorICAgICAgICBqbXAgICAgIHg4Nl8zMl9zd2l0Y2gKKworLkxl ZmlfbXVsdGlib290Ml9wcm90bzoKKyAgICAgICAgLyogWmVybyBFRkkgU3lzdGVtVGFibGUgYW5k IEVGSSBJbWFnZUhhbmRsZSBhZGRyZXNzZXMuICovCisgICAgICAgIHhvciAgICAgJWVzaSwlZXNp CisgICAgICAgIHhvciAgICAgJWVkaSwlZWRpCisKKyAgICAgICAgLyogU2tpcCBNdWx0aWJvb3Qy IGluZm9ybWF0aW9uIGZpeGVkIHBhcnQuICovCisgICAgICAgIGxlYSAgICAgKE1CMl9maXhlZF9z aXplb2YrTVVMVElCT09UMl9UQUdfQUxJR04tMSkoJXJieCksJWVjeAorICAgICAgICBhbmQgICAg ICR+KE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKKworMDoKKyAgICAgICAgLyogQ2hlY2sg TXVsdGlib290MiBpbmZvcm1hdGlvbiB0b3RhbCBzaXplLiAqLworICAgICAgICBtb3YgICAgICVl Y3gsJXI4ZAorICAgICAgICBzdWIgICAgICVlYngsJXI4ZAorICAgICAgICBjbXAgICAgICVyOGQs TUIyX2ZpeGVkX3RvdGFsX3NpemUoJXJieCkKKyAgICAgICAgamJlICAgICBydW5fYnMKKworICAg ICAgICAvKiBBcmUgRUZJIGJvb3Qgc2VydmljZXMgYXZhaWxhYmxlPyAqLworICAgICAgICBjbXBs ICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSV9CUyxNQjJfdGFnX3R5cGUoJXJjeCkKKyAgICAg ICAgam5lICAgICAxZgorCisgICAgICAgIC8qCisgICAgICAgICAqIFllcywgc3RvcmUgdGhhdCBp bmZvIGluIHNraXBfcmVhbG1vZGUgdmFyaWFibGUuIEkgYWdyZWUgdGhhdAorICAgICAgICAgKiBp dHMgbmFtZSBpcyBhIGJpdCB1bmZvcnR1bmF0ZSBpbiB0aGlzIGNvbnRleHQsIGhvd2V2ZXIsIGJ5 IHRoZQorICAgICAgICAgKiB3YXkgd2UgZGlzYWJsZSByZWFsIG1vZGUgYW5kIG90aGVyIGxlZ2Fj eSBzdHVmZiB3aGljaCBzaG91bGQKKyAgICAgICAgICogbm90IGJlIHJ1biBvbiBFRkkgcGxhdGZv cm1zLgorICAgICAgICAgKi8KKyAgICAgICAgaW5jYiAgICBza2lwX3JlYWxtb2RlKCVyaXApCisg ICAgICAgIGptcCAgICAgOWYKKworMToKKyAgICAgICAgLyogR2V0IEVGSSBTeXN0ZW1UYWJsZSBh ZGRyZXNzIGZyb20gTXVsdGlib290MiBpbmZvcm1hdGlvbi4gKi8KKyAgICAgICAgY21wbCAgICAk TVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NCxNQjJfdGFnX3R5cGUoJXJjeCkKKyAgICAgICAgY21v dmUgICBNQjJfZWZpNjRfc3QoJXJjeCksJXJzaQorICAgICAgICBqZSAgICAgIDlmCisKKyAgICAg ICAgLyogR2V0IEVGSSBJbWFnZUhhbmRsZSBhZGRyZXNzIGZyb20gTXVsdGlib290MiBpbmZvcm1h dGlvbi4gKi8KKyAgICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NF9JSCxN QjJfdGFnX3R5cGUoJXJjeCkKKyAgICAgICAgY21vdmUgICBNQjJfZWZpNjRfaWgoJXJjeCksJXJk aQorICAgICAgICBqZSAgICAgIDlmCisKKyAgICAgICAgLyogSXMgaXQgdGhlIGVuZCBvZiBNdWx0 aWJvb3QyIGluZm9ybWF0aW9uPyAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19U WVBFX0VORCxNQjJfdGFnX3R5cGUoJXJjeCkKKyAgICAgICAgamUgICAgICBydW5fYnMKKworOToK KyAgICAgICAgLyogR28gdG8gbmV4dCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIHRhZy4gKi8KKyAg ICAgICAgYWRkICAgICBNQjJfdGFnX3NpemUoJXJjeCksJWVjeAorICAgICAgICBhZGQgICAgICQo TVVMVElCT09UMl9UQUdfQUxJR04tMSksJWVjeAorICAgICAgICBhbmQgICAgICR+KE1VTFRJQk9P VDJfVEFHX0FMSUdOLTEpLCVlY3gKKyAgICAgICAgam1wICAgICAwYgorCitydW5fYnM6CisgICAg ICAgIC8qIEFyZSBFRkkgYm9vdCBzZXJ2aWNlcyBhdmFpbGFibGU/ICovCisgICAgICAgIGNtcGIg ICAgJDAsc2tpcF9yZWFsbW9kZSglcmlwKQorICAgICAgICBqbnogICAgIDBmCisKKyAgICAgICAg LyogSnVtcCB0byAuTG1iMl9ub19icyBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2Rl LiAqLworICAgICAgICBsZWEgICAgIC5MbWIyX25vX2JzKCVyaXApLCVlZGkKKyAgICAgICAgam1w ICAgICB4ODZfMzJfc3dpdGNoCisKKzA6CisgICAgICAgIC8qIElzIEVGSSBTeXN0ZW1UYWJsZSBh ZGRyZXNzIHByb3ZpZGVkIGJ5IGJvb3QgbG9hZGVyPyAqLworICAgICAgICB0ZXN0ICAgICVyc2ks JXJzaQorICAgICAgICBqbnogICAgIDFmCisKKyAgICAgICAgLyogSnVtcCB0byAuTG1iMl9ub19z dCBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLworICAgICAgICBsZWEgICAg IC5MbWIyX25vX3N0KCVyaXApLCVlZGkKKyAgICAgICAgam1wICAgICB4ODZfMzJfc3dpdGNoCisK KzE6CisgICAgICAgIC8qIElzIEVGSSBJbWFnZUhhbmRsZSBhZGRyZXNzIHByb3ZpZGVkIGJ5IGJv b3QgbG9hZGVyPyAqLworICAgICAgICB0ZXN0ICAgICVyZGksJXJkaQorICAgICAgICBqbnogICAg IDJmCisKKyAgICAgICAgLyogSnVtcCB0byAuTG1iMl9ub19paCBhZnRlciBzd2l0Y2hpbmcgQ1BV IHRvIHg4Nl8zMiBtb2RlLiAqLworICAgICAgICBsZWEgICAgIC5MbWIyX25vX2loKCVyaXApLCVl ZGkKKyAgICAgICAgam1wICAgICB4ODZfMzJfc3dpdGNoCisKKzI6CisgICAgICAgIHB1c2ggICAg JXJheAorICAgICAgICBwdXNoICAgICVyZGkKKworICAgICAgICAvKgorICAgICAgICAgKiBJbml0 aWFsaXplIEJTUyAobm8gbmFzdHkgc3VycHJpc2VzISkuCisgICAgICAgICAqIEl0IG11c3QgYmUg ZG9uZSBlYXJsaWVyIHRoYW4gaW4gQklPUyBjYXNlCisgICAgICAgICAqIGJlY2F1c2UgZWZpX211 bHRpYm9vdDIoKSB0b3VjaGVzIGl0LgorICAgICAgICAgKi8KKyAgICAgICAgbGVhICAgICBfX2Jz c19zdGFydCglcmlwKSwlZWRpCisgICAgICAgIGxlYSAgICAgX19ic3NfZW5kKCVyaXApLCVlY3gK KyAgICAgICAgc3ViICAgICAlZWRpLCVlY3gKKyAgICAgICAgc2hyICAgICAkMywlZWN4CisgICAg ICAgIHhvciAgICAgJWVheCwlZWF4CisgICAgICAgIHJlcCBzdG9zcQorCisgICAgICAgIHBvcCAg ICAgJXJkaQorCisgICAgICAgIC8qCisgICAgICAgICAqIGVmaV9tdWx0aWJvb3QyKCkgaXMgY2Fs bGVkIGFjY29yZGluZyB0byBTeXN0ZW0gViBBTUQ2NCBBQkk6CisgICAgICAgICAqICAgLSBJTjog JXJkaSAtIEVGSSBJbWFnZUhhbmRsZSwgJXJzaSAtIEVGSSBTeXN0ZW1UYWJsZSwKKyAgICAgICAg ICogICAtIE9VVDogJXJheCAtIGhpZ2hlc3QgdXNhYmxlIG1lbW9yeSBhZGRyZXNzIGJlbG93IDEg TWlCOworICAgICAgICAgKiAgICAgICAgICAgICAgICAgbWVtb3J5IGFib3ZlIHRoaXMgYWRkcmVz cyBpcyByZXNlcnZlZCBmb3IgdHJhbXBvbGluZTsKKyAgICAgICAgICogICAgICAgICAgICAgICAg IG1lbW9yeSBiZWxvdyB0aGlzIGFkZHJlc3MgaXMgdXNlZCBhcyBhIHN0b3JhZ2UgZm9yCisgICAg ICAgICAqICAgICAgICAgICAgICAgICBtYmkgc3RydWN0IGNyZWF0ZWQgaW4gcmVsb2MoKS4KKyAg ICAgICAgICoKKyAgICAgICAgICogTVVMVElCT09UMl9UQUdfVFlQRV9CQVNJQ19NRU1JTkZPIHRh ZyBpcyBub3QgcHJvdmlkZWQKKyAgICAgICAgICogb24gRUZJIHBsYXRmb3Jtcy4gSGVuY2UsIGl0 IGNvdWxkIG5vdCBiZSB1c2VkIGxpa2UKKyAgICAgICAgICogb24gbGVnYWN5IEJJT1MgcGxhdGZv cm1zLgorICAgICAgICAgKi8KKyAgICAgICAgY2FsbCAgICBlZmlfbXVsdGlib290MgorCisgICAg ICAgIC8qIENvbnZlcnQgbWVtb3J5IGFkZHJlc3MgdG8gYnl0ZXMvMTYgYW5kIHN0b3JlIGl0IGlu IHNhZmUgcGxhY2UuICovCisgICAgICAgIHNociAgICAgJDQsJWVheAorICAgICAgICBtb3YgICAg ICVlYXgsJWVjeAorCisgICAgICAgIHBvcCAgICAgJXJheAorCisgICAgICAgIC8qIEp1bXAgdG8g dHJhbXBvbGluZV9zZXR1cCBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLwor ICAgICAgICBsZWEgICAgIHRyYW1wb2xpbmVfc2V0dXAoJXJpcCksJWVkaQorCit4ODZfMzJfc3dp dGNoOgorICAgICAgICBjbGkKKworICAgICAgICAvKiBJbml0aWFsaXplIEdEVFIuICovCisgICAg ICAgIGxnZHQgICAgZ2R0X2Jvb3RfZGVzY3IoJXJpcCkKKworICAgICAgICAvKiBSZWxvYWQgY29k ZSBzZWxlY3Rvci4gKi8KKyAgICAgICAgbGptcGwgICAqY3MzMl9zd2l0Y2hfYWRkciglcmlwKQor CisgICAgICAgIC5jb2RlMzIKKworY3MzMl9zd2l0Y2g6CisgICAgICAgIC8qIEluaXRpYWxpemUg YmFzaWMgZGF0YSBzZWdtZW50cy4gKi8KKyAgICAgICAgbW92ICAgICAkQk9PVF9EUywlZWR4Cisg ICAgICAgIG1vdiAgICAgJWVkeCwlZHMKKyAgICAgICAgbW92ICAgICAlZWR4LCVlcworICAgICAg ICBtb3YgICAgICVlZHgsJXNzCisgICAgICAgIC8qICVlc3AgaXMgaW5pdGlhbGl6ZWQgbGF0ZXIu ICovCisKKyAgICAgICAgLyogTG9hZCBudWxsIGRlc2NyaXB0b3IgdG8gdW51c2VkIHNlZ21lbnQg cmVnaXN0ZXJzLiAqLworICAgICAgICB4b3IgICAgICVlZHgsJWVkeAorICAgICAgICBtb3YgICAg ICVlZHgsJWZzCisgICAgICAgIG1vdiAgICAgJWVkeCwlZ3MKKworICAgICAgICAvKiBEaXNhYmxl IHBhZ2luZy4gKi8KKyAgICAgICAgbW92ICAgICAlY3IwLCVlZHgKKyAgICAgICAgYW5kICAgICAk KH5YODZfQ1IwX1BHKSwlZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlY3IwCisKKyAgICAgICAg LyogSnVtcCB0byBlYXJsaWVyIGxvYWRlZCBhZGRyZXNzLiAqLworICAgICAgICBqbXAgICAgICol ZWRpCisKIF9fc3RhcnQ6CiAgICAgICAgIGNsZAogICAgICAgICBjbGkKQEAgLTE1Nyw3ICszNjIs NyBAQCBfX3N0YXJ0OgogCiAgICAgICAgIC8qIE5vdCBhdmFpbGFibGU/IEJEQSB2YWx1ZSB3aWxs IGJlIGZpbmUuICovCiAgICAgICAgIGNtb3ZueiAgTUJfbWVtX2xvd2VyKCVlYngpLCVlZHgKLSAg ICAgICAgam1wICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGptcCAgICAgdHJhbXBvbGlu ZV9iaW9zX3NldHVwCiAKIC5MbXVsdGlib290Ml9wcm90bzoKICAgICAgICAgLyogU2tpcCBNdWx0 aWJvb3QyIGluZm9ybWF0aW9uIGZpeGVkIHBhcnQuICovCkBAIC0xNjksMjQgKzM3NCwzMyBAQCBf X3N0YXJ0OgogICAgICAgICBtb3YgICAgICVlY3gsJWVkaQogICAgICAgICBzdWIgICAgICVlYngs JWVkaQogICAgICAgICBjbXAgICAgICVlZGksTUIyX2ZpeGVkX3RvdGFsX3NpemUoJWVieCkKLSAg ICAgICAgamJlICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGpiZSAgICAgdHJhbXBvbGlu ZV9iaW9zX3NldHVwCiAKICAgICAgICAgLyogR2V0IG1lbV9sb3dlciBmcm9tIE11bHRpYm9vdDIg aW5mb3JtYXRpb24uICovCiAgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfQkFT SUNfTUVNSU5GTyxNQjJfdGFnX3R5cGUoJWVjeCkKICAgICAgICAgY21vdmUgICBNQjJfbWVtX2xv d2VyKCVlY3gpLCVlZHgKLSAgICAgICAgamUgICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAg IGplICAgICAgOWYKKworICAgICAgICAvKiBFRkkgSUEtMzIgcGxhdGZvcm1zIGFyZSBub3Qgc3Vw cG9ydGVkLiAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTMyLE1C Ml90YWdfdHlwZSglZWN4KQorICAgICAgICBqZSAgICAgIC5MbWIyX2VmaV9pYV8zMgorCisgICAg ICAgIC8qIEJvb3Rsb2FkZXIgc2h1dGRvd24gRUZJIHg2NCBib290IHNlcnZpY2VzLiAqLworICAg ICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTY0LE1CMl90YWdfdHlwZSglZWN4 KQorICAgICAgICBqZSAgICAgIC5MbWIyX25vX2JzCiAKICAgICAgICAgLyogSXMgaXQgdGhlIGVu ZCBvZiBNdWx0aWJvb3QyIGluZm9ybWF0aW9uPyAqLwogICAgICAgICBjbXBsICAgICRNVUxUSUJP T1QyX1RBR19UWVBFX0VORCxNQjJfdGFnX3R5cGUoJWVjeCkKLSAgICAgICAgamUgICAgICB0cmFt cG9saW5lX3NldHVwCisgICAgICAgIGplICAgICAgdHJhbXBvbGluZV9iaW9zX3NldHVwCiAKKzk6 CiAgICAgICAgIC8qIEdvIHRvIG5leHQgTXVsdGlib290MiBpbmZvcm1hdGlvbiB0YWcuICovCiAg ICAgICAgIGFkZCAgICAgTUIyX3RhZ19zaXplKCVlY3gpLCVlY3gKICAgICAgICAgYWRkICAgICAk KE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKICAgICAgICAgYW5kICAgICAkfihNVUxUSUJP T1QyX1RBR19BTElHTi0xKSwlZWN4CiAgICAgICAgIGptcCAgICAgMGIKIAotdHJhbXBvbGluZV9z ZXR1cDoKK3RyYW1wb2xpbmVfYmlvc19zZXR1cDoKICAgICAgICAgLyogU2V0IHVwIHRyYW1wb2xp bmUgc2VnbWVudCA2NGsgYmVsb3cgRUJEQSAqLwogICAgICAgICBtb3Z6d2wgIDB4NDBlLCVlY3gg ICAgICAgICAgLyogRUJEQSBzZWdtZW50ICovCiAgICAgICAgIGNtcCAgICAgJDB4YTAwMCwlZWN4 ICAgICAgICAvKiBzYW5pdHkgY2hlY2sgKGhpZ2gpICovCkBAIC0yMDIsMTYgKzQxNiwxOSBAQCB0 cmFtcG9saW5lX3NldHVwOgogICAgICAgICAgKiBtdWx0aWJvb3Qgc3RydWN0dXJlIChpZiBhdmFp bGFibGUpIGFuZCB1c2UgdGhlIHNtYWxsZXN0LgogICAgICAgICAgKi8KICAgICAgICAgY21wICAg ICAkMHgxMDAsJWVkeCAgICAgICAgIC8qIGlzIHRoZSBtdWx0aWJvb3QgdmFsdWUgdG9vIHNtYWxs PyAqLwotICAgICAgICBqYiAgICAgIDJmICAgICAgICAgICAgICAgICAgLyogaWYgc28sIGRvIG5v dCB1c2UgaXQgKi8KKyAgICAgICAgamIgICAgICB0cmFtcG9saW5lX3NldHVwICAgIC8qIGlmIHNv LCBkbyBub3QgdXNlIGl0ICovCiAgICAgICAgIHNobCAgICAgJDEwLTQsJWVkeAogICAgICAgICBj bXAgICAgICVlY3gsJWVkeCAgICAgICAgICAgLyogY29tcGFyZSB3aXRoIEJEQSB2YWx1ZSAqLwog ICAgICAgICBjbW92YiAgICVlZHgsJWVjeCAgICAgICAgICAgLyogYW5kIHVzZSB0aGUgc21hbGxl ciAqLwogCi0yOiAgICAgIC8qIFJlc2VydmUgNjRrYiBmb3IgdGhlIHRyYW1wb2xpbmUgKi8KKyAg ICAgICAgLyogUmVzZXJ2ZSA2NGtiIGZvciB0aGUgdHJhbXBvbGluZS4gKi8KICAgICAgICAgc3Vi ICAgICAkMHgxMDAwLCVlY3gKIAogICAgICAgICAvKiBGcm9tIGFyY2gveDg2L3NtcGJvb3QuYzog c3RhcnRfZWlwIGhhZCBiZXR0ZXIgYmUgcGFnZS1hbGlnbmVkISAqLwogICAgICAgICB4b3IgICAg ICVjbCwgJWNsCisKK3RyYW1wb2xpbmVfc2V0dXA6CisgICAgICAgIC8qIFNhdmUgdHJhbXBvbGlu ZSBhZGRyZXNzIGZvciBsYXRlciB1c2UuICovCiAgICAgICAgIHNobCAgICAgJDQsICVlY3gKICAg ICAgICAgbW92ICAgICAlZWN4LHN5bV9waHlzKHRyYW1wb2xpbmVfcGh5cykKIApAQCAtMjIzLDcg KzQ0MCwxNCBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBjYWxsICAgIHJlbG9jCiAgICAg ICAgIG1vdiAgICAgJWVheCxzeW1fcGh5cyhtdWx0aWJvb3RfcHRyKQogCi0gICAgICAgIC8qIElu aXRpYWxpemUgQlNTIChubyBuYXN0eSBzdXJwcmlzZXMhKSAqLworICAgICAgICAvKgorICAgICAg ICAgKiBEbyBub3QgemVybyBCU1Mgb24gRUZJIHBsYXRmb3JtIGhlcmUuCisgICAgICAgICAqIEl0 IHdhcyBpbml0aWFsaXplZCBlYXJsaWVyLgorICAgICAgICAgKi8KKyAgICAgICAgY21wYiAgICAk MCxzeW1fcGh5cyhza2lwX3JlYWxtb2RlKQorICAgICAgICBqbnogICAgIDFmCisKKyAgICAgICAg LyogSW5pdGlhbGl6ZSBCU1MgKG5vIG5hc3R5IHN1cnByaXNlcyEpLiAqLwogICAgICAgICBtb3Yg ICAgICRzeW1fcGh5cyhfX2Jzc19zdGFydCksJWVkaQogICAgICAgICBtb3YgICAgICRzeW1fcGh5 cyhfX2Jzc19lbmQpLCVlY3gKICAgICAgICAgc3ViICAgICAlZWRpLCVlY3gKQEAgLTIzMSw2ICs0 NTUsNyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBzaHIgICAgICQyLCVlY3gKICAgICAg ICAgcmVwIHN0b3NsCiAKKzE6CiAgICAgICAgIC8qIEludGVycm9nYXRlIENQVSBleHRlbmRlZCBm ZWF0dXJlcyB2aWEgQ1BVSUQuICovCiAgICAgICAgIG1vdiAgICAgJDB4ODAwMDAwMDAsJWVheAog ICAgICAgICBjcHVpZApAQCAtMjgyLDggKzUwNywxMyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAg ICAgICBjbXAgICAgICRzeW1fcGh5cyhfX3RyYW1wb2xpbmVfc2VnX3N0b3ApLCVlZGkKICAgICAg ICAgamIgICAgICAxYgogCisgICAgICAgIC8qIERvIG5vdCBwYXJzZSBjb21tYW5kIGxpbmUgb24g RUZJIHBsYXRmb3JtIGhlcmUuICovCisgICAgICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoc2tpcF9y ZWFsbW9kZSkKKyAgICAgICAgam56ICAgICAxZgorCiAgICAgICAgIGNhbGwgICAgY21kbGluZV9w YXJzZV9lYXJseQogCisxOgogICAgICAgICAvKiBTd2l0Y2ggdG8gbG93LW1lbW9yeSBzdGFjay4g ICovCiAgICAgICAgIG1vdiAgICAgc3ltX3BoeXModHJhbXBvbGluZV9waHlzKSwlZWRpCiAgICAg ICAgIGxlYSAgICAgMHgxMDAwMCglZWRpKSwlZXNwCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv ZWZpL2VmaS1ib290LmggYi94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgKaW5kZXggNjJjMDEw ZS4uZGM4NTdkOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oCisrKyBi L3hlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaApAQCAtMTQ2LDYgKzE0Niw4IEBAIHN0YXRpYyB2 b2lkIF9faW5pdCBlZmlfYXJjaF9wcm9jZXNzX21lbW9yeV9tYXAoRUZJX1NZU1RFTV9UQUJMRSAq U3lzdGVtVGFibGUsCiB7CiAgICAgc3RydWN0IGU4MjBlbnRyeSAqZTsKICAgICB1bnNpZ25lZCBp bnQgaTsKKyAgICAvKiBDaGVjayBmb3IgZXh0cmEgbWVtIGZvciBtYmkgZGF0YSBpZiBYZW4gaXMg bG9hZGVkIHZpYSBtdWx0aWJvb3QyIHByb3RvY29sLiAqLworICAgIFVJTlROIGV4dHJhX21lbSA9 IGVmaV9lbmFibGVkKEVGSV9MT0FERVIpID8gMCA6ICg2NCA8PCAxMCk7CiAKICAgICAvKiBQb3B1 bGF0ZSBFODIwIHRhYmxlIGFuZCBjaGVjayB0cmFtcG9saW5lIGFyZWEgYXZhaWxhYmlsaXR5LiAq LwogICAgIGUgPSBlODIwbWFwIC0gMTsKQEAgLTE2OCw3ICsxNzAsOCBAQCBzdGF0aWMgdm9pZCBf X2luaXQgZWZpX2FyY2hfcHJvY2Vzc19tZW1vcnlfbWFwKEVGSV9TWVNURU1fVEFCTEUgKlN5c3Rl bVRhYmxlLAogICAgICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCiAgICAgICAgIGNhc2UgRWZp Q29udmVudGlvbmFsTWVtb3J5OgogICAgICAgICAgICAgaWYgKCAhdHJhbXBvbGluZV9waHlzICYm IGRlc2MtPlBoeXNpY2FsU3RhcnQgKyBsZW4gPD0gMHgxMDAwMDAgJiYKLSAgICAgICAgICAgICAg ICAgbGVuID49IGNmZy5zaXplICYmIGRlc2MtPlBoeXNpY2FsU3RhcnQgKyBsZW4gPiBjZmcuYWRk ciApCisgICAgICAgICAgICAgICAgIGxlbiA+PSBjZmcuc2l6ZSArIGV4dHJhX21lbSAmJgorICAg ICAgICAgICAgICAgICBkZXNjLT5QaHlzaWNhbFN0YXJ0ICsgbGVuID4gY2ZnLmFkZHIgKQogICAg ICAgICAgICAgICAgIGNmZy5hZGRyID0gKGRlc2MtPlBoeXNpY2FsU3RhcnQgKyBsZW4gLSBjZmcu c2l6ZSkgJiBQQUdFX01BU0s7CiAgICAgICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KICAgICAg ICAgY2FzZSBFZmlMb2FkZXJDb2RlOgpAQCAtMjEwLDEyICsyMTMsMTQgQEAgc3RhdGljIHZvaWQg Kl9faW5pdCBlZmlfYXJjaF9hbGxvY2F0ZV9tbWFwX2J1ZmZlcihVSU5UTiBtYXBfc2l6ZSkKIAog c3RhdGljIHZvaWQgX19pbml0IGVmaV9hcmNoX3ByZV9leGl0X2Jvb3Qodm9pZCkKIHsKLSAgICBp ZiAoICF0cmFtcG9saW5lX3BoeXMgKQotICAgIHsKLSAgICAgICAgaWYgKCAhY2ZnLmFkZHIgKQot ICAgICAgICAgICAgYmxleGl0KEwiTm8gbWVtb3J5IGZvciB0cmFtcG9saW5lIik7CisgICAgaWYg KCB0cmFtcG9saW5lX3BoeXMgKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoICFjZmcuYWRk ciApCisgICAgICAgIGJsZXhpdChMIk5vIG1lbW9yeSBmb3IgdHJhbXBvbGluZSIpOworCisgICAg aWYgKCBlZmlfZW5hYmxlZChFRklfTE9BREVSKSApCiAgICAgICAgIHJlbG9jYXRlX3RyYW1wb2xp bmUoY2ZnLmFkZHIpOwotICAgIH0KIH0KIAogc3RhdGljIHZvaWQgX19pbml0IG5vcmV0dXJuIGVm aV9hcmNoX3Bvc3RfZXhpdF9ib290KHZvaWQpCkBAIC02NTMsNiArNjU4LDQzIEBAIHN0YXRpYyBi b29sX3QgX19pbml0IGVmaV9hcmNoX3VzZV9jb25maWdfZmlsZShFRklfU1lTVEVNX1RBQkxFICpT eXN0ZW1UYWJsZSkKIAogc3RhdGljIHZvaWQgZWZpX2FyY2hfZmx1c2hfZGNhY2hlX2FyZWEoY29u c3Qgdm9pZCAqdmFkZHIsIFVJTlROIHNpemUpIHsgfQogCitwYWRkcl90IF9faW5pdCBlZmlfbXVs dGlib290MihFRklfSEFORExFIEltYWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1U YWJsZSkKK3sKKyAgICBFRklfR1JBUEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3A7CisgICAgVUlO VE4gY29scywgZ29wX21vZGUgPSB+MCwgcm93czsKKworICAgIF9fc2V0X2JpdChFRklfQk9PVCwg JmVmaV9mbGFncyk7CisgICAgX19zZXRfYml0KEVGSV9SUywgJmVmaV9mbGFncyk7CisKKyAgICBl ZmlfaW5pdChJbWFnZUhhbmRsZSwgU3lzdGVtVGFibGUpOworCisgICAgZWZpX2NvbnNvbGVfc2V0 X21vZGUoKTsKKworICAgIGlmICggU3RkT3V0LT5RdWVyeU1vZGUoU3RkT3V0LCBTdGRPdXQtPk1v ZGUtPk1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29scywgJnJvd3MpID09IEVG SV9TVUNDRVNTICkKKyAgICAgICAgZWZpX2FyY2hfY29uc29sZV9pbml0KGNvbHMsIHJvd3MpOwor CisgICAgZ29wID0gZWZpX2dldF9nb3AoKTsKKworICAgIGlmICggZ29wICkKKyAgICAgICAgZ29w X21vZGUgPSBlZmlfZmluZF9nb3BfbW9kZShnb3AsIDAsIDAsIDApOworCisgICAgZWZpX2FyY2hf ZWRkKCk7CisgICAgZWZpX2FyY2hfY3B1KCk7CisKKyAgICBlZmlfdGFibGVzKCk7CisgICAgc2V0 dXBfZWZpX3BjaSgpOworICAgIGVmaV92YXJpYWJsZXMoKTsKKworICAgIGlmICggZ29wICkKKyAg ICAgICAgZWZpX3NldF9nb3BfbW9kZShnb3AsIGdvcF9tb2RlKTsKKworICAgIGVmaV9leGl0X2Jv b3QoSW1hZ2VIYW5kbGUsIFN5c3RlbVRhYmxlKTsKKworICAgIC8qIFJldHVybiBoaWdoZXN0IHVz YWJsZSBtZW1vcnkgYWRkcmVzcyBiZWxvdyAxIE1pQi4gKi8KKyAgICByZXR1cm4gY2ZnLmFkZHI7 Cit9CisKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvZWZpL3N0dWIuYyBiL3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCmluZGV4IGJj OTkxOWMuLjIzMmRkMTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCisrKyBi L3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCkBAIC0zLDYgKzMsNDQgQEAKICNpbmNsdWRlIDx4ZW4v aW5pdC5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgorI2lu Y2x1ZGUgPGFzbS9lZmliaW5kLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWRlZi5oPgorI2luY2x1ZGUg PGVmaS9lZmljYXBzdWxlLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWNvbi5oPgorI2luY2x1ZGUgPGVm aS9lZmlkZXZwLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWFwaS5oPgorCisvKgorICogSGVyZSB3ZSBh cmUgaW4gRUZJIHN0dWIuIEVGSSBjYWxscyBhcmUgbm90IHN1cHBvcnRlZCBkdWUgdG8gbGFjawor ICogb2YgcmVsZXZhbnQgZnVuY3Rpb25hbGl0eSBpbiBjb21waWxlciBhbmQvb3IgbGlua2VyLgor ICoKKyAqIGVmaV9tdWx0aWJvb3QyKCkgaXMgYW4gZXhjZXB0aW9uLiBQbGVhc2UgbG9vayBiZWxv dyBmb3IgbW9yZSBkZXRhaWxzLgorICovCisKK3BhZGRyX3QgX19pbml0IG5vcmV0dXJuIGVmaV9t dWx0aWJvb3QyKEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkKK3sKKyAgICBD SEFSMTYgKmVyciA9IEwiWGVuIGRvZXMgbm90IGhhdmUgRUZJIGNvZGUgYnVpbGQgaW4hISFcclxu U3lzdGVtIGhhbHRlZCEhIVxyXG4iOworICAgIFNJTVBMRV9URVhUX09VVFBVVF9JTlRFUkZBQ0Ug KlN0ZEVycjsKKworICAgIFN0ZEVyciA9IFN5c3RlbVRhYmxlLT5TdGRFcnIgPyBTeXN0ZW1UYWJs ZS0+U3RkRXJyIDogU3lzdGVtVGFibGUtPkNvbk91dDsKKworICAgIC8qCisgICAgICogUHJpbnQg ZXJyb3IgbWVzc2FnZSBhbmQgaGFsdCB0aGUgc3lzdGVtLgorICAgICAqCisgICAgICogV2UgaGF2 ZSB0byBvcGVuIGNvZGUgTVMgeDY0IGNhbGxpbmcgY29udmVudGlvbgorICAgICAqIGluIGFzc2Vt Ymx5IGJlY2F1c2UgaGVyZSB0aGlzIGNvbnZlbnRpb24gbWF5CisgICAgICogbm90IGJlIGRpcmVj dGx5IHN1cHBvcnRlZCBieSBDIGNvbXBpbGVyLgorICAgICAqLworICAgIGFzbSB2b2xhdGlsZSgK KyAgICAiICAgIGNhbGwgJTIgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgIjA6ICBobHQg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICIgICAgam1wICAwYiAgICAgICAgICAg ICAgICAgICAgICBcbiIKKyAgICAgICA6ICIrYyIgKFN0ZEVyciksICIrZCIgKGVycikgOiAiZyIg KFN0ZEVyci0+T3V0cHV0U3RyaW5nKQorICAgICAgIDogInJheCIsICJyOCIsICJyOSIsICJyMTAi LCAicjExIiwgIm1lbW9yeSIpOworCisgICAgdW5yZWFjaGFibGUoKTsKK30KIAogYm9vbCBlZmlf ZW5hYmxlZCh1bnNpZ25lZCBpbnQgZmVhdHVyZSkKIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni94ODZfNjQvYXNtLW9mZnNldHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMu YwppbmRleCBiNDM3YThmLi4yYTIyNjU5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0 L2FzbS1vZmZzZXRzLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCkBA IC0xNzUsNiArMTc1LDggQEAgdm9pZCBfX2R1bW15X18odm9pZCkKICAgICBPRkZTRVQoTUIyX3Rh Z190eXBlLCBtdWx0aWJvb3QyX3RhZ190LCB0eXBlKTsKICAgICBPRkZTRVQoTUIyX3RhZ19zaXpl LCBtdWx0aWJvb3QyX3RhZ190LCBzaXplKTsKICAgICBPRkZTRVQoTUIyX21lbV9sb3dlciwgbXVs dGlib290Ml90YWdfYmFzaWNfbWVtaW5mb190LCBtZW1fbG93ZXIpOworICAgIE9GRlNFVChNQjJf ZWZpNjRfc3QsIG11bHRpYm9vdDJfdGFnX2VmaTY0X3QsIHBvaW50ZXIpOworICAgIE9GRlNFVChN QjJfZWZpNjRfaWgsIG11bHRpYm9vdDJfdGFnX2VmaTY0X2loX3QsIHBvaW50ZXIpOwogICAgIEJM QU5LKCk7CiAKICAgICBPRkZTRVQoRE9NQUlOX3ZtX2Fzc2lzdCwgc3RydWN0IGRvbWFpbiwgdm1f YXNzaXN0KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMgYi94ZW4vYXJjaC94 ODYveGVuLmxkcy5TCmluZGV4IGIwYjFjOWIuLmUwZTI1MjkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni94ZW4ubGRzLlMKKysrIGIveGVuL2FyY2gveDg2L3hlbi5sZHMuUwpAQCAtMzMxLDUgKzMz MSw1IEBAIEFTU0VSVChJU19BTElHTkVEKF9faW5pdF9lbmQsICAgUEFHRV9TSVpFKSwgIl9faW5p dF9lbmQgbWlzYWxpZ25lZCIpCiAKIEFTU0VSVChJU19BTElHTkVEKHRyYW1wb2xpbmVfc3RhcnQs IDQpLCAidHJhbXBvbGluZV9zdGFydCBtaXNhbGlnbmVkIikKIEFTU0VSVChJU19BTElHTkVEKHRy YW1wb2xpbmVfZW5kLCAgIDQpLCAidHJhbXBvbGluZV9lbmQgbWlzYWxpZ25lZCIpCi1BU1NFUlQo SVNfQUxJR05FRChfX2Jzc19zdGFydCwgICAgICA0KSwgIl9fYnNzX3N0YXJ0IG1pc2FsaWduZWQi KQotQVNTRVJUKElTX0FMSUdORUQoX19ic3NfZW5kLCAgICAgICAgNCksICJfX2Jzc19lbmQgbWlz YWxpZ25lZCIpCitBU1NFUlQoSVNfQUxJR05FRChfX2Jzc19zdGFydCwgICAgICA4KSwgIl9fYnNz X3N0YXJ0IG1pc2FsaWduZWQiKQorQVNTRVJUKElTX0FMSUdORUQoX19ic3NfZW5kLCAgICAgICAg OCksICJfX2Jzc19lbmQgbWlzYWxpZ25lZCIpCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2VmaS9i b290LmMgYi94ZW4vY29tbW9uL2VmaS9ib290LmMKaW5kZXggZmM3NjY5NS4uZmQwZjk4MSAxMDA2 NDQKLS0tIGEveGVuL2NvbW1vbi9lZmkvYm9vdC5jCisrKyBiL3hlbi9jb21tb24vZWZpL2Jvb3Qu YwpAQCAtNzksNiArNzksMTcgQEAgc3RhdGljIHNpemVfdCB3c3RybGVuKGNvbnN0IENIQVIxNiAq IHMpOwogc3RhdGljIGludCBzZXRfY29sb3IodTMyIG1hc2ssIGludCBicHAsIHU4ICpwb3MsIHU4 ICpzeik7CiBzdGF0aWMgYm9vbF90IG1hdGNoX2d1aWQoY29uc3QgRUZJX0dVSUQgKmd1aWQxLCBj b25zdCBFRklfR1VJRCAqZ3VpZDIpOwogCitzdGF0aWMgdm9pZCBlZmlfaW5pdChFRklfSEFORExF IEltYWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSk7CitzdGF0aWMgdm9p ZCBlZmlfY29uc29sZV9zZXRfbW9kZSh2b2lkKTsKK3N0YXRpYyBFRklfR1JBUEhJQ1NfT1VUUFVU X1BST1RPQ09MICplZmlfZ2V0X2dvcCh2b2lkKTsKK3N0YXRpYyBVSU5UTiBlZmlfZmluZF9nb3Bf bW9kZShFRklfR1JBUEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3AsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVUlOVE4gY29scywgVUlOVE4gcm93cywgVUlOVE4gZGVwdGgpOworc3Rh dGljIHZvaWQgZWZpX3RhYmxlcyh2b2lkKTsKK3N0YXRpYyB2b2lkIHNldHVwX2VmaV9wY2kodm9p ZCk7CitzdGF0aWMgdm9pZCBlZmlfdmFyaWFibGVzKHZvaWQpOworc3RhdGljIHZvaWQgZWZpX3Nl dF9nb3BfbW9kZShFRklfR1JBUEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3AsIFVJTlROIGdvcF9t b2RlKTsKK3N0YXRpYyB2b2lkIGVmaV9leGl0X2Jvb3QoRUZJX0hBTkRMRSBJbWFnZUhhbmRsZSwg RUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpOworCiBzdGF0aWMgY29uc3QgRUZJX0JPT1Rf U0VSVklDRVMgKl9faW5pdGRhdGEgZWZpX2JzOwogc3RhdGljIFVJTlQzMiBfX2luaXRkYXRhIGVm aV9ic19yZXZpc2lvbjsKIHN0YXRpYyBFRklfSEFORExFIF9faW5pdGRhdGEgZWZpX2loOwotLSAK MS43LjEwLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK