From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v4 09/19] x86: add multiboot2 protocol support Date: Sat, 6 Aug 2016 01:04:32 +0200 Message-ID: <1470438282-4226-10-git-send-email-daniel.kiper@oracle.com> References: <1470438282-4226-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bVoBb-0003Hy-O1 for xen-devel@lists.xenproject.org; Fri, 05 Aug 2016 23:05:51 +0000 In-Reply-To: <1470438282-4226-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, richard.l.maliszewski@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org QWRkIG11bHRpYm9vdDIgcHJvdG9jb2wgc3VwcG9ydC4gQWx0ZXIgbWluIG1lbW9yeSBsaW1pdCBo YW5kbGluZyBhcyB3ZQpub3cgbWF5IG5vdCBmaW5kIGl0IGZyb20gZWl0aGVyIG11bHRpYm9vdCAo djEpIG9yIG11bHRpYm9vdDIuCgpUaGlzIHdheSB3ZSBhcmUgbGF5aW5nIHRoZSBmb3VuZGF0aW9u IGZvciBFRkkgKyBHUlVCMiArIFhlbiBkZXZlbG9wbWVudC4KClNpZ25lZC1vZmYtYnk6IERhbmll bCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+Ci0tLQp2NCAtIHN1Z2dlc3Rpb25zL2Zp eGVzOgogICAtIGF2b2lkIGFzc2VtYmx5IHVzYWdlIGluIHhlbi9hcmNoL3g4Ni9ib290L3JlbG9j LmMsCiAgIC0gZml4IGJvdW5kYXJ5IGNoZWNrIGlzc3VlIGFuZCBvcHRpbWl6ZQogICAgIGZvcigp IGxvb3BzIGluIG1iaTJfbWJpKCksCiAgIC0gbW92ZSB0byBzdGRjYWxsIGNhbGxpbmcgY29udmVu dGlvbiwKICAgLSByZW1vdmUgdW5uZWVkZWQgdHlwZW9mKCkgZnJvbSBBTElHTl9VUCgpIG1hY3Jv CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gYWRkIGFuZCB1c2UgTlVMTCBk ZWZpbml0aW9uIGluIHhlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMKICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKSwKICAgLSBkbyBub3QgcmVhZCBkYXRhIGJleW9uZCB0aGUgZW5kIG9mIG11 bHRpYm9vdDIKICAgICBpbmZvcm1hdGlvbiBpbiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBhZGQgOnJlcSB0byBzb21lIC5tYWNy byBhcmd1bWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1c2UgY21v dmNjIGlmIHBvc3NpYmxlLAogICAtIGFkZCAuTCB0byBtdWx0aWJvb3QyX2hlYWRlcl9lbmQgbGFi ZWwKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBhZGQgLkwgdG8gbXVsdGli b290Ml9wcm90byBsYWJlbAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGlt cHJvdmUgbGFiZWwgbmFtZXMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnYzIC0g c3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gcmVvcmRlciByZWxvYygpIGFyZ3VtZW50cwogICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHJlbW92ZSAuTCBmcm9tIG11bHRpYm9vdDIg aGVhZGVyIGxhYmVscwogICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3IENvb3BlciwgSmFuIEJldWxp Y2ggYW5kIEtvbnJhZCBSemVzenV0ZWsgV2lsayksCiAgIC0gdGFrZSBpbnRvIGFjY291bnQgYWxp Z25tZW50IHdoZW4gc2tpcHBpbmcgbXVsdGlib290MiBmaXhlZCBwYXJ0CiAgICAgKHN1Z2dlc3Rl ZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspLAogICAtIGNyZWF0ZSBtb2R1bGVzIGRhdGEgaWYg bW9kdWxlcyBjb3VudCAhPSAwCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0g aW1wcm92ZSBtYWNyb3MKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSByZWR1 Y2UgbnVtYmVyIG9mIGNhc3RzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0g dXNlIGNvbnN0IGlmIHBvc3NpYmxlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAg IC0gZHJvcCBzdGF0aWMgYW5kIF9fdXNlZF9fIGF0dHJpYnV0ZSBmcm9tIHJlbG9jKCkKICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSByZW1vdmUgaXNvbGF0ZWQvc3RyYXkgX19w YWNrZWQgYXR0cmlidXRlIGZyb20KICAgICBtdWx0aWJvb3QyX21lbW9yeV9tYXBfdCB0eXBlIGRl ZmluaXRpb24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSByZWZvcm1hdCB4 ZW4vaW5jbHVkZS94ZW4vbXVsdGlib290Mi5oCiAgICAgKHN1Z2dlc3RlZCBieSBLb25yYWQgUnpl c3p1dGVrIFdpbGspLAogICAtIGltcHJvdmUgY29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEtv bnJhZCBSemVzenV0ZWsgV2lsayksCiAgIC0gcmVtb3ZlIGhhcmQgdGFicwogICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2ggYW5kIEtvbnJhZCBSemVzenV0ZWsgV2lsaykuCgp2MiAtIHN1Z2dl c3Rpb25zL2ZpeGVzOgogICAtIGdlbmVyYXRlIG11bHRpYm9vdDIgaGVhZGVyIHVzaW5nIG1hY3Jv cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVudHMK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBzaW1wbGlmeSBhc3NlbWJseSBp biB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KSwKICAgLSBkbyBub3QgaW5jbHVkZSBpbmNsdWRlL3hlbi9jb21waWxlci5oCiAgICAgaW4geGVu L2FyY2gveDg2L2Jvb3QvcmVsb2MuYwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAog ICAtIGRvIG5vdCByZWFkIGRhdGEgYmV5b25kIHRoZSBlbmQgb2YgbXVsdGlib290MiBpbmZvcm1h dGlvbgogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjIgLSBub3QgZml4ZWQgeWV0 OgogICAtIGR5bmFtaWMgZGVwZW5kZW5jeSBnZW5lcmF0aW9uIGZvciB4ZW4vYXJjaC94ODYvYm9v dC9yZWxvYy5TOwogICAgIHRoaXMgcmVxdWlyZXMgbW9yZSB3b3JrOyBJIGFtIG5vdCBzdXJlIHRo YXQgaXQgcGF5cyBiZWNhdXNlCiAgICAgcG90ZW50aWFsIHBhdGNoIHJlcXVpcmVzIG1vcmUgY2hh bmdlcyB0aGFuIGFkZGl0aW9uIG9mIGp1c3QKICAgICBtdWx0aWJvb3QyLmggdG8gTWFrZWZpbGUK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpc29sYXRlZC9zdHJheSBfX3Bh Y2tlZCBhdHRyaWJ1dGUgdXNhZ2UgZm9yIG11bHRpYm9vdDJfbWVtb3J5X21hcF90CiAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCi0tLQogeGVuL2FyY2gveDg2L2Jvb3QvTWFrZWZpbGUg ICAgICAgIHwgICAgMyArLQogeGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TICAgICAgICAgIHwgIDEw NyArKysrKysrKysrKysrKysrKysrKysrLQogeGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYyAgICAg ICAgIHwgIDE0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiB4ZW4vYXJjaC94ODYv eDg2XzY0L2FzbS1vZmZzZXRzLmMgfCAgICA5ICsrCiB4ZW4vaW5jbHVkZS94ZW4vbXVsdGlib290 Mi5oICAgICAgfCAgMTY5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDUg ZmlsZXMgY2hhbmdlZCwgNDE5IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL3hlbi9tdWx0aWJvb3QyLmgKCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvYm9vdC9NYWtlZmlsZSBiL3hlbi9hcmNoL3g4Ni9ib290L01ha2VmaWxlCmlu ZGV4IDVmZGI1YWUuLjA2ODkzZDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L01ha2Vm aWxlCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290L01ha2VmaWxlCkBAIC0xLDYgKzEsNyBAQAogb2Jq LWJpbi15ICs9IGhlYWQubwogCi1SRUxPQ19ERVBTID0gJChCQVNFRElSKS9pbmNsdWRlL2FzbS14 ODYvY29uZmlnLmggJChCQVNFRElSKS9pbmNsdWRlL3hlbi9tdWx0aWJvb3QuaAorUkVMT0NfREVQ UyA9ICQoQkFTRURJUikvaW5jbHVkZS9hc20teDg2L2NvbmZpZy5oICQoQkFTRURJUikvaW5jbHVk ZS94ZW4vbXVsdGlib290LmggXAorCSAgICAgJChCQVNFRElSKS9pbmNsdWRlL3hlbi9tdWx0aWJv b3QyLmgKIAogaGVhZC5vOiByZWxvYy5TCiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9ib290 L2hlYWQuUyBiL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUwppbmRleCBmZmFmY2I1Li41ZTYxODU0 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKKysrIGIveGVuL2FyY2gveDg2 L2Jvb3QvaGVhZC5TCkBAIC0xLDUgKzEsNiBAQAogI2luY2x1ZGUgPHhlbi9jb25maWcuaD4KICNp bmNsdWRlIDx4ZW4vbXVsdGlib290Lmg+CisjaW5jbHVkZSA8eGVuL211bHRpYm9vdDIuaD4KICNp bmNsdWRlIDxwdWJsaWMveGVuLmg+CiAjaW5jbHVkZSA8YXNtL2FzbV9kZWZucy5oPgogI2luY2x1 ZGUgPGFzbS9kZXNjLmg+CkBAIC0xOSw2ICsyMCwyOCBAQAogI2RlZmluZSBCT09UX1BTRVVET1JN X0NTIDB4MDAyMAogI2RlZmluZSBCT09UX1BTRVVET1JNX0RTIDB4MDAyOAogCisjZGVmaW5lIE1C Ml9IVChuYW1lKSAgICAgIChNVUxUSUJPT1QyX0hFQURFUl9UQUdfIyNuYW1lKQorI2RlZmluZSBN QjJfVFQobmFtZSkgICAgICAoTVVMVElCT09UMl9UQUdfVFlQRV8jI25hbWUpCisKKyAgICAgICAg Lm1hY3JvIG1iMmh0X2FyZ3MgYXJnOnJlcSwgYXJnczp2YXJhcmcKKyAgICAgICAgLmxvbmcgXGFy ZworICAgICAgICAuaWZuYiBcYXJncworICAgICAgICBtYjJodF9hcmdzIFxhcmdzCisgICAgICAg IC5lbmRpZgorICAgICAgICAuZW5kbQorCisgICAgICAgIC5tYWNybyBtYjJodF9pbml0IHR5cGU6 cmVxLCByZXE6cmVxLCBhcmdzOnZhcmFyZworICAgICAgICAuYWxpZ24gTVVMVElCT09UMl9UQUdf QUxJR04KKy5MbWIyaHRfaW5pdF9zdGFydFxAOgorICAgICAgICAuc2hvcnQgXHR5cGUKKyAgICAg ICAgLnNob3J0IFxyZXEKKyAgICAgICAgLmxvbmcgLkxtYjJodF9pbml0X2VuZFxAIC0gLkxtYjJo dF9pbml0X3N0YXJ0XEAKKyAgICAgICAgLmlmbmIgXGFyZ3MKKyAgICAgICAgbWIyaHRfYXJncyBc YXJncworICAgICAgICAuZW5kaWYKKy5MbWIyaHRfaW5pdF9lbmRcQDoKKyAgICAgICAgLmVuZG0K KwogRU5UUlkoc3RhcnQpCiAgICAgICAgIGptcCAgICAgX19zdGFydAogCkBAIC0zNCw2ICs1Nyw0 MiBAQCBtdWx0aWJvb3QxX2hlYWRlcl9zdGFydDogICAgICAgLyoqKiBNVUxUSUJPT1QxIEhFQURF UiAqKioqLwogICAgICAgICAubG9uZyAgIC0oTVVMVElCT09UX0hFQURFUl9NQUdJQyArIE1VTFRJ Qk9PVF9IRUFERVJfRkxBR1MpCiAuTG11bHRpYm9vdDFfaGVhZGVyX2VuZDoKIAorLyoqKiBNVUxU SUJPT1QyIEhFQURFUiAqKioqLworLyogU29tZSBpZGVhcyBhcmUgdGFrZW4gZnJvbSBncnViLTIu MDAvZ3J1Yi1jb3JlL3Rlc3RzL2Jvb3Qva2VybmVsLWkzODYuUyBmaWxlLiAqLworICAgICAgICAu YWxpZ24gIE1VTFRJQk9PVDJfSEVBREVSX0FMSUdOCisKK211bHRpYm9vdDJfaGVhZGVyX3N0YXJ0 OgorICAgICAgICAvKiBNYWdpYyBudW1iZXIgaW5kaWNhdGluZyBhIE11bHRpYm9vdDIgaGVhZGVy LiAqLworICAgICAgICAubG9uZyAgIE1VTFRJQk9PVDJfSEVBREVSX01BR0lDCisgICAgICAgIC8q IEFyY2hpdGVjdHVyZTogaTM4Ni4gKi8KKyAgICAgICAgLmxvbmcgICBNVUxUSUJPT1QyX0FSQ0hJ VEVDVFVSRV9JMzg2CisgICAgICAgIC8qIE11bHRpYm9vdDIgaGVhZGVyIGxlbmd0aC4gKi8KKyAg ICAgICAgLmxvbmcgICAuTG11bHRpYm9vdDJfaGVhZGVyX2VuZCAtIG11bHRpYm9vdDJfaGVhZGVy X3N0YXJ0CisgICAgICAgIC8qIE11bHRpYm9vdDIgaGVhZGVyIGNoZWNrc3VtLiAqLworICAgICAg ICAubG9uZyAgIC0oTVVMVElCT09UMl9IRUFERVJfTUFHSUMgKyBNVUxUSUJPT1QyX0FSQ0hJVEVD VFVSRV9JMzg2ICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgKC5MbXVsdGlib290Ml9oZWFk ZXJfZW5kIC0gbXVsdGlib290Ml9oZWFkZXJfc3RhcnQpKQorCisgICAgICAgIC8qIE11bHRpYm9v dDIgaW5mb3JtYXRpb24gcmVxdWVzdCB0YWcuICovCisgICAgICAgIG1iMmh0X2luaXQgTUIyX0hU KElORk9STUFUSU9OX1JFUVVFU1QpLCBNQjJfSFQoUkVRVUlSRUQpLCBcCisgICAgICAgICAgICAg ICAgICAgTUIyX1RUKEJBU0lDX01FTUlORk8pLCBNQjJfVFQoTU1BUCkKKworICAgICAgICAvKiBB bGlnbiBtb2R1bGVzIGF0IHBhZ2UgYm91bmRyeS4gKi8KKyAgICAgICAgbWIyaHRfaW5pdCBNQjJf SFQoTU9EVUxFX0FMSUdOKSwgTUIyX0hUKFJFUVVJUkVEKQorCisgICAgICAgIC8qIENvbnNvbGUg ZmxhZ3MgdGFnLiAqLworICAgICAgICBtYjJodF9pbml0IE1CMl9IVChDT05TT0xFX0ZMQUdTKSwg TUIyX0hUKE9QVElPTkFMKSwgXAorICAgICAgICAgICAgICAgICAgIE1VTFRJQk9PVDJfQ09OU09M RV9GTEFHU19FR0FfVEVYVF9TVVBQT1JURUQKKworICAgICAgICAvKiBGcmFtZWJ1ZmZlciB0YWcu ICovCisgICAgICAgIG1iMmh0X2luaXQgTUIyX0hUKEZSQU1FQlVGRkVSKSwgTUIyX0hUKE9QVElP TkFMKSwgXAorICAgICAgICAgICAgICAgICAgIDAsIC8qIE51bWJlciBvZiB0aGUgY29sdW1ucyAt IG5vIHByZWZlcmVuY2UuICovIFwKKyAgICAgICAgICAgICAgICAgICAwLCAvKiBOdW1iZXIgb2Yg dGhlIGxpbmVzIC0gbm8gcHJlZmVyZW5jZS4gKi8gXAorICAgICAgICAgICAgICAgICAgIDAgIC8q IE51bWJlciBvZiBiaXRzIHBlciBwaXhlbCAtIG5vIHByZWZlcmVuY2UuICovCisKKyAgICAgICAg LyogTXVsdGlib290MiBoZWFkZXIgZW5kIHRhZy4gKi8KKyAgICAgICAgbWIyaHRfaW5pdCBNQjJf SFQoRU5EKSwgTUIyX0hUKFJFUVVJUkVEKQorLkxtdWx0aWJvb3QyX2hlYWRlcl9lbmQ6CisKICAg ICAgICAgLnNlY3Rpb24gLmluaXQucm9kYXRhLCAiYSIsIEBwcm9nYml0cwogICAgICAgICAuYWxp Z24gNAogCkBAIC04MiwxMCArMTQxLDUyIEBAIF9fc3RhcnQ6CiAgICAgICAgIG1vdiAgICAgJWVj eCwlZXMKICAgICAgICAgbW92ICAgICAlZWN4LCVzcwogCi0gICAgICAgIC8qIENoZWNrIGZvciBN dWx0aWJvb3QgYm9vdGxvYWRlciAqLworICAgICAgICAvKiBCb290bG9hZGVycyBtYXkgc2V0IG11 bHRpYm9vdHsxLDJ9Lm1lbV9sb3dlciB0byBhIG5vbnplcm8gdmFsdWUuICovCisgICAgICAgIHhv ciAgICAgJWVkeCwlZWR4CisKKyAgICAgICAgLyogQ2hlY2sgZm9yIE11bHRpYm9vdDIgYm9vdGxv YWRlci4gKi8KKyAgICAgICAgY21wICAgICAkTVVMVElCT09UMl9CT09UTE9BREVSX01BR0lDLCVl YXgKKyAgICAgICAgamUgICAgICAuTG11bHRpYm9vdDJfcHJvdG8KKworICAgICAgICAvKiBDaGVj ayBmb3IgTXVsdGlib290IGJvb3Rsb2FkZXIuICovCiAgICAgICAgIGNtcCAgICAgJE1VTFRJQk9P VF9CT09UTE9BREVSX01BR0lDLCVlYXgKICAgICAgICAgam5lICAgICBub3RfbXVsdGlib290CiAK KyAgICAgICAgLyogR2V0IG1lbV9sb3dlciBmcm9tIE11bHRpYm9vdCBpbmZvcm1hdGlvbi4gKi8K KyAgICAgICAgdGVzdGIgICAkTUJJX01FTUxJTUlUUyxNQl9mbGFncyglZWJ4KQorCisgICAgICAg IC8qIE5vdCBhdmFpbGFibGU/IEJEQSB2YWx1ZSB3aWxsIGJlIGZpbmUuICovCisgICAgICAgIGNt b3ZueiAgTUJfbWVtX2xvd2VyKCVlYngpLCVlZHgKKyAgICAgICAgam1wICAgICB0cmFtcG9saW5l X3NldHVwCisKKy5MbXVsdGlib290Ml9wcm90bzoKKyAgICAgICAgLyogU2tpcCBNdWx0aWJvb3Qy IGluZm9ybWF0aW9uIGZpeGVkIHBhcnQuICovCisgICAgICAgIGxlYSAgICAgKE1CMl9maXhlZF9z aXplb2YrTVVMVElCT09UMl9UQUdfQUxJR04tMSkoJWVieCksJWVjeAorICAgICAgICBhbmQgICAg ICR+KE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKKworMDoKKyAgICAgICAgLyogQ2hlY2sg TXVsdGlib290MiBpbmZvcm1hdGlvbiB0b3RhbCBzaXplLiAqLworICAgICAgICBtb3YgICAgICVl Y3gsJWVkaQorICAgICAgICBzdWIgICAgICVlYngsJWVkaQorICAgICAgICBjbXAgICAgICVlZGks TUIyX2ZpeGVkX3RvdGFsX3NpemUoJWVieCkKKyAgICAgICAgamJlICAgICB0cmFtcG9saW5lX3Nl dHVwCisKKyAgICAgICAgLyogR2V0IG1lbV9sb3dlciBmcm9tIE11bHRpYm9vdDIgaW5mb3JtYXRp b24uICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfQkFTSUNfTUVNSU5G TyxNQjJfdGFnX3R5cGUoJWVjeCkKKyAgICAgICAgY21vdmUgICBNQjJfbWVtX2xvd2VyKCVlY3gp LCVlZHgKKyAgICAgICAgamUgICAgICB0cmFtcG9saW5lX3NldHVwCisKKyAgICAgICAgLyogSXMg aXQgdGhlIGVuZCBvZiBNdWx0aWJvb3QyIGluZm9ybWF0aW9uPyAqLworICAgICAgICBjbXBsICAg ICRNVUxUSUJPT1QyX1RBR19UWVBFX0VORCxNQjJfdGFnX3R5cGUoJWVjeCkKKyAgICAgICAgamUg ICAgICB0cmFtcG9saW5lX3NldHVwCisKKyAgICAgICAgLyogR28gdG8gbmV4dCBNdWx0aWJvb3Qy IGluZm9ybWF0aW9uIHRhZy4gKi8KKyAgICAgICAgYWRkICAgICBNQjJfdGFnX3NpemUoJWVjeCks JWVjeAorICAgICAgICBhZGQgICAgICQoTVVMVElCT09UMl9UQUdfQUxJR04tMSksJWVjeAorICAg ICAgICBhbmQgICAgICR+KE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKKyAgICAgICAgam1w ICAgICAwYgorCit0cmFtcG9saW5lX3NldHVwOgogICAgICAgICAvKiBTZXQgdXAgdHJhbXBvbGlu ZSBzZWdtZW50IDY0ayBiZWxvdyBFQkRBICovCiAgICAgICAgIG1vdnp3bCAgMHg0MGUsJWVjeCAg ICAgICAgICAvKiBFQkRBIHNlZ21lbnQgKi8KICAgICAgICAgY21wICAgICAkMHhhMDAwLCVlY3gg ICAgICAgIC8qIHNhbml0eSBjaGVjayAoaGlnaCkgKi8KQEAgLTEwMCw5ICsyMDEsNiBAQCBfX3N0 YXJ0OgogICAgICAgICAgKiBDb21wYXJlIHRoZSB2YWx1ZSBpbiB0aGUgQkRBIHdpdGggdGhlIGlu Zm9ybWF0aW9uIGZyb20gdGhlCiAgICAgICAgICAqIG11bHRpYm9vdCBzdHJ1Y3R1cmUgKGlmIGF2 YWlsYWJsZSkgYW5kIHVzZSB0aGUgc21hbGxlc3QuCiAgICAgICAgICAqLwotICAgICAgICB0ZXN0 YiAgICRNQklfTUVNTElNSVRTLCglZWJ4KQotICAgICAgICBqeiAgICAgIDJmICAgICAgICAgICAg ICAgICAgLyogbm90IGF2YWlsYWJsZT8gQkRBIHZhbHVlIHdpbGwgYmUgZmluZSAqLwotICAgICAg ICBtb3YgICAgIE1CX21lbV9sb3dlciglZWJ4KSwlZWR4CiAgICAgICAgIGNtcCAgICAgJDB4MTAw LCVlZHggICAgICAgICAvKiBpcyB0aGUgbXVsdGlib290IHZhbHVlIHRvbyBzbWFsbD8gKi8KICAg ICAgICAgamIgICAgICAyZiAgICAgICAgICAgICAgICAgIC8qIGlmIHNvLCBkbyBub3QgdXNlIGl0 ICovCiAgICAgICAgIHNobCAgICAgJDEwLTQsJWVkeApAQCAtMTIxLDYgKzIxOSw3IEBAIF9fc3Rh cnQ6CiAgICAgICAgIG1vdiAgICAgJHN5bV9waHlzKGNwdTBfc3RhY2spKzEwMjQsJWVzcAogICAg ICAgICBwdXNoICAgICVlY3ggICAgICAgICAgICAgICAgLyogQm9vdCB0cmFtcG9saW5lIGFkZHJl c3MuICovCiAgICAgICAgIHB1c2ggICAgJWVieCAgICAgICAgICAgICAgICAvKiBNdWx0aWJvb3Qg aW5mb3JtYXRpb24gYWRkcmVzcy4gKi8KKyAgICAgICAgcHVzaCAgICAlZWF4ICAgICAgICAgICAg ICAgIC8qIE11bHRpYm9vdCBtYWdpYy4gKi8KICAgICAgICAgY2FsbCAgICByZWxvYwogICAgICAg ICBtb3YgICAgICVlYXgsc3ltX3BoeXMobXVsdGlib290X3B0cikKIApkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2Jvb3QvcmVsb2MuYyBiL3hlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMKaW5kZXgg ZGM2YTQzNS4uMTU5NThhOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYwor KysgYi94ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jCkBAIC01LDE1ICs1LDE4IEBACiAgKiBhbmQg bW9kdWxlcy4gVGhpcyBpcyBtb3N0IGVhc2lseSBkb25lIGVhcmx5IHdpdGggcGFnaW5nIGRpc2Fi bGVkLgogICoKICAqIENvcHlyaWdodCAoYykgMjAwOSwgQ2l0cml4IFN5c3RlbXMsIEluYy4KKyAq IENvcHlyaWdodCAoYykgMjAxMy0yMDE2IE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFs bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogQXV0aG9yczoKICAqICAgIEtlaXIgRnJhc2VyIDxr ZWlyQHhlbi5vcmc+CisgKiAgICBEYW5pZWwgS2lwZXIgPGRhbmllbC5raXBlckBvcmFjbGUuY29t PgogICovCiAKIC8qCiAgKiBUaGlzIGVudHJ5IHBvaW50IGlzIGVudGVyZWQgZnJvbSB4ZW4vYXJj aC94ODYvYm9vdC9oZWFkLlMgd2l0aDoKLSAqICAgLSAweDQoJWVzcCkgPSBNVUxUSUJPT1RfSU5G T1JNQVRJT05fQUREUkVTUywKLSAqICAgLSAweDgoJWVzcCkgPSBCT09UX1RSQU1QT0xJTkVfQURE UkVTUy4KKyAqICAgLSAweDQoJWVzcCkgPSBNVUxUSUJPT1RfTUFHSUMsCisgKiAgIC0gMHg4KCVl c3ApID0gTVVMVElCT09UX0lORk9STUFUSU9OX0FERFJFU1MsCisgKiAgIC0gMHhjKCVlc3ApID0g Qk9PVF9UUkFNUE9MSU5FX0FERFJFU1MuCiAgKi8KIGFzbSAoCiAgICAgIiAgICAudGV4dCAgICAg ICAgICAgICAgICAgICAgICAgICBcbiIKQEAgLTIzLDEzICsyNiwyMSBAQCBhc20gKAogICAgICk7 CiAKIHR5cGVkZWYgdW5zaWduZWQgaW50IHUzMjsKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25n IHU2NDsKKwogI2luY2x1ZGUgIi4uLy4uLy4uL2luY2x1ZGUveGVuL211bHRpYm9vdC5oIgorI2lu Y2x1ZGUgIi4uLy4uLy4uL2luY2x1ZGUveGVuL211bHRpYm9vdDIuaCIKKworI2RlZmluZSBOVUxM CQkoKHZvaWQgKikwKQogCiAjZGVmaW5lIF9fc3RkY2FsbAlfX2F0dHJpYnV0ZV9fKChfX3N0ZGNh bGxfXykpCiAKICNkZWZpbmUgQUxJR05fVVAoYXJnLCBhbGlnbikgXAogICAgICAgICAgICAgICAg ICgoKGFyZykgKyAoYWxpZ24pIC0gMSkgJiB+KCh0eXBlb2YoYXJnKSkoYWxpZ24pIC0gMSkpCiAK KyNkZWZpbmUgZ2V0X21iMl9kYXRhKHRhZywgdHlwZSwgbWVtYmVyKSAgICgoKG11bHRpYm9vdDJf dGFnXyMjdHlwZSMjX3QgKikodGFnKSktPm1lbWJlcikKKyNkZWZpbmUgZ2V0X21iMl9zdHJpbmco dGFnLCB0eXBlLCBtZW1iZXIpICgodTMyKWdldF9tYjJfZGF0YSh0YWcsIHR5cGUsIG1lbWJlcikp CisKIHN0YXRpYyB1MzIgYWxsb2M7CiAKIHN0YXRpYyB1MzIgYWxsb2NfbWVtKHUzMiBieXRlcykK QEAgLTM3LDYgKzQ4LDEyIEBAIHN0YXRpYyB1MzIgYWxsb2NfbWVtKHUzMiBieXRlcykKICAgICBy ZXR1cm4gYWxsb2MgLT0gQUxJR05fVVAoYnl0ZXMsIDE2KTsKIH0KIAorc3RhdGljIHZvaWQgemVy b19tZW0odTMyIHMsIHUzMiBieXRlcykKK3sKKyAgICB3aGlsZSAoIGJ5dGVzLS0gKQorICAgICAg ICAqKGNoYXIgKilzKysgPSAwOworfQorCiBzdGF0aWMgdTMyIGNvcHlfbWVtKHUzMiBzcmMsIHUz MiBieXRlcykKIHsKICAgICB1MzIgZHN0LCBkc3RfcmV0OwpAQCAtNjMsMTMgKzgwLDExIEBAIHN0 YXRpYyB1MzIgY29weV9zdHJpbmcodTMyIHNyYykKICAgICByZXR1cm4gY29weV9tZW0oc3JjLCBw IC0gc3JjICsgMSk7CiB9CiAKLW11bHRpYm9vdF9pbmZvX3QgX19zdGRjYWxsICpyZWxvYyh1MzIg bWJpX2luLCB1MzIgdHJhbXBvbGluZSkKK3N0YXRpYyBtdWx0aWJvb3RfaW5mb190ICptYmlfbWJp KHUzMiBtYmlfaW4pCiB7CiAgICAgaW50IGk7CiAgICAgbXVsdGlib290X2luZm9fdCAqbWJpX291 dDsKIAotICAgIGFsbG9jID0gdHJhbXBvbGluZTsKLQogICAgIG1iaV9vdXQgPSAobXVsdGlib290 X2luZm9fdCAqKWNvcHlfbWVtKG1iaV9pbiwgc2l6ZW9mKCptYmlfb3V0KSk7CiAKICAgICBpZiAo IG1iaV9vdXQtPmZsYWdzICYgTUJJX0NNRExJTkUgKQpAQCAtMTA2LDMgKzEyMSwxMTkgQEAgbXVs dGlib290X2luZm9fdCBfX3N0ZGNhbGwgKnJlbG9jKHUzMiBtYmlfaW4sIHUzMiB0cmFtcG9saW5l KQogCiAgICAgcmV0dXJuIG1iaV9vdXQ7CiB9CisKK3N0YXRpYyBtdWx0aWJvb3RfaW5mb190ICpt YmkyX21iaSh1MzIgbWJpX2luKQoreworICAgIGNvbnN0IG11bHRpYm9vdDJfbWVtb3J5X21hcF90 ICptbWFwX3NyYzsKKyAgICBjb25zdCBtdWx0aWJvb3QyX3RhZ190ICp0YWc7CisgICAgLyogRG8g bm90IGNvbXBsYWluIHRoYXQgbWJpX291dF9tb2RzIGlzIG5vdCBpbml0aWFsaXplZC4gKi8KKyAg ICBtb2R1bGVfdCAqbWJpX291dF9tb2RzID0gTlVMTDsKKyAgICBtZW1vcnlfbWFwX3QgKm1tYXBf ZHN0OworICAgIG11bHRpYm9vdF9pbmZvX3QgKm1iaV9vdXQ7CisgICAgdTMyIHB0cjsKKyAgICB1 bnNpZ25lZCBpbnQgaSwgbW9kX2lkeCA9IDA7CisKKyAgICBwdHIgPSBhbGxvY19tZW0oc2l6ZW9m KCptYmlfb3V0KSk7CisgICAgbWJpX291dCA9IChtdWx0aWJvb3RfaW5mb190ICopcHRyOworICAg IHplcm9fbWVtKHB0ciwgc2l6ZW9mKCptYmlfb3V0KSk7CisKKyAgICAvKiBTa2lwIE11bHRpYm9v dDIgaW5mb3JtYXRpb24gZml4ZWQgcGFydC4gKi8KKyAgICBwdHIgPSBBTElHTl9VUChtYmlfaW4g KyBzaXplb2YobXVsdGlib290Ml9maXhlZF90KSwgTVVMVElCT09UMl9UQUdfQUxJR04pOworCisg ICAgLyogR2V0IHRoZSBudW1iZXIgb2YgbW9kdWxlcy4gKi8KKyAgICBmb3IgKCB0YWcgPSAobXVs dGlib290Ml90YWdfdCAqKXB0cjsKKyAgICAgICAgICAodTMyKXRhZyAtIG1iaV9pbiA8ICgobXVs dGlib290Ml9maXhlZF90ICopbWJpX2luKS0+dG90YWxfc2l6ZTsKKyAgICAgICAgICB0YWcgPSAo bXVsdGlib290Ml90YWdfdCAqKUFMSUdOX1VQKCh1MzIpdGFnICsgdGFnLT5zaXplLCBNVUxUSUJP T1QyX1RBR19BTElHTikgKQorICAgICAgICBpZiAoIHRhZy0+dHlwZSA9PSBNVUxUSUJPT1QyX1RB R19UWVBFX01PRFVMRSApCisgICAgICAgICAgICArK21iaV9vdXQtPm1vZHNfY291bnQ7CisgICAg ICAgIGVsc2UgaWYgKCB0YWctPnR5cGUgPT0gTVVMVElCT09UMl9UQUdfVFlQRV9FTkQgKQorICAg ICAgICAgICAgYnJlYWs7CisKKyAgICBpZiAoIG1iaV9vdXQtPm1vZHNfY291bnQgKQorICAgIHsK KyAgICAgICAgbWJpX291dC0+ZmxhZ3MgPSBNQklfTU9EVUxFUzsKKyAgICAgICAgbWJpX291dC0+ bW9kc19hZGRyID0gYWxsb2NfbWVtKG1iaV9vdXQtPm1vZHNfY291bnQgKiBzaXplb2YobW9kdWxl X3QpKTsKKyAgICAgICAgbWJpX291dF9tb2RzID0gKG1vZHVsZV90ICopbWJpX291dC0+bW9kc19h ZGRyOworICAgIH0KKworICAgIC8qIFNraXAgTXVsdGlib290MiBpbmZvcm1hdGlvbiBmaXhlZCBw YXJ0LiAqLworICAgIHB0ciA9IEFMSUdOX1VQKG1iaV9pbiArIHNpemVvZihtdWx0aWJvb3QyX2Zp eGVkX3QpLCBNVUxUSUJPT1QyX1RBR19BTElHTik7CisKKyAgICAvKiBQdXQgYWxsIG5lZWRlZCBk YXRhIGludG8gbWJpX291dC4gKi8KKyAgICBmb3IgKCB0YWcgPSAobXVsdGlib290Ml90YWdfdCAq KXB0cjsKKyAgICAgICAgICAodTMyKXRhZyAtIG1iaV9pbiA8ICgobXVsdGlib290Ml9maXhlZF90 ICopbWJpX2luKS0+dG90YWxfc2l6ZTsKKyAgICAgICAgICB0YWcgPSAobXVsdGlib290Ml90YWdf dCAqKUFMSUdOX1VQKCh1MzIpdGFnICsgdGFnLT5zaXplLCBNVUxUSUJPT1QyX1RBR19BTElHTikg KQorICAgICAgICBzd2l0Y2ggKCB0YWctPnR5cGUgKQorICAgICAgICB7CisgICAgICAgIGNhc2Ug TVVMVElCT09UMl9UQUdfVFlQRV9CT09UX0xPQURFUl9OQU1FOgorICAgICAgICAgICAgbWJpX291 dC0+ZmxhZ3MgfD0gTUJJX0xPQURFUk5BTUU7CisgICAgICAgICAgICBwdHIgPSBnZXRfbWIyX3N0 cmluZyh0YWcsIHN0cmluZywgc3RyaW5nKTsKKyAgICAgICAgICAgIG1iaV9vdXQtPmJvb3RfbG9h ZGVyX25hbWUgPSBjb3B5X3N0cmluZyhwdHIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg ICAgY2FzZSBNVUxUSUJPT1QyX1RBR19UWVBFX0NNRExJTkU6CisgICAgICAgICAgICBtYmlfb3V0 LT5mbGFncyB8PSBNQklfQ01ETElORTsKKyAgICAgICAgICAgIHB0ciA9IGdldF9tYjJfc3RyaW5n KHRhZywgc3RyaW5nLCBzdHJpbmcpOworICAgICAgICAgICAgbWJpX291dC0+Y21kbGluZSA9IGNv cHlfc3RyaW5nKHB0cik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1VTFRJ Qk9PVDJfVEFHX1RZUEVfQkFTSUNfTUVNSU5GTzoKKyAgICAgICAgICAgIG1iaV9vdXQtPmZsYWdz IHw9IE1CSV9NRU1MSU1JVFM7CisgICAgICAgICAgICBtYmlfb3V0LT5tZW1fbG93ZXIgPSBnZXRf bWIyX2RhdGEodGFnLCBiYXNpY19tZW1pbmZvLCBtZW1fbG93ZXIpOworICAgICAgICAgICAgbWJp X291dC0+bWVtX3VwcGVyID0gZ2V0X21iMl9kYXRhKHRhZywgYmFzaWNfbWVtaW5mbywgbWVtX3Vw cGVyKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTVVMVElCT09UMl9UQUdf VFlQRV9NTUFQOgorICAgICAgICAgICAgbWJpX291dC0+ZmxhZ3MgfD0gTUJJX01FTU1BUDsKKyAg ICAgICAgICAgIG1iaV9vdXQtPm1tYXBfbGVuZ3RoID0gZ2V0X21iMl9kYXRhKHRhZywgbW1hcCwg c2l6ZSk7CisgICAgICAgICAgICBtYmlfb3V0LT5tbWFwX2xlbmd0aCAtPSBzaXplb2YobXVsdGli b290Ml90YWdfbW1hcF90KTsKKyAgICAgICAgICAgIG1iaV9vdXQtPm1tYXBfbGVuZ3RoIC89IGdl dF9tYjJfZGF0YSh0YWcsIG1tYXAsIGVudHJ5X3NpemUpOworICAgICAgICAgICAgbWJpX291dC0+ bW1hcF9sZW5ndGggKj0gc2l6ZW9mKG1lbW9yeV9tYXBfdCk7CisKKyAgICAgICAgICAgIG1iaV9v dXQtPm1tYXBfYWRkciA9IGFsbG9jX21lbShtYmlfb3V0LT5tbWFwX2xlbmd0aCk7CisKKyAgICAg ICAgICAgIG1tYXBfc3JjID0gZ2V0X21iMl9kYXRhKHRhZywgbW1hcCwgZW50cmllcyk7CisgICAg ICAgICAgICBtbWFwX2RzdCA9IChtZW1vcnlfbWFwX3QgKiltYmlfb3V0LT5tbWFwX2FkZHI7CisK KyAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgbWJpX291dC0+bW1hcF9sZW5ndGggLyBzaXpl b2YobWVtb3J5X21hcF90KTsgaSsrICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAv KiBJbml0IHNpemUgbWVtYmVyIHByb3Blcmx5LiAqLworICAgICAgICAgICAgICAgIG1tYXBfZHN0 W2ldLnNpemUgPSBzaXplb2YobWVtb3J5X21hcF90KTsKKyAgICAgICAgICAgICAgICBtbWFwX2Rz dFtpXS5zaXplIC09IHNpemVvZigoKG1lbW9yeV9tYXBfdCl7MH0pLnNpemUpOworICAgICAgICAg ICAgICAgIC8qIE5vdyBjb3B5IGEgZ2l2ZW4gcmVnaW9uIGRhdGEuICovCisgICAgICAgICAgICAg ICAgbW1hcF9kc3RbaV0uYmFzZV9hZGRyX2xvdyA9ICh1MzIpbW1hcF9zcmNbaV0uYWRkcjsKKyAg ICAgICAgICAgICAgICBtbWFwX2RzdFtpXS5iYXNlX2FkZHJfaGlnaCA9ICh1MzIpKG1tYXBfc3Jj W2ldLmFkZHIgPj4gMzIpOworICAgICAgICAgICAgICAgIG1tYXBfZHN0W2ldLmxlbmd0aF9sb3cg PSAodTMyKW1tYXBfc3JjW2ldLmxlbjsKKyAgICAgICAgICAgICAgICBtbWFwX2RzdFtpXS5sZW5n dGhfaGlnaCA9ICh1MzIpKG1tYXBfc3JjW2ldLmxlbiA+PiAzMik7CisgICAgICAgICAgICAgICAg bW1hcF9kc3RbaV0udHlwZSA9IG1tYXBfc3JjW2ldLnR5cGU7CisgICAgICAgICAgICB9CisgICAg ICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1VTFRJQk9PVDJfVEFHX1RZUEVfTU9EVUxF OgorICAgICAgICAgICAgbWJpX291dF9tb2RzW21vZF9pZHhdLm1vZF9zdGFydCA9IGdldF9tYjJf ZGF0YSh0YWcsIG1vZHVsZSwgbW9kX3N0YXJ0KTsKKyAgICAgICAgICAgIG1iaV9vdXRfbW9kc1tt b2RfaWR4XS5tb2RfZW5kID0gZ2V0X21iMl9kYXRhKHRhZywgbW9kdWxlLCBtb2RfZW5kKTsKKyAg ICAgICAgICAgIHB0ciA9IGdldF9tYjJfc3RyaW5nKHRhZywgbW9kdWxlLCBjbWRsaW5lKTsKKyAg ICAgICAgICAgIG1iaV9vdXRfbW9kc1ttb2RfaWR4XS5zdHJpbmcgPSBjb3B5X3N0cmluZyhwdHIp OworICAgICAgICAgICAgbWJpX291dF9tb2RzW21vZF9pZHhdLnJlc2VydmVkID0gMDsKKyAgICAg ICAgICAgICsrbW9kX2lkeDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTVVM VElCT09UMl9UQUdfVFlQRV9FTkQ6CisgICAgICAgICAgICByZXR1cm4gbWJpX291dDsKKworICAg ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgIHJldHVy biBtYmlfb3V0OworfQorCittdWx0aWJvb3RfaW5mb190IF9fc3RkY2FsbCAqcmVsb2ModTMyIG1i X21hZ2ljLCB1MzIgbWJpX2luLCB1MzIgdHJhbXBvbGluZSkKK3sKKyAgICBhbGxvYyA9IHRyYW1w b2xpbmU7CisKKyAgICBpZiAoIG1iX21hZ2ljID09IE1VTFRJQk9PVDJfQk9PVExPQURFUl9NQUdJ QyApCisgICAgICAgIHJldHVybiBtYmkyX21iaShtYmlfaW4pOworICAgIGVsc2UKKyAgICAgICAg cmV0dXJuIG1iaV9tYmkobWJpX2luKTsKK30KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZf NjQvYXNtLW9mZnNldHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYwppbmRl eCAwNWQyYjg1Li4wZmMxYzYzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1v ZmZzZXRzLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCkBAIC0xMyw2 ICsxMyw3IEBACiAjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgogI2luY2x1ZGUgPGFzbS9oYXJkaXJx Lmg+CiAjaW5jbHVkZSA8eGVuL211bHRpYm9vdC5oPgorI2luY2x1ZGUgPHhlbi9tdWx0aWJvb3Qy Lmg+CiAKICNkZWZpbmUgREVGSU5FKF9zeW0sIF92YWwpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBhc20gdm9sYXRpbGUgKCJcbi5hc2NpaVwi PT0+I2RlZmluZSAiICNfc3ltICIgJTAgLyogIiAjX3ZhbCAiICovPD09XCIiIFwKQEAgLTE2OCw2 ICsxNjksMTQgQEAgdm9pZCBfX2R1bW15X18odm9pZCkKICAgICBPRkZTRVQoTUJfZmxhZ3MsIG11 bHRpYm9vdF9pbmZvX3QsIGZsYWdzKTsKICAgICBPRkZTRVQoTUJfY21kbGluZSwgbXVsdGlib290 X2luZm9fdCwgY21kbGluZSk7CiAgICAgT0ZGU0VUKE1CX21lbV9sb3dlciwgbXVsdGlib290X2lu Zm9fdCwgbWVtX2xvd2VyKTsKKyAgICBCTEFOSygpOworCisgICAgREVGSU5FKE1CMl9maXhlZF9z aXplb2YsIHNpemVvZihtdWx0aWJvb3QyX2ZpeGVkX3QpKTsKKyAgICBPRkZTRVQoTUIyX2ZpeGVk X3RvdGFsX3NpemUsIG11bHRpYm9vdDJfZml4ZWRfdCwgdG90YWxfc2l6ZSk7CisgICAgT0ZGU0VU KE1CMl90YWdfdHlwZSwgbXVsdGlib290Ml90YWdfdCwgdHlwZSk7CisgICAgT0ZGU0VUKE1CMl90 YWdfc2l6ZSwgbXVsdGlib290Ml90YWdfdCwgc2l6ZSk7CisgICAgT0ZGU0VUKE1CMl9tZW1fbG93 ZXIsIG11bHRpYm9vdDJfdGFnX2Jhc2ljX21lbWluZm9fdCwgbWVtX2xvd2VyKTsKKyAgICBCTEFO SygpOwogCiAgICAgT0ZGU0VUKERPTUFJTl92bV9hc3Npc3QsIHN0cnVjdCBkb21haW4sIHZtX2Fz c2lzdCk7CiB9CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbXVsdGlib290Mi5oIGIveGVu L2luY2x1ZGUveGVuL211bHRpYm9vdDIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4wZjExM2YxCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2luY2x1ZGUveGVuL211bHRpYm9v dDIuaApAQCAtMCwwICsxLDE2OSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTksMjAwMywy MDA3LDIwMDgsMjAwOSwyMDEwICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAqCisg KiAgbXVsdGlib290Mi5oIC0gTXVsdGlib290IDIgaGVhZGVyIGZpbGUuCisgKgorICogIEJhc2Vk IG9uIGdydWItMi4wMC9pbmNsdWRlL211bHRpYm9vdDIuaCBmaWxlLgorICoKKyAqICBQZXJtaXNz aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh aW5pbmcgYSBjb3B5CisgKiAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu dGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisgKiAgZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUK KyAqICByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqICBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUs IGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICogIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgor ICogIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiAgSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFksCisgKiAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P TklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIEFOWQorICogIERFVkVMT1BFUiBPUiBE SVNUUklCVVRPUiBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFC SUxJVFksCisgKiAgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUgorICogIElOIENPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUu CisgKi8KKworI2lmbmRlZiBfX01VTFRJQk9PVDJfSF9fCisjZGVmaW5lIF9fTVVMVElCT09UMl9I X18KKworLyogVGhlIG1hZ2ljIGZpZWxkIHNob3VsZCBjb250YWluIHRoaXMuICAqLworI2RlZmlu ZSBNVUxUSUJPT1QyX0hFQURFUl9NQUdJQwkJCQkweGU4NTI1MGQ2CisKKy8qIFRoaXMgc2hvdWxk IGJlIGluICVlYXggb24geDg2IGFyY2hpdGVjdHVyZS4gICovCisjZGVmaW5lIE1VTFRJQk9PVDJf Qk9PVExPQURFUl9NQUdJQwkJCTB4MzZkNzYyODkKKworLyogSG93IG1hbnkgYnl0ZXMgZnJvbSB0 aGUgc3RhcnQgb2YgdGhlIGZpbGUgd2Ugc2VhcmNoIGZvciB0aGUgaGVhZGVyLiAgKi8KKyNkZWZp bmUgTVVMVElCT09UMl9TRUFSQ0gJCQkJMzI3NjgKKworLyogTXVsdGlib290IDIgaGVhZGVyIGFs aWdubWVudC4gKi8KKyNkZWZpbmUgTVVMVElCT09UMl9IRUFERVJfQUxJR04JCQkJOAorCisvKiBB bGlnbm1lbnQgb2YgbXVsdGlib290IDIgbW9kdWxlcy4gICovCisjZGVmaW5lIE1VTFRJQk9PVDJf TU9EX0FMSUdOCQkJCTB4MDAwMDEwMDAKKworLyogQWxpZ25tZW50IG9mIHRoZSBtdWx0aWJvb3Qg MiBpbmZvIHN0cnVjdHVyZS4gICovCisjZGVmaW5lIE1VTFRJQk9PVDJfSU5GT19BTElHTgkJCQkw eDAwMDAwMDA4CisKKy8qIE11bHRpYm9vdCAyIGFyY2hpdGVjdHVyZXMuICovCisjZGVmaW5lIE1V TFRJQk9PVDJfQVJDSElURUNUVVJFX0kzODYJCQkwCisjZGVmaW5lIE1VTFRJQk9PVDJfQVJDSElU RUNUVVJFX01JUFMzMgkJCTQKKworLyogSGVhZGVyIHRhZyB0eXBlcy4gKi8KKyNkZWZpbmUgTVVM VElCT09UMl9IRUFERVJfVEFHX0VORAkJCTAKKyNkZWZpbmUgTVVMVElCT09UMl9IRUFERVJfVEFH X0lORk9STUFUSU9OX1JFUVVFU1QJMQorI2RlZmluZSBNVUxUSUJPT1QyX0hFQURFUl9UQUdfQURE UkVTUwkJCTIKKyNkZWZpbmUgTVVMVElCT09UMl9IRUFERVJfVEFHX0VOVFJZX0FERFJFU1MJCTMK KyNkZWZpbmUgTVVMVElCT09UMl9IRUFERVJfVEFHX0NPTlNPTEVfRkxBR1MJCTQKKyNkZWZpbmUg TVVMVElCT09UMl9IRUFERVJfVEFHX0ZSQU1FQlVGRkVSCQk1CisjZGVmaW5lIE1VTFRJQk9PVDJf SEVBREVSX1RBR19NT0RVTEVfQUxJR04JCTYKKyNkZWZpbmUgTVVMVElCT09UMl9IRUFERVJfVEFH X0VGSV9CUwkJCTcKKyNkZWZpbmUgTVVMVElCT09UMl9IRUFERVJfVEFHX0VOVFJZX0FERFJFU1Nf RUZJMzIJOAorI2RlZmluZSBNVUxUSUJPT1QyX0hFQURFUl9UQUdfRU5UUllfQUREUkVTU19FRkk2 NAk5CisKKy8qIEhlYWRlciB0YWcgZmxhZ3MuICovCisjZGVmaW5lIE1VTFRJQk9PVDJfSEVBREVS X1RBR19SRVFVSVJFRAkJCTAKKyNkZWZpbmUgTVVMVElCT09UMl9IRUFERVJfVEFHX09QVElPTkFM CQkJMQorCisvKiBIZWFkZXIgY29uc29sZSB0YWcgY29uc29sZV9mbGFncy4gKi8KKyNkZWZpbmUg TVVMVElCT09UMl9DT05TT0xFX0ZMQUdTX0NPTlNPTEVfUkVRVUlSRUQJMQorI2RlZmluZSBNVUxU SUJPT1QyX0NPTlNPTEVfRkxBR1NfRUdBX1RFWFRfU1VQUE9SVEVECTIKKworLyogRmxhZ3Mgc2V0 IGluIHRoZSAnZmxhZ3MnIG1lbWJlciBvZiB0aGUgbXVsdGlib290IGhlYWRlci4gICovCisjZGVm aW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfRU5ECQkJCTAKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdf VFlQRV9DTURMSU5FCQkJMQorI2RlZmluZSBNVUxUSUJPT1QyX1RBR19UWVBFX0JPT1RfTE9BREVS X05BTUUJCTIKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9NT0RVTEUJCQkzCisjZGVmaW5l IE1VTFRJQk9PVDJfVEFHX1RZUEVfQkFTSUNfTUVNSU5GTwkJNAorI2RlZmluZSBNVUxUSUJPT1Qy X1RBR19UWVBFX0JPT1RERVYJCQk1CisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfTU1BUAkJ CTYKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9WQkUJCQkJNworI2RlZmluZSBNVUxUSUJP T1QyX1RBR19UWVBFX0ZSQU1FQlVGRkVSCQkJOAorI2RlZmluZSBNVUxUSUJPT1QyX1RBR19UWVBF X0VMRl9TRUNUSU9OUwkJOQorI2RlZmluZSBNVUxUSUJPT1QyX1RBR19UWVBFX0FQTQkJCQkxMAor I2RlZmluZSBNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTMyCQkJMTEKKyNkZWZpbmUgTVVMVElCT09U Ml9UQUdfVFlQRV9FRkk2NAkJCTEyCisjZGVmaW5lIE1VTFRJQk9PVDJfVEFHX1RZUEVfU01CSU9T CQkJMTMKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9BQ1BJX09MRAkJCTE0CisjZGVmaW5l IE1VTFRJQk9PVDJfVEFHX1RZUEVfQUNQSV9ORVcJCQkxNQorI2RlZmluZSBNVUxUSUJPT1QyX1RB R19UWVBFX05FVFdPUksJCQkxNgorI2RlZmluZSBNVUxUSUJPT1QyX1RBR19UWVBFX0VGSV9NTUFQ CQkJMTcKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdfVFlQRV9FRklfQlMJCQkxOAorI2RlZmluZSBN VUxUSUJPT1QyX1RBR19UWVBFX0VGSTMyX0lICQkJMTkKKyNkZWZpbmUgTVVMVElCT09UMl9UQUdf VFlQRV9FRkk2NF9JSAkJCTIwCisKKy8qIE11bHRpYm9vdCAyIHRhZyBhbGlnbm1lbnQuICovCisj ZGVmaW5lIE1VTFRJQk9PVDJfVEFHX0FMSUdOCQkJCTgKKworLyogTWVtb3J5IHR5cGVzLiAqLwor I2RlZmluZSBNVUxUSUJPT1QyX01FTU9SWV9BVkFJTEFCTEUJCQkxCisjZGVmaW5lIE1VTFRJQk9P VDJfTUVNT1JZX1JFU0VSVkVECQkJMgorI2RlZmluZSBNVUxUSUJPT1QyX01FTU9SWV9BQ1BJX1JF Q0xBSU1BQkxFCQkzCisjZGVmaW5lIE1VTFRJQk9PVDJfTUVNT1JZX05WUwkJCQk0CisjZGVmaW5l IE1VTFRJQk9PVDJfTUVNT1JZX0JBRFJBTQkJCTUKKworLyogRnJhbWVidWZmZXIgdHlwZXMuICov CisjZGVmaW5lIE1VTFRJQk9PVDJfRlJBTUVCVUZGRVJfVFlQRV9JTkRFWEVECQkwCisjZGVmaW5l IE1VTFRJQk9PVDJfRlJBTUVCVUZGRVJfVFlQRV9SR0IJCQkxCisjZGVmaW5lIE1VTFRJQk9PVDJf RlJBTUVCVUZGRVJfVFlQRV9FR0FfVEVYVAkJMgorCisjaWZuZGVmIF9fQVNTRU1CTFlfXwordHlw ZWRlZiBzdHJ1Y3QgeworICAgIHUzMiB0b3RhbF9zaXplOworICAgIHUzMiByZXNlcnZlZDsKK30g bXVsdGlib290Ml9maXhlZF90OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdTMyIHR5cGU7Cisg ICAgdTMyIHNpemU7Cit9IG11bHRpYm9vdDJfdGFnX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAg ICB1MzIgdHlwZTsKKyAgICB1MzIgc2l6ZTsKKyAgICBjaGFyIHN0cmluZ1swXTsKK30gbXVsdGli b290Ml90YWdfc3RyaW5nX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1MzIgdHlwZTsKKyAg ICB1MzIgc2l6ZTsKKyAgICB1MzIgbWVtX2xvd2VyOworICAgIHUzMiBtZW1fdXBwZXI7Cit9IG11 bHRpYm9vdDJfdGFnX2Jhc2ljX21lbWluZm9fdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHU2 NCBhZGRyOworICAgIHU2NCBsZW47CisgICAgdTMyIHR5cGU7CisgICAgdTMyIHplcm87Cit9IG11 bHRpYm9vdDJfbWVtb3J5X21hcF90OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdTMyIHR5cGU7 CisgICAgdTMyIHNpemU7CisgICAgdTMyIGVudHJ5X3NpemU7CisgICAgdTMyIGVudHJ5X3ZlcnNp b247CisgICAgbXVsdGlib290Ml9tZW1vcnlfbWFwX3QgZW50cmllc1swXTsKK30gbXVsdGlib290 Ml90YWdfbW1hcF90OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdTMyIHR5cGU7CisgICAgdTMy IHNpemU7CisgICAgdTY0IHBvaW50ZXI7Cit9IG11bHRpYm9vdDJfdGFnX2VmaTY0X3Q7CisKK3R5 cGVkZWYgc3RydWN0IHsKKyAgICB1MzIgdHlwZTsKKyAgICB1MzIgc2l6ZTsKKyAgICB1NjQgcG9p bnRlcjsKK30gbXVsdGlib290Ml90YWdfZWZpNjRfaWhfdDsKKwordHlwZWRlZiBzdHJ1Y3Qgewor ICAgIHUzMiB0eXBlOworICAgIHUzMiBzaXplOworICAgIHUzMiBtb2Rfc3RhcnQ7CisgICAgdTMy IG1vZF9lbmQ7CisgICAgY2hhciBjbWRsaW5lWzBdOworfSBtdWx0aWJvb3QyX3RhZ19tb2R1bGVf dDsKKyNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KKworI2VuZGlmIC8qIF9fTVVMVElCT09UMl9I X18gKi8KLS0gCjEuNy4xMC40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==