From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v1 6/9] livepatch: Initial ARM64 support. Date: Sun, 14 Aug 2016 19:07:51 -0400 Message-ID: <1471216074-3007-7-git-send-email-konrad.wilk@oracle.com> References: <1471216074-3007-1-git-send-email-konrad.wilk@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 1bZ4WB-00019G-N4 for xen-devel@lists.xenproject.org; Sun, 14 Aug 2016 23:08:36 +0000 In-Reply-To: <1471216074-3007-1-git-send-email-konrad.wilk@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, konrad@kernel.org, ross.lagerwall@citrix.com Cc: Andrew Cooper , julien.grall@arm.com, sstabellini@kernel.org, Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org QXMgY29tcGFyZWQgdG8geDg2IHRoZSB2YSBvZiB0aGUgaHlwZXJ2aXNvciAudGV4dAppcyBsb2Nr ZWQgZG93biAtIHdlIGNhbm5vdCBtb2RpZnkgdGhlIHJ1bm5pbmcgcGFnZXRhYmxlcwp0byBoYXZl IHRoZSAucm8gZmxhZyB1bnNldC4gV2UgYm9ycm93IHRoZSBzYW1lIGlkZWEgdGhhdAphbHRlcm5h dGl2ZSBwYXRjaGluZyBoYXMgLSB3aGljaCBpcyB0byB2bWFwIHRoZSBlbnRpcmUKLnRleHQgcmVn aW9uIGFuZCB1c2UgdGhlIGFsdGVybmF0aXZlIHZpcnR1YWwgYWRkcmVzcwpmb3IgcGF0Y2hpbmcu CgpTaW5jZSB3ZSBhcmUgZG9pbmcgdm1hcCB3ZSBtYXkgZmFpbCwgaGVuY2UgdGhlCmFyY2hfbGl2 ZXBhdGNoX3F1aWVzY2UgaXMgY2hhbmdlZCB0byByZXR1cm4gYW4gZXJyb3IgdmFsdWUKd2hpY2gg d2lsbCBiZSBidWJibGVkIGluIHBheWxvYWQtPnJjIGFuZCBwcm92aWRlZCB0byB0aGUKdXNlciAo YWxvbmcgd2l0aCBtZXNzYWdlcyBpbiB0aGUgcmluZyBidWZmZXIpLgoKQW5kIHRoZSBsaXZlcGF0 Y2ggdmlydHVhbCBhZGRyZXNzIHNwYWNlICh3aGVyZSB0aGUKbmV3IGZ1bmN0aW9ucyBhcmUpIG5l ZWRzIHRvIGJlIGNsb3NlIHRvIHRoZSBoeXBlcnZpc29yIHZpcnR1YWwgYWRkcmVzcwpzbyB0aGF0 IHRoZSB0cmFtcG9saW5lIGNhbiByZWFjaCBpdC4gQXMgc3VjaCB3ZSByZS11c2UKdGhlIEJPT1Rf UkVMT0NfVklSVF9TVEFSVCB3aGljaCBpcyBub3QgdXNlZCBhZnRlciBib290dXAKKGFsdGVybmF0 aXZlbHkgd2UgY2FuIGFsc28gdXNlIHRoZSBzcGFjZSBhZnRlciB0aGUgX2VuZCB0bwpGSVhNQVBf QUREUigwKSwgYnV0IHRoYXQgbWF5IGJlIHRvbyBzbWFsbCkuCgpUaGUgRUxGIHJlbG9jYXRpb24g ZW5naW5lIGF0IHRoZSBzdGFydCB3YXMgY29kZWQgZnJvbQp0aGUgIkVMRiBmb3IgdGhlIEFSTSA2 NC1iaXQgQXJjaGl0ZWN0dXJlIChBQXJjaDY0KSIKKGh0dHA6Ly9pbmZvY2VudGVyLmFybS5jb20v aGVscC90b3BpYy9jb20uYXJtLmRvYy5paGkwMDU2Yi9JSEkwMDU2Ql9hYWVsZjY0LnBkZikKYnV0 IGFmdGVyIGEgd2hpbGUgb2YgdHJ5aW5nIHRvIHdyaXRlIHRoZSBjb3JyZWN0IGJpdCBzaGlmdGlu ZwphbmQgbWFza2luZyBmcm9tIHNjcmF0Y2ggSSBlbmRlZCB1cCBib3Jyb3dpbmcgZnJvbSBMaW51 eCwgdGhlCidyZWxvY19pbnNuX2ltbScgKExpbnV4IHY0LjcgYXJjaC9hcm02NC9rZXJuZWwvbW9k dWxlLmMgZnVuY3Rpb24uClNlZSAyNTdjYjI1MTkyNWY4NTRkYTQzNWNiZjc5YjE0MDk4NDQxMzg3 MWFjICJhcm02NDogTG9hZGFibGUgbW9kdWxlcyIpCgpJbiB0aGUgbGl2ZXBhdGNoIHBheWxvYWQg bG9hZGluZyBjb2RlIHdlIHR3ZWFrIHRoZSAjaWZkZWYgdG8Kb25seSBleGNsdWRlIEFSTV8zMi4g VGhlIGV4Y2VwdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIEFSTSAzMi82NCBoZW5jZQp0aGV5IGFyZSBz dGlsbCBiZWhpbmQgdGhlICNpZmRlZi4KCldlIGFsc28gZXhwYW5kIHRoZSBNQUlOVEFJTkVSUyBm aWxlIHRvIGluY2x1ZGUgdGhlIGFybTY0IGFuZCBhcm0zMgpwbGF0Zm9ybSBzcGVjaWZpYyBsaXZl cGF0Y2ggZmlsZS4KClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFk LndpbGtAb3JhY2xlLmNvbT4KCi0tLQpDYzogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxs QGNpdHJpeC5jb20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5v cmc+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYyAgSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA Y2l0cml4LmNvbT4KClJGQzogV2hvbHkgY293ISBJdCB3b3JrcyEKdjE6IEZpbmlzaGVkIHRoZSB2 YXJpb3VzIFRPRE9zIGFuZCByZXZpZXdzIG91dGxpbmVkIGJ5IEp1bGllbiBpbiBSRkMuCi0tLQog TUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHhlbi9hcmNoL2FybS9NYWtl ZmlsZSAgICAgICAgICB8ICAxMyArKy0KIHhlbi9hcmNoL2FybS9hcm0zMi9NYWtlZmlsZSAgICB8 ICAgMiArLQogeGVuL2FyY2gvYXJtL2FybTMyL2xpdmVwYXRjaC5jIHwgIDU1ICsrKysrKysrKwog eGVuL2FyY2gvYXJtL2FybTY0L01ha2VmaWxlICAgIHwgICAxICsKIHhlbi9hcmNoL2FybS9hcm02 NC9saXZlcGF0Y2guYyB8IDI0NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogeGVuL2FyY2gvYXJtL2RvbWFpbi5jICAgICAgICAgIHwgICA2ICsKIHhlbi9hcmNoL2Fy bS9saXZlcGF0Y2guYyAgICAgICB8ICA5OSArKysrKysrKysrKysrLS0tLQogeGVuL2FyY2gvYXJt L2xpdmVwYXRjaC5oICAgICAgIHwgIDI4ICsrKysrCiB4ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMg ICAgICAgfCAgIDQgKy0KIHhlbi9jb21tb24vS2NvbmZpZyAgICAgICAgICAgICB8ICAgMiArLQog eGVuL2NvbW1vbi9saXZlcGF0Y2guYyAgICAgICAgIHwgIDI1ICsrKystCiB4ZW4vaW5jbHVkZS9h c20tYXJtL2NvbmZpZy5oICAgfCAgIDggKy0KIHhlbi9pbmNsdWRlL2FzbS1hcm0vY3VycmVudC5o ICB8ICAgNyArKwogeGVuL2luY2x1ZGUveGVuL2VsZnN0cnVjdHMuaCAgIHwgIDQwICsrKysrKy0K IHhlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaCAgICB8ICAgMiArLQogMTYgZmlsZXMgY2hhbmdl ZCwgNTAzIGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHhlbi9hcmNoL2FybS9hcm0zMi9saXZlcGF0Y2guYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9h cmNoL2FybS9hcm02NC9saXZlcGF0Y2guYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL2Fy bS9saXZlcGF0Y2guaAoKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5k ZXggOTc3MjBhOC4uYWUwYjZiYyAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRB SU5FUlMKQEAgLTI2OSw2ICsyNjksNyBAQCBTOiAgU3VwcG9ydGVkCiBGOiAgZG9jcy9taXNjL2xp dmVwYXRjaC5tYXJrZG93bgogRjogIHRvb2xzL21pc2MveGVuLWxpdmVwYXRjaC5jCiBGOiAgeGVu L2FyY2gvKi9saXZlcGF0Y2gqCitGOiAgeGVuL2FyY2gvKi8qL2xpdmVwYXRjaCoKIEY6ICB4ZW4v Y29tbW9uL2xpdmVwYXRjaCoKIEY6ICB4ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoKgogCmRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vTWFrZWZpbGUgYi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKaW5k ZXggMGE5NjcxMy4uOWY3NWM1YyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL01ha2VmaWxlCisr KyBiL3hlbi9hcmNoL2FybS9NYWtlZmlsZQpAQCAtNTgsNiArNTgsMTUgQEAgQUxMX09CSlMgOj0g JChUQVJHRVRfU1VCQVJDSCkvaGVhZC5vICQoQUxMX09CSlMpCiAKIERFUFMgKz0gJChUQVJHRVRf U1VCQVJDSCkvLmhlYWQuby5kCiAKK2lmZGVmIENPTkZJR19MSVZFUEFUQ0gKK2FsbF9zeW1ib2xz ID0gLS1hbGwtc3ltYm9scworaWZkZWYgQ09ORklHX0ZBU1RfU1lNQk9MX0xPT0tVUAorYWxsX3N5 bWJvbHMgPSAtLWFsbC1zeW1ib2xzIC0tc29ydC1ieS1uYW1lCitlbmRpZgorZWxzZQorYWxsX3N5 bWJvbHMgPQorZW5kaWYKKwogJChUQVJHRVQpOiAkKFRBUkdFVCktc3ltcyAkKFRBUkdFVCkuYXhm CiAJJChPQkpDT1BZKSAtTyBiaW5hcnkgLVMgJDwgJEAKIGlmZXEgKCQoQ09ORklHX0FSTV82NCks eSkKQEAgLTkzLDEyICsxMDIsMTIgQEAgJChUQVJHRVQpLXN5bXM6IHByZWxpbmsubyB4ZW4ubGRz ICQoQkFTRURJUikvY29tbW9uL3N5bWJvbHMtZHVtbXkubwogCSQoTEQpICQoTERGTEFHUykgLVQg eGVuLmxkcyAtTiBwcmVsaW5rLm8gXAogCSAgICAkKEJBU0VESVIpL2NvbW1vbi9zeW1ib2xzLWR1 bW15Lm8gLW8gJChARCkvLiQoQEYpLjAKIAkkKE5NKSAtcGEgLS1mb3JtYXQ9c3lzdiAkKEBEKS8u JChARikuMCBcCi0JCXwgJChCQVNFRElSKS90b29scy9zeW1ib2xzIC0tc3lzdiAtLXNvcnQgPiQo QEQpLy4kKEBGKS4wLlMKKwkJfCAkKEJBU0VESVIpL3Rvb2xzL3N5bWJvbHMgJChhbGxfc3ltYm9s cykgLS1zeXN2IC0tc29ydCA+JChARCkvLiQoQEYpLjAuUwogCSQoTUFLRSkgLWYgJChCQVNFRElS KS9SdWxlcy5tayAkKEBEKS8uJChARikuMC5vCiAJJChMRCkgJChMREZMQUdTKSAtVCB4ZW4ubGRz IC1OIHByZWxpbmsubyBcCiAJICAgICQoQEQpLy4kKEBGKS4wLm8gLW8gJChARCkvLiQoQEYpLjEK IAkkKE5NKSAtcGEgLS1mb3JtYXQ9c3lzdiAkKEBEKS8uJChARikuMSBcCi0JCXwgJChCQVNFRElS KS90b29scy9zeW1ib2xzIC0tc3lzdiAtLXNvcnQgPiQoQEQpLy4kKEBGKS4xLlMKKwkJfCAkKEJB U0VESVIpL3Rvb2xzL3N5bWJvbHMgJChhbGxfc3ltYm9scykgLS1zeXN2IC0tc29ydCA+JChARCkv LiQoQEYpLjEuUwogCSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayAkKEBEKS8uJChARiku MS5vCiAJJChMRCkgJChMREZMQUdTKSAtVCB4ZW4ubGRzIC1OIHByZWxpbmsubyAkKGJ1aWxkX2lk X2xpbmtlcikgXAogCSAgICAkKEBEKS8uJChARikuMS5vIC1vICRACmRpZmYgLS1naXQgYS94ZW4v YXJjaC9hcm0vYXJtMzIvTWFrZWZpbGUgYi94ZW4vYXJjaC9hcm0vYXJtMzIvTWFrZWZpbGUKaW5k ZXggYjIwZGI2NC4uNTk2NmRlMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2FybTMyL01ha2Vm aWxlCisrKyBiL3hlbi9hcmNoL2FybS9hcm0zMi9NYWtlZmlsZQpAQCAtNCw4ICs0LDggQEAgb2Jq LSQoRUFSTFlfUFJJTlRLKSArPSBkZWJ1Zy5vCiBvYmoteSArPSBkb21jdGwubwogb2JqLXkgKz0g ZG9tYWluLm8KIG9iai15ICs9IGVudHJ5Lm8KK29iai0kKENPTkZJR19MSVZFUEFUQ0gpICs9IGxp dmVwYXRjaC5vCiBvYmoteSArPSBwcm9jLXY3Lm8gcHJvYy1jYXh4Lm8KIG9iai15ICs9IHNtcGJv b3Qubwogb2JqLXkgKz0gdHJhcHMubwogb2JqLXkgKz0gdmZwLm8KLQpkaWZmIC0tZ2l0IGEveGVu L2FyY2gvYXJtL2FybTMyL2xpdmVwYXRjaC5jIGIveGVuL2FyY2gvYXJtL2FybTMyL2xpdmVwYXRj aC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZWUyZjUKLS0tIC9kZXYv bnVsbAorKysgYi94ZW4vYXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMKQEAgLTAsMCArMSw1NSBA QAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTYgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRl cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqLworCisjaW5jbHVkZSA8eGVuL2Vycm5vLmg+Cisj aW5jbHVkZSA8eGVuL2xpYi5oPgorI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2hfZWxmLmg+CisjaW5j bHVkZSA8eGVuL2xpdmVwYXRjaC5oPgorCit2b2lkIGFyY2hfbGl2ZXBhdGNoX2FwcGx5X2ptcChz dHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCit7Cit9CisKK3ZvaWQgYXJjaF9saXZlcGF0Y2hf cmV2ZXJ0X2ptcChjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCit7Cit9CisKK2lu dCBhcmNoX2xpdmVwYXRjaF92ZXJpZnlfZWxmKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmICpl bGYpCit7CisgICAgY29uc3QgRWxmX0VoZHIgKmhkciA9IGVsZi0+aGRyOworCisgICAgaWYgKCBo ZHItPmVfbWFjaGluZSAhPSBFTV9BUk0gfHwKKyAgICAgICAgIGhkci0+ZV9pZGVudFtFSV9DTEFT U10gIT0gRUxGQ0xBU1MzMiApCisgICAgeworICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJ VkVQQVRDSCAiJXM6IFVuc3VwcG9ydGVkIEVMRiBNYWNoaW5lIHR5cGUhXG4iLAorICAgICAgICAg ICAgICAgIGVsZi0+bmFtZSk7CisgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKyAgICB9CisK KyAgICBpZiAoIChoZHItPmVfZmxhZ3MgJiBFRl9BUk1fRUFCSV9NQVNLKSAhPSBFRl9BUk1fRUFC SV9WRVI1ICkKKyAgICB7CisgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIl czogVW5zdXBwb3J0ZWQgRUxGIEVBQkkoJXgpIVxuIiwKKyAgICAgICAgICAgICAgICBlbGYtPm5h bWUsIGhkci0+ZV9mbGFncyk7CisgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKyAgICB9CisK KyAgICByZXR1cm4gMDsKK30KKworaW50IGFyY2hfbGl2ZXBhdGNoX3BlcmZvcm1fcmVsYShzdHJ1 Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKmJhc2UsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqcmVsYSkKK3sKKyAg ICByZXR1cm4gLUVOT1NZUzsKK30KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6 IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWIt d2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC9hcm0vYXJtNjQvTWFrZWZpbGUgYi94ZW4vYXJjaC9hcm0vYXJtNjQvTWFr ZWZpbGUKaW5kZXggYzFmYTQzZi4uMTQ5YjZiMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2Fy bTY0L01ha2VmaWxlCisrKyBiL3hlbi9hcmNoL2FybS9hcm02NC9NYWtlZmlsZQpAQCAtNiw2ICs2 LDcgQEAgb2JqLXkgKz0gZG9tY3RsLm8KIG9iai15ICs9IGRvbWFpbi5vCiBvYmoteSArPSBlbnRy eS5vCiBvYmoteSArPSBpbnNuLm8KK29iai0kKENPTkZJR19MSVZFUEFUQ0gpICs9IGxpdmVwYXRj aC5vCiBvYmoteSArPSBzbXBib290Lm8KIG9iai15ICs9IHRyYXBzLm8KIG9iai15ICs9IHZmcC5v CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vYXJtNjQvbGl2ZXBhdGNoLmMgYi94ZW4vYXJjaC9h cm0vYXJtNjQvbGl2ZXBhdGNoLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZTM0ODk0MgotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9hcmNoL2FybS9hcm02NC9saXZlcGF0Y2gu YwpAQCAtMCwwICsxLDI0NyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTYgT3JhY2xlIGFu ZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqLworCisjaW5jbHVk ZSAiLi4vbGl2ZXBhdGNoLmgiCisjaW5jbHVkZSA8eGVuL2JpdG9wcy5oPgorI2luY2x1ZGUgPHhl bi9lcnJuby5oPgorI2luY2x1ZGUgPHhlbi9saWIuaD4KKyNpbmNsdWRlIDx4ZW4vbGl2ZXBhdGNo X2VsZi5oPgorI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KKyNpbmNsdWRlIDx4ZW4vbW0uaD4K KyNpbmNsdWRlIDx4ZW4vdm1hcC5oPgorCisjaW5jbHVkZSA8YXNtL2JpdG9wcy5oPgorI2luY2x1 ZGUgPGFzbS9ieXRlb3JkZXIuaD4KKyNpbmNsdWRlIDxhc20vaW5zbi5oPgorCit2b2lkIGFyY2hf bGl2ZXBhdGNoX2FwcGx5X2ptcChzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCit7CisgICAg dWludDMyX3QgaW5zbjsKKyAgICB1aW50MzJfdCAqb2xkX3B0cjsKKyAgICB1aW50MzJfdCAqbmV3 X3B0cjsKKworICAgIEJVSUxEX0JVR19PTihQQVRDSF9JTlNOX1NJWkUgPiBzaXplb2YoZnVuYy0+ b3BhcXVlKSk7CisgICAgQlVJTERfQlVHX09OKFBBVENIX0lOU05fU0laRSAhPSBzaXplb2YoaW5z bikpOworCisgICAgQVNTRVJUKHZtYXBfb2ZfeGVuX3RleHQpOworCisgICAgLyogU2F2ZSBvbGQg b25lLiAqLworICAgIG9sZF9wdHIgPSBmdW5jLT5vbGRfYWRkcjsKKyAgICBtZW1jcHkoZnVuYy0+ b3BhcXVlLCBvbGRfcHRyLCBQQVRDSF9JTlNOX1NJWkUpOworCisgICAgaWYgKCBmdW5jLT5uZXdf c2l6ZSApCisgICAgICAgIGluc24gPSBhYXJjaDY0X2luc25fZ2VuX2JyYW5jaF9pbW0oKHVuc2ln bmVkIGxvbmcpZnVuYy0+b2xkX2FkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpZnVuYy0+bmV3X2FkZHIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUFSQ0g2NF9JTlNOX0JSQU5DSF9OT0xJTksp OworICAgIGVsc2UKKyAgICAgICAgaW5zbiA9IGFhcmNoNjRfaW5zbl9nZW5fbm9wKCk7CisKKyAg ICBuZXdfcHRyID0gZnVuYy0+b2xkX2FkZHIgLSAodm9pZCAqKV9zdGFydCArIHZtYXBfb2ZfeGVu X3RleHQ7CisKKyAgICAvKiBQQVRDSCEgKi8KKyAgICAqKG5ld19wdHIpID0gY3B1X3RvX2xlMzIo aW5zbik7CisKKyAgICBjbGVhbl9hbmRfaW52YWxpZGF0ZV9kY2FjaGVfdmFfcmFuZ2UobmV3X3B0 ciwgc2l6ZW9mKCpuZXdfcHRyKSk7Cit9CisKK3ZvaWQgYXJjaF9saXZlcGF0Y2hfcmV2ZXJ0X2pt cChjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCit7CisgICAgdWludDMyX3QgKm5l d19wdHI7CisgICAgdWludDMyX3QgaW5zbjsKKworICAgIG1lbWNweSgmaW5zbiwgZnVuYy0+b3Bh cXVlLCBQQVRDSF9JTlNOX1NJWkUpOworCisgICAgbmV3X3B0ciA9ICh1aW50MzJfdCAqKWZ1bmMt Pm9sZF9hZGRyIC0gKHUzMiAqKV9zdGFydCArIHZtYXBfb2ZfeGVuX3RleHQ7CisKKyAgICAvKiBQ QVRDSCEgKi8KKyAgICAqKG5ld19wdHIpID0gY3B1X3RvX2xlMzIoaW5zbik7CisKKyAgICBjbGVh bl9hbmRfaW52YWxpZGF0ZV9kY2FjaGVfdmFfcmFuZ2UobmV3X3B0ciwgc2l6ZW9mKCpuZXdfcHRy KSk7Cit9CisKK2ludCBhcmNoX2xpdmVwYXRjaF92ZXJpZnlfZWxmKGNvbnN0IHN0cnVjdCBsaXZl cGF0Y2hfZWxmICplbGYpCit7CisgICAgY29uc3QgRWxmX0VoZHIgKmhkciA9IGVsZi0+aGRyOwor CisgICAgaWYgKCBoZHItPmVfbWFjaGluZSAhPSBFTV9BQVJDSDY0IHx8CisgICAgICAgICBoZHIt PmVfaWRlbnRbRUlfQ0xBU1NdICE9IEVMRkNMQVNTNjQgKQorICAgIHsKKyAgICAgICAgZHByaW50 ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBVbnN1cHBvcnRlZCBFTEYgTWFjaGluZSB0eXBl IVxuIiwKKyAgICAgICAgICAgICAgICBlbGYtPm5hbWUpOworICAgICAgICByZXR1cm4gLUVPUE5P VFNVUFA7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmVsb2NfaW5z bl9pbW0odm9pZCAqZGVzdCwgdTY0IHZhbCwgaW50IGxzYiwgaW50IGxlbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgZW51bSBhYXJjaDY0X2luc25faW1tX3R5cGUgaW1tX3R5cGUpCit7Cisg ICAgdTY0IGltbSwgaW1tX21hc2s7CisgICAgczY0IHN2YWwgPSB2YWw7CisgICAgdTMyIGluc24g PSAqKHUzMiAqKWRlc3Q7CisKKyAgICAvKiBDYWxjdWxhdGUgdGhlIHJlbG9jYXRpb24gdmFsdWUu ICovCisgICAgc3ZhbCA+Pj0gbHNiOworCisgICAgLyogRXh0cmFjdCB0aGUgdmFsdWUgYml0cyBh bmQgc2hpZnQgdGhlbSB0byBiaXQgMC4gKi8KKyAgICBpbW1fbWFzayA9IChCSVQobHNiICsgbGVu KSAtIDEpID4+IGxzYjsKKyAgICBpbW0gPSBzdmFsICYgaW1tX21hc2s7CisKKyAgICAvKiBVcGRh dGUgdGhlIGluc3RydWN0aW9uJ3MgaW1tZWRpYXRlIGZpZWxkLiAqLworICAgIGluc24gPSBhYXJj aDY0X2luc25fZW5jb2RlX2ltbWVkaWF0ZShpbW1fdHlwZSwgaW5zbiwgaW1tKTsKKyAgICAqKHUz MiAqKWRlc3QgPSBpbnNuOworCisgICAgLyoKKyAgICAgKiBFeHRyYWN0IHRoZSB1cHBlciB2YWx1 ZSBiaXRzIChpbmNsdWRpbmcgdGhlIHNpZ24gYml0KSBhbmQKKyAgICAgKiBzaGlmdCB0aGVtIHRv IGJpdCAwLgorICAgICAqLworICAgIHN2YWwgPSAoczY0KShzdmFsICYgfihpbW1fbWFzayA+PiAx KSkgPj4gKGxlbiAtIDEpOworCisgICAgLyoKKyAgICAgKiBPdmVyZmxvdyBoYXMgb2NjdXJyZWQg aWYgdGhlIHVwcGVyIGJpdHMgYXJlIG5vdCBhbGwgZXF1YWwgdG8KKyAgICAgKiB0aGUgc2lnbiBi aXQgb2YgdGhlIHZhbHVlLgorICAgICAqLworICAgIGlmICgodTY0KShzdmFsICsgMSkgPj0gMikK KyAgICAgICAgcmV0dXJuIC1FT1ZFUkZMT1c7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBhcmNo X2xpdmVwYXRjaF9wZXJmb3JtX3JlbGEoc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2Vj ICpiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2 ZXBhdGNoX2VsZl9zZWMgKnJlbGEpCit7CisgICAgY29uc3QgRWxmX1JlbEEgKnI7CisgICAgdW5z aWduZWQgaW50IHN5bW5keCwgaTsKKyAgICB1aW50NjRfdCB2YWw7CisgICAgdm9pZCAqZGVzdDsK KworICAgIGZvciAoIGkgPSAwOyBpIDwgKHJlbGEtPnNlYy0+c2hfc2l6ZSAvIHJlbGEtPnNlYy0+ c2hfZW50c2l6ZSk7IGkrKyApCisgICAgeworICAgICAgICBpbnQgZXJyID0gMDsKKworICAgICAg ICByID0gcmVsYS0+ZGF0YSArIGkgKiByZWxhLT5zZWMtPnNoX2VudHNpemU7CisKKyAgICAgICAg c3ltbmR4ID0gRUxGNjRfUl9TWU0oci0+cl9pbmZvKTsKKworICAgICAgICBpZiAoIHN5bW5keCA+ IGVsZi0+bnN5bSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwg TElWRVBBVENIICIlczogUmVsYXRpdmUgcmVsb2NhdGlvbiB3YW50cyBzeW1ib2xAJXUgd2hpY2gg aXMgcGFzdCBlbmQhXG4iLAorICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIHN5bW5keCk7 CisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgfQorCisgICAgICAgIGRlc3Qg PSBiYXNlLT5sb2FkX2FkZHIgKyByLT5yX29mZnNldDsgLyogUCAqLworICAgICAgICB2YWwgPSBl bGYtPnN5bVtzeW1uZHhdLnN5bS0+c3RfdmFsdWUgKyAgci0+cl9hZGRlbmQ7IC8qIFMrQSAqLwor CisgICAgICAgIC8qIEFSTTY0IG9wZXJhdGlvbnMgYXQgbWluaW11bSBhcmUgYWx3YXlzIDMyLWJp dC4gKi8KKyAgICAgICAgaWYgKCByLT5yX29mZnNldCA+PSBiYXNlLT5zZWMtPnNoX3NpemUgfHwK KyAgICAgICAgICAgIChyLT5yX29mZnNldCArIHNpemVvZih1aW50MzJfdCkpID4gYmFzZS0+c2Vj LT5zaF9zaXplICkKKyAgICAgICAgICAgIGdvdG8gYmFkX29mZnNldDsKKworICAgICAgICBzd2l0 Y2ggKCBFTEY2NF9SX1RZUEUoci0+cl9pbmZvKSApIHsKKyAgICAgICAgLyogRGF0YSAqLworICAg ICAgICBjYXNlIFJfQUFSQ0g2NF9BQlM2NDoKKyAgICAgICAgICAgIGlmICggci0+cl9vZmZzZXQg KyBzaXplb2YodWludDY0X3QpID4gYmFzZS0+c2VjLT5zaF9zaXplICkKKyAgICAgICAgICAgICAg ICBnb3RvIGJhZF9vZmZzZXQ7CisgICAgICAgICAgICAqKGludDY0X3QgKilkZXN0ID0gdmFsOwor ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSX0FBUkNINjRfQUJTMzI6CisgICAg ICAgICAgICAqKGludDMyX3QgKilkZXN0ID0gdmFsOworICAgICAgICAgICAgaWYgKCAoaW50NjRf dCl2YWwgIT0gICooaW50MzJfdCAqKWRlc3QgKQorICAgICAgICAgICAgICAgIGVyciA9IC1FT1ZF UkZMT1c7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFJfQUFSQ0g2NF9QUkVM NjQ6CisgICAgICAgICAgICBpZiAoIHItPnJfb2Zmc2V0ICsgc2l6ZW9mKHVpbnQ2NF90KSA+IGJh c2UtPnNlYy0+c2hfc2l6ZSApCisgICAgICAgICAgICAgICAgZ290byBiYWRfb2Zmc2V0OworCisg ICAgICAgICAgICB2YWwgLT0gKHVpbnQ2NF90KWRlc3Q7CisgICAgICAgICAgICAqKGludDY0X3Qg KilkZXN0ID0gdmFsOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSX0FBUkNI NjRfUFJFTDMyOgorICAgICAgICAgICAgdmFsIC09ICh1aW50NjRfdClkZXN0OworICAgICAgICAg ICAgKihpbnQzMl90ICopZGVzdCA9IHZhbDsKKyAgICAgICAgICAgIGlmICggKGludDY0X3QpdmFs ICE9ICAqKGludDMyX3QgKilkZXN0ICkKKyAgICAgICAgICAgICAgICBlcnIgPSAtRU9WRVJGTE9X OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLyogSW5zdHJ1Y3Rpb25zLiAqLworICAg ICAgICBjYXNlIFJfQUFSQ0g2NF9BRFJfUFJFTF9MTzIxOgorICAgICAgICAgICAgdmFsIC09ICh1 aW50NjRfdClkZXN0OworICAgICAgICAgICAgZXJyID0gcmVsb2NfaW5zbl9pbW0oZGVzdCwgdmFs LCAwLCAyMSwgQUFSQ0g2NF9JTlNOX0lNTV9BRFIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAg ICAgICAgY2FzZSBSX0FBUkNINjRfQURSX1BSRUxfUEdfSEkyMToKKyAgICAgICAgICAgIHZhbCA9 ICh2YWwgJiB+MHhmZmYpIC0gKCh1NjQpZGVzdCAmIH4weGZmZik7CisgICAgICAgICAgICBlcnIg PSByZWxvY19pbnNuX2ltbShkZXN0LCB2YWwsIDEyLCAyMSwgQUFSQ0g2NF9JTlNOX0lNTV9BRFIp OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSX0FBUkNINjRfTERTVDhfQUJT X0xPMTJfTkM6CisgICAgICAgIGNhc2UgUl9BQVJDSDY0X0FERF9BQlNfTE8xMl9OQzoKKyAgICAg ICAgICAgIGVyciA9IHJlbG9jX2luc25faW1tKGRlc3QsIHZhbCwgMCwgMTIsIEFBUkNINjRfSU5T Tl9JTU1fMTIpOworICAgICAgICAgICAgaWYgKCBlcnIgPT0gLUVPVkVSRkxPVyApCisgICAgICAg ICAgICAgICAgZXJyID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUl9B QVJDSDY0X0xEU1QxNl9BQlNfTE8xMl9OQzoKKyAgICAgICAgICAgIGVyciA9IHJlbG9jX2luc25f aW1tKGRlc3QsIHZhbCwgMSwgMTEsIEFBUkNINjRfSU5TTl9JTU1fMTIpOworICAgICAgICAgICAg aWYgKCBlcnIgPT0gLUVPVkVSRkxPVyApCisgICAgICAgICAgICAgICAgZXJyID0gMDsKKyAgICAg ICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUl9BQVJDSDY0X0xEU1QzMl9BQlNfTE8xMl9O QzoKKyAgICAgICAgICAgIGVyciA9IHJlbG9jX2luc25faW1tKGRlc3QsIHZhbCwgMiwgMTAsIEFB UkNINjRfSU5TTl9JTU1fMTIpOworICAgICAgICAgICAgaWYgKCBlcnIgPT0gLUVPVkVSRkxPVyAp CisgICAgICAgICAgICAgICAgZXJyID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg IGNhc2UgUl9BQVJDSDY0X0xEU1Q2NF9BQlNfTE8xMl9OQzoKKyAgICAgICAgICAgIGVyciA9IHJl bG9jX2luc25faW1tKGRlc3QsIHZhbCwgMywgOSwgQUFSQ0g2NF9JTlNOX0lNTV8xMik7CisgICAg ICAgICAgICBpZiAoIGVyciA9PSAtRU9WRVJGTE9XICkKKyAgICAgICAgICAgICAgICBlcnIgPSAw OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSX0FBUkNINjRfQ09OREJSMTk6 CisgICAgICAgICAgICBlcnIgPSByZWxvY19pbnNuX2ltbShkZXN0LCB2YWwsIDIsIDE5LCBBQVJD SDY0X0lOU05fSU1NXzE5KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUl9B QVJDSDY0X0pVTVAyNjoKKyAgICAgICAgY2FzZSBSX0FBUkNINjRfQ0FMTDI2OgorICAgICAgICAg ICAgdmFsIC09ICh1aW50NjRfdClkZXN0OworICAgICAgICAgICAgZXJyID0gcmVsb2NfaW5zbl9p bW0oZGVzdCwgdmFsLCAyLCAyNiwgQUFSQ0g2NF9JTlNOX0lNTV8yNik7CisgICAgICAgICAgICBi cmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJS LCBMSVZFUEFUQ0ggIiVzOiBVbmhhbmRsZWQgcmVsb2NhdGlvbiAlbHVcbiIsCisgICAgICAgICAg ICAgICAgICAgIGVsZi0+bmFtZSwgRUxGNjRfUl9UWVBFKHItPnJfaW5mbykpOworICAgICAgICAg ICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggZXJyICkK KyAgICAgICAgeworICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVz OiBPdmVyZmxvdyBpbiByZWxvY2F0aW9uICV1IGluICVzIGZvciAlcyFcbiIsCisgICAgICAgICAg ICAgICAgICAgIGVsZi0+bmFtZSwgaSwgcmVsYS0+bmFtZSwgYmFzZS0+bmFtZSk7CisgICAgICAg ICAgICByZXR1cm4gZXJyOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwOworCisgYmFk X29mZnNldDoKKyAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IFJlbGF0aXZl IHJlbG9jYXRpb24gb2Zmc2V0IGlzIHBhc3QgJXMgc2VjdGlvbiFcbiIsCisgICAgICAgICAgICBl bGYtPm5hbWUsIGJhc2UtPm5hbWUpOworICAgIHJldHVybiAtRUlOVkFMOworfQorCisvKgorICog TG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICog Yy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTog bmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW4uYyBiL3hl bi9hcmNoL2FybS9kb21haW4uYwppbmRleCAyMGJiMmJhLi42MDdlZTU5IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC9hcm0vZG9tYWluLmMKKysrIGIveGVuL2FyY2gvYXJtL2RvbWFpbi5jCkBAIC0xMyw2 ICsxMyw3IEBACiAjaW5jbHVkZSA8eGVuL2h5cGVyY2FsbC5oPgogI2luY2x1ZGUgPHhlbi9pbml0 Lmg+CiAjaW5jbHVkZSA8eGVuL2xpYi5oPgorI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KICNp bmNsdWRlIDx4ZW4vc2NoZWQuaD4KICNpbmNsdWRlIDx4ZW4vc29mdGlycS5oPgogI2luY2x1ZGUg PHhlbi93YWl0Lmg+CkBAIC01NSw2ICs1NiwxMSBAQCB2b2lkIGlkbGVfbG9vcCh2b2lkKQogCiAg ICAgICAgIGRvX3Rhc2tsZXQoKTsKICAgICAgICAgZG9fc29mdGlycSgpOworICAgICAgICAvKgor ICAgICAgICAgKiBXZSBNVVNUIGJlIGxhc3QgKG9yIGJlZm9yZSBkc2IsIHdmaSkuIE90aGVyd2lz ZSBhZnRlciB3ZSBnZXQgdGhlCisgICAgICAgICAqIHNvZnRpcnEgd2Ugd291bGQgZXhlY3V0ZSBk c2Isd2ZpIChhbmQgc2xlZXApIGFuZCBub3QgcGF0Y2guCisgICAgICAgICAqLworICAgICAgICBj aGVja19mb3JfbGl2ZXBhdGNoX3dvcmsoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL2FybS9saXZlcGF0Y2guYyBiL3hlbi9hcmNoL2FybS9saXZlcGF0Y2guYwppbmRleCAzMDkz NTU0Li4xOWY2MDMzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vbGl2ZXBhdGNoLmMKKysrIGIv eGVuL2FyY2gvYXJtL2xpdmVwYXRjaC5jCkBAIC0xLDU2ICsxLDkzIEBACiAvKgogICogIENvcHly aWdodCAoQykgMjAxNiBDaXRyaXggU3lzdGVtcyBSJkQgTHRkLgogICovCisKKyNpbmNsdWRlICJs aXZlcGF0Y2guaCIKICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KICNpbmNsdWRlIDx4ZW4vaW5pdC5o PgogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vbGl2ZXBhdGNoX2VsZi5oPgog I2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KKyNpbmNsdWRlIDx4ZW4vdm1hcC5oPgorCisjaW5j bHVkZSA8YXNtL21tLmg+CiAKLS8qIE9uIEFSTTMyLDY0IGluc3RydWN0aW9ucyBhcmUgYWx3YXlz IDQgYnl0ZXMgbG9uZy4gKi8KLSNkZWZpbmUgUEFUQ0hfSU5TTl9TSVpFIDQKK3ZvaWQgKnZtYXBf b2ZfeGVuX3RleHQ7CiAKIGludCBhcmNoX3ZlcmlmeV9pbnNuX2xlbmd0aCh1bnNpZ25lZCBsb25n IGxlbikKIHsKICAgICByZXR1cm4gbGVuICE9IFBBVENIX0lOU05fU0laRTsKIH0KIAotdm9pZCBh cmNoX2xpdmVwYXRjaF9xdWllc2NlKHZvaWQpCitpbnQgYXJjaF9saXZlcGF0Y2hfcXVpZXNjZSh2 b2lkKQogeworICAgIG1mbl90IHRleHRfbWZuOworICAgIHVuc2lnbmVkIGludCB0ZXh0X29yZGVy OworCisgICAgaWYgKCB2bWFwX29mX3hlbl90ZXh0ICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7 CisKKyAgICB0ZXh0X21mbiA9IF9tZm4odmlydF90b19tZm4oX3N0ZXh0KSk7CisgICAgdGV4dF9v cmRlciA9IGdldF9vcmRlcl9mcm9tX2J5dGVzKF9lbmQgLSBfc3RhcnQpOworCisgICAgLyoKKyAg ICAgKiBUaGUgdGV4dCBzZWN0aW9uIGlzIHJlYWQtb25seS4gU28gcmUtbWFwIFhlbiB0byBiZSBh YmxlIHRvIHBhdGNoCisgICAgICogdGhlIGNvZGUuCisgICAgICovCisgICAgdm1hcF9vZl94ZW5f dGV4dCA9IF9fdm1hcCgmdGV4dF9tZm4sIDEgPDwgdGV4dF9vcmRlciwgMSwgMSwgUEFHRV9IWVBF UlZJU09SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVk1BUF9ERUZBVUxUKTsKKwor ICAgIGlmICggIXZtYXBfb2ZfeGVuX3RleHQgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKFhFTkxP R19FUlIgTElWRVBBVENIICJGYWlsZWQgdG8gc2V0dXAgdm1hcCBvZiBoeXBlcnZpc29yISAob3Jk ZXI9JXUpXG4iLAorICAgICAgICAgICAgICAgdGV4dF9vcmRlcik7CisgICAgICAgIHJldHVybiAt RU5PTUVNOworICAgIH0KKyAgICByZXR1cm4gMDsKIH0KIAogdm9pZCBhcmNoX2xpdmVwYXRjaF9y ZXZpdmUodm9pZCkKIHsKKyAgICAvKgorICAgICAqIE51a2UgdGhlIGluc3RydWN0aW9uIGNhY2hl LiBJdCBoYXMgYmVlbiBjbGVhbmVkIGJlZm9yZSBpbgorICAgICAqIGFyY2hfbGl2ZXBhdGNoX2Fw cGx5X2ptcC4KKyAgICAgKi8KKyAgICBpbnZhbGlkYXRlX2ljYWNoZSgpOworCisgICAgaWYgKCB2 bWFwX29mX3hlbl90ZXh0ICkKKyAgICAgICAgdnVubWFwKHZtYXBfb2ZfeGVuX3RleHQpOworCisg ICAgdm1hcF9vZl94ZW5fdGV4dCA9IE5VTEw7CisKKyAgICAvKgorICAgICAqIE5lZWQgdG8gZmx1 c2ggdGhlIGJyYW5jaCBwcmVkaWNhdG9yIGZvciBBUk12NyBhcyBpdCBtYXkgYmUKKyAgICAgKiBh cmNoaXRlY3R1cmFsbHkgdmlzaWJsZSB0byB0aGUgc29mdHdhcmUgKHNlZSBCMi4yLjQgaW4gQVJN IERESSAwNDA2Qy5iKS4KKyAgICAgKi8KKyAgICBmbHVzaF94ZW5fdGV4dF90bGJfbG9jYWwoKTsK IH0KIAogaW50IGFyY2hfbGl2ZXBhdGNoX3ZlcmlmeV9mdW5jKGNvbnN0IHN0cnVjdCBsaXZlcGF0 Y2hfZnVuYyAqZnVuYykKIHsKLSAgICByZXR1cm4gLUVOT1NZUzsKLX0KLQotdm9pZCBhcmNoX2xp dmVwYXRjaF9hcHBseV9qbXAoc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKQotewotfQorICAg IGlmICggZnVuYy0+b2xkX3NpemUgPCBQQVRDSF9JTlNOX1NJWkUgKQorICAgICAgICByZXR1cm4g LUVJTlZBTDsKIAotdm9pZCBhcmNoX2xpdmVwYXRjaF9yZXZlcnRfam1wKGNvbnN0IHN0cnVjdCBs aXZlcGF0Y2hfZnVuYyAqZnVuYykKLXsKKyAgICByZXR1cm4gMDsKIH0KIAogdm9pZCBhcmNoX2xp dmVwYXRjaF9wb3N0X2FjdGlvbih2b2lkKQogeworICAgIC8qIGFyY2hfbGl2ZXBhdGNoX3Jldml2 ZSBoYXMgbnVrZWQgdGhlIGluc3RydWN0aW9uIGNhY2hlLiAqLwogfQogCiB2b2lkIGFyY2hfbGl2 ZXBhdGNoX21hc2sodm9pZCkKIHsKKyAgICAvKiBNYXNrIFN5c3RlbSBFcnJvciAoU0Vycm9yKSAq LworICAgIGxvY2FsX2Fib3J0X2Rpc2FibGUoKTsKIH0KIAogdm9pZCBhcmNoX2xpdmVwYXRjaF91 bm1hc2sodm9pZCkKIHsKLX0KLQotaW50IGFyY2hfbGl2ZXBhdGNoX3ZlcmlmeV9lbGYoY29uc3Qg c3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZikKLXsKLSAgICByZXR1cm4gLUVOT1NZUzsKKyAgICBs b2NhbF9hYm9ydF9lbmFibGUoKTsKIH0KIAogaW50IGFyY2hfbGl2ZXBhdGNoX3BlcmZvcm1fcmVs KHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYsCkBAIC02MCwyMCArOTcsMzQgQEAgaW50IGFyY2hf bGl2ZXBhdGNoX3BlcmZvcm1fcmVsKHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYsCiAgICAgcmV0 dXJuIC1FTk9TWVM7CiB9CiAKLWludCBhcmNoX2xpdmVwYXRjaF9wZXJmb3JtX3JlbGEoc3RydWN0 IGxpdmVwYXRjaF9lbGYgKmVsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpiYXNlLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnJlbGEpCi17Ci0gICAg cmV0dXJuIC1FTk9TWVM7Ci19Ci0KIGludCBhcmNoX2xpdmVwYXRjaF9zZWN1cmUoY29uc3Qgdm9p ZCAqdmEsIHVuc2lnbmVkIGludCBwYWdlcywgZW51bSB2YV90eXBlIHR5cGUpCiB7Ci0gICAgcmV0 dXJuIC1FTk9TWVM7CisgICAgdW5zaWduZWQgbG9uZyBzdGFydCA9ICh1bnNpZ25lZCBsb25nKXZh OworICAgIHVuc2lnbmVkIGludCBmbGFnczsKKworICAgIEFTU0VSVCh2YSk7CisgICAgQVNTRVJU KHBhZ2VzKTsKKworICAgIGlmICggdHlwZSA9PSBMSVZFUEFUQ0hfVkFfUlggKQorICAgICAgICBm bGFncyA9IFBURV9STzsgLyogUiBzZXQsIE5YIGNsZWFyICovCisgICAgZWxzZSBpZiAoIHR5cGUg PT0gTElWRVBBVENIX1ZBX1JXICkKKyAgICAgICAgZmxhZ3MgPSBQVEVfTlg7IC8qIFIgY2xlYXIs IE5YIHNldCAqLworICAgIGVsc2UKKyAgICAgICAgZmxhZ3MgPSBQVEVfTlggfCBQVEVfUk87IC8q IFIgc2V0LCBOWCBzZXQgKi8KKworICAgIG1vZGlmeV94ZW5fbWFwcGluZ3Moc3RhcnQsIHN0YXJ0 ICsgcGFnZXMgKiBQQUdFX1NJWkUsIGZsYWdzKTsKKworICAgIHJldHVybiAwOwogfQogCiB2b2lk IF9faW5pdCBhcmNoX2xpdmVwYXRjaF9pbml0KHZvaWQpCiB7CisgICAgdm9pZCAqc3RhcnQsICpl bmQ7CisKKyAgICBzdGFydCA9ICh2b2lkICopTElWRVBBVENIX1ZNQVA7CisgICAgZW5kID0gc3Rh cnQgKyBNQigyKTsKKworICAgIHZtX2luaXRfdHlwZShWTUFQX1hFTiwgc3RhcnQsIGVuZCk7CiB9 CiAKIC8qCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbGl2ZXBhdGNoLmggYi94ZW4vYXJjaC9h cm0vbGl2ZXBhdGNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM4ZDYy NQotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9hcmNoL2FybS9saXZlcGF0Y2guaApAQCAtMCwwICsx LDI4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDE2IE9yYWNsZSBhbmQvb3IgaXRzIGFmZmls aWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICovCisKKyNpZm5kZWYgX19YRU5fQVJN X0xJVkVQQVRDSF9IX18KKyNkZWZpbmUgX19YRU5fQVJNX0xJVkVQQVRDSF9IX18KKworLyogT24g QVJNMzIsNjQgaW5zdHJ1Y3Rpb25zIGFyZSBhbHdheXMgNCBieXRlcyBsb25nLiAqLworI2RlZmlu ZSBQQVRDSF9JTlNOX1NJWkUgNAorCisvKgorICogVGhlIHZhIG9mIHRoZSBoeXBlcnZpc29yIC50 ZXh0IHJlZ2lvbi4gV2UgbmVlZCB0aGlzIGFzIHRoZQorICogbm9ybWFsIHZhIGFyZSB3cml0ZSBw cm90ZWN0ZWQuCisgKi8KK2V4dGVybiB2b2lkICp2bWFwX29mX3hlbl90ZXh0OworCisjZW5kaWYg LyogX19YRU5fQVJNX0xJVkVQQVRDSF9IX18gKi8KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoK KyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0 CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICov CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMgYi94ZW4vYXJjaC94ODYvbGl2 ZXBhdGNoLmMKaW5kZXggMDZjNjdiYy4uZTNmM2YzNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L2xpdmVwYXRjaC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9saXZlcGF0Y2guYwpAQCAtMTUsMTAgKzE1 LDEyIEBACiAKICNkZWZpbmUgUEFUQ0hfSU5TTl9TSVpFIDUKIAotdm9pZCBhcmNoX2xpdmVwYXRj aF9xdWllc2NlKHZvaWQpCitpbnQgYXJjaF9saXZlcGF0Y2hfcXVpZXNjZSh2b2lkKQogewogICAg IC8qIERpc2FibGUgV1AgdG8gYWxsb3cgY2hhbmdlcyB0byByZWFkLW9ubHkgcGFnZXMuICovCiAg ICAgd3JpdGVfY3IwKHJlYWRfY3IwKCkgJiB+WDg2X0NSMF9XUCk7CisKKyAgICByZXR1cm4gMDsK IH0KIAogdm9pZCBhcmNoX2xpdmVwYXRjaF9yZXZpdmUodm9pZCkKZGlmZiAtLWdpdCBhL3hlbi9j b21tb24vS2NvbmZpZyBiL3hlbi9jb21tb24vS2NvbmZpZwppbmRleCA1MWFmYTI0Li4yZmM3NmI2 IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL0tjb25maWcKKysrIGIveGVuL2NvbW1vbi9LY29uZmln CkBAIC0yMjIsNyArMjIyLDcgQEAgZW5kbWVudQogY29uZmlnIExJVkVQQVRDSAogCWJvb2wgIkxp dmUgcGF0Y2hpbmcgc3VwcG9ydCAoVEVDSCBQUkVWSUVXKSIKIAlkZWZhdWx0IG4KLQlkZXBlbmRz IG9uIFg4NiAmJiBIQVNfQlVJTERfSUQgPSAieSIKKwlkZXBlbmRzIG9uIChYODYgfHwgQVJNXzY0 KSAmJiBIQVNfQlVJTERfSUQgPSAieSIKIAktLS1oZWxwLS0tCiAJICBBbGxvd3MgYSBydW5uaW5n IFhlbiBoeXBlcnZpc29yIHRvIGJlIGR5bmFtaWNhbGx5IHBhdGNoZWQgdXNpbmcKIAkgIGJpbmFy eSBwYXRjaGVzIHdpdGhvdXQgcmVib290aW5nLiBUaGlzIGlzIHByaW1hcmlseSB1c2VkIHRvIGJp bmFyaWx5CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2xpdmVwYXRjaC5jIGIveGVuL2NvbW1vbi9s aXZlcGF0Y2guYwppbmRleCA5YzQ1MjcwLi5hZjk0NDNkIDEwMDY0NAotLS0gYS94ZW4vY29tbW9u L2xpdmVwYXRjaC5jCisrKyBiL3hlbi9jb21tb24vbGl2ZXBhdGNoLmMKQEAgLTY4Miw3ICs2ODIs NyBAQCBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKnJlZ2lvbi0+ZnJhbWVb aV0uYnVncyk7CiAgICAgfQogCi0jaWZuZGVmIENPTkZJR19BUk0KKyNpZm5kZWYgQ09ORklHX0FS TV8zMgogICAgIHNlYyA9IGxpdmVwYXRjaF9lbGZfc2VjX2J5X25hbWUoZWxmLCAiLmFsdGluc3Ry dWN0aW9ucyIpOwogICAgIGlmICggc2VjICkKICAgICB7CkBAIC03MTEsOSArNzExLDE1IEBAIHN0 YXRpYyBpbnQgcHJlcGFyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgICAg ICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICAgICAgfQogICAgICAgICB9CisjaWZu ZGVmIENPTkZJR19BUk0KICAgICAgICAgYXBwbHlfYWx0ZXJuYXRpdmVzX25vY2hlY2soc3RhcnQs IGVuZCk7CisjZWxzZQorICAgICAgICBhcHBseV9hbHRlcm5hdGl2ZXMoc3RhcnQsIHNlYy0+c2Vj LT5zaF9zaXplKTsKKyNlbmRpZgogICAgIH0KKyNlbmRpZgogCisjaWZuZGVmIENPTkZJR19BUk0K ICAgICBzZWMgPSBsaXZlcGF0Y2hfZWxmX3NlY19ieV9uYW1lKGVsZiwgIi5leF90YWJsZSIpOwog ICAgIGlmICggc2VjICkKICAgICB7CkBAIC0xMDgzLDEyICsxMDg5LDE3IEBAIHN0YXRpYyBpbnQg bGl2ZXBhdGNoX2xpc3QoeGVuX3N5c2N0bF9saXZlcGF0Y2hfbGlzdF90ICpsaXN0KQogc3RhdGlj IGludCBhcHBseV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpkYXRhKQogewogICAgIHVuc2lnbmVk IGludCBpOworICAgIGludCByYzsKIAogICAgIHByaW50ayhYRU5MT0dfSU5GTyBMSVZFUEFUQ0gg IiVzOiBBcHBseWluZyAldSBmdW5jdGlvbnNcbiIsCiAgICAgICAgICAgICBkYXRhLT5uYW1lLCBk YXRhLT5uZnVuY3MpOwogCi0gICAgYXJjaF9saXZlcGF0Y2hfcXVpZXNjZSgpOwotCisgICAgcmMg PSBhcmNoX2xpdmVwYXRjaF9xdWllc2NlKCk7CisgICAgaWYgKCByYyApCisgICAgeworICAgICAg ICBwcmludGsoWEVOTE9HX0VSUiBMSVZFUEFUQ0ggIiVzOiB1bmFibGUgdG8gcXVpZXNjZSFcbiIs IGRhdGEtPm5hbWUpOworICAgICAgICByZXR1cm4gcmM7CisgICAgfQogICAgIC8qCiAgICAgICog U2luY2Ugd2UgYXJlIHJ1bm5pbmcgd2l0aCBJUlFzIGRpc2FibGVkIGFuZCB0aGUgaG9va3MgbWF5 IGNhbGwgY29tbW9uCiAgICAgICogY29kZSAtIHdoaWNoIGV4cGVjdHMgdGhlIHNwaW5sb2NrcyB0 byBydW4gd2l0aCBJUlFzIGVuYWJsZWQgLSB3ZSB0ZW1wb3Jhcmx5CkBAIC0xMTE5LDEwICsxMTMw LDE2IEBAIHN0YXRpYyBpbnQgYXBwbHlfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqZGF0YSkKIHN0 YXRpYyBpbnQgcmV2ZXJ0X3BheWxvYWQoc3RydWN0IHBheWxvYWQgKmRhdGEpCiB7CiAgICAgdW5z aWduZWQgaW50IGk7CisgICAgaW50IHJjOwogCiAgICAgcHJpbnRrKFhFTkxPR19JTkZPIExJVkVQ QVRDSCAiJXM6IFJldmVydGluZ1xuIiwgZGF0YS0+bmFtZSk7CiAKLSAgICBhcmNoX2xpdmVwYXRj aF9xdWllc2NlKCk7CisgICAgcmMgPSBhcmNoX2xpdmVwYXRjaF9xdWllc2NlKCk7CisgICAgaWYg KCByYyApCisgICAgeworICAgICAgICBwcmludGsoWEVOTE9HX0VSUiBMSVZFUEFUQ0ggIiVzOiB1 bmFibGUgdG8gcXVpZXNjZSFcbiIsIGRhdGEtPm5hbWUpOworICAgICAgICByZXR1cm4gcmM7Cisg ICAgfQogCiAgICAgZm9yICggaSA9IDA7IGkgPCBkYXRhLT5uZnVuY3M7IGkrKyApCiAgICAgICAg IGFyY2hfbGl2ZXBhdGNoX3JldmVydF9qbXAoJmRhdGEtPmZ1bmNzW2ldKTsKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL2FzbS1hcm0vY29uZmlnLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2NvbmZp Zy5oCmluZGV4IGE5NmY4NDUuLjhkODc2ZjYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1h cm0vY29uZmlnLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9jb25maWcuaApAQCAtODAsOSAr ODAsMTAgQEAKICAqICAgNE0gLSAgIDZNICAgRml4bWFwOiBzcGVjaWFsLXB1cnBvc2UgNEsgbWFw cGluZyBzbG90cwogICogICA2TSAtICAgOE0gICBFYXJseSBib290IG1hcHBpbmcgb2YgRkRUCiAg KiAgIDhNIC0gIDEwTSAgIEVhcmx5IHJlbG9jYXRpb24gYWRkcmVzcyAodXNlZCB3aGVuIHJlbG9j YXRpbmcgWGVuKQorICogICAgICAgICAgICAgICBhbmQgbGF0ZXIgZm9yIGxpdmVwYXRjaCB2bWFw IChpZiBjb21waWxlZCBpbikKICAqCiAgKiBBUk0zMiBsYXlvdXQ6Ci0gKiAgIDAgIC0gICA4TSAg IDxDT01NT04+CisgKiAgIDAgIC0gIDEwTSAgIDxDT01NT04+CiAgKgogICogIDMyTSAtIDEyOE0g ICBGcmFtZXRhYmxlOiAyNCBieXRlcyBwZXIgcGFnZSBmb3IgMTZHQiBvZiBSQU0KICAqIDI1Nk0g LSAgIDFHICAgVk1BUDogaW9yZW1hcCBhbmQgZWFybHlfaW9yZW1hcCB1c2UgdGhpcyB2aXJ0dWFs IGFkZHJlc3MKQEAgLTkzLDcgKzk0LDcgQEAKICAqCiAgKiBBUk02NCBsYXlvdXQ6CiAgKiAweDAw MDAwMDAwMDAwMDAwMDAgLSAweDAwMDAwMDdmZmZmZmZmZmYgKDUxMkdCLCBMMCBzbG90IFswXSkK LSAqICAgMCAgLSAgIDhNICAgPENPTU1PTj4KKyAqICAgMCAgLSAgMTBNICAgPENPTU1PTj4KICAq CiAgKiAgIDFHIC0gICAyRyAgIFZNQVA6IGlvcmVtYXAgYW5kIGVhcmx5X2lvcmVtYXAKICAqCkBA IC0xMTMsNiArMTE0LDkgQEAKICNkZWZpbmUgRklYTUFQX0FERFIobikgICAgICAgIChfQVQodmFk ZHJfdCwweDAwNDAwMDAwKSArIChuKSAqIFBBR0VfU0laRSkKICNkZWZpbmUgQk9PVF9GRFRfVklS VF9TVEFSVCAgICBfQVQodmFkZHJfdCwweDAwNjAwMDAwKQogI2RlZmluZSBCT09UX1JFTE9DX1ZJ UlRfU1RBUlQgIF9BVCh2YWRkcl90LDB4MDA4MDAwMDApCisjaWZkZWYgQ09ORklHX0xJVkVQQVRD SAorI2RlZmluZSBMSVZFUEFUQ0hfVk1BUCAgICAgICAgIF9BVCh2YWRkcl90LDB4MDA4MDAwMDAp CisjZW5kaWYKIAogI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRfU1RBUlQgIFhFTl9WSVJUX1NUQVJU CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vY3VycmVudC5oIGIveGVuL2luY2x1 ZGUvYXNtLWFybS9jdXJyZW50LmgKaW5kZXggNjVjMGNkZi4uZjRmY2ZkNiAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUvYXNtLWFybS9jdXJyZW50LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9j dXJyZW50LmgKQEAgLTMzLDggKzMzLDE1IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNwdV9pbmZv ICpnZXRfY3B1X2luZm8odm9pZCkKIAogI2RlZmluZSBndWVzdF9jcHVfdXNlcl9yZWdzKCkgKCZn ZXRfY3B1X2luZm8oKS0+Z3Vlc3RfY3B1X3VzZXJfcmVncykKIAorI2lmZGVmIENPTkZJR19MSVZF UEFUQ0gKKyNkZWZpbmUgc3dpdGNoX3N0YWNrX2FuZF9qdW1wKHN0YWNrLCBmbikgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBhc20gdm9sYXRpbGUgKCJtb3Ygc3AsJTA7IiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg ICAgICJibCBjaGVja19mb3JfbGl2ZXBhdGNoX3dvcms7IiAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgICAgICAgICAgICAgICJiICIgU1RSKGZuKSA6IDogInIiIChzdGFjaykgOiAibWVt b3J5IiApCisjZWxzZQogI2RlZmluZSBzd2l0Y2hfc3RhY2tfYW5kX2p1bXAoc3RhY2ssIGZuKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIGFzbSB2b2xhdGlsZSAoIm1vdiBz cCwlMDsgYiAiIFNUUihmbikgOiA6ICJyIiAoc3RhY2spIDogIm1lbW9yeSIgKQorI2VuZGlmCiAK ICNkZWZpbmUgcmVzZXRfc3RhY2tfYW5kX2p1bXAoZm4pIHN3aXRjaF9zdGFja19hbmRfanVtcChn ZXRfY3B1X2luZm8oKSwgZm4pCiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9lbGZzdHJ1 Y3RzLmggYi94ZW4vaW5jbHVkZS94ZW4vZWxmc3RydWN0cy5oCmluZGV4IDVmMjA4MmUuLmE2ODg3 NGIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9lbGZzdHJ1Y3RzLmgKKysrIGIveGVuL2lu Y2x1ZGUveGVuL2VsZnN0cnVjdHMuaApAQCAtMTAzLDYgKzEwMywxNSBAQCB0eXBlZGVmIHVpbnQ2 NF90CUVsZjY0X1h3b3JkOwogICAgICAgICAgICAgICAgICAgICAgIChlaGRyKS5lX2lkZW50W0VJ X01BRzJdID09IEVMRk1BRzIgJiYgXAogICAgICAgICAgICAgICAgICAgICAgIChlaGRyKS5lX2lk ZW50W0VJX01BRzNdID09IEVMRk1BRzMpCiAKKy8qIGVfZmxhZ3MgKi8KKyNkZWZpbmUgRUZfQVJN X0VBQklfTUFTSwkweGZmMDAwMDAwCisjZGVmaW5lIEVGX0FSTV9FQUJJX1VOS05PV04JMHgwMDAw MDAwMAorI2RlZmluZSBFRl9BUk1fRUFCSV9WRVIxCTB4MDEwMDAwMDAKKyNkZWZpbmUgRUZfQVJN X0VBQklfVkVSMgkweDAyMDAwMDAwCisjZGVmaW5lIEVGX0FSTV9FQUJJX1ZFUjMJMHgwMzAwMDAw MAorI2RlZmluZSBFRl9BUk1fRUFCSV9WRVI0CTB4MDQwMDAwMDAKKyNkZWZpbmUgRUZfQVJNX0VB QklfVkVSNQkweDA1MDAwMDAwCisKIC8qIEVMRiBIZWFkZXIgKi8KIHR5cGVkZWYgc3RydWN0IGVs ZmhkciB7CiAJdW5zaWduZWQgY2hhcgllX2lkZW50W0VJX05JREVOVF07IC8qIEVMRiBJZGVudGlm aWNhdGlvbiAqLwpAQCAtMTcxLDYgKzE4MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKICNkZWZpbmUg RU1fUFBDCQkyMAkJLyogUG93ZXJQQyAqLwogI2RlZmluZSBFTV9QUEM2NAkyMQkJLyogUG93ZXJQ QyA2NC1iaXQgKi8KICNkZWZpbmUgRU1fQVJNCQk0MAkJLyogQWR2YW5jZWQgUklTQyBNYWNoaW5l cyBBUk0gKi8KKyNkZWZpbmUgRU1fQUFSQ0g2NAkxODMJCS8qIEFSTSA2NC1iaXQgKi8KICNkZWZp bmUgRU1fQUxQSEEJNDEJCS8qIERFQyBBTFBIQSAqLwogI2RlZmluZSBFTV9TUEFSQ1Y5CTQzCQkv KiBTUEFSQyB2ZXJzaW9uIDkgKi8KICNkZWZpbmUgRU1fQUxQSEFfRVhQCTB4OTAyNgkJLyogREVD IEFMUEhBICovCkBAIC0zNTMsMTIgKzM2Myw0MCBAQCB0eXBlZGVmIHN0cnVjdCB7CiAjZGVmaW5l CUVMRjY0X1JfVFlQRShpbmZvKQkoKGluZm8pICYgMHhGRkZGRkZGRikKICNkZWZpbmUgRUxGNjRf Ul9JTkZPKHMsdCkgCSgoKHMpIDw8IDMyKSArICh1X2ludDMyX3QpKHQpKQogCi0vKiB4ODYtNjQg cmVsb2NhdGlvbiB0eXBlcy4gV2UgbGlzdCBvbmx5IHRoZSBvbmVzIExpdmUgUGF0Y2ggaW1wbGVt ZW50cy4gKi8KKy8qCisgKiBSZWxvY2F0aW9uIHR5cGVzIGZvciB4ODZfNjQgYW5kIEFSTSA2NC4g V2UgbGlzdCBvbmx5IHRoZSBvbmVzIExpdmUgUGF0Y2gKKyAqIGltcGxlbWVudHMuCisgKi8KICNk ZWZpbmUgUl9YODZfNjRfTk9ORQkJMAkvKiBObyByZWxvYyAqLwogI2RlZmluZSBSX1g4Nl82NF82 NAkgICAgCTEJLyogRGlyZWN0IDY0IGJpdCAgKi8KICNkZWZpbmUgUl9YODZfNjRfUEMzMgkJMgkv KiBQQyByZWxhdGl2ZSAzMiBiaXQgc2lnbmVkICovCiAjZGVmaW5lIFJfWDg2XzY0X1BMVDMyCQk0 CS8qIDMyIGJpdCBQTFQgYWRkcmVzcyAqLwogCisvKgorICogUyAtIGFkZHJlc3Mgb2Ygc3ltYm9s LgorICogQSAtIGFkZGVuZCBmb3IgcmVsb2NhdGlvbiAocl9hZGRlbmQpCisgKiBQIC0gYWRkcmVz cyBvZiB0aGUgZGVzdCBiZWluZyByZWxvY2F0ZWQgKGRlcmlldmVkIGZyb20gcl9vZmZzZXQpCisg KiBOQyAtICBObyBjaGVjayBmb3Igb3ZlcmZsb3cuCisgKgorICogVGhlIGRlZmluZXMgYWxzbyB1 c2UgX1BSRUwgZm9yIFBDLXJlbGF0aXZlIGFkZHJlc3MsIGFuZCBfTkMgaXMgTm8gQ2hlY2suCisg Ki8KKyNkZWZpbmUgUl9BQVJDSDY0X0FCUzY0CQkJMjU3IC8qIERpcmVjdCA2NCBiaXQuIFMrQSwg TkMqLworI2RlZmluZSBSX0FBUkNINjRfQUJTMzIJCQkyNTggLyogRGlyZWN0IDMyIGJpdC4gUytB ICovCisjZGVmaW5lIFJfQUFSQ0g2NF9QUkVMNjQJCTI2MCAvKiBTK0EtUCwgTkMgKi8KKyNkZWZp bmUgUl9BQVJDSDY0X1BSRUwzMgkJMjYxIC8qIFMrQS1QICovCisKKyNkZWZpbmUgUl9BQVJDSDY0 X0FEUl9QUkVMX0xPMjEJCTI3NCAvKiBBRFIgaW1tLCBbMjA6MF0uIFMrQS1QICovCisjZGVmaW5l IFJfQUFSQ0g2NF9BRFJfUFJFTF9QR19ISTIxCTI3NSAvKiBBRFJQIGltbSwgWzMyOjEyXS4gUGFn ZShTK0EpIC0gUGFnZShQKS4qLworI2RlZmluZSBSX0FBUkNINjRfQUREX0FCU19MTzEyX05DCTI3 NyAvKiBBREQgaW1tLiBbMTE6MF0uIFMrQSwgTkMgKi8KKworI2RlZmluZSBSX0FBUkNINjRfQ09O REJSMTkJCTI4MCAvKiBCaXRzIDIwOjIsIFMrQS1QICovCisjZGVmaW5lIFJfQUFSQ0g2NF9KVU1Q MjYJCTI4MiAvKiBCaXRzIDI3OjIsIFMrQS1QICovCisjZGVmaW5lIFJfQUFSQ0g2NF9DQUxMMjYJ CTI4MyAvKiBCaXRzIDI3OjIsIFMrQS1QICovCisjZGVmaW5lIFJfQUFSQ0g2NF9MRFNUMTZfQUJT X0xPMTJfTkMJMjg0IC8qIExEL1NUIHRvIGJpdHMgMTE6MSwgUytBLCBOQyAqLworI2RlZmluZSBS X0FBUkNINjRfTERTVDMyX0FCU19MTzEyX05DCTI4NSAvKiBMRC9TVCB0byBiaXRzIDExOjIsIFMr QSwgTkMgKi8KKyNkZWZpbmUgUl9BQVJDSDY0X0xEU1Q2NF9BQlNfTE8xMl9OQwkyODYgLyogTEQv U1QgdG8gYml0cyAxMTozLCBTK0EsIE5DICovCisjZGVmaW5lIFJfQUFSQ0g2NF9MRFNUOF9BQlNf TE8xMl9OQwkyNzggLyogTEQvU1QgdG8gYml0cyAxMTowLCBTK0EsIE5DICovCisKIC8qIFByb2dy YW0gSGVhZGVyICovCiB0eXBlZGVmIHN0cnVjdCB7CiAJRWxmMzJfV29yZAlwX3R5cGU7CQkvKiBz ZWdtZW50IHR5cGUgKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaCBi L3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaAppbmRleCAyZTY0Njg2Li42ZjMwYzBkIDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoLmgKKysrIGIveGVuL2luY2x1ZGUveGVu L2xpdmVwYXRjaC5oCkBAIC03Miw3ICs3Miw3IEBAIGludCBhcmNoX2xpdmVwYXRjaF92ZXJpZnlf ZnVuYyhjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpOwogICogVGhlc2UgZnVuY3Rp b25zIGFyZSBjYWxsZWQgYXJvdW5kIHRoZSBjcml0aWNhbCByZWdpb24gcGF0Y2hpbmcgbGl2ZSBj b2RlLAogICogZm9yIGFuIGFyY2hpdGVjdHVyZSB0byB0YWtlIG1ha2UgYXBwcm9wcmF0aWUgZ2xv YmFsIHN0YXRlIGFkanVzdG1lbnRzLgogICovCi12b2lkIGFyY2hfbGl2ZXBhdGNoX3F1aWVzY2Uo dm9pZCk7CitpbnQgYXJjaF9saXZlcGF0Y2hfcXVpZXNjZSh2b2lkKTsKIHZvaWQgYXJjaF9saXZl cGF0Y2hfcmV2aXZlKHZvaWQpOwogCiB2b2lkIGFyY2hfbGl2ZXBhdGNoX2FwcGx5X2ptcChzdHJ1 Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpOwotLSAKMi40LjExCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==