From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753235AbaIKXNi (ORCPT ); Thu, 11 Sep 2014 19:13:38 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:53978 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752504AbaIKXN0 (ORCPT ); Thu, 11 Sep 2014 19:13:26 -0400 Message-ID: <1410477191.5948.8.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 000/131] 3.2.63-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, Satoru Takeuchi , Guenter Roeck , akpm@linux-foundation.org Date: Fri, 12 Sep 2014 00:13:11 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-5qsWtPch4YNXG5ff4zL7" X-Mailer: Evolution 3.12.5-1+b1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.249 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-5qsWtPch4YNXG5ff4zL7 Content-Type: multipart/mixed; boundary="=-biTzsaaiy75nCHg399Be" --=-biTzsaaiy75nCHg399Be Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.63-rc1 relative to 3.2.62. Ben. --=20 Ben Hutchings It is easier to change the specification to fit the program than vice versa= . --=-biTzsaaiy75nCHg399Be Content-Disposition: attachment; filename="linux-3.2.63-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.63-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vc291bmQvYWxzYS9BTFNBLUNvbmZpZ3VyYXRpb24u dHh0IGIvRG9jdW1lbnRhdGlvbi9zb3VuZC9hbHNhL0FMU0EtQ29uZmlndXJhdGlvbi50eHQKaW5k ZXggOTM2Njk5ZS4uMTU4MDZlZiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9zb3VuZC9hbHNh L0FMU0EtQ29uZmlndXJhdGlvbi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9zb3VuZC9hbHNhL0FM U0EtQ29uZmlndXJhdGlvbi50eHQKQEAgLTIwMTgsOCArMjAxOCw4IEBAIFByaW9yIHRvIHZlcnNp b24gMC45LjByYzQgb3B0aW9ucyBoYWQgYSAnc25kXycgcHJlZml4LiBUaGlzIHdhcyByZW1vdmVk LgogICAtLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICBNb2R1bGUgZm9yIHNvdW5kIGNhcmRzIGJh c2VkIG9uIHRoZSBBc3VzIEFWNjYvQVYxMDAvQVYyMDAgY2hpcHMsCi0gICAgaS5lLiwgWG9uYXIg RDEsIERYLCBEMiwgRDJYLCBEUywgRXNzZW5jZSBTVCAoRGVsdXhlKSwgRXNzZW5jZSBTVFgsCi0g ICAgSERBVjEuMyAoRGVsdXhlKSwgYW5kIEhEQVYxLjMgU2xpbS4KKyAgICBpLmUuLCBYb25hciBE MSwgRFgsIEQyLCBEMlgsIERTLCBEU1gsIEVzc2VuY2UgU1QgKERlbHV4ZSksCisgICAgRXNzZW5j ZSBTVFggKElJKSwgSERBVjEuMyAoRGVsdXhlKSwgYW5kIEhEQVYxLjMgU2xpbS4KIAogICAgIFRo aXMgbW9kdWxlIHN1cHBvcnRzIGF1dG9wcm9iZSBhbmQgbXVsdGlwbGUgY2FyZHMuCiAKZGlmZiAt LWdpdCBhL0RvY3VtZW50YXRpb24vc3RhYmxlX2tlcm5lbF9ydWxlcy50eHQgYi9Eb2N1bWVudGF0 aW9uL3N0YWJsZV9rZXJuZWxfcnVsZXMudHh0CmluZGV4IDIyYmYxMWIuLjUzZmVlYWMgMTAwNjQ0 Ci0tLSBhL0RvY3VtZW50YXRpb24vc3RhYmxlX2tlcm5lbF9ydWxlcy50eHQKKysrIGIvRG9jdW1l bnRhdGlvbi9zdGFibGVfa2VybmVsX3J1bGVzLnR4dApAQCAtMjksNiArMjksOSBAQCBSdWxlcyBv biB3aGF0IGtpbmQgb2YgcGF0Y2hlcyBhcmUgYWNjZXB0ZWQsIGFuZCB3aGljaCBvbmVzIGFyZSBu b3QsIGludG8gdGhlCiAKIFByb2NlZHVyZSBmb3Igc3VibWl0dGluZyBwYXRjaGVzIHRvIHRoZSAt c3RhYmxlIHRyZWU6CiAKKyAtIElmIHRoZSBwYXRjaCBjb3ZlcnMgZmlsZXMgaW4gbmV0LyBvciBk cml2ZXJzL25ldCBwbGVhc2UgZm9sbG93IG5ldGRldiBzdGFibGUKKyAgIHN1Ym1pc3Npb24gZ3Vp ZGVsaW5lcyBhcyBkZXNjcmliZWQgaW4KKyAgIERvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRk ZXYtRkFRLnR4dAogIC0gU2VuZCB0aGUgcGF0Y2gsIGFmdGVyIHZlcmlmeWluZyB0aGF0IGl0IGZv bGxvd3MgdGhlIGFib3ZlIHJ1bGVzLCB0bwogICAgc3RhYmxlQHZnZXIua2VybmVsLm9yZy4gIFlv dSBtdXN0IG5vdGUgdGhlIHVwc3RyZWFtIGNvbW1pdCBJRCBpbiB0aGUKICAgIGNoYW5nZWxvZyBv ZiB5b3VyIHN1Ym1pc3Npb24uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQv bW0udHh0IGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L21tLnR4dAppbmRleCBkNjQ5OGUzLi5m MzNhOTM2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvbW0udHh0CisrKyBi L0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC9tbS50eHQKQEAgLTEyLDYgKzEyLDggQEAgZmZmZmM5 MDAwMDAwMDAwMCAtIGZmZmZlOGZmZmZmZmZmZmYgKD00NSBiaXRzKSB2bWFsbG9jL2lvcmVtYXAg c3BhY2UKIGZmZmZlOTAwMDAwMDAwMDAgLSBmZmZmZTlmZmZmZmZmZmZmICg9NDAgYml0cykgaG9s ZQogZmZmZmVhMDAwMDAwMDAwMCAtIGZmZmZlYWZmZmZmZmZmZmYgKD00MCBiaXRzKSB2aXJ0dWFs IG1lbW9yeSBtYXAgKDFUQikKIC4uLiB1bnVzZWQgaG9sZSAuLi4KK2ZmZmZmZjAwMDAwMDAwMDAg LSBmZmZmZmY3ZmZmZmZmZmZmICg9MzkgYml0cykgJWVzcCBmaXh1cCBzdGFja3MKKy4uLiB1bnVz ZWQgaG9sZSAuLi4KIGZmZmZmZmZmODAwMDAwMDAgLSBmZmZmZmZmZmEwMDAwMDAwICg9NTEyIE1C KSAga2VybmVsIHRleHQgbWFwcGluZywgZnJvbSBwaHlzIDAKIGZmZmZmZmZmYTAwMDAwMDAgLSBm ZmZmZmZmZmZmZjAwMDAwICg9MTUzNiBNQikgbW9kdWxlIG1hcHBpbmcgc3BhY2UKIApkaWZmIC0t Z2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQppbmRleCAzMGE1YzY1Li5jNWE3NzdlIDEwMDY0NAot LS0gYS9NYWtlZmlsZQorKysgYi9NYWtlZmlsZQpAQCAtMSw3ICsxLDcgQEAKIFZFUlNJT04gPSAz CiBQQVRDSExFVkVMID0gMgotU1VCTEVWRUwgPSA2MgotRVhUUkFWRVJTSU9OID0KK1NVQkxFVkVM ID0gNjMKK0VYVFJBVkVSU0lPTiA9IC1yYzEKIE5BTUUgPSBTYWJlci10b290aGVkIFNxdWlycmVs CiAKICMgKkRPQ1VNRU5UQVRJT04qCkBAIC01OTIsNiArNTkyLDggQEAgS0JVSUxEX0NGTEFHUwkr PSAtZm9taXQtZnJhbWUtcG9pbnRlcgogZW5kaWYKIGVuZGlmCiAKK0tCVUlMRF9DRkxBR1MgICAr PSAkKGNhbGwgY2Mtb3B0aW9uLCAtZm5vLXZhci10cmFja2luZy1hc3NpZ25tZW50cykKKwogaWZk ZWYgQ09ORklHX0RFQlVHX0lORk8KIEtCVUlMRF9DRkxBR1MJKz0gLWcKIEtCVUlMRF9BRkxBR1MJ Kz0gLWdkd2FyZi0yCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvZW50cnktaGVhZGVyLlMg Yi9hcmNoL2FybS9rZXJuZWwvZW50cnktaGVhZGVyLlMKaW5kZXggOWE4NTMxZS4uOWQ5NWE0NiAx MDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL2VudHJ5LWhlYWRlci5TCisrKyBiL2FyY2gvYXJt L2tlcm5lbC9lbnRyeS1oZWFkZXIuUwpAQCAtNzYsMjYgKzc2LDIxIEBACiAjaWZuZGVmIENPTkZJ R19USFVNQjJfS0VSTkVMCiAJLm1hY3JvCXN2Y19leGl0LCBycHNyCiAJbXNyCXNwc3JfY3hzZiwg XHJwc3IKLSNpZiBkZWZpbmVkKENPTkZJR19DUFVfVjYpCi0JbGRyCXIwLCBbc3BdCi0Jc3RyZXgJ cjEsIHIyLCBbc3BdCQkJQCBjbGVhciB0aGUgZXhjbHVzaXZlIG1vbml0b3IKLQlsZG1pYglzcCwg e3IxIC0gcGN9XgkJCUAgbG9hZCByMSAtIHBjLCBjcHNyCi0jZWxpZiBkZWZpbmVkKENPTkZJR19D UFVfMzJ2NkspCi0JY2xyZXgJCQkJCUAgY2xlYXIgdGhlIGV4Y2x1c2l2ZSBtb25pdG9yCi0JbGRt aWEJc3AsIHtyMCAtIHBjfV4JCQlAIGxvYWQgcjAgLSBwYywgY3BzcgotI2Vsc2UKLQlsZG1pYQlz cCwge3IwIC0gcGN9XgkJCUAgbG9hZCByMCAtIHBjLCBjcHNyCisjaWYgZGVmaW5lZChDT05GSUdf Q1BVX1Y2KSB8fCBkZWZpbmVkKENPTkZJR19DUFVfMzJ2NkspCisJQCBXZSBtdXN0IGF2b2lkIGNs cmV4IGR1ZSB0byBDb3J0ZXgtQTE1IGVycmF0dW0gIzgzMDMyMQorCXN1YglyMCwgc3AsICM0CQkJ QCB1bmluaGFiaXRlZCBhZGRyZXNzCisJc3RyZXgJcjEsIHIyLCBbcjBdCQkJQCBjbGVhciB0aGUg ZXhjbHVzaXZlIG1vbml0b3IKICNlbmRpZgorCWxkbWlhCXNwLCB7cjAgLSBwY31eCQkJQCBsb2Fk IHIwIC0gcGMsIGNwc3IKIAkuZW5kbQogCiAJLm1hY3JvCXJlc3RvcmVfdXNlcl9yZWdzLCBmYXN0 ID0gMCwgb2Zmc2V0ID0gMAogCWxkcglyMSwgW3NwLCAjXG9mZnNldCArIFNfUFNSXQlAIGdldCBj YWxsaW5nIGNwc3IKIAlsZHIJbHIsIFtzcCwgI1xvZmZzZXQgKyBTX1BDXSEJQCBnZXQgcGMKIAlt c3IJc3Bzcl9jeHNmLCByMQkJCUAgc2F2ZSBpbiBzcHNyX3N2YwotI2lmIGRlZmluZWQoQ09ORklH X0NQVV9WNikKKyNpZiBkZWZpbmVkKENPTkZJR19DUFVfVjYpIHx8IGRlZmluZWQoQ09ORklHX0NQ VV8zMnY2SykKKwlAIFdlIG11c3QgYXZvaWQgY2xyZXggZHVlIHRvIENvcnRleC1BMTUgZXJyYXR1 bSAjODMwMzIxCiAJc3RyZXgJcjEsIHIyLCBbc3BdCQkJQCBjbGVhciB0aGUgZXhjbHVzaXZlIG1v bml0b3IKLSNlbGlmIGRlZmluZWQoQ09ORklHX0NQVV8zMnY2SykKLQljbHJleAkJCQkJQCBjbGVh ciB0aGUgZXhjbHVzaXZlIG1vbml0b3IKICNlbmRpZgogCS5pZglcZmFzdAogCWxkbWRiCXNwLCB7 cjEgLSBscn1eCQkJQCBnZXQgY2FsbGluZyByMSAtIGxyCkBAIC0xMjMsNyArMTE4LDEwIEBACiAJ Lm1hY3JvCXN2Y19leGl0LCBycHNyCiAJbGRyCWxyLCBbc3AsICNTX1NQXQkJCUAgdG9wIG9mIHRo ZSBzdGFjawogCWxkcmQJcjAsIHIxLCBbc3AsICNTX0xSXQkJQCBjYWxsaW5nIGxyIGFuZCBwYwot CWNscmV4CQkJCQlAIGNsZWFyIHRoZSBleGNsdXNpdmUgbW9uaXRvcgorCisJQCBXZSBtdXN0IGF2 b2lkIGNscmV4IGR1ZSB0byBDb3J0ZXgtQTE1IGVycmF0dW0gIzgzMDMyMQorCXN0cmV4CXIyLCBy MSwgW3NwLCAjU19MUl0JCUAgY2xlYXIgdGhlIGV4Y2x1c2l2ZSBtb25pdG9yCisKIAlzdG1kYgls ciEsIHtyMCwgcjEsIFxycHNyfQkJQCBjYWxsaW5nIGxyIGFuZCByZmUgY29udGV4dAogCWxkbWlh CXNwLCB7cjAgLSByMTJ9CiAJbW92CXNwLCBscgpAQCAtMTMyLDEzICsxMzAsMTYgQEAKIAkuZW5k bQogCiAJLm1hY3JvCXJlc3RvcmVfdXNlcl9yZWdzLCBmYXN0ID0gMCwgb2Zmc2V0ID0gMAotCWNs cmV4CQkJCQlAIGNsZWFyIHRoZSBleGNsdXNpdmUgbW9uaXRvcgogCW1vdglyMiwgc3AKIAlsb2Fk X3VzZXJfc3BfbHIgcjIsIHIzLCBcb2Zmc2V0ICsgU19TUAlAIGNhbGxpbmcgc3AsIGxyCiAJbGRy CXIxLCBbc3AsICNcb2Zmc2V0ICsgU19QU1JdCUAgZ2V0IGNhbGxpbmcgY3BzcgogCWxkcglsciwg W3NwLCAjXG9mZnNldCArIFNfUENdCUAgZ2V0IHBjCiAJYWRkCXNwLCBzcCwgI1xvZmZzZXQgKyBT X1NQCiAJbXNyCXNwc3JfY3hzZiwgcjEJCQlAIHNhdmUgaW4gc3Bzcl9zdmMKKworCUAgV2UgbXVz dCBhdm9pZCBjbHJleCBkdWUgdG8gQ29ydGV4LUExNSBlcnJhdHVtICM4MzAzMjEKKwlzdHJleAly MSwgcjIsIFtzcF0JCQlAIGNsZWFyIHRoZSBleGNsdXNpdmUgbW9uaXRvcgorCiAJLmlmCVxmYXN0 CiAJbGRtZGIJc3AsIHtyMSAtIHIxMn0JCQlAIGdldCBjYWxsaW5nIHIxIC0gcjEyCiAJLmVsc2UK ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY29udHJvbC5jIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9jb250cm9sLmMKaW5kZXggZTM0ZDI3Zi4uNzI0ZjgyMyAxMDA2NDQKLS0tIGEvYXJj aC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250 cm9sLmMKQEAgLTI4Miw3ICsyODIsOCBAQCB2b2lkIG9tYXAzX3NhdmVfc2NyYXRjaHBhZF9jb250 ZW50cyh2b2lkKQogCQlzY3JhdGNocGFkX2NvbnRlbnRzLnB1YmxpY19yZXN0b3JlX3B0ciA9CiAJ CQl2aXJ0X3RvX3BoeXMob21hcDNfcmVzdG9yZV8zNjMwKTsKIAllbHNlIGlmIChvbWFwX3Jldigp ICE9IE9NQVAzNDMwX1JFVl9FUzNfMCAmJgotCQkJCQlvbWFwX3JldigpICE9IE9NQVAzNDMwX1JF Vl9FUzNfMSkKKwkJCQkJb21hcF9yZXYoKSAhPSBPTUFQMzQzMF9SRVZfRVMzXzEgJiYKKwkJCQkJ b21hcF9yZXYoKSAhPSBPTUFQMzQzMF9SRVZfRVMzXzFfMikKIAkJc2NyYXRjaHBhZF9jb250ZW50 cy5wdWJsaWNfcmVzdG9yZV9wdHIgPQogCQkJdmlydF90b19waHlzKG9tYXAzX3Jlc3RvcmUpOwog CWVsc2UKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL2Fib3J0LWV2Ni5TIGIvYXJjaC9hcm0vbW0v YWJvcnQtZXY2LlMKaW5kZXggODA3NDE5OS4uNWQ3NzdhNSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0v bW0vYWJvcnQtZXY2LlMKKysrIGIvYXJjaC9hcm0vbW0vYWJvcnQtZXY2LlMKQEAgLTE3LDEyICsx Nyw2IEBACiAgKi8KIAkuYWxpZ24JNQogRU5UUlkodjZfZWFybHlfYWJvcnQpCi0jaWZkZWYgQ09O RklHX0NQVV9WNgotCXN1YglyMSwgc3AsICM0CQkJQCBHZXQgdW51c2VkIHN0YWNrIGxvY2F0aW9u Ci0Jc3RyZXgJcjAsIHIxLCBbcjFdCQkJQCBDbGVhciB0aGUgZXhjbHVzaXZlIG1vbml0b3IKLSNl bGlmIGRlZmluZWQoQ09ORklHX0NQVV8zMnY2SykKLQljbHJleAotI2VuZGlmCiAJbXJjCXAxNSwg MCwgcjEsIGM1LCBjMCwgMAkJQCBnZXQgRlNSCiAJbXJjCXAxNSwgMCwgcjAsIGM2LCBjMCwgMAkJ QCBnZXQgRkFSCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vYWJvcnQtZXY3LlMgYi9hcmNo L2FybS9tbS9hYm9ydC1ldjcuUwppbmRleCA3MDMzNzUyLi40ODEyYWQwIDEwMDY0NAotLS0gYS9h cmNoL2FybS9tbS9hYm9ydC1ldjcuUworKysgYi9hcmNoL2FybS9tbS9hYm9ydC1ldjcuUwpAQCAt MTMsMTIgKzEzLDYgQEAKICAqLwogCS5hbGlnbgk1CiBFTlRSWSh2N19lYXJseV9hYm9ydCkKLQkv KgotCSAqIFRoZSBlZmZlY3Qgb2YgZGF0YSBhYm9ydHMgb24gb24gdGhlIGV4Y2x1c2l2ZSBhY2Nl c3MgbW9uaXRvciBhcmUKLQkgKiBVTlBSRURJQ1RBQkxFLiBEbyBhIENMUkVYIHRvIGNsZWFyIHRo ZSBzdGF0ZQotCSAqLwotCWNscmV4Ci0KIAltcmMJcDE1LCAwLCByMSwgYzUsIGMwLCAwCQlAIGdl dCBGU1IKIAltcmMJcDE1LCAwLCByMCwgYzYsIGMwLCAwCQlAIGdldCBGQVIKIApkaWZmIC0tZ2l0 IGEvYXJjaC9taWNyb2JsYXplL2Jvb3QvTWFrZWZpbGUgYi9hcmNoL21pY3JvYmxhemUvYm9vdC9N YWtlZmlsZQppbmRleCA0YzRlNThlLi41MzY1NTE5IDEwMDY0NAotLS0gYS9hcmNoL21pY3JvYmxh emUvYm9vdC9NYWtlZmlsZQorKysgYi9hcmNoL21pY3JvYmxhemUvYm9vdC9NYWtlZmlsZQpAQCAt OCw3ICs4LDcgQEAgb2JqLXkgKz0gbGlua2VkX2R0Yi5vCiAKIHRhcmdldHMgOj0gbGludXguYmlu IGxpbnV4LmJpbi5neiBzaW1wbGVJbWFnZS4lCiAKLU9CSkNPUFlGTEFHUyA6PSAtTyBiaW5hcnkK K09CSkNPUFlGTEFHUyA6PSAtUiAubm90ZSAtUiAuY29tbWVudCAtUiAubm90ZS5nbnUuYnVpbGQt aWQgLU8gYmluYXJ5CiAKICMgRW5zdXJlIHN5c3RlbS5kdGIgZXhpc3RzCiAkKG9iaikvbGlua2Vk X2R0Yi5vOiAkKG9iaikvc3lzdGVtLmR0YgpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2Nhdml1bS1v Y3Rlb24vc2V0dXAuYyBiL2FyY2gvbWlwcy9jYXZpdW0tb2N0ZW9uL3NldHVwLmMKaW5kZXggMmQ5 MDI4Zi4uM2M1ZjYxYyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2Nhdml1bS1vY3Rlb24vc2V0dXAu YworKysgYi9hcmNoL21pcHMvY2F2aXVtLW9jdGVvbi9zZXR1cC5jCkBAIC0yNjYsNiArMjY2LDE4 IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBvY3Rlb25fcmxtX2ludGVycnVwdChpbnQgY3BsLCB2b2lk ICpkZXZfaWQpCiB9CiAjZW5kaWYKIAorc3RhdGljIGNoYXIgX19yZWFkX21vc3RseSBvY3Rlb25f c3lzdGVtX3R5cGVbODBdOworCitzdGF0aWMgaW50IF9faW5pdCBpbml0X29jdGVvbl9zeXN0ZW1f dHlwZSh2b2lkKQoreworCXNucHJpbnRmKG9jdGVvbl9zeXN0ZW1fdHlwZSwgc2l6ZW9mKG9jdGVv bl9zeXN0ZW1fdHlwZSksICIlcyAoJXMpIiwKKwkJY3ZteF9ib2FyZF90eXBlX3RvX3N0cmluZyhv Y3Rlb25fYm9vdGluZm8tPmJvYXJkX3R5cGUpLAorCQlvY3Rlb25fbW9kZWxfZ2V0X3N0cmluZyhy ZWFkX2MwX3ByaWQoKSkpOworCisJcmV0dXJuIDA7Cit9CitlYXJseV9pbml0Y2FsbChpbml0X29j dGVvbl9zeXN0ZW1fdHlwZSk7CisKIC8qKgogICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGlu ZyB0aGUgc3lzdGVtIHR5cGUKICAqCkBAIC0yNzMsMTEgKzI4NSw3IEBAIHN0YXRpYyBpcnFyZXR1 cm5fdCBvY3Rlb25fcmxtX2ludGVycnVwdChpbnQgY3BsLCB2b2lkICpkZXZfaWQpCiAgKi8KIGNv bnN0IGNoYXIgKm9jdGVvbl9ib2FyZF90eXBlX3N0cmluZyh2b2lkKQogewotCXN0YXRpYyBjaGFy IG5hbWVbODBdOwotCXNwcmludGYobmFtZSwgIiVzICglcykiLAotCQljdm14X2JvYXJkX3R5cGVf dG9fc3RyaW5nKG9jdGVvbl9ib290aW5mby0+Ym9hcmRfdHlwZSksCi0JCW9jdGVvbl9tb2RlbF9n ZXRfc3RyaW5nKHJlYWRfYzBfcHJpZCgpKSk7Ci0JcmV0dXJuIG5hbWU7CisJcmV0dXJuIG9jdGVv bl9zeXN0ZW1fdHlwZTsKIH0KIAogY29uc3QgY2hhciAqZ2V0X3N5c3RlbV90eXBlKHZvaWQpCmRp ZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL2lycS1naWMuYyBiL2FyY2gvbWlwcy9rZXJuZWwv aXJxLWdpYy5jCmluZGV4IDBjNTI3ZjYuLmUxMzJiZmQgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9r ZXJuZWwvaXJxLWdpYy5jCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvaXJxLWdpYy5jCkBAIC0xNjYs MTEgKzE2NiwxMyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ2ljX3NldHVwX2ludHIodW5zaWduZWQg aW50IGludHIsIHVuc2lnbmVkIGludCBjcHUsCiB7CiAJLyogU2V0dXAgSW50ciB0byBQaW4gbWFw cGluZyAqLwogCWlmIChwaW4gJiBHSUNfTUFQX1RPX05NSV9NU0spIHsKKwkJaW50IGk7CisKIAkJ R0lDV1JJVEUoR0lDX1JFR19BRERSKFNIQVJFRCwgR0lDX1NIX01BUF9UT19QSU4oaW50cikpLCBw aW4pOwogCQkvKiBGSVhNRTogaGFjayB0byByb3V0ZSBOTUkgdG8gYWxsIGNwdSdzICovCi0JCWZv ciAoY3B1ID0gMDsgY3B1IDwgTlJfQ1BVUzsgY3B1ICs9IDMyKSB7CisJCWZvciAoaSA9IDA7IGkg PCBOUl9DUFVTOyBpICs9IDMyKSB7CiAJCQlHSUNXUklURShHSUNfUkVHX0FERFIoU0hBUkVELAot CQkJCQkgIEdJQ19TSF9NQVBfVE9fVlBFX1JFR19PRkYoaW50ciwgY3B1KSksCisJCQkJCSAgR0lD X1NIX01BUF9UT19WUEVfUkVHX09GRihpbnRyLCBpKSksCiAJCQkJIDB4ZmZmZmZmZmYpOwogCQl9 CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvcGVyZl9ldmVudF9taXBz eHguYyBiL2FyY2gvbWlwcy9rZXJuZWwvcGVyZl9ldmVudF9taXBzeHguYwppbmRleCAzMTVmYzBi Li5kYzZmZmUwIDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL3BlcmZfZXZlbnRfbWlwc3h4 LmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9wZXJmX2V2ZW50X21pcHN4eC5jCkBAIC0xNjIsMTEg KzE2Miw2IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgY291bnRlcnNfdG90YWxfdG9fcGVyX2NwdSh1 bnNpZ25lZCBpbnQgY291bnRlcnMpCiAJcmV0dXJuIGNvdW50ZXJzID4+IHZwZV9zaGlmdCgpOwog fQogCi1zdGF0aWMgdW5zaWduZWQgaW50IGNvdW50ZXJzX3Blcl9jcHVfdG9fdG90YWwodW5zaWdu ZWQgaW50IGNvdW50ZXJzKQotewotCXJldHVybiBjb3VudGVycyA8PCB2cGVfc2hpZnQoKTsKLX0K LQogI2Vsc2UgLyogIUNPTkZJR19NSVBTX01UX1NNUCAqLwogI2RlZmluZSB2cGVfaWQoKQkwCiAK ZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvcHRyYWNlLmMgYi9hcmNoL21pcHMva2VybmVs L3B0cmFjZS5jCmluZGV4IDRlNmVhMWYuLmU1NmM2OTIgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9r ZXJuZWwvcHRyYWNlLmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9wdHJhY2UuYwpAQCAtMTYyLDYg KzE2Miw3IEBAIGludCBwdHJhY2Vfc2V0ZnByZWdzKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQs IF9fdTMyIF9fdXNlciAqZGF0YSkKIAkJX19nZXRfdXNlcihmcmVnc1tpXSwgaSArIChfX3U2NCBf X3VzZXIgKikgZGF0YSk7CiAKIAlfX2dldF91c2VyKGNoaWxkLT50aHJlYWQuZnB1LmZjcjMxLCBk YXRhICsgNjQpOworCWNoaWxkLT50aHJlYWQuZnB1LmZjcjMxICY9IH5GUFVfQ1NSX0FMTF9YOwog CiAJLyogRklSIG1heSBub3QgYmUgd3JpdHRlbi4gICovCiAKQEAgLTQ1Miw3ICs0NTMsNyBAQCBs b25nIGFyY2hfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIGxvbmcgcmVxdWVzdCwK IAkJCWJyZWFrOwogI2VuZGlmCiAJCWNhc2UgRlBDX0NTUjoKLQkJCWNoaWxkLT50aHJlYWQuZnB1 LmZjcjMxID0gZGF0YTsKKwkJCWNoaWxkLT50aHJlYWQuZnB1LmZjcjMxID0gZGF0YSAmIH5GUFVf Q1NSX0FMTF9YOwogCQkJYnJlYWs7CiAJCWNhc2UgRFNQX0JBU0UgLi4uIERTUF9CQVNFICsgNTog ewogCQkJZHNwcmVnX3QgKmRyZWdzOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21tL2MtcjRrLmMg Yi9hcmNoL21pcHMvbW0vYy1yNGsuYwppbmRleCA3ZDVhYzBiLi5mZTQyNWJiIDEwMDY0NAotLS0g YS9hcmNoL21pcHMvbW0vYy1yNGsuYworKysgYi9hcmNoL21pcHMvbW0vYy1yNGsuYwpAQCAtMTIs NiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KICNpbmNsdWRlIDxsaW51eC9r ZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisjaW5jbHVkZSA8bGludXgvcHJl ZW1wdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvc21wLmg+ CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KQEAgLTU5OSw2ICs2MDAsNyBAQCBzdGF0aWMgdm9pZCBy NGtfZG1hX2NhY2hlX3diYWNrX2ludih1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcg c2l6ZSkKIAkvKiBDYXRjaCBiYWQgZHJpdmVyIGNvZGUgKi8KIAlCVUdfT04oc2l6ZSA9PSAwKTsK IAorCXByZWVtcHRfZGlzYWJsZSgpOwogCWlmIChjcHVfaGFzX2luY2x1c2l2ZV9wY2FjaGVzKSB7 CiAJCWlmIChzaXplID49IHNjYWNoZV9zaXplKQogCQkJcjRrX2JsYXN0X3NjYWNoZSgpOwpAQCAt NjE5LDYgKzYyMSw3IEBAIHN0YXRpYyB2b2lkIHI0a19kbWFfY2FjaGVfd2JhY2tfaW52KHVuc2ln bmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQogCQlSNDYwMF9ISVRfQ0FDSEVPUF9X QVJfSU1QTDsKIAkJYmxhc3RfZGNhY2hlX3JhbmdlKGFkZHIsIGFkZHIgKyBzaXplKTsKIAl9CisJ cHJlZW1wdF9lbmFibGUoKTsKIAogCWJjX3diYWNrX2ludihhZGRyLCBzaXplKTsKIAlfX3N5bmMo KTsKQEAgLTYyOSw2ICs2MzIsNyBAQCBzdGF0aWMgdm9pZCByNGtfZG1hX2NhY2hlX2ludih1bnNp Z25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIAkvKiBDYXRjaCBiYWQgZHJpdmVy IGNvZGUgKi8KIAlCVUdfT04oc2l6ZSA9PSAwKTsKIAorCXByZWVtcHRfZGlzYWJsZSgpOwogCWlm IChjcHVfaGFzX2luY2x1c2l2ZV9wY2FjaGVzKSB7CiAJCWlmIChzaXplID49IHNjYWNoZV9zaXpl KQogCQkJcjRrX2JsYXN0X3NjYWNoZSgpOwpAQCAtNjUzLDYgKzY1Nyw3IEBAIHN0YXRpYyB2b2lk IHI0a19kbWFfY2FjaGVfaW52KHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBzaXpl KQogCQlSNDYwMF9ISVRfQ0FDSEVPUF9XQVJfSU1QTDsKIAkJYmxhc3RfaW52X2RjYWNoZV9yYW5n ZShhZGRyLCBhZGRyICsgc2l6ZSk7CiAJfQorCXByZWVtcHRfZW5hYmxlKCk7CiAKIAliY19pbnYo YWRkciwgc2l6ZSk7CiAJX19zeW5jKCk7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbW0vdGxiZXgu YyBiL2FyY2gvbWlwcy9tbS90bGJleC5jCmluZGV4IGUwNjM3MGYuLjNlZTc2OGUgMTAwNjQ0Ci0t LSBhL2FyY2gvbWlwcy9tbS90bGJleC5jCisrKyBiL2FyY2gvbWlwcy9tbS90bGJleC5jCkBAIC0x MjgyLDYgKzEyODIsNyBAQCBzdGF0aWMgdm9pZCBfX2NwdWluaXQgYnVpbGRfcjQwMDBfdGxiX3Jl ZmlsbF9oYW5kbGVyKHZvaWQpCiAJfQogI2lmZGVmIENPTkZJR19IVUdFVExCX1BBR0UKIAl1YXNt X2xfdGxiX2h1Z2VfdXBkYXRlKCZsLCBwKTsKKwlVQVNNX2lfTFcoJnAsIEswLCAwLCBLMSk7CiAJ YnVpbGRfaHVnZV91cGRhdGVfZW50cmllcygmcCwgaHRsYl9pbmZvLmh1Z2VfcHRlLCBLMSk7CiAJ YnVpbGRfaHVnZV90bGJfd3JpdGVfZW50cnkoJnAsICZsLCAmciwgSzAsIHRsYl9yYW5kb20sCiAJ CQkJICAgaHRsYl9pbmZvLnJlc3RvcmVfc2NyYXRjaCk7CmRpZmYgLS1naXQgYS9hcmNoL29wZW5y aXNjL2tlcm5lbC9oZWFkLlMgYi9hcmNoL29wZW5yaXNjL2tlcm5lbC9oZWFkLlMKaW5kZXggYzc1 MDE4ZC4uMjNhMzAxOSAxMDA2NDQKLS0tIGEvYXJjaC9vcGVucmlzYy9rZXJuZWwvaGVhZC5TCisr KyBiL2FyY2gvb3BlbnJpc2Mva2VybmVsL2hlYWQuUwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1 ZGUgPGxpbnV4L3RocmVhZHMuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUg PGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfcmVnLmg+CiAjaW5jbHVkZSA8 YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVkZSA8YXNtL21t dS5oPgpkaWZmIC0tZ2l0IGEvYXJjaC9vcGVucmlzYy9rZXJuZWwvaW5pdF90YXNrLmMgYi9hcmNo L29wZW5yaXNjL2tlcm5lbC9pbml0X3Rhc2suYwppbmRleCA0NTc0NGEzOC4uY2E1MzQwOCAxMDA2 NDQKLS0tIGEvYXJjaC9vcGVucmlzYy9rZXJuZWwvaW5pdF90YXNrLmMKKysrIGIvYXJjaC9vcGVu cmlzYy9rZXJuZWwvaW5pdF90YXNrLmMKQEAgLTE3LDYgKzE3LDcgQEAKIAogI2luY2x1ZGUgPGxp bnV4L2luaXRfdGFzay5oPgogI2luY2x1ZGUgPGxpbnV4L21xdWV1ZS5oPgorI2luY2x1ZGUgPGxp bnV4L2V4cG9ydC5oPgogCiBzdGF0aWMgc3RydWN0IHNpZ25hbF9zdHJ1Y3QgaW5pdF9zaWduYWxz ID0gSU5JVF9TSUdOQUxTKGluaXRfc2lnbmFscyk7CiBzdGF0aWMgc3RydWN0IHNpZ2hhbmRfc3Ry dWN0IGluaXRfc2lnaGFuZCA9IElOSVRfU0lHSEFORChpbml0X3NpZ2hhbmQpOwpkaWZmIC0tZ2l0 IGEvYXJjaC9vcGVucmlzYy9rZXJuZWwvaXJxLmMgYi9hcmNoL29wZW5yaXNjL2tlcm5lbC9pcnEu YwppbmRleCA1OWIzMDIzLi40YmZlYWQyIDEwMDY0NAotLS0gYS9hcmNoL29wZW5yaXNjL2tlcm5l bC9pcnEuYworKysgYi9hcmNoL29wZW5yaXNjL2tlcm5lbC9pcnEuYwpAQCAtMjMsNiArMjMsNyBA QAogI2luY2x1ZGUgPGxpbnV4L2lycS5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CiAj aW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KKyNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4K IAogI2luY2x1ZGUgPGxpbnV4L2lycWZsYWdzLmg+CiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJw Yy9pbmNsdWRlL2FzbS9wdGUtaGFzaDY0LTY0ay5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNt L3B0ZS1oYXNoNjQtNjRrLmgKaW5kZXggNTkyNDdlOC4uNGFjNTBiYiAxMDA2NDQKLS0tIGEvYXJj aC9wb3dlcnBjL2luY2x1ZGUvYXNtL3B0ZS1oYXNoNjQtNjRrLmgKKysrIGIvYXJjaC9wb3dlcnBj L2luY2x1ZGUvYXNtL3B0ZS1oYXNoNjQtNjRrLmgKQEAgLTQwLDE3ICs0MCwzOSBAQAogCiAjaWZu ZGVmIF9fQVNTRU1CTFlfXwogCisjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPiAvKiBmb3Igc21wX3Jt YigpICovCisKIC8qCiAgKiBXaXRoIDY0SyBwYWdlcyBvbiBoYXNoIHRhYmxlLCB3ZSBoYXZlIGEg c3BlY2lhbCBQVEUgZm9ybWF0IHRoYXQKICAqIHVzZXMgYSBzZWNvbmQgImhhbGYiIG9mIHRoZSBw YWdlIHRhYmxlIHRvIGVuY29kZSBzdWItcGFnZSBpbmZvcm1hdGlvbgogICogaW4gb3JkZXIgdG8g ZGVhbCB3aXRoIDY0SyBtYWRlIG9mIDRLIEhXIHBhZ2VzLiBUaHVzIHdlIG92ZXJyaWRlIHRoZQog ICogZ2VuZXJpYyBhY2Nlc3NvcnMgYW5kIGl0ZXJhdG9ycyBoZXJlCiAgKi8KLSNkZWZpbmUgX19y ZWFsX3B0ZShlLHApIAkoKHJlYWxfcHRlX3QpIHsgXAotCQkJKGUpLCAoKGUpICYgX1BBR0VfQ09N Qk8pID8gXAotCQkJCShwdGVfdmFsKCooKHApICsgUFRSU19QRVJfUFRFKSkpIDogMCB9KQotI2Rl ZmluZSBfX3JwdGVfdG9faGlkeChyLGluZGV4KQkoKHB0ZV92YWwoKHIpLnB0ZSkgJiBfUEFHRV9D T01CTykgPyBcCi0gICAgICAgICgoKHIpLmhpZHggPj4gKChpbmRleCk8PDIpKSAmIDB4ZikgOiAo KHB0ZV92YWwoKHIpLnB0ZSkgPj4gMTIpICYgMHhmKSkKKyNkZWZpbmUgX19yZWFsX3B0ZSBfX3Jl YWxfcHRlCitzdGF0aWMgaW5saW5lIHJlYWxfcHRlX3QgX19yZWFsX3B0ZShwdGVfdCBwdGUsIHB0 ZV90ICpwdGVwKQoreworCXJlYWxfcHRlX3QgcnB0ZTsKKworCXJwdGUucHRlID0gcHRlOworCXJw dGUuaGlkeCA9IDA7CisJaWYgKHB0ZV92YWwocHRlKSAmIF9QQUdFX0NPTUJPKSB7CisJCS8qCisJ CSAqIE1ha2Ugc3VyZSB3ZSBvcmRlciB0aGUgaGlkeCBsb2FkIGFnYWluc3QgdGhlIF9QQUdFX0NP TUJPCisJCSAqIGNoZWNrLiBUaGUgc3RvcmUgc2lkZSBvcmRlcmluZyBpcyBkb25lIGluIF9faGFz aF9wYWdlXzRLCisJCSAqLworCQlzbXBfcm1iKCk7CisJCXJwdGUuaGlkeCA9IHB0ZV92YWwoKigo cHRlcCkgKyBQVFJTX1BFUl9QVEUpKTsKKwl9CisJcmV0dXJuIHJwdGU7Cit9CisKK3N0YXRpYyBp bmxpbmUgdW5zaWduZWQgbG9uZyBfX3JwdGVfdG9faGlkeChyZWFsX3B0ZV90IHJwdGUsIHVuc2ln bmVkIGxvbmcgaW5kZXgpCit7CisJaWYgKChwdGVfdmFsKHJwdGUucHRlKSAmIF9QQUdFX0NPTUJP KSkKKwkJcmV0dXJuIChycHRlLmhpZHggPj4gKGluZGV4PDwyKSkgJiAweGY7CisJcmV0dXJuIChw dGVfdmFsKHJwdGUucHRlKSA+PiAxMikgJiAweGY7Cit9CisKICNkZWZpbmUgX19ycHRlX3RvX3B0 ZShyKQkoKHIpLnB0ZSkKICNkZWZpbmUgX19ycHRlX3N1Yl92YWxpZChycHRlLCBpbmRleCkgXAog CShwdGVfdmFsKHJwdGUucHRlKSAmIChfUEFHRV9IUFRFX1NVQjAgPj4gKGluZGV4KSkpCmRpZmYg LS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24uYyBiL2FyY2gvcG93ZXJwYy9r ZXJuZWwvcGNpLWNvbW1vbi5jCmluZGV4IDQ1OGVkM2IuLjEyNjU5YWIgMTAwNjQ0Ci0tLSBhL2Fy Y2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwv cGNpLWNvbW1vbi5jCkBAIC0zNjMsNyArMzYzLDYgQEAgc3RhdGljIHBncHJvdF90IF9fcGNpX21t YXBfc2V0X3BncHJvdChzdHJ1Y3QgcGNpX2RldiAqZGV2LCBzdHJ1Y3QgcmVzb3VyY2UgKnJwLAog CQkJCSAgICAgIGVudW0gcGNpX21tYXBfc3RhdGUgbW1hcF9zdGF0ZSwKIAkJCQkgICAgICBpbnQg d3JpdGVfY29tYmluZSkKIHsKLQl1bnNpZ25lZCBsb25nIHByb3QgPSBwZ3Byb3RfdmFsKHByb3Rl Y3Rpb24pOwogCiAJLyogV3JpdGUgY29tYmluZSBpcyBhbHdheXMgMCBvbiBub24tbWVtb3J5IHNw YWNlIG1hcHBpbmdzLiBPbgogCSAqIG1lbW9yeSBzcGFjZSwgaWYgdGhlIHVzZXIgZGlkbid0IHBh c3MgMSwgd2UgY2hlY2sgZm9yIGEKQEAgLTM4MCw5ICszNzksOSBAQCBzdGF0aWMgcGdwcm90X3Qg X19wY2lfbW1hcF9zZXRfcGdwcm90KHN0cnVjdCBwY2lfZGV2ICpkZXYsIHN0cnVjdCByZXNvdXJj ZSAqcnAsCiAKIAkvKiBYWFggd291bGQgYmUgbmljZSB0byBoYXZlIGEgd2F5IHRvIGFzayBmb3Ig d3JpdGUtdGhyb3VnaCAqLwogCWlmICh3cml0ZV9jb21iaW5lKQotCQlyZXR1cm4gcGdwcm90X25v bmNhY2hlZF93Yyhwcm90KTsKKwkJcmV0dXJuIHBncHJvdF9ub25jYWNoZWRfd2MocHJvdGVjdGlv bik7CiAJZWxzZQotCQlyZXR1cm4gcGdwcm90X25vbmNhY2hlZChwcm90KTsKKwkJcmV0dXJuIHBn cHJvdF9ub25jYWNoZWQocHJvdGVjdGlvbik7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9hcmNoL3Bv d2VycGMvbW0vaW5pdF82NC5jIGIvYXJjaC9wb3dlcnBjL21tL2luaXRfNjQuYwppbmRleCBlOTRi NTdmLi43NWRkMzJlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vaW5pdF82NC5jCisrKyBi L2FyY2gvcG93ZXJwYy9tbS9pbml0XzY0LmMKQEAgLTIxOCw3ICsyMTgsOCBAQCBzdGF0aWMgdm9p ZCBfX21lbWluaXQgdm1lbW1hcF9jcmVhdGVfbWFwcGluZyh1bnNpZ25lZCBsb25nIHN0YXJ0LAog CQkJCQkgICAgIHVuc2lnbmVkIGxvbmcgcGh5cykKIHsKIAlpbnQgIG1hcHBlZCA9IGh0YWJfYm9s dF9tYXBwaW5nKHN0YXJ0LCBzdGFydCArIHBhZ2Vfc2l6ZSwgcGh5cywKLQkJCQkJUEFHRV9LRVJO RUwsIG1tdV92bWVtbWFwX3BzaXplLAorCQkJCQlwZ3Byb3RfdmFsKFBBR0VfS0VSTkVMKSwKKwkJ CQkJbW11X3ZtZW1tYXBfcHNpemUsCiAJCQkJCW1tdV9rZXJuZWxfc3NpemUpOwogCUJVR19PTiht YXBwZWQgPCAwKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9udW1hLmMgYi9hcmNo L3Bvd2VycGMvbW0vbnVtYS5jCmluZGV4IDI0NTIzZGMuLmY0Yjc4YTMgMTAwNjQ0Ci0tLSBhL2Fy Y2gvcG93ZXJwYy9tbS9udW1hLmMKKysrIGIvYXJjaC9wb3dlcnBjL21tL251bWEuYwpAQCAtNjAw LDggKzYwMCw4IEBAIHN0YXRpYyBpbnQgX19jcHVpbml0IGNwdV9udW1hX2NhbGxiYWNrKHN0cnVj dCBub3RpZmllcl9ibG9jayAqbmZiLAogCWNhc2UgQ1BVX1VQX0NBTkNFTEVEOgogCWNhc2UgQ1BV X1VQX0NBTkNFTEVEX0ZST1pFTjoKIAkJdW5tYXBfY3B1X2Zyb21fbm9kZShsY3B1KTsKLQkJYnJl YWs7CiAJCXJldCA9IE5PVElGWV9PSzsKKwkJYnJlYWs7CiAjZW5kaWYKIAl9CiAJcmV0dXJuIHJl dDsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9LY29uZmlnIGIvYXJjaC9zMzkwL0tjb25maWcKaW5k ZXggYTNjNDBlOC4uYWVkM2Q5MSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL0tjb25maWcKKysrIGIv YXJjaC9zMzkwL0tjb25maWcKQEAgLTExOSw2ICsxMTksNyBAQCBjb25maWcgUzM5MAogCXNlbGVj dCBBUkNIX0lOTElORV9XUklURV9VTkxPQ0tfQkgKIAlzZWxlY3QgQVJDSF9JTkxJTkVfV1JJVEVf VU5MT0NLX0lSUQogCXNlbGVjdCBBUkNIX0lOTElORV9XUklURV9VTkxPQ0tfSVJRUkVTVE9SRQor CXNlbGVjdCBBUkNIX1NVUFBPUlRTX0FUT01JQ19STVcKIAogY29uZmlnIFNDSEVEX09NSVRfRlJB TUVfUE9JTlRFUgogCWRlZl9ib29sIHkKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS9h c20vS2J1aWxkIGIvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9LYnVpbGQKaW5kZXggMmMyZTM4OC4u MzlhMGI0ZiAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9LYnVpbGQKKysrIGIv YXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9LYnVpbGQKQEAgLTIxLDMgKzIxLDQgQEAgZ2VuZXJpYy15 ICs9IGRpdjY0LmgKIGdlbmVyaWMteSArPSBsb2NhbDY0LmgKIGdlbmVyaWMteSArPSBpcnFfcmVn cy5oCiBnZW5lcmljLXkgKz0gbG9jYWwuaAorZ2VuZXJpYy15ICs9IHR5cGVzLmgKZGlmZiAtLWdp dCBhL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vcGd0YWJsZV82NC5oIGIvYXJjaC9zcGFyYy9pbmNs dWRlL2FzbS9wZ3RhYmxlXzY0LmgKaW5kZXggZGRiYmVhMy4uN2VlNWExYyAxMDA2NDQKLS0tIGEv YXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0LmgKKysrIGIvYXJjaC9zcGFyYy9pbmNs dWRlL2FzbS9wZ3RhYmxlXzY0LmgKQEAgLTI1LDcgKzI1LDggQEAKIAogLyogVGhlIGtlcm5lbCBp bWFnZSBvY2N1cGllcyAweDQwMDAwMDAgdG8gMHg2MDAwMDAwICg0TUIgLS0+IDk2TUIpLgogICog VGhlIHBhZ2UgY29weSBibG9ja29wcyBjYW4gdXNlIDB4NjAwMDAwMCB0byAweDgwMDAwMDAuCi0g KiBUaGUgVFNCIGlzIG1hcHBlZCBpbiB0aGUgMHg4MDAwMDAwIHRvIDB4YTAwMDAwMCByYW5nZS4K KyAqIFRoZSA4SyBUU0IgaXMgbWFwcGVkIGluIHRoZSAweDgwMDAwMDAgdG8gMHg4NDAwMDAwIHJh bmdlLgorICogVGhlIDRNIFRTQiBpcyBtYXBwZWQgaW4gdGhlIDB4ODQwMDAwMCB0byAweDg4MDAw MDAgcmFuZ2UuCiAgKiBUaGUgUFJPTSByZXNpZGVzIGluIGFuIGFyZWEgc3Bhbm5pbmcgMHhmMDAw MDAwMCB0byAweDEwMDAwMDAwMC4KICAqIFRoZSB2bWFsbG9jIGFyZWEgc3BhbnMgMHgxMDAwMDAw MDAgdG8gMHgyMDAwMDAwMDAuCiAgKiBTaW5jZSBtb2R1bGVzIG5lZWQgdG8gYmUgaW4gdGhlIGxv d2VzdCAzMi1iaXRzIG9mIHRoZSBhZGRyZXNzIHNwYWNlLApAQCAtMzQsNyArMzUsOCBAQAogICog MHg0MDAwMDAwMDAuCiAgKi8KICNkZWZpbmUJVExCVEVNUF9CQVNFCQlfQUMoMHgwMDAwMDAwMDA2 MDAwMDAwLFVMKQotI2RlZmluZQlUU0JNQVBfQkFTRQkJX0FDKDB4MDAwMDAwMDAwODAwMDAwMCxV TCkKKyNkZWZpbmUJVFNCTUFQXzhLX0JBU0UJCV9BQygweDAwMDAwMDAwMDgwMDAwMDAsVUwpCisj ZGVmaW5lCVRTQk1BUF80TV9CQVNFCQlfQUMoMHgwMDAwMDAwMDA4NDAwMDAwLFVMKQogI2RlZmlu ZSBNT0RVTEVTX1ZBRERSCQlfQUMoMHgwMDAwMDAwMDEwMDAwMDAwLFVMKQogI2RlZmluZSBNT0RV TEVTX0xFTgkJX0FDKDB4MDAwMDAwMDBlMDAwMDAwMCxVTCkKICNkZWZpbmUgTU9EVUxFU19FTkQJ CV9BQygweDAwMDAwMDAwZjAwMDAwMDAsVUwpCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2luY2x1 ZGUvYXNtL3RsYmZsdXNoXzY0LmggYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3RsYmZsdXNoXzY0 LmgKaW5kZXggZjBkNmE5Ny4uMWE0YmI5NyAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9pbmNsdWRl L2FzbS90bGJmbHVzaF82NC5oCisrKyBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vdGxiZmx1c2hf NjQuaApAQCAtMzUsNiArMzUsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmx1c2hfdGxiX3Jhbmdl KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogewogfQogCit2b2lkIGZsdXNoX3RsYl9rZXJu ZWxfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOworCiAjZGVm aW5lIF9fSEFWRV9BUkNIX0VOVEVSX0xBWllfTU1VX01PREUKIAogZXh0ZXJuIHZvaWQgZmx1c2hf dGxiX3BlbmRpbmcodm9pZCk7CkBAIC00OSwxMSArNTEsNiBAQCBleHRlcm4gdm9pZCBfX2ZsdXNo X3RsYl9rZXJuZWxfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQp OwogCiAjaWZuZGVmIENPTkZJR19TTVAKIAotI2RlZmluZSBmbHVzaF90bGJfa2VybmVsX3Jhbmdl KHN0YXJ0LGVuZCkgXAotZG8gewlmbHVzaF90c2Jfa2VybmVsX3JhbmdlKHN0YXJ0LGVuZCk7IFwK LQlfX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2Uoc3RhcnQsZW5kKTsgXAotfSB3aGlsZSAoMCkKLQog c3RhdGljIGlubGluZSB2b2lkIGdsb2JhbF9mbHVzaF90bGJfcGFnZShzdHJ1Y3QgbW1fc3RydWN0 ICptbSwgdW5zaWduZWQgbG9uZyB2YWRkcikKIHsKIAlfX2ZsdXNoX3RsYl9wYWdlKENUWF9IV0JJ VFMobW0tPmNvbnRleHQpLCB2YWRkcik7CkBAIC02NCwxMSArNjEsNiBAQCBzdGF0aWMgaW5saW5l IHZvaWQgZ2xvYmFsX2ZsdXNoX3RsYl9wYWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25l ZCBsb25nIHZhZAogZXh0ZXJuIHZvaWQgc21wX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UodW5zaWdu ZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwogZXh0ZXJuIHZvaWQgc21wX2ZsdXNo X3RsYl9wYWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIHZhZGRyKTsKIAot I2RlZmluZSBmbHVzaF90bGJfa2VybmVsX3JhbmdlKHN0YXJ0LCBlbmQpIFwKLWRvIHsJZmx1c2hf dHNiX2tlcm5lbF9yYW5nZShzdGFydCxlbmQpOyBcCi0Jc21wX2ZsdXNoX3RsYl9rZXJuZWxfcmFu Z2Uoc3RhcnQsIGVuZCk7IFwKLX0gd2hpbGUgKDApCi0KICNkZWZpbmUgZ2xvYmFsX2ZsdXNoX3Rs Yl9wYWdlKG1tLCB2YWRkcikgXAogCXNtcF9mbHVzaF90bGJfcGFnZShtbSwgdmFkZHIpCiAKZGlm ZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vdHlwZXMuaCBiL2FyY2gvc3BhcmMvaW5j bHVkZS9hc20vdHlwZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTFlNWEwMy4u MDAwMDAwMAotLS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3R5cGVzLmgKKysrIC9kZXYvbnVs bApAQCAtMSwyMyArMCwwIEBACi0jaWZuZGVmIF9TUEFSQ19UWVBFU19ICi0jZGVmaW5lIF9TUEFS Q19UWVBFU19ICi0vKgotICogVGhpcyBmaWxlIGlzIG5ldmVyIGluY2x1ZGVkIGJ5IGFwcGxpY2F0 aW9uIHNvZnR3YXJlIHVubGVzcwotICogZXhwbGljaXRseSByZXF1ZXN0ZWQgKGUuZy4sIHZpYSBs aW51eC90eXBlcy5oKSBpbiB3aGljaCBjYXNlIHRoZQotICogYXBwbGljYXRpb24gaXMgTGludXgg c3BlY2lmaWMgc28gKHVzZXItKSBuYW1lIHNwYWNlIHBvbGx1dGlvbiBpcwotICogbm90IGEgbWFq b3IgaXNzdWUuICBIb3dldmVyLCBmb3IgaW50ZXJvcGVyYWJpbGl0eSwgbGlicmFyaWVzIHN0aWxs Ci0gKiBuZWVkIHRvIGJlIGNhcmVmdWwgdG8gYXZvaWQgYSBuYW1lIGNsYXNoZXMuCi0gKi8KLQot I2lmIGRlZmluZWQoX19zcGFyY19fKQotCi0jaW5jbHVkZSA8YXNtLWdlbmVyaWMvaW50LWxsNjQu aD4KLQotI2lmbmRlZiBfX0FTU0VNQkxZX18KLQotdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1bW9k ZV90OwotCi0jZW5kaWYgLyogX19BU1NFTUJMWV9fICovCi0KLSNlbmRpZiAvKiBkZWZpbmVkKF9f c3BhcmNfXykgKi8KLQotI2VuZGlmIC8qIGRlZmluZWQoX1NQQVJDX1RZUEVTX0gpICovCmRpZmYg LS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC9sZGMuYyBiL2FyY2gvc3BhcmMva2VybmVsL2xkYy5j CmluZGV4IDQzNWU0MDYuLjFiZWFmNjAgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMva2VybmVsL2xk Yy5jCisrKyBiL2FyY2gvc3BhcmMva2VybmVsL2xkYy5jCkBAIC0xMzM5LDcgKzEzMzksNyBAQCBp bnQgbGRjX2Nvbm5lY3Qoc3RydWN0IGxkY19jaGFubmVsICpscCkKIAlpZiAoIShscC0+ZmxhZ3Mg JiBMRENfRkxBR19BTExPQ0VEX1FVRVVFUykgfHwKIAkgICAgIShscC0+ZmxhZ3MgJiBMRENfRkxB R19SRUdJU1RFUkVEX1FVRVVFUykgfHwKIAkgICAgbHAtPmhzX3N0YXRlICE9IExEQ19IU19PUEVO KQotCQllcnIgPSAtRUlOVkFMOworCQllcnIgPSAoKGxwLT5oc19zdGF0ZSA+IExEQ19IU19PUEVO KSA/IDAgOiAtRUlOVkFMKTsKIAllbHNlCiAJCWVyciA9IHN0YXJ0X2hhbmRzaGFrZShscCk7CiAK ZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMva2VybmVsL3NtcF82NC5jIGIvYXJjaC9zcGFyYy9rZXJu ZWwvc21wXzY0LmMKaW5kZXggZTIxZDNjMGQuLmZmZDEyNDUgMTAwNjQ0Ci0tLSBhL2FyY2gvc3Bh cmMva2VybmVsL3NtcF82NC5jCisrKyBiL2FyY2gvc3BhcmMva2VybmVsL3NtcF82NC5jCkBAIC0x NTEsNyArMTUxLDcgQEAgdm9pZCBjcHVfcGFuaWModm9pZCkKICNkZWZpbmUgTlVNX1JPVU5EUwk2 NAkvKiBtYWdpYyB2YWx1ZSAqLwogI2RlZmluZSBOVU1fSVRFUlMJNQkvKiBsaWtld2lzZSAqLwog Ci1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKGl0Y19zeW5jX2xvY2spOworc3RhdGljIERFRklORV9S QVdfU1BJTkxPQ0soaXRjX3N5bmNfbG9jayk7CiBzdGF0aWMgdW5zaWduZWQgbG9uZyBnb1tTTEFW RSArIDFdOwogCiAjZGVmaW5lIERFQlVHX1RJQ0tfU1lOQwkwCkBAIC0yNTksNyArMjU5LDcgQEAg c3RhdGljIHZvaWQgc21wX3N5bmNocm9uaXplX29uZV90aWNrKGludCBjcHUpCiAJZ29bTUFTVEVS XSA9IDA7CiAJbWVtYmFyX3NhZmUoIiNTdG9yZUxvYWQiKTsKIAotCXNwaW5fbG9ja19pcnFzYXZl KCZpdGNfc3luY19sb2NrLCBmbGFncyk7CisJcmF3X3NwaW5fbG9ja19pcnFzYXZlKCZpdGNfc3lu Y19sb2NrLCBmbGFncyk7CiAJewogCQlmb3IgKGkgPSAwOyBpIDwgTlVNX1JPVU5EUypOVU1fSVRF UlM7IGkrKykgewogCQkJd2hpbGUgKCFnb1tNQVNURVJdKQpAQCAtMjcwLDcgKzI3MCw3IEBAIHN0 YXRpYyB2b2lkIHNtcF9zeW5jaHJvbml6ZV9vbmVfdGljayhpbnQgY3B1KQogCQkJbWVtYmFyX3Nh ZmUoIiNTdG9yZUxvYWQiKTsKIAkJfQogCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpdGNf c3luY19sb2NrLCBmbGFncyk7CisJcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUoJml0Y19zeW5j X2xvY2ssIGZsYWdzKTsKIH0KIAogI2lmIGRlZmluZWQoQ09ORklHX1NVTl9MRE9NUykgJiYgZGVm aW5lZChDT05GSUdfSE9UUExVR19DUFUpCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC9z eXMzMi5TIGIvYXJjaC9zcGFyYy9rZXJuZWwvc3lzMzIuUwppbmRleCBkOTdmM2ViLi4wODVjNjBm IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC9zeXMzMi5TCisrKyBiL2FyY2gvc3BhcmMv a2VybmVsL3N5czMyLlMKQEAgLTg3LDcgKzg3LDcgQEAgU0lHTjEoc3lzMzJfaW9fc3VibWl0LCBj b21wYXRfc3lzX2lvX3N1Ym1pdCwgJW8xKQogU0lHTjEoc3lzMzJfbXFfb3BlbiwgY29tcGF0X3N5 c19tcV9vcGVuLCAlbzEpCiBTSUdOMShzeXMzMl9zZWxlY3QsIGNvbXBhdF9zeXNfc2VsZWN0LCAl bzApCiBTSUdOMShzeXMzMl9ta2Rpciwgc3lzX21rZGlyLCAlbzEpCi1TSUdOMyhzeXMzMl9mdXRl eCwgY29tcGF0X3N5c19mdXRleCwgJW8xLCAlbzIsICVvNSkKK1NJR04xKHN5czMyX2Z1dGV4LCBj b21wYXRfc3lzX2Z1dGV4LCAlbzEpCiBTSUdOMShzeXMzMl9zeXNmcywgY29tcGF0X3N5c19zeXNm cywgJW8wKQogU0lHTjIoc3lzMzJfc2VuZGZpbGUsIGNvbXBhdF9zeXNfc2VuZGZpbGUsICVvMCwg JW8xKQogU0lHTjIoc3lzMzJfc2VuZGZpbGU2NCwgY29tcGF0X3N5c19zZW5kZmlsZTY0LCAlbzAs ICVvMSkKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMva2VybmVsL3VuYWxpZ25lZF82NC5jIGIvYXJj aC9zcGFyYy9rZXJuZWwvdW5hbGlnbmVkXzY0LmMKaW5kZXggNzZlNGFjMS4uMWM5MDgxMiAxMDA2 NDQKLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwvdW5hbGlnbmVkXzY0LmMKKysrIGIvYXJjaC9zcGFy Yy9rZXJuZWwvdW5hbGlnbmVkXzY0LmMKQEAgLTE1NiwxNyArMTU2LDIzIEBAIHN0YXRpYyB1bnNp Z25lZCBsb25nICpmZXRjaF9yZWdfYWRkcih1bnNpZ25lZCBpbnQgcmVnLCBzdHJ1Y3QgcHRfcmVn cyAqcmVncykKIHVuc2lnbmVkIGxvbmcgY29tcHV0ZV9lZmZlY3RpdmVfYWRkcmVzcyhzdHJ1Y3Qg cHRfcmVncyAqcmVncywKIAkJCQkJdW5zaWduZWQgaW50IGluc24sIHVuc2lnbmVkIGludCByZCkK IHsKKwlpbnQgZnJvbV9rZXJuZWwgPSAocmVncy0+dHN0YXRlICYgVFNUQVRFX1BSSVYpICE9IDA7 CiAJdW5zaWduZWQgaW50IHJzMSA9IChpbnNuID4+IDE0KSAmIDB4MWY7CiAJdW5zaWduZWQgaW50 IHJzMiA9IGluc24gJiAweDFmOwotCWludCBmcm9tX2tlcm5lbCA9IChyZWdzLT50c3RhdGUgJiBU U1RBVEVfUFJJVikgIT0gMDsKKwl1bnNpZ25lZCBsb25nIGFkZHI7CiAKIAlpZiAoaW5zbiAmIDB4 MjAwMCkgewogCQltYXliZV9mbHVzaF93aW5kb3dzKHJzMSwgMCwgcmQsIGZyb21fa2VybmVsKTsK LQkJcmV0dXJuIChmZXRjaF9yZWcocnMxLCByZWdzKSArIHNpZ25fZXh0ZW5kX2ltbTEzKGluc24p KTsKKwkJYWRkciA9IChmZXRjaF9yZWcocnMxLCByZWdzKSArIHNpZ25fZXh0ZW5kX2ltbTEzKGlu c24pKTsKIAl9IGVsc2UgewogCQltYXliZV9mbHVzaF93aW5kb3dzKHJzMSwgcnMyLCByZCwgZnJv bV9rZXJuZWwpOwotCQlyZXR1cm4gKGZldGNoX3JlZyhyczEsIHJlZ3MpICsgZmV0Y2hfcmVnKHJz MiwgcmVncykpOworCQlhZGRyID0gKGZldGNoX3JlZyhyczEsIHJlZ3MpICsgZmV0Y2hfcmVnKHJz MiwgcmVncykpOwogCX0KKworCWlmICghZnJvbV9rZXJuZWwgJiYgdGVzdF90aHJlYWRfZmxhZyhU SUZfMzJCSVQpKQorCQlhZGRyICY9IDB4ZmZmZmZmZmY7CisKKwlyZXR1cm4gYWRkcjsKIH0KIAog LyogVGhpcyBpcyBqdXN0IHRvIG1ha2UgZ2NjIHRoaW5rIGRpZV9pZl9rZXJuZWwgZG9lcyByZXR1 cm4uLi4gKi8KZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvbGliL05HMm1lbWNweS5TIGIvYXJjaC9z cGFyYy9saWIvTkcybWVtY3B5LlMKaW5kZXggMGFlZDc1Ni4uZTk5M2ZjOCAxMDA2NDQKLS0tIGEv YXJjaC9zcGFyYy9saWIvTkcybWVtY3B5LlMKKysrIGIvYXJjaC9zcGFyYy9saWIvTkcybWVtY3B5 LlMKQEAgLTIzNiw2ICsyMzYsNyBAQCBGVU5DX05BTUU6CS8qICVvMD1kc3QsICVvMT1zcmMsICVv Mj1sZW4gKi8KIAkgKi8KIAlWSVNFbnRyeUhhbGYKIAorCW1lbWJhcgkJI1N5bmMKIAlhbGlnbmFk ZHIJJW8xLCAlZzAsICVnMAogCiAJYWRkCQklbzEsICg2NCAtIDEpLCAlbzQKZGlmZiAtLWdpdCBh L2FyY2gvc3BhcmMvbWF0aC1lbXUvbWF0aF8zMi5jIGIvYXJjaC9zcGFyYy9tYXRoLWVtdS9tYXRo XzMyLmMKaW5kZXggYWE0ZDU1Yi4uNWNlOGYyZiAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9tYXRo LWVtdS9tYXRoXzMyLmMKKysrIGIvYXJjaC9zcGFyYy9tYXRoLWVtdS9tYXRoXzMyLmMKQEAgLTQ5 OSw3ICs0OTksNyBAQCBzdGF0aWMgaW50IGRvX29uZV9tYXRoZW11KHUzMiBpbnNuLCB1bnNpZ25l ZCBsb25nICpwZnNyLCB1bnNpZ25lZCBsb25nICpmcmVncykKIAkJY2FzZSAwOiBmc3IgPSAqcGZz cjsKIAkJCWlmIChJUiA9PSAtMSkgSVIgPSAyOwogCQkJLyogZmNjIGlzIGFsd2F5cyBmY2MwICov Ci0JCQlmc3IgJj0gfjB4YzAwOyBmc3IgfD0gKElSIDw8IDEwKTsgYnJlYWs7CisJCQlmc3IgJj0g fjB4YzAwOyBmc3IgfD0gKElSIDw8IDEwKTsKIAkJCSpwZnNyID0gZnNyOwogCQkJYnJlYWs7CiAJ CWNhc2UgMTogcmQtPnMgPSBJUjsgYnJlYWs7CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL21tL2Zh dWx0XzY0LmMgYi9hcmNoL3NwYXJjL21tL2ZhdWx0XzY0LmMKaW5kZXggNTA0YzA2Mi4uMmMwYjk2 NiAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9tbS9mYXVsdF82NC5jCisrKyBiL2FyY2gvc3BhcmMv bW0vZmF1bHRfNjQuYwpAQCAtOTUsMzggKzk1LDUxIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ2V0 X3VzZXJfaW5zbih1bnNpZ25lZCBsb25nIHRwYykKIAlwdGVfdCAqcHRlcCwgcHRlOwogCXVuc2ln bmVkIGxvbmcgcGE7CiAJdTMyIGluc24gPSAwOwotCXVuc2lnbmVkIGxvbmcgcHN0YXRlOwogCi0J aWYgKHBnZF9ub25lKCpwZ2RwKSkKLQkJZ290byBvdXRyZXQ7CisJaWYgKHBnZF9ub25lKCpwZ2Rw KSB8fCB1bmxpa2VseShwZ2RfYmFkKCpwZ2RwKSkpCisJCWdvdG8gb3V0OwogCXB1ZHAgPSBwdWRf b2Zmc2V0KHBnZHAsIHRwYyk7Ci0JaWYgKHB1ZF9ub25lKCpwdWRwKSkKLQkJZ290byBvdXRyZXQ7 Ci0JcG1kcCA9IHBtZF9vZmZzZXQocHVkcCwgdHBjKTsKLQlpZiAocG1kX25vbmUoKnBtZHApKQot CQlnb3RvIG91dHJldDsKLQotCS8qIFRoaXMgZGlzYWJsZXMgcHJlZW1wdGlvbiBmb3IgdXMgYXMg d2VsbC4gKi8KLQlfX2FzbV9fIF9fdm9sYXRpbGVfXygicmRwciAlJXBzdGF0ZSwgJTAiIDogIj1y IiAocHN0YXRlKSk7Ci0JX19hc21fXyBfX3ZvbGF0aWxlX18oIndycHIgJTAsICUxLCAlJXBzdGF0 ZSIKLQkJCQk6IDogInIiIChwc3RhdGUpLCAiaSIgKFBTVEFURV9JRSkpOwotCXB0ZXAgPSBwdGVf b2Zmc2V0X21hcChwbWRwLCB0cGMpOwotCXB0ZSA9ICpwdGVwOwotCWlmICghcHRlX3ByZXNlbnQo cHRlKSkKKwlpZiAocHVkX25vbmUoKnB1ZHApIHx8IHVubGlrZWx5KHB1ZF9iYWQoKnB1ZHApKSkK IAkJZ290byBvdXQ7CiAKLQlwYSAgPSAocHRlX3BmbihwdGUpIDw8IFBBR0VfU0hJRlQpOwotCXBh ICs9ICh0cGMgJiB+UEFHRV9NQVNLKTsKLQotCS8qIFVzZSBwaHlzIGJ5cGFzcyBzbyB3ZSBkb24n dCBwb2xsdXRlIGR0bGIvZGNhY2hlLiAqLwotCV9fYXNtX18gX192b2xhdGlsZV9fKCJsZHV3YSBb JTFdICUyLCAlMCIKLQkJCSAgICAgOiAiPXIiIChpbnNuKQotCQkJICAgICA6ICJyIiAocGEpLCAi aSIgKEFTSV9QSFlTX1VTRV9FQykpOworCS8qIFRoaXMgZGlzYWJsZXMgcHJlZW1wdGlvbiBmb3Ig dXMgYXMgd2VsbC4gKi8KKwlsb2NhbF9pcnFfZGlzYWJsZSgpOwogCisJcG1kcCA9IHBtZF9vZmZz ZXQocHVkcCwgdHBjKTsKKwlpZiAocG1kX25vbmUoKnBtZHApIHx8IHVubGlrZWx5KHBtZF9iYWQo KnBtZHApKSkKKwkJZ290byBvdXRfaXJxX2VuYWJsZTsKKworI2lmZGVmIENPTkZJR19UUkFOU1BB UkVOVF9IVUdFUEFHRQorCWlmIChwbWRfdHJhbnNfaHVnZSgqcG1kcCkpIHsKKwkJaWYgKHBtZF90 cmFuc19zcGxpdHRpbmcoKnBtZHApKQorCQkJZ290byBvdXRfaXJxX2VuYWJsZTsKKworCQlwYSAg PSBwbWRfcGZuKCpwbWRwKSA8PCBQQUdFX1NISUZUOworCQlwYSArPSB0cGMgJiB+SFBBR0VfTUFT SzsKKworCQkvKiBVc2UgcGh5cyBieXBhc3Mgc28gd2UgZG9uJ3QgcG9sbHV0ZSBkdGxiL2RjYWNo ZS4gKi8KKwkJX19hc21fXyBfX3ZvbGF0aWxlX18oImxkdXdhIFslMV0gJTIsICUwIgorCQkJCSAg ICAgOiAiPXIiIChpbnNuKQorCQkJCSAgICAgOiAiciIgKHBhKSwgImkiIChBU0lfUEhZU19VU0Vf RUMpKTsKKwl9IGVsc2UKKyNlbmRpZgorCXsKKwkJcHRlcCA9IHB0ZV9vZmZzZXRfbWFwKHBtZHAs IHRwYyk7CisJCXB0ZSA9ICpwdGVwOworCQlpZiAocHRlX3ByZXNlbnQocHRlKSkgeworCQkJcGEg ID0gKHB0ZV9wZm4ocHRlKSA8PCBQQUdFX1NISUZUKTsKKwkJCXBhICs9ICh0cGMgJiB+UEFHRV9N QVNLKTsKKworCQkJLyogVXNlIHBoeXMgYnlwYXNzIHNvIHdlIGRvbid0IHBvbGx1dGUgZHRsYi9k Y2FjaGUuICovCisJCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygibGR1d2EgWyUxXSAlMiwgJTAiCisJ CQkJCSAgICAgOiAiPXIiIChpbnNuKQorCQkJCQkgICAgIDogInIiIChwYSksICJpIiAoQVNJX1BI WVNfVVNFX0VDKSk7CisJCX0KKwkJcHRlX3VubWFwKHB0ZXApOworCX0KK291dF9pcnFfZW5hYmxl OgorCWxvY2FsX2lycV9lbmFibGUoKTsKIG91dDoKLQlwdGVfdW5tYXAocHRlcCk7Ci0JX19hc21f XyBfX3ZvbGF0aWxlX18oIndycHIgJTAsIDB4MCwgJSVwc3RhdGUiIDogOiAiciIgKHBzdGF0ZSkp Owotb3V0cmV0OgogCXJldHVybiBpbnNuOwogfQogCkBAIC0xNTQsNyArMTY3LDggQEAgc2hvd19z aWduYWxfbXNnKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgc2lnLCBpbnQgY29kZSwKIGV4dGVy biB1bnNpZ25lZCBsb25nIGNvbXB1dGVfZWZmZWN0aXZlX2FkZHJlc3Moc3RydWN0IHB0X3JlZ3Mg KiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQpOwogCiBzdGF0aWMgdm9pZCBkb19mYXVsdF9z aWdpbmZvKGludCBjb2RlLCBpbnQgc2lnLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywKLQkJCSAgICAg dW5zaWduZWQgaW50IGluc24sIGludCBmYXVsdF9jb2RlKQorCQkJICAgICB1bnNpZ25lZCBsb25n IGZhdWx0X2FkZHIsIHVuc2lnbmVkIGludCBpbnNuLAorCQkJICAgICBpbnQgZmF1bHRfY29kZSkK IHsKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAJc2lnaW5mb190IGluZm87CkBAIC0xNjIsMTAgKzE3 NiwxOCBAQCBzdGF0aWMgdm9pZCBkb19mYXVsdF9zaWdpbmZvKGludCBjb2RlLCBpbnQgc2lnLCBz dHJ1Y3QgcHRfcmVncyAqcmVncywKIAlpbmZvLnNpX2NvZGUgPSBjb2RlOwogCWluZm8uc2lfc2ln bm8gPSBzaWc7CiAJaW5mby5zaV9lcnJubyA9IDA7Ci0JaWYgKGZhdWx0X2NvZGUgJiBGQVVMVF9D T0RFX0lUTEIpCisJaWYgKGZhdWx0X2NvZGUgJiBGQVVMVF9DT0RFX0lUTEIpIHsKIAkJYWRkciA9 IHJlZ3MtPnRwYzsKLQllbHNlCi0JCWFkZHIgPSBjb21wdXRlX2VmZmVjdGl2ZV9hZGRyZXNzKHJl Z3MsIGluc24sIDApOworCX0gZWxzZSB7CisJCS8qIElmIHdlIHdlcmUgYWJsZSB0byBwcm9iZSB0 aGUgZmF1bHRpbmcgaW5zdHJ1Y3Rpb24sIHVzZSBpdAorCQkgKiB0byBjb21wdXRlIGEgcHJlY2lz ZSBmYXVsdCBhZGRyZXNzLiAgT3RoZXJ3aXNlIHVzZSB0aGUgZmF1bHQKKwkJICogdGltZSBwcm92 aWRlZCBhZGRyZXNzIHdoaWNoIG1heSBvbmx5IGhhdmUgcGFnZSBncmFudWxhcml0eS4KKwkJICov CisJCWlmIChpbnNuKQorCQkJYWRkciA9IGNvbXB1dGVfZWZmZWN0aXZlX2FkZHJlc3MocmVncywg aW5zbiwgMCk7CisJCWVsc2UKKwkJCWFkZHIgPSBmYXVsdF9hZGRyOworCX0KIAlpbmZvLnNpX2Fk ZHIgPSAodm9pZCBfX3VzZXIgKikgYWRkcjsKIAlpbmZvLnNpX3RyYXBubyA9IDA7CiAKQEAgLTI0 MCw3ICsyNjIsNyBAQCBzdGF0aWMgdm9pZCBfX2twcm9iZXMgZG9fa2VybmVsX2ZhdWx0KHN0cnVj dCBwdF9yZWdzICpyZWdzLCBpbnQgc2lfY29kZSwKIAkJLyogVGhlIHNpX2NvZGUgd2FzIHNldCB0 byBtYWtlIGNsZWFyIHdoZXRoZXIKIAkJICogdGhpcyB3YXMgYSBTRUdWX01BUEVSUiBvciBTRUdW X0FDQ0VSUiBmYXVsdC4KIAkJICovCi0JCWRvX2ZhdWx0X3NpZ2luZm8oc2lfY29kZSwgU0lHU0VH ViwgcmVncywgaW5zbiwgZmF1bHRfY29kZSk7CisJCWRvX2ZhdWx0X3NpZ2luZm8oc2lfY29kZSwg U0lHU0VHViwgcmVncywgYWRkcmVzcywgaW5zbiwgZmF1bHRfY29kZSk7CiAJCXJldHVybjsKIAl9 CiAKQEAgLTI2MCwxOCArMjgyLDYgQEAgc3RhdGljIHZvaWQgbm9pbmxpbmUgX19rcHJvYmVzIGJv Z3VzXzMyYml0X2ZhdWx0X3RwYyhzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAlzaG93X3JlZ3MocmVn cyk7CiB9CiAKLXN0YXRpYyB2b2lkIG5vaW5saW5lIF9fa3Byb2JlcyBib2d1c18zMmJpdF9mYXVs dF9hZGRyZXNzKHN0cnVjdCBwdF9yZWdzICpyZWdzLAotCQkJCQkJCSB1bnNpZ25lZCBsb25nIGFk ZHIpCi17Ci0Jc3RhdGljIGludCB0aW1lczsKLQotCWlmICh0aW1lcysrIDwgMTApCi0JCXByaW50 ayhLRVJOX0VSUiAiRkFVTFRbJXM6JWRdOiAzMi1iaXQgcHJvY2VzcyAiCi0JCSAgICAgICAicmVw b3J0cyA2NC1iaXQgZmF1bHQgYWRkcmVzcyBbJWx4XVxuIiwKLQkJICAgICAgIGN1cnJlbnQtPmNv bW0sIGN1cnJlbnQtPnBpZCwgYWRkcik7Ci0Jc2hvd19yZWdzKHJlZ3MpOwotfQotCiBhc21saW5r YWdlIHZvaWQgX19rcHJvYmVzIGRvX3NwYXJjNjRfZmF1bHQoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp CiB7CiAJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSBjdXJyZW50LT5tbTsKQEAgLTI5OSwxMCArMzA5 LDggQEAgYXNtbGlua2FnZSB2b2lkIF9fa3Byb2JlcyBkb19zcGFyYzY0X2ZhdWx0KHN0cnVjdCBw dF9yZWdzICpyZWdzKQogCQkJCWdvdG8gaW50cl9vcl9ub19tbTsKIAkJCX0KIAkJfQotCQlpZiAo dW5saWtlbHkoKGFkZHJlc3MgPj4gMzIpICE9IDApKSB7Ci0JCQlib2d1c18zMmJpdF9mYXVsdF9h ZGRyZXNzKHJlZ3MsIGFkZHJlc3MpOworCQlpZiAodW5saWtlbHkoKGFkZHJlc3MgPj4gMzIpICE9 IDApKQogCQkJZ290byBpbnRyX29yX25vX21tOwotCQl9CiAJfQogCiAJaWYgKHJlZ3MtPnRzdGF0 ZSAmIFRTVEFURV9QUklWKSB7CkBAIC00OTIsNyArNTAwLDcgQEAgZG9fc2lnYnVzOgogCSAqIFNl bmQgYSBzaWdidXMsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB3ZSB3ZXJlIGluIGtlcm5lbAogCSAq IG9yIHVzZXIgbW9kZS4KIAkgKi8KLQlkb19mYXVsdF9zaWdpbmZvKEJVU19BRFJFUlIsIFNJR0JV UywgcmVncywgaW5zbiwgZmF1bHRfY29kZSk7CisJZG9fZmF1bHRfc2lnaW5mbyhCVVNfQURSRVJS LCBTSUdCVVMsIHJlZ3MsIGFkZHJlc3MsIGluc24sIGZhdWx0X2NvZGUpOwogCiAJLyogS2VybmVs IG1vZGU/IEhhbmRsZSBleGNlcHRpb25zIG9yIGRpZSAqLwogCWlmIChyZWdzLT50c3RhdGUgJiBU U1RBVEVfUFJJVikKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvbW0vaW5pdF82NC5jIGIvYXJjaC9z cGFyYy9tbS9pbml0XzY0LmMKaW5kZXggYjQ5ODlmOS4uZDJjNTczNyAxMDA2NDQKLS0tIGEvYXJj aC9zcGFyYy9tbS9pbml0XzY0LmMKKysrIGIvYXJjaC9zcGFyYy9tbS9pbml0XzY0LmMKQEAgLTMw OSw2ICszMDksMTAgQEAgdm9pZCB1cGRhdGVfbW11X2NhY2hlKHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHB0ZV90ICoKIAl0c2JfaW5kZXggPSBNTV9U U0JfQkFTRTsKIAl0c2JfaGFzaF9zaGlmdCA9IFBBR0VfU0hJRlQ7CiAKKwkvKiBEb24ndCBpbnNl cnQgYSBub24tdmFsaWQgUFRFIGludG8gdGhlIFRTQiwgd2UnbGwgZGVhZGxvY2suICAqLworCWlm ICghKHB0ZV92YWwocHRlKSAmIF9QQUdFX1ZBTElEKSkKKwkJcmV0dXJuOworCiAJc3Bpbl9sb2Nr X2lycXNhdmUoJm1tLT5jb250ZXh0LmxvY2ssIGZsYWdzKTsKIAogI2lmZGVmIENPTkZJR19IVUdF VExCX1BBR0UKQEAgLTI0MzYsMyArMjQ0MCwyNiBAQCB2b2lkIF9fZmx1c2hfdGxiX2FsbCh2b2lk KQogCV9fYXNtX18gX192b2xhdGlsZV9fKCJ3cnByCSUwLCAwLCAlJXBzdGF0ZSIKIAkJCSAgICAg OiA6ICJyIiAocHN0YXRlKSk7CiB9CisKKyNpZmRlZiBDT05GSUdfU01QCisjZGVmaW5lIGRvX2Zs dXNoX3RsYl9rZXJuZWxfcmFuZ2UJc21wX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UKKyNlbHNlCisj ZGVmaW5lIGRvX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UJX19mbHVzaF90bGJfa2VybmVsX3Jhbmdl CisjZW5kaWYKKwordm9pZCBmbHVzaF90bGJfa2VybmVsX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3Rh cnQsIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCWlmIChzdGFydCA8IEhJX09CUF9BRERSRVNTICYm IGVuZCA+IExPV19PQlBfQUREUkVTUykgeworCQlpZiAoc3RhcnQgPCBMT1dfT0JQX0FERFJFU1Mp IHsKKwkJCWZsdXNoX3RzYl9rZXJuZWxfcmFuZ2Uoc3RhcnQsIExPV19PQlBfQUREUkVTUyk7CisJ CQlkb19mbHVzaF90bGJfa2VybmVsX3JhbmdlKHN0YXJ0LCBMT1dfT0JQX0FERFJFU1MpOworCQl9 CisJCWlmIChlbmQgPiBISV9PQlBfQUREUkVTUykgeworCQkJZmx1c2hfdHNiX2tlcm5lbF9yYW5n ZShlbmQsIEhJX09CUF9BRERSRVNTKTsKKwkJCWRvX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UoZW5k LCBISV9PQlBfQUREUkVTUyk7CisJCX0KKwl9IGVsc2UgeworCQlmbHVzaF90c2Jfa2VybmVsX3Jh bmdlKHN0YXJ0LCBlbmQpOworCQlkb19mbHVzaF90bGJfa2VybmVsX3JhbmdlKHN0YXJ0LCBlbmQp OworCX0KK30KZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvbW0vdHNiLmMgYi9hcmNoL3NwYXJjL21t L3RzYi5jCmluZGV4IDNlYmNhYzcuLjZkZGY2MGIgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMvbW0v dHNiLmMKKysrIGIvYXJjaC9zcGFyYy9tbS90c2IuYwpAQCAtMTUxLDcgKzE1MSwxOSBAQCBzdGF0 aWMgdm9pZCBzZXR1cF90c2JfcGFyYW1zKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBs b25nIHRzYl9pZHgsIHVuc2lnbgogCW1tLT5jb250ZXh0LnRzYl9ibG9ja1t0c2JfaWR4XS50c2Jf bmVudHJpZXMgPQogCQl0c2JfYnl0ZXMgLyBzaXplb2Yoc3RydWN0IHRzYik7CiAKLQliYXNlID0g VFNCTUFQX0JBU0U7CisJc3dpdGNoICh0c2JfaWR4KSB7CisJY2FzZSBNTV9UU0JfQkFTRToKKwkJ YmFzZSA9IFRTQk1BUF84S19CQVNFOworCQlicmVhazsKKyNpZiBkZWZpbmVkKENPTkZJR19IVUdF VExCX1BBR0UpIHx8IGRlZmluZWQoQ09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFKQorCWNhc2Ug TU1fVFNCX0hVR0U6CisJCWJhc2UgPSBUU0JNQVBfNE1fQkFTRTsKKwkJYnJlYWs7CisjZW5kaWYK KwlkZWZhdWx0OgorCQlCVUcoKTsKKwl9CisKIAl0dGUgPSBwZ3Byb3RfdmFsKFBBR0VfS0VSTkVM X0xPQ0tFRCk7CiAJdHNiX3BhZGRyID0gX19wYShtbS0+Y29udGV4dC50c2JfYmxvY2tbdHNiX2lk eF0udHNiKTsKIAlCVUdfT04odHNiX3BhZGRyICYgKHRzYl9ieXRlcyAtIDFVTCkpOwpkaWZmIC0t Z2l0IGEvYXJjaC94ODYvS2NvbmZpZyBiL2FyY2gveDg2L0tjb25maWcKaW5kZXggOTAxNDQ3ZS4u MjhhMWJjYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvS2NvbmZpZworKysgYi9hcmNoL3g4Ni9LY29u ZmlnCkBAIC04OTYsMTAgKzg5NiwyNyBAQCBjb25maWcgVk04NgogCWRlZmF1bHQgeQogCWRlcGVu ZHMgb24gWDg2XzMyCiAJLS0taGVscC0tLQotCSAgVGhpcyBvcHRpb24gaXMgcmVxdWlyZWQgYnkg cHJvZ3JhbXMgbGlrZSBET1NFTVUgdG8gcnVuIDE2LWJpdCBsZWdhY3kKLQkgIGNvZGUgb24gWDg2 IHByb2Nlc3NvcnMuIEl0IGFsc28gbWF5IGJlIG5lZWRlZCBieSBzb2Z0d2FyZSBsaWtlCi0JICBY RnJlZTg2IHRvIGluaXRpYWxpemUgc29tZSB2aWRlbyBjYXJkcyB2aWEgQklPUy4gRGlzYWJsaW5n IHRoaXMKLQkgIG9wdGlvbiBzYXZlcyBhYm91dCA2ay4KKwkgIFRoaXMgb3B0aW9uIGlzIHJlcXVp cmVkIGJ5IHByb2dyYW1zIGxpa2UgRE9TRU1VIHRvIHJ1bgorCSAgMTYtYml0IHJlYWwgbW9kZSBs ZWdhY3kgY29kZSBvbiB4ODYgcHJvY2Vzc29ycy4gSXQgYWxzbyBtYXkKKwkgIGJlIG5lZWRlZCBi eSBzb2Z0d2FyZSBsaWtlIFhGcmVlODYgdG8gaW5pdGlhbGl6ZSBzb21lIHZpZGVvCisJICBjYXJk cyB2aWEgQklPUy4gRGlzYWJsaW5nIHRoaXMgb3B0aW9uIHNhdmVzIGFib3V0IDZLLgorCitjb25m aWcgWDg2XzE2QklUCisJYm9vbCAiRW5hYmxlIHN1cHBvcnQgZm9yIDE2LWJpdCBzZWdtZW50cyIg aWYgRVhQRVJUCisJZGVmYXVsdCB5CisJLS0taGVscC0tLQorCSAgVGhpcyBvcHRpb24gaXMgcmVx dWlyZWQgYnkgcHJvZ3JhbXMgbGlrZSBXaW5lIHRvIHJ1biAxNi1iaXQKKwkgIHByb3RlY3RlZCBt b2RlIGxlZ2FjeSBjb2RlIG9uIHg4NiBwcm9jZXNzb3JzLiAgRGlzYWJsaW5nCisJICB0aGlzIG9w dGlvbiBzYXZlcyBhYm91dCAzMDAgYnl0ZXMgb24gaTM4Niwgb3IgYXJvdW5kIDZLIHRleHQKKwkg IHBsdXMgMTZLIHJ1bnRpbWUgbWVtb3J5IG9uIHg4Ni02NCwKKworY29uZmlnIFg4Nl9FU1BGSVgz MgorCWRlZl9ib29sIHkKKwlkZXBlbmRzIG9uIFg4Nl8xNkJJVCAmJiBYODZfMzIKKworY29uZmln IFg4Nl9FU1BGSVg2NAorCWRlZl9ib29sIHkKKwlkZXBlbmRzIG9uIFg4Nl8xNkJJVCAmJiBYODZf NjQKIAogY29uZmlnIFRPU0hJQkEKIAl0cmlzdGF0ZSAiVG9zaGliYSBMYXB0b3Agc3VwcG9ydCIK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2VzcGZpeC5oIGIvYXJjaC94ODYvaW5j bHVkZS9hc20vZXNwZml4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTll ZmViYgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2VzcGZpeC5oCkBA IC0wLDAgKzEsMTYgQEAKKyNpZm5kZWYgX0FTTV9YODZfRVNQRklYX0gKKyNkZWZpbmUgX0FTTV9Y ODZfRVNQRklYX0gKKworI2lmZGVmIENPTkZJR19YODZfNjQKKworI2luY2x1ZGUgPGFzbS9wZXJj cHUuaD4KKworREVDTEFSRV9QRVJfQ1BVX1JFQURfTU9TVExZKHVuc2lnbmVkIGxvbmcsIGVzcGZp eF9zdGFjayk7CitERUNMQVJFX1BFUl9DUFVfUkVBRF9NT1NUTFkodW5zaWduZWQgbG9uZywgZXNw Zml4X3dhZGRyKTsKKworZXh0ZXJuIHZvaWQgaW5pdF9lc3BmaXhfYnNwKHZvaWQpOworZXh0ZXJu IHZvaWQgaW5pdF9lc3BmaXhfYXAodm9pZCk7CisKKyNlbmRpZiAvKiBDT05GSUdfWDg2XzY0ICov CisKKyNlbmRpZiAvKiBfQVNNX1g4Nl9FU1BGSVhfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv aW5jbHVkZS9hc20vaXJxZmxhZ3MuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lycWZsYWdzLmgK aW5kZXggYmJhM2NmOC4uMGE4YjUxOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20v aXJxZmxhZ3MuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pcnFmbGFncy5oCkBAIC0xMjks NyArMTI5LDcgQEAgc3RhdGljIGlubGluZSBub3RyYWNlIHVuc2lnbmVkIGxvbmcgYXJjaF9sb2Nh bF9pcnFfc2F2ZSh2b2lkKQogCiAjZGVmaW5lIFBBUkFWSVJUX0FESlVTVF9FWENFUFRJT05fRlJB TUUJLyogICovCiAKLSNkZWZpbmUgSU5URVJSVVBUX1JFVFVSTglpcmV0cQorI2RlZmluZSBJTlRF UlJVUFRfUkVUVVJOCWptcCBuYXRpdmVfaXJldAogI2RlZmluZSBVU0VSR1NfU1lTUkVUNjQJCQkJ XAogCXN3YXBnczsJCQkJCVwKIAlzeXNyZXRxOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVk ZS9hc20vcGd0YWJsZV82NF90eXBlcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcGd0YWJsZV82 NF90eXBlcy5oCmluZGV4IDc2NmVhMTYuLjUxODE3ZmEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2lu Y2x1ZGUvYXNtL3BndGFibGVfNjRfdHlwZXMuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w Z3RhYmxlXzY0X3R5cGVzLmgKQEAgLTU5LDUgKzU5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeyBwdGV2 YWxfdCBwdGU7IH0gcHRlX3Q7CiAjZGVmaW5lIE1PRFVMRVNfVkFERFIgICAgX0FDKDB4ZmZmZmZm ZmZhMDAwMDAwMCwgVUwpCiAjZGVmaW5lIE1PRFVMRVNfRU5EICAgICAgX0FDKDB4ZmZmZmZmZmZm ZjAwMDAwMCwgVUwpCiAjZGVmaW5lIE1PRFVMRVNfTEVOICAgKE1PRFVMRVNfRU5EIC0gTU9EVUxF U19WQUREUikKKyNkZWZpbmUgRVNQRklYX1BHRF9FTlRSWSBfQUMoLTIsIFVMKQorI2RlZmluZSBF U1BGSVhfQkFTRV9BRERSIChFU1BGSVhfUEdEX0VOVFJZIDw8IFBHRElSX1NISUZUKQogCiAjZW5k aWYgLyogX0FTTV9YODZfUEdUQUJMRV82NF9ERUZTX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3NldHVwLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zZXR1cC5oCmluZGV4 IDk3NTY1NTEuLjhhODczMzYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NldHVw LmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc2V0dXAuaApAQCAtNjEsNiArNjEsOCBAQCBz dGF0aWMgaW5saW5lIHZvaWQgeDg2X2NlNDEwMF9lYXJseV9zZXR1cCh2b2lkKSB7IH0KIAogI2lm bmRlZiBfU0VUVVAKIAorI2luY2x1ZGUgPGFzbS9lc3BmaXguaD4KKwogLyoKICAqIFRoaXMgaXMg c2V0IHVwIGJ5IHRoZSBzZXR1cC1yb3V0aW5lIGF0IGJvb3QtdGltZQogICovCmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUKaW5k ZXggOGJhY2EzYy4uOTZlZmEzZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL01ha2VmaWxl CisrKyBiL2FyY2gveDg2L2tlcm5lbC9NYWtlZmlsZQpAQCAtMjcsNiArMjcsNyBAQCBvYmotJChD T05GSUdfWDg2XzMyKQkrPSBzeXNfaTM4Nl8zMi5vIGkzODZfa3N5bXNfMzIubwogb2JqLSQoQ09O RklHX1g4Nl82NCkJKz0gc3lzX3g4Nl82NC5vIHg4NjY0X2tzeW1zXzY0Lm8KIG9iai0kKENPTkZJ R19YODZfNjQpCSs9IHN5c2NhbGxfNjQubyB2c3lzY2FsbF82NC5vCiBvYmotJChDT05GSUdfWDg2 XzY0KQkrPSB2c3lzY2FsbF9lbXVfNjQubworb2JqLSQoQ09ORklHX1g4Nl9FU1BGSVg2NCkJKz0g ZXNwZml4XzY0Lm8KIG9iai15CQkJKz0gYm9vdGZsYWcubyBlODIwLm8KIG9iai15CQkJKz0gcGNp LWRtYS5vIHF1aXJrcy5vIHRvcG9sb2d5Lm8ga2RlYnVnZnMubwogb2JqLXkJCQkrPSBhbHRlcm5h dGl2ZS5vIGk4MjUzLm8gcGNpLW5vbW11Lm8gaHdfYnJlYWtwb2ludC5vCmRpZmYgLS1naXQgYS9h cmNoL3g4Ni9rZXJuZWwvZW50cnlfMzIuUyBiL2FyY2gveDg2L2tlcm5lbC9lbnRyeV8zMi5TCmlu ZGV4IGRkNTIzNTUuLjBmYTRmODkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9lbnRyeV8z Mi5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC9lbnRyeV8zMi5TCkBAIC01MjcsNiArNTI3LDcgQEAg c3lzY2FsbF9leGl0OgogcmVzdG9yZV9hbGw6CiAJVFJBQ0VfSVJRU19JUkVUCiByZXN0b3JlX2Fs bF9ub3RyYWNlOgorI2lmZGVmIENPTkZJR19YODZfRVNQRklYMzIKIAltb3ZsIFBUX0VGTEFHUygl ZXNwKSwgJWVheAkjIG1peCBFRkxBR1MsIFNTIGFuZCBDUwogCSMgV2FybmluZzogUFRfT0xEU1Mo JWVzcCkgY29udGFpbnMgdGhlIHdyb25nL3JhbmRvbSB2YWx1ZXMgaWYgd2UKIAkjIGFyZSByZXR1 cm5pbmcgdG8gdGhlIGtlcm5lbC4KQEAgLTUzNyw2ICs1MzgsNyBAQCByZXN0b3JlX2FsbF9ub3Ry YWNlOgogCWNtcGwgJCgoU0VHTUVOVF9MRFQgPDwgOCkgfCBVU0VSX1JQTCksICVlYXgKIAlDRklf UkVNRU1CRVJfU1RBVEUKIAlqZSBsZHRfc3MJCQkjIHJldHVybmluZyB0byB1c2VyLXNwYWNlIHdp dGggTERUIFNTCisjZW5kaWYKIHJlc3RvcmVfbm9jaGVjazoKIAlSRVNUT1JFX1JFR1MgNAkJCSMg c2tpcCBvcmlnX2VheC9lcnJvcl9jb2RlCiBpcnFfcmV0dXJuOgpAQCAtNTUyLDYgKzU1NCw3IEBA IEVOVFJZKGlyZXRfZXhjKQogCS5sb25nIGlycV9yZXR1cm4saXJldF9leGMKIC5wcmV2aW91cwog CisjaWZkZWYgQ09ORklHX1g4Nl9FU1BGSVgzMgogCUNGSV9SRVNUT1JFX1NUQVRFCiBsZHRfc3M6 CiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUCkBAIC01OTUsNiArNTk4LDcgQEAgbGR0X3NzOgogCWxz cyAoJWVzcCksICVlc3AJCS8qIHN3aXRjaCB0byBlc3BmaXggc2VnbWVudCAqLwogCUNGSV9BREpV U1RfQ0ZBX09GRlNFVCAtOAogCWptcCByZXN0b3JlX25vY2hlY2sKKyNlbmRpZgogCUNGSV9FTkRQ Uk9DCiBFTkRQUk9DKHN5c3RlbV9jYWxsKQogCkBAIC03NjYsNiArNzcwLDcgQEAgRU5EUFJPQyhw dHJlZ3NfY2xvbmUpCiAgKiB0aGUgaGlnaCB3b3JkIG9mIHRoZSBzZWdtZW50IGJhc2UgZnJvbSB0 aGUgR0RUIGFuZCBzd2ljaGVzIHRvIHRoZQogICogbm9ybWFsIHN0YWNrIGFuZCBhZGp1c3RzIEVT UCB3aXRoIHRoZSBtYXRjaGluZyBvZmZzZXQuCiAgKi8KKyNpZmRlZiBDT05GSUdfWDg2X0VTUEZJ WDMyCiAJLyogZml4dXAgdGhlIHN0YWNrICovCiAJbW92IEdEVF9FU1BGSVhfU1MgKyA0LCAlYWwg LyogYml0cyAxNi4uMjMgKi8KIAltb3YgR0RUX0VTUEZJWF9TUyArIDcsICVhaCAvKiBiaXRzIDI0 Li4zMSAqLwpAQCAtNzc1LDggKzc4MCwxMCBAQCBFTkRQUk9DKHB0cmVnc19jbG9uZSkKIAlwdXNo bF9jZmkgJWVheAogCWxzcyAoJWVzcCksICVlc3AJCS8qIHN3aXRjaCB0byB0aGUgbm9ybWFsIHN0 YWNrIHNlZ21lbnQgKi8KIAlDRklfQURKVVNUX0NGQV9PRkZTRVQgLTgKKyNlbmRpZgogLmVuZG0K IC5tYWNybyBVTldJTkRfRVNQRklYX1NUQUNLCisjaWZkZWYgQ09ORklHX1g4Nl9FU1BGSVgzMgog CW1vdmwgJXNzLCAlZWF4CiAJLyogc2VlIGlmIG9uIGVzcGZpeCBzdGFjayAqLwogCWNtcHcgJF9f RVNQRklYX1NTLCAlYXgKQEAgLTc4Nyw2ICs3OTQsNyBAQCBFTkRQUk9DKHB0cmVnc19jbG9uZSkK IAkvKiBzd2l0Y2ggdG8gbm9ybWFsIHN0YWNrICovCiAJRklYVVBfRVNQRklYX1NUQUNLCiAyNzoK KyNlbmRpZgogLmVuZG0KIAogLyoKQEAgLTEzMjMsMTEgKzEzMzEsMTMgQEAgRU5EKGRlYnVnKQog ICovCiBFTlRSWShubWkpCiAJUklORzBfSU5UX0ZSQU1FCisjaWZkZWYgQ09ORklHX1g4Nl9FU1BG SVgzMgogCXB1c2hsX2NmaSAlZWF4CiAJbW92bCAlc3MsICVlYXgKIAljbXB3ICRfX0VTUEZJWF9T UywgJWF4CiAJcG9wbF9jZmkgJWVheAogCWplIG5taV9lc3BmaXhfc3RhY2sKKyNlbmRpZgogCWNt cGwgJGlhMzJfc3lzZW50ZXJfdGFyZ2V0LCglZXNwKQogCWplIG5taV9zdGFja19maXh1cAogCXB1 c2hsX2NmaSAlZWF4CkBAIC0xMzY3LDYgKzEzNzcsNyBAQCBubWlfZGVidWdfc3RhY2tfY2hlY2s6 CiAJRklYX1NUQUNLIDI0LCBubWlfc3RhY2tfY29ycmVjdCwgMQogCWptcCBubWlfc3RhY2tfY29y cmVjdAogCisjaWZkZWYgQ09ORklHX1g4Nl9FU1BGSVgzMgogbm1pX2VzcGZpeF9zdGFjazoKIAkv KiBXZSBoYXZlIGEgUklORzBfSU5UX0ZSQU1FIGhlcmUuCiAJICoKQEAgLTEzODgsNiArMTM5OSw3 IEBAIG5taV9lc3BmaXhfc3RhY2s6CiAJbHNzIDEyKzQoJWVzcCksICVlc3AJCSMgYmFjayB0byBl c3BmaXggc3RhY2sKIAlDRklfQURKVVNUX0NGQV9PRkZTRVQgLTI0CiAJam1wIGlycV9yZXR1cm4K KyNlbmRpZgogCUNGSV9FTkRQUk9DCiBFTkQobm1pKQogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9r ZXJuZWwvZW50cnlfNjQuUyBiL2FyY2gveDg2L2tlcm5lbC9lbnRyeV82NC5TCmluZGV4IDYyNzRm NWYuLjRiNTExZWYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9lbnRyeV82NC5TCisrKyBi L2FyY2gveDg2L2tlcm5lbC9lbnRyeV82NC5TCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSA8 YXNtL3BhcmF2aXJ0Lmg+CiAjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgogI2luY2x1ZGUgPGFzbS9w ZXJjcHUuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZV90eXBlcy5oPgogCiAvKiBBdm9pZCBfX0FT U0VNQkxFUl9fJ2lmeWluZyA8bGludXgvYXVkaXQuaD4ganVzdCBmb3IgdGhpcy4gICovCiAjaW5j bHVkZSA8bGludXgvZWxmLWVtLmg+CkBAIC04NjIsMTcgKzg2Myw0NyBAQCByZXN0b3JlX2FyZ3M6 CiBpcnFfcmV0dXJuOgogCUlOVEVSUlVQVF9SRVRVUk4KIAotCS5zZWN0aW9uIF9fZXhfdGFibGUs ICJhIgotCS5xdWFkIGlycV9yZXR1cm4sIGJhZF9pcmV0Ci0JLnByZXZpb3VzCi0KLSNpZmRlZiBD T05GSUdfUEFSQVZJUlQKIEVOVFJZKG5hdGl2ZV9pcmV0KQorCS8qCisJICogQXJlIHdlIHJldHVy bmluZyB0byBhIHN0YWNrIHNlZ21lbnQgZnJvbSB0aGUgTERUPyAgTm90ZTogaW4KKwkgKiA2NC1i aXQgbW9kZSBTUzpSU1Agb24gdGhlIGV4Y2VwdGlvbiBzdGFjayBpcyBhbHdheXMgdmFsaWQuCisJ ICovCisjaWZkZWYgQ09ORklHX1g4Nl9FU1BGSVg2NAorCXRlc3RiICQ0LChTUy1SSVApKCVyc3Ap CisJam56IG5hdGl2ZV9pcnFfcmV0dXJuX2xkdAorI2VuZGlmCisKK25hdGl2ZV9pcnFfcmV0dXJu X2lyZXQ6CiAJaXJldHEKIAogCS5zZWN0aW9uIF9fZXhfdGFibGUsImEiCi0JLnF1YWQgbmF0aXZl X2lyZXQsIGJhZF9pcmV0CisJLnF1YWQgbmF0aXZlX2lycV9yZXR1cm5faXJldCwgYmFkX2lyZXQK IAkucHJldmlvdXMKKworI2lmZGVmIENPTkZJR19YODZfRVNQRklYNjQKK25hdGl2ZV9pcnFfcmV0 dXJuX2xkdDoKKwlwdXNocV9jZmkgJXJheAorCXB1c2hxX2NmaSAlcmRpCisJU1dBUEdTCisJbW92 cSBQRVJfQ1BVX1ZBUihlc3BmaXhfd2FkZHIpLCVyZGkKKwltb3ZxICVyYXgsKDAqOCkoJXJkaSkJ LyogUkFYICovCisJbW92cSAoMio4KSglcnNwKSwlcmF4CS8qIFJJUCAqLworCW1vdnEgJXJheCwo MSo4KSglcmRpKQorCW1vdnEgKDMqOCkoJXJzcCksJXJheAkvKiBDUyAqLworCW1vdnEgJXJheCwo Mio4KSglcmRpKQorCW1vdnEgKDQqOCkoJXJzcCksJXJheAkvKiBSRkxBR1MgKi8KKwltb3ZxICVy YXgsKDMqOCkoJXJkaSkKKwltb3ZxICg2KjgpKCVyc3ApLCVyYXgJLyogU1MgKi8KKwltb3ZxICVy YXgsKDUqOCkoJXJkaSkKKwltb3ZxICg1KjgpKCVyc3ApLCVyYXgJLyogUlNQICovCisJbW92cSAl cmF4LCg0KjgpKCVyZGkpCisJYW5kbCAkMHhmZmZmMDAwMCwlZWF4CisJcG9wcV9jZmkgJXJkaQor CW9ycSBQRVJfQ1BVX1ZBUihlc3BmaXhfc3RhY2spLCVyYXgKKwlTV0FQR1MKKwltb3ZxICVyYXgs JXJzcAorCXBvcHFfY2ZpICVyYXgKKwlqbXAgbmF0aXZlX2lycV9yZXR1cm5faXJldAogI2VuZGlm CiAKIAkuc2VjdGlvbiAuZml4dXAsImF4IgpAQCAtOTM4LDkgKzk2OSw0MCBAQCBFTlRSWShyZXRp bnRfa2VybmVsKQogCWNhbGwgcHJlZW1wdF9zY2hlZHVsZV9pcnEKIAlqbXAgZXhpdF9pbnRyCiAj ZW5kaWYKLQogCUNGSV9FTkRQUk9DCiBFTkQoY29tbW9uX2ludGVycnVwdCkKKworCS8qCisJICog SWYgSVJFVCB0YWtlcyBhIGZhdWx0IG9uIHRoZSBlc3BmaXggc3RhY2ssIHRoZW4gd2UKKwkgKiBl bmQgdXAgcHJvbW90aW5nIGl0IHRvIGEgZG91YmxlZmF1bHQuICBJbiB0aGF0IGNhc2UsCisJICog bW9kaWZ5IHRoZSBzdGFjayB0byBtYWtlIGl0IGxvb2sgbGlrZSB3ZSBqdXN0IGVudGVyZWQKKwkg KiB0aGUgI0dQIGhhbmRsZXIgZnJvbSB1c2VyIHNwYWNlLCBzaW1pbGFyIHRvIGJhZF9pcmV0Lgor CSAqLworI2lmZGVmIENPTkZJR19YODZfRVNQRklYNjQKKwlBTElHTgorX19kb19kb3VibGVfZmF1 bHQ6CisJWENQVF9GUkFNRSAxIFJESSs4CisJbW92cSBSU1AoJXJkaSksJXJheAkJLyogVHJhcCBv biB0aGUgZXNwZml4IHN0YWNrPyAqLworCXNhcnEgJFBHRElSX1NISUZULCVyYXgKKwljbXBsICRF U1BGSVhfUEdEX0VOVFJZLCVlYXgKKwlqbmUgZG9fZG91YmxlX2ZhdWx0CQkvKiBObywganVzdCBk ZWxpdmVyIHRoZSBmYXVsdCAqLworCWNtcGwgJF9fS0VSTkVMX0NTLENTKCVyZGkpCisJam5lIGRv X2RvdWJsZV9mYXVsdAorCW1vdnEgUklQKCVyZGkpLCVyYXgKKwljbXBxICRuYXRpdmVfaXJxX3Jl dHVybl9pcmV0LCVyYXgKKwlqbmUgZG9fZG91YmxlX2ZhdWx0CQkvKiBUaGlzIHNob3VsZG4ndCBo YXBwZW4uLi4gKi8KKwltb3ZxIFBFUl9DUFVfVkFSKGtlcm5lbF9zdGFjayksJXJheAorCXN1YnEg JCg2KjgtS0VSTkVMX1NUQUNLX09GRlNFVCksJXJheAkvKiBSZXNldCB0byBvcmlnaW5hbCBzdGFj ayAqLworCW1vdnEgJXJheCxSU1AoJXJkaSkKKwltb3ZxICQwLCglcmF4KQkJCS8qIE1pc3Npbmcg KGxvc3QpICNHUCBlcnJvciBjb2RlICovCisJbW92cSAkZ2VuZXJhbF9wcm90ZWN0aW9uLFJJUCgl cmRpKQorCXJldHEKKwlDRklfRU5EUFJPQworRU5EKF9fZG9fZG91YmxlX2ZhdWx0KQorI2Vsc2UK KyMgZGVmaW5lIF9fZG9fZG91YmxlX2ZhdWx0IGRvX2RvdWJsZV9mYXVsdAorI2VuZGlmCisKIC8q CiAgKiBFbmQgb2Yga3Byb2JlcyBzZWN0aW9uCiAgKi8KQEAgLTExMDcsNyArMTE2OSw3IEBAIHpl cm9lbnRyeSBvdmVyZmxvdyBkb19vdmVyZmxvdwogemVyb2VudHJ5IGJvdW5kcyBkb19ib3VuZHMK IHplcm9lbnRyeSBpbnZhbGlkX29wIGRvX2ludmFsaWRfb3AKIHplcm9lbnRyeSBkZXZpY2Vfbm90 X2F2YWlsYWJsZSBkb19kZXZpY2Vfbm90X2F2YWlsYWJsZQotcGFyYW5vaWRlcnJvcmVudHJ5IGRv dWJsZV9mYXVsdCBkb19kb3VibGVfZmF1bHQKK3BhcmFub2lkZXJyb3JlbnRyeSBkb3VibGVfZmF1 bHQgX19kb19kb3VibGVfZmF1bHQKIHplcm9lbnRyeSBjb3Byb2Nlc3Nvcl9zZWdtZW50X292ZXJy dW4gZG9fY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuCiBlcnJvcmVudHJ5IGludmFsaWRfVFNT IGRvX2ludmFsaWRfVFNTCiBlcnJvcmVudHJ5IHNlZ21lbnRfbm90X3ByZXNlbnQgZG9fc2VnbWVu dF9ub3RfcHJlc2VudApAQCAtMTQzOCw3ICsxNTAwLDcgQEAgZXJyb3Jfc3RpOgogICovCiBlcnJv cl9rZXJuZWxzcGFjZToKIAlpbmNsICVlYngKLQlsZWFxIGlycV9yZXR1cm4oJXJpcCksJXJjeAor CWxlYXEgbmF0aXZlX2lycV9yZXR1cm5faXJldCglcmlwKSwlcmN4CiAJY21wcSAlcmN4LFJJUCs4 KCVyc3ApCiAJamUgZXJyb3Jfc3dhcGdzCiAJbW92bCAlZWN4LCVlYXgJLyogemVybyBleHRlbmQg Ki8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9lc3BmaXhfNjQuYyBiL2FyY2gveDg2L2tl cm5lbC9lc3BmaXhfNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGQ4 NTdmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2VzcGZpeF82NC5jCkBAIC0w LDAgKzEsMjA4IEBACisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqCisgKgorICogICBDb3B5cmlnaHQgMjAx NCBJbnRlbCBDb3Jwb3JhdGlvbjsgYXV0aG9yOiBILiBQZXRlciBBbnZpbgorICoKKyAqICAgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkgaXQKKyAqICAgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAqICAgdmVyc2lvbiAyLCBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiAgIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQK KyAqICAgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg TUVSQ0hBTlRBQklMSVRZIG9yCisgKiAgIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKKyAqICAgbW9yZSBkZXRh aWxzLgorICoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qCisgKiBUaGUgSVJFVCBpbnN0cnVj dGlvbiwgd2hlbiByZXR1cm5pbmcgdG8gYSAxNi1iaXQgc2VnbWVudCwgb25seQorICogcmVzdG9y ZXMgdGhlIGJvdHRvbSAxNiBiaXRzIG9mIHRoZSB1c2VyIHNwYWNlIHN0YWNrIHBvaW50ZXIuICBU aGlzCisgKiBjYXVzZXMgc29tZSAxNi1iaXQgc29mdHdhcmUgdG8gYnJlYWssIGJ1dCBpdCBhbHNv IGxlYWtzIGtlcm5lbCBzdGF0ZQorICogdG8gdXNlciBzcGFjZS4KKyAqCisgKiBUaGlzIHdvcmtz IGFyb3VuZCB0aGlzIGJ5IGNyZWF0aW5nIHBlcmNwdSAibWluaXN0YWNrcyIsIGVhY2ggb2Ygd2hp Y2gKKyAqIGlzIG1hcHBlZCAyXjE2IHRpbWVzIDY0SyBhcGFydC4gIFdoZW4gd2UgZGV0ZWN0IHRo YXQgdGhlIHJldHVybiBTUyBpcworICogb24gdGhlIExEVCwgd2UgY29weSB0aGUgSVJFVCBmcmFt ZSB0byB0aGUgbWluaXN0YWNrIGFuZCB1c2UgdGhlCisgKiByZWxldmFudCBhbGlhcyB0byByZXR1 cm4gdG8gdXNlcnNwYWNlLiAgVGhlIG1pbmlzdGFja3MgYXJlIG1hcHBlZAorICogcmVhZG9ubHks IHNvIGlmIHRoZSBJUkVUIGZhdWx0IHdlIHByb21vdGUgI0dQIHRvICNERiB3aGljaCBpcyBhbiBJ U1QKKyAqIHZlY3RvciBhbmQgdGh1cyBoYXMgaXRzIG93biBzdGFjazsgd2UgdGhlbiBkbyB0aGUg Zml4dXAgaW4gdGhlICNERgorICogaGFuZGxlci4KKyAqCisgKiBUaGlzIGZpbGUgc2V0cyB1cCB0 aGUgbWluaXN0YWNrcyBhbmQgdGhlIHJlbGF0ZWQgcGFnZSB0YWJsZXMuICBUaGUKKyAqIGFjdHVh bCBtaW5pc3RhY2sgaW52b2NhdGlvbiBpcyBpbiBlbnRyeV82NC5TLgorICovCisKKyNpbmNsdWRl IDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaW5pdF90YXNrLmg+CisjaW5jbHVkZSA8 bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGlu dXgvZ2ZwLmg+CisjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+CisjaW5jbHVkZSA8YXNtL3BndGFi bGUuaD4KKyNpbmNsdWRlIDxhc20vcGdhbGxvYy5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgor I2luY2x1ZGUgPGFzbS9lc3BmaXguaD4KKworLyoKKyAqIE5vdGU6IHdlIG9ubHkgbmVlZCA2Kjgg PSA0OCBieXRlcyBmb3IgdGhlIGVzcGZpeCBzdGFjaywgYnV0IHJvdW5kCisgKiBpdCB1cCB0byBh IGNhY2hlIGxpbmUgdG8gYXZvaWQgdW5uZWNlc3Nhcnkgc2hhcmluZy4KKyAqLworI2RlZmluZSBF U1BGSVhfU1RBQ0tfU0laRQkoOCo4VUwpCisjZGVmaW5lIEVTUEZJWF9TVEFDS1NfUEVSX1BBR0UJ KFBBR0VfU0laRS9FU1BGSVhfU1RBQ0tfU0laRSkKKworLyogVGhlcmUgaXMgYWRkcmVzcyBzcGFj ZSBmb3IgaG93IG1hbnkgZXNwZml4IHBhZ2VzPyAqLworI2RlZmluZSBFU1BGSVhfUEFHRV9TUEFD RQkoMVVMIDw8IChQR0RJUl9TSElGVC1QQUdFX1NISUZULTE2KSkKKworI2RlZmluZSBFU1BGSVhf TUFYX0NQVVMJCShFU1BGSVhfU1RBQ0tTX1BFUl9QQUdFICogRVNQRklYX1BBR0VfU1BBQ0UpCisj aWYgQ09ORklHX05SX0NQVVMgPiBFU1BGSVhfTUFYX0NQVVMKKyMgZXJyb3IgIk5lZWQgbW9yZSB0 aGFuIG9uZSBQR0QgZm9yIHRoZSBFU1BGSVggaGFjayIKKyNlbmRpZgorCisjZGVmaW5lIFBHQUxM T0NfR0ZQIChHRlBfS0VSTkVMIHwgX19HRlBfTk9UUkFDSyB8IF9fR0ZQX1JFUEVBVCB8IF9fR0ZQ X1pFUk8pCisKKy8qIFRoaXMgY29udGFpbnMgdGhlICpib3R0b20qIGFkZHJlc3Mgb2YgdGhlIGVz cGZpeCBzdGFjayAqLworREVGSU5FX1BFUl9DUFVfUkVBRF9NT1NUTFkodW5zaWduZWQgbG9uZywg ZXNwZml4X3N0YWNrKTsKK0RFRklORV9QRVJfQ1BVX1JFQURfTU9TVExZKHVuc2lnbmVkIGxvbmcs IGVzcGZpeF93YWRkcik7CisKKy8qIEluaXRpYWxpemF0aW9uIG11dGV4IC0gc2hvdWxkIHRoaXMg YmUgYSBzcGlubG9jaz8gKi8KK3N0YXRpYyBERUZJTkVfTVVURVgoZXNwZml4X2luaXRfbXV0ZXgp OworCisvKiBQYWdlIGFsbG9jYXRpb24gYml0bWFwIC0gZWFjaCBwYWdlIHNlcnZlcyBFU1BGSVhf U1RBQ0tTX1BFUl9QQUdFIENQVXMgKi8KKyNkZWZpbmUgRVNQRklYX01BWF9QQUdFUyAgRElWX1JP VU5EX1VQKENPTkZJR19OUl9DUFVTLCBFU1BGSVhfU1RBQ0tTX1BFUl9QQUdFKQorc3RhdGljIHZv aWQgKmVzcGZpeF9wYWdlc1tFU1BGSVhfTUFYX1BBR0VTXTsKKworc3RhdGljIF9fcGFnZV9hbGln bmVkX2JzcyBwdWRfdCBlc3BmaXhfcHVkX3BhZ2VbUFRSU19QRVJfUFVEXQorCV9fYWxpZ25lZChQ QUdFX1NJWkUpOworCitzdGF0aWMgdW5zaWduZWQgaW50IHBhZ2VfcmFuZG9tLCBzbG90X3JhbmRv bTsKKworLyoKKyAqIFRoaXMgcmV0dXJucyB0aGUgYm90dG9tIGFkZHJlc3Mgb2YgdGhlIGVzcGZp eCBzdGFjayBmb3IgYSBzcGVjaWZpYyBDUFUuCisgKiBUaGUgbWF0aCBhbGxvd3MgZm9yIGEgbm9u LXBvd2VyLW9mLXR3byBFU1BGSVhfU1RBQ0tfU0laRSwgaW4gd2hpY2ggY2FzZQorICogd2UgaGF2 ZSB0byBhY2NvdW50IGZvciBzb21lIGFtb3VudCBvZiBwYWRkaW5nIGF0IHRoZSBlbmQgb2YgZWFj aCBwYWdlLgorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZXNwZml4X2Jhc2VfYWRk cih1bnNpZ25lZCBpbnQgY3B1KQoreworCXVuc2lnbmVkIGxvbmcgcGFnZSwgc2xvdDsKKwl1bnNp Z25lZCBsb25nIGFkZHI7CisKKwlwYWdlID0gKGNwdSAvIEVTUEZJWF9TVEFDS1NfUEVSX1BBR0Up IF4gcGFnZV9yYW5kb207CisJc2xvdCA9IChjcHUgKyBzbG90X3JhbmRvbSkgJSBFU1BGSVhfU1RB Q0tTX1BFUl9QQUdFOworCWFkZHIgPSAocGFnZSA8PCBQQUdFX1NISUZUKSArIChzbG90ICogRVNQ RklYX1NUQUNLX1NJWkUpOworCWFkZHIgPSAoYWRkciAmIDB4ZmZmZlVMKSB8ICgoYWRkciAmIH4w eGZmZmZVTCkgPDwgMTYpOworCWFkZHIgKz0gRVNQRklYX0JBU0VfQUREUjsKKwlyZXR1cm4gYWRk cjsKK30KKworI2RlZmluZSBQVEVfU1RSSURFICAgICAgICAoNjU1MzYvUEFHRV9TSVpFKQorI2Rl ZmluZSBFU1BGSVhfUFRFX0NMT05FUyAoUFRSU19QRVJfUFRFL1BURV9TVFJJREUpCisjZGVmaW5l IEVTUEZJWF9QTURfQ0xPTkVTIFBUUlNfUEVSX1BNRAorI2RlZmluZSBFU1BGSVhfUFVEX0NMT05F UyAoNjU1MzYvKEVTUEZJWF9QVEVfQ0xPTkVTKkVTUEZJWF9QTURfQ0xPTkVTKSkKKworI2RlZmlu ZSBQR1RBQkxFX1BST1QJICAoKF9LRVJOUEdfVEFCTEUgJiB+X1BBR0VfUlcpIHwgX1BBR0VfTlgp CisKK3N0YXRpYyB2b2lkIGluaXRfZXNwZml4X3JhbmRvbSh2b2lkKQoreworCXVuc2lnbmVkIGxv bmcgcmFuZDsKKworCS8qCisJICogVGhpcyBpcyBydW4gYmVmb3JlIHRoZSBlbnRyb3B5IHBvb2xz IGFyZSBpbml0aWFsaXplZCwKKwkgKiBidXQgdGhpcyBpcyBob3BlZnVsbHkgYmV0dGVyIHRoYW4g bm90aGluZy4KKwkgKi8KKwlpZiAoIWFyY2hfZ2V0X3JhbmRvbV9sb25nKCZyYW5kKSkgeworCQkv KiBUaGUgY29uc3RhbnQgaXMgYW4gYXJiaXRyYXJ5IGxhcmdlIHByaW1lICovCisJCXJkdHNjbGwo cmFuZCk7CisJCXJhbmQgKj0gMHhjMzQ1YzZiNzJmZDE2MTIzVUw7CisJfQorCisJc2xvdF9yYW5k b20gPSByYW5kICUgRVNQRklYX1NUQUNLU19QRVJfUEFHRTsKKwlwYWdlX3JhbmRvbSA9IChyYW5k IC8gRVNQRklYX1NUQUNLU19QRVJfUEFHRSkKKwkJJiAoRVNQRklYX1BBR0VfU1BBQ0UgLSAxKTsK K30KKwordm9pZCBfX2luaXQgaW5pdF9lc3BmaXhfYnNwKHZvaWQpCit7CisJcGdkX3QgKnBnZF9w OworCXB0ZXZhbF90IHB0ZW1hc2s7CisKKwlwdGVtYXNrID0gX19zdXBwb3J0ZWRfcHRlX21hc2s7 CisKKwkvKiBJbnN0YWxsIHRoZSBlc3BmaXggcHVkIGludG8gdGhlIGtlcm5lbCBwYWdlIGRpcmVj dG9yeSAqLworCXBnZF9wID0gJmluaXRfbGV2ZWw0X3BndFtwZ2RfaW5kZXgoRVNQRklYX0JBU0Vf QUREUildOworCXBnZF9wb3B1bGF0ZSgmaW5pdF9tbSwgcGdkX3AsIChwdWRfdCAqKWVzcGZpeF9w dWRfcGFnZSk7CisKKwkvKiBSYW5kb21pemUgdGhlIGxvY2F0aW9ucyAqLworCWluaXRfZXNwZml4 X3JhbmRvbSgpOworCisJLyogVGhlIHJlc3QgaXMgdGhlIHNhbWUgYXMgZm9yIGFueSBvdGhlciBw cm9jZXNzb3IgKi8KKwlpbml0X2VzcGZpeF9hcCgpOworfQorCit2b2lkIGluaXRfZXNwZml4X2Fw KHZvaWQpCit7CisJdW5zaWduZWQgaW50IGNwdSwgcGFnZTsKKwl1bnNpZ25lZCBsb25nIGFkZHI7 CisJcHVkX3QgcHVkLCAqcHVkX3A7CisJcG1kX3QgcG1kLCAqcG1kX3A7CisJcHRlX3QgcHRlLCAq cHRlX3A7CisJaW50IG47CisJdm9pZCAqc3RhY2tfcGFnZTsKKwlwdGV2YWxfdCBwdGVtYXNrOwor CisJLyogV2Ugb25seSBoYXZlIHRvIGRvIHRoaXMgb25jZS4uLiAqLworCWlmIChsaWtlbHkodGhp c19jcHVfcmVhZChlc3BmaXhfc3RhY2spKSkKKwkJcmV0dXJuOwkJLyogQWxyZWFkeSBpbml0aWFs aXplZCAqLworCisJY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCWFkZHIgPSBlc3BmaXhfYmFz ZV9hZGRyKGNwdSk7CisJcGFnZSA9IGNwdS9FU1BGSVhfU1RBQ0tTX1BFUl9QQUdFOworCisJLyog RGlkIGFub3RoZXIgQ1BVIGFscmVhZHkgc2V0IHRoaXMgdXA/ICovCisJc3RhY2tfcGFnZSA9IEFD Q0VTU19PTkNFKGVzcGZpeF9wYWdlc1twYWdlXSk7CisJaWYgKGxpa2VseShzdGFja19wYWdlKSkK KwkJZ290byBkb25lOworCisJbXV0ZXhfbG9jaygmZXNwZml4X2luaXRfbXV0ZXgpOworCisJLyog RGlkIHdlIHJhY2Ugb24gdGhlIGxvY2s/ICovCisJc3RhY2tfcGFnZSA9IEFDQ0VTU19PTkNFKGVz cGZpeF9wYWdlc1twYWdlXSk7CisJaWYgKHN0YWNrX3BhZ2UpCisJCWdvdG8gdW5sb2NrX2RvbmU7 CisKKwlwdGVtYXNrID0gX19zdXBwb3J0ZWRfcHRlX21hc2s7CisKKwlwdWRfcCA9ICZlc3BmaXhf cHVkX3BhZ2VbcHVkX2luZGV4KGFkZHIpXTsKKwlwdWQgPSAqcHVkX3A7CisJaWYgKCFwdWRfcHJl c2VudChwdWQpKSB7CisJCXBtZF9wID0gKHBtZF90ICopX19nZXRfZnJlZV9wYWdlKFBHQUxMT0Nf R0ZQKTsKKwkJcHVkID0gX19wdWQoX19wYShwbWRfcCkgfCAoUEdUQUJMRV9QUk9UICYgcHRlbWFz aykpOworCQlwYXJhdmlydF9hbGxvY19wbWQoJmluaXRfbW0sIF9fcGEocG1kX3ApID4+IFBBR0Vf U0hJRlQpOworCQlmb3IgKG4gPSAwOyBuIDwgRVNQRklYX1BVRF9DTE9ORVM7IG4rKykKKwkJCXNl dF9wdWQoJnB1ZF9wW25dLCBwdWQpOworCX0KKworCXBtZF9wID0gcG1kX29mZnNldCgmcHVkLCBh ZGRyKTsKKwlwbWQgPSAqcG1kX3A7CisJaWYgKCFwbWRfcHJlc2VudChwbWQpKSB7CisJCXB0ZV9w ID0gKHB0ZV90ICopX19nZXRfZnJlZV9wYWdlKFBHQUxMT0NfR0ZQKTsKKwkJcG1kID0gX19wbWQo X19wYShwdGVfcCkgfCAoUEdUQUJMRV9QUk9UICYgcHRlbWFzaykpOworCQlwYXJhdmlydF9hbGxv Y19wdGUoJmluaXRfbW0sIF9fcGEocHRlX3ApID4+IFBBR0VfU0hJRlQpOworCQlmb3IgKG4gPSAw OyBuIDwgRVNQRklYX1BNRF9DTE9ORVM7IG4rKykKKwkJCXNldF9wbWQoJnBtZF9wW25dLCBwbWQp OworCX0KKworCXB0ZV9wID0gcHRlX29mZnNldF9rZXJuZWwoJnBtZCwgYWRkcik7CisJc3RhY2tf cGFnZSA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlKEdGUF9LRVJORUwpOworCXB0ZSA9IF9fcHRl KF9fcGEoc3RhY2tfcGFnZSkgfCAoX19QQUdFX0tFUk5FTF9STyAmIHB0ZW1hc2spKTsKKwlmb3Ig KG4gPSAwOyBuIDwgRVNQRklYX1BURV9DTE9ORVM7IG4rKykKKwkJc2V0X3B0ZSgmcHRlX3BbbipQ VEVfU1RSSURFXSwgcHRlKTsKKworCS8qIEpvYiBpcyBkb25lIGZvciB0aGlzIENQVSBhbmQgYW55 IENQVSB3aGljaCBzaGFyZXMgdGhpcyBwYWdlICovCisJQUNDRVNTX09OQ0UoZXNwZml4X3BhZ2Vz W3BhZ2VdKSA9IHN0YWNrX3BhZ2U7CisKK3VubG9ja19kb25lOgorCW11dGV4X3VubG9jaygmZXNw Zml4X2luaXRfbXV0ZXgpOworZG9uZToKKwl0aGlzX2NwdV93cml0ZShlc3BmaXhfc3RhY2ssIGFk ZHIpOworCXRoaXNfY3B1X3dyaXRlKGVzcGZpeF93YWRkciwgKHVuc2lnbmVkIGxvbmcpc3RhY2tf cGFnZQorCQkgICAgICAgKyAoYWRkciAmIH5QQUdFX01BU0spKTsKK30KZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2tlcm5lbC9sZHQuYyBiL2FyY2gveDg2L2tlcm5lbC9sZHQuYwppbmRleCAzZTBjY2Jm Li4wYThlNjVlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbGR0LmMKKysrIGIvYXJjaC94 ODYva2VybmVsL2xkdC5jCkBAIC0yMSw4ICsyMSw2IEBACiAjaW5jbHVkZSA8YXNtL21tdV9jb250 ZXh0Lmg+CiAjaW5jbHVkZSA8YXNtL3N5c2NhbGxzLmg+CiAKLWludCBzeXNjdGxfbGR0MTYgPSAw OwotCiAjaWZkZWYgQ09ORklHX1NNUAogc3RhdGljIHZvaWQgZmx1c2hfbGR0KHZvaWQgKmN1cnJl bnRfbW0pCiB7CkBAIC0yMzIsMTYgKzIzMCwxMCBAQCBzdGF0aWMgaW50IHdyaXRlX2xkdCh2b2lk IF9fdXNlciAqcHRyLCB1bnNpZ25lZCBsb25nIGJ5dGVjb3VudCwgaW50IG9sZG1vZGUpCiAJCX0K IAl9CiAKLQkvKgotCSAqIE9uIHg4Ni02NCB3ZSBkbyBub3Qgc3VwcG9ydCAxNi1iaXQgc2VnbWVu dHMgZHVlIHRvCi0JICogSVJFVCBsZWFraW5nIHRoZSBoaWdoIGJpdHMgb2YgdGhlIGtlcm5lbCBz dGFjayBhZGRyZXNzLgotCSAqLwotI2lmZGVmIENPTkZJR19YODZfNjQKLQlpZiAoIWxkdF9pbmZv LnNlZ18zMmJpdCAmJiAhc3lzY3RsX2xkdDE2KSB7CisJaWYgKCFJU19FTkFCTEVEKENPTkZJR19Y ODZfMTZCSVQpICYmICFsZHRfaW5mby5zZWdfMzJiaXQpIHsKIAkJZXJyb3IgPSAtRUlOVkFMOwog CQlnb3RvIG91dF91bmxvY2s7CiAJfQotI2VuZGlmCiAKIAlmaWxsX2xkdCgmbGR0LCAmbGR0X2lu Zm8pOwogCWlmIChvbGRtb2RlKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0 X3BhdGNoXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnRfcGF0Y2hfNjQuYwppbmRleCAz ZjA4ZjM0Li5hMWRhNjczIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnRfcGF0 Y2hfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnRfcGF0Y2hfNjQuYwpAQCAtNiw3 ICs2LDYgQEAgREVGX05BVElWRShwdl9pcnFfb3BzLCBpcnFfZGlzYWJsZSwgImNsaSIpOwogREVG X05BVElWRShwdl9pcnFfb3BzLCBpcnFfZW5hYmxlLCAic3RpIik7CiBERUZfTkFUSVZFKHB2X2ly cV9vcHMsIHJlc3RvcmVfZmwsICJwdXNocSAlcmRpOyBwb3BmcSIpOwogREVGX05BVElWRShwdl9p cnFfb3BzLCBzYXZlX2ZsLCAicHVzaGZxOyBwb3BxICVyYXgiKTsKLURFRl9OQVRJVkUocHZfY3B1 X29wcywgaXJldCwgImlyZXRxIik7CiBERUZfTkFUSVZFKHB2X21tdV9vcHMsIHJlYWRfY3IyLCAi bW92cSAlY3IyLCAlcmF4Iik7CiBERUZfTkFUSVZFKHB2X21tdV9vcHMsIHJlYWRfY3IzLCAibW92 cSAlY3IzLCAlcmF4Iik7CiBERUZfTkFUSVZFKHB2X21tdV9vcHMsIHdyaXRlX2NyMywgIm1vdnEg JXJkaSwgJWNyMyIpOwpAQCAtNTAsNyArNDksNiBAQCB1bnNpZ25lZCBuYXRpdmVfcGF0Y2godTgg dHlwZSwgdTE2IGNsb2JiZXJzLCB2b2lkICppYnVmLAogCQlQQVRDSF9TSVRFKHB2X2lycV9vcHMs IHNhdmVfZmwpOwogCQlQQVRDSF9TSVRFKHB2X2lycV9vcHMsIGlycV9lbmFibGUpOwogCQlQQVRD SF9TSVRFKHB2X2lycV9vcHMsIGlycV9kaXNhYmxlKTsKLQkJUEFUQ0hfU0lURShwdl9jcHVfb3Bz LCBpcmV0KTsKIAkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCBpcnFfZW5hYmxlX3N5c2V4aXQpOwog CQlQQVRDSF9TSVRFKHB2X2NwdV9vcHMsIHVzZXJnc19zeXNyZXQzMik7CiAJCVBBVENIX1NJVEUo cHZfY3B1X29wcywgdXNlcmdzX3N5c3JldDY0KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5l bC9yZXNvdXJjZS5jIGIvYXJjaC94ODYva2VybmVsL3Jlc291cmNlLmMKaW5kZXggMmEyNjgxOS4u ODBlYWIwMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3Jlc291cmNlLmMKKysrIGIvYXJj aC94ODYva2VybmVsL3Jlc291cmNlLmMKQEAgLTM3LDEwICszNywxMiBAQCBzdGF0aWMgdm9pZCBy ZW1vdmVfZTgyMF9yZWdpb25zKHN0cnVjdCByZXNvdXJjZSAqYXZhaWwpCiAKIHZvaWQgYXJjaF9y ZW1vdmVfcmVzZXJ2YXRpb25zKHN0cnVjdCByZXNvdXJjZSAqYXZhaWwpCiB7Ci0JLyogVHJpbSBv dXQgQklPUyBhcmVhcyAobG93IDFNQiBhbmQgaGlnaCAyTUIpIGFuZCBFODIwIHJlZ2lvbnMgKi8K KwkvKgorCSAqIFRyaW0gb3V0IEJJT1MgYXJlYSAoaGlnaCAyTUIpIGFuZCBFODIwIHJlZ2lvbnMu IFdlIGRvIG5vdCByZW1vdmUKKwkgKiB0aGUgbG93IDFNQiB1bmNvbmRpdGlvbmFsbHksIGFzIHRo aXMgYXJlYSBpcyBuZWVkZWQgZm9yIHNvbWUgSVNBCisJICogY2FyZHMgcmVxdWlyaW5nIGEgbWVt b3J5IHJhbmdlLCBlLmcuIHRoZSBpODIzNjUgUENNQ0lBIGNvbnRyb2xsZXIuCisJICovCiAJaWYg KGF2YWlsLT5mbGFncyAmIElPUkVTT1VSQ0VfTUVNKSB7Ci0JCWlmIChhdmFpbC0+c3RhcnQgPCBC SU9TX0VORCkKLQkJCWF2YWlsLT5zdGFydCA9IEJJT1NfRU5EOwogCQlyZXNvdXJjZV9jbGlwKGF2 YWlsLCBCSU9TX1JPTV9CQVNFLCBCSU9TX1JPTV9FTkQpOwogCiAJCXJlbW92ZV9lODIwX3JlZ2lv bnMoYXZhaWwpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3NtcGJvb3QuYyBiL2FyY2gv eDg2L2tlcm5lbC9zbXBib290LmMKaW5kZXggYjg4ZWFkYi4uNmU2OGJkOSAxMDA2NDQKLS0tIGEv YXJjaC94ODYva2VybmVsL3NtcGJvb3QuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5j CkBAIC0yNjYsNiArMjY2LDEzIEBAIG5vdHJhY2Ugc3RhdGljIHZvaWQgX19jcHVpbml0IHN0YXJ0 X3NlY29uZGFyeSh2b2lkICp1bnVzZWQpCiAJY2hlY2tfdHNjX3N5bmNfdGFyZ2V0KCk7CiAKIAkv KgorCSAqIEVuYWJsZSB0aGUgZXNwZml4IGhhY2sgZm9yIHRoaXMgQ1BVCisJICovCisjaWZkZWYg Q09ORklHX1g4Nl9FU1BGSVg2NAorCWluaXRfZXNwZml4X2FwKCk7CisjZW5kaWYKKworCS8qCiAJ ICogV2UgbmVlZCB0byBob2xkIGNhbGxfbG9jaywgc28gdGhlcmUgaXMgbm8gaW5jb25zaXN0ZW5j eQogCSAqIGJldHdlZW4gdGhlIHRpbWUgc21wX2NhbGxfZnVuY3Rpb24oKSBkZXRlcm1pbmVzIG51 bWJlciBvZgogCSAqIElQSSByZWNpcGllbnRzLCBhbmQgdGhlIHRpbWUgd2hlbiB0aGUgZGV0ZXJt aW5hdGlvbiBpcyBtYWRlCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vZW11bGF0ZS5jIGIvYXJj aC94ODYva3ZtL2VtdWxhdGUuYwppbmRleCBmNTMwMmRhLi42MzhjYWI1IDEwMDY0NAotLS0gYS9h cmNoL3g4Ni9rdm0vZW11bGF0ZS5jCisrKyBiL2FyY2gveDg2L2t2bS9lbXVsYXRlLmMKQEAgLTE4 MTgsNiArMTgxOCw3IEBAIHN0YXRpYyBpbnQgZW1fcmV0X2ZhcihzdHJ1Y3QgeDg2X2VtdWxhdGVf Y3R4dCAqY3R4dCkKIHsKIAlpbnQgcmM7CiAJdW5zaWduZWQgbG9uZyBjczsKKwlpbnQgY3BsID0g Y3R4dC0+b3BzLT5jcGwoY3R4dCk7CiAKIAlyYyA9IGVtdWxhdGVfcG9wKGN0eHQsICZjdHh0LT5f ZWlwLCBjdHh0LT5vcF9ieXRlcyk7CiAJaWYgKHJjICE9IFg4NkVNVUxfQ09OVElOVUUpCkBAIC0x ODI3LDYgKzE4MjgsOSBAQCBzdGF0aWMgaW50IGVtX3JldF9mYXIoc3RydWN0IHg4Nl9lbXVsYXRl X2N0eHQgKmN0eHQpCiAJcmMgPSBlbXVsYXRlX3BvcChjdHh0LCAmY3MsIGN0eHQtPm9wX2J5dGVz KTsKIAlpZiAocmMgIT0gWDg2RU1VTF9DT05USU5VRSkKIAkJcmV0dXJuIHJjOworCS8qIE91dGVy LXByaXZpbGVnZSBsZXZlbCByZXR1cm4gaXMgbm90IGltcGxlbWVudGVkICovCisJaWYgKGN0eHQt Pm1vZGUgPj0gWDg2RU1VTF9NT0RFX1BST1QxNiAmJiAoY3MgJiAzKSA+IGNwbCkKKwkJcmV0dXJu IFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogCXJjID0gbG9hZF9zZWdtZW50X2Rlc2NyaXB0b3IoY3R4 dCwgKHUxNiljcywgVkNQVV9TUkVHX0NTKTsKIAlyZXR1cm4gcmM7CiB9CmRpZmYgLS1naXQgYS9h cmNoL3g4Ni9tbS9kdW1wX3BhZ2V0YWJsZXMuYyBiL2FyY2gveDg2L21tL2R1bXBfcGFnZXRhYmxl cy5jCmluZGV4IDAwMDJhM2EuLmUwNGU2NzcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL2R1bXBf cGFnZXRhYmxlcy5jCisrKyBiL2FyY2gveDg2L21tL2R1bXBfcGFnZXRhYmxlcy5jCkBAIC0zMCwx MSArMzAsMTMgQEAgc3RydWN0IHBnX3N0YXRlIHsKIAl1bnNpZ25lZCBsb25nIHN0YXJ0X2FkZHJl c3M7CiAJdW5zaWduZWQgbG9uZyBjdXJyZW50X2FkZHJlc3M7CiAJY29uc3Qgc3RydWN0IGFkZHJf bWFya2VyICptYXJrZXI7CisJdW5zaWduZWQgbG9uZyBsaW5lczsKIH07CiAKIHN0cnVjdCBhZGRy X21hcmtlciB7CiAJdW5zaWduZWQgbG9uZyBzdGFydF9hZGRyZXNzOwogCWNvbnN0IGNoYXIgKm5h bWU7CisJdW5zaWduZWQgbG9uZyBtYXhfbGluZXM7CiB9OwogCiAvKiBpbmRpY2VzIGZvciBhZGRy ZXNzX21hcmtlcnM7IGtlZXAgc3luYydkIHcvIGFkZHJlc3NfbWFya2VycyBiZWxvdyAqLwpAQCAt NDUsNiArNDcsNyBAQCBlbnVtIGFkZHJlc3NfbWFya2Vyc19pZHggewogCUxPV19LRVJORUxfTlIs CiAJVk1BTExPQ19TVEFSVF9OUiwKIAlWTUVNTUFQX1NUQVJUX05SLAorCUVTUEZJWF9TVEFSVF9O UiwKIAlISUdIX0tFUk5FTF9OUiwKIAlNT0RVTEVTX1ZBRERSX05SLAogCU1PRFVMRVNfRU5EX05S LApAQCAtNjcsNiArNzAsNyBAQCBzdGF0aWMgc3RydWN0IGFkZHJfbWFya2VyIGFkZHJlc3NfbWFy a2Vyc1tdID0gewogCXsgUEFHRV9PRkZTRVQsCQkiTG93IEtlcm5lbCBNYXBwaW5nIiB9LAogCXsg Vk1BTExPQ19TVEFSVCwgICAgICAgICJ2bWFsbG9jKCkgQXJlYSIgfSwKIAl7IFZNRU1NQVBfU1RB UlQsICAgICAgICAiVm1lbW1hcCIgfSwKKwl7IEVTUEZJWF9CQVNFX0FERFIsCSJFU1BmaXggQXJl YSIsIDE2IH0sCiAJeyBfX1NUQVJUX0tFUk5FTF9tYXAsICAgIkhpZ2ggS2VybmVsIE1hcHBpbmci IH0sCiAJeyBNT0RVTEVTX1ZBRERSLCAgICAgICAgIk1vZHVsZXMiIH0sCiAJeyBNT0RVTEVTX0VO RCwgICAgICAgICAgIkVuZCBNb2R1bGVzIiB9LApAQCAtMTYzLDcgKzE2Nyw3IEBAIHN0YXRpYyB2 b2lkIG5vdGVfcGFnZShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBwZ19zdGF0ZSAqc3QsCiAJ CSAgICAgIHBncHJvdF90IG5ld19wcm90LCBpbnQgbGV2ZWwpCiB7CiAJcGdwcm90dmFsX3QgcHJv dCwgY3VyOwotCXN0YXRpYyBjb25zdCBjaGFyIHVuaXRzW10gPSAiS01HVFBFIjsKKwlzdGF0aWMg Y29uc3QgY2hhciB1bml0c1tdID0gIkJLTUdUUEUiOwogCiAJLyoKIAkgKiBJZiB3ZSBoYXZlIGEg ImJyZWFrIiBpbiB0aGUgc2VyaWVzLCB3ZSBuZWVkIHRvIGZsdXNoIHRoZSBzdGF0ZSB0aGF0CkBA IC0xNzgsNiArMTgyLDcgQEAgc3RhdGljIHZvaWQgbm90ZV9wYWdlKHN0cnVjdCBzZXFfZmlsZSAq bSwgc3RydWN0IHBnX3N0YXRlICpzdCwKIAkJc3QtPmN1cnJlbnRfcHJvdCA9IG5ld19wcm90Owog CQlzdC0+bGV2ZWwgPSBsZXZlbDsKIAkJc3QtPm1hcmtlciA9IGFkZHJlc3NfbWFya2VyczsKKwkJ c3QtPmxpbmVzID0gMDsKIAkJc2VxX3ByaW50ZihtLCAiLS0tWyAlcyBdLS0tXG4iLCBzdC0+bWFy a2VyLT5uYW1lKTsKIAl9IGVsc2UgaWYgKHByb3QgIT0gY3VyIHx8IGxldmVsICE9IHN0LT5sZXZl bCB8fAogCQkgICBzdC0+Y3VycmVudF9hZGRyZXNzID49IHN0LT5tYXJrZXJbMV0uc3RhcnRfYWRk cmVzcykgewpAQCAtMTg4LDE3ICsxOTMsMjEgQEAgc3RhdGljIHZvaWQgbm90ZV9wYWdlKHN0cnVj dCBzZXFfZmlsZSAqbSwgc3RydWN0IHBnX3N0YXRlICpzdCwKIAkJLyoKIAkJICogTm93IHByaW50 IHRoZSBhY3R1YWwgZmluaXNoZWQgc2VyaWVzCiAJCSAqLwotCQlzZXFfcHJpbnRmKG0sICIweCUw Kmx4LTB4JTAqbHggICAiLAotCQkJICAgd2lkdGgsIHN0LT5zdGFydF9hZGRyZXNzLAotCQkJICAg d2lkdGgsIHN0LT5jdXJyZW50X2FkZHJlc3MpOwotCi0JCWRlbHRhID0gKHN0LT5jdXJyZW50X2Fk ZHJlc3MgLSBzdC0+c3RhcnRfYWRkcmVzcykgPj4gMTA7Ci0JCXdoaWxlICghKGRlbHRhICYgMTAy MykgJiYgdW5pdFsxXSkgewotCQkJZGVsdGEgPj49IDEwOwotCQkJdW5pdCsrOworCQlpZiAoIXN0 LT5tYXJrZXItPm1heF9saW5lcyB8fAorCQkgICAgc3QtPmxpbmVzIDwgc3QtPm1hcmtlci0+bWF4 X2xpbmVzKSB7CisJCQlzZXFfcHJpbnRmKG0sICIweCUwKmx4LTB4JTAqbHggICAiLAorCQkJCSAg IHdpZHRoLCBzdC0+c3RhcnRfYWRkcmVzcywKKwkJCQkgICB3aWR0aCwgc3QtPmN1cnJlbnRfYWRk cmVzcyk7CisKKwkJCWRlbHRhID0gKHN0LT5jdXJyZW50X2FkZHJlc3MgLSBzdC0+c3RhcnRfYWRk cmVzcyk7CisJCQl3aGlsZSAoIShkZWx0YSAmIDEwMjMpICYmIHVuaXRbMV0pIHsKKwkJCQlkZWx0 YSA+Pj0gMTA7CisJCQkJdW5pdCsrOworCQkJfQorCQkJc2VxX3ByaW50ZihtLCAiJTlsdSVjICIs IGRlbHRhLCAqdW5pdCk7CisJCQlwcmludGtfcHJvdChtLCBzdC0+Y3VycmVudF9wcm90LCBzdC0+ bGV2ZWwpOwogCQl9Ci0JCXNlcV9wcmludGYobSwgIiU5bHUlYyAiLCBkZWx0YSwgKnVuaXQpOwot CQlwcmludGtfcHJvdChtLCBzdC0+Y3VycmVudF9wcm90LCBzdC0+bGV2ZWwpOworCQlzdC0+bGlu ZXMrKzsKIAogCQkvKgogCQkgKiBXZSBwcmludCBtYXJrZXJzIGZvciBzcGVjaWFsIGFyZWFzIG9m IGFkZHJlc3Mgc3BhY2UsCkBAIC0yMDYsNyArMjE1LDE1IEBAIHN0YXRpYyB2b2lkIG5vdGVfcGFn ZShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBwZ19zdGF0ZSAqc3QsCiAJCSAqIFRoaXMgaGVs cHMgaW4gdGhlIGludGVycHJldGF0aW9uLgogCQkgKi8KIAkJaWYgKHN0LT5jdXJyZW50X2FkZHJl c3MgPj0gc3QtPm1hcmtlclsxXS5zdGFydF9hZGRyZXNzKSB7CisJCQlpZiAoc3QtPm1hcmtlci0+ bWF4X2xpbmVzICYmCisJCQkgICAgc3QtPmxpbmVzID4gc3QtPm1hcmtlci0+bWF4X2xpbmVzKSB7 CisJCQkJdW5zaWduZWQgbG9uZyBuc2tpcCA9CisJCQkJCXN0LT5saW5lcyAtIHN0LT5tYXJrZXIt Pm1heF9saW5lczsKKwkJCQlzZXFfcHJpbnRmKG0sICIuLi4gJWx1IGVudHIlcyBza2lwcGVkIC4u LiBcbiIsCisJCQkJCSAgIG5za2lwLCBuc2tpcCA9PSAxID8gInkiIDogImllcyIpOworCQkJfQog CQkJc3QtPm1hcmtlcisrOworCQkJc3QtPmxpbmVzID0gMDsKIAkJCXNlcV9wcmludGYobSwgIi0t LVsgJXMgXS0tLVxuIiwgc3QtPm1hcmtlci0+bmFtZSk7CiAJCX0KIApkaWZmIC0tZ2l0IGEvYXJj aC94ODYvcGNpL2kzODYuYyBiL2FyY2gveDg2L3BjaS9pMzg2LmMKaW5kZXggNzk0YjA5Mi4uMmQz Yzg1NCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL2kzODYuYworKysgYi9hcmNoL3g4Ni9wY2kv aTM4Ni5jCkBAIC03Myw2ICs3MywxMCBAQCBwY2liaW9zX2FsaWduX3Jlc291cmNlKHZvaWQgKmRh dGEsIGNvbnN0IHN0cnVjdCByZXNvdXJjZSAqcmVzLAogCQkJcmV0dXJuIHN0YXJ0OwogCQlpZiAo c3RhcnQgJiAweDMwMCkKIAkJCXN0YXJ0ID0gKHN0YXJ0ICsgMHgzZmYpICYgfjB4M2ZmOworCX0g ZWxzZSBpZiAocmVzLT5mbGFncyAmIElPUkVTT1VSQ0VfTUVNKSB7CisJCS8qIFRoZSBsb3cgMU1C IHJhbmdlIGlzIHJlc2VydmVkIGZvciBJU0EgY2FyZHMgKi8KKwkJaWYgKHN0YXJ0IDwgQklPU19F TkQpCisJCQlzdGFydCA9IEJJT1NfRU5EOwogCX0KIAlyZXR1cm4gc3RhcnQ7CiB9CmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni92ZHNvL3Zkc28zMi1zZXR1cC5jIGIvYXJjaC94ODYvdmRzby92ZHNvMzIt c2V0dXAuYwppbmRleCA1MWJkYzA1Li40NjhkNTkxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni92ZHNv L3Zkc28zMi1zZXR1cC5jCisrKyBiL2FyY2gveDg2L3Zkc28vdmRzbzMyLXNldHVwLmMKQEAgLTQx LDcgKzQxLDYgQEAgZW51bSB7CiAjaWZkZWYgQ09ORklHX1g4Nl82NAogI2RlZmluZSB2ZHNvX2Vu YWJsZWQJCQlzeXNjdGxfdnN5c2NhbGwzMgogI2RlZmluZSBhcmNoX3NldHVwX2FkZGl0aW9uYWxf cGFnZXMJc3lzY2FsbDMyX3NldHVwX3BhZ2VzCi1leHRlcm4gaW50IHN5c2N0bF9sZHQxNjsKICNl bmRpZgogCiAvKgpAQCAtMzg5LDEzICszODgsNiBAQCBzdGF0aWMgY3RsX3RhYmxlIGFiaV90YWJs ZTJbXSA9IHsKIAkJLm1vZGUJCT0gMDY0NCwKIAkJLnByb2NfaGFuZGxlcgk9IHByb2NfZG9pbnR2 ZWMKIAl9LAotCXsKLQkJLnByb2NuYW1lCT0gImxkdDE2IiwKLQkJLmRhdGEJCT0gJnN5c2N0bF9s ZHQxNiwKLQkJLm1heGxlbgkJPSBzaXplb2YoaW50KSwKLQkJLm1vZGUJCT0gMDY0NCwKLQkJLnBy b2NfaGFuZGxlcgk9IHByb2NfZG9pbnR2ZWMKLQl9LAogCXt9CiB9OwogCmRpZmYgLS1naXQgYS9h cmNoL3g4Ni94ZW4vdGltZS5jIGIvYXJjaC94ODYveGVuL3RpbWUuYwppbmRleCBkNTBhODIxLi4x YTgyMzE5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vdGltZS5jCisrKyBiL2FyY2gveDg2L3hl bi90aW1lLmMKQEAgLTM5Nyw3ICszOTcsNyBAQCB2b2lkIHhlbl9zZXR1cF90aW1lcihpbnQgY3B1 KQogCWlycSA9IGJpbmRfdmlycV90b19pcnFoYW5kbGVyKFZJUlFfVElNRVIsIGNwdSwgeGVuX3Rp bWVyX2ludGVycnVwdCwKIAkJCQkgICAgICBJUlFGX0RJU0FCTEVEfElSUUZfUEVSQ1BVfAogCQkJ CSAgICAgIElSUUZfTk9CQUxBTkNJTkd8SVJRRl9USU1FUnwKLQkJCQkgICAgICBJUlFGX0ZPUkNF X1JFU1VNRSwKKwkJCQkgICAgICBJUlFGX0ZPUkNFX1JFU1VNRXxJUlFGX0VBUkxZX1JFU1VNRSwK IAkJCQkgICAgICBuYW1lLCBOVUxMKTsKIAogCWV2dCA9ICZwZXJfY3B1KHhlbl9jbG9ja19ldmVu dHMsIGNwdSk7CmRpZmYgLS1naXQgYS9ibG9jay9ibGstdGFnLmMgYi9ibG9jay9ibGstdGFnLmMK aW5kZXggNGFmNmY1Yy4uZjYwNjQ4NyAxMDA2NDQKLS0tIGEvYmxvY2svYmxrLXRhZy5jCisrKyBi L2Jsb2NrL2Jsay10YWcuYwpAQCAtMjcsMTggKzI3LDE1IEBAIHN0cnVjdCByZXF1ZXN0ICpibGtf cXVldWVfZmluZF90YWcoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIGludCB0YWcpCiBFWFBPUlRf U1lNQk9MKGJsa19xdWV1ZV9maW5kX3RhZyk7CiAKIC8qKgotICogX19ibGtfZnJlZV90YWdzIC0g cmVsZWFzZSBhIGdpdmVuIHNldCBvZiB0YWcgbWFpbnRlbmFuY2UgaW5mbworICogYmxrX2ZyZWVf dGFncyAtIHJlbGVhc2UgYSBnaXZlbiBzZXQgb2YgdGFnIG1haW50ZW5hbmNlIGluZm8KICAqIEBi cXQ6CXRoZSB0YWcgbWFwIHRvIGZyZWUKICAqCi0gKiBUcmllcyB0byBmcmVlIHRoZSBzcGVjaWZp ZWQgQGJxdC4gIFJldHVybnMgdHJ1ZSBpZiBpdCB3YXMKLSAqIGFjdHVhbGx5IGZyZWVkIGFuZCBm YWxzZSBpZiB0aGVyZSBhcmUgc3RpbGwgcmVmZXJlbmNlcyB1c2luZyBpdAorICogRHJvcCB0aGUg cmVmZXJlbmNlIGNvdW50IG9uIEBicXQgYW5kIGZyZWVzIGl0IHdoZW4gdGhlIGxhc3QgcmVmZXJl bmNlCisgKiBpcyBkcm9wcGVkLgogICovCi1zdGF0aWMgaW50IF9fYmxrX2ZyZWVfdGFncyhzdHJ1 Y3QgYmxrX3F1ZXVlX3RhZyAqYnF0KQordm9pZCBibGtfZnJlZV90YWdzKHN0cnVjdCBibGtfcXVl dWVfdGFnICpicXQpCiB7Ci0JaW50IHJldHZhbDsKLQotCXJldHZhbCA9IGF0b21pY19kZWNfYW5k X3Rlc3QoJmJxdC0+cmVmY250KTsKLQlpZiAocmV0dmFsKSB7CisJaWYgKGF0b21pY19kZWNfYW5k X3Rlc3QoJmJxdC0+cmVmY250KSkgewogCQlCVUdfT04oZmluZF9maXJzdF9iaXQoYnF0LT50YWdf bWFwLCBicXQtPm1heF9kZXB0aCkgPAogCQkJCQkJCWJxdC0+bWF4X2RlcHRoKTsKIApAQCAtNTAs OSArNDcsOCBAQCBzdGF0aWMgaW50IF9fYmxrX2ZyZWVfdGFncyhzdHJ1Y3QgYmxrX3F1ZXVlX3Rh ZyAqYnF0KQogCiAJCWtmcmVlKGJxdCk7CiAJfQotCi0JcmV0dXJuIHJldHZhbDsKIH0KK0VYUE9S VF9TWU1CT0woYmxrX2ZyZWVfdGFncyk7CiAKIC8qKgogICogX19ibGtfcXVldWVfZnJlZV90YWdz IC0gcmVsZWFzZSB0YWcgbWFpbnRlbmFuY2UgaW5mbwpAQCAtNjksMjggKzY1LDEzIEBAIHZvaWQg X19ibGtfcXVldWVfZnJlZV90YWdzKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxKQogCWlmICghYnF0 KQogCQlyZXR1cm47CiAKLQlfX2Jsa19mcmVlX3RhZ3MoYnF0KTsKKwlibGtfZnJlZV90YWdzKGJx dCk7CiAKIAlxLT5xdWV1ZV90YWdzID0gTlVMTDsKIAlxdWV1ZV9mbGFnX2NsZWFyX3VubG9ja2Vk KFFVRVVFX0ZMQUdfUVVFVUVELCBxKTsKIH0KIAogLyoqCi0gKiBibGtfZnJlZV90YWdzIC0gcmVs ZWFzZSBhIGdpdmVuIHNldCBvZiB0YWcgbWFpbnRlbmFuY2UgaW5mbwotICogQGJxdDoJdGhlIHRh ZyBtYXAgdG8gZnJlZQotICoKLSAqIEZvciBleHRlcm5hbGx5IG1hbmFnZWQgQGJxdCBmcmVlcyB0 aGUgbWFwLiAgQ2FsbGVycyBvZiB0aGlzCi0gKiBmdW5jdGlvbiBtdXN0IGd1YXJhbnRlZSB0byBo YXZlIHJlbGVhc2VkIGFsbCB0aGUgcXVldWVzIHRoYXQKLSAqIG1pZ2h0IGhhdmUgYmVlbiB1c2lu ZyB0aGlzIHRhZyBtYXAuCi0gKi8KLXZvaWQgYmxrX2ZyZWVfdGFncyhzdHJ1Y3QgYmxrX3F1ZXVl X3RhZyAqYnF0KQotewotCWlmICh1bmxpa2VseSghX19ibGtfZnJlZV90YWdzKGJxdCkpKQotCQlC VUcoKTsKLX0KLUVYUE9SVF9TWU1CT0woYmxrX2ZyZWVfdGFncyk7Ci0KLS8qKgogICogYmxrX3F1 ZXVlX2ZyZWVfdGFncyAtIHJlbGVhc2UgdGFnIG1haW50ZW5hbmNlIGluZm8KICAqIEBxOiAgdGhl IHJlcXVlc3QgcXVldWUgZm9yIHRoZSBkZXZpY2UKICAqCmRpZmYgLS1naXQgYS9jcnlwdG8vYWZf YWxnLmMgYi9jcnlwdG8vYWZfYWxnLmMKaW5kZXggYWMzM2Q1Zi4uYmY5NDhlMSAxMDA2NDQKLS0t IGEvY3J5cHRvL2FmX2FsZy5jCisrKyBiL2NyeXB0by9hZl9hbGcuYwpAQCAtMjEsNiArMjEsNyBA QAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L25ldC5oPgogI2lu Y2x1ZGUgPGxpbnV4L3J3c2VtLmg+CisjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KIAogc3Ry dWN0IGFsZ190eXBlX2xpc3QgewogCWNvbnN0IHN0cnVjdCBhZl9hbGdfdHlwZSAqdHlwZTsKQEAg LTI0Myw2ICsyNDQsNyBAQCBpbnQgYWZfYWxnX2FjY2VwdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVj dCBzb2NrZXQgKm5ld3NvY2spCiAKIAlzb2NrX2luaXRfZGF0YShuZXdzb2NrLCBzazIpOwogCXNv Y2tfZ3JhZnQoc2syLCBuZXdzb2NrKTsKKwlzZWN1cml0eV9za19jbG9uZShzaywgc2syKTsKIAog CWVyciA9IHR5cGUtPmFjY2VwdChhc2stPnByaXZhdGUsIHNrMik7CiAJaWYgKGVycikgewpkaWZm IC0tZ2l0IGEvZHJpdmVycy9hY3BpL2VjLmMgYi9kcml2ZXJzL2FjcGkvZWMuYwppbmRleCA0OGZk MTU4Li4wNWRmMDk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvZWMuYworKysgYi9kcml2ZXJz L2FjcGkvZWMuYwpAQCAtMTkzLDYgKzE5Myw4IEBAIHN0YXRpYyBib29sIGFkdmFuY2VfdHJhbnNh Y3Rpb24oc3RydWN0IGFjcGlfZWMgKmVjKQogCQkJCXQtPnJkYXRhW3QtPnJpKytdID0gYWNwaV9l Y19yZWFkX2RhdGEoZWMpOwogCQkJCWlmICh0LT5ybGVuID09IHQtPnJpKSB7CiAJCQkJCXQtPmZs YWdzIHw9IEFDUElfRUNfQ09NTUFORF9DT01QTEVURTsKKwkJCQkJaWYgKHQtPmNvbW1hbmQgPT0g QUNQSV9FQ19DT01NQU5EX1FVRVJZKQorCQkJCQkJcHJfZGVidWcoImhhcmR3YXJlIFFSX0VDIGNv bXBsZXRpb25cbiIpOwogCQkJCQl3YWtldXAgPSB0cnVlOwogCQkJCX0KIAkJCX0gZWxzZQpAQCAt MjA0LDcgKzIwNiwyMCBAQCBzdGF0aWMgYm9vbCBhZHZhbmNlX3RyYW5zYWN0aW9uKHN0cnVjdCBh Y3BpX2VjICplYykKIAkJfQogCQlyZXR1cm4gd2FrZXVwOwogCX0gZWxzZSB7Ci0JCWlmICgoc3Rh dHVzICYgQUNQSV9FQ19GTEFHX0lCRikgPT0gMCkgeworCQkvKgorCQkgKiBUaGVyZSBpcyBmaXJt d2FyZSByZWZ1c2luZyB0byByZXNwb25kIFFSX0VDIHdoZW4gU0NJX0VWVAorCQkgKiBpcyBub3Qg c2V0LCBmb3Igd2hpY2ggY2FzZSwgd2UgY29tcGxldGUgdGhlIFFSX0VDCisJCSAqIHdpdGhvdXQg aXNzdWluZyBpdCB0byB0aGUgZmlybXdhcmUuCisJCSAqIGh0dHBzOi8vYnVnemlsbGEua2VybmVs Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYyMTEKKwkJICovCisJCWlmICghKHN0YXR1cyAmIEFDUElf RUNfRkxBR19TQ0kpICYmCisJCSAgICAodC0+Y29tbWFuZCA9PSBBQ1BJX0VDX0NPTU1BTkRfUVVF UlkpKSB7CisJCQl0LT5mbGFncyB8PSBBQ1BJX0VDX0NPTU1BTkRfUE9MTDsKKwkJCXQtPnJkYXRh W3QtPnJpKytdID0gMHgwMDsKKwkJCXQtPmZsYWdzIHw9IEFDUElfRUNfQ09NTUFORF9DT01QTEVU RTsKKwkJCXByX2RlYnVnKCJzb2Z0d2FyZSBRUl9FQyBjb21wbGV0aW9uXG4iKTsKKwkJCXdha2V1 cCA9IHRydWU7CisJCX0gZWxzZSBpZiAoKHN0YXR1cyAmIEFDUElfRUNfRkxBR19JQkYpID09IDAp IHsKIAkJCWFjcGlfZWNfd3JpdGVfY21kKGVjLCB0LT5jb21tYW5kKTsKIAkJCXQtPmZsYWdzIHw9 IEFDUElfRUNfQ09NTUFORF9QT0xMOwogCQl9IGVsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRh L2FoY2kuYyBiL2RyaXZlcnMvYXRhL2FoY2kuYwppbmRleCA0NGE0NDM0Li40M2IwYWNmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2F0YS9haGNpLmMKKysrIGIvZHJpdmVycy9hdGEvYWhjaS5jCkBAIC00 NjMsNiArNDYzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGFoY2lfcGNp X3RibFtdID0gewogCiAJLyogUHJvbWlzZSAqLwogCXsgUENJX1ZERVZJQ0UoUFJPTUlTRSwgMHgz ZjIwKSwgYm9hcmRfYWhjaSB9LAkvKiBQREM0MjgxOSAqLworCXsgUENJX1ZERVZJQ0UoUFJPTUlT RSwgMHgzNzgxKSwgYm9hcmRfYWhjaSB9LCAgIC8qIEZhc3RUcmFrIFRYODY2MCBhaGNpLW1vZGUg Ki8KIAogCS8qIEFzbWVkaWEgKi8KIAl7IFBDSV9WREVWSUNFKEFTTUVESUEsIDB4MDYwMSksIGJv YXJkX2FoY2kgfSwJLyogQVNNMTA2MCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvcGF0YV9z Y2MuYyBiL2RyaXZlcnMvYXRhL3BhdGFfc2NjLmMKaW5kZXggZTI2NWY4My4uMTk3NTlkMyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9hdGEvcGF0YV9zY2MuYworKysgYi9kcml2ZXJzL2F0YS9wYXRhX3Nj Yy5jCkBAIC01ODYsNyArNTg2LDcgQEAgc3RhdGljIGludCBzY2Nfd2FpdF9hZnRlcl9yZXNldChz dHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCBkZXZtYXNrLAogICoJTm90ZTogT3Jp Z2luYWwgY29kZSBpcyBhdGFfYnVzX3NvZnRyZXNldCgpLgogICovCiAKLXN0YXRpYyB1bnNpZ25l ZCBpbnQgc2NjX2J1c19zb2Z0cmVzZXQoc3RydWN0IGF0YV9wb3J0ICphcCwgdW5zaWduZWQgaW50 IGRldm1hc2ssCitzdGF0aWMgaW50IHNjY19idXNfc29mdHJlc2V0KHN0cnVjdCBhdGFfcG9ydCAq YXAsIHVuc2lnbmVkIGludCBkZXZtYXNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIGRlYWRsaW5lKQogewogCXN0cnVjdCBhdGFfaW9wb3J0cyAq aW9hZGRyID0gJmFwLT5pb2FkZHI7CkBAIC02MDAsOSArNjAwLDcgQEAgc3RhdGljIHVuc2lnbmVk IGludCBzY2NfYnVzX3NvZnRyZXNldChzdHJ1Y3QgYXRhX3BvcnQgKmFwLCB1bnNpZ25lZCBpbnQg ZGV2bWFzaywKIAl1ZGVsYXkoMjApOwogCW91dF9iZTMyKGlvYWRkci0+Y3RsX2FkZHIsIGFwLT5j dGwpOwogCi0Jc2NjX3dhaXRfYWZ0ZXJfcmVzZXQoJmFwLT5saW5rLCBkZXZtYXNrLCBkZWFkbGlu ZSk7Ci0KLQlyZXR1cm4gMDsKKwlyZXR1cm4gc2NjX3dhaXRfYWZ0ZXJfcmVzZXQoJmFwLT5saW5r LCBkZXZtYXNrLCBkZWFkbGluZSk7CiB9CiAKIC8qKgpAQCAtNjE5LDcgKzYxNyw4IEBAIHN0YXRp YyBpbnQgc2NjX3NvZnRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAq Y2xhc3NlcywKIHsKIAlzdHJ1Y3QgYXRhX3BvcnQgKmFwID0gbGluay0+YXA7CiAJdW5zaWduZWQg aW50IHNsYXZlX3Bvc3NpYmxlID0gYXAtPmZsYWdzICYgQVRBX0ZMQUdfU0xBVkVfUE9TUzsKLQl1 bnNpZ25lZCBpbnQgZGV2bWFzayA9IDAsIGVycl9tYXNrOworCXVuc2lnbmVkIGludCBkZXZtYXNr ID0gMDsKKwlpbnQgcmM7CiAJdTggZXJyOwogCiAJRFBSSU5USygiRU5URVJcbiIpOwpAQCAtNjM1 LDkgKzYzNCw5IEBAIHN0YXRpYyBpbnQgc2NjX3NvZnRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxp bmssIHVuc2lnbmVkIGludCAqY2xhc3NlcywKIAogCS8qIGlzc3VlIGJ1cyByZXNldCAqLwogCURQ UklOVEsoImFib3V0IHRvIHNvZnRyZXNldCwgZGV2bWFzaz0leFxuIiwgZGV2bWFzayk7Ci0JZXJy X21hc2sgPSBzY2NfYnVzX3NvZnRyZXNldChhcCwgZGV2bWFzaywgZGVhZGxpbmUpOwotCWlmIChl cnJfbWFzaykgewotCQlhdGFfcG9ydF9lcnIoYXAsICJTUlNUIGZhaWxlZCAoZXJyX21hc2s9MHgl eClcbiIsIGVycl9tYXNrKTsKKwlyYyA9IHNjY19idXNfc29mdHJlc2V0KGFwLCBkZXZtYXNrLCBk ZWFkbGluZSk7CisJaWYgKHJjKSB7CisJCWF0YV9wb3J0X2VycihhcCwgIlNSU1QgZmFpbGVkIChl cnJfbWFzaz0weCV4KVxuIiwgcmMpOwogCQlyZXR1cm4gLUVJTzsKIAl9CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvY2hhci90cG0vdHBtLmMgYi9kcml2ZXJzL2NoYXIvdHBtL3RwbS5jCmluZGV4IDBk OTE2NTUuLmMyMzRiOWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci90cG0vdHBtLmMKKysrIGIv ZHJpdmVycy9jaGFyL3RwbS90cG0uYwpAQCAtNTMzLDExICs1MzMsMTAgQEAgRVhQT1JUX1NZTUJP TF9HUEwodHBtX2dlbl9pbnRlcnJ1cHQpOwogdm9pZCB0cG1fZ2V0X3RpbWVvdXRzKHN0cnVjdCB0 cG1fY2hpcCAqY2hpcCkKIHsKIAlzdHJ1Y3QgdHBtX2NtZF90IHRwbV9jbWQ7Ci0Jc3RydWN0IHRp bWVvdXRfdCAqdGltZW91dF9jYXA7CisJdW5zaWduZWQgbG9uZyBuZXdfdGltZW91dFs0XTsKKwl1 bnNpZ25lZCBsb25nIG9sZF90aW1lb3V0WzRdOwogCXN0cnVjdCBkdXJhdGlvbl90ICpkdXJhdGlv bl9jYXA7CiAJc3NpemVfdCByYzsKLQl1MzIgdGltZW91dDsKLQl1bnNpZ25lZCBpbnQgc2NhbGUg PSAxOwogCiAJdHBtX2NtZC5oZWFkZXIuaW4gPSB0cG1fZ2V0Y2FwX2hlYWRlcjsKIAl0cG1fY21k LnBhcmFtcy5nZXRjYXBfaW4uY2FwID0gVFBNX0NBUF9QUk9QOwpAQCAtNTU0LDI1ICs1NTMsNDYg QEAgdm9pZCB0cG1fZ2V0X3RpbWVvdXRzKHN0cnVjdCB0cG1fY2hpcCAqY2hpcCkKIAkgICAgIT0g c2l6ZW9mKHRwbV9jbWQuaGVhZGVyLm91dCkgKyBzaXplb2YodTMyKSArIDQgKiBzaXplb2YodTMy KSkKIAkJcmV0dXJuOwogCi0JdGltZW91dF9jYXAgPSAmdHBtX2NtZC5wYXJhbXMuZ2V0Y2FwX291 dC5jYXAudGltZW91dDsKLQkvKiBEb24ndCBvdmVyd3JpdGUgZGVmYXVsdCBpZiB2YWx1ZSBpcyAw ICovCi0JdGltZW91dCA9IGJlMzJfdG9fY3B1KHRpbWVvdXRfY2FwLT5hKTsKLQlpZiAodGltZW91 dCAmJiB0aW1lb3V0IDwgMTAwMCkgewotCQkvKiB0aW1lb3V0cyBpbiBtc2VjIHJhdGhlciB1c2Vj ICovCi0JCXNjYWxlID0gMTAwMDsKLQkJY2hpcC0+dmVuZG9yLnRpbWVvdXRfYWRqdXN0ZWQgPSB0 cnVlOworCW9sZF90aW1lb3V0WzBdID0gYmUzMl90b19jcHUodHBtX2NtZC5wYXJhbXMuZ2V0Y2Fw X291dC5jYXAudGltZW91dC5hKTsKKwlvbGRfdGltZW91dFsxXSA9IGJlMzJfdG9fY3B1KHRwbV9j bWQucGFyYW1zLmdldGNhcF9vdXQuY2FwLnRpbWVvdXQuYik7CisJb2xkX3RpbWVvdXRbMl0gPSBi ZTMyX3RvX2NwdSh0cG1fY21kLnBhcmFtcy5nZXRjYXBfb3V0LmNhcC50aW1lb3V0LmMpOworCW9s ZF90aW1lb3V0WzNdID0gYmUzMl90b19jcHUodHBtX2NtZC5wYXJhbXMuZ2V0Y2FwX291dC5jYXAu dGltZW91dC5kKTsKKwltZW1jcHkobmV3X3RpbWVvdXQsIG9sZF90aW1lb3V0LCBzaXplb2YobmV3 X3RpbWVvdXQpKTsKKworCS8qCisJICogUHJvdmlkZSBhYmlsaXR5IGZvciB2ZW5kb3Igb3ZlcnJp ZGVzIG9mIHRpbWVvdXQgdmFsdWVzIGluIGNhc2UKKwkgKiBvZiBtaXNyZXBvcnRpbmcuCisJICov CisJaWYgKGNoaXAtPnZlbmRvci51cGRhdGVfdGltZW91dHMgIT0gTlVMTCkKKwkJY2hpcC0+dmVu ZG9yLnRpbWVvdXRfYWRqdXN0ZWQgPQorCQkJY2hpcC0+dmVuZG9yLnVwZGF0ZV90aW1lb3V0cyhj aGlwLCBuZXdfdGltZW91dCk7CisKKwlpZiAoIWNoaXAtPnZlbmRvci50aW1lb3V0X2FkanVzdGVk KSB7CisJCS8qIERvbid0IG92ZXJ3cml0ZSBkZWZhdWx0IGlmIHZhbHVlIGlzIDAgKi8KKwkJaWYg KG5ld190aW1lb3V0WzBdICE9IDAgJiYgbmV3X3RpbWVvdXRbMF0gPCAxMDAwKSB7CisJCQlpbnQg aTsKKworCQkJLyogdGltZW91dHMgaW4gbXNlYyByYXRoZXIgdXNlYyAqLworCQkJZm9yIChpID0g MDsgaSAhPSBBUlJBWV9TSVpFKG5ld190aW1lb3V0KTsgaSsrKQorCQkJCW5ld190aW1lb3V0W2ld ICo9IDEwMDA7CisJCQljaGlwLT52ZW5kb3IudGltZW91dF9hZGp1c3RlZCA9IHRydWU7CisJCX0K IAl9Ci0JaWYgKHRpbWVvdXQpCi0JCWNoaXAtPnZlbmRvci50aW1lb3V0X2EgPSB1c2Vjc190b19q aWZmaWVzKHRpbWVvdXQgKiBzY2FsZSk7Ci0JdGltZW91dCA9IGJlMzJfdG9fY3B1KHRpbWVvdXRf Y2FwLT5iKTsKLQlpZiAodGltZW91dCkKLQkJY2hpcC0+dmVuZG9yLnRpbWVvdXRfYiA9IHVzZWNz X3RvX2ppZmZpZXModGltZW91dCAqIHNjYWxlKTsKLQl0aW1lb3V0ID0gYmUzMl90b19jcHUodGlt ZW91dF9jYXAtPmMpOwotCWlmICh0aW1lb3V0KQotCQljaGlwLT52ZW5kb3IudGltZW91dF9jID0g dXNlY3NfdG9famlmZmllcyh0aW1lb3V0ICogc2NhbGUpOwotCXRpbWVvdXQgPSBiZTMyX3RvX2Nw dSh0aW1lb3V0X2NhcC0+ZCk7Ci0JaWYgKHRpbWVvdXQpCi0JCWNoaXAtPnZlbmRvci50aW1lb3V0 X2QgPSB1c2Vjc190b19qaWZmaWVzKHRpbWVvdXQgKiBzY2FsZSk7CisKKwkvKiBSZXBvcnQgYWRq dXN0ZWQgdGltZW91dHMgKi8KKwlpZiAoY2hpcC0+dmVuZG9yLnRpbWVvdXRfYWRqdXN0ZWQpIHsK KwkJZGV2X2luZm8oY2hpcC0+ZGV2LAorCQkJIEhXX0VSUiAiQWRqdXN0aW5nIHJlcG9ydGVkIHRp bWVvdXRzOiBBICVsdS0+JWx1dXMgQiAlbHUtPiVsdXVzIEMgJWx1LT4lbHV1cyBEICVsdS0+JWx1 dXNcbiIsCisJCQkgb2xkX3RpbWVvdXRbMF0sIG5ld190aW1lb3V0WzBdLAorCQkJIG9sZF90aW1l b3V0WzFdLCBuZXdfdGltZW91dFsxXSwKKwkJCSBvbGRfdGltZW91dFsyXSwgbmV3X3RpbWVvdXRb Ml0sCisJCQkgb2xkX3RpbWVvdXRbM10sIG5ld190aW1lb3V0WzNdKTsKKwl9CisKKwljaGlwLT52 ZW5kb3IudGltZW91dF9hID0gdXNlY3NfdG9famlmZmllcyhuZXdfdGltZW91dFswXSk7CisJY2hp cC0+dmVuZG9yLnRpbWVvdXRfYiA9IHVzZWNzX3RvX2ppZmZpZXMobmV3X3RpbWVvdXRbMV0pOwor CWNoaXAtPnZlbmRvci50aW1lb3V0X2MgPSB1c2Vjc190b19qaWZmaWVzKG5ld190aW1lb3V0WzJd KTsKKwljaGlwLT52ZW5kb3IudGltZW91dF9kID0gdXNlY3NfdG9famlmZmllcyhuZXdfdGltZW91 dFszXSk7CiAKIGR1cmF0aW9uOgogCXRwbV9jbWQuaGVhZGVyLmluID0gdHBtX2dldGNhcF9oZWFk ZXI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdHBtL3RwbS5oIGIvZHJpdmVycy9jaGFyL3Rw bS90cG0uaAppbmRleCA5YzQxNjNjLi5iZWZiZTY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIv dHBtL3RwbS5oCisrKyBiL2RyaXZlcnMvY2hhci90cG0vdHBtLmgKQEAgLTgwLDYgKzgwLDkgQEAg c3RydWN0IHRwbV92ZW5kb3Jfc3BlY2lmaWMgewogCWludCAoKnNlbmQpIChzdHJ1Y3QgdHBtX2No aXAgKiwgdTggKiwgc2l6ZV90KTsKIAl2b2lkICgqY2FuY2VsKSAoc3RydWN0IHRwbV9jaGlwICop OwogCXU4ICgqc3RhdHVzKSAoc3RydWN0IHRwbV9jaGlwICopOworCWJvb2wgKCp1cGRhdGVfdGlt ZW91dHMpKHN0cnVjdCB0cG1fY2hpcCAqY2hpcCwKKwkJCQl1bnNpZ25lZCBsb25nICp0aW1lb3V0 X2NhcCk7CisKIAl2b2lkICgqcmVsZWFzZSkgKHN0cnVjdCBkZXZpY2UgKik7CiAJc3RydWN0IG1p c2NkZXZpY2UgbWlzY2RldjsKIAlzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICphdHRyX2dyb3VwOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3RwbS90cG1fdGlzLmMgYi9kcml2ZXJzL2NoYXIvdHBt L3RwbV90aXMuYwppbmRleCBjN2U1MjgyLi5mOGU5NGZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2No YXIvdHBtL3RwbV90aXMuYworKysgYi9kcml2ZXJzL2NoYXIvdHBtL3RwbV90aXMuYwpAQCAtMzk2 LDYgKzM5NiwzNiBAQCBvdXRfZXJyOgogCXJldHVybiByYzsKIH0KIAorc3RydWN0IHRpc192ZW5k b3JfdGltZW91dF9vdmVycmlkZSB7CisJdTMyIGRpZF92aWQ7CisJdW5zaWduZWQgbG9uZyB0aW1l b3V0X3VzWzRdOworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB0aXNfdmVuZG9yX3RpbWVvdXRf b3ZlcnJpZGUgdmVuZG9yX3RpbWVvdXRfb3ZlcnJpZGVzW10gPSB7CisJLyogQXRtZWwgMzIwNCAq LworCXsgMHgzMjA0MTExNCwgeyAoVElTX1NIT1JUX1RJTUVPVVQqMTAwMCksIChUSVNfTE9OR19U SU1FT1VUKjEwMDApLAorCQkJKFRJU19TSE9SVF9USU1FT1VUKjEwMDApLCAoVElTX1NIT1JUX1RJ TUVPVVQqMTAwMCkgfSB9LAorfTsKKworc3RhdGljIGJvb2wgdHBtX3Rpc191cGRhdGVfdGltZW91 dHMoc3RydWN0IHRwbV9jaGlwICpjaGlwLAorCQkJCSAgICB1bnNpZ25lZCBsb25nICp0aW1lb3V0 X2NhcCkKK3sKKwlpbnQgaTsKKwl1MzIgZGlkX3ZpZDsKKworCWRpZF92aWQgPSBpb3JlYWQzMihj aGlwLT52ZW5kb3IuaW9iYXNlICsgVFBNX0RJRF9WSUQoMCkpOworCisJZm9yIChpID0gMDsgaSAh PSBBUlJBWV9TSVpFKHZlbmRvcl90aW1lb3V0X292ZXJyaWRlcyk7IGkrKykgeworCQlpZiAodmVu ZG9yX3RpbWVvdXRfb3ZlcnJpZGVzW2ldLmRpZF92aWQgIT0gZGlkX3ZpZCkKKwkJCWNvbnRpbnVl OworCQltZW1jcHkodGltZW91dF9jYXAsIHZlbmRvcl90aW1lb3V0X292ZXJyaWRlc1tpXS50aW1l b3V0X3VzLAorCQkgICAgICAgc2l6ZW9mKHZlbmRvcl90aW1lb3V0X292ZXJyaWRlc1tpXS50aW1l b3V0X3VzKSk7CisJCXJldHVybiB0cnVlOworCX0KKworCXJldHVybiBmYWxzZTsKK30KKwogLyoK ICAqIEVhcmx5IHByb2JpbmcgZm9yIGlUUE0gd2l0aCBTVFNfREFUQV9FWFBFQ1QgZmxhdy4KICAq IFRyeSBzZW5kaW5nIGNvbW1hbmQgd2l0aG91dCBpdHBtIGZsYWcgc2V0IGFuZCBpZiB0aGF0CkBA IC00ODMsNiArNTEzLDcgQEAgc3RhdGljIHN0cnVjdCB0cG1fdmVuZG9yX3NwZWNpZmljIHRwbV90 aXMgPSB7CiAJLnJlY3YgPSB0cG1fdGlzX3JlY3YsCiAJLnNlbmQgPSB0cG1fdGlzX3NlbmQsCiAJ LmNhbmNlbCA9IHRwbV90aXNfcmVhZHksCisJLnVwZGF0ZV90aW1lb3V0cyA9IHRwbV90aXNfdXBk YXRlX3RpbWVvdXRzLAogCS5yZXFfY29tcGxldGVfbWFzayA9IFRQTV9TVFNfREFUQV9BVkFJTCB8 IFRQTV9TVFNfVkFMSUQsCiAJLnJlcV9jb21wbGV0ZV92YWwgPSBUUE1fU1RTX0RBVEFfQVZBSUwg fCBUUE1fU1RTX1ZBTElELAogCS5yZXFfY2FuY2VsZWQgPSBUUE1fU1RTX0NPTU1BTkRfUkVBRFks CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYwppbmRleCA1ZWZiYTQ3Li45YjNmNzg3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMKQEAgLTI3NjUsNiArMjc2NSw3IEBAIHN0YXRpYyB1 MzIgZXZlcmdyZWVuX2dldF9paF93cHRyKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCQl0 bXAgPSBSUkVHMzIoSUhfUkJfQ05UTCk7CiAJCXRtcCB8PSBJSF9XUFRSX09WRVJGTE9XX0NMRUFS OwogCQlXUkVHMzIoSUhfUkJfQ05UTCwgdG1wKTsKKwkJd3B0ciAmPSB+UkJfT1ZFUkZMT1c7CiAJ fQogCXJldHVybiAod3B0ciAmIHJkZXYtPmloLnB0cl9tYXNrKTsKIH0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAw LmMKaW5kZXggZjdlM2NjMC4uYWI0NmE5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yNjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMKQEAgLTMyODAs NiArMzI4MCw3IEBAIHN0YXRpYyB1MzIgcjYwMF9nZXRfaWhfd3B0cihzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldikKIAkJdG1wID0gUlJFRzMyKElIX1JCX0NOVEwpOwogCQl0bXAgfD0gSUhfV1BU Ul9PVkVSRkxPV19DTEVBUjsKIAkJV1JFRzMyKElIX1JCX0NOVEwsIHRtcCk7CisJCXdwdHIgJj0g flJCX09WRVJGTE9XOwogCX0KIAlyZXR1cm4gKHdwdHIgJiByZGV2LT5paC5wdHJfbWFzayk7CiB9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdG9tYmlvcy5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXRvbWJpb3MuYwppbmRleCBlNGU0NTVlLi42 ZDljMzJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdG9tYmlv cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F0b21iaW9zLmMKQEAgLTE4 NzMsNyArMTg3Myw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICp0aGVybWFsX2NvbnRyb2xsZXJfbmFt ZXNbXSA9IHsKIAkiYWRtMTAzMiIsCiAJImFkbTEwMzAiLAogCSJtYXg2NjQ5IiwKLQkibG02NCIs CisJImxtNjMiLCAvKiBsbTY0ICovCiAJImY3NTM3NSIsCiAJImFzYzd4eHgiLAogfTsKQEAgLTE4 ODQsNyArMTg4NCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpwcF9saWJfdGhlcm1hbF9jb250cm9s bGVyX25hbWVzW10gPSB7CiAJImFkbTEwMzIiLAogCSJhZG0xMDMwIiwKIAkibWF4NjY0OSIsCi0J ImxtNjQiLAorCSJsbTYzIiwgLyogbG02NCAqLwogCSJmNzUzNzUiLAogCSJSVjZ4eCIsCiAJIlJW NzcwIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2VfYWxsb2MuYyBi L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3BhZ2VfYWxsb2MuYwppbmRleCA5ZTQzMTNlLi41MDhj NjRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcGFnZV9hbGxvYy5jCkBAIC0zOTgsMTMgKzM5OCwx OCBAQCBzdGF0aWMgaW50IHR0bV9wb29sX2dldF9udW1fdW51c2VkX3BhZ2VzKHZvaWQpCiBzdGF0 aWMgaW50IHR0bV9wb29sX21tX3NocmluayhzdHJ1Y3Qgc2hyaW5rZXIgKnNocmluaywKIAkJCSAg ICAgIHN0cnVjdCBzaHJpbmtfY29udHJvbCAqc2MpCiB7Ci0Jc3RhdGljIGF0b21pY190IHN0YXJ0 X3Bvb2wgPSBBVE9NSUNfSU5JVCgwKTsKKwlzdGF0aWMgREVGSU5FX01VVEVYKGxvY2spOworCXN0 YXRpYyB1bnNpZ25lZCBzdGFydF9wb29sOwogCXVuc2lnbmVkIGk7Ci0JdW5zaWduZWQgcG9vbF9v ZmZzZXQgPSBhdG9taWNfYWRkX3JldHVybigxLCAmc3RhcnRfcG9vbCk7CisJdW5zaWduZWQgcG9v bF9vZmZzZXQ7CiAJc3RydWN0IHR0bV9wYWdlX3Bvb2wgKnBvb2w7CiAJaW50IHNocmlua19wYWdl cyA9IHNjLT5ucl90b19zY2FuOwogCi0JcG9vbF9vZmZzZXQgPSBwb29sX29mZnNldCAlIE5VTV9Q T09MUzsKKwlpZiAoc2hyaW5rX3BhZ2VzID09IDApCisJCWdvdG8gb3V0OworCWlmICghbXV0ZXhf dHJ5bG9jaygmbG9jaykpCisJCXJldHVybiAtMTsKKwlwb29sX29mZnNldCA9ICsrc3RhcnRfcG9v bCAlIE5VTV9QT09MUzsKIAkvKiBzZWxlY3Qgc3RhcnQgcG9vbCBpbiByb3VuZCByb2JpbiBmYXNo aW9uICovCiAJZm9yIChpID0gMDsgaSA8IE5VTV9QT09MUzsgKytpKSB7CiAJCXVuc2lnbmVkIG5y X2ZyZWUgPSBzaHJpbmtfcGFnZXM7CkBAIC00MTMsNiArNDE4LDggQEAgc3RhdGljIGludCB0dG1f cG9vbF9tbV9zaHJpbmsoc3RydWN0IHNocmlua2VyICpzaHJpbmssCiAJCXBvb2wgPSAmX21hbmFn ZXItPnBvb2xzWyhpICsgcG9vbF9vZmZzZXQpJU5VTV9QT09MU107CiAJCXNocmlua19wYWdlcyA9 IHR0bV9wYWdlX3Bvb2xfZnJlZShwb29sLCBucl9mcmVlKTsKIAl9CisJbXV0ZXhfdW5sb2NrKCZs b2NrKTsKK291dDoKIAkvKiByZXR1cm4gZXN0aW1hdGVkIG51bWJlciBvZiB1bnVzZWQgcGFnZXMg aW4gcG9vbCAqLwogCXJldHVybiB0dG1fcG9vbF9nZXRfbnVtX3VudXNlZF9wYWdlcygpOwogfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWNoZXJyeS5jIGIvZHJpdmVycy9oaWQvaGlkLWNo ZXJyeS5jCmluZGV4IDg4OGVjZTYuLmY4NzBiYjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaGlkL2hp ZC1jaGVycnkuYworKysgYi9kcml2ZXJzL2hpZC9oaWQtY2hlcnJ5LmMKQEAgLTI5LDcgKzI5LDcg QEAKIHN0YXRpYyBfX3U4ICpjaF9yZXBvcnRfZml4dXAoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYs IF9fdTggKnJkZXNjLAogCQl1bnNpZ25lZCBpbnQgKnJzaXplKQogewotCWlmICgqcnNpemUgPj0g MTcgJiYgcmRlc2NbMTFdID09IDB4M2MgJiYgcmRlc2NbMTJdID09IDB4MDIpIHsKKwlpZiAoKnJz aXplID49IDE4ICYmIHJkZXNjWzExXSA9PSAweDNjICYmIHJkZXNjWzEyXSA9PSAweDAyKSB7CiAJ CWhpZF9pbmZvKGhkZXYsICJmaXhpbmcgdXAgQ2hlcnJ5IEN5bW90aW9uIHJlcG9ydCBkZXNjcmlw dG9yXG4iKTsKIAkJcmRlc2NbMTFdID0gcmRlc2NbMTZdID0gMHhmZjsKIAkJcmRlc2NbMTJdID0g cmRlc2NbMTddID0gMHgwMzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1reWUuYyBiL2Ry aXZlcnMvaGlkL2hpZC1reWUuYwppbmRleCBmMmJhOWVmLi4yNWRmYjVmIDEwMDY0NAotLS0gYS9k cml2ZXJzL2hpZC9oaWQta3llLmMKKysrIGIvZHJpdmVycy9oaWQvaGlkLWt5ZS5jCkBAIC0yNiw3 ICsyNiw3IEBACiBzdGF0aWMgX191OCAqa3llX3JlcG9ydF9maXh1cChzdHJ1Y3QgaGlkX2Rldmlj ZSAqaGRldiwgX191OCAqcmRlc2MsCiAJCXVuc2lnbmVkIGludCAqcnNpemUpCiB7Ci0JaWYgKCpy c2l6ZSA+PSA3NCAmJgorCWlmICgqcnNpemUgPj0gNzUgJiYKIAkJcmRlc2NbNjFdID09IDB4MDUg JiYgcmRlc2NbNjJdID09IDB4MDggJiYKIAkJcmRlc2NbNjNdID09IDB4MTkgJiYgcmRlc2NbNjRd ID09IDB4MDggJiYKIAkJcmRlc2NbNjVdID09IDB4MjkgJiYgcmRlc2NbNjZdID09IDB4MGYgJiYK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1sZy5jIGIvZHJpdmVycy9oaWQvaGlkLWxnLmMK aW5kZXggZTdhN2JkMS4uM2FkNmNkNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaGlkLWxnLmMK KysrIGIvZHJpdmVycy9oaWQvaGlkLWxnLmMKQEAgLTExMSwxNCArMTExLDE0IEBAIHN0YXRpYyBf X3U4ICpsZ19yZXBvcnRfZml4dXAoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYsIF9fdTggKnJkZXNj LAogewogCXVuc2lnbmVkIGxvbmcgcXVpcmtzID0gKHVuc2lnbmVkIGxvbmcpaGlkX2dldF9kcnZk YXRhKGhkZXYpOwogCi0JaWYgKChxdWlya3MgJiBMR19SREVTQykgJiYgKnJzaXplID49IDkwICYm IHJkZXNjWzgzXSA9PSAweDI2ICYmCisJaWYgKChxdWlya3MgJiBMR19SREVTQykgJiYgKnJzaXpl ID49IDkxICYmIHJkZXNjWzgzXSA9PSAweDI2ICYmCiAJCQlyZGVzY1s4NF0gPT0gMHg4YyAmJiBy ZGVzY1s4NV0gPT0gMHgwMikgewogCQloaWRfaW5mbyhoZGV2LAogCQkJICJmaXhpbmcgdXAgTG9n aXRlY2gga2V5Ym9hcmQgcmVwb3J0IGRlc2NyaXB0b3JcbiIpOwogCQlyZGVzY1s4NF0gPSByZGVz Y1s4OV0gPSAweDRkOwogCQlyZGVzY1s4NV0gPSByZGVzY1s5MF0gPSAweDEwOwogCX0KLQlpZiAo KHF1aXJrcyAmIExHX1JERVNDX1JFTF9BQlMpICYmICpyc2l6ZSA+PSA1MCAmJgorCWlmICgocXVp cmtzICYgTEdfUkRFU0NfUkVMX0FCUykgJiYgKnJzaXplID49IDUxICYmCiAJCQlyZGVzY1szMl0g PT0gMHg4MSAmJiByZGVzY1szM10gPT0gMHgwNiAmJgogCQkJcmRlc2NbNDldID09IDB4ODEgJiYg cmRlc2NbNTBdID09IDB4MDYpIHsKIAkJaGlkX2luZm8oaGRldiwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvaGlkL2hpZC1sb2dpdGVjaC1kai5jIGIvZHJpdmVycy9oaWQvaGlkLWxvZ2l0ZWNoLWRqLmMK aW5kZXggODI4YTBkZC4uNDg4YTIxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaGlkLWxvZ2l0 ZWNoLWRqLmMKKysrIGIvZHJpdmVycy9oaWQvaGlkLWxvZ2l0ZWNoLWRqLmMKQEAgLTIzMCwxMyAr MjMwLDYgQEAgc3RhdGljIHZvaWQgbG9naV9kal9yZWN2X2FkZF9kamhpZF9kZXZpY2Uoc3RydWN0 IGRqX3JlY2VpdmVyX2RldiAqZGpyY3ZfZGV2LAogCQlyZXR1cm47CiAJfQogCi0JaWYgKChkal9y ZXBvcnQtPmRldmljZV9pbmRleCA8IERKX0RFVklDRV9JTkRFWF9NSU4pIHx8Ci0JICAgIChkal9y ZXBvcnQtPmRldmljZV9pbmRleCA+IERKX0RFVklDRV9JTkRFWF9NQVgpKSB7Ci0JCWRldl9lcnIo JmRqcmN2X2hkZXYtPmRldiwgIiVzOiBpbnZhbGlkIGRldmljZSBpbmRleDolZFxuIiwKLQkJCV9f ZnVuY19fLCBkal9yZXBvcnQtPmRldmljZV9pbmRleCk7Ci0JCXJldHVybjsKLQl9Ci0KIAlpZiAo ZGpyY3ZfZGV2LT5wYWlyZWRfZGpfZGV2aWNlc1tkal9yZXBvcnQtPmRldmljZV9pbmRleF0pIHsK IAkJLyogVGhlIGRldmljZSBpcyBhbHJlYWR5IGtub3duLiBObyBuZWVkIHRvIHJlYWxsb2NhdGUg aXQuICovCiAJCWRiZ19oaWQoIiVzOiBkZXZpY2UgaXMgYWxyZWFkeSBrbm93blxuIiwgX19mdW5j X18pOwpAQCAtNjg2LDcgKzY3OSw2IEBAIHN0YXRpYyBpbnQgbG9naV9kal9yYXdfZXZlbnQoc3Ry dWN0IGhpZF9kZXZpY2UgKmhkZXYsCiAJc3RydWN0IGRqX3JlY2VpdmVyX2RldiAqZGpyY3ZfZGV2 ID0gaGlkX2dldF9kcnZkYXRhKGhkZXYpOwogCXN0cnVjdCBkal9yZXBvcnQgKmRqX3JlcG9ydCA9 IChzdHJ1Y3QgZGpfcmVwb3J0ICopIGRhdGE7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQlib29s IHJlcG9ydF9wcm9jZXNzZWQgPSBmYWxzZTsKIAogCWRiZ19oaWQoIiVzLCBzaXplOiVkXG4iLCBf X2Z1bmNfXywgc2l6ZSk7CiAKQEAgLTcxNCwyNyArNzA2LDQxIEBAIHN0YXRpYyBpbnQgbG9naV9k al9yYXdfZXZlbnQoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYsCiAJICogYW55dGhpbmcgZWxzZSB3 aXRoIGl0LgogCSAqLwogCisJLyogY2FzZSAxKSAqLworCWlmIChkYXRhWzBdICE9IFJFUE9SVF9J RF9ESl9TSE9SVCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKChkal9yZXBvcnQtPmRldmljZV9p bmRleCA8IERKX0RFVklDRV9JTkRFWF9NSU4pIHx8CisJICAgIChkal9yZXBvcnQtPmRldmljZV9p bmRleCA+IERKX0RFVklDRV9JTkRFWF9NQVgpKSB7CisJCS8qCisJCSAqIERldmljZSBpbmRleCBp cyB3cm9uZywgYmFpbCBvdXQuCisJCSAqIFRoaXMgZHJpdmVyIGNhbiBpZ25vcmUgc2FmZWx5IHRo ZSByZWNlaXZlciBub3RpZmljYXRpb25zLAorCQkgKiBzbyBpZ25vcmUgdGhvc2UgcmVwb3J0cyB0 b28uCisJCSAqLworCQlpZiAoZGpfcmVwb3J0LT5kZXZpY2VfaW5kZXggIT0gREpfUkVDRUlWRVJf SU5ERVgpCisJCQlkZXZfZXJyKCZoZGV2LT5kZXYsICIlczogaW52YWxpZCBkZXZpY2UgaW5kZXg6 JWRcbiIsCisJCQkJX19mdW5jX18sIGRqX3JlcG9ydC0+ZGV2aWNlX2luZGV4KTsKKwkJcmV0dXJu IGZhbHNlOworCX0KKwogCXNwaW5fbG9ja19pcnFzYXZlKCZkanJjdl9kZXYtPmxvY2ssIGZsYWdz KTsKLQlpZiAoZGpfcmVwb3J0LT5yZXBvcnRfaWQgPT0gUkVQT1JUX0lEX0RKX1NIT1JUKSB7Ci0J CXN3aXRjaCAoZGpfcmVwb3J0LT5yZXBvcnRfdHlwZSkgewotCQljYXNlIFJFUE9SVF9UWVBFX05P VElGX0RFVklDRV9QQUlSRUQ6Ci0JCWNhc2UgUkVQT1JUX1RZUEVfTk9USUZfREVWSUNFX1VOUEFJ UkVEOgotCQkJbG9naV9kal9yZWN2X3F1ZXVlX25vdGlmaWNhdGlvbihkanJjdl9kZXYsIGRqX3Jl cG9ydCk7Ci0JCQlicmVhazsKLQkJY2FzZSBSRVBPUlRfVFlQRV9OT1RJRl9DT05ORUNUSU9OX1NU QVRVUzoKLQkJCWlmIChkal9yZXBvcnQtPnJlcG9ydF9wYXJhbXNbQ09OTkVDVElPTl9TVEFUVVNf UEFSQU1fU1RBVFVTXSA9PQotCQkJICAgIFNUQVRVU19MSU5LTE9TUykgewotCQkJCWxvZ2lfZGpf cmVjdl9mb3J3YXJkX251bGxfcmVwb3J0KGRqcmN2X2RldiwgZGpfcmVwb3J0KTsKLQkJCX0KLQkJ CWJyZWFrOwotCQlkZWZhdWx0OgotCQkJbG9naV9kal9yZWN2X2ZvcndhcmRfcmVwb3J0KGRqcmN2 X2RldiwgZGpfcmVwb3J0KTsKKwlzd2l0Y2ggKGRqX3JlcG9ydC0+cmVwb3J0X3R5cGUpIHsKKwlj YXNlIFJFUE9SVF9UWVBFX05PVElGX0RFVklDRV9QQUlSRUQ6CisJY2FzZSBSRVBPUlRfVFlQRV9O T1RJRl9ERVZJQ0VfVU5QQUlSRUQ6CisJCWxvZ2lfZGpfcmVjdl9xdWV1ZV9ub3RpZmljYXRpb24o ZGpyY3ZfZGV2LCBkal9yZXBvcnQpOworCQlicmVhazsKKwljYXNlIFJFUE9SVF9UWVBFX05PVElG X0NPTk5FQ1RJT05fU1RBVFVTOgorCQlpZiAoZGpfcmVwb3J0LT5yZXBvcnRfcGFyYW1zW0NPTk5F Q1RJT05fU1RBVFVTX1BBUkFNX1NUQVRVU10gPT0KKwkJICAgIFNUQVRVU19MSU5LTE9TUykgewor CQkJbG9naV9kal9yZWN2X2ZvcndhcmRfbnVsbF9yZXBvcnQoZGpyY3ZfZGV2LCBkal9yZXBvcnQp OwogCQl9Ci0JCXJlcG9ydF9wcm9jZXNzZWQgPSB0cnVlOworCQlicmVhazsKKwlkZWZhdWx0Ogor CQlsb2dpX2RqX3JlY3ZfZm9yd2FyZF9yZXBvcnQoZGpyY3ZfZGV2LCBkal9yZXBvcnQpOwogCX0K IAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkanJjdl9kZXYtPmxvY2ssIGZsYWdzKTsKIAotCXJl dHVybiByZXBvcnRfcHJvY2Vzc2VkOworCXJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgaW50IGxv Z2lfZGpfcHJvYmUoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYsCmRpZmYgLS1naXQgYS9kcml2ZXJz L2hpZC9oaWQtbG9naXRlY2gtZGouaCBiL2RyaXZlcnMvaGlkL2hpZC1sb2dpdGVjaC1kai5oCmlu ZGV4IDRhNDAwMDMuLmRhZWIwYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaGlkL2hpZC1sb2dpdGVj aC1kai5oCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1sb2dpdGVjaC1kai5oCkBAIC0yNyw2ICsyNyw3 IEBACiAKICNkZWZpbmUgREpfTUFYX1BBSVJFRF9ERVZJQ0VTCQkJNgogI2RlZmluZSBESl9NQVhf TlVNQkVSX05PVElGSUNBVElPTlMJCTgKKyNkZWZpbmUgREpfUkVDRUlWRVJfSU5ERVgJCQkwCiAj ZGVmaW5lIERKX0RFVklDRV9JTkRFWF9NSU4gCQkJMQogI2RlZmluZSBESl9ERVZJQ0VfSU5ERVhf TUFYIAkJCTYKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLW1hZ2ljbW91c2UuYyBiL2Ry aXZlcnMvaGlkL2hpZC1tYWdpY21vdXNlLmMKaW5kZXggN2NmM2ZmZS4uODEzNTZmNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9oaWQvaGlkLW1hZ2ljbW91c2UuYworKysgYi9kcml2ZXJzL2hpZC9oaWQt bWFnaWNtb3VzZS5jCkBAIC0zMDgsNiArMzA4LDExIEBAIHN0YXRpYyBpbnQgbWFnaWNtb3VzZV9y YXdfZXZlbnQoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYsCiAJCWlmIChzaXplIDwgNCB8fCAoKHNp emUgLSA0KSAlIDkpICE9IDApCiAJCQlyZXR1cm4gMDsKIAkJbnBvaW50cyA9IChzaXplIC0gNCkg LyA5OworCQlpZiAobnBvaW50cyA+IDE1KSB7CisJCQloaWRfd2FybihoZGV2LCAiaW52YWxpZCBz aXplIHZhbHVlICglZCkgZm9yIFRSQUNLUEFEX1JFUE9SVF9JRFxuIiwKKwkJCQkJc2l6ZSk7CisJ CQlyZXR1cm4gMDsKKwkJfQogCQltc2MtPm50b3VjaGVzID0gMDsKIAkJZm9yIChpaSA9IDA7IGlp IDwgbnBvaW50czsgaWkrKykKIAkJCW1hZ2ljbW91c2VfZW1pdF90b3VjaChtc2MsIGlpLCBkYXRh ICsgaWkgKiA5ICsgNCk7CkBAIC0zMzEsNiArMzM2LDExIEBAIHN0YXRpYyBpbnQgbWFnaWNtb3Vz ZV9yYXdfZXZlbnQoc3RydWN0IGhpZF9kZXZpY2UgKmhkZXYsCiAJCWlmIChzaXplIDwgNiB8fCAo KHNpemUgLSA2KSAlIDgpICE9IDApCiAJCQlyZXR1cm4gMDsKIAkJbnBvaW50cyA9IChzaXplIC0g NikgLyA4OworCQlpZiAobnBvaW50cyA+IDE1KSB7CisJCQloaWRfd2FybihoZGV2LCAiaW52YWxp ZCBzaXplIHZhbHVlICglZCkgZm9yIE1PVVNFX1JFUE9SVF9JRFxuIiwKKwkJCQkJc2l6ZSk7CisJ CQlyZXR1cm4gMDsKKwkJfQogCQltc2MtPm50b3VjaGVzID0gMDsKIAkJZm9yIChpaSA9IDA7IGlp IDwgbnBvaW50czsgaWkrKykKIAkJCW1hZ2ljbW91c2VfZW1pdF90b3VjaChtc2MsIGlpLCBkYXRh ICsgaWkgKiA4ICsgNik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtbW9udGVyZXkuYyBi L2RyaXZlcnMvaGlkL2hpZC1tb250ZXJleS5jCmluZGV4IGRlZGY3NTcuLmViMDI3MWUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvaGlkL2hpZC1tb250ZXJleS5jCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1t b250ZXJleS5jCkBAIC0yNSw3ICsyNSw3IEBACiBzdGF0aWMgX191OCAqbXJfcmVwb3J0X2ZpeHVw KHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2LCBfX3U4ICpyZGVzYywKIAkJdW5zaWduZWQgaW50ICpy c2l6ZSkKIHsKLQlpZiAoKnJzaXplID49IDMwICYmIHJkZXNjWzI5XSA9PSAweDA1ICYmIHJkZXNj WzMwXSA9PSAweDA5KSB7CisJaWYgKCpyc2l6ZSA+PSAzMSAmJiByZGVzY1syOV0gPT0gMHgwNSAm JiByZGVzY1szMF0gPT0gMHgwOSkgewogCQloaWRfaW5mbyhoZGV2LCAiZml4aW5nIHVwIGJ1dHRv bi9jb25zdW1lciBpbiBISUQgcmVwb3J0IGRlc2NyaXB0b3JcbiIpOwogCQlyZGVzY1szMF0gPSAw eDBjOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1wZXRhbHlueC5jIGIvZHJpdmVy cy9oaWQvaGlkLXBldGFseW54LmMKaW5kZXggZjFlYTNmZi4uOTlmMzE3YSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9oaWQvaGlkLXBldGFseW54LmMKKysrIGIvZHJpdmVycy9oaWQvaGlkLXBldGFseW54 LmMKQEAgLTI2LDcgKzI2LDcgQEAKIHN0YXRpYyBfX3U4ICpwbF9yZXBvcnRfZml4dXAoc3RydWN0 IGhpZF9kZXZpY2UgKmhkZXYsIF9fdTggKnJkZXNjLAogCQl1bnNpZ25lZCBpbnQgKnJzaXplKQog ewotCWlmICgqcnNpemUgPj0gNjAgJiYgcmRlc2NbMzldID09IDB4MmEgJiYgcmRlc2NbNDBdID09 IDB4ZjUgJiYKKwlpZiAoKnJzaXplID49IDYyICYmIHJkZXNjWzM5XSA9PSAweDJhICYmIHJkZXNj WzQwXSA9PSAweGY1ICYmCiAJCQlyZGVzY1s0MV0gPT0gMHgwMCAmJiByZGVzY1s1OV0gPT0gMHgy NiAmJgogCQkJcmRlc2NbNjBdID09IDB4ZjkgJiYgcmRlc2NbNjFdID09IDB4MDApIHsKIAkJaGlk X2luZm8oaGRldiwgImZpeGluZyB1cCBQZXRhbHlueCBNYXh0ZXIgUmVtb3RlIHJlcG9ydCBkZXNj cmlwdG9yXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1waWNvbGNkLmMgYi9kcml2 ZXJzL2hpZC9oaWQtcGljb2xjZC5jCmluZGV4IDFkYWVhY2EuLmM5NTIxMzEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvaGlkL2hpZC1waWNvbGNkLmMKKysrIGIvZHJpdmVycy9oaWQvaGlkLXBpY29sY2Qu YwpAQCAtMjM4Miw2ICsyMzgyLDEyIEBAIHN0YXRpYyBpbnQgcGljb2xjZF9yYXdfZXZlbnQoc3Ry dWN0IGhpZF9kZXZpY2UgKmhkZXYsCiAJaWYgKCFkYXRhKQogCQlyZXR1cm4gMTsKIAorCWlmIChz aXplID4gNjQpIHsKKwkJaGlkX3dhcm4oaGRldiwgImludmFsaWQgc2l6ZSB2YWx1ZSAoJWQpIGZv ciBwaWNvbGNkIHJhdyBldmVudFxuIiwKKwkJCQlzaXplKTsKKwkJcmV0dXJuIDA7CisJfQorCiAJ aWYgKHJlcG9ydC0+aWQgPT0gUkVQT1JUX0tFWV9TVEFURSkgewogCQlpZiAoZGF0YS0+aW5wdXRf a2V5cykKIAkJCXJldCA9IHBpY29sY2RfcmF3X2tleXBhZChkYXRhLCByZXBvcnQsIHJhd19kYXRh KzEsIHNpemUtMSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtc3VucGx1cy5jIGIvZHJp dmVycy9oaWQvaGlkLXN1bnBsdXMuYwppbmRleCBkNDg0YTAwLi4zZDZhZTdiIDEwMDY0NAotLS0g YS9kcml2ZXJzL2hpZC9oaWQtc3VucGx1cy5jCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1zdW5wbHVz LmMKQEAgLTI1LDcgKzI1LDcgQEAKIHN0YXRpYyBfX3U4ICpzcF9yZXBvcnRfZml4dXAoc3RydWN0 IGhpZF9kZXZpY2UgKmhkZXYsIF9fdTggKnJkZXNjLAogCQl1bnNpZ25lZCBpbnQgKnJzaXplKQog ewotCWlmICgqcnNpemUgPj0gMTA3ICYmIHJkZXNjWzEwNF0gPT0gMHgyNiAmJiByZGVzY1sxMDVd ID09IDB4ODAgJiYKKwlpZiAoKnJzaXplID49IDExMiAmJiByZGVzY1sxMDRdID09IDB4MjYgJiYg cmRlc2NbMTA1XSA9PSAweDgwICYmCiAJCQlyZGVzY1sxMDZdID09IDB4MDMpIHsKIAkJaGlkX2lu Zm8oaGRldiwgImZpeGluZyB1cCBTdW5wbHVzIFdpcmVsZXNzIERlc2t0b3AgcmVwb3J0IGRlc2Ny aXB0b3JcbiIpOwogCQlyZGVzY1sxMDVdID0gcmRlc2NbMTEwXSA9IDB4MDM7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2h3bW9uL2FkczEwMTUuYyBiL2RyaXZlcnMvaHdtb24vYWRzMTAxNS5jCmluZGV4 IGRkODdhZTkuLjJmMTRjYWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vYWRzMTAxNS5jCisr KyBiL2RyaXZlcnMvaHdtb24vYWRzMTAxNS5jCkBAIC0xODYsNyArMTg2LDcgQEAgc3RhdGljIGlu dCBhZHMxMDE1X2dldF9jaGFubmVsc19jb25maWdfb2Yoc3RydWN0IGkyY19jbGllbnQgKmNsaWVu dCkKIAkJfQogCiAJCWNoYW5uZWwgPSBiZTMyX3RvX2NwdXAocHJvcGVydHkpOwotCQlpZiAoY2hh bm5lbCA+IEFEUzEwMTVfQ0hBTk5FTFMpIHsKKwkJaWYgKGNoYW5uZWwgPj0gQURTMTAxNV9DSEFO TkVMUykgewogCQkJZGV2X2VycigmY2xpZW50LT5kZXYsCiAJCQkJImludmFsaWQgY2hhbm5lbCBp bmRleCAlZCBvbiAlc1xuIiwKIAkJCQljaGFubmVsLCBub2RlLT5mdWxsX25hbWUpOwpAQCAtMjAw LDYgKzIwMCw3IEBAIHN0YXRpYyBpbnQgYWRzMTAxNV9nZXRfY2hhbm5lbHNfY29uZmlnX29mKHN0 cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiAJCQkJZGV2X2VycigmY2xpZW50LT5kZXYsCiAJCQkJ CSJpbnZhbGlkIGdhaW4gb24gJXNcbiIsCiAJCQkJCW5vZGUtPmZ1bGxfbmFtZSk7CisJCQkJcmV0 dXJuIC1FSU5WQUw7CiAJCQl9CiAJCX0KIApAQCAtMjEwLDYgKzIxMSw3IEBAIHN0YXRpYyBpbnQg YWRzMTAxNV9nZXRfY2hhbm5lbHNfY29uZmlnX29mKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQp CiAJCQkJZGV2X2VycigmY2xpZW50LT5kZXYsCiAJCQkJCSJpbnZhbGlkIGRhdGFfcmF0ZSBvbiAl c1xuIiwKIAkJCQkJbm9kZS0+ZnVsbF9uYW1lKTsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCX0K IAkJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2FtYzY4MjEuYyBiL2RyaXZlcnMvaHdt b24vYW1jNjgyMS5jCmluZGV4IDc1YmU2YzQuLmI3ZjMzNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv aHdtb24vYW1jNjgyMS5jCisrKyBiL2RyaXZlcnMvaHdtb24vYW1jNjgyMS5jCkBAIC0zNjAsMTEg KzM2MCwxMyBAQCBzdGF0aWMgc3NpemVfdCBzZXRfcHdtMV9lbmFibGUoCiAJaWYgKGNvbmZpZykK IAkJcmV0dXJuIGNvbmZpZzsKIAorCW11dGV4X2xvY2soJmRhdGEtPnVwZGF0ZV9sb2NrKTsKIAlj b25maWcgPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xpZW50LCBBTUM2ODIxX1JFR19DT05G MSk7CiAJaWYgKGNvbmZpZyA8IDApIHsKIAkJCWRldl9lcnIoJmNsaWVudC0+ZGV2LAogCQkJIkVy cm9yIHJlYWRpbmcgY29uZmlndXJhdGlvbiByZWdpc3RlciwgYWJvcnRpbmcuXG4iKTsKLQkJCXJl dHVybiAtRUlPOworCQkJY291bnQgPSBjb25maWc7CisJCQlnb3RvIHVubG9jazsKIAl9CiAKIAlz d2l0Y2ggKHZhbCkgewpAQCAtMzgxLDE0ICszODMsMTUgQEAgc3RhdGljIHNzaXplX3Qgc2V0X3B3 bTFfZW5hYmxlKAogCQljb25maWcgfD0gQU1DNjgyMV9DT05GMV9GRFJDMTsKIAkJYnJlYWs7CiAJ ZGVmYXVsdDoKLQkJcmV0dXJuIC1FSU5WQUw7CisJCWNvdW50ID0gLUVJTlZBTDsKKwkJZ290byB1 bmxvY2s7CiAJfQotCW11dGV4X2xvY2soJmRhdGEtPnVwZGF0ZV9sb2NrKTsKIAlpZiAoaTJjX3Nt YnVzX3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIEFNQzY4MjFfUkVHX0NPTkYxLCBjb25maWcpKSB7 CiAJCQlkZXZfZXJyKCZjbGllbnQtPmRldiwKIAkJCSJDb25maWd1cmF0aW9uIHJlZ2lzdGVyIHdy aXRlIGVycm9yLCBhYm9ydGluZy5cbiIpOwogCQkJY291bnQgPSAtRUlPOwogCX0KK3VubG9jazoK IAltdXRleF91bmxvY2soJmRhdGEtPnVwZGF0ZV9sb2NrKTsKIAlyZXR1cm4gY291bnQ7CiB9CkBA IC00OTUsOCArNDk4LDkgQEAgc3RhdGljIHNzaXplX3Qgc2V0X3RlbXBfYXV0b19wb2ludF90ZW1w KAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlkYXRhLT52YWxpZCA9IDA7CiAJbXV0ZXhfbG9j aygmZGF0YS0+dXBkYXRlX2xvY2spOworCWRhdGEtPnZhbGlkID0gMDsKKwogCXN3aXRjaCAoaXgp IHsKIAljYXNlIDA6CiAJCXB0ZW1wWzBdID0gU0VOU09SU19MSU1JVCh2YWwgLyAxMDAwLCAwLApA QCAtNjY5LDEzICs2NzMsMTQgQEAgc3RhdGljIHNzaXplX3Qgc2V0X2ZhbjFfZGl2KAogCWlmIChj b25maWcpCiAJCXJldHVybiBjb25maWc7CiAKKwltdXRleF9sb2NrKCZkYXRhLT51cGRhdGVfbG9j ayk7CiAJY29uZmlnID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgQU1DNjgyMV9S RUdfQ09ORjQpOwogCWlmIChjb25maWcgPCAwKSB7CiAJCWRldl9lcnIoJmNsaWVudC0+ZGV2LAog CQkJIkVycm9yIHJlYWRpbmcgY29uZmlndXJhdGlvbiByZWdpc3RlciwgYWJvcnRpbmcuXG4iKTsK LQkJcmV0dXJuIC1FSU87CisJCWNvdW50ID0gY29uZmlnOworCQlnb3RvIEVYSVQ7CiAJfQotCW11 dGV4X2xvY2soJmRhdGEtPnVwZGF0ZV9sb2NrKTsKIAlzd2l0Y2ggKHZhbCkgewogCWNhc2UgMjoK IAkJY29uZmlnICY9IH5BTUM2ODIxX0NPTkY0X1BTUFI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3 bW9uL2dwaW8tZmFuLmMgYi9kcml2ZXJzL2h3bW9uL2dwaW8tZmFuLmMKaW5kZXggOWJhMzhmMy4u MDVjNGY0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9ncGlvLWZhbi5jCisrKyBiL2RyaXZl cnMvaHdtb24vZ3Bpby1mYW4uYwpAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYyBpbnQgZ2V0X2Zh bl9zcGVlZF9pbmRleChzdHJ1Y3QgZ3Bpb19mYW5fZGF0YSAqZmFuX2RhdGEpCiAJcmV0dXJuIC1F SU5WQUw7CiB9CiAKLXN0YXRpYyBpbnQgcnBtX3RvX3NwZWVkX2luZGV4KHN0cnVjdCBncGlvX2Zh bl9kYXRhICpmYW5fZGF0YSwgaW50IHJwbSkKK3N0YXRpYyBpbnQgcnBtX3RvX3NwZWVkX2luZGV4 KHN0cnVjdCBncGlvX2Zhbl9kYXRhICpmYW5fZGF0YSwgdW5zaWduZWQgbG9uZyBycG0pCiB7CiAJ c3RydWN0IGdwaW9fZmFuX3NwZWVkICpzcGVlZCA9IGZhbl9kYXRhLT5zcGVlZDsKIAlpbnQgaTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbG03OC5jIGIvZHJpdmVycy9od21vbi9sbTc4LmMK aW5kZXggYTQyYTdiMC4uNWNlNWQ1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sbTc4LmMK KysrIGIvZHJpdmVycy9od21vbi9sbTc4LmMKQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgaW5s aW5lIGludCBGQU5fRlJPTV9SRUcodTggdmFsLCBpbnQgZGl2KQogCiAvKiBURU1QOiBtQyAoLTEy OEMgdG8gKzEyN0MpCiAgICBSRUc6IDFDL2JpdCwgdHdvJ3MgY29tcGxlbWVudCAqLwotc3RhdGlj IGlubGluZSBzOCBURU1QX1RPX1JFRyhpbnQgdmFsKQorc3RhdGljIGlubGluZSBzOCBURU1QX1RP X1JFRyhsb25nIHZhbCkKIHsKIAlpbnQgbnZhbCA9IFNFTlNPUlNfTElNSVQodmFsLCAtMTI4MDAw LCAxMjcwMDApIDsKIAlyZXR1cm4gbnZhbDwwID8gKG52YWwtNTAwKS8xMDAwIDogKG52YWwrNTAw KS8xMDAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9sbTg1LmMgYi9kcml2ZXJzL2h3bW9u L2xtODUuYwppbmRleCBkYTcyZGMxLi45N2JmYmEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9u L2xtODUuYworKysgYi9kcml2ZXJzL2h3bW9uL2xtODUuYwpAQCAtMTU3LDcgKzE1Nyw3IEBAIHN0 YXRpYyBpbmxpbmUgdTE2IEZBTl9UT19SRUcodW5zaWduZWQgbG9uZyB2YWwpCiAKIC8qIFRlbXBl cmF0dXJlIGlzIHJlcG9ydGVkIGluIC4wMDEgZGVnQyBpbmNyZW1lbnRzICovCiAjZGVmaW5lIFRF TVBfVE9fUkVHKHZhbCkJXAotCQlTRU5TT1JTX0xJTUlUKFNDQUxFKHZhbCwgMTAwMCwgMSksIC0x MjcsIDEyNykKKwkJRElWX1JPVU5EX0NMT1NFU1QoU0VOU09SU19MSU1JVCgodmFsKSwgLTEyNzAw MCwgMTI3MDAwKSwgMTAwMCkKICNkZWZpbmUgVEVNUEVYVF9GUk9NX1JFRyh2YWwsIGV4dCkJXAog CQlTQ0FMRSgoKHZhbCkgPDwgNCkgKyAoZXh0KSwgMTYsIDEwMDApCiAjZGVmaW5lIFRFTVBfRlJP TV9SRUcodmFsKQkoKHZhbCkgKiAxMDAwKQpAQCAtMTkwLDcgKzE5MCw3IEBAIHN0YXRpYyBjb25z dCBpbnQgbG04NV9yYW5nZV9tYXBbXSA9IHsKIAkxMzMwMCwgMTYwMDAsIDIwMDAwLCAyNjYwMCwg MzIwMDAsIDQwMDAwLCA1MzMwMCwgODAwMDAKIH07CiAKLXN0YXRpYyBpbnQgUkFOR0VfVE9fUkVH KGludCByYW5nZSkKK3N0YXRpYyBpbnQgUkFOR0VfVE9fUkVHKGxvbmcgcmFuZ2UpCiB7CiAJaW50 IGk7CiAKQEAgLTIxMiw3ICsyMTIsNyBAQCBzdGF0aWMgY29uc3QgaW50IGFkbTEwMjdfZnJlcV9t YXBbOF0gPSB7IC8qIDEgSHogKi8KIAkxMSwgMTUsIDIyLCAyOSwgMzUsIDQ0LCA1OSwgODgKIH07 CiAKLXN0YXRpYyBpbnQgRlJFUV9UT19SRUcoY29uc3QgaW50ICptYXAsIGludCBmcmVxKQorc3Rh dGljIGludCBGUkVRX1RPX1JFRyhjb25zdCBpbnQgKm1hcCwgdW5zaWduZWQgbG9uZyBmcmVxKQog ewogCWludCBpOwogCkBAIC00NDMsNyArNDQzLDEzIEBAIHN0YXRpYyBzc2l6ZV90IHN0b3JlX3Zy bV9yZWcoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwK IAkJY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCiB7CiAJc3RydWN0IGxtODVfZGF0YSAq ZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCWRhdGEtPnZybSA9IHNpbXBsZV9zdHJ0b3Vs KGJ1ZiwgTlVMTCwgMTApOworCXVuc2lnbmVkIGxvbmcgdmFsOworCisJdmFsID0gc2ltcGxlX3N0 cnRvdWwoYnVmLCBOVUxMLCAxMCk7CisJaWYgKHZhbCA+IDI1NSkKKwkJcmV0dXJuIC1FSU5WQUw7 CisKKwlkYXRhLT52cm0gPSB2YWw7CiAJcmV0dXJuIGNvdW50OwogfQogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2h3bW9uL2xtOTIuYyBiL2RyaXZlcnMvaHdtb24vbG05Mi5jCmluZGV4IDhmY2JkNGQ0 Li41ZDA5MWZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2xtOTIuYworKysgYi9kcml2ZXJz L2h3bW9uL2xtOTIuYwpAQCAtNzMsMTIgKzczLDkgQEAgc3RhdGljIGlubGluZSBpbnQgVEVNUF9G Uk9NX1JFRyhzMTYgcmVnKQogCXJldHVybiByZWcgLyA4ICogNjI1IC8gMTA7CiB9CiAKLXN0YXRp YyBpbmxpbmUgczE2IFRFTVBfVE9fUkVHKGludCB2YWwpCitzdGF0aWMgaW5saW5lIHMxNiBURU1Q X1RPX1JFRyhsb25nIHZhbCkKIHsKLQlpZiAodmFsIDw9IC02MDAwMCkKLQkJcmV0dXJuIC02MDAw MCAqIDEwIC8gNjI1ICogODsKLQlpZiAodmFsID49IDE2MDAwMCkKLQkJcmV0dXJuIDE2MDAwMCAq IDEwIC8gNjI1ICogODsKKwl2YWwgPSBjbGFtcF92YWwodmFsLCAtNjAwMDAsIDE2MDAwMCk7CiAJ cmV0dXJuIHZhbCAqIDEwIC8gNjI1ICogODsKIH0KIApAQCAtMTkyLDEwICsxODksMTIgQEAgc3Rh dGljIHNzaXplX3Qgc2V0X3RlbXAxX2NyaXRfaHlzdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBkZXZpY2VfYXR0cmlidXRlICoKIAlzdHJ1Y3QgbG05Ml9kYXRhICpkYXRhID0gaTJjX2dldF9j bGllbnRkYXRhKGNsaWVudCk7CiAJbG9uZyB2YWwgPSBzaW1wbGVfc3RydG9sKGJ1ZiwgTlVMTCwg MTApOwogCisJdmFsID0gY2xhbXBfdmFsKHZhbCwgLTEyMDAwMCwgMjIwMDAwKTsKIAltdXRleF9s b2NrKCZkYXRhLT51cGRhdGVfbG9jayk7Ci0JZGF0YS0+dGVtcDFfaHlzdCA9IFRFTVBfRlJPTV9S RUcoZGF0YS0+dGVtcDFfY3JpdCkgLSB2YWw7CisJIGRhdGEtPnRlbXAxX2h5c3QgPQorCQlURU1Q X1RPX1JFRyhURU1QX0ZST01fUkVHKGRhdGEtPnRlbXAxX2NyaXQpIC0gdmFsKTsKIAlpMmNfc21i dXNfd3JpdGVfd29yZF9zd2FwcGVkKGNsaWVudCwgTE05Ml9SRUdfVEVNUF9IWVNULAotCQkJCSAg ICAgVEVNUF9UT19SRUcoZGF0YS0+dGVtcDFfaHlzdCkpOworCQkJCSAgICAgZGF0YS0+dGVtcDFf aHlzdCk7CiAJbXV0ZXhfdW5sb2NrKCZkYXRhLT51cGRhdGVfbG9jayk7CiAJcmV0dXJuIGNvdW50 OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9zaXM1NTk1LmMgYi9kcml2ZXJzL2h3bW9u L3NpczU1OTUuYwppbmRleCA1YWI2OTUzLi4wMjlhMmUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3 bW9uL3NpczU1OTUuYworKysgYi9kcml2ZXJzL2h3bW9uL3NpczU1OTUuYwpAQCAtMTQ5LDcgKzE0 OSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IFRFTVBfRlJPTV9SRUcoczggdmFsKQogewogCXJldHVy biB2YWwgKiA4MzAgKyA1MjEyMDsKIH0KLXN0YXRpYyBpbmxpbmUgczggVEVNUF9UT19SRUcoaW50 IHZhbCkKK3N0YXRpYyBpbmxpbmUgczggVEVNUF9UT19SRUcobG9uZyB2YWwpCiB7CiAJaW50IG52 YWwgPSBTRU5TT1JTX0xJTUlUKHZhbCwgLTU0MTIwLCAxNTc1MzApIDsKIAlyZXR1cm4gbnZhbDww ID8gKG52YWwtNTIxMi00MTUpLzgzMCA6IChudmFsLTUyMTIrNDE1KS84MzA7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2h3bW9uL3Ntc2M0N20xOTIuYyBiL2RyaXZlcnMvaHdtb24vc21zYzQ3bTE5Mi5j CmluZGV4IDQwYjI2NjcuLjdkMTM3M2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vc21zYzQ3 bTE5Mi5jCisrKyBiL2RyaXZlcnMvaHdtb24vc21zYzQ3bTE5Mi5jCkBAIC04NCw3ICs4NCw3IEBA IHN0YXRpYyBpbmxpbmUgdTggSU5fVE9fUkVHKHVuc2lnbmVkIGxvbmcgdmFsLCBpbnQgbikKICAg IFJFRzogMUMvYml0LCB0d28ncyBjb21wbGVtZW50ICovCiBzdGF0aWMgaW5saW5lIHM4IFRFTVBf VE9fUkVHKGludCB2YWwpCiB7Ci0JcmV0dXJuIFNFTlNPUlNfTElNSVQoU0NBTEUodmFsLCAxLCAx MDAwKSwgLTEyODAwMCwgMTI3MDAwKTsKKwlyZXR1cm4gU0NBTEUoU0VOU09SU19MSU1JVCh2YWws IC0xMjgwMDAsIDEyNzAwMCksIDEsIDEwMDApOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBURU1Q X0ZST01fUkVHKHM4IHZhbCkKQEAgLTM0OSw3ICszNDksMTMgQEAgc3RhdGljIHNzaXplX3Qgc2V0 X3ZybShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAog CQljb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKIHsKIAlzdHJ1Y3Qgc21zYzQ3bTE5Ml9k YXRhICpkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0JZGF0YS0+dnJtID0gc2ltcGxlX3N0 cnRvdWwoYnVmLCBOVUxMLCAxMCk7CisJdW5zaWduZWQgbG9uZyB2YWw7CisKKwl2YWwgPSBzaW1w bGVfc3RydG91bChidWYsIE5VTEwsIDEwKTsKKwlpZiAodmFsID4gMjU1KQorCQlyZXR1cm4gLUVJ TlZBTDsKKyAKKwlkYXRhLT52cm0gPSB2YWw7CiAJcmV0dXJuIGNvdW50OwogfQogc3RhdGljIERF VklDRV9BVFRSKHZybSwgU19JUlVHTyB8IFNfSVdVU1IsIHNob3dfdnJtLCBzZXRfdnJtKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2l3Y20uYyBiL2RyaXZlcnMvaW5maW5p YmFuZC9jb3JlL2l3Y20uYwppbmRleCAxYTY5NmY3Li4yODgyNTU2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2luZmluaWJhbmQvY29yZS9pd2NtLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUv aXdjbS5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgog I2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNs dWRlIDxsaW51eC9zeXNjdGwuaD4KIAogI2luY2x1ZGUgPHJkbWEvaXdfY20uaD4KICNpbmNsdWRl IDxyZG1hL2liX2FkZHIuaD4KQEAgLTY1LDYgKzY2LDIwIEBAIHN0cnVjdCBpd2NtX3dvcmsgewog CXN0cnVjdCBsaXN0X2hlYWQgZnJlZV9saXN0OwogfTsKIAorc3RhdGljIHVuc2lnbmVkIGludCBk ZWZhdWx0X2JhY2tsb2cgPSAyNTY7CisKK3N0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlX2hlYWRlciAq aXdjbV9jdGxfdGFibGVfaGRyOworc3RhdGljIHN0cnVjdCBjdGxfdGFibGUgaXdjbV9jdGxfdGFi bGVbXSA9IHsKKwl7CisJCS5wcm9jbmFtZQk9ICJkZWZhdWx0X2JhY2tsb2ciLAorCQkuZGF0YQkJ PSAmZGVmYXVsdF9iYWNrbG9nLAorCQkubWF4bGVuCQk9IHNpemVvZihkZWZhdWx0X2JhY2tsb2cp LAorCQkubW9kZQkJPSAwNjQ0LAorCQkucHJvY19oYW5kbGVyCT0gcHJvY19kb2ludHZlYywKKwl9 LAorCXsgfQorfTsKKwogLyoKICAqIFRoZSBmb2xsb3dpbmcgc2VydmljZXMgcHJvdmlkZSBhIG1l Y2hhbmlzbSBmb3IgcHJlLWFsbG9jYXRpbmcgaXdjbV93b3JrCiAgKiBlbGVtZW50cy4gIFRoZSBk ZXNpZ24gcHJlLWFsbG9jYXRlcyB0aGVtICBiYXNlZCBvbiB0aGUgY21faWQgdHlwZToKQEAgLTQx OSw2ICs0MzQsOSBAQCBpbnQgaXdfY21fbGlzdGVuKHN0cnVjdCBpd19jbV9pZCAqY21faWQsIGlu dCBiYWNrbG9nKQogCiAJY21faWRfcHJpdiA9IGNvbnRhaW5lcl9vZihjbV9pZCwgc3RydWN0IGl3 Y21faWRfcHJpdmF0ZSwgaWQpOwogCisJaWYgKCFiYWNrbG9nKQorCQliYWNrbG9nID0gZGVmYXVs dF9iYWNrbG9nOworCiAJcmV0ID0gYWxsb2Nfd29ya19lbnRyaWVzKGNtX2lkX3ByaXYsIGJhY2ts b2cpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC0xMDE0LDE3ICsxMDMyLDMzIEBAIGlu dCBpd19jbV9pbml0X3FwX2F0dHIoc3RydWN0IGl3X2NtX2lkICpjbV9pZCwKIH0KIEVYUE9SVF9T WU1CT0woaXdfY21faW5pdF9xcF9hdHRyKTsKIAorc3RhdGljIHN0cnVjdCBjdGxfcGF0aCBpd2Nt X2N0bF9wYXRoW10gPSB7CisJeyAucHJvY25hbWUgPSAibmV0IiB9LAorCXsgLnByb2NuYW1lID0g Iml3X2NtIiB9LAorCXsgfQorfTsKKwogc3RhdGljIGludCBfX2luaXQgaXdfY21faW5pdCh2b2lk KQogewogCWl3Y21fd3EgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSgiaXdfY21fd3Ei KTsKIAlpZiAoIWl3Y21fd3EpCiAJCXJldHVybiAtRU5PTUVNOwogCisJaXdjbV9jdGxfdGFibGVf aGRyID0gcmVnaXN0ZXJfbmV0X3N5c2N0bF90YWJsZSgmaW5pdF9uZXQsCisJCQkJCQkgICAgICAg aXdjbV9jdGxfcGF0aCwKKwkJCQkJCSAgICAgICBpd2NtX2N0bF90YWJsZSk7CisJaWYgKCFpd2Nt X2N0bF90YWJsZV9oZHIpIHsKKwkJcHJfZXJyKCJpd19jbTogY291bGRuJ3QgcmVnaXN0ZXIgc3lz Y3RsIHBhdGhzXG4iKTsKKwkJZGVzdHJveV93b3JrcXVldWUoaXdjbV93cSk7CisJCXJldHVybiAt RU5PTUVNOworCX0KKwogCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBfX2V4aXQgaXdfY21f Y2xlYW51cCh2b2lkKQogeworCXVucmVnaXN0ZXJfbmV0X3N5c2N0bF90YWJsZShpd2NtX2N0bF90 YWJsZV9oZHIpOwogCWRlc3Ryb3lfd29ya3F1ZXVlKGl3Y21fd3EpOwogfQogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2lvbW11L2FtZF9pb21tdS5jIGIvZHJpdmVycy9pb21tdS9hbWRfaW9tbXUuYwpp bmRleCA2Y2M4ZTY3Li40ODY5ODJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lvbW11L2FtZF9pb21t dS5jCisrKyBiL2RyaXZlcnMvaW9tbXUvYW1kX2lvbW11LmMKQEAgLTI1OTIsMTQgKzI1OTIsMTYg QEAgZnJlZV9kb21haW5zOgogCiBzdGF0aWMgdm9pZCBjbGVhbnVwX2RvbWFpbihzdHJ1Y3QgcHJv dGVjdGlvbl9kb21haW4gKmRvbWFpbikKIHsKLQlzdHJ1Y3QgaW9tbXVfZGV2X2RhdGEgKmRldl9k YXRhLCAqbmV4dDsKKwlzdHJ1Y3QgaW9tbXVfZGV2X2RhdGEgKmVudHJ5OwogCXVuc2lnbmVkIGxv bmcgZmxhZ3M7CiAKIAl3cml0ZV9sb2NrX2lycXNhdmUoJmFtZF9pb21tdV9kZXZ0YWJsZV9sb2Nr LCBmbGFncyk7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZGV2X2RhdGEsIG5leHQsICZk b21haW4tPmRldl9saXN0LCBsaXN0KSB7Ci0JCV9fZGV0YWNoX2RldmljZShkZXZfZGF0YSk7Ci0J CWF0b21pY19zZXQoJmRldl9kYXRhLT5iaW5kLCAwKTsKKwl3aGlsZSAoIWxpc3RfZW1wdHkoJmRv bWFpbi0+ZGV2X2xpc3QpKSB7CisJCWVudHJ5ID0gbGlzdF9maXJzdF9lbnRyeSgmZG9tYWluLT5k ZXZfbGlzdCwKKwkJCQkJIHN0cnVjdCBpb21tdV9kZXZfZGF0YSwgbGlzdCk7CisJCV9fZGV0YWNo X2RldmljZShlbnRyeSk7CisJCWF0b21pY19zZXQoJmVudHJ5LT5iaW5kLCAwKTsKIAl9CiAKIAl3 cml0ZV91bmxvY2tfaXJxcmVzdG9yZSgmYW1kX2lvbW11X2RldnRhYmxlX2xvY2ssIGZsYWdzKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYyBiL2RyaXZlcnMvaW9tbXUv aW50ZWwtaW9tbXUuYwppbmRleCAyNzZlZjM4Li5lODNhYThlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2lvbW11L2ludGVsLWlvbW11LmMKKysrIGIvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jCkBA IC0yMzE4LDE5ICsyMzE4LDM0IEBAIHN0YXRpYyBib29sIGRldmljZV9oYXNfcm1ycihzdHJ1Y3Qg cGNpX2RldiAqZGV2KQogCXJldHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIFRoZXJlIGFyZSBhIGNv dXBsZSBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIHJlc3RyaWN0IHRoZSBmdW5jdGlvbmFsaXR5IG9m CisgKiBkZXZpY2VzIGFzc29jaWF0ZWQgd2l0aCBSTVJScy4gIFRoZSBmaXJzdCBpcyB3aGVuIGV2 YWx1YXRpbmcgYSBkZXZpY2UgZm9yCisgKiBpZGVudGl0eSBtYXBwaW5nIGJlY2F1c2UgcHJvYmxl bXMgZXhpc3Qgd2hlbiBkZXZpY2VzIGFyZSBtb3ZlZCBpbiBhbmQgb3V0CisgKiBvZiBkb21haW5z IGFuZCB0aGVpciByZXNwZWN0aXZlIFJNUlIgaW5mb3JtYXRpb24gaXMgbG9zdC4gIFRoaXMgbWVh bnMgdGhhdAorICogYSBkZXZpY2Ugd2l0aCBhc3NvY2lhdGVkIFJNUlJzIHdpbGwgbmV2ZXIgYmUg aW4gYSAicGFzc3Rocm91Z2giIGRvbWFpbi4KKyAqIFRoZSBzZWNvbmQgaXMgdXNlIG9mIHRoZSBk ZXZpY2UgdGhyb3VnaCB0aGUgSU9NTVUgQVBJLiAgVGhpcyBpbnRlcmZhY2UKKyAqIGV4cGVjdHMg dG8gaGF2ZSBmdWxsIGNvbnRyb2wgb2YgdGhlIElPVkEgc3BhY2UgZm9yIHRoZSBkZXZpY2UuICBX ZSBjYW5ub3QKKyAqIHNhdGlzZnkgYm90aCB0aGUgcmVxdWlyZW1lbnQgdGhhdCBSTVJSIGFjY2Vz cyBpcyBtYWludGFpbmVkIGFuZCBoYXZlIGFuCisgKiB1bmVuY3VtYmVyZWQgSU9WQSBzcGFjZS4g IFdlIGFsc28gaGF2ZSBubyBhYmlsaXR5IHRvIHF1aWVzY2UgdGhlIGRldmljZSdzCisgKiB1c2Ug b2YgdGhlIFJNUlIgc3BhY2Ugb3IgZXZlbiBpbmZvcm0gdGhlIElPTU1VIEFQSSB1c2VyIG9mIHRo ZSByZXN0cmljdGlvbi4KKyAqIFdlIHRoZXJlZm9yZSBwcmV2ZW50IGRldmljZXMgYXNzb2NpYXRl ZCB3aXRoIGFuIFJNUlIgZnJvbSBwYXJ0aWNpcGF0aW5nIGluCisgKiB0aGUgSU9NTVUgQVBJLCB3 aGljaCBlbGltaW5hdGVzIHRoZW0gZnJvbSBkZXZpY2UgYXNzaWdubWVudC4KKyAqCisgKiBJbiBi b3RoIGNhc2VzIHdlIGFzc3VtZSB0aGF0IFBDSSBVU0IgZGV2aWNlcyB3aXRoIFJNUlJzIGhhdmUg dGhlbSBsYXJnZWx5CisgKiBmb3IgaGlzdG9yaWNhbCByZWFzb25zIGFuZCB0aGF0IHRoZSBSTVJS IHNwYWNlIGlzIG5vdCBhY3RpdmVseSB1c2VkIHBvc3QKKyAqIGJvb3QuICBUaGlzIGV4Y2x1c2lv biBtYXkgY2hhbmdlIGlmIHZlbmRvcnMgYmVnaW4gdG8gYWJ1c2UgaXQuCisgKi8KK3N0YXRpYyBi b29sIGRldmljZV9pc19ybXJyX2xvY2tlZChzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sKKwlyZXR1 cm4gZGV2aWNlX2hhc19ybXJyKHBkZXYpICYmCisJCShwZGV2LT5jbGFzcyA+PiA4KSAhPSBQQ0lf Q0xBU1NfU0VSSUFMX1VTQjsKK30KKwogc3RhdGljIGludCBpb21tdV9zaG91bGRfaWRlbnRpdHlf bWFwKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgc3RhcnR1cCkKIHsKIAotCS8qCi0JICogV2Ug d2FudCB0byBwcmV2ZW50IGFueSBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIGFuIFJNUlIgZnJvbQot CSAqIGdldHRpbmcgcGxhY2VkIGludG8gdGhlIFNJIERvbWFpbi4gVGhpcyBpcyBkb25lIGJlY2F1 c2UKLQkgKiBwcm9ibGVtcyBleGlzdCB3aGVuIGRldmljZXMgYXJlIG1vdmVkIGluIGFuZCBvdXQg b2YgZG9tYWlucwotCSAqIGFuZCB0aGVpciByZXNwZWN0aXZlIFJNUlIgaW5mbyBpcyBsb3N0LiBX ZSBleGVtcHQgVVNCIGRldmljZXMKLQkgKiBmcm9tIHRoaXMgcHJvY2VzcyBkdWUgdG8gdGhlaXIg dXNhZ2Ugb2YgUk1SUnMgdGhhdCBhcmUga25vd24KLQkgKiB0byBub3QgYmUgbmVlZGVkIGFmdGVy IEJJT1MgaGFuZC1vZmYgdG8gT1MuCi0JICovCi0JaWYgKGRldmljZV9oYXNfcm1ycihwZGV2KSAm JgotCSAgICAocGRldi0+Y2xhc3MgPj4gOCkgIT0gUENJX0NMQVNTX1NFUklBTF9VU0IpCisJaWYg KGRldmljZV9pc19ybXJyX2xvY2tlZChwZGV2KSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoKGlvbW11 X2lkZW50aXR5X21hcHBpbmcgJiBJREVOVE1BUF9BWkFMSUEpICYmIElTX0FaQUxJQShwZGV2KSkK QEAgLTM5ODEsNiArMzk5NiwxMSBAQCBzdGF0aWMgaW50IGludGVsX2lvbW11X2F0dGFjaF9kZXZp Y2Uoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLAogCXN0cnVjdCBpbnRlbF9pb21tdSAqaW9t bXU7CiAJaW50IGFkZHJfd2lkdGg7CiAKKwlpZiAoZGV2aWNlX2lzX3JtcnJfbG9ja2VkKHBkZXYp KSB7CisJCWRldl93YXJuKGRldiwgIkRldmljZSBpcyBpbmVsaWdpYmxlIGZvciBJT01NVSBkb21h aW4gYXR0YWNoIGR1ZSB0byBwbGF0Zm9ybSBSTVJSIHJlcXVpcmVtZW50LiAgQ29udGFjdCB5b3Vy IHBsYXRmb3JtIHZlbmRvci5cbiIpOworCQlyZXR1cm4gLUVQRVJNOworCX0KKwogCS8qIG5vcm1h bGx5IHBkZXYgaXMgbm90IG1hcHBlZCAqLwogCWlmICh1bmxpa2VseShkb21haW5fY29udGV4dF9t YXBwZWQocGRldikpKSB7CiAJCXN0cnVjdCBkbWFyX2RvbWFpbiAqb2xkX2RvbWFpbjsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbWQvcmFpZDEuYyBiL2RyaXZlcnMvbWQvcmFpZDEuYwppbmRleCBjNzA2 YTdiLi5hZWMwMjlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL3JhaWQxLmMKKysrIGIvZHJpdmVy cy9tZC9yYWlkMS5jCkBAIC0xMjMzLDEyICsxMjMzLDEyIEBAIHN0YXRpYyB2b2lkIGVycm9yKHN0 cnVjdCBtZGRldiAqbWRkZXYsIHN0cnVjdCBtZF9yZGV2ICpyZGV2KQogCQltZGRldi0+ZGVncmFk ZWQrKzsKIAkJc2V0X2JpdChGYXVsdHksICZyZGV2LT5mbGFncyk7CiAJCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmNvbmYtPmRldmljZV9sb2NrLCBmbGFncyk7Ci0JCS8qCi0JCSAqIGlmIHJlY292 ZXJ5IGlzIHJ1bm5pbmcsIG1ha2Ugc3VyZSBpdCBhYm9ydHMuCi0JCSAqLwotCQlzZXRfYml0KE1E X1JFQ09WRVJZX0lOVFIsICZtZGRldi0+cmVjb3ZlcnkpOwogCX0gZWxzZQogCQlzZXRfYml0KEZh dWx0eSwgJnJkZXYtPmZsYWdzKTsKKwkvKgorCSAqIGlmIHJlY292ZXJ5IGlzIHJ1bm5pbmcsIG1h a2Ugc3VyZSBpdCBhYm9ydHMuCisJICovCisJc2V0X2JpdChNRF9SRUNPVkVSWV9JTlRSLCAmbWRk ZXYtPnJlY292ZXJ5KTsKIAlzZXRfYml0KE1EX0NIQU5HRV9ERVZTLCAmbWRkZXYtPmZsYWdzKTsK IAlwcmludGsoS0VSTl9BTEVSVAogCSAgICAgICAibWQvcmFpZDE6JXM6IERpc2sgZmFpbHVyZSBv biAlcywgZGlzYWJsaW5nIGRldmljZS5cbiIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDEw LmMgYi9kcml2ZXJzL21kL3JhaWQxMC5jCmluZGV4IDZkMDVlMjYuLmFiYWM4M2EgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbWQvcmFpZDEwLmMKKysrIGIvZHJpdmVycy9tZC9yYWlkMTAuYwpAQCAtMTI3 MiwxMSArMTI3MiwxMSBAQCBzdGF0aWMgdm9pZCBlcnJvcihzdHJ1Y3QgbWRkZXYgKm1kZGV2LCBz dHJ1Y3QgbWRfcmRldiAqcmRldikKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJmNvbmYtPmRldmljZV9s b2NrLCBmbGFncyk7CiAJCW1kZGV2LT5kZWdyYWRlZCsrOwogCQlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZjb25mLT5kZXZpY2VfbG9jaywgZmxhZ3MpOwotCQkvKgotCQkgKiBpZiByZWNvdmVyeSBp cyBydW5uaW5nLCBtYWtlIHN1cmUgaXQgYWJvcnRzLgotCQkgKi8KLQkJc2V0X2JpdChNRF9SRUNP VkVSWV9JTlRSLCAmbWRkZXYtPnJlY292ZXJ5KTsKIAl9CisJLyoKKwkgKiBJZiByZWNvdmVyeSBp cyBydW5uaW5nLCBtYWtlIHN1cmUgaXQgYWJvcnRzLgorCSAqLworCXNldF9iaXQoTURfUkVDT1ZF UllfSU5UUiwgJm1kZGV2LT5yZWNvdmVyeSk7CiAJc2V0X2JpdChCbG9ja2VkLCAmcmRldi0+Zmxh Z3MpOwogCXNldF9iaXQoRmF1bHR5LCAmcmRldi0+ZmxhZ3MpOwogCXNldF9iaXQoTURfQ0hBTkdF X0RFVlMsICZtZGRldi0+ZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9yYWlkNS5jIGIv ZHJpdmVycy9tZC9yYWlkNS5jCmluZGV4IDdjOTYzYzQuLmMyOTNkOWMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbWQvcmFpZDUuYworKysgYi9kcml2ZXJzL21kL3JhaWQ1LmMKQEAgLTMyNDAsNiArMzI0 MCw4IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9zdHJpcGUoc3RydWN0IHN0cmlwZV9oZWFkICpzaCkK IAkJCQlzZXRfYml0KFI1X1dhbnR3cml0ZSwgJmRldi0+ZmxhZ3MpOwogCQkJCWlmIChwcmV4b3Ip CiAJCQkJCWNvbnRpbnVlOworCQkJCWlmIChzLmZhaWxlZCA+IDEpCisJCQkJCWNvbnRpbnVlOwog CQkJCWlmICghdGVzdF9iaXQoUjVfSW5zeW5jLCAmZGV2LT5mbGFncykgfHwKIAkJCQkgICAgKChp ID09IHNoLT5wZF9pZHggfHwgaSA9PSBzaC0+cWRfaWR4KSAgJiYKIAkJCQkgICAgIHMuZmFpbGVk ID09IDApKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDcx LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvdGRhMTAwNzEuYwppbmRleCAwYzM3NDM0 Li5iYTc5Mjg0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEw MDcxLmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDcxLmMKQEAgLTY0 NCw2ICs2NDQsNyBAQCBzdGF0aWMgaW50IHRkYTEwMDcxX3NldF9mcm9udGVuZChzdHJ1Y3QgZHZi X2Zyb250ZW5kICpmZSwKIAlzdHJ1Y3QgZHR2X2Zyb250ZW5kX3Byb3BlcnRpZXMgKmMgPSAmZmUt PmR0dl9wcm9wZXJ0eV9jYWNoZTsKIAlpbnQgcmV0LCBpOwogCXU4IG1vZGUsIHJvbGxvZmYsIHBp bG90LCBpbnZlcnNpb24sIGRpdjsKKwlmZV9tb2R1bGF0aW9uX3QgbW9kdWxhdGlvbjsKIAogCWRi ZygiJXM6IGRlbGl2ZXJ5X3N5c3RlbT0lZCBtb2R1bGF0aW9uPSVkIGZyZXF1ZW5jeT0lZCAiIFwK IAkJInN5bWJvbF9yYXRlPSVkIGludmVyc2lvbj0lZCBwaWxvdD0lZCByb2xsb2ZmPSVkIiwgX19m dW5jX18sCkBAIC02NzcsMTAgKzY3OCwxMyBAQCBzdGF0aWMgaW50IHRkYTEwMDcxX3NldF9mcm9u dGVuZChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwKIAogCXN3aXRjaCAoYy0+ZGVsaXZlcnlfc3lz dGVtKSB7CiAJY2FzZSBTWVNfRFZCUzoKKwkJbW9kdWxhdGlvbiA9IFFQU0s7CiAJCXJvbGxvZmYg PSAwOwogCQlwaWxvdCA9IDI7CiAJCWJyZWFrOwogCWNhc2UgU1lTX0RWQlMyOgorCQltb2R1bGF0 aW9uID0gYy0+bW9kdWxhdGlvbjsKKwogCQlzd2l0Y2ggKGMtPnJvbGxvZmYpIHsKIAkJY2FzZSBS T0xMT0ZGXzIwOgogCQkJcm9sbG9mZiA9IDI7CkBAIC03MjIsNyArNzI2LDcgQEAgc3RhdGljIGlu dCB0ZGExMDA3MV9zZXRfZnJvbnRlbmQoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUsCiAKIAlmb3Ig KGkgPSAwLCBtb2RlID0gMHhmZjsgaSA8IEFSUkFZX1NJWkUoVERBMTAwNzFfTU9EQ09EKTsgaSsr KSB7CiAJCWlmIChjLT5kZWxpdmVyeV9zeXN0ZW0gPT0gVERBMTAwNzFfTU9EQ09EW2ldLmRlbGl2 ZXJ5X3N5c3RlbSAmJgotCQkJYy0+bW9kdWxhdGlvbiA9PSBUREExMDA3MV9NT0RDT0RbaV0ubW9k dWxhdGlvbiAmJgorCQkJbW9kdWxhdGlvbiA9PSBUREExMDA3MV9NT0RDT0RbaV0ubW9kdWxhdGlv biAmJgogCQkJYy0+ZmVjX2lubmVyID09IFREQTEwMDcxX01PRENPRFtpXS5mZWMpIHsKIAkJCW1v ZGUgPSBUREExMDA3MV9NT0RDT0RbaV0udmFsOwogCQkJZGJnKCIlczogbW9kZSBmb3VuZD0lMDJ4 IiwgX19mdW5jX18sIG1vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9nc3Bj YS9wYWM3MzAyLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2dzcGNhL3BhYzczMDIuYwppbmRleCA2 ZGRjNzY5Li5hZTQzM2VmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2dzcGNhL3Bh YzczMDIuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2dzcGNhL3BhYzczMDIuYwpAQCAtMTE5 MCw2ICsxMTkwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGRldmljZV90 YWJsZVtdID0gewogCXtVU0JfREVWSUNFKDB4MDkzYSwgMHgyNjIwKX0sCiAJe1VTQl9ERVZJQ0Uo MHgwOTNhLCAweDI2MjEpfSwKIAl7VVNCX0RFVklDRSgweDA5M2EsIDB4MjYyMiksIC5kcml2ZXJf aW5mbyA9IEZMX1ZGTElQfSwKKwl7VVNCX0RFVklDRSgweDA5M2EsIDB4MjYyMyksIC5kcml2ZXJf aW5mbyA9IEZMX1ZGTElQfSwKIAl7VVNCX0RFVklDRSgweDA5M2EsIDB4MjYyNCksIC5kcml2ZXJf aW5mbyA9IEZMX1ZGTElQfSwKIAl7VVNCX0RFVklDRSgweDA5M2EsIDB4MjYyNSl9LAogCXtVU0Jf REVWSUNFKDB4MDkzYSwgMHgyNjI2KX0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9mdGwuYyBi L2RyaXZlcnMvbXRkL2Z0bC5jCmluZGV4IGM3MzgyYmIuLjY1ZmM0YWYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbXRkL2Z0bC5jCisrKyBiL2RyaXZlcnMvbXRkL2Z0bC5jCkBAIC0xMDc0LDcgKzEwNzQs NiBAQCBzdGF0aWMgdm9pZCBmdGxfYWRkX210ZChzdHJ1Y3QgbXRkX2Jsa3RyYW5zX29wcyAqdHIs IHN0cnVjdCBtdGRfaW5mbyAqbXRkKQogCQkJcmV0dXJuOwogCX0KIAotCWZ0bF9mcmVlcGFydChw YXJ0aXRpb24pOwogCWtmcmVlKHBhcnRpdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L21hY3ZsYW4uYyBiL2RyaXZlcnMvbmV0L21hY3ZsYW4uYwppbmRleCBiNzRjZGY2Li5mZWQz OWRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMKKysrIGIvZHJpdmVycy9uZXQv bWFjdmxhbi5jCkBAIC00NTUsNiArNDU1LDcgQEAgc3RhdGljIGludCBtYWN2bGFuX2luaXQoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldikKIAkJCQkgIChsb3dlcmRldi0+c3RhdGUgJiBNQUNWTEFOX1NU QVRFX01BU0spOwogCWRldi0+ZmVhdHVyZXMgCQk9IGxvd2VyZGV2LT5mZWF0dXJlcyAmIE1BQ1ZM QU5fRkVBVFVSRVM7CiAJZGV2LT5mZWF0dXJlcwkJfD0gTkVUSUZfRl9MTFRYOworCWRldi0+dmxh bl9mZWF0dXJlcwk9IGxvd2VyZGV2LT52bGFuX2ZlYXR1cmVzICYgTUFDVkxBTl9GRUFUVVJFUzsK IAlkZXYtPmdzb19tYXhfc2l6ZQk9IGxvd2VyZGV2LT5nc29fbWF4X3NpemU7CiAJZGV2LT5pZmxp bmsJCT0gbG93ZXJkZXYtPmlmaW5kZXg7CiAJZGV2LT5oYXJkX2hlYWRlcl9sZW4JPSBsb3dlcmRl di0+aGFyZF9oZWFkZXJfbGVuOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwL3BwdHAuYyBi L2RyaXZlcnMvbmV0L3BwcC9wcHRwLmMKaW5kZXggMmIzNDlkMy4uYzk3NDU4MSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvcHBwL3BwdHAuYworKysgYi9kcml2ZXJzL25ldC9wcHAvcHB0cC5jCkBA IC0yODEsNyArMjgxLDcgQEAgc3RhdGljIGludCBwcHRwX3htaXQoc3RydWN0IHBwcF9jaGFubmVs ICpjaGFuLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCW5mX3Jlc2V0KHNrYik7CiAKIAlza2ItPmlw X3N1bW1lZCA9IENIRUNLU1VNX05PTkU7Ci0JaXBfc2VsZWN0X2lkZW50KHNrYiwgJnJ0LT5kc3Qs IE5VTEwpOworCWlwX3NlbGVjdF9pZGVudChza2IsIE5VTEwpOwogCWlwX3NlbmRfY2hlY2soaXBo KTsKIAogCWlwX2xvY2FsX291dChza2IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2Nhcmw5MTcwL2Nhcmw5MTcwLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2Fy bDkxNzAvY2FybDkxNzAuaAppbmRleCA2Y2ZiYjQxLi44YmNmNmI5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvY2FybDkxNzAuaAorKysgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvY2FybDkxNzAvY2FybDkxNzAuaApAQCAtMjY1LDYgKzI2NSw3IEBAIHN0 cnVjdCBhcjkxNzAgewogCWF0b21pY190IHJ4X3dvcmtfdXJiczsKIAlhdG9taWNfdCByeF9wb29s X3VyYnM7CiAJa2VybmVsX3Vsb25nX3QgZmVhdHVyZXM7CisJYm9vbCB1c2JfZXBfY21kX2lzX2J1 bGs7CiAKIAkvKiBmaXJtd2FyZSBzZXR0aW5ncyAqLwogCXN0cnVjdCBjb21wbGV0aW9uIGZ3X2xv YWRfd2FpdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC91 c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC91c2IuYwppbmRleCAzMzNi NjllLi41NTM4NTk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkx NzAvdXNiLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3VzYi5jCkBA IC02MTQsOSArNjE0LDE2IEBAIGludCBfX2Nhcmw5MTcwX2V4ZWNfY21kKHN0cnVjdCBhcjkxNzAg KmFyLCBzdHJ1Y3QgY2FybDkxNzBfY21kICpjbWQsCiAJCWdvdG8gZXJyX2ZyZWU7CiAJfQogCi0J dXNiX2ZpbGxfaW50X3VyYih1cmIsIGFyLT51ZGV2LCB1c2Jfc25kaW50cGlwZShhci0+dWRldiwK LQkJQVI5MTcwX1VTQl9FUF9DTUQpLCBjbWQsIGNtZC0+aGRyLmxlbiArIDQsCi0JCWNhcmw5MTcw X3VzYl9jbWRfY29tcGxldGUsIGFyLCAxKTsKKwlpZiAoYXItPnVzYl9lcF9jbWRfaXNfYnVsaykK KwkJdXNiX2ZpbGxfYnVsa191cmIodXJiLCBhci0+dWRldiwKKwkJCQkgIHVzYl9zbmRidWxrcGlw ZShhci0+dWRldiwgQVI5MTcwX1VTQl9FUF9DTUQpLAorCQkJCSAgY21kLCBjbWQtPmhkci5sZW4g KyA0LAorCQkJCSAgY2FybDkxNzBfdXNiX2NtZF9jb21wbGV0ZSwgYXIpOworCWVsc2UKKwkJdXNi X2ZpbGxfaW50X3VyYih1cmIsIGFyLT51ZGV2LAorCQkJCSB1c2Jfc25kaW50cGlwZShhci0+dWRl diwgQVI5MTcwX1VTQl9FUF9DTUQpLAorCQkJCSBjbWQsIGNtZC0+aGRyLmxlbiArIDQsCisJCQkJ IGNhcmw5MTcwX3VzYl9jbWRfY29tcGxldGUsIGFyLCAxKTsKIAogCWlmIChmcmVlX2J1ZikKIAkJ dXJiLT50cmFuc2Zlcl9mbGFncyB8PSBVUkJfRlJFRV9CVUZGRVI7CkBAIC0xMDI1LDkgKzEwMzIs MTAgQEAgc3RhdGljIHZvaWQgY2FybDkxNzBfdXNiX2Zpcm13YXJlX3N0ZXAyKGNvbnN0IHN0cnVj dCBmaXJtd2FyZSAqZncsCiBzdGF0aWMgaW50IGNhcmw5MTcwX3VzYl9wcm9iZShzdHJ1Y3QgdXNi X2ludGVyZmFjZSAqaW50ZiwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICpp ZCkKIHsKKwlzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IgKmVwOwogCXN0cnVjdCBhcjkx NzAgKmFyOwogCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2OwotCWludCBlcnI7CisJaW50IGksIGVy cjsKIAogCWVyciA9IHVzYl9yZXNldF9kZXZpY2UoaW50ZXJmYWNlX3RvX3VzYmRldihpbnRmKSk7 CiAJaWYgKGVycikKQEAgLTEwNDMsNiArMTA1MSwyMSBAQCBzdGF0aWMgaW50IGNhcmw5MTcwX3Vz Yl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKIAlhci0+aW50ZiA9IGludGY7CiAJ YXItPmZlYXR1cmVzID0gaWQtPmRyaXZlcl9pbmZvOwogCisJLyogV2UgbmVlZCB0byByZW1lbWJl ciB0aGUgdHlwZSBvZiBlbmRwb2ludCA0IGJlY2F1c2UgaXQgZGlmZmVycworCSAqIGJldHdlZW4g aGlnaC0gYW5kIGZ1bGwtc3BlZWQgY29uZmlndXJhdGlvbi4gVGhlIGhpZ2gtc3BlZWQKKwkgKiBj b25maWd1cmF0aW9uIHNwZWNpZmllcyBpdCBhcyBpbnRlcnJ1cHQgYW5kIHRoZSBmdWxsLXNwZWVk CisJICogY29uZmlndXJhdGlvbiBhcyBidWxrIGVuZHBvaW50LiBUaGlzIGluZm9ybWF0aW9uIGlz IHJlcXVpcmVkCisJICogbGF0ZXIgd2hlbiBzZW5kaW5nIHVyYnMgdG8gdGhhdCBlbmRwb2ludC4K KwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgaW50Zi0+Y3VyX2FsdHNldHRpbmctPmRlc2MuYk51bUVu ZHBvaW50czsgKytpKSB7CisJCWVwID0gJmludGYtPmN1cl9hbHRzZXR0aW5nLT5lbmRwb2ludFtp XS5kZXNjOworCisJCWlmICh1c2JfZW5kcG9pbnRfbnVtKGVwKSA9PSBBUjkxNzBfVVNCX0VQX0NN RCAmJgorCQkgICAgdXNiX2VuZHBvaW50X2Rpcl9vdXQoZXApICYmCisJCSAgICB1c2JfZW5kcG9p bnRfdHlwZShlcCkgPT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSykKKwkJCWFyLT51c2JfZXBfY21k X2lzX2J1bGsgPSB0cnVlOworCX0KKwogCXVzYl9zZXRfaW50ZmRhdGEoaW50ZiwgYXIpOwogCVNF VF9JRUVFODAyMTFfREVWKGFyLT5odywgJmludGYtPmRldik7CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvc2J1cy9jaGFyL2JiY19lbnZjdHJsLmMgYi9kcml2ZXJzL3NidXMvY2hhci9iYmNfZW52Y3Ry bC5jCmluZGV4IDE2MGU3NTEuLjA3ODdiOTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2J1cy9jaGFy L2JiY19lbnZjdHJsLmMKKysrIGIvZHJpdmVycy9zYnVzL2NoYXIvYmJjX2VudmN0cmwuYwpAQCAt NDUyLDYgKzQ1Miw5IEBAIHN0YXRpYyB2b2lkIGF0dGFjaF9vbmVfdGVtcChzdHJ1Y3QgYmJjX2ky Y19idXMgKmJwLCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvcCwKIAlpZiAoIXRwKQogCQlyZXR1 cm47CiAKKwlJTklUX0xJU1RfSEVBRCgmdHAtPmJwX2xpc3QpOworCUlOSVRfTElTVF9IRUFEKCZ0 cC0+Z2xvYl9saXN0KTsKKwogCXRwLT5jbGllbnQgPSBiYmNfaTJjX2F0dGFjaChicCwgb3ApOwog CWlmICghdHAtPmNsaWVudCkgewogCQlrZnJlZSh0cCk7CkBAIC00OTcsNiArNTAwLDkgQEAgc3Rh dGljIHZvaWQgYXR0YWNoX29uZV9mYW4oc3RydWN0IGJiY19pMmNfYnVzICpicCwgc3RydWN0IHBs YXRmb3JtX2RldmljZSAqb3AsCiAJaWYgKCFmcCkKIAkJcmV0dXJuOwogCisJSU5JVF9MSVNUX0hF QUQoJmZwLT5icF9saXN0KTsKKwlJTklUX0xJU1RfSEVBRCgmZnAtPmdsb2JfbGlzdCk7CisKIAlm cC0+Y2xpZW50ID0gYmJjX2kyY19hdHRhY2goYnAsIG9wKTsKIAlpZiAoIWZwLT5jbGllbnQpIHsK IAkJa2ZyZWUoZnApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zYnVzL2NoYXIvYmJjX2kyYy5jIGIv ZHJpdmVycy9zYnVzL2NoYXIvYmJjX2kyYy5jCmluZGV4IDU0MjY2ODIuLjcxNzlmNzIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc2J1cy9jaGFyL2JiY19pMmMuYworKysgYi9kcml2ZXJzL3NidXMvY2hh ci9iYmNfaTJjLmMKQEAgLTMwMSwxMyArMzAxLDE4IEBAIHN0YXRpYyBzdHJ1Y3QgYmJjX2kyY19i dXMgKiBfX2luaXQgYXR0YWNoX29uZV9pMmMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqb3AsIGlu CiAJaWYgKCFicCkKIAkJcmV0dXJuIE5VTEw7CiAKKwlJTklUX0xJU1RfSEVBRCgmYnAtPnRlbXBz KTsKKwlJTklUX0xJU1RfSEVBRCgmYnAtPmZhbnMpOworCiAJYnAtPmkyY19jb250cm9sX3JlZ3Mg PSBvZl9pb3JlbWFwKCZvcC0+cmVzb3VyY2VbMF0sIDAsIDB4MiwgImJiY19pMmNfcmVncyIpOwog CWlmICghYnAtPmkyY19jb250cm9sX3JlZ3MpCiAJCWdvdG8gZmFpbDsKIAotCWJwLT5pMmNfYnVz c2VsX3JlZyA9IG9mX2lvcmVtYXAoJm9wLT5yZXNvdXJjZVsxXSwgMCwgMHgxLCAiYmJjX2kyY19i dXNzZWwiKTsKLQlpZiAoIWJwLT5pMmNfYnVzc2VsX3JlZykKLQkJZ290byBmYWlsOworCWlmIChv cC0+bnVtX3Jlc291cmNlcyA9PSAyKSB7CisJCWJwLT5pMmNfYnVzc2VsX3JlZyA9IG9mX2lvcmVt YXAoJm9wLT5yZXNvdXJjZVsxXSwgMCwgMHgxLCAiYmJjX2kyY19idXNzZWwiKTsKKwkJaWYgKCFi cC0+aTJjX2J1c3NlbF9yZWcpCisJCQlnb3RvIGZhaWw7CisJfQogCiAJYnAtPndhaXRpbmcgPSAw OwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmJwLT53cSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Nj c2kvYmZhL2JmYV9pb2MuaCBiL2RyaXZlcnMvc2NzaS9iZmEvYmZhX2lvYy5oCmluZGV4IDU0NmQ0 NmIuLjUwNmEzZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9iZmEvYmZhX2lvYy5oCisrKyBi L2RyaXZlcnMvc2NzaS9iZmEvYmZhX2lvYy5oCkBAIC03Miw3ICs3Miw3IEBAIHN0cnVjdCBiZmFf c2dlX3MgewogfSB3aGlsZSAoMCkKIAogI2RlZmluZSBiZmFfc3dhcF93b3JkcyhfeCkgICgJXAot CSgoX3gpIDw8IDMyKSB8ICgoX3gpID4+IDMyKSkKKwkoKHU2NCkoX3gpIDw8IDMyKSB8ICgodTY0 KShfeCkgPj4gMzIpKQogCiAjaWZkZWYgX19CSUdfRU5ESUFOCiAjZGVmaW5lIGJmYV9zZ2VfdG9f YmUoX3gpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaHBzYS5jIGIvZHJpdmVycy9zY3NpL2hw c2EuYwppbmRleCA1YjdlMWJmLi42MDNhMmNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvaHBz YS5jCisrKyBiL2RyaXZlcnMvc2NzaS9ocHNhLmMKQEAgLTI3NjksNyArMjc2OSw3IEBAIHN0YXRp YyBpbnQgaHBzYV9iaWdfcGFzc3RocnVfaW9jdGwoc3RydWN0IGN0bHJfaW5mbyAqaCwgdm9pZCBf X3VzZXIgKmFyZ3ApCiAJCX0KIAkJaWYgKGlvYy0+UmVxdWVzdC5UeXBlLkRpcmVjdGlvbiA9PSBY RkVSX1dSSVRFKSB7CiAJCQlpZiAoY29weV9mcm9tX3VzZXIoYnVmZltzZ191c2VkXSwgZGF0YV9w dHIsIHN6KSkgewotCQkJCXN0YXR1cyA9IC1FTk9NRU07CisJCQkJc3RhdHVzID0gLUVGQVVMVDsK IAkJCQlnb3RvIGNsZWFudXAxOwogCQkJfQogCQl9IGVsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMv c2NzaS9zY3NpX2xpYi5jIGIvZHJpdmVycy9zY3NpL3Njc2lfbGliLmMKaW5kZXggY2Q0YWMzOC4u MGJkYzRhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3Njc2lfbGliLmMKKysrIGIvZHJpdmVy cy9zY3NpL3Njc2lfbGliLmMKQEAgLTc5Myw2ICs3OTMsMTQgQEAgdm9pZCBzY3NpX2lvX2NvbXBs ZXRpb24oc3RydWN0IHNjc2lfY21uZCAqY21kLCB1bnNpZ25lZCBpbnQgZ29vZF9ieXRlcykKIAkJ CXNjc2lfbmV4dF9jb21tYW5kKGNtZCk7CiAJCQlyZXR1cm47CiAJCX0KKwl9IGVsc2UgaWYgKGJs a19ycV9ieXRlcyhyZXEpID09IDAgJiYgcmVzdWx0ICYmICFzZW5zZV9kZWZlcnJlZCkgeworCQkv KgorCQkgKiBDZXJ0YWluIG5vbiBCTE9DS19QQyByZXF1ZXN0cyBhcmUgY29tbWFuZHMgdGhhdCBk b24ndAorCQkgKiBhY3R1YWxseSB0cmFuc2ZlciBhbnl0aGluZyAoRkxVU0gpLCBzbyBjYW5ub3Qg dXNlCisJCSAqIGdvb2RfYnl0ZXMgIT0gYmxrX3JxX2J5dGVzKHJlcSkgYXMgdGhlIHNpZ25hbCBm b3IgYW4gZXJyb3IuCisJCSAqIFRoaXMgc2V0cyB0aGUgZXJyb3IgZXhwbGljaXRseSBmb3IgdGhl IHByb2JsZW0gY2FzZS4KKwkJICovCisJCWVycm9yID0gX19zY3NpX2Vycm9yX2Zyb21faG9zdF9i eXRlKGNtZCwgcmVzdWx0KTsKIAl9CiAKIAkvKiBubyBiaWRpIHN1cHBvcnQgZm9yICFSRVFfVFlQ RV9CTE9DS19QQyB5ZXQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9odi9zdG9ydnNj X2Rydi5jIGIvZHJpdmVycy9zdGFnaW5nL2h2L3N0b3J2c2NfZHJ2LmMKaW5kZXggODk2MGYxYS4u YzQzYTllOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2h2L3N0b3J2c2NfZHJ2LmMKKysr IGIvZHJpdmVycy9zdGFnaW5nL2h2L3N0b3J2c2NfZHJ2LmMKQEAgLTMyLDYgKzMyLDcgQEAKICNp bmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KICNpbmNs dWRlIDxsaW51eC9oeXBlcnYuaD4KKyNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4KICNpbmNsdWRl IDxzY3NpL3Njc2kuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2lfY21uZC5oPgogI2luY2x1ZGUgPHNj c2kvc2NzaV9ob3N0Lmg+CkBAIC0xMTI5LDYgKzExMzAsMTYgQEAgc3RhdGljIHZvaWQgc3RvcnZz Y19jb21tYW5kX2NvbXBsZXRpb24oc3RydWN0IGh2X3N0b3J2c2NfcmVxdWVzdCAqcmVxdWVzdCkK IAlrbWVtX2NhY2hlX2ZyZWUoaG9zdF9kZXYtPnJlcXVlc3RfcG9vbCwgY21kX3JlcXVlc3QpOwog fQogCisvKgorICogVGhlIGhvc3QgZ3VhcmFudGVlcyB0byByZXNwb25kIHRvIGVhY2ggY29tbWFu ZCwgYWx0aG91Z2ggSS9PIGxhdGVuY2llcyBtaWdodAorICogYmUgdW5ib3VuZGVkIG9uIEF6dXJl LiAgUmVzZXQgdGhlIHRpbWVyIHVuY29uZGl0aW9uYWxseSB0byBnaXZlIHRoZSBob3N0IGEKKyAq IGNoYW5jZSB0byBwZXJmb3JtIEVILgorICovCitzdGF0aWMgZW51bSBibGtfZWhfdGltZXJfcmV0 dXJuIHN0b3J2c2NfZWhfdGltZWRfb3V0KHN0cnVjdCBzY3NpX2NtbmQgKnNjbW5kKQoreworCXJl dHVybiBCTEtfRUhfUkVTRVRfVElNRVI7Cit9CisKIHN0YXRpYyBib29sIHN0b3J2c2NfY2hlY2tf c2NzaV9jbWQoc3RydWN0IHNjc2lfY21uZCAqc2NtbmQpCiB7CiAJYm9vbCBhbGxvd2VkID0gdHJ1 ZTsKQEAgLTEzMDUsNiArMTMxNiw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2NzaV9ob3N0X3RlbXBsYXRl IHNjc2lfZHJpdmVyID0gewogCS5iaW9zX3BhcmFtID0JCXN0b3J2c2NfZ2V0X2NocywKIAkucXVl dWVjb21tYW5kID0JCXN0b3J2c2NfcXVldWVjb21tYW5kLAogCS5laF9ob3N0X3Jlc2V0X2hhbmRs ZXIgPQlzdG9ydnNjX2hvc3RfcmVzZXRfaGFuZGxlciwKKwkuZWhfdGltZWRfb3V0ID0JCXN0b3J2 c2NfZWhfdGltZWRfb3V0LAogCS5zbGF2ZV9hbGxvYyA9CQlzdG9ydnNjX2RldmljZV9hbGxvYywK IAkuc2xhdmVfY29uZmlndXJlID0Jc3RvcnZzY19kZXZpY2VfY29uZmlndXJlLAogCS5jbWRfcGVy X2x1biA9CQkxLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3Z0NjY1NS9ic3NkYi5jIGIv ZHJpdmVycy9zdGFnaW5nL3Z0NjY1NS9ic3NkYi5jCmluZGV4IDU3NzU5OWUuLmVkNDI1OWMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy92dDY2NTUvYnNzZGIuYworKysgYi9kcml2ZXJzL3N0 YWdpbmcvdnQ2NjU1L2Jzc2RiLmMKQEAgLTEwODMsNyArMTA4Myw3IEBAIHN0YXJ0OgogICAgICAg ICBwRGV2aWNlLT5ieUVSUEZsYWcgJj0gfihXTEFOX1NFVF9FUlBfVVNFX1BST1RFQ1RJT04oMSkp OwogICAgIH0KIAoteworICAgIGlmIChwRGV2aWNlLT5lQ29tbWFuZFN0YXRlID09IFdMQU5fQVNT T0NJQVRFX1dBSVQpIHsKICAgICAgICBwRGV2aWNlLT5ieVJlQXNzb2NDb3VudCsrOwogICAgaWYo KHBEZXZpY2UtPmJ5UmVBc3NvY0NvdW50ID4gMTApICYmIChwRGV2aWNlLT5iTGlua1Bhc3MgIT0g dHJ1ZSkpIHsgIC8vMTAgc2VjIHRpbWVvdXQKICAgICAgICAgICAgICAgICAgICAgIHByaW50aygi UmUtYXNzb2NpYXRpb24gdGltZW91dCEhIVxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdp bmcvdnQ2NjU1L2RldmljZV9tYWluLmMgYi9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU1L2RldmljZV9t YWluLmMKaW5kZXggZDhkZDc4NC4uZDU0MGEwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5n L3Z0NjY1NS9kZXZpY2VfbWFpbi5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy92dDY2NTUvZGV2aWNl X21haW4uYwpAQCAtMjY3OSw2ICsyNjc5LDcgQEAgc3RhdGljICBpcnFyZXR1cm5fdCAgZGV2aWNl X2ludHIoaW50IGlycSwgIHZvaWQgKmRldl9pbnN0YW5jZSkgewogICAgIHVuc2lnbmVkIGNoYXIg YnlEYXRhID0gMDsKICAgICBpbnQgICAgICAgICAgICAgaWk9IDA7CiAvLyAgICB1bnNpZ25lZCBj aGFyIGJ5UlNTSTsKKyAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAKICAgICBNQUN2UmVhZElT UihwRGV2aWNlLT5Qb3J0T2Zmc2V0LCAmcERldmljZS0+ZHdJc3IpOwpAQCAtMjcwNCw3ICsyNzA1 LDggQEAgc3RhdGljICBpcnFyZXR1cm5fdCAgZGV2aWNlX2ludHIoaW50IGlycSwgIHZvaWQgKmRl dl9pbnN0YW5jZSkgewogCiAgICAgaGFuZGxlZCA9IDE7CiAgICAgTUFDdkludERpc2FibGUocERl dmljZS0+UG9ydE9mZnNldCk7Ci0gICAgc3Bpbl9sb2NrX2lycSgmcERldmljZS0+bG9jayk7CisK KyAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcERldmljZS0+bG9jaywgZmxhZ3MpOwogCiAgICAgLy9N YWtlIHN1cmUgY3VycmVudCBwYWdlIGlzIDAKICAgICBWTlN2SW5Qb3J0QihwRGV2aWNlLT5Qb3J0 T2Zmc2V0ICsgTUFDX1JFR19QQUdFMVNFTCwgJmJ5T3JnUGFnZVNlbCk7CkBAIC0yOTUyLDcgKzI5 NTQsOCBAQCBzdGF0aWMgIGlycXJldHVybl90ICBkZXZpY2VfaW50cihpbnQgaXJxLCAgdm9pZCAq ZGV2X2luc3RhbmNlKSB7CiAgICAgICAgIE1BQ3ZTZWxlY3RQYWdlMShwRGV2aWNlLT5Qb3J0T2Zm c2V0KTsKICAgICB9CiAKLSAgICBzcGluX3VubG9ja19pcnEoJnBEZXZpY2UtPmxvY2spOworICAg IHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBEZXZpY2UtPmxvY2ssIGZsYWdzKTsKKwogICAgIE1B Q3ZJbnRFbmFibGUocERldmljZS0+UG9ydE9mZnNldCwgSU1SX01BU0tfVkFMVUUpOwogCiAgICAg cmV0dXJuIElSUV9SRVRWQUwoaGFuZGxlZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJp YWwvc2VyaWFsX2NvcmUuYyBiL2RyaXZlcnMvdHR5L3NlcmlhbC9zZXJpYWxfY29yZS5jCmluZGV4 IDQ4ODIxNGEuLmQ3MTYyYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdHR5L3NlcmlhbC9zZXJpYWxf Y29yZS5jCisrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC9zZXJpYWxfY29yZS5jCkBAIC0yMjUsNiAr MjI1LDkgQEAgc3RhdGljIHZvaWQgdWFydF9zaHV0ZG93bihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5 LCBzdHJ1Y3QgdWFydF9zdGF0ZSAqc3RhdGUpCiAJCS8qCiAJCSAqIFR1cm4gb2ZmIERUUiBhbmQg UlRTIGVhcmx5LgogCQkgKi8KKwkJaWYgKHVhcnRfY29uc29sZSh1cG9ydCkgJiYgdHR5KQorCQkJ dXBvcnQtPmNvbnMtPmNmbGFnID0gdHR5LT50ZXJtaW9zLT5jX2NmbGFnOworCiAJCWlmICghdHR5 IHx8ICh0dHktPnRlcm1pb3MtPmNfY2ZsYWcgJiBIVVBDTCkpCiAJCQl1YXJ0X2NsZWFyX21jdHJs KHVwb3J0LCBUSU9DTV9EVFIgfCBUSU9DTV9SVFMpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0 eS9zZXJpYWwvc3Vuc2FiLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvc3Vuc2FiLmMKaW5kZXggYjVm YTJhNS4uNWQ4MGJiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL3N1bnNhYi5jCisr KyBiL2RyaXZlcnMvdHR5L3NlcmlhbC9zdW5zYWIuYwpAQCAtMTU2LDYgKzE1NiwxNSBAQCByZWNl aXZlX2NoYXJzKHN0cnVjdCB1YXJ0X3N1bnNhYl9wb3J0ICp1cCwKIAkgICAgKHVwLT5wb3J0Lmxp bmUgPT0gdXAtPnBvcnQuY29ucy0+aW5kZXgpKQogCQlzYXdfY29uc29sZV9icmsgPSAxOwogCisJ aWYgKGNvdW50ID09IDApIHsKKwkJaWYgKHVubGlrZWx5KHN0YXQtPnNyZWcuaXNyMSAmIFNBQjgy NTMyX0lTUjFfQlJLKSkgeworCQkJc3RhdC0+c3JlZy5pc3IwICY9IH4oU0FCODI1MzJfSVNSMF9Q RVJSIHwKKwkJCQkJICAgICBTQUI4MjUzMl9JU1IwX0ZFUlIpOworCQkJdXAtPnBvcnQuaWNvdW50 LmJyaysrOworCQkJdWFydF9oYW5kbGVfYnJlYWsoJnVwLT5wb3J0KTsKKwkJfQorCX0KKwogCWZv ciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAJCXVuc2lnbmVkIGNoYXIgY2ggPSBidWZbaV0s IGZsYWc7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMgYi9kcml2ZXJzL3Vz Yi9jb3JlL2h1Yi5jCmluZGV4IDM4MDcyOTQuLmYwODczMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dXNiL2NvcmUvaHViLmMKKysrIGIvZHJpdmVycy91c2IvY29yZS9odWIuYwpAQCAtMjY1MSw2ICsy NjUxLDQzIEBAIHN0YXRpYyBpbnQgZmluaXNoX3BvcnRfcmVzdW1lKHN0cnVjdCB1c2JfZGV2aWNl ICp1ZGV2KQogfQogCiAvKgorICogVGhlcmUgYXJlIHNvbWUgU1MgVVNCIGRldmljZXMgd2hpY2gg dGFrZSBsb25nZXIgdGltZSBmb3IgbGluayB0cmFpbmluZy4KKyAqIFhIQ0kgc3BlY3MgNC4xOS40 IHNheXMgdGhhdCB3aGVuIExpbmsgdHJhaW5pbmcgaXMgc3VjY2Vzc2Z1bCwgcG9ydAorICogc2V0 cyBDU0MgYml0IHRvIDEuIFNvIGlmIFNXIHJlYWRzIHBvcnQgc3RhdHVzIGJlZm9yZSBzdWNjZXNz ZnVsIGxpbmsKKyAqIHRyYWluaW5nLCB0aGVuIGl0IHdpbGwgbm90IGZpbmQgZGV2aWNlIHRvIGJl IHByZXNlbnQuCisgKiBVU0IgQW5hbHl6ZXIgbG9nIHdpdGggc3VjaCBidWdneSBkZXZpY2VzIHNo b3cgdGhhdCBpbiBzb21lIGNhc2VzCisgKiBkZXZpY2Ugc3dpdGNoIG9uIHRoZSBSWCB0ZXJtaW5h dGlvbiBhZnRlciBsb25nIGRlbGF5IG9mIGhvc3QgZW5hYmxpbmcKKyAqIHRoZSBWQlVTLiBJbiBm ZXcgb3RoZXIgY2FzZXMgaXQgaGFzIGJlZW4gc2VlbiB0aGF0IGRldmljZSBmYWlscyB0bworICog bmVnb3RpYXRlIGxpbmsgdHJhaW5pbmcgaW4gZmlyc3QgYXR0ZW1wdC4gSXQgaGFzIGJlZW4KKyAq IHJlcG9ydGVkIHRpbGwgbm93IHRoYXQgZmV3IGRldmljZXMgdGFrZSBhcyBsb25nIGFzIDIwMDAg bXMgdG8gdHJhaW4KKyAqIHRoZSBsaW5rIGFmdGVyIGhvc3QgZW5hYmxpbmcgaXRzIFZCVVMgYW5k IHRlcm1pbmF0aW9uLiBGb2xsb3dpbmcKKyAqIHJvdXRpbmUgaW1wbGVtZW50cyBhIDIwMDAgbXMg dGltZW91dCBmb3IgbGluayB0cmFpbmluZy4gSWYgaW4gYSBjYXNlCisgKiBsaW5rIHRyYWlucyBi ZWZvcmUgdGltZW91dCwgbG9vcCB3aWxsIGV4aXQgZWFybGllci4KKyAqCisgKiBGSVhNRTogSWYg YSBkZXZpY2Ugd2FzIGNvbm5lY3RlZCBiZWZvcmUgc3VzcGVuZCwgYnV0IHdhcyByZW1vdmVkCisg KiB3aGlsZSBzeXN0ZW0gd2FzIGFzbGVlcCwgdGhlbiB0aGUgbG9vcCBpbiB0aGUgZm9sbG93aW5n IHJvdXRpbmUgd2lsbAorICogb25seSBleGl0IGF0IHRpbWVvdXQuCisgKgorICogVGhpcyByb3V0 aW5lIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHBlcnNpc3QgaXMgZW5hYmxlZCBmb3IgYSBT UworICogZGV2aWNlLgorICovCitzdGF0aWMgaW50IHdhaXRfZm9yX3NzX3BvcnRfZW5hYmxlKHN0 cnVjdCB1c2JfZGV2aWNlICp1ZGV2LAorCQlzdHJ1Y3QgdXNiX2h1YiAqaHViLCBpbnQgKnBvcnQx LAorCQl1MTYgKnBvcnRjaGFuZ2UsIHUxNiAqcG9ydHN0YXR1cykKK3sKKwlpbnQgc3RhdHVzID0g MCwgZGVsYXlfbXMgPSAwOworCisJd2hpbGUgKGRlbGF5X21zIDwgMjAwMCkgeworCQlpZiAoc3Rh dHVzIHx8ICpwb3J0c3RhdHVzICYgVVNCX1BPUlRfU1RBVF9DT05ORUNUSU9OKQorCQkJYnJlYWs7 CisJCW1zbGVlcCgyMCk7CisJCWRlbGF5X21zICs9IDIwOworCQlzdGF0dXMgPSBodWJfcG9ydF9z dGF0dXMoaHViLCAqcG9ydDEsIHBvcnRzdGF0dXMsIHBvcnRjaGFuZ2UpOworCX0KKwlyZXR1cm4g c3RhdHVzOworfQorCisvKgogICogdXNiX3BvcnRfcmVzdW1lIC0gcmUtYWN0aXZhdGUgYSBzdXNw ZW5kZWQgdXNiIGRldmljZSdzIHVwc3RyZWFtIHBvcnQKICAqIEB1ZGV2OiBkZXZpY2UgdG8gcmUt YWN0aXZhdGUsIG5vdCBhIHJvb3QgaHViCiAgKiBDb250ZXh0OiBtdXN0IGJlIGFibGUgdG8gc2xl ZXA7IGRldmljZSBub3QgbG9ja2VkOyBwbSBsb2NrcyBoZWxkCkBAIC0yNzQyLDYgKzI3NzksMTAg QEAgaW50IHVzYl9wb3J0X3Jlc3VtZShzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiwgcG1fbWVzc2Fn ZV90IG1zZykKIAogCWNsZWFyX2JpdChwb3J0MSwgaHViLT5idXN5X2JpdHMpOwogCisJaWYgKHVk ZXYtPnBlcnNpc3RfZW5hYmxlZCAmJiBodWJfaXNfc3VwZXJzcGVlZChodWItPmhkZXYpKQorCQlz dGF0dXMgPSB3YWl0X2Zvcl9zc19wb3J0X2VuYWJsZSh1ZGV2LCBodWIsICZwb3J0MSwgJnBvcnRj aGFuZ2UsCisJCQkJJnBvcnRzdGF0dXMpOworCiAJc3RhdHVzID0gY2hlY2tfcG9ydF9yZXN1bWVf dHlwZSh1ZGV2LAogCQkJaHViLCBwb3J0MSwgc3RhdHVzLCBwb3J0Y2hhbmdlLCBwb3J0c3RhdHVz KTsKIAlpZiAoc3RhdHVzID09IDApCkBAIC0zMzU0LDYgKzMzOTUsNyBAQCBzdGF0aWMgdm9pZCBo dWJfcG9ydF9jb25uZWN0X2NoYW5nZShzdHJ1Y3QgdXNiX2h1YiAqaHViLCBpbnQgcG9ydDEsCiAJ CQlsZTE2X3RvX2NwdShodWItPmRlc2NyaXB0b3ItPndIdWJDaGFyYWN0ZXJpc3RpY3MpOwogCXN0 cnVjdCB1c2JfZGV2aWNlICp1ZGV2OwogCWludCBzdGF0dXMsIGk7CisJc3RhdGljIGludCB1bnJl bGlhYmxlX3BvcnQgPSAtMTsKIAogCWRldl9kYmcgKGh1Yl9kZXYsCiAJCSJwb3J0ICVkLCBzdGF0 dXMgJTA0eCwgY2hhbmdlICUwNHgsICVzXG4iLApAQCAtMzQxNSwxMCArMzQ1NywxMSBAQCBzdGF0 aWMgdm9pZCBodWJfcG9ydF9jb25uZWN0X2NoYW5nZShzdHJ1Y3QgdXNiX2h1YiAqaHViLCBpbnQg cG9ydDEsCiAJCQkJVVNCX1BPUlRfU1RBVF9DX0VOQUJMRSkpIHsKIAkJc3RhdHVzID0gaHViX3Bv cnRfZGVib3VuY2UoaHViLCBwb3J0MSk7CiAJCWlmIChzdGF0dXMgPCAwKSB7Ci0JCQlpZiAocHJp bnRrX3JhdGVsaW1pdCgpKQorCQkJaWYgKHBvcnQxICE9IHVucmVsaWFibGVfcG9ydCAmJiBwcmlu dGtfcmF0ZWxpbWl0KCkpCiAJCQkJZGV2X2VycihodWJfZGV2LCAiY29ubmVjdC1kZWJvdW5jZSBm YWlsZWQsICIKIAkJCQkJCSJwb3J0ICVkIGRpc2FibGVkXG4iLCBwb3J0MSk7CiAJCQlwb3J0c3Rh dHVzICY9IH5VU0JfUE9SVF9TVEFUX0NPTk5FQ1RJT047CisJCQl1bnJlbGlhYmxlX3BvcnQgPSBw b3J0MTsKIAkJfSBlbHNlIHsKIAkJCXBvcnRzdGF0dXMgPSBzdGF0dXM7CiAJCX0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1xLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcS5j CmluZGV4IGUwYWU3NzcuLjZjNDMxNTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hj aS1xLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXEuYwpAQCAtMjk0LDggKzI5NCw3IEBA IHN0YXRpYyB2b2lkIHBlcmlvZGljX3VubGluayAoc3RydWN0IG9oY2lfaGNkICpvaGNpLCBzdHJ1 Y3QgZWQgKmVkKQogICogIC0gRURfT1BFUjogd2hlbiB0aGVyZSdzIGFueSByZXF1ZXN0IHF1ZXVl ZCwgdGhlIEVEIGdldHMgcmVzY2hlZHVsZWQKICAqICAgIGltbWVkaWF0ZWx5LiAgSEMgc2hvdWxk IGJlIHdvcmtpbmcgb24gdGhlbS4KICAqCi0gKiAgLSBFRF9JRExFOiAgd2hlbiB0aGVyZSdzIG5v IFREIHF1ZXVlLiB0aGVyZSdzIG5vIHJlYXNvbiBmb3IgdGhlIEhDCi0gKiAgICB0byBjYXJlIGFi b3V0IHRoaXMgRUQ7IHNhZmUgdG8gZGlzYWJsZSB0aGUgZW5kcG9pbnQuCisgKiAgLSBFRF9JRExF OiB3aGVuIHRoZXJlJ3Mgbm8gVEQgcXVldWUgb3IgdGhlIEhDIGlzbid0IHJ1bm5pbmcuCiAgKgog ICogV2hlbiBmaW5pc2hfdW5saW5rcygpIHJ1bnMgbGF0ZXIsIGFmdGVyIFNPRiBpbnRlcnJ1cHQs IGl0IHdpbGwgb2Z0ZW4KICAqIGNvbXBsZXRlIG9uZSBvciBtb3JlIFVSQiB1bmxpbmtzIGJlZm9y ZSBtYWtpbmcgdGhhdCBzdGF0ZSBjaGFuZ2UuCkBAIC05MDksNiArOTA4LDEwIEBAIHJlc2Nhbl9h bGw6CiAJCWludAkJCWNvbXBsZXRlZCwgbW9kaWZpZWQ7CiAJCV9faGMzMgkJCSpwcmV2OwogCisJ CS8qIElzIHRoaXMgRUQgYWxyZWFkeSBpbnZpc2libGUgdG8gdGhlIGhhcmR3YXJlPyAqLworCQlp ZiAoZWQtPnN0YXRlID09IEVEX0lETEUpCisJCQlnb3RvIGVkX2lkbGU7CisKIAkJLyogb25seSB0 YWtlIG9mZiBFRHMgdGhhdCB0aGUgSEMgaXNuJ3QgdXNpbmcsIGFjY291bnRpbmcgZm9yCiAJCSAq IGZyYW1lIGNvdW50ZXIgd3JhcHMgYW5kIEVEcyB3aXRoIHBhcnRpYWxseSByZXRpcmVkIFREcwog CQkgKi8KQEAgLTkzOCwxMiArOTQxLDIwIEBAIHNraXBfZWQ6CiAJCQl9CiAJCX0KIAorCQkvKiBF RCdzIG5vdyBvZmZpY2lhbGx5IHVubGlua2VkLCBoYyBkb2Vzbid0IHNlZSAqLworCQllZC0+c3Rh dGUgPSBFRF9JRExFOworCQlpZiAocXVpcmtfemZtaWNybyhvaGNpKSAmJiBlZC0+dHlwZSA9PSBQ SVBFX0lOVEVSUlVQVCkKKwkJCW9oY2ktPmVkc19zY2hlZHVsZWQtLTsKKwkJZWQtPmh3SGVhZFAg Jj0gfmNwdV90b19oYzMyKG9oY2ksIEVEX0gpOworCQllZC0+aHdOZXh0RUQgPSAwOworCQl3bWIo KTsKKwkJZWQtPmh3SU5GTyAmPSB+Y3B1X3RvX2hjMzIob2hjaSwgRURfU0tJUCB8IEVEX0RFUVVF VUUpOworZWRfaWRsZToKKwogCQkvKiByZWVudHJhbmN5OiAgaWYgd2UgZHJvcCB0aGUgc2NoZWR1 bGUgbG9jaywgc29tZW9uZSBtaWdodAogCQkgKiBoYXZlIG1vZGlmaWVkIHRoaXMgbGlzdC4gIG5v cm1hbGx5IGl0J3MganVzdCBwcmVwZW5kaW5nCiAJCSAqIGVudHJpZXMgKHdoaWNoIHdlJ2QgaWdu b3JlKSwgYnV0IHBhcmFub2lhIHdvbid0IGh1cnQuCiAJCSAqLwotCQkqbGFzdCA9IGVkLT5lZF9u ZXh0OwotCQllZC0+ZWRfbmV4dCA9IE5VTEw7CiAJCW1vZGlmaWVkID0gMDsKIAogCQkvKiB1bmxp bmsgdXJicyBhcyByZXF1ZXN0ZWQsIGJ1dCByZXNjYW4gdGhlIGxpc3QgYWZ0ZXIKQEAgLTEwMDEs MTkgKzEwMTIsMjAgQEAgcmVzY2FuX3RoaXM6CiAJCWlmIChjb21wbGV0ZWQgJiYgIWxpc3RfZW1w dHkgKCZlZC0+dGRfbGlzdCkpCiAJCQlnb3RvIHJlc2Nhbl90aGlzOwogCi0JCS8qIEVEJ3Mgbm93 IG9mZmljaWFsbHkgdW5saW5rZWQsIGhjIGRvZXNuJ3Qgc2VlICovCi0JCWVkLT5zdGF0ZSA9IEVE X0lETEU7Ci0JCWlmIChxdWlya196Zm1pY3JvKG9oY2kpICYmIGVkLT50eXBlID09IFBJUEVfSU5U RVJSVVBUKQotCQkJb2hjaS0+ZWRzX3NjaGVkdWxlZC0tOwotCQllZC0+aHdIZWFkUCAmPSB+Y3B1 X3RvX2hjMzIob2hjaSwgRURfSCk7Ci0JCWVkLT5od05leHRFRCA9IDA7Ci0JCXdtYiAoKTsKLQkJ ZWQtPmh3SU5GTyAmPSB+Y3B1X3RvX2hjMzIgKG9oY2ksIEVEX1NLSVAgfCBFRF9ERVFVRVVFKTsK LQotCQkvKiBidXQgaWYgdGhlcmUncyB3b3JrIHF1ZXVlZCwgcmVzY2hlZHVsZSAqLwotCQlpZiAo IWxpc3RfZW1wdHkgKCZlZC0+dGRfbGlzdCkpIHsKLQkJCWlmIChIQ19JU19SVU5OSU5HKG9oY2lf dG9faGNkKG9oY2kpLT5zdGF0ZSkpCi0JCQkJZWRfc2NoZWR1bGUgKG9oY2ksIGVkKTsKKwkJLyoK KwkJICogSWYgbm8gVERzIGFyZSBxdWV1ZWQsIHRha2UgRUQgb2ZmIHRoZSBlZF9ybV9saXN0Lgor CQkgKiBPdGhlcndpc2UsIGlmIHRoZSBIQyBpcyBydW5uaW5nLCByZXNjaGVkdWxlLgorCQkgKiBJ ZiBub3QsIGxlYXZlIGl0IG9uIHRoZSBsaXN0IGZvciBmdXJ0aGVyIGRlcXVldWVzLgorCQkgKi8K KwkJaWYgKGxpc3RfZW1wdHkoJmVkLT50ZF9saXN0KSkgeworCQkJKmxhc3QgPSBlZC0+ZWRfbmV4 dDsKKwkJCWVkLT5lZF9uZXh0ID0gTlVMTDsKKwkJfSBlbHNlIGlmIChIQ19JU19SVU5OSU5HKG9o Y2lfdG9faGNkKG9oY2kpLT5zdGF0ZSkpIHsKKwkJCSpsYXN0ID0gZWQtPmVkX25leHQ7CisJCQll ZC0+ZWRfbmV4dCA9IE5VTEw7CisJCQllZF9zY2hlZHVsZShvaGNpLCBlZCk7CisJCX0gZWxzZSB7 CisJCQlsYXN0ID0gJmVkLT5lZF9uZXh0OwogCQl9CiAKIAkJaWYgKG1vZGlmaWVkKQpkaWZmIC0t Z2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNp LXBjaS5jCmluZGV4IDE1Njg1YzMuLmU5Y2U5NTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hv c3QveGhjaS1wY2kuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMKQEAgLTk4LDYg Kzk4LDEwIEBAIHN0YXRpYyB2b2lkIHhoY2lfcGNpX3F1aXJrcyhzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCB4aGNpX2hjZCAqeGhjaSkKIAkvKiBBTUQgUExMIHF1aXJrICovCiAJaWYgKHBkZXYt PnZlbmRvciA9PSBQQ0lfVkVORE9SX0lEX0FNRCAmJiB1c2JfYW1kX2ZpbmRfY2hpcHNldF9pbmZv KCkpCiAJCXhoY2ktPnF1aXJrcyB8PSBYSENJX0FNRF9QTExfRklYOworCisJaWYgKHBkZXYtPnZl bmRvciA9PSBQQ0lfVkVORE9SX0lEX0FNRCkKKwkJeGhjaS0+cXVpcmtzIHw9IFhIQ0lfVFJVU1Rf VFhfTEVOR1RIOworCiAJaWYgKHBkZXYtPnZlbmRvciA9PSBQQ0lfVkVORE9SX0lEX0lOVEVMICYm CiAJCQlwZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9QQU5USEVSUE9JTlRfWEhD SSkgewogCQl4aGNpLT5xdWlya3MgfD0gWEhDSV9FUF9MSU1JVF9RVUlSSzsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmlu Zy5jCmluZGV4IGJjNWVlODQuLjRiNmFiYjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qv eGhjaS1yaW5nLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYwpAQCAtNTcyLDkg KzU3MiwxMiBAQCB2b2lkIHhoY2lfZmluZF9uZXdfZGVxdWV1ZV9zdGF0ZShzdHJ1Y3QgeGhjaV9o Y2QgKnhoY2ksCiAJc3RydWN0IHhoY2lfdmlydF9kZXZpY2UgKmRldiA9IHhoY2ktPmRldnNbc2xv dF9pZF07CiAJc3RydWN0IHhoY2lfdmlydF9lcCAqZXAgPSAmZGV2LT5lcHNbZXBfaW5kZXhdOwog CXN0cnVjdCB4aGNpX3JpbmcgKmVwX3Jpbmc7Ci0Jc3RydWN0IHhoY2lfZ2VuZXJpY190cmIgKnRy YjsKKwlzdHJ1Y3QgeGhjaV9zZWdtZW50ICpuZXdfc2VnOworCXVuaW9uIHhoY2lfdHJiICpuZXdf ZGVxOwogCWRtYV9hZGRyX3QgYWRkcjsKIAl1NjQgaHdfZGVxdWV1ZTsKKwlib29sIGN5Y2xlX2Zv dW5kID0gZmFsc2U7CisJYm9vbCB0ZF9sYXN0X3RyYl9mb3VuZCA9IGZhbHNlOwogCiAJZXBfcmlu ZyA9IHhoY2lfdHJpYWRfdG9fdHJhbnNmZXJfcmluZyh4aGNpLCBzbG90X2lkLAogCQkJZXBfaW5k ZXgsIHN0cmVhbV9pZCk7CkBAIC01OTgsNDQgKzYwMSw0NSBAQCB2b2lkIHhoY2lfZmluZF9uZXdf ZGVxdWV1ZV9zdGF0ZShzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksCiAJCWh3X2RlcXVldWUgPSBsZTY0 X3RvX2NwdShlcF9jdHgtPmRlcSk7CiAJfQogCi0JLyogRmluZCB2aXJ0dWFsIGFkZHJlc3MgYW5k IHNlZ21lbnQgb2YgaGFyZHdhcmUgZGVxdWV1ZSBwb2ludGVyICovCi0Jc3RhdGUtPm5ld19kZXFf c2VnID0gZXBfcmluZy0+ZGVxX3NlZzsKLQlzdGF0ZS0+bmV3X2RlcV9wdHIgPSBlcF9yaW5nLT5k ZXF1ZXVlOwotCXdoaWxlICh4aGNpX3RyYl92aXJ0X3RvX2RtYShzdGF0ZS0+bmV3X2RlcV9zZWcs IHN0YXRlLT5uZXdfZGVxX3B0cikKLQkJCSE9IChkbWFfYWRkcl90KShod19kZXF1ZXVlICYgfjB4 ZikpIHsKLQkJbmV4dF90cmIoeGhjaSwgZXBfcmluZywgJnN0YXRlLT5uZXdfZGVxX3NlZywKLQkJ CQkJJnN0YXRlLT5uZXdfZGVxX3B0cik7Ci0JCWlmIChzdGF0ZS0+bmV3X2RlcV9wdHIgPT0gZXBf cmluZy0+ZGVxdWV1ZSkgewotCQkJV0FSTl9PTigxKTsKLQkJCXJldHVybjsKLQkJfQotCX0KKwlu ZXdfc2VnID0gZXBfcmluZy0+ZGVxX3NlZzsKKwluZXdfZGVxID0gZXBfcmluZy0+ZGVxdWV1ZTsK KwlzdGF0ZS0+bmV3X2N5Y2xlX3N0YXRlID0gaHdfZGVxdWV1ZSAmIDB4MTsKKwogCS8qCi0JICog RmluZCBjeWNsZSBzdGF0ZSBmb3IgbGFzdF90cmIsIHN0YXJ0aW5nIGF0IG9sZCBjeWNsZSBzdGF0 ZSBvZgotCSAqIGh3X2RlcXVldWUuIElmIHRoZXJlIGlzIG9ubHkgb25lIHNlZ21lbnQgcmluZywg ZmluZF90cmJfc2VnKCkgd2lsbAotCSAqIHJldHVybiBpbW1lZGlhdGVseSBhbmQgY2Fubm90IHRv Z2dsZSB0aGUgY3ljbGUgc3RhdGUgaWYgdGhpcyBzZWFyY2gKLQkgKiB3cmFwcyBhcm91bmQsIHNv IGFkZCBvbmUgbW9yZSB0b2dnbGUgbWFudWFsbHkgaW4gdGhhdCBjYXNlLgorCSAqIFdlIHdhbnQg dG8gZmluZCB0aGUgcG9pbnRlciwgc2VnbWVudCBhbmQgY3ljbGUgc3RhdGUgb2YgdGhlIG5ldyB0 cmIKKwkgKiAodGhlIG9uZSBhZnRlciBjdXJyZW50IFREJ3MgbGFzdF90cmIpLiBXZSBrbm93IHRo ZSBjeWNsZSBzdGF0ZSBhdAorCSAqIGh3X2RlcXVldWUsIHNvIHdhbGsgdGhlIHJpbmcgdW50aWwg Ym90aCBod19kZXF1ZXVlIGFuZCBsYXN0X3RyYiBhcmUKKwkgKiBmb3VuZC4KIAkgKi8KLQlzdGF0 ZS0+bmV3X2N5Y2xlX3N0YXRlID0gaHdfZGVxdWV1ZSAmIDB4MTsKLQlpZiAoZXBfcmluZy0+Zmly c3Rfc2VnID09IGVwX3JpbmctPmZpcnN0X3NlZy0+bmV4dCAmJgotCQkJY3VyX3RkLT5sYXN0X3Ry YiA8IHN0YXRlLT5uZXdfZGVxX3B0cikKLQkJc3RhdGUtPm5ld19jeWNsZV9zdGF0ZSBePSAweDE7 Ci0KLQlzdGF0ZS0+bmV3X2RlcV9wdHIgPSBjdXJfdGQtPmxhc3RfdHJiOwotCXhoY2lfZGJnKHho Y2ksICJGaW5kaW5nIHNlZ21lbnQgY29udGFpbmluZyBsYXN0IFRSQiBpbiBURC5cbiIpOwotCXN0 YXRlLT5uZXdfZGVxX3NlZyA9IGZpbmRfdHJiX3NlZyhzdGF0ZS0+bmV3X2RlcV9zZWcsCi0JCQlz dGF0ZS0+bmV3X2RlcV9wdHIsICZzdGF0ZS0+bmV3X2N5Y2xlX3N0YXRlKTsKLQlpZiAoIXN0YXRl LT5uZXdfZGVxX3NlZykgewotCQlXQVJOX09OKDEpOwotCQlyZXR1cm47Ci0JfQorCWRvIHsKKwkJ aWYgKCFjeWNsZV9mb3VuZCAmJiB4aGNpX3RyYl92aXJ0X3RvX2RtYShuZXdfc2VnLCBuZXdfZGVx KQorCQkgICAgPT0gKGRtYV9hZGRyX3QpKGh3X2RlcXVldWUgJiB+MHhmKSkgeworCQkJY3ljbGVf Zm91bmQgPSB0cnVlOworCQkJaWYgKHRkX2xhc3RfdHJiX2ZvdW5kKQorCQkJCWJyZWFrOworCQl9 CisJCWlmIChuZXdfZGVxID09IGN1cl90ZC0+bGFzdF90cmIpCisJCQl0ZF9sYXN0X3RyYl9mb3Vu ZCA9IHRydWU7CisKKwkJaWYgKGN5Y2xlX2ZvdW5kICYmCisJCSAgICBUUkJfVFlQRV9MSU5LX0xF MzIobmV3X2RlcS0+Z2VuZXJpYy5maWVsZFszXSkgJiYKKwkJICAgIG5ld19kZXEtPmdlbmVyaWMu ZmllbGRbM10gJiBjcHVfdG9fbGUzMihMSU5LX1RPR0dMRSkpCisJCQlzdGF0ZS0+bmV3X2N5Y2xl X3N0YXRlIF49IDB4MTsKKworCQluZXh0X3RyYih4aGNpLCBlcF9yaW5nLCAmbmV3X3NlZywgJm5l d19kZXEpOworCisJCS8qIFNlYXJjaCB3cmFwcGVkIGFyb3VuZCwgYmFpbCBvdXQgKi8KKwkJaWYg KG5ld19kZXEgPT0gZXAtPnJpbmctPmRlcXVldWUpIHsKKwkJCXhoY2lfZXJyKHhoY2ksICJFcnJv cjogRmFpbGVkIGZpbmRpbmcgbmV3IGRlcXVldWUgc3RhdGVcbiIpOworCQkJc3RhdGUtPm5ld19k ZXFfc2VnID0gTlVMTDsKKwkJCXN0YXRlLT5uZXdfZGVxX3B0ciA9IE5VTEw7CisJCQlyZXR1cm47 CisJCX0KKworCX0gd2hpbGUgKCFjeWNsZV9mb3VuZCB8fCAhdGRfbGFzdF90cmJfZm91bmQpOwog Ci0JLyogSW5jcmVtZW50IHRvIGZpbmQgbmV4dCBUUkIgYWZ0ZXIgbGFzdF90cmIuIEN5Y2xlIGlm IGFwcHJvcHJpYXRlLiAqLwotCXRyYiA9ICZzdGF0ZS0+bmV3X2RlcV9wdHItPmdlbmVyaWM7Ci0J aWYgKFRSQl9UWVBFX0xJTktfTEUzMih0cmItPmZpZWxkWzNdKSAmJgotCSAgICAodHJiLT5maWVs ZFszXSAmIGNwdV90b19sZTMyKExJTktfVE9HR0xFKSkpCi0JCXN0YXRlLT5uZXdfY3ljbGVfc3Rh dGUgXj0gMHgxOwotCW5leHRfdHJiKHhoY2ksIGVwX3JpbmcsICZzdGF0ZS0+bmV3X2RlcV9zZWcs ICZzdGF0ZS0+bmV3X2RlcV9wdHIpOworCXN0YXRlLT5uZXdfZGVxX3NlZyA9IG5ld19zZWc7CisJ c3RhdGUtPm5ld19kZXFfcHRyID0gbmV3X2RlcTsKIAogCS8qIERvbid0IHVwZGF0ZSB0aGUgcmlu ZyBjeWNsZSBzdGF0ZSBmb3IgdGhlIHByb2R1Y2VyICh1cykuICovCiAJeGhjaV9kYmcoeGhjaSwg IkN5Y2xlIHN0YXRlID0gMHgleFxuIiwgc3RhdGUtPm5ld19jeWNsZV9zdGF0ZSk7CkBAIC0yNDMz LDcgKzI0MzcsOCBAQCBzdGF0aWMgaW50IGhhbmRsZV90eF9ldmVudChzdHJ1Y3QgeGhjaV9oY2Qg KnhoY2ksCiAJCSAqIGxhc3QgVFJCIG9mIHRoZSBwcmV2aW91cyBURC4gVGhlIGNvbW1hbmQgY29t cGxldGlvbiBoYW5kbGUKIAkJICogd2lsbCB0YWtlIGNhcmUgdGhlIHJlc3QuCiAJCSAqLwotCQlp ZiAoIWV2ZW50X3NlZyAmJiB0cmJfY29tcF9jb2RlID09IENPTVBfU1RPUF9JTlZBTCkgeworCQlp ZiAoIWV2ZW50X3NlZyAmJiAodHJiX2NvbXBfY29kZSA9PSBDT01QX1NUT1AgfHwKKwkJCQkgICB0 cmJfY29tcF9jb2RlID09IENPTVBfU1RPUF9JTlZBTCkpIHsKIAkJCXJldCA9IDA7CiAJCQlnb3Rv IGNsZWFudXA7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5jIGIvZHJp dmVycy91c2IvaG9zdC94aGNpLmMKaW5kZXggNDU3YTdhYy4uNGNjMTgwNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy91c2IvaG9zdC94aGNpLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLmMKQEAg LTI4MTksNiArMjgxOSw5IEBAIHZvaWQgeGhjaV9jbGVhbnVwX3N0YWxsZWRfcmluZyhzdHJ1Y3Qg eGhjaV9oY2QgKnhoY2ksCiAJCQllcF9pbmRleCwgZXAtPnN0b3BwZWRfc3RyZWFtLCBlcC0+c3Rv cHBlZF90ZCwKIAkJCSZkZXFfc3RhdGUpOwogCisJaWYgKCFkZXFfc3RhdGUubmV3X2RlcV9wdHIg fHwgIWRlcV9zdGF0ZS5uZXdfZGVxX3NlZykKKwkJcmV0dXJuOworCiAJLyogSFcgd2l0aCB0aGUg cmVzZXQgZW5kcG9pbnQgcXVpcmsgd2lsbCB1c2UgdGhlIHNhdmVkIGRlcXVldWUgc3RhdGUgdG8K IAkgKiBpc3N1ZSBhIGNvbmZpZ3VyZSBlbmRwb2ludCBjb21tYW5kIGxhdGVyLgogCSAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy91c2IvbWlzYy9zaXN1c2J2Z2Evc2lzdXNiLmMgYi9kcml2ZXJzL3Vz Yi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYwppbmRleCA3YWYxNjNkLi5mMWJmZDAxIDEwMDY0NAot LS0gYS9kcml2ZXJzL3VzYi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYworKysgYi9kcml2ZXJzL3Vz Yi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYwpAQCAtMzI0OCw2ICszMjQ4LDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHNpc3VzYl90YWJsZVtdID0gewogCXsgVVNCX0RFVklD RSgweDA3MTEsIDB4MDkxOCkgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNzExLCAweDA5MjApIH0sCiAJ eyBVU0JfREVWSUNFKDB4MDcxMSwgMHgwOTUwKSB9LAorCXsgVVNCX0RFVklDRSgweDA3MTEsIDB4 NTIwMCkgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxODJkLCAweDAyMWMpIH0sCiAJeyBVU0JfREVWSUNF KDB4MTgyZCwgMHgwMjY5KSB9LAogCXsgfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFs L2Z0ZGlfc2lvLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYwppbmRleCBkNmU2MjA1 Li4wZDM0Zjg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYworKysg Yi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYwpAQCAtMTYyLDYgKzE2Miw3IEBAIHN0YXRp YyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZV9jb21iaW5lZCBbXSA9IHsKIAl7IFVTQl9E RVZJQ0UoRlRESV9WSUQsIEZURElfQU1DMjMyX1BJRCkgfSwKIAl7IFVTQl9ERVZJQ0UoRlRESV9W SUQsIEZURElfQ0FOVVNCX1BJRCkgfSwKIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfQ0FO REFQVEVSX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfQk1fQVRPTV9OQU5P X1BJRCkgfSwKIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfTlhUQ0FNX1BJRCkgfSwKIAl7 IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfRVYzQ09OX1BJRCkgfSwKIAl7IFVTQl9ERVZJQ0Uo RlRESV9WSUQsIEZURElfU0NTX0RFVklDRV8wX1BJRCkgfSwKQEAgLTY4NCw2ICs2ODUsOCBAQCBz dGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVfY29tYmluZWQgW10gPSB7CiAJeyBV U0JfREVWSUNFKEZURElfVklELCBYU0VOU19DT05WRVJURVJfNV9QSUQpIH0sCiAJeyBVU0JfREVW SUNFKEZURElfVklELCBYU0VOU19DT05WRVJURVJfNl9QSUQpIH0sCiAJeyBVU0JfREVWSUNFKEZU RElfVklELCBYU0VOU19DT05WRVJURVJfN19QSUQpIH0sCisJeyBVU0JfREVWSUNFKFhTRU5TX1ZJ RCwgWFNFTlNfQ09OVkVSVEVSX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoWFNFTlNfVklELCBYU0VO U19NVFdfUElEKSB9LAogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9PTU5JMTUwOSkgfSwK IAl7IFVTQl9ERVZJQ0UoTU9CSUxJVFlfVklELCBNT0JJTElUWV9VU0JfU0VSSUFMX1BJRCkgfSwK IAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfQUNUSVZFX1JPQk9UU19QSUQpIH0sCkBAIC05 NTYsNiArOTU5LDggQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJp bmVkIFtdID0gewogCXsgVVNCX0RFVklDRShCUkFJTkJPWEVTX1ZJRCwgQlJBSU5CT1hFU19VU184 NDJfMl9QSUQpIH0sCiAJeyBVU0JfREVWSUNFKEJSQUlOQk9YRVNfVklELCBCUkFJTkJPWEVTX1VT Xzg0Ml8zX1BJRCkgfSwKIAl7IFVTQl9ERVZJQ0UoQlJBSU5CT1hFU19WSUQsIEJSQUlOQk9YRVNf VVNfODQyXzRfUElEKSB9LAorCS8qIGVrZXkgRGV2aWNlcyAqLworCXsgVVNCX0RFVklDRShGVERJ X1ZJRCwgRlRESV9FS0VZX0NPTlZfVVNCX1BJRCkgfSwKIAl7IH0sCQkJCQkvKiBPcHRpb25hbCBw YXJhbWV0ZXIgZW50cnkgKi8KIAl7IH0JCQkJCS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCiB9Owpk aWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvX2lkcy5oIGIvZHJpdmVycy91 c2Ivc2VyaWFsL2Z0ZGlfc2lvX2lkcy5oCmluZGV4IDU1YWY5MTUuLmNiY2IxZTYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaAorKysgYi9kcml2ZXJzL3VzYi9z ZXJpYWwvZnRkaV9zaW9faWRzLmgKQEAgLTQyLDYgKzQyLDggQEAKIC8qIHd3dy5jYW5kYXB0ZXIu Y29tIEV3ZXJ0IEVuZXJneSBTeXN0ZW1zIENBTmRhcHRlciBkZXZpY2UgKi8KICNkZWZpbmUgRlRE SV9DQU5EQVBURVJfUElEIDB4OUY4MCAvKiBQcm9kdWN0IElkICovCiAKKyNkZWZpbmUgRlRESV9C TV9BVE9NX05BTk9fUElECTB4YTU1OQkvKiBCYXNpYyBNaWNybyBBVE9NIE5hbm8gVVNCMlNlcmlh bCAqLworCiAvKgogICogVGV4YXMgSW5zdHJ1bWVudHMgWERTMTAwdjIgSlRBRyAvIEJlYWdsZUJv bmUgQTMKICAqIGh0dHA6Ly9wcm9jZXNzb3JzLndpa2kudGkuY29tL2luZGV4LnBocC9YRFMxMDAK QEAgLTE0MCwxMiArMTQyLDE1IEBACiAvKgogICogWHNlbnMgVGVjaG5vbG9naWVzIEJWIHByb2R1 Y3RzIChodHRwOi8vd3d3LnhzZW5zLmNvbSkuCiAgKi8KLSNkZWZpbmUgWFNFTlNfQ09OVkVSVEVS XzBfUElECTB4RDM4OAotI2RlZmluZSBYU0VOU19DT05WRVJURVJfMV9QSUQJMHhEMzg5CisjZGVm aW5lIFhTRU5TX1ZJRAkJMHgyNjM5CisjZGVmaW5lIFhTRU5TX0NPTlZFUlRFUl9QSUQJMHhEMDBE CS8qIFhzZW5zIFVTQi1zZXJpYWwgY29udmVydGVyICovCisjZGVmaW5lIFhTRU5TX01UV19QSUQJ CTB4MDIwMAkvKiBYc2VucyBNVHcgKi8KKyNkZWZpbmUgWFNFTlNfQ09OVkVSVEVSXzBfUElECTB4 RDM4OAkvKiBYc2VucyBVU0IgY29udmVydGVyICovCisjZGVmaW5lIFhTRU5TX0NPTlZFUlRFUl8x X1BJRAkweEQzODkJLyogWHNlbnMgV2lyZWxlc3MgUmVjZWl2ZXIgKi8KICNkZWZpbmUgWFNFTlNf Q09OVkVSVEVSXzJfUElECTB4RDM4QQotI2RlZmluZSBYU0VOU19DT05WRVJURVJfM19QSUQJMHhE MzhCCi0jZGVmaW5lIFhTRU5TX0NPTlZFUlRFUl80X1BJRAkweEQzOEMKLSNkZWZpbmUgWFNFTlNf Q09OVkVSVEVSXzVfUElECTB4RDM4RAorI2RlZmluZSBYU0VOU19DT05WRVJURVJfM19QSUQJMHhE MzhCCS8qIFhzZW5zIFVTQi1zZXJpYWwgY29udmVydGVyICovCisjZGVmaW5lIFhTRU5TX0NPTlZF UlRFUl80X1BJRAkweEQzOEMJLyogWHNlbnMgV2lyZWxlc3MgUmVjZWl2ZXIgKi8KKyNkZWZpbmUg WFNFTlNfQ09OVkVSVEVSXzVfUElECTB4RDM4RAkvKiBYc2VucyBBd2luZGEgU3RhdGlvbiAqLwog I2RlZmluZSBYU0VOU19DT05WRVJURVJfNl9QSUQJMHhEMzhFCiAjZGVmaW5lIFhTRU5TX0NPTlZF UlRFUl83X1BJRAkweEQzOEYKIApAQCAtMTM2OSwzICsxMzc0LDggQEAKICNkZWZpbmUgQlJBSU5C T1hFU19VU18xNjBfNl9QSUQJCTB4OTAwNiAvKiBVUy0xNjAgMTZ4UlMyMzIgMU1iYXVkIFBvcnQg MTEgYW5kIDEyICovCiAjZGVmaW5lIEJSQUlOQk9YRVNfVVNfMTYwXzdfUElECQkweDkwMDcgLyog VVMtMTYwIDE2eFJTMjMyIDFNYmF1ZCBQb3J0IDEzIGFuZCAxNCAqLwogI2RlZmluZSBCUkFJTkJP WEVTX1VTXzE2MF84X1BJRAkJMHg5MDA4IC8qIFVTLTE2MCAxNnhSUzIzMiAxTWJhdWQgUG9ydCAx NSBhbmQgMTYgKi8KKworLyoKKyAqIGVrZXkgYmlvbWV0cmljIHN5c3RlbXMgR21iSCAoaHR0cDov L2VrZXkubmV0LykKKyAqLworI2RlZmluZSBGVERJX0VLRVlfQ09OVl9VU0JfUElECQkweENCMDgJ LyogQ29udmVydGVyIFVTQiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlv bi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jCmluZGV4IDdhMWM5MWUuLmQ4MzYwYmUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYworKysgYi9kcml2ZXJzL3Vz Yi9zZXJpYWwvb3B0aW9uLmMKQEAgLTQ5Niw2ICs0OTYsMTAgQEAgc3RhdGljIHZvaWQgb3B0aW9u X2luc3RhdF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIpOwogI2RlZmluZSBJTk9WSUFfVkVORE9S X0lECQkJMHgyMGE2CiAjZGVmaW5lIElOT1ZJQV9TRVc4NTgJCQkJMHgxMTA1CiAKKy8qIFZJQSBU ZWxlY29tICovCisjZGVmaW5lIFZJQVRFTEVDT01fVkVORE9SX0lECQkJMHgxNWViCisjZGVmaW5l IFZJQVRFTEVDT01fUFJPRFVDVF9DRFM3CQkJMHgwMDAxCisKIC8qIHNvbWUgZGV2aWNlcyBpbnRl cmZhY2VzIG5lZWQgc3BlY2lhbCBoYW5kbGluZyBkdWUgdG8gYSBudW1iZXIgb2YgcmVhc29ucyAq LwogZW51bSBvcHRpb25fYmxhY2tsaXN0X3JlYXNvbiB7CiAJCU9QVElPTl9CTEFDS0xJU1RfTk9O RSA9IDAsCkBAIC0xNzQwLDYgKzE3NDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZp Y2VfaWQgb3B0aW9uX2lkc1tdID0gewogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8o MHgwN2QxLCAweDNlMDEsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sIC8qIEQtTGluayBEV00tMTUyL0Mx ICovCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA3ZDEsIDB4M2UwMiwgMHhm ZiwgMHhmZiwgMHhmZikgfSwgLyogRC1MaW5rIERXTS0xNTYvQzEgKi8KIAl7IFVTQl9ERVZJQ0Uo SU5PVklBX1ZFTkRPUl9JRCwgSU5PVklBX1NFVzg1OCkgfSwKKwl7IFVTQl9ERVZJQ0UoVklBVEVM RUNPTV9WRU5ET1JfSUQsIFZJQVRFTEVDT01fUFJPRFVDVF9DRFM3KSB9LAogCXsgfSAvKiBUZXJt aW5hdGluZyBlbnRyeSAqLwogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBvcHRpb25faWRz KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYyBiL2RyaXZlcnMvdXNi L3NlcmlhbC9wbDIzMDMuYwppbmRleCA0NWEyODhjLi43YmEzOGVhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5j CkBAIC01MSw2ICs1MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90 YWJsZVtdID0gewogCXsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNfUFJPRFVD VF9JRF9HUFJTKSB9LAogCXsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNfUFJP RFVDVF9JRF9IQ1IzMzEpIH0sCiAJeyBVU0JfREVWSUNFKFBMMjMwM19WRU5ET1JfSUQsIFBMMjMw M19QUk9EVUNUX0lEX01PVE9ST0xBKSB9LAorCXsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lE LCBQTDIzMDNfUFJPRFVDVF9JRF9aVEVLKSB9LAogCXsgVVNCX0RFVklDRShJT0RBVEFfVkVORE9S X0lELCBJT0RBVEFfUFJPRFVDVF9JRCkgfSwKIAl7IFVTQl9ERVZJQ0UoSU9EQVRBX1ZFTkRPUl9J RCwgSU9EQVRBX1BST0RVQ1RfSURfUlNBUTUpIH0sCiAJeyBVU0JfREVWSUNFKEFURU5fVkVORE9S X0lELCBBVEVOX1BST0RVQ1RfSUQpIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwv cGwyMzAzLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmgKaW5kZXggNDJiYzA4Mi4uNzFm ZDlkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5oCisrKyBiL2RyaXZl cnMvdXNiL3NlcmlhbC9wbDIzMDMuaApAQCAtMjIsNiArMjIsNyBAQAogI2RlZmluZSBQTDIzMDNf UFJPRFVDVF9JRF9HUFJTCQkweDA2MDkKICNkZWZpbmUgUEwyMzAzX1BST0RVQ1RfSURfSENSMzMx CTB4MzMxYQogI2RlZmluZSBQTDIzMDNfUFJPRFVDVF9JRF9NT1RPUk9MQQkweDAzMDcKKyNkZWZp bmUgUEwyMzAzX1BST0RVQ1RfSURfWlRFSwkJMHhlMWYxCiAKICNkZWZpbmUgQVRFTl9WRU5ET1Jf SUQJCTB4MDU1NwogI2RlZmluZSBBVEVOX1ZFTkRPUl9JRDIJCTB4MDU0NwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC91c2It c2VyaWFsLmMKaW5kZXggOGY3NmEyYi4uODAzODA2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Iv c2VyaWFsL3VzYi1zZXJpYWwuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5j CkBAIC03OTEsMjkgKzc5MSwzOSBAQCBpbnQgdXNiX3NlcmlhbF9wcm9iZShzdHJ1Y3QgdXNiX2lu dGVyZmFjZSAqaW50ZXJmYWNlLAogCQlpZiAodXNiX2VuZHBvaW50X2lzX2J1bGtfaW4oZW5kcG9p bnQpKSB7CiAJCQkvKiB3ZSBmb3VuZCBhIGJ1bGsgaW4gZW5kcG9pbnQgKi8KIAkJCWRiZygiZm91 bmQgYnVsayBpbiBvbiBlbmRwb2ludCAlZCIsIGkpOwotCQkJYnVsa19pbl9lbmRwb2ludFtudW1f YnVsa19pbl0gPSBlbmRwb2ludDsKLQkJCSsrbnVtX2J1bGtfaW47CisJCQlpZiAobnVtX2J1bGtf aW4gPCBNQVhfTlVNX1BPUlRTKSB7CisJCQkJYnVsa19pbl9lbmRwb2ludFtudW1fYnVsa19pbl0g PSBlbmRwb2ludDsKKwkJCQkrK251bV9idWxrX2luOworCQkJfQogCQl9CiAKIAkJaWYgKHVzYl9l bmRwb2ludF9pc19idWxrX291dChlbmRwb2ludCkpIHsKIAkJCS8qIHdlIGZvdW5kIGEgYnVsayBv dXQgZW5kcG9pbnQgKi8KIAkJCWRiZygiZm91bmQgYnVsayBvdXQgb24gZW5kcG9pbnQgJWQiLCBp KTsKLQkJCWJ1bGtfb3V0X2VuZHBvaW50W251bV9idWxrX291dF0gPSBlbmRwb2ludDsKLQkJCSsr bnVtX2J1bGtfb3V0OworCQkJaWYgKG51bV9idWxrX291dCA8IE1BWF9OVU1fUE9SVFMpIHsKKwkJ CQlidWxrX291dF9lbmRwb2ludFtudW1fYnVsa19vdXRdID0gZW5kcG9pbnQ7CisJCQkJKytudW1f YnVsa19vdXQ7CisJCQl9CiAJCX0KIAogCQlpZiAodXNiX2VuZHBvaW50X2lzX2ludF9pbihlbmRw b2ludCkpIHsKIAkJCS8qIHdlIGZvdW5kIGEgaW50ZXJydXB0IGluIGVuZHBvaW50ICovCiAJCQlk YmcoImZvdW5kIGludGVycnVwdCBpbiBvbiBlbmRwb2ludCAlZCIsIGkpOwotCQkJaW50ZXJydXB0 X2luX2VuZHBvaW50W251bV9pbnRlcnJ1cHRfaW5dID0gZW5kcG9pbnQ7Ci0JCQkrK251bV9pbnRl cnJ1cHRfaW47CisJCQlpZiAobnVtX2ludGVycnVwdF9pbiA8IE1BWF9OVU1fUE9SVFMpIHsKKwkJ CQlpbnRlcnJ1cHRfaW5fZW5kcG9pbnRbbnVtX2ludGVycnVwdF9pbl0gPQorCQkJCQkJZW5kcG9p bnQ7CisJCQkJKytudW1faW50ZXJydXB0X2luOworCQkJfQogCQl9CiAKIAkJaWYgKHVzYl9lbmRw b2ludF9pc19pbnRfb3V0KGVuZHBvaW50KSkgewogCQkJLyogd2UgZm91bmQgYW4gaW50ZXJydXB0 IG91dCBlbmRwb2ludCAqLwogCQkJZGJnKCJmb3VuZCBpbnRlcnJ1cHQgb3V0IG9uIGVuZHBvaW50 ICVkIiwgaSk7Ci0JCQlpbnRlcnJ1cHRfb3V0X2VuZHBvaW50W251bV9pbnRlcnJ1cHRfb3V0XSA9 IGVuZHBvaW50OwotCQkJKytudW1faW50ZXJydXB0X291dDsKKwkJCWlmIChudW1faW50ZXJydXB0 X291dCA8IE1BWF9OVU1fUE9SVFMpIHsKKwkJCQlpbnRlcnJ1cHRfb3V0X2VuZHBvaW50W251bV9p bnRlcnJ1cHRfb3V0XSA9CisJCQkJCQllbmRwb2ludDsKKwkJCQkrK251bV9pbnRlcnJ1cHRfb3V0 OworCQkJfQogCQl9CiAJfQogCkBAIC04MzYsOCArODQ2LDEwIEBAIGludCB1c2Jfc2VyaWFsX3By b2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsCiAJCQkJaWYgKHVzYl9lbmRwb2lu dF9pc19pbnRfaW4oZW5kcG9pbnQpKSB7CiAJCQkJCS8qIHdlIGZvdW5kIGEgaW50ZXJydXB0IGlu IGVuZHBvaW50ICovCiAJCQkJCWRiZygiZm91bmQgaW50ZXJydXB0IGluIGZvciBQcm9saWZpYyBk ZXZpY2Ugb24gc2VwYXJhdGUgaW50ZXJmYWNlIik7Ci0JCQkJCWludGVycnVwdF9pbl9lbmRwb2lu dFtudW1faW50ZXJydXB0X2luXSA9IGVuZHBvaW50OwotCQkJCQkrK251bV9pbnRlcnJ1cHRfaW47 CisJCQkJCWlmIChudW1faW50ZXJydXB0X2luIDwgTUFYX05VTV9QT1JUUykgeworCQkJCQkJaW50 ZXJydXB0X2luX2VuZHBvaW50W251bV9pbnRlcnJ1cHRfaW5dID0gZW5kcG9pbnQ7CisJCQkJCQkr K251bV9pbnRlcnJ1cHRfaW47CisJCQkJCX0KIAkJCQl9CiAJCQl9CiAJCX0KQEAgLTg3Niw2ICs4 ODgsMTEgQEAgaW50IHVzYl9zZXJpYWxfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVy ZmFjZSwKIAkJCW51bV9wb3J0cyA9IHR5cGUtPm51bV9wb3J0czsKIAl9CiAKKwlpZiAobnVtX3Bv cnRzID4gTUFYX05VTV9QT1JUUykgeworCQlkZXZfd2FybigmaW50ZXJmYWNlLT5kZXYsICJ0b28g bWFueSBwb3J0cyByZXF1ZXN0ZWQ6ICVkXG4iLCBudW1fcG9ydHMpOworCQludW1fcG9ydHMgPSBN QVhfTlVNX1BPUlRTOworCX0KKwogCXNlcmlhbC0+bnVtX3BvcnRzID0gbnVtX3BvcnRzOwogCXNl cmlhbC0+bnVtX2J1bGtfaW4gPSBudW1fYnVsa19pbjsKIAlzZXJpYWwtPm51bV9idWxrX291dCA9 IG51bV9idWxrX291dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXQu YyBiL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXQuYwppbmRleCAwZWM2MGNkLi41NDgxODA5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvd2hpdGVoZWF0LmMKKysrIGIvZHJpdmVy cy91c2Ivc2VyaWFsL3doaXRlaGVhdC5jCkBAIC0xMDA2LDYgKzEwMDYsMTAgQEAgc3RhdGljIHZv aWQgY29tbWFuZF9wb3J0X3JlYWRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiKQogCQlkYmcoIiVz IC0gY29tbWFuZF9pbmZvIGlzIE5VTEwsIGV4aXRpbmcuIiwgX19mdW5jX18pOwogCQlyZXR1cm47 CiAJfQorCWlmICghdXJiLT5hY3R1YWxfbGVuZ3RoKSB7CisJCWRldl9kYmcoJnVyYi0+ZGV2LT5k ZXYsICIlcyAtIGVtcHR5IHJlc3BvbnNlLCBleGl0aW5nLlxuIiwgX19mdW5jX18pOworCQlyZXR1 cm47CisJfQogCWlmIChzdGF0dXMpIHsKIAkJZGJnKCIlcyAtIG5vbnplcm8gdXJiIHN0YXR1czog JWQiLCBfX2Z1bmNfXywgc3RhdHVzKTsKIAkJaWYgKHN0YXR1cyAhPSAtRU5PRU5UKQpAQCAtMTAy Nyw3ICsxMDMxLDggQEAgc3RhdGljIHZvaWQgY29tbWFuZF9wb3J0X3JlYWRfY2FsbGJhY2soc3Ry dWN0IHVyYiAqdXJiKQogCQkvKiBUaGVzZSBhcmUgdW5zb2xpY2l0ZWQgcmVwb3J0cyBmcm9tIHRo ZSBmaXJtd2FyZSwgaGVuY2Ugbm8KIAkJICAgd2FpdGluZyBjb21tYW5kIHRvIHdha2V1cCAqLwog CQlkYmcoIiVzIC0gZXZlbnQgcmVjZWl2ZWQiLCBfX2Z1bmNfXyk7Ci0JfSBlbHNlIGlmIChkYXRh WzBdID09IFdISVRFSEVBVF9HRVRfRFRSX1JUUykgeworCX0gZWxzZSBpZiAoKGRhdGFbMF0gPT0g V0hJVEVIRUFUX0dFVF9EVFJfUlRTKSAmJgorCQkodXJiLT5hY3R1YWxfbGVuZ3RoIC0gMSA8PSBz aXplb2YoY29tbWFuZF9pbmZvLT5yZXN1bHRfYnVmZmVyKSkpIHsKIAkJbWVtY3B5KGNvbW1hbmRf aW5mby0+cmVzdWx0X2J1ZmZlciwgJmRhdGFbMV0sCiAJCQkJCQl1cmItPmFjdHVhbF9sZW5ndGgg LSAxKTsKIAkJY29tbWFuZF9pbmZvLT5jb21tYW5kX2ZpbmlzaGVkID0gV0hJVEVIRUFUX0NNRF9D T01QTEVURTsKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2ZpbGUtaXRlbS5jIGIvZnMvYnRyZnMvZmls ZS1pdGVtLmMKaW5kZXggYzdmYjNhNC4uZDdjOWI2OCAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvZmls ZS1pdGVtLmMKKysrIGIvZnMvYnRyZnMvZmlsZS1pdGVtLmMKQEAgLTcxNyw3ICs3MTcsNyBAQCBh Z2FpbjoKIAkJCQlmb3VuZF9uZXh0ID0gMTsKIAkJCWlmIChyZXQgIT0gMCkKIAkJCQlnb3RvIGlu c2VydDsKLQkJCXNsb3QgPSAwOworCQkJc2xvdCA9IHBhdGgtPnNsb3RzWzBdOwogCQl9CiAJCWJ0 cmZzX2l0ZW1fa2V5X3RvX2NwdShwYXRoLT5ub2Rlc1swXSwgJmZvdW5kX2tleSwgc2xvdCk7CiAJ CWlmIChmb3VuZF9rZXkub2JqZWN0aWQgIT0gQlRSRlNfRVhURU5UX0NTVU1fT0JKRUNUSUQgfHwK ZGlmZiAtLWdpdCBhL2ZzL2NpZnMvaW5vZGUuYyBiL2ZzL2NpZnMvaW5vZGUuYwppbmRleCAyMDQz MWI0Li5jMGM1MWUxIDEwMDY0NAotLS0gYS9mcy9jaWZzL2lub2RlLmMKKysrIGIvZnMvY2lmcy9p bm9kZS5jCkBAIC0xNjM4LDYgKzE2MzgsMTIgQEAgdW5saW5rX3RhcmdldDoKIAkJCQkgICAgdGFy Z2V0X2RlbnRyeSwgdG9OYW1lKTsKIAl9CiAKKwkvKiBmb3JjZSByZXZhbGlkYXRlIHRvIGdvIGdl dCBpbmZvIHdoZW4gbmVlZGVkICovCisJQ0lGU19JKHNvdXJjZV9kaXIpLT50aW1lID0gQ0lGU19J KHRhcmdldF9kaXIpLT50aW1lID0gMDsKKworCXNvdXJjZV9kaXItPmlfY3RpbWUgPSBzb3VyY2Vf ZGlyLT5pX210aW1lID0gdGFyZ2V0X2Rpci0+aV9jdGltZSA9CisJCXRhcmdldF9kaXItPmlfbXRp bWUgPSBjdXJyZW50X2ZzX3RpbWUoc291cmNlX2Rpci0+aV9zYik7CisKIGNpZnNfcmVuYW1lX2V4 aXQ6CiAJa2ZyZWUoaW5mb19idWZfc291cmNlKTsKIAlrZnJlZShmcm9tTmFtZSk7CmRpZmYgLS1n aXQgYS9mcy9kZWJ1Z2ZzL2lub2RlLmMgYi9mcy9kZWJ1Z2ZzL2lub2RlLmMKaW5kZXggZmIwMDFj ZC4uMDE5NTFjNmIgMTAwNjQ0Ci0tLSBhL2ZzL2RlYnVnZnMvaW5vZGUuYworKysgYi9mcy9kZWJ1 Z2ZzL2lub2RlLmMKQEAgLTM4MCw3ICszODAsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChkZWJ1Z2Zz X3JlbW92ZSk7CiAgKi8KIHZvaWQgZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKHN0cnVjdCBkZW50 cnkgKmRlbnRyeSkKIHsKLQlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCwgKm5leHQsICpwYXJlbnQ7CisJ c3RydWN0IGRlbnRyeSAqY2hpbGQsICpwYXJlbnQ7CiAKIAlpZiAoIWRlbnRyeSkKIAkJcmV0dXJu OwpAQCAtMzkyLDMxICszOTIsNDkgQEAgdm9pZCBkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoc3Ry dWN0IGRlbnRyeSAqZGVudHJ5KQogCXBhcmVudCA9IGRlbnRyeTsKICBkb3duOgogCW11dGV4X2xv Y2soJnBhcmVudC0+ZF9pbm9kZS0+aV9tdXRleCk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZl KGNoaWxkLCBuZXh0LCAmcGFyZW50LT5kX3N1YmRpcnMsIGRfdS5kX2NoaWxkKSB7CisgbG9vcDoK KwkvKgorCSAqIFRoZSBwYXJlbnQtPmRfc3ViZGlycyBpcyBwcm90ZWN0ZWQgYnkgdGhlIGRfbG9j ay4gT3V0c2lkZSB0aGF0CisJICogbG9jaywgdGhlIGNoaWxkIGNhbiBiZSB1bmxpbmtlZCBhbmQg c2V0IHRvIGJlIGZyZWVkIHdoaWNoIGNhbgorCSAqIHVzZSB0aGUgZF91LmRfY2hpbGQgYXMgdGhl IHJjdSBoZWFkIGFuZCBjb3JydXB0IHRoaXMgbGlzdC4KKwkgKi8KKwlzcGluX2xvY2soJnBhcmVu dC0+ZF9sb2NrKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNoaWxkLCAmcGFyZW50LT5kX3N1YmRp cnMsIGRfdS5kX2NoaWxkKSB7CiAJCWlmICghZGVidWdmc19wb3NpdGl2ZShjaGlsZCkpCiAJCQlj b250aW51ZTsKIAogCQkvKiBwZXJoYXBzIHNpbXBsZV9lbXB0eShjaGlsZCkgbWFrZXMgbW9yZSBz ZW5zZSAqLwogCQlpZiAoIWxpc3RfZW1wdHkoJmNoaWxkLT5kX3N1YmRpcnMpKSB7CisJCQlzcGlu X3VubG9jaygmcGFyZW50LT5kX2xvY2spOwogCQkJbXV0ZXhfdW5sb2NrKCZwYXJlbnQtPmRfaW5v ZGUtPmlfbXV0ZXgpOwogCQkJcGFyZW50ID0gY2hpbGQ7CiAJCQlnb3RvIGRvd247CiAJCX0KLSB1 cDoKKworCQlzcGluX3VubG9jaygmcGFyZW50LT5kX2xvY2spOworCiAJCWlmICghX19kZWJ1Z2Zz X3JlbW92ZShjaGlsZCwgcGFyZW50KSkKIAkJCXNpbXBsZV9yZWxlYXNlX2ZzKCZkZWJ1Z2ZzX21v dW50LCAmZGVidWdmc19tb3VudF9jb3VudCk7CisKKwkJLyoKKwkJICogVGhlIHBhcmVudC0+ZF9s b2NrIHByb3RlY3RzIGFnYWlzdCBjaGlsZCBmcm9tIHVubGlua2luZworCQkgKiBmcm9tIGRfc3Vi ZGlycy4gV2hlbiByZWxlYXNpbmcgdGhlIHBhcmVudC0+ZF9sb2NrIHdlIGNhbgorCQkgKiBubyBs b25nZXIgdHJ1c3QgdGhhdCB0aGUgbmV4dCBwb2ludGVyIGlzIHZhbGlkLgorCQkgKiBSZXN0YXJ0 IHRoZSBsb29wLiBXZSdsbCBza2lwIHRoaXMgb25lIHdpdGggdGhlCisJCSAqIGRlYnVnZnNfcG9z aXRpdmUoKSBjaGVjay4KKwkJICovCisJCWdvdG8gbG9vcDsKIAl9CisJc3Bpbl91bmxvY2soJnBh cmVudC0+ZF9sb2NrKTsKIAogCW11dGV4X3VubG9jaygmcGFyZW50LT5kX2lub2RlLT5pX211dGV4 KTsKIAljaGlsZCA9IHBhcmVudDsKIAlwYXJlbnQgPSBwYXJlbnQtPmRfcGFyZW50OwogCW11dGV4 X2xvY2soJnBhcmVudC0+ZF9pbm9kZS0+aV9tdXRleCk7CiAKLQlpZiAoY2hpbGQgIT0gZGVudHJ5 KSB7Ci0JCW5leHQgPSBsaXN0X2VudHJ5KGNoaWxkLT5kX3UuZF9jaGlsZC5uZXh0LCBzdHJ1Y3Qg ZGVudHJ5LAotCQkJCQlkX3UuZF9jaGlsZCk7Ci0JCWdvdG8gdXA7Ci0JfQorCWlmIChjaGlsZCAh PSBkZW50cnkpCisJCS8qIGdvIHVwICovCisJCWdvdG8gbG9vcDsKIAogCWlmICghX19kZWJ1Z2Zz X3JlbW92ZShjaGlsZCwgcGFyZW50KSkKIAkJc2ltcGxlX3JlbGVhc2VfZnMoJmRlYnVnZnNfbW91 bnQsICZkZWJ1Z2ZzX21vdW50X2NvdW50KTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvbWJhbGxvYy5j IGIvZnMvZXh0NC9tYmFsbG9jLmMKaW5kZXggNzE2OGVlYi4uODE4YjQzZSAxMDA2NDQKLS0tIGEv ZnMvZXh0NC9tYmFsbG9jLmMKKysrIGIvZnMvZXh0NC9tYmFsbG9jLmMKQEAgLTMxMjgsMTMgKzMx MjgsMjggQEAgc3RhdGljIHZvaWQgZXh0NF9tYl9jb2xsZWN0X3N0YXRzKHN0cnVjdCBleHQ0X2Fs bG9jYXRpb25fY29udGV4dCAqYWMpCiBzdGF0aWMgdm9pZCBleHQ0X2Rpc2NhcmRfYWxsb2NhdGVk X2Jsb2NrcyhzdHJ1Y3QgZXh0NF9hbGxvY2F0aW9uX2NvbnRleHQgKmFjKQogewogCXN0cnVjdCBl eHQ0X3ByZWFsbG9jX3NwYWNlICpwYSA9IGFjLT5hY19wYTsKLQlpbnQgbGVuOworCXN0cnVjdCBl eHQ0X2J1ZGR5IGU0YjsKKwlpbnQgZXJyOwogCi0JaWYgKHBhICYmIHBhLT5wYV90eXBlID09IE1C X0lOT0RFX1BBKSB7Ci0JCWxlbiA9IGFjLT5hY19iX2V4LmZlX2xlbjsKLQkJcGEtPnBhX2ZyZWUg Kz0gbGVuOworCWlmIChwYSA9PSBOVUxMKSB7CisJCWVyciA9IGV4dDRfbWJfbG9hZF9idWRkeShh Yy0+YWNfc2IsIGFjLT5hY19mX2V4LmZlX2dyb3VwLCAmZTRiKTsKKwkJaWYgKGVycikgeworCQkJ LyoKKwkJCSAqIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiBzaW5jZSB3ZSBwaW4gdGhlCisJCQkg KiBwYWdlcyBpbiB0aGUgZXh0NF9hbGxvY2F0aW9uX2NvbnRleHQgc28KKwkJCSAqIGV4dDRfbWJf bG9hZF9idWRkeSgpIHNob3VsZCBuZXZlciBmYWlsLgorCQkJICovCisJCQlXQVJOKDEsICJtYl9s b2FkX2J1ZGR5IGZhaWxlZCAoJWQpIiwgZXJyKTsKKwkJCXJldHVybjsKKwkJfQorCQlleHQ0X2xv Y2tfZ3JvdXAoYWMtPmFjX3NiLCBhYy0+YWNfZl9leC5mZV9ncm91cCk7CisJCW1iX2ZyZWVfYmxv Y2tzKGFjLT5hY19pbm9kZSwgJmU0YiwgYWMtPmFjX2ZfZXguZmVfc3RhcnQsCisJCQkgICAgICAg YWMtPmFjX2ZfZXguZmVfbGVuKTsKKwkJZXh0NF91bmxvY2tfZ3JvdXAoYWMtPmFjX3NiLCBhYy0+ YWNfZl9leC5mZV9ncm91cCk7CisJCXJldHVybjsKIAl9Ci0KKwlpZiAocGEtPnBhX3R5cGUgPT0g TUJfSU5PREVfUEEpCisJCXBhLT5wYV9mcmVlICs9IGFjLT5hY19iX2V4LmZlX2xlbjsKIH0KIAog LyoKZGlmZiAtLWdpdCBhL2ZzL2lzb2ZzL2lub2RlLmMgYi9mcy9pc29mcy9pbm9kZS5jCmluZGV4 IGE1ZjI1YTcuLjJmOTE5N2YgMTAwNjQ0Ci0tLSBhL2ZzL2lzb2ZzL2lub2RlLmMKKysrIGIvZnMv aXNvZnMvaW5vZGUuYwpAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgdm9pZCBpc29mc19wdXRfc3Vw ZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAlyZXR1cm47CiB9CiAKLXN0YXRpYyBpbnQgaXNv ZnNfcmVhZF9pbm9kZShzdHJ1Y3QgaW5vZGUgKik7CitzdGF0aWMgaW50IGlzb2ZzX3JlYWRfaW5v ZGUoc3RydWN0IGlub2RlICosIGludCByZWxvY2F0ZWQpOwogc3RhdGljIGludCBpc29mc19zdGF0 ZnMgKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGtzdGF0ZnMgKik7CiAKIHN0YXRpYyBzdHJ1Y3Qg a21lbV9jYWNoZSAqaXNvZnNfaW5vZGVfY2FjaGVwOwpAQCAtMTI2Myw3ICsxMjYzLDcgQEAgb3V0 X3Rvb21hbnk6CiAJZ290byBvdXQ7CiB9CiAKLXN0YXRpYyBpbnQgaXNvZnNfcmVhZF9pbm9kZShz dHJ1Y3QgaW5vZGUgKmlub2RlKQorc3RhdGljIGludCBpc29mc19yZWFkX2lub2RlKHN0cnVjdCBp bm9kZSAqaW5vZGUsIGludCByZWxvY2F0ZWQpCiB7CiAJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9 IGlub2RlLT5pX3NiOwogCXN0cnVjdCBpc29mc19zYl9pbmZvICpzYmkgPSBJU09GU19TQihzYik7 CkBAIC0xNDA4LDcgKzE0MDgsNyBAQCBzdGF0aWMgaW50IGlzb2ZzX3JlYWRfaW5vZGUoc3RydWN0 IGlub2RlICppbm9kZSkKIAkgKi8KIAogCWlmICghaGlnaF9zaWVycmEpIHsKLQkJcGFyc2Vfcm9j a19yaWRnZV9pbm9kZShkZSwgaW5vZGUpOworCQlwYXJzZV9yb2NrX3JpZGdlX2lub2RlKGRlLCBp bm9kZSwgcmVsb2NhdGVkKTsKIAkJLyogaWYgd2Ugd2FudCB1aWQvZ2lkIHNldCwgb3ZlcnJpZGUg dGhlIHJvY2sgcmlkZ2Ugc2V0dGluZyAqLwogCQlpZiAoc2JpLT5zX3VpZF9zZXQpCiAJCQlpbm9k ZS0+aV91aWQgPSBzYmktPnNfdWlkOwpAQCAtMTQ4Nyw5ICsxNDg3LDEwIEBAIHN0YXRpYyBpbnQg aXNvZnNfaWdldDVfc2V0KHN0cnVjdCBpbm9kZSAqaW5vLCB2b2lkICpkYXRhKQogICogb2Zmc2V0 IHRoYXQgcG9pbnQgdG8gdGhlIHVuZGVybHlpbmcgbWV0YS1kYXRhIGZvciB0aGUgaW5vZGUuICBU aGUKICAqIGNvZGUgYmVsb3cgaXMgb3RoZXJ3aXNlIHNpbWlsYXIgdG8gdGhlIGlnZXQoKSBjb2Rl IGluCiAgKiBpbmNsdWRlL2xpbnV4L2ZzLmggKi8KLXN0cnVjdCBpbm9kZSAqaXNvZnNfaWdldChz dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAotCQkJIHVuc2lnbmVkIGxvbmcgYmxvY2ssCi0JCQkgdW5z aWduZWQgbG9uZyBvZmZzZXQpCitzdHJ1Y3QgaW5vZGUgKl9faXNvZnNfaWdldChzdHJ1Y3Qgc3Vw ZXJfYmxvY2sgKnNiLAorCQkJICAgdW5zaWduZWQgbG9uZyBibG9jaywKKwkJCSAgIHVuc2lnbmVk IGxvbmcgb2Zmc2V0LAorCQkJICAgaW50IHJlbG9jYXRlZCkKIHsKIAl1bnNpZ25lZCBsb25nIGhh c2h2YWw7CiAJc3RydWN0IGlub2RlICppbm9kZTsKQEAgLTE1MTEsNyArMTUxMiw3IEBAIHN0cnVj dCBpbm9kZSAqaXNvZnNfaWdldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQlyZXR1cm4gRVJS X1BUUigtRU5PTUVNKTsKIAogCWlmIChpbm9kZS0+aV9zdGF0ZSAmIElfTkVXKSB7Ci0JCXJldCA9 IGlzb2ZzX3JlYWRfaW5vZGUoaW5vZGUpOworCQlyZXQgPSBpc29mc19yZWFkX2lub2RlKGlub2Rl LCByZWxvY2F0ZWQpOwogCQlpZiAocmV0IDwgMCkgewogCQkJaWdldF9mYWlsZWQoaW5vZGUpOwog CQkJaW5vZGUgPSBFUlJfUFRSKHJldCk7CmRpZmYgLS1naXQgYS9mcy9pc29mcy9pc29mcy5oIGIv ZnMvaXNvZnMvaXNvZnMuaAppbmRleCA3ZDMzZGU4Li5mOWM5NzkzIDEwMDY0NAotLS0gYS9mcy9p c29mcy9pc29mcy5oCisrKyBiL2ZzL2lzb2ZzL2lzb2ZzLmgKQEAgLTEwNyw3ICsxMDcsNyBAQCBl eHRlcm4gaW50IGlzb19kYXRlKGNoYXIgKiwgaW50KTsKIAogc3RydWN0IGlub2RlOwkJLyogVG8g bWFrZSBnY2MgaGFwcHkgKi8KIAotZXh0ZXJuIGludCBwYXJzZV9yb2NrX3JpZGdlX2lub2RlKHN0 cnVjdCBpc29fZGlyZWN0b3J5X3JlY29yZCAqLCBzdHJ1Y3QgaW5vZGUgKik7CitleHRlcm4gaW50 IHBhcnNlX3JvY2tfcmlkZ2VfaW5vZGUoc3RydWN0IGlzb19kaXJlY3RvcnlfcmVjb3JkICosIHN0 cnVjdCBpbm9kZSAqLCBpbnQgcmVsb2NhdGVkKTsKIGV4dGVybiBpbnQgZ2V0X3JvY2tfcmlkZ2Vf ZmlsZW5hbWUoc3RydWN0IGlzb19kaXJlY3RvcnlfcmVjb3JkICosIGNoYXIgKiwgc3RydWN0IGlu b2RlICopOwogZXh0ZXJuIGludCBpc29mc19uYW1lX3RyYW5zbGF0ZShzdHJ1Y3QgaXNvX2RpcmVj dG9yeV9yZWNvcmQgKiwgY2hhciAqLCBzdHJ1Y3QgaW5vZGUgKik7CiAKQEAgLTExOCw5ICsxMTgs MjQgQEAgZXh0ZXJuIHN0cnVjdCBkZW50cnkgKmlzb2ZzX2xvb2t1cChzdHJ1Y3QgaW5vZGUgKiwg c3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgbmFtZWkKIGV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQg Kmlzb2ZzX2JyZWFkKHN0cnVjdCBpbm9kZSAqLCBzZWN0b3JfdCk7CiBleHRlcm4gaW50IGlzb2Zz X2dldF9ibG9ja3Moc3RydWN0IGlub2RlICosIHNlY3Rvcl90LCBzdHJ1Y3QgYnVmZmVyX2hlYWQg KiosIHVuc2lnbmVkIGxvbmcpOwogCi1leHRlcm4gc3RydWN0IGlub2RlICppc29mc19pZ2V0KHN0 cnVjdCBzdXBlcl9ibG9jayAqc2IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgYmxvY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgb2Zmc2V0KTsKK3N0cnVjdCBpbm9kZSAqX19pc29mc19pZ2V0KHN0cnVjdCBzdXBl cl9ibG9jayAqc2IsCisJCQkgICB1bnNpZ25lZCBsb25nIGJsb2NrLAorCQkJICAgdW5zaWduZWQg bG9uZyBvZmZzZXQsCisJCQkgICBpbnQgcmVsb2NhdGVkKTsKKworc3RhdGljIGlubGluZSBzdHJ1 Y3QgaW5vZGUgKmlzb2ZzX2lnZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKKwkJCQkgICAgICAg dW5zaWduZWQgbG9uZyBibG9jaywKKwkJCQkgICAgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQpCit7 CisJcmV0dXJuIF9faXNvZnNfaWdldChzYiwgYmxvY2ssIG9mZnNldCwgMCk7Cit9CisKK3N0YXRp YyBpbmxpbmUgc3RydWN0IGlub2RlICppc29mc19pZ2V0X3JlbG9jKHN0cnVjdCBzdXBlcl9ibG9j ayAqc2IsCisJCQkJCSAgICAgdW5zaWduZWQgbG9uZyBibG9jaywKKwkJCQkJICAgICB1bnNpZ25l ZCBsb25nIG9mZnNldCkKK3sKKwlyZXR1cm4gX19pc29mc19pZ2V0KHNiLCBibG9jaywgb2Zmc2V0 LCAxKTsKK30KIAogLyogQmVjYXVzZSB0aGUgaW5vZGUgbnVtYmVyIGlzIG5vIGxvbmdlciByZWxl dmFudCB0byBmaW5kaW5nIHRoZQogICogdW5kZXJseWluZyBtZXRhLWRhdGEgZm9yIGFuIGlub2Rl LCB3ZSBhcmUgZnJlZSB0byBjaG9vc2UgYSBtb3JlCmRpZmYgLS1naXQgYS9mcy9pc29mcy9yb2Nr LmMgYi9mcy9pc29mcy9yb2NrLmMKaW5kZXggNzBlNzlkMC4uZWU2MmNjMCAxMDA2NDQKLS0tIGEv ZnMvaXNvZnMvcm9jay5jCisrKyBiL2ZzL2lzb2ZzL3JvY2suYwpAQCAtMjg4LDEyICsyODgsMTYg QEAgZWlvOgogCWdvdG8gb3V0OwogfQogCisjZGVmaW5lIFJSX1JFR0FSRF9YQSAxCisjZGVmaW5l IFJSX1JFTE9DX0RFIDIKKwogc3RhdGljIGludAogcGFyc2Vfcm9ja19yaWRnZV9pbm9kZV9pbnRl cm5hbChzdHJ1Y3QgaXNvX2RpcmVjdG9yeV9yZWNvcmQgKmRlLAotCQkJCXN0cnVjdCBpbm9kZSAq aW5vZGUsIGludCByZWdhcmRfeGEpCisJCQkJc3RydWN0IGlub2RlICppbm9kZSwgaW50IGZsYWdz KQogewogCWludCBzeW1saW5rX2xlbiA9IDA7CiAJaW50IGNudCwgc2lnOworCXVuc2lnbmVkIGlu dCByZWxvY19ibG9jazsKIAlzdHJ1Y3QgaW5vZGUgKnJlbG9jOwogCXN0cnVjdCByb2NrX3JpZGdl ICpycjsKIAlpbnQgcm9vdGZsYWc7CkBAIC0zMDUsNyArMzA5LDcgQEAgcGFyc2Vfcm9ja19yaWRn ZV9pbm9kZV9pbnRlcm5hbChzdHJ1Y3QgaXNvX2RpcmVjdG9yeV9yZWNvcmQgKmRlLAogCiAJaW5p dF9yb2NrX3N0YXRlKCZycywgaW5vZGUpOwogCXNldHVwX3JvY2tfcmlkZ2UoZGUsIGlub2RlLCAm cnMpOwotCWlmIChyZWdhcmRfeGEpIHsKKwlpZiAoZmxhZ3MgJiBSUl9SRUdBUkRfWEEpIHsKIAkJ cnMuY2hyICs9IDE0OwogCQlycy5sZW4gLT0gMTQ7CiAJCWlmIChycy5sZW4gPCAwKQpAQCAtNDg1 LDEyICs0ODksMjIgQEAgcmVwZWF0OgogCQkJCQkicmVsb2NhdGVkIGRpcmVjdG9yeVxuIik7CiAJ CQlnb3RvIG91dDsKIAkJY2FzZSBTSUcoJ0MnLCAnTCcpOgotCQkJSVNPRlNfSShpbm9kZSktPmlf Zmlyc3RfZXh0ZW50ID0KLQkJCSAgICBpc29udW1fNzMzKHJyLT51LkNMLmxvY2F0aW9uKTsKLQkJ CXJlbG9jID0KLQkJCSAgICBpc29mc19pZ2V0KGlub2RlLT5pX3NiLAotCQkJCSAgICAgICBJU09G U19JKGlub2RlKS0+aV9maXJzdF9leHRlbnQsCi0JCQkJICAgICAgIDApOworCQkJaWYgKGZsYWdz ICYgUlJfUkVMT0NfREUpIHsKKwkJCQlwcmludGsoS0VSTl9FUlIKKwkJCQkgICAgICAgIklTT0ZT OiBSZWN1cnNpdmUgZGlyZWN0b3J5IHJlbG9jYXRpb24gIgorCQkJCSAgICAgICAiaXMgbm90IHN1 cHBvcnRlZFxuIik7CisJCQkJZ290byBlaW87CisJCQl9CisJCQlyZWxvY19ibG9jayA9IGlzb251 bV83MzMocnItPnUuQ0wubG9jYXRpb24pOworCQkJaWYgKHJlbG9jX2Jsb2NrID09IElTT0ZTX0ko aW5vZGUpLT5pX2lnZXQ1X2Jsb2NrICYmCisJCQkgICAgSVNPRlNfSShpbm9kZSktPmlfaWdldDVf b2Zmc2V0ID09IDApIHsKKwkJCQlwcmludGsoS0VSTl9FUlIKKwkJCQkgICAgICAgIklTT0ZTOiBE aXJlY3RvcnkgcmVsb2NhdGlvbiBwb2ludHMgdG8gIgorCQkJCSAgICAgICAiaXRzZWxmXG4iKTsK KwkJCQlnb3RvIGVpbzsKKwkJCX0KKwkJCUlTT0ZTX0koaW5vZGUpLT5pX2ZpcnN0X2V4dGVudCA9 IHJlbG9jX2Jsb2NrOworCQkJcmVsb2MgPSBpc29mc19pZ2V0X3JlbG9jKGlub2RlLT5pX3NiLCBy ZWxvY19ibG9jaywgMCk7CiAJCQlpZiAoSVNfRVJSKHJlbG9jKSkgewogCQkJCXJldCA9IFBUUl9F UlIocmVsb2MpOwogCQkJCWdvdG8gb3V0OwpAQCAtNjM3LDkgKzY1MSwxMSBAQCBzdGF0aWMgY2hh ciAqZ2V0X3N5bWxpbmtfY2h1bmsoY2hhciAqcnBudCwgc3RydWN0IHJvY2tfcmlkZ2UgKnJyLCBj aGFyICpwbGltaXQpCiAJcmV0dXJuIHJwbnQ7CiB9CiAKLWludCBwYXJzZV9yb2NrX3JpZGdlX2lu b2RlKHN0cnVjdCBpc29fZGlyZWN0b3J5X3JlY29yZCAqZGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUp CitpbnQgcGFyc2Vfcm9ja19yaWRnZV9pbm9kZShzdHJ1Y3QgaXNvX2RpcmVjdG9yeV9yZWNvcmQg KmRlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorCQkJICAgaW50IHJlbG9jYXRlZCkKIHsKLQlpbnQg cmVzdWx0ID0gcGFyc2Vfcm9ja19yaWRnZV9pbm9kZV9pbnRlcm5hbChkZSwgaW5vZGUsIDApOwor CWludCBmbGFncyA9IHJlbG9jYXRlZCA/IFJSX1JFTE9DX0RFIDogMDsKKwlpbnQgcmVzdWx0ID0g cGFyc2Vfcm9ja19yaWRnZV9pbm9kZV9pbnRlcm5hbChkZSwgaW5vZGUsIGZsYWdzKTsKIAogCS8q CiAJICogaWYgcm9ja3JpZGdlIGZsYWcgd2FzIHJlc2V0IGFuZCB3ZSBkaWRuJ3QgbG9vayBmb3Ig YXR0cmlidXRlcwpAQCAtNjQ3LDcgKzY2Myw4IEBAIGludCBwYXJzZV9yb2NrX3JpZGdlX2lub2Rl KHN0cnVjdCBpc29fZGlyZWN0b3J5X3JlY29yZCAqZGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAJ ICovCiAJaWYgKChJU09GU19TQihpbm9kZS0+aV9zYiktPnNfcm9ja19vZmZzZXQgPT0gLTEpCiAJ ICAgICYmIChJU09GU19TQihpbm9kZS0+aV9zYiktPnNfcm9jayA9PSAyKSkgewotCQlyZXN1bHQg PSBwYXJzZV9yb2NrX3JpZGdlX2lub2RlX2ludGVybmFsKGRlLCBpbm9kZSwgMTQpOworCQlyZXN1 bHQgPSBwYXJzZV9yb2NrX3JpZGdlX2lub2RlX2ludGVybmFsKGRlLCBpbm9kZSwKKwkJCQkJCQkg ZmxhZ3MgfCBSUl9SRUdBUkRfWEEpOwogCX0KIAlyZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0 IGEvZnMvbmFtZXNwYWNlLmMgYi9mcy9uYW1lc3BhY2UuYwppbmRleCBjYTQ5MTNhLi5hMWU2NjNk IDEwMDY0NAotLS0gYS9mcy9uYW1lc3BhY2UuYworKysgYi9mcy9uYW1lc3BhY2UuYwpAQCAtMjMz Myw2ICsyMzMzLDE0IEBAIGxvbmcgZG9fbW91bnQoY2hhciAqZGV2X25hbWUsIGNoYXIgKmRpcl9u YW1lLCBjaGFyICp0eXBlX3BhZ2UsCiAJaWYgKGZsYWdzICYgTVNfUkRPTkxZKQogCQltbnRfZmxh Z3MgfD0gTU5UX1JFQURPTkxZOwogCisJLyogVGhlIGRlZmF1bHQgYXRpbWUgZm9yIHJlbW91bnQg aXMgcHJlc2VydmF0aW9uICovCisJaWYgKChmbGFncyAmIE1TX1JFTU9VTlQpICYmCisJICAgICgo ZmxhZ3MgJiAoTVNfTk9BVElNRSB8IE1TX05PRElSQVRJTUUgfCBNU19SRUxBVElNRSB8CisJCSAg ICAgICBNU19TVFJJQ1RBVElNRSkpID09IDApKSB7CisJCW1udF9mbGFncyAmPSB+TU5UX0FUSU1F X01BU0s7CisJCW1udF9mbGFncyB8PSBwYXRoLm1udC0+bW50X2ZsYWdzICYgTU5UX0FUSU1FX01B U0s7CisJfQorCiAJZmxhZ3MgJj0gfihNU19OT1NVSUQgfCBNU19OT0VYRUMgfCBNU19OT0RFViB8 IE1TX0FDVElWRSB8IE1TX0JPUk4gfAogCQkgICBNU19OT0FUSU1FIHwgTVNfTk9ESVJBVElNRSB8 IE1TX1JFTEFUSU1FfCBNU19LRVJOTU9VTlQgfAogCQkgICBNU19TVFJJQ1RBVElNRSk7CmRpZmYg LS1naXQgYS9mcy9uZnMvbmZzNHByb2MuYyBiL2ZzL25mcy9uZnM0cHJvYy5jCmluZGV4IDVhZWEz MGEuLmM0YTJhNjggMTAwNjQ0Ci0tLSBhL2ZzL25mcy9uZnM0cHJvYy5jCisrKyBiL2ZzL25mcy9u ZnM0cHJvYy5jCkBAIC0yMDA0LDI0ICsyMDA0LDMxIEBAIHN0YXRpYyB2b2lkIG5mczRfY2xvc2Vf cHJlcGFyZShzdHJ1Y3QgcnBjX3Rhc2sgKnRhc2ssIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IG5m czRfY2xvc2VkYXRhICpjYWxsZGF0YSA9IGRhdGE7CiAJc3RydWN0IG5mczRfc3RhdGUgKnN0YXRl ID0gY2FsbGRhdGEtPnN0YXRlOworCWJvb2wgaXNfcmRvbmx5LCBpc193cm9ubHksIGlzX3Jkd3I7 CiAJaW50IGNhbGxfY2xvc2UgPSAwOwogCiAJaWYgKG5mc193YWl0X29uX3NlcXVlbmNlKGNhbGxk YXRhLT5hcmcuc2VxaWQsIHRhc2spICE9IDApCiAJCXJldHVybjsKIAogCXRhc2stPnRrX21zZy5y cGNfcHJvYyA9ICZuZnM0X3Byb2NlZHVyZXNbTkZTUFJPQzRfQ0xOVF9PUEVOX0RPV05HUkFERV07 Ci0JY2FsbGRhdGEtPmFyZy5mbW9kZSA9IEZNT0RFX1JFQUR8Rk1PREVfV1JJVEU7CiAJc3Bpbl9s b2NrKCZzdGF0ZS0+b3duZXItPnNvX2xvY2spOworCWlzX3Jkd3IgPSB0ZXN0X2JpdChORlNfT19S RFdSX1NUQVRFLCAmc3RhdGUtPmZsYWdzKTsKKwlpc19yZG9ubHkgPSB0ZXN0X2JpdChORlNfT19S RE9OTFlfU1RBVEUsICZzdGF0ZS0+ZmxhZ3MpOworCWlzX3dyb25seSA9IHRlc3RfYml0KE5GU19P X1dST05MWV9TVEFURSwgJnN0YXRlLT5mbGFncyk7CisJLyogQ2FsY3VsYXRlIHRoZSBjdXJyZW50 IG9wZW4gc2hhcmUgbW9kZSAqLworCWNhbGxkYXRhLT5hcmcuZm1vZGUgPSAwOworCWlmIChpc19y ZG9ubHkgfHwgaXNfcmR3cikKKwkJY2FsbGRhdGEtPmFyZy5mbW9kZSB8PSBGTU9ERV9SRUFEOwor CWlmIChpc193cm9ubHkgfHwgaXNfcmR3cikKKwkJY2FsbGRhdGEtPmFyZy5mbW9kZSB8PSBGTU9E RV9XUklURTsKIAkvKiBDYWxjdWxhdGUgdGhlIGNoYW5nZSBpbiBvcGVuIG1vZGUgKi8KIAlpZiAo c3RhdGUtPm5fcmR3ciA9PSAwKSB7CiAJCWlmIChzdGF0ZS0+bl9yZG9ubHkgPT0gMCkgewotCQkJ Y2FsbF9jbG9zZSB8PSB0ZXN0X2JpdChORlNfT19SRE9OTFlfU1RBVEUsICZzdGF0ZS0+ZmxhZ3Mp OwotCQkJY2FsbF9jbG9zZSB8PSB0ZXN0X2JpdChORlNfT19SRFdSX1NUQVRFLCAmc3RhdGUtPmZs YWdzKTsKKwkJCWNhbGxfY2xvc2UgfD0gaXNfcmRvbmx5IHx8IGlzX3Jkd3I7CiAJCQljYWxsZGF0 YS0+YXJnLmZtb2RlICY9IH5GTU9ERV9SRUFEOwogCQl9CiAJCWlmIChzdGF0ZS0+bl93cm9ubHkg PT0gMCkgewotCQkJY2FsbF9jbG9zZSB8PSB0ZXN0X2JpdChORlNfT19XUk9OTFlfU1RBVEUsICZz dGF0ZS0+ZmxhZ3MpOwotCQkJY2FsbF9jbG9zZSB8PSB0ZXN0X2JpdChORlNfT19SRFdSX1NUQVRF LCAmc3RhdGUtPmZsYWdzKTsKKwkJCWNhbGxfY2xvc2UgfD0gaXNfd3Jvbmx5IHx8IGlzX3Jkd3I7 CiAJCQljYWxsZGF0YS0+YXJnLmZtb2RlICY9IH5GTU9ERV9XUklURTsKIAkJfQogCX0KZGlmZiAt LWdpdCBhL2ZzL3JlaXNlcmZzL2pvdXJuYWwuYyBiL2ZzL3JlaXNlcmZzL2pvdXJuYWwuYwppbmRl eCBlYjcxMTA2Li45MzhhNzdmIDEwMDY0NAotLS0gYS9mcy9yZWlzZXJmcy9qb3VybmFsLmMKKysr IGIvZnMvcmVpc2VyZnMvam91cm5hbC5jCkBAIC0xOTE2LDE1ICsxOTE2LDE5IEBAIHN0YXRpYyBp bnQgZG9fam91cm5hbF9yZWxlYXNlKHN0cnVjdCByZWlzZXJmc190cmFuc2FjdGlvbl9oYW5kbGUg KnRoLAogCX0KIAogCXJlaXNlcmZzX21vdW50ZWRfZnNfY291bnQtLTsKLQkvKiB3YWl0IGZvciBh bGwgY29tbWl0cyB0byBmaW5pc2ggKi8KLQljYW5jZWxfZGVsYXllZF93b3JrKCZTQl9KT1VSTkFM KHNiKS0+al93b3JrKTsKIAogCS8qCiAJICogV2UgbXVzdCByZWxlYXNlIHRoZSB3cml0ZSBsb2Nr IGhlcmUgYmVjYXVzZQogCSAqIHRoZSB3b3JrcXVldWUgam9iIChmbHVzaF9hc3luY19jb21taXQp IG5lZWRzIHRoaXMgbG9jawogCSAqLwogCXJlaXNlcmZzX3dyaXRlX3VubG9jayhzYik7Ci0JZmx1 c2hfd29ya3F1ZXVlKGNvbW1pdF93cSk7CisJLyoKKwkgKiBDYW5jZWwgZmx1c2hpbmcgb2Ygb2xk IGNvbW1pdHMuIE5vdGUgdGhhdCB0aGlzIHdvcmsgd2lsbCBub3QKKwkgKiBiZSByZXF1ZXVlZCBi ZWNhdXNlIHN1cGVyYmxvY2sgaXMgYmVpbmcgc2h1dGRvd24gYW5kIGRvZXNuJ3QKKwkgKiBoYXZl IE1TX0FDVElWRSBzZXQuCisJICovCisJLyogd2FpdCBmb3IgYWxsIGNvbW1pdHMgdG8gZmluaXNo ICovCisJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZTQl9KT1VSTkFMKHNiKS0+al93b3JrKTsK IAogCWlmICghcmVpc2VyZnNfbW91bnRlZF9mc19jb3VudCkgewogCQlkZXN0cm95X3dvcmtxdWV1 ZShjb21taXRfd3EpOwpAQCAtNDIxMSw4ICs0MjE1LDE1IEBAIHN0YXRpYyBpbnQgZG9fam91cm5h bF9lbmQoc3RydWN0IHJlaXNlcmZzX3RyYW5zYWN0aW9uX2hhbmRsZSAqdGgsCiAJaWYgKGZsdXNo KSB7CiAJCWZsdXNoX2NvbW1pdF9saXN0KHNiLCBqbCwgMSk7CiAJCWZsdXNoX2pvdXJuYWxfbGlz dChzYiwgamwsIDEpOwotCX0gZWxzZSBpZiAoIShqbC0+al9zdGF0ZSAmIExJU1RfQ09NTUlUX1BF TkRJTkcpKQotCQlxdWV1ZV9kZWxheWVkX3dvcmsoY29tbWl0X3dxLCAmam91cm5hbC0+al93b3Jr LCBIWiAvIDEwKTsKKwl9IGVsc2UgaWYgKCEoamwtPmpfc3RhdGUgJiBMSVNUX0NPTU1JVF9QRU5E SU5HKSkgeworCQkvKgorCQkgKiBBdm9pZCBxdWV1ZWluZyB3b3JrIHdoZW4gc2IgaXMgYmVpbmcg c2h1dCBkb3duLiBUcmFuc2FjdGlvbgorCQkgKiB3aWxsIGJlIGZsdXNoZWQgb24gam91cm5hbCBz aHV0ZG93bi4KKwkJICovCisJCWlmIChzYi0+c19mbGFncyAmIE1TX0FDVElWRSkKKwkJCXF1ZXVl X2RlbGF5ZWRfd29yayhjb21taXRfd3EsCisJCQkJCSAgICZqb3VybmFsLT5qX3dvcmssIEhaIC8g MTApOworCX0KIAogCS8qIGlmIHRoZSBuZXh0IHRyYW5zYWN0aW9uIGhhcyBhbnkgY2hhbmNlIG9m IHdyYXBwaW5nLCBmbHVzaAogCSAqKiB0cmFuc2FjdGlvbnMgdGhhdCBtaWdodCBnZXQgb3Zlcndy aXR0ZW4uICBJZiBhbnkgam91cm5hbCBsaXN0cyBhcmUgdmVyeQpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9tZW1wb2xpY3kuaCBiL2luY2x1ZGUvbGludXgvbWVtcG9saWN5LmgKaW5kZXggZjg1 YzVhYi4uMTE2NzBlMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tZW1wb2xpY3kuaAorKysg Yi9pbmNsdWRlL2xpbnV4L21lbXBvbGljeS5oCkBAIC0yMDUsNyArMjA1LDcgQEAgZXh0ZXJuIHN0 cnVjdCB6b25lbGlzdCAqaHVnZV96b25lbGlzdChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwK IGV4dGVybiBib29sIGluaXRfbm9kZW1hc2tfb2ZfbWVtcG9saWN5KG5vZGVtYXNrX3QgKm1hc2sp OwogZXh0ZXJuIGJvb2wgbWVtcG9saWN5X25vZGVtYXNrX2ludGVyc2VjdHMoc3RydWN0IHRhc2tf c3RydWN0ICp0c2ssCiAJCQkJY29uc3Qgbm9kZW1hc2tfdCAqbWFzayk7Ci1leHRlcm4gdW5zaWdu ZWQgc2xhYl9ub2RlKHN0cnVjdCBtZW1wb2xpY3kgKnBvbGljeSk7CitleHRlcm4gdW5zaWduZWQg c2xhYl9ub2RlKHZvaWQpOwogCiBleHRlcm4gZW51bSB6b25lX3R5cGUgcG9saWN5X3pvbmU7CiAK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW91bnQuaCBiL2luY2x1ZGUvbGludXgvbW91bnQu aAppbmRleCAzM2ZlNTNkLi5mYzE3YzRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21vdW50 LmgKKysrIGIvaW5jbHVkZS9saW51eC9tb3VudC5oCkBAIC00Myw2ICs0Myw3IEBAIHN0cnVjdCBt bnRfbmFtZXNwYWNlOwogICovCiAjZGVmaW5lIE1OVF9TSEFSRURfTUFTSwkoTU5UX1VOQklOREFC TEUpCiAjZGVmaW5lIE1OVF9QUk9QQUdBVElPTl9NQVNLCShNTlRfU0hBUkVEIHwgTU5UX1VOQklO REFCTEUpCisjZGVmaW5lIE1OVF9BVElNRV9NQVNLIChNTlRfTk9BVElNRSB8IE1OVF9OT0RJUkFU SU1FIHwgTU5UX1JFTEFUSU1FICkKIAogCiAjZGVmaW5lIE1OVF9JTlRFUk5BTAkweDQwMDAKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2luZXRwZWVyLmggYi9pbmNsdWRlL25ldC9pbmV0cGVlci5o CmluZGV4IGJhMGRkYjAuLjYxNzJhNDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2luZXRwZWVy LmgKKysrIGIvaW5jbHVkZS9uZXQvaW5ldHBlZXIuaApAQCAtNDcsMTMgKzQ3LDEyIEBAIHN0cnVj dCBpbmV0X3BlZXIgewogCX07CiAJLyoKIAkgKiBPbmNlIGluZXRfcGVlciBpcyBxdWV1ZWQgZm9y IGRlbGV0aW9uIChyZWZjbnQgPT0gLTEpLCBmb2xsb3dpbmcgZmllbGRzCi0JICogYXJlIG5vdCBh dmFpbGFibGU6IHJpZCwgaXBfaWRfY291bnQsIHRjcF90cywgdGNwX3RzX3N0YW1wCisJICogYXJl IG5vdCBhdmFpbGFibGU6IHJpZCwgdGNwX3RzLCB0Y3BfdHNfc3RhbXAKIAkgKiBXZSBjYW4gc2hh cmUgbWVtb3J5IHdpdGggcmN1X2hlYWQgdG8gaGVscCBrZWVwIGluZXRfcGVlciBzbWFsbC4KIAkg Ki8KIAl1bmlvbiB7CiAJCXN0cnVjdCB7CiAJCQlhdG9taWNfdAkJCXJpZDsJCS8qIEZyYWcgcmVj ZXB0aW9uIGNvdW50ZXIgKi8KLQkJCWF0b21pY190CQkJaXBfaWRfY291bnQ7CS8qIElQIElEIGZv ciB0aGUgbmV4dCBwYWNrZXQgKi8KIAkJCV9fdTMyCQkJCXRjcF90czsKIAkJCV9fdTMyCQkJCXRj cF90c19zdGFtcDsKIAkJfTsKQEAgLTEwMyw3ICsxMDIsNyBAQCBleHRlcm4gYm9vbCBpbmV0X3Bl ZXJfeHJsaW1fYWxsb3coc3RydWN0IGluZXRfcGVlciAqcGVlciwgaW50IHRpbWVvdXQpOwogZXh0 ZXJuIHZvaWQgaW5ldHBlZXJfaW52YWxpZGF0ZV90cmVlKGludCBmYW1pbHkpOwogCiAvKgotICog dGVtcG9yYXJ5IGNoZWNrIHRvIG1ha2Ugc3VyZSB3ZSBkb250IGFjY2VzcyByaWQsIGlwX2lkX2Nv dW50LCB0Y3BfdHMsCisgKiB0ZW1wb3JhcnkgY2hlY2sgdG8gbWFrZSBzdXJlIHdlIGRvbnQgYWNj ZXNzIHJpZCwgdGNwX3RzLAogICogdGNwX3RzX3N0YW1wIGlmIG5vIHJlZmNvdW50IGlzIHRha2Vu IG9uIGluZXRfcGVlcgogICovCiBzdGF0aWMgaW5saW5lIHZvaWQgaW5ldF9wZWVyX3JlZmNoZWNr KGNvbnN0IHN0cnVjdCBpbmV0X3BlZXIgKnApCkBAIC0xMTEsMTMgKzExMCw0IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBpbmV0X3BlZXJfcmVmY2hlY2soY29uc3Qgc3RydWN0IGluZXRfcGVlciAqcCkK IAlXQVJOX09OX09OQ0UoYXRvbWljX3JlYWQoJnAtPnJlZmNudCkgPD0gMCk7CiB9CiAKLQotLyog Y2FuIGJlIGNhbGxlZCB3aXRoIG9yIHdpdGhvdXQgbG9jYWwgQkggYmVpbmcgZGlzYWJsZWQgKi8K LXN0YXRpYyBpbmxpbmUgaW50IGluZXRfZ2V0aWQoc3RydWN0IGluZXRfcGVlciAqcCwgaW50IG1v cmUpCi17Ci0JbW9yZSsrOwotCWluZXRfcGVlcl9yZWZjaGVjayhwKTsKLQlyZXR1cm4gYXRvbWlj X2FkZF9yZXR1cm4obW9yZSwgJnAtPmlwX2lkX2NvdW50KSAtIG1vcmU7Ci19Ci0KICNlbmRpZiAv KiBfTkVUX0lORVRQRUVSX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lwLmggYi9pbmNs dWRlL25ldC9pcC5oCmluZGV4IGI5MzVlNmMuLjFlZTUzNWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bmV0L2lwLmgKKysrIGIvaW5jbHVkZS9uZXQvaXAuaApAQCAtMjY0LDkgKzI2NCwxMCBAQCBpbnQg aXBfZG9udF9mcmFnbWVudChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBkc3RfZW50cnkgKmRzdCkK IAkJICEoZHN0X21ldHJpY19sb2NrZWQoZHN0LCBSVEFYX01UVSkpKTsKIH0KIAotZXh0ZXJuIHZv aWQgX19pcF9zZWxlY3RfaWRlbnQoc3RydWN0IGlwaGRyICppcGgsIHN0cnVjdCBkc3RfZW50cnkg KmRzdCwgaW50IG1vcmUpOwordTMyIGlwX2lkZW50c19yZXNlcnZlKHUzMiBoYXNoLCBpbnQgc2Vn cyk7Cit2b2lkIF9faXBfc2VsZWN0X2lkZW50KHN0cnVjdCBpcGhkciAqaXBoLCBpbnQgc2Vncyk7 CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBpcF9zZWxlY3RfaWRlbnQoc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29jayAqc2spCitzdGF0aWMgaW5saW5l IHZvaWQgaXBfc2VsZWN0X2lkZW50X3NlZ3Moc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHNv Y2sgKnNrLCBpbnQgc2VncykKIHsKIAlzdHJ1Y3QgaXBoZHIgKmlwaCA9IGlwX2hkcihza2IpOwog CkBAIC0yNzYsMjQgKzI3NywyMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaXBfc2VsZWN0X2lkZW50 KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgcwogCQkgKiBkb2Vz IG5vdCBjaGFuZ2UsIHRoZXkgZHJvcCBldmVyeSBvdGhlciBwYWNrZXQgaW4KIAkJICogYSBUQ1Ag c3RyZWFtIHVzaW5nIGhlYWRlciBjb21wcmVzc2lvbi4KIAkJICovCi0JCWlwaC0+aWQgPSAoc2sg JiYgaW5ldF9zayhzayktPmluZXRfZGFkZHIpID8KLQkJCQkJaHRvbnMoaW5ldF9zayhzayktPmlu ZXRfaWQrKykgOiAwOwotCX0gZWxzZQotCQlfX2lwX3NlbGVjdF9pZGVudChpcGgsIGRzdCwgMCk7 Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBpcF9zZWxlY3RfaWRlbnRfbW9yZShzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHN0cnVjdCBzb2NrICpzaywgaW50IG1v cmUpCi17Ci0Jc3RydWN0IGlwaGRyICppcGggPSBpcF9oZHIoc2tiKTsKLQotCWlmICgoaXBoLT5m cmFnX29mZiAmIGh0b25zKElQX0RGKSkgJiYgIXNrYi0+bG9jYWxfZGYpIHsKIAkJaWYgKHNrICYm IGluZXRfc2soc2spLT5pbmV0X2RhZGRyKSB7CiAJCQlpcGgtPmlkID0gaHRvbnMoaW5ldF9zayhz ayktPmluZXRfaWQpOwotCQkJaW5ldF9zayhzayktPmluZXRfaWQgKz0gMSArIG1vcmU7Ci0JCX0g ZWxzZQorCQkJaW5ldF9zayhzayktPmluZXRfaWQgKz0gc2VnczsKKwkJfSBlbHNlIHsKIAkJCWlw aC0+aWQgPSAwOwotCX0gZWxzZQotCQlfX2lwX3NlbGVjdF9pZGVudChpcGgsIGRzdCwgbW9yZSk7 CisJCX0KKwl9IGVsc2UgeworCQlfX2lwX3NlbGVjdF9pZGVudChpcGgsIHNlZ3MpOworCX0KK30K Kworc3RhdGljIGlubGluZSB2b2lkIGlwX3NlbGVjdF9pZGVudChzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3Qgc29jayAqc2spCit7CisJaXBfc2VsZWN0X2lkZW50X3NlZ3Moc2tiLCBzaywgMSk7 CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcGlwLmggYi9pbmNsdWRlL25ldC9p cGlwLmgKaW5kZXggNGRjY2ZlMy4uZThlZTNiYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaXBp cC5oCisrKyBiL2luY2x1ZGUvbmV0L2lwaXAuaApAQCAtNTAsNyArNTAsNyBAQCBzdHJ1Y3QgaXBf dHVubmVsX3BybF9lbnRyeSB7CiAJaW50IHBrdF9sZW4gPSBza2ItPmxlbiAtIHNrYl90cmFuc3Bv cnRfb2Zmc2V0KHNrYik7CQlcCiAJCQkJCQkJCQlcCiAJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NV TV9OT05FOwkJCQkJXAotCWlwX3NlbGVjdF9pZGVudChza2IsICZydC0+ZHN0LCBOVUxMKTsJCQkJ XAorCWlwX3NlbGVjdF9pZGVudChza2IsIE5VTEwpOwkJCQlcCiAJCQkJCQkJCQlcCiAJZXJyID0g aXBfbG9jYWxfb3V0KHNrYik7CQkJCQlcCiAJaWYgKGxpa2VseShuZXRfeG1pdF9ldmFsKGVycikg PT0gMCkpIHsJCQkJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXB2Ni5oIGIvaW5jbHVkZS9u ZXQvaXB2Ni5oCmluZGV4IDA1ODA2NzMuLjAwYTJlYjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0 L2lwdjYuaAorKysgYi9pbmNsdWRlL25ldC9pcHY2LmgKQEAgLTM4OCwxNCArMzg4LDE5IEBAIHZv aWQgaXA2X2ZyYWdfaW5pdChzdHJ1Y3QgaW5ldF9mcmFnX3F1ZXVlICpxLCB2b2lkICphKTsKIGlu dCBpcDZfZnJhZ19tYXRjaChzdHJ1Y3QgaW5ldF9mcmFnX3F1ZXVlICpxLCB2b2lkICphKTsKIAog LyogbW9yZSBzZWN1cmVkIHZlcnNpb24gb2YgaXB2Nl9hZGRyX2hhc2goKSAqLwotc3RhdGljIGlu bGluZSB1MzIgaXB2Nl9hZGRyX2poYXNoKGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqYSkKK3N0YXRp YyBpbmxpbmUgdTMyIF9faXB2Nl9hZGRyX2poYXNoKGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqYSwg Y29uc3QgdTMyIGluaXR2YWwpCiB7CiAJdTMyIHYgPSAoX19mb3JjZSB1MzIpYS0+czZfYWRkcjMy WzBdIF4gKF9fZm9yY2UgdTMyKWEtPnM2X2FkZHIzMlsxXTsKIAogCXJldHVybiBqaGFzaF8zd29y ZHModiwKIAkJCSAgICAoX19mb3JjZSB1MzIpYS0+czZfYWRkcjMyWzJdLAogCQkJICAgIChfX2Zv cmNlIHUzMilhLT5zNl9hZGRyMzJbM10sCi0JCQkgICAgaXB2Nl9oYXNoX3NlY3JldCk7CisJCQkg ICAgaW5pdHZhbCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdTMyIGlwdjZfYWRkcl9qaGFzaChjb25z dCBzdHJ1Y3QgaW42X2FkZHIgKmEpCit7CisJcmV0dXJuIF9faXB2Nl9hZGRyX2poYXNoKGEsIGlw djZfaGFzaF9zZWNyZXQpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBpcHY2X2FkZHJfYW55KGNv bnN0IHN0cnVjdCBpbjZfYWRkciAqYSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L25ldGxhYmVs LmggYi9pbmNsdWRlL25ldC9uZXRsYWJlbC5oCmluZGV4IGY2NzQ0MDkuLmM4YmEyZTIgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbmV0L25ldGxhYmVsLmgKKysrIGIvaW5jbHVkZS9uZXQvbmV0bGFiZWwu aApAQCAtMzk1LDEwICszOTUsMTAgQEAgaW50IG5ldGxibF9zZWNhdHRyX2NhdG1hcF93YWxrKHN0 cnVjdCBuZXRsYmxfbHNtX3NlY2F0dHJfY2F0bWFwICpjYXRtYXAsCiAJCQkgICAgICAgdTMyIG9m ZnNldCk7CiBpbnQgbmV0bGJsX3NlY2F0dHJfY2F0bWFwX3dhbGtfcm5nKHN0cnVjdCBuZXRsYmxf bHNtX3NlY2F0dHJfY2F0bWFwICpjYXRtYXAsCiAJCQkJICAgdTMyIG9mZnNldCk7Ci1pbnQgbmV0 bGJsX3NlY2F0dHJfY2F0bWFwX3NldGJpdChzdHJ1Y3QgbmV0bGJsX2xzbV9zZWNhdHRyX2NhdG1h cCAqY2F0bWFwLAoraW50IG5ldGxibF9zZWNhdHRyX2NhdG1hcF9zZXRiaXQoc3RydWN0IG5ldGxi bF9sc21fc2VjYXR0cl9jYXRtYXAgKipjYXRtYXAsCiAJCQkJIHUzMiBiaXQsCiAJCQkJIGdmcF90 IGZsYWdzKTsKLWludCBuZXRsYmxfc2VjYXR0cl9jYXRtYXBfc2V0cm5nKHN0cnVjdCBuZXRsYmxf bHNtX3NlY2F0dHJfY2F0bWFwICpjYXRtYXAsCitpbnQgbmV0bGJsX3NlY2F0dHJfY2F0bWFwX3Nl dHJuZyhzdHJ1Y3QgbmV0bGJsX2xzbV9zZWNhdHRyX2NhdG1hcCAqKmNhdG1hcCwKIAkJCQkgdTMy IHN0YXJ0LAogCQkJCSB1MzIgZW5kLAogCQkJCSBnZnBfdCBmbGFncyk7CkBAIC01MDYsMTQgKzUw NiwxNCBAQCBzdGF0aWMgaW5saW5lIGludCBuZXRsYmxfc2VjYXR0cl9jYXRtYXBfd2Fsa19ybmco CiAJcmV0dXJuIC1FTk9FTlQ7CiB9CiBzdGF0aWMgaW5saW5lIGludCBuZXRsYmxfc2VjYXR0cl9j YXRtYXBfc2V0Yml0KAotCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBuZXRs YmxfbHNtX3NlY2F0dHJfY2F0bWFwICpjYXRtYXAsCisJCQkJICAgICAgc3RydWN0IG5ldGxibF9s c21fc2VjYXR0cl9jYXRtYXAgKipjYXRtYXAsCiAJCQkJICAgICAgdTMyIGJpdCwKIAkJCQkgICAg ICBnZnBfdCBmbGFncykKIHsKIAlyZXR1cm4gMDsKIH0KIHN0YXRpYyBpbmxpbmUgaW50IG5ldGxi bF9zZWNhdHRyX2NhdG1hcF9zZXRybmcoCi0JICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IG5ldGxibF9sc21fc2VjYXR0cl9jYXRtYXAgKmNhdG1hcCwKKwkJCQkgICAgICBzdHJ1 Y3QgbmV0bGJsX2xzbV9zZWNhdHRyX2NhdG1hcCAqKmNhdG1hcCwKIAkJCQkgICAgICB1MzIgc3Rh cnQsCiAJCQkJICAgICAgdTMyIGVuZCwKIAkJCQkgICAgICBnZnBfdCBmbGFncykKZGlmZiAtLWdp dCBhL2luY2x1ZGUvbmV0L3NlY3VyZV9zZXEuaCBiL2luY2x1ZGUvbmV0L3NlY3VyZV9zZXEuaApp bmRleCBjMmU1NDJiLi5iMWMzZDFjIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zZWN1cmVfc2Vx LmgKKysrIGIvaW5jbHVkZS9uZXQvc2VjdXJlX3NlcS5oCkBAIC0zLDggKzMsNiBAQAogCiAjaW5j bHVkZSA8bGludXgvdHlwZXMuaD4KIAotZXh0ZXJuIF9fdTMyIHNlY3VyZV9pcF9pZChfX2JlMzIg ZGFkZHIpOwotZXh0ZXJuIF9fdTMyIHNlY3VyZV9pcHY2X2lkKGNvbnN0IF9fYmUzMiBkYWRkcls0 XSk7CiBleHRlcm4gdTMyIHNlY3VyZV9pcHY0X3BvcnRfZXBoZW1lcmFsKF9fYmUzMiBzYWRkciwg X19iZTMyIGRhZGRyLCBfX2JlMTYgZHBvcnQpOwogZXh0ZXJuIHUzMiBzZWN1cmVfaXB2Nl9wb3J0 X2VwaGVtZXJhbChjb25zdCBfX2JlMzIgKnNhZGRyLCBjb25zdCBfX2JlMzIgKmRhZGRyLAogCQkJ CSAgICAgIF9fYmUxNiBkcG9ydCk7CmRpZmYgLS1naXQgYS9pbml0L21haW4uYyBiL2luaXQvbWFp bi5jCmluZGV4IDc0NzQ0NTAuLmU5MzdkOWIgMTAwNjQ0Ci0tLSBhL2luaXQvbWFpbi5jCisrKyBi L2luaXQvbWFpbi5jCkBAIC02MTAsNiArNjEwLDEwIEBAIGFzbWxpbmthZ2Ugdm9pZCBfX2luaXQg c3RhcnRfa2VybmVsKHZvaWQpCiAJaWYgKGVmaV9lbmFibGVkKEVGSV9SVU5USU1FX1NFUlZJQ0VT KSkKIAkJZWZpX2VudGVyX3ZpcnR1YWxfbW9kZSgpOwogI2VuZGlmCisjaWZkZWYgQ09ORklHX1g4 Nl9FU1BGSVg2NAorCS8qIFNob3VsZCBiZSBydW4gYmVmb3JlIHRoZSBmaXJzdCBub24taW5pdCB0 aHJlYWQgaXMgY3JlYXRlZCAqLworCWluaXRfZXNwZml4X2JzcCgpOworI2VuZGlmCiAJdGhyZWFk X2luZm9fY2FjaGVfaW5pdCgpOwogCWNyZWRfaW5pdCgpOwogCWZvcmtfaW5pdCh0b3RhbHJhbV9w YWdlcyk7CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvcmluZ19idWZmZXIuYyBiL2tlcm5lbC90 cmFjZS9yaW5nX2J1ZmZlci5jCmluZGV4IDY0OGYyNWEuLjRiYWJkNzcgMTAwNjQ0Ci0tLSBhL2tl cm5lbC90cmFjZS9yaW5nX2J1ZmZlci5jCisrKyBiL2tlcm5lbC90cmFjZS9yaW5nX2J1ZmZlci5j CkBAIC0yODQzLDIxICsyODQzLDE2IEBAIHN0YXRpYyB2b2lkIHJiX2l0ZXJfcmVzZXQoc3RydWN0 IHJpbmdfYnVmZmVyX2l0ZXIgKml0ZXIpCiAJc3RydWN0IHJpbmdfYnVmZmVyX3Blcl9jcHUgKmNw dV9idWZmZXIgPSBpdGVyLT5jcHVfYnVmZmVyOwogCiAJLyogSXRlcmF0b3IgdXNhZ2UgaXMgZXhw ZWN0ZWQgdG8gaGF2ZSByZWNvcmQgZGlzYWJsZWQgKi8KLQlpZiAobGlzdF9lbXB0eSgmY3B1X2J1 ZmZlci0+cmVhZGVyX3BhZ2UtPmxpc3QpKSB7Ci0JCWl0ZXItPmhlYWRfcGFnZSA9IHJiX3NldF9o ZWFkX3BhZ2UoY3B1X2J1ZmZlcik7Ci0JCWlmICh1bmxpa2VseSghaXRlci0+aGVhZF9wYWdlKSkK LQkJCXJldHVybjsKLQkJaXRlci0+aGVhZCA9IGl0ZXItPmhlYWRfcGFnZS0+cmVhZDsKLQl9IGVs c2UgewotCQlpdGVyLT5oZWFkX3BhZ2UgPSBjcHVfYnVmZmVyLT5yZWFkZXJfcGFnZTsKLQkJaXRl ci0+aGVhZCA9IGNwdV9idWZmZXItPnJlYWRlcl9wYWdlLT5yZWFkOwotCX0KKwlpdGVyLT5oZWFk X3BhZ2UgPSBjcHVfYnVmZmVyLT5yZWFkZXJfcGFnZTsKKwlpdGVyLT5oZWFkID0gY3B1X2J1ZmZl ci0+cmVhZGVyX3BhZ2UtPnJlYWQ7CisKKwlpdGVyLT5jYWNoZV9yZWFkZXJfcGFnZSA9IGl0ZXIt PmhlYWRfcGFnZTsKKwlpdGVyLT5jYWNoZV9yZWFkID0gaXRlci0+aGVhZDsKKwogCWlmIChpdGVy LT5oZWFkKQogCQlpdGVyLT5yZWFkX3N0YW1wID0gY3B1X2J1ZmZlci0+cmVhZF9zdGFtcDsKIAll bHNlCiAJCWl0ZXItPnJlYWRfc3RhbXAgPSBpdGVyLT5oZWFkX3BhZ2UtPnBhZ2UtPnRpbWVfc3Rh bXA7Ci0JaXRlci0+Y2FjaGVfcmVhZGVyX3BhZ2UgPSBjcHVfYnVmZmVyLT5yZWFkZXJfcGFnZTsK LQlpdGVyLT5jYWNoZV9yZWFkID0gY3B1X2J1ZmZlci0+cmVhZDsKIH0KIAogLyoqCkBAIC0zMjQ2 LDEyICszMjQxLDE0IEBAIHJiX2l0ZXJfcGVlayhzdHJ1Y3QgcmluZ19idWZmZXJfaXRlciAqaXRl ciwgdTY0ICp0cykKIAkJcmV0dXJuIE5VTEw7CiAKIAkvKgotCSAqIFdlIHJlcGVhdCB3aGVuIGEg dGltZSBleHRlbmQgaXMgZW5jb3VudGVyZWQuCi0JICogU2luY2UgdGhlIHRpbWUgZXh0ZW5kIGlz IGFsd2F5cyBhdHRhY2hlZCB0byBhIGRhdGEgZXZlbnQsCi0JICogd2Ugc2hvdWxkIG5ldmVyIGxv b3AgbW9yZSB0aGFuIG9uY2UuCi0JICogKFdlIG5ldmVyIGhpdCB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbiBtb3JlIHRoYW4gdHdpY2UpLgorCSAqIFdlIHJlcGVhdCB3aGVuIGEgdGltZSBleHRlbmQg aXMgZW5jb3VudGVyZWQgb3Igd2UgaGl0CisJICogdGhlIGVuZCBvZiB0aGUgcGFnZS4gU2luY2Ug dGhlIHRpbWUgZXh0ZW5kIGlzIGFsd2F5cyBhdHRhY2hlZAorCSAqIHRvIGEgZGF0YSBldmVudCwg d2Ugc2hvdWxkIG5ldmVyIGxvb3AgbW9yZSB0aGFuIHRocmVlIHRpbWVzLgorCSAqIE9uY2UgZm9y IGdvaW5nIHRvIG5leHQgcGFnZSwgb25jZSBvbiB0aW1lIGV4dGVuZCwgYW5kCisJICogZmluYWxs eSBvbmNlIHRvIGdldCB0aGUgZXZlbnQuCisJICogKFdlIG5ldmVyIGhpdCB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbiBtb3JlIHRoYW4gdGhyaWNlKS4KIAkgKi8KLQlpZiAoUkJfV0FSTl9PTihjcHVf YnVmZmVyLCArK25yX2xvb3BzID4gMikpCisJaWYgKFJCX1dBUk5fT04oY3B1X2J1ZmZlciwgKytu cl9sb29wcyA+IDMpKQogCQlyZXR1cm4gTlVMTDsKIAogCWlmIChyYl9wZXJfY3B1X2VtcHR5KGNw dV9idWZmZXIpKQpkaWZmIC0tZ2l0IGEvbW0vbWVtcG9saWN5LmMgYi9tbS9tZW1wb2xpY3kuYwpp bmRleCBjOWY3ZTZmLi5hNzJmYTMzIDEwMDY0NAotLS0gYS9tbS9tZW1wb2xpY3kuYworKysgYi9t bS9tZW1wb2xpY3kuYwpAQCAtMTYwMSw4ICsxNjAxLDE0IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnRl cmxlYXZlX25vZGVzKHN0cnVjdCBtZW1wb2xpY3kgKnBvbGljeSkKICAqIHRhc2sgY2FuIGNoYW5n ZSBpdCdzIHBvbGljeS4gIFRoZSBzeXN0ZW0gZGVmYXVsdCBwb2xpY3kgcmVxdWlyZXMgbm8KICAq IHN1Y2ggcHJvdGVjdGlvbi4KICAqLwotdW5zaWduZWQgc2xhYl9ub2RlKHN0cnVjdCBtZW1wb2xp Y3kgKnBvbGljeSkKK3Vuc2lnbmVkIHNsYWJfbm9kZSh2b2lkKQogeworCXN0cnVjdCBtZW1wb2xp Y3kgKnBvbGljeTsKKworCWlmIChpbl9pbnRlcnJ1cHQoKSkKKwkJcmV0dXJuIG51bWFfbm9kZV9p ZCgpOworCisJcG9saWN5ID0gY3VycmVudC0+bWVtcG9saWN5OwogCWlmICghcG9saWN5IHx8IHBv bGljeS0+ZmxhZ3MgJiBNUE9MX0ZfTE9DQUwpCiAJCXJldHVybiBudW1hX25vZGVfaWQoKTsKIApk aWZmIC0tZ2l0IGEvbW0vcGFnZV9hbGxvYy5jIGIvbW0vcGFnZV9hbGxvYy5jCmluZGV4IGQ4NzYy YjIuLjYyYTdmYTIzIDEwMDY0NAotLS0gYS9tbS9wYWdlX2FsbG9jLmMKKysrIGIvbW0vcGFnZV9h bGxvYy5jCkBAIC0yMDU0LDcgKzIwNTQsNyBAQCBzdGF0aWMgaW5saW5lIGludAogZ2ZwX3RvX2Fs bG9jX2ZsYWdzKGdmcF90IGdmcF9tYXNrKQogewogCWludCBhbGxvY19mbGFncyA9IEFMTE9DX1dN QVJLX01JTiB8IEFMTE9DX0NQVVNFVDsKLQljb25zdCBnZnBfdCB3YWl0ID0gZ2ZwX21hc2sgJiBf X0dGUF9XQUlUOworCWNvbnN0IGJvb2wgYXRvbWljID0gIShnZnBfbWFzayAmIChfX0dGUF9XQUlU IHwgX19HRlBfTk9fS1NXQVBEKSk7CiAKIAkvKiBfX0dGUF9ISUdIIGlzIGFzc3VtZWQgdG8gYmUg dGhlIHNhbWUgYXMgQUxMT0NfSElHSCB0byBzYXZlIGEgYnJhbmNoLiAqLwogCUJVSUxEX0JVR19P TihfX0dGUF9ISUdIICE9IChfX2ZvcmNlIGdmcF90KSBBTExPQ19ISUdIKTsKQEAgLTIwNjMsMjAg KzIwNjMsMjAgQEAgZ2ZwX3RvX2FsbG9jX2ZsYWdzKGdmcF90IGdmcF9tYXNrKQogCSAqIFRoZSBj YWxsZXIgbWF5IGRpcCBpbnRvIHBhZ2UgcmVzZXJ2ZXMgYSBiaXQgbW9yZSBpZiB0aGUgY2FsbGVy CiAJICogY2Fubm90IHJ1biBkaXJlY3QgcmVjbGFpbSwgb3IgaWYgdGhlIGNhbGxlciBoYXMgcmVh bHRpbWUgc2NoZWR1bGluZwogCSAqIHBvbGljeSBvciBpcyBhc2tpbmcgZm9yIF9fR0ZQX0hJR0gg bWVtb3J5LiAgR0ZQX0FUT01JQyByZXF1ZXN0cyB3aWxsCi0JICogc2V0IGJvdGggQUxMT0NfSEFS REVSICghd2FpdCkgYW5kIEFMTE9DX0hJR0ggKF9fR0ZQX0hJR0gpLgorCSAqIHNldCBib3RoIEFM TE9DX0hBUkRFUiAoYXRvbWljID09IHRydWUpIGFuZCBBTExPQ19ISUdIIChfX0dGUF9ISUdIKS4K IAkgKi8KIAlhbGxvY19mbGFncyB8PSAoX19mb3JjZSBpbnQpIChnZnBfbWFzayAmIF9fR0ZQX0hJ R0gpOwogCi0JaWYgKCF3YWl0KSB7CisJaWYgKGF0b21pYykgewogCQkvKgotCQkgKiBOb3Qgd29y dGggdHJ5aW5nIHRvIGFsbG9jYXRlIGhhcmRlciBmb3IKLQkJICogX19HRlBfTk9NRU1BTExPQyBl dmVuIGlmIGl0IGNhbid0IHNjaGVkdWxlLgorCQkgKiBOb3Qgd29ydGggdHJ5aW5nIHRvIGFsbG9j YXRlIGhhcmRlciBmb3IgX19HRlBfTk9NRU1BTExPQyBldmVuCisJCSAqIGlmIGl0IGNhbid0IHNj aGVkdWxlLgogCQkgKi8KLQkJaWYgICghKGdmcF9tYXNrICYgX19HRlBfTk9NRU1BTExPQykpCisJ CWlmICghKGdmcF9tYXNrICYgX19HRlBfTk9NRU1BTExPQykpCiAJCQlhbGxvY19mbGFncyB8PSBB TExPQ19IQVJERVI7CiAJCS8qCi0JCSAqIElnbm9yZSBjcHVzZXQgaWYgR0ZQX0FUT01JQyAoIXdh aXQpIHJhdGhlciB0aGFuIGZhaWwgYWxsb2MuCi0JCSAqIFNlZSBhbHNvIGNwdXNldF96b25lX2Fs bG93ZWQoKSBjb21tZW50IGluIGtlcm5lbC9jcHVzZXQuYy4KKwkJICogSWdub3JlIGNwdXNldCBt ZW1zIGZvciBHRlBfQVRPTUlDIHJhdGhlciB0aGFuIGZhaWwsIHNlZSB0aGUKKwkJICogY29tbWVu dCBmb3IgX19jcHVzZXRfbm9kZV9hbGxvd2VkX3NvZnR3YWxsKCkuCiAJCSAqLwogCQlhbGxvY19m bGFncyAmPSB+QUxMT0NfQ1BVU0VUOwogCX0gZWxzZSBpZiAodW5saWtlbHkocnRfdGFzayhjdXJy ZW50KSkgJiYgIWluX2ludGVycnVwdCgpKQpkaWZmIC0tZ2l0IGEvbW0vc2xhYi5jIGIvbW0vc2xh Yi5jCmluZGV4IDRjM2I2NzEuLmFlYTVlNDIgMTAwNjQ0Ci0tLSBhL21tL3NsYWIuYworKysgYi9t bS9zbGFiLmMKQEAgLTMyNzAsNyArMzI3MCw3IEBAIHN0YXRpYyB2b2lkICphbHRlcm5hdGVfbm9k ZV9hbGxvYyhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGVwLCBnZnBfdCBmbGFncykKIAlpZiAoY3B1 c2V0X2RvX3NsYWJfbWVtX3NwcmVhZCgpICYmIChjYWNoZXAtPmZsYWdzICYgU0xBQl9NRU1fU1BS RUFEKSkKIAkJbmlkX2FsbG9jID0gY3B1c2V0X3NsYWJfc3ByZWFkX25vZGUoKTsKIAllbHNlIGlm IChjdXJyZW50LT5tZW1wb2xpY3kpCi0JCW5pZF9hbGxvYyA9IHNsYWJfbm9kZShjdXJyZW50LT5t ZW1wb2xpY3kpOworCQluaWRfYWxsb2MgPSBzbGFiX25vZGUoKTsKIAlpZiAobmlkX2FsbG9jICE9 IG5pZF9oZXJlKQogCQlyZXR1cm4gX19fX2NhY2hlX2FsbG9jX25vZGUoY2FjaGVwLCBmbGFncywg bmlkX2FsbG9jKTsKIAlyZXR1cm4gTlVMTDsKQEAgLTMzMDIsNyArMzMwMiw3IEBAIHN0YXRpYyB2 b2lkICpmYWxsYmFja19hbGxvYyhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUsIGdmcF90IGZsYWdz KQogCiByZXRyeV9jcHVzZXQ6CiAJY3B1c2V0X21lbXNfY29va2llID0gZ2V0X21lbXNfYWxsb3dl ZCgpOwotCXpvbmVsaXN0ID0gbm9kZV96b25lbGlzdChzbGFiX25vZGUoY3VycmVudC0+bWVtcG9s aWN5KSwgZmxhZ3MpOworCXpvbmVsaXN0ID0gbm9kZV96b25lbGlzdChzbGFiX25vZGUoKSwgZmxh Z3MpOwogCiByZXRyeToKIAkvKgpkaWZmIC0tZ2l0IGEvbW0vc2x1Yi5jIGIvbW0vc2x1Yi5jCmlu ZGV4IGZjNzE5ZjcuLjZhNGMyZmIgMTAwNjQ0Ci0tLSBhL21tL3NsdWIuYworKysgYi9tbS9zbHVi LmMKQEAgLTE2MDgsNyArMTYwOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqZ2V0X2FueV9wYXJ0 aWFsKHN0cnVjdCBrbWVtX2NhY2hlICpzLCBnZnBfdCBmbGFncywKIAogCWRvIHsKIAkJY3B1c2V0 X21lbXNfY29va2llID0gZ2V0X21lbXNfYWxsb3dlZCgpOwotCQl6b25lbGlzdCA9IG5vZGVfem9u ZWxpc3Qoc2xhYl9ub2RlKGN1cnJlbnQtPm1lbXBvbGljeSksIGZsYWdzKTsKKwkJem9uZWxpc3Qg PSBub2RlX3pvbmVsaXN0KHNsYWJfbm9kZSgpLCBmbGFncyk7CiAJCWZvcl9lYWNoX3pvbmVfem9u ZWxpc3Qoem9uZSwgeiwgem9uZWxpc3QsIGhpZ2hfem9uZWlkeCkgewogCQkJc3RydWN0IGttZW1f Y2FjaGVfbm9kZSAqbjsKIApkaWZmIC0tZ2l0IGEvbmV0L2JsdWV0b290aC9sMmNhcF9zb2NrLmMg Yi9uZXQvYmx1ZXRvb3RoL2wyY2FwX3NvY2suYwppbmRleCAxNTg4ODdhLi43NGU1OWNkIDEwMDY0 NAotLS0gYS9uZXQvYmx1ZXRvb3RoL2wyY2FwX3NvY2suYworKysgYi9uZXQvYmx1ZXRvb3RoL2wy Y2FwX3NvY2suYwpAQCAtODA0LDcgKzgwNCw4IEBAIHN0YXRpYyBpbnQgbDJjYXBfc29ja19zaHV0 ZG93bihzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgaG93KQogCQlzay0+c2tfc2h1dGRvd24gPSBT SFVURE9XTl9NQVNLOwogCQlsMmNhcF9jaGFuX2Nsb3NlKGNoYW4sIDApOwogCi0JCWlmIChzb2Nr X2ZsYWcoc2ssIFNPQ0tfTElOR0VSKSAmJiBzay0+c2tfbGluZ2VydGltZSkKKwkJaWYgKHNvY2tf ZmxhZyhzaywgU09DS19MSU5HRVIpICYmIHNrLT5za19saW5nZXJ0aW1lICYmCisJCSAgICAhKGN1 cnJlbnQtPmZsYWdzICYgUEZfRVhJVElORykpCiAJCQllcnIgPSBidF9zb2NrX3dhaXRfc3RhdGUo c2ssIEJUX0NMT1NFRCwKIAkJCQkJCQlzay0+c2tfbGluZ2VydGltZSk7CiAJfQpkaWZmIC0tZ2l0 IGEvbmV0L2JsdWV0b290aC9yZmNvbW0vc29jay5jIGIvbmV0L2JsdWV0b290aC9yZmNvbW0vc29j ay5jCmluZGV4IDE0YzQ4NjQuLjkzYTgyNDEgMTAwNjQ0Ci0tLSBhL25ldC9ibHVldG9vdGgvcmZj b21tL3NvY2suYworKysgYi9uZXQvYmx1ZXRvb3RoL3JmY29tbS9zb2NrLmMKQEAgLTkwMSw3ICs5 MDEsOCBAQCBzdGF0aWMgaW50IHJmY29tbV9zb2NrX3NodXRkb3duKHN0cnVjdCBzb2NrZXQgKnNv Y2ssIGludCBob3cpCiAJCXNrLT5za19zaHV0ZG93biA9IFNIVVRET1dOX01BU0s7CiAJCV9fcmZj b21tX3NvY2tfY2xvc2Uoc2spOwogCi0JCWlmIChzb2NrX2ZsYWcoc2ssIFNPQ0tfTElOR0VSKSAm JiBzay0+c2tfbGluZ2VydGltZSkKKwkJaWYgKHNvY2tfZmxhZyhzaywgU09DS19MSU5HRVIpICYm IHNrLT5za19saW5nZXJ0aW1lICYmCisJCSAgICAhKGN1cnJlbnQtPmZsYWdzICYgUEZfRVhJVElO RykpCiAJCQllcnIgPSBidF9zb2NrX3dhaXRfc3RhdGUoc2ssIEJUX0NMT1NFRCwgc2stPnNrX2xp bmdlcnRpbWUpOwogCX0KIAlyZWxlYXNlX3NvY2soc2spOwpkaWZmIC0tZ2l0IGEvbmV0L2JsdWV0 b290aC9zY28uYyBiL25ldC9ibHVldG9vdGgvc2NvLmMKaW5kZXggYTMyNGIwMC4uMmU4MGFlZTcg MTAwNjQ0Ci0tLSBhL25ldC9ibHVldG9vdGgvc2NvLmMKKysrIGIvbmV0L2JsdWV0b290aC9zY28u YwpAQCAtNzc0LDcgKzc3NCw4IEBAIHN0YXRpYyBpbnQgc2NvX3NvY2tfc2h1dGRvd24oc3RydWN0 IHNvY2tldCAqc29jaywgaW50IGhvdykKIAkJc2NvX3NvY2tfY2xlYXJfdGltZXIoc2spOwogCQlf X3Njb19zb2NrX2Nsb3NlKHNrKTsKIAotCQlpZiAoc29ja19mbGFnKHNrLCBTT0NLX0xJTkdFUikg JiYgc2stPnNrX2xpbmdlcnRpbWUpCisJCWlmIChzb2NrX2ZsYWcoc2ssIFNPQ0tfTElOR0VSKSAm JiBzay0+c2tfbGluZ2VydGltZSAmJgorCQkgICAgIShjdXJyZW50LT5mbGFncyAmIFBGX0VYSVRJ TkcpKQogCQkJZXJyID0gYnRfc29ja193YWl0X3N0YXRlKHNrLCBCVF9DTE9TRUQsCiAJCQkJCQkJ c2stPnNrX2xpbmdlcnRpbWUpOwogCX0KQEAgLTc5NCw3ICs3OTUsOCBAQCBzdGF0aWMgaW50IHNj b19zb2NrX3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykKIAogCXNjb19zb2NrX2Nsb3NlKHNr KTsKIAotCWlmIChzb2NrX2ZsYWcoc2ssIFNPQ0tfTElOR0VSKSAmJiBzay0+c2tfbGluZ2VydGlt ZSkgeworCWlmIChzb2NrX2ZsYWcoc2ssIFNPQ0tfTElOR0VSKSAmJiBzay0+c2tfbGluZ2VydGlt ZSAmJgorCSAgICAhKGN1cnJlbnQtPmZsYWdzICYgUEZfRVhJVElORykpIHsKIAkJbG9ja19zb2Nr KHNrKTsKIAkJZXJyID0gYnRfc29ja193YWl0X3N0YXRlKHNrLCBCVF9DTE9TRUQsIHNrLT5za19s aW5nZXJ0aW1lKTsKIAkJcmVsZWFzZV9zb2NrKHNrKTsKZGlmZiAtLWdpdCBhL25ldC9jb21wYXQu YyBiL25ldC9jb21wYXQuYwppbmRleCA0MTcyNGM5Li43NTllNTQyIDEwMDY0NAotLS0gYS9uZXQv Y29tcGF0LmMKKysrIGIvbmV0L2NvbXBhdC5jCkBAIC04NSw3ICs4NSw3IEBAIGludCB2ZXJpZnlf Y29tcGF0X2lvdmVjKHN0cnVjdCBtc2doZHIgKmtlcm5fbXNnLCBzdHJ1Y3QgaW92ZWMgKmtlcm5f aW92LAogewogCWludCB0b3RfbGVuOwogCi0JaWYgKGtlcm5fbXNnLT5tc2dfbmFtZWxlbikgewor CWlmIChrZXJuX21zZy0+bXNnX25hbWUgJiYga2Vybl9tc2ctPm1zZ19uYW1lbGVuKSB7CiAJCWlm IChtb2RlID09IFZFUklGWV9SRUFEKSB7CiAJCQlpbnQgZXJyID0gbW92ZV9hZGRyX3RvX2tlcm5l bChrZXJuX21zZy0+bXNnX25hbWUsCiAJCQkJCQkgICAgICBrZXJuX21zZy0+bXNnX25hbWVsZW4s CkBAIC05MywxMCArOTMsMTEgQEAgaW50IHZlcmlmeV9jb21wYXRfaW92ZWMoc3RydWN0IG1zZ2hk ciAqa2Vybl9tc2csIHN0cnVjdCBpb3ZlYyAqa2Vybl9pb3YsCiAJCQlpZiAoZXJyIDwgMCkKIAkJ CQlyZXR1cm4gZXJyOwogCQl9Ci0JCWlmIChrZXJuX21zZy0+bXNnX25hbWUpCi0JCQlrZXJuX21z Zy0+bXNnX25hbWUgPSBrZXJuX2FkZHJlc3M7Ci0JfSBlbHNlCisJCWtlcm5fbXNnLT5tc2dfbmFt ZSA9IGtlcm5fYWRkcmVzczsKKwl9IGVsc2UgewogCQlrZXJuX21zZy0+bXNnX25hbWUgPSBOVUxM OworCQlrZXJuX21zZy0+bXNnX25hbWVsZW4gPSAwOworCX0KIAogCXRvdF9sZW4gPSBpb3ZfZnJv bV91c2VyX2NvbXBhdF90b19rZXJuKGtlcm5faW92LAogCQkJCQkgIChzdHJ1Y3QgY29tcGF0X2lv dmVjIF9fdXNlciAqKWtlcm5fbXNnLT5tc2dfaW92LApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvaW92 ZWMuYyBiL25ldC9jb3JlL2lvdmVjLmMKaW5kZXggMTM5ZWY5My4uNjZlM2YxZiAxMDA2NDQKLS0t IGEvbmV0L2NvcmUvaW92ZWMuYworKysgYi9uZXQvY29yZS9pb3ZlYy5jCkBAIC0zOSw3ICszOSw3 IEBAIGludCB2ZXJpZnlfaW92ZWMoc3RydWN0IG1zZ2hkciAqbSwgc3RydWN0IGlvdmVjICppb3Ys IHN0cnVjdCBzb2NrYWRkciAqYWRkcmVzcywKIHsKIAlpbnQgc2l6ZSwgY3QsIGVycjsKIAotCWlm IChtLT5tc2dfbmFtZWxlbikgeworCWlmIChtLT5tc2dfbmFtZSAmJiBtLT5tc2dfbmFtZWxlbikg ewogCQlpZiAobW9kZSA9PSBWRVJJRllfUkVBRCkgewogCQkJdm9pZCBfX3VzZXIgKm5hbWVwOwog CQkJbmFtZXAgPSAodm9pZCBfX3VzZXIgX19mb3JjZSAqKSBtLT5tc2dfbmFtZTsKQEAgLTQ4LDEw ICs0OCwxMCBAQCBpbnQgdmVyaWZ5X2lvdmVjKHN0cnVjdCBtc2doZHIgKm0sIHN0cnVjdCBpb3Zl YyAqaW92LCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHJlc3MsCiAJCQlpZiAoZXJyIDwgMCkKIAkJCQly ZXR1cm4gZXJyOwogCQl9Ci0JCWlmIChtLT5tc2dfbmFtZSkKLQkJCW0tPm1zZ19uYW1lID0gYWRk cmVzczsKKwkJbS0+bXNnX25hbWUgPSBhZGRyZXNzOwogCX0gZWxzZSB7CiAJCW0tPm1zZ19uYW1l ID0gTlVMTDsKKwkJbS0+bXNnX25hbWVsZW4gPSAwOwogCX0KIAogCXNpemUgPSBtLT5tc2dfaW92 bGVuICogc2l6ZW9mKHN0cnVjdCBpb3ZlYyk7CkBAIC0xNTcsNiArMTU3LDEwIEBAIEVYUE9SVF9T WU1CT0wobWVtY3B5X2Zyb21pb3ZlYyk7CiBpbnQgbWVtY3B5X2Zyb21pb3ZlY2VuZCh1bnNpZ25l ZCBjaGFyICprZGF0YSwgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsCiAJCQlpbnQgb2Zmc2V0LCBp bnQgbGVuKQogeworCS8qIE5vIGRhdGE/IERvbmUhICovCisJaWYgKGxlbiA9PSAwKQorCQlyZXR1 cm4gMDsKKwogCS8qIFNraXAgb3ZlciB0aGUgZmluaXNoZWQgaW92ZWNzICovCiAJd2hpbGUgKG9m ZnNldCA+PSBpb3YtPmlvdl9sZW4pIHsKIAkJb2Zmc2V0IC09IGlvdi0+aW92X2xlbjsKZGlmZiAt LWdpdCBhL25ldC9jb3JlL3NlY3VyZV9zZXEuYyBiL25ldC9jb3JlL3NlY3VyZV9zZXEuYwppbmRl eCA5MjU5OTFhLi5mZDUzOTE5IDEwMDY0NAotLS0gYS9uZXQvY29yZS9zZWN1cmVfc2VxLmMKKysr IGIvbmV0L2NvcmUvc2VjdXJlX3NlcS5jCkBAIC03OSwyOSArNzksNiBAQCB1MzIgc2VjdXJlX2lw djZfcG9ydF9lcGhlbWVyYWwoY29uc3QgX19iZTMyICpzYWRkciwgY29uc3QgX19iZTMyICpkYWRk ciwKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0lORVQKLV9fdTMyIHNlY3VyZV9pcF9pZChfX2Jl MzIgZGFkZHIpCi17Ci0JdTMyIGhhc2hbTUQ1X0RJR0VTVF9XT1JEU107Ci0KLQloYXNoWzBdID0g KF9fZm9yY2UgX191MzIpIGRhZGRyOwotCWhhc2hbMV0gPSBuZXRfc2VjcmV0WzEzXTsKLQloYXNo WzJdID0gbmV0X3NlY3JldFsxNF07Ci0JaGFzaFszXSA9IG5ldF9zZWNyZXRbMTVdOwotCi0JbWQ1 X3RyYW5zZm9ybShoYXNoLCBuZXRfc2VjcmV0KTsKLQotCXJldHVybiBoYXNoWzBdOwotfQotCi1f X3UzMiBzZWN1cmVfaXB2Nl9pZChjb25zdCBfX2JlMzIgZGFkZHJbNF0pCi17Ci0JX191MzIgaGFz aFs0XTsKLQotCW1lbWNweShoYXNoLCBkYWRkciwgMTYpOwotCW1kNV90cmFuc2Zvcm0oaGFzaCwg bmV0X3NlY3JldCk7Ci0KLQlyZXR1cm4gaGFzaFswXTsKLX0KIAogX191MzIgc2VjdXJlX3RjcF9z ZXF1ZW5jZV9udW1iZXIoX19iZTMyIHNhZGRyLCBfX2JlMzIgZGFkZHIsCiAJCQkJIF9fYmUxNiBz cG9ydCwgX19iZTE2IGRwb3J0KQpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2tidWZmLmMgYi9uZXQv Y29yZS9za2J1ZmYuYwppbmRleCA3MTIxZDliLi4wY2NmYjUzIDEwMDY0NAotLS0gYS9uZXQvY29y ZS9za2J1ZmYuYworKysgYi9uZXQvY29yZS9za2J1ZmYuYwpAQCAtMjY2OSw3ICsyNjY5LDYgQEAg c3RydWN0IHNrX2J1ZmYgKnNrYl9zZWdtZW50KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBmZWF0 dXJlcykKIAkJdGFpbCA9IG5za2I7CiAKIAkJX19jb3B5X3NrYl9oZWFkZXIobnNrYiwgc2tiKTsK LQkJbnNrYi0+bWFjX2xlbiA9IHNrYi0+bWFjX2xlbjsKIAogCQkvKiBuc2tiIGFuZCBza2IgbWln aHQgaGF2ZSBkaWZmZXJlbnQgaGVhZHJvb20gKi8KIAkJaWYgKG5za2ItPmlwX3N1bW1lZCA9PSBD SEVDS1NVTV9QQVJUSUFMKQpAQCAtMjY3OSw2ICsyNjc4LDcgQEAgc3RydWN0IHNrX2J1ZmYgKnNr Yl9zZWdtZW50KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBmZWF0dXJlcykKIAkJc2tiX3NldF9u ZXR3b3JrX2hlYWRlcihuc2tiLCBza2ItPm1hY19sZW4pOwogCQluc2tiLT50cmFuc3BvcnRfaGVh ZGVyID0gKG5za2ItPm5ldHdvcmtfaGVhZGVyICsKIAkJCQkJICBza2JfbmV0d29ya19oZWFkZXJf bGVuKHNrYikpOworCQlza2JfcmVzZXRfbWFjX2xlbihuc2tiKTsKIAkJc2tiX2NvcHlfZnJvbV9s aW5lYXJfZGF0YShza2IsIG5za2ItPmRhdGEsIGRvZmZzZXQpOwogCiAJCWlmIChmc2tiICE9IHNr Yl9zaGluZm8oc2tiKS0+ZnJhZ19saXN0KQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvY2lwc29faXB2 NC5jIGIvbmV0L2lwdjQvY2lwc29faXB2NC5jCmluZGV4IGFmYWE3MzUuLmRiZWM4YjUgMTAwNjQ0 Ci0tLSBhL25ldC9pcHY0L2NpcHNvX2lwdjQuYworKysgYi9uZXQvaXB2NC9jaXBzb19pcHY0LmMK QEAgLTk3NCw3ICs5NzQsNyBAQCBzdGF0aWMgaW50IGNpcHNvX3Y0X21hcF9jYXRfcmJtX250b2go Y29uc3Qgc3RydWN0IGNpcHNvX3Y0X2RvaSAqZG9pX2RlZiwKIAkJCQlyZXR1cm4gLUVQRVJNOwog CQkJYnJlYWs7CiAJCX0KLQkJcmV0X3ZhbCA9IG5ldGxibF9zZWNhdHRyX2NhdG1hcF9zZXRiaXQo c2VjYXR0ci0+YXR0ci5tbHMuY2F0LAorCQlyZXRfdmFsID0gbmV0bGJsX3NlY2F0dHJfY2F0bWFw X3NldGJpdCgmc2VjYXR0ci0+YXR0ci5tbHMuY2F0LAogCQkJCQkJICAgICAgIGhvc3Rfc3BvdCwK IAkJCQkJCSAgICAgICBHRlBfQVRPTUlDKTsKIAkJaWYgKHJldF92YWwgIT0gMCkKQEAgLTEwNzYs NyArMTA3Niw3IEBAIHN0YXRpYyBpbnQgY2lwc29fdjRfbWFwX2NhdF9lbnVtX250b2goY29uc3Qg c3RydWN0IGNpcHNvX3Y0X2RvaSAqZG9pX2RlZiwKIAl1MzIgaXRlcjsKIAogCWZvciAoaXRlciA9 IDA7IGl0ZXIgPCBuZXRfY2F0X2xlbjsgaXRlciArPSAyKSB7Ci0JCXJldF92YWwgPSBuZXRsYmxf c2VjYXR0cl9jYXRtYXBfc2V0Yml0KHNlY2F0dHItPmF0dHIubWxzLmNhdCwKKwkJcmV0X3ZhbCA9 IG5ldGxibF9zZWNhdHRyX2NhdG1hcF9zZXRiaXQoJnNlY2F0dHItPmF0dHIubWxzLmNhdCwKIAkJ CQlnZXRfdW5hbGlnbmVkX2JlMTYoJm5ldF9jYXRbaXRlcl0pLAogCQkJCUdGUF9BVE9NSUMpOwog CQlpZiAocmV0X3ZhbCAhPSAwKQpAQCAtMTIxOCw3ICsxMjE4LDcgQEAgc3RhdGljIGludCBjaXBz b192NF9tYXBfY2F0X3JuZ19udG9oKGNvbnN0IHN0cnVjdCBjaXBzb192NF9kb2kgKmRvaV9kZWYs CiAJCWVsc2UKIAkJCWNhdF9sb3cgPSAwOwogCi0JCXJldF92YWwgPSBuZXRsYmxfc2VjYXR0cl9j YXRtYXBfc2V0cm5nKHNlY2F0dHItPmF0dHIubWxzLmNhdCwKKwkJcmV0X3ZhbCA9IG5ldGxibF9z ZWNhdHRyX2NhdG1hcF9zZXRybmcoJnNlY2F0dHItPmF0dHIubWxzLmNhdCwKIAkJCQkJCSAgICAg ICBjYXRfbG93LAogCQkJCQkJICAgICAgIGNhdF9oaWdoLAogCQkJCQkJICAgICAgIEdGUF9BVE9N SUMpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaWdtcC5jIGIvbmV0L2lwdjQvaWdtcC5jCmluZGV4 IDdmN2U2NzAuLjdmZTY2ZDkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lnbXAuYworKysgYi9uZXQv aXB2NC9pZ21wLmMKQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmln bXB2M19uZXdwYWNrKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBzaXplKQogCXBpcC0+c2Fk ZHIgICAgPSBmbDQuc2FkZHI7CiAJcGlwLT5wcm90b2NvbCA9IElQUFJPVE9fSUdNUDsKIAlwaXAt PnRvdF9sZW4gID0gMDsJLyogZmlsbGVkIGluIGxhdGVyICovCi0JaXBfc2VsZWN0X2lkZW50KHNr YiwgJnJ0LT5kc3QsIE5VTEwpOworCWlwX3NlbGVjdF9pZGVudChza2IsIE5VTEwpOwogCSgodTgq KSZwaXBbMV0pWzBdID0gSVBPUFRfUkE7CiAJKCh1OCopJnBpcFsxXSlbMV0gPSA0OwogCSgodTgq KSZwaXBbMV0pWzJdID0gMDsKQEAgLTY4Myw3ICs2ODMsNyBAQCBzdGF0aWMgaW50IGlnbXBfc2Vu ZF9yZXBvcnQoc3RydWN0IGluX2RldmljZSAqaW5fZGV2LCBzdHJ1Y3QgaXBfbWNfbGlzdCAqcG1j LAogCWlwaC0+ZGFkZHIgICAgPSBkc3Q7CiAJaXBoLT5zYWRkciAgICA9IGZsNC5zYWRkcjsKIAlp cGgtPnByb3RvY29sID0gSVBQUk9UT19JR01QOwotCWlwX3NlbGVjdF9pZGVudChza2IsICZydC0+ ZHN0LCBOVUxMKTsKKwlpcF9zZWxlY3RfaWRlbnQoc2tiLCBOVUxMKTsKIAkoKHU4KikmaXBoWzFd KVswXSA9IElQT1BUX1JBOwogCSgodTgqKSZpcGhbMV0pWzFdID0gNDsKIAkoKHU4KikmaXBoWzFd KVsyXSA9IDA7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0cGVlci5jIGIvbmV0L2lwdjQvaW5l dHBlZXIuYwppbmRleCA1OGM0ZTY5Ni4uOWQ3NGNjNyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaW5l dHBlZXIuYworKysgYi9uZXQvaXB2NC9pbmV0cGVlci5jCkBAIC0yNiwyMCArMjYsNyBAQAogICog IFRoZW9yeSBvZiBvcGVyYXRpb25zLgogICogIFdlIGtlZXAgb25lIGVudHJ5IGZvciBlYWNoIHBl ZXIgSVAgYWRkcmVzcy4gIFRoZSBub2RlcyBjb250YWlucyBsb25nLWxpdmluZwogICogIGluZm9y bWF0aW9uIGFib3V0IHRoZSBwZWVyIHdoaWNoIGRvZXNuJ3QgZGVwZW5kIG9uIHJvdXRlcy4KLSAq ICBBdCB0aGlzIG1vbWVudCB0aGlzIGluZm9ybWF0aW9uIGNvbnNpc3RzIG9ubHkgb2YgSUQgZmll bGQgZm9yIHRoZSBuZXh0Ci0gKiAgb3V0Z29pbmcgSVAgcGFja2V0LiAgVGhpcyBmaWVsZCBpcyBp bmNyZW1lbnRlZCB3aXRoIGVhY2ggcGFja2V0IGFzIGVuY29kZWQKLSAqICBpbiBpbmV0X2dldGlk KCkgZnVuY3Rpb24gKGluY2x1ZGUvbmV0L2luZXRwZWVyLmgpLgotICogIEF0IHRoZSBtb21lbnQg b2Ygd3JpdGluZyB0aGlzIG5vdGVzIGlkZW50aWZpZXIgb2YgSVAgcGFja2V0cyBpcyBnZW5lcmF0 ZWQKLSAqICB0byBiZSB1bnByZWRpY3RhYmxlIHVzaW5nIHRoaXMgY29kZSBvbmx5IGZvciBwYWNr ZXRzIHN1YmplY3RlZAotICogIChhY3R1YWxseSBvciBwb3RlbnRpYWxseSkgdG8gZGVmcmFnbWVu dGF0aW9uLiAgSS5lLiBERiBwYWNrZXRzIGxlc3MgdGhhbgotICogIFBNVFUgaW4gc2l6ZSB3aGVu IGxvY2FsIGZyYWdtZW50YXRpb24gaXMgZGlzYWJsZWQgdXNlIGEgY29uc3RhbnQgSUQgYW5kIGRv Ci0gKiAgbm90IHVzZSB0aGlzIGNvZGUgKHNlZSBpcF9zZWxlY3RfaWRlbnQoKSBpbiBpbmNsdWRl L25ldC9pcC5oKS4KICAqCi0gKiAgUm91dGUgY2FjaGUgZW50cmllcyBob2xkIHJlZmVyZW5jZXMg dG8gb3VyIG5vZGVzLgotICogIE5ldyBjYWNoZSBlbnRyaWVzIGdldCByZWZlcmVuY2VzIHZpYSBs b29rdXAgYnkgZGVzdGluYXRpb24gSVAgYWRkcmVzcyBpbgotICogIHRoZSBhdmwgdHJlZS4gIFRo ZSByZWZlcmVuY2UgaXMgZ3JhYmJlZCBvbmx5IHdoZW4gaXQncyBuZWVkZWQgaS5lLiBvbmx5Ci0g KiAgd2hlbiB3ZSB0cnkgdG8gb3V0cHV0IElQIHBhY2tldCB3aGljaCBuZWVkcyBhbiB1bnByZWRp Y3RhYmxlIElEIChzZWUKLSAqICBfX2lwX3NlbGVjdF9pZGVudCgpIGluIG5ldC9pcHY0L3JvdXRl LmMpLgogICogIE5vZGVzIGFyZSByZW1vdmVkIG9ubHkgd2hlbiByZWZlcmVuY2UgY291bnRlciBn b2VzIHRvIDAuCiAgKiAgV2hlbiBpdCdzIGhhcHBlbmVkIHRoZSBub2RlIG1heSBiZSByZW1vdmVk IHdoZW4gYSBzdWZmaWNpZW50IGFtb3VudCBvZgogICogIHRpbWUgaGFzIGJlZW4gcGFzc2VkIHNp bmNlIGl0cyBsYXN0IHVzZS4gIFRoZSBsZXNzLXJlY2VudGx5LXVzZWQgZW50cnkgY2FuCkBAIC02 Miw3ICs0OSw2IEBACiAgKgkJcmVmY250OiBhdG9taWNhbGx5IGFnYWluc3QgbW9kaWZpY2F0aW9u cyBvbiBvdGhlciBDUFU7CiAgKgkJICAgdXN1YWxseSB1bmRlciBzb21lIG90aGVyIGxvY2sgdG8g cHJldmVudCBub2RlIGRpc2FwcGVhcmluZwogICoJCWRhZGRyOiB1bmNoYW5nZWFibGUKLSAqCQlp cF9pZF9jb3VudDogYXRvbWljIHZhbHVlIChubyBsb2NrIG5lZWRlZCkKICAqLwogCiBzdGF0aWMg c3RydWN0IGttZW1fY2FjaGUgKnBlZXJfY2FjaGVwIF9fcmVhZF9tb3N0bHk7CkBAIC00ODgsMTAg KzQ3NCw2IEBAIHJlbG9va3VwOgogCQlwLT5kYWRkciA9ICpkYWRkcjsKIAkJYXRvbWljX3NldCgm cC0+cmVmY250LCAxKTsKIAkJYXRvbWljX3NldCgmcC0+cmlkLCAwKTsKLQkJYXRvbWljX3NldCgm cC0+aXBfaWRfY291bnQsCi0JCQkJKGRhZGRyLT5mYW1pbHkgPT0gQUZfSU5FVCkgPwotCQkJCQlz ZWN1cmVfaXBfaWQoZGFkZHItPmFkZHIuYTQpIDoKLQkJCQkJc2VjdXJlX2lwdjZfaWQoZGFkZHIt PmFkZHIuYTYpKTsKIAkJcC0+dGNwX3RzX3N0YW1wID0gMDsKIAkJcC0+bWV0cmljc1tSVEFYX0xP Q0stMV0gPSBJTkVUUEVFUl9NRVRSSUNTX05FVzsKIAkJcC0+cmF0ZV90b2tlbnMgPSAwOwpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvaXBfb3V0cHV0LmMgYi9uZXQvaXB2NC9pcF9vdXRwdXQuYwppbmRl eCAxNjE5MWYwLi4yMjMwODVmIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9vdXRwdXQuYworKysg Yi9uZXQvaXB2NC9pcF9vdXRwdXQuYwpAQCAtMTYyLDcgKzE2Miw3IEBAIGludCBpcF9idWlsZF9h bmRfc2VuZF9wa3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHNvY2sgKnNrLAogCWlwaC0+ ZGFkZHIgICAgPSAob3B0ICYmIG9wdC0+b3B0LnNyciA/IG9wdC0+b3B0LmZhZGRyIDogZGFkZHIp OwogCWlwaC0+c2FkZHIgICAgPSBzYWRkcjsKIAlpcGgtPnByb3RvY29sID0gc2stPnNrX3Byb3Rv Y29sOwotCWlwX3NlbGVjdF9pZGVudChza2IsICZydC0+ZHN0LCBzayk7CisJaXBfc2VsZWN0X2lk ZW50KHNrYiwgc2spOwogCiAJaWYgKG9wdCAmJiBvcHQtPm9wdC5vcHRsZW4pIHsKIAkJaXBoLT5p aGwgKz0gb3B0LT5vcHQub3B0bGVuPj4yOwpAQCAtMzkwLDggKzM5MCw3IEBAIHBhY2tldF9yb3V0 ZWQ6CiAJCWlwX29wdGlvbnNfYnVpbGQoc2tiLCAmaW5ldF9vcHQtPm9wdCwgaW5ldC0+aW5ldF9k YWRkciwgcnQsIDApOwogCX0KIAotCWlwX3NlbGVjdF9pZGVudF9tb3JlKHNrYiwgJnJ0LT5kc3Qs IHNrLAotCQkJICAgICAoc2tiX3NoaW5mbyhza2IpLT5nc29fc2VncyA/OiAxKSAtIDEpOworCWlw X3NlbGVjdF9pZGVudF9zZWdzKHNrYiwgc2ssIHNrYl9zaGluZm8oc2tiKS0+Z3NvX3NlZ3MgPzog MSk7CiAKIAlza2ItPnByaW9yaXR5ID0gc2stPnNrX3ByaW9yaXR5OwogCXNrYi0+bWFyayA9IHNr LT5za19tYXJrOwpAQCAtMTMzNCw3ICsxMzMzLDcgQEAgc3RydWN0IHNrX2J1ZmYgKl9faXBfbWFr ZV9za2Ioc3RydWN0IHNvY2sgKnNrLAogCWlwaC0+aWhsID0gNTsKIAlpcGgtPnRvcyA9IGluZXQt PnRvczsKIAlpcGgtPmZyYWdfb2ZmID0gZGY7Ci0JaXBfc2VsZWN0X2lkZW50KHNrYiwgJnJ0LT5k c3QsIHNrKTsKKwlpcF9zZWxlY3RfaWRlbnQoc2tiLCBzayk7CiAJaXBoLT50dGwgPSB0dGw7CiAJ aXBoLT5wcm90b2NvbCA9IHNrLT5za19wcm90b2NvbDsKIAlpcGgtPnNhZGRyID0gZmw0LT5zYWRk cjsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwbXIuYyBiL25ldC9pcHY0L2lwbXIuYwppbmRleCAx NDBkMzc3Li43OTkzZDE2IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcG1yLmMKKysrIGIvbmV0L2lw djQvaXBtci5jCkBAIC0xNTc5LDcgKzE1NzksNyBAQCBzdGF0aWMgdm9pZCBpcF9lbmNhcChzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgc2FkZHIsIF9fYmUzMiBkYWRkcikKIAlpcGgtPnByb3Rv Y29sCT0JSVBQUk9UT19JUElQOwogCWlwaC0+aWhsCT0JNTsKIAlpcGgtPnRvdF9sZW4JPQlodG9u cyhza2ItPmxlbik7Ci0JaXBfc2VsZWN0X2lkZW50KHNrYiwgc2tiX2RzdChza2IpLCBOVUxMKTsK KwlpcF9zZWxlY3RfaWRlbnQoc2tiLCBOVUxMKTsKIAlpcF9zZW5kX2NoZWNrKGlwaCk7CiAKIAlt ZW1zZXQoJihJUENCKHNrYiktPm9wdCksIDAsIHNpemVvZihJUENCKHNrYiktPm9wdCkpOwpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvcmF3LmMgYi9uZXQvaXB2NC9yYXcuYwppbmRleCBjZmRlZDkzLi43 NWZlYTFmIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yYXcuYworKysgYi9uZXQvaXB2NC9yYXcuYwpA QCAtMzgwLDcgKzM4MCw3IEBAIHN0YXRpYyBpbnQgcmF3X3NlbmRfaGRyaW5jKHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IGZsb3dpNCAqZmw0LAogCQlpcGgtPmNoZWNrICAgPSAwOwogCQlpcGgtPnRv dF9sZW4gPSBodG9ucyhsZW5ndGgpOwogCQlpZiAoIWlwaC0+aWQpCi0JCQlpcF9zZWxlY3RfaWRl bnQoc2tiLCAmcnQtPmRzdCwgTlVMTCk7CisJCQlpcF9zZWxlY3RfaWRlbnQoc2tiLCBOVUxMKTsK IAogCQlpcGgtPmNoZWNrID0gaXBfZmFzdF9jc3VtKCh1bnNpZ25lZCBjaGFyICopaXBoLCBpcGgt PmlobCk7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRl LmMKaW5kZXggNjUyNjExMC4uZDM2MWRjMCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcm91dGUuYwor KysgYi9uZXQvaXB2NC9yb3V0ZS5jCkBAIC0xMzQ0LDQ2ICsxMzQ0LDUzIEBAIHZvaWQgcnRfYmlu ZF9wZWVyKHN0cnVjdCBydGFibGUgKnJ0LCBfX2JlMzIgZGFkZHIsIGludCBjcmVhdGUpCiAJCXJ0 LT5ydF9wZWVyX2dlbmlkID0gcnRfcGVlcl9nZW5pZCgpOwogfQogCi0vKgotICogUGVlciBhbGxv Y2F0aW9uIG1heSBmYWlsIG9ubHkgaW4gc2VyaW91cyBvdXQtb2YtbWVtb3J5IGNvbmRpdGlvbnMu ICBIb3dldmVyCi0gKiB3ZSBzdGlsbCBjYW4gZ2VuZXJhdGUgc29tZSBvdXRwdXQuCi0gKiBSYW5k b20gSUQgc2VsZWN0aW9uIGxvb2tzIGEgYml0IGRhbmdlcm91cyBiZWNhdXNlIHdlIGhhdmUgbm8g Y2hhbmNlcyB0bwotICogc2VsZWN0IElEIGJlaW5nIHVuaXF1ZSBpbiBhIHJlYXNvbmFibGUgcGVy aW9kIG9mIHRpbWUuCi0gKiBCdXQgYnJva2VuIHBhY2tldCBpZGVudGlmaWVyIG1heSBiZSBiZXR0 ZXIgdGhhbiBubyBwYWNrZXQgYXQgYWxsLgorI2RlZmluZSBJUF9JREVOVFNfU1ogMjA0OHUKK3N0 cnVjdCBpcF9pZGVudF9idWNrZXQgeworCWF0b21pY190CWlkOworCXUzMgkJc3RhbXAzMjsKK307 CisKK3N0YXRpYyBzdHJ1Y3QgaXBfaWRlbnRfYnVja2V0ICppcF9pZGVudHMgX19yZWFkX21vc3Rs eTsKKworLyogSW4gb3JkZXIgdG8gcHJvdGVjdCBwcml2YWN5LCB3ZSBhZGQgYSBwZXJ0dXJiYXRp b24gdG8gaWRlbnRpZmllcnMKKyAqIGlmIG9uZSBnZW5lcmF0b3IgaXMgc2VsZG9tIHVzZWQuIFRo aXMgbWFrZXMgaGFyZCBmb3IgYW4gYXR0YWNrZXIKKyAqIHRvIGluZmVyIGhvdyBtYW55IHBhY2tl dHMgd2VyZSBzZW50IGJldHdlZW4gdHdvIHBvaW50cyBpbiB0aW1lLgogICovCi1zdGF0aWMgdm9p ZCBpcF9zZWxlY3RfZmJfaWRlbnQoc3RydWN0IGlwaGRyICppcGgpCit1MzIgaXBfaWRlbnRzX3Jl c2VydmUodTMyIGhhc2gsIGludCBzZWdzKQogewotCXN0YXRpYyBERUZJTkVfU1BJTkxPQ0soaXBf ZmJfaWRfbG9jayk7Ci0Jc3RhdGljIHUzMiBpcF9mYWxsYmFja19pZDsKLQl1MzIgc2FsdDsKKwlz dHJ1Y3QgaXBfaWRlbnRfYnVja2V0ICpidWNrZXQgPSBpcF9pZGVudHMgKyBoYXNoICUgSVBfSURF TlRTX1NaOworCXUzMiBvbGQgPSBBQ0NFU1NfT05DRShidWNrZXQtPnN0YW1wMzIpOworCXUzMiBu b3cgPSAodTMyKWppZmZpZXM7CisJdTMyIGRlbHRhID0gMDsKKworCWlmIChvbGQgIT0gbm93ICYm IGNtcHhjaGcoJmJ1Y2tldC0+c3RhbXAzMiwgb2xkLCBub3cpID09IG9sZCkgeworCQl1NjQgeCA9 IHJhbmRvbTMyKCk7CisKKwkJeCAqPSAobm93IC0gb2xkKTsKKwkJZGVsdGEgPSAodTMyKSh4ID4+ IDMyKTsKKwl9CiAKLQlzcGluX2xvY2tfYmgoJmlwX2ZiX2lkX2xvY2spOwotCXNhbHQgPSBzZWN1 cmVfaXBfaWQoKF9fZm9yY2UgX19iZTMyKWlwX2ZhbGxiYWNrX2lkIF4gaXBoLT5kYWRkcik7Ci0J aXBoLT5pZCA9IGh0b25zKHNhbHQgJiAweEZGRkYpOwotCWlwX2ZhbGxiYWNrX2lkID0gc2FsdDsK LQlzcGluX3VubG9ja19iaCgmaXBfZmJfaWRfbG9jayk7CisJcmV0dXJuIGF0b21pY19hZGRfcmV0 dXJuKHNlZ3MgKyBkZWx0YSwgJmJ1Y2tldC0+aWQpIC0gc2VnczsKIH0KK0VYUE9SVF9TWU1CT0wo aXBfaWRlbnRzX3Jlc2VydmUpOwogCi12b2lkIF9faXBfc2VsZWN0X2lkZW50KHN0cnVjdCBpcGhk ciAqaXBoLCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIGludCBtb3JlKQordm9pZCBfX2lwX3NlbGVj dF9pZGVudChzdHJ1Y3QgaXBoZHIgKmlwaCwgaW50IHNlZ3MpCiB7Ci0Jc3RydWN0IHJ0YWJsZSAq cnQgPSAoc3RydWN0IHJ0YWJsZSAqKSBkc3Q7Ci0KLQlpZiAocnQgJiYgIShydC0+ZHN0LmZsYWdz ICYgRFNUX05PUEVFUikpIHsKLQkJaWYgKHJ0LT5wZWVyID09IE5VTEwpCi0JCQlydF9iaW5kX3Bl ZXIocnQsIHJ0LT5ydF9kc3QsIDEpOworCXN0YXRpYyB1MzIgaXBfaWRlbnRzX2hhc2hybmQgX19y ZWFkX21vc3RseTsKKwlzdGF0aWMgYm9vbCBoYXNocm5kX2luaXRpYWxpemVkID0gZmFsc2U7CisJ dTMyIGhhc2gsIGlkOwogCi0JCS8qIElmIHBlZXIgaXMgYXR0YWNoZWQgdG8gZGVzdGluYXRpb24s IGl0IGlzIG5ldmVyIGRldGFjaGVkLAotCQkgICBzbyB0aGF0IHdlIG5lZWQgbm90IHRvIGdyYWIg YSBsb2NrIHRvIGRlcmVmZXJlbmNlIGl0LgotCQkgKi8KLQkJaWYgKHJ0LT5wZWVyKSB7Ci0JCQlp cGgtPmlkID0gaHRvbnMoaW5ldF9nZXRpZChydC0+cGVlciwgbW9yZSkpOwotCQkJcmV0dXJuOwot CQl9Ci0JfSBlbHNlIGlmICghcnQpCi0JCXByaW50ayhLRVJOX0RFQlVHICJydF9iaW5kX3BlZXIo MCkgQCVwXG4iLAotCQkgICAgICAgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKKwlpZiAo dW5saWtlbHkoIWhhc2hybmRfaW5pdGlhbGl6ZWQpKSB7CisJCWhhc2hybmRfaW5pdGlhbGl6ZWQg PSB0cnVlOworCQlnZXRfcmFuZG9tX2J5dGVzKCZpcF9pZGVudHNfaGFzaHJuZCwgc2l6ZW9mKGlw X2lkZW50c19oYXNocm5kKSk7CisJfQogCi0JaXBfc2VsZWN0X2ZiX2lkZW50KGlwaCk7CisJaGFz aCA9IGpoYXNoXzN3b3JkcygoX19mb3JjZSB1MzIpaXBoLT5kYWRkciwKKwkJCSAgICAoX19mb3Jj ZSB1MzIpaXBoLT5zYWRkciwKKwkJCSAgICBpcGgtPnByb3RvY29sLAorCQkJICAgIGlwX2lkZW50 c19oYXNocm5kKTsKKwlpZCA9IGlwX2lkZW50c19yZXNlcnZlKGhhc2gsIHNlZ3MpOworCWlwaC0+ aWQgPSBodG9ucyhpZCk7CiB9CiBFWFBPUlRfU1lNQk9MKF9faXBfc2VsZWN0X2lkZW50KTsKIApA QCAtMzAyMyw3ICszMDMwLDYgQEAgc3RhdGljIGludCBydF9maWxsX2luZm8oc3RydWN0IG5ldCAq bmV0LAogCWVycm9yID0gcnQtPmRzdC5lcnJvcjsKIAlpZiAocGVlcikgewogCQlpbmV0X3BlZXJf cmVmY2hlY2socnQtPnBlZXIpOwotCQlpZCA9IGF0b21pY19yZWFkKCZwZWVyLT5pcF9pZF9jb3Vu dCkgJiAweGZmZmY7CiAJCWlmIChwZWVyLT50Y3BfdHNfc3RhbXApIHsKIAkJCXRzID0gcGVlci0+ dGNwX3RzOwogCQkJdHNhZ2UgPSBnZXRfc2Vjb25kcygpIC0gcGVlci0+dGNwX3RzX3N0YW1wOwpA QCAtMzQ1NSw2ICszNDYxLDEyIEBAIGludCBfX2luaXQgaXBfcnRfaW5pdCh2b2lkKQogewogCWlu dCByYyA9IDA7CiAKKwlpcF9pZGVudHMgPSBrbWFsbG9jKElQX0lERU5UU19TWiAqIHNpemVvZigq aXBfaWRlbnRzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFpcF9pZGVudHMpCisJCXBhbmljKCJJUDog ZmFpbGVkIHRvIGFsbG9jYXRlIGlwX2lkZW50c1xuIik7CisKKwlnZXRfcmFuZG9tX2J5dGVzKGlw X2lkZW50cywgSVBfSURFTlRTX1NaICogc2l6ZW9mKCppcF9pZGVudHMpKTsKKwogI2lmZGVmIENP TkZJR19JUF9ST1VURV9DTEFTU0lECiAJaXBfcnRfYWNjdCA9IF9fYWxsb2NfcGVyY3B1KDI1NiAq IHNpemVvZihzdHJ1Y3QgaXBfcnRfYWNjdCksIF9fYWxpZ25vZl9fKHN0cnVjdCBpcF9ydF9hY2N0 KSk7CiAJaWYgKCFpcF9ydF9hY2N0KQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX3ZlZ2FzLmMg Yi9uZXQvaXB2NC90Y3BfdmVnYXMuYwppbmRleCA4MGZhMmJmLi5jMDQyZTUyIDEwMDY0NAotLS0g YS9uZXQvaXB2NC90Y3BfdmVnYXMuYworKysgYi9uZXQvaXB2NC90Y3BfdmVnYXMuYwpAQCAtMjE4 LDcgKzIxOCw4IEBAIHN0YXRpYyB2b2lkIHRjcF92ZWdhc19jb25nX2F2b2lkKHN0cnVjdCBzb2Nr ICpzaywgdTMyIGFjaywgdTMyIGluX2ZsaWdodCkKIAkJCSAqIFRoaXMgaXM6CiAJCQkgKiAgICAg KGFjdHVhbCByYXRlIGluIHNlZ21lbnRzKSAqIGJhc2VSVFQKIAkJCSAqLwotCQkJdGFyZ2V0X2N3 bmQgPSB0cC0+c25kX2N3bmQgKiB2ZWdhcy0+YmFzZVJUVCAvIHJ0dDsKKwkJCXRhcmdldF9jd25k ID0gKHU2NCl0cC0+c25kX2N3bmQgKiB2ZWdhcy0+YmFzZVJUVDsKKwkJCWRvX2Rpdih0YXJnZXRf Y3duZCwgcnR0KTsKIAogCQkJLyogQ2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhl IHdpbmRvdyB3ZSBoYWQsCiAJCQkgKiBhbmQgdGhlIHdpbmRvdyB3ZSB3b3VsZCBsaWtlIHRvIGhh dmUuIFRoaXMgcXVhbnRpdHkKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF92ZW5vLmMgYi9uZXQv aXB2NC90Y3BfdmVuby5jCmluZGV4IGFjNDNjZDcuLmI0ZDE4NTggMTAwNjQ0Ci0tLSBhL25ldC9p cHY0L3RjcF92ZW5vLmMKKysrIGIvbmV0L2lwdjQvdGNwX3Zlbm8uYwpAQCAtMTQ0LDcgKzE0NCw3 IEBAIHN0YXRpYyB2b2lkIHRjcF92ZW5vX2NvbmdfYXZvaWQoc3RydWN0IHNvY2sgKnNrLCB1MzIg YWNrLCB1MzIgaW5fZmxpZ2h0KQogCiAJCXJ0dCA9IHZlbm8tPm1pbnJ0dDsKIAotCQl0YXJnZXRf Y3duZCA9ICh0cC0+c25kX2N3bmQgKiB2ZW5vLT5iYXNlcnR0KTsKKwkJdGFyZ2V0X2N3bmQgPSAo dTY0KXRwLT5zbmRfY3duZCAqIHZlbm8tPmJhc2VydHQ7CiAJCXRhcmdldF9jd25kIDw8PSBWX1BB UkFNX1NISUZUOwogCQlkb19kaXYodGFyZ2V0X2N3bmQsIHJ0dCk7CiAKZGlmZiAtLWdpdCBhL25l dC9pcHY0L3hmcm00X21vZGVfdHVubmVsLmMgYi9uZXQvaXB2NC94ZnJtNF9tb2RlX3R1bm5lbC5j CmluZGV4IDkzODU1M2UuLjU1MzFlYjIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3hmcm00X21vZGVf dHVubmVsLmMKKysrIGIvbmV0L2lwdjQveGZybTRfbW9kZV90dW5uZWwuYwpAQCAtNTQsMTIgKzU0 LDEyIEBAIHN0YXRpYyBpbnQgeGZybTRfbW9kZV90dW5uZWxfb3V0cHV0KHN0cnVjdCB4ZnJtX3N0 YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAJdG9wX2lwaC0+ZnJhZ19vZmYgPSAoZmxh Z3MgJiBYRlJNX1NUQVRFX05PUE1UVURJU0MpID8KIAkJMCA6IChYRlJNX01PREVfU0tCX0NCKHNr YiktPmZyYWdfb2ZmICYgaHRvbnMoSVBfREYpKTsKLQlpcF9zZWxlY3RfaWRlbnQoc2tiLCBkc3Qt PmNoaWxkLCBOVUxMKTsKIAogCXRvcF9pcGgtPnR0bCA9IGlwNF9kc3RfaG9wbGltaXQoZHN0LT5j aGlsZCk7CiAKIAl0b3BfaXBoLT5zYWRkciA9IHgtPnByb3BzLnNhZGRyLmE0OwogCXRvcF9pcGgt PmRhZGRyID0geC0+aWQuZGFkZHIuYTQ7CisJaXBfc2VsZWN0X2lkZW50KHNrYiwgTlVMTCk7CiAK IAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9vdXRwdXQuYyBiL25ldC9p cHY2L2lwNl9vdXRwdXQuYwppbmRleCAwNjRiNWM5Li40NmZjNmEzIDEwMDY0NAotLS0gYS9uZXQv aXB2Ni9pcDZfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCkBAIC02MDAsMjIg KzYwMCwxOSBAQCBpbnQgaXA2X2ZpbmRfMXN0ZnJhZ29wdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1 OCAqKm5leHRoZHIpCiAKIHZvaWQgaXB2Nl9zZWxlY3RfaWRlbnQoc3RydWN0IGZyYWdfaGRyICpm aGRyLCBzdHJ1Y3QgcnQ2X2luZm8gKnJ0KQogewotCXN0YXRpYyBhdG9taWNfdCBpcHY2X2ZyYWdt ZW50YXRpb25faWQ7Ci0JaW50IGlkZW50OworCXN0YXRpYyB1MzIgaXA2X2lkZW50c19oYXNocm5k IF9fcmVhZF9tb3N0bHk7CisJc3RhdGljIGJvb2wgaGFzaHJuZF9pbml0aWFsaXplZCA9IGZhbHNl OworCXUzMiBoYXNoLCBpZDsKIAotCWlmIChydCAmJiAhKHJ0LT5kc3QuZmxhZ3MgJiBEU1RfTk9Q RUVSKSkgewotCQlzdHJ1Y3QgaW5ldF9wZWVyICpwZWVyOwotCi0JCWlmICghcnQtPnJ0NmlfcGVl cikKLQkJCXJ0Nl9iaW5kX3BlZXIocnQsIDEpOwotCQlwZWVyID0gcnQtPnJ0NmlfcGVlcjsKLQkJ aWYgKHBlZXIpIHsKLQkJCWZoZHItPmlkZW50aWZpY2F0aW9uID0gaHRvbmwoaW5ldF9nZXRpZChw ZWVyLCAwKSk7Ci0JCQlyZXR1cm47Ci0JCX0KKwlpZiAodW5saWtlbHkoIWhhc2hybmRfaW5pdGlh bGl6ZWQpKSB7CisJCWhhc2hybmRfaW5pdGlhbGl6ZWQgPSB0cnVlOworCQlnZXRfcmFuZG9tX2J5 dGVzKCZpcDZfaWRlbnRzX2hhc2hybmQsIHNpemVvZihpcDZfaWRlbnRzX2hhc2hybmQpKTsKIAl9 Ci0JaWRlbnQgPSBhdG9taWNfaW5jX3JldHVybigmaXB2Nl9mcmFnbWVudGF0aW9uX2lkKTsKLQlm aGRyLT5pZGVudGlmaWNhdGlvbiA9IGh0b25sKGlkZW50KTsKKwloYXNoID0gX19pcHY2X2FkZHJf amhhc2goJnJ0LT5ydDZpX2RzdC5hZGRyLCBpcDZfaWRlbnRzX2hhc2hybmQpOworCWhhc2ggPSBf X2lwdjZfYWRkcl9qaGFzaCgmcnQtPnJ0Nmlfc3JjLmFkZHIsIGhhc2gpOworCisJaWQgPSBpcF9p ZGVudHNfcmVzZXJ2ZShoYXNoLCAxKTsKKwlmaGRyLT5pZGVudGlmaWNhdGlvbiA9IGh0b25sKGlk KTsKIH0KIAogaW50IGlwNl9mcmFnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgKCpvdXRw dXQpKHN0cnVjdCBza19idWZmICopKQpkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9pcHZzL2lw X3ZzX3htaXQuYyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c194bWl0LmMKaW5kZXggMzhjMDgx My4uY2M4ZjhiNCAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9pcHZzL2lwX3ZzX3htaXQuYwor KysgYi9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfeG1pdC5jCkBAIC04NTMsNyArODUzLDcgQEAg aXBfdnNfdHVubmVsX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGlwX3ZzX2Nvbm4g KmNwLAogCWlwaC0+ZGFkZHIJCT0JY3AtPmRhZGRyLmlwOwogCWlwaC0+c2FkZHIJCT0Jc2FkZHI7 CiAJaXBoLT50dGwJCT0Jb2xkX2lwaC0+dHRsOwotCWlwX3NlbGVjdF9pZGVudChza2IsICZydC0+ ZHN0LCBOVUxMKTsKKwlpcF9zZWxlY3RfaWRlbnQoc2tiLCBOVUxMKTsKIAogCS8qIEFub3RoZXIg aGFjazogYXZvaWQgaWNtcF9zZW5kIGluIGlwX2ZyYWdtZW50ICovCiAJc2tiLT5sb2NhbF9kZiA9 IDE7CmRpZmYgLS1naXQgYS9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfa2FwaS5jIGIvbmV0L25ldGxh YmVsL25ldGxhYmVsX2thcGkuYwppbmRleCA4MjRmMTg0Li5iY2VjYWUwIDEwMDY0NAotLS0gYS9u ZXQvbmV0bGFiZWwvbmV0bGFiZWxfa2FwaS5jCisrKyBiL25ldC9uZXRsYWJlbC9uZXRsYWJlbF9r YXBpLmMKQEAgLTUyMyw3ICs1MjMsNyBAQCBpbnQgbmV0bGJsX3NlY2F0dHJfY2F0bWFwX3dhbGtf cm5nKHN0cnVjdCBuZXRsYmxfbHNtX3NlY2F0dHJfY2F0bWFwICpjYXRtYXAsCiAKIC8qKgogICog bmV0bGJsX3NlY2F0dHJfY2F0bWFwX3NldGJpdCAtIFNldCBhIGJpdCBpbiBhIExTTSBzZWNhdHRy IGNhdG1hcAotICogQGNhdG1hcDogdGhlIGNhdGVnb3J5IGJpdG1hcAorICogQGNhdG1hcDogcG9p bnRlciB0byB0aGUgY2F0ZWdvcnkgYml0bWFwCiAgKiBAYml0OiB0aGUgYml0IHRvIHNldAogICog QGZsYWdzOiBtZW1vcnkgYWxsb2NhdGlvbiBmbGFncwogICoKQEAgLTUzMiwxOCArNTMyLDI1IEBA IGludCBuZXRsYmxfc2VjYXR0cl9jYXRtYXBfd2Fsa19ybmcoc3RydWN0IG5ldGxibF9sc21fc2Vj YXR0cl9jYXRtYXAgKmNhdG1hcCwKICAqIG5lZ2F0aXZlIHZhbHVlcyBvbiBmYWlsdXJlLgogICoK ICAqLwotaW50IG5ldGxibF9zZWNhdHRyX2NhdG1hcF9zZXRiaXQoc3RydWN0IG5ldGxibF9sc21f c2VjYXR0cl9jYXRtYXAgKmNhdG1hcCwKK2ludCBuZXRsYmxfc2VjYXR0cl9jYXRtYXBfc2V0Yml0 KHN0cnVjdCBuZXRsYmxfbHNtX3NlY2F0dHJfY2F0bWFwICoqY2F0bWFwLAogCQkJCSB1MzIgYml0 LAogCQkJCSBnZnBfdCBmbGFncykKIHsKLQlzdHJ1Y3QgbmV0bGJsX2xzbV9zZWNhdHRyX2NhdG1h cCAqaXRlciA9IGNhdG1hcDsKKwlzdHJ1Y3QgbmV0bGJsX2xzbV9zZWNhdHRyX2NhdG1hcCAqaXRl ciA9ICpjYXRtYXA7CiAJdTMyIG5vZGVfYml0OwogCXUzMiBub2RlX2lkeDsKIAogCXdoaWxlIChp dGVyLT5uZXh0ICE9IE5VTEwgJiYKIAkgICAgICAgYml0ID49IChpdGVyLT5zdGFydGJpdCArIE5F VExCTF9DQVRNQVBfU0laRSkpCiAJCWl0ZXIgPSBpdGVyLT5uZXh0OwotCWlmIChiaXQgPj0gKGl0 ZXItPnN0YXJ0Yml0ICsgTkVUTEJMX0NBVE1BUF9TSVpFKSkgeworCWlmIChiaXQgPCBpdGVyLT5z dGFydGJpdCkgeworCQlpdGVyID0gbmV0bGJsX3NlY2F0dHJfY2F0bWFwX2FsbG9jKGZsYWdzKTsK KwkJaWYgKGl0ZXIgPT0gTlVMTCkKKwkJCXJldHVybiAtRU5PTUVNOworCQlpdGVyLT5uZXh0ID0g KmNhdG1hcDsKKwkJaXRlci0+c3RhcnRiaXQgPSBiaXQgJiB+KE5FVExCTF9DQVRNQVBfU0laRSAt IDEpOworCQkqY2F0bWFwID0gaXRlcjsKKwl9IGVsc2UgaWYgKGJpdCA+PSAoaXRlci0+c3RhcnRi aXQgKyBORVRMQkxfQ0FUTUFQX1NJWkUpKSB7CiAJCWl0ZXItPm5leHQgPSBuZXRsYmxfc2VjYXR0 cl9jYXRtYXBfYWxsb2MoZmxhZ3MpOwogCQlpZiAoaXRlci0+bmV4dCA9PSBOVUxMKQogCQkJcmV0 dXJuIC1FTk9NRU07CkBAIC01NjEsNyArNTY4LDcgQEAgaW50IG5ldGxibF9zZWNhdHRyX2NhdG1h cF9zZXRiaXQoc3RydWN0IG5ldGxibF9sc21fc2VjYXR0cl9jYXRtYXAgKmNhdG1hcCwKIAogLyoq CiAgKiBuZXRsYmxfc2VjYXR0cl9jYXRtYXBfc2V0cm5nIC0gU2V0IGEgcmFuZ2Ugb2YgYml0cyBp biBhIExTTSBzZWNhdHRyIGNhdG1hcAotICogQGNhdG1hcDogdGhlIGNhdGVnb3J5IGJpdG1hcAor ICogQGNhdG1hcDogcG9pbnRlciB0byB0aGUgY2F0ZWdvcnkgYml0bWFwCiAgKiBAc3RhcnQ6IHRo ZSBzdGFydGluZyBiaXQKICAqIEBlbmQ6IHRoZSBsYXN0IGJpdCBpbiB0aGUgc3RyaW5nCiAgKiBA ZmxhZ3M6IG1lbW9yeSBhbGxvY2F0aW9uIGZsYWdzCkBAIC01NzEsMTUgKzU3OCwxNiBAQCBpbnQg bmV0bGJsX3NlY2F0dHJfY2F0bWFwX3NldGJpdChzdHJ1Y3QgbmV0bGJsX2xzbV9zZWNhdHRyX2Nh dG1hcCAqY2F0bWFwLAogICogb24gc3VjY2VzcywgbmVnYXRpdmUgdmFsdWVzIG9uIGZhaWx1cmUu CiAgKgogICovCi1pbnQgbmV0bGJsX3NlY2F0dHJfY2F0bWFwX3NldHJuZyhzdHJ1Y3QgbmV0bGJs X2xzbV9zZWNhdHRyX2NhdG1hcCAqY2F0bWFwLAoraW50IG5ldGxibF9zZWNhdHRyX2NhdG1hcF9z ZXRybmcoc3RydWN0IG5ldGxibF9sc21fc2VjYXR0cl9jYXRtYXAgKipjYXRtYXAsCiAJCQkJIHUz MiBzdGFydCwKIAkJCQkgdTMyIGVuZCwKIAkJCQkgZ2ZwX3QgZmxhZ3MpCiB7CiAJaW50IHJldF92 YWwgPSAwOwotCXN0cnVjdCBuZXRsYmxfbHNtX3NlY2F0dHJfY2F0bWFwICppdGVyID0gY2F0bWFw OworCXN0cnVjdCBuZXRsYmxfbHNtX3NlY2F0dHJfY2F0bWFwICppdGVyID0gKmNhdG1hcDsKIAl1 MzIgaXRlcl9tYXhfc3BvdDsKIAl1MzIgc3BvdDsKKwl1MzIgb3JpZ19zcG90ID0gaXRlci0+c3Rh cnRiaXQ7CiAKIAkvKiBYWFggLSBUaGlzIGNvdWxkIHByb2JhYmx5IGJlIG1hZGUgYSBiaXQgZmFz dGVyIGJ5IGNvbWJpbmluZyB3cml0ZXMKIAkgKiB0byB0aGUgY2F0bWFwIGluc3RlYWQgb2Ygc2V0 dGluZyBhIHNpbmdsZSBiaXQgZWFjaCB0aW1lLCBidXQgZm9yCkBAIC01OTcsNyArNjA1LDkgQEAg aW50IG5ldGxibF9zZWNhdHRyX2NhdG1hcF9zZXRybmcoc3RydWN0IG5ldGxibF9sc21fc2VjYXR0 cl9jYXRtYXAgKmNhdG1hcCwKIAkJCWl0ZXIgPSBpdGVyLT5uZXh0OwogCQkJaXRlcl9tYXhfc3Bv dCA9IGl0ZXItPnN0YXJ0Yml0ICsgTkVUTEJMX0NBVE1BUF9TSVpFOwogCQl9Ci0JCXJldF92YWwg PSBuZXRsYmxfc2VjYXR0cl9jYXRtYXBfc2V0Yml0KGl0ZXIsIHNwb3QsIEdGUF9BVE9NSUMpOwor CQlyZXRfdmFsID0gbmV0bGJsX3NlY2F0dHJfY2F0bWFwX3NldGJpdCgmaXRlciwgc3BvdCwgZmxh Z3MpOworCQlpZiAoaXRlci0+c3RhcnRiaXQgPCBvcmlnX3Nwb3QpCisJCQkqY2F0bWFwID0gaXRl cjsKIAl9CiAKIAlyZXR1cm4gcmV0X3ZhbDsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2Fzc29jaW9s YS5jIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmMKaW5kZXggMjViMjA3Yi4uZGE1NGQyOSAxMDA2NDQK LS0tIGEvbmV0L3NjdHAvYXNzb2Npb2xhLmMKKysrIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmMKQEAg LTExODgsNiArMTE4OCw3IEBAIHZvaWQgc2N0cF9hc3NvY191cGRhdGUoc3RydWN0IHNjdHBfYXNz b2NpYXRpb24gKmFzb2MsCiAJYXNvYy0+YyA9IG5ldy0+YzsKIAlhc29jLT5wZWVyLnJ3bmQgPSBu ZXctPnBlZXIucnduZDsKIAlhc29jLT5wZWVyLnNhY2tfbmVlZGVkID0gbmV3LT5wZWVyLnNhY2tf bmVlZGVkOworCWFzb2MtPnBlZXIuYXV0aF9jYXBhYmxlID0gbmV3LT5wZWVyLmF1dGhfY2FwYWJs ZTsKIAlhc29jLT5wZWVyLmkgPSBuZXctPnBlZXIuaTsKIAlzY3RwX3Rzbm1hcF9pbml0KCZhc29j LT5wZWVyLnRzbl9tYXAsIFNDVFBfVFNOX01BUF9JTklUSUFMLAogCQkJIGFzb2MtPnBlZXIuaS5p bml0aWFsX3RzbiwgR0ZQX0FUT01JQyk7CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9vdXRwdXQuYyBi L25ldC9zY3RwL291dHB1dC5jCmluZGV4IGNmM2UyMmMuLjViZDlhYTkgMTAwNjQ0Ci0tLSBhL25l dC9zY3RwL291dHB1dC5jCisrKyBiL25ldC9zY3RwL291dHB1dC5jCkBAIC01ODcsNyArNTg3LDcg QEAgb3V0OgogCXJldHVybiBlcnI7CiBub19yb3V0ZToKIAlrZnJlZV9za2IobnNrYik7Ci0JSVBf SU5DX1NUQVRTX0JIKCZpbml0X25ldCwgSVBTVEFUU19NSUJfT1VUTk9ST1VURVMpOworCUlQX0lO Q19TVEFUUygmaW5pdF9uZXQsIElQU1RBVFNfTUlCX09VVE5PUk9VVEVTKTsKIAogCS8qIEZJWE1F OiBSZXR1cm5pbmcgdGhlICdlcnInIHdpbGwgZWZmZWN0IGFsbCB0aGUgYXNzb2NpYXRpb25zCiAJ ICogYXNzb2NpYXRlZCB3aXRoIGEgc29ja2V0LCBhbHRob3VnaCBvbmx5IG9uZSBvZiB0aGUgcGF0 aHMgb2YgdGhlCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zbWFjay9zbWFja19sc20uYyBiL3NlY3Vy aXR5L3NtYWNrL3NtYWNrX2xzbS5jCmluZGV4IDdkYjYyYjQuLmUzYWRiNDkgMTAwNjQ0Ci0tLSBh L3NlY3VyaXR5L3NtYWNrL3NtYWNrX2xzbS5jCisrKyBiL3NlY3VyaXR5L3NtYWNrL3NtYWNrX2xz bS5jCkBAIC0xODQyLDcgKzE4NDIsNyBAQCBzdGF0aWMgdm9pZCBzbWFja19zZXRfY2F0c2V0KGNo YXIgKmNhdHNldCwgc3RydWN0IG5ldGxibF9sc21fc2VjYXR0ciAqc2FwKQogCQlmb3IgKG0gPSAw eDgwOyBtICE9IDA7IG0gPj49IDEsIGNhdCsrKSB7CiAJCQlpZiAoKG0gJiAqY3ApID09IDApCiAJ CQkJY29udGludWU7Ci0JCQlyYyA9IG5ldGxibF9zZWNhdHRyX2NhdG1hcF9zZXRiaXQoc2FwLT5h dHRyLm1scy5jYXQsCisJCQlyYyA9IG5ldGxibF9zZWNhdHRyX2NhdG1hcF9zZXRiaXQoJnNhcC0+ YXR0ci5tbHMuY2F0LAogCQkJCQkJCSAgY2F0LCBHRlBfQVRPTUlDKTsKIAkJfQogfQpkaWZmIC0t Z2l0IGEvc291bmQvcGNpL0tjb25maWcgYi9zb3VuZC9wY2kvS2NvbmZpZwppbmRleCBlNzI0NGFj Li5lMmU0ODI5IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvS2NvbmZpZworKysgYi9zb3VuZC9wY2kv S2NvbmZpZwpAQCAtODUyLDggKzg1Miw4IEBAIGNvbmZpZyBTTkRfVklSVFVPU08KIAlzZWxlY3Qg U05EX0pBQ0sgaWYgSU5QVVQ9eSB8fCBJTlBVVD1TTkQKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRv IGluY2x1ZGUgc3VwcG9ydCBmb3Igc291bmQgY2FyZHMgYmFzZWQgb24gdGhlCi0JICBBc3VzIEFW NjYvQVYxMDAvQVYyMDAgY2hpcHMsIGkuZS4sIFhvbmFyIEQxLCBEWCwgRDIsIEQyWCwgRFMsCi0J ICBFc3NlbmNlIFNUIChEZWx1eGUpLCBhbmQgRXNzZW5jZSBTVFguCisJICBBc3VzIEFWNjYvQVYx MDAvQVYyMDAgY2hpcHMsIGkuZS4sIFhvbmFyIEQxLCBEWCwgRDIsIEQyWCwgRFMsIERTWCwKKwkg IEVzc2VuY2UgU1QgKERlbHV4ZSksIGFuZCBFc3NlbmNlIFNUWCAoSUkpLgogCSAgU3VwcG9ydCBm b3IgdGhlIEhEQVYxLjMgKERlbHV4ZSkgYW5kIEhEQVYxLjMgU2xpbSBpcyBleHBlcmltZW50YWw7 CiAJICBmb3IgdGhlIFhlbnNlLCBtaXNzaW5nLgogCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRh L3BhdGNoX3JlYWx0ZWsuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jCmluZGV4IDQw MDE2OGUuLjQ5MWNkZjAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5j CisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jCkBAIC00MzYsNiArNDM2LDggQEAg c3RhdGljIHZvaWQgYWxjX2ZpeF9wbGwoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCiAJCQkgICAg c3BlYy0+cGxsX2NvZWZfaWR4KTsKIAl2YWwgPSBzbmRfaGRhX2NvZGVjX3JlYWQoY29kZWMsIHNw ZWMtPnBsbF9uaWQsIDAsCiAJCQkJIEFDX1ZFUkJfR0VUX1BST0NfQ09FRiwgMCk7CisJaWYgKHZh bCA9PSAtMSkKKwkJcmV0dXJuOwogCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIHNwZWMtPnBs bF9uaWQsIDAsIEFDX1ZFUkJfU0VUX0NPRUZfSU5ERVgsCiAJCQkgICAgc3BlYy0+cGxsX2NvZWZf aWR4KTsKIAlzbmRfaGRhX2NvZGVjX3dyaXRlKGNvZGVjLCBzcGVjLT5wbGxfbmlkLCAwLCBBQ19W RVJCX1NFVF9QUk9DX0NPRUYsCkBAIC00NzczLDYgKzQ3NzUsOCBAQCBzdGF0aWMgaW50IGFsYzI2 OV9wYXJzZV9hdXRvX2NvbmZpZyhzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykKIHN0YXRpYyB2b2lk IGFsYzI2OV90b2dnbGVfcG93ZXJfb3V0cHV0KHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLCBpbnQg cG93ZXJfdXApCiB7CiAJaW50IHZhbCA9IGFsY19yZWFkX2NvZWZfaWR4KGNvZGVjLCAweDA0KTsK KwlpZiAodmFsID09IC0xKQorCQlyZXR1cm47CiAJaWYgKHBvd2VyX3VwKQogCQl2YWwgfD0gMSA8 PCAxMTsKIAllbHNlCkBAIC01MTg0LDI3ICs1MTg4LDMwIEBAIHN0YXRpYyBpbnQgYWxjMjY5X2Zp bGxfY29lZihzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykKIAlpZiAoKGFsY19nZXRfY29lZjAoY29k ZWMpICYgMHgwMGZmKSA9PSAweDAxNykgewogCQl2YWwgPSBhbGNfcmVhZF9jb2VmX2lkeChjb2Rl YywgMHgwNCk7CiAJCS8qIFBvd2VyIHVwIG91dHB1dCBwaW4gKi8KLQkJYWxjX3dyaXRlX2NvZWZf aWR4KGNvZGVjLCAweDA0LCB2YWwgfCAoMTw8MTEpKTsKKwkJaWYgKHZhbCAhPSAtMSkKKwkJCWFs Y193cml0ZV9jb2VmX2lkeChjb2RlYywgMHgwNCwgdmFsIHwgKDE8PDExKSk7CiAJfQogCiAJaWYg KChhbGNfZ2V0X2NvZWYwKGNvZGVjKSAmIDB4MDBmZikgPT0gMHgwMTgpIHsKIAkJdmFsID0gYWxj X3JlYWRfY29lZl9pZHgoY29kZWMsIDB4ZCk7Ci0JCWlmICgodmFsICYgMHgwYzAwKSA+PiAxMCAh PSAweDEpIHsKKwkJaWYgKHZhbCAhPSAtMSAmJiAodmFsICYgMHgwYzAwKSA+PiAxMCAhPSAweDEp IHsKIAkJCS8qIENhcGxlc3MgcmFtcCB1cCBjbG9jayBjb250cm9sICovCiAJCQlhbGNfd3JpdGVf Y29lZl9pZHgoY29kZWMsIDB4ZCwgdmFsIHwgKDE8PDEwKSk7CiAJCX0KIAkJdmFsID0gYWxjX3Jl YWRfY29lZl9pZHgoY29kZWMsIDB4MTcpOwotCQlpZiAoKHZhbCAmIDB4MDFjMCkgPj4gNiAhPSAw eDQpIHsKKwkJaWYgKHZhbCAhPSAtMSAmJiAodmFsICYgMHgwMWMwKSA+PiA2ICE9IDB4NCkgewog CQkJLyogQ2xhc3MgRCBwb3dlciBvbiByZXNldCAqLwogCQkJYWxjX3dyaXRlX2NvZWZfaWR4KGNv ZGVjLCAweDE3LCB2YWwgfCAoMTw8NykpOwogCQl9CiAJfQogCiAJdmFsID0gYWxjX3JlYWRfY29l Zl9pZHgoY29kZWMsIDB4ZCk7IC8qIENsYXNzIEQgKi8KLQlhbGNfd3JpdGVfY29lZl9pZHgoY29k ZWMsIDB4ZCwgdmFsIHwgKDE8PDE0KSk7CisJaWYgKHZhbCAhPSAtMSkKKwkJYWxjX3dyaXRlX2Nv ZWZfaWR4KGNvZGVjLCAweGQsIHZhbCB8ICgxPDwxNCkpOwogCiAJdmFsID0gYWxjX3JlYWRfY29l Zl9pZHgoY29kZWMsIDB4NCk7IC8qIEhQICovCi0JYWxjX3dyaXRlX2NvZWZfaWR4KGNvZGVjLCAw eDQsIHZhbCB8ICgxPDwxMSkpOworCWlmICh2YWwgIT0gLTEpCisJCWFsY193cml0ZV9jb2VmX2lk eChjb2RlYywgMHg0LCB2YWwgfCAoMTw8MTEpKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0 IGEvc291bmQvcGNpL294eWdlbi92aXJ0dW9zby5jIGIvc291bmQvcGNpL294eWdlbi92aXJ0dW9z by5jCmluZGV4IDQxNDlhMGMuLjdlZGQ1ZTQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9veHlnZW4v dmlydHVvc28uYworKysgYi9zb3VuZC9wY2kvb3h5Z2VuL3ZpcnR1b3NvLmMKQEAgLTUyLDYgKzUy LDggQEAgc3RhdGljIERFRklORV9QQ0lfREVWSUNFX1RBQkxFKHhvbmFyX2lkcykgPSB7CiAJeyBP WFlHRU5fUENJX1NVQklEKDB4MTA0MywgMHg4MzVkKSB9LAogCXsgT1hZR0VOX1BDSV9TVUJJRCgw eDEwNDMsIDB4ODM1ZSkgfSwKIAl7IE9YWUdFTl9QQ0lfU1VCSUQoMHgxMDQzLCAweDgzOGUpIH0s CisJeyBPWFlHRU5fUENJX1NVQklEKDB4MTA0MywgMHg4NTIyKSB9LAorCXsgT1hZR0VOX1BDSV9T VUJJRCgweDEwNDMsIDB4ODVmNCkgfSwKIAl7IE9YWUdFTl9QQ0lfU1VCSURfQlJPS0VOX0VFUFJP TSB9LAogCXsgfQogfTsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9veHlnZW4veG9uYXJfcGNtMTc5 eC5jIGIvc291bmQvcGNpL294eWdlbi94b25hcl9wY20xNzl4LmMKaW5kZXggODQzM2FhNy4uNGNh YzA2YSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL294eWdlbi94b25hcl9wY20xNzl4LmMKKysrIGIv c291bmQvcGNpL294eWdlbi94b25hcl9wY20xNzl4LmMKQEAgLTEwMCw4ICsxMDAsOCBAQAogICov CiAKIC8qCi0gKiBYb25hciBFc3NlbmNlIFNUIChEZWx1eGUpL1NUWAotICogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqIFhvbmFyIEVzc2VuY2UgU1QgKERlbHV4ZSkvU1RYIChJSSkK KyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAgKiBDTUk4Nzg4Ogog ICoKQEAgLTExMzgsNiArMTEzOCwxNCBAQCBpbnQgX19kZXZpbml0IGdldF94b25hcl9wY20xNzl4 X21vZGVsKHN0cnVjdCBveHlnZW4gKmNoaXAsCiAJCWNoaXAtPm1vZGVsLnJlc3VtZSA9IHhvbmFy X3N0eF9yZXN1bWU7CiAJCWNoaXAtPm1vZGVsLnNldF9kYWNfcGFyYW1zID0gc2V0X3BjbTE3OTZf cGFyYW1zOwogCQlicmVhazsKKwljYXNlIDB4ODVmNDoKKwkJY2hpcC0+bW9kZWwgPSBtb2RlbF94 b25hcl9zdDsKKwkJLyogVE9ETzogZGF1Z2h0ZXJib2FyZCBzdXBwb3J0ICovCisJCWNoaXAtPm1v ZGVsLnNob3J0bmFtZSA9ICJYb25hciBTVFggSUkiOworCQljaGlwLT5tb2RlbC5pbml0ID0geG9u YXJfc3R4X2luaXQ7CisJCWNoaXAtPm1vZGVsLnJlc3VtZSA9IHhvbmFyX3N0eF9yZXN1bWU7CisJ CWNoaXAtPm1vZGVsLnNldF9kYWNfcGFyYW1zID0gc2V0X3BjbTE3OTZfcGFyYW1zOworCQlicmVh azsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CmRpZmYgLS1naXQgYS9zb3VuZC9w Y2kvb3h5Z2VuL3hvbmFyX3dtODd4Ni5jIGIvc291bmQvcGNpL294eWdlbi94b25hcl93bTg3eDYu YwppbmRleCA5MTU1NDZhLi4zMDQ5NWI4IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvb3h5Z2VuL3hv bmFyX3dtODd4Ni5jCisrKyBiL3NvdW5kL3BjaS9veHlnZW4veG9uYXJfd204N3g2LmMKQEAgLTEy NTUsNyArMTI1NSw2IEBAIHN0YXRpYyB2b2lkIGR1bXBfd204N3g2X3JlZ2lzdGVycyhzdHJ1Y3Qg b3h5Z2VuICpjaGlwLAogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG94eWdlbl9tb2RlbCBtb2Rl bF94b25hcl9kcyA9IHsKLQkuc2hvcnRuYW1lID0gIlhvbmFyIERTIiwKIAkubG9uZ25hbWUgPSAi QXN1cyBWaXJ0dW9zbyA2NiIsCiAJLmNoaXAgPSAiQVYyMDAiLAogCS5pbml0ID0geG9uYXJfZHNf aW5pdCwKQEAgLTEzMjUsNiArMTMyNCwxMSBAQCBpbnQgX19kZXZpbml0IGdldF94b25hcl93bTg3 eDZfbW9kZWwoc3RydWN0IG94eWdlbiAqY2hpcCwKIAlzd2l0Y2ggKGlkLT5zdWJkZXZpY2UpIHsK IAljYXNlIDB4ODM4ZToKIAkJY2hpcC0+bW9kZWwgPSBtb2RlbF94b25hcl9kczsKKwkJY2hpcC0+ bW9kZWwuc2hvcnRuYW1lID0gIlhvbmFyIERTIjsKKwkJYnJlYWs7CisJY2FzZSAweDg1MjI6CisJ CWNoaXAtPm1vZGVsID0gbW9kZWxfeG9uYXJfZHM7CisJCWNoaXAtPm1vZGVsLnNob3J0bmFtZSA9 ICJYb25hciBEU1giOwogCQlicmVhazsKIAljYXNlIDB4ODM1ZToKIAkJY2hpcC0+bW9kZWwgPSBt b2RlbF94b25hcl9oZGF2X3NsaW07CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3B4YS1zc3Au YyBiL3NvdW5kL3NvYy9weGEvcHhhLXNzcC5jCmluZGV4IGI1ODNlNjAuLjcyODg2ZTMgMTAwNjQ0 Ci0tLSBhL3NvdW5kL3NvYy9weGEvcHhhLXNzcC5jCisrKyBiL3NvdW5kL3NvYy9weGEvcHhhLXNz cC5jCkBAIC03NzgsOSArNzc4LDcgQEAgc3RhdGljIGludCBweGFfc3NwX3JlbW92ZShzdHJ1Y3Qg c25kX3NvY19kYWkgKmRhaSkKIAkJCSAgU05EUlZfUENNX1JBVEVfNDQxMDAgfCBTTkRSVl9QQ01f UkFURV80ODAwMCB8CVwKIAkJCSAgU05EUlZfUENNX1JBVEVfODgyMDAgfCBTTkRSVl9QQ01fUkFU RV85NjAwMCkKIAotI2RlZmluZSBQWEFfU1NQX0ZPUk1BVFMgKFNORFJWX1BDTV9GTVRCSVRfUzE2 X0xFIHxcCi0JCQkgICAgU05EUlZfUENNX0ZNVEJJVF9TMjRfTEUgfAlcCi0JCQkgICAgU05EUlZf UENNX0ZNVEJJVF9TMzJfTEUpCisjZGVmaW5lIFBYQV9TU1BfRk9STUFUUyAoU05EUlZfUENNX0ZN VEJJVF9TMTZfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MzMl9MRSkKIAogc3RhdGljIHN0cnVjdCBz bmRfc29jX2RhaV9vcHMgcHhhX3NzcF9kYWlfb3BzID0gewogCS5zdGFydHVwCT0gcHhhX3NzcF9z dGFydHVwLApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3NhbXN1bmcvaTJzLmMgYi9zb3VuZC9zb2Mv c2Ftc3VuZy9pMnMuYwppbmRleCBiZmY0MmJmLi5hZDIyYmQ5IDEwMDY0NAotLS0gYS9zb3VuZC9z b2Mvc2Ftc3VuZy9pMnMuYworKysgYi9zb3VuZC9zb2Mvc2Ftc3VuZy9pMnMuYwpAQCAtODI0LDEx ICs4MjQsOSBAQCBzdGF0aWMgaW50IGkyc19zdXNwZW5kKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFp KQogewogCXN0cnVjdCBpMnNfZGFpICppMnMgPSB0b19pbmZvKGRhaSk7CiAKLQlpZiAoZGFpLT5h Y3RpdmUpIHsKLQkJaTJzLT5zdXNwZW5kX2kyc21vZCA9IHJlYWRsKGkycy0+YWRkciArIEkyU01P RCk7Ci0JCWkycy0+c3VzcGVuZF9pMnNjb24gPSByZWFkbChpMnMtPmFkZHIgKyBJMlNDT04pOwot CQlpMnMtPnN1c3BlbmRfaTJzcHNyID0gcmVhZGwoaTJzLT5hZGRyICsgSTJTUFNSKTsKLQl9CisJ aTJzLT5zdXNwZW5kX2kyc21vZCA9IHJlYWRsKGkycy0+YWRkciArIEkyU01PRCk7CisJaTJzLT5z dXNwZW5kX2kyc2NvbiA9IHJlYWRsKGkycy0+YWRkciArIEkyU0NPTik7CisJaTJzLT5zdXNwZW5k X2kyc3BzciA9IHJlYWRsKGkycy0+YWRkciArIEkyU1BTUik7CiAKIAlyZXR1cm4gMDsKIH0KQEAg LTgzNywxMSArODM1LDkgQEAgc3RhdGljIGludCBpMnNfcmVzdW1lKHN0cnVjdCBzbmRfc29jX2Rh aSAqZGFpKQogewogCXN0cnVjdCBpMnNfZGFpICppMnMgPSB0b19pbmZvKGRhaSk7CiAKLQlpZiAo ZGFpLT5hY3RpdmUpIHsKLQkJd3JpdGVsKGkycy0+c3VzcGVuZF9pMnNjb24sIGkycy0+YWRkciAr IEkyU0NPTik7Ci0JCXdyaXRlbChpMnMtPnN1c3BlbmRfaTJzbW9kLCBpMnMtPmFkZHIgKyBJMlNN T0QpOwotCQl3cml0ZWwoaTJzLT5zdXNwZW5kX2kyc3BzciwgaTJzLT5hZGRyICsgSTJTUFNSKTsK LQl9CisJd3JpdGVsKGkycy0+c3VzcGVuZF9pMnNjb24sIGkycy0+YWRkciArIEkyU0NPTik7CisJ d3JpdGVsKGkycy0+c3VzcGVuZF9pMnNtb2QsIGkycy0+YWRkciArIEkyU01PRCk7CisJd3JpdGVs KGkycy0+c3VzcGVuZF9pMnNwc3IsIGkycy0+YWRkciArIEkyU1BTUik7CiAKIAlyZXR1cm4gMDsK IH0KZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2lvbW11LmMgYi92aXJ0L2t2bS9pb21tdS5jCmluZGV4 IDVkYmIzNWQuLmM5NDY3MDAgMTAwNjQ0Ci0tLSBhL3ZpcnQva3ZtL2lvbW11LmMKKysrIGIvdmly dC9rdm0vaW9tbXUuYwpAQCAtNjEsNiArNjEsMTQgQEAgc3RhdGljIHBmbl90IGt2bV9waW5fcGFn ZXMoc3RydWN0IGt2bSAqa3ZtLCBzdHJ1Y3Qga3ZtX21lbW9yeV9zbG90ICpzbG90LAogCXJldHVy biBwZm47CiB9CiAKK3N0YXRpYyB2b2lkIGt2bV91bnBpbl9wYWdlcyhzdHJ1Y3Qga3ZtICprdm0s IHBmbl90IHBmbiwgdW5zaWduZWQgbG9uZyBucGFnZXMpCit7CisJdW5zaWduZWQgbG9uZyBpOwor CisJZm9yIChpID0gMDsgaSA8IG5wYWdlczsgKytpKQorCQlrdm1fcmVsZWFzZV9wZm5fY2xlYW4o cGZuICsgaSk7Cit9CisKIGludCBrdm1faW9tbXVfbWFwX3BhZ2VzKHN0cnVjdCBrdm0gKmt2bSwg c3RydWN0IGt2bV9tZW1vcnlfc2xvdCAqc2xvdCkKIHsKIAlnZm5fdCBnZm4sIGVuZF9nZm47CkBA IC0xMjEsNiArMTI5LDcgQEAgaW50IGt2bV9pb21tdV9tYXBfcGFnZXMoc3RydWN0IGt2bSAqa3Zt LCBzdHJ1Y3Qga3ZtX21lbW9yeV9zbG90ICpzbG90KQogCQlpZiAocikgewogCQkJcHJpbnRrKEtF Uk5fRVJSICJrdm1faW9tbXVfbWFwX2FkZHJlc3M6IgogCQkJICAgICAgICJpb21tdSBmYWlsZWQg dG8gbWFwIHBmbj0lbGx4XG4iLCBwZm4pOworCQkJa3ZtX3VucGluX3BhZ2VzKGt2bSwgcGZuLCBw YWdlX3NpemUpOwogCQkJZ290byB1bm1hcF9wYWdlczsKIAkJfQogCkBAIC0xMzIsNyArMTQxLDcg QEAgaW50IGt2bV9pb21tdV9tYXBfcGFnZXMoc3RydWN0IGt2bSAqa3ZtLCBzdHJ1Y3Qga3ZtX21l bW9yeV9zbG90ICpzbG90KQogCXJldHVybiAwOwogCiB1bm1hcF9wYWdlczoKLQlrdm1faW9tbXVf cHV0X3BhZ2VzKGt2bSwgc2xvdC0+YmFzZV9nZm4sIGdmbik7CisJa3ZtX2lvbW11X3B1dF9wYWdl cyhrdm0sIHNsb3QtPmJhc2VfZ2ZuLCBnZm4gLSBzbG90LT5iYXNlX2dmbik7CiAJcmV0dXJuIHI7 CiB9CiAKQEAgLTI3MywxNCArMjgyLDYgQEAgb3V0X3VubG9jazoKIAlyZXR1cm4gcjsKIH0KIAot c3RhdGljIHZvaWQga3ZtX3VucGluX3BhZ2VzKHN0cnVjdCBrdm0gKmt2bSwgcGZuX3QgcGZuLCB1 bnNpZ25lZCBsb25nIG5wYWdlcykKLXsKLQl1bnNpZ25lZCBsb25nIGk7Ci0KLQlmb3IgKGkgPSAw OyBpIDwgbnBhZ2VzOyArK2kpCi0JCWt2bV9yZWxlYXNlX3Bmbl9jbGVhbihwZm4gKyBpKTsKLX0K LQogc3RhdGljIHZvaWQga3ZtX2lvbW11X3B1dF9wYWdlcyhzdHJ1Y3Qga3ZtICprdm0sCiAJCQkJ Z2ZuX3QgYmFzZV9nZm4sIHVuc2lnbmVkIGxvbmcgbnBhZ2VzKQogewo= --=-biTzsaaiy75nCHg399Be-- --=-5qsWtPch4YNXG5ff4zL7 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIVAwUAVBIsjOe/yOyVhhEJAQryNBAAiXE+NpNHmSbu6V8vNeV5dGPhNt4nSlYH Lebn6Tnu5aBO0o/Y7tOQ4mvKmGUfxaLBmKFUIV4lGuXWxep4fbjYsTIXfA4GaVqf 0r7M0w3FD0fQLuWUgnUBQwRv/2D9mnzj45zIiemgRIw2WkTezHjU9V5wulcQ+J7Y dgFvN8LmKqUW8QtoWeKA6p7MmbqeIGg7qOiyg9zu72yCzdF4XTa5OgtgRr/4PLVh sON7Wf3m5Aw5+IMOoL1vYgi/lcQNjpJvqr8zoZXeKYB18VypVY+xa5msZOzlBMnM u58alNDz1xCYbvQfyH8k5nTkQymHpuAiIJQ1LcDDii9s6+9AJqKYJ76u+bEjioDw MV/nZ56xAyNgzObSq92RkVyxE6S8pv1d/cUM5A/+Of50SAxFkebDnqSisP1aoDvC dbEERyCLpjqPWMasW8eGxnNaCu6XsYgcaR6BiHiq10qee/rpt0R0TqLIsYbJXTun pY1xPOdC8YaiJyXyPXfGIZkz7FrLM1rfL456C7D6oXYBUXjkpNrlv5WfWzuoOdKQ ESrsaxSMNzye9blG0rDpORYWic2Rr2JVMc79B8cK82T7kbCQNrVirfDPk43wGtao XDJL6x9dX34po/ByD7HVBL6o/FlRvEni8bKnYSV+V5mt9jucs7WmrxqQ8yR5RrRU 2u7KK8HTYh4= =m3Ji -----END PGP SIGNATURE----- --=-5qsWtPch4YNXG5ff4zL7--