From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B3C5CC433DF for ; Tue, 30 Jun 2020 21:28:48 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8E3F02065D for ; Tue, 30 Jun 2020 21:28:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8E3F02065D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 50F886E30F; Tue, 30 Jun 2020 21:28:38 +0000 (UTC) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 10CCF89CA1; Tue, 30 Jun 2020 21:28:35 +0000 (UTC) IronPort-SDR: k8eB322WdU0UmIHxAG6jqcx5S3ka6ToyG85CEhXLnJsTLtpibgK2h/WxutOC2x7oHwUAzhjdVb AKXH5ohfgzPA== X-IronPort-AV: E=McAfee;i="6000,8403,9668"; a="146386934" X-IronPort-AV: E=Sophos;i="5.75,298,1589266800"; d="scan'208";a="146386934" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2020 14:28:34 -0700 IronPort-SDR: 1TKpUY4YpgEV3nI9YYHpl+FHf4u+6x4BboE1T2IgNjzwxPOi4datc4vQWCIRfVPdSgVOILZazA txn85yhIzmaw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,298,1589266800"; d="scan'208";a="481066599" Received: from hdwiyono-mobl.amr.corp.intel.com (HELO achrisan-DESK2.amr.corp.intel.com) ([10.254.176.225]) by fmsmga006.fm.intel.com with ESMTP; 30 Jun 2020 14:28:33 -0700 From: Anitha Chrisanthus To: dri-devel@lists.freedesktop.org, anitha.chrisanthus@intel.com, bob.j.paauwe@intel.com, edmund.j.dea@intel.com Subject: [PATCH 01/59] drm/kmb: Add support for KeemBay Display Date: Tue, 30 Jun 2020 14:27:13 -0700 Message-Id: <1593552491-23698-2-git-send-email-anitha.chrisanthus@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1593552491-23698-1-git-send-email-anitha.chrisanthus@intel.com> References: <1593552491-23698-1-git-send-email-anitha.chrisanthus@intel.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org, rodrigo.vivi@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SW5pdGlhbCBjaGVjay1pbiBmb3IgYmFzaWMgZGlzcGxheSBkcml2ZXIgZm9yIEtlZW1CYXkgZmFt aWx5IG9mIFNPQ3MuClRoaXMgaXMgbm90IHRlc3RlZCBhbmQgZG9lcyBub3Qgd29yayBhbmQgYWxz byB0aGVyZSBhcmUgbWFueSBUQkRzIGluIHRoZQpjb2RlIHdoaWNoIHdpbGwgYmUgaW1wbGVtZW50 ZWQgaW4gZnV0dXJlIGNvbW1pdHMuCgpTaWduZWQtb2ZmLWJ5OiBBbml0aGEgQ2hyaXNhbnRodXMg PGFuaXRoYS5jaHJpc2FudGh1c0BpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBCb2IgUGFhdXdlIDxi b2Iuai5wYWF1d2VAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9LY29uZmlnICAgICAg ICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlICAgICAgICB8ICAgMSArCiBkcml2 ZXJzL2dwdS9kcm0va21iL0tjb25maWcgICAgIHwgIDEyICsrCiBkcml2ZXJzL2dwdS9kcm0va21i L01ha2VmaWxlICAgIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9rbWIva21iX2NydGMuYyAgfCAy MTUgKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfY3J0Yy5oICB8 ICA1OSArKysrKysKIGRyaXZlcnMvZ3B1L2RybS9rbWIva21iX2Rydi5jICAgfCAzNzIgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9rbWIva21iX2Rydi5o ICAgfCAgNjcgKysrKysrCiBkcml2ZXJzL2dwdS9kcm0va21iL2ttYl9wbGFuZS5jIHwgMjUyICsr KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9rbWIva21iX3BsYW5lLmggfCAg NTIgKysrKysKIGRyaXZlcnMvZ3B1L2RybS9rbWIva21iX3JlZ3MuaCAgfCA0NjAgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMTEgZmlsZXMgY2hhbmdlZCwgMTQ5NCBp bnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2ttYi9LY29u ZmlnCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2ttYi9NYWtlZmlsZQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9rbWIva21iX2NydGMuYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9rbWIva21iX2NydGMuaAogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS9rbWIva21iX2Rydi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL2ttYi9rbWJfZHJ2LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0va21iL2ttYl9wbGFuZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJt L2ttYi9rbWJfcGxhbmUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9rbWIv a21iX3JlZ3MuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJpdmVy cy9ncHUvZHJtL0tjb25maWcKaW5kZXggYzRmZDU3ZC4uNTI5MjU3NCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKQEAgLTI3 NSw2ICsyNzUsOCBAQCBzb3VyY2UgImRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L0tjb25maWciCiAK IHNvdXJjZSAiZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZyIKIAorc291cmNlICJkcml2ZXJz L2dwdS9kcm0va21iL0tjb25maWciCisKIGNvbmZpZyBEUk1fVkdFTQogCXRyaXN0YXRlICJWaXJ0 dWFsIEdFTSBwcm92aWRlciIKIAlkZXBlbmRzIG9uIERSTQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCmluZGV4IDJjMGU1YTcu LmJkYmRjNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQorKysgYi9kcml2 ZXJzL2dwdS9kcm0vTWFrZWZpbGUKQEAgLTcxLDYgKzcxLDcgQEAgb2JqLSQoQ09ORklHX0RSTV9B TURHUFUpKz0gYW1kL2FtZGdwdS8KIG9iai0kKENPTkZJR19EUk1fTUdBKQkrPSBtZ2EvCiBvYmot JChDT05GSUdfRFJNX0k4MTApCSs9IGk4MTAvCiBvYmotJChDT05GSUdfRFJNX0k5MTUpCSs9IGk5 MTUvCitvYmotJChDT05GSUdfRFJNX0tNQl9ESVNQTEFZKSAgKz0ga21iLwogb2JqLSQoQ09ORklH X0RSTV9NR0FHMjAwKSArPSBtZ2FnMjAwLwogb2JqLSQoQ09ORklHX0RSTV9WM0QpICArPSB2M2Qv CiBvYmotJChDT05GSUdfRFJNX1ZDNCkgICs9IHZjNC8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9rbWIvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDVhOTk2MgotLS0gL2Rldi9udWxsCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZwpAQCAtMCwwICsxLDEyIEBACitjb25maWcgRFJNX0tN Ql9ESVNQTEFZCisJdHJpc3RhdGUgIktFRU1CQVkgRElTUExBWSIKKwlkZXBlbmRzIG9uIERSTSAm JiBPRiAmJiAoQVJNIHx8IEFSTTY0KQorCWRlcGVuZHMgb24gQ09NTU9OX0NMSworCXNlbGVjdCBE Uk1fS01TX0hFTFBFUgorCXNlbGVjdCBEUk1fS01TX0NNQV9IRUxQRVIKKwlzZWxlY3QgRFJNX0dF TV9DTUFfSEVMUEVSCisJc2VsZWN0IFZJREVPTU9ERV9IRUxQRVJTCisJaGVscAorCUNob29zZSB0 aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBhbiBLRUVNQkFZIERJU1BMQVkgY29udHJvbGxlci4KKwor CUlmIE0gaXMgc2VsZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBrbWItZGlzcGxheS4K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9rbWIvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9k cm0va21iL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlOWYx OWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0va21iL01ha2VmaWxlCkBAIC0w LDAgKzEsMiBAQAora21iLWRpc3BsYXkteSA6PSBrbWJfY3J0Yy5vIGttYl9kcnYubyBrbWJfcGxh bmUubworb2JqLSQoQ09ORklHX0RSTV9LTUJfRElTUExBWSkJKz0ga21iLWRpc3BsYXkubwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJt L2ttYi9rbWJfY3J0Yy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiMWZm ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0va21iL2ttYl9jcnRjLmMKQEAg LTAsMCArMSwyMTUgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgor ICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9u IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p bmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp b24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdp dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSBy aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBz dWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8g ZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRp bmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGll cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRI RSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL SU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP IFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAor ICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xB SU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g T0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCisgKiBPVVQgT0Yg T1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERF QUxJTkdTIElOIFRIRQorICogU09GVFdBUkUuCisgKgorICoKKyAqLworCisjaW5jbHVkZSA8ZHJt L2RybV9hdG9taWMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KKyNpbmNs dWRlIDxkcm0vZHJtX2NydGMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cisj aW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9o ZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFfaGVscGVyLmg+CisjaW5jbHVkZSA8 ZHJtL2RybV9vZi5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CisjaW5jbHVk ZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KKyNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kYXRhL3NpbXBsZWZiLmg+CisjaW5jbHVkZSA8dmlkZW8vdmlkZW9tb2Rl Lmg+CisjaW5jbHVkZSAia21iX2NydGMuaCIKKyNpbmNsdWRlICJrbWJfZHJ2LmgiCisjaW5jbHVk ZSAia21iX3BsYW5lLmgiCisjaW5jbHVkZSAia21iX3JlZ3MuaCIKKworc3RhdGljIHZvaWQga21i X2NydGNfY2xlYW51cChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCit7CisJc3RydWN0IGttYl9jcnRj ICpsX2NydGMgPSB0b19rbWJfY3J0YyhjcnRjKTsKKworCWRybV9jcnRjX2NsZWFudXAoY3J0Yyk7 CisJa2ZyZWUobF9jcnRjKTsKK30KKworc3RhdGljIGludCBrbWJfY3J0Y19lbmFibGVfdmJsYW5r KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3Qga21iX2RybV9wcml2YXRlICpsY2Qg PSBjcnRjX3RvX2ttYl9wcml2KGNydGMpOworCisJLypjbGVhciBpbnRlcnJ1cHQgKi8KKwlrbWJf d3JpdGUobGNkLCBMQ0RfSU5UX0NMRUFSLCBMQ0RfSU5UX1ZFUlRfQ09NUCk7CisJLypzZXQgd2hp Y2ggaW50ZXJ2YWwgdG8gZ2VuZXJhdGUgdmVydGljYWwgaW50ZXJydXB0ICovCisJa21iX3dyaXRl KGxjZCwgTENEX1ZTVEFUVVNfQ09NUEFSRSwgTENEX1ZTVEFUVVNfQ09NUEFSRV9WU1lOQyk7CisJ LyogZW5hYmxlIHZlcnRpY2FsIGludGVycnVwdCAqLworCWttYl93cml0ZShsY2QsIExDRF9JTlRf RU5BQkxFLCBMQ0RfSU5UX1ZFUlRfQ09NUCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lk IGttYl9jcnRjX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3sKKwlzdHJ1 Y3Qga21iX2RybV9wcml2YXRlICpsY2QgPSBjcnRjX3RvX2ttYl9wcml2KGNydGMpOworCisJLypj bGVhciBpbnRlcnJ1cHQgKi8KKwlrbWJfd3JpdGUobGNkLCBMQ0RfSU5UX0NMRUFSLCBMQ0RfSU5U X1ZFUlRfQ09NUCk7CisJLyogZGlzYWJsZSB2ZXJ0aWNhbCBpbnRlcnJ1cHQgKi8KKwlrbWJfd3Jp dGUobGNkLCBMQ0RfSU5UX0VOQUJMRSwgMCk7CisKKy8qIFRCRAorICogIHNldCB0aGUgQklUMiAo VkVSVElDQUxfQ09NUEFSRV9JTlRFUlJVUFQpIG9mIHRoZSBMQ0RfSU5UX0VOQUJMRSByZWdpc3Rl cgorICogIHNldCB0aGUgcmVxdWlyZWQgYml0IExDRF9WU1RBVFVTX0NPTVBBUkUgcmVnaXN0ZXIK KyAqICBOb3Qgc3VyZSBpZiBhbnl0aGluZyBuZWVkcyB0byBiZSBkb25lIGluIHRoZSBJQ0IKKyAq LworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIGttYl9jcnRjX2Z1bmNz ID0geworCS5kZXN0cm95ID0ga21iX2NydGNfY2xlYW51cCwKKwkuc2V0X2NvbmZpZyA9IGRybV9h dG9taWNfaGVscGVyX3NldF9jb25maWcsCisJLnBhZ2VfZmxpcCA9IGRybV9hdG9taWNfaGVscGVy X3BhZ2VfZmxpcCwKKwkucmVzZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0LAorCS5h dG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVf c3RhdGUsCisJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19k ZXN0cm95X3N0YXRlLAorCS5lbmFibGVfdmJsYW5rID0ga21iX2NydGNfZW5hYmxlX3ZibGFuaywK KwkuZGlzYWJsZV92YmxhbmsgPSBrbWJfY3J0Y19kaXNhYmxlX3ZibGFuaywKK307CisKK3N0YXRp YyB2b2lkIGttYl9jcnRjX21vZGVfc2V0X25vZmIoc3RydWN0IGRybV9jcnRjICpjcnRjKQorewor CXN0cnVjdCBrbWJfZHJtX3ByaXZhdGUgKmxjZCA9IGNydGNfdG9fa21iX3ByaXYoY3J0Yyk7CisJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0gPSAmY3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGU7 CisJc3RydWN0IHZpZGVvbW9kZSB2bTsKKwlpbnQgdnN5bmNfc3RhcnRfb2Zmc2V0OworCWludCB2 c3luY19lbmRfb2Zmc2V0OworCXVuc2lnbmVkIGludCBjdHJsID0gMDsKKworCXZtLnZmcm9udF9w b3JjaCA9IG0tPmNydGNfdnN5bmNfc3RhcnQgLSBtLT5jcnRjX3ZkaXNwbGF5OworCXZtLnZiYWNr X3BvcmNoID0gbS0+Y3J0Y192dG90YWwgLSBtLT5jcnRjX3ZzeW5jX2VuZDsKKwl2bS52c3luY19s ZW4gPSBtLT5jcnRjX3ZzeW5jX2VuZCAtIG0tPmNydGNfdnN5bmNfc3RhcnQ7CisJdm0uaGZyb250 X3BvcmNoID0gbS0+Y3J0Y19oc3luY19zdGFydCAtIG0tPmNydGNfaGRpc3BsYXk7CisJdm0uaGJh Y2tfcG9yY2ggPSBtLT5jcnRjX2h0b3RhbCAtIG0tPmNydGNfaHN5bmNfZW5kOworCXZtLmhzeW5j X2xlbiA9IG0tPmNydGNfaHN5bmNfZW5kIC0gbS0+Y3J0Y19oc3luY19zdGFydDsKKworCXZzeW5j X3N0YXJ0X29mZnNldCA9IG0tPmNydGNfdnN5bmNfc3RhcnQgLSBtLT5jcnRjX2hzeW5jX3N0YXJ0 OworCXZzeW5jX2VuZF9vZmZzZXQgPSBtLT5jcnRjX3ZzeW5jX2VuZCAtIG0tPmNydGNfaHN5bmNf ZW5kOworCisJa21iX3dyaXRlKGxjZCwgTENEX1ZfQUNUSVZFSEVJR0hULCBtLT5jcnRjX3ZkaXNw bGF5IC0gMSk7CisJa21iX3dyaXRlKGxjZCwgTENEX1ZfQkFDS1BPUkNILCB2bS52YmFja19wb3Jj aCAtIDEpOworCWttYl93cml0ZShsY2QsIExDRF9WX0ZST05UUE9SQ0gsIHZtLnZmcm9udF9wb3Jj aCAtIDEpOworCWttYl93cml0ZShsY2QsIExDRF9WU1lOQ19XSURUSCwgdm0udnN5bmNfbGVuIC0g MSk7CisJa21iX3dyaXRlKGxjZCwgTENEX0hfQUNUSVZFV0lEVEgsIG0tPmNydGNfaGRpc3BsYXkg LSAxKTsKKwlrbWJfd3JpdGUobGNkLCBMQ0RfSF9CQUNLUE9SQ0gsIHZtLmhiYWNrX3BvcmNoIC0g MSk7CisJa21iX3dyaXRlKGxjZCwgTENEX0hfRlJPTlRQT1JDSCwgdm0uaGZyb250X3BvcmNoIC0g MSk7CisJa21iX3dyaXRlKGxjZCwgTENEX0hTWU5DX1dJRFRILCB2bS5oc3luY19sZW4gLSAxKTsK KworCWlmIChtLT5mbGFncyA9PSBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkgeworCQlrbWJfd3Jp dGUobGNkLCBMQ0RfVlNZTkNfV0lEVEhfRVZFTiwgdm0udnN5bmNfbGVuIC0gMSk7CisJCWttYl93 cml0ZShsY2QsIExDRF9WX0JBQ0tQT1JDSF9FVkVOLCB2bS52YmFja19wb3JjaCAtIDEpOworCQlr bWJfd3JpdGUobGNkLCBMQ0RfVl9GUk9OVFBPUkNIX0VWRU4sIHZtLnZmcm9udF9wb3JjaCAtIDEp OworCQlrbWJfd3JpdGUobGNkLCBMQ0RfVl9BQ1RJVkVIRUlHSFRfRVZFTiwgbS0+Y3J0Y192ZGlz cGxheSAtIDEpOworCQlrbWJfd3JpdGUobGNkLCBMQ0RfVlNZTkNfU1RBUlRfRVZFTiwgdnN5bmNf c3RhcnRfb2Zmc2V0KTsKKwkJa21iX3dyaXRlKGxjZCwgTENEX1ZTWU5DX0VORF9FVkVOLCB2c3lu Y19lbmRfb2Zmc2V0KTsKKwl9CisJLyogZW5hYmxlIGFsbCA0IGxheWVycyAqLworCWN0cmwgPSBM Q0RfQ1RSTF9FTkFCTEUgfCBMQ0RfQ1RSTF9WTDFfRU5BQkxFCisJICAgIHwgTENEX0NUUkxfVkwy X0VOQUJMRSB8IExDRF9DVFJMX0dMMV9FTkFCTEUgfCBMQ0RfQ1RSTF9HTDJfRU5BQkxFOworCWN0 cmwgfD0gTENEX0NUUkxfUFJPR1JFU1NJVkUgfCBMQ0RfQ1RSTF9USU1fR0VOX0VOQUJMRQorCSAg ICB8IExDRF9DVFJMX09VVFBVVF9FTkFCTEVEOworCWttYl93cml0ZShsY2QsIExDRF9DT05UUk9M LCBjdHJsKTsKKworCWttYl93cml0ZShsY2QsIExDRF9USU1JTkdfR0VOX1RSSUcsIEVOQUJMRSk7 CisKKwkvKiBUQkQgKi8KKwkvKiBzZXQgY2xvY2tzIGhlcmUgKi8KK30KKworc3RhdGljIHZvaWQg a21iX2NydGNfYXRvbWljX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJICAgc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpvbGRfc3RhdGUpCit7CisJc3RydWN0IGttYl9kcm1fcHJpdmF0 ZSAqbGNkID0gY3J0Y190b19rbWJfcHJpdihjcnRjKTsKKworCWNsa19wcmVwYXJlX2VuYWJsZShs Y2QtPmNsayk7CisJa21iX2NydGNfbW9kZV9zZXRfbm9mYihjcnRjKTsKKwlkcm1fY3J0Y192Ymxh bmtfb24oY3J0Yyk7Cit9CisKK3N0YXRpYyB2b2lkIGttYl9jcnRjX2F0b21pY19kaXNhYmxlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRf c3RhdGUpCit7CisJc3RydWN0IGttYl9kcm1fcHJpdmF0ZSAqbGNkID0gY3J0Y190b19rbWJfcHJp dihjcnRjKTsKKworCS8qIGFsd2F5cyBkaXNhYmxlIHBsYW5lcyBvbiB0aGUgQ1JUQyB0aGF0IGlz IGJlaW5nIHR1cm5lZCBvZmYgKi8KKwlkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lc19v bl9jcnRjKG9sZF9zdGF0ZSwgZmFsc2UpOworCisJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsK KwljbGtfZGlzYWJsZV91bnByZXBhcmUobGNkLT5jbGspOworfQorCitzdGF0aWMgdm9pZCBrbWJf Y3J0Y19hdG9taWNfYmVnaW4oc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSAgc3RydWN0IGRy bV9jcnRjX3N0YXRlICpzdGF0ZSkKK3sKKwkvKiBUQkQgKi8KKwkvKmRpc2FibGUgIHZibGFuayBp bnRlcnJ1cHRzIGhlcmUKKwkgKiBjbGVhciBCSVQgMiAoVkVSVElDQUxfQ09NUEFSRV9JTlRFUlJV UFQpIExDRF9JTlRfRU5BQkxFCisJICovCit9CisKK3N0YXRpYyB2b2lkIGttYl9jcnRjX2F0b21p Y19mbHVzaChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJICBzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKnN0YXRlKQoreworCS8qIFRCRCAqLworCS8qZW5hYmxlICB2YmxhbmsgaW50ZXJydXB0cyBh ZnRlcgorCSAqIHNldCBCSVQgMiAoVkVSVElDQUxfQ09NUEFSRV9JTlRFUlJVUFQpIExDRF9JTlRf RU5BQkxFCisJICovCisKKwlzcGluX2xvY2tfaXJxKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2spOwor CWlmIChjcnRjLT5zdGF0ZS0+ZXZlbnQpCisJCWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50KGNy dGMsIGNydGMtPnN0YXRlLT5ldmVudCk7CisJY3J0Yy0+c3RhdGUtPmV2ZW50ID0gTlVMTDsKKwlz cGluX3VubG9ja19pcnEoJmNydGMtPmRldi0+ZXZlbnRfbG9jayk7CisKK30KKworc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3Mga21iX2NydGNfaGVscGVyX2Z1bmNzID0g eworCS5hdG9taWNfYmVnaW4gPSBrbWJfY3J0Y19hdG9taWNfYmVnaW4sCisJLmF0b21pY19lbmFi bGUgPSBrbWJfY3J0Y19hdG9taWNfZW5hYmxlLAorCS5hdG9taWNfZGlzYWJsZSA9IGttYl9jcnRj X2F0b21pY19kaXNhYmxlLAorCS5hdG9taWNfZmx1c2ggPSBrbWJfY3J0Y19hdG9taWNfZmx1c2gs Cit9OworCitpbnQga21iX3NldHVwX2NydGMoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKK3sKKwlz dHJ1Y3Qga21iX2RybV9wcml2YXRlICpsY2QgPSBkcm0tPmRldl9wcml2YXRlOworCXN0cnVjdCBk cm1fcGxhbmUgKnByaW1hcnk7CisJaW50IHJldDsKKworCXByaW1hcnkgPSBrbWJfcGxhbmVfaW5p dChkcm0pOworCWlmIChJU19FUlIocHJpbWFyeSkpCisJCXJldHVybiBQVFJfRVJSKHByaW1hcnkp OworCisJcmV0ID0gZHJtX2NydGNfaW5pdF93aXRoX3BsYW5lcyhkcm0sICZsY2QtPmNydGMsIHBy aW1hcnksIE5VTEwsCisJCQkJCSZrbWJfY3J0Y19mdW5jcywgTlVMTCk7CisJaWYgKHJldCkgewor CQlrbWJfcGxhbmVfZGVzdHJveShwcmltYXJ5KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlkcm1f Y3J0Y19oZWxwZXJfYWRkKCZsY2QtPmNydGMsICZrbWJfY3J0Y19oZWxwZXJfZnVuY3MpOworCXJl dHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfY3J0Yy5oIGIv ZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfY3J0Yy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjA5NTI3MzMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0va21i L2ttYl9jcnRjLmgKQEAgLTAsMCArMSw1OSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IE1JVAorICoKKyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCisgKgorICog UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz b24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9u CisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz dHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVy bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAq CisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj ZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGlu IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4K KyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZF TlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAor ICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP UiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyAqIFNPRlRXQVJFLgorICoKKyAqCisgKi8KKyNpZm5k ZWYgX19LTUJfQ1JUQ19IX18KKyNkZWZpbmUgX19LTUJfQ1JUQ19IX18KKworI2luY2x1ZGUgPGRy bS9kcm1fZmlsZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8ZHJt L2RybV92YmxhbmsuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUg PGRybS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9kZWJ1Z2ZzLmg+CisjaW5jbHVk ZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgorI2lu Y2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRl IDxsaW51eC9vZl9ncmFwaC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvc2ltcGxl ZmIuaD4KKyNpbmNsdWRlIDx2aWRlby92aWRlb21vZGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRl eC5oPgorI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9k ZXZpY2UuaD4KKyNpbmNsdWRlICJrbWJfZHJ2LmgiCisKK3N0cnVjdCBrbWJfY3J0YyB7CisJc3Ry dWN0IGRybV9jcnRjIGNydGNfYmFzZTsKKwlzdHJ1Y3Qga21iX2RybV9wcml2YXRlIGttYl9kZXY7 Cit9OworCitzdHJ1Y3Qga21iX2NydGNfc3RhdGUgeworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSBj cnRjX2Jhc2U7Cit9OworI2RlZmluZSB0b19rbWJfY3J0Y19zdGF0ZSh4KSBjb250YWluZXJfb2Yo eCwgc3RydWN0IGttYl9jcnRjX3N0YXRlLCBjcnRjX2Jhc2UpCisjZGVmaW5lIHRvX2ttYl9jcnRj KHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qga21iX2NydGMsIGNydGNfYmFzZSkKK2V4dGVybiB2 b2lkIGttYl9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKK2V4dGVybiBz dHJ1Y3QgZHJtX3BsYW5lICprbWJfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKTsK KyNlbmRpZiAvKiBfX0tNQl9DUlRDX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2ttYi9rbWJfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0va21iL2ttYl9kcnYuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2VkNjMwCi0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9ncHUvZHJtL2ttYi9rbWJfZHJ2LmMKQEAgLTAsMCArMSwzNzIgQEAKKy8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwg Q29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3 YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwK KyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu ZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwg Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl CisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv d2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkg c2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv ZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS SU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJ QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX SVNFLCBBUklTSU5HIEZST00sCisgKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT T0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCisgKiBUSEUgU09GVFdBUkUu CisgKgorICoKKyAqLworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4 L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvY29t cG9uZW50Lmg+CisjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgorI2luY2x1ZGUgPGxpbnV4L2xp c3QuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5oPgorI2luY2x1ZGUgPGxpbnV4L29mX3Jl c2VydmVkX21lbS5oPgorI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKyNpbmNsdWRlIDxk cm0vZHJtLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8 ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KKyNpbmNs dWRlIDxkcm0vZHJtX2lvY3RsLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KKyNp bmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9j bWFfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+ CisjaW5jbHVkZSA8ZHJtL2RybV9vZi5oPgorI2luY2x1ZGUgPGRybS9kcm1faXJxLmg+CisjaW5j bHVkZSAia21iX2Rydi5oIgorI2luY2x1ZGUgImttYl9yZWdzLmgiCisjaW5jbHVkZSAia21iX2Ny dGMuaCIKKyNpbmNsdWRlICJrbWJfcGxhbmUuaCIKKworc3RhdGljIGludCBrbWJfbG9hZChzdHJ1 Y3QgZHJtX2RldmljZSAqZHJtLCB1bnNpZ25lZCBsb25nIGZsYWdzKQoreworCXN0cnVjdCBrbWJf ZHJtX3ByaXZhdGUgKmxjZCA9IGRybS0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkcm0tPmRldik7CisJc3RydWN0IHJlc291 cmNlICpyZXM7CisJLyp1MzIgdmVyc2lvbjsgKi8KKwlpbnQgcmV0OworCisJLyogVEJEIC0gbm90 IHN1cmUgaWYgY2xvY2tfZ2V0IG5lZWRzIHRvIGJlIGNhbGxlZCBoZXJlICovCisJLyoKKwkgKiAg bGNkLT5jbGsgPSBkZXZtX2Nsa19nZXQoZHJtLT5kZXYsICJweGxjbGsiKTsKKwkgKiBpZiAoSVNf RVJSKGxjZC0+Y2xrKSkKKwkgKiAgcmV0dXJuIFBUUl9FUlIobGNkLT5jbGspOworCSAqLworCXJl cyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CisJbGNk LT5tbWlvID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRybS0+ZGV2LCByZXMpOworCWlmIChJU19F UlIobGNkLT5tbWlvKSkgeworCQlEUk1fRVJST1IoImZhaWxlZCB0byBtYXAgY29udHJvbCByZWdp c3RlcnMgYXJlYVxuIik7CisJCXJldCA9IFBUUl9FUlIobGNkLT5tbWlvKTsKKwkJbGNkLT5tbWlv ID0gTlVMTDsKKwkJcmV0dXJuIHJldDsKKwl9CisJLypUQkQgcmVhZCBhbmQgY2hlY2sgZm9yIGNv cnJlY3QgcHJvZHVjdCB2ZXJzaW9uIGhlcmUgKi8KKworCS8qIEdldCB0aGUgb3B0aW9uYWwgZnJh bWVidWZmZXIgbWVtb3J5IHJlc291cmNlICovCisJcmV0ID0gb2ZfcmVzZXJ2ZWRfbWVtX2Rldmlj ZV9pbml0KGRybS0+ZGV2KTsKKwlpZiAocmV0ICYmIHJldCAhPSAtRU5PREVWKQorCQlyZXR1cm4g cmV0OworCisJcmV0ID0ga21iX3NldHVwX2NydGMoZHJtKTsKKwlpZiAocmV0IDwgMCkgeworCQlE Uk1fRVJST1IoImZhaWxlZCB0byBjcmVhdGUgY3J0Y1xuIik7CisJCWdvdG8gc2V0dXBfZmFpbDsK Kwl9CisKKwlyZXQgPSBkcm1faXJxX2luc3RhbGwoZHJtLCBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYs IDApKTsKKwlpZiAocmV0IDwgMCkgeworCQlEUk1fRVJST1IoImZhaWxlZCB0byBpbnN0YWxsIElS USBoYW5kbGVyXG4iKTsKKwkJZ290byBpcnFfZmFpbDsKKwl9CisKKwlyZXR1cm4gMDsKKworaXJx X2ZhaWw6CisJZHJtX2NydGNfY2xlYW51cCgmbGNkLT5jcnRjKTsKK3NldHVwX2ZhaWw6CisJb2Zf cmVzZXJ2ZWRfbWVtX2RldmljZV9yZWxlYXNlKGRybS0+ZGV2KTsKKworCXJldHVybiByZXQ7Cit9 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIGttYl9tb2RlX2Nv bmZpZ19mdW5jcyA9IHsKKwkuZmJfY3JlYXRlID0gZHJtX2dlbV9mYl9jcmVhdGUsCisJLmF0b21p Y19jaGVjayA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrLAorCS5hdG9taWNfY29tbWl0ID0gZHJt X2F0b21pY19oZWxwZXJfY29tbWl0LAorfTsKKworc3RhdGljIHZvaWQga21iX3NldHVwX21vZGVf Y29uZmlnKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCit7CisJZHJtX21vZGVfY29uZmlnX2luaXQo ZHJtKTsKKwlkcm0tPm1vZGVfY29uZmlnLm1pbl93aWR0aCA9IDA7CisJZHJtLT5tb2RlX2NvbmZp Zy5taW5faGVpZ2h0ID0gMDsKKwlkcm0tPm1vZGVfY29uZmlnLm1heF93aWR0aCA9IEtNQl9NQVhf V0lEVEg7CisJZHJtLT5tb2RlX2NvbmZpZy5tYXhfaGVpZ2h0ID0gS01CX01BWF9IRUlHSFQ7CisJ ZHJtLT5tb2RlX2NvbmZpZy5mdW5jcyA9ICZrbWJfbW9kZV9jb25maWdfZnVuY3M7Cit9CisKK3N0 YXRpYyBpcnFyZXR1cm5fdCBrbWJfaXJxKGludCBpcnEsIHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gKHN0cnVjdCBkcm1fZGV2aWNlICopYXJnOworCXN0cnVjdCBrbWJf ZHJtX3ByaXZhdGUgKmxjZCA9IGRldi0+ZGV2X3ByaXZhdGU7CisJdW5zaWduZWQgbG9uZyBzdGF0 dXMsIHZhbDsKKworCXN0YXR1cyA9IGttYl9yZWFkKGxjZCwgTENEX0lOVF9TVEFUVVMpOworCWlm IChzdGF0dXMgJiBMQ0RfSU5UX0VPRikgeworCQkvKlRvIERPIC0gaGFuZGxlIEVPRiBpbnRlcnJ1 cHQ/ICovCisJCWttYl93cml0ZShsY2QsIExDRF9JTlRfQ0xFQVIsIExDRF9JTlRfRU9GKTsKKwl9 CisJaWYgKHN0YXR1cyAmIExDRF9JTlRfTElORV9DTVApIHsKKwkJLyogY2xlYXIgbGluZSBjb21w YXJlIGludGVycnVwdCAqLworCQlrbWJfd3JpdGUobGNkLCBMQ0RfSU5UX0NMRUFSLCBMQ0RfSU5U X0xJTkVfQ01QKTsKKwl9CisJaWYgKHN0YXR1cyAmIExDRF9JTlRfVkVSVF9DT01QKSB7CisJCS8q IHJlYWQgVlNUQVRVUyAqLworCQl2YWwgPSBrbWJfcmVhZChsY2QsIExDRF9WU1RBVFVTKTsKKwkJ LyogQklUUyAxMyBhbmQgMTQgKi8KKwkJdmFsID0gKHZhbCAmIExDRF9WU1RBVFVTX1ZFUlRJQ0FM X1NUQVRVU19NQVNLKSA+PiAxMjsKKwkJc3dpdGNoICh2YWwpIHsKKwkJY2FzZSBMQ0RfVlNUQVRV U19DT01QQVJFX1ZTWU5DOgorCQljYXNlIExDRF9WU1RBVFVTX0NPTVBBUkVfQkFDS1BPUkNIOgor CQljYXNlIExDRF9WU1RBVFVTX0NPTVBBUkVfQUNUSVZFOgorCQljYXNlIExDRF9WU1RBVFVTX0NP TVBBUkVfRlJPTlRfUE9SQ0g6CisJCQkvKiBjbGVhciB2ZXJ0aWNhbCBjb21wYXJlIGludGVycnVw dCAqLworCQkJa21iX3dyaXRlKGxjZCwgTENEX0lOVF9DTEVBUiwgTENEX0lOVF9WRVJUX0NPTVAp OworCQkJZHJtX2hhbmRsZV92YmxhbmsoZGV2LCAwKTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJ cmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgdm9pZCBrbWJfaXJxX3Jlc2V0KHN0cnVj dCBkcm1fZGV2aWNlICpkcm0pCit7CisJc3RydWN0IGttYl9kcm1fcHJpdmF0ZSAqbGNkID0gZHJt LT5kZXZfcHJpdmF0ZTsKKworCWttYl93cml0ZShsY2QsIExDRF9JTlRfQ0xFQVIsIDB4RkZGRik7 CisJa21iX3dyaXRlKGxjZCwgTENEX0lOVF9FTkFCTEUsIDApOworfQorCitERUZJTkVfRFJNX0dF TV9DTUFfRk9QUyhmb3BzKTsKKworc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGttYl9kcml2ZXIg PSB7CisJLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9IQVZFX0lSUSB8IERSSVZFUl9HRU0gfAor CSAgICBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9BVE9NSUMsCisJLmlycV9oYW5kbGVyID0ga21i X2lycSwKKwkuaXJxX3ByZWluc3RhbGwgPSBrbWJfaXJxX3Jlc2V0LAorCS5pcnFfdW5pbnN0YWxs ID0ga21iX2lycV9yZXNldCwKKwkuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkID0gZHJtX2dlbV9j bWFfZnJlZV9vYmplY3QsCisJLmdlbV92bV9vcHMgPSAmZHJtX2dlbV9jbWFfdm1fb3BzLAorCS5k dW1iX2NyZWF0ZSA9IGRybV9nZW1fY21hX2R1bWJfY3JlYXRlLAorCS5wcmltZV9oYW5kbGVfdG9f ZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKKwkucHJpbWVfZmRfdG9faGFuZGxlID0g ZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUsCisJLmdlbV9wcmltZV9leHBvcnQgPSBkcm1fZ2Vt X3ByaW1lX2V4cG9ydCwKKwkuZ2VtX3ByaW1lX2ltcG9ydCA9IGRybV9nZW1fcHJpbWVfaW1wb3J0 LAorCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfZ2V0X3NnX3Rh YmxlLAorCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFfcHJpbWVfaW1w b3J0X3NnX3RhYmxlLAorCS5nZW1fcHJpbWVfdm1hcCA9IGRybV9nZW1fY21hX3ByaW1lX3ZtYXAs CisJLmdlbV9wcmltZV92dW5tYXAgPSBkcm1fZ2VtX2NtYV9wcmltZV92dW5tYXAsCisJLmdlbV9w cmltZV9tbWFwID0gZHJtX2dlbV9jbWFfcHJpbWVfbW1hcCwKKwkuZm9wcyA9ICZmb3BzLAorCS5u YW1lID0gImttYiIsCisJLmRlc2MgPSAiS0VFTUJBWSBESVNQTEFZIERSSVZFUiAiLAorCS5kYXRl ID0gIjIwMTkwMTIyIiwKKwkubWFqb3IgPSAxLAorCS5taW5vciA9IDAsCit9OworCitzdGF0aWMg aW50IGttYl9kcm1fYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9kZXZp Y2UgKmRybTsKKwlzdHJ1Y3Qga21iX2RybV9wcml2YXRlICpsY2Q7CisJaW50IHJldDsKKworCWRy bSA9IGRybV9kZXZfYWxsb2MoJmttYl9kcml2ZXIsIGRldik7CisJaWYgKElTX0VSUihkcm0pKQor CQlyZXR1cm4gUFRSX0VSUihkcm0pOworCisJbGNkID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9m KCpsY2QpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWxjZCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlk cm0tPmRldl9wcml2YXRlID0gbGNkOworCWRldl9zZXRfZHJ2ZGF0YShkZXYsIGRybSk7CisKKwlr bWJfc2V0dXBfbW9kZV9jb25maWcoZHJtKTsKKwlyZXQgPSBrbWJfbG9hZChkcm0sIDApOworCWlm IChyZXQpCisJCWdvdG8gZXJyX2ZyZWU7CisKKwkvKiBTZXQgdGhlIENSVEMncyBwb3J0IHNvIHRo YXQgdGhlIGVuY29kZXIgY29tcG9uZW50IGNhbiBmaW5kIGl0ICovCisJbGNkLT5jcnRjLnBvcnQg PSBvZl9ncmFwaF9nZXRfcG9ydF9ieV9pZChkZXYtPm9mX25vZGUsIDApOworCisJcmV0ID0gY29t cG9uZW50X2JpbmRfYWxsKGRldiwgZHJtKTsKKwlpZiAocmV0KSB7CisJCURSTV9FUlJPUigiRmFp bGVkIHRvIGJpbmQgYWxsIGNvbXBvbmVudHNcbiIpOworCQlnb3RvIGVycl91bmxvYWQ7CisJfQor CisJcmV0ID0gcG1fcnVudGltZV9zZXRfYWN0aXZlKGRldik7CisJaWYgKHJldCkKKwkJZ290byBl cnJfcG1fYWN0aXZlOworCisJcG1fcnVudGltZV9lbmFibGUoZGV2KTsKKworCXJldCA9IGRybV92 YmxhbmtfaW5pdChkcm0sIGRybS0+bW9kZV9jb25maWcubnVtX2NydGMpOworCWlmIChyZXQgPCAw KSB7CisJCURSTV9FUlJPUigiZmFpbGVkIHRvIGluaXRpYWxpc2UgdmJsYW5rXG4iKTsKKwkJZ290 byBlcnJfdmJsYW5rOworCX0KKworCWRybV9tb2RlX2NvbmZpZ19yZXNldChkcm0pOworCWRybV9r bXNfaGVscGVyX3BvbGxfaW5pdChkcm0pOworCisJcmV0ID0gZHJtX2Rldl9yZWdpc3Rlcihkcm0s IDApOworCisJbGNkLT5uX2xheWVycyA9IEtNQl9NQVhfUExBTkVTOworCWlmIChyZXQpCisJCWdv dG8gZXJyX3JlZ2lzdGVyOworCisJcmV0dXJuIDA7CisKK2Vycl9yZWdpc3RlcjoKKwlkcm1fa21z X2hlbHBlcl9wb2xsX2ZpbmkoZHJtKTsKK2Vycl92Ymxhbms6CisJcG1fcnVudGltZV9kaXNhYmxl KGRybS0+ZGV2KTsKK2Vycl9wbV9hY3RpdmU6CisJY29tcG9uZW50X3VuYmluZF9hbGwoZGV2LCBk cm0pOworZXJyX3VubG9hZDoKKwlvZl9ub2RlX3B1dChsY2QtPmNydGMucG9ydCk7CisJbGNkLT5j cnRjLnBvcnQgPSBOVUxMOworCWRybV9pcnFfdW5pbnN0YWxsKGRybSk7CisJb2ZfcmVzZXJ2ZWRf bWVtX2RldmljZV9yZWxlYXNlKGRybS0+ZGV2KTsKK2Vycl9mcmVlOgorCWRybV9tb2RlX2NvbmZp Z19jbGVhbnVwKGRybSk7CisJZGV2X3NldF9kcnZkYXRhKGRldiwgTlVMTCk7CisJZHJtX2Rldl9w dXQoZHJtKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGttYl9kcm1fdW5iaW5k KHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gZGV2X2dl dF9kcnZkYXRhKGRldik7CisJc3RydWN0IGttYl9kcm1fcHJpdmF0ZSAqbGNkID0gZHJtLT5kZXZf cHJpdmF0ZTsKKworCWRybV9kZXZfdW5yZWdpc3Rlcihkcm0pOworCWRybV9rbXNfaGVscGVyX3Bv bGxfZmluaShkcm0pOworCWNvbXBvbmVudF91bmJpbmRfYWxsKGRldiwgZHJtKTsKKwlvZl9ub2Rl X3B1dChsY2QtPmNydGMucG9ydCk7CisJbGNkLT5jcnRjLnBvcnQgPSBOVUxMOworCXBtX3J1bnRp bWVfZ2V0X3N5bmMoZHJtLT5kZXYpOworCWRybV9pcnFfdW5pbnN0YWxsKGRybSk7CisJcG1fcnVu dGltZV9wdXRfc3luYyhkcm0tPmRldik7CisJcG1fcnVudGltZV9kaXNhYmxlKGRybS0+ZGV2KTsK KwlvZl9yZXNlcnZlZF9tZW1fZGV2aWNlX3JlbGVhc2UoZHJtLT5kZXYpOworCWRybV9tb2RlX2Nv bmZpZ19jbGVhbnVwKGRybSk7CisJZHJtX2Rldl9wdXQoZHJtKTsKKwlkcm0tPmRldl9wcml2YXRl ID0gTlVMTDsKKwlkZXZfc2V0X2RydmRhdGEoZGV2LCBOVUxMKTsKK30KKworc3RhdGljIGNvbnN0 IHN0cnVjdCBjb21wb25lbnRfbWFzdGVyX29wcyBrbWJfbWFzdGVyX29wcyA9IHsKKwkuYmluZCA9 IGttYl9kcm1fYmluZCwKKwkudW5iaW5kID0ga21iX2RybV91bmJpbmQsCit9OworCitzdGF0aWMg aW50IGNvbXBhcmVfZGV2KHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKK3sKKwlyZXR1 cm4gZGV2LT5vZl9ub2RlID09IGRhdGE7Cit9CisKK3N0YXRpYyBpbnQga21iX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGRldmljZV9ub2RlICpwb3J0Owor CXN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKm1hdGNoID0gTlVMTDsKKworCS8qIHRoZXJlIGlzIG9u bHkgb25lIG91dHB1dCBwb3J0IGluc2lkZSBlYWNoIGRldmljZSwgZmluZCBpdCAqLworCXBvcnQg PSBvZl9ncmFwaF9nZXRfcmVtb3RlX25vZGUocGRldi0+ZGV2Lm9mX25vZGUsIDAsIDApOworCWlm ICghcG9ydCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlkcm1fb2ZfY29tcG9uZW50X21hdGNoX2Fk ZCgmcGRldi0+ZGV2LCAmbWF0Y2gsIGNvbXBhcmVfZGV2LCBwb3J0KTsKKwlvZl9ub2RlX3B1dChw b3J0KTsKKworCXJldHVybiBjb21wb25lbnRfbWFzdGVyX2FkZF93aXRoX21hdGNoKCZwZGV2LT5k ZXYsICZrbWJfbWFzdGVyX29wcywKKwkJCQkJICAgICAgIG1hdGNoKTsKK30KKworc3RhdGljIGlu dCBrbWJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJY29tcG9uZW50 X21hc3Rlcl9kZWwoJnBkZXYtPmRldiwgJmttYl9tYXN0ZXJfb3BzKTsKKwlyZXR1cm4gMDsKK30K Kworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQga21iX29mX21hdGNoW10gPSB7CisJ ey5jb21wYXRpYmxlID0gImxjZCJ9LAorCXt9LAorfTsKKworTU9EVUxFX0RFVklDRV9UQUJMRShv Ziwga21iX29mX21hdGNoKTsKKworc3RhdGljIGludCBfX21heWJlX3VudXNlZCBrbWJfcG1fc3Vz cGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGRl dl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBrbWJfZHJtX3ByaXZhdGUgKmxjZCA9IGRybSA/ IGRybS0+ZGV2X3ByaXZhdGUgOiBOVUxMOworCisJaWYgKCFsY2QpCisJCXJldHVybiAwOworCisJ ZHJtX2ttc19oZWxwZXJfcG9sbF9kaXNhYmxlKGRybSk7CisKKwlsY2QtPnN0YXRlID0gZHJtX2F0 b21pY19oZWxwZXJfc3VzcGVuZChkcm0pOworCWlmIChJU19FUlIobGNkLT5zdGF0ZSkpIHsKKwkJ ZHJtX2ttc19oZWxwZXJfcG9sbF9lbmFibGUoZHJtKTsKKwkJcmV0dXJuIFBUUl9FUlIobGNkLT5z dGF0ZSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQg a21iX3BtX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9kZXZpY2Ug KmRybSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBrbWJfZHJtX3ByaXZhdGUgKmxj ZCA9IGRybSA/IGRybS0+ZGV2X3ByaXZhdGUgOiBOVUxMOworCisJaWYgKCFsY2QpCisJCXJldHVy biAwOworCisJZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKGRybSwgbGNkLT5zdGF0ZSk7CisJZHJt X2ttc19oZWxwZXJfcG9sbF9lbmFibGUoZHJtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMg U0lNUExFX0RFVl9QTV9PUFMoa21iX3BtX29wcywga21iX3BtX3N1c3BlbmQsIGttYl9wbV9yZXN1 bWUpOworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBrbWJfcGxhdGZvcm1fZHJpdmVy ID0geworCS5wcm9iZSA9IGttYl9wcm9iZSwKKwkucmVtb3ZlID0ga21iX3JlbW92ZSwKKwkuZHJp dmVyID0geworCQkgICAubmFtZSA9ICJLZWVtYmF5X0Rpc3BsYXkiLAorCQkgICAucG0gPSAma21i X3BtX29wcywKKwkJICAgLm9mX21hdGNoX3RhYmxlID0ga21iX29mX21hdGNoLAorCQkgICB9LAor fTsKKworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihrbWJfcGxhdGZvcm1fZHJpdmVyKTsKKworTU9E VUxFX0FVVEhPUigiSW50ZWwgQ29ycG9yYXRpb24iKTsKK01PRFVMRV9ERVNDUklQVElPTigiS2Vl bWJheSBEaXNwbGF5IGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0va21i L2ttYl9kcnYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWU5NzkxCi0t LSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfZHJ2LmgKQEAgLTAsMCAr MSw2NyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoKKyAqIENvcHlyaWdo dCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwK KyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0 CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh bnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUg SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT UyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorICogT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU SEUKKyAqIFNPRlRXQVJFLgorICoKKyAqCisgKi8KKyNpZm5kZWYgX19LTUJfRFJWX0hfXworI2Rl ZmluZSBfX0tNQl9EUlZfSF9fCisKKyNkZWZpbmUgS01CX01BWF9XSURUSAkJCTE2Mzg0CS8qbWF4 IHdpZHRoIGluIHBpeGVscyAqLworI2RlZmluZSBLTUJfTUFYX0hFSUdIVAkJCTE2Mzg0CS8qbWF4 IGhlaWdodCBpbiBwaXhlbHMgKi8KKworc3RydWN0IGttYl9kcm1fcHJpdmF0ZSB7CisJc3RydWN0 IGRybV9kZXZpY2UgZHJtOworCXZvaWQgX19pb21lbSAqbW1pbzsKKwl1bnNpZ25lZCBjaGFyIG5f bGF5ZXJzOworCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgZHJtX2ZiZGV2X2NtYSAqZmJkZXY7 CisJc3RydWN0IGRybV9jcnRjIGNydGM7CisJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CisJc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOworfTsKKworc3RhdGljIGlubGluZSBzdHJ1Y3Qg a21iX2RybV9wcml2YXRlICp0b19rbWIoY29uc3Qgc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sK KwlyZXR1cm4gY29udGFpbmVyX29mKGRldiwgc3RydWN0IGttYl9kcm1fcHJpdmF0ZSwgZHJtKTsK K30KKworI2RlZmluZSBjcnRjX3RvX2ttYl9wcml2KHgpCWNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qg a21iX2RybV9wcml2YXRlLCBjcnRjKQorCitzdHJ1Y3QgYmx0X2xheWVyX2NvbmZpZyB7CisJdW5z aWduZWQgY2hhciBsYXllcl9mb3JtYXQ7Cit9OworCitzdGF0aWMgaW5saW5lIHZvaWQga21iX3dy aXRlKHN0cnVjdCBrbWJfZHJtX3ByaXZhdGUgKmxjZCwKKwkJCSAgICAgdW5zaWduZWQgaW50IHJl ZywgdTMyIHZhbHVlKQoreworCXdyaXRlbCh2YWx1ZSwgbGNkLT5tbWlvICsgcmVnKTsKK30KKwor c3RhdGljIGlubGluZSB1MzIga21iX3JlYWQoc3RydWN0IGttYl9kcm1fcHJpdmF0ZSAqbGNkLCB1 bnNpZ25lZCBpbnQgcmVnKQoreworCXJldHVybiByZWFkbChsY2QtPm1taW8gKyByZWcpOworfQor CitpbnQga21iX3NldHVwX2NydGMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cit2b2lkIGttYl9z ZXRfc2Nhbm91dChzdHJ1Y3Qga21iX2RybV9wcml2YXRlICpsY2QpOworI2VuZGlmIC8qIF9fS01C X0RSVl9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9rbWIva21iX3BsYW5lLmMg Yi9kcml2ZXJzL2dwdS9kcm0va21iL2ttYl9wbGFuZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjlhYjM4NzMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0v a21iL2ttYl9wbGFuZS5jCkBAIC0wLDAgKzEsMjUyIEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9u CisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs aW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi bGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0 aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdh cmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGlu Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBT b2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisg KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAg SU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJF IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO RyBGUk9NLAorICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1Ig VEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyAqIFNPRlRXQVJFLgorICoKKyAqCisg Ki8KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWlj X2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgorI2luY2x1ZGUgPGRybS9kcm1f Y3J0Y19oZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUg PGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxw ZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX29mLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9o ZWxwZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9ncmFw aC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RhdGEvc2ltcGxlZmIuaD4KKyNpbmNsdWRl IDx2aWRlby92aWRlb21vZGUuaD4KKyNpbmNsdWRlICJrbWJfcGxhbmUuaCIKKyNpbmNsdWRlICJr bWJfY3J0Yy5oIgorI2luY2x1ZGUgImttYl9yZWdzLmgiCisjaW5jbHVkZSAia21iX2Rydi5oIgor CitzdGF0aWMgaW50IGttYl9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCisJCQkJICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKK3sKKy8qIFRCRCBiZWxv dyBzdHJ1Y3R1cmUgd2lsbCBiZSB1c2VkIGZvciBpbXBsZW1lbnRhdGlvbiBsYXRlcgorICoJc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworICovCisJLyogVEJEICovCisJLyogUGxh bmUgYmFzZWQgY2hlY2tpbmcgKi8KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBrbWJf cGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkgICAgc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBwbGFuZS0+c3RhdGUtPmZiOworCXN0cnVjdCBrbWJfZHJtX3ByaXZhdGUgKmxjZDsKKwlk bWFfYWRkcl90IGFkZHI7CisJdW5zaWduZWQgaW50IHdpZHRoOworCXVuc2lnbmVkIGludCBoZWln aHQ7CisJdW5zaWduZWQgaW50IGk7CisJdW5zaWduZWQgaW50IGRtYV9sZW47CisJc3RydWN0IGtt Yl9wbGFuZV9zdGF0ZSAqa21iX3N0YXRlID0gdG9fa21iX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0 ZSk7CisJdW5zaWduZWQgaW50IGRtYV9jZmc7CisKKwlpZiAoIWZiKQorCQlyZXR1cm47CisKKwls Y2QgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKKworCS8qIFRCRCAqLworCS8qc2V0IExDRF9M QVlFUm5fV0lEVEgsIExDRF9MQVlFUm5fSEVJR0hULCBMQ0RfTEFZRVJuX0NPTF9TVEFSVCwKKwkg KiBMQ0RfTEFZRVJuX1JPV19TVEFSVCwgTENEX0xBWUVSbl9DRkcKKwkgKiBDRkcgc2hvdWxkIHNl dCB0aGUgcGl4ZWwgZm9ybWF0LCBGSUZPIGxldmVsIGFuZCBCUFAKKwkgKi8KKworCS8qIHdlIG1h eSBoYXZlIHRvIHNldCBMQ0RfRE1BX1ZTVFJJREVfRU5BQkxFIGluIHRoZSBmdXR1cmUgKi8KKwlk bWFfY2ZnID0gTENEX0RNQV9MQVlFUl9FTkFCTEUgfCBMQ0RfRE1BX0xBWUVSX0FVVE9fVVBEQVRF CisJICAgIHwgTENEX0RNQV9MQVlFUl9DT05UX1VQREFURSB8IExDRF9ETUFfTEFZRVJfQVhJX0JV UlNUXzE7CisKKwlmb3IgKGkgPSAwOyBpIDwga21iX3N0YXRlLT5ub19wbGFuZXM7IGkrKykgewor CQkvKiBkaXNhYmxlIERNQSBmaXJzdCAqLworCQlrbWJfd3JpdGUobGNkLCBMQ0RfTEFZRVJuX0RN QV9DRkcoaSksIH5MQ0RfRE1BX0xBWUVSX0VOQUJMRSk7CisKKwkJYWRkciA9IGRybV9mYl9jbWFf Z2V0X2dlbV9hZGRyKGZiLCBwbGFuZS0+c3RhdGUsIGkpOworCQlrbWJfd3JpdGUobGNkLCBMQ0Rf TEFZRVJuX0RNQV9TVEFSVF9BRERSKGkpLCBhZGRyKTsKKwkJa21iX3dyaXRlKGxjZCwgTENEX0xB WUVSbl9ETUFfU1RBUlRfU0hBRE9XKGkpLCBhZGRyKTsKKworCQl3aWR0aCA9IGZiLT53aWR0aDsK KwkJaGVpZ2h0ID0gZmItPmhlaWdodDsKKwkJZG1hX2xlbiA9IHdpZHRoICogaGVpZ2h0ICogZmIt PmZvcm1hdC0+Y3BwW2ldOworCQlrbWJfd3JpdGUobGNkLCBMQ0RfTEFZRVJuX0RNQV9MRU4oaSks IGRtYV9sZW4pOworCisJCWttYl93cml0ZShsY2QsIExDRF9MQVlFUm5fRE1BX0xJTkVfVlNUUklE RShpKSwgZmItPnBpdGNoZXNbMF0pOworCQlrbWJfd3JpdGUobGNkLCBMQ0RfTEFZRVJuX0RNQV9M SU5FX1dJRFRIKGkpLAorCQkJICAod2lkdGggKiBmYi0+Zm9ybWF0LT5jcHBbaV0pKTsKKworCQkv KiBlbmFibGUgRE1BICovCisJCWttYl93cml0ZShsY2QsIExDRF9MQVlFUm5fRE1BX0NGRyhpKSwg ZG1hX2NmZyk7CisJfQorfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJf ZnVuY3Mga21iX3BsYW5lX2hlbHBlcl9mdW5jcyA9IHsKKwkuYXRvbWljX2NoZWNrID0ga21iX3Bs YW5lX2F0b21pY19jaGVjaywKKwkuYXRvbWljX3VwZGF0ZSA9IGttYl9wbGFuZV9hdG9taWNfdXBk YXRlLAorfTsKKwordm9pZCBrbWJfcGxhbmVfZGVzdHJveShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSkKK3sKKwlkcm1fcGxhbmVfY2xlYW51cChwbGFuZSk7Cit9CisKK3N0YXRpYyB2b2lkIGttYl9k ZXN0cm95X3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCSAgICBzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3Qga21iX3BsYW5lX3N0YXRlICpr bWJfc3RhdGUgPSB0b19rbWJfcGxhbmVfc3RhdGUoc3RhdGUpOworCisJX19kcm1fYXRvbWljX2hl bHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKHN0YXRlKTsKKwlrZnJlZShrbWJfc3RhdGUpOworfQor CitzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICprbWJfcGxhbmVfZHVwbGljYXRlX3N0YXRlKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lKQoreworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlOwor CXN0cnVjdCBrbWJfcGxhbmVfc3RhdGUgKmttYl9zdGF0ZTsKKworCWttYl9zdGF0ZSA9IGttZW1k dXAocGxhbmUtPnN0YXRlLCBzaXplb2YoKmttYl9zdGF0ZSksIEdGUF9LRVJORUwpOworCisJaWYg KCFrbWJfc3RhdGUpCisJCXJldHVybiBOVUxMOworCisJc3RhdGUgPSAma21iX3N0YXRlLT5iYXNl X3BsYW5lX3N0YXRlOworCV9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRl KHBsYW5lLCBzdGF0ZSk7CisKKwlyZXR1cm4gc3RhdGU7Cit9CisKK3N0YXRpYyB2b2lkIGttYl9w bGFuZV9yZXNldChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKK3sKKwlzdHJ1Y3Qga21iX3BsYW5l X3N0YXRlICprbWJfc3RhdGUgPSB0b19rbWJfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKTsKKwor CWlmIChrbWJfc3RhdGUpCisJCV9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0 ZQorCQkgICAgKCZrbWJfc3RhdGUtPmJhc2VfcGxhbmVfc3RhdGUpOworCWtmcmVlKGttYl9zdGF0 ZSk7CisKKwlwbGFuZS0+c3RhdGUgPSBOVUxMOworCWttYl9zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9m KCprbWJfc3RhdGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoa21iX3N0YXRlKSB7CisJCWttYl9zdGF0 ZS0+YmFzZV9wbGFuZV9zdGF0ZS5wbGFuZSA9IHBsYW5lOworCQlrbWJfc3RhdGUtPmJhc2VfcGxh bmVfc3RhdGUucm90YXRpb24gPSBEUk1fTU9ERV9ST1RBVEVfMDsKKwkJcGxhbmUtPnN0YXRlID0g JmttYl9zdGF0ZS0+YmFzZV9wbGFuZV9zdGF0ZTsKKwkJa21iX3N0YXRlLT5ub19wbGFuZXMgPSBL TUJfTUFYX1BMQU5FUzsKKwl9Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1 bmNzIGttYl9wbGFuZV9mdW5jcyA9IHsKKwkudXBkYXRlX3BsYW5lID0gZHJtX2F0b21pY19oZWxw ZXJfdXBkYXRlX3BsYW5lLAorCS5kaXNhYmxlX3BsYW5lID0gZHJtX2F0b21pY19oZWxwZXJfZGlz YWJsZV9wbGFuZSwKKwkuZGVzdHJveSA9IGttYl9wbGFuZV9kZXN0cm95LAorCS5yZXNldCA9IGtt Yl9wbGFuZV9yZXNldCwKKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGttYl9wbGFuZV9kdXBs aWNhdGVfc3RhdGUsCisJLmF0b21pY19kZXN0cm95X3N0YXRlID0ga21iX2Rlc3Ryb3lfcGxhbmVf c3RhdGUsCit9OworCisvKiBncmFwaGljcyBsYXllciAoIGxheWVycyAyICYgMykgZm9ybWF0cywg b25seSBwYWNrZWQgZm9ybWF0cyAgYXJlIHN1cHBvcnRlZCovCitzdGF0aWMgY29uc3QgdTMyIGtt Yl9mb3JtYXRzX2dbXSA9IHsKKwlEUk1fRk9STUFUX1JHQjMzMiwKKwlEUk1fRk9STUFUX1hSR0I0 NDQ0LCBEUk1fRk9STUFUX1hCR1I0NDQ0LAorCURSTV9GT1JNQVRfQVJHQjQ0NDQsIERSTV9GT1JN QVRfQUJHUjQ0NDQsCisJRFJNX0ZPUk1BVF9YUkdCMTU1NSwgRFJNX0ZPUk1BVF9YQkdSMTU1NSwK KwlEUk1fRk9STUFUX0FSR0IxNTU1LCBEUk1fRk9STUFUX0FCR1IxNTU1LAorCURSTV9GT1JNQVRf UkdCNTY1LCBEUk1fRk9STUFUX0JHUjU2NSwKKwlEUk1fRk9STUFUX1JHQjg4OCwgRFJNX0ZPUk1B VF9CR1I4ODgsCisJRFJNX0ZPUk1BVF9YUkdCODg4OCwgRFJNX0ZPUk1BVF9YQkdSODg4OCwKKwlE Uk1fRk9STUFUX0FSR0I4ODg4LCBEUk1fRk9STUFUX0FCR1I4ODg4LAorCURSTV9GT1JNQVRfWFJH QjIxMDEwMTAsIERSTV9GT1JNQVRfWEJHUjIxMDEwMTAsCisJRFJNX0ZPUk1BVF9ZVVlWLCBEUk1f Rk9STUFUX1lWWVUsCisJRFJNX0ZPUk1BVF9VWVZZLCBEUk1fRk9STUFUX1ZZVVksCit9OworCisv KiB2aWRlbyBsYXllciAoMCAmIDEpIGZvcm1hdHMsIHBhY2tlZCBhbmQgcGxhbmFyIGZvcm1hdHMg YXJlIHN1cHBvcnRlZCAqLworc3RhdGljIGNvbnN0IHUzMiBrbWJfZm9ybWF0c192W10gPSB7CisJ LyogcGFja2VkIGZvcm1hdHMgKi8KKwlEUk1fRk9STUFUX1JHQjMzMiwKKwlEUk1fRk9STUFUX1hS R0I0NDQ0LCBEUk1fRk9STUFUX1hCR1I0NDQ0LAorCURSTV9GT1JNQVRfQVJHQjQ0NDQsIERSTV9G T1JNQVRfQUJHUjQ0NDQsCisJRFJNX0ZPUk1BVF9YUkdCMTU1NSwgRFJNX0ZPUk1BVF9YQkdSMTU1 NSwKKwlEUk1fRk9STUFUX0FSR0IxNTU1LCBEUk1fRk9STUFUX0FCR1IxNTU1LAorCURSTV9GT1JN QVRfUkdCNTY1LCBEUk1fRk9STUFUX0JHUjU2NSwKKwlEUk1fRk9STUFUX1JHQjg4OCwgRFJNX0ZP Uk1BVF9CR1I4ODgsCisJRFJNX0ZPUk1BVF9YUkdCODg4OCwgRFJNX0ZPUk1BVF9YQkdSODg4OCwK KwlEUk1fRk9STUFUX0FSR0I4ODg4LCBEUk1fRk9STUFUX0FCR1I4ODg4LAorCURSTV9GT1JNQVRf WFJHQjIxMDEwMTAsIERSTV9GT1JNQVRfWEJHUjIxMDEwMTAsCisJRFJNX0ZPUk1BVF9ZVVlWLCBE Uk1fRk9STUFUX1lWWVUsCisJRFJNX0ZPUk1BVF9VWVZZLCBEUk1fRk9STUFUX1ZZVVksCisJLypw bGFuYXIgZm9ybWF0cyAqLworCURSTV9GT1JNQVRfWVVWNDExLCBEUk1fRk9STUFUX1lWVTQxMSwK KwlEUk1fRk9STUFUX1lVVjQyMCwgRFJNX0ZPUk1BVF9ZVlU0MjAsCisJRFJNX0ZPUk1BVF9ZVVY0 MjIsIERSTV9GT1JNQVRfWVZVNDIyLAorCURSTV9GT1JNQVRfWVVWNDQ0LCBEUk1fRk9STUFUX1lW VTQ0NCwKKwlEUk1fRk9STUFUX05WMTIsIERSTV9GT1JNQVRfTlYyMSwKK307CisKK3N0cnVjdCBk cm1fcGxhbmUgKmttYl9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCit7CisJc3Ry dWN0IGttYl9kcm1fcHJpdmF0ZSAqbGNkID0gZHJtLT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSA9IE5VTEw7CisJc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSA9IE5VTEw7 CisJaW50IGkgPSAwOworCWludCByZXQ7CisJZW51bSBkcm1fcGxhbmVfdHlwZSBwbGFuZV90eXBl OworCWNvbnN0IHVpbnQzMl90ICpwbGFuZV9mb3JtYXRzOworCWludCBudW1fcGxhbmVfZm9ybWF0 czsKKworCWZvciAoaSA9IDA7IGkgPCBsY2QtPm5fbGF5ZXJzOyBpKyspIHsKKworCQlwbGFuZSA9 IGRldm1fa3phbGxvYyhkcm0tPmRldiwgc2l6ZW9mKCpwbGFuZSksIEdGUF9LRVJORUwpOworCisJ CWlmICghcGxhbmUpCisJCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCQlwbGFuZV90eXBl ID0gKGkgPT0gMCkgPyBEUk1fUExBTkVfVFlQRV9QUklNQVJZIDoKKwkJICAgIERSTV9QTEFORV9U WVBFX09WRVJMQVk7CisJCWlmIChpIDwgMikgeworCQkJcGxhbmVfZm9ybWF0cyA9IGttYl9mb3Jt YXRzX3Y7CisJCQludW1fcGxhbmVfZm9ybWF0cyA9IEFSUkFZX1NJWkUoa21iX2Zvcm1hdHNfdik7 CisJCX0gZWxzZSB7CisJCQlwbGFuZV9mb3JtYXRzID0ga21iX2Zvcm1hdHNfZzsKKwkJCW51bV9w bGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShrbWJfZm9ybWF0c19nKTsKKwkJfQorCisJCXJldCA9 IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChkcm0sIHBsYW5lLCAweEZGLAorCQkJCSAgICAgICAm a21iX3BsYW5lX2Z1bmNzLCBwbGFuZV9mb3JtYXRzLAorCQkJCSAgICAgICBudW1fcGxhbmVfZm9y bWF0cywKKwkJCQkgICAgICAgTlVMTCwgcGxhbmVfdHlwZSwgInBsYW5lICVkIiwgaSk7CisJCWlm IChyZXQgPCAwKQorCQkJZ290byBjbGVhbnVwOworCisJCWRybV9wbGFuZV9oZWxwZXJfYWRkKHBs YW5lLCAma21iX3BsYW5lX2hlbHBlcl9mdW5jcyk7CisJCWlmIChwbGFuZV90eXBlID09IERSTV9Q TEFORV9UWVBFX1BSSU1BUlkpIHsKKwkJCXByaW1hcnkgPSBwbGFuZTsKKwkJCWxjZC0+cGxhbmUg PSBwbGFuZTsKKwkJfQorCX0KKworY2xlYW51cDoKKwlyZXR1cm4gcHJpbWFyeTsKK30KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9rbWIva21iX3BsYW5lLmggYi9kcml2ZXJzL2dwdS9kcm0v a21iL2ttYl9wbGFuZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0Yzcx MTMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0va21iL2ttYl9wbGFuZS5oCkBA IC0wLDAgKzEsNTIgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKyAqCisgKiBD b3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh CisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91 dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0 aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9y IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNP RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs IEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBU SEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwg REFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKKyAqIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KKyAqCisgKgorICovCisjaWZuZGVmIF9fS01CX1BMQU5F X0hfXworI2RlZmluZSBfX0tNQl9QTEFORV9IX18KKworI2luY2x1ZGUgImttYl9kcnYuaCIKKwor I2RlZmluZSBLTUJfTUFYX1BMQU5FUwk0CisKKy8qIHRoaXMgc3RydWN0IG1heSBiZSBuZWVkZWQg aW4gdGhlIGZ1dHVyZQorICpzdHJ1Y3Qga21iX3BsYW5lIHsKKyAqCXN0cnVjdCBkcm1fcGxhbmUg YmFzZV9wbGFuZTsKKyAqCXN0cnVjdCBrbWJfZHJtX3ByaXZhdGUga21iX2RldjsKKyAqfTsKKyAq Lworc3RydWN0IGttYl9wbGFuZV9zdGF0ZSB7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSBiYXNl X3BsYW5lX3N0YXRlOworCXVuc2lnbmVkIGNoYXIgbm9fcGxhbmVzOworfTsKKworLyogbWF5IGJl IG5lZWRlZCBpbiB0aGUgZnV0dXJlCisgKiNkZWZpbmUgdG9fa21iX3BsYW5lKHgpIGNvbnRhaW5l cl9vZih4LCBzdHJ1Y3Qga21iX3BsYW5lLCBiYXNlX3BsYW5lKQorICovCisjZGVmaW5lIHRvX2tt Yl9wbGFuZV9zdGF0ZSh4KSBcCisJCWNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qga21iX3BsYW5lX3N0 YXRlLCBiYXNlX3BsYW5lX3N0YXRlKQorCitzdHJ1Y3QgZHJtX3BsYW5lICprbWJfcGxhbmVfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKTsKK3ZvaWQga21iX3BsYW5lX2Rlc3Ryb3koc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUpOworI2VuZGlmIC8qIF9fS01CX1BMQU5FX0hfXyAqLwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2ttYi9rbWJfcmVncy5oIGIvZHJpdmVycy9ncHUvZHJtL2tt Yi9rbWJfcmVncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1Y2Y5MzIK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0va21iL2ttYl9yZWdzLmgKQEAgLTAs MCArMSw0NjAgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKyAqCisgKiBDb3B5 cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisg KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl cyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0 byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu c2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywg c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUg bmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1 YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUg QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFN QUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKKyAqIE9VVCBPRiBPUiBJTiBD T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1Mg SU4KKyAqIFRIRSBTT0ZUV0FSRS4KKyAqCisgKgorICovCisjaWZuZGVmIF9fS01CX1JFR1NfSF9f CisjZGVmaW5lIF9fS01CX1JFR1NfSF9fCisKKy8qTENEIENPTlRST0xMRVIgUkVHSVNURVJTICov CisjZGVmaW5lIExDRF9DT05UUk9MCQkJKDB4NCAqIDB4MDAwKQorI2RlZmluZSBMQ0RfSU5UX1NU QVRVUwkJCSgweDQgKiAweDAwMSkKKyNkZWZpbmUgTENEX0lOVF9FTkFCTEUJCQkoMHg0ICogMHgw MDIpCisjZGVmaW5lIExDRF9JTlRfQ0xFQVIJCQkoMHg0ICogMHgwMDMpCisjZGVmaW5lIExDRF9M SU5FX0NPVU5UCQkJKDB4NCAqIDB4MDA0KQorI2RlZmluZSBMQ0RfTElORV9DT01QQVJFCQkoMHg0 ICogMHgwMDUpCisjZGVmaW5lIExDRF9WU1RBVFVTCQkJKDB4NCAqIDB4MDA2KQorI2RlZmluZSBM Q0RfVlNUQVRVU19DT01QQVJFCQkoMHg0ICogMHgwMDcpCisjZGVmaW5lIExDRF9TQ1JFRU5fV0lE VEgJCSgweDQgKiAweDAwOCkKKyNkZWZpbmUgTENEX1NDUkVFTl9IRUlHSFQJCSgweDQgKiAweDAw OSkKKyNkZWZpbmUgTENEX0ZJRUxEX0lOVF9DRkcJCSgweDQgKiAweDAwYSkKKyNkZWZpbmUgTENE X0ZJRk9fRkxVU0gJCQkoMHg0ICogMHgwMGIpCisjZGVmaW5lIExDRF9CR19DT0xPVVJfTFMJCSgw eDQgKiAweDAwYykKKyNkZWZpbmUgTENEX0JHX0NPTE9VUl9NUwkJKDB4NCAqIDB4MDBkKQorI2Rl ZmluZSBMQ0RfUkFNX0NGRwkJICAgICAgICAoMHg0ICogMHgwMGUpCisjZGVmaW5lIExDRF9MQVlF UjBfQ0ZHCQkgICAgICAgICgweDQgKiAweDEwMCkKKyNkZWZpbmUgTENEX0xBWUVSbl9DRkcoTikJ CShMQ0RfTEFZRVIwX0NGRyArICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9DT0xfU1RB UlQJCSgweDQgKiAweDEwMSkKKyNkZWZpbmUgTENEX0xBWUVSbl9DT0xfU1RBUlQoTikJCShMQ0Rf TEFZRVIwX0NPTF9TVEFSVCArICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9ST1dfU1RB UlQJCSgweDQgKiAweDEwMikKKyNkZWZpbmUgTENEX0xBWUVSbl9ST1dfU1RBUlQoTikJCShMQ0Rf TEFZRVIwX1JPV19TVEFSVCArICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9XSURUSAkg ICAgICAgICgweDQgKiAweDEwMykKKyNkZWZpbmUgTENEX0xBWUVSbl9XSURUSChOKQkJKExDRF9M QVlFUjBfV0lEVEggKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfSEVJR0hUCQkoMHg0 ICogMHgxMDQpCisjZGVmaW5lIExDRF9MQVlFUm5fSEVJR0hUKE4pCQkoTENEX0xBWUVSMF9IRUlH SFQgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfU0NBTEVfQ0ZHCQkoMHg0ICogMHgx MDUpCisjZGVmaW5lIExDRF9MQVlFUm5fU0NBTEVfQ0ZHKE4pCQkoTENEX0xBWUVSMF9TQ0FMRV9D RkcgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfQUxQSEEJICAgICAgICAoMHg0ICog MHgxMDYpCisjZGVmaW5lIExDRF9MQVlFUm5fQUxQSEEoTikJCShMQ0RfTEFZRVIwX0FMUEhBICsg KDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0lOVl9DT0xPVVJfTFMJKDB4NCAqIDB4MTA3 KQorI2RlZmluZSBMQ0RfTEFZRVJuX0lOVl9DT0xPVVJfTFMoTikJKExDRF9MQVlFUjBfSU5WX0NP TE9VUl9MUyArICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9JTlZfQ09MT1VSX01TCSgw eDQgKiAweDEwOCkKKyNkZWZpbmUgTENEX0xBWUVSbl9JTlZfQ09MT1VSX01TKE4pCShMQ0RfTEFZ RVIwX0lOVl9DT0xPVVJfTVMgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfVFJBTlNf Q09MT1VSX0xTCSgweDQgKiAweDEwOSkKKyNkZWZpbmUgTENEX0xBWUVSbl9UUkFOU19DT0xPVVJf TFMoTikJKExDRF9MQVlFUjBfVFJBTlNfQ09MT1VSX0xTICsgKDB4NDAwKk4pKQorI2RlZmluZSBM Q0RfTEFZRVIwX1RSQU5TX0NPTE9VUl9NUwkoMHg0ICogMHgxMGEpCisjZGVmaW5lIExDRF9MQVlF Um5fVFJBTlNfQ09MT1VSX01TKE4pCShMQ0RfTEFZRVIwX1RSQU5TX0NPTE9VUl9NUyArICgweDQw MCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9DU0NfQ09FRkYxMQkJKDB4NCAqIDB4MTBiKQorI2Rl ZmluZSBMQ0RfTEFZRVJuX0NTQ19DT0VGRjExKE4pCShMQ0RfTEFZRVIwX0NTQ19DT0VGRjExICsg KDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0NTQ19DT0VGRjEyCQkoMHg0ICogMHgxMGMp CisjZGVmaW5lIExDRF9MQVlFUm5fQ1NDX0NPRUZGMTIoTikJKExDRF9MQVlFUjBfQ1NDX0NPRUZG MTIgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfQ1NDX0NPRUZGMTMJCSgweDQgKiAw eDEwZCkKKyNkZWZpbmUgTENEX0xBWUVSbl9DU0NfQ09FRkYxMyhOKQkoTENEX0xBWUVSMF9DU0Nf Q09FRkYxMyArICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9DU0NfQ09FRkYyMQkJKDB4 NCAqIDB4MTBlKQorI2RlZmluZSBMQ0RfTEFZRVJuX0NTQ19DT0VGRjIxKE4pCShMQ0RfTEFZRVIw X0NTQ19DT0VGRjIxICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0NTQ19DT0VGRjIy CQkoMHg0ICogMHgxMGYpCisjZGVmaW5lIExDRF9MQVlFUm5fQ1NDX0NPRUZGMjIoTikJKExDRF9M QVlFUjBfQ1NDX0NPRUZGMjIgKyAoMHg0MDAqTikpCisjZGVmaW5lIExDRF9MQVlFUjBfQ1NDX0NP RUZGMjMJCSgweDQgKiAweDExMCkKKyNkZWZpbmUgTENEX0xBWUVSbl9DU0NfQ09FRkYyMyhOKQko TENEX0xBWUVSMF9DU0NfQ09FRkYyMyArICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9D U0NfQ09FRkYzMQkJKDB4NCAqIDB4MTExKQorI2RlZmluZSBMQ0RfTEFZRVJuX0NTQ19DT0VGRjMx KE4pCShMQ0RfTEFZRVIwX0NTQ19DT0VGRjMxICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZ RVIwX0NTQ19DT0VGRjMyCQkoMHg0ICogMHgxMTIpCisjZGVmaW5lIExDRF9MQVlFUm5fQ1NDX0NP RUZGMzIoTikJICAoTENEX0xBWUVSMF9DU0NfQ09FRkYzMiArICgweDQwMCpOKSkKKyNkZWZpbmUg TENEX0xBWUVSMF9DU0NfQ09FRkYzMwkJKDB4NCAqIDB4MTEzKQorI2RlZmluZSBMQ0RfTEFZRVJu X0NTQ19DT0VGRjMzKE4pCShMQ0RfTEFZRVIwX0NTQ19DT0VGRjMzICsgKDB4NDAwKk4pKQorI2Rl ZmluZSBMQ0RfTEFZRVIwX0NTQ19PRkYxCQkoMHg0ICogMHgxMTQpCisjZGVmaW5lIExDRF9MQVlF Um5fQ1NDX09GRjEoTikJCShMQ0RfTEFZRVIwX0NTQ19PRkYxICsgKDB4NDAwKk4pKQorI2RlZmlu ZSBMQ0RfTEFZRVIwX0NTQ19PRkYyCQkoMHg0ICogMHgxMTUpCisjZGVmaW5lIExDRF9MQVlFUm5f Q1NDX09GRjIoTikJCShMQ0RfTEFZRVIwX0NTQ19PRkYyICsgKDB4NDAwKk4pKQorI2RlZmluZSBM Q0RfTEFZRVIwX0NTQ19PRkYzCQkoMHg0ICogMHgxMTYpCisjZGVmaW5lIExDRF9MQVlFUm5fQ1ND X09GRjMoTikJCShMQ0RfTEFZRVIwX0NTQ19PRkYzICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0Rf TEFZRVIwX0RNQV9DRkcJCSgweDQgKiAweDExNykKKyNkZWZpbmUgTENEX0xBWUVSbl9ETUFfQ0ZH KE4pCQkoTENEX0xBWUVSMF9ETUFfQ0ZHICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIw X0RNQV9TVEFSVF9BRFIJKDB4NCAqIDB4MTE4KQorI2RlZmluZSBMQ0RfTEFZRVJuX0RNQV9TVEFS VF9BRERSKE4pCShMQ0RfTEFZRVIwX0RNQV9TVEFSVF9BRFIgKyAoMHg0MDAqTikpCisjZGVmaW5l IExDRF9MQVlFUjBfRE1BX1NUQVJUX1NIQURPVwkoMHg0ICogMHgxMTkpCisjZGVmaW5lIExDRF9M QVlFUm5fRE1BX1NUQVJUX1NIQURPVyhOKQkoTENEX0xBWUVSMF9ETUFfU1RBUlRfU0hBRE9XICsg KDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0RNQV9MRU4JCSgweDQgKiAweDExYSkKKyNk ZWZpbmUgTENEX0xBWUVSbl9ETUFfTEVOKE4pCQkoTENEX0xBWUVSMF9ETUFfTEVOICsgKDB4NDAw Kk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0RNQV9MRU5fU0hBRE9XCSgweDQgKiAweDExYikKKyNk ZWZpbmUgTENEX0xBWUVSbl9ETUFfTEVOX1NIQURPVyhOKQkoTENEX0xBWUVSMF9ETUFfTEVOX1NI QURPVyArICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9ETUFfU1RBVFVTCQkoMHg0ICog MHgxMWMpCisjZGVmaW5lIExDRF9MQVlFUm5fRE1BX1NUQVRVUyhOKQkoTENEX0xBWUVSMF9ETUFf U1RBVFVTICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0RNQV9MSU5FX1dJRFRICSgw eDQgKiAweDExZCkKKyNkZWZpbmUgTENEX0xBWUVSbl9ETUFfTElORV9XSURUSChOKQkoTENEX0xB WUVSMF9ETUFfTElORV9XSURUSCArICgweDQwMCpOKSkKKyNkZWZpbmUgTENEX0xBWUVSMF9ETUFf TElORV9WU1RSSURFCSgweDQgKiAweDExZSkKKyNkZWZpbmUgTENEX0xBWUVSbl9ETUFfTElORV9W U1RSSURFKE4pCShMQ0RfTEFZRVIwX0RNQV9MSU5FX1ZTVFJJREUgKyAoMHg0MDAqTikpCisjZGVm aW5lIExDRF9MQVlFUjBfRE1BX0ZJRk9fU1RBVFVTCSgweDQgKiAweDExZikKKyNkZWZpbmUgTENE X0xBWUVSbl9ETUFfRklGT19TVEFUVVMoTikJKExDRF9MQVlFUjBfRE1BX0ZJRk9fU1RBVFVTICsg KDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZRVIwX0NGRzIJCQkoMHg0ICogMHgxMjApCisjZGVm aW5lIExDRF9MQVlFUm5fQ0ZHMihOKQkJKExDRF9MQVlFUjBfQ0ZHMiArICgweDQwMCpOKSkKKwor I2RlZmluZSBMQ0RfTEFZRVIxX0NGRwkJCSgweDQgKiAweDIwMCkKKyNkZWZpbmUgTENEX0xBWUVS bl9DRkcyKE4pCQkoTENEX0xBWUVSMF9DRkcyICsgKDB4NDAwKk4pKQorI2RlZmluZSBMQ0RfTEFZ RVIxX0NPTF9TVEFSVAkJKDB4NCAqIDB4MjAxKQorI2RlZmluZSBMQ0RfTEFZRVIxX1JPV19TVEFS VAkJKDB4NCAqIDB4MjAyKQorI2RlZmluZSBMQ0RfTEFZRVIxX1dJRFRICQkoMHg0ICogMHgyMDMp CisjZGVmaW5lIExDRF9MQVlFUjFfSEVJR0hUCQkoMHg0ICogMHgyMDQpCisjZGVmaW5lIExDRF9M QVlFUjFfU0NBTEVfQ0ZHCQkoMHg0ICogMHgyMDUpCisjZGVmaW5lIExDRF9MQVlFUjFfQUxQSEEJ CSgweDQgKiAweDIwNikKKyNkZWZpbmUgTENEX0xBWUVSMV9JTlZfQ09MT1VSX0xTCSgweDQgKiAw eDIwNykKKyNkZWZpbmUgTENEX0xBWUVSMV9JTlZfQ09MT1VSX01TCSgweDQgKiAweDIwOCkKKyNk ZWZpbmUgTENEX0xBWUVSMV9UUkFOU19DT0xPVVJfTFMJKDB4NCAqIDB4MjA5KQorI2RlZmluZSBM Q0RfTEFZRVIxX1RSQU5TX0NPTE9VUl9NUwkoMHg0ICogMHgyMGEpCisjZGVmaW5lIExDRF9MQVlF UjFfQ1NDX0NPRUZGMTEJCSgweDQgKiAweDIwYikKKyNkZWZpbmUgTENEX0xBWUVSMV9DU0NfQ09F RkYxMgkJKDB4NCAqIDB4MjBjKQorI2RlZmluZSBMQ0RfTEFZRVIxX0NTQ19DT0VGRjEzCQkoMHg0 ICogMHgyMGQpCisjZGVmaW5lIExDRF9MQVlFUjFfQ1NDX0NPRUZGMjEJCSgweDQgKiAweDIwZSkK KyNkZWZpbmUgTENEX0xBWUVSMV9DU0NfQ09FRkYyMgkJKDB4NCAqIDB4MjBmKQorI2RlZmluZSBM Q0RfTEFZRVIxX0NTQ19DT0VGRjIzCQkoMHg0ICogMHgyMTApCisjZGVmaW5lIExDRF9MQVlFUjFf Q1NDX0NPRUZGMzEJCSgweDQgKiAweDIxMSkKKyNkZWZpbmUgTENEX0xBWUVSMV9DU0NfQ09FRkYz MgkJKDB4NCAqIDB4MjEyKQorI2RlZmluZSBMQ0RfTEFZRVIxX0NTQ19DT0VGRjMzCQkoMHg0ICog MHgyMTMpCisjZGVmaW5lIExDRF9MQVlFUjFfQ1NDX09GRjEJCSgweDQgKiAweDIxNCkKKyNkZWZp bmUgTENEX0xBWUVSMV9DU0NfT0ZGMgkJKDB4NCAqIDB4MjE1KQorI2RlZmluZSBMQ0RfTEFZRVIx X0NTQ19PRkYzCQkoMHg0ICogMHgyMTYpCisjZGVmaW5lIExDRF9MQVlFUjFfRE1BX0NGRwkJKDB4 NCAqIDB4MjE3KQorI2RlZmluZSBMQ0RfTEFZRVIxX0RNQV9TVEFSVF9BRFIJKDB4NCAqIDB4MjE4 KQorI2RlZmluZSBMQ0RfTEFZRVIxX0RNQV9TVEFSVF9TSEFET1cJKDB4NCAqIDB4MjE5KQorI2Rl ZmluZSBMQ0RfTEFZRVIxX0RNQV9MRU4JCSgweDQgKiAweDIxYSkKKyNkZWZpbmUgTENEX0xBWUVS MV9ETUFfTEVOX1NIQURPVwkoMHg0ICogMHgyMWIpCisjZGVmaW5lIExDRF9MQVlFUjFfRE1BX1NU QVRVUwkJKDB4NCAqIDB4MjFjKQorI2RlZmluZSBMQ0RfTEFZRVIxX0RNQV9MSU5FX1dJRFRICSgw eDQgKiAweDIxZCkKKyNkZWZpbmUgTENEX0xBWUVSMV9ETUFfTElORV9WU1RSSURFCSgweDQgKiAw eDIxZSkKKyNkZWZpbmUgTENEX0xBWUVSMV9ETUFfRklGT19TVEFUVVMJKDB4NCAqIDB4MjFmKQor I2RlZmluZSBMQ0RfTEFZRVIxX0NGRzIJCQkoMHg0ICogMHgyMjApCisjZGVmaW5lIExDRF9MQVlF UjJfQ0ZHCQkJKDB4NCAqIDB4MzAwKQorI2RlZmluZSBMQ0RfTEFZRVIyX0NPTF9TVEFSVAkJKDB4 NCAqIDB4MzAxKQorI2RlZmluZSBMQ0RfTEFZRVIyX1JPV19TVEFSVAkJKDB4NCAqIDB4MzAyKQor I2RlZmluZSBMQ0RfTEFZRVIyX1dJRFRICQkoMHg0ICogMHgzMDMpCisjZGVmaW5lIExDRF9MQVlF UjJfSEVJR0hUCQkoMHg0ICogMHgzMDQpCisjZGVmaW5lIExDRF9MQVlFUjJfU0NBTEVfQ0ZHCQko MHg0ICogMHgzMDUpCisjZGVmaW5lIExDRF9MQVlFUjJfQUxQSEEJCSgweDQgKiAweDMwNikKKyNk ZWZpbmUgTENEX0xBWUVSMl9JTlZfQ09MT1VSX0xTCSgweDQgKiAweDMwNykKKyNkZWZpbmUgTENE X0xBWUVSMl9JTlZfQ09MT1VSX01TCSgweDQgKiAweDMwOCkKKyNkZWZpbmUgTENEX0xBWUVSMl9U UkFOU19DT0xPVVJfTFMJKDB4NCAqIDB4MzA5KQorI2RlZmluZSBMQ0RfTEFZRVIyX1RSQU5TX0NP TE9VUl9NUwkoMHg0ICogMHgzMGEpCisjZGVmaW5lIExDRF9MQVlFUjJfQ1NDX0NPRUZGMTEJCSgw eDQgKiAweDMwYikKKyNkZWZpbmUgTENEX0xBWUVSMl9DU0NfQ09FRkYxMgkJKDB4NCAqIDB4MzBj KQorI2RlZmluZSBMQ0RfTEFZRVIyX0NTQ19DT0VGRjEzCQkoMHg0ICogMHgzMGQpCisjZGVmaW5l IExDRF9MQVlFUjJfQ1NDX0NPRUZGMjEJCSgweDQgKiAweDMwZSkKKyNkZWZpbmUgTENEX0xBWUVS Ml9DU0NfQ09FRkYyMgkJKDB4NCAqIDB4MzBmKQorI2RlZmluZSBMQ0RfTEFZRVIyX0NTQ19DT0VG RjIzCQkoMHg0ICogMHgzMTApCisjZGVmaW5lIExDRF9MQVlFUjJfQ1NDX0NPRUZGMzEJCSgweDQg KiAweDMxMSkKKyNkZWZpbmUgTENEX0xBWUVSMl9DU0NfQ09FRkYzMgkJKDB4NCAqIDB4MzEyKQor I2RlZmluZSBMQ0RfTEFZRVIyX0NTQ19DT0VGRjMzCQkoMHg0ICogMHgzMTMpCisjZGVmaW5lIExD RF9MQVlFUjJfQ1NDX09GRjEJCSgweDQgKiAweDMxNCkKKyNkZWZpbmUgTENEX0xBWUVSMl9DU0Nf T0ZGMgkJKDB4NCAqIDB4MzE1KQorI2RlZmluZSBMQ0RfTEFZRVIyX0NTQ19PRkYzCQkoMHg0ICog MHgzMTYpCisjZGVmaW5lIExDRF9MQVlFUjJfRE1BX0NGRwkJKDB4NCAqIDB4MzE3KQorI2RlZmlu ZSBMQ0RfTEFZRVIyX0RNQV9TVEFSVF9BRFIJKDB4NCAqIDB4MzE4KQorI2RlZmluZSBMQ0RfTEFZ RVIyX0RNQV9TVEFSVF9TSEFET1cJKDB4NCAqIDB4MzE5KQorI2RlZmluZSBMQ0RfTEFZRVIyX0RN QV9MRU4JCSgweDQgKiAweDMxYSkKKyNkZWZpbmUgTENEX0xBWUVSMl9ETUFfTEVOX1NIQURPVwko MHg0ICogMHgzMWIpCisjZGVmaW5lIExDRF9MQVlFUjJfRE1BX1NUQVRVUwkJKDB4NCAqIDB4MzFj KQorI2RlZmluZSBMQ0RfTEFZRVIyX0RNQV9MSU5FX1dJRFRICSgweDQgKiAweDMxZCkKKyNkZWZp bmUgTENEX0xBWUVSMl9ETUFfTElORV9WU1RSSURFCSgweDQgKiAweDMxZSkKKyNkZWZpbmUgTENE X0xBWUVSMl9ETUFfRklGT19TVEFUVVMJKDB4NCAqIDB4MzFmKQorI2RlZmluZSBMQ0RfTEFZRVIy X0NGRzIJCQkoMHg0ICogMHgzMjApCisjZGVmaW5lIExDRF9MQVlFUjNfQ0ZHCQkJKDB4NCAqIDB4 NDAwKQorI2RlZmluZSBMQ0RfTEFZRVIzX0NPTF9TVEFSVAkJKDB4NCAqIDB4NDAxKQorI2RlZmlu ZSBMQ0RfTEFZRVIzX1JPV19TVEFSVAkJKDB4NCAqIDB4NDAyKQorI2RlZmluZSBMQ0RfTEFZRVIz X1dJRFRICQkoMHg0ICogMHg0MDMpCisjZGVmaW5lIExDRF9MQVlFUjNfSEVJR0hUCQkoMHg0ICog MHg0MDQpCisjZGVmaW5lIExDRF9MQVlFUjNfU0NBTEVfQ0ZHCQkoMHg0ICogMHg0MDUpCisjZGVm aW5lIExDRF9MQVlFUjNfQUxQSEEJCSgweDQgKiAweDQwNikKKyNkZWZpbmUgTENEX0xBWUVSM19J TlZfQ09MT1VSX0xTCSgweDQgKiAweDQwNykKKyNkZWZpbmUgTENEX0xBWUVSM19JTlZfQ09MT1VS X01TCSgweDQgKiAweDQwOCkKKyNkZWZpbmUgTENEX0xBWUVSM19UUkFOU19DT0xPVVJfTFMJKDB4 NCAqIDB4NDA5KQorI2RlZmluZSBMQ0RfTEFZRVIzX1RSQU5TX0NPTE9VUl9NUwkoMHg0ICogMHg0 MGEpCisjZGVmaW5lIExDRF9MQVlFUjNfQ1NDX0NPRUZGMTEJCSgweDQgKiAweDQwYikKKyNkZWZp bmUgTENEX0xBWUVSM19DU0NfQ09FRkYxMgkJKDB4NCAqIDB4NDBjKQorI2RlZmluZSBMQ0RfTEFZ RVIzX0NTQ19DT0VGRjEzCQkoMHg0ICogMHg0MGQpCisjZGVmaW5lIExDRF9MQVlFUjNfQ1NDX0NP RUZGMjEJCSgweDQgKiAweDQwZSkKKyNkZWZpbmUgTENEX0xBWUVSM19DU0NfQ09FRkYyMgkJKDB4 NCAqIDB4NDBmKQorI2RlZmluZSBMQ0RfTEFZRVIzX0NTQ19DT0VGRjIzCQkoMHg0ICogMHg0MTAp CisjZGVmaW5lIExDRF9MQVlFUjNfQ1NDX0NPRUZGMzEJCSgweDQgKiAweDQxMSkKKyNkZWZpbmUg TENEX0xBWUVSM19DU0NfQ09FRkYzMgkJKDB4NCAqIDB4NDEyKQorI2RlZmluZSBMQ0RfTEFZRVIz X0NTQ19DT0VGRjMzCQkoMHg0ICogMHg0MTMpCisjZGVmaW5lIExDRF9MQVlFUjNfQ1NDX09GRjEJ CSgweDQgKiAweDQxNCkKKyNkZWZpbmUgTENEX0xBWUVSM19DU0NfT0ZGMgkJKDB4NCAqIDB4NDE1 KQorI2RlZmluZSBMQ0RfTEFZRVIzX0NTQ19PRkYzCQkoMHg0ICogMHg0MTYpCisjZGVmaW5lIExD RF9MQVlFUjNfRE1BX0NGRwkJKDB4NCAqIDB4NDE3KQorI2RlZmluZSBMQ0RfTEFZRVIzX0RNQV9T VEFSVF9BRFIJKDB4NCAqIDB4NDE4KQorI2RlZmluZSBMQ0RfTEFZRVIzX0RNQV9TVEFSVF9TSEFE T1cJKDB4NCAqIDB4NDE5KQorI2RlZmluZSBMQ0RfTEFZRVIzX0RNQV9MRU4JCSgweDQgKiAweDQx YSkKKyNkZWZpbmUgTENEX0xBWUVSM19ETUFfTEVOX1NIQURPVwkoMHg0ICogMHg0MWIpCisjZGVm aW5lIExDRF9MQVlFUjNfRE1BX1NUQVRVUwkJKDB4NCAqIDB4NDFjKQorI2RlZmluZSBMQ0RfTEFZ RVIzX0RNQV9MSU5FX1dJRFRICSgweDQgKiAweDQxZCkKKyNkZWZpbmUgTENEX0xBWUVSM19ETUFf TElORV9WU1RSSURFCSgweDQgKiAweDQxZSkKKyNkZWZpbmUgTENEX0xBWUVSM19ETUFfRklGT19T VEFUVVMJKDB4NCAqIDB4NDFmKQorI2RlZmluZSBMQ0RfTEFZRVIzX0NGRzIJCQkoMHg0ICogMHg0 MjApCisjZGVmaW5lIExDRF9MQVlFUjJfQ0xVVDAJCSgweDQgKiAweDUwMCkKKyNkZWZpbmUgTENE X0xBWUVSMl9DTFVUMQkJKDB4NCAqIDB4NTAxKQorI2RlZmluZSBMQ0RfTEFZRVIyX0NMVVQyCQko MHg0ICogMHg1MDIpCisjZGVmaW5lIExDRF9MQVlFUjJfQ0xVVDMJCSgweDQgKiAweDUwMykKKyNk ZWZpbmUgTENEX0xBWUVSMl9DTFVUNAkJKDB4NCAqIDB4NTA0KQorI2RlZmluZSBMQ0RfTEFZRVIy X0NMVVQ1CQkoMHg0ICogMHg1MDUpCisjZGVmaW5lIExDRF9MQVlFUjJfQ0xVVDYJCSgweDQgKiAw eDUwNikKKyNkZWZpbmUgTENEX0xBWUVSMl9DTFVUNwkJKDB4NCAqIDB4NTA3KQorI2RlZmluZSBM Q0RfTEFZRVIyX0NMVVQ4CQkoMHg0ICogMHg1MDgpCisjZGVmaW5lIExDRF9MQVlFUjJfQ0xVVDkJ CSgweDQgKiAweDUwOSkKKyNkZWZpbmUgTENEX0xBWUVSMl9DTFVUMTAJCSgweDQgKiAweDUwYSkK KyNkZWZpbmUgTENEX0xBWUVSMl9DTFVUMTEJCSgweDQgKiAweDUwYikKKyNkZWZpbmUgTENEX0xB WUVSMl9DTFVUMTIJCSgweDQgKiAweDUwYykKKyNkZWZpbmUgTENEX0xBWUVSMl9DTFVUMTMJCSgw eDQgKiAweDUwZCkKKyNkZWZpbmUgTENEX0xBWUVSMl9DTFVUMTQJCSgweDQgKiAweDUwZSkKKyNk ZWZpbmUgTENEX0xBWUVSMl9DTFVUMTUJCSgweDQgKiAweDUwZikKKyNkZWZpbmUgTENEX0xBWUVS M19DTFVUMAkJKDB4NCAqIDB4NjAwKQorI2RlZmluZSBMQ0RfTEFZRVIzX0NMVVQxCQkoMHg0ICog MHg2MDEpCisjZGVmaW5lIExDRF9MQVlFUjNfQ0xVVDIJCSgweDQgKiAweDYwMikKKyNkZWZpbmUg TENEX0xBWUVSM19DTFVUMwkJKDB4NCAqIDB4NjAzKQorI2RlZmluZSBMQ0RfTEFZRVIzX0NMVVQ0 CQkoMHg0ICogMHg2MDQpCisjZGVmaW5lIExDRF9MQVlFUjNfQ0xVVDUJCSgweDQgKiAweDYwNSkK KyNkZWZpbmUgTENEX0xBWUVSM19DTFVUNgkJKDB4NCAqIDB4NjA2KQorI2RlZmluZSBMQ0RfTEFZ RVIzX0NMVVQ3CQkoMHg0ICogMHg2MDcpCisjZGVmaW5lIExDRF9MQVlFUjNfQ0xVVDgJCSgweDQg KiAweDYwOCkKKyNkZWZpbmUgTENEX0xBWUVSM19DTFVUOQkJKDB4NCAqIDB4NjA5KQorI2RlZmlu ZSBMQ0RfTEFZRVIzX0NMVVQxMAkJKDB4NCAqIDB4NjBhKQorI2RlZmluZSBMQ0RfTEFZRVIzX0NM VVQxMQkJKDB4NCAqIDB4NjBiKQorI2RlZmluZSBMQ0RfTEFZRVIzX0NMVVQxMgkJKDB4NCAqIDB4 NjBjKQorI2RlZmluZSBMQ0RfTEFZRVIzX0NMVVQxMwkJKDB4NCAqIDB4NjBkKQorI2RlZmluZSBM Q0RfTEFZRVIzX0NMVVQxNAkJKDB4NCAqIDB4NjBlKQorI2RlZmluZSBMQ0RfTEFZRVIzX0NMVVQx NQkJKDB4NCAqIDB4NjBmKQorI2RlZmluZSBMQ0RfTEFZRVIwX0RNQV9TVEFSVF9DQl9BRFIJKDB4 NCAqIDB4NzAwKQorI2RlZmluZSBMQ0RfTEFZRVIwX0RNQV9TVEFSVF9DQl9TSEFET1cJKDB4NCAq IDB4NzAxKQorI2RlZmluZSBMQ0RfTEFZRVIwX0RNQV9DQl9MSU5FX1dJRFRICSgweDQgKiAweDcw MikKKyNkZWZpbmUgTENEX0xBWUVSMF9ETUFfQ0JfTElORV9WU1RSSURFCSgweDQgKiAweDcwMykK KyNkZWZpbmUgTENEX0xBWUVSMF9ETUFfU1RBUlRfQ1JfQURSCSgweDQgKiAweDcwNCkKKyNkZWZp bmUgTENEX0xBWUVSMF9ETUFfU1RBUlRfQ1JfU0hBRE9XCSgweDQgKiAweDcwNSkKKyNkZWZpbmUg TENEX0xBWUVSMF9ETUFfQ1JfTElORV9XSURUSAkoMHg0ICogMHg3MDYpCisjZGVmaW5lIExDRF9M QVlFUjBfRE1BX0NSX0xJTkVfVlNUUklERQkoMHg0ICogMHg3MDcpCisjZGVmaW5lIExDRF9MQVlF UjFfRE1BX1NUQVJUX0NCX0FEUgkoMHg0ICogMHg3MDgpCisjZGVmaW5lIExDRF9MQVlFUjFfRE1B X1NUQVJUX0NCX1NIQURPVwkoMHg0ICogMHg3MDkpCisjZGVmaW5lIExDRF9MQVlFUjFfRE1BX0NC X0xJTkVfV0lEVEgJKDB4NCAqIDB4NzBhKQorI2RlZmluZSBMQ0RfTEFZRVIxX0RNQV9DQl9MSU5F X1ZTVFJJREUJKDB4NCAqIDB4NzBiKQorI2RlZmluZSBMQ0RfTEFZRVIxX0RNQV9TVEFSVF9DUl9B RFIJKDB4NCAqIDB4NzBjKQorI2RlZmluZSBMQ0RfTEFZRVIxX0RNQV9TVEFSVF9DUl9TSEFET1cJ KDB4NCAqIDB4NzBkKQorI2RlZmluZSBMQ0RfTEFZRVIxX0RNQV9DUl9MSU5FX1dJRFRICSgweDQg KiAweDcwZSkKKyNkZWZpbmUgTENEX0xBWUVSMV9ETUFfQ1JfTElORV9WU1RSSURFCSgweDQgKiAw eDcwZikKKyNkZWZpbmUgTENEX09VVF9GT1JNQVRfQ0ZHCQkoMHg0ICogMHg4MDApCisjZGVmaW5l IExDRF9IU1lOQ19XSURUSAkJCSgweDQgKiAweDgwMSkKKyNkZWZpbmUgTENEX0hfQkFDS1BPUkNI CQkJKDB4NCAqIDB4ODAyKQorI2RlZmluZSBMQ0RfSF9BQ1RJVkVXSURUSAkJKDB4NCAqIDB4ODAz KQorI2RlZmluZSBMQ0RfSF9GUk9OVFBPUkNICQkoMHg0ICogMHg4MDQpCisjZGVmaW5lIExDRF9W U1lOQ19XSURUSAkJCSgweDQgKiAweDgwNSkKKyNkZWZpbmUgTENEX1ZfQkFDS1BPUkNICQkJKDB4 NCAqIDB4ODA2KQorI2RlZmluZSBMQ0RfVl9BQ1RJVkVIRUlHSFQJCSgweDQgKiAweDgwNykKKyNk ZWZpbmUgTENEX1ZfRlJPTlRQT1JDSAkJKDB4NCAqIDB4ODA4KQorI2RlZmluZSBMQ0RfVlNZTkNf U1RBUlQJCQkoMHg0ICogMHg4MDkpCisjZGVmaW5lIExDRF9WU1lOQ19FTkQJCQkoMHg0ICogMHg4 MGEpCisjZGVmaW5lIExDRF9WX0JBQ0tQT1JDSF9FVkVOCQkoMHg0ICogMHg4MGIpCisjZGVmaW5l IExDRF9WU1lOQ19XSURUSF9FVkVOCQkoMHg0ICogMHg4MGMpCisjZGVmaW5lIExDRF9WX0FDVElW RUhFSUdIVF9FVkVOCQkoMHg0ICogMHg4MGQpCisjZGVmaW5lIExDRF9WX0ZST05UUE9SQ0hfRVZF TgkJKDB4NCAqIDB4ODBlKQorI2RlZmluZSBMQ0RfVlNZTkNfU1RBUlRfRVZFTgkJKDB4NCAqIDB4 ODBmKQorI2RlZmluZSBMQ0RfVlNZTkNfRU5EX0VWRU4JCSgweDQgKiAweDgxMCkKKyNkZWZpbmUg TENEX1RJTUlOR19HRU5fVFJJRwkJKDB4NCAqIDB4ODExKQorI2RlZmluZSBMQ0RfUFdNMF9DVFJM CQkJKDB4NCAqIDB4ODEyKQorI2RlZmluZSBMQ0RfUFdNMF9SUFRfTEVBRElOCQkoMHg0ICogMHg4 MTMpCisjZGVmaW5lIExDRF9QV00wX0hJR0hfTE9XCQkoMHg0ICogMHg4MTQpCisjZGVmaW5lIExD RF9QV00xX0NUUkwJCQkoMHg0ICogMHg4MTUpCisjZGVmaW5lIExDRF9QV00xX1JQVF9MRUFESU4J CSgweDQgKiAweDgxNikKKyNkZWZpbmUgTENEX1BXTTFfSElHSF9MT1cJCSgweDQgKiAweDgxNykK KyNkZWZpbmUgTENEX1BXTTJfQ1RSTAkJCSgweDQgKiAweDgxOCkKKyNkZWZpbmUgTENEX1BXTTJf UlBUX0xFQURJTgkJKDB4NCAqIDB4ODE5KQorI2RlZmluZSBMQ0RfUFdNMl9ISUdIX0xPVwkJKDB4 NCAqIDB4ODFhKQorI2RlZmluZSBMQ0RfVklERU8wX0RNQTBfQllURVMJCSgweDQgKiAweGIwMCkK KyNkZWZpbmUgTENEX1ZJREVPMF9ETUEwX1NUQVRFCQkoMHg0ICogMHhiMDEpCisjZGVmaW5lIExD RF9WSURFTzBfRE1BMV9CWVRFUwkJKDB4NCAqIDB4YjAyKQorI2RlZmluZSBMQ0RfVklERU8wX0RN QTFfU1RBVEUJCSgweDQgKiAweGIwMykKKyNkZWZpbmUgTENEX1ZJREVPMF9ETUEyX0JZVEVTCQko MHg0ICogMHhiMDQpCisjZGVmaW5lIExDRF9WSURFTzBfRE1BMl9TVEFURQkJKDB4NCAqIDB4YjA1 KQorI2RlZmluZSBMQ0RfVklERU8xX0RNQTBfQllURVMJCSgweDQgKiAweGIwNikKKyNkZWZpbmUg TENEX1ZJREVPMV9ETUEwX1NUQVRFCQkoMHg0ICogMHhiMDcpCisjZGVmaW5lIExDRF9WSURFTzFf RE1BMV9CWVRFUwkJKDB4NCAqIDB4YjA4KQorI2RlZmluZSBMQ0RfVklERU8xX0RNQTFfU1RBVEUJ CSgweDQgKiAweGIwOSkKKyNkZWZpbmUgTENEX1ZJREVPMV9ETUEyX0JZVEVTCQkoMHg0ICogMHhi MGEpCisjZGVmaW5lIExDRF9WSURFTzFfRE1BMl9TVEFURQkJKDB4NCAqIDB4YjBiKQorI2RlZmlu ZSBMQ0RfR1JBUEhJQzBfRE1BX0JZVEVTCQkoMHg0ICogMHhiMGMpCisjZGVmaW5lIExDRF9HUkFQ SElDMF9ETUFfU1RBVEUJCSgweDQgKiAweGIwZCkKKyNkZWZpbmUgTENEX0dSQVBISUMxX0RNQV9C WVRFUwkJKDB4NCAqIDB4YjBlKQorI2RlZmluZSBMQ0RfR1JBUEhJQzFfRE1BX1NUQVRFCQkoMHg0 ICogMHhiMGYpCisKKyNkZWZpbmUgTEFZRVIzX0RNQV9GSUZPX1VOREVSRkxPV19CSVQJCSgxPDwy NikKKyNkZWZpbmUgTEFZRVIzX0RNQV9PVkVSRkxPV19CSVQJCQkoMTw8MjUpCisjZGVmaW5lIExB WUVSM19ETUFfSURMRV9CSVQJCQkoMTw8MjQpCisjZGVmaW5lIExBWUVSM19ETUFfRE9ORV9CSVQJ CQkoMTw8MjMpCisKKyNkZWZpbmUgTEFZRVIyX0RNQV9GSUZPX1VOREVSRkxPV19CSVQJCSgxPDwy MikKKyNkZWZpbmUgTEFZRVIyX0RNQV9PVkVSRkxPV19CSVQJCQkoMTw8MjEpCisjZGVmaW5lIExB WUVSMl9ETUFfSURMRV9CSVQJCQkoMTw8MjApCisjZGVmaW5lIExBWUVSMl9ETUFfRE9ORV9CSVQJ CQkoMTw8MTkpCisKKyNkZWZpbmUgTEFZRVIxX0RNQV9DUl9GSUZPX1VOREVSRkxPV19CSVQJKDE8 PDE4KQorI2RlZmluZSBMQVlFUjFfRE1BX0NSX0ZJRk9fT1ZFUkZMT1dfQklUCQkoMTw8MTcpCisj ZGVmaW5lIExBWUVSMV9ETUFfQ0JfRklGT19VTkRFUkZMT1dfQklUCSgxPDwxNikKKyNkZWZpbmUg TEFZRVIxX0RNQV9DQl9GSUZPX09WRVJGTE9XX0JJVAkJKDE8PDE1KQorCisjZGVmaW5lIExBWUVS MV9ETUFfRklGT19VTkRFUkZMT1dfQklUCQkoMTw8MTQpCisjZGVmaW5lIExBWUVSMV9ETUFfT1ZF UkZMT1dfQklUCQkJKDE8PDEzKQorI2RlZmluZSBMQVlFUjFfRE1BX0lETEVfQklUCQkJKDE8PDEy KQorI2RlZmluZSBMQVlFUjFfRE1BX0RPTkVfQklUCQkJKDE8PDExKQorCisjZGVmaW5lIExBWUVS MF9ETUFfQ1JfRklGT19VTkRFUkZMT1dfQklUCSgxPDwxMCkKKyNkZWZpbmUgTEFZRVIwX0RNQV9D Ul9GSUZPX09WRVJGTE9XX0JJVAkJKDE8PDkpCisjZGVmaW5lIExBWUVSMF9ETUFfQ0JfRklGT19V TkRFUkZMT1dfQklUCSgxPDw4KQorI2RlZmluZSBMQVlFUjBfRE1BX0NCX0ZJRk9fT1ZFUkZMT1df QklUCQkoMTw8NykKKworI2RlZmluZSBMQVlFUjBfRE1BX0ZJRk9fVU5ERUZMT1dfQklUCQkoMTw8 NikKKyNkZWZpbmUgTEFZRVIwX0RNQV9PVkVSRkxPV19CSVQJCQkoMTw8NSkKKyNkZWZpbmUgTEFZ RVIwX0RNQV9JRExFX0JJVAkJCSgxPDw0KQorI2RlZmluZSBMQVlFUjBfRE1BX0RPTkVfQklUCQkJ KDE8PDMpCisKKyNkZWZpbmUgIEJMVF9WSURFT25fRE1BbV9TVEFURQkJCTB4MDAKKyNkZWZpbmUg IEJMVF9WSURFT25fRE1BbV9CWVRFUwkJCTB4MDAKKyNkZWZpbmUgIEJMVF9SQU1fQ0ZHCQkJCTB4 MDAKKworI2RlZmluZSAgQkxUX0xBWUVSbl9XSURUSChOKQkJCSgweDQwQyArICgweDQwMCpOKSkK KyNkZWZpbmUgIEJMVF9MQVlFUm5fSEVJR0hUX09GRlNFVChOKQkJKDB4NDEwICsgKDB4NDAwKk4p KQorCisjZGVmaW5lICBCTFRfTEFZRVJuX1RSQU5TX0NPTE9VUl9NUwkJMHgwCisjZGVmaW5lICBC TFRfTEFZRVJuX1RSQU5TX0NPTE9VUl9MUwkJMHgwCisjZGVmaW5lICBCTFRfTEFZRVJuX1NDQUxF X0NGRwkJCTB4MAorI2RlZmluZSAgQkxUX0xBWUVSbl9ST1dfU1RBUlQJCQkweDAKKyNkZWZpbmUg IEJMVF9MQVlFUm5fSU5WX0NPTE9VUl9NUwkJMHgwCisjZGVmaW5lICBCTFRfTEFZRVJuX0lOVl9D T0xPVVJfTFMJCTB4MAorCisvKiAgTENEIGNvbnRyb2xsZXIgTGF5ZXIgRE1BIGNvbmZpZyByZWdp c3RlciAqLworCisvKiBiaXQgMCBkZWZhdWx0IGlzIGRpc2FibGVkICovCisjZGVmaW5lIExDRF9E TUFfTEFZRVJfRU5BQkxFCQkJKDB4MDAxKQorLyogYml0IDEgdGhpcyBzaG91bGQgYmUgdXNlZCBv bmx5IGFzIGEgbWFzayB3aGVuIHJlYWRpbmcgdGhlIHN0YXR1cyBmcm9tCisgKiB0aGUgRE1BIENG RyByZWdpc3RlcgorICovCisjZGVmaW5lIExDRF9ETUFfTEFZRVJfU1RBVFVTCQkJKDB4MDAyKQor LyogYml0IDIgKi8KKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BVVRPX1VQREFURQkJKDB4MDA0KQor LyogYml0IDMgKi8KKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9DT05UX1VQREFURQkJKDB4MDA4KQor LyogYml0IDIgKyBiaXQgMyAqLworI2RlZmluZSBMQ0RfRE1BX0xBWUVSX0NPTlRfUElOR19QT05H X1VQREFURQkoMHgwMEMpCisvKiBiaXQgNCBzZXQgRklGTyBhZGRyZXNzaW5nIG1vZGUsIGRlZmF1 bHQgaXMgaW5jcmVtZW50IGFmdGVyIGVhY2ggYnVyc3QgKi8KKyNkZWZpbmUgTENEX0RNQV9MQVlF Ul9GSUZPX0FEUl9NT0RFCQkoMHgwMTApCisvKiBiaXQgNTo5IGRlZmF1bHQgYXhpIGJ1cnN0IGlz IDEgKi8KKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BWElfQlVSU1RfMQkJKDB4MDIwKQorI2RlZmlu ZSBMQ0RfRE1BX0xBWUVSX0FYSV9CVVJTVF8yCQkoMHgwNDApCisjZGVmaW5lIExDRF9ETUFfTEFZ RVJfQVhJX0JVUlNUXzMJCSgweDA2MCkKKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BWElfQlVSU1Rf NAkJKDB4MDgwKQorI2RlZmluZSBMQ0RfRE1BX0xBWUVSX0FYSV9CVVJTVF81CQkoMHgwQTApCisj ZGVmaW5lIExDRF9ETUFfTEFZRVJfQVhJX0JVUlNUXzYJCSgweDBDMCkKKyNkZWZpbmUgTENEX0RN QV9MQVlFUl9BWElfQlVSU1RfNwkJKDB4MEUwKQorI2RlZmluZSBMQ0RfRE1BX0xBWUVSX0FYSV9C VVJTVF84CQkoMHgxMDApCisjZGVmaW5lIExDRF9ETUFfTEFZRVJfQVhJX0JVUlNUXzkJCSgweDEy MCkKKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BWElfQlVSU1RfMTAJCSgweDE0MCkKKyNkZWZpbmUg TENEX0RNQV9MQVlFUl9BWElfQlVSU1RfMTEJCSgweDE2MCkKKyNkZWZpbmUgTENEX0RNQV9MQVlF Ul9BWElfQlVSU1RfMTIJCSgweDE4MCkKKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BWElfQlVSU1Rf MTMJCSgweDFBMCkKKyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BWElfQlVSU1RfMTQJCSgweDFDMCkK KyNkZWZpbmUgTENEX0RNQV9MQVlFUl9BWElfQlVSU1RfMTUJCSgweDFFMCkKKyNkZWZpbmUgTENE X0RNQV9MQVlFUl9BWElfQlVSU1RfMTYJCSgweDIwMCkKKy8qIGJpdCAxMCAqLworI2RlZmluZSBM Q0RfRE1BX0xBWUVSX1ZfU1RSSURFX0VOCQkoMHg0MDApCisKKy8qICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisgKgkJCUxDRCBjb250cm9sbGVyIGNvbnRyb2wgcmVnaXN0ZXIgZGVmaW5lcworICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKKyAqLworLyogLS0tIGJpdCAwICovCisjZGVmaW5lIExDRF9DVFJMX1BST0dS RVNTSVZFCQkoMHgwMCkJLyogZGVmYXVsdCAqLworI2RlZmluZSBMQ0RfQ1RSTF9JTlRFUkxBQ0VE CQkoMHgwMSkKKy8qIC0tLSBiaXQgMSAqLworI2RlZmluZSBMQ0RfQ1RSTF9FTkFCTEUJCQkoMHgw MikJLyogZW5hYmxlIGNvbnJ0b2xsZXIgKi8KKy8qIC0tLSBiaXRzIDIsMyw0LDUgKi8KKyNkZWZp bmUgTENEX0NUUkxfVkwxX0VOQUJMRQkJKDB4MDQpCS8qIGVuYWJsZSB2aWRlbyBsYXllciAxICov CisjZGVmaW5lIExDRF9DVFJMX1ZMMl9FTkFCTEUJCSgweDA4KQkvKiBlbmFibGUgIHZpZGVvIGxh eWVyIDIgKi8KKyNkZWZpbmUgTENEX0NUUkxfR0wxX0VOQUJMRQkJKDB4MTApCS8qIGVuYWJsZSAg Z3JhcGhpY3MgbGF5ZXIgMSAqLworI2RlZmluZSBMQ0RfQ1RSTF9HTDJfRU5BQkxFCQkoMHgyMCkJ LyogZW5hYmxlICBncmFwaGljcyBsYXllciAyICovCisvKiAtLS0gYml0cyA2OjcgKi8KKyNkZWZp bmUgTENEX0NUUkxfQUxQSEFfQkxFTkRfVkwxCSgweDAwKQkvKiB2aWRlbyBsYXllciAxIC0gZGVm YXVsdCAqLworI2RlZmluZSBMQ0RfQ1RSTF9BTFBIQV9CTEVORF9WTDIJKDB4NDApCS8qIHZpZGVv IGxheWVyIDIgKi8KKyNkZWZpbmUgTENEX0NUUkxfQUxQSEFfQkxFTkRfR0wxCSgweDgwKQkvKiBn cmFwaGljcyBsYXllciAxICovCisjZGVmaW5lIExDRF9DVFJMX0FMUEhBX0JMRU5EX0dMMgkoMHhD MCkJLyogZ3JhcGhpY3MgbGF5ZXIgMiAqLworLyogLS0tIGJpdHMgODo5ICovCisjZGVmaW5lIExD RF9DVFJMX0FMUEhBX1RPUF9WTDEJCSgweDAwMCkJLyogdmlkZW8gbGF5ZXIgMSAtIGRlZmF1bHQg Ki8KKyNkZWZpbmUgTENEX0NUUkxfQUxQSEFfVE9QX1ZMMgkJKDB4MTAwKQkvKiB2aWRlbyBsYXll ciAyICovCisjZGVmaW5lIExDRF9DVFJMX0FMUEhBX1RPUF9HTDEJCSgweDIwMCkJLyogZ3JhcGhp Y3MgbGF5ZXIgMSAqLworI2RlZmluZSBMQ0RfQ1RSTF9BTFBIQV9UT1BfR0wyCQkoMHgzMDApCS8q IGdyYXBoaWNzIGxheWVyIDIgKi8KKy8qIC0tLSBiaXRzIDEwOjExICovCisjZGVmaW5lIExDRF9D VFJMX0FMUEhBX01JRERMRV9WTDEJKDB4MDAwKQkvKiB2aWRlbyBsYXllciAxIC0gZGVmYXVsdCAq LworI2RlZmluZSBMQ0RfQ1RSTF9BTFBIQV9NSURETEVfVkwyCSgweDQwMCkJLyogdmlkZW8gbGF5 ZXIgMiAqLworI2RlZmluZSBMQ0RfQ1RSTF9BTFBIQV9NSURETEVfR0wxCSgweDgwMCkJLyogZ3Jh cGhpY3MgbGF5ZXIgMSAqLworI2RlZmluZSBMQ0RfQ1RSTF9BTFBIQV9NSURETEVfR0wyCSgweEMw MCkJLyogZ3JhcGhpY3MgbGF5ZXIgMiAqLworLyogLS0tIGJpdHMgMTI6MTMgKi8KKyNkZWZpbmUg TENEX0NUUkxfQUxQSEFfQk9UVE9NX1ZMMQkoMHgwMDAwKQkvKiB2aWRlbyBsYXllciAxICovCisj ZGVmaW5lIExDRF9DVFJMX0FMUEhBX0JPVFRPTV9WTDIJKDB4MTAwMCkJLyogdmlkZW8gbGF5ZXIg MiAqLworI2RlZmluZSBMQ0RfQ1RSTF9BTFBIQV9CT1RUT01fR0wxCSgweDIwMDApCS8qIGdyYXBo aWNzIGxheWVyIDEgKi8KKyNkZWZpbmUgTENEX0NUUkxfQUxQSEFfQk9UVE9NX0dMMgkoMHgzMDAw KQkvKiBncmFwaGljcyBsYXllciAyICovCisvKiAtLS0gYml0IDE0ICovCisjZGVmaW5lIExDRF9D VFJMX1RJTV9HRU5fRU5BQkxFCQkoMHg0MDAwKQkvKiB0aW1pbmcgZ2VuZXJhdG9yICovCisvKiAt LS0gYml0IDE1ICovCisjZGVmaW5lIExDRF9DVFJMX0RJU1BMQVlfTU9ERV9PTkVfU0hPVAkoMHg4 MDAwKQkvKiBkZWZhdWx0IGNvbnRpbnVvdXMgKi8KKy8qIC0tLSBiaXRzIDE2LCAxNywgMTggKi8K KyNkZWZpbmUgTENEX0NUUkxfUFdNMF9FTgkJKDB4MTAwMDApCS8qIGVuYWJsZSBQV00gMCAqLwor I2RlZmluZSBMQ0RfQ1RSTF9QV00xX0VOCQkoMHgyMDAwMCkJLyogZW5hYmxlIFBXTSAxICovCisj ZGVmaW5lIExDRF9DVFJMX1BXTTJfRU4JCSgweDQwMDAwKQkvKiBlbmFibGUgUFdNIDIgKi8KKy8q IC0tLSBiaXRzIDE5OjIwICovCisjZGVmaW5lIExDRF9DVFJMX09VVFBVVF9ESVNBQkxFRAkoMHgw MDAwMDApCS8qIG91dHB1dCBkaXNhYmxlZCAqLworI2RlZmluZSBMQ0RfQ1RSTF9PVVRQVVRfRU5B QkxFRAkJKDB4MDgwMDAwKQorLyogLS0tIGJpdCAyMSAqLworI2RlZmluZSBMQ0RfQ1RSTF9TSEFS UF9URlQJCSgweDIwMDAwMCkKKy8qID0gYml0IDIxIFZTWU5DIEJBQ0sgUE9SQ0ggTEVWRUwgKi8K KyNkZWZpbmUgTENEX0NUUkxfQlBPUkNIX0VOQUJMRQkJKDB4MDAyMDAwMDApCisvKiA9IGJpdCAy MiBWU1lOQyBGUk9OVCBQT1JDSCBMRVZFTCAqLworI2RlZmluZSBMQ0RfQ1RSTF9GUE9SQ0hfRU5B QkxFCQkoMHgwMDQwMDAwMCkKKy8qID0gYml0IDI4IGVuYWJsZSBwaXBlbGluZWQgKG91dHN0YW5k aW5nKSBETUEgcmVhZHMgKi8KKyNkZWZpbmUgTENEX0NUUkxfUElQRUxJTkVfRE1BCQkoMHgxMDAw MDAwMCkKKworLyogTENEIENvbnRyb2wgcmVnaXN0ZXIgYml0IGZpZWxkcyAqLworCisjZGVmaW5l IEVJR0hUX0JJVFMJCQkgOAorI2RlZmluZSBTSVhURUVOX0JJVFMJCQkgOAorI2RlZmluZSBUV0VO VFlfRk9VUl9CSVRTCQkgOAorI2RlZmluZSBUSElSVF9UV09fQklUUwkJCSA4CisKKyNkZWZpbmUg RU5BQkxFCQkJCSAxCisvKkxDRF9WU1RBVFVTX0NPTVBBUkUgVmVydGNhbCBpbnRlcnZhbCBpbiB3 aGljaCB0byBnZW5lcmF0ZSB2ZXJ0Y2FsCisgKiBpbnRlcnZhbCBpbnRlcnJ1cHQKKyAqLworI2Rl ZmluZSBMQ0RfVlNUQVRVU19WRVJUSUNBTF9TVEFUVVNfTUFTSwkgMHg2MAkvKiBCSVRTIDEzIGFu ZCAxNCAqLworI2RlZmluZSBMQ0RfVlNUQVRVU19DT01QQVJFX1ZTWU5DCQkgMHgwMAorI2RlZmlu ZSBMQ0RfVlNUQVRVU19DT01QQVJFX0JBQ0tQT1JDSAkJIDB4MDEKKyNkZWZpbmUgTENEX1ZTVEFU VVNfQ09NUEFSRV9BQ1RJVkUJCSAweDEwCisjZGVmaW5lIExDRF9WU1RBVFVTX0NPTVBBUkVfRlJP TlRfUE9SQ0gJCSAweDExCisKKy8qaW50ZXJydXB0IGJpdHMgKi8KKyNkZWZpbmUgTENEX0lOVF9W RVJUX0NPTVAJCQkgKDEgPDwgMikKKyNkZWZpbmUgTENEX0lOVF9MSU5FX0NNUAkJCSAoMSA8PCAx KQorI2RlZmluZSBMQ0RfSU5UX0VPRgkJCQkgKDEgPDwgMCkKKworI2VuZGlmIC8qIF9fS01CX1JF R1NfSF9fICovCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==