From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754306AbbJIBRm (ORCPT ); Thu, 8 Oct 2015 21:17:42 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:36056 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751831AbbJIBRe (ORCPT ); Thu, 8 Oct 2015 21:17:34 -0400 Message-ID: <1444353438.2956.280.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 000/107] 3.2.72-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: torvalds@linux-foundation.org, Guenter Roeck , Phil Jensen , akpm@linux-foundation.org Date: Fri, 09 Oct 2015 02:17:18 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-K/mwjj3tkTDIRBUk6VzK" X-Mailer: Evolution 3.16.5-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.247 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 --=-K/mwjj3tkTDIRBUk6VzK Content-Type: multipart/mixed; boundary="=-EykB8YwUdizgYAH3uVRi" --=-EykB8YwUdizgYAH3uVRi Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined diff for 3.2.72-rc1 relative to 3.2.71. Ben. --=20 Ben Hutchings If the facts do not conform to your theory, they must be disposed of. --=-EykB8YwUdizgYAH3uVRi Content-Disposition: attachment; filename="linux-3.2.72-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.72-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggOWQ1ZmVhNy4uZWJiNTk3ZiAx MDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTEsNyArMSw3IEBACiBWRVJT SU9OID0gMwogUEFUQ0hMRVZFTCA9IDIKLVNVQkxFVkVMID0gNzEKLUVYVFJBVkVSU0lPTiA9CitT VUJMRVZFTCA9IDcyCitFWFRSQVZFUlNJT04gPSAtcmMxCiBOQU1FID0gU2FiZXItdG9vdGhlZCBT cXVpcnJlbAogCiAjICpET0NVTUVOVEFUSU9OKgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vTWFrZWZp bGUgYi9hcmNoL2FybS9NYWtlZmlsZQppbmRleCAzNjJjN2NhLi40YTkzMzc0IDEwMDY0NAotLS0g YS9hcmNoL2FybS9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9NYWtlZmlsZQpAQCAtNTMsNiArNTMs MTQgQEAgZW5kaWYKIAogY29tbWEgPSAsCiAKKyMKKyMgVGhlIFNjYWxhciBSZXBsYWNlbWVudCBv ZiBBZ2dyZWdhdGVzIChTUkEpIG9wdGltaXphdGlvbiBwYXNzIGluIEdDQyA0LjkgYW5kCisjIGxh dGVyIG1heSByZXN1bHQgaW4gY29kZSBiZWluZyBnZW5lcmF0ZWQgdGhhdCBoYW5kbGVzIHNpZ25l ZCBzaG9ydCBhbmQgc2lnbmVkCisjIGNoYXIgc3RydWN0IG1lbWJlcnMgaW5jb3JyZWN0bHkuIFNv IGRpc2FibGUgaXQuCisjIChodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNn aT9pZD02NTkzMikKKyMKK0tCVUlMRF9DRkxBR1MJKz0gJChjYWxsIGNjLW9wdGlvbiwtZm5vLWlw YS1zcmEpCisKICMgVGhpcyBzZWxlY3RzIHdoaWNoIGluc3RydWN0aW9uIHNldCBpcyB1c2VkLgog IyBOb3RlIHRoYXQgR0NDIGRvZXMgbm90IG51bWVyaWNhbGx5IGRlZmluZSBhbiBhcmNoaXRlY3R1 cmUgdmVyc2lvbgogIyBtYWNybywgYnV0IGluc3RlYWQgZGVmaW5lcyBhIHdob2xlIHNlcmllcyBv ZiBtYWNyb3Mgd2hpY2ggbWFrZXMKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9zaWduYWwu YyBiL2FyY2gvYXJtL2tlcm5lbC9zaWduYWwuYwppbmRleCA5ZTYxN2JkLi5jMWQ5Yzc3IDEwMDY0 NAotLS0gYS9hcmNoL2FybS9rZXJuZWwvc2lnbmFsLmMKKysrIGIvYXJjaC9hcm0va2VybmVsL3Np Z25hbC5jCkBAIC00ODYsMTIgKzQ4NiwyMyBAQCBzZXR1cF9yZXR1cm4oc3RydWN0IHB0X3JlZ3Mg KnJlZ3MsIHN0cnVjdCBrX3NpZ2FjdGlvbiAqa2EsCiAJCSAqLwogCQl0aHVtYiA9IGhhbmRsZXIg JiAxOwogCisjaWYgX19MSU5VWF9BUk1fQVJDSF9fID49IDYKKwkJLyoKKwkJICogQ2xlYXIgdGhl IElmLVRoZW4gVGh1bWItMiBleGVjdXRpb24gc3RhdGUuICBBUk0gc3BlYworCQkgKiByZXF1aXJl cyB0aGlzIHRvIGJlIGFsbCAwMDBzIGluIEFSTSBtb2RlLiAgU25hcGRyYWdvbgorCQkgKiBTNC9L cmFpdCBtaXNiZWhhdmVzIG9uIGEgVGh1bWI9PkFSTSBzaWduYWwgdHJhbnNpdGlvbgorCQkgKiB3 aXRob3V0IHRoaXMuCisJCSAqCisJCSAqIFdlIG11c3QgZG8gdGhpcyB3aGVuZXZlciB3ZSBhcmUg cnVubmluZyBvbiBhIFRodW1iLTIKKwkJICogY2FwYWJsZSBDUFUsIHdoaWNoIGluY2x1ZGVzIEFS TXY2VDIuICBIb3dldmVyLCB3ZSBlbGVjdAorCQkgKiB0byBkbyB0aGlzIHdoZW5ldmVyIHdlJ3Jl IG9uIGFuIEFSTXY2IG9yIGxhdGVyIENQVSBmb3IKKwkJICogc2ltcGxpY2l0eS4KKwkJICovCisJ CWNwc3IgJj0gflBTUl9JVF9NQVNLOworI2VuZGlmCisKIAkJaWYgKHRodW1iKSB7CiAJCQljcHNy IHw9IFBTUl9UX0JJVDsKLSNpZiBfX0xJTlVYX0FSTV9BUkNIX18gPj0gNwotCQkJLyogY2xlYXIg dGhlIElmLVRoZW4gVGh1bWItMiBleGVjdXRpb24gc3RhdGUgKi8KLQkJCWNwc3IgJj0gflBTUl9J VF9NQVNLOwotI2VuZGlmCiAJCX0gZWxzZQogCQkJY3BzciAmPSB+UFNSX1RfQklUOwogCX0KZGlm ZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggYi9hcmNoL21pcHMvaW5j bHVkZS9hc20vcGd0YWJsZS5oCmluZGV4IGIyMjAyYTYuLjk1YmNlZGIgMTAwNjQ0Ci0tLSBhL2Fy Y2gvbWlwcy9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNt L3BndGFibGUuaApAQCAtMTUzLDggKzE1MywzOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3B0 ZShwdGVfdCAqcHRlcCwgcHRlX3QgcHRldmFsKQogCQkgKiBNYWtlIHN1cmUgdGhlIGJ1ZGR5IGlz IGdsb2JhbCB0b28gKGlmIGl0J3MgIW5vbmUsCiAJCSAqIGl0IGJldHRlciBhbHJlYWR5IGJlIGds b2JhbCkKIAkJICovCisjaWZkZWYgQ09ORklHX1NNUAorCQkvKgorCQkgKiBGb3IgU01QLCBtdWx0 aXBsZSBDUFVzIGNhbiByYWNlLCBzbyB3ZSBuZWVkIHRvIGRvCisJCSAqIHRoaXMgYXRvbWljYWxs eS4KKwkJICovCisjaWZkZWYgQ09ORklHXzY0QklUCisjZGVmaW5lIExMX0lOU04gImxsZCIKKyNk ZWZpbmUgU0NfSU5TTiAic2NkIgorI2Vsc2UgLyogQ09ORklHXzMyQklUICovCisjZGVmaW5lIExM X0lOU04gImxsIgorI2RlZmluZSBTQ19JTlNOICJzYyIKKyNlbmRpZgorCQl1bnNpZ25lZCBsb25n IHBhZ2VfZ2xvYmFsID0gX1BBR0VfR0xPQkFMOworCQl1bnNpZ25lZCBsb25nIHRtcDsKKworCQlf X2FzbV9fIF9fdm9sYXRpbGVfXyAoCisJCQkiCS5zZXQJcHVzaFxuIgorCQkJIgkuc2V0CW5vcmVv cmRlclxuIgorCQkJIjE6CSIgTExfSU5TTiAiCSVbdG1wXSwgJVtidWRkeV1cbiIKKwkJCSIJYm5l egklW3RtcF0sIDJmXG4iCisJCQkiCSBvcgklW3RtcF0sICVbdG1wXSwgJVtnbG9iYWxdXG4iCisJ CQkiCSIgU0NfSU5TTiAiCSVbdG1wXSwgJVtidWRkeV1cbiIKKwkJCSIJYmVxegklW3RtcF0sIDFi XG4iCisJCQkiCSBub3BcbiIKKwkJCSIyOlxuIgorCQkJIgkuc2V0IHBvcCIKKwkJCTogW2J1ZGR5 XSAiK20iIChidWRkeS0+cHRlKSwKKwkJCSAgW3RtcF0gIj0mciIgKHRtcCkKKwkJCTogW2dsb2Jh bF0gInIiIChwYWdlX2dsb2JhbCkpOworI2Vsc2UgLyogIUNPTkZJR19TTVAgKi8KIAkJaWYgKHB0 ZV9ub25lKCpidWRkeSkpCiAJCQlwdGVfdmFsKCpidWRkeSkgPSBwdGVfdmFsKCpidWRkeSkgfCBf UEFHRV9HTE9CQUw7CisjZW5kaWYgLyogQ09ORklHX1NNUCAqLwogCX0KICNlbmRpZgogfQpkaWZm IC0tZ2l0IGEvYXJjaC9taXBzL2tlcm5lbC9taXBzLW10LWZwYWZmLmMgYi9hcmNoL21pcHMva2Vy bmVsL21pcHMtbXQtZnBhZmYuYwppbmRleCA4MDJlNjE2Li5jN2UyNjg0IDEwMDY0NAotLS0gYS9h cmNoL21pcHMva2VybmVsL21pcHMtbXQtZnBhZmYuYworKysgYi9hcmNoL21pcHMva2VybmVsL21p cHMtbXQtZnBhZmYuYwpAQCAtMTU0LDcgKzE1NCw3IEBAIGFzbWxpbmthZ2UgbG9uZyBtaXBzbXRf c3lzX3NjaGVkX2dldGFmZmluaXR5KHBpZF90IHBpZCwgdW5zaWduZWQgaW50IGxlbiwKIAkJCQkg ICAgICB1bnNpZ25lZCBsb25nIF9fdXNlciAqdXNlcl9tYXNrX3B0cikKIHsKIAl1bnNpZ25lZCBp bnQgcmVhbF9sZW47Ci0JY3B1bWFza190IG1hc2s7CisJY3B1bWFza190IGFsbG93ZWQsIG1hc2s7 CiAJaW50IHJldHZhbDsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnA7CiAKQEAgLTE3Myw3ICsxNzMs OCBAQCBhc21saW5rYWdlIGxvbmcgbWlwc210X3N5c19zY2hlZF9nZXRhZmZpbml0eShwaWRfdCBw aWQsIHVuc2lnbmVkIGludCBsZW4sCiAJaWYgKHJldHZhbCkKIAkJZ290byBvdXRfdW5sb2NrOwog Ci0JY3B1c19hbmQobWFzaywgcC0+dGhyZWFkLnVzZXJfY3B1c19hbGxvd2VkLCBjcHVfcG9zc2li bGVfbWFwKTsKKwljcHVtYXNrX29yKCZhbGxvd2VkLCAmcC0+dGhyZWFkLnVzZXJfY3B1c19hbGxv d2VkLCAmcC0+Y3B1c19hbGxvd2VkKTsKKwljcHVtYXNrX2FuZCgmbWFzaywgJmFsbG93ZWQsIGNw dV9hY3RpdmVfbWFzayk7CiAKIG91dF91bmxvY2s6CiAJcmVhZF91bmxvY2soJnRhc2tsaXN0X2xv Y2spOwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL2lycS5jIGIvYXJjaC9wYXJpc2Mv a2VybmVsL2lycS5jCmluZGV4IGMwYjFhZmYuLjg4OTM0YjMgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFy aXNjL2tlcm5lbC9pcnEuYworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvaXJxLmMKQEAgLTMzNiw4 ICszMzYsOCBAQCB2b2lkIGRvX2NwdV9pcnFfbWFzayhzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAlz dHJ1Y3QgcHRfcmVncyAqb2xkX3JlZ3M7CiAJdW5zaWduZWQgbG9uZyBlaXJyX3ZhbDsKIAlpbnQg aXJxLCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0jaWZkZWYgQ09ORklHX1NNUAogCXN0cnVj dCBpcnFfZGVzYyAqZGVzYzsKKyNpZmRlZiBDT05GSUdfU01QCiAJY3B1bWFza190IGRlc3Q7CiAj ZW5kaWYKIApAQCAtMzUwLDggKzM1MCwxMiBAQCB2b2lkIGRvX2NwdV9pcnFfbWFzayhzdHJ1Y3Qg cHRfcmVncyAqcmVncykKIAkJZ290byBzZXRfb3V0OwogCWlycSA9IGVpcnJfdG9faXJxKGVpcnJf dmFsKTsKIAotI2lmZGVmIENPTkZJR19TTVAKKwkvKiBGaWx0ZXIgb3V0IHNwdXJpb3VzIGludGVy cnVwdHMsIG1vc3RseSBmcm9tIHNlcmlhbCBwb3J0IGF0IGJvb3R1cCAqLwogCWRlc2MgPSBpcnFf dG9fZGVzYyhpcnEpOworCWlmICh1bmxpa2VseSghZGVzYy0+YWN0aW9uKSkKKwkJZ290byBzZXRf b3V0OworCisjaWZkZWYgQ09ORklHX1NNUAogCWNwdW1hc2tfY29weSgmZGVzdCwgZGVzYy0+aXJx X2RhdGEuYWZmaW5pdHkpOwogCWlmIChpcnFkX2lzX3Blcl9jcHUoJmRlc2MtPmlycV9kYXRhKSAm JgogCSAgICAhY3B1X2lzc2V0KHNtcF9wcm9jZXNzb3JfaWQoKSwgZGVzdCkpIHsKZGlmZiAtLWdp dCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wY2kuYyBiL2FyY2gvcG93ZXJwYy9w bGF0Zm9ybXMvcG93ZXJudi9wY2kuYwppbmRleCA4NWJiNjZkLi4xNWEwNWNhIDEwMDY0NAotLS0g YS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvcGNpLmMKKysrIGIvYXJjaC9wb3dlcnBj L3BsYXRmb3Jtcy9wb3dlcm52L3BjaS5jCkBAIC0xMzAsNiArMTMwLDcgQEAgc3RhdGljIHZvaWQg cG52X3RlYXJkb3duX21zaV9pcnFzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCXN0cnVjdCBwY2lf Y29udHJvbGxlciAqaG9zZSA9IHBjaV9idXNfdG9faG9zdChwZGV2LT5idXMpOwogCXN0cnVjdCBw bnZfcGhiICpwaGIgPSBob3NlLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IG1zaV9kZXNjICplbnRy eTsKKwlpcnFfaHdfbnVtYmVyX3QgaHdpcnE7CiAKIAlpZiAoV0FSTl9PTighcGhiKSkKIAkJcmV0 dXJuOwpAQCAtMTM3LDkgKzEzOCwxMCBAQCBzdGF0aWMgdm9pZCBwbnZfdGVhcmRvd25fbXNpX2ly cXMoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgJnBk ZXYtPm1zaV9saXN0LCBsaXN0KSB7CiAJCWlmIChlbnRyeS0+aXJxID09IE5PX0lSUSkKIAkJCWNv bnRpbnVlOworCQlod2lycSA9IHZpcnFfdG9faHcoZW50cnktPmlycSk7CiAJCWlycV9zZXRfbXNp X2Rlc2MoZW50cnktPmlycSwgTlVMTCk7Ci0JCXBudl9wdXRfbXNpKHBoYiwgdmlycV90b19odyhl bnRyeS0+aXJxKSk7CiAJCWlycV9kaXNwb3NlX21hcHBpbmcoZW50cnktPmlycSk7CisJCXBudl9w dXRfbXNpKHBoYiwgaHdpcnEpOwogCX0KIH0KICNlbmRpZiAvKiBDT05GSUdfUENJX01TSSAqLwpk aWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfbXNpLmMgYi9hcmNoL3Bvd2VycGMv c3lzZGV2L2ZzbF9tc2kuYwppbmRleCBlNWMzNDRkMy4uOGViYmRjNiAxMDA2NDQKLS0tIGEvYXJj aC9wb3dlcnBjL3N5c2Rldi9mc2xfbXNpLmMKKysrIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xf bXNpLmMKQEAgLTEwNiwxNSArMTA2LDE2IEBAIHN0YXRpYyB2b2lkIGZzbF90ZWFyZG93bl9tc2lf aXJxcyhzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKIAlzdHJ1Y3QgbXNpX2Rlc2MgKmVudHJ5Owog CXN0cnVjdCBmc2xfbXNpICptc2lfZGF0YTsKKwlpcnFfaHdfbnVtYmVyX3QgaHdpcnE7CiAKIAls aXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmcGRldi0+bXNpX2xpc3QsIGxpc3QpIHsKIAkJaWYg KGVudHJ5LT5pcnEgPT0gTk9fSVJRKQogCQkJY29udGludWU7CisJCWh3aXJxID0gdmlycV90b19o dyhlbnRyeS0+aXJxKTsKIAkJbXNpX2RhdGEgPSBpcnFfZ2V0X2NoaXBfZGF0YShlbnRyeS0+aXJx KTsKIAkJaXJxX3NldF9tc2lfZGVzYyhlbnRyeS0+aXJxLCBOVUxMKTsKLQkJbXNpX2JpdG1hcF9m cmVlX2h3aXJxcygmbXNpX2RhdGEtPmJpdG1hcCwKLQkJCQkgICAgICAgdmlycV90b19odyhlbnRy eS0+aXJxKSwgMSk7CiAJCWlycV9kaXNwb3NlX21hcHBpbmcoZW50cnktPmlycSk7CisJCW1zaV9i aXRtYXBfZnJlZV9od2lycXMoJm1zaV9kYXRhLT5iaXRtYXAsIGh3aXJxLCAxKTsKIAl9CiAKIAly ZXR1cm47CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvc3lzZGV2L21waWNfcGFzZW1pX21zaS5j IGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9tcGljX3Bhc2VtaV9tc2kuYwppbmRleCAzOGU2MjM4Li5l ODczNjE2IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvc3lzZGV2L21waWNfcGFzZW1pX21zaS5j CisrKyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYvbXBpY19wYXNlbWlfbXNpLmMKQEAgLTc0LDYgKzc0 LDcgQEAgc3RhdGljIGludCBwYXNlbWlfbXNpX2NoZWNrX2RldmljZShzdHJ1Y3QgcGNpX2RldiAq cGRldiwgaW50IG52ZWMsIGludCB0eXBlKQogc3RhdGljIHZvaWQgcGFzZW1pX21zaV90ZWFyZG93 bl9tc2lfaXJxcyhzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKIAlzdHJ1Y3QgbXNpX2Rlc2MgKmVu dHJ5OworCWlycV9od19udW1iZXJfdCBod2lycTsKIAogCXByX2RlYnVnKCJwYXNlbWlfbXNpX3Rl YXJkb3duX21zaV9pcnFzLCBwZGV2ICVwXG4iLCBwZGV2KTsKIApAQCAtODEsMTAgKzgyLDEwIEBA IHN0YXRpYyB2b2lkIHBhc2VtaV9tc2lfdGVhcmRvd25fbXNpX2lycXMoc3RydWN0IHBjaV9kZXYg KnBkZXYpCiAJCWlmIChlbnRyeS0+aXJxID09IE5PX0lSUSkKIAkJCWNvbnRpbnVlOwogCisJCWh3 aXJxID0gdmlycV90b19odyhlbnRyeS0+aXJxKTsKIAkJaXJxX3NldF9tc2lfZGVzYyhlbnRyeS0+ aXJxLCBOVUxMKTsKLQkJbXNpX2JpdG1hcF9mcmVlX2h3aXJxcygmbXNpX21waWMtPm1zaV9iaXRt YXAsCi0JCQkJICAgICAgIHZpcnFfdG9faHcoZW50cnktPmlycSksIEFMTE9DX0NIVU5LKTsKIAkJ aXJxX2Rpc3Bvc2VfbWFwcGluZyhlbnRyeS0+aXJxKTsKKwkJbXNpX2JpdG1hcF9mcmVlX2h3aXJx cygmbXNpX21waWMtPm1zaV9iaXRtYXAsIGh3aXJxLCBBTExPQ19DSFVOSyk7CiAJfQogCiAJcmV0 dXJuOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3N5c2Rldi9tcGljX3UzbXNpLmMgYi9hcmNo L3Bvd2VycGMvc3lzZGV2L21waWNfdTNtc2kuYwppbmRleCA5YTdhYTBlLi5kZmMzNDg2IDEwMDY0 NAotLS0gYS9hcmNoL3Bvd2VycGMvc3lzZGV2L21waWNfdTNtc2kuYworKysgYi9hcmNoL3Bvd2Vy cGMvc3lzZGV2L21waWNfdTNtc2kuYwpAQCAtMTI0LDE1ICsxMjQsMTYgQEAgc3RhdGljIGludCB1 M21zaV9tc2lfY2hlY2tfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgbnZlYywgaW50 IHR5cGUpCiBzdGF0aWMgdm9pZCB1M21zaV90ZWFyZG93bl9tc2lfaXJxcyhzdHJ1Y3QgcGNpX2Rl diAqcGRldikKIHsKIAlzdHJ1Y3QgbXNpX2Rlc2MgKmVudHJ5OworCWlycV9od19udW1iZXJfdCBo d2lycTsKIAogICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmcGRldi0+bXNpX2xp c3QsIGxpc3QpIHsKIAkJaWYgKGVudHJ5LT5pcnEgPT0gTk9fSVJRKQogCQkJY29udGludWU7CiAK KwkJaHdpcnEgPSB2aXJxX3RvX2h3KGVudHJ5LT5pcnEpOwogCQlpcnFfc2V0X21zaV9kZXNjKGVu dHJ5LT5pcnEsIE5VTEwpOwotCQltc2lfYml0bWFwX2ZyZWVfaHdpcnFzKCZtc2lfbXBpYy0+bXNp X2JpdG1hcCwKLQkJCQkgICAgICAgdmlycV90b19odyhlbnRyeS0+aXJxKSwgMSk7CiAJCWlycV9k aXNwb3NlX21hcHBpbmcoZW50cnktPmlycSk7CisJCW1zaV9iaXRtYXBfZnJlZV9od2lycXMoJm1z aV9tcGljLT5tc2lfYml0bWFwLCBod2lycSwgMSk7CiAJfQogCiAJcmV0dXJuOwpkaWZmIC0tZ2l0 IGEvYXJjaC9wb3dlcnBjL3N5c2Rldi9wcGM0eHhfbXNpLmMgYi9hcmNoL3Bvd2VycGMvc3lzZGV2 L3BwYzR4eF9tc2kuYwppbmRleCAxYzJkN2FmLi40YWFlOWM4IDEwMDY0NAotLS0gYS9hcmNoL3Bv d2VycGMvc3lzZGV2L3BwYzR4eF9tc2kuYworKysgYi9hcmNoL3Bvd2VycGMvc3lzZGV2L3BwYzR4 eF9tc2kuYwpAQCAtMTE0LDE2ICsxMTQsMTcgQEAgdm9pZCBwcGM0eHhfdGVhcmRvd25fbXNpX2ly cXMoc3RydWN0IHBjaV9kZXYgKmRldikKIHsKIAlzdHJ1Y3QgbXNpX2Rlc2MgKmVudHJ5OwogCXN0 cnVjdCBwcGM0eHhfbXNpICptc2lfZGF0YSA9ICZwcGM0eHhfbXNpOworCWlycV9od19udW1iZXJf dCBod2lycTsKIAogCWRldl9kYmcoJmRldi0+ZGV2LCAiUENJRS1NU0k6IHRlYXJpbmcgZG93biBt c2kgaXJxc1xuIik7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmZGV2LT5tc2lfbGlz dCwgbGlzdCkgewogCQlpZiAoZW50cnktPmlycSA9PSBOT19JUlEpCiAJCQljb250aW51ZTsKKwkJ aHdpcnEgPSB2aXJxX3RvX2h3KGVudHJ5LT5pcnEpOwogCQlpcnFfc2V0X21zaV9kZXNjKGVudHJ5 LT5pcnEsIE5VTEwpOwotCQltc2lfYml0bWFwX2ZyZWVfaHdpcnFzKCZtc2lfZGF0YS0+Yml0bWFw LAotCQkJCXZpcnFfdG9faHcoZW50cnktPmlycSksIDEpOwogCQlpcnFfZGlzcG9zZV9tYXBwaW5n KGVudHJ5LT5pcnEpOworCQltc2lfYml0bWFwX2ZyZWVfaHdpcnFzKCZtc2lfZGF0YS0+Yml0bWFw LCBod2lycSwgMSk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL2NvbXBh dF9zaWduYWwuYyBiL2FyY2gvczM5MC9rZXJuZWwvY29tcGF0X3NpZ25hbC5jCmluZGV4IDlmZGQw NWQ1Li44ODMxYTQwIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL2NvbXBhdF9zaWduYWwu YworKysgYi9hcmNoL3MzOTAva2VybmVsL2NvbXBhdF9zaWduYWwuYwpAQCAtNTIsNiArNTIsMTkg QEAgdHlwZWRlZiBzdHJ1Y3QKIAlfX3UzMiBncHJzX2hpZ2hbTlVNX0dQUlNdOwogfSBydF9zaWdm cmFtZTMyOwogCitzdGF0aWMgaW5saW5lIHZvaWQgc2lnc2V0X3RvX3NpZ3NldDMyKHVuc2lnbmVk IGxvbmcgKnNldDY0LAorCQkJCSAgICAgIGNvbXBhdF9zaWdzZXRfd29yZCAqc2V0MzIpCit7CisJ c2V0MzJbMF0gPSAoY29tcGF0X3NpZ3NldF93b3JkKSBzZXQ2NFswXTsKKwlzZXQzMlsxXSA9IChj b21wYXRfc2lnc2V0X3dvcmQpKHNldDY0WzBdID4+IDMyKTsKK30KKworc3RhdGljIGlubGluZSB2 b2lkIHNpZ3NldDMyX3RvX3NpZ3NldChjb21wYXRfc2lnc2V0X3dvcmQgKnNldDMyLAorCQkJCSAg ICAgIHVuc2lnbmVkIGxvbmcgKnNldDY0KQoreworCXNldDY0WzBdID0gKHVuc2lnbmVkIGxvbmcp IHNldDMyWzBdIHwgKCh1bnNpZ25lZCBsb25nKSBzZXQzMlsxXSA8PCAzMik7Cit9CisKIGludCBj b3B5X3NpZ2luZm9fdG9fdXNlcjMyKGNvbXBhdF9zaWdpbmZvX3QgX191c2VyICp0bywgc2lnaW5m b190ICpmcm9tKQogewogCWludCBlcnI7CkBAIC0zNjEsMTIgKzM3NCwxNCBAQCBhc21saW5rYWdl IGxvbmcgc3lzMzJfc2lncmV0dXJuKHZvaWQpCiB7CiAJc3RydWN0IHB0X3JlZ3MgKnJlZ3MgPSB0 YXNrX3B0X3JlZ3MoY3VycmVudCk7CiAJc2lnZnJhbWUzMiBfX3VzZXIgKmZyYW1lID0gKHNpZ2Zy YW1lMzIgX191c2VyICopcmVncy0+Z3Byc1sxNV07CisJY29tcGF0X3NpZ3NldF90IGNzZXQ7CiAJ c2lnc2V0X3Qgc2V0OwogCiAJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1JFQUQsIGZyYW1lLCBzaXpl b2YoKmZyYW1lKSkpCiAJCWdvdG8gYmFkZnJhbWU7Ci0JaWYgKF9fY29weV9mcm9tX3VzZXIoJnNl dC5zaWcsICZmcmFtZS0+c2Mub2xkbWFzaywgX1NJR01BU0tfQ09QWV9TSVpFMzIpKQorCWlmIChf X2NvcHlfZnJvbV91c2VyKCZjc2V0LnNpZywgJmZyYW1lLT5zYy5vbGRtYXNrLCBfU0lHTUFTS19D T1BZX1NJWkUzMikpCiAJCWdvdG8gYmFkZnJhbWU7CisJc2lnc2V0MzJfdG9fc2lnc2V0KGNzZXQu c2lnLCBzZXQuc2lnKTsKIAlzaWdkZWxzZXRtYXNrKCZzZXQsIH5fQkxPQ0tBQkxFKTsKIAlzZXRf Y3VycmVudF9ibG9ja2VkKCZzZXQpOwogCWlmIChyZXN0b3JlX3NpZ3JlZ3MzMihyZWdzLCAmZnJh bWUtPnNyZWdzKSkKQEAgLTM4Myw2ICszOTgsNyBAQCBhc21saW5rYWdlIGxvbmcgc3lzMzJfcnRf c2lncmV0dXJuKHZvaWQpCiB7CiAJc3RydWN0IHB0X3JlZ3MgKnJlZ3MgPSB0YXNrX3B0X3JlZ3Mo Y3VycmVudCk7CiAJcnRfc2lnZnJhbWUzMiBfX3VzZXIgKmZyYW1lID0gKHJ0X3NpZ2ZyYW1lMzIg X191c2VyICopcmVncy0+Z3Byc1sxNV07CisJY29tcGF0X3NpZ3NldF90IGNzZXQ7CiAJc2lnc2V0 X3Qgc2V0OwogCXN0YWNrX3Qgc3Q7CiAJX191MzIgc3Nfc3A7CkBAIC0zOTEsOCArNDA3LDkgQEAg YXNtbGlua2FnZSBsb25nIHN5czMyX3J0X3NpZ3JldHVybih2b2lkKQogCiAJaWYgKCFhY2Nlc3Nf b2soVkVSSUZZX1JFQUQsIGZyYW1lLCBzaXplb2YoKmZyYW1lKSkpCiAJCWdvdG8gYmFkZnJhbWU7 Ci0JaWYgKF9fY29weV9mcm9tX3VzZXIoJnNldCwgJmZyYW1lLT51Yy51Y19zaWdtYXNrLCBzaXpl b2Yoc2V0KSkpCisJaWYgKF9fY29weV9mcm9tX3VzZXIoJmNzZXQsICZmcmFtZS0+dWMudWNfc2ln bWFzaywgc2l6ZW9mKGNzZXQpKSkKIAkJZ290byBiYWRmcmFtZTsKKwlzaWdzZXQzMl90b19zaWdz ZXQoY3NldC5zaWcsIHNldC5zaWcpOwogCXNpZ2RlbHNldG1hc2soJnNldCwgfl9CTE9DS0FCTEUp OwogCXNldF9jdXJyZW50X2Jsb2NrZWQoJnNldCk7CiAJaWYgKHJlc3RvcmVfc2lncmVnczMyKHJl Z3MsICZmcmFtZS0+dWMudWNfbWNvbnRleHQpKQpAQCAtNDY0LDEzICs0ODEsMTYgQEAgc3RhdGlj IGludCBzZXR1cF9mcmFtZTMyKGludCBzaWcsIHN0cnVjdCBrX3NpZ2FjdGlvbiAqa2EsCiAJCQlz aWdzZXRfdCAqc2V0LCBzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MpCiB7CiAJc2lnZnJhbWUzMiBfX3Vz ZXIgKmZyYW1lID0gZ2V0X3NpZ2ZyYW1lKGthLCByZWdzLCBzaXplb2Yoc2lnZnJhbWUzMikpOwor CWNvbXBhdF9zaWdzZXRfdCBjc2V0OworCiAJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLCBm cmFtZSwgc2l6ZW9mKHNpZ2ZyYW1lMzIpKSkKIAkJZ290byBnaXZlX3NpZ3NlZ3Y7CiAKIAlpZiAo ZnJhbWUgPT0gKHZvaWQgX191c2VyICopIC0xVUwpCiAJCWdvdG8gZ2l2ZV9zaWdzZWd2OwogCi0J aWYgKF9fY29weV90b191c2VyKCZmcmFtZS0+c2Mub2xkbWFzaywgJnNldC0+c2lnLCBfU0lHTUFT S19DT1BZX1NJWkUzMikpCisJc2lnc2V0X3RvX3NpZ3NldDMyKHNldC0+c2lnLCBjc2V0LnNpZyk7 CisJaWYgKF9fY29weV90b191c2VyKCZmcmFtZS0+c2Mub2xkbWFzaywgJmNzZXQuc2lnLCBfU0lH TUFTS19DT1BZX1NJWkUzMikpCiAJCWdvdG8gZ2l2ZV9zaWdzZWd2OwogCiAJaWYgKHNhdmVfc2ln cmVnczMyKHJlZ3MsICZmcmFtZS0+c3JlZ3MpKQpAQCAtNTI0LDYgKzU0NCw3IEBAIGdpdmVfc2ln c2VndjoKIHN0YXRpYyBpbnQgc2V0dXBfcnRfZnJhbWUzMihpbnQgc2lnLCBzdHJ1Y3Qga19zaWdh Y3Rpb24gKmthLCBzaWdpbmZvX3QgKmluZm8sCiAJCQkgICBzaWdzZXRfdCAqc2V0LCBzdHJ1Y3Qg cHRfcmVncyAqIHJlZ3MpCiB7CisJY29tcGF0X3NpZ3NldF90IGNzZXQ7CiAJaW50IGVyciA9IDA7 CiAJcnRfc2lnZnJhbWUzMiBfX3VzZXIgKmZyYW1lID0gZ2V0X3NpZ2ZyYW1lKGthLCByZWdzLCBz aXplb2YocnRfc2lnZnJhbWUzMikpOwogCWlmICghYWNjZXNzX29rKFZFUklGWV9XUklURSwgZnJh bWUsIHNpemVvZihydF9zaWdmcmFtZTMyKSkpCkBAIC01MzYsNiArNTU3LDcgQEAgc3RhdGljIGlu dCBzZXR1cF9ydF9mcmFtZTMyKGludCBzaWcsIHN0cnVjdCBrX3NpZ2FjdGlvbiAqa2EsIHNpZ2lu Zm9fdCAqaW5mbywKIAkJZ290byBnaXZlX3NpZ3NlZ3Y7CiAKIAkvKiBDcmVhdGUgdGhlIHVjb250 ZXh0LiAgKi8KKwlzaWdzZXRfdG9fc2lnc2V0MzIoc2V0LT5zaWcsIGNzZXQuc2lnKTsKIAllcnIg fD0gX19wdXRfdXNlcihVQ19FWFRFTkRFRCwgJmZyYW1lLT51Yy51Y19mbGFncyk7CiAJZXJyIHw9 IF9fcHV0X3VzZXIoMCwgJmZyYW1lLT51Yy51Y19saW5rKTsKIAllcnIgfD0gX19wdXRfdXNlcihj dXJyZW50LT5zYXNfc3Nfc3AsICZmcmFtZS0+dWMudWNfc3RhY2suc3Nfc3ApOwpAQCAtNTQ0LDcg KzU2Niw3IEBAIHN0YXRpYyBpbnQgc2V0dXBfcnRfZnJhbWUzMihpbnQgc2lnLCBzdHJ1Y3Qga19z aWdhY3Rpb24gKmthLCBzaWdpbmZvX3QgKmluZm8sCiAJZXJyIHw9IF9fcHV0X3VzZXIoY3VycmVu dC0+c2FzX3NzX3NpemUsICZmcmFtZS0+dWMudWNfc3RhY2suc3Nfc2l6ZSk7CiAJZXJyIHw9IHNh dmVfc2lncmVnczMyKHJlZ3MsICZmcmFtZS0+dWMudWNfbWNvbnRleHQpOwogCWVyciB8PSBzYXZl X3NpZ3JlZ3NfZ3Byc19oaWdoKHJlZ3MsIGZyYW1lLT5ncHJzX2hpZ2gpOwotCWVyciB8PSBfX2Nv cHlfdG9fdXNlcigmZnJhbWUtPnVjLnVjX3NpZ21hc2ssIHNldCwgc2l6ZW9mKCpzZXQpKTsKKwll cnIgfD0gX19jb3B5X3RvX3VzZXIoJmZyYW1lLT51Yy51Y19zaWdtYXNrLCAmY3NldCwgc2l6ZW9m KGNzZXQpKTsKIAlpZiAoZXJyKQogCQlnb3RvIGdpdmVfc2lnc2VndjsKIApkaWZmIC0tZ2l0IGEv YXJjaC9zcGFyYy9pbmNsdWRlL2FzbS92aXNhc20uaCBiL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20v dmlzYXNtLmgKaW5kZXggMzljYTMwMS4uM2E4YzJhZiAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9p bmNsdWRlL2FzbS92aXNhc20uaAorKysgYi9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3Zpc2FzbS5o CkBAIC0yOCwxOCArMjgsMTIgQEAKICAqIE11c3QgcHJlc2VydmUgJW81IGJldHdlZW4gVklTRW50 cnlIYWxmIGFuZCBWSVNFeGl0SGFsZiAqLwogCiAjZGVmaW5lIFZJU0VudHJ5SGFsZgkJCQkJXAot CXJkCQklZnBycywgJW81OwkJCVwKLQlhbmRjYwkJJW81LCBGUFJTX0ZFRiwgJWcwOwkJXAotCWJl LHB0CQklaWNjLCAyOTdmOwkJCVwKLQkgc2V0aGkJCSVoaSgyOThmKSwgJWc3OwkJCVwKLQlzZXRo aQkJJWhpKFZJU2VudGVyaGFsZiksICVnMTsJCVwKLQlqbXBsCQklZzEgKyAlbG8oVklTZW50ZXJo YWxmKSwgJWcwOwlcCi0JIG9yCQklZzcsICVsbygyOThmKSwgJWc3OwkJXAotCWNscgkJJW81OwkJ CQlcCi0yOTc6CXdyCQklbzUsIEZQUlNfRkVGLCAlZnByczsJCVwKLTI5ODoKKwlWSVNFbnRyeQog CiAjZGVmaW5lIFZJU0V4aXRIYWxmCQkJCQlcCisJVklTRXhpdAorCisjZGVmaW5lIFZJU0V4aXRI YWxmRmFzdAkJCQkJXAogCXdyCQklbzUsIDAsICVmcHJzOwogCiAjaWZuZGVmIF9fQVNTRU1CTFlf XwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9saWIvVklTc2F2ZS5TIGIvYXJjaC9zcGFyYy9saWIv VklTc2F2ZS5TCmluZGV4IGIzMjBhZTkuLmEwNjNkODQgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMv bGliL1ZJU3NhdmUuUworKysgYi9hcmNoL3NwYXJjL2xpYi9WSVNzYXZlLlMKQEAgLTQ0LDkgKzQ0 LDggQEAgdmlzMToJbGR1YgkJWyVnNiArIFRJX0ZQU0FWRURdLCAlZzMKIAogCSBzdHgJCSVnMywg WyVnNiArIFRJX0dTUl0KIDI6CWFkZAkJJWc2LCAlZzEsICVnMwotCWNtcAkJJW81LCBGUFJTX0RV Ci0JYmUscG4JCSVpY2MsIDZmCi0JIHNsbAkJJWcxLCAzLCAlZzEKKwltb3YJCUZQUlNfRFUgfCBG UFJTX0RMIHwgRlBSU19GRUYsICVvNQorCXNsbAkJJWcxLCAzLCAlZzEKIAlzdGIJCSVvNSwgWyVn MyArIFRJX0ZQU0FWRURdCiAJcmQJCSVnc3IsICVnMgogCWFkZAkJJWc2LCAlZzEsICVnMwpAQCAt ODAsNjUgKzc5LDMgQEAgdmlzMToJbGR1YgkJWyVnNiArIFRJX0ZQU0FWRURdLCAlZzMKIAkuYWxp Z24JCTMyCiA4MDoJam1wbAkJJWc3ICsgJWcwLCAlZzAKIAkgbm9wCi0KLTY6CWxkdWIJCVslZzMg KyBUSV9GUFNBVkVEXSwgJW81Ci0Jb3IJCSVvNSwgRlBSU19EVSwgJW81Ci0JYWRkCQklZzYsIFRJ X0ZQUkVHUysweDgwLCAlZzIKLQlzdGIJCSVvNSwgWyVnMyArIFRJX0ZQU0FWRURdCi0KLQlzbGwJ CSVnMSwgNSwgJWcxCi0JYWRkCQklZzYsIFRJX0ZQUkVHUysweGMwLCAlZzMKLQl3cgkJJWcwLCBG UFJTX0ZFRiwgJWZwcnMKLQltZW1iYXIJCSNTeW5jCi0Jc3RkYQkJJWYzMiwgWyVnMiArICVnMV0g QVNJX0JMS19QCi0Jc3RkYQkJJWY0OCwgWyVnMyArICVnMV0gQVNJX0JMS19QCi0JbWVtYmFyCQkj U3luYwotCWJhLHB0CQkleGNjLCA4MGYKLQkgbm9wCi0KLQkuYWxpZ24JCTMyCi04MDoJam1wbAkJ JWc3ICsgJWcwLCAlZzAKLQkgbm9wCi0KLQkuYWxpZ24JCTMyCi1WSVNlbnRlcmhhbGY6Ci0JbGR1 YgkJWyVnNiArIFRJX0ZQREVQVEhdLCAlZzEKLQlicm56LGEscG4JJWcxLCAxZgotCSBjbXAJCSVn MSwgMQotCXN0YgkJJWcwLCBbJWc2ICsgVElfRlBTQVZFRF0KLQlzdHgJCSVmc3IsIFslZzYgKyBU SV9YRlNSXQotCWNscgkJJW81Ci0Jam1wbAkJJWc3ICsgJWcwLCAlZzAKLQkgd3IJCSVnMCwgRlBS U19GRUYsICVmcHJzCi0KLTE6CWJuZSxwbgkJJWljYywgMmYKLQkgc3JsCQklZzEsIDEsICVnMQot CWJhLHB0CQkleGNjLCB2aXMxCi0JIHN1YgkJJWc3LCA4LCAlZzcKLTI6CWFkZGNjCQklZzYsICVn MSwgJWczCi0Jc2xsCQklZzEsIDMsICVnMQotCWFuZG4JCSVvNSwgRlBSU19EVSwgJWcyCi0Jc3Ri CQklZzIsIFslZzMgKyBUSV9GUFNBVkVEXQotCi0JcmQJCSVnc3IsICVnMgotCWFkZAkJJWc2LCAl ZzEsICVnMwotCXN0eAkJJWcyLCBbJWczICsgVElfR1NSXQotCWFkZAkJJWc2LCAlZzEsICVnMgot CXN0eAkJJWZzciwgWyVnMiArIFRJX1hGU1JdCi0Jc2xsCQklZzEsIDUsICVnMQotMzoJYW5kY2MJ CSVvNSwgRlBSU19ETCwgJWcwCi0JYmUscG4JCSVpY2MsIDRmCi0JIGFkZAkJJWc2LCBUSV9GUFJF R1MsICVnMgotCi0JYWRkCQklZzYsIFRJX0ZQUkVHUysweDQwLCAlZzMKLQltZW1iYXIJCSNTeW5j Ci0Jc3RkYQkJJWYwLCBbJWcyICsgJWcxXSBBU0lfQkxLX1AKLQlzdGRhCQklZjE2LCBbJWczICsg JWcxXSBBU0lfQkxLX1AKLQltZW1iYXIJCSNTeW5jCi0JYmEscHQJCSV4Y2MsIDRmCi0JIG5vcAot Ci0JLmFsaWduCQkzMgotNDoJYW5kCQklbzUsIEZQUlNfRFUsICVvNQotCWptcGwJCSVnNyArICVn MCwgJWcwCi0JIHdyCQklbzUsIEZQUlNfRkVGLCAlZnBycwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv Y3J5cHRvL2doYXNoLWNsbXVsbmktaW50ZWxfZ2x1ZS5jIGIvYXJjaC94ODYvY3J5cHRvL2doYXNo LWNsbXVsbmktaW50ZWxfZ2x1ZS5jCmluZGV4IGY3ODEyNTEuLjQ4MjdiMjMgMTAwNjQ0Ci0tLSBh L2FyY2gveDg2L2NyeXB0by9naGFzaC1jbG11bG5pLWludGVsX2dsdWUuYworKysgYi9hcmNoL3g4 Ni9jcnlwdG8vZ2hhc2gtY2xtdWxuaS1pbnRlbF9nbHVlLmMKQEAgLTI5MSw2ICsyOTEsNyBAQCBz dGF0aWMgc3RydWN0IGFoYXNoX2FsZyBnaGFzaF9hc3luY19hbGcgPSB7CiAJCQkuY3JhX25hbWUJ CT0gImdoYXNoIiwKIAkJCS5jcmFfZHJpdmVyX25hbWUJPSAiZ2hhc2gtY2xtdWxuaSIsCiAJCQku Y3JhX3ByaW9yaXR5CQk9IDQwMCwKKwkJCS5jcmFfY3R4c2l6ZQkJPSBzaXplb2Yoc3RydWN0IGdo YXNoX2FzeW5jX2N0eCksCiAJCQkuY3JhX2ZsYWdzCQk9IENSWVBUT19BTEdfVFlQRV9BSEFTSCB8 IENSWVBUT19BTEdfQVNZTkMsCiAJCQkuY3JhX2Jsb2Nrc2l6ZQkJPSBHSEFTSF9CTE9DS19TSVpF LAogCQkJLmNyYV90eXBlCQk9ICZjcnlwdG9fYWhhc2hfdHlwZSwKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2luY2x1ZGUvYXNtL2Rlc2MuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Rlc2MuaAppbmRl eCAzMjI1ODY4Li4zODJjZThhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kZXNj LmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vZGVzYy5oCkBAIC0yNzcsMjEgKzI3Nyw2IEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9MRFQodm9pZCkKIAlzZXRfbGR0KE5VTEwsIDApOwog fQogCi0vKgotICogbG9hZCBvbmUgcGFydGljdWxhciBMRFQgaW50byB0aGUgY3VycmVudCBDUFUK LSAqLwotc3RhdGljIGlubGluZSB2b2lkIGxvYWRfTERUX25vbG9jayhtbV9jb250ZXh0X3QgKnBj KQotewotCXNldF9sZHQocGMtPmxkdCwgcGMtPnNpemUpOwotfQotCi1zdGF0aWMgaW5saW5lIHZv aWQgbG9hZF9MRFQobW1fY29udGV4dF90ICpwYykKLXsKLQlwcmVlbXB0X2Rpc2FibGUoKTsKLQls b2FkX0xEVF9ub2xvY2socGMpOwotCXByZWVtcHRfZW5hYmxlKCk7Ci19Ci0KIHN0YXRpYyBpbmxp bmUgdW5zaWduZWQgbG9uZyBnZXRfZGVzY19iYXNlKGNvbnN0IHN0cnVjdCBkZXNjX3N0cnVjdCAq ZGVzYykKIHsKIAlyZXR1cm4gKHVuc2lnbmVkKShkZXNjLT5iYXNlMCB8ICgoZGVzYy0+YmFzZTEp IDw8IDE2KSB8ICgoZGVzYy0+YmFzZTIpIDw8IDI0KSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9p bmNsdWRlL2FzbS9tbXUuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdS5oCmluZGV4IDVmNTVl NjkuLjkyNmY2NzIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdS5oCisrKyBi L2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdS5oCkBAIC05LDggKzksNyBAQAogICogd2UgcHV0IHRo ZSBzZWdtZW50IGluZm9ybWF0aW9uIGhlcmUuCiAgKi8KIHR5cGVkZWYgc3RydWN0IHsKLQl2b2lk ICpsZHQ7Ci0JaW50IHNpemU7CisJc3RydWN0IGxkdF9zdHJ1Y3QgKmxkdDsKIAogI2lmZGVmIENP TkZJR19YODZfNjQKIAkvKiBUcnVlIGlmIG1tIHN1cHBvcnRzIGEgdGFzayBydW5uaW5nIGluIDMy IGJpdCBjb21wYXRpYmlsaXR5IG1vZGUuICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRl L2FzbS9tbXVfY29udGV4dC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vbW11X2NvbnRleHQuaApp bmRleCA2OTAyMTUyLi5jZTRlYTk0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9t bXVfY29udGV4dC5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL21tdV9jb250ZXh0LmgKQEAg LTE2LDYgKzE2LDUxIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXJhdmlydF9hY3RpdmF0ZV9tbShz dHJ1Y3QgbW1fc3RydWN0ICpwcmV2LAogI2VuZGlmCS8qICFDT05GSUdfUEFSQVZJUlQgKi8KIAog LyoKKyAqIGxkdF9zdHJ1Y3RzIGNhbiBiZSBhbGxvY2F0ZWQsIHVzZWQsIGFuZCBmcmVlZCwgYnV0 IHRoZXkgYXJlIG5ldmVyCisgKiBtb2RpZmllZCB3aGlsZSBsaXZlLgorICovCitzdHJ1Y3QgbGR0 X3N0cnVjdCB7CisJLyoKKwkgKiBYZW4gcmVxdWlyZXMgcGFnZS1hbGlnbmVkIExEVHMgd2l0aCBz cGVjaWFsIHBlcm1pc3Npb25zLiAgVGhpcyBpcworCSAqIG5lZWRlZCB0byBwcmV2ZW50IHVzIGZy b20gaW5zdGFsbGluZyBldmlsIGRlc2NyaXB0b3JzIHN1Y2ggYXMKKwkgKiBjYWxsIGdhdGVzLiAg T24gbmF0aXZlLCB3ZSBjb3VsZCBtZXJnZSB0aGUgbGR0X3N0cnVjdCBhbmQgTERUCisJICogYWxs b2NhdGlvbnMsIGJ1dCBpdCdzIG5vdCB3b3J0aCB0cnlpbmcgdG8gb3B0aW1pemUuCisJICovCisJ c3RydWN0IGRlc2Nfc3RydWN0ICplbnRyaWVzOworCWludCBzaXplOworfTsKKworc3RhdGljIGlu bGluZSB2b2lkIGxvYWRfbW1fbGR0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQoreworCXN0cnVjdCBs ZHRfc3RydWN0ICpsZHQ7CisKKwkvKiBzbXBfcmVhZF9iYXJyaWVyX2RlcGVuZHMgc3luY2hyb25p emVzIHdpdGggYmFycmllciBpbiBpbnN0YWxsX2xkdCAqLworCWxkdCA9IEFDQ0VTU19PTkNFKG1t LT5jb250ZXh0LmxkdCk7CisJc21wX3JlYWRfYmFycmllcl9kZXBlbmRzKCk7CisKKwkvKgorCSAq IEFueSBjaGFuZ2UgdG8gbW0tPmNvbnRleHQubGR0IGlzIGZvbGxvd2VkIGJ5IGFuIElQSSB0byBh bGwKKwkgKiBDUFVzIHdpdGggdGhlIG1tIGFjdGl2ZS4gIFRoZSBMRFQgd2lsbCBub3QgYmUgZnJl ZWQgdW50aWwKKwkgKiBhZnRlciB0aGUgSVBJIGlzIGhhbmRsZWQgYnkgYWxsIHN1Y2ggQ1BVcy4g IFRoaXMgbWVhbnMgdGhhdCwKKwkgKiBpZiB0aGUgbGR0X3N0cnVjdCBjaGFuZ2VzIGJlZm9yZSB3 ZSByZXR1cm4sIHRoZSB2YWx1ZXMgd2Ugc2VlCisJICogd2lsbCBiZSBzYWZlLCBhbmQgdGhlIG5l dyB2YWx1ZXMgd2lsbCBiZSBsb2FkZWQgYmVmb3JlIHdlIHJ1bgorCSAqIGFueSB1c2VyIGNvZGUu CisJICoKKwkgKiBOQjogZG9uJ3QgdHJ5IHRvIGNvbnZlcnQgdGhpcyB0byB1c2UgUkNVIHdpdGhv dXQgZXh0cmVtZSBjYXJlLgorCSAqIFdlIHdvdWxkIHN0aWxsIG5lZWQgSVJRcyBvZmYsIGJlY2F1 c2Ugd2UgZG9uJ3Qgd2FudCB0byBjaGFuZ2UKKwkgKiB0aGUgbG9jYWwgTERUIGFmdGVyIGFuIElQ SSBsb2FkZWQgYSBuZXdlciB2YWx1ZSB0aGFuIHRoZSBvbmUKKwkgKiB0aGF0IHdlIGNhbiBzZWUu CisJICovCisKKwlpZiAodW5saWtlbHkobGR0KSkKKwkJc2V0X2xkdChsZHQtPmVudHJpZXMsIGxk dC0+c2l6ZSk7CisJZWxzZQorCQljbGVhcl9MRFQoKTsKKworCURFQlVHX0xPQ0tTX1dBUk5fT04o cHJlZW1wdGlibGUoKSk7Cit9CisKKy8qCiAgKiBVc2VkIGZvciBMRFQgY29weS9kZXN0cnVjdGlv bi4KICAqLwogaW50IGluaXRfbmV3X2NvbnRleHQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0 cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKQEAgLTUyLDcgKzk3LDcgQEAgc3RhdGljIGlubGluZSB2b2lk IHN3aXRjaF9tbShzdHJ1Y3QgbW1fc3RydWN0ICpwcmV2LCBzdHJ1Y3QgbW1fc3RydWN0ICpuZXh0 LAogCQkgKiBsb2FkIHRoZSBMRFQsIGlmIHRoZSBMRFQgaXMgZGlmZmVyZW50OgogCQkgKi8KIAkJ aWYgKHVubGlrZWx5KHByZXYtPmNvbnRleHQubGR0ICE9IG5leHQtPmNvbnRleHQubGR0KSkKLQkJ CWxvYWRfTERUX25vbG9jaygmbmV4dC0+Y29udGV4dCk7CisJCQlsb2FkX21tX2xkdChuZXh0KTsK IAl9CiAjaWZkZWYgQ09ORklHX1NNUAogCWVsc2UgewpAQCAtNjUsNyArMTEwLDcgQEAgc3RhdGlj IGlubGluZSB2b2lkIHN3aXRjaF9tbShzdHJ1Y3QgbW1fc3RydWN0ICpwcmV2LCBzdHJ1Y3QgbW1f c3RydWN0ICpuZXh0LAogCQkJICogdG8gbWFrZSBzdXJlIHRvIHVzZSBubyBmcmVlZCBwYWdlIHRh Ymxlcy4KIAkJCSAqLwogCQkJbG9hZF9jcjMobmV4dC0+cGdkKTsKLQkJCWxvYWRfTERUX25vbG9j aygmbmV4dC0+Y29udGV4dCk7CisJCQlsb2FkX21tX2xkdChuZXh0KTsKIAkJfQogCX0KICNlbmRp ZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLWluZGV4LmggYi9hcmNoL3g4 Ni9pbmNsdWRlL2FzbS9tc3ItaW5kZXguaAppbmRleCA1NTM4YjEzLi4zZDQ4YWE0IDEwMDY0NAot LS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3ItaW5kZXguaAorKysgYi9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9tc3ItaW5kZXguaApAQCAtMTU5LDYgKzE1OSw3IEBACiAvKiBDMUUgYWN0aXZlIGJp dHMgaW4gaW50IHBlbmRpbmcgbWVzc2FnZSAqLwogI2RlZmluZSBLOF9JTlRQX0MxRV9BQ1RJVkVf TUFTSwkJMHgxODAwMDAwMAogI2RlZmluZSBNU1JfSzhfVFNFR19BRERSCQkweGMwMDEwMTEyCisj ZGVmaW5lIE1TUl9LOF9UU0VHX01BU0sJCTB4YzAwMTAxMTMKICNkZWZpbmUgSzhfTVRSUkZJWFJB TkdFX0RSQU1fRU5BQkxFCTB4MDAwNDAwMDAgLyogTXRyckZpeERyYW1FbiBiaXQgICAgKi8KICNk ZWZpbmUgSzhfTVRSUkZJWFJBTkdFX0RSQU1fTU9ESUZZCTB4MDAwODAwMDAgLyogTXRyckZpeERy YW1Nb2RFbiBiaXQgKi8KICNkZWZpbmUgSzhfTVRSUl9SRE1FTV9XUk1FTV9NQVNLCTB4MTgxODE4 MTggLyogTWFzazogUmRNZW18V3JNZW0gICAgKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5l bC9jcHUvY29tbW9uLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCmluZGV4IDYyODRk NmQuLjBjYmRlYmYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uLmMKKysr IGIvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYwpAQCAtMTIyNSw3ICsxMjI1LDcgQEAgdm9p ZCBfX2NwdWluaXQgY3B1X2luaXQodm9pZCkKIAlsb2FkX3NwMCh0LCAmY3VycmVudC0+dGhyZWFk KTsKIAlzZXRfdHNzX2Rlc2MoY3B1LCB0KTsKIAlsb2FkX1RSX2Rlc2MoKTsKLQlsb2FkX0xEVCgm aW5pdF9tbS5jb250ZXh0KTsKKwlsb2FkX21tX2xkdCgmaW5pdF9tbSk7CiAKIAljbGVhcl9hbGxf ZGVidWdfcmVncygpOwogCWRiZ19yZXN0b3JlX2RlYnVnX3JlZ3MoKTsKQEAgLTEyNzMsNyArMTI3 Myw3IEBAIHZvaWQgX19jcHVpbml0IGNwdV9pbml0KHZvaWQpCiAJbG9hZF9zcDAodCwgdGhyZWFk KTsKIAlzZXRfdHNzX2Rlc2MoY3B1LCB0KTsKIAlsb2FkX1RSX2Rlc2MoKTsKLQlsb2FkX0xEVCgm aW5pdF9tbS5jb250ZXh0KTsKKwlsb2FkX21tX2xkdCgmaW5pdF9tbSk7CiAKIAl0LT54ODZfdHNz LmlvX2JpdG1hcF9iYXNlID0gb2Zmc2V0b2Yoc3RydWN0IHRzc19zdHJ1Y3QsIGlvX2JpdG1hcCk7 CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9lbnRyeV82NC5TIGIvYXJjaC94ODYva2Vy bmVsL2VudHJ5XzY0LlMKaW5kZXggOGQxNWM2OS4uZjZkYWYzYyAxMDA2NDQKLS0tIGEvYXJjaC94 ODYva2VybmVsL2VudHJ5XzY0LlMKKysrIGIvYXJjaC94ODYva2VybmVsL2VudHJ5XzY0LlMKQEAg LTE1MDQsNyArMTUwNCwxOCBAQCBFTkQoZXJyb3JfZXhpdCkKIAkvKiBydW5zIG9uIGV4Y2VwdGlv biBzdGFjayAqLwogRU5UUlkobm1pKQogCUlOVFJfRlJBTUUKKwkvKgorCSAqIEZpeCB1cCB0aGUg ZXhjZXB0aW9uIGZyYW1lIGlmIHdlJ3JlIG9uIFhlbi4KKwkgKiBQQVJBVklSVF9BREpVU1RfRVhD RVBUSU9OX0ZSQU1FIGlzIGd1YXJhbnRlZWQgdG8gcHVzaCBhdCBtb3N0CisJICogb25lIHZhbHVl IHRvIHRoZSBzdGFjayBvbiBuYXRpdmUsIHNvIGl0IG1heSBjbG9iYmVyIHRoZSByZHgKKwkgKiBz Y3JhdGNoIHNsb3QsIGJ1dCBpdCB3b24ndCBjbG9iYmVyIGFueSBvZiB0aGUgaW1wb3J0YW50CisJ ICogc2xvdHMgcGFzdCBpdC4KKwkgKgorCSAqIFhlbiBpcyBhIGRpZmZlcmVudCBzdG9yeSwgYmVj YXVzZSB0aGUgWGVuIGZyYW1lIGl0c2VsZiBvdmVybGFwcworCSAqIHRoZSAiTk1JIGV4ZWN1dGlu ZyIgdmFyaWFibGUuCisJICovCiAJUEFSQVZJUlRfQURKVVNUX0VYQ0VQVElPTl9GUkFNRQorCiAJ cHVzaHFfY2ZpICQtMQogCXN1YnEgJE9SSUdfUkFYLVIxNSwgJXJzcAogCUNGSV9BREpVU1RfQ0ZB X09GRlNFVCBPUklHX1JBWC1SMTUKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9sZHQuYyBi L2FyY2gveDg2L2tlcm5lbC9sZHQuYwppbmRleCAwYThlNjVlLi4xZGQzMjMwIDEwMDY0NAotLS0g YS9hcmNoL3g4Ni9rZXJuZWwvbGR0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2xkdC5jCkBAIC0x Miw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgv bW0uaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAj aW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgogI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KIApA QCAtMjEsODIgKzIyLDg3IEBACiAjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CiAjaW5jbHVk ZSA8YXNtL3N5c2NhbGxzLmg+CiAKLSNpZmRlZiBDT05GSUdfU01QCisvKiBjb250ZXh0LmxvY2sg aXMgaGVsZCBmb3IgdXMsIHNvIHdlIGRvbid0IG5lZWQgYW55IGxvY2tpbmcuICovCiBzdGF0aWMg dm9pZCBmbHVzaF9sZHQodm9pZCAqY3VycmVudF9tbSkKIHsKLQlpZiAoY3VycmVudC0+YWN0aXZl X21tID09IGN1cnJlbnRfbW0pCi0JCWxvYWRfTERUKCZjdXJyZW50LT5hY3RpdmVfbW0tPmNvbnRl eHQpOworCW1tX2NvbnRleHRfdCAqcGM7CisKKwlpZiAoY3VycmVudC0+YWN0aXZlX21tICE9IGN1 cnJlbnRfbW0pCisJCXJldHVybjsKKworCXBjID0gJmN1cnJlbnQtPmFjdGl2ZV9tbS0+Y29udGV4 dDsKKwlzZXRfbGR0KHBjLT5sZHQtPmVudHJpZXMsIHBjLT5sZHQtPnNpemUpOwogfQotI2VuZGlm CiAKLXN0YXRpYyBpbnQgYWxsb2NfbGR0KG1tX2NvbnRleHRfdCAqcGMsIGludCBtaW5jb3VudCwg aW50IHJlbG9hZCkKKy8qIFRoZSBjYWxsZXIgbXVzdCBjYWxsIGZpbmFsaXplX2xkdF9zdHJ1Y3Qg b24gdGhlIHJlc3VsdC4gTERUIHN0YXJ0cyB6ZXJvZWQuICovCitzdGF0aWMgc3RydWN0IGxkdF9z dHJ1Y3QgKmFsbG9jX2xkdF9zdHJ1Y3QoaW50IHNpemUpCiB7Ci0Jdm9pZCAqb2xkbGR0LCAqbmV3 bGR0OwotCWludCBvbGRzaXplOwotCi0JaWYgKG1pbmNvdW50IDw9IHBjLT5zaXplKQotCQlyZXR1 cm4gMDsKLQlvbGRzaXplID0gcGMtPnNpemU7Ci0JbWluY291bnQgPSAobWluY291bnQgKyAoUEFH RV9TSVpFIC8gTERUX0VOVFJZX1NJWkUgLSAxKSkgJgotCQkJKH4oUEFHRV9TSVpFIC8gTERUX0VO VFJZX1NJWkUgLSAxKSk7Ci0JaWYgKG1pbmNvdW50ICogTERUX0VOVFJZX1NJWkUgPiBQQUdFX1NJ WkUpCi0JCW5ld2xkdCA9IHZtYWxsb2MobWluY291bnQgKiBMRFRfRU5UUllfU0laRSk7CisJc3Ry dWN0IGxkdF9zdHJ1Y3QgKm5ld19sZHQ7CisJaW50IGFsbG9jX3NpemU7CisKKwlpZiAoc2l6ZSA+ IExEVF9FTlRSSUVTKQorCQlyZXR1cm4gTlVMTDsKKworCW5ld19sZHQgPSBrbWFsbG9jKHNpemVv ZihzdHJ1Y3QgbGR0X3N0cnVjdCksIEdGUF9LRVJORUwpOworCWlmICghbmV3X2xkdCkKKwkJcmV0 dXJuIE5VTEw7CisKKwlCVUlMRF9CVUdfT04oTERUX0VOVFJZX1NJWkUgIT0gc2l6ZW9mKHN0cnVj dCBkZXNjX3N0cnVjdCkpOworCWFsbG9jX3NpemUgPSBzaXplICogTERUX0VOVFJZX1NJWkU7CisK KwkvKgorCSAqIFhlbiBpcyB2ZXJ5IHBpY2t5OiBpdCByZXF1aXJlcyBhIHBhZ2UtYWxpZ25lZCBM RFQgdGhhdCBoYXMgbm8KKwkgKiB0cmFpbGluZyBub256ZXJvIGJ5dGVzIGluIGFueSBwYWdlIHRo YXQgY29udGFpbnMgTERUIGRlc2NyaXB0b3JzLgorCSAqIEtlZXAgaXQgc2ltcGxlOiB6ZXJvIHRo ZSB3aG9sZSBhbGxvY2F0aW9uIGFuZCBuZXZlciBhbGxvY2F0ZSBsZXNzCisJICogdGhhbiBQQUdF X1NJWkUuCisJICovCisJaWYgKGFsbG9jX3NpemUgPiBQQUdFX1NJWkUpCisJCW5ld19sZHQtPmVu dHJpZXMgPSB2emFsbG9jKGFsbG9jX3NpemUpOwogCWVsc2UKLQkJbmV3bGR0ID0gKHZvaWQgKilf X2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCk7Ci0KLQlpZiAoIW5ld2xkdCkKLQkJcmV0dXJuIC1F Tk9NRU07CisJCW5ld19sZHQtPmVudHJpZXMgPSBremFsbG9jKFBBR0VfU0laRSwgR0ZQX0tFUk5F TCk7CiAKLQlpZiAob2xkc2l6ZSkKLQkJbWVtY3B5KG5ld2xkdCwgcGMtPmxkdCwgb2xkc2l6ZSAq IExEVF9FTlRSWV9TSVpFKTsKLQlvbGRsZHQgPSBwYy0+bGR0OwotCW1lbXNldChuZXdsZHQgKyBv bGRzaXplICogTERUX0VOVFJZX1NJWkUsIDAsCi0JICAgICAgIChtaW5jb3VudCAtIG9sZHNpemUp ICogTERUX0VOVFJZX1NJWkUpOworCWlmICghbmV3X2xkdC0+ZW50cmllcykgeworCQlrZnJlZShu ZXdfbGR0KTsKKwkJcmV0dXJuIE5VTEw7CisJfQogCi0JcGFyYXZpcnRfYWxsb2NfbGR0KG5ld2xk dCwgbWluY291bnQpOworCW5ld19sZHQtPnNpemUgPSBzaXplOworCXJldHVybiBuZXdfbGR0Owor fQogCi0jaWZkZWYgQ09ORklHX1g4Nl82NAotCS8qIENIRUNLTUU6IERvIHdlIHJlYWxseSBuZWVk IHRoaXMgPyAqLwotCXdtYigpOwotI2VuZGlmCi0JcGMtPmxkdCA9IG5ld2xkdDsKLQl3bWIoKTsK LQlwYy0+c2l6ZSA9IG1pbmNvdW50OwotCXdtYigpOwotCi0JaWYgKHJlbG9hZCkgewotI2lmZGVm IENPTkZJR19TTVAKLQkJcHJlZW1wdF9kaXNhYmxlKCk7Ci0JCWxvYWRfTERUKHBjKTsKLQkJaWYg KCFjcHVtYXNrX2VxdWFsKG1tX2NwdW1hc2soY3VycmVudC0+bW0pLAotCQkJCSAgIGNwdW1hc2tf b2Yoc21wX3Byb2Nlc3Nvcl9pZCgpKSkpCi0JCQlzbXBfY2FsbF9mdW5jdGlvbihmbHVzaF9sZHQs IGN1cnJlbnQtPm1tLCAxKTsKLQkJcHJlZW1wdF9lbmFibGUoKTsKLSNlbHNlCi0JCWxvYWRfTERU KHBjKTsKLSNlbmRpZgotCX0KLQlpZiAob2xkc2l6ZSkgewotCQlwYXJhdmlydF9mcmVlX2xkdChv bGRsZHQsIG9sZHNpemUpOwotCQlpZiAob2xkc2l6ZSAqIExEVF9FTlRSWV9TSVpFID4gUEFHRV9T SVpFKQotCQkJdmZyZWUob2xkbGR0KTsKLQkJZWxzZQotCQkJcHV0X3BhZ2UodmlydF90b19wYWdl KG9sZGxkdCkpOwotCX0KLQlyZXR1cm4gMDsKKy8qIEFmdGVyIGNhbGxpbmcgdGhpcywgdGhlIExE VCBpcyBpbW11dGFibGUuICovCitzdGF0aWMgdm9pZCBmaW5hbGl6ZV9sZHRfc3RydWN0KHN0cnVj dCBsZHRfc3RydWN0ICpsZHQpCit7CisJcGFyYXZpcnRfYWxsb2NfbGR0KGxkdC0+ZW50cmllcywg bGR0LT5zaXplKTsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgY29weV9sZHQobW1fY29udGV4dF90 ICpuZXcsIG1tX2NvbnRleHRfdCAqb2xkKQorLyogY29udGV4dC5sb2NrIGlzIGhlbGQgKi8KK3N0 YXRpYyB2b2lkIGluc3RhbGxfbGR0KHN0cnVjdCBtbV9zdHJ1Y3QgKmN1cnJlbnRfbW0sCisJCQlz dHJ1Y3QgbGR0X3N0cnVjdCAqbGR0KQogewotCWludCBlcnIgPSBhbGxvY19sZHQobmV3LCBvbGQt PnNpemUsIDApOwotCWludCBpOworCS8qIFN5bmNocm9uaXplcyB3aXRoIHNtcF9yZWFkX2JhcnJp ZXJfZGVwZW5kcyBpbiBsb2FkX21tX2xkdC4gKi8KKyAgICAgICAgYmFycmllcigpOworICAgICAg ICBBQ0NFU1NfT05DRShjdXJyZW50X21tLT5jb250ZXh0LmxkdCkgPSBsZHQ7CisKKwkvKiBBY3Rp dmF0ZSB0aGUgTERUIGZvciBhbGwgQ1BVcyB1c2luZyBjdXJyZW50X21tLiAqLworCXNtcF9jYWxs X2Z1bmN0aW9uX21hbnkobW1fY3B1bWFzayhjdXJyZW50X21tKSwgZmx1c2hfbGR0LCBjdXJyZW50 X21tLAorCQkJICAgICAgIHRydWUpOworCWxvY2FsX2lycV9kaXNhYmxlKCk7CisJZmx1c2hfbGR0 KGN1cnJlbnRfbW0pOworCWxvY2FsX2lycV9lbmFibGUoKTsKK30KIAotCWlmIChlcnIgPCAwKQot CQlyZXR1cm4gZXJyOworc3RhdGljIHZvaWQgZnJlZV9sZHRfc3RydWN0KHN0cnVjdCBsZHRfc3Ry dWN0ICpsZHQpCit7CisJaWYgKGxpa2VseSghbGR0KSkKKwkJcmV0dXJuOwogCi0JZm9yIChpID0g MDsgaSA8IG9sZC0+c2l6ZTsgaSsrKQotCQl3cml0ZV9sZHRfZW50cnkobmV3LT5sZHQsIGksIG9s ZC0+bGR0ICsgaSAqIExEVF9FTlRSWV9TSVpFKTsKLQlyZXR1cm4gMDsKKwlwYXJhdmlydF9mcmVl X2xkdChsZHQtPmVudHJpZXMsIGxkdC0+c2l6ZSk7CisJaWYgKGxkdC0+c2l6ZSAqIExEVF9FTlRS WV9TSVpFID4gUEFHRV9TSVpFKQorCQl2ZnJlZShsZHQtPmVudHJpZXMpOworCWVsc2UKKwkJa2Zy ZWUobGR0LT5lbnRyaWVzKTsKKwlrZnJlZShsZHQpOwogfQogCiAvKgpAQCAtMTA1LDE3ICsxMTEs MzcgQEAgc3RhdGljIGlubGluZSBpbnQgY29weV9sZHQobW1fY29udGV4dF90ICpuZXcsIG1tX2Nv bnRleHRfdCAqb2xkKQogICovCiBpbnQgaW5pdF9uZXdfY29udGV4dChzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7CisJc3RydWN0IGxkdF9zdHJ1Y3QgKm5l d19sZHQ7CiAJc3RydWN0IG1tX3N0cnVjdCAqb2xkX21tOwogCWludCByZXR2YWwgPSAwOwogCiAJ bXV0ZXhfaW5pdCgmbW0tPmNvbnRleHQubG9jayk7Ci0JbW0tPmNvbnRleHQuc2l6ZSA9IDA7CiAJ b2xkX21tID0gY3VycmVudC0+bW07Ci0JaWYgKG9sZF9tbSAmJiBvbGRfbW0tPmNvbnRleHQuc2l6 ZSA+IDApIHsKLQkJbXV0ZXhfbG9jaygmb2xkX21tLT5jb250ZXh0LmxvY2spOwotCQlyZXR2YWwg PSBjb3B5X2xkdCgmbW0tPmNvbnRleHQsICZvbGRfbW0tPmNvbnRleHQpOwotCQltdXRleF91bmxv Y2soJm9sZF9tbS0+Y29udGV4dC5sb2NrKTsKKwlpZiAoIW9sZF9tbSkgeworCQltbS0+Y29udGV4 dC5sZHQgPSBOVUxMOworCQlyZXR1cm4gMDsKKwl9CisKKwltdXRleF9sb2NrKCZvbGRfbW0tPmNv bnRleHQubG9jayk7CisJaWYgKCFvbGRfbW0tPmNvbnRleHQubGR0KSB7CisJCW1tLT5jb250ZXh0 LmxkdCA9IE5VTEw7CisJCWdvdG8gb3V0X3VubG9jazsKIAl9CisKKwluZXdfbGR0ID0gYWxsb2Nf bGR0X3N0cnVjdChvbGRfbW0tPmNvbnRleHQubGR0LT5zaXplKTsKKwlpZiAoIW5ld19sZHQpIHsK KwkJcmV0dmFsID0gLUVOT01FTTsKKwkJZ290byBvdXRfdW5sb2NrOworCX0KKworCW1lbWNweShu ZXdfbGR0LT5lbnRyaWVzLCBvbGRfbW0tPmNvbnRleHQubGR0LT5lbnRyaWVzLAorCSAgICAgICBu ZXdfbGR0LT5zaXplICogTERUX0VOVFJZX1NJWkUpOworCWZpbmFsaXplX2xkdF9zdHJ1Y3QobmV3 X2xkdCk7CisKKwltbS0+Y29udGV4dC5sZHQgPSBuZXdfbGR0OworCitvdXRfdW5sb2NrOgorCW11 dGV4X3VubG9jaygmb2xkX21tLT5jb250ZXh0LmxvY2spOwogCXJldHVybiByZXR2YWw7CiB9CiAK QEAgLTEyNiw1MyArMTUyLDQ3IEBAIGludCBpbml0X25ld19jb250ZXh0KHN0cnVjdCB0YXNrX3N0 cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSkKICAqLwogdm9pZCBkZXN0cm95X2NvbnRl eHQoc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7Ci0JaWYgKG1tLT5jb250ZXh0LnNpemUpIHsKLSNp ZmRlZiBDT05GSUdfWDg2XzMyCi0JCS8qIENIRUNLTUU6IENhbiB0aGlzIGV2ZXIgaGFwcGVuID8g Ki8KLQkJaWYgKG1tID09IGN1cnJlbnQtPmFjdGl2ZV9tbSkKLQkJCWNsZWFyX0xEVCgpOwotI2Vu ZGlmCi0JCXBhcmF2aXJ0X2ZyZWVfbGR0KG1tLT5jb250ZXh0LmxkdCwgbW0tPmNvbnRleHQuc2l6 ZSk7Ci0JCWlmIChtbS0+Y29udGV4dC5zaXplICogTERUX0VOVFJZX1NJWkUgPiBQQUdFX1NJWkUp Ci0JCQl2ZnJlZShtbS0+Y29udGV4dC5sZHQpOwotCQllbHNlCi0JCQlwdXRfcGFnZSh2aXJ0X3Rv X3BhZ2UobW0tPmNvbnRleHQubGR0KSk7Ci0JCW1tLT5jb250ZXh0LnNpemUgPSAwOwotCX0KKwlm cmVlX2xkdF9zdHJ1Y3QobW0tPmNvbnRleHQubGR0KTsKKwltbS0+Y29udGV4dC5sZHQgPSBOVUxM OwogfQogCiBzdGF0aWMgaW50IHJlYWRfbGR0KHZvaWQgX191c2VyICpwdHIsIHVuc2lnbmVkIGxv bmcgYnl0ZWNvdW50KQogewotCWludCBlcnI7CisJaW50IHJldHZhbDsKIAl1bnNpZ25lZCBsb25n IHNpemU7CiAJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSBjdXJyZW50LT5tbTsKIAotCWlmICghbW0t PmNvbnRleHQuc2l6ZSkKLQkJcmV0dXJuIDA7CisJbXV0ZXhfbG9jaygmbW0tPmNvbnRleHQubG9j ayk7CisKKwlpZiAoIW1tLT5jb250ZXh0LmxkdCkgeworCQlyZXR2YWwgPSAwOworCQlnb3RvIG91 dF91bmxvY2s7CisJfQorCiAJaWYgKGJ5dGVjb3VudCA+IExEVF9FTlRSWV9TSVpFICogTERUX0VO VFJJRVMpCiAJCWJ5dGVjb3VudCA9IExEVF9FTlRSWV9TSVpFICogTERUX0VOVFJJRVM7CiAKLQlt dXRleF9sb2NrKCZtbS0+Y29udGV4dC5sb2NrKTsKLQlzaXplID0gbW0tPmNvbnRleHQuc2l6ZSAq IExEVF9FTlRSWV9TSVpFOworCXNpemUgPSBtbS0+Y29udGV4dC5sZHQtPnNpemUgKiBMRFRfRU5U UllfU0laRTsKIAlpZiAoc2l6ZSA+IGJ5dGVjb3VudCkKIAkJc2l6ZSA9IGJ5dGVjb3VudDsKIAot CWVyciA9IDA7Ci0JaWYgKGNvcHlfdG9fdXNlcihwdHIsIG1tLT5jb250ZXh0LmxkdCwgc2l6ZSkp Ci0JCWVyciA9IC1FRkFVTFQ7Ci0JbXV0ZXhfdW5sb2NrKCZtbS0+Y29udGV4dC5sb2NrKTsKLQlp ZiAoZXJyIDwgMCkKLQkJZ290byBlcnJvcl9yZXR1cm47CisJaWYgKGNvcHlfdG9fdXNlcihwdHIs IG1tLT5jb250ZXh0LmxkdC0+ZW50cmllcywgc2l6ZSkpIHsKKwkJcmV0dmFsID0gLUVGQVVMVDsK KwkJZ290byBvdXRfdW5sb2NrOworCX0KKwogCWlmIChzaXplICE9IGJ5dGVjb3VudCkgewotCQkv KiB6ZXJvLWZpbGwgdGhlIHJlc3QgKi8KLQkJaWYgKGNsZWFyX3VzZXIocHRyICsgc2l6ZSwgYnl0 ZWNvdW50IC0gc2l6ZSkgIT0gMCkgewotCQkJZXJyID0gLUVGQVVMVDsKLQkJCWdvdG8gZXJyb3Jf cmV0dXJuOworCQkvKiBaZXJvLWZpbGwgdGhlIHJlc3QgYW5kIHByZXRlbmQgd2UgcmVhZCBieXRl Y291bnQgYnl0ZXMuICovCisJCWlmIChjbGVhcl91c2VyKHB0ciArIHNpemUsIGJ5dGVjb3VudCAt IHNpemUpKSB7CisJCQlyZXR2YWwgPSAtRUZBVUxUOworCQkJZ290byBvdXRfdW5sb2NrOwogCQl9 CiAJfQotCXJldHVybiBieXRlY291bnQ7Ci1lcnJvcl9yZXR1cm46Ci0JcmV0dXJuIGVycjsKKwly ZXR2YWwgPSBieXRlY291bnQ7CisKK291dF91bmxvY2s6CisJbXV0ZXhfdW5sb2NrKCZtbS0+Y29u dGV4dC5sb2NrKTsKKwlyZXR1cm4gcmV0dmFsOwogfQogCiBzdGF0aWMgaW50IHJlYWRfZGVmYXVs dF9sZHQodm9pZCBfX3VzZXIgKnB0ciwgdW5zaWduZWQgbG9uZyBieXRlY291bnQpCkBAIC0xOTYs NiArMjE2LDggQEAgc3RhdGljIGludCB3cml0ZV9sZHQodm9pZCBfX3VzZXIgKnB0ciwgdW5zaWdu ZWQgbG9uZyBieXRlY291bnQsIGludCBvbGRtb2RlKQogCXN0cnVjdCBkZXNjX3N0cnVjdCBsZHQ7 CiAJaW50IGVycm9yOwogCXN0cnVjdCB1c2VyX2Rlc2MgbGR0X2luZm87CisJaW50IG9sZHNpemUs IG5ld3NpemU7CisJc3RydWN0IGxkdF9zdHJ1Y3QgKm5ld19sZHQsICpvbGRfbGR0OwogCiAJZXJy b3IgPSAtRUlOVkFMOwogCWlmIChieXRlY291bnQgIT0gc2l6ZW9mKGxkdF9pbmZvKSkKQEAgLTIx NCwzNCArMjM2LDM5IEBAIHN0YXRpYyBpbnQgd3JpdGVfbGR0KHZvaWQgX191c2VyICpwdHIsIHVu c2lnbmVkIGxvbmcgYnl0ZWNvdW50LCBpbnQgb2xkbW9kZSkKIAkJCWdvdG8gb3V0OwogCX0KIAot CW11dGV4X2xvY2soJm1tLT5jb250ZXh0LmxvY2spOwotCWlmIChsZHRfaW5mby5lbnRyeV9udW1i ZXIgPj0gbW0tPmNvbnRleHQuc2l6ZSkgewotCQllcnJvciA9IGFsbG9jX2xkdCgmY3VycmVudC0+ bW0tPmNvbnRleHQsCi0JCQkJICBsZHRfaW5mby5lbnRyeV9udW1iZXIgKyAxLCAxKTsKLQkJaWYg KGVycm9yIDwgMCkKLQkJCWdvdG8gb3V0X3VubG9jazsKLQl9Ci0KLQkvKiBBbGxvdyBMRFRzIHRv IGJlIGNsZWFyZWQgYnkgdGhlIHVzZXIuICovCi0JaWYgKGxkdF9pbmZvLmJhc2VfYWRkciA9PSAw ICYmIGxkdF9pbmZvLmxpbWl0ID09IDApIHsKLQkJaWYgKG9sZG1vZGUgfHwgTERUX2VtcHR5KCZs ZHRfaW5mbykpIHsKLQkJCW1lbXNldCgmbGR0LCAwLCBzaXplb2YobGR0KSk7Ci0JCQlnb3RvIGlu c3RhbGw7CisJaWYgKChvbGRtb2RlICYmICFsZHRfaW5mby5iYXNlX2FkZHIgJiYgIWxkdF9pbmZv LmxpbWl0KSB8fAorCSAgICBMRFRfZW1wdHkoJmxkdF9pbmZvKSkgeworCQkvKiBUaGUgdXNlciB3 YW50cyB0byBjbGVhciB0aGUgZW50cnkuICovCisJCW1lbXNldCgmbGR0LCAwLCBzaXplb2YobGR0 KSk7CisJfSBlbHNlIHsKKwkJaWYgKCFJU19FTkFCTEVEKENPTkZJR19YODZfMTZCSVQpICYmICFs ZHRfaW5mby5zZWdfMzJiaXQpIHsKKwkJCWVycm9yID0gLUVJTlZBTDsKKwkJCWdvdG8gb3V0Owog CQl9CisKKwkJZmlsbF9sZHQoJmxkdCwgJmxkdF9pbmZvKTsKKwkJaWYgKG9sZG1vZGUpCisJCQls ZHQuYXZsID0gMDsKIAl9CiAKLQlpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1g4Nl8xNkJJVCkgJiYg IWxkdF9pbmZvLnNlZ18zMmJpdCkgewotCQllcnJvciA9IC1FSU5WQUw7CisJbXV0ZXhfbG9jaygm bW0tPmNvbnRleHQubG9jayk7CisKKwlvbGRfbGR0ID0gbW0tPmNvbnRleHQubGR0OworCW9sZHNp emUgPSBvbGRfbGR0ID8gb2xkX2xkdC0+c2l6ZSA6IDA7CisJbmV3c2l6ZSA9IG1heCgoaW50KShs ZHRfaW5mby5lbnRyeV9udW1iZXIgKyAxKSwgb2xkc2l6ZSk7CisKKwllcnJvciA9IC1FTk9NRU07 CisJbmV3X2xkdCA9IGFsbG9jX2xkdF9zdHJ1Y3QobmV3c2l6ZSk7CisJaWYgKCFuZXdfbGR0KQog CQlnb3RvIG91dF91bmxvY2s7Ci0JfQogCi0JZmlsbF9sZHQoJmxkdCwgJmxkdF9pbmZvKTsKLQlp ZiAob2xkbW9kZSkKLQkJbGR0LmF2bCA9IDA7CisJaWYgKG9sZF9sZHQpCisJCW1lbWNweShuZXdf bGR0LT5lbnRyaWVzLCBvbGRfbGR0LT5lbnRyaWVzLCBvbGRzaXplICogTERUX0VOVFJZX1NJWkUp OworCW5ld19sZHQtPmVudHJpZXNbbGR0X2luZm8uZW50cnlfbnVtYmVyXSA9IGxkdDsKKwlmaW5h bGl6ZV9sZHRfc3RydWN0KG5ld19sZHQpOwogCi0JLyogSW5zdGFsbCB0aGUgbmV3IGVudHJ5IC4u LiAgKi8KLWluc3RhbGw6Ci0Jd3JpdGVfbGR0X2VudHJ5KG1tLT5jb250ZXh0LmxkdCwgbGR0X2lu Zm8uZW50cnlfbnVtYmVyLCAmbGR0KTsKKwlpbnN0YWxsX2xkdChtbSwgbmV3X2xkdCk7CisJZnJl ZV9sZHRfc3RydWN0KG9sZF9sZHQpOwogCWVycm9yID0gMDsKIAogb3V0X3VubG9jazoKZGlmZiAt LWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wYXJhdmlydC5jIGIvYXJjaC94ODYva2VybmVsL3BhcmF2 aXJ0LmMKaW5kZXggODRjOTM4Zi4uYWY1YjY3NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVs L3BhcmF2aXJ0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMKQEAgLTM4LDEwICsz OCwxOCBAQAogI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPgogI2luY2x1ZGUgPGFzbS90aW1lci5o PgogCi0vKiBub3Agc3R1YiAqLwotdm9pZCBfcGFyYXZpcnRfbm9wKHZvaWQpCi17Ci19CisvKgor ICogbm9wIHN0dWIsIHdoaWNoIG11c3Qgbm90IGNsb2JiZXIgYW55dGhpbmcgKmluY2x1ZGluZyB0 aGUgc3RhY2sqIHRvCisgKiBhdm9pZCBjb25mdXNpbmcgdGhlIGVudHJ5IHByb2xvZ3Vlcy4KKyAq LworZXh0ZXJuIHZvaWQgX3BhcmF2aXJ0X25vcCh2b2lkKTsKK2FzbSAoIi5wdXNoc2VjdGlvbiAu ZW50cnkudGV4dCwgXCJheFwiXG4iCisgICAgICIuZ2xvYmFsIF9wYXJhdmlydF9ub3BcbiIKKyAg ICAgIl9wYXJhdmlydF9ub3A6XG5cdCIKKyAgICAgInJldFxuXHQiCisgICAgICIuc2l6ZSBfcGFy YXZpcnRfbm9wLCAuIC0gX3BhcmF2aXJ0X25vcFxuXHQiCisgICAgICIudHlwZSBfcGFyYXZpcnRf bm9wLCBAZnVuY3Rpb25cblx0IgorICAgICAiLnBvcHNlY3Rpb24iKTsKIAogLyogaWRlbnRpdHkg ZnVuY3Rpb24sIHdoaWNoIGNhbiBiZSBpbmxpbmVkICovCiB1MzIgX3BhcmF2aXJ0X2lkZW50XzMy KHUzMiB4KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfNjQuYyBiL2FyY2gv eDg2L2tlcm5lbC9wcm9jZXNzXzY0LmMKaW5kZXggZTM2MTA5NS4uN2U5NGFiZCAxMDA2NDQKLS0t IGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcHJv Y2Vzc182NC5jCkBAIC0yMTgsMTEgKzIxOCwxMSBAQCB2b2lkIF9fc2hvd19yZWdzKHN0cnVjdCBw dF9yZWdzICpyZWdzLCBpbnQgYWxsKQogdm9pZCByZWxlYXNlX3RocmVhZChzdHJ1Y3QgdGFza19z dHJ1Y3QgKmRlYWRfdGFzaykKIHsKIAlpZiAoZGVhZF90YXNrLT5tbSkgewotCQlpZiAoZGVhZF90 YXNrLT5tbS0+Y29udGV4dC5zaXplKSB7CisJCWlmIChkZWFkX3Rhc2stPm1tLT5jb250ZXh0Lmxk dCkgewogCQkJcHJpbnRrKCJXQVJOSU5HOiBkZWFkIHByb2Nlc3MgJThzIHN0aWxsIGhhcyBMRFQ/ IDwlcC8lZD5cbiIsCiAJCQkJCWRlYWRfdGFzay0+Y29tbSwKIAkJCQkJZGVhZF90YXNrLT5tbS0+ Y29udGV4dC5sZHQsCi0JCQkJCWRlYWRfdGFzay0+bW0tPmNvbnRleHQuc2l6ZSk7CisJCQkJCWRl YWRfdGFzay0+bW0tPmNvbnRleHQubGR0LT5zaXplKTsKIAkJCUJVRygpOwogCQl9CiAJfQpkaWZm IC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3N0ZXAuYyBiL2FyY2gveDg2L2tlcm5lbC9zdGVwLmMK aW5kZXggZDRmMjc4ZS4uYmZlNmExNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3N0ZXAu YworKysgYi9hcmNoL3g4Ni9rZXJuZWwvc3RlcC5jCkBAIC01LDYgKzUsNyBAQAogI2luY2x1ZGUg PGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+CiAjaW5jbHVkZSA8YXNtL2Rl c2MuaD4KKyNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KIAogdW5zaWduZWQgbG9uZyBjb252 ZXJ0X2lwX3RvX2xpbmVhcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBzdHJ1Y3QgcHRfcmVn cyAqcmVncykKIHsKQEAgLTI3LDEzICsyOCwxNCBAQCB1bnNpZ25lZCBsb25nIGNvbnZlcnRfaXBf dG9fbGluZWFyKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIHN0cnVjdCBwdF9yZWdzICpyZQog CQlzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmRlc2M7CiAJCXVuc2lnbmVkIGxvbmcgYmFzZTsKIAotCQlz ZWcgJj0gfjdVTDsKKwkJc2VnID4+PSAzOwogCiAJCW11dGV4X2xvY2soJmNoaWxkLT5tbS0+Y29u dGV4dC5sb2NrKTsKLQkJaWYgKHVubGlrZWx5KChzZWcgPj4gMykgPj0gY2hpbGQtPm1tLT5jb250 ZXh0LnNpemUpKQorCQlpZiAodW5saWtlbHkoIWNoaWxkLT5tbS0+Y29udGV4dC5sZHQgfHwKKwkJ CSAgICAgc2VnID49IGNoaWxkLT5tbS0+Y29udGV4dC5sZHQtPnNpemUpKQogCQkJYWRkciA9IC0x TDsgLyogYm9ndXMgc2VsZWN0b3IsIGFjY2VzcyB3b3VsZCBmYXVsdCAqLwogCQllbHNlIHsKLQkJ CWRlc2MgPSBjaGlsZC0+bW0tPmNvbnRleHQubGR0ICsgc2VnOworCQkJZGVzYyA9ICZjaGlsZC0+ bW0tPmNvbnRleHQubGR0LT5lbnRyaWVzW3NlZ107CiAJCQliYXNlID0gZ2V0X2Rlc2NfYmFzZShk ZXNjKTsKIAogCQkJLyogMTYtYml0IGNvZGUgc2VnbWVudD8gKi8KZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2tlcm5lbC90c2MuYyBiL2FyY2gveDg2L2tlcm5lbC90c2MuYwppbmRleCA5ZjM3MDZlLi5l ODE3N2IxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdHNjLmMKKysrIGIvYXJjaC94ODYv a2VybmVsL3RzYy5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8YXNtL2h5cGVydmlzb3Iu aD4KICNpbmNsdWRlIDxhc20vbm1pLmg+CiAjaW5jbHVkZSA8YXNtL3g4Nl9pbml0Lmg+CisjaW5j bHVkZSA8YXNtL2dlb2RlLmg+CiAKIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IGNwdV9raHo7 CS8qIFRTQyBjbG9ja3MgLyB1c2VjLCBub3QgdXNlZCBoZXJlICovCiBFWFBPUlRfU1lNQk9MKGNw dV9raHopOwpAQCAtODAyLDE1ICs4MDMsMTcgQEAgRVhQT1JUX1NZTUJPTF9HUEwobWFya190c2Nf dW5zdGFibGUpOwogCiBzdGF0aWMgdm9pZCBfX2luaXQgY2hlY2tfc3lzdGVtX3RzY19yZWxpYWJs ZSh2b2lkKQogewotI2lmZGVmIENPTkZJR19NR0VPREVfTFgKLQkvKiBSVFNDIGNvdW50cyBkdXJp bmcgc3VzcGVuZCAqLworI2lmIGRlZmluZWQoQ09ORklHX01HRU9ERUdYMSkgfHwgZGVmaW5lZChD T05GSUdfTUdFT0RFX0xYKSB8fCBkZWZpbmVkKENPTkZJR19YODZfR0VORVJJQykKKwlpZiAoaXNf Z2VvZGVfbHgoKSkgeworCQkvKiBSVFNDIGNvdW50cyBkdXJpbmcgc3VzcGVuZCAqLwogI2RlZmlu ZSBSVFNDX1NVU1AgMHgxMDAKLQl1bnNpZ25lZCBsb25nIHJlc19sb3csIHJlc19oaWdoOworCQl1 bnNpZ25lZCBsb25nIHJlc19sb3csIHJlc19oaWdoOwogCi0JcmRtc3Jfc2FmZShNU1JfR0VPREVf QlVTQ09OVF9DT05GMCwgJnJlc19sb3csICZyZXNfaGlnaCk7Ci0JLyogR2VvZGVfTFggLSB0aGUg T0xQQyBDUFUgaGFzIGEgdmVyeSByZWxpYWJsZSBUU0MgKi8KLQlpZiAocmVzX2xvdyAmIFJUU0Nf U1VTUCkKLQkJdHNjX2Nsb2Nrc291cmNlX3JlbGlhYmxlID0gMTsKKwkJcmRtc3Jfc2FmZShNU1Jf R0VPREVfQlVTQ09OVF9DT05GMCwgJnJlc19sb3csICZyZXNfaGlnaCk7CisJCS8qIEdlb2RlX0xY IC0gdGhlIE9MUEMgQ1BVIGhhcyBhIHZlcnkgcmVsaWFibGUgVFNDICovCisJCWlmIChyZXNfbG93 ICYgUlRTQ19TVVNQKQorCQkJdHNjX2Nsb2Nrc291cmNlX3JlbGlhYmxlID0gMTsKKwl9CiAjZW5k aWYKIAlpZiAoYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1RTQ19SRUxJQUJMRSkpCiAJCXRzY19j bG9ja3NvdXJjZV9yZWxpYWJsZSA9IDE7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vbW11LmMg Yi9hcmNoL3g4Ni9rdm0vbW11LmMKaW5kZXggNGE5NDljNy4uY2FjN2IyYiAxMDA2NDQKLS0tIGEv YXJjaC94ODYva3ZtL21tdS5jCisrKyBiL2FyY2gveDg2L2t2bS9tbXUuYwpAQCAtMzI2LDEyICsz MjYsNiBAQCBzdGF0aWMgdTY0IF9fZ2V0X3NwdGVfbG9ja2xlc3ModTY0ICpzcHRlcCkKIHsKIAly ZXR1cm4gQUNDRVNTX09OQ0UoKnNwdGVwKTsKIH0KLQotc3RhdGljIGJvb2wgX19jaGVja19kaXJl Y3Rfc3B0ZV9tbWlvX3BmKHU2NCBzcHRlKQotewotCS8qIEl0IGlzIHZhbGlkIGlmIHRoZSBzcHRl IGlzIHphcHBlZC4gKi8KLQlyZXR1cm4gc3B0ZSA9PSAwdWxsOwotfQogI2Vsc2UKIHVuaW9uIHNw bGl0X3NwdGUgewogCXN0cnVjdCB7CkBAIC00MzYsMjMgKzQzMCw2IEBAIHJldHJ5OgogCiAJcmV0 dXJuIHNwdGUuc3B0ZTsKIH0KLQotc3RhdGljIGJvb2wgX19jaGVja19kaXJlY3Rfc3B0ZV9tbWlv X3BmKHU2NCBzcHRlKQotewotCXVuaW9uIHNwbGl0X3NwdGUgc3NwdGUgPSAodW5pb24gc3BsaXRf c3B0ZSlzcHRlOwotCXUzMiBoaWdoX21taW9fbWFzayA9IHNoYWRvd19tbWlvX21hc2sgPj4gMzI7 Ci0KLQkvKiBJdCBpcyB2YWxpZCBpZiB0aGUgc3B0ZSBpcyB6YXBwZWQuICovCi0JaWYgKHNwdGUg PT0gMHVsbCkKLQkJcmV0dXJuIHRydWU7Ci0KLQkvKiBJdCBpcyB2YWxpZCBpZiB0aGUgc3B0ZSBp cyBiZWluZyB6YXBwZWQuICovCi0JaWYgKHNzcHRlLnNwdGVfbG93ID09IDB1bGwgJiYKLQkgICAg KHNzcHRlLnNwdGVfaGlnaCAmIGhpZ2hfbW1pb19tYXNrKSA9PSBoaWdoX21taW9fbWFzaykKLQkJ cmV0dXJuIHRydWU7Ci0KLQlyZXR1cm4gZmFsc2U7Ci19CiAjZW5kaWYKIAogc3RhdGljIGJvb2wg c3B0ZV9oYXNfdm9sYXRpbGVfYml0cyh1NjQgc3B0ZSkKQEAgLTI4OTUsMjEgKzI4NzIsNiBAQCBz dGF0aWMgYm9vbCBxdWlja2x5X2NoZWNrX21taW9fcGYoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1 NjQgYWRkciwgYm9vbCBkaXJlY3QpCiAJcmV0dXJuIHZjcHVfbWF0Y2hfbW1pb19ndmEodmNwdSwg YWRkcik7CiB9CiAKLQotLyoKLSAqIE9uIGRpcmVjdCBob3N0cywgdGhlIGxhc3Qgc3B0ZSBpcyBv bmx5IGFsbG93cyB0d28gc3RhdGVzCi0gKiBmb3IgbW1pbyBwYWdlIGZhdWx0OgotICogICAtIEl0 IGlzIHRoZSBtbWlvIHNwdGUKLSAqICAgLSBJdCBpcyB6YXBwZWQgb3IgaXQgaXMgYmVpbmcgemFw cGVkLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gY29tcGxldGVseSBjaGVja3MgdGhlIHNwdGUgd2hl biB0aGUgbGFzdCBzcHRlCi0gKiBpcyBub3QgdGhlIG1taW8gc3B0ZS4KLSAqLwotc3RhdGljIGJv b2wgY2hlY2tfZGlyZWN0X3NwdGVfbW1pb19wZih1NjQgc3B0ZSkKLXsKLQlyZXR1cm4gX19jaGVj a19kaXJlY3Rfc3B0ZV9tbWlvX3BmKHNwdGUpOwotfQotCiBzdGF0aWMgdTY0IHdhbGtfc2hhZG93 X3BhZ2VfZ2V0X21taW9fc3B0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBhZGRyKQogewog CXN0cnVjdCBrdm1fc2hhZG93X3dhbGtfaXRlcmF0b3IgaXRlcmF0b3I7CkBAIC0yOTUxLDEzICsy OTEzLDYgQEAgaW50IGhhbmRsZV9tbWlvX3BhZ2VfZmF1bHRfY29tbW9uKHN0cnVjdCBrdm1fdmNw dSAqdmNwdSwgdTY0IGFkZHIsIGJvb2wgZGlyZWN0KQogCX0KIAogCS8qCi0JICogSXQncyBvayBp ZiB0aGUgZ3ZhIGlzIHJlbWFwcGVkIGJ5IG90aGVyIGNwdXMgb24gc2hhZG93IGd1ZXN0LAotCSAq IGl0J3MgYSBCVUcgaWYgdGhlIGdmbiBpcyBub3QgYSBtbWlvIHBhZ2UuCi0JICovCi0JaWYgKGRp cmVjdCAmJiAhY2hlY2tfZGlyZWN0X3NwdGVfbW1pb19wZihzcHRlKSkKLQkJcmV0dXJuIC0xOwot Ci0JLyoKIAkgKiBJZiB0aGUgcGFnZSB0YWJsZSBpcyB6YXBwZWQgYnkgb3RoZXIgY3B1cywgbGV0 IENQVSBmYXVsdCBhZ2FpbiBvbgogCSAqIHRoZSBhZGRyZXNzLgogCSAqLwpkaWZmIC0tZ2l0IGEv YXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IGJiMTc5Y2MuLjBl MzI4OWIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYworKysgYi9hcmNoL3g4Ni9rdm0v eDg2LmMKQEAgLTE4ODUsNiArMTg4NSw4IEBAIGludCBrdm1fZ2V0X21zcl9jb21tb24oc3RydWN0 IGt2bV92Y3B1ICp2Y3B1LCB1MzIgbXNyLCB1NjQgKnBkYXRhKQogCWNhc2UgTVNSX0lBMzJfTEFT VElOVEZST01JUDoKIAljYXNlIE1TUl9JQTMyX0xBU1RJTlRUT0lQOgogCWNhc2UgTVNSX0s4X1NZ U0NGRzoKKwljYXNlIE1TUl9LOF9UU0VHX0FERFI6CisJY2FzZSBNU1JfSzhfVFNFR19NQVNLOgog CWNhc2UgTVNSX0s3X0hXQ1I6CiAJY2FzZSBNU1JfVk1fSFNBVkVfUEE6CiAJY2FzZSBNU1JfUDZf UEVSRkNUUjA6CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYXRoLWVtdS9mcHVfZW50cnkuYyBiL2Fy Y2gveDg2L21hdGgtZW11L2ZwdV9lbnRyeS5jCmluZGV4IDc3MTg1NDEuLmRhYjFmOGIgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L21hdGgtZW11L2ZwdV9lbnRyeS5jCisrKyBiL2FyY2gveDg2L21hdGgt ZW11L2ZwdV9lbnRyeS5jCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSA8bGludXgvcmVnc2V0 Lmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgotI2luY2x1ZGUgPGFzbS9kZXNjLmg+CiAj aW5jbHVkZSA8YXNtL3VzZXIuaD4KICNpbmNsdWRlIDxhc20vaTM4Ny5oPgogCkBAIC0xODQsNyAr MTgzLDcgQEAgdm9pZCBtYXRoX2VtdWxhdGUoc3RydWN0IG1hdGhfZW11X2luZm8gKmluZm8pCiAJ CQltYXRoX2Fib3J0KEZQVV9pbmZvLCBTSUdJTEwpOwogCQl9CiAKLQkJY29kZV9kZXNjcmlwdG9y ID0gTERUX0RFU0NSSVBUT1IoRlBVX0NTKTsKKwkJY29kZV9kZXNjcmlwdG9yID0gRlBVX2dldF9s ZHRfZGVzY3JpcHRvcihGUFVfQ1MpOwogCQlpZiAoU0VHX0RfU0laRShjb2RlX2Rlc2NyaXB0b3Ip KSB7CiAJCQkvKiBUaGUgYWJvdmUgdGVzdCBtYXkgYmUgd3JvbmcsIHRoZSBib29rIGlzIG5vdCBj bGVhciAqLwogCQkJLyogU2VnbWVudGVkIDMyIGJpdCBwcm90ZWN0ZWQgbW9kZSAqLwpkaWZmIC0t Z2l0IGEvYXJjaC94ODYvbWF0aC1lbXUvZnB1X3N5c3RlbS5oIGIvYXJjaC94ODYvbWF0aC1lbXUv ZnB1X3N5c3RlbS5oCmluZGV4IDJjNjE0NDEuLmQzNDJmY2UgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2 L21hdGgtZW11L2ZwdV9zeXN0ZW0uaAorKysgYi9hcmNoL3g4Ni9tYXRoLWVtdS9mcHVfc3lzdGVt LmgKQEAgLTE2LDkgKzE2LDI0IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVk ZSA8bGludXgvbW0uaD4KIAotLyogcyBpcyBhbHdheXMgZnJvbSBhIGNwdSByZWdpc3RlciwgYW5k IHRoZSBjcHUgZG9lcyBib3VuZHMgY2hlY2tpbmcKLSAqIGR1cmluZyByZWdpc3RlciBsb2FkIC0t PiBubyBmdXJ0aGVyIGJvdW5kcyBjaGVja3MgbmVlZGVkICovCi0jZGVmaW5lIExEVF9ERVNDUklQ VE9SKHMpCSgoKHN0cnVjdCBkZXNjX3N0cnVjdCAqKWN1cnJlbnQtPm1tLT5jb250ZXh0LmxkdClb KHMpID4+IDNdKQorI2luY2x1ZGUgPGFzbS9kZXNjLmg+CisjaW5jbHVkZSA8YXNtL21tdV9jb250 ZXh0Lmg+CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRlc2Nfc3RydWN0IEZQVV9nZXRfbGR0X2Rl c2NyaXB0b3IodW5zaWduZWQgc2VnKQoreworCXN0YXRpYyBzdHJ1Y3QgZGVzY19zdHJ1Y3QgemVy b19kZXNjOworCXN0cnVjdCBkZXNjX3N0cnVjdCByZXQgPSB6ZXJvX2Rlc2M7CisKKyNpZmRlZiBD T05GSUdfTU9ESUZZX0xEVF9TWVNDQUxMCisJc2VnID4+PSAzOworCW11dGV4X2xvY2soJmN1cnJl bnQtPm1tLT5jb250ZXh0LmxvY2spOworCWlmIChjdXJyZW50LT5tbS0+Y29udGV4dC5sZHQgJiYg c2VnIDwgY3VycmVudC0+bW0tPmNvbnRleHQubGR0LT5zaXplKQorCQlyZXQgPSBjdXJyZW50LT5t bS0+Y29udGV4dC5sZHQtPmVudHJpZXNbc2VnXTsKKwltdXRleF91bmxvY2soJmN1cnJlbnQtPm1t LT5jb250ZXh0LmxvY2spOworI2VuZGlmCisJcmV0dXJuIHJldDsKK30KKwogI2RlZmluZSBTRUdf RF9TSVpFKHgpCQkoKHgpLmIgJiAoMyA8PCAyMSkpCiAjZGVmaW5lIFNFR19HX0JJVCh4KQkJKCh4 KS5iICYgKDEgPDwgMjMpKQogI2RlZmluZSBTRUdfR1JBTlVMQVJJVFkoeCkJKCgoeCkuYiAmICgx IDw8IDIzKSkgPyA0MDk2IDogMSkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hdGgtZW11L2dldF9h ZGRyZXNzLmMgYi9hcmNoL3g4Ni9tYXRoLWVtdS9nZXRfYWRkcmVzcy5jCmluZGV4IDZlZjVlOTku LjgzMDBkYjcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21hdGgtZW11L2dldF9hZGRyZXNzLmMKKysr IGIvYXJjaC94ODYvbWF0aC1lbXUvZ2V0X2FkZHJlc3MuYwpAQCAtMjAsNyArMjAsNiBAQAogI2lu Y2x1ZGUgPGxpbnV4L3N0ZGRlZi5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KLSNpbmNs dWRlIDxhc20vZGVzYy5oPgogCiAjaW5jbHVkZSAiZnB1X3N5c3RlbS5oIgogI2luY2x1ZGUgImV4 Y2VwdGlvbi5oIgpAQCAtMTU4LDcgKzE1Nyw3IEBAIHN0YXRpYyBsb25nIHBtX2FkZHJlc3ModV9j aGFyIEZQVV9tb2RybSwgdV9jaGFyIHNlZ21lbnQsCiAJCWFkZHItPnNlbGVjdG9yID0gUE1fUkVH XyhzZWdtZW50KTsKIAl9CiAKLQlkZXNjcmlwdG9yID0gTERUX0RFU0NSSVBUT1IoUE1fUkVHXyhz ZWdtZW50KSk7CisJZGVzY3JpcHRvciA9IEZQVV9nZXRfbGR0X2Rlc2NyaXB0b3IoYWRkci0+c2Vs ZWN0b3IpOwogCWJhc2VfYWRkcmVzcyA9IFNFR19CQVNFX0FERFIoZGVzY3JpcHRvcik7CiAJYWRk cmVzcyA9IGJhc2VfYWRkcmVzcyArIG9mZnNldDsKIAlsaW1pdCA9IGJhc2VfYWRkcmVzcwpkaWZm IC0tZ2l0IGEvYXJjaC94ODYvcG93ZXIvY3B1LmMgYi9hcmNoL3g4Ni9wb3dlci9jcHUuYwppbmRl eCA0M2M5ZjZhLi5iYzIxOTA5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wb3dlci9jcHUuYworKysg Yi9hcmNoL3g4Ni9wb3dlci9jcHUuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGFzbS94 Y3IuaD4KICNpbmNsdWRlIDxhc20vc3VzcGVuZC5oPgogI2luY2x1ZGUgPGFzbS9kZWJ1Z3JlZy5o PgorI2luY2x1ZGUgPGFzbS9tbXVfY29udGV4dC5oPgogCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgog c3RhdGljIHN0cnVjdCBzYXZlZF9jb250ZXh0IHNhdmVkX2NvbnRleHQ7CkBAIC0xNDcsNyArMTQ4 LDcgQEAgc3RhdGljIHZvaWQgZml4X3Byb2Nlc3Nvcl9jb250ZXh0KHZvaWQpCiAJc3lzY2FsbF9p bml0KCk7CQkJCS8qIFRoaXMgc2V0cyBNU1JfKlNUQVIgYW5kIHJlbGF0ZWQgKi8KICNlbmRpZgog CWxvYWRfVFJfZGVzYygpOwkJCQkvKiBUaGlzIGRvZXMgbHRyICovCi0JbG9hZF9MRFQoJmN1cnJl bnQtPmFjdGl2ZV9tbS0+Y29udGV4dCk7CS8qIFRoaXMgZG9lcyBsbGR0ICovCisJbG9hZF9tbV9s ZHQoY3VycmVudC0+YWN0aXZlX21tKTsJLyogVGhpcyBkb2VzIGxsZHQgKi8KIH0KIAogLyoqCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2F1eGRpc3BsYXkva3MwMTA4LmMgYi9kcml2ZXJzL2F1eGRpc3Bs YXkva3MwMTA4LmMKaW5kZXggNWI5Mzg1Mi4uMGQ3NTI4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9h dXhkaXNwbGF5L2tzMDEwOC5jCisrKyBiL2RyaXZlcnMvYXV4ZGlzcGxheS9rczAxMDguYwpAQCAt MTM5LDYgKzEzOSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGtzMDEwOF9pbml0KHZvaWQpCiAKIAlr czAxMDhfcGFyZGV2aWNlID0gcGFycG9ydF9yZWdpc3Rlcl9kZXZpY2Uoa3MwMTA4X3BhcnBvcnQs IEtTMDEwOF9OQU1FLAogCQlOVUxMLCBOVUxMLCBOVUxMLCBQQVJQT1JUX0RFVl9FWENMLCBOVUxM KTsKKwlwYXJwb3J0X3B1dF9wb3J0KGtzMDEwOF9wYXJwb3J0KTsKIAlpZiAoa3MwMTA4X3BhcmRl dmljZSA9PSBOVUxMKSB7CiAJCXByaW50ayhLRVJOX0VSUiBLUzAxMDhfTkFNRSAiOiBFUlJPUjog IgogCQkJInBhcnBvcnQgZGlkbid0IHJlZ2lzdGVyIG5ldyBkZXZpY2VcbiIpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9iYXNlL2RldnJlcy5jIGIvZHJpdmVycy9iYXNlL2RldnJlcy5jCmluZGV4IDY1 Y2Q3NDguLmNjOTU2YTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmFzZS9kZXZyZXMuYworKysgYi9k cml2ZXJzL2Jhc2UvZGV2cmVzLmMKQEAgLTI1NCwxMCArMjU0LDEwIEBAIHZvaWQgKiBkZXZyZXNf Z2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqbmV3X3JlcywKIAlpZiAoIWRyKSB7CiAJCWFk ZF9kcihkZXYsICZuZXdfZHItPm5vZGUpOwogCQlkciA9IG5ld19kcjsKLQkJbmV3X2RyID0gTlVM TDsKKwkJbmV3X3JlcyA9IE5VTEw7CiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ ZGV2cmVzX2xvY2ssIGZsYWdzKTsKLQlkZXZyZXNfZnJlZShuZXdfZHIpOworCWRldnJlc19mcmVl KG5ld19yZXMpOwogCiAJcmV0dXJuIGRyLT5kYXRhOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9i YXNlL3BsYXRmb3JtLmMgYi9kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYwppbmRleCA3YTI0ODk1Li5i YThmMzYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2UvcGxhdGZvcm0uYworKysgYi9kcml2ZXJz L2Jhc2UvcGxhdGZvcm0uYwpAQCAtMzExLDkgKzMxMSw3IEBAIGludCBwbGF0Zm9ybV9kZXZpY2Vf YWRkKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAgZmFpbGVkOgogCXdoaWxlICgtLWkg Pj0gMCkgewogCQlzdHJ1Y3QgcmVzb3VyY2UgKnIgPSAmcGRldi0+cmVzb3VyY2VbaV07Ci0JCXVu c2lnbmVkIGxvbmcgdHlwZSA9IHJlc291cmNlX3R5cGUocik7Ci0KLQkJaWYgKHR5cGUgPT0gSU9S RVNPVVJDRV9NRU0gfHwgdHlwZSA9PSBJT1JFU09VUkNFX0lPKQorCQlpZiAoci0+cGFyZW50KQog CQkJcmVsZWFzZV9yZXNvdXJjZShyKTsKIAl9CiAKQEAgLTMzOCw5ICszMzYsNyBAQCB2b2lkIHBs YXRmb3JtX2RldmljZV9kZWwoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCQlmb3Ig KGkgPSAwOyBpIDwgcGRldi0+bnVtX3Jlc291cmNlczsgaSsrKSB7CiAJCQlzdHJ1Y3QgcmVzb3Vy Y2UgKnIgPSAmcGRldi0+cmVzb3VyY2VbaV07Ci0JCQl1bnNpZ25lZCBsb25nIHR5cGUgPSByZXNv dXJjZV90eXBlKHIpOwotCi0JCQlpZiAodHlwZSA9PSBJT1JFU09VUkNFX01FTSB8fCB0eXBlID09 IElPUkVTT1VSQ0VfSU8pCisJCQlpZiAoci0+cGFyZW50KQogCQkJCXJlbGVhc2VfcmVzb3VyY2Uo cik7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9peHA0eHhfY3J5cHRvLmMg Yi9kcml2ZXJzL2NyeXB0by9peHA0eHhfY3J5cHRvLmMKaW5kZXggNGMyMGM1Yi4uOGU5YThmMCAx MDA2NDQKLS0tIGEvZHJpdmVycy9jcnlwdG8vaXhwNHh4X2NyeXB0by5jCisrKyBiL2RyaXZlcnMv Y3J5cHRvL2l4cDR4eF9jcnlwdG8uYwpAQCAtOTE0LDcgKzkxNCw2IEBAIHN0YXRpYyBpbnQgYWJs a19wZXJmb3JtKHN0cnVjdCBhYmxrY2lwaGVyX3JlcXVlc3QgKnJlcSwgaW50IGVuY3J5cHQpCiAJ CWNyeXB0LT5tb2RlIHw9IE5QRV9PUF9OT1RfSU5fUExBQ0U7CiAJCS8qIFRoaXMgd2FzIG5ldmVy IHRlc3RlZCBieSBJbnRlbAogCQkgKiBmb3IgbW9yZSB0aGFuIG9uZSBkc3QgYnVmZmVyLCBJIHRo aW5rLiAqLwotCQlCVUdfT04ocmVxLT5kc3QtPmxlbmd0aCA8IG5ieXRlcyk7CiAJCXJlcV9jdHgt PmRzdCA9IE5VTEw7CiAJCWlmICghY2hhaW51cF9idWZmZXJzKGRldiwgcmVxLT5kc3QsIG5ieXRl cywgJmRzdF9ob29rLAogCQkJCQlmbGFncywgRE1BX0ZST01fREVWSUNFKSkKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCBhMGI2OWFlMC4uOWI5ZjQ0NyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtOTUwLDEz ICs5NTAsMTMgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgbGlz dF9oZWFkICpvYmplY3RzLAogCQkgIHUzMiBvbGRfd3JpdGUgPSBvYmotPmJhc2Uud3JpdGVfZG9t YWluOwogCiAKKwkJb2JqLT5kaXJ0eSA9IDE7IC8qIGJlIHBhcmFub2lkICAqLwogCQlvYmotPmJh c2UucmVhZF9kb21haW5zID0gb2JqLT5iYXNlLnBlbmRpbmdfcmVhZF9kb21haW5zOwogCQlvYmot PmJhc2Uud3JpdGVfZG9tYWluID0gb2JqLT5iYXNlLnBlbmRpbmdfd3JpdGVfZG9tYWluOwogCQlv YmotPmZlbmNlZF9ncHVfYWNjZXNzID0gb2JqLT5wZW5kaW5nX2ZlbmNlZF9ncHVfYWNjZXNzOwog CiAJCWk5MTVfZ2VtX29iamVjdF9tb3ZlX3RvX2FjdGl2ZShvYmosIHJpbmcsIHNlcW5vKTsKIAkJ aWYgKG9iai0+YmFzZS53cml0ZV9kb21haW4pIHsKLQkJCW9iai0+ZGlydHkgPSAxOwogCQkJb2Jq LT5wZW5kaW5nX2dwdV93cml0ZSA9IHRydWU7CiAJCQlsaXN0X21vdmVfdGFpbCgmb2JqLT5ncHVf d3JpdGVfbGlzdCwKIAkJCQkgICAgICAgJnJpbmctPmdwdV93cml0ZV9saXN0KTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NvbWJpb3MuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2NvbWJpb3MuYwppbmRleCAyMWU2ODlkLi44N2E2NzdlIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb21iaW9zLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29tYmlvcy5jCkBAIC0zMzk5LDYgKzMzOTksMTQg QEAgdm9pZCByYWRlb25fY29tYmlvc19hc2ljX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAkgICAgcmRldi0+cGRldi0+c3Vic3lzdGVtX2RldmljZSA9PSAweDMwYWUpCiAJCXJldHVybjsK IAorCS8qIHF1aXJrIGZvciByczR4eCBIUCBDb21wYXEgZGM1NzUwIFNtYWxsIEZvcm0gRmFjdG9y IHRvIG1ha2UgaXQgcmVzdW1lCisJICogLSBpdCBoYW5ncyBvbiByZXN1bWUgaW5zaWRlIHRoZSBk eW5jbGsgMSB0YWJsZS4KKwkgKi8KKwlpZiAocmRldi0+ZmFtaWx5ID09IENISVBfUlM0ODAgJiYK KwkgICAgcmRldi0+cGRldi0+c3Vic3lzdGVtX3ZlbmRvciA9PSAweDEwM2MgJiYKKwkgICAgcmRl di0+cGRldi0+c3Vic3lzdGVtX2RldmljZSA9PSAweDI4MGEpCisJCXJldHVybjsKKwogCS8qIERZ TiBDTEsgMSAqLwogCXRhYmxlID0gY29tYmlvc19nZXRfdGFibGVfb2Zmc2V0KGRldiwgQ09NQklP U19EWU5fQ0xLXzFfVEFCTEUpOwogCWlmICh0YWJsZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5lY3RvcnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2Nvbm5lY3RvcnMuYwppbmRleCA2ODNjZWRlMS4uNjMwM2ZjOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5lY3RvcnMuYwpAQCAtODIsNiArODIsMTEgQEAgdm9p ZCByYWRlb25fY29ubmVjdG9yX2hvdHBsdWcoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cikKIAkJCWlmICghcmFkZW9uX2hwZF9zZW5zZShyZGV2LCByYWRlb25fY29ubmVjdG9yLT5ocGQu aHBkKSkgewogCQkJCWRybV9oZWxwZXJfY29ubmVjdG9yX2RwbXMoY29ubmVjdG9yLCBEUk1fTU9E RV9EUE1TX09GRik7CiAJCQl9IGVsc2UgaWYgKHJhZGVvbl9kcF9uZWVkc19saW5rX3RyYWluKHJh ZGVvbl9jb25uZWN0b3IpKSB7CisJCQkJLyogRG9uJ3QgdHJ5IHRvIHN0YXJ0IGxpbmsgdHJhaW5p bmcgYmVmb3JlIHdlCisJCQkJICogaGF2ZSB0aGUgZHBjZCAqLworCQkJCWlmICghcmFkZW9uX2Rw X2dldGRwY2QocmFkZW9uX2Nvbm5lY3RvcikpCisJCQkJCXJldHVybjsKKwogCQkJCS8qIHNldCBp dCB0byBPRkYgc28gdGhhdCBkcm1faGVscGVyX2Nvbm5lY3Rvcl9kcG1zKCkKIAkJCQkgKiB3b24n dCByZXR1cm4gaW1tZWRpYXRlbHkgc2luY2UgdGhlIGN1cnJlbnQgc3RhdGUKIAkJCQkgKiBpcyBP TiBhdCB0aGlzIHBvaW50LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZl cmJzLmggYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnMuaAppbmRleCA1YmNiMmFmLi4y MjhhZjE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnMuaAorKysg Yi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnMuaApAQCAtNjksNyArNjksNyBAQAogICov CiAKIHN0cnVjdCBpYl91dmVyYnNfZGV2aWNlIHsKLQlzdHJ1Y3Qga3JlZgkJCQlyZWY7CisJYXRv bWljX3QJCQkJcmVmY291bnQ7CiAJaW50CQkJCQludW1fY29tcF92ZWN0b3JzOwogCXN0cnVjdCBj b21wbGV0aW9uCQkJY29tcDsKIAlzdHJ1Y3QgZGV2aWNlCQkJICAgICAgICpkZXY7CkBAIC03OCw2 ICs3OCw3IEBAIHN0cnVjdCBpYl91dmVyYnNfZGV2aWNlIHsKIAlzdHJ1Y3QgY2RldgkJCSAgICAg ICAgY2RldjsKIAlzdHJ1Y3QgcmJfcm9vdAkJCQl4cmNkX3RyZWU7CiAJc3RydWN0IG11dGV4CQkJ CXhyY2RfdHJlZV9tdXRleDsKKwlzdHJ1Y3Qga29iamVjdAkJCQlrb2JqOwogfTsKIAogc3RydWN0 IGliX3V2ZXJic19ldmVudF9maWxlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9j b3JlL3V2ZXJic19jbWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19jbWQuYwpp bmRleCBhODQ0NWI4Li4zYmUyMWFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29y ZS91dmVyYnNfY21kLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX2NtZC5j CkBAIC0xOTc5LDYgKzE5NzksMTIgQEAgc3NpemVfdCBpYl91dmVyYnNfcG9zdF9zZW5kKHN0cnVj dCBpYl91dmVyYnNfZmlsZSAqZmlsZSwKIAkJbmV4dC0+c2VuZF9mbGFncyA9IHVzZXJfd3ItPnNl bmRfZmxhZ3M7CiAKIAkJaWYgKGlzX3VkKSB7CisJCQlpZiAobmV4dC0+b3Bjb2RlICE9IElCX1dS X1NFTkQgJiYKKwkJCSAgICBuZXh0LT5vcGNvZGUgIT0gSUJfV1JfU0VORF9XSVRIX0lNTSkgewor CQkJCXJldCA9IC1FSU5WQUw7CisJCQkJZ290byBvdXRfcHV0OworCQkJfQorCiAJCQluZXh0LT53 ci51ZC5haCA9IGlkcl9yZWFkX2FoKHVzZXJfd3ItPndyLnVkLmFoLAogCQkJCQkJICAgICBmaWxl LT51Y29udGV4dCk7CiAJCQlpZiAoIW5leHQtPndyLnVkLmFoKSB7CkBAIC0yMDE1LDkgKzIwMjEs MTEgQEAgc3NpemVfdCBpYl91dmVyYnNfcG9zdF9zZW5kKHN0cnVjdCBpYl91dmVyYnNfZmlsZSAq ZmlsZSwKIAkJCQkJdXNlcl93ci0+d3IuYXRvbWljLmNvbXBhcmVfYWRkOwogCQkJCW5leHQtPndy LmF0b21pYy5zd2FwID0gdXNlcl93ci0+d3IuYXRvbWljLnN3YXA7CiAJCQkJbmV4dC0+d3IuYXRv bWljLnJrZXkgPSB1c2VyX3dyLT53ci5hdG9taWMucmtleTsKKwkJCWNhc2UgSUJfV1JfU0VORDoK IAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6Ci0JCQkJYnJlYWs7CisJCQkJcmV0ID0gLUVJTlZBTDsK KwkJCQlnb3RvIG91dF9wdXQ7CiAJCQl9CiAJCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZp bmliYW5kL2NvcmUvdXZlcmJzX21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJi c19tYWluLmMKaW5kZXggOTM3OWI5Ny4uZjA3YzZlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZp bmliYW5kL2NvcmUvdXZlcmJzX21haW4uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91 dmVyYnNfbWFpbi5jCkBAIC0xMTcsMTQgKzExNywxOCBAQCBzdGF0aWMgc3NpemVfdCAoKnV2ZXJi c19jbWRfdGFibGVbXSkoc3RydWN0IGliX3V2ZXJic19maWxlICpmaWxlLAogc3RhdGljIHZvaWQg aWJfdXZlcmJzX2FkZF9vbmUoc3RydWN0IGliX2RldmljZSAqZGV2aWNlKTsKIHN0YXRpYyB2b2lk IGliX3V2ZXJic19yZW1vdmVfb25lKHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSk7CiAKLXN0YXRp YyB2b2lkIGliX3V2ZXJic19yZWxlYXNlX2RldihzdHJ1Y3Qga3JlZiAqcmVmKQorc3RhdGljIHZv aWQgaWJfdXZlcmJzX3JlbGVhc2VfZGV2KHN0cnVjdCBrb2JqZWN0ICprb2JqKQogewogCXN0cnVj dCBpYl91dmVyYnNfZGV2aWNlICpkZXYgPQotCQljb250YWluZXJfb2YocmVmLCBzdHJ1Y3QgaWJf dXZlcmJzX2RldmljZSwgcmVmKTsKKwkJY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCBpYl91dmVy YnNfZGV2aWNlLCBrb2JqKTsKIAotCWNvbXBsZXRlKCZkZXYtPmNvbXApOworCWtmcmVlKGRldik7 CiB9CiAKK3N0YXRpYyBzdHJ1Y3Qga29ial90eXBlIGliX3V2ZXJic19kZXZfa3R5cGUgPSB7CisJ LnJlbGVhc2UgPSBpYl91dmVyYnNfcmVsZWFzZV9kZXYsCit9OworCiBzdGF0aWMgdm9pZCBpYl91 dmVyYnNfcmVsZWFzZV9ldmVudF9maWxlKHN0cnVjdCBrcmVmICpyZWYpCiB7CiAJc3RydWN0IGli X3V2ZXJic19ldmVudF9maWxlICpmaWxlID0KQEAgLTI3MywxMyArMjc3LDE5IEBAIHN0YXRpYyBp bnQgaWJfdXZlcmJzX2NsZWFudXBfdWNvbnRleHQoc3RydWN0IGliX3V2ZXJic19maWxlICpmaWxl LAogCXJldHVybiBjb250ZXh0LT5kZXZpY2UtPmRlYWxsb2NfdWNvbnRleHQoY29udGV4dCk7CiB9 CiAKK3N0YXRpYyB2b2lkIGliX3V2ZXJic19jb21wX2RldihzdHJ1Y3QgaWJfdXZlcmJzX2Rldmlj ZSAqZGV2KQoreworCWNvbXBsZXRlKCZkZXYtPmNvbXApOworfQorCiBzdGF0aWMgdm9pZCBpYl91 dmVyYnNfcmVsZWFzZV9maWxlKHN0cnVjdCBrcmVmICpyZWYpCiB7CiAJc3RydWN0IGliX3V2ZXJi c19maWxlICpmaWxlID0KIAkJY29udGFpbmVyX29mKHJlZiwgc3RydWN0IGliX3V2ZXJic19maWxl LCByZWYpOwogCiAJbW9kdWxlX3B1dChmaWxlLT5kZXZpY2UtPmliX2Rldi0+b3duZXIpOwotCWty ZWZfcHV0KCZmaWxlLT5kZXZpY2UtPnJlZiwgaWJfdXZlcmJzX3JlbGVhc2VfZGV2KTsKKwlpZiAo YXRvbWljX2RlY19hbmRfdGVzdCgmZmlsZS0+ZGV2aWNlLT5yZWZjb3VudCkpCisJCWliX3V2ZXJi c19jb21wX2RldihmaWxlLT5kZXZpY2UpOwogCiAJa2ZyZWUoZmlsZSk7CiB9CkBAIC02MjEsOSAr NjMxLDcgQEAgc3RhdGljIGludCBpYl91dmVyYnNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBz dHJ1Y3QgZmlsZSAqZmlscCkKIAlpbnQgcmV0OwogCiAJZGV2ID0gY29udGFpbmVyX29mKGlub2Rl LT5pX2NkZXYsIHN0cnVjdCBpYl91dmVyYnNfZGV2aWNlLCBjZGV2KTsKLQlpZiAoZGV2KQotCQlr cmVmX2dldCgmZGV2LT5yZWYpOwotCWVsc2UKKwlpZiAoIWF0b21pY19pbmNfbm90X3plcm8oJmRl di0+cmVmY291bnQpKQogCQlyZXR1cm4gLUVOWElPOwogCiAJaWYgKCF0cnlfbW9kdWxlX2dldChk ZXYtPmliX2Rldi0+b3duZXIpKSB7CkBAIC02NDQsNiArNjUyLDcgQEAgc3RhdGljIGludCBpYl91 dmVyYnNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIAltdXRl eF9pbml0KCZmaWxlLT5tdXRleCk7CiAKIAlmaWxwLT5wcml2YXRlX2RhdGEgPSBmaWxlOworCWtv YmplY3RfZ2V0KCZkZXYtPmtvYmopOwogCiAJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUs IGZpbHApOwogCkBAIC02NTEsMTMgKzY2MCwxNiBAQCBlcnJfbW9kdWxlOgogCW1vZHVsZV9wdXQo ZGV2LT5pYl9kZXYtPm93bmVyKTsKIAogZXJyOgotCWtyZWZfcHV0KCZkZXYtPnJlZiwgaWJfdXZl cmJzX3JlbGVhc2VfZGV2KTsKKwlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmZGV2LT5yZWZjb3Vu dCkpCisJCWliX3V2ZXJic19jb21wX2RldihkZXYpOworCiAJcmV0dXJuIHJldDsKIH0KIAogc3Rh dGljIGludCBpYl91dmVyYnNfY2xvc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUg KmZpbHApCiB7CiAJc3RydWN0IGliX3V2ZXJic19maWxlICpmaWxlID0gZmlscC0+cHJpdmF0ZV9k YXRhOworCXN0cnVjdCBpYl91dmVyYnNfZGV2aWNlICpkZXYgPSBmaWxlLT5kZXZpY2U7CiAKIAlp Yl91dmVyYnNfY2xlYW51cF91Y29udGV4dChmaWxlLCBmaWxlLT51Y29udGV4dCk7CiAKQEAgLTY2 NSw2ICs2NzcsNyBAQCBzdGF0aWMgaW50IGliX3V2ZXJic19jbG9zZShzdHJ1Y3QgaW5vZGUgKmlu b2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIAkJa3JlZl9wdXQoJmZpbGUtPmFzeW5jX2ZpbGUtPnJl ZiwgaWJfdXZlcmJzX3JlbGVhc2VfZXZlbnRfZmlsZSk7CiAKIAlrcmVmX3B1dCgmZmlsZS0+cmVm LCBpYl91dmVyYnNfcmVsZWFzZV9maWxlKTsKKwlrb2JqZWN0X3B1dCgmZGV2LT5rb2JqKTsKIAog CXJldHVybiAwOwogfQpAQCAtNzYwLDEwICs3NzMsMTEgQEAgc3RhdGljIHZvaWQgaWJfdXZlcmJz X2FkZF9vbmUoc3RydWN0IGliX2RldmljZSAqZGV2aWNlKQogCWlmICghdXZlcmJzX2RldikKIAkJ cmV0dXJuOwogCi0Ja3JlZl9pbml0KCZ1dmVyYnNfZGV2LT5yZWYpOworCWF0b21pY19zZXQoJnV2 ZXJic19kZXYtPnJlZmNvdW50LCAxKTsKIAlpbml0X2NvbXBsZXRpb24oJnV2ZXJic19kZXYtPmNv bXApOwogCXV2ZXJic19kZXYtPnhyY2RfdHJlZSA9IFJCX1JPT1Q7CiAJbXV0ZXhfaW5pdCgmdXZl cmJzX2Rldi0+eHJjZF90cmVlX211dGV4KTsKKwlrb2JqZWN0X2luaXQoJnV2ZXJic19kZXYtPmtv YmosICZpYl91dmVyYnNfZGV2X2t0eXBlKTsKIAogCXNwaW5fbG9jaygmbWFwX2xvY2spOwogCWRl dm51bSA9IGZpbmRfZmlyc3RfemVyb19iaXQoZGV2X21hcCwgSUJfVVZFUkJTX01BWF9ERVZJQ0VT KTsKQEAgLTc5MCw2ICs4MDQsNyBAQCBzdGF0aWMgdm9pZCBpYl91dmVyYnNfYWRkX29uZShzdHJ1 Y3QgaWJfZGV2aWNlICpkZXZpY2UpCiAJY2Rldl9pbml0KCZ1dmVyYnNfZGV2LT5jZGV2LCBOVUxM KTsKIAl1dmVyYnNfZGV2LT5jZGV2Lm93bmVyID0gVEhJU19NT0RVTEU7CiAJdXZlcmJzX2Rldi0+ Y2Rldi5vcHMgPSBkZXZpY2UtPm1tYXAgPyAmdXZlcmJzX21tYXBfZm9wcyA6ICZ1dmVyYnNfZm9w czsKKwl1dmVyYnNfZGV2LT5jZGV2LmtvYmoucGFyZW50ID0gJnV2ZXJic19kZXYtPmtvYmo7CiAJ a29iamVjdF9zZXRfbmFtZSgmdXZlcmJzX2Rldi0+Y2Rldi5rb2JqLCAidXZlcmJzJWQiLCB1dmVy YnNfZGV2LT5kZXZudW0pOwogCWlmIChjZGV2X2FkZCgmdXZlcmJzX2Rldi0+Y2RldiwgYmFzZSwg MSkpCiAJCWdvdG8gZXJyX2NkZXY7CkBAIC04MjAsOSArODM1LDEwIEBAIGVycl9jZGV2OgogCQlj bGVhcl9iaXQoZGV2bnVtLCBvdmVyZmxvd19tYXApOwogCiBlcnI6Ci0Ja3JlZl9wdXQoJnV2ZXJi c19kZXYtPnJlZiwgaWJfdXZlcmJzX3JlbGVhc2VfZGV2KTsKKwlpZiAoYXRvbWljX2RlY19hbmRf dGVzdCgmdXZlcmJzX2Rldi0+cmVmY291bnQpKQorCQlpYl91dmVyYnNfY29tcF9kZXYodXZlcmJz X2Rldik7CiAJd2FpdF9mb3JfY29tcGxldGlvbigmdXZlcmJzX2Rldi0+Y29tcCk7Ci0Ja2ZyZWUo dXZlcmJzX2Rldik7CisJa29iamVjdF9wdXQoJnV2ZXJic19kZXYtPmtvYmopOwogCXJldHVybjsK IH0KIApAQCAtODQyLDkgKzg1OCwxMCBAQCBzdGF0aWMgdm9pZCBpYl91dmVyYnNfcmVtb3ZlX29u ZShzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UpCiAJZWxzZQogCQljbGVhcl9iaXQodXZlcmJzX2Rl di0+ZGV2bnVtIC0gSUJfVVZFUkJTX01BWF9ERVZJQ0VTLCBvdmVyZmxvd19tYXApOwogCi0Ja3Jl Zl9wdXQoJnV2ZXJic19kZXYtPnJlZiwgaWJfdXZlcmJzX3JlbGVhc2VfZGV2KTsKKwlpZiAoYXRv bWljX2RlY19hbmRfdGVzdCgmdXZlcmJzX2Rldi0+cmVmY291bnQpKQorCQlpYl91dmVyYnNfY29t cF9kZXYodXZlcmJzX2Rldik7CiAJd2FpdF9mb3JfY29tcGxldGlvbigmdXZlcmJzX2Rldi0+Y29t cCk7Ci0Ja2ZyZWUodXZlcmJzX2Rldik7CisJa29iamVjdF9wdXQoJnV2ZXJic19kZXYtPmtvYmop OwogfQogCiBzdGF0aWMgY2hhciAqdXZlcmJzX2Rldm5vZGUoc3RydWN0IGRldmljZSAqZGV2LCBt b2RlX3QgKm1vZGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9haC5j IGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvYWguYwppbmRleCA0YjhmOWM0Li41NDI2Y2Nm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9haC5jCisrKyBiL2RyaXZl cnMvaW5maW5pYmFuZC9ody9tbHg0L2FoLmMKQEAgLTE2OSw5ICsxNjksMTMgQEAgaW50IG1seDRf aWJfcXVlcnlfYWgoc3RydWN0IGliX2FoICppYmFoLCBzdHJ1Y3QgaWJfYWhfYXR0ciAqYWhfYXR0 cikKIAllbnVtIHJkbWFfbGlua19sYXllciBsbDsKIAogCW1lbXNldChhaF9hdHRyLCAwLCBzaXpl b2YgKmFoX2F0dHIpOwotCWFoX2F0dHItPnNsID0gYmUzMl90b19jcHUoYWgtPmF2LmliLnNsX3Rj bGFzc19mbG93bGFiZWwpID4+IDI4OwogCWFoX2F0dHItPnBvcnRfbnVtID0gYmUzMl90b19jcHUo YWgtPmF2LmliLnBvcnRfcGQpID4+IDI0OwogCWxsID0gcmRtYV9wb3J0X2dldF9saW5rX2xheWVy KGliYWgtPmRldmljZSwgYWhfYXR0ci0+cG9ydF9udW0pOworCWlmIChsbCA9PSBJQl9MSU5LX0xB WUVSX0VUSEVSTkVUKQorCQlhaF9hdHRyLT5zbCA9IGJlMzJfdG9fY3B1KGFoLT5hdi5ldGguc2xf dGNsYXNzX2Zsb3dsYWJlbCkgPj4gMjk7CisJZWxzZQorCQlhaF9hdHRyLT5zbCA9IGJlMzJfdG9f Y3B1KGFoLT5hdi5pYi5zbF90Y2xhc3NfZmxvd2xhYmVsKSA+PiAyODsKKwogCWFoX2F0dHItPmRs aWQgPSBsbCA9PSBJQl9MSU5LX0xBWUVSX0lORklOSUJBTkQgPyBiZTE2X3RvX2NwdShhaC0+YXYu aWIuZGxpZCkgOiAwOwogCWlmIChhaC0+YXYuaWIuc3RhdF9yYXRlKQogCQlhaF9hdHRyLT5zdGF0 aWNfcmF0ZSA9IGFoLT5hdi5pYi5zdGF0X3JhdGUgLSBNTFg0X1NUQVRfUkFURV9PRkZTRVQ7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYi5oIGIvZHJpdmVycy9pbmZp bmliYW5kL2h3L3FpYi9xaWIuaAppbmRleCA0YzJiMDc5Li5jMGI3MmE2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYi5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9o dy9xaWIvcWliLmgKQEAgLTE0MjEsNiArMTQyMSwxMCBAQCBleHRlcm4gc3RydWN0IG11dGV4IHFp Yl9tdXRleDsKIAkJCXFpYl9nZXRfdW5pdF9uYW1lKChkZCktPnVuaXQpLCAjI19fVkFfQVJHU19f KTsgXAogCX0gd2hpbGUgKDApCiAKKyNkZWZpbmUgcWliX2Rldl93YXJuKGRkLCBmbXQsIC4uLikg XAorCWRldl93YXJuKCYoZGQpLT5wY2lkZXYtPmRldiwgIiVzOiAiIGZtdCwgXAorCQlxaWJfZ2V0 X3VuaXRfbmFtZSgoZGQpLT51bml0KSwgIyNfX1ZBX0FSR1NfXykKKwogI2RlZmluZSBxaWJfZGV2 X3BvcnRlcnIoZGQsIHBvcnQsIGZtdCwgLi4uKSBcCiAJZG8geyBcCiAJCWRldl9lcnIoJihkZCkt PnBjaWRldi0+ZGV2LCAiJXM6IElCJXU6JXUgIiBmbXQsIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMv aW5maW5pYmFuZC9ody9xaWIvcWliX2tleXMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIv cWliX2tleXMuYwppbmRleCA4ZmQxOWE0Li5jYTZlNmNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lu ZmluaWJhbmQvaHcvcWliL3FpYl9rZXlzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3Fp Yi9xaWJfa2V5cy5jCkBAIC02OSw2ICs2OSwxMCBAQCBpbnQgcWliX2FsbG9jX2xrZXkoc3RydWN0 IHFpYl9sa2V5X3RhYmxlICpya3QsIHN0cnVjdCBxaWJfbXJlZ2lvbiAqbXIpCiAJICogdW5yZXN0 cmljdGVkIExLRVkuCiAJICovCiAJcmt0LT5nZW4rKzsKKwkvKgorCSAqIGJpdHMgYXJlIGNhcHBl ZCBpbiBxaWJfdmVyYnMuYyB0byBpbnN1cmUgZW5vdWdoIGJpdHMKKwkgKiBmb3IgZ2VuZXJhdGlv biBudW1iZXIKKwkgKi8KIAltci0+bGtleSA9IChyIDw8ICgzMiAtIGliX3FpYl9sa2V5X3RhYmxl X3NpemUpKSB8CiAJCSgoKCgxIDw8ICgyNCAtIGliX3FpYl9sa2V5X3RhYmxlX3NpemUpKSAtIDEp ICYgcmt0LT5nZW4pCiAJCSA8PCA4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9o dy9xaWIvcWliX3ZlcmJzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl92ZXJicy5j CmluZGV4IGE4OTQ3NjIuLmM1MWE2ZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9o dy9xaWIvcWliX3ZlcmJzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfdmVy YnMuYwpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3JjdWxpc3QuaD4KICNpbmNs dWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgorI2luY2x1ZGUgPGxp bnV4L3ZtYWxsb2MuaD4KIAogI2luY2x1ZGUgInFpYi5oIgogI2luY2x1ZGUgInFpYl9jb21tb24u aCIKQEAgLTIwMzUsMTAgKzIwMzYsMTYgQEAgaW50IHFpYl9yZWdpc3Rlcl9pYl9kZXZpY2Uoc3Ry dWN0IHFpYl9kZXZkYXRhICpkZCkKIAkgKiB0aGUgTEtFWSkuICBUaGUgcmVtYWluaW5nIGJpdHMg YWN0IGFzIGEgZ2VuZXJhdGlvbiBudW1iZXIgb3IgdGFnLgogCSAqLwogCXNwaW5fbG9ja19pbml0 KCZkZXYtPmxrX3RhYmxlLmxvY2spOworCS8qIGluc3VyZSBnZW5lcmF0aW9uIGlzIGF0IGxlYXN0 IDQgYml0cyBzZWUga2V5cy5jICovCisJaWYgKGliX3FpYl9sa2V5X3RhYmxlX3NpemUgPiBNQVhf TEtFWV9UQUJMRV9CSVRTKSB7CisJCXFpYl9kZXZfd2FybihkZCwgImxrZXkgYml0cyAldSB0b28g bGFyZ2UsIHJlZHVjZWQgdG8gJXVcbiIsCisJCQlpYl9xaWJfbGtleV90YWJsZV9zaXplLCBNQVhf TEtFWV9UQUJMRV9CSVRTKTsKKwkJaWJfcWliX2xrZXlfdGFibGVfc2l6ZSA9IE1BWF9MS0VZX1RB QkxFX0JJVFM7CisJfQogCWRldi0+bGtfdGFibGUubWF4ID0gMSA8PCBpYl9xaWJfbGtleV90YWJs ZV9zaXplOwogCWxrX3RhYl9zaXplID0gZGV2LT5sa190YWJsZS5tYXggKiBzaXplb2YoKmRldi0+ bGtfdGFibGUudGFibGUpOwogCWRldi0+bGtfdGFibGUudGFibGUgPSAoc3RydWN0IHFpYl9tcmVn aW9uICoqKQotCQlfX2dldF9mcmVlX3BhZ2VzKEdGUF9LRVJORUwsIGdldF9vcmRlcihsa190YWJf c2l6ZSkpOworCQl2bWFsbG9jKGxrX3RhYl9zaXplKTsKIAlpZiAoZGV2LT5sa190YWJsZS50YWJs ZSA9PSBOVUxMKSB7CiAJCXJldCA9IC1FTk9NRU07CiAJCWdvdG8gZXJyX2xrOwpAQCAtMjIwOCw3 ICsyMjE1LDcgQEAgZXJyX3R4OgogCQkJCQlzaXplb2Yoc3RydWN0IHFpYl9waW9faGVhZGVyKSwK IAkJCQkgIGRldi0+cGlvX2hkcnMsIGRldi0+cGlvX2hkcnNfcGh5cyk7CiBlcnJfaGRyczoKLQlm cmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKSBkZXYtPmxrX3RhYmxlLnRhYmxlLCBnZXRfb3JkZXIo bGtfdGFiX3NpemUpKTsKKwl2ZnJlZShkZXYtPmxrX3RhYmxlLnRhYmxlKTsKIGVycl9sazoKIAlr ZnJlZShkZXYtPnFwX3RhYmxlKTsKIGVycl9xcHQ6CkBAIC0yMjYyLDcgKzIyNjksNiBAQCB2b2lk IHFpYl91bnJlZ2lzdGVyX2liX2RldmljZShzdHJ1Y3QgcWliX2RldmRhdGEgKmRkKQogCQkJCQlz aXplb2Yoc3RydWN0IHFpYl9waW9faGVhZGVyKSwKIAkJCQkgIGRldi0+cGlvX2hkcnMsIGRldi0+ cGlvX2hkcnNfcGh5cyk7CiAJbGtfdGFiX3NpemUgPSBkZXYtPmxrX3RhYmxlLm1heCAqIHNpemVv ZigqZGV2LT5sa190YWJsZS50YWJsZSk7Ci0JZnJlZV9wYWdlcygodW5zaWduZWQgbG9uZykgZGV2 LT5sa190YWJsZS50YWJsZSwKLQkJICAgZ2V0X29yZGVyKGxrX3RhYl9zaXplKSk7CisJdmZyZWUo ZGV2LT5sa190YWJsZS50YWJsZSk7CiAJa2ZyZWUoZGV2LT5xcF90YWJsZSk7CiB9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl92ZXJicy5oIGIvZHJpdmVycy9pbmZp bmliYW5kL2h3L3FpYi9xaWJfdmVyYnMuaAppbmRleCAwYzE5ZWYwLi42NmY3ZjYyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl92ZXJicy5oCisrKyBiL2RyaXZlcnMv aW5maW5pYmFuZC9ody9xaWIvcWliX3ZlcmJzLmgKQEAgLTYyMiw2ICs2MjIsOCBAQCBzdHJ1Y3Qg cWliX3Fwbl90YWJsZSB7CiAJc3RydWN0IHFwbl9tYXAgbWFwW1FQTk1BUF9FTlRSSUVTXTsKIH07 CiAKKyNkZWZpbmUgTUFYX0xLRVlfVEFCTEVfQklUUyAyMworCiBzdHJ1Y3QgcWliX2xrZXlfdGFi bGUgewogCXNwaW5sb2NrX3QgbG9jazsgLyogcHJvdGVjdCBjaGFuZ2VzIGluIHRoaXMgc3RydWN0 ICovCiAJdTMyIG5leHQ7ICAgICAgICAgICAgICAgLyogbmV4dCB1bnVzZWQgaW5kZXggKHNwZWVk cyBzZWFyY2gpICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2V2ZGV2LmMgYi9kcml2ZXJz L2lucHV0L2V2ZGV2LmMKaW5kZXggNGNmMjUzNC4uZjU1YTNjZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9pbnB1dC9ldmRldi5jCisrKyBiL2RyaXZlcnMvaW5wdXQvZXZkZXYuYwpAQCAtMTI2LDE5ICsx MjYsMTQgQEAgc3RhdGljIGludCBldmRldl9mbHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSwgZmxfb3du ZXJfdCBpZCkKIHsKIAlzdHJ1Y3QgZXZkZXZfY2xpZW50ICpjbGllbnQgPSBmaWxlLT5wcml2YXRl X2RhdGE7CiAJc3RydWN0IGV2ZGV2ICpldmRldiA9IGNsaWVudC0+ZXZkZXY7Ci0JaW50IHJldHZh bDsKIAotCXJldHZhbCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZXZkZXYtPm11dGV4KTsK LQlpZiAocmV0dmFsKQotCQlyZXR1cm4gcmV0dmFsOworCW11dGV4X2xvY2soJmV2ZGV2LT5tdXRl eCk7CiAKLQlpZiAoIWV2ZGV2LT5leGlzdCkKLQkJcmV0dmFsID0gLUVOT0RFVjsKLQllbHNlCi0J CXJldHZhbCA9IGlucHV0X2ZsdXNoX2RldmljZSgmZXZkZXYtPmhhbmRsZSwgZmlsZSk7CisJaWYg KGV2ZGV2LT5leGlzdCkKKwkJaW5wdXRfZmx1c2hfZGV2aWNlKCZldmRldi0+aGFuZGxlLCBmaWxl KTsKIAogCW11dGV4X3VubG9jaygmZXZkZXYtPm11dGV4KTsKLQlyZXR1cm4gcmV0dmFsOworCXJl dHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBldmRldl9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldikK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWFjaW50b3NoL3dpbmRmYXJtX2NvcmUuYyBiL2RyaXZlcnMv bWFjaW50b3NoL3dpbmRmYXJtX2NvcmUuYwppbmRleCBjZTg4OTc5Li4wMDRmYTEwIDEwMDY0NAot LS0gYS9kcml2ZXJzL21hY2ludG9zaC93aW5kZmFybV9jb3JlLmMKKysrIGIvZHJpdmVycy9tYWNp bnRvc2gvd2luZGZhcm1fY29yZS5jCkBAIC00MjEsNyArNDIxLDcgQEAgaW50IHdmX3VucmVnaXN0 ZXJfY2xpZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpCiB7CiAJbXV0ZXhfbG9jaygmd2Zf bG9jayk7CiAJYmxvY2tpbmdfbm90aWZpZXJfY2hhaW5fdW5yZWdpc3Rlcigmd2ZfY2xpZW50X2xp c3QsIG5iKTsKLQl3Zl9jbGllbnRfY291bnQrKzsKKwl3Zl9jbGllbnRfY291bnQtLTsKIAlpZiAo d2ZfY2xpZW50X2NvdW50ID09IDApCiAJCXdmX3N0b3BfdGhyZWFkKCk7CiAJbXV0ZXhfdW5sb2Nr KCZ3Zl9sb2NrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvbWQuYyBiL2RyaXZlcnMvbWQvbWQu YwppbmRleCBlYThhMTgxLi5kN2U5MjQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL21kLmMKKysr IGIvZHJpdmVycy9tZC9tZC5jCkBAIC01Mzg0LDkgKzUzODQsOSBAQCBzdGF0aWMgaW50IGdldF9i aXRtYXBfZmlsZShzdHJ1Y3QgbWRkZXYgKiBtZGRldiwgdm9pZCBfX3VzZXIgKiBhcmcpCiAJaW50 IGVyciA9IC1FTk9NRU07CiAKIAlpZiAobWRfYWxsb3dfd3JpdGUobWRkZXYpKQotCQlmaWxlID0g a21hbGxvYyhzaXplb2YoKmZpbGUpLCBHRlBfTk9JTyk7CisJCWZpbGUgPSBremFsbG9jKHNpemVv ZigqZmlsZSksIEdGUF9OT0lPKTsKIAllbHNlCi0JCWZpbGUgPSBrbWFsbG9jKHNpemVvZigqZmls ZSksIEdGUF9LRVJORUwpOworCQlmaWxlID0ga3phbGxvYyhzaXplb2YoKmZpbGUpLCBHRlBfS0VS TkVMKTsKIAogCWlmICghZmlsZSkKIAkJZ290byBvdXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21k L3BlcnNpc3RlbnQtZGF0YS9kbS1idHJlZS1pbnRlcm5hbC5oIGIvZHJpdmVycy9tZC9wZXJzaXN0 ZW50LWRhdGEvZG0tYnRyZWUtaW50ZXJuYWwuaAppbmRleCBhY2JhNTRlLi5mODQ1OGNhIDEwMDY0 NAotLS0gYS9kcml2ZXJzL21kL3BlcnNpc3RlbnQtZGF0YS9kbS1idHJlZS1pbnRlcm5hbC5oCisr KyBiL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLWJ0cmVlLWludGVybmFsLmgKQEAgLTEz NCw0ICsxMzQsMTAgQEAgaW50IGxvd2VyX2JvdW5kKHN0cnVjdCBidHJlZV9ub2RlICpuLCB1aW50 NjRfdCBrZXkpOwogCiBleHRlcm4gc3RydWN0IGRtX2Jsb2NrX3ZhbGlkYXRvciBidHJlZV9ub2Rl X3ZhbGlkYXRvcjsKIAorLyoKKyAqIFZhbHVlIHR5cGUgZm9yIHVwcGVyIGxldmVscyBvZiBtdWx0 aS1sZXZlbCBidHJlZXMuCisgKi8KK2V4dGVybiB2b2lkIGluaXRfbGU2NF90eXBlKHN0cnVjdCBk bV90cmFuc2FjdGlvbl9tYW5hZ2VyICp0bSwKKwkJCSAgIHN0cnVjdCBkbV9idHJlZV92YWx1ZV90 eXBlICp2dCk7CisKICNlbmRpZgkvKiBETV9CVFJFRV9JTlRFUk5BTF9IICovCmRpZmYgLS1naXQg YS9kcml2ZXJzL21kL3BlcnNpc3RlbnQtZGF0YS9kbS1idHJlZS1yZW1vdmUuYyBiL2RyaXZlcnMv bWQvcGVyc2lzdGVudC1kYXRhL2RtLWJ0cmVlLXJlbW92ZS5jCmluZGV4IDZlNzljMTEuLjI5NGVi NWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLWJ0cmVlLXJlbW92 ZS5jCisrKyBiL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLWJ0cmVlLXJlbW92ZS5jCkBA IC01NDQsMTQgKzU0NCw2IEBAIHN0YXRpYyBpbnQgcmVtb3ZlX3JhdyhzdHJ1Y3Qgc2hhZG93X3Nw aW5lICpzLCBzdHJ1Y3QgZG1fYnRyZWVfaW5mbyAqaW5mbywKIAlyZXR1cm4gcjsKIH0KIAotc3Rh dGljIHN0cnVjdCBkbV9idHJlZV92YWx1ZV90eXBlIGxlNjRfdHlwZSA9IHsKLQkuY29udGV4dCA9 IE5VTEwsCi0JLnNpemUgPSBzaXplb2YoX19sZTY0KSwKLQkuaW5jID0gTlVMTCwKLQkuZGVjID0g TlVMTCwKLQkuZXF1YWwgPSBOVUxMCi19OwotCiBpbnQgZG1fYnRyZWVfcmVtb3ZlKHN0cnVjdCBk bV9idHJlZV9pbmZvICppbmZvLCBkbV9ibG9ja190IHJvb3QsCiAJCSAgICB1aW50NjRfdCAqa2V5 cywgZG1fYmxvY2tfdCAqbmV3X3Jvb3QpCiB7CkBAIC01NTksMTIgKzU1MSwxNCBAQCBpbnQgZG1f YnRyZWVfcmVtb3ZlKHN0cnVjdCBkbV9idHJlZV9pbmZvICppbmZvLCBkbV9ibG9ja190IHJvb3Qs CiAJaW50IGluZGV4ID0gMCwgciA9IDA7CiAJc3RydWN0IHNoYWRvd19zcGluZSBzcGluZTsKIAlz dHJ1Y3QgYnRyZWVfbm9kZSAqbjsKKwlzdHJ1Y3QgZG1fYnRyZWVfdmFsdWVfdHlwZSBsZTY0X3Z0 OwogCisJaW5pdF9sZTY0X3R5cGUoaW5mby0+dG0sICZsZTY0X3Z0KTsKIAlpbml0X3NoYWRvd19z cGluZSgmc3BpbmUsIGluZm8pOwogCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8IGluZm8tPmxldmVs czsgbGV2ZWwrKykgewogCQlyID0gcmVtb3ZlX3Jhdygmc3BpbmUsIGluZm8sCiAJCQkgICAgICAg KGxldmVsID09IGxhc3RfbGV2ZWwgPwotCQkJCSZpbmZvLT52YWx1ZV90eXBlIDogJmxlNjRfdHlw ZSksCisJCQkJJmluZm8tPnZhbHVlX3R5cGUgOiAmbGU2NF92dCksCiAJCQkgICAgICAgcm9vdCwg a2V5c1tsZXZlbF0sICh1bnNpZ25lZCAqKSZpbmRleCk7CiAJCWlmIChyIDwgMCkKIAkJCWJyZWFr OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0tYnRyZWUtc3BpbmUu YyBiL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLWJ0cmVlLXNwaW5lLmMKaW5kZXggMmYw ODA1Yy4uZjZjYjc2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0t YnRyZWUtc3BpbmUuYworKysgYi9kcml2ZXJzL21kL3BlcnNpc3RlbnQtZGF0YS9kbS1idHJlZS1z cGluZS5jCkBAIC0yNDIsMyArMjQyLDQwIEBAIGludCBzaGFkb3dfcm9vdChzdHJ1Y3Qgc2hhZG93 X3NwaW5lICpzKQogewogCXJldHVybiBzLT5yb290OwogfQorCitzdGF0aWMgdm9pZCBsZTY0X2lu Yyh2b2lkICpjb250ZXh0LCB2b2lkICp2YWx1ZV9sZSkKK3sKKwlzdHJ1Y3QgZG1fdHJhbnNhY3Rp b25fbWFuYWdlciAqdG0gPSBjb250ZXh0OworCV9fbGU2NCB2X2xlOworCisJbWVtY3B5KCZ2X2xl LCB2YWx1ZV9sZSwgc2l6ZW9mKHZfbGUpKTsKKwlkbV90bV9pbmModG0sIGxlNjRfdG9fY3B1KHZf bGUpKTsKK30KKworc3RhdGljIHZvaWQgbGU2NF9kZWModm9pZCAqY29udGV4dCwgdm9pZCAqdmFs dWVfbGUpCit7CisJc3RydWN0IGRtX3RyYW5zYWN0aW9uX21hbmFnZXIgKnRtID0gY29udGV4dDsK KwlfX2xlNjQgdl9sZTsKKworCW1lbWNweSgmdl9sZSwgdmFsdWVfbGUsIHNpemVvZih2X2xlKSk7 CisJZG1fdG1fZGVjKHRtLCBsZTY0X3RvX2NwdSh2X2xlKSk7Cit9CisKK3N0YXRpYyBpbnQgbGU2 NF9lcXVhbCh2b2lkICpjb250ZXh0LCB2b2lkICp2YWx1ZTFfbGUsIHZvaWQgKnZhbHVlMl9sZSkK K3sKKwlfX2xlNjQgdjFfbGUsIHYyX2xlOworCisJbWVtY3B5KCZ2MV9sZSwgdmFsdWUxX2xlLCBz aXplb2YodjFfbGUpKTsKKwltZW1jcHkoJnYyX2xlLCB2YWx1ZTJfbGUsIHNpemVvZih2Ml9sZSkp OworCXJldHVybiB2MV9sZSA9PSB2Ml9sZTsKK30KKwordm9pZCBpbml0X2xlNjRfdHlwZShzdHJ1 Y3QgZG1fdHJhbnNhY3Rpb25fbWFuYWdlciAqdG0sCisJCSAgICBzdHJ1Y3QgZG1fYnRyZWVfdmFs dWVfdHlwZSAqdnQpCit7CisJdnQtPmNvbnRleHQgPSB0bTsKKwl2dC0+c2l6ZSA9IHNpemVvZihf X2xlNjQpOworCXZ0LT5pbmMgPSBsZTY0X2luYzsKKwl2dC0+ZGVjID0gbGU2NF9kZWM7CisJdnQt PmVxdWFsID0gbGU2NF9lcXVhbDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcGVyc2lzdGVu dC1kYXRhL2RtLWJ0cmVlLmMgYi9kcml2ZXJzL21kL3BlcnNpc3RlbnQtZGF0YS9kbS1idHJlZS5j CmluZGV4IDE4ZjM3ZTAuLjYyZjI5N2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcGVyc2lzdGVu dC1kYXRhL2RtLWJ0cmVlLmMKKysrIGIvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0tYnRy ZWUuYwpAQCAtNjQ3LDEyICs2NDcsNyBAQCBzdGF0aWMgaW50IGluc2VydChzdHJ1Y3QgZG1fYnRy ZWVfaW5mbyAqaW5mbywgZG1fYmxvY2tfdCByb290LAogCXN0cnVjdCBidHJlZV9ub2RlICpuOwog CXN0cnVjdCBkbV9idHJlZV92YWx1ZV90eXBlIGxlNjRfdHlwZTsKIAotCWxlNjRfdHlwZS5jb250 ZXh0ID0gTlVMTDsKLQlsZTY0X3R5cGUuc2l6ZSA9IHNpemVvZihfX2xlNjQpOwotCWxlNjRfdHlw ZS5pbmMgPSBOVUxMOwotCWxlNjRfdHlwZS5kZWMgPSBOVUxMOwotCWxlNjRfdHlwZS5lcXVhbCA9 IE5VTEw7Ci0KKwlpbml0X2xlNjRfdHlwZShpbmZvLT50bSwgJmxlNjRfdHlwZSk7CiAJaW5pdF9z aGFkb3dfc3BpbmUoJnNwaW5lLCBpbmZvKTsKIAogCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8IChp bmZvLT5sZXZlbHMgLSAxKTsgbGV2ZWwrKykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9yYWlk MS5jIGIvZHJpdmVycy9tZC9yYWlkMS5jCmluZGV4IDZlN2IwMDIuLmE1ZjI4NGQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbWQvcmFpZDEuYworKysgYi9kcml2ZXJzL21kL3JhaWQxLmMKQEAgLTEyMDgs NiArMTIwOCw3IEBAIHN0YXRpYyB2b2lkIGVycm9yKHN0cnVjdCBtZGRldiAqbWRkZXYsIHN0cnVj dCBtZF9yZGV2ICpyZGV2KQogewogCWNoYXIgYltCREVWTkFNRV9TSVpFXTsKIAlzdHJ1Y3QgcjFj b25mICpjb25mID0gbWRkZXYtPnByaXZhdGU7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCS8q CiAJICogSWYgaXQgaXMgbm90IG9wZXJhdGlvbmFsLCB0aGVuIHdlIGhhdmUgYWxyZWFkeSBtYXJr ZWQgaXQgYXMgZGVhZApAQCAtMTIyNywxNCArMTIyOCwxMyBAQCBzdGF0aWMgdm9pZCBlcnJvcihz dHJ1Y3QgbWRkZXYgKm1kZGV2LCBzdHJ1Y3QgbWRfcmRldiAqcmRldikKIAkJcmV0dXJuOwogCX0K IAlzZXRfYml0KEJsb2NrZWQsICZyZGV2LT5mbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmNv bmYtPmRldmljZV9sb2NrLCBmbGFncyk7CiAJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChJbl9zeW5j LCAmcmRldi0+ZmxhZ3MpKSB7Ci0JCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JCXNwaW5fbG9ja19p cnFzYXZlKCZjb25mLT5kZXZpY2VfbG9jaywgZmxhZ3MpOwogCQltZGRldi0+ZGVncmFkZWQrKzsK IAkJc2V0X2JpdChGYXVsdHksICZyZGV2LT5mbGFncyk7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmNvbmYtPmRldmljZV9sb2NrLCBmbGFncyk7CiAJfSBlbHNlCiAJCXNldF9iaXQoRmF1bHR5 LCAmcmRldi0+ZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvbmYtPmRldmljZV9s b2NrLCBmbGFncyk7CiAJLyoKIAkgKiBpZiByZWNvdmVyeSBpcyBydW5uaW5nLCBtYWtlIHN1cmUg aXQgYWJvcnRzLgogCSAqLwpAQCAtMTI5Miw3ICsxMjkyLDEwIEBAIHN0YXRpYyBpbnQgcmFpZDFf c3BhcmVfYWN0aXZlKHN0cnVjdCBtZGRldiAqbWRkZXYpCiAJICogRmluZCBhbGwgZmFpbGVkIGRp c2tzIHdpdGhpbiB0aGUgUkFJRDEgY29uZmlndXJhdGlvbiAKIAkgKiBhbmQgbWFyayB0aGVtIHJl YWRhYmxlLgogCSAqIENhbGxlZCB1bmRlciBtZGRldiBsb2NrLCBzbyByY3UgcHJvdGVjdGlvbiBu b3QgbmVlZGVkLgorCSAqIGRldmljZV9sb2NrIHVzZWQgdG8gYXZvaWQgcmFjZXMgd2l0aCByYWlk MV9lbmRfcmVhZF9yZXF1ZXN0CisJICogd2hpY2ggZXhwZWN0cyAnSW5fc3luYycgZmxhZ3MgYW5k IC0+ZGVncmFkZWQgdG8gYmUgY29uc2lzdGVudC4KIAkgKi8KKwlzcGluX2xvY2tfaXJxc2F2ZSgm Y29uZi0+ZGV2aWNlX2xvY2ssIGZsYWdzKTsKIAlmb3IgKGkgPSAwOyBpIDwgY29uZi0+cmFpZF9k aXNrczsgaSsrKSB7CiAJCXN0cnVjdCBtZF9yZGV2ICpyZGV2ID0gY29uZi0+bWlycm9yc1tpXS5y ZGV2OwogCQlpZiAocmRldgpAQCAtMTMwMiw3ICsxMzA1LDYgQEAgc3RhdGljIGludCByYWlkMV9z cGFyZV9hY3RpdmUoc3RydWN0IG1kZGV2ICptZGRldikKIAkJCXN5c2ZzX25vdGlmeV9kaXJlbnRf c2FmZShyZGV2LT5zeXNmc19zdGF0ZSk7CiAJCX0KIAl9Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNv bmYtPmRldmljZV9sb2NrLCBmbGFncyk7CiAJbWRkZXYtPmRlZ3JhZGVkIC09IGNvdW50OwogCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvbmYtPmRldmljZV9sb2NrLCBmbGFncyk7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbWVkaWEvcmMvcmMtbWFpbi5jIGIvZHJpdmVycy9tZWRpYS9yYy9yYy1t YWluLmMKaW5kZXggYTQ3YmEzMy4uMmJlNTFjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9y Yy9yYy1tYWluLmMKKysrIGIvZHJpdmVycy9tZWRpYS9yYy9yYy1tYWluLmMKQEAgLTk0NSw5ICs5 NDUsNiBAQCBzdGF0aWMgaW50IHJjX2Rldl91ZXZlbnQoc3RydWN0IGRldmljZSAqZGV2aWNlLCBz dHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYpCiB7CiAJc3RydWN0IHJjX2RldiAqZGV2ID0gdG9f cmNfZGV2KGRldmljZSk7CiAKLQlpZiAoIWRldiB8fCAhZGV2LT5pbnB1dF9kZXYpCi0JCXJldHVy biAtRU5PREVWOwotCiAJaWYgKGRldi0+cmNfbWFwLm5hbWUpCiAJCUFERF9IT1RQTFVHX1ZBUigi TkFNRT0lcyIsIGRldi0+cmNfbWFwLm5hbWUpOwogCWlmIChkZXYtPmRyaXZlcl9uYW1lKQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2Jv bmRpbmcvYm9uZF9tYWluLmMKaW5kZXggNWFmMmE4Zi4uOTE0NTgzNGMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9i b25kX21haW4uYwpAQCAtODYxLDYgKzg2MSwyMyBAQCBzdGF0aWMgdm9pZCBib25kX21jX3N3YXAo c3RydWN0IGJvbmRpbmcgKmJvbmQsIHN0cnVjdCBzbGF2ZSAqbmV3X2FjdGl2ZSwKIAl9CiB9CiAK K3N0YXRpYyBzdHJ1Y3Qgc2xhdmUgKmJvbmRfZ2V0X29sZF9hY3RpdmUoc3RydWN0IGJvbmRpbmcg KmJvbmQsCisJCQkJCSBzdHJ1Y3Qgc2xhdmUgKm5ld19hY3RpdmUpCit7CisJc3RydWN0IHNsYXZl ICpzbGF2ZTsKKwlpbnQgaTsKKworCWJvbmRfZm9yX2VhY2hfc2xhdmUoYm9uZCwgc2xhdmUsIGkp IHsKKwkJaWYgKHNsYXZlID09IG5ld19hY3RpdmUpCisJCQljb250aW51ZTsKKworCQlpZiAoIWNv bXBhcmVfZXRoZXJfYWRkcihib25kLT5kZXYtPmRldl9hZGRyLCBzbGF2ZS0+ZGV2LT5kZXZfYWRk cikpCisJCQlyZXR1cm4gc2xhdmU7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKIC8qCiAgKiBi b25kX2RvX2ZhaWxfb3Zlcl9tYWMKICAqCkBAIC04OTgsNiArOTE1LDkgQEAgc3RhdGljIHZvaWQg Ym9uZF9kb19mYWlsX292ZXJfbWFjKHN0cnVjdCBib25kaW5nICpib25kLAogCQl3cml0ZV91bmxv Y2tfYmgoJmJvbmQtPmN1cnJfc2xhdmVfbG9jayk7CiAJCXJlYWRfdW5sb2NrKCZib25kLT5sb2Nr KTsKIAorCQlpZiAoIW9sZF9hY3RpdmUpCisJCQlvbGRfYWN0aXZlID0gYm9uZF9nZXRfb2xkX2Fj dGl2ZShib25kLCBuZXdfYWN0aXZlKTsKKwogCQlpZiAob2xkX2FjdGl2ZSkgewogCQkJbWVtY3B5 KHRtcF9tYWMsIG5ld19hY3RpdmUtPmRldi0+ZGV2X2FkZHIsIEVUSF9BTEVOKTsKIAkJCW1lbWNw eShzYWRkci5zYV9kYXRhLCBvbGRfYWN0aXZlLT5kZXYtPmRldl9hZGRyLApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCmluZGV4 IGYxM2E2NzMuLjcxNWU1YzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwor KysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTk4MSw5ICs5ODEsOSBAQCBzdGF0aWMg aW50IHZpcnRuZXRfcHJvYmUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCiAJLyogRG8gd2Ug c3VwcG9ydCAiaGFyZHdhcmUiIGNoZWNrc3Vtcz8gKi8KIAlpZiAodmlydGlvX2hhc19mZWF0dXJl KHZkZXYsIFZJUlRJT19ORVRfRl9DU1VNKSkgewogCQkvKiBUaGlzIG9wZW5zIHVwIHRoZSB3b3Js ZCBvZiBleHRyYSBmZWF0dXJlcy4gKi8KLQkJZGV2LT5od19mZWF0dXJlcyB8PSBORVRJRl9GX0hX X0NTVU18TkVUSUZfRl9TR3xORVRJRl9GX0ZSQUdMSVNUOworCQlkZXYtPmh3X2ZlYXR1cmVzIHw9 IE5FVElGX0ZfSFdfQ1NVTSB8IE5FVElGX0ZfU0c7CiAJCWlmIChjc3VtKQotCQkJZGV2LT5mZWF0 dXJlcyB8PSBORVRJRl9GX0hXX0NTVU18TkVUSUZfRl9TR3xORVRJRl9GX0ZSQUdMSVNUOworCQkJ ZGV2LT5mZWF0dXJlcyB8PSBORVRJRl9GX0hXX0NTVU0gfCBORVRJRl9GX1NHOwogCiAJCWlmICh2 aXJ0aW9faGFzX2ZlYXR1cmUodmRldiwgVklSVElPX05FVF9GX0dTTykpIHsKIAkJCWRldi0+aHdf ZmVhdHVyZXMgfD0gTkVUSUZfRl9UU08gfCBORVRJRl9GX1VGTwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYyBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL3J0bHdpZmkvcnRsODE5MmN1L3N3LmMKaW5kZXggZWMzNDdkMi4uZTgxM2VmZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYworKysgYi9k cml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjdS9zdy5jCkBAIC0zMTMsNiArMzEz LDggQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0bDgxOTJjX3VzYl9pZHNbXSA9IHsK IAl7UlRMX1VTQl9ERVZJQ0UoMHgwN2I4LCAweDgxODgsIHJ0bDkyY3VfaGFsX2NmZyl9LCAvKkFi b2NvbSAtIEFib2NvbSovCiAJe1JUTF9VU0JfREVWSUNFKDB4MDdiOCwgMHg4MTg5LCBydGw5MmN1 X2hhbF9jZmcpfSwgLypGdW5haSAtIEFib2NvbSovCiAJe1JUTF9VU0JfREVWSUNFKDB4MDg0Niwg MHg5MDQxLCBydGw5MmN1X2hhbF9jZmcpfSwgLypOZXRHZWFyIFdOQTEwMDBNKi8KKwl7UlRMX1VT Ql9ERVZJQ0UoMHgwODQ2LCAweDkwNDMsIHJ0bDkyY3VfaGFsX2NmZyl9LCAvKk5HIFdOQTEwMDBN djIqLworCXtSVExfVVNCX0RFVklDRSgweDBiMDUsIDB4MTdiYSwgcnRsOTJjdV9oYWxfY2ZnKX0s IC8qQVNVUy1FZGltYXgqLwogCXtSVExfVVNCX0RFVklDRSgweDBiZGEsIDB4NTA4OCwgcnRsOTJj dV9oYWxfY2ZnKX0sIC8qVGhpbmt3YXJlLUNDJkMqLwogCXtSVExfVVNCX0RFVklDRSgweDBkZjYs IDB4MDA1MiwgcnRsOTJjdV9oYWxfY2ZnKX0sIC8qU2l0ZWNvbSAtIEVkaW1heCovCiAJe1JUTF9V U0JfREVWSUNFKDB4MGRmNiwgMHgwMDVjLCBydGw5MmN1X2hhbF9jZmcpfSwgLypTaXRlY29tIC0g RWRpbWF4Ki8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvb2YvYWRkcmVzcy5jIGIvZHJpdmVycy9vZi9h ZGRyZXNzLmMKaW5kZXggNTNhNjEzZi4uMzkwMTZhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9vZi9h ZGRyZXNzLmMKKysrIGIvZHJpdmVycy9vZi9hZGRyZXNzLmMKQEAgLTYwNCwxMCArNjA0LDEwIEBA IHN0cnVjdCBkZXZpY2Vfbm9kZSAqb2ZfZmluZF9tYXRjaGluZ19ub2RlX2J5X2FkZHJlc3Moc3Ry dWN0IGRldmljZV9ub2RlICpmcm9tLAogCXN0cnVjdCByZXNvdXJjZSByZXM7CiAKIAl3aGlsZSAo ZG4pIHsKLQkJaWYgKG9mX2FkZHJlc3NfdG9fcmVzb3VyY2UoZG4sIDAsICZyZXMpKQotCQkJY29u dGludWU7Ci0JCWlmIChyZXMuc3RhcnQgPT0gYmFzZV9hZGRyZXNzKQorCQlpZiAoIW9mX2FkZHJl c3NfdG9fcmVzb3VyY2UoZG4sIDAsICZyZXMpICYmCisJCSAgICByZXMuc3RhcnQgPT0gYmFzZV9h ZGRyZXNzKQogCQkJcmV0dXJuIGRuOworCiAJCWRuID0gb2ZfZmluZF9tYXRjaGluZ19ub2RlKGRu LCBtYXRjaGVzKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2FjY2Vzcy5jIGIvZHJp dmVycy9wY2kvYWNjZXNzLmMKaW5kZXggZmRhYTQyYS4uZmFjMDFmOCAxMDA2NDQKLS0tIGEvZHJp dmVycy9wY2kvYWNjZXNzLmMKKysrIGIvZHJpdmVycy9wY2kvYWNjZXNzLmMKQEAgLTM1NSw2ICsz NTUsNTYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfdnBkX29wcyBwY2lfdnBkX3BjaTIyX29w cyA9IHsKIAkucmVsZWFzZSA9IHBjaV92cGRfcGNpMjJfcmVsZWFzZSwKIH07CiAKK3N0YXRpYyBz c2l6ZV90IHBjaV92cGRfZjBfcmVhZChzdHJ1Y3QgcGNpX2RldiAqZGV2LCBsb2ZmX3QgcG9zLCBz aXplX3QgY291bnQsCisJCQkgICAgICAgdm9pZCAqYXJnKQoreworCXN0cnVjdCBwY2lfZGV2ICp0 ZGV2ID0gcGNpX2dldF9zbG90KGRldi0+YnVzLCBQQ0lfU0xPVChkZXYtPmRldmZuKSk7CisJc3Np emVfdCByZXQ7CisKKwlpZiAoIXRkZXYpCisJCXJldHVybiAtRU5PREVWOworCisJcmV0ID0gcGNp X3JlYWRfdnBkKHRkZXYsIHBvcywgY291bnQsIGFyZyk7CisJcGNpX2Rldl9wdXQodGRldik7CisJ cmV0dXJuIHJldDsKK30KKworc3RhdGljIHNzaXplX3QgcGNpX3ZwZF9mMF93cml0ZShzdHJ1Y3Qg cGNpX2RldiAqZGV2LCBsb2ZmX3QgcG9zLCBzaXplX3QgY291bnQsCisJCQkJY29uc3Qgdm9pZCAq YXJnKQoreworCXN0cnVjdCBwY2lfZGV2ICp0ZGV2ID0gcGNpX2dldF9zbG90KGRldi0+YnVzLCBQ Q0lfU0xPVChkZXYtPmRldmZuKSk7CisJc3NpemVfdCByZXQ7CisKKwlpZiAoIXRkZXYpCisJCXJl dHVybiAtRU5PREVWOworCisJcmV0ID0gcGNpX3dyaXRlX3ZwZCh0ZGV2LCBwb3MsIGNvdW50LCBh cmcpOworCXBjaV9kZXZfcHV0KHRkZXYpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgcGNpX3ZwZF9vcHMgcGNpX3ZwZF9mMF9vcHMgPSB7CisJLnJlYWQgPSBwY2lfdnBk X2YwX3JlYWQsCisJLndyaXRlID0gcGNpX3ZwZF9mMF93cml0ZSwKKwkucmVsZWFzZSA9IHBjaV92 cGRfcGNpMjJfcmVsZWFzZSwKK307CisKK3N0YXRpYyBpbnQgcGNpX3ZwZF9mMF9kZXZfY2hlY2so c3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwlzdHJ1Y3QgcGNpX2RldiAqdGRldiA9IHBjaV9nZXRf c2xvdChkZXYtPmJ1cywgUENJX1NMT1QoZGV2LT5kZXZmbikpOworCWludCByZXQgPSAwOworCisJ aWYgKCF0ZGV2KQorCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAoIXRkZXYtPnZwZCB8fCAhdGRldi0+ bXVsdGlmdW5jdGlvbiB8fAorCSAgICBkZXYtPmNsYXNzICE9IHRkZXYtPmNsYXNzIHx8IGRldi0+ dmVuZG9yICE9IHRkZXYtPnZlbmRvciB8fAorCSAgICBkZXYtPmRldmljZSAhPSB0ZGV2LT5kZXZp Y2UpCisJCXJldCA9IC1FTk9ERVY7CisKKwlwY2lfZGV2X3B1dCh0ZGV2KTsKKwlyZXR1cm4gcmV0 OworfQorCiBpbnQgcGNpX3ZwZF9wY2kyMl9pbml0KHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7CiAJ c3RydWN0IHBjaV92cGRfcGNpMjIgKnZwZDsKQEAgLTM2MywxMiArNDEzLDIxIEBAIGludCBwY2lf dnBkX3BjaTIyX2luaXQoc3RydWN0IHBjaV9kZXYgKmRldikKIAljYXAgPSBwY2lfZmluZF9jYXBh YmlsaXR5KGRldiwgUENJX0NBUF9JRF9WUEQpOwogCWlmICghY2FwKQogCQlyZXR1cm4gLUVOT0RF VjsKKwlpZiAoZGV2LT5kZXZfZmxhZ3MgJiBQQ0lfREVWX0ZMQUdTX1ZQRF9SRUZfRjApIHsKKwkJ aW50IHJldCA9IHBjaV92cGRfZjBfZGV2X2NoZWNrKGRldik7CisKKwkJaWYgKHJldCkKKwkJCXJl dHVybiByZXQ7CisJfQogCXZwZCA9IGt6YWxsb2Moc2l6ZW9mKCp2cGQpLCBHRlBfQVRPTUlDKTsK IAlpZiAoIXZwZCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAl2cGQtPmJhc2UubGVuID0gUENJX1ZQ RF9QQ0kyMl9TSVpFOwotCXZwZC0+YmFzZS5vcHMgPSAmcGNpX3ZwZF9wY2kyMl9vcHM7CisJaWYg KGRldi0+ZGV2X2ZsYWdzICYgUENJX0RFVl9GTEFHU19WUERfUkVGX0YwKQorCQl2cGQtPmJhc2Uu b3BzID0gJnBjaV92cGRfZjBfb3BzOworCWVsc2UKKwkJdnBkLT5iYXNlLm9wcyA9ICZwY2lfdnBk X3BjaTIyX29wczsKIAltdXRleF9pbml0KCZ2cGQtPmxvY2spOwogCXZwZC0+Y2FwID0gY2FwOwog CXZwZC0+YnVzeSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcXVpcmtzLmMgYi9k cml2ZXJzL3BjaS9xdWlya3MuYwppbmRleCA0ODFiMTg0Li45M2JlNzYwIDEwMDY0NAotLS0gYS9k cml2ZXJzL3BjaS9xdWlya3MuYworKysgYi9kcml2ZXJzL3BjaS9xdWlya3MuYwpAQCAtMTk0MSw2 ICsxOTQxLDE1IEBAIHN0YXRpYyB2b2lkIF9fZGV2aW5pdCBxdWlya19uZXRtb3Moc3RydWN0IHBj aV9kZXYgKmRldikKIH0KIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX05F VE1PUywgUENJX0FOWV9JRCwgcXVpcmtfbmV0bW9zKTsKIAorc3RhdGljIHZvaWQgcXVpcmtfZjBf dnBkX2xpbmsoc3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwlpZiAoKGRldi0+Y2xhc3MgPj4gOCkg IT0gUENJX0NMQVNTX05FVFdPUktfRVRIRVJORVQgfHwKKwkgICAgIWRldi0+bXVsdGlmdW5jdGlv biB8fCAhUENJX0ZVTkMoZGV2LT5kZXZmbikpCisJCXJldHVybjsKKwlkZXYtPmRldl9mbGFncyB8 PSBQQ0lfREVWX0ZMQUdTX1ZQRF9SRUZfRjA7Cit9CitERUNMQVJFX1BDSV9GSVhVUF9FQVJMWShQ Q0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfQU5ZX0lELCBxdWlya19mMF92cGRfbGluayk7CisKIHN0 YXRpYyB2b2lkIF9fZGV2aW5pdCBxdWlya19lMTAwX2ludGVycnVwdChzdHJ1Y3QgcGNpX2RldiAq ZGV2KQogewogCXUxNiBjb21tYW5kLCBwbWNzcjsKQEAgLTI4NzUsOCArMjg4NCw5IEBAIHN0YXRp YyB2b2lkIF9fZGV2aW5pdCBmaXh1cF90aTgxNnhfY2xhc3Moc3RydWN0IHBjaV9kZXYqIGRldikK IHsKIAkvKiBUSSA4MTZ4IGRldmljZXMgZG8gbm90IGhhdmUgY2xhc3MgY29kZSBzZXQgd2hlbiBp biBQQ0llIGJvb3QgbW9kZSAqLwogCWlmIChkZXYtPmNsYXNzID09IFBDSV9DTEFTU19OT1RfREVG SU5FRCkgewotCQlkZXZfaW5mbygmZGV2LT5kZXYsICJTZXR0aW5nIFBDSSBjbGFzcyBmb3IgODE2 eCBQQ0llIGRldmljZVxuIik7Ci0JCWRldi0+Y2xhc3MgPSBQQ0lfQ0xBU1NfTVVMVElNRURJQV9W SURFTzsKKwkJZGV2LT5jbGFzcyA9IFBDSV9DTEFTU19NVUxUSU1FRElBX1ZJREVPIDw8IDg7CisJ CWRldl9pbmZvKCZkZXYtPmRldiwgIlBDSSBjbGFzcyBvdmVycmlkZGVuICglIzA4eCAtPiAlIzA4 eClcbiIsCisJCQkgUENJX0NMQVNTX05PVF9ERUZJTkVELCBkZXYtPmNsYXNzKTsKIAl9CiB9CiBE RUNMQVJFX1BDSV9GSVhVUF9FQVJMWShQQ0lfVkVORE9SX0lEX1RJLCAweGI4MDAsIGZpeHVwX3Rp ODE2eF9jbGFzcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbGliZmMvZmNfZmNwLmMgYi9k cml2ZXJzL3Njc2kvbGliZmMvZmNfZmNwLmMKaW5kZXggMjIxODc1ZS4uNzM1YjMyNCAxMDA2NDQK LS0tIGEvZHJpdmVycy9zY3NpL2xpYmZjL2ZjX2ZjcC5jCisrKyBiL2RyaXZlcnMvc2NzaS9saWJm Yy9mY19mY3AuYwpAQCAtMTAyOSwxMSArMTAyOSwyNiBAQCByZXN0YXJ0OgogCQlmY19mY3BfcGt0 X2hvbGQoZnNwKTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2ktPnNjc2lfcXVldWVfbG9j aywgZmxhZ3MpOwogCi0JCWlmICghZmNfZmNwX2xvY2tfcGt0KGZzcCkpIHsKKwkJc3Bpbl9sb2Nr X2JoKCZmc3AtPnNjc2lfcGt0X2xvY2spOworCQlpZiAoIShmc3AtPnN0YXRlICYgRkNfU1JCX0NP TVBMKSkgeworCQkJZnNwLT5zdGF0ZSB8PSBGQ19TUkJfQ09NUEw7CisJCQkvKgorCQkJICogVE9E TzogZHJvcHBpbmcgc2NzaV9wa3RfbG9jayBhbmQgdGhlbiByZWFjcXVpcmluZworCQkJICogYWdh aW4gYXJvdW5kIGZjX2ZjcF9jbGVhbnVwX2NtZCgpIGlzIHJlcXVpcmVkLAorCQkJICogc2luY2Ug ZmNfZmNwX2NsZWFudXBfY21kKCkgY2FsbHMgaW50bworCQkJICogZmNfc2VxX3NldF9yZXNwKCkg YW5kIHRoYXQgZnVuYyBwcmVlbXB0cyBjcHUgdXNpbmcKKwkJCSAqIHNjaGVkdWxlLiBNYXkgYmUg c2NoZWR1bGUgYW5kIHJlbGF0ZWQgY29kZSBzaG91bGQgYmUKKwkJCSAqIHJlbW92ZWQgaW5zdGVh ZCBvZiB1bmxvY2tpbmcgaGVyZSB0byBhdm9pZCBzY2hlZHVsaW5nCisJCQkgKiB3aGlsZSBhdG9t aWMgYnVnLgorCQkJICovCisJCQlzcGluX3VubG9ja19iaCgmZnNwLT5zY3NpX3BrdF9sb2NrKTsK KwogCQkJZmNfZmNwX2NsZWFudXBfY21kKGZzcCwgZXJyb3IpOworCisJCQlzcGluX2xvY2tfYmgo JmZzcC0+c2NzaV9wa3RfbG9jayk7CiAJCQlmY19pb19jb21wbChmc3ApOwotCQkJZmNfZmNwX3Vu bG9ja19wa3QoZnNwKTsKIAkJfQorCQlzcGluX3VubG9ja19iaCgmZnNwLT5zY3NpX3BrdF9sb2Nr KTsKIAogCQlmY19mY3BfcGt0X3JlbGVhc2UoZnNwKTsKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJnNp LT5zY3NpX3F1ZXVlX2xvY2ssIGZsYWdzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9saWJp c2NzaS5jIGIvZHJpdmVycy9zY3NpL2xpYmlzY3NpLmMKaW5kZXggMjc5NGEzMC4uODc3MWMwMyAx MDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2xpYmlzY3NpLmMKKysrIGIvZHJpdmVycy9zY3NpL2xp YmlzY3NpLmMKQEAgLTI5MDYsMTAgKzI5MDYsMTAgQEAgdm9pZCBpc2NzaV9jb25uX3RlYXJkb3du KHN0cnVjdCBpc2NzaV9jbHNfY29ubiAqY2xzX2Nvbm4pCiB7CiAJc3RydWN0IGlzY3NpX2Nvbm4g KmNvbm4gPSBjbHNfY29ubi0+ZGRfZGF0YTsKIAlzdHJ1Y3QgaXNjc2lfc2Vzc2lvbiAqc2Vzc2lv biA9IGNvbm4tPnNlc3Npb247Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCWRlbF90aW1lcl9z eW5jKCZjb25uLT50cmFuc3BvcnRfdGltZXIpOwogCisJbXV0ZXhfbG9jaygmc2Vzc2lvbi0+ZWhf bXV0ZXgpOwogCXNwaW5fbG9ja19iaCgmc2Vzc2lvbi0+bG9jayk7CiAJY29ubi0+Y19zdGFnZSA9 IElTQ1NJX0NPTk5fQ0xFQU5VUF9XQUlUOwogCWlmIChzZXNzaW9uLT5sZWFkY29ubiA9PSBjb25u KSB7CkBAIC0yOTIxLDI4ICsyOTIxLDYgQEAgdm9pZCBpc2NzaV9jb25uX3RlYXJkb3duKHN0cnVj dCBpc2NzaV9jbHNfY29ubiAqY2xzX2Nvbm4pCiAJfQogCXNwaW5fdW5sb2NrX2JoKCZzZXNzaW9u LT5sb2NrKTsKIAotCS8qCi0JICogQmxvY2sgdW50aWwgYWxsIGluLXByb2dyZXNzIGNvbW1hbmRz IGZvciB0aGlzIGNvbm5lY3Rpb24KLQkgKiB0aW1lIG91dCBvciBmYWlsLgotCSAqLwotCWZvciAo OzspIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoc2Vzc2lvbi0+aG9zdC0+aG9zdF9sb2NrLCBmbGFn cyk7Ci0JCWlmICghc2Vzc2lvbi0+aG9zdC0+aG9zdF9idXN5KSB7IC8qIE9LIGZvciBFUkwgPT0g MCAqLwotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzZXNzaW9uLT5ob3N0LT5ob3N0X2xvY2ss IGZsYWdzKTsKLQkJCWJyZWFrOwotCQl9Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2Vzc2lv bi0+aG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7Ci0JCW1zbGVlcF9pbnRlcnJ1cHRpYmxlKDUwMCk7 Ci0JCWlzY3NpX2Nvbm5fcHJpbnRrKEtFUk5fSU5GTywgY29ubiwgImlzY3NpIGNvbm5fZGVzdHJv eSgpOiAiCi0JCQkJICAiaG9zdF9idXN5ICVkIGhvc3RfZmFpbGVkICVkXG4iLAotCQkJCSAgc2Vz c2lvbi0+aG9zdC0+aG9zdF9idXN5LAotCQkJCSAgc2Vzc2lvbi0+aG9zdC0+aG9zdF9mYWlsZWQp OwotCQkvKgotCQkgKiBmb3JjZSBlaF9hYm9ydCgpIHRvIHVuYmxvY2sKLQkJICovCi0JCXdha2Vf dXAoJmNvbm4tPmVod2FpdCk7Ci0JfQotCiAJLyogZmx1c2ggcXVldWVkIHVwIHdvcmsgYmVjYXVz ZSB3ZSBmcmVlIHRoZSBjb25uZWN0aW9uIGJlbG93ICovCiAJaXNjc2lfc3VzcGVuZF90eChjb25u KTsKIApAQCAtMjk1NSw2ICsyOTMzLDcgQEAgdm9pZCBpc2NzaV9jb25uX3RlYXJkb3duKHN0cnVj dCBpc2NzaV9jbHNfY29ubiAqY2xzX2Nvbm4pCiAJaWYgKHNlc3Npb24tPmxlYWRjb25uID09IGNv bm4pCiAJCXNlc3Npb24tPmxlYWRjb25uID0gTlVMTDsKIAlzcGluX3VubG9ja19iaCgmc2Vzc2lv bi0+bG9jayk7CisJbXV0ZXhfdW5sb2NrKCZzZXNzaW9uLT5laF9tdXRleCk7CiAKIAlpc2NzaV9k ZXN0cm95X2Nvbm4oY2xzX2Nvbm4pOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLXB4 YTJ4eC5jIGIvZHJpdmVycy9zcGkvc3BpLXB4YTJ4eC5jCmluZGV4IGRjMjViZWUuLjJlY2MyZDYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3BpL3NwaS1weGEyeHguYworKysgYi9kcml2ZXJzL3NwaS9z cGktcHhhMnh4LmMKQEAgLTc5OSw2ICs3OTksMTAgQEAgc3RhdGljIGlycXJldHVybl90IHNzcF9p bnQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogCWlmICghKHNjY3IxX3JlZyAmIFNTQ1IxX1RJRSkp CiAJCW1hc2sgJj0gflNTU1JfVEZTOwogCisJLyogSWdub3JlIFJYIHRpbWVvdXQgaW50ZXJydXB0 IGlmIGl0IGlzIGRpc2FibGVkICovCisJaWYgKCEoc2NjcjFfcmVnICYgU1NDUjFfVElOVEUpKQor CQltYXNrICY9IH5TU1NSX1RJTlQ7CisKIAlpZiAoIShzdGF0dXMgJiBtYXNrKSkKIAkJcmV0dXJu IElSUV9OT05FOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJn ZXQuYyBiL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3RhcmdldC5jCmluZGV4IDU5ZmI5ODQu LjdjMzNjYmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3RhcmdldC5j CisrKyBiL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3RhcmdldC5jCkBAIC05NzksNyArOTc5 LDcgQEAgc3RhdGljIGludCBpc2NzaXRfaGFuZGxlX3Njc2lfY21kKAogCQlpZiAoY21kLT50YXJn X3hmZXJfdGFnID09IDB4RkZGRkZGRkYpCiAJCQljbWQtPnRhcmdfeGZlcl90YWcgPSBjb25uLT5z ZXNzLT50YXJnX3hmZXJfdGFnKys7CiAJCXNwaW5fdW5sb2NrX2JoKCZjb25uLT5zZXNzLT50dHRf bG9jayk7Ci0JfSBlbHNlIGlmIChoZHItPmZsYWdzICYgSVNDU0lfRkxBR19DTURfV1JJVEUpCisJ fSBlbHNlCiAJCWNtZC0+dGFyZ194ZmVyX3RhZyA9IDB4RkZGRkZGRkY7CiAJY21kLT5jbWRfc24J CT0gaGRyLT5jbWRzbjsKIAljbWQtPmV4cF9zdGF0X3NuCT0gaGRyLT5leHBfc3RhdHNuOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfZGV2aWNlLmMgYi9kcml2ZXJzL3Rh cmdldC90YXJnZXRfY29yZV9kZXZpY2UuYwppbmRleCA2OTkzOTYxLi5jM2NmOTVlIDEwMDY0NAot LS0gYS9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV9kZXZpY2UuYworKysgYi9kcml2ZXJzL3Rh cmdldC90YXJnZXRfY29yZV9kZXZpY2UuYwpAQCAtNjY4LDExICs2NjgsOCBAQCBpbnQgdGFyZ2V0 X3JlcG9ydF9sdW5zKHN0cnVjdCBzZV90YXNrICpzZV90YXNrKQogCSAqIGNvbWluZyB2aWEgYSB0 YXJnZXRfY29yZV9tb2QgUEFTU1RIUk9VR0ggb3AsIGFuZCBub3QgdGhyb3VnaAogCSAqIGEgJEZB QlJJQ19NT0QuICBJbiB0aGF0IGNhc2UsIHJlcG9ydCBMVU49MCBvbmx5LgogCSAqLwotCWlmICgh c2Vfc2VzcykgewotCQlpbnRfdG9fc2NzaWx1bigwLCAoc3RydWN0IHNjc2lfbHVuICopJmJ1Zltv ZmZzZXRdKTsKLQkJbHVuX2NvdW50ID0gMTsKKwlpZiAoIXNlX3Nlc3MpCiAJCWdvdG8gZG9uZTsK LQl9CiAKIAlzcGluX2xvY2tfaXJxKCZzZV9zZXNzLT5zZV9ub2RlX2FjbC0+ZGV2aWNlX2xpc3Rf bG9jayk7CiAJZm9yIChpID0gMDsgaSA8IFRSQU5TUE9SVF9NQVhfTFVOU19QRVJfVFBHOyBpKysp IHsKQEAgLTY5OSw2ICs2OTYsMTQgQEAgaW50IHRhcmdldF9yZXBvcnRfbHVucyhzdHJ1Y3Qgc2Vf dGFzayAqc2VfdGFzaykKIAkgKiBTZWUgU1BDMyByMDcsIHBhZ2UgMTU5LgogCSAqLwogZG9uZToK KwkvKgorCSAqIElmIG5vIExVTnMgYXJlIGFjY2Vzc2libGUsIHJlcG9ydCB2aXJ0dWFsIExVTiAw LgorCSAqLworCWlmIChsdW5fY291bnQgPT0gMCkgeworCQlpbnRfdG9fc2NzaWx1bigwLCAoc3Ry dWN0IHNjc2lfbHVuICopJmJ1ZltvZmZzZXRdKTsKKwkJbHVuX2NvdW50ID0gMTsKKwl9CisKIAls dW5fY291bnQgKj0gODsKIAlidWZbMF0gPSAoKGx1bl9jb3VudCA+PiAyNCkgJiAweGZmKTsKIAli dWZbMV0gPSAoKGx1bl9jb3VudCA+PiAxNikgJiAweGZmKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv dHR5L3NlcmlhbC84MjUwX3BucC5jIGIvZHJpdmVycy90dHkvc2VyaWFsLzgyNTBfcG5wLmMKaW5k ZXggYTJmMjM2NS4uYWRkMjA5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsLzgyNTBf cG5wLmMKKysrIGIvZHJpdmVycy90dHkvc2VyaWFsLzgyNTBfcG5wLmMKQEAgLTQyLDYgKzQyLDEy IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcG5wX2RldmljZV9pZCBwbnBfZGV2X3RhYmxlW10gPSB7 CiAJewkiQUVJMTI0MCIsCQkwCX0sCiAJLyogUm9ja3dlbGwgNTZLIEFDRiBJSSBGYXgrRGF0YStW b2ljZSBNb2RlbSAqLwogCXsJIkFLWTEwMjEiLAkJMCAvKlNQQ0lfRkxfTk9fU0hJUlEqLwl9LAor CS8qCisJICogQUxpIEZhc3QgSW5mcmFyZWQgQ29udHJvbGxlcgorCSAqIE5hdGl2ZSBkcml2ZXIg KGFsaS1pcmNjKSBpcyBicm9rZW4gc28gYXQgbGVhc3QKKwkgKiBpdCBjYW4gYmUgdXNlZCB3aXRo IGlydHR5LXNpci4KKwkgKi8KKwl7CSJBTEk1MTIzIiwJCTAJfSwKIAkvKiBBWlQzMDA1IFBuUCBT T1VORCBERVZJQ0UgKi8KIAl7CSJBWlQ0MDAxIiwJCTAJfSwKIAkvKiBCZXN0IERhdGEgUHJvZHVj dHMgSW5jLiBTbWFydCBPbmUgMzM2RiBQblAgTW9kZW0gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMv dXNiL2NvcmUvY29uZmlnLmMgYi9kcml2ZXJzL3VzYi9jb3JlL2NvbmZpZy5jCmluZGV4IDAyNzZk YjMuLjQ3OGQ3MWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvY29uZmlnLmMKKysrIGIv ZHJpdmVycy91c2IvY29yZS9jb25maWcuYwpAQCAtMTE0LDcgKzExNCw3IEBAIHN0YXRpYyB2b2lk IHVzYl9wYXJzZV9zc19lbmRwb2ludF9jb21wYW5pb24oc3RydWN0IGRldmljZSAqZGRldiwgaW50 IGNmZ25vLAogCQkJCWNmZ25vLCBpbnVtLCBhc251bSwgZXAtPmRlc2MuYkVuZHBvaW50QWRkcmVz cyk7CiAJCWVwLT5zc19lcF9jb21wLmJtQXR0cmlidXRlcyA9IDE2OwogCX0gZWxzZSBpZiAodXNi X2VuZHBvaW50X3hmZXJfaXNvYygmZXAtPmRlc2MpICYmCi0JCQlkZXNjLT5ibUF0dHJpYnV0ZXMg PiAyKSB7CisJCSAgIFVTQl9TU19NVUxUKGRlc2MtPmJtQXR0cmlidXRlcykgPiAzKSB7CiAJCWRl dl93YXJuKGRkZXYsICJJc29jIGVuZHBvaW50IGhhcyBNdWx0IG9mICVkIGluICIKIAkJCQkiY29u ZmlnICVkIGludGVyZmFjZSAlZCBhbHRzZXR0aW5nICVkIGVwICVkOiAiCiAJCQkJInNldHRpbmcg dG8gM1xuIiwgZGVzYy0+Ym1BdHRyaWJ1dGVzICsgMSwKQEAgLTEyMyw3ICsxMjMsOCBAQCBzdGF0 aWMgdm9pZCB1c2JfcGFyc2Vfc3NfZW5kcG9pbnRfY29tcGFuaW9uKHN0cnVjdCBkZXZpY2UgKmRk ZXYsIGludCBjZmdubywKIAl9CiAKIAlpZiAodXNiX2VuZHBvaW50X3hmZXJfaXNvYygmZXAtPmRl c2MpKQotCQltYXhfdHggPSAoZGVzYy0+Yk1heEJ1cnN0ICsgMSkgKiAoZGVzYy0+Ym1BdHRyaWJ1 dGVzICsgMSkgKgorCQltYXhfdHggPSAoZGVzYy0+Yk1heEJ1cnN0ICsgMSkgKgorCQkJKFVTQl9T U19NVUxUKGRlc2MtPmJtQXR0cmlidXRlcykpICoKIAkJCXVzYl9lbmRwb2ludF9tYXhwKCZlcC0+ ZGVzYyk7CiAJZWxzZSBpZiAodXNiX2VuZHBvaW50X3hmZXJfaW50KCZlcC0+ZGVzYykpCiAJCW1h eF90eCA9IHVzYl9lbmRwb2ludF9tYXhwKCZlcC0+ZGVzYykgKgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy91c2IvZ2FkZ2V0L202NjU5Mi11ZGMuYyBiL2RyaXZlcnMvdXNiL2dhZGdldC9tNjY1OTItdWRj LmMKaW5kZXggOWFhMWNiYi4uOTcxNmQ2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0 L202NjU5Mi11ZGMuYworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvbTY2NTkyLXVkYy5jCkBAIC0x MDUyLDcgKzEwNTIsNyBAQCBzdGF0aWMgdm9pZCBzZXRfZmVhdHVyZShzdHJ1Y3QgbTY2NTkyICpt NjY1OTIsIHN0cnVjdCB1c2JfY3RybHJlcXVlc3QgKmN0cmwpCiAJCQkJdG1wID0gbTY2NTkyX3Jl YWQobTY2NTkyLCBNNjY1OTJfSU5UU1RTMCkgJgogCQkJCQkJCQlNNjY1OTJfQ1RTUTsKIAkJCQl1 ZGVsYXkoMSk7Ci0JCQl9IHdoaWxlICh0bXAgIT0gTTY2NTkyX0NTX0lEU1QgfHwgdGltZW91dC0t ID4gMCk7CisJCQl9IHdoaWxlICh0bXAgIT0gTTY2NTkyX0NTX0lEU1QgJiYgdGltZW91dC0tID4g MCk7CiAKIAkJCWlmICh0bXAgPT0gTTY2NTkyX0NTX0lEU1QpCiAJCQkJbTY2NTkyX2JzZXQobTY2 NTkyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9laGNpLWZzbC5jIGIvZHJpdmVycy91 c2IvaG9zdC9laGNpLWZzbC5jCmluZGV4IGRhNDg3ZmQuLmNmOTk1ZDQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdXNiL2hvc3QvZWhjaS1mc2wuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktZnNs LmMKQEAgLTI3Miw2ICsyNzIsMTAgQEAgc3RhdGljIHZvaWQgZWhjaV9mc2xfdXNiX3NldHVwKHN0 cnVjdCBlaGNpX2hjZCAqZWhjaSkKIAlvdXRfYmUzMihub25fZWhjaSArIEZTTF9TT0NfVVNCX1NO T09QMiwgMHg4MDAwMDAwMCB8IFNOT09QX1NJWkVfMkdCKTsKICNlbmRpZgogCisJLyogRGVhbCB3 aXRoIFVTQiBlcnJhdHVtIEEtMDA1Mjc1ICovCisJaWYgKHBkYXRhLT5oYXNfZnNsX2VycmF0dW1f YTAwNTI3NSA9PSAxKQorCQllaGNpLT5oYXNfZnNsX2hzX2VycmF0YSA9IDE7CisKIAlpZiAoKHBk YXRhLT5vcGVyYXRpbmdfbW9kZSA9PSBGU0xfVVNCMl9EUl9IT1NUKSB8fAogCQkJKHBkYXRhLT5v cGVyYXRpbmdfbW9kZSA9PSBGU0xfVVNCMl9EUl9PVEcpKQogCQllaGNpX2ZzbF9zZXR1cF9waHko ZWhjaSwgcGRhdGEtPnBoeV9tb2RlLCAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qv ZWhjaS1odWIuYyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1odWIuYwppbmRleCA0NTI3YjkwLi4z MTNhNDdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktaHViLmMKKysrIGIvZHJp dmVycy91c2IvaG9zdC9laGNpLWh1Yi5jCkBAIC0xMDQ5LDYgKzEwNDksMTMgQEAgc3RhdGljIGlu dCBlaGNpX2h1Yl9jb250cm9sICgKIAkJCQkgKi8KIAkJCQllaGNpLT5yZXNldF9kb25lIFt3SW5k ZXhdID0gamlmZmllcwogCQkJCQkJKyBtc2Vjc190b19qaWZmaWVzICg1MCk7CisKKwkJCQkvKgor CQkJCSAqIEZvcmNlIGZ1bGwtc3BlZWQgY29ubmVjdCBmb3IgRlNMIGhpZ2gtc3BlZWQKKwkJCQkg KiBlcnJhdHVtOyBkaXNhYmxlIEhTIENoaXJwIGJ5IHNldHRpbmcgUEZTQyBiaXQKKwkJCQkgKi8K KwkJCQlpZiAoZWhjaV9oYXNfZnNsX2hzX2VycmF0YShlaGNpKSkKKwkJCQkJdGVtcCB8PSAoMSA8 PCBQT1JUU0NfRlNMX1BGU0MpOwogCQkJfQogCQkJZWhjaV93cml0ZWwoZWhjaSwgdGVtcCwgc3Rh dHVzX3JlZyk7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1z eXNmcy5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLXN5c2ZzLmMKaW5kZXggMTRjZWQwMC4uZGRh YWVhZCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLXN5c2ZzLmMKKysrIGIvZHJp dmVycy91c2IvaG9zdC9laGNpLXN5c2ZzLmMKQEAgLTI5LDcgKzI5LDcgQEAgc3RhdGljIHNzaXpl X3Qgc2hvd19jb21wYW5pb24oc3RydWN0IGRldmljZSAqZGV2LAogCWludAkJCWNvdW50ID0gUEFH RV9TSVpFOwogCWNoYXIJCQkqcHRyID0gYnVmOwogCi0JZWhjaSA9IGhjZF90b19laGNpKGJ1c190 b19oY2QoZGV2X2dldF9kcnZkYXRhKGRldikpKTsKKwllaGNpID0gaGNkX3RvX2VoY2koZGV2X2dl dF9kcnZkYXRhKGRldikpOwogCW5wb3J0cyA9IEhDU19OX1BPUlRTKGVoY2ktPmhjc19wYXJhbXMp OwogCiAJZm9yIChpbmRleCA9IDA7IGluZGV4IDwgbnBvcnRzOyArK2luZGV4KSB7CkBAIC01NCw3 ICs1NCw3IEBAIHN0YXRpYyBzc2l6ZV90IHN0b3JlX2NvbXBhbmlvbihzdHJ1Y3QgZGV2aWNlICpk ZXYsCiAJc3RydWN0IGVoY2lfaGNkCQkqZWhjaTsKIAlpbnQJCQlwb3J0bnVtLCBuZXdfb3duZXI7 CiAKLQllaGNpID0gaGNkX3RvX2VoY2koYnVzX3RvX2hjZChkZXZfZ2V0X2RydmRhdGEoZGV2KSkp OworCWVoY2kgPSBoY2RfdG9fZWhjaShkZXZfZ2V0X2RydmRhdGEoZGV2KSk7CiAJbmV3X293bmVy ID0gUE9SVF9PV05FUjsJCS8qIE93bmVkIGJ5IGNvbXBhbmlvbiAqLwogCWlmIChzc2NhbmYoYnVm LCAiJWQiLCAmcG9ydG51bSkgIT0gMSkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC04NSw3ICs4NSw3 IEBAIHN0YXRpYyBzc2l6ZV90IHNob3dfdWZyYW1lX3BlcmlvZGljX21heChzdHJ1Y3QgZGV2aWNl ICpkZXYsCiAJc3RydWN0IGVoY2lfaGNkCQkqZWhjaTsKIAlpbnQJCQluOwogCi0JZWhjaSA9IGhj ZF90b19laGNpKGJ1c190b19oY2QoZGV2X2dldF9kcnZkYXRhKGRldikpKTsKKwllaGNpID0gaGNk X3RvX2VoY2koZGV2X2dldF9kcnZkYXRhKGRldikpOwogCW4gPSBzY25wcmludGYoYnVmLCBQQUdF X1NJWkUsICIlZFxuIiwgZWhjaS0+dWZyYW1lX3BlcmlvZGljX21heCk7CiAJcmV0dXJuIG47CiB9 CkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIHNzaXplX3Qgc3RvcmVfdWZyYW1lX3BlcmlvZGlj X21heChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJdW5zaWduZWQgbG9uZwkJZmxhZ3M7CiAJc3NpemVf dAkJCXJldDsKIAotCWVoY2kgPSBoY2RfdG9fZWhjaShidXNfdG9faGNkKGRldl9nZXRfZHJ2ZGF0 YShkZXYpKSk7CisJZWhjaSA9IGhjZF90b19laGNpKGRldl9nZXRfZHJ2ZGF0YShkZXYpKTsKIAlp ZiAoa3N0cnRvdWludChidWYsIDAsICZ1ZnJhbWVfcGVyaW9kaWNfbWF4KSA8IDApCiAJCXJldHVy biAtRUlOVkFMOwogCkBAIC0xNjcsNiArMTY3LDkgQEAgc3RhdGljIGlubGluZSBpbnQgY3JlYXRl X3N5c2ZzX2ZpbGVzKHN0cnVjdCBlaGNpX2hjZCAqZWhjaSkKIAlzdHJ1Y3QgZGV2aWNlCSpjb250 cm9sbGVyID0gZWhjaV90b19oY2QoZWhjaSktPnNlbGYuY29udHJvbGxlcjsKIAlpbnQJaSA9IDA7 CiAKKwlpZiAoZGV2X2dldF9kcnZkYXRhKGNvbnRyb2xsZXIpICE9IGVoY2lfdG9faGNkKGVoY2kp KQorCQlyZXR1cm4gMDsKKwogCS8qIHdpdGggaW50ZWdyYXRlZCBUVCB0aGVyZSBpcyBubyBjb21w YW5pb24hICovCiAJaWYgKCFlaGNpX2lzX1RESShlaGNpKSkKIAkJaSA9IGRldmljZV9jcmVhdGVf ZmlsZShjb250cm9sbGVyLCAmZGV2X2F0dHJfY29tcGFuaW9uKTsKQEAgLTE4Miw2ICsxODUsOSBA QCBzdGF0aWMgaW5saW5lIHZvaWQgcmVtb3ZlX3N5c2ZzX2ZpbGVzKHN0cnVjdCBlaGNpX2hjZCAq ZWhjaSkKIHsKIAlzdHJ1Y3QgZGV2aWNlCSpjb250cm9sbGVyID0gZWhjaV90b19oY2QoZWhjaSkt PnNlbGYuY29udHJvbGxlcjsKIAorCWlmIChkZXZfZ2V0X2RydmRhdGEoY29udHJvbGxlcikgIT0g ZWhjaV90b19oY2QoZWhjaSkpCisJCXJldHVybjsKKwogCS8qIHdpdGggaW50ZWdyYXRlZCBUVCB0 aGVyZSBpcyBubyBjb21wYW5pb24hICovCiAJaWYgKCFlaGNpX2lzX1RESShlaGNpKSkKIAkJZGV2 aWNlX3JlbW92ZV9maWxlKGNvbnRyb2xsZXIsICZkZXZfYXR0cl9jb21wYW5pb24pOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy91c2IvaG9zdC9laGNpLmggYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2kuaApp bmRleCBiNjU5MTJkLi5iZDhhZGJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L2VoY2ku aAorKysgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2kuaApAQCAtMTM2LDYgKzEzNiw3IEBAIHN0cnVj dCBlaGNpX2hjZCB7CQkJLyogb25lIHBlciBjb250cm9sbGVyICovCiAJLyogU0lMSUNPTiBRVUlS S1MgKi8KIAl1bnNpZ25lZAkJbm9fc2VsZWN0aXZlX3N1c3BlbmQ6MTsKIAl1bnNpZ25lZAkJaGFz X2ZzbF9wb3J0X2J1ZzoxOyAvKiBGcmVlU2NhbGUgKi8KKwl1bnNpZ25lZAkJaGFzX2ZzbF9oc19l cnJhdGE6MTsJLyogRnJlZXNjYWxlIEhTIHF1aXJrICovCiAJdW5zaWduZWQJCWJpZ19lbmRpYW5f bW1pbzoxOwogCXVuc2lnbmVkCQliaWdfZW5kaWFuX2Rlc2M6MTsKIAl1bnNpZ25lZAkJYmlnX2Vu ZGlhbl9jYXBiYXNlOjE7CkBAIC02MTIsNiArNjEzLDE3IEBAIGVoY2lfcG9ydF9zcGVlZChzdHJ1 Y3QgZWhjaV9oY2QgKmVoY2ksIHVuc2lnbmVkIGludCBwb3J0c2MpCiAjZGVmaW5lCWVoY2lfaGFz X2ZzbF9wb3J0bm9fYnVnKGUpCQkoMCkKICNlbmRpZgogCisjZGVmaW5lIFBPUlRTQ19GU0xfUEZT QwkyNAkvKiBQb3J0IEZvcmNlIEZ1bGwtU3BlZWQgQ29ubmVjdCAqLworCisjaWYgZGVmaW5lZChD T05GSUdfUFBDXzg1eHgpCisvKiBTb21lIEZyZWVzY2FsZSBwcm9jZXNzb3JzIGhhdmUgYW4gZXJy YXR1bSAoVVNCIEEtMDA1Mjc1KSBpbiB3aGljaAorICogaW5jb21pbmcgcGFja2V0cyBnZXQgY29y cnVwdGVkIGluIEhTIG1vZGUKKyAqLworI2RlZmluZSBlaGNpX2hhc19mc2xfaHNfZXJyYXRhKGUp CSgoZSktPmhhc19mc2xfaHNfZXJyYXRhKQorI2Vsc2UKKyNkZWZpbmUgZWhjaV9oYXNfZnNsX2hz X2VycmF0YShlKQkoMCkKKyNlbmRpZgorCiAvKgogICogV2hpbGUgbW9zdCBVU0IgaG9zdCBjb250 cm9sbGVycyBpbXBsZW1lbnQgdGhlaXIgcmVnaXN0ZXJzIGluCiAgKiBsaXR0bGUtZW5kaWFuIGZv cm1hdCwgYSBtaW5vcml0eSAoY2VsbGViIGNvbXBhbmlvbiBjaGlwKSBpbXBsZW1lbnQKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvZnNsLW1waC1kci1vZi5jIGIvZHJpdmVycy91c2IvaG9z dC9mc2wtbXBoLWRyLW9mLmMKaW5kZXggNWE0MmNmMC4uYWMxOWVlNSAxMDA2NDQKLS0tIGEvZHJp dmVycy91c2IvaG9zdC9mc2wtbXBoLWRyLW9mLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9mc2wt bXBoLWRyLW9mLmMKQEAgLTE2Niw2ICsxNjYsMTAgQEAgc3RhdGljIGludCBfX2RldmluaXQgZnNs X3VzYjJfbXBoX2RyX29mX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2KQogCiAJ cHJvcCA9IG9mX2dldF9wcm9wZXJ0eShucCwgInBoeV90eXBlIiwgTlVMTCk7CiAJcGRhdGEtPnBo eV9tb2RlID0gZGV0ZXJtaW5lX3VzYl9waHkocHJvcCk7CisJaWYgKG9mX2dldF9wcm9wZXJ0eShu cCwgImZzbCx1c2ItZXJyYXR1bS1hMDA1Mjc1IiwgTlVMTCkpCisJCXBkYXRhLT5oYXNfZnNsX2Vy cmF0dW1fYTAwNTI3NSA9IDE7CisJZWxzZQorCQlwZGF0YS0+aGFzX2ZzbF9lcnJhdHVtX2EwMDUy NzUgPSAwOwogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZGV2X2RhdGEtPmRyaXZlcnMp OyBpKyspIHsKIAkJaWYgKCFkZXZfZGF0YS0+ZHJpdmVyc1tpXSkKZGlmZiAtLWdpdCBhL2RyaXZl cnMvdXNiL2hvc3QveGhjaS1tZW0uYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1tZW0uYwppbmRl eCBkNWQyYWY1Li5hYjAyM2IxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktbWVt LmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLW1lbS5jCkBAIC0xNDAzLDEwICsxNDAzLDEw IEBAIGludCB4aGNpX2VuZHBvaW50X2luaXQoc3RydWN0IHhoY2lfaGNkICp4aGNpLAogCSAqIHVz ZSBFdmVudCBEYXRhIFRSQnMsIGFuZCB3ZSBkb24ndCBjaGFpbiBpbiBhIGxpbmsgVFJCIG9uIHNo b3J0CiAJICogdHJhbnNmZXJzLCB3ZSdyZSBiYXNpY2FsbHkgZGl2aWRpbmcgYnkgMS4KIAkgKgot CSAqIHhIQ0kgMS4wIHNwZWNpZmljYXRpb24gaW5kaWNhdGVzIHRoYXQgdGhlIEF2ZXJhZ2UgVFJC IExlbmd0aCBzaG91bGQKLQkgKiBiZSBzZXQgdG8gOCBmb3IgY29udHJvbCBlbmRwb2ludHMuCisJ ICogeEhDSSAxLjAgYW5kIDEuMSBzcGVjaWZpY2F0aW9uIGluZGljYXRlcyB0aGF0IHRoZSBBdmVy YWdlIFRSQiBMZW5ndGgKKwkgKiBzaG91bGQgYmUgc2V0IHRvIDggZm9yIGNvbnRyb2wgZW5kcG9p bnRzLgogCSAqLwotCWlmICh1c2JfZW5kcG9pbnRfeGZlcl9jb250cm9sKCZlcC0+ZGVzYykgJiYg eGhjaS0+aGNpX3ZlcnNpb24gPT0gMHgxMDApCisJaWYgKHVzYl9lbmRwb2ludF94ZmVyX2NvbnRy b2woJmVwLT5kZXNjKSAmJiB4aGNpLT5oY2lfdmVyc2lvbiA+PSAweDEwMCkKIAkJZXBfY3R4LT50 eF9pbmZvIHw9IGNwdV90b19sZTMyKEFWR19UUkJfTEVOR1RIX0ZPUl9FUCg4KSk7CiAJZWxzZQog CQllcF9jdHgtPnR4X2luZm8gfD0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1y aW5nLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jCmluZGV4IGE0N2UyOWEuLmRjOGU1 YTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMKKysrIGIvZHJpdmVy cy91c2IvaG9zdC94aGNpLXJpbmcuYwpAQCAtODUsNyArODUsNyBAQCBkbWFfYWRkcl90IHhoY2lf dHJiX3ZpcnRfdG9fZG1hKHN0cnVjdCB4aGNpX3NlZ21lbnQgKnNlZywKIAkJcmV0dXJuIDA7CiAJ Lyogb2Zmc2V0IGluIFRSQnMgKi8KIAlzZWdtZW50X29mZnNldCA9IHRyYiAtIHNlZy0+dHJiczsK LQlpZiAoc2VnbWVudF9vZmZzZXQgPiBUUkJTX1BFUl9TRUdNRU5UKQorCWlmIChzZWdtZW50X29m ZnNldCA+PSBUUkJTX1BFUl9TRUdNRU5UKQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gc2VnLT5kbWEg KyAoc2VnbWVudF9vZmZzZXQgKiBzaXplb2YoKnRyYikpOwogfQpAQCAtMzUwLDYgKzM1MCwxNSBA QCBzdGF0aWMgaW50IHhoY2lfYWJvcnRfY21kX3Jpbmcoc3RydWN0IHhoY2lfaGNkICp4aGNpKQog CXJldCA9IGhhbmRzaGFrZSh4aGNpLCAmeGhjaS0+b3BfcmVncy0+Y21kX3JpbmcsCiAJCQlDTURf UklOR19SVU5OSU5HLCAwLCA1ICogMTAwMCAqIDEwMDApOwogCWlmIChyZXQgPCAwKSB7CisJCS8q IHdlIGFyZSBhYm91dCB0byBraWxsIHhoY2ksIGdpdmUgaXQgb25lIG1vcmUgY2hhbmNlICovCisJ CXhoY2lfd3JpdGVfNjQoeGhjaSwgdGVtcF82NCB8IENNRF9SSU5HX0FCT1JULAorCQkJICAgICAg JnhoY2ktPm9wX3JlZ3MtPmNtZF9yaW5nKTsKKwkJdWRlbGF5KDEwMDApOworCQlyZXQgPSBoYW5k c2hha2UoeGhjaSwgJnhoY2ktPm9wX3JlZ3MtPmNtZF9yaW5nLAorCQkJCUNNRF9SSU5HX1JVTk5J TkcsIDAsIDMgKiAxMDAwICogMTAwMCk7CisJCWlmIChyZXQgPT0gMCkKKwkJCXJldHVybiAwOwor CiAJCXhoY2lfZXJyKHhoY2ksICJTdG9wcGVkIHRoZSBjb21tYW5kIHJpbmcgZmFpbGVkLCAiCiAJ CQkJIm1heWJlIHRoZSBob3N0IGlzIGRlYWRcbiIpOwogCQl4aGNpLT54aGNfc3RhdGUgfD0gWEhD SV9TVEFURV9EWUlORzsKQEAgLTM0MjMsOCArMzQzMiw4IEBAIGludCB4aGNpX3F1ZXVlX2N0cmxf dHgoc3RydWN0IHhoY2lfaGNkICp4aGNpLCBnZnBfdCBtZW1fZmxhZ3MsCiAJaWYgKHN0YXJ0X2N5 Y2xlID09IDApCiAJCWZpZWxkIHw9IDB4MTsKIAotCS8qIHhIQ0kgMS4wIDYuNC4xLjIuMTogVHJh bnNmZXIgVHlwZSBmaWVsZCAqLwotCWlmICh4aGNpLT5oY2lfdmVyc2lvbiA9PSAweDEwMCkgewor CS8qIHhIQ0kgMS4wLzEuMSA2LjQuMS4yLjE6IFRyYW5zZmVyIFR5cGUgZmllbGQgKi8KKwlpZiAo eGhjaS0+aGNpX3ZlcnNpb24gPj0gMHgxMDApIHsKIAkJaWYgKHVyYi0+dHJhbnNmZXJfYnVmZmVy X2xlbmd0aCA+IDApIHsKIAkJCWlmIChzZXR1cC0+YlJlcXVlc3RUeXBlICYgVVNCX0RJUl9JTikK IAkJCQlmaWVsZCB8PSBUUkJfVFhfVFlQRShUUkJfREFUQV9JTik7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi9ob3N0L3hoY2kuYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5jCmluZGV4IDk1MGE4 Y2MuLjJmNTFkZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5jCisrKyBiL2Ry aXZlcnMvdXNiL2hvc3QveGhjaS5jCkBAIC0xNDEsNyArMTQxLDggQEAgc3RhdGljIGludCB4aGNp X3N0YXJ0KHN0cnVjdCB4aGNpX2hjZCAqeGhjaSkKIAkJCQkid2FpdGVkICV1IG1pY3Jvc2Vjb25k cy5cbiIsCiAJCQkJWEhDSV9NQVhfSEFMVF9VU0VDKTsKIAlpZiAoIXJldCkKLQkJeGhjaS0+eGhj X3N0YXRlICY9IH5YSENJX1NUQVRFX0hBTFRFRDsKKwkJeGhjaS0+eGhjX3N0YXRlICY9IH4oWEhD SV9TVEFURV9IQUxURUQgfCBYSENJX1NUQVRFX0RZSU5HKTsKKwogCXJldHVybiByZXQ7CiB9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jIGIvZHJpdmVycy91c2Iv c2VyaWFsL2Z0ZGlfc2lvLmMKaW5kZXggODI1N2QzYi4uNGZmYWE5ZCAxMDA2NDQKLS0tIGEvZHJp dmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlf c2lvLmMKQEAgLTYyOSw2ICs2MjksMTAgQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlk X3RhYmxlX2NvbWJpbmVkIFtdID0gewogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9OVF9P UklPTkxYTV9QSUQpLAogCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJmZ0ZGlfanRh Z19xdWlyayB9LAogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9TWU5BUFNFX1NTMjAwX1BJ RCkgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfQ1VTVE9NV0FSRV9NSU5JUExFWF9Q SUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX0NVU1RPTVdBUkVfTUlOSVBMRVgy X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfQ1VTVE9NV0FSRV9NSU5JUExF WDJXSV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX0NVU1RPTVdBUkVfTUlO SVBMRVgzX1BJRCkgfSwKIAkvKgogCSAqIEVMViBkZXZpY2VzOgogCSAqLwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvX2lkcy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0 ZGlfc2lvX2lkcy5oCmluZGV4IGU0YTU3YmIuLjdkMTE2NDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaAorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9z aW9faWRzLmgKQEAgLTU2OCw2ICs1NjgsMTQgQEAKICAqLwogI2RlZmluZSBGVERJX1NZTkFQU0Vf U1MyMDBfUElEIDB4OTA5MCAvKiBTUzIwMCAtIFNOQVAgU3RpY2sgMjAwICovCiAKKy8qCisgKiBD dXN0b21XYXJlIC8gU2hpcE1vZHVsIE5NRUEgbXVsdGlwbGV4ZXJzIHByb2R1Y3QgaWRzIChGVERJ X1ZJRCkKKyAqLworI2RlZmluZSBGVERJX0NVU1RPTVdBUkVfTUlOSVBMRVhfUElECTB4ZmQ0OAkv KiBNaW5pUGxleCBmaXJzdCBnZW5lcmF0aW9uIE5NRUEgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUg RlRESV9DVVNUT01XQVJFX01JTklQTEVYMl9QSUQJMHhmZDQ5CS8qIE1pbmlQbGV4LVVTQiBhbmQg TWluaVBsZXgtMiBzZXJpZXMgKi8KKyNkZWZpbmUgRlRESV9DVVNUT01XQVJFX01JTklQTEVYMldJ X1BJRAkweGZkNGEJLyogTWluaVBsZXgtMldpICovCisjZGVmaW5lIEZURElfQ1VTVE9NV0FSRV9N SU5JUExFWDNfUElECTB4ZmQ0YgkvKiBNaW5pUGxleC0zIHNlcmllcyAqLworCiAKIC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qKiB0aGlyZC1wYXJ0eSBWSUQvUElEIGNvbWJv cyAqKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYyBiL2RyaXZlcnMv dXNiL3NlcmlhbC9vcHRpb24uYwppbmRleCA2NGVhOTVkLi43ZTZkMmVjIDEwMDY0NAotLS0gYS9k cml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlv bi5jCkBAIC0yNzYsNiArMjc2LDEwIEBAIHN0YXRpYyB2b2lkIG9wdGlvbl9pbnN0YXRfY2FsbGJh Y2soc3RydWN0IHVyYiAqdXJiKTsKICNkZWZpbmUgWlRFX1BST0RVQ1RfTUY2MjIJCQkweDAwMDEK ICNkZWZpbmUgWlRFX1BST0RVQ1RfTUY2MjgJCQkweDAwMTUKICNkZWZpbmUgWlRFX1BST0RVQ1Rf TUY2MjYJCQkweDAwMzEKKyNkZWZpbmUgWlRFX1BST0RVQ1RfWk04NjIwX1gJCQkweDAzOTYKKyNk ZWZpbmUgWlRFX1BST0RVQ1RfTUUzNjIwX01CSU0JCQkweDA0MjYKKyNkZWZpbmUgWlRFX1BST0RV Q1RfTUUzNjIwX1gJCQkweDE0MzIKKyNkZWZpbmUgWlRFX1BST0RVQ1RfTUUzNjIwX0wJCQkweDE0 MzMKICNkZWZpbmUgWlRFX1BST0RVQ1RfQ0RNQV9URUNICQkJMHhmZmZlCiAjZGVmaW5lIFpURV9Q Uk9EVUNUX0FDODcxMAkJCTB4ZmZmMQogI2RlZmluZSBaVEVfUFJPRFVDVF9BQzI3MjYJCQkweGZm ZjUKQEAgLTU0Nyw2ICs1NTEsMTggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb25fYmxhY2ts aXN0X2luZm8genRlX21jMjcxNl96X2JsYWNrbGlzdCA9IHsKIAkuc2VuZHNldHVwID0gQklUKDEp IHwgQklUKDIpIHwgQklUKDMpLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb25fYmxh Y2tsaXN0X2luZm8genRlX21lMzYyMF9tYmltX2JsYWNrbGlzdCA9IHsKKwkucmVzZXJ2ZWQgPSBC SVQoMikgfCBCSVQoMykgfCBCSVQoNCksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlv bl9ibGFja2xpc3RfaW5mbyB6dGVfbWUzNjIwX3hsX2JsYWNrbGlzdCA9IHsKKwkucmVzZXJ2ZWQg PSBCSVQoMykgfCBCSVQoNCkgfCBCSVQoNSksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9w dGlvbl9ibGFja2xpc3RfaW5mbyB6dGVfem04NjIwX3hfYmxhY2tsaXN0ID0geworCS5yZXNlcnZl ZCA9IEJJVCgzKSB8IEJJVCg0KSB8IEJJVCg1KSwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg b3B0aW9uX2JsYWNrbGlzdF9pbmZvIGh1YXdlaV9jZGMxMl9ibGFja2xpc3QgPSB7CiAJLnJlc2Vy dmVkID0gQklUKDEpIHwgQklUKDIpLAogfTsKQEAgLTE1NzgsNiArMTU5NCwxNCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0gewogCSAuZHJpdmVyX2lu Zm8gPSAoa2VybmVsX3Vsb25nX3QpJnp0ZV9hZDM4MTJfel9ibGFja2xpc3QgfSwKIAl7IFVTQl9E RVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIFpURV9QUk9EVUNUX01DMjcx NiwgMHhmZiwgMHhmZiwgMHhmZiksCiAJIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkm enRlX21jMjcxNl96X2JsYWNrbGlzdCB9LAorCXsgVVNCX0RFVklDRShaVEVfVkVORE9SX0lELCBa VEVfUFJPRFVDVF9NRTM2MjBfTCksCisJIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkm enRlX21lMzYyMF94bF9ibGFja2xpc3QgfSwKKwl7IFVTQl9ERVZJQ0UoWlRFX1ZFTkRPUl9JRCwg WlRFX1BST0RVQ1RfTUUzNjIwX01CSU0pLAorCSAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25n X3QpJnp0ZV9tZTM2MjBfbWJpbV9ibGFja2xpc3QgfSwKKwl7IFVTQl9ERVZJQ0UoWlRFX1ZFTkRP Ul9JRCwgWlRFX1BST0RVQ1RfTUUzNjIwX1gpLAorCSAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vs b25nX3QpJnp0ZV9tZTM2MjBfeGxfYmxhY2tsaXN0IH0sCisJeyBVU0JfREVWSUNFKFpURV9WRU5E T1JfSUQsIFpURV9QUk9EVUNUX1pNODYyMF9YKSwKKwkgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91 bG9uZ190KSZ6dGVfem04NjIwX3hfYmxhY2tsaXN0IH0sCiAJeyBVU0JfVkVORE9SX0FORF9JTlRF UkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweGZmLCAweDAyLCAweDAxKSB9LAogCXsgVVNCX1ZF TkRPUl9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHhmZiwgMHgwMiwgMHgwNSkg fSwKIAl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4ZmYs IDB4ODYsIDB4MTApIH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvc2llcnJhLmMg Yi9kcml2ZXJzL3VzYi9zZXJpYWwvc2llcnJhLmMKaW5kZXggZGI5ZTU0YS4uZjM0YzBkZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3NpZXJyYS5jCisrKyBiL2RyaXZlcnMvdXNiL3Nl cmlhbC9zaWVycmEuYwpAQCAtMzAzLDYgKzMwMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNi X2RldmljZV9pZCBpZF90YWJsZVtdID0gewogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lO Rk8oMHgxMTk5LCAweDY4QUEsIDB4RkYsIDB4RkYsIDB4RkYpLAogCSAgLmRyaXZlcl9pbmZvID0g KGtlcm5lbF91bG9uZ190KSZkaXJlY3RfaXBfaW50ZXJmYWNlX2JsYWNrbGlzdAogCX0sCisJeyBV U0JfREVWSUNFKDB4MTE5OSwgMHg2OEFCKSB9LCAvKiBTaWVycmEgV2lyZWxlc3MgQVI4NTUwICov CiAJLyogQVQmVCBEaXJlY3QgSVAgTFRFIG1vZGVtcyAqLwogCXsgVVNCX0RFVklDRV9BTkRfSU5U RVJGQUNFX0lORk8oMHgwRjNELCAweDY4QUEsIDB4RkYsIDB4RkYsIDB4RkYpLAogCSAgLmRyaXZl cl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZkaXJlY3RfaXBfaW50ZXJmYWNlX2JsYWNrbGlzdApk aWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3doaXRlaGVhdC5jIGIvZHJpdmVycy91c2Iv c2VyaWFsL3doaXRlaGVhdC5jCmluZGV4IDU0ODE4MDkuLjc1NjcwYjUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXQuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvd2hp dGVoZWF0LmMKQEAgLTE0Myw2ICsxNDMsOCBAQCBzdGF0aWMgaW50ICB3aGl0ZWhlYXRfZmlybXdh cmVfZG93bmxvYWQoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwKIHN0YXRpYyBpbnQgIHdoaXRl aGVhdF9maXJtd2FyZV9hdHRhY2goc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CiAKIC8qIGZ1 bmN0aW9uIHByb3RvdHlwZXMgZm9yIHRoZSBDb25uZWN0IFRlY2ggV2hpdGVIRUFUIHNlcmlhbCBj b252ZXJ0ZXIgKi8KK3N0YXRpYyBpbnQgd2hpdGVoZWF0X3Byb2JlKHN0cnVjdCB1c2Jfc2VyaWFs ICpzZXJpYWwsCisJCQkJY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKTsKIHN0YXRpYyBp bnQgIHdoaXRlaGVhdF9hdHRhY2goc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCk7CiBzdGF0aWMg dm9pZCB3aGl0ZWhlYXRfcmVsZWFzZShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKTsKIHN0YXRp YyBpbnQgIHdoaXRlaGVhdF9vcGVuKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksCkBAIC0xODgsNiAr MTkwLDcgQEAgc3RhdGljIHN0cnVjdCB1c2Jfc2VyaWFsX2RyaXZlciB3aGl0ZWhlYXRfZGV2aWNl ID0gewogCS51c2JfZHJpdmVyID0JCSZ3aGl0ZWhlYXRfZHJpdmVyLAogCS5pZF90YWJsZSA9CQlp ZF90YWJsZV9zdGQsCiAJLm51bV9wb3J0cyA9CQk0LAorCS5wcm9iZSA9CQl3aGl0ZWhlYXRfcHJv YmUsCiAJLmF0dGFjaCA9CQl3aGl0ZWhlYXRfYXR0YWNoLAogCS5yZWxlYXNlID0JCXdoaXRlaGVh dF9yZWxlYXNlLAogCS5vcGVuID0JCQl3aGl0ZWhlYXRfb3BlbiwKQEAgLTM4Nyw2ICszOTAsMzQg QEAgc3RhdGljIGludCB3aGl0ZWhlYXRfZmlybXdhcmVfYXR0YWNoKHN0cnVjdCB1c2Jfc2VyaWFs ICpzZXJpYWwpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvbm5lY3QgVGVjaCdzIFdoaXRl IEhlYXQgc2VyaWFsIGRyaXZlciBmdW5jdGlvbnMKICAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwor c3RhdGljIGludCB3aGl0ZWhlYXRfcHJvYmUoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwKKwkJ CQljb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCit7CisJc3RydWN0IHVzYl9ob3N0X2lu dGVyZmFjZSAqaWZhY2VfZGVzYzsKKwlzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IgKmVu ZHBvaW50OworCXNpemVfdCBudW1fYnVsa19pbiA9IDA7CisJc2l6ZV90IG51bV9idWxrX291dCA9 IDA7CisJc2l6ZV90IG1pbl9udW1fYnVsazsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWlmYWNlX2Rl c2MgPSBzZXJpYWwtPmludGVyZmFjZS0+Y3VyX2FsdHNldHRpbmc7CisKKwlmb3IgKGkgPSAwOyBp IDwgaWZhY2VfZGVzYy0+ZGVzYy5iTnVtRW5kcG9pbnRzOyBpKyspIHsKKwkJZW5kcG9pbnQgPSAm aWZhY2VfZGVzYy0+ZW5kcG9pbnRbaV0uZGVzYzsKKwkJaWYgKHVzYl9lbmRwb2ludF9pc19idWxr X2luKGVuZHBvaW50KSkKKwkJCSsrbnVtX2J1bGtfaW47CisJCWlmICh1c2JfZW5kcG9pbnRfaXNf YnVsa19vdXQoZW5kcG9pbnQpKQorCQkJKytudW1fYnVsa19vdXQ7CisJfQorCisJbWluX251bV9i dWxrID0gQ09NTUFORF9QT1JUICsgMTsKKwlpZiAobnVtX2J1bGtfaW4gPCBtaW5fbnVtX2J1bGsg fHwgbnVtX2J1bGtfb3V0IDwgbWluX251bV9idWxrKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXJl dHVybiAwOworfQorCiBzdGF0aWMgaW50IHdoaXRlaGVhdF9hdHRhY2goc3RydWN0IHVzYl9zZXJp YWwgKnNlcmlhbCkKIHsKIAlzdHJ1Y3QgdXNiX3NlcmlhbF9wb3J0ICpjb21tYW5kX3BvcnQ7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9nbnRkZXYuYyBiL2RyaXZlcnMveGVuL2dudGRldi5jCmlu ZGV4IDA4MGIxODYuLjAxZDE3NzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2dudGRldi5jCisr KyBiL2RyaXZlcnMveGVuL2dudGRldi5jCkBAIC00OTMsMTEgKzQ5MywxNSBAQCBzdGF0aWMgaW50 IGdudGRldl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmbGlwKQog CiAJcHJfZGVidWcoInByaXYgJXBcbiIsIHByaXYpOwogCisJc3Bpbl9sb2NrKCZwcml2LT5sb2Nr KTsKIAl3aGlsZSAoIWxpc3RfZW1wdHkoJnByaXYtPm1hcHMpKSB7CiAJCW1hcCA9IGxpc3RfZW50 cnkocHJpdi0+bWFwcy5uZXh0LCBzdHJ1Y3QgZ3JhbnRfbWFwLCBuZXh0KTsKIAkJbGlzdF9kZWwo Jm1hcC0+bmV4dCk7CisJCXNwaW5fdW5sb2NrKCZwcml2LT5sb2NrKTsKIAkJZ250ZGV2X3B1dF9t YXAobWFwKTsKKwkJc3Bpbl9sb2NrKCZwcml2LT5sb2NrKTsKIAl9CisJc3Bpbl91bmxvY2soJnBy aXYtPmxvY2spOwogCiAJaWYgKHVzZV9wdGVtb2QpCiAJCW1tdV9ub3RpZmllcl91bnJlZ2lzdGVy KCZwcml2LT5tbiwgcHJpdi0+bW0pOwpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvZXh0ZW50X2lvLmMg Yi9mcy9idHJmcy9leHRlbnRfaW8uYwppbmRleCAwNTkzN2E4Li45YTgzN2E4IDEwMDY0NAotLS0g YS9mcy9idHJmcy9leHRlbnRfaW8uYworKysgYi9mcy9idHJmcy9leHRlbnRfaW8uYwpAQCAtMjQ0 NCw3ICsyNDQ0LDggQEAgc3RhdGljIGludCBzdWJtaXRfZXh0ZW50X3BhZ2UoaW50IHJ3LCBzdHJ1 Y3QgZXh0ZW50X2lvX3RyZWUgKnRyZWUsCiAJCQkgICAgICBiaW9fZW5kX2lvX3QgZW5kX2lvX2Z1 bmMsCiAJCQkgICAgICBpbnQgbWlycm9yX251bSwKIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgcHJl dl9iaW9fZmxhZ3MsCi0JCQkgICAgICB1bnNpZ25lZCBsb25nIGJpb19mbGFncykKKwkJCSAgICAg IHVuc2lnbmVkIGxvbmcgYmlvX2ZsYWdzLAorCQkJICAgICAgYm9vbCBmb3JjZV9iaW9fc3VibWl0 KQogewogCWludCByZXQgPSAwOwogCXN0cnVjdCBiaW8gKmJpbzsKQEAgLTI0NjMsNiArMjQ2NCw3 IEBAIHN0YXRpYyBpbnQgc3VibWl0X2V4dGVudF9wYWdlKGludCBydywgc3RydWN0IGV4dGVudF9p b190cmVlICp0cmVlLAogCQkJCXNlY3RvcjsKIAogCQlpZiAocHJldl9iaW9fZmxhZ3MgIT0gYmlv X2ZsYWdzIHx8ICFjb250aWcgfHwKKwkJICAgIGZvcmNlX2Jpb19zdWJtaXQgfHwKIAkJICAgICh0 cmVlLT5vcHMgJiYgdHJlZS0+b3BzLT5tZXJnZV9iaW9faG9vayAmJgogCQkgICAgIHRyZWUtPm9w cy0+bWVyZ2VfYmlvX2hvb2socGFnZSwgb2Zmc2V0LCBwYWdlX3NpemUsIGJpbywKIAkJCQkJICAg ICAgIGJpb19mbGFncykpIHx8CkBAIC0yNTE5LDcgKzI1MjEsOCBAQCBzdGF0aWMgaW50IF9fZXh0 ZW50X3JlYWRfZnVsbF9wYWdlKHN0cnVjdCBleHRlbnRfaW9fdHJlZSAqdHJlZSwKIAkJCQkgICBz dHJ1Y3QgcGFnZSAqcGFnZSwKIAkJCQkgICBnZXRfZXh0ZW50X3QgKmdldF9leHRlbnQsCiAJCQkJ ICAgc3RydWN0IGJpbyAqKmJpbywgaW50IG1pcnJvcl9udW0sCi0JCQkJICAgdW5zaWduZWQgbG9u ZyAqYmlvX2ZsYWdzKQorCQkJCSAgIHVuc2lnbmVkIGxvbmcgKmJpb19mbGFncywKKwkJCQkgICB1 NjQgKnByZXZfZW1fc3RhcnQpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IHBhZ2UtPm1hcHBp bmctPmhvc3Q7CiAJdTY0IHN0YXJ0ID0gKHU2NClwYWdlLT5pbmRleCA8PCBQQUdFX0NBQ0hFX1NI SUZUOwpAQCAtMjU3NSw2ICsyNTc4LDggQEAgc3RhdGljIGludCBfX2V4dGVudF9yZWFkX2Z1bGxf cGFnZShzdHJ1Y3QgZXh0ZW50X2lvX3RyZWUgKnRyZWUsCiAJCX0KIAl9CiAJd2hpbGUgKGN1ciA8 PSBlbmQpIHsKKwkJYm9vbCBmb3JjZV9iaW9fc3VibWl0ID0gZmFsc2U7CisKIAkJaWYgKGN1ciA+ PSBsYXN0X2J5dGUpIHsKIAkJCWNoYXIgKnVzZXJwYWdlOwogCQkJc3RydWN0IGV4dGVudF9zdGF0 ZSAqY2FjaGVkID0gTlVMTDsKQEAgLTI2MjEsNiArMjYyNiw0OSBAQCBzdGF0aWMgaW50IF9fZXh0 ZW50X3JlYWRfZnVsbF9wYWdlKHN0cnVjdCBleHRlbnRfaW9fdHJlZSAqdHJlZSwKIAkJYmxvY2tf c3RhcnQgPSBlbS0+YmxvY2tfc3RhcnQ7CiAJCWlmICh0ZXN0X2JpdChFWFRFTlRfRkxBR19QUkVB TExPQywgJmVtLT5mbGFncykpCiAJCQlibG9ja19zdGFydCA9IEVYVEVOVF9NQVBfSE9MRTsKKwor CQkvKgorCQkgKiBJZiB3ZSBoYXZlIGEgZmlsZSByYW5nZSB0aGF0IHBvaW50cyB0byBhIGNvbXBy ZXNzZWQgZXh0ZW50CisJCSAqIGFuZCBpdCdzIGZvbGxvd2VkIGJ5IGEgY29uc2VjdXRpdmUgZmls ZSByYW5nZSB0aGF0IHBvaW50cyB0bworCQkgKiB0byB0aGUgc2FtZSBjb21wcmVzc2VkIGV4dGVu dCAocG9zc2libHkgd2l0aCBhIGRpZmZlcmVudAorCQkgKiBvZmZzZXQgYW5kL29yIGxlbmd0aCwg c28gaXQgZWl0aGVyIHBvaW50cyB0byB0aGUgd2hvbGUgZXh0ZW50CisJCSAqIG9yIG9ubHkgcGFy dCBvZiBpdCksIHdlIG11c3QgbWFrZSBzdXJlIHdlIGRvIG5vdCBzdWJtaXQgYQorCQkgKiBzaW5n bGUgYmlvIHRvIHBvcHVsYXRlIHRoZSBwYWdlcyBmb3IgdGhlIDIgcmFuZ2VzIGJlY2F1c2UKKwkJ ICogdGhpcyBtYWtlcyB0aGUgY29tcHJlc3NlZCBleHRlbnQgcmVhZCB6ZXJvIG91dCB0aGUgcGFn ZXMKKwkJICogYmVsb25naW5nIHRvIHRoZSAybmQgcmFuZ2UuIEltYWdpbmUgdGhlIGZvbGxvd2lu ZyBzY2VuYXJpbzoKKwkJICoKKwkJICogIEZpbGUgbGF5b3V0CisJCSAqICBbMCAtIDhLXSAgICAg ICAgICAgICAgICAgICAgIFs4SyAtIDI0S10KKwkJICogICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8CisJCSAqICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor CQkgKiBwb2ludHMgdG8gZXh0ZW50IFgsICAgICAgICAgcG9pbnRzIHRvIGV4dGVudCBYLAorCQkg KiBvZmZzZXQgNEssIGxlbmd0aCBvZiA4SyAgICAgb2Zmc2V0IDAsIGxlbmd0aCAxNksKKwkJICoK KwkJICogW2V4dGVudCBYLCBjb21wcmVzc2VkIGxlbmd0aCA9IDRLIHVuY29tcHJlc3NlZCBsZW5n dGggPSAxNktdCisJCSAqCisJCSAqIElmIHRoZSBiaW8gdG8gcmVhZCB0aGUgY29tcHJlc3NlZCBl eHRlbnQgY292ZXJzIGJvdGggcmFuZ2VzLAorCQkgKiBpdCB3aWxsIGRlY29tcHJlc3MgZXh0ZW50 IFggaW50byB0aGUgcGFnZXMgYmVsb25naW5nIHRvIHRoZQorCQkgKiBmaXJzdCByYW5nZSBhbmQg dGhlbiBpdCB3aWxsIHN0b3AsIHplcm9pbmcgb3V0IHRoZSByZW1haW5pbmcKKwkJICogcGFnZXMg dGhhdCBiZWxvbmcgdG8gdGhlIG90aGVyIHJhbmdlIHRoYXQgcG9pbnRzIHRvIGV4dGVudCBYLgor CQkgKiBTbyBoZXJlIHdlIG1ha2Ugc3VyZSB3ZSBzdWJtaXQgMiBiaW9zLCBvbmUgZm9yIHRoZSBm aXJzdAorCQkgKiByYW5nZSBhbmQgYW5vdGhlciBvbmUgZm9yIHRoZSB0aGlyZCByYW5nZS4gQm90 aCB3aWxsIHRhcmdldAorCQkgKiB0aGUgc2FtZSBwaHlzaWNhbCBleHRlbnQgZnJvbSBkaXNrLCBi dXQgd2UgY2FuJ3QgY3VycmVudGx5CisJCSAqIG1ha2UgdGhlIGNvbXByZXNzZWQgYmlvIGVuZGlv IGNhbGxiYWNrIHBvcHVsYXRlIHRoZSBwYWdlcworCQkgKiBmb3IgYm90aCByYW5nZXMgYmVjYXVz ZSBlYWNoIGNvbXByZXNzZWQgYmlvIGlzIHRpZ2h0bHkKKwkJICogY291cGxlZCB3aXRoIGEgc2lu Z2xlIGV4dGVudCBtYXAsIGFuZCBlYWNoIHJhbmdlIGNhbiBoYXZlCisJCSAqIGFuIGV4dGVudCBt YXAgd2l0aCBhIGRpZmZlcmVudCBvZmZzZXQgdmFsdWUgcmVsYXRpdmUgdG8gdGhlCisJCSAqIHVu Y29tcHJlc3NlZCBkYXRhIG9mIG91ciBleHRlbnQgYW5kIGRpZmZlcmVudCBsZW5ndGhzLiBUaGlz CisJCSAqIGlzIGEgY29ybmVyIGNhc2Ugc28gd2UgcHJpb3JpdGl6ZSBjb3JyZWN0bmVzcyBvdmVy CisJCSAqIG5vbi1vcHRpbWFsIGJlaGF2aW9yIChzdWJtaXR0aW5nIDIgYmlvcyBmb3IgdGhlIHNh bWUgZXh0ZW50KS4KKwkJICovCisJCWlmICh0ZXN0X2JpdChFWFRFTlRfRkxBR19DT01QUkVTU0VE LCAmZW0tPmZsYWdzKSAmJgorCQkgICAgcHJldl9lbV9zdGFydCAmJiAqcHJldl9lbV9zdGFydCAh PSAodTY0KS0xICYmCisJCSAgICAqcHJldl9lbV9zdGFydCAhPSBlbS0+b3JpZ19zdGFydCkKKwkJ CWZvcmNlX2Jpb19zdWJtaXQgPSB0cnVlOworCisJCWlmIChwcmV2X2VtX3N0YXJ0KQorCQkJKnBy ZXZfZW1fc3RhcnQgPSBlbS0+b3JpZ19zdGFydDsKKwogCQlmcmVlX2V4dGVudF9tYXAoZW0pOwog CQllbSA9IE5VTEw7CiAKQEAgLTI2NzUsNyArMjcyMyw4IEBAIHN0YXRpYyBpbnQgX19leHRlbnRf cmVhZF9mdWxsX3BhZ2Uoc3RydWN0IGV4dGVudF9pb190cmVlICp0cmVlLAogCQkJCQkgYmRldiwg YmlvLCBwbnIsCiAJCQkJCSBlbmRfYmlvX2V4dGVudF9yZWFkcGFnZSwgbWlycm9yX251bSwKIAkJ CQkJICpiaW9fZmxhZ3MsCi0JCQkJCSB0aGlzX2Jpb19mbGFnKTsKKwkJCQkJIHRoaXNfYmlvX2Zs YWcsCisJCQkJCSBmb3JjZV9iaW9fc3VibWl0KTsKIAkJCW5yKys7CiAJCQkqYmlvX2ZsYWdzID0g dGhpc19iaW9fZmxhZzsKIAkJfQpAQCAtMjcwMSw3ICsyNzUwLDcgQEAgaW50IGV4dGVudF9yZWFk X2Z1bGxfcGFnZShzdHJ1Y3QgZXh0ZW50X2lvX3RyZWUgKnRyZWUsIHN0cnVjdCBwYWdlICpwYWdl LAogCWludCByZXQ7CiAKIAlyZXQgPSBfX2V4dGVudF9yZWFkX2Z1bGxfcGFnZSh0cmVlLCBwYWdl LCBnZXRfZXh0ZW50LCAmYmlvLCBtaXJyb3JfbnVtLAotCQkJCSAgICAgICZiaW9fZmxhZ3MpOwor CQkJCSAgICAgICZiaW9fZmxhZ3MsIE5VTEwpOwogCWlmIChiaW8pCiAJCXJldCA9IHN1Ym1pdF9v bmVfYmlvKFJFQUQsIGJpbywgbWlycm9yX251bSwgYmlvX2ZsYWdzKTsKIAlyZXR1cm4gcmV0OwpA QCAtMjk2MCw3ICszMDA5LDcgQEAgc3RhdGljIGludCBfX2V4dGVudF93cml0ZXBhZ2Uoc3RydWN0 IHBhZ2UgKnBhZ2UsIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjLAogCQkJCQkJIHNlY3Rv ciwgaW9zaXplLCBwZ19vZmZzZXQsCiAJCQkJCQkgYmRldiwgJmVwZC0+YmlvLCBtYXhfbnIsCiAJ CQkJCQkgZW5kX2Jpb19leHRlbnRfd3JpdGVwYWdlLAotCQkJCQkJIDAsIDAsIDApOworCQkJCQkJ IDAsIDAsIDAsIGZhbHNlKTsKIAkJCWlmIChyZXQpCiAJCQkJU2V0UGFnZUVycm9yKHBhZ2UpOwog CQl9CkBAIC0zMjE5LDYgKzMyNjgsNyBAQCBpbnQgZXh0ZW50X3JlYWRwYWdlcyhzdHJ1Y3QgZXh0 ZW50X2lvX3RyZWUgKnRyZWUsCiAJc3RydWN0IGJpbyAqYmlvID0gTlVMTDsKIAl1bnNpZ25lZCBw YWdlX2lkeDsKIAl1bnNpZ25lZCBsb25nIGJpb19mbGFncyA9IDA7CisJdTY0IHByZXZfZW1fc3Rh cnQgPSAodTY0KS0xOwogCiAJZm9yIChwYWdlX2lkeCA9IDA7IHBhZ2VfaWR4IDwgbnJfcGFnZXM7 IHBhZ2VfaWR4KyspIHsKIAkJc3RydWN0IHBhZ2UgKnBhZ2UgPSBsaXN0X2VudHJ5KHBhZ2VzLT5w cmV2LCBzdHJ1Y3QgcGFnZSwgbHJ1KTsKQEAgLTMyMjgsNyArMzI3OCw4IEBAIGludCBleHRlbnRf cmVhZHBhZ2VzKHN0cnVjdCBleHRlbnRfaW9fdHJlZSAqdHJlZSwKIAkJaWYgKCFhZGRfdG9fcGFn ZV9jYWNoZV9scnUocGFnZSwgbWFwcGluZywKIAkJCQkJcGFnZS0+aW5kZXgsIEdGUF9OT0ZTKSkg ewogCQkJX19leHRlbnRfcmVhZF9mdWxsX3BhZ2UodHJlZSwgcGFnZSwgZ2V0X2V4dGVudCwKLQkJ CQkJCSZiaW8sIDAsICZiaW9fZmxhZ3MpOworCQkJCQkJJmJpbywgMCwgJmJpb19mbGFncywKKwkJ CQkJCSZwcmV2X2VtX3N0YXJ0KTsKIAkJfQogCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CiAJ fQpAQCAtMzk5OCw2ICs0MDQ5LDcgQEAgaW50IHJlYWRfZXh0ZW50X2J1ZmZlcl9wYWdlcyhzdHJ1 Y3QgZXh0ZW50X2lvX3RyZWUgKnRyZWUsCiAJdW5zaWduZWQgbG9uZyBudW1fcGFnZXM7CiAJc3Ry dWN0IGJpbyAqYmlvID0gTlVMTDsKIAl1bnNpZ25lZCBsb25nIGJpb19mbGFncyA9IDA7CisJdTY0 IHByZXZfZW1fc3RhcnQgPSAodTY0KS0xOwogCiAJaWYgKHRlc3RfYml0KEVYVEVOVF9CVUZGRVJf VVBUT0RBVEUsICZlYi0+YmZsYWdzKSkKIAkJcmV0dXJuIDA7CkBAIC00MDUzLDcgKzQxMDUsOCBA QCBpbnQgcmVhZF9leHRlbnRfYnVmZmVyX3BhZ2VzKHN0cnVjdCBleHRlbnRfaW9fdHJlZSAqdHJl ZSwKIAkJCUNsZWFyUGFnZUVycm9yKHBhZ2UpOwogCQkJZXJyID0gX19leHRlbnRfcmVhZF9mdWxs X3BhZ2UodHJlZSwgcGFnZSwKIAkJCQkJCSAgICAgIGdldF9leHRlbnQsICZiaW8sCi0JCQkJCQkg ICAgICBtaXJyb3JfbnVtLCAmYmlvX2ZsYWdzKTsKKwkJCQkJCSAgICAgIG1pcnJvcl9udW0sICZi aW9fZmxhZ3MsCisJCQkJCQkgICAgICAmcHJldl9lbV9zdGFydCk7CiAJCQlpZiAoZXJyKQogCQkJ CXJldCA9IGVycjsKIAkJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2lub2RlLmMgYi9m cy9idHJmcy9pbm9kZS5jCmluZGV4IDYyMmQzMjIuLmNiMTBjYjkgMTAwNjQ0Ci0tLSBhL2ZzL2J0 cmZzL2lub2RlLmMKKysrIGIvZnMvYnRyZnMvaW5vZGUuYwpAQCAtMzUxOCw3ICszNTE4LDggQEAg dm9pZCBidHJmc19ldmljdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCQlnb3RvIG5vX2Rl bGV0ZTsKIAl9CiAJLyogZG8gd2UgcmVhbGx5IHdhbnQgaXQgZm9yIC0+aV9ubGluayA+IDAgYW5k IHplcm8gYnRyZnNfcm9vdF9yZWZzPyAqLwotCWJ0cmZzX3dhaXRfb3JkZXJlZF9yYW5nZShpbm9k ZSwgMCwgKHU2NCktMSk7CisJaWYgKCFzcGVjaWFsX2ZpbGUoaW5vZGUtPmlfbW9kZSkpCisJCWJ0 cmZzX3dhaXRfb3JkZXJlZF9yYW5nZShpbm9kZSwgMCwgKHU2NCktMSk7CiAKIAlpZiAocm9vdC0+ ZnNfaW5mby0+bG9nX3Jvb3RfcmVjb3ZlcmluZykgewogCQlCVUdfT04oIWxpc3RfZW1wdHkoJkJU UkZTX0koaW5vZGUpLT5pX29ycGhhbikpOwpkaWZmIC0tZ2l0IGEvZnMvY2VwaC9zdXBlci5jIGIv ZnMvY2VwaC9zdXBlci5jCmluZGV4IDNjOTgxZGIuLjhiZmFmZTUgMTAwNjQ0Ci0tLSBhL2ZzL2Nl cGgvc3VwZXIuYworKysgYi9mcy9jZXBoL3N1cGVyLmMKQEAgLTM2MSw4ICszNjEsMTAgQEAgc3Rh dGljIGludCBjZXBoX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCB2ZnNt b3VudCAqbW50KQogCWlmIChvcHQtPmZsYWdzICYgQ0VQSF9PUFRfTk9DUkMpCiAJCXNlcV9wdXRz KG0sICIsbm9jcmMiKTsKIAotCWlmIChvcHQtPm5hbWUpCi0JCXNlcV9wcmludGYobSwgIixuYW1l PSVzIiwgb3B0LT5uYW1lKTsKKwlpZiAob3B0LT5uYW1lKSB7CisJCXNlcV9wdXRzKG0sICIsbmFt ZT0iKTsKKwkJc2VxX2VzY2FwZShtLCBvcHQtPm5hbWUsICIsIFx0XG5cXCIpOworCX0KIAlpZiAo b3B0LT5rZXkpCiAJCXNlcV9wdXRzKG0sICIsc2VjcmV0PTxoaWRkZW4+Iik7CiAKQEAgLTQwNSw3 ICs0MDcsNyBAQCBzdGF0aWMgaW50IGNlcGhfc2hvd19vcHRpb25zKHN0cnVjdCBzZXFfZmlsZSAq bSwgc3RydWN0IHZmc21vdW50ICptbnQpCiAJaWYgKGZzb3B0LT5tYXhfcmVhZGRpcl9ieXRlcyAh PSBDRVBIX01BWF9SRUFERElSX0JZVEVTX0RFRkFVTFQpCiAJCXNlcV9wcmludGYobSwgIixyZWFk ZGlyX21heF9ieXRlcz0lZCIsIGZzb3B0LT5tYXhfcmVhZGRpcl9ieXRlcyk7CiAJaWYgKHN0cmNt cChmc29wdC0+c25hcGRpcl9uYW1lLCBDRVBIX1NOQVBESVJOQU1FX0RFRkFVTFQpKQotCQlzZXFf cHJpbnRmKG0sICIsc25hcGRpcm5hbWU9JXMiLCBmc29wdC0+c25hcGRpcl9uYW1lKTsKKwkJc2Vx X3Nob3dfb3B0aW9uKG0sICJzbmFwZGlybmFtZSIsIGZzb3B0LT5zbmFwZGlyX25hbWUpOwogCXJl dHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9mcy9jaWZzL2NpZnNlbmNyeXB0LmMgYi9mcy9jaWZz L2NpZnNlbmNyeXB0LmMKaW5kZXggYjQ2NzViZC4uYWY5NTM4NiAxMDA2NDQKLS0tIGEvZnMvY2lm cy9jaWZzZW5jcnlwdC5jCisrKyBiL2ZzL2NpZnMvY2lmc2VuY3J5cHQuYwpAQCAtMzg4LDYgKzM4 OCw0OCBAQCBmaW5kX2RvbWFpbl9uYW1lKHN0cnVjdCBjaWZzX3NlcyAqc2VzLCBjb25zdCBzdHJ1 Y3QgbmxzX3RhYmxlICpubHNfY3ApCiAJcmV0dXJuIDA7CiB9CiAKKy8qIFNlcnZlciBoYXMgcHJv dmlkZWQgYXYgcGFpcnMvdGFyZ2V0IGluZm8gaW4gdGhlIHR5cGUgMiBjaGFsbGVuZ2UKKyAqIHBh Y2tldCBhbmQgd2UgaGF2ZSBwbHVja2VkIGl0IGFuZCBzdG9yZWQgd2l0aGluIHNtYiBzZXNzaW9u LgorICogV2UgcGFyc2UgdGhhdCBibG9iIGhlcmUgdG8gZmluZCB0aGUgc2VydmVyIGdpdmVuIHRp bWVzdGFtcAorICogYXMgcGFydCBvZiBudGxtdjIgYXV0aGVudGljYXRpb24gKG9yIGxvY2FsIGN1 cnJlbnQgdGltZSBhcworICogZGVmYXVsdCBpbiBjYXNlIG9mIGZhaWx1cmUpCisgKi8KK3N0YXRp YyBfX2xlNjQKK2ZpbmRfdGltZXN0YW1wKHN0cnVjdCBjaWZzX3NlcyAqc2VzKQoreworCXVuc2ln bmVkIGludCBhdHRyc2l6ZTsKKwl1bnNpZ25lZCBpbnQgdHlwZTsKKwl1bnNpZ25lZCBpbnQgb25l c2l6ZSA9IHNpemVvZihzdHJ1Y3QgbnRsbXNzcDJfbmFtZSk7CisJdW5zaWduZWQgY2hhciAqYmxv YnB0cjsKKwl1bnNpZ25lZCBjaGFyICpibG9iZW5kOworCXN0cnVjdCBudGxtc3NwMl9uYW1lICph dHRycHRyOworCisJaWYgKCFzZXMtPmF1dGhfa2V5LmxlbiB8fCAhc2VzLT5hdXRoX2tleS5yZXNw b25zZSkKKwkJcmV0dXJuIDA7CisKKwlibG9icHRyID0gc2VzLT5hdXRoX2tleS5yZXNwb25zZTsK KwlibG9iZW5kID0gYmxvYnB0ciArIHNlcy0+YXV0aF9rZXkubGVuOworCisJd2hpbGUgKGJsb2Jw dHIgKyBvbmVzaXplIDwgYmxvYmVuZCkgeworCQlhdHRycHRyID0gKHN0cnVjdCBudGxtc3NwMl9u YW1lICopIGJsb2JwdHI7CisJCXR5cGUgPSBsZTE2X3RvX2NwdShhdHRycHRyLT50eXBlKTsKKwkJ aWYgKHR5cGUgPT0gTlRMTVNTUF9BVl9FT0wpCisJCQlicmVhazsKKwkJYmxvYnB0ciArPSAyOyAv KiBhZHZhbmNlIGF0dHIgdHlwZSAqLworCQlhdHRyc2l6ZSA9IGxlMTZfdG9fY3B1KGF0dHJwdHIt Pmxlbmd0aCk7CisJCWJsb2JwdHIgKz0gMjsgLyogYWR2YW5jZSBhdHRyIHNpemUgKi8KKwkJaWYg KGJsb2JwdHIgKyBhdHRyc2l6ZSA+IGJsb2JlbmQpCisJCQlicmVhazsKKwkJaWYgKHR5cGUgPT0g TlRMTVNTUF9BVl9USU1FU1RBTVApIHsKKwkJCWlmIChhdHRyc2l6ZSA9PSBzaXplb2YodTY0KSkK KwkJCQlyZXR1cm4gKigoX19sZTY0ICopYmxvYnB0cik7CisJCX0KKwkJYmxvYnB0ciArPSBhdHRy c2l6ZTsgLyogYWR2YW5jZSBhdHRyIHZhbHVlICovCisJfQorCisJcmV0dXJuIGNwdV90b19sZTY0 KGNpZnNfVW5peFRpbWVUb05UKENVUlJFTlRfVElNRSkpOworfQorCiBzdGF0aWMgaW50IGNhbGNf bnRsbXYyX2hhc2goc3RydWN0IGNpZnNfc2VzICpzZXMsIGNoYXIgKm50bG12Ml9oYXNoLAogCQkJ ICAgIGNvbnN0IHN0cnVjdCBubHNfdGFibGUgKm5sc19jcCkKIHsKQEAgLTU0NCw2ICs1ODYsNyBA QCBzZXR1cF9udGxtdjJfcnNwKHN0cnVjdCBjaWZzX3NlcyAqc2VzLCBjb25zdCBzdHJ1Y3Qgbmxz X3RhYmxlICpubHNfY3ApCiAJc3RydWN0IG50bG12Ml9yZXNwICpidWY7CiAJY2hhciBudGxtdjJf aGFzaFsxNl07CiAJdW5zaWduZWQgY2hhciAqdGlibG9iID0gTlVMTDsgLyogdGFyZ2V0IGluZm8g YmxvYiAqLworCV9fbGU2NCByc3BfdGltZXN0YW1wOwogCiAJaWYgKHNlcy0+c2VydmVyLT5zZWNU eXBlID09IFJhd05UTE1TU1ApIHsKIAkJaWYgKCFzZXMtPmRvbWFpbk5hbWUpIHsKQEAgLTU2MSw2 ICs2MDQsMTIgQEAgc2V0dXBfbnRsbXYyX3JzcChzdHJ1Y3QgY2lmc19zZXMgKnNlcywgY29uc3Qg c3RydWN0IG5sc190YWJsZSAqbmxzX2NwKQogCQl9CiAJfQogCisJLyogTXVzdCBiZSB3aXRoaW4g NSBtaW51dGVzIG9mIHRoZSBzZXJ2ZXIgKG9yIGluIHJhbmdlICsvLTJoCisJICogaW4gY2FzZSBv ZiBNYWMgT1MgWCksIHNvIHNpbXBseSBjYXJyeSBvdmVyIHNlcnZlciB0aW1lc3RhbXAKKwkgKiAo YXMgV2luZG93cyA3IGRvZXMpCisJICovCisJcnNwX3RpbWVzdGFtcCA9IGZpbmRfdGltZXN0YW1w KHNlcyk7CisKIAliYXNlbGVuID0gQ0lGU19TRVNTX0tFWV9TSVpFICsgc2l6ZW9mKHN0cnVjdCBu dGxtdjJfcmVzcCk7CiAJdGlsZW4gPSBzZXMtPmF1dGhfa2V5LmxlbjsKIAl0aWJsb2IgPSBzZXMt PmF1dGhfa2V5LnJlc3BvbnNlOwpAQCAtNTc4LDcgKzYyNyw4IEBAIHNldHVwX250bG12Ml9yc3Ao c3RydWN0IGNpZnNfc2VzICpzZXMsIGNvbnN0IHN0cnVjdCBubHNfdGFibGUgKm5sc19jcCkKIAkJ CShzZXMtPmF1dGhfa2V5LnJlc3BvbnNlICsgQ0lGU19TRVNTX0tFWV9TSVpFKTsKIAlidWYtPmJs b2Jfc2lnbmF0dXJlID0gY3B1X3RvX2xlMzIoMHgwMDAwMDEwMSk7CiAJYnVmLT5yZXNlcnZlZCA9 IDA7Ci0JYnVmLT50aW1lID0gY3B1X3RvX2xlNjQoY2lmc19Vbml4VGltZVRvTlQoQ1VSUkVOVF9U SU1FKSk7CisJYnVmLT50aW1lID0gcnNwX3RpbWVzdGFtcDsKKwogCWdldF9yYW5kb21fYnl0ZXMo JmJ1Zi0+Y2xpZW50X2NoYWwsIHNpemVvZihidWYtPmNsaWVudF9jaGFsKSk7CiAJYnVmLT5yZXNl cnZlZDIgPSAwOwogCmRpZmYgLS1naXQgYS9mcy9jaWZzL2NpZnNmcy5jIGIvZnMvY2lmcy9jaWZz ZnMuYwppbmRleCAyNWJiOTdmLi5kOTU1YjhlIDEwMDY0NAotLS0gYS9mcy9jaWZzL2NpZnNmcy5j CisrKyBiL2ZzL2NpZnMvY2lmc2ZzLmMKQEAgLTM4MSwxMCArMzgxLDEwIEBAIGNpZnNfc2hvd19v cHRpb25zKHN0cnVjdCBzZXFfZmlsZSAqcywgc3RydWN0IHZmc21vdW50ICptKQogCWlmIChjaWZz X3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfTVVMVElVU0VSKQogCQlzZXFfcHJpbnRm KHMsICIsbXVsdGl1c2VyIik7CiAJZWxzZSBpZiAodGNvbi0+c2VzLT51c2VyX25hbWUpCi0JCXNl cV9wcmludGYocywgIix1c2VybmFtZT0lcyIsIHRjb24tPnNlcy0+dXNlcl9uYW1lKTsKKwkJc2Vx X3Nob3dfb3B0aW9uKHMsICJ1c2VybmFtZSIsIHRjb24tPnNlcy0+dXNlcl9uYW1lKTsKIAogCWlm ICh0Y29uLT5zZXMtPmRvbWFpbk5hbWUpCi0JCXNlcV9wcmludGYocywgIixkb21haW49JXMiLCB0 Y29uLT5zZXMtPmRvbWFpbk5hbWUpOworCQlzZXFfc2hvd19vcHRpb24ocywgImRvbWFpbiIsIHRj b24tPnNlcy0+ZG9tYWluTmFtZSk7CiAKIAlpZiAoc3JjYWRkci0+c2FfZmFtaWx5ICE9IEFGX1VO U1BFQykgewogCQlzdHJ1Y3Qgc29ja2FkZHJfaW4gKnNhZGRyNDsKZGlmZiAtLWdpdCBhL2ZzL2Rj YWNoZS5jIGIvZnMvZGNhY2hlLmMKaW5kZXggOGEzNTMwMC4uNDYyNjVmNSAxMDA2NDQKLS0tIGEv ZnMvZGNhY2hlLmMKKysrIGIvZnMvZGNhY2hlLmMKQEAgLTI0NTIsNiArMjQ1Miw4IEBAIHN0YXRp YyBpbnQgcHJlcGVuZF9wYXRoKGNvbnN0IHN0cnVjdCBwYXRoICpwYXRoLAogewogCXN0cnVjdCBk ZW50cnkgKmRlbnRyeSA9IHBhdGgtPmRlbnRyeTsKIAlzdHJ1Y3QgdmZzbW91bnQgKnZmc21udCA9 IHBhdGgtPm1udDsKKwljaGFyICpvcmlnX2J1ZmZlciA9ICpidWZmZXI7CisJaW50IG9yaWdfbGVu ID0gKmJ1ZmxlbjsKIAlib29sIHNsYXNoID0gZmFsc2U7CiAJaW50IGVycm9yID0gMDsKIApAQCAt MjQ1OSw2ICsyNDYxLDE0IEBAIHN0YXRpYyBpbnQgcHJlcGVuZF9wYXRoKGNvbnN0IHN0cnVjdCBw YXRoICpwYXRoLAogCQlzdHJ1Y3QgZGVudHJ5ICogcGFyZW50OwogCiAJCWlmIChkZW50cnkgPT0g dmZzbW50LT5tbnRfcm9vdCB8fCBJU19ST09UKGRlbnRyeSkpIHsKKwkJCS8qIEVzY2FwZWQ/ICov CisJCQlpZiAoZGVudHJ5ICE9IHZmc21udC0+bW50X3Jvb3QpIHsKKwkJCQkqYnVmZmVyID0gb3Jp Z19idWZmZXI7CisJCQkJKmJ1ZmxlbiA9IG9yaWdfbGVuOworCQkJCXNsYXNoID0gZmFsc2U7CisJ CQkJZXJyb3IgPSAzOworCQkJCWdvdG8gZ2xvYmFsX3Jvb3Q7CisJCQl9CiAJCQkvKiBHbG9iYWwg cm9vdD8gKi8KIAkJCWlmICh2ZnNtbnQtPm1udF9wYXJlbnQgPT0gdmZzbW50KSB7CiAJCQkJZ290 byBnbG9iYWxfcm9vdDsKZGlmZiAtLWdpdCBhL2ZzL2VjcnlwdGZzL2RlbnRyeS5jIGIvZnMvZWNy eXB0ZnMvZGVudHJ5LmMKaW5kZXggNTM0YzFkNC4uZWJhOGYxZCAxMDA2NDQKLS0tIGEvZnMvZWNy eXB0ZnMvZGVudHJ5LmMKKysrIGIvZnMvZWNyeXB0ZnMvZGVudHJ5LmMKQEAgLTU1LDI2ICs1NSwy NiBAQCBzdGF0aWMgaW50IGVjcnlwdGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50 cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQogCiAJbG93ZXJfZGVudHJ5ID0gZWNyeXB0ZnNfZGVu dHJ5X3RvX2xvd2VyKGRlbnRyeSk7CiAJbG93ZXJfbW50ID0gZWNyeXB0ZnNfZGVudHJ5X3RvX2xv d2VyX21udChkZW50cnkpOwotCWlmICghbG93ZXJfZGVudHJ5LT5kX29wIHx8ICFsb3dlcl9kZW50 cnktPmRfb3AtPmRfcmV2YWxpZGF0ZSkKLQkJZ290byBvdXQ7Ci0JaWYgKG5kKSB7Ci0JCWRlbnRy eV9zYXZlID0gbmQtPnBhdGguZGVudHJ5OwotCQl2ZnNtb3VudF9zYXZlID0gbmQtPnBhdGgubW50 OwotCQluZC0+cGF0aC5kZW50cnkgPSBsb3dlcl9kZW50cnk7Ci0JCW5kLT5wYXRoLm1udCA9IGxv d2VyX21udDsKLQl9Ci0JcmMgPSBsb3dlcl9kZW50cnktPmRfb3AtPmRfcmV2YWxpZGF0ZShsb3dl cl9kZW50cnksIG5kKTsKLQlpZiAobmQpIHsKLQkJbmQtPnBhdGguZGVudHJ5ID0gZGVudHJ5X3Nh dmU7Ci0JCW5kLT5wYXRoLm1udCA9IHZmc21vdW50X3NhdmU7CisJaWYgKGxvd2VyX2RlbnRyeS0+ ZF9vcCAmJiBsb3dlcl9kZW50cnktPmRfb3AtPmRfcmV2YWxpZGF0ZSkgeworCQlpZiAobmQpIHsK KwkJCWRlbnRyeV9zYXZlID0gbmQtPnBhdGguZGVudHJ5OworCQkJdmZzbW91bnRfc2F2ZSA9IG5k LT5wYXRoLm1udDsKKwkJCW5kLT5wYXRoLmRlbnRyeSA9IGxvd2VyX2RlbnRyeTsKKwkJCW5kLT5w YXRoLm1udCA9IGxvd2VyX21udDsKKwkJfQorCQlyYyA9IGxvd2VyX2RlbnRyeS0+ZF9vcC0+ZF9y ZXZhbGlkYXRlKGxvd2VyX2RlbnRyeSwgbmQpOworCQlpZiAobmQpIHsKKwkJCW5kLT5wYXRoLmRl bnRyeSA9IGRlbnRyeV9zYXZlOworCQkJbmQtPnBhdGgubW50ID0gdmZzbW91bnRfc2F2ZTsKKwkJ fQogCX0KIAlpZiAoZGVudHJ5LT5kX2lub2RlKSB7Ci0JCXN0cnVjdCBpbm9kZSAqbG93ZXJfaW5v ZGUgPQotCQkJZWNyeXB0ZnNfaW5vZGVfdG9fbG93ZXIoZGVudHJ5LT5kX2lub2RlKTsKKwkJc3Ry dWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKIAotCQlmc3N0YWNrX2NvcHlfYXR0 cl9hbGwoZGVudHJ5LT5kX2lub2RlLCBsb3dlcl9pbm9kZSk7CisJCWZzc3RhY2tfY29weV9hdHRy X2FsbChpbm9kZSwgZWNyeXB0ZnNfaW5vZGVfdG9fbG93ZXIoaW5vZGUpKTsKKwkJaWYgKCFpbm9k ZS0+aV9ubGluaykKKwkJCXJldHVybiAwOwogCX0KLW91dDoKIAlyZXR1cm4gcmM7CiB9CiAKZGlm ZiAtLWdpdCBhL2ZzL2V4dDQvc3VwZXIuYyBiL2ZzL2V4dDQvc3VwZXIuYwppbmRleCBiZTRkYjBl Li5lMmNmNDNiIDEwMDY0NAotLS0gYS9mcy9leHQ0L3N1cGVyLmMKKysrIGIvZnMvZXh0NC9zdXBl ci5jCkBAIC0xMDE4LDEwICsxMDE4LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBleHQ0X3Nob3df cXVvdGFfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwKIAl9CiAKIAlpZiAoc2JpLT5zX3Fm X25hbWVzW1VTUlFVT1RBXSkKLQkJc2VxX3ByaW50ZihzZXEsICIsdXNyanF1b3RhPSVzIiwgc2Jp LT5zX3FmX25hbWVzW1VTUlFVT1RBXSk7CisJCXNlcV9zaG93X29wdGlvbihzZXEsICJ1c3JqcXVv dGEiLCBzYmktPnNfcWZfbmFtZXNbVVNSUVVPVEFdKTsKIAogCWlmIChzYmktPnNfcWZfbmFtZXNb R1JQUVVPVEFdKQotCQlzZXFfcHJpbnRmKHNlcSwgIixncnBqcXVvdGE9JXMiLCBzYmktPnNfcWZf bmFtZXNbR1JQUVVPVEFdKTsKKwkJc2VxX3Nob3dfb3B0aW9uKHNlcSwgImdycGpxdW90YSIsIHNi aS0+c19xZl9uYW1lc1tHUlBRVU9UQV0pOwogCiAJaWYgKHRlc3Rfb3B0KHNiLCBVU1JRVU9UQSkp CiAJCXNlcV9wdXRzKHNlcSwgIix1c3JxdW90YSIpOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9zdXBl ci5jIGIvZnMvZ2ZzMi9zdXBlci5jCmluZGV4IDcxZTQyMDkuLmJlMmVjZTUgMTAwNjQ0Ci0tLSBh L2ZzL2dmczIvc3VwZXIuYworKysgYi9mcy9nZnMyL3N1cGVyLmMKQEAgLTEyOTgsMTEgKzEyOTgs MTEgQEAgc3RhdGljIGludCBnZnMyX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHN0 cnVjdCB2ZnNtb3VudCAqbW50KQogCWlmIChpc19hbmNlc3RvcihtbnQtPm1udF9yb290LCBzZHAt PnNkX21hc3Rlcl9kaXIpKQogCQlzZXFfcHJpbnRmKHMsICIsbWV0YSIpOwogCWlmIChhcmdzLT5h cl9sb2NrcHJvdG9bMF0pCi0JCXNlcV9wcmludGYocywgIixsb2NrcHJvdG89JXMiLCBhcmdzLT5h cl9sb2NrcHJvdG8pOworCQlzZXFfc2hvd19vcHRpb24ocywgImxvY2twcm90byIsIGFyZ3MtPmFy X2xvY2twcm90byk7CiAJaWYgKGFyZ3MtPmFyX2xvY2t0YWJsZVswXSkKLQkJc2VxX3ByaW50Zihz LCAiLGxvY2t0YWJsZT0lcyIsIGFyZ3MtPmFyX2xvY2t0YWJsZSk7CisJCXNlcV9zaG93X29wdGlv bihzLCAibG9ja3RhYmxlIiwgYXJncy0+YXJfbG9ja3RhYmxlKTsKIAlpZiAoYXJncy0+YXJfaG9z dGRhdGFbMF0pCi0JCXNlcV9wcmludGYocywgIixob3N0ZGF0YT0lcyIsIGFyZ3MtPmFyX2hvc3Rk YXRhKTsKKwkJc2VxX3Nob3dfb3B0aW9uKHMsICJob3N0ZGF0YSIsIGFyZ3MtPmFyX2hvc3RkYXRh KTsKIAlpZiAoYXJncy0+YXJfc3BlY3RhdG9yKQogCQlzZXFfcHJpbnRmKHMsICIsc3BlY3RhdG9y Iik7CiAJaWYgKGFyZ3MtPmFyX2xvY2FsZmxvY2tzKQpkaWZmIC0tZ2l0IGEvZnMvaGZzL2Jub2Rl LmMgYi9mcy9oZnMvYm5vZGUuYwppbmRleCBjZGI0MWExLi44ZGFlYTE2IDEwMDY0NAotLS0gYS9m cy9oZnMvYm5vZGUuYworKysgYi9mcy9oZnMvYm5vZGUuYwpAQCAtMjg3LDcgKzI4Nyw2IEBAIHN0 YXRpYyBzdHJ1Y3QgaGZzX2Jub2RlICpfX2hmc19ibm9kZV9jcmVhdGUoc3RydWN0IGhmc19idHJl ZSAqdHJlZSwgdTMyIGNuaWQpCiAJCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CiAJCQlnb3Rv IGZhaWw7CiAJCX0KLQkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOwogCQlub2RlLT5wYWdlW2ld ID0gcGFnZTsKIAl9CiAKQEAgLTM5NywxMSArMzk2LDExIEBAIG5vZGVfZXJyb3I6CiAKIHZvaWQg aGZzX2Jub2RlX2ZyZWUoc3RydWN0IGhmc19ibm9kZSAqbm9kZSkKIHsKLQkvL2ludCBpOworCWlu dCBpOwogCi0JLy9mb3IgKGkgPSAwOyBpIDwgbm9kZS0+dHJlZS0+cGFnZXNfcGVyX2Jub2RlOyBp KyspCi0JLy8JaWYgKG5vZGUtPnBhZ2VbaV0pCi0JLy8JCXBhZ2VfY2FjaGVfcmVsZWFzZShub2Rl LT5wYWdlW2ldKTsKKwlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+dHJlZS0+cGFnZXNfcGVyX2Jub2Rl OyBpKyspCisJCWlmIChub2RlLT5wYWdlW2ldKQorCQkJcGFnZV9jYWNoZV9yZWxlYXNlKG5vZGUt PnBhZ2VbaV0pOwogCWtmcmVlKG5vZGUpOwogfQogCmRpZmYgLS1naXQgYS9mcy9oZnMvYnJlYy5j IGIvZnMvaGZzL2JyZWMuYwppbmRleCA5MmZiMzU4Li5kYjI0MGM1IDEwMDY0NAotLS0gYS9mcy9o ZnMvYnJlYy5jCisrKyBiL2ZzL2hmcy9icmVjLmMKQEAgLTEzMiwxMyArMTMyLDE2IEBAIHNraXA6 CiAJaGZzX2Jub2RlX3dyaXRlKG5vZGUsIGVudHJ5LCBkYXRhX29mZiArIGtleV9sZW4sIGVudHJ5 X2xlbik7CiAJaGZzX2Jub2RlX2R1bXAobm9kZSk7CiAKLQlpZiAobmV3X25vZGUpIHsKLQkJLyog dXBkYXRlIHBhcmVudCBrZXkgaWYgd2UgaW5zZXJ0ZWQgYSBrZXkKLQkJICogYXQgdGhlIHN0YXJ0 IG9mIHRoZSBmaXJzdCBub2RlCi0JCSAqLwotCQlpZiAoIXJlYyAmJiBuZXdfbm9kZSAhPSBub2Rl KQotCQkJaGZzX2JyZWNfdXBkYXRlX3BhcmVudChmZCk7CisJLyoKKwkgKiB1cGRhdGUgcGFyZW50 IGtleSBpZiB3ZSBpbnNlcnRlZCBhIGtleQorCSAqIGF0IHRoZSBzdGFydCBvZiB0aGUgbm9kZSBh bmQgaXQgaXMgbm90IHRoZSBuZXcgbm9kZQorCSAqLworCWlmICghcmVjICYmIG5ld19ub2RlICE9 IG5vZGUpIHsKKwkJaGZzX2Jub2RlX3JlYWRfa2V5KG5vZGUsIGZkLT5zZWFyY2hfa2V5LCBkYXRh X29mZiArIHNpemUpOworCQloZnNfYnJlY191cGRhdGVfcGFyZW50KGZkKTsKKwl9CiAKKwlpZiAo bmV3X25vZGUpIHsKIAkJaGZzX2Jub2RlX3B1dChmZC0+Ym5vZGUpOwogCQlpZiAoIW5ld19ub2Rl LT5wYXJlbnQpIHsKIAkJCWhmc19idHJlZV9pbmNfaGVpZ2h0KHRyZWUpOwpAQCAtMTY3LDkgKzE3 MCw2IEBAIHNraXA6CiAJCWdvdG8gYWdhaW47CiAJfQogCi0JaWYgKCFyZWMpCi0JCWhmc19icmVj X3VwZGF0ZV9wYXJlbnQoZmQpOwotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTM2Niw2ICszNjYsOCBA QCBhZ2FpbjoKIAlpZiAoSVNfRVJSKHBhcmVudCkpCiAJCXJldHVybiBQVFJfRVJSKHBhcmVudCk7 CiAJX19oZnNfYnJlY19maW5kKHBhcmVudCwgZmQpOworCWlmIChmZC0+cmVjb3JkIDwgMCkKKwkJ cmV0dXJuIC1FTk9FTlQ7CiAJaGZzX2Jub2RlX2R1bXAocGFyZW50KTsKIAlyZWMgPSBmZC0+cmVj b3JkOwogCmRpZmYgLS1naXQgYS9mcy9oZnMvc3VwZXIuYyBiL2ZzL2hmcy9zdXBlci5jCmluZGV4 IDFiNTVmNzAuLmNhYzgxM2QgMTAwNjQ0Ci0tLSBhL2ZzL2hmcy9zdXBlci5jCisrKyBiL2ZzL2hm cy9zdXBlci5jCkBAIC0xMzgsOSArMTM4LDkgQEAgc3RhdGljIGludCBoZnNfc2hvd19vcHRpb25z KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3QgdmZzbW91bnQgKm1udCkKIAlzdHJ1Y3QgaGZz X3NiX2luZm8gKnNiaSA9IEhGU19TQihtbnQtPm1udF9zYik7CiAKIAlpZiAoc2JpLT5zX2NyZWF0 b3IgIT0gY3B1X3RvX2JlMzIoMHgzZjNmM2YzZikpCi0JCXNlcV9wcmludGYoc2VxLCAiLGNyZWF0 b3I9JS40cyIsIChjaGFyICopJnNiaS0+c19jcmVhdG9yKTsKKwkJc2VxX3Nob3dfb3B0aW9uX24o c2VxLCAiY3JlYXRvciIsIChjaGFyICopJnNiaS0+c19jcmVhdG9yLCA0KTsKIAlpZiAoc2JpLT5z X3R5cGUgIT0gY3B1X3RvX2JlMzIoMHgzZjNmM2YzZikpCi0JCXNlcV9wcmludGYoc2VxLCAiLHR5 cGU9JS40cyIsIChjaGFyICopJnNiaS0+c190eXBlKTsKKwkJc2VxX3Nob3dfb3B0aW9uX24oc2Vx LCAidHlwZSIsIChjaGFyICopJnNiaS0+c190eXBlLCA0KTsKIAlzZXFfcHJpbnRmKHNlcSwgIix1 aWQ9JXUsZ2lkPSV1Iiwgc2JpLT5zX3VpZCwgc2JpLT5zX2dpZCk7CiAJaWYgKHNiaS0+c19maWxl X3VtYXNrICE9IDAxMzMpCiAJCXNlcV9wcmludGYoc2VxLCAiLGZpbGVfdW1hc2s9JW8iLCBzYmkt PnNfZmlsZV91bWFzayk7CmRpZmYgLS1naXQgYS9mcy9oZnNwbHVzL2Jub2RlLmMgYi9mcy9oZnNw bHVzL2Jub2RlLmMKaW5kZXggMWM0MmNjNS4uYTFlOTEwOSAxMDA2NDQKLS0tIGEvZnMvaGZzcGx1 cy9ibm9kZS5jCisrKyBiL2ZzL2hmc3BsdXMvYm5vZGUuYwpAQCAtNDU0LDcgKzQ1NCw2IEBAIHN0 YXRpYyBzdHJ1Y3QgaGZzX2Jub2RlICpfX2hmc19ibm9kZV9jcmVhdGUoc3RydWN0IGhmc19idHJl ZSAqdHJlZSwgdTMyIGNuaWQpCiAJCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CiAJCQlnb3Rv IGZhaWw7CiAJCX0KLQkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOwogCQlub2RlLT5wYWdlW2ld ID0gcGFnZTsKIAl9CiAKQEAgLTU2NiwxMyArNTY1LDExIEBAIG5vZGVfZXJyb3I6CiAKIHZvaWQg aGZzX2Jub2RlX2ZyZWUoc3RydWN0IGhmc19ibm9kZSAqbm9kZSkKIHsKLSNpZiAwCiAJaW50IGk7 CiAKIAlmb3IgKGkgPSAwOyBpIDwgbm9kZS0+dHJlZS0+cGFnZXNfcGVyX2Jub2RlOyBpKyspCiAJ CWlmIChub2RlLT5wYWdlW2ldKQogCQkJcGFnZV9jYWNoZV9yZWxlYXNlKG5vZGUtPnBhZ2VbaV0p OwotI2VuZGlmCiAJa2ZyZWUobm9kZSk7CiB9CiAKZGlmZiAtLWdpdCBhL2ZzL2hmc3BsdXMvb3B0 aW9ucy5jIGIvZnMvaGZzcGx1cy9vcHRpb25zLmMKaW5kZXggYmI2MmE1ODgyLi5jOGQ2YjRmIDEw MDY0NAotLS0gYS9mcy9oZnNwbHVzL29wdGlvbnMuYworKysgYi9mcy9oZnNwbHVzL29wdGlvbnMu YwpAQCAtMjExLDkgKzIxMSw5IEBAIGludCBoZnNwbHVzX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2Vx X2ZpbGUgKnNlcSwgc3RydWN0IHZmc21vdW50ICptbnQpCiAJc3RydWN0IGhmc3BsdXNfc2JfaW5m byAqc2JpID0gSEZTUExVU19TQihtbnQtPm1udF9zYik7CiAKIAlpZiAoc2JpLT5jcmVhdG9yICE9 IEhGU1BMVVNfREVGX0NSX1RZUEUpCi0JCXNlcV9wcmludGYoc2VxLCAiLGNyZWF0b3I9JS40cyIs IChjaGFyICopJnNiaS0+Y3JlYXRvcik7CisJCXNlcV9zaG93X29wdGlvbl9uKHNlcSwgImNyZWF0 b3IiLCAoY2hhciAqKSZzYmktPmNyZWF0b3IsIDQpOwogCWlmIChzYmktPnR5cGUgIT0gSEZTUExV U19ERUZfQ1JfVFlQRSkKLQkJc2VxX3ByaW50ZihzZXEsICIsdHlwZT0lLjRzIiwgKGNoYXIgKikm c2JpLT50eXBlKTsKKwkJc2VxX3Nob3dfb3B0aW9uX24oc2VxLCAidHlwZSIsIChjaGFyICopJnNi aS0+dHlwZSwgNCk7CiAJc2VxX3ByaW50ZihzZXEsICIsdW1hc2s9JW8sdWlkPSV1LGdpZD0ldSIs IHNiaS0+dW1hc2ssCiAJCXNiaS0+dWlkLCBzYmktPmdpZCk7CiAJaWYgKHNiaS0+cGFydCA+PSAw KQpkaWZmIC0tZ2l0IGEvZnMvaG9zdGZzL2hvc3Rmc19rZXJuLmMgYi9mcy9ob3N0ZnMvaG9zdGZz X2tlcm4uYwppbmRleCAyZjcyZGE1Li4xMDRlNGQ5IDEwMDY0NAotLS0gYS9mcy9ob3N0ZnMvaG9z dGZzX2tlcm4uYworKysgYi9mcy9ob3N0ZnMvaG9zdGZzX2tlcm4uYwpAQCAtMjY1LDcgKzI2NSw3 IEBAIHN0YXRpYyBpbnQgaG9zdGZzX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwg c3RydWN0IHZmc21vdW50ICp2ZnMpCiAJc2l6ZV90IG9mZnNldCA9IHN0cmxlbihyb290X2lubykg KyAxOwogCiAJaWYgKHN0cmxlbihyb290X3BhdGgpID4gb2Zmc2V0KQotCQlzZXFfcHJpbnRmKHNl cSwgIiwlcyIsIHJvb3RfcGF0aCArIG9mZnNldCk7CisJCXNlcV9zaG93X29wdGlvbihzZXEsIHJv b3RfcGF0aCArIG9mZnNldCwgTlVMTCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2Zz L2piZDIvY2hlY2twb2ludC5jIGIvZnMvamJkMi9jaGVja3BvaW50LmMKaW5kZXggMzljNzA1OS4u ZTg0MzkzZiAxMDA2NDQKLS0tIGEvZnMvamJkMi9jaGVja3BvaW50LmMKKysrIGIvZnMvamJkMi9j aGVja3BvaW50LmMKQEAgLTUwOSwxNCArNTA5LDE1IEBAIGludCBqYmQyX2NsZWFudXBfam91cm5h bF90YWlsKGpvdXJuYWxfdCAqam91cm5hbCkKICAqIGpvdXJuYWxfY2xlYW5fb25lX2NwX2xpc3QK ICAqCiAgKiBGaW5kIGFsbCB0aGUgd3JpdHRlbi1iYWNrIGNoZWNrcG9pbnQgYnVmZmVycyBpbiB0 aGUgZ2l2ZW4gbGlzdCBhbmQKLSAqIHJlbGVhc2UgdGhlbS4KKyAqIHJlbGVhc2UgdGhlbS4gSWYg J2Rlc3Ryb3knIGlzIHNldCwgY2xlYW4gYWxsIGJ1ZmZlcnMgdW5jb25kaXRpb25hbGx5LgogICoK ICAqIENhbGxlZCB3aXRoIHRoZSBqb3VybmFsIGxvY2tlZC4KICAqIENhbGxlZCB3aXRoIGpfbGlz dF9sb2NrIGhlbGQuCiAgKiBSZXR1cm5zIG51bWJlciBvZiBidWZlcnMgcmVhcGVkIChmb3IgZGVi dWcpCiAgKi8KIAotc3RhdGljIGludCBqb3VybmFsX2NsZWFuX29uZV9jcF9saXN0KHN0cnVjdCBq b3VybmFsX2hlYWQgKmpoLCBpbnQgKnJlbGVhc2VkKQorc3RhdGljIGludCBqb3VybmFsX2NsZWFu X29uZV9jcF9saXN0KHN0cnVjdCBqb3VybmFsX2hlYWQgKmpoLCBib29sIGRlc3Ryb3ksCisJCQkJ ICAgICBpbnQgKnJlbGVhc2VkKQogewogCXN0cnVjdCBqb3VybmFsX2hlYWQgKmxhc3Rfamg7CiAJ c3RydWN0IGpvdXJuYWxfaGVhZCAqbmV4dF9qaCA9IGpoOwpAQCAtNTMyLDcgKzUzMywxMCBAQCBz dGF0aWMgaW50IGpvdXJuYWxfY2xlYW5fb25lX2NwX2xpc3Qoc3RydWN0IGpvdXJuYWxfaGVhZCAq amgsIGludCAqcmVsZWFzZWQpCiAJCW5leHRfamggPSBqaC0+Yl9jcG5leHQ7CiAJCS8qIFVzZSB0 cnlsb2NrIGJlY2F1c2Ugb2YgdGhlIHJhbmtpbmcgKi8KIAkJaWYgKGpiZF90cnlsb2NrX2JoX3N0 YXRlKGpoMmJoKGpoKSkpIHsKLQkJCXJldCA9IF9fdHJ5X3RvX2ZyZWVfY3BfYnVmKGpoKTsKKwkJ CWlmICghZGVzdHJveSkKKwkJCQlyZXQgPSBfX3RyeV90b19mcmVlX2NwX2J1ZihqaCk7CisJCQll bHNlCisJCQkJcmV0ID0gX19qYmQyX2pvdXJuYWxfcmVtb3ZlX2NoZWNrcG9pbnQoamgpICsgMTsK IAkJCWlmIChyZXQpIHsKIAkJCQlmcmVlZCsrOwogCQkJCWlmIChyZXQgPT0gMikgewpAQCAtNTU4 LDEzICs1NjIsMTQgQEAgc3RhdGljIGludCBqb3VybmFsX2NsZWFuX29uZV9jcF9saXN0KHN0cnVj dCBqb3VybmFsX2hlYWQgKmpoLCBpbnQgKnJlbGVhc2VkKQogICogam91cm5hbF9jbGVhbl9jaGVj a3BvaW50X2xpc3QKICAqCiAgKiBGaW5kIGFsbCB0aGUgd3JpdHRlbi1iYWNrIGNoZWNrcG9pbnQg YnVmZmVycyBpbiB0aGUgam91cm5hbCBhbmQgcmVsZWFzZSB0aGVtLgorICogSWYgJ2Rlc3Ryb3kn IGlzIHNldCwgcmVsZWFzZSBhbGwgYnVmZmVycyB1bmNvbmRpdGlvbmFsbHkuCiAgKgogICogQ2Fs bGVkIHdpdGggdGhlIGpvdXJuYWwgbG9ja2VkLgogICogQ2FsbGVkIHdpdGggal9saXN0X2xvY2sg aGVsZC4KICAqIFJldHVybnMgbnVtYmVyIG9mIGJ1ZmZlcnMgcmVhcGVkIChmb3IgZGVidWcpCiAg Ki8KIAotaW50IF9famJkMl9qb3VybmFsX2NsZWFuX2NoZWNrcG9pbnRfbGlzdChqb3VybmFsX3Qg KmpvdXJuYWwpCitpbnQgX19qYmQyX2pvdXJuYWxfY2xlYW5fY2hlY2twb2ludF9saXN0KGpvdXJu YWxfdCAqam91cm5hbCwgYm9vbCBkZXN0cm95KQogewogCXRyYW5zYWN0aW9uX3QgKnRyYW5zYWN0 aW9uLCAqbGFzdF90cmFuc2FjdGlvbiwgKm5leHRfdHJhbnNhY3Rpb247CiAJaW50IHJldCA9IDA7 CkBAIC01ODAsNyArNTg1LDcgQEAgaW50IF9famJkMl9qb3VybmFsX2NsZWFuX2NoZWNrcG9pbnRf bGlzdChqb3VybmFsX3QgKmpvdXJuYWwpCiAJCXRyYW5zYWN0aW9uID0gbmV4dF90cmFuc2FjdGlv bjsKIAkJbmV4dF90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uLT50X2NwbmV4dDsKIAkJcmV0ICs9 IGpvdXJuYWxfY2xlYW5fb25lX2NwX2xpc3QodHJhbnNhY3Rpb24tPgotCQkJCXRfY2hlY2twb2lu dF9saXN0LCAmcmVsZWFzZWQpOworCQkJCXRfY2hlY2twb2ludF9saXN0LCBkZXN0cm95LCAmcmVs ZWFzZWQpOwogCQkvKgogCQkgKiBUaGlzIGZ1bmN0aW9uIG9ubHkgZnJlZXMgdXAgc29tZSBtZW1v cnkgaWYgcG9zc2libGUgc28gd2UKIAkJICogZG9udCBoYXZlIGFuIG9ibGlnYXRpb24gdG8gZmlu aXNoIHByb2Nlc3NpbmcuIEJhaWwgb3V0IGlmCkBAIC01OTYsNyArNjAxLDcgQEAgaW50IF9famJk Ml9qb3VybmFsX2NsZWFuX2NoZWNrcG9pbnRfbGlzdChqb3VybmFsX3QgKmpvdXJuYWwpCiAJCSAq IHdlIGNhbiBwb3NzaWJseSBzZWUgbm90IHlldCBzdWJtaXR0ZWQgYnVmZmVycyBvbiBpb19saXN0 CiAJCSAqLwogCQlyZXQgKz0gam91cm5hbF9jbGVhbl9vbmVfY3BfbGlzdCh0cmFuc2FjdGlvbi0+ Ci0JCQkJdF9jaGVja3BvaW50X2lvX2xpc3QsICZyZWxlYXNlZCk7CisJCQkJdF9jaGVja3BvaW50 X2lvX2xpc3QsIGRlc3Ryb3ksICZyZWxlYXNlZCk7CiAJCWlmIChuZWVkX3Jlc2NoZWQoKSkKIAkJ CWdvdG8gb3V0OwogCX0gd2hpbGUgKHRyYW5zYWN0aW9uICE9IGxhc3RfdHJhbnNhY3Rpb24pOwpA QCAtNjA1LDYgKzYxMCwyOCBAQCBvdXQ6CiB9CiAKIC8qCisgKiBSZW1vdmUgYnVmZmVycyBmcm9t IGFsbCBjaGVja3BvaW50IGxpc3RzIGFzIGpvdXJuYWwgaXMgYWJvcnRlZCBhbmQgd2UganVzdAor ICogbmVlZCB0byBmcmVlIG1lbW9yeQorICovCit2b2lkIGpiZDJfam91cm5hbF9kZXN0cm95X2No ZWNrcG9pbnQoam91cm5hbF90ICpqb3VybmFsKQoreworCS8qCisJICogV2UgbG9vcCBiZWNhdXNl IF9famJkMl9qb3VybmFsX2NsZWFuX2NoZWNrcG9pbnRfbGlzdCgpIG1heSBhYm9ydAorCSAqIGVh cmx5IGR1ZSB0byBhIG5lZWQgb2YgcmVzY2hlZHVsaW5nLgorCSAqLworCXdoaWxlICgxKSB7CisJ CXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworCQlpZiAoIWpvdXJuYWwtPmpfY2hl Y2twb2ludF90cmFuc2FjdGlvbnMpIHsKKwkJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3Rf bG9jayk7CisJCQlicmVhazsKKwkJfQorCQlfX2piZDJfam91cm5hbF9jbGVhbl9jaGVja3BvaW50 X2xpc3Qoam91cm5hbCwgdHJ1ZSk7CisJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9j ayk7CisJCWNvbmRfcmVzY2hlZCgpOworCX0KK30KKworLyoKICAqIGpvdXJuYWxfcmVtb3ZlX2No ZWNrcG9pbnQ6IGNhbGxlZCBhZnRlciBhIGJ1ZmZlciBoYXMgYmVlbiBjb21taXR0ZWQKICAqIHRv IGRpc2sgKGVpdGhlciBieSBiZWluZyB3cml0ZS1iYWNrIGZsdXNoZWQgdG8gZGlzaywgb3IgYmVp bmcKICAqIGNvbW1pdHRlZCB0byB0aGUgbG9nKS4KZGlmZiAtLWdpdCBhL2ZzL2piZDIvY29tbWl0 LmMgYi9mcy9qYmQyL2NvbW1pdC5jCmluZGV4IGJjY2I2MDUuLjQ1YWU2ZWMgMTAwNjQ0Ci0tLSBh L2ZzL2piZDIvY29tbWl0LmMKKysrIGIvZnMvamJkMi9jb21taXQuYwpAQCAtMzQwLDYgKzM0MCw3 IEBAIHZvaWQgamJkMl9qb3VybmFsX2NvbW1pdF90cmFuc2FjdGlvbihqb3VybmFsX3QgKmpvdXJu YWwpCiAJLyogRG8gd2UgbmVlZCB0byBlcmFzZSB0aGUgZWZmZWN0cyBvZiBhIHByaW9yIGpiZDJf am91cm5hbF9mbHVzaD8gKi8KIAlpZiAoam91cm5hbC0+al9mbGFncyAmIEpCRDJfRkxVU0hFRCkg ewogCQlqYmRfZGVidWcoMywgInN1cGVyIGJsb2NrIHVwZGF0ZWRcbiIpOworCQltdXRleF9sb2Nr KCZqb3VybmFsLT5qX2NoZWNrcG9pbnRfbXV0ZXgpOwogCQkvKgogCQkgKiBXZSBob2xkIGpfY2hl Y2twb2ludF9tdXRleCBzbyB0YWlsIGNhbm5vdCBjaGFuZ2UgdW5kZXIgdXMuCiAJCSAqIFdlIGRv bid0IG5lZWQgYW55IHNwZWNpYWwgZGF0YSBndWFyYW50ZWVzIGZvciB3cml0aW5nIHNiCkBAIC0z NTAsNiArMzUxLDcgQEAgdm9pZCBqYmQyX2pvdXJuYWxfY29tbWl0X3RyYW5zYWN0aW9uKGpvdXJu YWxfdCAqam91cm5hbCkKIAkJCQkJCWpvdXJuYWwtPmpfdGFpbF9zZXF1ZW5jZSwKIAkJCQkJCWpv dXJuYWwtPmpfdGFpbCwKIAkJCQkJCVdSSVRFX1NZTkMpOworCQltdXRleF91bmxvY2soJmpvdXJu YWwtPmpfY2hlY2twb2ludF9tdXRleCk7CiAJfSBlbHNlIHsKIAkJamJkX2RlYnVnKDMsICJzdXBl cmJsb2NrIG5vdCB1cGRhdGVkXG4iKTsKIAl9CkBAIC00MzMsNyArNDM1LDcgQEAgdm9pZCBqYmQy X2pvdXJuYWxfY29tbWl0X3RyYW5zYWN0aW9uKGpvdXJuYWxfdCAqam91cm5hbCkKIAkgKiBmcmVl cyBzb21lIG1lbW9yeQogCSAqLwogCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwot CV9famJkMl9qb3VybmFsX2NsZWFuX2NoZWNrcG9pbnRfbGlzdChqb3VybmFsKTsKKwlfX2piZDJf am91cm5hbF9jbGVhbl9jaGVja3BvaW50X2xpc3Qoam91cm5hbCwgZmFsc2UpOwogCXNwaW5fdW5s b2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CiAKIAlqYmRfZGVidWcoMywgIkpCRDI6IGNvbW1p dCBwaGFzZSAxXG4iKTsKZGlmZiAtLWdpdCBhL2ZzL2piZDIvam91cm5hbC5jIGIvZnMvamJkMi9q b3VybmFsLmMKaW5kZXggOTUzMmRhYy4uN2I3NjA3ZSAxMDA2NDQKLS0tIGEvZnMvamJkMi9qb3Vy bmFsLmMKKysrIGIvZnMvamJkMi9qb3VybmFsLmMKQEAgLTEyNDIsNiArMTI0Miw4IEBAIHN0YXRp YyBpbnQgam91cm5hbF9yZXNldChqb3VybmFsX3QgKmpvdXJuYWwpCiAJCQlqb3VybmFsLT5qX2Vy cm5vKTsKIAkJam91cm5hbC0+al9mbGFncyB8PSBKQkQyX0ZMVVNIRUQ7CiAJfSBlbHNlIHsKKwkJ LyogTG9jayBoZXJlIHRvIG1ha2UgYXNzZXJ0aW9ucyBoYXBweS4uLiAqLworCQltdXRleF9sb2Nr KCZqb3VybmFsLT5qX2NoZWNrcG9pbnRfbXV0ZXgpOwogCQkvKgogCQkgKiBVcGRhdGUgbG9nIHRh aWwgaW5mb3JtYXRpb24uIFdlIHVzZSBXUklURV9GVUEgc2luY2UgbmV3CiAJCSAqIHRyYW5zYWN0 aW9uIHdpbGwgc3RhcnQgcmV1c2luZyBqb3VybmFsIHNwYWNlIGFuZCBzbyB3ZQpAQCAtMTI1Miw2 ICsxMjU0LDcgQEAgc3RhdGljIGludCBqb3VybmFsX3Jlc2V0KGpvdXJuYWxfdCAqam91cm5hbCkK IAkJCQkJCWpvdXJuYWwtPmpfdGFpbF9zZXF1ZW5jZSwKIAkJCQkJCWpvdXJuYWwtPmpfdGFpbCwK IAkJCQkJCVdSSVRFX0ZVQSk7CisJCW11dGV4X3VubG9jaygmam91cm5hbC0+al9jaGVja3BvaW50 X211dGV4KTsKIAl9CiAJcmV0dXJuIGpiZDJfam91cm5hbF9zdGFydF90aHJlYWQoam91cm5hbCk7 CiB9CkBAIC0xMzE0LDYgKzEzMTcsNyBAQCBpbnQgamJkMl9qb3VybmFsX3VwZGF0ZV9zYl9sb2df dGFpbChqb3VybmFsX3QgKmpvdXJuYWwsIHRpZF90IHRhaWxfdGlkLAogCWpvdXJuYWxfc3VwZXJi bG9ja190ICpzYiA9IGpvdXJuYWwtPmpfc3VwZXJibG9jazsKIAlpbnQgcmV0OwogCisJQlVHX09O KCFtdXRleF9pc19sb2NrZWQoJmpvdXJuYWwtPmpfY2hlY2twb2ludF9tdXRleCkpOwogCWpiZF9k ZWJ1ZygxLCAiSkJEMjogdXBkYXRpbmcgc3VwZXJibG9jayAoc3RhcnQgJWx1LCBzZXEgJXUpXG4i LAogCQkgIHRhaWxfYmxvY2ssIHRhaWxfdGlkKTsKIApAQCAtMTM0NCw2ICsxMzQ4LDcgQEAgc3Rh dGljIHZvaWQgamJkMl9tYXJrX2pvdXJuYWxfZW1wdHkoam91cm5hbF90ICpqb3VybmFsKQogewog CWpvdXJuYWxfc3VwZXJibG9ja190ICpzYiA9IGpvdXJuYWwtPmpfc3VwZXJibG9jazsKIAorCUJV R19PTighbXV0ZXhfaXNfbG9ja2VkKCZqb3VybmFsLT5qX2NoZWNrcG9pbnRfbXV0ZXgpKTsKIAly ZWFkX2xvY2soJmpvdXJuYWwtPmpfc3RhdGVfbG9jayk7CiAJamJkX2RlYnVnKDEsICJKQkQyOiBN YXJraW5nIGpvdXJuYWwgYXMgZW1wdHkgKHNlcSAlZClcbiIsCiAJCSAgam91cm5hbC0+al90YWls X3NlcXVlbmNlKTsKQEAgLTE1NjYsOCArMTU3MSwxNyBAQCBpbnQgamJkMl9qb3VybmFsX2Rlc3Ry b3koam91cm5hbF90ICpqb3VybmFsKQogCXdoaWxlIChqb3VybmFsLT5qX2NoZWNrcG9pbnRfdHJh bnNhY3Rpb25zICE9IE5VTEwpIHsKIAkJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2Nr KTsKIAkJbXV0ZXhfbG9jaygmam91cm5hbC0+al9jaGVja3BvaW50X211dGV4KTsKLQkJamJkMl9s b2dfZG9fY2hlY2twb2ludChqb3VybmFsKTsKKwkJZXJyID0gamJkMl9sb2dfZG9fY2hlY2twb2lu dChqb3VybmFsKTsKIAkJbXV0ZXhfdW5sb2NrKCZqb3VybmFsLT5qX2NoZWNrcG9pbnRfbXV0ZXgp OworCQkvKgorCQkgKiBJZiBjaGVja3BvaW50aW5nIGZhaWxlZCwganVzdCBmcmVlIHRoZSBidWZm ZXJzIHRvIGF2b2lkCisJCSAqIGxvb3BpbmcgZm9yZXZlcgorCQkgKi8KKwkJaWYgKGVycikgewor CQkJamJkMl9qb3VybmFsX2Rlc3Ryb3lfY2hlY2twb2ludChqb3VybmFsKTsKKwkJCXNwaW5fbG9j aygmam91cm5hbC0+al9saXN0X2xvY2spOworCQkJYnJlYWs7CisJCX0KIAkJc3Bpbl9sb2NrKCZq b3VybmFsLT5qX2xpc3RfbG9jayk7CiAJfQogCkBAIC0xNTc3LDkgKzE1OTEsMTEgQEAgaW50IGpi ZDJfam91cm5hbF9kZXN0cm95KGpvdXJuYWxfdCAqam91cm5hbCkKIAlzcGluX3VubG9jaygmam91 cm5hbC0+al9saXN0X2xvY2spOwogCiAJaWYgKGpvdXJuYWwtPmpfc2JfYnVmZmVyKSB7Ci0JCWlm ICghaXNfam91cm5hbF9hYm9ydGVkKGpvdXJuYWwpKQorCQlpZiAoIWlzX2pvdXJuYWxfYWJvcnRl ZChqb3VybmFsKSkgeworCQkJbXV0ZXhfbG9jaygmam91cm5hbC0+al9jaGVja3BvaW50X211dGV4 KTsKIAkJCWpiZDJfbWFya19qb3VybmFsX2VtcHR5KGpvdXJuYWwpOwotCQllbHNlCisJCQltdXRl eF91bmxvY2soJmpvdXJuYWwtPmpfY2hlY2twb2ludF9tdXRleCk7CisJCX0gZWxzZQogCQkJZXJy ID0gLUVJTzsKIAkJYnJlbHNlKGpvdXJuYWwtPmpfc2JfYnVmZmVyKTsKIAl9CkBAIC0xODI4LDEw ICsxODQ0LDEzIEBAIGludCBqYmQyX2pvdXJuYWxfZmx1c2goam91cm5hbF90ICpqb3VybmFsKQog CWlmIChpc19qb3VybmFsX2Fib3J0ZWQoam91cm5hbCkpCiAJCXJldHVybiAtRUlPOwogCisJbXV0 ZXhfbG9jaygmam91cm5hbC0+al9jaGVja3BvaW50X211dGV4KTsKIAlpZiAoIWVycikgewogCQll cnIgPSBqYmQyX2NsZWFudXBfam91cm5hbF90YWlsKGpvdXJuYWwpOwotCQlpZiAoZXJyIDwgMCkK KwkJaWYgKGVyciA8IDApIHsKKwkJCW11dGV4X3VubG9jaygmam91cm5hbC0+al9jaGVja3BvaW50 X211dGV4KTsKIAkJCWdvdG8gb3V0OworCQl9CiAJCWVyciA9IDA7CiAJfQogCkBAIC0xODQxLDYg KzE4NjAsNyBAQCBpbnQgamJkMl9qb3VybmFsX2ZsdXNoKGpvdXJuYWxfdCAqam91cm5hbCkKIAkg KiBjb21taXRzIG9mIGRhdGEgdG8gdGhlIGpvdXJuYWwgd2lsbCByZXN0b3JlIHRoZSBjdXJyZW50 CiAJICogc19zdGFydCB2YWx1ZS4gKi8KIAlqYmQyX21hcmtfam91cm5hbF9lbXB0eShqb3VybmFs KTsKKwltdXRleF91bmxvY2soJmpvdXJuYWwtPmpfY2hlY2twb2ludF9tdXRleCk7CiAJd3JpdGVf bG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsKIAlKX0FTU0VSVCgham91cm5hbC0+al9ydW5u aW5nX3RyYW5zYWN0aW9uKTsKIAlKX0FTU0VSVCgham91cm5hbC0+al9jb21taXR0aW5nX3RyYW5z YWN0aW9uKTsKQEAgLTE4ODIsOCArMTkwMiwxMiBAQCBpbnQgamJkMl9qb3VybmFsX3dpcGUoam91 cm5hbF90ICpqb3VybmFsLCBpbnQgd3JpdGUpCiAJCXdyaXRlID8gIkNsZWFyaW5nIiA6ICJJZ25v cmluZyIpOwogCiAJZXJyID0gamJkMl9qb3VybmFsX3NraXBfcmVjb3Zlcnkoam91cm5hbCk7Ci0J aWYgKHdyaXRlKQorCWlmICh3cml0ZSkgeworCQkvKiBMb2NrIHRvIG1ha2UgYXNzZXJ0aW9ucyBo YXBweS4uLiAqLworCQltdXRleF9sb2NrKCZqb3VybmFsLT5qX2NoZWNrcG9pbnRfbXV0ZXgpOwog CQlqYmQyX21hcmtfam91cm5hbF9lbXB0eShqb3VybmFsKTsKKwkJbXV0ZXhfdW5sb2NrKCZqb3Vy bmFsLT5qX2NoZWNrcG9pbnRfbXV0ZXgpOworCX0KIAogIG5vX3JlY292ZXJ5OgogCXJldHVybiBl cnI7CmRpZmYgLS1naXQgYS9mcy9uYW1laS5jIGIvZnMvbmFtZWkuYwppbmRleCBjOGIxM2E5Li4y YzIyNjU1IDEwMDY0NAotLS0gYS9mcy9uYW1laS5jCisrKyBiL2ZzL25hbWVpLmMKQEAgLTM5OCw2 ICszOTgsMjQgQEAgdm9pZCBwYXRoX3B1dChzdHJ1Y3QgcGF0aCAqcGF0aCkKIH0KIEVYUE9SVF9T WU1CT0wocGF0aF9wdXQpOwogCisvKioKKyAqIHBhdGhfY29ubmVjdGVkIC0gVmVyaWZ5IHRoYXQg YSBwYXRoLT5kZW50cnkgaXMgYmVsb3cgcGF0aC0+bW50Lm1udF9yb290CisgKiBAcGF0aDogbmFt ZWlkYXRlIHRvIHZlcmlmeQorICoKKyAqIFJlbmFtZSBjYW4gc29tZXRpbWVzIG1vdmUgYSBmaWxl IG9yIGRpcmVjdG9yeSBvdXRzaWRlIG9mIGEgYmluZAorICogbW91bnQsIHBhdGhfY29ubmVjdGVk IGFsbG93cyB0aG9zZSBjYXNlcyB0byBiZSBkZXRlY3RlZC4KKyAqLworc3RhdGljIGJvb2wgcGF0 aF9jb25uZWN0ZWQoY29uc3Qgc3RydWN0IHBhdGggKnBhdGgpCit7CisJc3RydWN0IHZmc21vdW50 ICptbnQgPSBwYXRoLT5tbnQ7CisKKwkvKiBPbmx5IGJpbmQgbW91bnRzIGNhbiBoYXZlIGRpc2Nv bm5lY3RlZCBwYXRocyAqLworCWlmIChtbnQtPm1udF9yb290ID09IG1udC0+bW50X3NiLT5zX3Jv b3QpCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIGlzX3N1YmRpcihwYXRoLT5kZW50cnksIG1u dC0+bW50X3Jvb3QpOworfQorCiAvKgogICogUGF0aCB3YWxraW5nIGhhcyAyIG1vZGVzLCByY3Ut d2FsayBhbmQgcmVmLXdhbGsgKHNlZQogICogRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wYXRo LWxvb2t1cC50eHQpLiAgSW4gc2l0dWF0aW9ucyB3aGVuIHdlIGNhbid0CkBAIC05MzMsNiArOTUx LDggQEAgc3RhdGljIGludCBmb2xsb3dfZG90ZG90X3JjdShzdHJ1Y3QgbmFtZWlkYXRhICpuZCkK IAkJCQlnb3RvIGZhaWxlZDsKIAkJCW5kLT5wYXRoLmRlbnRyeSA9IHBhcmVudDsKIAkJCW5kLT5z ZXEgPSBzZXE7CisJCQlpZiAodW5saWtlbHkoIXBhdGhfY29ubmVjdGVkKCZuZC0+cGF0aCkpKQor CQkJCWdvdG8gZmFpbGVkOwogCQkJYnJlYWs7CiAJCX0KIAkJaWYgKCFmb2xsb3dfdXBfcmN1KCZu ZC0+cGF0aCkpCkBAIC0xMDI3LDcgKzEwNDcsNyBAQCBzdGF0aWMgdm9pZCBmb2xsb3dfbW91bnQo c3RydWN0IHBhdGggKnBhdGgpCiAJfQogfQogCi1zdGF0aWMgdm9pZCBmb2xsb3dfZG90ZG90KHN0 cnVjdCBuYW1laWRhdGEgKm5kKQorc3RhdGljIGludCBmb2xsb3dfZG90ZG90KHN0cnVjdCBuYW1l aWRhdGEgKm5kKQogewogCWlmICghbmQtPnJvb3QubW50KQogCQlzZXRfcm9vdChuZCk7CkBAIC0x MDQzLDYgKzEwNjMsMTAgQEAgc3RhdGljIHZvaWQgZm9sbG93X2RvdGRvdChzdHJ1Y3QgbmFtZWlk YXRhICpuZCkKIAkJCS8qIHJhcmUgY2FzZSBvZiBsZWdpdGltYXRlIGRnZXRfcGFyZW50KCkuLi4g Ki8KIAkJCW5kLT5wYXRoLmRlbnRyeSA9IGRnZXRfcGFyZW50KG5kLT5wYXRoLmRlbnRyeSk7CiAJ CQlkcHV0KG9sZCk7CisJCQlpZiAodW5saWtlbHkoIXBhdGhfY29ubmVjdGVkKCZuZC0+cGF0aCkp KSB7CisJCQkJcGF0aF9wdXQoJm5kLT5wYXRoKTsKKwkJCQlyZXR1cm4gLUVOT0VOVDsKKwkJCX0K IAkJCWJyZWFrOwogCQl9CiAJCWlmICghZm9sbG93X3VwKCZuZC0+cGF0aCkpCkBAIC0xMDUwLDYg KzEwNzQsNyBAQCBzdGF0aWMgdm9pZCBmb2xsb3dfZG90ZG90KHN0cnVjdCBuYW1laWRhdGEgKm5k KQogCX0KIAlmb2xsb3dfbW91bnQoJm5kLT5wYXRoKTsKIAluZC0+aW5vZGUgPSBuZC0+cGF0aC5k ZW50cnktPmRfaW5vZGU7CisJcmV0dXJuIDA7CiB9CiAKIC8qCkBAIC0xMjQxLDcgKzEyNjYsNyBA QCBzdGF0aWMgaW5saW5lIGludCBoYW5kbGVfZG90cyhzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgaW50 IHR5cGUpCiAJCQlpZiAoZm9sbG93X2RvdGRvdF9yY3UobmQpKQogCQkJCXJldHVybiAtRUNISUxE OwogCQl9IGVsc2UKLQkJCWZvbGxvd19kb3Rkb3QobmQpOworCQkJcmV0dXJuIGZvbGxvd19kb3Rk b3QobmQpOwogCX0KIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2ZzL25mcy9uZnM0cHJvYy5j IGIvZnMvbmZzL25mczRwcm9jLmMKaW5kZXggZTgzNzg2Zi4uNjA5YTk1MSAxMDA2NDQKLS0tIGEv ZnMvbmZzL25mczRwcm9jLmMKKysrIGIvZnMvbmZzL25mczRwcm9jLmMKQEAgLTE3OTMsNyArMTc5 Myw3IEBAIHN0YXRpYyBpbnQgX25mczRfZG9fb3BlbihzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0 IGRlbnRyeSAqZGVudHJ5LCBmbW9kZV90IGZtb2RlCiAJaWYgKHNlcnZlci0+Y2FwcyAmIE5GU19D QVBfUE9TSVhfTE9DSykKIAkJc2V0X2JpdChORlNfU1RBVEVfUE9TSVhfTE9DS1MsICZzdGF0ZS0+ ZmxhZ3MpOwogCi0JaWYgKG9wZW5kYXRhLT5vX2FyZy5vcGVuX2ZsYWdzICYgT19FWENMKSB7CisJ aWYgKChvcGVuZGF0YS0+b19hcmcub3Blbl9mbGFncyAmIChPX0NSRUFUfE9fRVhDTCkpID09IChP X0NSRUFUfE9fRVhDTCkpIHsKIAkJbmZzNF9leGNsdXNpdmVfYXR0cnNldChvcGVuZGF0YSwgc2F0 dHIpOwogCiAJCW5mc19mYXR0cl9pbml0KG9wZW5kYXRhLT5vX3Jlcy5mX2F0dHIpOwpkaWZmIC0t Z2l0IGEvZnMvb2NmczIvZGxtL2RsbW1hc3Rlci5jIGIvZnMvb2NmczIvZGxtL2RsbW1hc3Rlci5j CmluZGV4IDdiYTZhYzEuLjhlNDhiYTUgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2RsbS9kbG1tYXN0 ZXIuYworKysgYi9mcy9vY2ZzMi9kbG0vZGxtbWFzdGVyLmMKQEAgLTE0MTEsNiArMTQxMSw3IEBA IGludCBkbG1fbWFzdGVyX3JlcXVlc3RfaGFuZGxlcihzdHJ1Y3QgbzJuZXRfbXNnICptc2csIHUz MiBsZW4sIHZvaWQgKmRhdGEsCiAJaW50IGZvdW5kLCByZXQ7CiAJaW50IHNldF9tYXliZTsKIAlp bnQgZGlzcGF0Y2hfYXNzZXJ0ID0gMDsKKwlpbnQgZGlzcGF0Y2hlZCA9IDA7CiAKIAlpZiAoIWRs bV9ncmFiKGRsbSkpCiAJCXJldHVybiBETE1fTUFTVEVSX1JFU1BfTk87CkBAIC0xNjE3LDEzICsx NjE4LDE2IEBAIHNlbmRfcmVzcG9uc2U6CiAJCQltbG9nKE1MX0VSUk9SLCAiZmFpbGVkIHRvIGRp c3BhdGNoIGFzc2VydCBtYXN0ZXIgd29ya1xuIik7CiAJCQlyZXNwb25zZSA9IERMTV9NQVNURVJf UkVTUF9FUlJPUjsKIAkJCWRsbV9sb2NrcmVzX3B1dChyZXMpOworCQl9IGVsc2UgeworCQkJZGlz cGF0Y2hlZCA9IDE7CiAJCX0KIAl9IGVsc2UgewogCQlpZiAocmVzKQogCQkJZGxtX2xvY2tyZXNf cHV0KHJlcyk7CiAJfQogCi0JZGxtX3B1dChkbG0pOworCWlmICghZGlzcGF0Y2hlZCkKKwkJZGxt X3B1dChkbG0pOwogCXJldHVybiByZXNwb25zZTsKIH0KIApAQCAtMjA0MSw3ICsyMDQ1LDYgQEAg aW50IGRsbV9kaXNwYXRjaF9hc3NlcnRfbWFzdGVyKHN0cnVjdCBkbG1fY3R4dCAqZGxtLAogCiAK IAkvKiBxdWV1ZSB1cCB3b3JrIGZvciBkbG1fYXNzZXJ0X21hc3Rlcl93b3JrZXIgKi8KLQlkbG1f Z3JhYihkbG0pOyAgLyogZ2V0IGFuIGV4dHJhIHJlZiBmb3IgdGhlIHdvcmsgaXRlbSAqLwogCWRs bV9pbml0X3dvcmtfaXRlbShkbG0sIGl0ZW0sIGRsbV9hc3NlcnRfbWFzdGVyX3dvcmtlciwgTlVM TCk7CiAJaXRlbS0+dS5hbS5sb2NrcmVzID0gcmVzOyAvKiBhbHJlYWR5IGhhdmUgYSByZWYgKi8K IAkvKiBjYW4gb3B0aW9uYWxseSBpZ25vcmUgbm9kZSBudW1iZXJzIGhpZ2hlciB0aGFuIHRoaXMg bm9kZSAqLwpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtL2RsbXJlY292ZXJ5LmMgYi9mcy9vY2Zz Mi9kbG0vZGxtcmVjb3ZlcnkuYwppbmRleCBkMTViMDcxLi4wZTUwMTNlIDEwMDY0NAotLS0gYS9m cy9vY2ZzMi9kbG0vZGxtcmVjb3ZlcnkuYworKysgYi9mcy9vY2ZzMi9kbG0vZGxtcmVjb3Zlcnku YwpAQCAtMTY4OSw2ICsxNjg5LDcgQEAgaW50IGRsbV9tYXN0ZXJfcmVxdWVyeV9oYW5kbGVyKHN0 cnVjdCBvMm5ldF9tc2cgKm1zZywgdTMyIGxlbiwgdm9pZCAqZGF0YSwKIAl1bnNpZ25lZCBpbnQg aGFzaDsKIAlpbnQgbWFzdGVyID0gRExNX0xPQ0tfUkVTX09XTkVSX1VOS05PV047CiAJdTMyIGZs YWdzID0gRExNX0FTU0VSVF9NQVNURVJfUkVRVUVSWTsKKwlpbnQgZGlzcGF0Y2hlZCA9IDA7CiAK IAlpZiAoIWRsbV9ncmFiKGRsbSkpIHsKIAkJLyogc2luY2UgdGhlIGRvbWFpbiBoYXMgZ29uZSBh d2F5IG9uIHRoaXMKQEAgLTE3MTAsNiArMTcxMSw4IEBAIGludCBkbG1fbWFzdGVyX3JlcXVlcnlf aGFuZGxlcihzdHJ1Y3QgbzJuZXRfbXNnICptc2csIHUzMiBsZW4sIHZvaWQgKmRhdGEsCiAJCQkJ bWxvZ19lcnJubygtRU5PTUVNKTsKIAkJCQkvKiByZXRyeSE/ICovCiAJCQkJQlVHKCk7CisJCQl9 IGVsc2UgeworCQkJCWRpc3BhdGNoZWQgPSAxOwogCQkJfQogCQl9IGVsc2UgLyogcHV0Li4gaW5j YXNlIHdlIGFyZSBub3QgdGhlIG1hc3RlciAqLwogCQkJZGxtX2xvY2tyZXNfcHV0KHJlcyk7CkBA IC0xNzE3LDcgKzE3MjAsOCBAQCBpbnQgZGxtX21hc3Rlcl9yZXF1ZXJ5X2hhbmRsZXIoc3RydWN0 IG8ybmV0X21zZyAqbXNnLCB1MzIgbGVuLCB2b2lkICpkYXRhLAogCX0KIAlzcGluX3VubG9jaygm ZGxtLT5zcGlubG9jayk7CiAKLQlkbG1fcHV0KGRsbSk7CisJaWYgKCFkaXNwYXRjaGVkKQorCQlk bG1fcHV0KGRsbSk7CiAJcmV0dXJuIG1hc3RlcjsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvb2NmczIv ZGxtZ2x1ZS5jIGIvZnMvb2NmczIvZGxtZ2x1ZS5jCmluZGV4IDIzMWVhYjIuLmI1ZTQ1N2MgMTAw NjQ0Ci0tLSBhL2ZzL29jZnMyL2RsbWdsdWUuYworKysgYi9mcy9vY2ZzMi9kbG1nbHVlLmMKQEAg LTM5NjgsOSArMzk2OCwxMyBAQCBzdGF0aWMgdm9pZCBvY2ZzMl9kb3duY29udmVydF90aHJlYWRf ZG9fd29yayhzdHJ1Y3Qgb2NmczJfc3VwZXIgKm9zYikKIAlvc2ItPmRjX3dvcmtfc2VxdWVuY2Ug PSBvc2ItPmRjX3dha2Vfc2VxdWVuY2U7CiAKIAlwcm9jZXNzZWQgPSBvc2ItPmJsb2NrZWRfbG9j a19jb3VudDsKLQl3aGlsZSAocHJvY2Vzc2VkKSB7Ci0JCUJVR19PTihsaXN0X2VtcHR5KCZvc2It PmJsb2NrZWRfbG9ja19saXN0KSk7Ci0KKwkvKgorCSAqIGJsb2NrZWQgbG9jayBwcm9jZXNzaW5n IGluIHRoaXMgbG9vcCBtaWdodCBjYWxsIGlwdXQgd2hpY2ggY2FuCisJICogcmVtb3ZlIGl0ZW1z IG9mZiBvc2ItPmJsb2NrZWRfbG9ja19saXN0LiBEb3duY29udmVydCB1cCB0bworCSAqICdwcm9j ZXNzZWQnIG51bWJlciBvZiBsb2NrcywgYnV0IHN0b3Agc2hvcnQgaWYgd2UgaGFkIHNvbWUKKwkg KiByZW1vdmVkIGluIG9jZnMyX21hcmtfbG9ja3Jlc19mcmVlaW5nIHdoZW4gZG93bmNvbnZlcnRp bmcuCisJICovCisJd2hpbGUgKHByb2Nlc3NlZCAmJiAhbGlzdF9lbXB0eSgmb3NiLT5ibG9ja2Vk X2xvY2tfbGlzdCkpIHsKIAkJbG9ja3JlcyA9IGxpc3RfZW50cnkob3NiLT5ibG9ja2VkX2xvY2tf bGlzdC5uZXh0LAogCQkJCSAgICAgc3RydWN0IG9jZnMyX2xvY2tfcmVzLCBsX2Jsb2NrZWRfbGlz dCk7CiAJCWxpc3RfZGVsX2luaXQoJmxvY2tyZXMtPmxfYmxvY2tlZF9saXN0KTsKZGlmZiAtLWdp dCBhL2ZzL29jZnMyL3N1cGVyLmMgYi9mcy9vY2ZzMi9zdXBlci5jCmluZGV4IDQ5OTRmOGIuLjVm ZTZiMWUgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL3N1cGVyLmMKKysrIGIvZnMvb2NmczIvc3VwZXIu YwpAQCAtMTU4Myw4ICsxNTgzLDggQEAgc3RhdGljIGludCBvY2ZzMl9zaG93X29wdGlvbnMoc3Ry dWN0IHNlcV9maWxlICpzLCBzdHJ1Y3QgdmZzbW91bnQgKm1udCkKIAkJc2VxX3ByaW50ZihzLCAi LGxvY2FsZmxvY2tzLCIpOwogCiAJaWYgKG9zYi0+b3NiX2NsdXN0ZXJfc3RhY2tbMF0pCi0JCXNl cV9wcmludGYocywgIixjbHVzdGVyX3N0YWNrPSUuKnMiLCBPQ0ZTMl9TVEFDS19MQUJFTF9MRU4s Ci0JCQkgICBvc2ItPm9zYl9jbHVzdGVyX3N0YWNrKTsKKwkJc2VxX3Nob3dfb3B0aW9uX24ocywg ImNsdXN0ZXJfc3RhY2siLCBvc2ItPm9zYl9jbHVzdGVyX3N0YWNrLAorCQkJCSAgT0NGUzJfU1RB Q0tfTEFCRUxfTEVOKTsKIAlpZiAob3B0cyAmIE9DRlMyX01PVU5UX1VTUlFVT1RBKQogCQlzZXFf cHJpbnRmKHMsICIsdXNycXVvdGEiKTsKIAlpZiAob3B0cyAmIE9DRlMyX01PVU5UX0dSUFFVT1RB KQpkaWZmIC0tZ2l0IGEvZnMvcHJvYy90YXNrX21tdS5jIGIvZnMvcHJvYy90YXNrX21tdS5jCmlu ZGV4IGQxYmQ2YTkuLmRlNDA0ZjIgMTAwNjQ0Ci0tLSBhL2ZzL3Byb2MvdGFza19tbXUuYworKysg Yi9mcy9wcm9jL3Rhc2tfbW11LmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxsaW51eC9y bWFwLmg+CiAjaW5jbHVkZSA8bGludXgvc3dhcC5oPgogI2luY2x1ZGUgPGxpbnV4L3N3YXBvcHMu aD4KKyNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgogCiAjaW5jbHVkZSA8YXNtL2VsZi5oPgog I2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CkBAIC02MDYsNiArNjA3LDcgQEAgY29uc3Qgc3RydWN0 IGZpbGVfb3BlcmF0aW9ucyBwcm9jX2NsZWFyX3JlZnNfb3BlcmF0aW9ucyA9IHsKIHN0cnVjdCBw YWdlbWFwcmVhZCB7CiAJaW50IHBvcywgbGVuOwkJLyogdW5pdHM6IFBNX0VOVFJZX0JZVEVTLCBu b3QgYnl0ZXMgKi8KIAl1NjQgKmJ1ZmZlcjsKKwlib29sIHNob3dfcGZuOwogfTsKIAogI2RlZmlu ZSBQTV9FTlRSWV9CWVRFUyAgICAgIHNpemVvZih1NjQpCkBAIC02NTQsMTQgKzY1NiwxNCBAQCBz dGF0aWMgdTY0IHN3YXBfcHRlX3RvX3BhZ2VtYXBfZW50cnkocHRlX3QgcHRlKQogCXJldHVybiBz d3BfdHlwZShlKSB8IChzd3Bfb2Zmc2V0KGUpIDw8IE1BWF9TV0FQRklMRVNfU0hJRlQpOwogfQog Ci1zdGF0aWMgdTY0IHB0ZV90b19wYWdlbWFwX2VudHJ5KHB0ZV90IHB0ZSkKK3N0YXRpYyB1NjQg cHRlX3RvX3BhZ2VtYXBfZW50cnkoc3RydWN0IHBhZ2VtYXByZWFkICpwbSwgcHRlX3QgcHRlKQog ewogCXU2NCBwbWUgPSAwOwogCWlmIChpc19zd2FwX3B0ZShwdGUpKQogCQlwbWUgPSBQTV9QRlJB TUUoc3dhcF9wdGVfdG9fcGFnZW1hcF9lbnRyeShwdGUpKQogCQkJfCBQTV9QU0hJRlQoUEFHRV9T SElGVCkgfCBQTV9TV0FQOwogCWVsc2UgaWYgKHB0ZV9wcmVzZW50KHB0ZSkpCi0JCXBtZSA9IFBN X1BGUkFNRShwdGVfcGZuKHB0ZSkpCisJCXBtZSA9IChwbS0+c2hvd19wZm4gPyBQTV9QRlJBTUUo cHRlX3BmbihwdGUpKSA6IDApCiAJCQl8IFBNX1BTSElGVChQQUdFX1NISUZUKSB8IFBNX1BSRVNF TlQ7CiAJcmV0dXJuIHBtZTsKIH0KQEAgLTY5Myw3ICs2OTUsNyBAQCBzdGF0aWMgaW50IHBhZ2Vt YXBfcHRlX3JhbmdlKHBtZF90ICpwbWQsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9u ZyBlbmQsCiAJCWlmICh2bWEgJiYgKHZtYS0+dm1fc3RhcnQgPD0gYWRkcikgJiYKIAkJICAgICFp c192bV9odWdldGxiX3BhZ2Uodm1hKSkgewogCQkJcHRlID0gcHRlX29mZnNldF9tYXAocG1kLCBh ZGRyKTsKLQkJCXBmbiA9IHB0ZV90b19wYWdlbWFwX2VudHJ5KCpwdGUpOworCQkJcGZuID0gcHRl X3RvX3BhZ2VtYXBfZW50cnkocG0sICpwdGUpOwogCQkJLyogdW5tYXAgYmVmb3JlIHVzZXJzcGFj ZSBjb3B5ICovCiAJCQlwdGVfdW5tYXAocHRlKTsKIAkJfQpAQCAtNzA4LDExICs3MTAsMTEgQEAg c3RhdGljIGludCBwYWdlbWFwX3B0ZV9yYW5nZShwbWRfdCAqcG1kLCB1bnNpZ25lZCBsb25nIGFk ZHIsIHVuc2lnbmVkIGxvbmcgZW5kLAogfQogCiAjaWZkZWYgQ09ORklHX0hVR0VUTEJfUEFHRQot c3RhdGljIHU2NCBodWdlX3B0ZV90b19wYWdlbWFwX2VudHJ5KHB0ZV90IHB0ZSwgaW50IG9mZnNl dCkKK3N0YXRpYyB1NjQgaHVnZV9wdGVfdG9fcGFnZW1hcF9lbnRyeShzdHJ1Y3QgcGFnZW1hcHJl YWQgKnBtLCBwdGVfdCBwdGUsIGludCBvZmZzZXQpCiB7CiAJdTY0IHBtZSA9IDA7CiAJaWYgKHB0 ZV9wcmVzZW50KHB0ZSkpCi0JCXBtZSA9IFBNX1BGUkFNRShwdGVfcGZuKHB0ZSkgKyBvZmZzZXQp CisJCXBtZSA9IChwbS0+c2hvd19wZm4gPyBQTV9QRlJBTUUocHRlX3BmbihwdGUpICsgb2Zmc2V0 KSA6IDApCiAJCQl8IFBNX1BTSElGVChQQUdFX1NISUZUKSB8IFBNX1BSRVNFTlQ7CiAJcmV0dXJu IHBtZTsKIH0KQEAgLTcyOCw3ICs3MzAsNyBAQCBzdGF0aWMgaW50IHBhZ2VtYXBfaHVnZXRsYl9y YW5nZShwdGVfdCAqcHRlLCB1bnNpZ25lZCBsb25nIGhtYXNrLAogCiAJZm9yICg7IGFkZHIgIT0g ZW5kOyBhZGRyICs9IFBBR0VfU0laRSkgewogCQlpbnQgb2Zmc2V0ID0gKGFkZHIgJiB+aG1hc2sp ID4+IFBBR0VfU0hJRlQ7Ci0JCXBmbiA9IGh1Z2VfcHRlX3RvX3BhZ2VtYXBfZW50cnkoKnB0ZSwg b2Zmc2V0KTsKKwkJcGZuID0gaHVnZV9wdGVfdG9fcGFnZW1hcF9lbnRyeShwbSwgKnB0ZSwgb2Zm c2V0KTsKIAkJZXJyID0gYWRkX3RvX3BhZ2VtYXAoYWRkciwgcGZuLCBwbSk7CiAJCWlmIChlcnIp CiAJCQlyZXR1cm4gZXJyOwpAQCAtNzkyLDYgKzc5NCwxMCBAQCBzdGF0aWMgc3NpemVfdCBwYWdl bWFwX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpidWYsCiAJaWYgKCFjb3Vu dCkKIAkJZ290byBvdXRfdGFzazsKIAorCS8qIGRvIG5vdCBkaXNjbG9zZSBwaHlzaWNhbCBhZGRy ZXNzZXM6IGF0dGFjayB2ZWN0b3IgKi8KKwlwbS5zaG93X3BmbiA9ICFzZWN1cml0eV9jYXBhYmxl KCZpbml0X3VzZXJfbnMsIGZpbGUtPmZfY3JlZCwgCisJCQkJCUNBUF9TWVNfQURNSU4pOworCiAJ cG0ubGVuID0gKFBBR0VNQVBfV0FMS19TSVpFID4+IFBBR0VfU0hJRlQpOwogCXBtLmJ1ZmZlciA9 IGttYWxsb2MocG0ubGVuICogUE1fRU5UUllfQllURVMsIEdGUF9URU1QT1JBUlkpOwogCXJldCA9 IC1FTk9NRU07CkBAIC04NjQsMTkgKzg3MCw5IEBAIG91dDoKIAlyZXR1cm4gcmV0OwogfQogCi1z dGF0aWMgaW50IHBhZ2VtYXBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAq ZmlsZSkKLXsKLQkvKiBkbyBub3QgZGlzY2xvc2UgcGh5c2ljYWwgYWRkcmVzc2VzIHRvIHVucHJp dmlsZWdlZAotCSAgIHVzZXJzcGFjZSAoY2xvc2VzIGEgcm93aGFtbWVyIGF0dGFjayB2ZWN0b3Ip ICovCi0JaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQotCQlyZXR1cm4gLUVQRVJNOwotCXJl dHVybiAwOwotfQotCiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHByb2NfcGFnZW1hcF9v cGVyYXRpb25zID0gewogCS5sbHNlZWsJCT0gbWVtX2xzZWVrLCAvKiBib3Jyb3cgdGhpcyAqLwog CS5yZWFkCQk9IHBhZ2VtYXBfcmVhZCwKLQkub3BlbgkJPSBwYWdlbWFwX29wZW4sCiB9OwogI2Vu ZGlmIC8qIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUiAqLwogCmRpZmYgLS1naXQgYS9mcy94ZnMv eGZzX2FvcHMuYyBiL2ZzL3hmcy94ZnNfYW9wcy5jCmluZGV4IGIzNjc1ODEuLmMyYjA2ZDQgMTAw NjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfYW9wcy5jCisrKyBiL2ZzL3hmcy94ZnNfYW9wcy5jCkBAIC0z NjUsNyArMzY1LDggQEAgeGZzX2VuZF9iaW8oCiAJeGZzX2lvZW5kX3QJCSppb2VuZCA9IGJpby0+ YmlfcHJpdmF0ZTsKIAogCUFTU0VSVChhdG9taWNfcmVhZCgmYmlvLT5iaV9jbnQpID49IDEpOwot CWlvZW5kLT5pb19lcnJvciA9IHRlc3RfYml0KEJJT19VUFRPREFURSwgJmJpby0+YmlfZmxhZ3Mp ID8gMCA6IGVycm9yOworCWlmICghaW9lbmQtPmlvX2Vycm9yICYmICF0ZXN0X2JpdChCSU9fVVBU T0RBVEUsICZiaW8tPmJpX2ZsYWdzKSkKKwkJaW9lbmQtPmlvX2Vycm9yID0gZXJyb3I7CiAKIAkv KiBUb3NzIGJpbyBhbmQgcGFzcyB3b3JrIG9mZiB0byBhbiB4ZnNkYXRhZCB0aHJlYWQgKi8KIAli aW8tPmJpX3ByaXZhdGUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19hdHRyX2xlYWYu aCBiL2ZzL3hmcy94ZnNfYXR0cl9sZWFmLmgKaW5kZXggOWM3ZDIyZi4uYzc4MjkwNiAxMDA2NDQK LS0tIGEvZnMveGZzL3hmc19hdHRyX2xlYWYuaAorKysgYi9mcy94ZnMveGZzX2F0dHJfbGVhZi5o CkBAIC0xMTEsOCArMTExLDE1IEBAIHR5cGVkZWYgc3RydWN0IHhmc19hdHRyX2xlYWZfbmFtZV9y ZW1vdGUgewogdHlwZWRlZiBzdHJ1Y3QgeGZzX2F0dHJfbGVhZmJsb2NrIHsKIAl4ZnNfYXR0cl9s ZWFmX2hkcl90CWhkcjsJLyogY29uc3RhbnQtc3RydWN0dXJlIGhlYWRlciBibG9jayAqLwogCXhm c19hdHRyX2xlYWZfZW50cnlfdAllbnRyaWVzWzFdOwkvKiBzb3J0ZWQgb24ga2V5LCBub3QgbmFt ZSAqLwotCXhmc19hdHRyX2xlYWZfbmFtZV9sb2NhbF90IG5hbWVsaXN0OwkvKiBncm93cyBmcm9t IGJvdHRvbSBvZiBidWYgKi8KLQl4ZnNfYXR0cl9sZWFmX25hbWVfcmVtb3RlX3QgdmFsdWVsaXN0 OwkvKiBncm93cyBmcm9tIGJvdHRvbSBvZiBidWYgKi8KKwkvKgorCSAqIFRoZSByZXN0IG9mIHRo ZSBibG9jayBjb250YWlucyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZXMgYWZ0ZXIgdGhlCisJICog bGVhZiBlbnRyaWVzLCBncm93aW5nIGZyb20gdGhlIGJvdHRvbSB1cC4gVGhlIHZhcmlhYmxlcyBh cmUgbmV2ZXIKKwkgKiByZWZlcmVuY2VkIGFuZCBkZWZpbmluaW5nIHRoZW0gY2FuIGFjdHVhbGx5 IG1ha2UgZ2NjIG9wdGltaXplIGF3YXkKKwkgKiBhY2Nlc3NlcyB0byB0aGUgJ2VudHJpZXMnIGFy cmF5IGFib3ZlIGluZGV4IDAgc28gZG9uJ3QgZG8gdGhhdC4KKwkgKgorCSAqIHhmc19hdHRyX2xl YWZfbmFtZV9sb2NhbF90IG5hbWVsaXN0OworCSAqIHhmc19hdHRyX2xlYWZfbmFtZV9yZW1vdGVf dCB2YWx1ZWxpc3Q7CisJICovCiB9IHhmc19hdHRyX2xlYWZibG9ja190OwogCiAvKgpkaWZmIC0t Z2l0IGEvZnMveGZzL3hmc19zdXBlci5jIGIvZnMveGZzL3hmc19zdXBlci5jCmluZGV4IDhhODk5 NDkuLjkwY2NkMWMgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfc3VwZXIuYworKysgYi9mcy94ZnMv eGZzX3N1cGVyLmMKQEAgLTUzMyw5ICs1MzMsOSBAQCB4ZnNfc2hvd2FyZ3MoCiAJCXNlcV9wcmlu dGYobSwgIiwiIE1OVE9QVF9MT0dCU0laRSAiPSVkayIsIG1wLT5tX2xvZ2JzaXplID4+IDEwKTsK IAogCWlmIChtcC0+bV9sb2duYW1lKQotCQlzZXFfcHJpbnRmKG0sICIsIiBNTlRPUFRfTE9HREVW ICI9JXMiLCBtcC0+bV9sb2duYW1lKTsKKwkJc2VxX3Nob3dfb3B0aW9uKG0sIE1OVE9QVF9MT0dE RVYsIG1wLT5tX2xvZ25hbWUpOwogCWlmIChtcC0+bV9ydG5hbWUpCi0JCXNlcV9wcmludGYobSwg IiwiIE1OVE9QVF9SVERFViAiPSVzIiwgbXAtPm1fcnRuYW1lKTsKKwkJc2VxX3Nob3dfb3B0aW9u KG0sIE1OVE9QVF9SVERFViwgbXAtPm1fcnRuYW1lKTsKIAogCWlmIChtcC0+bV9kYWxpZ24gPiAw KQogCQlzZXFfcHJpbnRmKG0sICIsIiBNTlRPUFRfU1VOSVQgIj0lZCIsCmRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L2ZzbF9kZXZpY2VzLmggYi9pbmNsdWRlL2xpbnV4L2ZzbF9kZXZpY2VzLmgK aW5kZXggZmZmZGYwMC4uMmZlMGQyMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9mc2xfZGV2 aWNlcy5oCisrKyBiL2luY2x1ZGUvbGludXgvZnNsX2RldmljZXMuaApAQCAtODMsNiArODMsNyBA QCBzdHJ1Y3QgZnNsX3VzYjJfcGxhdGZvcm1fZGF0YSB7CiAKIAl1bnNpZ25lZAlzdXNwZW5kZWQ6 MTsKIAl1bnNpZ25lZAlhbHJlYWR5X3N1c3BlbmRlZDoxOworCXVuc2lnbmVkICAgICAgICBoYXNf ZnNsX2VycmF0dW1fYTAwNTI3NToxOwogCiAJLyogcmVnaXN0ZXIgc2F2ZSBhcmVhIGZvciBzdXNw ZW5kL3Jlc3VtZSAqLwogCXUzMgkJcG1fY29tbWFuZDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvamJkMi5oIGIvaW5jbHVkZS9saW51eC9qYmQyLmgKaW5kZXggNDkyMGM1NS4uZmJmZDBjNCAx MDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9qYmQyLmgKKysrIGIvaW5jbHVkZS9saW51eC9qYmQy LmgKQEAgLTk4MCw4ICs5ODAsOSBAQCBpbnQgX19qYmQyX3VwZGF0ZV9sb2dfdGFpbChqb3VybmFs X3QgKmpvdXJuYWwsIHRpZF90IHRpZCwgdW5zaWduZWQgbG9uZyBibG9jayk7CiBleHRlcm4gdm9p ZCBqYmQyX2pvdXJuYWxfY29tbWl0X3RyYW5zYWN0aW9uKGpvdXJuYWxfdCAqKTsKIAogLyogQ2hl Y2twb2ludCBsaXN0IG1hbmFnZW1lbnQgKi8KLWludCBfX2piZDJfam91cm5hbF9jbGVhbl9jaGVj a3BvaW50X2xpc3Qoam91cm5hbF90ICpqb3VybmFsKTsKK2ludCBfX2piZDJfam91cm5hbF9jbGVh bl9jaGVja3BvaW50X2xpc3Qoam91cm5hbF90ICpqb3VybmFsLCBib29sIGRlc3Ryb3kpOwogaW50 IF9famJkMl9qb3VybmFsX3JlbW92ZV9jaGVja3BvaW50KHN0cnVjdCBqb3VybmFsX2hlYWQgKik7 Cit2b2lkIGpiZDJfam91cm5hbF9kZXN0cm95X2NoZWNrcG9pbnQoam91cm5hbF90ICpqb3VybmFs KTsKIHZvaWQgX19qYmQyX2pvdXJuYWxfaW5zZXJ0X2NoZWNrcG9pbnQoc3RydWN0IGpvdXJuYWxf aGVhZCAqLCB0cmFuc2FjdGlvbl90ICopOwogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv cGNpLmggYi9pbmNsdWRlL2xpbnV4L3BjaS5oCmluZGV4IGZlNzZhNzQuLmYwYzQ0OTUgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvcGNpLmgKKysrIGIvaW5jbHVkZS9saW51eC9wY2kuaApAQCAt MTc2LDYgKzE3Niw4IEBAIGVudW0gcGNpX2Rldl9mbGFncyB7CiAJUENJX0RFVl9GTEFHU19OT19E MyA9IChfX2ZvcmNlIHBjaV9kZXZfZmxhZ3NfdCkgMiwKIAkvKiBQcm92aWRlIGluZGljYXRpb24g ZGV2aWNlIGlzIGFzc2lnbmVkIGJ5IGEgVmlydHVhbCBNYWNoaW5lIE1hbmFnZXIgKi8KIAlQQ0lf REVWX0ZMQUdTX0FTU0lHTkVEID0gKF9fZm9yY2UgcGNpX2Rldl9mbGFnc190KSA0LAorCS8qIEdl dCBWUEQgZnJvbSBmdW5jdGlvbiAwIFZQRCAqLworCVBDSV9ERVZfRkxBR1NfVlBEX1JFRl9GMCA9 IChfX2ZvcmNlIHBjaV9kZXZfZmxhZ3NfdCkgKDEgPDwgOCksCiB9OwogCiBlbnVtIHBjaV9pcnFf cmVyb3V0ZV92YXJpYW50IHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2VxX2ZpbGUuaCBi L2luY2x1ZGUvbGludXgvc2VxX2ZpbGUuaAppbmRleCAwYjY5YTQ2Li44ODAzZDZlIDEwMDY0NAot LS0gYS9pbmNsdWRlL2xpbnV4L3NlcV9maWxlLmgKKysrIGIvaW5jbHVkZS9saW51eC9zZXFfZmls ZS5oCkBAIC0xMjIsNiArMTIyLDQxIEBAIHZvaWQgKl9fc2VxX29wZW5fcHJpdmF0ZShzdHJ1Y3Qg ZmlsZSAqLCBjb25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgKiwgaW50KTsKIGludCBzZXFfb3Bl bl9wcml2YXRlKHN0cnVjdCBmaWxlICosIGNvbnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyAqLCBp bnQpOwogaW50IHNlcV9yZWxlYXNlX3ByaXZhdGUoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxl ICopOwogCisvKioKKyAqIHNlcV9zaG93X29wdGlvbnMgLSBkaXNwbGF5IG1vdW50IG9wdGlvbnMg d2l0aCBhcHByb3ByaWF0ZSBlc2NhcGVzLgorICogQG06IHRoZSBzZXFfZmlsZSBoYW5kbGUKKyAq IEBuYW1lOiB0aGUgbW91bnQgb3B0aW9uIG5hbWUKKyAqIEB2YWx1ZTogdGhlIG1vdW50IG9wdGlv biBuYW1lJ3MgdmFsdWUsIGNhbiBiZSBOVUxMCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXFf c2hvd19vcHRpb24oc3RydWN0IHNlcV9maWxlICptLCBjb25zdCBjaGFyICpuYW1lLAorCQkJCSAg IGNvbnN0IGNoYXIgKnZhbHVlKQoreworCXNlcV9wdXRjKG0sICcsJyk7CisJc2VxX2VzY2FwZSht LCBuYW1lLCAiLD0gXHRcblxcIik7CisJaWYgKHZhbHVlKSB7CisJCXNlcV9wdXRjKG0sICc9Jyk7 CisJCXNlcV9lc2NhcGUobSwgdmFsdWUsICIsIFx0XG5cXCIpOworCX0KK30KKworLyoqCisgKiBz ZXFfc2hvd19vcHRpb25fbiAtIGRpc3BsYXkgbW91bnQgb3B0aW9ucyB3aXRoIGFwcHJvcHJpYXRl IGVzY2FwZXMKKyAqCQkgICAgICAgd2hlcmUgQHZhbHVlIG11c3QgYmUgYSBzcGVjaWZpYyBsZW5n dGguCisgKiBAbTogdGhlIHNlcV9maWxlIGhhbmRsZQorICogQG5hbWU6IHRoZSBtb3VudCBvcHRp b24gbmFtZQorICogQHZhbHVlOiB0aGUgbW91bnQgb3B0aW9uIG5hbWUncyB2YWx1ZSwgY2Fubm90 IGJlIE5VTEwKKyAqIEBsZW5ndGg6IHRoZSBsZW5ndGggb2YgQHZhbHVlIHRvIGRpc3BsYXkKKyAq CisgKiBUaGlzIGlzIGEgbWFjcm8gc2luY2UgdGhpcyB1c2VzICJsZW5ndGgiIHRvIGRlZmluZSB0 aGUgc2l6ZSBvZiB0aGUKKyAqIHN0YWNrIGJ1ZmZlci4KKyAqLworI2RlZmluZSBzZXFfc2hvd19v cHRpb25fbihtLCBuYW1lLCB2YWx1ZSwgbGVuZ3RoKSB7CVwKKwljaGFyIHZhbF9idWZbbGVuZ3Ro ICsgMV07CQkJXAorCXN0cm5jcHkodmFsX2J1ZiwgdmFsdWUsIGxlbmd0aCk7CQlcCisJdmFsX2J1 ZltsZW5ndGhdID0gJ1wwJzsJCQkJXAorCXNlcV9zaG93X29wdGlvbihtLCBuYW1lLCB2YWxfYnVm KTsJCVwKK30KKwogI2RlZmluZSBTRVFfU1RBUlRfVE9LRU4gKCh2b2lkICopMSkKIAogLyoKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lwLmggYi9pbmNsdWRlL25ldC9pcC5oCmluZGV4IDFlZTUz NWIuLjJjN2M1YTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwLmgKKysrIGIvaW5jbHVkZS9u ZXQvaXAuaApAQCAtMTM4LDYgKzEzOCw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNrX2J1ZmYg KmlwX2ZpbmlzaF9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgZmxvd2k0ICpmbDQpCiB9CiAK IC8qIGRhdGFncmFtLmMgKi8KK2ludCBfX2lwNF9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKTsKIGV4dGVybiBpbnQJ CWlwNF9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgCiAJCQkJCSAgICAgc3RydWN0 IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9u ZXQvaXA2X2ZpYi5oIGIvaW5jbHVkZS9uZXQvaXA2X2ZpYi5oCmluZGV4IDU3MzVhMGYuLjM5MDcz NTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwNl9maWIuaAorKysgYi9pbmNsdWRlL25ldC9p cDZfZmliLmgKQEAgLTIxNyw3ICsyMTcsNyBAQCBleHRlcm4gdm9pZAkJCWluZXQ2X3J0X25vdGlm eShpbnQgZXZlbnQsIHN0cnVjdCBydDZfaW5mbyAqcnQsCiAJCQkJCQlzdHJ1Y3QgbmxfaW5mbyAq aW5mbyk7CiAKIGV4dGVybiB2b2lkCQkJZmliNl9ydW5fZ2ModW5zaWduZWQgbG9uZyBleHBpcmVz LAotCQkJCQkgICAgc3RydWN0IG5ldCAqbmV0KTsKKwkJCQkJICAgIHN0cnVjdCBuZXQgKm5ldCwg Ym9vbCBmb3JjZSk7CiAKIGV4dGVybiB2b2lkCQkJZmliNl9nY19jbGVhbnVwKHZvaWQpOwogCmRp ZmYgLS1naXQgYS9pcGMvbXNnLmMgYi9pcGMvbXNnLmMKaW5kZXggMjVmMWE2MS4uMzkxZTNlMCAx MDA2NDQKLS0tIGEvaXBjL21zZy5jCisrKyBiL2lwYy9tc2cuYwpAQCAtMTk4LDYgKzE5OCwxNSBA QCBzdGF0aWMgaW50IG5ld3F1ZShzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMsIHN0cnVjdCBpcGNf cGFyYW1zICpwYXJhbXMpCiAJCXJldHVybiByZXR2YWw7CiAJfQogCisJbXNxLT5xX3N0aW1lID0g bXNxLT5xX3J0aW1lID0gMDsKKwltc3EtPnFfY3RpbWUgPSBnZXRfc2Vjb25kcygpOworCW1zcS0+ cV9jYnl0ZXMgPSBtc3EtPnFfcW51bSA9IDA7CisJbXNxLT5xX3FieXRlcyA9IG5zLT5tc2dfY3Rs bW5iOworCW1zcS0+cV9sc3BpZCA9IG1zcS0+cV9scnBpZCA9IDA7CisJSU5JVF9MSVNUX0hFQUQo Jm1zcS0+cV9tZXNzYWdlcyk7CisJSU5JVF9MSVNUX0hFQUQoJm1zcS0+cV9yZWNlaXZlcnMpOwor CUlOSVRfTElTVF9IRUFEKCZtc3EtPnFfc2VuZGVycyk7CisKIAkvKgogCSAqIGlwY19hZGRpZCgp IGxvY2tzIG1zcQogCSAqLwpAQCAtMjA4LDE1ICsyMTcsNiBAQCBzdGF0aWMgaW50IG5ld3F1ZShz dHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMsIHN0cnVjdCBpcGNfcGFyYW1zICpwYXJhbXMpCiAJCXJl dHVybiBpZDsKIAl9CiAKLQltc3EtPnFfc3RpbWUgPSBtc3EtPnFfcnRpbWUgPSAwOwotCW1zcS0+ cV9jdGltZSA9IGdldF9zZWNvbmRzKCk7Ci0JbXNxLT5xX2NieXRlcyA9IG1zcS0+cV9xbnVtID0g MDsKLQltc3EtPnFfcWJ5dGVzID0gbnMtPm1zZ19jdGxtbmI7Ci0JbXNxLT5xX2xzcGlkID0gbXNx LT5xX2xycGlkID0gMDsKLQlJTklUX0xJU1RfSEVBRCgmbXNxLT5xX21lc3NhZ2VzKTsKLQlJTklU X0xJU1RfSEVBRCgmbXNxLT5xX3JlY2VpdmVycyk7Ci0JSU5JVF9MSVNUX0hFQUQoJm1zcS0+cV9z ZW5kZXJzKTsKLQogCW1zZ191bmxvY2sobXNxKTsKIAogCXJldHVybiBtc3EtPnFfcGVybS5pZDsK ZGlmZiAtLWdpdCBhL2lwYy9zZW0uYyBiL2lwYy9zZW0uYwppbmRleCA1MjE1YTgxLi5iMzFjM2Vm IDEwMDY0NAotLS0gYS9pcGMvc2VtLmMKKysrIGIvaXBjL3NlbS5jCkBAIC0zMTQsMTQgKzMxNCw2 IEBAIHN0YXRpYyBpbnQgbmV3YXJ5KHN0cnVjdCBpcGNfbmFtZXNwYWNlICpucywgc3RydWN0IGlw Y19wYXJhbXMgKnBhcmFtcykKIAkJcmV0dXJuIHJldHZhbDsKIAl9CiAKLQlpZCA9IGlwY19hZGRp ZCgmc2VtX2lkcyhucyksICZzbWEtPnNlbV9wZXJtLCBucy0+c2Nfc2VtbW5pKTsKLQlpZiAoaWQg PCAwKSB7Ci0JCXNlY3VyaXR5X3NlbV9mcmVlKHNtYSk7Ci0JCWlwY19yY3VfcHV0cmVmKHNtYSk7 Ci0JCXJldHVybiBpZDsKLQl9Ci0JbnMtPnVzZWRfc2VtcyArPSBuc2VtczsKLQogCXNtYS0+c2Vt X2Jhc2UgPSAoc3RydWN0IHNlbSAqKSAmc21hWzFdOwogCiAJZm9yIChpID0gMDsgaSA8IG5zZW1z OyBpKyspCkBAIC0zMzIsNiArMzI0LDE1IEBAIHN0YXRpYyBpbnQgbmV3YXJ5KHN0cnVjdCBpcGNf bmFtZXNwYWNlICpucywgc3RydWN0IGlwY19wYXJhbXMgKnBhcmFtcykKIAlJTklUX0xJU1RfSEVB RCgmc21hLT5saXN0X2lkKTsKIAlzbWEtPnNlbV9uc2VtcyA9IG5zZW1zOwogCXNtYS0+c2VtX2N0 aW1lID0gZ2V0X3NlY29uZHMoKTsKKworCWlkID0gaXBjX2FkZGlkKCZzZW1faWRzKG5zKSwgJnNt YS0+c2VtX3Blcm0sIG5zLT5zY19zZW1tbmkpOworCWlmIChpZCA8IDApIHsKKwkJc2VjdXJpdHlf c2VtX2ZyZWUoc21hKTsKKwkJaXBjX3JjdV9wdXRyZWYoc21hKTsKKwkJcmV0dXJuIGlkOworCX0K Kwlucy0+dXNlZF9zZW1zICs9IG5zZW1zOworCiAJc2VtX3VubG9jayhzbWEpOwogCiAJcmV0dXJu IHNtYS0+c2VtX3Blcm0uaWQ7CkBAIC0xNjA2LDE2ICsxNjA3LDI3IEBAIHZvaWQgZXhpdF9zZW0o c3RydWN0IHRhc2tfc3RydWN0ICp0c2spCiAJCXJjdV9yZWFkX2xvY2soKTsKIAkJdW4gPSBsaXN0 X2VudHJ5X3JjdSh1bHAtPmxpc3RfcHJvYy5uZXh0LAogCQkJCSAgICBzdHJ1Y3Qgc2VtX3VuZG8s IGxpc3RfcHJvYyk7Ci0JCWlmICgmdW4tPmxpc3RfcHJvYyA9PSAmdWxwLT5saXN0X3Byb2MpCi0J CQlzZW1pZCA9IC0xOwotCQkgZWxzZQotCQkJc2VtaWQgPSB1bi0+c2VtaWQ7CisJCWlmICgmdW4t Pmxpc3RfcHJvYyA9PSAmdWxwLT5saXN0X3Byb2MpIHsKKwkJCS8qCisJCQkgKiBXZSBtdXN0IHdh aXQgZm9yIGZyZWVhcnkoKSBiZWZvcmUgZnJlZWluZyB0aGlzIHVscCwKKwkJCSAqIGluIGNhc2Ug d2UgcmFjZWQgd2l0aCBsYXN0IHNlbV91bmRvLiBUaGVyZSBpcyBhIHNtYWxsCisJCQkgKiBwb3Nz aWJpbGl0eSB3aGVyZSB3ZSBleGl0IHdoaWxlIGZyZWVhcnkoKSBkaWRuJ3QKKwkJCSAqIGZpbmlz aCB1bmxvY2tpbmcgc2VtX3VuZG9fbGlzdC4KKwkJCSAqLworCQkJc3Bpbl91bmxvY2tfd2FpdCgm dWxwLT5sb2NrKTsKKwkJCXJjdV9yZWFkX3VubG9jaygpOworCQkJYnJlYWs7CisJCX0KKwkJc3Bp bl9sb2NrKCZ1bHAtPmxvY2spOworCQlzZW1pZCA9IHVuLT5zZW1pZDsKKwkJc3Bpbl91bmxvY2so JnVscC0+bG9jayk7CiAJCXJjdV9yZWFkX3VubG9jaygpOwogCisJCS8qIGV4aXRfc2VtIHJhY2Vk IHdpdGggSVBDX1JNSUQsIG5vdGhpbmcgdG8gZG8gKi8KIAkJaWYgKHNlbWlkID09IC0xKQotCQkJ YnJlYWs7CisJCQljb250aW51ZTsKIAotCQlzbWEgPSBzZW1fbG9ja19jaGVjayh0c2stPm5zcHJv eHktPmlwY19ucywgdW4tPnNlbWlkKTsKKwkJc21hID0gc2VtX2xvY2tfY2hlY2sodHNrLT5uc3By b3h5LT5pcGNfbnMsIHNlbWlkKTsKIAogCQkvKiBleGl0X3NlbSByYWNlZCB3aXRoIElQQ19STUlE LCBub3RoaW5nIHRvIGRvICovCiAJCWlmIChJU19FUlIoc21hKSkKZGlmZiAtLWdpdCBhL2lwYy9z aG0uYyBiL2lwYy9zaG0uYwppbmRleCAzMjZhMjBiLi4xNmIxZjllIDEwMDY0NAotLS0gYS9pcGMv c2htLmMKKysrIGIvaXBjL3NobS5jCkBAIC00OTgsMTIgKzQ5OCw2IEBAIHN0YXRpYyBpbnQgbmV3 c2VnKHN0cnVjdCBpcGNfbmFtZXNwYWNlICpucywgc3RydWN0IGlwY19wYXJhbXMgKnBhcmFtcykK IAlpZiAoSVNfRVJSKGZpbGUpKQogCQlnb3RvIG5vX2ZpbGU7CiAKLQlpZCA9IGlwY19hZGRpZCgm c2htX2lkcyhucyksICZzaHAtPnNobV9wZXJtLCBucy0+c2htX2N0bG1uaSk7Ci0JaWYgKGlkIDwg MCkgewotCQllcnJvciA9IGlkOwotCQlnb3RvIG5vX2lkOwotCX0KLQogCXNocC0+c2htX2Nwcmlk ID0gdGFza190Z2lkX3ZucihjdXJyZW50KTsKIAlzaHAtPnNobV9scHJpZCA9IDA7CiAJc2hwLT5z aG1fYXRpbSA9IHNocC0+c2htX2R0aW0gPSAwOwpAQCAtNTEyLDYgKzUwNiwxMyBAQCBzdGF0aWMg aW50IG5ld3NlZyhzdHJ1Y3QgaXBjX25hbWVzcGFjZSAqbnMsIHN0cnVjdCBpcGNfcGFyYW1zICpw YXJhbXMpCiAJc2hwLT5zaG1fbmF0dGNoID0gMDsKIAlzaHAtPnNobV9maWxlID0gZmlsZTsKIAlz aHAtPnNobV9jcmVhdG9yID0gY3VycmVudDsKKworCWlkID0gaXBjX2FkZGlkKCZzaG1faWRzKG5z KSwgJnNocC0+c2htX3Blcm0sIG5zLT5zaG1fY3RsbW5pKTsKKwlpZiAoaWQgPCAwKSB7CisJCWVy cm9yID0gaWQ7CisJCWdvdG8gbm9faWQ7CisJfQorCiAJLyoKIAkgKiBzaG1pZCBnZXRzIHJlcG9y dGVkIGFzICJpbm9kZSMiIGluIC9wcm9jL3BpZC9tYXBzLgogCSAqIHByb2MtcHMgdG9vbHMgdXNl IHRoaXMuIENoYW5naW5nIHRoaXMgd2lsbCBicmVhayB0aGVtLgpkaWZmIC0tZ2l0IGEvaXBjL3V0 aWwuYyBiL2lwYy91dGlsLmMKaW5kZXggNzUyNjFhMy4uZTRjOTM3NyAxMDA2NDQKLS0tIGEvaXBj L3V0aWwuYworKysgYi9pcGMvdXRpbC5jCkBAIC0yNjQsNiArMjY0LDEwIEBAIGludCBpcGNfYWRk aWQoc3RydWN0IGlwY19pZHMqIGlkcywgc3RydWN0IGtlcm5faXBjX3Blcm0qIG5ldywgaW50IHNp emUpCiAJcmN1X3JlYWRfbG9jaygpOwogCXNwaW5fbG9jaygmbmV3LT5sb2NrKTsKIAorCWN1cnJl bnRfZXVpZF9lZ2lkKCZldWlkLCAmZWdpZCk7CisJbmV3LT5jdWlkID0gbmV3LT51aWQgPSBldWlk OworCW5ldy0+Z2lkID0gbmV3LT5jZ2lkID0gZWdpZDsKKwogCWVyciA9IGlkcl9nZXRfbmV3KCZp ZHMtPmlwY3NfaWRyLCBuZXcsICZpZCk7CiAJaWYgKGVycikgewogCQlzcGluX3VubG9jaygmbmV3 LT5sb2NrKTsKQEAgLTI3MywxMCArMjc3LDYgQEAgaW50IGlwY19hZGRpZChzdHJ1Y3QgaXBjX2lk cyogaWRzLCBzdHJ1Y3Qga2Vybl9pcGNfcGVybSogbmV3LCBpbnQgc2l6ZSkKIAogCWlkcy0+aW5f dXNlKys7CiAKLQljdXJyZW50X2V1aWRfZWdpZCgmZXVpZCwgJmVnaWQpOwotCW5ldy0+Y3VpZCA9 IG5ldy0+dWlkID0gZXVpZDsKLQluZXctPmdpZCA9IG5ldy0+Y2dpZCA9IGVnaWQ7Ci0KIAluZXct PnNlcSA9IGlkcy0+c2VxKys7CiAJaWYoaWRzLT5zZXEgPiBpZHMtPnNlcV9tYXgpCiAJCWlkcy0+ c2VxID0gMDsKZGlmZiAtLWdpdCBhL2tlcm5lbC9jZ3JvdXAuYyBiL2tlcm5lbC9jZ3JvdXAuYwpp bmRleCBlYWZiNmRkLi5lYzY0YTE4IDEwMDY0NAotLS0gYS9rZXJuZWwvY2dyb3VwLmMKKysrIGIv a2VybmVsL2Nncm91cC5jCkBAIC0xMDUzLDE1ICsxMDUzLDE2IEBAIHN0YXRpYyBpbnQgY2dyb3Vw X3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHZmc21vdW50ICp2ZnMp CiAKIAltdXRleF9sb2NrKCZjZ3JvdXBfbXV0ZXgpOwogCWZvcl9lYWNoX3N1YnN5cyhyb290LCBz cykKLQkJc2VxX3ByaW50ZihzZXEsICIsJXMiLCBzcy0+bmFtZSk7CisJCXNlcV9zaG93X29wdGlv bihzZXEsIHNzLT5uYW1lLCBOVUxMKTsKIAlpZiAodGVzdF9iaXQoUk9PVF9OT1BSRUZJWCwgJnJv b3QtPmZsYWdzKSkKIAkJc2VxX3B1dHMoc2VxLCAiLG5vcHJlZml4Iik7CiAJaWYgKHN0cmxlbihy b290LT5yZWxlYXNlX2FnZW50X3BhdGgpKQotCQlzZXFfcHJpbnRmKHNlcSwgIixyZWxlYXNlX2Fn ZW50PSVzIiwgcm9vdC0+cmVsZWFzZV9hZ2VudF9wYXRoKTsKKwkJc2VxX3Nob3dfb3B0aW9uKHNl cSwgInJlbGVhc2VfYWdlbnQiLAorCQkJCXJvb3QtPnJlbGVhc2VfYWdlbnRfcGF0aCk7CiAJaWYg KGNsb25lX2NoaWxkcmVuKCZyb290LT50b3BfY2dyb3VwKSkKIAkJc2VxX3B1dHMoc2VxLCAiLGNs b25lX2NoaWxkcmVuIik7CiAJaWYgKHN0cmxlbihyb290LT5uYW1lKSkKLQkJc2VxX3ByaW50Zihz ZXEsICIsbmFtZT0lcyIsIHJvb3QtPm5hbWUpOworCQlzZXFfc2hvd19vcHRpb24oc2VxLCAibmFt ZSIsIHJvb3QtPm5hbWUpOwogCW11dGV4X3VubG9jaygmY2dyb3VwX211dGV4KTsKIAlyZXR1cm4g MDsKIH0KZGlmZiAtLWdpdCBhL2tlcm5lbC9ldmVudHMvY29yZS5jIGIva2VybmVsL2V2ZW50cy9j b3JlLmMKaW5kZXggNDI3NzA5NS4uZjQ3NTI4NiAxMDA2NDQKLS0tIGEva2VybmVsL2V2ZW50cy9j b3JlLmMKKysrIGIva2VybmVsL2V2ZW50cy9jb3JlLmMKQEAgLTM5NDIsMTIgKzM5NDIsMjAgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcGVyZl9mb3BzID0gewogICogdG8g dXNlci1zcGFjZSBiZWZvcmUgd2FraW5nIGV2ZXJ5Ym9keSB1cC4KICAqLwogCitzdGF0aWMgaW5s aW5lIHN0cnVjdCBmYXN5bmNfc3RydWN0ICoqcGVyZl9ldmVudF9mYXN5bmMoc3RydWN0IHBlcmZf ZXZlbnQgKmV2ZW50KQoreworCS8qIG9ubHkgdGhlIHBhcmVudCBoYXMgZmFzeW5jIHN0YXRlICov CisJaWYgKGV2ZW50LT5wYXJlbnQpCisJCWV2ZW50ID0gZXZlbnQtPnBhcmVudDsKKwlyZXR1cm4g JmV2ZW50LT5mYXN5bmM7Cit9CisKIHZvaWQgcGVyZl9ldmVudF93YWtldXAoc3RydWN0IHBlcmZf ZXZlbnQgKmV2ZW50KQogewogCXJpbmdfYnVmZmVyX3dha2V1cChldmVudCk7CiAKIAlpZiAoZXZl bnQtPnBlbmRpbmdfa2lsbCkgewotCQlraWxsX2Zhc3luYygmZXZlbnQtPmZhc3luYywgU0lHSU8s IGV2ZW50LT5wZW5kaW5nX2tpbGwpOworCQlraWxsX2Zhc3luYyhwZXJmX2V2ZW50X2Zhc3luYyhl dmVudCksIFNJR0lPLCBldmVudC0+cGVuZGluZ19raWxsKTsKIAkJZXZlbnQtPnBlbmRpbmdfa2ls bCA9IDA7CiAJfQogfQpAQCAtNDkyNCw3ICs0OTMyLDcgQEAgc3RhdGljIGludCBfX3BlcmZfZXZl bnRfb3ZlcmZsb3coc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50LAogCWVsc2UKIAkJcGVyZl9ldmVu dF9vdXRwdXQoZXZlbnQsIGRhdGEsIHJlZ3MpOwogCi0JaWYgKGV2ZW50LT5mYXN5bmMgJiYgZXZl bnQtPnBlbmRpbmdfa2lsbCkgeworCWlmICgqcGVyZl9ldmVudF9mYXN5bmMoZXZlbnQpICYmIGV2 ZW50LT5wZW5kaW5nX2tpbGwpIHsKIAkJZXZlbnQtPnBlbmRpbmdfd2FrZXVwID0gMTsKIAkJaXJx X3dvcmtfcXVldWUoJmV2ZW50LT5wZW5kaW5nKTsKIAl9CmRpZmYgLS1naXQgYS9uZXQvS2NvbmZp ZyBiL25ldC9LY29uZmlnCmluZGV4IGEwNzMxNDguLjk0NmUxN2EgMTAwNjQ0Ci0tLSBhL25ldC9L Y29uZmlnCisrKyBiL25ldC9LY29uZmlnCkBAIC0yNTAsNyArMjUwLDcgQEAgbWVudSAiTmV0d29y ayB0ZXN0aW5nIgogCiBjb25maWcgTkVUX1BLVEdFTgogCXRyaXN0YXRlICJQYWNrZXQgR2VuZXJh dG9yIChVU0UgV0lUSCBDQVVUSU9OKSIKLQlkZXBlbmRzIG9uIFBST0NfRlMKKwlkZXBlbmRzIG9u IElORVQgJiYgUFJPQ19GUwogCS0tLWhlbHAtLS0KIAkgIFRoaXMgbW9kdWxlIHdpbGwgaW5qZWN0 IHByZWNvbmZpZ3VyZWQgcGFja2V0cywgYXQgYSBjb25maWd1cmFibGUKIAkgIHJhdGUsIG91dCBv ZiBhIGdpdmVuIGludGVyZmFjZS4gIEl0IGlzIHVzZWQgZm9yIG5ldHdvcmsgaW50ZXJmYWNlCmRp ZmYgLS1naXQgYS9uZXQvY29yZS9kYXRhZ3JhbS5jIGIvbmV0L2NvcmUvZGF0YWdyYW0uYwppbmRl eCA2ZjU0ZDBhLi5hNDk2MzEzIDEwMDY0NAotLS0gYS9uZXQvY29yZS9kYXRhZ3JhbS5jCisrKyBi L25ldC9jb3JlL2RhdGFncmFtLmMKQEAgLTEyOCw2ICsxMjgsMzUgQEAgb3V0X25vZXJyOgogCWdv dG8gb3V0OwogfQogCitzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnNrYl9zZXRfcGVla2VkKHN0cnVj dCBza19idWZmICpza2IpCit7CisJc3RydWN0IHNrX2J1ZmYgKm5za2I7CisKKwlpZiAoc2tiLT5w ZWVrZWQpCisJCXJldHVybiBza2I7CisKKwkvKiBXZSBoYXZlIHRvIHVuc2hhcmUgYW4gc2tiIGJl Zm9yZSBtb2RpZnlpbmcgaXQuICovCisJaWYgKCFza2Jfc2hhcmVkKHNrYikpCisJCWdvdG8gZG9u ZTsKKworCW5za2IgPSBza2JfY2xvbmUoc2tiLCBHRlBfQVRPTUlDKTsKKwlpZiAoIW5za2IpCisJ CXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJc2tiLT5wcmV2LT5uZXh0ID0gbnNrYjsKKwlz a2ItPm5leHQtPnByZXYgPSBuc2tiOworCW5za2ItPnByZXYgPSBza2ItPnByZXY7CisJbnNrYi0+ bmV4dCA9IHNrYi0+bmV4dDsKKworCWNvbnN1bWVfc2tiKHNrYik7CisJc2tiID0gbnNrYjsKKwor ZG9uZToKKwlza2ItPnBlZWtlZCA9IDE7CisKKwlyZXR1cm4gc2tiOworfQorCiAvKioKICAqCV9f c2tiX3JlY3ZfZGF0YWdyYW0gLSBSZWNlaXZlIGEgZGF0YWdyYW0gc2tidWZmCiAgKglAc2s6IHNv Y2tldApAQCAtMTYwLDcgKzE4OSw5IEBAIG91dF9ub2VycjoKIHN0cnVjdCBza19idWZmICpfX3Nr Yl9yZWN2X2RhdGFncmFtKHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgZmxhZ3MsCiAJCQkJICAg IGludCAqcGVla2VkLCBpbnQgKmVycikKIHsKKwlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpxdWV1ZSA9 ICZzay0+c2tfcmVjZWl2ZV9xdWV1ZTsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOworCXVuc2lnbmVk IGxvbmcgY3B1X2ZsYWdzOwogCWxvbmcgdGltZW87CiAJLyoKIAkgKiBDYWxsZXIgaXMgYWxsb3dl ZCBub3QgdG8gY2hlY2sgc2stPnNrX2VyciBiZWZvcmUgc2tiX3JlY3ZfZGF0YWdyYW0oKQpAQCAt MTc5LDE1ICsyMTAsMTcgQEAgc3RydWN0IHNrX2J1ZmYgKl9fc2tiX3JlY3ZfZGF0YWdyYW0oc3Ry dWN0IHNvY2sgKnNrLCB1bnNpZ25lZCBmbGFncywKIAkJICogTG9vayBhdCBjdXJyZW50IG5mcyBj bGllbnQgYnkgdGhlIHdheS4uLgogCQkgKiBIb3dldmVyLCB0aGlzIGZ1bmN0aW9uIHdhcyBjb3Jy ZWN0IGluIGFueSBjYXNlLiA4KQogCQkgKi8KLQkJdW5zaWduZWQgbG9uZyBjcHVfZmxhZ3M7Ci0J CXN0cnVjdCBza19idWZmX2hlYWQgKnF1ZXVlID0gJnNrLT5za19yZWNlaXZlX3F1ZXVlOwotCiAJ CXNwaW5fbG9ja19pcnFzYXZlKCZxdWV1ZS0+bG9jaywgY3B1X2ZsYWdzKTsKIAkJc2tiID0gc2ti X3BlZWsocXVldWUpOwogCQlpZiAoc2tiKSB7CiAJCQkqcGVla2VkID0gc2tiLT5wZWVrZWQ7CiAJ CQlpZiAoZmxhZ3MgJiBNU0dfUEVFSykgewotCQkJCXNrYi0+cGVla2VkID0gMTsKKworCQkJCXNr YiA9IHNrYl9zZXRfcGVla2VkKHNrYik7CisJCQkJZXJyb3IgPSBQVFJfRVJSKHNrYik7CisJCQkJ aWYgKElTX0VSUihza2IpKQorCQkJCQlnb3RvIHVubG9ja19lcnI7CisKIAkJCQlhdG9taWNfaW5j KCZza2ItPnVzZXJzKTsKIAkJCX0gZWxzZQogCQkJCV9fc2tiX3VubGluayhza2IsIHF1ZXVlKTsK QEAgLTIwNiw2ICsyMzksOCBAQCBzdHJ1Y3Qgc2tfYnVmZiAqX19za2JfcmVjdl9kYXRhZ3JhbShz dHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGZsYWdzLAogCiAJcmV0dXJuIE5VTEw7CiAKK3VubG9j a19lcnI6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcXVldWUtPmxvY2ssIGNwdV9mbGFncyk7 CiBub19wYWNrZXQ6CiAJKmVyciA9IGVycm9yOwogCXJldHVybiBOVUxMOwpAQCAtNjU2LDcgKzY5 MSw4IEBAIF9fc3VtMTYgX19za2JfY2hlY2tzdW1fY29tcGxldGVfaGVhZChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBpbnQgbGVuKQogCWlmIChsaWtlbHkoIXN1bSkpIHsKIAkJaWYgKHVubGlrZWx5KHNr Yi0+aXBfc3VtbWVkID09IENIRUNLU1VNX0NPTVBMRVRFKSkKIAkJCW5ldGRldl9yeF9jc3VtX2Zh dWx0KHNrYi0+ZGV2KTsKLQkJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NVTV9VTk5FQ0VTU0FSWTsK KwkJaWYgKCFza2Jfc2hhcmVkKHNrYikpCisJCQlza2ItPmlwX3N1bW1lZCA9IENIRUNLU1VNX1VO TkVDRVNTQVJZOwogCX0KIAlyZXR1cm4gc3VtOwogfQpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmli X3J1bGVzLmMgYi9uZXQvY29yZS9maWJfcnVsZXMuYwppbmRleCA2YWY1NGYyLi5jN2NhZjNlIDEw MDY0NAotLS0gYS9uZXQvY29yZS9maWJfcnVsZXMuYworKysgYi9uZXQvY29yZS9maWJfcnVsZXMu YwpAQCAtNTk0LDE1ICs1OTQsMTcgQEAgc3RhdGljIGludCBkdW1wX3J1bGVzKHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYiwKIHsKIAlpbnQgaWR4ID0gMDsK IAlzdHJ1Y3QgZmliX3J1bGUgKnJ1bGU7CisJaW50IGVyciA9IDA7CiAKIAlyY3VfcmVhZF9sb2Nr KCk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UocnVsZSwgJm9wcy0+cnVsZXNfbGlzdCwgbGlz dCkgewogCQlpZiAoaWR4IDwgY2ItPmFyZ3NbMV0pCiAJCQlnb3RvIHNraXA7CiAKLQkJaWYgKGZp Yl9ubF9maWxsX3J1bGUoc2tiLCBydWxlLCBORVRMSU5LX0NCKGNiLT5za2IpLnBpZCwKLQkJCQkg ICAgIGNiLT5ubGgtPm5sbXNnX3NlcSwgUlRNX05FV1JVTEUsCi0JCQkJICAgICBOTE1fRl9NVUxU SSwgb3BzKSA8IDApCisJCWVyciA9IGZpYl9ubF9maWxsX3J1bGUoc2tiLCBydWxlLCBORVRMSU5L X0NCKGNiLT5za2IpLnBpZCwKKwkJCQkgICAgICAgY2ItPm5saC0+bmxtc2dfc2VxLCBSVE1fTkVX UlVMRSwKKwkJCQkgICAgICAgTkxNX0ZfTVVMVEksIG9wcyk7CisJCWlmIChlcnIgPCAwKQogCQkJ YnJlYWs7CiBza2lwOgogCQlpZHgrKzsKQEAgLTYxMSw3ICs2MTMsNyBAQCBza2lwOgogCWNiLT5h cmdzWzFdID0gaWR4OwogCXJ1bGVzX29wc19wdXQob3BzKTsKIAotCXJldHVybiBza2ItPmxlbjsK KwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgaW50IGZpYl9ubF9kdW1wcnVsZShzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCkBAIC02MjcsNyArNjI5LDkg QEAgc3RhdGljIGludCBmaWJfbmxfZHVtcHJ1bGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IG5ldGxpbmtfY2FsbGJhY2sgKmNiKQogCQlpZiAob3BzID09IE5VTEwpCiAJCQlyZXR1cm4gLUVB Rk5PU1VQUE9SVDsKIAotCQlyZXR1cm4gZHVtcF9ydWxlcyhza2IsIGNiLCBvcHMpOworCQlkdW1w X3J1bGVzKHNrYiwgY2IsIG9wcyk7CisKKwkJcmV0dXJuIHNrYi0+bGVuOwogCX0KIAogCXJjdV9y ZWFkX2xvY2soKTsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3BrdGdlbi5jIGIvbmV0L2NvcmUvcGt0 Z2VuLmMKaW5kZXggOWRkNjVhOS4uNzg3OWIyZiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvcGt0Z2Vu LmMKKysrIGIvbmV0L2NvcmUvcGt0Z2VuLmMKQEAgLTM0ODEsOCArMzQ4MSwxMCBAQCBzdGF0aWMg aW50IHBrdGdlbl90aHJlYWRfd29ya2VyKHZvaWQgKmFyZykKIAlwa3RnZW5fcmVtX3RocmVhZCh0 KTsKIAogCS8qIFdhaXQgZm9yIGt0aHJlYWRfc3RvcCAqLwotCXdoaWxlICgha3RocmVhZF9zaG91 bGRfc3RvcCgpKSB7CisJZm9yICg7OykgewogCQlzZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVS UlVQVElCTEUpOworCQlpZiAoa3RocmVhZF9zaG91bGRfc3RvcCgpKQorCQkJYnJlYWs7CiAJCXNj aGVkdWxlKCk7CiAJfQogCV9fc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2RhdGFncmFtLmMgYi9uZXQvaXB2NC9kYXRhZ3JhbS5jCmluZGV4IGVj MDc1MTAuLmZmYjhiNmUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2RhdGFncmFtLmMKKysrIGIvbmV0 L2lwdjQvZGF0YWdyYW0uYwpAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1ZGUgPG5ldC9yb3V0ZS5o PgogI2luY2x1ZGUgPG5ldC90Y3Bfc3RhdGVzLmg+CiAKLWludCBpcDRfZGF0YWdyYW1fY29ubmVj dChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikK K2ludCBfX2lwNF9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2th ZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQogewogCXN0cnVjdCBpbmV0X3NvY2sgKmluZXQgPSBp bmV0X3NrKHNrKTsKIAlzdHJ1Y3Qgc29ja2FkZHJfaW4gKnVzaW4gPSAoc3RydWN0IHNvY2thZGRy X2luICopIHVhZGRyOwpAQCAtMzksOCArMzksNiBAQCBpbnQgaXA0X2RhdGFncmFtX2Nvbm5lY3Qo c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCiAK IAlza19kc3RfcmVzZXQoc2spOwogCi0JbG9ja19zb2NrKHNrKTsKLQogCW9pZiA9IHNrLT5za19i b3VuZF9kZXZfaWY7CiAJc2FkZHIgPSBpbmV0LT5pbmV0X3NhZGRyOwogCWlmIChpcHY0X2lzX211 bHRpY2FzdCh1c2luLT5zaW5fYWRkci5zX2FkZHIpKSB7CkBAIC04MSw3ICs3OSwxNyBAQCBpbnQg aXA0X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVh ZGRyLCBpbnQgYWRkcl9sZW4pCiAJc2tfZHN0X3NldChzaywgJnJ0LT5kc3QpOwogCWVyciA9IDA7 CiBvdXQ6Ci0JcmVsZWFzZV9zb2NrKHNrKTsKIAlyZXR1cm4gZXJyOwogfQorRVhQT1JUX1NZTUJP TChfX2lwNF9kYXRhZ3JhbV9jb25uZWN0KTsKKworaW50IGlwNF9kYXRhZ3JhbV9jb25uZWN0KHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQorewor CWludCByZXM7CisKKwlsb2NrX3NvY2soc2spOworCXJlcyA9IF9faXA0X2RhdGFncmFtX2Nvbm5l Y3Qoc2ssIHVhZGRyLCBhZGRyX2xlbik7CisJcmVsZWFzZV9zb2NrKHNrKTsKKwlyZXR1cm4gcmVz OworfQogRVhQT1JUX1NZTUJPTChpcDRfZGF0YWdyYW1fY29ubmVjdCk7CmRpZmYgLS1naXQgYS9u ZXQvaXB2Ni9NYWtlZmlsZSBiL25ldC9pcHY2L01ha2VmaWxlCmluZGV4IDRiMjBkNTYuLjhiMjVm YmIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L01ha2VmaWxlCisrKyBiL25ldC9pcHY2L01ha2VmaWxl CkBAIC0zNyw2ICszNyw3IEBAIG9iai0kKENPTkZJR19ORVRGSUxURVIpCSs9IG5ldGZpbHRlci8K IG9iai0kKENPTkZJR19JUFY2X1NJVCkgKz0gc2l0Lm8KIG9iai0kKENPTkZJR19JUFY2X1RVTk5F TCkgKz0gaXA2X3R1bm5lbC5vCiAKLW9iai15ICs9IGFkZHJjb25mX2NvcmUubyBleHRoZHJzX2Nv cmUubyBvdXRwdXRfY29yZS5vCitvYmoteSArPSBhZGRyY29uZl9jb3JlLm8gZXh0aGRyc19jb3Jl Lm8KK29iai0kKENPTkZJR19JTkVUKSArPSBvdXRwdXRfY29yZS5vCiAKIG9iai0kKHN1YnN0IG0s eSwkKENPTkZJR19JUFY2KSkgKz0gaW5ldDZfaGFzaHRhYmxlcy5vCmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9hZGRyY29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwppbmRleCAzYWZkZDc4Li4wMDY4 NjdkIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJj b25mLmMKQEAgLTQzMjEsNiArNDMyMSwyMSBAQCBpbnQgYWRkcmNvbmZfc3lzY3RsX2ZvcndhcmQo Y3RsX3RhYmxlICpjdGwsIGludCB3cml0ZSwKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMKK2lu dCBhZGRyY29uZl9zeXNjdGxfbXR1KHN0cnVjdCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlLAor CQkJdm9pZCBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCit7CisJ c3RydWN0IGluZXQ2X2RldiAqaWRldiA9IGN0bC0+ZXh0cmExOworCWludCBtaW5fbXR1ID0gSVBW Nl9NSU5fTVRVOworCXN0cnVjdCBjdGxfdGFibGUgbGN0bDsKKworCWxjdGwgPSAqY3RsOworCWxj dGwuZXh0cmExID0gJm1pbl9tdHU7CisJbGN0bC5leHRyYTIgPSBpZGV2ID8gJmlkZXYtPmRldi0+ bXR1IDogTlVMTDsKKworCXJldHVybiBwcm9jX2RvaW50dmVjX21pbm1heCgmbGN0bCwgd3JpdGUs IGJ1ZmZlciwgbGVucCwgcHBvcyk7Cit9CisKIHN0YXRpYyB2b2lkIGRldl9kaXNhYmxlX2NoYW5n ZShzdHJ1Y3QgaW5ldDZfZGV2ICppZGV2KQogewogCWlmICghaWRldiB8fCAhaWRldi0+ZGV2KQpA QCAtNDQyMSw3ICs0NDM2LDcgQEAgc3RhdGljIHN0cnVjdCBhZGRyY29uZl9zeXNjdGxfdGFibGUK IAkJCS5kYXRhCQk9ICZpcHY2X2RldmNvbmYubXR1NiwKIAkJCS5tYXhsZW4JCT0gc2l6ZW9mKGlu dCksCiAJCQkubW9kZQkJPSAwNjQ0LAotCQkJLnByb2NfaGFuZGxlcgk9IHByb2NfZG9pbnR2ZWMs CisJCQkucHJvY19oYW5kbGVyCT0gYWRkcmNvbmZfc3lzY3RsX210dSwKIAkJfSwKIAkJewogCQkJ LnByb2NuYW1lCT0gImFjY2VwdF9yYSIsCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9kYXRhZ3JhbS5j IGIvbmV0L2lwdjYvZGF0YWdyYW0uYwppbmRleCAzMzcxOWI3Li42N2YzNjMyIDEwMDY0NAotLS0g YS9uZXQvaXB2Ni9kYXRhZ3JhbS5jCisrKyBiL25ldC9pcHY2L2RhdGFncmFtLmMKQEAgLTM4LDcg KzM4LDcgQEAgc3RhdGljIGlubGluZSBpbnQgaXB2Nl9tYXBwZWRfYWRkcl9hbnkoY29uc3Qgc3Ry dWN0IGluNl9hZGRyICphKQogCXJldHVybiAoaXB2Nl9hZGRyX3Y0bWFwcGVkKGEpICYmIChhLT5z Nl9hZGRyMzJbM10gPT0gMCkpOwogfQogCi1pbnQgaXA2X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCitzdGF0aWMg aW50IF9faXA2X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2Fk ZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCiB7CiAJc3RydWN0IHNvY2thZGRyX2luNgkqdXNpbiA9 IChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopIHVhZGRyOwogCXN0cnVjdCBpbmV0X3NvY2sgICAgICAJ KmluZXQgPSBpbmV0X3NrKHNrKTsKQEAgLTU0LDcgKzU0LDcgQEAgaW50IGlwNl9kYXRhZ3JhbV9j b25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJf bGVuKQogCWlmICh1c2luLT5zaW42X2ZhbWlseSA9PSBBRl9JTkVUKSB7CiAJCWlmIChfX2lwdjZf b25seV9zb2NrKHNrKSkKIAkJCXJldHVybiAtRUFGTk9TVVBQT1JUOwotCQllcnIgPSBpcDRfZGF0 YWdyYW1fY29ubmVjdChzaywgdWFkZHIsIGFkZHJfbGVuKTsKKwkJZXJyID0gX19pcDRfZGF0YWdy YW1fY29ubmVjdChzaywgdWFkZHIsIGFkZHJfbGVuKTsKIAkJZ290byBpcHY0X2Nvbm5lY3RlZDsK IAl9CiAKQEAgLTk3LDkgKzk3LDkgQEAgaW50IGlwNl9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBz b2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQogCQlzaW4uc2lu X2FkZHIuc19hZGRyID0gZGFkZHItPnM2X2FkZHIzMlszXTsKIAkJc2luLnNpbl9wb3J0ID0gdXNp bi0+c2luNl9wb3J0OwogCi0JCWVyciA9IGlwNF9kYXRhZ3JhbV9jb25uZWN0KHNrLAotCQkJCQkg ICAoc3RydWN0IHNvY2thZGRyKikgJnNpbiwKLQkJCQkJICAgc2l6ZW9mKHNpbikpOworCQllcnIg PSBfX2lwNF9kYXRhZ3JhbV9jb25uZWN0KHNrLAorCQkJCQkgICAgIChzdHJ1Y3Qgc29ja2FkZHIg KikgJnNpbiwKKwkJCQkJICAgICBzaXplb2Yoc2luKSk7CiAKIGlwdjRfY29ubmVjdGVkOgogCQlp ZiAoZXJyKQpAQCAtMjAzLDYgKzIwMywxNiBAQCBvdXQ6CiAJcmV0dXJuIGVycjsKIH0KIAoraW50 IGlwNl9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1 YWRkciwgaW50IGFkZHJfbGVuKQoreworCWludCByZXM7CisKKwlsb2NrX3NvY2soc2spOworCXJl cyA9IF9faXA2X2RhdGFncmFtX2Nvbm5lY3Qoc2ssIHVhZGRyLCBhZGRyX2xlbik7CisJcmVsZWFz ZV9zb2NrKHNrKTsKKwlyZXR1cm4gcmVzOworfQorCiB2b2lkIGlwdjZfaWNtcF9lcnJvcihzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIGludCBlcnIsCiAJCSAgICAgX19iZTE2 IHBvcnQsIHUzMiBpbmZvLCB1OCAqcGF5bG9hZCkKIHsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lw Nl9maWIuYyBiL25ldC9pcHY2L2lwNl9maWIuYwppbmRleCBhZDYyYWZjLi43ODVlNjJkIDEwMDY0 NAotLS0gYS9uZXQvaXB2Ni9pcDZfZmliLmMKKysrIGIvbmV0L2lwdjYvaXA2X2ZpYi5jCkBAIC0x NDczLDI3ICsxNDczLDI4IEBAIHN0YXRpYyBpbnQgZmliNl9hZ2Uoc3RydWN0IHJ0Nl9pbmZvICpy dCwgdm9pZCAqYXJnKQogCiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGZpYjZfZ2NfbG9jayk7CiAK LXZvaWQgZmliNl9ydW5fZ2ModW5zaWduZWQgbG9uZyBleHBpcmVzLCBzdHJ1Y3QgbmV0ICpuZXQp Cit2b2lkIGZpYjZfcnVuX2djKHVuc2lnbmVkIGxvbmcgZXhwaXJlcywgc3RydWN0IG5ldCAqbmV0 LCBib29sIGZvcmNlKQogewotCWlmIChleHBpcmVzICE9IH4wVUwpIHsKKwl1bnNpZ25lZCBsb25n IG5vdzsKKworCWlmIChmb3JjZSkgewogCQlzcGluX2xvY2tfYmgoJmZpYjZfZ2NfbG9jayk7Ci0J CWdjX2FyZ3MudGltZW91dCA9IGV4cGlyZXMgPyAoaW50KWV4cGlyZXMgOgotCQkJbmV0LT5pcHY2 LnN5c2N0bC5pcDZfcnRfZ2NfaW50ZXJ2YWw7Ci0JfSBlbHNlIHsKLQkJaWYgKCFzcGluX3RyeWxv Y2tfYmgoJmZpYjZfZ2NfbG9jaykpIHsKLQkJCW1vZF90aW1lcigmbmV0LT5pcHY2LmlwNl9maWJf dGltZXIsIGppZmZpZXMgKyBIWik7Ci0JCQlyZXR1cm47Ci0JCX0KLQkJZ2NfYXJncy50aW1lb3V0 ID0gbmV0LT5pcHY2LnN5c2N0bC5pcDZfcnRfZ2NfaW50ZXJ2YWw7CisJfSBlbHNlIGlmICghc3Bp bl90cnlsb2NrX2JoKCZmaWI2X2djX2xvY2spKSB7CisJCW1vZF90aW1lcigmbmV0LT5pcHY2Lmlw Nl9maWJfdGltZXIsIGppZmZpZXMgKyBIWik7CisJCXJldHVybjsKIAl9CisJZ2NfYXJncy50aW1l b3V0ID0gZXhwaXJlcyA/IChpbnQpZXhwaXJlcyA6CisJCQkgIG5ldC0+aXB2Ni5zeXNjdGwuaXA2 X3J0X2djX2ludGVydmFsOwogCiAJZ2NfYXJncy5tb3JlID0gaWNtcDZfZHN0X2djKCk7CiAKIAlm aWI2X2NsZWFuX2FsbChuZXQsIGZpYjZfYWdlLCAwLCBOVUxMKTsKKwlub3cgPSBqaWZmaWVzOwor CW5ldC0+aXB2Ni5pcDZfcnRfbGFzdF9nYyA9IG5vdzsKIAogCWlmIChnY19hcmdzLm1vcmUpCiAJ CW1vZF90aW1lcigmbmV0LT5pcHY2LmlwNl9maWJfdGltZXIsCi0JCQkgIHJvdW5kX2ppZmZpZXMo amlmZmllcworCQkJICByb3VuZF9qaWZmaWVzKG5vdwogCQkJCQkrIG5ldC0+aXB2Ni5zeXNjdGwu aXA2X3J0X2djX2ludGVydmFsKSk7CiAJZWxzZQogCQlkZWxfdGltZXIoJm5ldC0+aXB2Ni5pcDZf ZmliX3RpbWVyKTsKQEAgLTE1MDIsNyArMTUwMyw3IEBAIHZvaWQgZmliNl9ydW5fZ2ModW5zaWdu ZWQgbG9uZyBleHBpcmVzLCBzdHJ1Y3QgbmV0ICpuZXQpCiAKIHN0YXRpYyB2b2lkIGZpYjZfZ2Nf dGltZXJfY2IodW5zaWduZWQgbG9uZyBhcmcpCiB7Ci0JZmliNl9ydW5fZ2MoMCwgKHN0cnVjdCBu ZXQgKilhcmcpOworCWZpYjZfcnVuX2djKDAsIChzdHJ1Y3QgbmV0ICopYXJnLCB0cnVlKTsKIH0K IAogc3RhdGljIGludCBfX25ldF9pbml0IGZpYjZfbmV0X2luaXQoc3RydWN0IG5ldCAqbmV0KQpk aWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2bXIuYyBiL25ldC9pcHY2L2lwNm1yLmMKaW5kZXggZjk2 Yzk2Zi4uOTllZTg2ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2bXIuYworKysgYi9uZXQvaXB2 Ni9pcDZtci5jCkBAIC01NTAsNyArNTUwLDcgQEAgc3RhdGljIHZvaWQgaXBtcl9tZmNfc2VxX3N0 b3Aoc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpCiAKIAlpZiAoaXQtPmNhY2hlID09ICZt cnQtPm1mYzZfdW5yZXNfcXVldWUpCiAJCXNwaW5fdW5sb2NrX2JoKCZtZmNfdW5yZXNfbG9jayk7 Ci0JZWxzZSBpZiAoaXQtPmNhY2hlID09IG1ydC0+bWZjNl9jYWNoZV9hcnJheSkKKwllbHNlIGlm IChpdC0+Y2FjaGUgPT0gJm1ydC0+bWZjNl9jYWNoZV9hcnJheVtpdC0+Y3RdKQogCQlyZWFkX3Vu bG9jaygmbXJ0X2xvY2spOwogfQogCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZGlzYy5jIGIvbmV0 L2lwdjYvbmRpc2MuYwppbmRleCA4ODRkNDVmLi4zOTgzNmRhIDEwMDY0NAotLS0gYS9uZXQvaXB2 Ni9uZGlzYy5jCisrKyBiL25ldC9pcHY2L25kaXNjLmMKQEAgLTE3NDMsMTEgKzE3NDMsMTEgQEAg c3RhdGljIGludCBuZGlzY19uZXRkZXZfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp0aGlz LCB1bnNpZ25lZCBsb25nIGV2ZW50LAogCXN3aXRjaCAoZXZlbnQpIHsKIAljYXNlIE5FVERFVl9D SEFOR0VBRERSOgogCQluZWlnaF9jaGFuZ2VhZGRyKCZuZF90YmwsIGRldik7Ci0JCWZpYjZfcnVu X2djKH4wVUwsIG5ldCk7CisJCWZpYjZfcnVuX2djKDAsIG5ldCwgZmFsc2UpOwogCQlicmVhazsK IAljYXNlIE5FVERFVl9ET1dOOgogCQluZWlnaF9pZmRvd24oJm5kX3RibCwgZGV2KTsKLQkJZmli Nl9ydW5fZ2MofjBVTCwgbmV0KTsKKwkJZmliNl9ydW5fZ2MoMCwgbmV0LCBmYWxzZSk7CiAJCWJy ZWFrOwogCWNhc2UgTkVUREVWX05PVElGWV9QRUVSUzoKIAkJbmRpc2Nfc2VuZF91bnNvbF9uYShk ZXYpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMKaW5k ZXggZDg5ZDFhNi4uM2E4Nzc2ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9u ZXQvaXB2Ni9yb3V0ZS5jCkBAIC0xMTU5LDcgKzExNTksNiBAQCBzdGF0aWMgdm9pZCBpY21wNl9j bGVhbl9hbGwoaW50ICgqZnVuYykoc3RydWN0IHJ0Nl9pbmZvICpydCwgdm9pZCAqYXJnKSwKIAog c3RhdGljIGludCBpcDZfZHN0X2djKHN0cnVjdCBkc3Rfb3BzICpvcHMpCiB7Ci0JdW5zaWduZWQg bG9uZyBub3cgPSBqaWZmaWVzOwogCXN0cnVjdCBuZXQgKm5ldCA9IGNvbnRhaW5lcl9vZihvcHMs IHN0cnVjdCBuZXQsIGlwdjYuaXA2X2RzdF9vcHMpOwogCWludCBydF9taW5faW50ZXJ2YWwgPSBu ZXQtPmlwdjYuc3lzY3RsLmlwNl9ydF9nY19taW5faW50ZXJ2YWw7CiAJaW50IHJ0X21heF9zaXpl ID0gbmV0LT5pcHY2LnN5c2N0bC5pcDZfcnRfbWF4X3NpemU7CkBAIC0xMTY5LDEzICsxMTY4LDEy IEBAIHN0YXRpYyBpbnQgaXA2X2RzdF9nYyhzdHJ1Y3QgZHN0X29wcyAqb3BzKQogCWludCBlbnRy aWVzOwogCiAJZW50cmllcyA9IGRzdF9lbnRyaWVzX2dldF9mYXN0KG9wcyk7Ci0JaWYgKHRpbWVf YWZ0ZXIocnRfbGFzdF9nYyArIHJ0X21pbl9pbnRlcnZhbCwgbm93KSAmJgorCWlmICh0aW1lX2Fm dGVyKHJ0X2xhc3RfZ2MgKyBydF9taW5faW50ZXJ2YWwsIGppZmZpZXMpICYmCiAJICAgIGVudHJp ZXMgPD0gcnRfbWF4X3NpemUpCiAJCWdvdG8gb3V0OwogCiAJbmV0LT5pcHY2LmlwNl9ydF9nY19l eHBpcmUrKzsKLQlmaWI2X3J1bl9nYyhuZXQtPmlwdjYuaXA2X3J0X2djX2V4cGlyZSwgbmV0KTsK LQluZXQtPmlwdjYuaXA2X3J0X2xhc3RfZ2MgPSBub3c7CisJZmliNl9ydW5fZ2MobmV0LT5pcHY2 LmlwNl9ydF9nY19leHBpcmUsIG5ldCwgZW50cmllcyA+IHJ0X21heF9zaXplKTsKIAllbnRyaWVz ID0gZHN0X2VudHJpZXNfZ2V0X3Nsb3cob3BzKTsKIAlpZiAoZW50cmllcyA8IG9wcy0+Z2NfdGhy ZXNoKQogCQluZXQtPmlwdjYuaXA2X3J0X2djX2V4cGlyZSA9IHJ0X2djX3RpbWVvdXQ+PjE7CkBA IC0yNzI2LDcgKzI3MjQsNyBAQCBpbnQgaXB2Nl9zeXNjdGxfcnRjYWNoZV9mbHVzaChjdGxfdGFi bGUgKmN0bCwgaW50IHdyaXRlLAogCW5ldCA9IChzdHJ1Y3QgbmV0ICopY3RsLT5leHRyYTE7CiAJ ZGVsYXkgPSBuZXQtPmlwdjYuc3lzY3RsLmZsdXNoX2RlbGF5OwogCXByb2NfZG9pbnR2ZWMoY3Rs LCB3cml0ZSwgYnVmZmVyLCBsZW5wLCBwcG9zKTsKLQlmaWI2X3J1bl9nYyhkZWxheSA8PSAwID8g fjBVTCA6ICh1bnNpZ25lZCBsb25nKWRlbGF5LCBuZXQpOworCWZpYjZfcnVuX2djKGRlbGF5IDw9 IDAgPyAwIDogKHVuc2lnbmVkIGxvbmcpZGVsYXksIG5ldCwgZGVsYXkgPiAwKTsKIAlyZXR1cm4g MDsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2tleS9hZl9rZXkuYyBiL25ldC9rZXkvYWZfa2V5LmMK aW5kZXggZGM4ZDdlZi4uODYzNmYxMCAxMDA2NDQKLS0tIGEvbmV0L2tleS9hZl9rZXkuYworKysg Yi9uZXQva2V5L2FmX2tleS5jCkBAIC0yMjAsNyArMjIwLDcgQEAgc3RhdGljIGludCBwZmtleV9i cm9hZGNhc3Rfb25lKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBza19idWZmICoqc2tiMiwK ICNkZWZpbmUgQlJPQURDQVNUX09ORQkJMQogI2RlZmluZSBCUk9BRENBU1RfUkVHSVNURVJFRAky CiAjZGVmaW5lIEJST0FEQ0FTVF9QUk9NSVNDX09OTFkJNAotc3RhdGljIGludCBwZmtleV9icm9h ZGNhc3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgZ2ZwX3QgYWxsb2NhdGlvbiwKK3N0YXRpYyBpbnQg cGZrZXlfYnJvYWRjYXN0KHN0cnVjdCBza19idWZmICpza2IsCiAJCQkgICBpbnQgYnJvYWRjYXN0 X2ZsYWdzLCBzdHJ1Y3Qgc29jayAqb25lX3NrLAogCQkJICAgc3RydWN0IG5ldCAqbmV0KQogewpA QCAtMjQ2LDcgKzI0Niw3IEBAIHN0YXRpYyBpbnQgcGZrZXlfYnJvYWRjYXN0KHN0cnVjdCBza19i dWZmICpza2IsIGdmcF90IGFsbG9jYXRpb24sCiAJCSAqIHNvY2tldC4KIAkJICovCiAJCWlmIChw ZmstPnByb21pc2MpCi0JCQlwZmtleV9icm9hZGNhc3Rfb25lKHNrYiwgJnNrYjIsIGFsbG9jYXRp b24sIHNrKTsKKwkJCXBma2V5X2Jyb2FkY2FzdF9vbmUoc2tiLCAmc2tiMiwgR0ZQX0FUT01JQywg c2spOwogCiAJCS8qIHRoZSBleGFjdCB0YXJnZXQgd2lsbCBiZSBwcm9jZXNzZWQgbGF0ZXIgKi8K IAkJaWYgKHNrID09IG9uZV9zaykKQEAgLTI2MSw3ICsyNjEsNyBAQCBzdGF0aWMgaW50IHBma2V5 X2Jyb2FkY2FzdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBnZnBfdCBhbGxvY2F0aW9uLAogCQkJCWNv bnRpbnVlOwogCQl9CiAKLQkJZXJyMiA9IHBma2V5X2Jyb2FkY2FzdF9vbmUoc2tiLCAmc2tiMiwg YWxsb2NhdGlvbiwgc2spOworCQllcnIyID0gcGZrZXlfYnJvYWRjYXN0X29uZShza2IsICZza2Iy LCBHRlBfQVRPTUlDLCBzayk7CiAKIAkJLyogRXJyb3IgaXMgY2xlYXJlIGFmdGVyIHN1Y2NlY2Z1 bCBzZW5kaW5nIHRvIGF0IGxlYXN0IG9uZQogCQkgKiByZWdpc3RlcmVkIEtNICovCkBAIC0yNzEs NyArMjcxLDcgQEAgc3RhdGljIGludCBwZmtleV9icm9hZGNhc3Qoc3RydWN0IHNrX2J1ZmYgKnNr YiwgZ2ZwX3QgYWxsb2NhdGlvbiwKIAlyY3VfcmVhZF91bmxvY2soKTsKIAogCWlmIChvbmVfc2sg IT0gTlVMTCkKLQkJZXJyID0gcGZrZXlfYnJvYWRjYXN0X29uZShza2IsICZza2IyLCBhbGxvY2F0 aW9uLCBvbmVfc2spOworCQllcnIgPSBwZmtleV9icm9hZGNhc3Rfb25lKHNrYiwgJnNrYjIsIEdG UF9LRVJORUwsIG9uZV9zayk7CiAKIAlrZnJlZV9za2Ioc2tiMik7CiAJa2ZyZWVfc2tiKHNrYik7 CkBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGljIGludCBwZmtleV9kb19kdW1wKHN0cnVjdCBwZmtl eV9zb2NrICpwZmspCiAJCWhkciA9IChzdHJ1Y3Qgc2FkYl9tc2cgKikgcGZrLT5kdW1wLnNrYi0+ ZGF0YTsKIAkJaGRyLT5zYWRiX21zZ19zZXEgPSAwOwogCQloZHItPnNhZGJfbXNnX2Vycm5vID0g cmM7Ci0JCXBma2V5X2Jyb2FkY2FzdChwZmstPmR1bXAuc2tiLCBHRlBfQVRPTUlDLCBCUk9BRENB U1RfT05FLAorCQlwZmtleV9icm9hZGNhc3QocGZrLT5kdW1wLnNrYiwgQlJPQURDQVNUX09ORSwK IAkJCQkmcGZrLT5zaywgc29ja19uZXQoJnBmay0+c2spKTsKIAkJcGZrLT5kdW1wLnNrYiA9IE5V TEw7CiAJfQpAQCAtMzM1LDcgKzMzNSw3IEBAIHN0YXRpYyBpbnQgcGZrZXlfZXJyb3IoY29uc3Qg c3RydWN0IHNhZGJfbXNnICpvcmlnLCBpbnQgZXJyLCBzdHJ1Y3Qgc29jayAqc2spCiAJaGRyLT5z YWRiX21zZ19sZW4gPSAoc2l6ZW9mKHN0cnVjdCBzYWRiX21zZykgLwogCQkJICAgICBzaXplb2Yo dWludDY0X3QpKTsKIAotCXBma2V5X2Jyb2FkY2FzdChza2IsIEdGUF9LRVJORUwsIEJST0FEQ0FT VF9PTkUsIHNrLCBzb2NrX25ldChzaykpOworCXBma2V5X2Jyb2FkY2FzdChza2IsIEJST0FEQ0FT VF9PTkUsIHNrLCBzb2NrX25ldChzaykpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMzYxLDcgKzEz NjEsNyBAQCBzdGF0aWMgaW50IHBma2V5X2dldHNwaShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBz a19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBzYWRiXwogCiAJeGZybV9zdGF0ZV9wdXQoeCk7CiAK LQlwZmtleV9icm9hZGNhc3QocmVzcF9za2IsIEdGUF9LRVJORUwsIEJST0FEQ0FTVF9PTkUsIHNr LCBuZXQpOworCXBma2V5X2Jyb2FkY2FzdChyZXNwX3NrYiwgQlJPQURDQVNUX09ORSwgc2ssIG5l dCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE0NDksNyArMTQ0OSw3IEBAIHN0YXRpYyBpbnQga2V5 X25vdGlmeV9zYShzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgY29uc3Qgc3RydWN0IGttX2V2ZW50ICpj KQogCWhkci0+c2FkYl9tc2dfc2VxID0gYy0+c2VxOwogCWhkci0+c2FkYl9tc2dfcGlkID0gYy0+ cGlkOwogCi0JcGZrZXlfYnJvYWRjYXN0KHNrYiwgR0ZQX0FUT01JQywgQlJPQURDQVNUX0FMTCwg TlVMTCwgeHNfbmV0KHgpKTsKKwlwZmtleV9icm9hZGNhc3Qoc2tiLCBCUk9BRENBU1RfQUxMLCBO VUxMLCB4c19uZXQoeCkpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNTY2LDcgKzE1NjYsNyBAQCBz dGF0aWMgaW50IHBma2V5X2dldChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2Is IGNvbnN0IHN0cnVjdCBzYWRiX21zZwogCW91dF9oZHItPnNhZGJfbXNnX3Jlc2VydmVkID0gMDsK IAlvdXRfaGRyLT5zYWRiX21zZ19zZXEgPSBoZHItPnNhZGJfbXNnX3NlcTsKIAlvdXRfaGRyLT5z YWRiX21zZ19waWQgPSBoZHItPnNhZGJfbXNnX3BpZDsKLQlwZmtleV9icm9hZGNhc3Qob3V0X3Nr YiwgR0ZQX0FUT01JQywgQlJPQURDQVNUX09ORSwgc2ssIHNvY2tfbmV0KHNrKSk7CisJcGZrZXlf YnJvYWRjYXN0KG91dF9za2IsIEJST0FEQ0FTVF9PTkUsIHNrLCBzb2NrX25ldChzaykpOwogCiAJ cmV0dXJuIDA7CiB9CkBAIC0xNjY3LDcgKzE2NjcsNyBAQCBzdGF0aWMgaW50IHBma2V5X3JlZ2lz dGVyKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHNh ZAogCQlyZXR1cm4gLUVOT0JVRlM7CiAJfQogCi0JcGZrZXlfYnJvYWRjYXN0KHN1cHBfc2tiLCBH RlBfS0VSTkVMLCBCUk9BRENBU1RfUkVHSVNURVJFRCwgc2ssIHNvY2tfbmV0KHNrKSk7CisJcGZr ZXlfYnJvYWRjYXN0KHN1cHBfc2tiLCBCUk9BRENBU1RfUkVHSVNURVJFRCwgc2ssIHNvY2tfbmV0 KHNrKSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE2ODYsNyArMTY4Niw3IEBAIHN0YXRpYyBpbnQg dW5pY2FzdF9mbHVzaF9yZXNwKHN0cnVjdCBzb2NrICpzaywgY29uc3Qgc3RydWN0IHNhZGJfbXNn ICppaGRyKQogCWhkci0+c2FkYl9tc2dfZXJybm8gPSAodWludDhfdCkgMDsKIAloZHItPnNhZGJf bXNnX2xlbiA9IChzaXplb2Yoc3RydWN0IHNhZGJfbXNnKSAvIHNpemVvZih1aW50NjRfdCkpOwog Ci0JcmV0dXJuIHBma2V5X2Jyb2FkY2FzdChza2IsIEdGUF9BVE9NSUMsIEJST0FEQ0FTVF9PTkUs IHNrLCBzb2NrX25ldChzaykpOworCXJldHVybiBwZmtleV9icm9hZGNhc3Qoc2tiLCBCUk9BRENB U1RfT05FLCBzaywgc29ja19uZXQoc2spKTsKIH0KIAogc3RhdGljIGludCBrZXlfbm90aWZ5X3Nh X2ZsdXNoKGNvbnN0IHN0cnVjdCBrbV9ldmVudCAqYykKQEAgLTE3MDcsNyArMTcwNyw3IEBAIHN0 YXRpYyBpbnQga2V5X25vdGlmeV9zYV9mbHVzaChjb25zdCBzdHJ1Y3Qga21fZXZlbnQgKmMpCiAJ aGRyLT5zYWRiX21zZ19sZW4gPSAoc2l6ZW9mKHN0cnVjdCBzYWRiX21zZykgLyBzaXplb2YodWlu dDY0X3QpKTsKIAloZHItPnNhZGJfbXNnX3Jlc2VydmVkID0gMDsKIAotCXBma2V5X2Jyb2FkY2Fz dChza2IsIEdGUF9BVE9NSUMsIEJST0FEQ0FTVF9BTEwsIE5VTEwsIGMtPm5ldCk7CisJcGZrZXlf YnJvYWRjYXN0KHNrYiwgQlJPQURDQVNUX0FMTCwgTlVMTCwgYy0+bmV0KTsKIAogCXJldHVybiAw OwogfQpAQCAtMTc2OCw3ICsxNzY4LDcgQEAgc3RhdGljIGludCBkdW1wX3NhKHN0cnVjdCB4ZnJt X3N0YXRlICp4LCBpbnQgY291bnQsIHZvaWQgKnB0cikKIAlvdXRfaGRyLT5zYWRiX21zZ19waWQg PSBwZmstPmR1bXAubXNnX3BpZDsKIAogCWlmIChwZmstPmR1bXAuc2tiKQotCQlwZmtleV9icm9h ZGNhc3QocGZrLT5kdW1wLnNrYiwgR0ZQX0FUT01JQywgQlJPQURDQVNUX09ORSwKKwkJcGZrZXlf YnJvYWRjYXN0KHBmay0+ZHVtcC5za2IsIEJST0FEQ0FTVF9PTkUsCiAJCQkJJnBmay0+c2ssIHNv Y2tfbmV0KCZwZmstPnNrKSk7CiAJcGZrLT5kdW1wLnNrYiA9IG91dF9za2I7CiAKQEAgLTE4Mjks NyArMTgyOSw3IEBAIHN0YXRpYyBpbnQgcGZrZXlfcHJvbWlzYyhzdHJ1Y3Qgc29jayAqc2ssIHN0 cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBzYWRiCiAJCW5ld19oZHItPnNhZGJfbXNn X2Vycm5vID0gMDsKIAl9CiAKLQlwZmtleV9icm9hZGNhc3Qoc2tiLCBHRlBfS0VSTkVMLCBCUk9B RENBU1RfQUxMLCBOVUxMLCBzb2NrX25ldChzaykpOworCXBma2V5X2Jyb2FkY2FzdChza2IsIEJS T0FEQ0FTVF9BTEwsIE5VTEwsIHNvY2tfbmV0KHNrKSk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTIx NjAsNyArMjE2MCw3IEBAIHN0YXRpYyBpbnQga2V5X25vdGlmeV9wb2xpY3koc3RydWN0IHhmcm1f cG9saWN5ICp4cCwgaW50IGRpciwgY29uc3Qgc3RydWN0IGttX2V2CiAJb3V0X2hkci0+c2FkYl9t c2dfZXJybm8gPSAwOwogCW91dF9oZHItPnNhZGJfbXNnX3NlcSA9IGMtPnNlcTsKIAlvdXRfaGRy LT5zYWRiX21zZ19waWQgPSBjLT5waWQ7Ci0JcGZrZXlfYnJvYWRjYXN0KG91dF9za2IsIEdGUF9B VE9NSUMsIEJST0FEQ0FTVF9BTEwsIE5VTEwsIHhwX25ldCh4cCkpOworCXBma2V5X2Jyb2FkY2Fz dChvdXRfc2tiLCBCUk9BRENBU1RfQUxMLCBOVUxMLCB4cF9uZXQoeHApKTsKIAlyZXR1cm4gMDsK IAogfQpAQCAtMjM4Niw3ICsyMzg2LDcgQEAgc3RhdGljIGludCBrZXlfcG9sX2dldF9yZXNwKHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IHhmcm1fcG9saWN5ICp4cCwgY29uc3Qgc3RydWMKIAlvdXRf aGRyLT5zYWRiX21zZ19lcnJubyA9IDA7CiAJb3V0X2hkci0+c2FkYl9tc2dfc2VxID0gaGRyLT5z YWRiX21zZ19zZXE7CiAJb3V0X2hkci0+c2FkYl9tc2dfcGlkID0gaGRyLT5zYWRiX21zZ19waWQ7 Ci0JcGZrZXlfYnJvYWRjYXN0KG91dF9za2IsIEdGUF9BVE9NSUMsIEJST0FEQ0FTVF9PTkUsIHNr LCB4cF9uZXQoeHApKTsKKwlwZmtleV9icm9hZGNhc3Qob3V0X3NrYiwgQlJPQURDQVNUX09ORSwg c2ssIHhwX25ldCh4cCkpOwogCWVyciA9IDA7CiAKIG91dDoKQEAgLTI2MzksNyArMjYzOSw3IEBA IHN0YXRpYyBpbnQgZHVtcF9zcChzdHJ1Y3QgeGZybV9wb2xpY3kgKnhwLCBpbnQgZGlyLCBpbnQg Y291bnQsIHZvaWQgKnB0cikKIAlvdXRfaGRyLT5zYWRiX21zZ19waWQgPSBwZmstPmR1bXAubXNn X3BpZDsKIAogCWlmIChwZmstPmR1bXAuc2tiKQotCQlwZmtleV9icm9hZGNhc3QocGZrLT5kdW1w LnNrYiwgR0ZQX0FUT01JQywgQlJPQURDQVNUX09ORSwKKwkJcGZrZXlfYnJvYWRjYXN0KHBmay0+ ZHVtcC5za2IsIEJST0FEQ0FTVF9PTkUsCiAJCQkJJnBmay0+c2ssIHNvY2tfbmV0KCZwZmstPnNr KSk7CiAJcGZrLT5kdW1wLnNrYiA9IG91dF9za2I7CiAKQEAgLTI2OTAsNyArMjY5MCw3IEBAIHN0 YXRpYyBpbnQga2V5X25vdGlmeV9wb2xpY3lfZmx1c2goY29uc3Qgc3RydWN0IGttX2V2ZW50ICpj KQogCWhkci0+c2FkYl9tc2dfc2F0eXBlID0gU0FEQl9TQVRZUEVfVU5TUEVDOwogCWhkci0+c2Fk Yl9tc2dfbGVuID0gKHNpemVvZihzdHJ1Y3Qgc2FkYl9tc2cpIC8gc2l6ZW9mKHVpbnQ2NF90KSk7 CiAJaGRyLT5zYWRiX21zZ19yZXNlcnZlZCA9IDA7Ci0JcGZrZXlfYnJvYWRjYXN0KHNrYl9vdXQs IEdGUF9BVE9NSUMsIEJST0FEQ0FTVF9BTEwsIE5VTEwsIGMtPm5ldCk7CisJcGZrZXlfYnJvYWRj YXN0KHNrYl9vdXQsIEJST0FEQ0FTVF9BTEwsIE5VTEwsIGMtPm5ldCk7CiAJcmV0dXJuIDA7CiAK IH0KQEAgLTI3NTYsNyArMjc1Niw3IEBAIHN0YXRpYyBpbnQgcGZrZXlfcHJvY2VzcyhzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBzYWRiCiAJdm9pZCAq ZXh0X2hkcnNbU0FEQl9FWFRfTUFYXTsKIAlpbnQgZXJyOwogCi0JcGZrZXlfYnJvYWRjYXN0KHNr Yl9jbG9uZShza2IsIEdGUF9LRVJORUwpLCBHRlBfS0VSTkVMLAorCXBma2V5X2Jyb2FkY2FzdChz a2JfY2xvbmUoc2tiLCBHRlBfS0VSTkVMKSwKIAkJCUJST0FEQ0FTVF9QUk9NSVNDX09OTFksIE5V TEwsIHNvY2tfbmV0KHNrKSk7CiAKIAltZW1zZXQoZXh0X2hkcnMsIDAsIHNpemVvZihleHRfaGRy cykpOwpAQCAtMjk2Miw3ICsyOTYyLDcgQEAgc3RhdGljIGludCBrZXlfbm90aWZ5X3NhX2V4cGly ZShzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgY29uc3Qgc3RydWN0IGttX2V2ZW50ICpjKQogCW91dF9o ZHItPnNhZGJfbXNnX3NlcSA9IDA7CiAJb3V0X2hkci0+c2FkYl9tc2dfcGlkID0gMDsKIAotCXBm a2V5X2Jyb2FkY2FzdChvdXRfc2tiLCBHRlBfQVRPTUlDLCBCUk9BRENBU1RfUkVHSVNURVJFRCwg TlVMTCwgeHNfbmV0KHgpKTsKKwlwZmtleV9icm9hZGNhc3Qob3V0X3NrYiwgQlJPQURDQVNUX1JF R0lTVEVSRUQsIE5VTEwsIHhzX25ldCh4KSk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTMxMzQsNyAr MzEzNCw3IEBAIHN0YXRpYyBpbnQgcGZrZXlfc2VuZF9hY3F1aXJlKHN0cnVjdCB4ZnJtX3N0YXRl ICp4LCBzdHJ1Y3QgeGZybV90bXBsICp0LCBzdHJ1Y3QKIAkJICAgICAgIHhmcm1fY3R4LT5jdHhf bGVuKTsKIAl9CiAKLQlyZXR1cm4gcGZrZXlfYnJvYWRjYXN0KHNrYiwgR0ZQX0FUT01JQywgQlJP QURDQVNUX1JFR0lTVEVSRUQsIE5VTEwsIHhzX25ldCh4KSk7CisJcmV0dXJuIHBma2V5X2Jyb2Fk Y2FzdChza2IsIEJST0FEQ0FTVF9SRUdJU1RFUkVELCBOVUxMLCB4c19uZXQoeCkpOwogfQogCiBz dGF0aWMgc3RydWN0IHhmcm1fcG9saWN5ICpwZmtleV9jb21waWxlX3BvbGljeShzdHJ1Y3Qgc29j ayAqc2ssIGludCBvcHQsCkBAIC0zMzMyLDcgKzMzMzIsNyBAQCBzdGF0aWMgaW50IHBma2V5X3Nl bmRfbmV3X21hcHBpbmcoc3RydWN0IHhmcm1fc3RhdGUgKngsIHhmcm1fYWRkcmVzc190ICppcGFk ZHIsCiAJbl9wb3J0LT5zYWRiX3hfbmF0X3RfcG9ydF9wb3J0ID0gc3BvcnQ7CiAJbl9wb3J0LT5z YWRiX3hfbmF0X3RfcG9ydF9yZXNlcnZlZCA9IDA7CiAKLQlyZXR1cm4gcGZrZXlfYnJvYWRjYXN0 KHNrYiwgR0ZQX0FUT01JQywgQlJPQURDQVNUX1JFR0lTVEVSRUQsIE5VTEwsIHhzX25ldCh4KSk7 CisJcmV0dXJuIHBma2V5X2Jyb2FkY2FzdChza2IsIEJST0FEQ0FTVF9SRUdJU1RFUkVELCBOVUxM LCB4c19uZXQoeCkpOwogfQogCiAjaWZkZWYgQ09ORklHX05FVF9LRVlfTUlHUkFURQpAQCAtMzUy NCw3ICszNTI0LDcgQEAgc3RhdGljIGludCBwZmtleV9zZW5kX21pZ3JhdGUoY29uc3Qgc3RydWN0 IHhmcm1fc2VsZWN0b3IgKnNlbCwgdTggZGlyLCB1OCB0eXBlLAogCX0KIAogCS8qIGJyb2FkY2Fz dCBtaWdyYXRlIG1lc3NhZ2UgdG8gc29ja2V0cyAqLwotCXBma2V5X2Jyb2FkY2FzdChza2IsIEdG UF9BVE9NSUMsIEJST0FEQ0FTVF9BTEwsIE5VTEwsICZpbml0X25ldCk7CisJcGZrZXlfYnJvYWRj YXN0KHNrYiwgQlJPQURDQVNUX0FMTCwgTlVMTCwgJmluaXRfbmV0KTsKIAogCXJldHVybiAwOwog CmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvdHguYyBiL25ldC9tYWM4MDIxMS90eC5jCmluZGV4 IDY1ZGYyOTYuLjkxODI2YjYgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS90eC5jCisrKyBiL25l dC9tYWM4MDIxMS90eC5jCkBAIC0yNzgsOSArMjc4LDYgQEAgaWVlZTgwMjExX3R4X2hfY2hlY2tf YXNzb2Moc3RydWN0IGllZWU4MDIxMV90eF9kYXRhICp0eCkKIAlpZiAodHgtPnNkYXRhLT52aWYu dHlwZSA9PSBOTDgwMjExX0lGVFlQRV9XRFMpCiAJCXJldHVybiBUWF9DT05USU5VRTsKIAotCWlm ICh0eC0+c2RhdGEtPnZpZi50eXBlID09IE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQpCi0JCXJl dHVybiBUWF9DT05USU5VRTsKLQogCWlmICh0eC0+ZmxhZ3MgJiBJRUVFODAyMTFfVFhfUFNfQlVG RkVSRUQpCiAJCXJldHVybiBUWF9DT05USU5VRTsKIApkaWZmIC0tZ2l0IGEvbmV0L3Jkcy9jb25u ZWN0aW9uLmMgYi9uZXQvcmRzL2Nvbm5lY3Rpb24uYwppbmRleCA5ZTA3Yzc1Li5iZTNlZWNkIDEw MDY0NAotLS0gYS9uZXQvcmRzL2Nvbm5lY3Rpb24uYworKysgYi9uZXQvcmRzL2Nvbm5lY3Rpb24u YwpAQCAtMTc4LDYgKzE3OCwxMiBAQCBzdGF0aWMgc3RydWN0IHJkc19jb25uZWN0aW9uICpfX3Jk c19jb25uX2NyZWF0ZShfX2JlMzIgbGFkZHIsIF9fYmUzMiBmYWRkciwKIAkJfQogCX0KIAorCWlm ICh0cmFucyA9PSBOVUxMKSB7CisJCWttZW1fY2FjaGVfZnJlZShyZHNfY29ubl9zbGFiLCBjb25u KTsKKwkJY29ubiA9IEVSUl9QVFIoLUVOT0RFVik7CisJCWdvdG8gb3V0OworCX0KKwogCWNvbm4t PmNfdHJhbnMgPSB0cmFuczsKIAogCXJldCA9IHRyYW5zLT5jb25uX2FsbG9jKGNvbm4sIGdmcCk7 CmRpZmYgLS1naXQgYS9uZXQvcmRzL2luZm8uYyBiL25ldC9yZHMvaW5mby5jCmluZGV4IGYxYzAx NmMuLmE0YWRiMzkgMTAwNjQ0Ci0tLSBhL25ldC9yZHMvaW5mby5jCisrKyBiL25ldC9yZHMvaW5m by5jCkBAIC0xNzYsNyArMTc2LDcgQEAgaW50IHJkc19pbmZvX2dldHNvY2tvcHQoc3RydWN0IHNv Y2tldCAqc29jaywgaW50IG9wdG5hbWUsIGNoYXIgX191c2VyICpvcHR2YWwsCiAKIAkvKiBjaGVj ayBmb3IgYWxsIGtpbmRzIG9mIHdyYXBwaW5nIGFuZCB0aGUgbGlrZSAqLwogCXN0YXJ0ID0gKHVu c2lnbmVkIGxvbmcpb3B0dmFsOwotCWlmIChsZW4gPCAwIHx8IGxlbiArIFBBR0VfU0laRSAtIDEg PCBsZW4gfHwgc3RhcnQgKyBsZW4gPCBzdGFydCkgeworCWlmIChsZW4gPCAwIHx8IGxlbiA+IElO VF9NQVggLSBQQUdFX1NJWkUgKyAxIHx8IHN0YXJ0ICsgbGVuIDwgc3RhcnQpIHsKIAkJcmV0ID0g LUVJTlZBTDsKIAkJZ290byBvdXQ7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvb3V0cHV0LmMg Yi9uZXQvc2N0cC9vdXRwdXQuYwppbmRleCA2ZDU2ZWVjLi5jM2I4NTQ5IDEwMDY0NAotLS0gYS9u ZXQvc2N0cC9vdXRwdXQuYworKysgYi9uZXQvc2N0cC9vdXRwdXQuYwpAQCAtNTg3LDkgKzU4Nyw3 IEBAIG91dDoKIAlyZXR1cm4gZXJyOwogbm9fcm91dGU6CiAJa2ZyZWVfc2tiKG5za2IpOwotCi0J aWYgKGFzb2MpCi0JCUlQX0lOQ19TVEFUUygmaW5pdF9uZXQsIElQU1RBVFNfTUlCX09VVE5PUk9V VEVTKTsKKwlJUF9JTkNfU1RBVFMoJmluaXRfbmV0LCBJUFNUQVRTX01JQl9PVVROT1JPVVRFUyk7 CiAKIAkvKiBGSVhNRTogUmV0dXJuaW5nIHRoZSAnZXJyJyB3aWxsIGVmZmVjdCBhbGwgdGhlIGFz c29jaWF0aW9ucwogCSAqIGFzc29jaWF0ZWQgd2l0aCBhIHNvY2tldCwgYWx0aG91Z2ggb25seSBv bmUgb2YgdGhlIHBhdGhzIG9mIHRoZQpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc21fc2lkZWVmZmVj dC5jIGIvbmV0L3NjdHAvc21fc2lkZWVmZmVjdC5jCmluZGV4IDc2Mzg4YjAuLjU4MWMwNmEgMTAw NjQ0Ci0tLSBhL25ldC9zY3RwL3NtX3NpZGVlZmZlY3QuYworKysgYi9uZXQvc2N0cC9zbV9zaWRl ZWZmZWN0LmMKQEAgLTY4MSw3ICs2ODEsNyBAQCBzdGF0aWMgdm9pZCBzY3RwX2NtZF90cmFuc3Bv cnRfb24oc2N0cF9jbWRfc2VxX3QgKmNtZHMsCiAJICogb3V0c3RhbmRpbmcgZGF0YSBhbmQgcmVs eSBvbiB0aGUgcmV0cmFuc21pc3Npb24gbGltaXQgYmUgcmVhY2hlZAogCSAqIHRvIHNodXRkb3du IHRoZSBhc3NvY2lhdGlvbi4KIAkgKi8KLQlpZiAodC0+YXNvYy0+c3RhdGUgIT0gU0NUUF9TVEFU RV9TSFVURE9XTl9QRU5ESU5HKQorCWlmICh0LT5hc29jLT5zdGF0ZSA8IFNDVFBfU1RBVEVfU0hV VERPV05fUEVORElORykKIAkJdC0+YXNvYy0+b3ZlcmFsbF9lcnJvcl9jb3VudCA9IDA7CiAKIAkv KiBDbGVhciB0aGUgaGJfc2VudCBmbGFnIHRvIHNpZ25hbCB0aGF0IHdlIGhhZCBhIGdvb2QKZGlm ZiAtLWdpdCBhL25ldC9zdW5ycGMveHBydHNvY2suYyBiL25ldC9zdW5ycGMveHBydHNvY2suYwpp bmRleCBkNzdhNGYwLi4zYTgyZmVjIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL3hwcnRzb2NrLmMK KysrIGIvbmV0L3N1bnJwYy94cHJ0c29jay5jCkBAIC04MTEsNiArODExLDcgQEAgc3RhdGljIHZv aWQgeHNfcmVzZXRfdHJhbnNwb3J0KHN0cnVjdCBzb2NrX3hwcnQgKnRyYW5zcG9ydCkKIHsKIAlz dHJ1Y3Qgc29ja2V0ICpzb2NrID0gdHJhbnNwb3J0LT5zb2NrOwogCXN0cnVjdCBzb2NrICpzayA9 IHRyYW5zcG9ydC0+aW5ldDsKKwlzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQgPSAmdHJhbnNwb3J0LT54 cHJ0OwogCiAJaWYgKHNrID09IE5VTEwpCiAJCXJldHVybjsKQEAgLTgyNCw2ICs4MjUsNyBAQCBz dGF0aWMgdm9pZCB4c19yZXNldF90cmFuc3BvcnQoc3RydWN0IHNvY2tfeHBydCAqdHJhbnNwb3J0 KQogCXNrLT5za191c2VyX2RhdGEgPSBOVUxMOwogCiAJeHNfcmVzdG9yZV9vbGRfY2FsbGJhY2tz KHRyYW5zcG9ydCwgc2spOworCXhwcnRfY2xlYXJfY29ubmVjdGVkKHhwcnQpOwogCXdyaXRlX3Vu bG9ja19iaCgmc2stPnNrX2NhbGxiYWNrX2xvY2spOwogCiAJc2stPnNrX25vX2NoZWNrID0gMDsK ZGlmZiAtLWdpdCBhL25ldC90aXBjL3NvY2tldC5jIGIvbmV0L3RpcGMvc29ja2V0LmMKaW5kZXgg MDU4OTQxZS4uNTgwZWNmMiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvc29ja2V0LmMKKysrIGIvbmV0 L3RpcGMvc29ja2V0LmMKQEAgLTE1NDEsNiArMTU0MSw4IEBAIHN0YXRpYyBpbnQgYWNjZXB0KHN0 cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrZXQgKm5ld19zb2NrLCBpbnQgZmxhZ3MpCiAJ CXUzMiBuZXdfcmVmID0gbmV3X3Rwb3J0LT5yZWY7CiAJCXN0cnVjdCB0aXBjX21zZyAqbXNnID0g YnVmX21zZyhidWYpOwogCisJCXNlY3VyaXR5X3NrX2Nsb25lKHNvY2stPnNrLCBuZXdfc29jay0+ c2spOworCiAJCWxvY2tfc29jayhuZXdfc2spOwogCiAJCS8qCmRpZmYgLS1naXQgYS9zY3JpcHRz L2tjb25maWcvc3RyZWFtbGluZV9jb25maWcucGwgYi9zY3JpcHRzL2tjb25maWcvc3RyZWFtbGlu ZV9jb25maWcucGwKaW5kZXggMzM0NmY0Mi4uNGExOWE3ZiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9r Y29uZmlnL3N0cmVhbWxpbmVfY29uZmlnLnBsCisrKyBiL3NjcmlwdHMva2NvbmZpZy9zdHJlYW1s aW5lX2NvbmZpZy5wbApAQCAtMTI1LDcgKzEyNSw3IEBAIG15ICRrc291cmNlID0gJEFSR1ZbMF07 CiBteSAka2NvbmZpZyA9ICRBUkdWWzFdOwogbXkgJGxzbW9kX2ZpbGUgPSAkRU5WeydMU01PRCd9 OwogCi1teSBAbWFrZWZpbGVzID0gYGZpbmQgJGtzb3VyY2UgLW5hbWUgTWFrZWZpbGUgMj4vZGV2 L251bGxgOworbXkgQG1ha2VmaWxlcyA9IGBmaW5kICRrc291cmNlIC1uYW1lIE1ha2VmaWxlIC1v ciAtbmFtZSBLYnVpbGQgMj4vZGV2L251bGxgOwogY2hvbXAgQG1ha2VmaWxlczsKIAogbXkgJWRl cGVuZHM7CmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L2hvb2tzLmMgYi9zZWN1cml0eS9z ZWxpbnV4L2hvb2tzLmMKaW5kZXggMGNkNzA5N2EuLmMyNzlmMmYgMTAwNjQ0Ci0tLSBhL3NlY3Vy aXR5L3NlbGludXgvaG9va3MuYworKysgYi9zZWN1cml0eS9zZWxpbnV4L2hvb2tzLmMKQEAgLTEw MTEsNyArMTAxMSw3IEBAIHN0YXRpYyB2b2lkIHNlbGludXhfd3JpdGVfb3B0cyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sCiAJCXNlcV9wdXRzKG0sIHByZWZpeCk7CiAJCWlmIChoYXNfY29tbWEpCiAJCQlz ZXFfcHV0YyhtLCAnXCInKTsKLQkJc2VxX3B1dHMobSwgb3B0cy0+bW50X29wdHNbaV0pOworCQlz ZXFfZXNjYXBlKG0sIG9wdHMtPm1udF9vcHRzW2ldLCAiXCJcblxcIik7CiAJCWlmIChoYXNfY29t bWEpCiAJCQlzZXFfcHV0YyhtLCAnXCInKTsKIAl9CmRpZmYgLS1naXQgYS9zb3VuZC9hcm0vS2Nv bmZpZyBiL3NvdW5kL2FybS9LY29uZmlnCmluZGV4IDg4NTY4M2EuLmUwNDA2MjEgMTAwNjQ0Ci0t LSBhL3NvdW5kL2FybS9LY29uZmlnCisrKyBiL3NvdW5kL2FybS9LY29uZmlnCkBAIC05LDYgKzks MTQgQEAgbWVudWNvbmZpZyBTTkRfQVJNCiAJICBEcml2ZXJzIHRoYXQgYXJlIGltcGxlbWVudGVk IG9uIEFTb0MgY2FuIGJlIGZvdW5kIGluCiAJICAiQUxTQSBmb3IgU29DIGF1ZGlvIHN1cHBvcnQi IHNlY3Rpb24uCiAKK2NvbmZpZyBTTkRfUFhBMlhYX0xJQgorCXRyaXN0YXRlCisJc2VsZWN0IFNO RF9BQzk3X0NPREVDIGlmIFNORF9QWEEyWFhfTElCX0FDOTcKKwlzZWxlY3QgU05EX0RNQUVOR0lO RV9QQ00KKworY29uZmlnIFNORF9QWEEyWFhfTElCX0FDOTcKKwlib29sCisKIGlmIFNORF9BUk0K IAogY29uZmlnIFNORF9BUk1BQUNJCkBAIC0yMSwxMyArMjksNiBAQCBjb25maWcgU05EX1BYQTJY WF9QQ00KIAl0cmlzdGF0ZQogCXNlbGVjdCBTTkRfUENNCiAKLWNvbmZpZyBTTkRfUFhBMlhYX0xJ QgotCXRyaXN0YXRlCi0Jc2VsZWN0IFNORF9BQzk3X0NPREVDIGlmIFNORF9QWEEyWFhfTElCX0FD OTcKLQotY29uZmlnIFNORF9QWEEyWFhfTElCX0FDOTcKLQlib29sCi0KIGNvbmZpZyBTTkRfUFhB MlhYX0FDOTcKIAl0cmlzdGF0ZSAiQUM5NyBkcml2ZXIgZm9yIHRoZSBJbnRlbCBQWEEyeHggY2hp cCIKIAlkZXBlbmRzIG9uIEFSQ0hfUFhBCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL0tjb25m aWcgYi9zb3VuZC9zb2MvcHhhL0tjb25maWcKaW5kZXggYTBmN2QzYy4uMjNkZWI2NyAxMDA2NDQK LS0tIGEvc291bmQvc29jL3B4YS9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9weGEvS2NvbmZpZwpA QCAtMSw3ICsxLDYgQEAKIGNvbmZpZyBTTkRfUFhBMlhYX1NPQwogCXRyaXN0YXRlICJTb0MgQXVk aW8gZm9yIHRoZSBJbnRlbCBQWEEyeHggY2hpcCIKIAlkZXBlbmRzIG9uIEFSQ0hfUFhBCi0Jc2Vs ZWN0IFNORF9BUk0KIAlzZWxlY3QgU05EX1BYQTJYWF9MSUIKIAloZWxwCiAJICBTYXkgWSBvciBN IGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBjb2RlY3MgYXR0YWNoZWQgdG8KQEAgLTE1 LDcgKzE0LDYgQEAgY29uZmlnIFNORF9QWEEyWFhfQUM5NwogY29uZmlnIFNORF9QWEEyWFhfU09D X0FDOTcKIAl0cmlzdGF0ZQogCXNlbGVjdCBBQzk3X0JVUwotCXNlbGVjdCBTTkRfQVJNCiAJc2Vs ZWN0IFNORF9QWEEyWFhfTElCX0FDOTcKIAlzZWxlY3QgU05EX1NPQ19BQzk3X0JVUwogCmRpZmYg LS1naXQgYS90b29scy9wZXJmL01ha2VmaWxlIGIvdG9vbHMvcGVyZi9NYWtlZmlsZQppbmRleCBl NDVkMmIxLi42Yzg3MWMwIDEwMDY0NAotLS0gYS90b29scy9wZXJmL01ha2VmaWxlCisrKyBiL3Rv b2xzL3BlcmYvTWFrZWZpbGUKQEAgLTczOSwxMCArNzM5LDEwIEBAICQoT1VUUFVUKXV0aWwvcmJ0 cmVlLm86IC4uLy4uL2xpYi9yYnRyZWUuYyAkKE9VVFBVVClQRVJGLUNGTEFHUwogCSQoUVVJRVRf Q0MpJChDQykgLW8gJEAgLWMgJChBTExfQ0ZMQUdTKSAtREVUQ19QRVJGQ09ORklHPSciJChFVENf UEVSRkNPTkZJR19TUSkiJyAkPAogCiAkKE9VVFBVVCl1dGlsL3NjcmlwdGluZy1lbmdpbmVzL3Ry YWNlLWV2ZW50LXBlcmwubzogdXRpbC9zY3JpcHRpbmctZW5naW5lcy90cmFjZS1ldmVudC1wZXJs LmMgJChPVVRQVVQpUEVSRi1DRkxBR1MKLQkkKFFVSUVUX0NDKSQoQ0MpIC1vICRAIC1jICQoQUxM X0NGTEFHUykgJChQRVJMX0VNQkVEX0NDT1BUUykgLVduby1yZWR1bmRhbnQtZGVjbHMgLVduby1z dHJpY3QtcHJvdG90eXBlcyAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby1zaGFkb3cgJDwKKwkk KFFVSUVUX0NDKSQoQ0MpIC1vICRAIC1jICQoQUxMX0NGTEFHUykgJChQRVJMX0VNQkVEX0NDT1BU UykgLVduby1yZWR1bmRhbnQtZGVjbHMgLVduby1zdHJpY3QtcHJvdG90eXBlcyAtV25vLXVudXNl ZC1wYXJhbWV0ZXIgLVduby1zaGFkb3cgLVduby11bmRlZiAtV25vLXN3aXRjaC1kZWZhdWx0ICQ8 CiAKICQoT1VUUFVUKXNjcmlwdHMvcGVybC9QZXJmLVRyYWNlLVV0aWwvQ29udGV4dC5vOiBzY3Jp cHRzL3BlcmwvUGVyZi1UcmFjZS1VdGlsL0NvbnRleHQuYyAkKE9VVFBVVClQRVJGLUNGTEFHUwot CSQoUVVJRVRfQ0MpJChDQykgLW8gJEAgLWMgJChBTExfQ0ZMQUdTKSAkKFBFUkxfRU1CRURfQ0NP UFRTKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXN0cmljdC1wcm90b3R5cGVzIC1Xbm8tdW51 c2VkLXBhcmFtZXRlciAtV25vLW5lc3RlZC1leHRlcm5zICQ8CisJJChRVUlFVF9DQykkKENDKSAt byAkQCAtYyAkKEFMTF9DRkxBR1MpICQoUEVSTF9FTUJFRF9DQ09QVFMpIC1Xbm8tcmVkdW5kYW50 LWRlY2xzIC1Xbm8tc3RyaWN0LXByb3RvdHlwZXMgLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8t bmVzdGVkLWV4dGVybnMgLVduby11bmRlZiAtV25vLXN3aXRjaC1kZWZhdWx0ICQ8CiAKICQoT1VU UFVUKXV0aWwvc2NyaXB0aW5nLWVuZ2luZXMvdHJhY2UtZXZlbnQtcHl0aG9uLm86IHV0aWwvc2Ny aXB0aW5nLWVuZ2luZXMvdHJhY2UtZXZlbnQtcHl0aG9uLmMgJChPVVRQVVQpUEVSRi1DRkxBR1MK IAkkKFFVSUVUX0NDKSQoQ0MpIC1vICRAIC1jICQoQUxMX0NGTEFHUykgJChQWVRIT05fRU1CRURf Q0NPUFRTKSAtV25vLXJlZHVuZGFudC1kZWNscyAtV25vLXN0cmljdC1wcm90b3R5cGVzIC1Xbm8t dW51c2VkLXBhcmFtZXRlciAtV25vLXNoYWRvdyAkPApkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91 dGlsL2hlYWRlci5jIGIvdG9vbHMvcGVyZi91dGlsL2hlYWRlci5jCmluZGV4IDJjZDg4YzEuLjdh NzVlY2IgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9oZWFkZXIuYworKysgYi90b29scy9w ZXJmL3V0aWwvaGVhZGVyLmMKQEAgLTc5NiwyNSArNzk2LDE5IEBAIHN0YXRpYyB2b2lkIHByaW50 X2NwdWRlc2Moc3RydWN0IHBlcmZfaGVhZGVyICpwaCwgaW50IGZkLCBGSUxFICpmcCkKIHN0YXRp YyB2b2lkIHByaW50X25yY3B1cyhzdHJ1Y3QgcGVyZl9oZWFkZXIgKnBoLCBpbnQgZmQsIEZJTEUg KmZwKQogewogCXNzaXplX3QgcmV0OwotCXUzMiBucjsKKwl1MzIgbnJbMl07CiAKIAlyZXQgPSBy ZWFkKGZkLCAmbnIsIHNpemVvZihucikpOwogCWlmIChyZXQgIT0gKHNzaXplX3Qpc2l6ZW9mKG5y KSkKLQkJbnIgPSAtMTsgLyogaW50ZXJwcmV0ZWQgYXMgZXJyb3IgKi8KKwkJbnJbMF0gPSBuclsx XSA9IC0xOyAvKiBpbnRlcnByZXRlZCBhcyBlcnJvciAqLwogCi0JaWYgKHBoLT5uZWVkc19zd2Fw KQotCQluciA9IGJzd2FwXzMyKG5yKTsKLQotCWZwcmludGYoZnAsICIjIG5yY3B1cyBvbmxpbmUg OiAldVxuIiwgbnIpOwotCi0JcmV0ID0gcmVhZChmZCwgJm5yLCBzaXplb2YobnIpKTsKLQlpZiAo cmV0ICE9IChzc2l6ZV90KXNpemVvZihucikpCi0JCW5yID0gLTE7IC8qIGludGVycHJldGVkIGFz IGVycm9yICovCi0KLQlpZiAocGgtPm5lZWRzX3N3YXApCi0JCW5yID0gYnN3YXBfMzIobnIpOwor CWlmIChwaC0+bmVlZHNfc3dhcCkgeworCQluclswXSA9IGJzd2FwXzMyKG5yWzBdKTsKKwkJbnJb MV0gPSBic3dhcF8zMihuclsxXSk7CisJfQogCi0JZnByaW50ZihmcCwgIiMgbnJjcHVzIGF2YWls IDogJXVcbiIsIG5yKTsKKwlmcHJpbnRmKGZwLCAiIyBucmNwdXMgb25saW5lIDogJXVcbiIsIG5y WzFdKTsKKwlmcHJpbnRmKGZwLCAiIyBucmNwdXMgYXZhaWwgOiAldVxuIiwgbnJbMF0pOwogfQog CiBzdGF0aWMgdm9pZCBwcmludF92ZXJzaW9uKHN0cnVjdCBwZXJmX2hlYWRlciAqcGgsIGludCBm ZCwgRklMRSAqZnApCi== --=-EykB8YwUdizgYAH3uVRi-- --=-K/mwjj3tkTDIRBUk6VzK Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAVhcVnue/yOyVhhEJAQrobQ//atdOl/qy+l9cHuM+bDv6hO1UuhtaxLJ+ qwEyOJveqoR3DObLOCdAMvrIpsp2L0PCXDsWgXfieQW/NXT8PT75hwmVxjf8Gr8j RkV9/iq+bMKThvBPfn7Wtb7nvEW5lrzCizx0KPJ/3RJi92odjQskGWu11JidcVhI e+j9woKMPNYV5iwHYJ4JnEyLJMLkuONLxS4Cg+216vJ5zzeVPBtE0l2Dazz4ypg1 dbuTRYWJVsvou8Meco23Sb5xL7Fov+aE2NQJ9tg6z0MSOLLDK/4auDYFL4g+Tl6R ISWpTD959Jmbx5MQEwgSio2qZkIcTrumvkbGQCvo0LFHgEpFVHPPQhJbE//0qlk0 cDpX2Gfa2dfGJGPTnkvcrulzmxD2r6GlijNP12K+GNzkJGu28rYezvD/+dCK+vF8 lguhbaLFqA0/nMEbUv1lPHYzZD6a/9RURm0VbWD2Lc19Uo0Bq1tE/LYX014nUINx jnKEsscqMJjqZAs0vjFLwWxS3FC6H77q636wtJw1PqDZrsGE3VrNaP5/J/HUgMHO +oU93QMs99FFFIo//s8xl3VXbCFiN3NsDhXustEEJea1PBCqex+CWGhAQwHn9ft/ ovu1W9OHnlMtxqxX81NJts9eUsdAByKR8EqNAc7LDElo/rsKbS7f3/iVx3+txPsW 8oWD51KysTk= =E3dK -----END PGP SIGNATURE----- --=-K/mwjj3tkTDIRBUk6VzK--