From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755458AbbLXQkW (ORCPT ); Thu, 24 Dec 2015 11:40:22 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:51989 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753050AbbLXQkQ (ORCPT ); Thu, 24 Dec 2015 11:40:16 -0500 Message-ID: <1450975207.23005.23.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 00/77] 3.2.75-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: Thu, 24 Dec 2015 16:40:07 +0000 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-IF2J/iFme+ufSgmngeat" X-Mailer: Evolution 3.18.2-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 --=-IF2J/iFme+ufSgmngeat Content-Type: multipart/mixed; boundary="=-+OuNSqcTiofkMDjkFc4j" --=-+OuNSqcTiofkMDjkFc4j Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined diff for 3.2.75-rc1 relative to 3.2.74. Ben. --=20 Ben Hutchings If the facts do not conform to your theory, they must be disposed of. --=-+OuNSqcTiofkMDjkFc4j Content-Disposition: attachment; filename="linux-3.2.75-rc1.patch" Content-Type: text/x-patch; name="linux-3.2.75-rc1.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggODlhN2QwNS4uZDcwNzNjYiAx MDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTEsNyArMSw3IEBACiBWRVJT SU9OID0gMwogUEFUQ0hMRVZFTCA9IDIKLVNVQkxFVkVMID0gNzQKLUVYVFJBVkVSU0lPTiA9CitT VUJMRVZFTCA9IDc1CitFWFRSQVZFUlNJT04gPSAtcmMxCiBOQU1FID0gU2FiZXItdG9vdGhlZCBT cXVpcnJlbAogCiAjICpET0NVTUVOVEFUSU9OKgpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9pbmNsdWRl L2FzbS91bmlzdGRfNjQuaCBiL2FyY2gvc2gvaW5jbHVkZS9hc20vdW5pc3RkXzY0LmgKaW5kZXgg YzMzMGMyMy4uNDI0ZjA4OSAxMDA2NDQKLS0tIGEvYXJjaC9zaC9pbmNsdWRlL2FzbS91bmlzdGRf NjQuaAorKysgYi9hcmNoL3NoL2luY2x1ZGUvYXNtL3VuaXN0ZF82NC5oCkBAIC0yNzksNyArMjc5 LDcgQEAKICNkZWZpbmUgX19OUl9mc2V0eGF0dHIJCTI1NgogI2RlZmluZSBfX05SX2dldHhhdHRy CQkyNTcKICNkZWZpbmUgX19OUl9sZ2V0eGF0dHIJCTI1OAotI2RlZmluZSBfX05SX2ZnZXR4YXR0 cgkJMjY5CisjZGVmaW5lIF9fTlJfZmdldHhhdHRyCQkyNTkKICNkZWZpbmUgX19OUl9saXN0eGF0 dHIJCTI2MAogI2RlZmluZSBfX05SX2xsaXN0eGF0dHIJCTI2MQogI2RlZmluZSBfX05SX2ZsaXN0 eGF0dHIJCTI2MgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYWhjaS5jIGIvZHJpdmVycy9h dGEvbGliYWhjaS5jCmluZGV4IDQxZmZiOGMuLmZhM2VjYTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv YXRhL2xpYmFoY2kuYworKysgYi9kcml2ZXJzL2F0YS9saWJhaGNpLmMKQEAgLTEyMjYsNiArMTIy NiwxNSBAQCBzdGF0aWMgaW50IGFoY2lfZXhlY19wb2xsZWRfY21kKHN0cnVjdCBhdGFfcG9ydCAq YXAsIGludCBwbXAsCiAJYXRhX3RmX3RvX2Zpcyh0ZiwgcG1wLCBpc19jbWQsIGZpcyk7CiAJYWhj aV9maWxsX2NtZF9zbG90KHBwLCAwLCBjbWRfZmlzX2xlbiB8IGZsYWdzIHwgKHBtcCA8PCAxMikp OwogCisJLyogc2V0IHBvcnQgdmFsdWUgZm9yIHNvZnRyZXNldCBvZiBQb3J0IE11bHRpcGxpZXIg Ki8KKwlpZiAocHAtPmZic19lbmFibGVkICYmIHBwLT5mYnNfbGFzdF9kZXYgIT0gcG1wKSB7CisJ CXRtcCA9IHJlYWRsKHBvcnRfbW1pbyArIFBPUlRfRkJTKTsKKwkJdG1wICY9IH4oUE9SVF9GQlNf REVWX01BU0sgfCBQT1JUX0ZCU19ERUMpOworCQl0bXAgfD0gcG1wIDw8IFBPUlRfRkJTX0RFVl9P RkZTRVQ7CisJCXdyaXRlbCh0bXAsIHBvcnRfbW1pbyArIFBPUlRfRkJTKTsKKwkJcHAtPmZic19s YXN0X2RldiA9IHBtcDsKKwl9CisKIAkvKiBpc3N1ZSAmIHdhaXQgKi8KIAl3cml0ZWwoMSwgcG9y dF9tbWlvICsgUE9SVF9DTURfSVNTVUUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9zYXRh X3NpbC5jIGIvZHJpdmVycy9hdGEvc2F0YV9zaWwuYwppbmRleCAwYzRlZDg5Li43ZjBjN2YwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2F0YS9zYXRhX3NpbC5jCisrKyBiL2RyaXZlcnMvYXRhL3NhdGFf c2lsLmMKQEAgLTYzMSw2ICs2MzEsOSBAQCBzdGF0aWMgdm9pZCBzaWxfZGV2X2NvbmZpZyhzdHJ1 Y3QgYXRhX2RldmljZSAqZGV2KQogCXVuc2lnbmVkIGludCBuLCBxdWlya3MgPSAwOwogCXVuc2ln bmVkIGNoYXIgbW9kZWxfbnVtW0FUQV9JRF9QUk9EX0xFTiArIDFdOwogCisJLyogVGhpcyBjb250 cm9sbGVyIGRvZXNuJ3Qgc3VwcG9ydCB0cmltICovCisJZGV2LT5ob3JrYWdlIHw9IEFUQV9IT1JL QUdFX05PVFJJTTsKKwogCWF0YV9pZF9jX3N0cmluZyhkZXYtPmlkLCBtb2RlbF9udW0sIEFUQV9J RF9QUk9ELCBzaXplb2YobW9kZWxfbnVtKSk7CiAKIAlmb3IgKG4gPSAwOyBzaWxfYmxhY2tsaXN0 W25dLnByb2R1Y3Q7IG4rKykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2lf aW50Zi5jIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaV9pbnRmLmMKaW5kZXggOTM5N2FiNC4u NjM2YThkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaV9pbnRmLmMKKysr IGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaV9pbnRmLmMKQEAgLTExNDgsMTUgKzExNDgsMTUg QEAgc3RhdGljIGludCBzbWlfc3RhcnRfcHJvY2Vzc2luZyh2b2lkICAgICAgICpzZW5kX2luZm8s CiAKIAluZXdfc21pLT5pbnRmID0gaW50ZjsKIAotCS8qIFRyeSB0byBjbGFpbSBhbnkgaW50ZXJy dXB0cy4gKi8KLQlpZiAobmV3X3NtaS0+aXJxX3NldHVwKQotCQluZXdfc21pLT5pcnFfc2V0dXAo bmV3X3NtaSk7Ci0KIAkvKiBTZXQgdXAgdGhlIHRpbWVyIHRoYXQgZHJpdmVzIHRoZSBpbnRlcmZh Y2UuICovCiAJc2V0dXBfdGltZXIoJm5ld19zbWktPnNpX3RpbWVyLCBzbWlfdGltZW91dCwgKGxv bmcpbmV3X3NtaSk7CiAJbmV3X3NtaS0+bGFzdF90aW1lb3V0X2ppZmZpZXMgPSBqaWZmaWVzOwog CW1vZF90aW1lcigmbmV3X3NtaS0+c2lfdGltZXIsIGppZmZpZXMgKyBTSV9USU1FT1VUX0pJRkZJ RVMpOwogCisJLyogVHJ5IHRvIGNsYWltIGFueSBpbnRlcnJ1cHRzLiAqLworCWlmIChuZXdfc21p LT5pcnFfc2V0dXApCisJCW5ld19zbWktPmlycV9zZXR1cChuZXdfc21pKTsKKwogCS8qCiAJICog Q2hlY2sgaWYgdGhlIHVzZXIgZm9yY2VmdWxseSBlbmFibGVkIHRoZSBkYWVtb24uCiAJICovCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZm9wcy5jCmluZGV4IDAyMGIxMDMuLjVmMWE2NTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZm9wcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jCkBAIC0yMTks NiArMjE5LDYyIEBAIHN0YXRpYyBpbnQgZHJtX2NwdV92YWxpZCh2b2lkKQogfQogCiAvKioKKyAq IGRybV9uZXdfc2V0X21hc3RlciAtIEFsbG9jYXRlIGEgbmV3IG1hc3RlciBvYmplY3QgYW5kIGJl Y29tZSBtYXN0ZXIgZm9yIHRoZQorICogYXNzb2NpYXRlZCBtYXN0ZXIgcmVhbG0uCisgKgorICog QGRldjogVGhlIGFzc29jaWF0ZWQgZGV2aWNlLgorICogQGZwcml2OiBGaWxlIHByaXZhdGUgaWRl bnRpZnlpbmcgdGhlIGNsaWVudC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVk IHdpdGggZGV2OjpzdHJ1Y3RfbXV0ZXggaGVsZC4KKyAqIFJldHVybnMgbmVnYXRpdmUgZXJyb3Ig Y29kZSBvbiBmYWlsdXJlLiBaZXJvIG9uIHN1Y2Nlc3MuCisgKi8KK2ludCBkcm1fbmV3X3NldF9t YXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmcHJpdikKK3sK KwlzdHJ1Y3QgZHJtX21hc3RlciAqb2xkX21hc3RlcjsKKwlpbnQgcmV0OworCisJbG9ja2RlcF9h c3NlcnRfaGVsZF9vbmNlKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwkvKiBjcmVhdGUgYSBuZXcg bWFzdGVyICovCisJZnByaXYtPm1pbm9yLT5tYXN0ZXIgPSBkcm1fbWFzdGVyX2NyZWF0ZShmcHJp di0+bWlub3IpOworCWlmICghZnByaXYtPm1pbm9yLT5tYXN0ZXIpCisJCXJldHVybiAtRU5PTUVN OworCisJLyogdGFrZSBhbm90aGVyIHJlZmVyZW5jZSBmb3IgdGhlIGNvcHkgaW4gdGhlIGxvY2Fs IGZpbGUgcHJpdiAqLworCW9sZF9tYXN0ZXIgPSBmcHJpdi0+bWFzdGVyOworCWZwcml2LT5tYXN0 ZXIgPSBkcm1fbWFzdGVyX2dldChmcHJpdi0+bWlub3ItPm1hc3Rlcik7CisKKwlpZiAoZGV2LT5k cml2ZXItPm1hc3Rlcl9jcmVhdGUpIHsKKwkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7CisJCXJldCA9IGRldi0+ZHJpdmVyLT5tYXN0ZXJfY3JlYXRlKGRldiwgZnByaXYtPm1hc3Rl cik7CisJCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwkJaWYgKHJldCkKKwkJCWdv dG8gb3V0X2VycjsKKwl9CisJaWYgKGRldi0+ZHJpdmVyLT5tYXN0ZXJfc2V0KSB7CisJCXJldCA9 IGRldi0+ZHJpdmVyLT5tYXN0ZXJfc2V0KGRldiwgZnByaXYsIHRydWUpOworCQlpZiAocmV0KQor CQkJZ290byBvdXRfZXJyOworCX0KKworCWZwcml2LT5pc19tYXN0ZXIgPSAxOworCWZwcml2LT5h bGxvd2VkX21hc3RlciA9IDE7CisJZnByaXYtPmF1dGhlbnRpY2F0ZWQgPSAxOworCWlmIChvbGRf bWFzdGVyKQorCQlkcm1fbWFzdGVyX3B1dCgmb2xkX21hc3Rlcik7CisKKwlyZXR1cm4gMDsKKwor b3V0X2VycjoKKwkvKiBkcm9wIGJvdGggcmVmZXJlbmNlcyBhbmQgcmVzdG9yZSBvbGQgbWFzdGVy IG9uIGZhaWx1cmUgKi8KKwlkcm1fbWFzdGVyX3B1dCgmZnByaXYtPm1pbm9yLT5tYXN0ZXIpOwor CWRybV9tYXN0ZXJfcHV0KCZmcHJpdi0+bWFzdGVyKTsKKwlmcHJpdi0+bWFzdGVyID0gb2xkX21h c3RlcjsKKworCXJldHVybiByZXQ7Cit9CisKKy8qKgogICogQ2FsbGVkIHdoZW5ldmVyIGEgcHJv Y2VzcyBvcGVucyAvZGV2L2RybS4KICAqCiAgKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlLgpA QCAtMjc5LDQzICszMzUsMTAgQEAgc3RhdGljIGludCBkcm1fb3Blbl9oZWxwZXIoc3RydWN0IGlu b2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAsCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3Rf bXV0ZXgpOwogCWlmICghcHJpdi0+bWlub3ItPm1hc3RlcikgewogCQkvKiBjcmVhdGUgYSBuZXcg bWFzdGVyICovCi0JCXByaXYtPm1pbm9yLT5tYXN0ZXIgPSBkcm1fbWFzdGVyX2NyZWF0ZShwcml2 LT5taW5vcik7Ci0JCWlmICghcHJpdi0+bWlub3ItPm1hc3RlcikgewotCQkJbXV0ZXhfdW5sb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JCQlyZXQgPSAtRU5PTUVNOwotCQkJZ290byBvdXRfZnJl ZTsKLQkJfQotCi0JCXByaXYtPmlzX21hc3RlciA9IDE7Ci0JCS8qIHRha2UgYW5vdGhlciByZWZl cmVuY2UgZm9yIHRoZSBjb3B5IGluIHRoZSBsb2NhbCBmaWxlIHByaXYgKi8KLQkJcHJpdi0+bWFz dGVyID0gZHJtX21hc3Rlcl9nZXQocHJpdi0+bWlub3ItPm1hc3Rlcik7Ci0KLQkJcHJpdi0+YXV0 aGVudGljYXRlZCA9IDE7Ci0KLQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0J CWlmIChkZXYtPmRyaXZlci0+bWFzdGVyX2NyZWF0ZSkgewotCQkJcmV0ID0gZGV2LT5kcml2ZXIt Pm1hc3Rlcl9jcmVhdGUoZGV2LCBwcml2LT5tYXN0ZXIpOwotCQkJaWYgKHJldCkgewotCQkJCW11 dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQkJCQkvKiBkcm9wIGJvdGggcmVmZXJlbmNl cyBpZiB0aGlzIGZhaWxzICovCi0JCQkJZHJtX21hc3Rlcl9wdXQoJnByaXYtPm1pbm9yLT5tYXN0 ZXIpOwotCQkJCWRybV9tYXN0ZXJfcHV0KCZwcml2LT5tYXN0ZXIpOwotCQkJCW11dGV4X3VubG9j aygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCQkJCWdvdG8gb3V0X2ZyZWU7Ci0JCQl9Ci0JCX0KLQkJ bXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCQlpZiAoZGV2LT5kcml2ZXItPm1hc3Rl cl9zZXQpIHsKLQkJCXJldCA9IGRldi0+ZHJpdmVyLT5tYXN0ZXJfc2V0KGRldiwgcHJpdiwgdHJ1 ZSk7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJLyogZHJvcCBib3RoIHJlZmVyZW5jZXMgaWYgdGhpcyBm YWlscyAqLwotCQkJCWRybV9tYXN0ZXJfcHV0KCZwcml2LT5taW5vci0+bWFzdGVyKTsKLQkJCQlk cm1fbWFzdGVyX3B1dCgmcHJpdi0+bWFzdGVyKTsKLQkJCQltdXRleF91bmxvY2soJmRldi0+c3Ry dWN0X211dGV4KTsKLQkJCQlnb3RvIG91dF9mcmVlOwotCQkJfQotCQl9CisJCXJldCA9IGRybV9u ZXdfc2V0X21hc3RlcihkZXYsIHByaXYpOwogCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211 dGV4KTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0X2ZyZWU7CiAJfSBlbHNlIHsKIAkJLyogZ2V0 IGEgcmVmZXJlbmNlIHRvIHRoZSBtYXN0ZXIgKi8KIAkJcHJpdi0+bWFzdGVyID0gZHJtX21hc3Rl cl9nZXQocHJpdi0+bWlub3ItPm1hc3Rlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX3N0dWIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3R1Yi5jCmluZGV4IDZkN2IwODMuLjZj MWY2Y2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3R1Yi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fc3R1Yi5jCkBAIC0yMjUsNiArMjI1LDEwIEBAIGludCBkcm1fc2V0bWFz dGVyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJaWYgKCFmaWxl X3ByaXYtPm1pbm9yLT5tYXN0ZXIgJiYKIAkgICAgZmlsZV9wcml2LT5taW5vci0+bWFzdGVyICE9 IGZpbGVfcHJpdi0+bWFzdGVyKSB7CiAJCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsK KwkJaWYgKCFmaWxlX3ByaXYtPmFsbG93ZWRfbWFzdGVyKSB7CisJCQlyZXQgPSBkcm1fbmV3X3Nl dF9tYXN0ZXIoZGV2LCBmaWxlX3ByaXYpOworCQkJZ290byBvdXRfdW5sb2NrOworCQl9CiAJCWZp bGVfcHJpdi0+bWlub3ItPm1hc3RlciA9IGRybV9tYXN0ZXJfZ2V0KGZpbGVfcHJpdi0+bWFzdGVy KTsKIAkJZmlsZV9wcml2LT5pc19tYXN0ZXIgPSAxOwogCQlpZiAoZGV2LT5kcml2ZXItPm1hc3Rl cl9zZXQpIHsKQEAgLTIzNCwxMCArMjM4LDExIEBAIGludCBkcm1fc2V0bWFzdGVyX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkJZHJtX21hc3Rlcl9wdXQoJmZp bGVfcHJpdi0+bWlub3ItPm1hc3Rlcik7CiAJCQl9CiAJCX0KKwlvdXRfdW5sb2NrOgogCQltdXRl eF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAl9CiAKLQlyZXR1cm4gMDsKKwlyZXR1cm4g cmV0OwogfQogCiBpbnQgZHJtX2Ryb3BtYXN0ZXJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2xvY2su YyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2xvY2suYwppbmRleCAwNzVkYWY0Li45OTM0YjRk IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9sb2NrLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fbG9jay5jCkBAIC0xODAsNyArMTgwLDcgQEAgaW50IHR0bV93cml0 ZV9sb2NrKHN0cnVjdCB0dG1fbG9jayAqbG9jaywgYm9vbCBpbnRlcnJ1cHRpYmxlKQogCQkJc3Bp bl91bmxvY2soJmxvY2stPmxvY2spOwogCQl9CiAJfSBlbHNlCi0JCXdhaXRfZXZlbnQobG9jay0+ cXVldWUsIF9fdHRtX3JlYWRfbG9jayhsb2NrKSk7CisJCXdhaXRfZXZlbnQobG9jay0+cXVldWUs IF9fdHRtX3dyaXRlX2xvY2sobG9jaykpOwogCiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L3ZnYS92Z2FhcmIuYyBiL2RyaXZlcnMvZ3B1L3ZnYS92Z2FhcmIuYwppbmRl eCAxMTFkOTU2Li42YTQ2ZDZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS92Z2EvdmdhYXJiLmMK KysrIGIvZHJpdmVycy9ncHUvdmdhL3ZnYWFyYi5jCkBAIC0zODEsOCArMzgxLDEwIEBAIGludCB2 Z2FfZ2V0KHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgcnNyYywgaW50IGludGVy cnVwdGlibGUpCiAJCXNldF9jdXJyZW50X3N0YXRlKGludGVycnVwdGlibGUgPwogCQkJCSAgVEFT S19JTlRFUlJVUFRJQkxFIDoKIAkJCQkgIFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKLQkJaWYgKHNp Z25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7Ci0JCQlyYyA9IC1FSU5UUjsKKwkJaWYgKGludGVycnVw dGlibGUgJiYgc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHsKKwkJCV9fc2V0X2N1cnJlbnRfc3Rh dGUoVEFTS19SVU5OSU5HKTsKKwkJCXJlbW92ZV93YWl0X3F1ZXVlKCZ2Z2Ffd2FpdF9xdWV1ZSwg JndhaXQpOworCQkJcmMgPSAtRVJFU1RBUlRTWVM7CiAJCQlicmVhazsKIAkJfQogCQlzY2hlZHVs ZSgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2k0bC9pc2RuX3BwcC5jIGIvZHJpdmVycy9p c2RuL2k0bC9pc2RuX3BwcC5jCmluZGV4IDFiMDAyYjAuLjM2MDRhYTcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvaXNkbi9pNGwvaXNkbl9wcHAuYworKysgYi9kcml2ZXJzL2lzZG4vaTRsL2lzZG5fcHBw LmMKQEAgLTMwMSw2ICszMDEsOCBAQCBpc2RuX3BwcF9vcGVuKGludCBtaW4sIHN0cnVjdCBmaWxl ICpmaWxlKQogCWlzLT5jb21wZmxhZ3MgPSAwOwogCiAJaXMtPnJlc2V0ID0gaXNkbl9wcHBfY2Nw X3Jlc2V0X2FsbG9jKGlzKTsKKwlpZiAoIWlzLT5yZXNldCkKKwkJcmV0dXJuIC1FTk9NRU07CiAK IAlpcy0+bHAgPSBOVUxMOwogCWlzLT5tcF9zZXFubyA9IDA7ICAgICAgIC8qIE1QIHNlcXVlbmNl IG51bWJlciAqLwpAQCAtMzIwLDYgKzMyMiwxMCBAQCBpc2RuX3BwcF9vcGVuKGludCBtaW4sIHN0 cnVjdCBmaWxlICpmaWxlKQogCSAqIFZKIGhlYWRlciBjb21wcmVzc2lvbiBpbml0CiAJICovCiAJ aXMtPnNsY29tcCA9IHNsaGNfaW5pdCgxNiwgMTYpOwkvKiBub3QgbmVjZXNzYXJ5IGZvciAyLiBs aW5rIGluIGJ1bmRsZSAqLworCWlmIChJU19FUlIoaXMtPnNsY29tcCkpIHsKKwkJaXNkbl9wcHBf Y2NwX3Jlc2V0X2ZyZWUoaXMpOworCQlyZXR1cm4gUFRSX0VSUihpcy0+c2xjb21wKTsKKwl9CiAj ZW5kaWYKICNpZmRlZiBDT05GSUdfSVBQUF9GSUxURVIKIAlpcy0+cGFzc19maWx0ZXIgPSBOVUxM OwpAQCAtNTY4LDEwICs1NzQsOCBAQCBpc2RuX3BwcF9pb2N0bChpbnQgbWluLCBzdHJ1Y3QgZmls ZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJCQkJaXMtPm1h eGNpZCA9IHZhbDsKICNpZmRlZiBDT05GSUdfSVNETl9QUFBfVkoKIAkJCQlzbHRtcCA9IHNsaGNf aW5pdCgxNiwgdmFsKTsKLQkJCQlpZiAoIXNsdG1wKSB7Ci0JCQkJCXByaW50ayhLRVJOX0VSUiAi aXBwcCwgY2FuJ3QgcmVhbGxvYyBzbGhjIHN0cnVjdFxuIik7Ci0JCQkJCXJldHVybiAtRU5PTUVN OwotCQkJCX0KKwkJCQlpZiAoSVNfRVJSKHNsdG1wKSkKKwkJCQkJcmV0dXJuIFBUUl9FUlIoc2x0 bXApOwogCQkJCWlmIChpcy0+c2xjb21wKQogCQkJCQlzbGhjX2ZyZWUoaXMtPnNsY29tcCk7CiAJ CQkJaXMtPnNsY29tcCA9IHNsdG1wOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9wZXJzaXN0ZW50 LWRhdGEvZG0tYnRyZWUuYyBiL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLWJ0cmVlLmMK aW5kZXggMjllNDIzZi4uYThmNGY3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9wZXJzaXN0ZW50 LWRhdGEvZG0tYnRyZWUuYworKysgYi9kcml2ZXJzL21kL3BlcnNpc3RlbnQtZGF0YS9kbS1idHJl ZS5jCkBAIC0yMzEsNiArMjMxLDE2IEBAIHN0YXRpYyB2b2lkIHBvcF9mcmFtZShzdHJ1Y3QgZGVs X3N0YWNrICpzKQogCWRtX3RtX3VubG9jayhzLT50bSwgZi0+Yik7CiB9CiAKK3N0YXRpYyB2b2lk IHVubG9ja19hbGxfZnJhbWVzKHN0cnVjdCBkZWxfc3RhY2sgKnMpCit7CisJc3RydWN0IGZyYW1l ICpmOworCisJd2hpbGUgKHVucHJvY2Vzc2VkX2ZyYW1lcyhzKSkgeworCQlmID0gcy0+c3BpbmUg KyBzLT50b3AtLTsKKwkJZG1fdG1fdW5sb2NrKHMtPnRtLCBmLT5iKTsKKwl9Cit9CisKIGludCBk bV9idHJlZV9kZWwoc3RydWN0IGRtX2J0cmVlX2luZm8gKmluZm8sIGRtX2Jsb2NrX3Qgcm9vdCkK IHsKIAlpbnQgcjsKQEAgLTI4Niw5ICsyOTYsMTMgQEAgaW50IGRtX2J0cmVlX2RlbChzdHJ1Y3Qg ZG1fYnRyZWVfaW5mbyAqaW5mbywgZG1fYmxvY2tfdCByb290KQogCQkJZi0+Y3VycmVudF9jaGls ZCA9IGYtPm5yX2NoaWxkcmVuOwogCQl9CiAJfQotCiBvdXQ6CisJaWYgKHIpIHsKKwkJLyogY2xl YW51cCBhbGwgZnJhbWVzIG9mIGRlbF9zdGFjayAqLworCQl1bmxvY2tfYWxsX2ZyYW1lcyhzKTsK Kwl9CiAJa2ZyZWUocyk7CisKIAlyZXR1cm4gcjsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGRtX2J0 cmVlX2RlbCk7CkBAIC00NTEsOCArNDY1LDEwIEBAIHN0YXRpYyBpbnQgYnRyZWVfc3BsaXRfc2li bGluZyhzdHJ1Y3Qgc2hhZG93X3NwaW5lICpzLCBkbV9ibG9ja190IHJvb3QsCiAKIAlyID0gaW5z ZXJ0X2F0KHNpemVvZihfX2xlNjQpLCBwbiwgcGFyZW50X2luZGV4ICsgMSwKIAkJICAgICAgbGU2 NF90b19jcHUocm4tPmtleXNbMF0pLCAmbG9jYXRpb24pOwotCWlmIChyKQorCWlmIChyKSB7CisJ CXVubG9ja19ibG9jayhzLT5pbmZvLCByaWdodCk7CiAJCXJldHVybiByOworCX0KIAogCWlmIChr ZXkgPCBsZTY0X3RvX2NwdShybi0+a2V5c1swXSkpIHsKIAkJdW5sb2NrX2Jsb2NrKHMtPmluZm8s IHJpZ2h0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Nhbi9zamExMDAwL3NqYTEwMDAuYyBi L2RyaXZlcnMvbmV0L2Nhbi9zamExMDAwL3NqYTEwMDAuYwppbmRleCA1NjhiODIxLi5mYWZmNTNi IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jYW4vc2phMTAwMC9zamExMDAwLmMKKysrIGIvZHJp dmVycy9uZXQvY2FuL3NqYTEwMDAvc2phMTAwMC5jCkBAIC0xNzcsNiArMTc3LDkgQEAgc3RhdGlj IHZvaWQgc2phMTAwMF9zdGFydChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXByaXYtPndyaXRl X3JlZyhwcml2LCBSRUdfUlhFUlIsIDB4MCk7CiAJcHJpdi0+cmVhZF9yZWcocHJpdiwgUkVHX0VD Qyk7CiAKKwkvKiBjbGVhciBpbnRlcnJ1cHQgZmxhZ3MgKi8KKwlwcml2LT5yZWFkX3JlZyhwcml2 LCBSRUdfSVIpOworCiAJLyogbGVhdmUgcmVzZXQgbW9kZSAqLwogCXNldF9ub3JtYWxfbW9kZShk ZXYpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hdGwxYy9h dGwxY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2F0bDFjL2F0bDFjX21h aW4uYwppbmRleCA1YWU3ZGY3Li43OTBmNjQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9hdGhlcm9zL2F0bDFjL2F0bDFjX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9hdGhlcm9zL2F0bDFjL2F0bDFjX21haW4uYwpAQCAtOTgxLDEzICs5ODEsMTIgQEAgc3RhdGlj IGludCBhdGwxY19zZXR1cF9yaW5nX3Jlc291cmNlcyhzdHJ1Y3QgYXRsMWNfYWRhcHRlciAqYWRh cHRlcikKIAkJc2l6ZW9mKHN0cnVjdCBhdGwxY19od19zdGF0cykgKwogCQk4ICogNCArIDggKiAy ICogbnVtX3J4X3F1ZXVlczsKIAotCXJpbmdfaGVhZGVyLT5kZXNjID0gcGNpX2FsbG9jX2NvbnNp c3RlbnQocGRldiwgcmluZ19oZWFkZXItPnNpemUsCi0JCQkJJnJpbmdfaGVhZGVyLT5kbWEpOwor CXJpbmdfaGVhZGVyLT5kZXNjID0gZG1hX3phbGxvY19jb2hlcmVudCgmcGRldi0+ZGV2LCByaW5n X2hlYWRlci0+c2l6ZSwKKwkJCQkJCSZyaW5nX2hlYWRlci0+ZG1hLCBHRlBfS0VSTkVMKTsKIAlp ZiAodW5saWtlbHkoIXJpbmdfaGVhZGVyLT5kZXNjKSkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYs ICJwY2lfYWxsb2NfY29uc2lzdGVuZCBmYWlsZWRcbiIpOworCQlkZXZfZXJyKCZwZGV2LT5kZXYs ICJjb3VsZCBub3QgZ2V0IG1lbW9yeSBmb3IgRE1BIGJ1ZmZlclxuIik7CiAJCWdvdG8gZXJyX25v bWVtOwogCX0KLQltZW1zZXQocmluZ19oZWFkZXItPmRlc2MsIDAsIHJpbmdfaGVhZGVyLT5zaXpl KTsKIAkvKiBpbml0IFRQRCByaW5nICovCiAKIAl0cGRfcmluZ1swXS5kbWEgPSByb3VuZHVwKHJp bmdfaGVhZGVyLT5kbWEsIDgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVu ZXNhcy9zaF9ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvc2hfZXRoLmMKaW5k ZXggYjIwNzdjYS4uZTQ5MjA4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVu ZXNhcy9zaF9ldGguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL3NoX2V0aC5j CkBAIC05MTEsNiArOTExLDcgQEAgc3RhdGljIGludCBzaF9ldGhfcngoc3RydWN0IG5ldF9kZXZp Y2UgKm5kZXYpCiAJCWlmICghKGRlc2Nfc3RhdHVzICYgUkRGRU5EKSkKIAkJCW1kcC0+c3RhdHMu cnhfbGVuZ3RoX2Vycm9ycysrOwogCisJCXNrYiA9IG1kcC0+cnhfc2tidWZmW2VudHJ5XTsKIAkJ aWYgKGRlc2Nfc3RhdHVzICYgKFJEX1JGUzEgfCBSRF9SRlMyIHwgUkRfUkZTMyB8IFJEX1JGUzQg fAogCQkJCSAgIFJEX1JGUzUgfCBSRF9SRlM2IHwgUkRfUkZTMTApKSB7CiAJCQltZHAtPnN0YXRz LnJ4X2Vycm9ycysrOwpAQCAtOTI2LDEyICs5MjcsMTEgQEAgc3RhdGljIGludCBzaF9ldGhfcngo c3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpCiAJCQkJbWRwLT5zdGF0cy5yeF9taXNzZWRfZXJyb3Jz Kys7CiAJCQlpZiAoZGVzY19zdGF0dXMgJiBSRF9SRlMxMCkKIAkJCQltZHAtPnN0YXRzLnJ4X292 ZXJfZXJyb3JzKys7Ci0JCX0gZWxzZSB7CisJCX0gZWxzZQlpZiAoc2tiKSB7CiAJCQlpZiAoIW1k cC0+Y2QtPmh3X3N3YXApCiAJCQkJc2hfZXRoX3NvZnRfc3dhcCgKIAkJCQkJcGh5c190b192aXJ0 KEFMSUdOKHJ4ZGVzYy0+YWRkciwgNCkpLAogCQkJCQlwa3RfbGVuICsgMik7Ci0JCQlza2IgPSBt ZHAtPnJ4X3NrYnVmZltlbnRyeV07CiAJCQltZHAtPnJ4X3NrYnVmZltlbnRyeV0gPSBOVUxMOwog CQkJaWYgKG1kcC0+Y2QtPnJwYWRpcikKIAkJCQlza2JfcmVzZXJ2ZShza2IsIE5FVF9JUF9BTElH Tik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMgYi9kcml2ZXJzL25ldC9tYWN2 bGFuLmMKaW5kZXggZmVkMzlkZS4uZjg1NDQxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFj dmxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L21hY3ZsYW4uYwpAQCAtMTcyLDYgKzE3Miw3IEBAIHN0 YXRpYyByeF9oYW5kbGVyX3Jlc3VsdF90IG1hY3ZsYW5faGFuZGxlX2ZyYW1lKHN0cnVjdCBza19i dWZmICoqcHNrYikKIAkJc2tiID0gaXBfY2hlY2tfZGVmcmFnKHNrYiwgSVBfREVGUkFHX01BQ1ZM QU4pOwogCQlpZiAoIXNrYikKIAkJCXJldHVybiBSWF9IQU5ETEVSX0NPTlNVTUVEOworCQkqcHNr YiA9IHNrYjsKIAkJZXRoID0gZXRoX2hkcihza2IpOwogCQlzcmMgPSBtYWN2bGFuX2hhc2hfbG9v a3VwKHBvcnQsIGV0aC0+aF9zb3VyY2UpOwogCQlpZiAoIXNyYykKQEAgLTIyMSw2ICsyMjIsNyBA QCBzdGF0aWMgcnhfaGFuZGxlcl9yZXN1bHRfdCBtYWN2bGFuX2hhbmRsZV9mcmFtZShzdHJ1Y3Qg c2tfYnVmZiAqKnBza2IpCiAJaWYgKCFza2IpCiAJCWdvdG8gb3V0OwogCisJKnBza2IgPSBza2I7 CiAJc2tiLT5kZXYgPSBkZXY7CiAJc2tiLT5wa3RfdHlwZSA9IFBBQ0tFVF9IT1NUOwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9waHkvYnJvYWRjb20uYyBiL2RyaXZlcnMvbmV0L3BoeS9icm9h ZGNvbS5jCmluZGV4IGU4YmU0N2QuLjM0NTY3MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Bo eS9icm9hZGNvbS5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9icm9hZGNvbS5jCkBAIC05MzUsNyAr OTM1LDcgQEAgc3RhdGljIHN0cnVjdCBtZGlvX2RldmljZV9pZCBfX21heWJlX3VudXNlZCBicm9h ZGNvbV90YmxbXSA9IHsKIAl7IFBIWV9JRF9CQ001NDIxLCAweGZmZmZmZmYwIH0sCiAJeyBQSFlf SURfQkNNNTQ2MSwgMHhmZmZmZmZmMCB9LAogCXsgUEhZX0lEX0JDTTU0NjQsIDB4ZmZmZmZmZjAg fSwKLQl7IFBIWV9JRF9CQ001NDgyLCAweGZmZmZmZmYwIH0sCisJeyBQSFlfSURfQkNNNTQ4MSwg MHhmZmZmZmZmMCB9LAogCXsgUEhZX0lEX0JDTTU0ODIsIDB4ZmZmZmZmZjAgfSwKIAl7IFBIWV9J RF9CQ001MDYxMCwgMHhmZmZmZmZmMCB9LAogCXsgUEhZX0lEX0JDTTUwNjEwTSwgMHhmZmZmZmZm MCB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMgYi9kcml2ZXJz L25ldC9wcHAvcHBwX2dlbmVyaWMuYwppbmRleCA0NzgyZDc5Li44MmQ0NDIxIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYworKysgYi9kcml2ZXJzL25ldC9wcHAvcHBw X2dlbmVyaWMuYwpAQCAtNzAzLDEwICs3MDMsOCBAQCBzdGF0aWMgbG9uZyBwcHBfaW9jdGwoc3Ry dWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogCQkJ dmFsICY9IDB4ZmZmZjsKIAkJfQogCQl2aiA9IHNsaGNfaW5pdCh2YWwyKzEsIHZhbCsxKTsKLQkJ aWYgKCF2aikgewotCQkJbmV0ZGV2X2VycihwcHAtPmRldiwKLQkJCQkgICAiUFBQOiBubyBtZW1v cnkgKFZKIGNvbXByZXNzb3IpXG4iKTsKLQkJCWVyciA9IC1FTk9NRU07CisJCWlmIChJU19FUlIo dmopKSB7CisJCQllcnIgPSBQVFJfRVJSKHZqKTsKIAkJCWJyZWFrOwogCQl9CiAJCXBwcF9sb2Nr KHBwcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHB0cC5jIGIvZHJpdmVycy9uZXQv cHBwL3BwdHAuYwppbmRleCBjOTc0NTgxLi4xNjVlZTE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9wcHAvcHB0cC5jCisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHRwLmMKQEAgLTQyMCw2ICs0MjAs OSBAQCBzdGF0aWMgaW50IHBwdHBfYmluZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29j a2FkZHIgKnVzZXJ2YWRkciwKIAlzdHJ1Y3QgcHB0cF9vcHQgKm9wdCA9ICZwby0+cHJvdG8ucHB0 cDsKIAlpbnQgZXJyb3IgPSAwOwogCisJaWYgKHNvY2thZGRyX2xlbiA8IHNpemVvZihzdHJ1Y3Qg c29ja2FkZHJfcHBwb3gpKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCWxvY2tfc29jayhzayk7CiAK IAlvcHQtPnNyY19hZGRyID0gc3AtPnNhX2FkZHIucHB0cDsKQEAgLTQ0MSw2ICs0NDQsOSBAQCBz dGF0aWMgaW50IHBwdHBfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2Fk ZHIgKnVzZXJ2YWRkciwKIAlzdHJ1Y3QgZmxvd2k0IGZsNDsKIAlpbnQgZXJyb3IgPSAwOwogCisJ aWYgKHNvY2thZGRyX2xlbiA8IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfcHBwb3gpKQorCQlyZXR1 cm4gLUVJTlZBTDsKKwogCWlmIChzcC0+c2FfcHJvdG9jb2wgIT0gUFhfUFJPVE9fUFBUUCkKIAkJ cmV0dXJuIC1FSU5WQUw7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NsaXAvc2xoYy5jIGIv ZHJpdmVycy9uZXQvc2xpcC9zbGhjLmMKaW5kZXggMGEwYTY2NC4uMDQyNDI1ZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvc2xpcC9zbGhjLmMKKysrIGIvZHJpdmVycy9uZXQvc2xpcC9zbGhjLmMK QEAgLTg1LDggKzg1LDkgQEAgc3RhdGljIGxvbmcgZGVjb2RlKHVuc2lnbmVkIGNoYXIgKipjcHAp Owogc3RhdGljIHVuc2lnbmVkIGNoYXIgKiBwdXQxNih1bnNpZ25lZCBjaGFyICpjcCwgdW5zaWdu ZWQgc2hvcnQgeCk7CiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgcHVsbDE2KHVuc2lnbmVkIGNoYXIg KipjcHApOwogCi0vKiBJbml0aWFsaXplIGNvbXByZXNzaW9uIGRhdGEgc3RydWN0dXJlCisvKiBB bGxvY2F0ZSBjb21wcmVzc2lvbiBkYXRhIHN0cnVjdHVyZQogICoJc2xvdHMgbXVzdCBiZSBpbiBy YW5nZSAwIHRvIDI1NSAoemVybyBtZWFuaW5nIG5vIGNvbXByZXNzaW9uKQorICogUmV0dXJucyBw b2ludGVyIHRvIHN0cnVjdHVyZSBvciBFUlJfUFRSKCkgb24gZXJyb3IuCiAgKi8KIHN0cnVjdCBz bGNvbXByZXNzICoKIHNsaGNfaW5pdChpbnQgcnNsb3RzLCBpbnQgdHNsb3RzKQpAQCAtOTUsMTEg Kzk2LDE0IEBAIHNsaGNfaW5pdChpbnQgcnNsb3RzLCBpbnQgdHNsb3RzKQogCXJlZ2lzdGVyIHN0 cnVjdCBjc3RhdGUgKnRzOwogCXN0cnVjdCBzbGNvbXByZXNzICpjb21wOwogCisJaWYgKHJzbG90 cyA8IDAgfHwgcnNsb3RzID4gMjU1IHx8IHRzbG90cyA8IDAgfHwgdHNsb3RzID4gMjU1KQorCQly ZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwogCWNvbXAgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qg c2xjb21wcmVzcyksIEdGUF9LRVJORUwpOwogCWlmICghIGNvbXApCiAJCWdvdG8gb3V0X2ZhaWw7 CiAKLQlpZiAoIHJzbG90cyA+IDAgICYmICByc2xvdHMgPCAyNTYgKSB7CisJaWYgKHJzbG90cyA+ IDApIHsKIAkJc2l6ZV90IHJzaXplID0gcnNsb3RzICogc2l6ZW9mKHN0cnVjdCBjc3RhdGUpOwog CQljb21wLT5yc3RhdGUgPSBremFsbG9jKHJzaXplLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCEgY29t cC0+cnN0YXRlKQpAQCAtMTA3LDcgKzExMSw3IEBAIHNsaGNfaW5pdChpbnQgcnNsb3RzLCBpbnQg dHNsb3RzKQogCQljb21wLT5yc2xvdF9saW1pdCA9IHJzbG90cyAtIDE7CiAJfQogCi0JaWYgKCB0 c2xvdHMgPiAwICAmJiAgdHNsb3RzIDwgMjU2ICkgeworCWlmICh0c2xvdHMgPiAwKSB7CiAJCXNp emVfdCB0c2l6ZSA9IHRzbG90cyAqIHNpemVvZihzdHJ1Y3QgY3N0YXRlKTsKIAkJY29tcC0+dHN0 YXRlID0ga3phbGxvYyh0c2l6ZSwgR0ZQX0tFUk5FTCk7CiAJCWlmICghIGNvbXAtPnRzdGF0ZSkK QEAgLTE0Miw3ICsxNDYsNyBAQCBvdXRfZnJlZTI6CiBvdXRfZnJlZToKIAlrZnJlZShjb21wKTsK IG91dF9mYWlsOgotCXJldHVybiBOVUxMOworCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogfQog CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NsaXAvc2xpcC5jIGIvZHJpdmVycy9uZXQvc2xp cC9zbGlwLmMKaW5kZXggYmEwODM0MS4uMWE2ZTJlYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv c2xpcC9zbGlwLmMKKysrIGIvZHJpdmVycy9uZXQvc2xpcC9zbGlwLmMKQEAgLTE2NCw3ICsxNjQs NyBAQCBzdGF0aWMgaW50IHNsX2FsbG9jX2J1ZnMoc3RydWN0IHNsaXAgKnNsLCBpbnQgbXR1KQog CWlmIChjYnVmZiA9PSBOVUxMKQogCQlnb3RvIGVycl9leGl0OwogCXNsY29tcCA9IHNsaGNfaW5p dCgxNiwgMTYpOwotCWlmIChzbGNvbXAgPT0gTlVMTCkKKwlpZiAoSVNfRVJSKHNsY29tcCkpCiAJ CWdvdG8gZXJyX2V4aXQ7CiAjZW5kaWYKIAlzcGluX2xvY2tfYmgoJnNsLT5sb2NrKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3dhbi94MjVfYXN5LmMgYi9kcml2ZXJzL25ldC93YW4veDI1X2Fz eS5jCmluZGV4IDhhMTBiYjcuLmI4MGNhYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dhbi94 MjVfYXN5LmMKKysrIGIvZHJpdmVycy9uZXQvd2FuL3gyNV9hc3kuYwpAQCAtNTQ3LDE2ICs1NDcs MTIgQEAgc3RhdGljIHZvaWQgeDI1X2FzeV9yZWNlaXZlX2J1ZihzdHJ1Y3QgdHR5X3N0cnVjdCAq dHR5LAogCiBzdGF0aWMgaW50IHgyNV9hc3lfb3Blbl90dHkoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0 eSkKIHsKLQlzdHJ1Y3QgeDI1X2FzeSAqc2wgPSB0dHktPmRpc2NfZGF0YTsKKwlzdHJ1Y3QgeDI1 X2FzeSAqc2w7CiAJaW50IGVycjsKIAogCWlmICh0dHktPm9wcy0+d3JpdGUgPT0gTlVMTCkKIAkJ cmV0dXJuIC1FT1BOT1RTVVBQOwogCi0JLyogRmlyc3QgbWFrZSBzdXJlIHdlJ3JlIG5vdCBhbHJl YWR5IGNvbm5lY3RlZC4gKi8KLQlpZiAoc2wgJiYgc2wtPm1hZ2ljID09IFgyNV9BU1lfTUFHSUMp Ci0JCXJldHVybiAtRUVYSVNUOwotCiAJLyogT0suICBGaW5kIGEgZnJlZSBYLjI1IGNoYW5uZWwg dG8gdXNlLiAqLwogCXNsID0geDI1X2FzeV9hbGxvYygpOwogCWlmIChzbCA9PSBOVUxMKQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9wYXJpc2MvaW9tbXUtaGVscGVycy5oIGIvZHJpdmVycy9wYXJpc2Mv aW9tbXUtaGVscGVycy5oCmluZGV4IDhjMzM0OTEuLmM2YWEzODggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvcGFyaXNjL2lvbW11LWhlbHBlcnMuaAorKysgYi9kcml2ZXJzL3BhcmlzYy9pb21tdS1oZWxw ZXJzLmgKQEAgLTEwNCw3ICsxMDQsMTEgQEAgaW9tbXVfY29hbGVzY2VfY2h1bmtzKHN0cnVjdCBp b2MgKmlvYywgc3RydWN0IGRldmljZSAqZGV2LAogCXN0cnVjdCBzY2F0dGVybGlzdCAqY29udGln X3NnOwkgICAvKiBjb250aWcgY2h1bmsgaGVhZCAqLwogCXVuc2lnbmVkIGxvbmcgZG1hX29mZnNl dCwgZG1hX2xlbjsgLyogc3RhcnQvbGVuIG9mIERNQSBzdHJlYW0gKi8KIAl1bnNpZ25lZCBpbnQg bl9tYXBwaW5ncyA9IDA7Ci0JdW5zaWduZWQgaW50IG1heF9zZWdfc2l6ZSA9IGRtYV9nZXRfbWF4 X3NlZ19zaXplKGRldik7CisJdW5zaWduZWQgaW50IG1heF9zZWdfc2l6ZSA9IG1pbihkbWFfZ2V0 X21heF9zZWdfc2l6ZShkZXYpLAorCQkJCQkodW5zaWduZWQpRE1BX0NIVU5LX1NJWkUpOworCXVu c2lnbmVkIGludCBtYXhfc2VnX2JvdW5kYXJ5ID0gZG1hX2dldF9zZWdfYm91bmRhcnkoZGV2KSAr IDE7CisJaWYgKG1heF9zZWdfYm91bmRhcnkpCS8qIGNoZWNrIGlmIHRoZSBhZGRpdGlvbiBhYm92 ZSBkaWRuJ3Qgb3ZlcmZsb3cgKi8KKwkJbWF4X3NlZ19zaXplID0gbWluKG1heF9zZWdfc2l6ZSwg bWF4X3NlZ19ib3VuZGFyeSk7CiAKIAl3aGlsZSAobmVudHMgPiAwKSB7CiAKQEAgLTEzOSwxNCAr MTQzLDExIEBAIGlvbW11X2NvYWxlc2NlX2NodW5rcyhzdHJ1Y3QgaW9jICppb2MsIHN0cnVjdCBk ZXZpY2UgKmRldiwKIAogCQkJLyoKIAkJCSoqIEZpcnN0IG1ha2Ugc3VyZSBjdXJyZW50IGRtYSBz dHJlYW0gd29uJ3QKLQkJCSoqIGV4Y2VlZCBETUFfQ0hVTktfU0laRSBpZiB3ZSBjb2FsZXNjZSB0 aGUKKwkJCSoqIGV4Y2VlZCBtYXhfc2VnX3NpemUgaWYgd2UgY29hbGVzY2UgdGhlCiAJCQkqKiBu ZXh0IGVudHJ5LgogCQkJKi8gICAKLQkJCWlmKHVubGlrZWx5KEFMSUdOKGRtYV9sZW4gKyBkbWFf b2Zmc2V0ICsgc3RhcnRzZy0+bGVuZ3RoLAotCQkJCQkgICAgSU9WUF9TSVpFKSA+IERNQV9DSFVO S19TSVpFKSkKLQkJCQlicmVhazsKLQotCQkJaWYgKHN0YXJ0c2ctPmxlbmd0aCArIGRtYV9sZW4g PiBtYXhfc2VnX3NpemUpCisJCQlpZiAodW5saWtlbHkoQUxJR04oZG1hX2xlbiArIGRtYV9vZmZz ZXQgKyBzdGFydHNnLT5sZW5ndGgsIElPVlBfU0laRSkgPgorCQkJCSAgICAgbWF4X3NlZ19zaXpl KSkKIAkJCQlicmVhazsKIAogCQkJLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NsYXNzL2Nk Yy1hY20uYyBiL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYwppbmRleCBjYTY2NmQwLi42NjBj MzM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmMKKysrIGIvZHJpdmVy cy91c2IvY2xhc3MvY2RjLWFjbS5jCkBAIC05MTYsNiArOTE2LDEwIEBAIHN0YXRpYyBpbnQgYWNt X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAogCiAJLyogbm9ybWFsIHF1aXJrcyAq LwogCXF1aXJrcyA9ICh1bnNpZ25lZCBsb25nKWlkLT5kcml2ZXJfaW5mbzsKKworCWlmIChxdWly a3MgPT0gSUdOT1JFX0RFVklDRSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKIAludW1fcnhfYnVmID0g KHF1aXJrcyA9PSBTSU5HTEVfUlhfVVJCKSA/IDEgOiBBQ01fTlI7CiAKIAkvKiBoYW5kbGUgcXVp cmtzIGRlYWRseSB0byBub3JtYWwgcHJvYmluZyovCkBAIC0xNjYyLDYgKzE2NjYsMTEgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGFjbV9pZHNbXSA9IHsKIAkuZHJpdmVyX2lu Zm8gPSBOT19EQVRBX0lOVEVSRkFDRSwKIAl9LAogCisJLyogRXhjbHVkZSBJbmZpbmVvbiBGbGFz aCBMb2FkZXIgdXRpbGl0eSAqLworCXsgVVNCX0RFVklDRSgweDA1OGIsIDB4MDA0MSksCisJLmRy aXZlcl9pbmZvID0gSUdOT1JFX0RFVklDRSwKKwl9LAorCiAJLyogY29udHJvbCBpbnRlcmZhY2Vz IHdpdGhvdXQgYW55IHByb3RvY29sIHNldCAqLwogCXsgVVNCX0lOVEVSRkFDRV9JTkZPKFVTQl9D TEFTU19DT01NLCBVU0JfQ0RDX1NVQkNMQVNTX0FDTSwKIAkJVVNCX0NEQ19QUk9UT19OT05FKSB9 LApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2xhc3MvY2RjLWFjbS5oIGIvZHJpdmVycy91c2Iv Y2xhc3MvY2RjLWFjbS5oCmluZGV4IDdhYTVlOWEuLjlhZjVhZDIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvdXNiL2NsYXNzL2NkYy1hY20uaAorKysgYi9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmgK QEAgLTEyNyw0ICsxMjcsNSBAQCBzdHJ1Y3QgYWNtIHsKICNkZWZpbmUgTk9fQ0FQX0xJTkUJCQk0 CiAjZGVmaW5lIE5PVF9BX01PREVNCQkJOAogI2RlZmluZSBOT19EQVRBX0lOVEVSRkFDRQkJMTYK KyNkZWZpbmUgSUdOT1JFX0RFVklDRQkJCTMyCiAjZGVmaW5lIENMRUFSX0hBTFRfQ09ORElUSU9O UwkJQklUKDcpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jbGFzcy91c2JscC5jIGIvZHJpdmVy cy91c2IvY2xhc3MvdXNibHAuYwppbmRleCBjYjNhOTMyLi5hODRjODU3IDEwMDY0NAotLS0gYS9k cml2ZXJzL3VzYi9jbGFzcy91c2JscC5jCisrKyBiL2RyaXZlcnMvdXNiL2NsYXNzL3VzYmxwLmMK QEAgLTg2MSwxMSArODYxLDExIEBAIHN0YXRpYyBpbnQgdXNibHBfd3dhaXQoc3RydWN0IHVzYmxw ICp1c2JscCwgaW50IG5vbmJsb2NrKQogCiAJYWRkX3dhaXRfcXVldWUoJnVzYmxwLT53d2FpdCwg JndhaXRhKTsKIAlmb3IgKDs7KSB7Ci0JCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5URVJSVVBU SUJMRSk7CiAJCWlmIChtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJnVzYmxwLT5tdXQpKSB7CiAJ CQlyYyA9IC1FSU5UUjsKIAkJCWJyZWFrOwogCQl9CisJCXNldF9jdXJyZW50X3N0YXRlKFRBU0tf SU5URVJSVVBUSUJMRSk7CiAJCXJjID0gdXNibHBfd3Rlc3QodXNibHAsIG5vbmJsb2NrKTsKIAkJ bXV0ZXhfdW5sb2NrKCZ1c2JscC0+bXV0KTsKIAkJaWYgKHJjIDw9IDApCmRpZmYgLS1naXQgYS9k cml2ZXJzL3VzYi9jb3JlL2NvbmZpZy5jIGIvZHJpdmVycy91c2IvY29yZS9jb25maWcuYwppbmRl eCA0NzhkNzFiLi5mZmM2OTg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2NvbmZpZy5j CisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvY29uZmlnLmMKQEAgLTExNyw3ICsxMTcsOCBAQCBzdGF0 aWMgdm9pZCB1c2JfcGFyc2Vfc3NfZW5kcG9pbnRfY29tcGFuaW9uKHN0cnVjdCBkZXZpY2UgKmRk ZXYsIGludCBjZmdubywKIAkJICAgVVNCX1NTX01VTFQoZGVzYy0+Ym1BdHRyaWJ1dGVzKSA+IDMp IHsKIAkJZGV2X3dhcm4oZGRldiwgIklzb2MgZW5kcG9pbnQgaGFzIE11bHQgb2YgJWQgaW4gIgog CQkJCSJjb25maWcgJWQgaW50ZXJmYWNlICVkIGFsdHNldHRpbmcgJWQgZXAgJWQ6ICIKLQkJCQki c2V0dGluZyB0byAzXG4iLCBkZXNjLT5ibUF0dHJpYnV0ZXMgKyAxLAorCQkJCSJzZXR0aW5nIHRv IDNcbiIsCisJCQkJVVNCX1NTX01VTFQoZGVzYy0+Ym1BdHRyaWJ1dGVzKSwKIAkJCQljZmdubywg aW51bSwgYXNudW0sIGVwLT5kZXNjLmJFbmRwb2ludEFkZHJlc3MpOwogCQllcC0+c3NfZXBfY29t cC5ibUF0dHJpYnV0ZXMgPSAyOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvd2hj aS9xc2V0LmMgYi9kcml2ZXJzL3VzYi9ob3N0L3doY2kvcXNldC5jCmluZGV4IDc2MDgzYWUuLjQx MmI0ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvd2hjaS9xc2V0LmMKKysrIGIvZHJp dmVycy91c2IvaG9zdC93aGNpL3FzZXQuYwpAQCAtMzc3LDYgKzM3NywxMCBAQCBzdGF0aWMgaW50 IHFzZXRfZmlsbF9wYWdlX2xpc3Qoc3RydWN0IHdoYyAqd2hjLCBzdHJ1Y3Qgd2hjX3N0ZCAqc3Rk LCBnZnBfdCBtZW1fZgogCWlmIChzdGQtPnBsX3ZpcnQgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9N RU07CiAJc3RkLT5kbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHdoYy0+d3VzYmhjLmRldiwgc3Rk LT5wbF92aXJ0LCBwbF9sZW4sIERNQV9UT19ERVZJQ0UpOworCWlmIChkbWFfbWFwcGluZ19lcnJv cih3aGMtPnd1c2JoYy5kZXYsIHN0ZC0+ZG1hX2FkZHIpKSB7CisJCWtmcmVlKHN0ZC0+cGxfdmly dCk7CisJCXJldHVybiAtRUZBVUxUOworCX0KIAogCWZvciAocCA9IDA7IHAgPCBzdGQtPm51bV9w b2ludGVyczsgcCsrKSB7CiAJCXN0ZC0+cGxfdmlydFtwXS5idWZfcHRyID0gY3B1X3RvX2xlNjQo ZG1hX2FkZHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jIGIvZHJp dmVycy91c2IvaG9zdC94aGNpLXBjaS5jCmluZGV4IGE0MmVmMDkuLjUyMjM4ODQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L3ho Y2ktcGNpLmMKQEAgLTEwNiw2ICsxMDYsOCBAQCBzdGF0aWMgdm9pZCB4aGNpX3BjaV9xdWlya3Mo c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgeGhjaV9oY2QgKnhoY2kpCiAJCXhoY2ktPnF1aXJr cyB8PSBYSENJX1RSVVNUX1RYX0xFTkdUSDsKIAogCWlmIChwZGV2LT52ZW5kb3IgPT0gUENJX1ZF TkRPUl9JRF9JTlRFTCkKKwkJeGhjaS0+cXVpcmtzIHw9IFhIQ0lfSU5URUxfSE9TVDsKKwlpZiAo cGRldi0+dmVuZG9yID09IFBDSV9WRU5ET1JfSURfSU5URUwpCiAJCXhoY2ktPnF1aXJrcyB8PSBY SENJX0FWT0lEX0JFSTsKIAlpZiAocGRldi0+dmVuZG9yID09IFBDSV9WRU5ET1JfSURfSU5URUwg JiYKIAkJCXBkZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX0lOVEVMX1BBTlRIRVJQT0lOVF9Y SENJKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuYyBiL2RyaXZlcnMvdXNi L2hvc3QveGhjaS5jCmluZGV4IDJmNTFkZWMuLmQ3ZGRiNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dXNiL2hvc3QveGhjaS5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5jCkBAIC0xNzAsNiAr MTcwLDE2IEBAIGludCB4aGNpX3Jlc2V0KHN0cnVjdCB4aGNpX2hjZCAqeGhjaSkKIAljb21tYW5k IHw9IENNRF9SRVNFVDsKIAl4aGNpX3dyaXRlbCh4aGNpLCBjb21tYW5kLCAmeGhjaS0+b3BfcmVn cy0+Y29tbWFuZCk7CiAKKwkvKiBFeGlzdGluZyBJbnRlbCB4SENJIGNvbnRyb2xsZXJzIHJlcXVp cmUgYSBkZWxheSBvZiAxIG1TLAorCSAqIGFmdGVyIHNldHRpbmcgdGhlIENNRF9SRVNFVCBiaXQs IGFuZCBiZWZvcmUgYWNjZXNzaW5nIGFueQorCSAqIEhDIHJlZ2lzdGVycy4gVGhpcyBhbGxvd3Mg dGhlIEhDIHRvIGNvbXBsZXRlIHRoZQorCSAqIHJlc2V0IG9wZXJhdGlvbiBhbmQgYmUgcmVhZHkg Zm9yIEhDIHJlZ2lzdGVyIGFjY2Vzcy4KKwkgKiBXaXRob3V0IHRoaXMgZGVsYXksIHRoZSBzdWJz ZXF1ZW50IEhDIHJlZ2lzdGVyIGFjY2VzcywKKwkgKiBtYXkgcmVzdWx0IGluIGEgc3lzdGVtIGhh bmcgdmVyeSByYXJlbHkuCisJICovCisJaWYgKHhoY2ktPnF1aXJrcyAmIFhIQ0lfSU5URUxfSE9T VCkKKwkJdWRlbGF5KDEwMDApOworCiAJcmV0ID0gaGFuZHNoYWtlKHhoY2ksICZ4aGNpLT5vcF9y ZWdzLT5jb21tYW5kLAogCQkJQ01EX1JFU0VULCAwLCAxMCAqIDEwMDAgKiAxMDAwKTsKIAlpZiAo cmV0KQpAQCAtNDEyMCw4ICs0MTMwLDE2IEBAIGludCB4aGNpX3VwZGF0ZV9odWJfZGV2aWNlKHN0 cnVjdCB1c2JfaGNkICpoY2QsIHN0cnVjdCB1c2JfZGV2aWNlICpoZGV2LAogCWN0cmxfY3R4LT5h ZGRfZmxhZ3MgfD0gY3B1X3RvX2xlMzIoU0xPVF9GTEFHKTsKIAlzbG90X2N0eCA9IHhoY2lfZ2V0 X3Nsb3RfY3R4KHhoY2ksIGNvbmZpZ19jbWQtPmluX2N0eCk7CiAJc2xvdF9jdHgtPmRldl9pbmZv IHw9IGNwdV90b19sZTMyKERFVl9IVUIpOworCS8qCisJICogcmVmZXIgdG8gc2VjdGlvbiA2LjIu MjogTVRUIHNob3VsZCBiZSAwIGZvciBmdWxsIHNwZWVkIGh1YiwKKwkgKiBidXQgaXQgbWF5IGJl IGFscmVhZHkgc2V0IHRvIDEgd2hlbiBzZXR1cCBhbiB4SENJIHZpcnR1YWwKKwkgKiBkZXZpY2Us IHNvIGNsZWFyIGl0IGFueXdheS4KKwkgKi8KIAlpZiAodHQtPm11bHRpKQogCQlzbG90X2N0eC0+ ZGV2X2luZm8gfD0gY3B1X3RvX2xlMzIoREVWX01UVCk7CisJZWxzZSBpZiAoaGRldi0+c3BlZWQg PT0gVVNCX1NQRUVEX0ZVTEwpCisJCXNsb3RfY3R4LT5kZXZfaW5mbyAmPSBjcHVfdG9fbGUzMih+ REVWX01UVCk7CisKIAlpZiAoeGhjaS0+aGNpX3ZlcnNpb24gPiAweDk1KSB7CiAJCXhoY2lfZGJn KHhoY2ksICJ4SENJIHZlcnNpb24gJXggbmVlZHMgaHViICIKIAkJCQkiVFQgdGhpbmsgdGltZSBh bmQgbnVtYmVyIG9mIHBvcnRzXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNp LmggYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuaAppbmRleCBkNjc2YWUwLi4xNWY1OGQxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuaAorKysgYi9kcml2ZXJzL3VzYi9ob3N0L3ho Y2kuaApAQCAtMTQ5Miw2ICsxNDkyLDcgQEAgc3RydWN0IHhoY2lfaGNkIHsKICNkZWZpbmUJWEhD SV9TV19CV19DSEVDS0lORwkoMSA8PCA4KQogI2RlZmluZSBYSENJX0FNRF8weDk2X0hPU1QJKDEg PDwgOSkKICNkZWZpbmUgWEhDSV9UUlVTVF9UWF9MRU5HVEgJKDEgPDwgMTApCisjZGVmaW5lIFhI Q0lfSU5URUxfSE9TVAkJKDEgPDwgMTIpCiAjZGVmaW5lIFhIQ0lfU1BVUklPVVNfUkVCT09UCSgx IDw8IDEzKQogI2RlZmluZSBYSENJX0NPTVBfTU9ERV9RVUlSSwkoMSA8PCAxNCkKICNkZWZpbmUg WEhDSV9BVk9JRF9CRUkJCSgxIDw8IDE1KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbXVzYi9t dXNiX2NvcmUuYyBiL2RyaXZlcnMvdXNiL211c2IvbXVzYl9jb3JlLmMKaW5kZXggNmY3ZDg0ZS4u ZmIwNWNhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvbXVzYi9tdXNiX2NvcmUuYworKysgYi9k cml2ZXJzL3VzYi9tdXNiL211c2JfY29yZS5jCkBAIC0xMzEsNyArMTMxLDcgQEAgc3RhdGljIGlu bGluZSBzdHJ1Y3QgbXVzYiAqZGV2X3RvX211c2Ioc3RydWN0IGRldmljZSAqZGV2KQogLyotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKi8KIAogI2lmbmRlZiBDT05GSUdfQkxBQ0tGSU4KLXN0YXRpYyBpbnQgbXVz Yl91bHBpX3JlYWQoc3RydWN0IG90Z190cmFuc2NlaXZlciAqb3RnLCB1MzIgb2Zmc2V0KQorc3Rh dGljIGludCBtdXNiX3VscGlfcmVhZChzdHJ1Y3Qgb3RnX3RyYW5zY2VpdmVyICpvdGcsIHUzMiBy ZWcpCiB7CiAJdm9pZCBfX2lvbWVtICphZGRyID0gb3RnLT5pb19wcml2OwogCWludAlpID0gMDsK QEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgaW50IG11c2JfdWxwaV9yZWFkKHN0cnVjdCBvdGdf dHJhbnNjZWl2ZXIgKm90ZywgdTMyIG9mZnNldCkKIAkgKiBVTFBJQ2FyS2l0Q29udHJvbERpc2Fi bGVVVE1JIGFmdGVyIGNsZWFyaW5nIFBPV0VSX1NVU1BFTkRNLgogCSAqLwogCi0JbXVzYl93cml0 ZWIoYWRkciwgTVVTQl9VTFBJX1JFR19BRERSLCAodTgpb2Zmc2V0KTsKKwltdXNiX3dyaXRlYihh ZGRyLCBNVVNCX1VMUElfUkVHX0FERFIsICh1OClyZWcpOwogCW11c2Jfd3JpdGViKGFkZHIsIE1V U0JfVUxQSV9SRUdfQ09OVFJPTCwKIAkJCU1VU0JfVUxQSV9SRUdfUkVRIHwgTVVTQl9VTFBJX1JE Tl9XUik7CiAKQEAgLTE2NSw4ICsxNjUsNyBAQCBzdGF0aWMgaW50IG11c2JfdWxwaV9yZWFkKHN0 cnVjdCBvdGdfdHJhbnNjZWl2ZXIgKm90ZywgdTMyIG9mZnNldCkKIAlyZXR1cm4gbXVzYl9yZWFk YihhZGRyLCBNVVNCX1VMUElfUkVHX0RBVEEpOwogfQogCi1zdGF0aWMgaW50IG11c2JfdWxwaV93 cml0ZShzdHJ1Y3Qgb3RnX3RyYW5zY2VpdmVyICpvdGcsCi0JCXUzMiBvZmZzZXQsIHUzMiBkYXRh KQorc3RhdGljIGludCBtdXNiX3VscGlfd3JpdGUoc3RydWN0IG90Z190cmFuc2NlaXZlciAqb3Rn LCB1MzIgdmFsLCB1MzIgcmVnKQogewogCXZvaWQgX19pb21lbSAqYWRkciA9IG90Zy0+aW9fcHJp djsKIAlpbnQJaSA9IDA7CkBAIC0xNzgsOCArMTc3LDggQEAgc3RhdGljIGludCBtdXNiX3VscGlf d3JpdGUoc3RydWN0IG90Z190cmFuc2NlaXZlciAqb3RnLAogCXBvd2VyICY9IH5NVVNCX1BPV0VS X1NVU1BFTkRNOwogCW11c2Jfd3JpdGViKGFkZHIsIE1VU0JfUE9XRVIsIHBvd2VyKTsKIAotCW11 c2Jfd3JpdGViKGFkZHIsIE1VU0JfVUxQSV9SRUdfQUREUiwgKHU4KW9mZnNldCk7Ci0JbXVzYl93 cml0ZWIoYWRkciwgTVVTQl9VTFBJX1JFR19EQVRBLCAodTgpZGF0YSk7CisJbXVzYl93cml0ZWIo YWRkciwgTVVTQl9VTFBJX1JFR19BRERSLCAodTgpcmVnKTsKKwltdXNiX3dyaXRlYihhZGRyLCBN VVNCX1VMUElfUkVHX0RBVEEsICh1OCl2YWwpOwogCW11c2Jfd3JpdGViKGFkZHIsIE1VU0JfVUxQ SV9SRUdfQ09OVFJPTCwgTVVTQl9VTFBJX1JFR19SRVEpOwogCiAJd2hpbGUgKCEobXVzYl9yZWFk YihhZGRyLCBNVVNCX1VMUElfUkVHX0NPTlRST0wpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9z ZXJpYWwvY3AyMTB4LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMKaW5kZXggMWExOTcy NC4uMTM5ODU5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2NwMjEweC5jCisrKyBi L2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHguYwpAQCAtMTM4LDcgKzEzOCw2IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpZF90YWJsZVtdID0gewogCXsgVVNCX0RFVklDRSgw eDEwQzQsIDB4RUE2MCkgfSwgLyogU2lsaWNvbiBMYWJzIGZhY3RvcnkgZGVmYXVsdCAqLwogCXsg VVNCX0RFVklDRSgweDEwQzQsIDB4RUE2MSkgfSwgLyogU2lsaWNvbiBMYWJzIGZhY3RvcnkgZGVm YXVsdCAqLwogCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4RUE3MCkgfSwgLyogU2lsaWNvbiBMYWJz IGZhY3RvcnkgZGVmYXVsdCAqLwotCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4RUE4MCkgfSwgLyog U2lsaWNvbiBMYWJzIGZhY3RvcnkgZGVmYXVsdCAqLwogCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4 RUE3MSkgfSwgLyogSW5maW5pdHkgR1BTLU1JQy0xIFJhZGlvIE1vbm9waG9uZSAqLwogCXsgVVNC X0RFVklDRSgweDEwQzQsIDB4RjAwMSkgfSwgLyogRWxhbiBEaWdpdGFsIFN5c3RlbXMgVVNCc2Nv cGU1MCAqLwogCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4RjAwMikgfSwgLyogRWxhbiBEaWdpdGFs IFN5c3RlbXMgVVNCd2F2ZTEyICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0 aW9uLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMKaW5kZXggN2U2ZDJlYy4uNWEzMTE2 OSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jCisrKyBiL2RyaXZlcnMv dXNiL3NlcmlhbC9vcHRpb24uYwpAQCAtMTYyLDYgKzE2Miw3IEBAIHN0YXRpYyB2b2lkIG9wdGlv bl9pbnN0YXRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiKTsKICNkZWZpbmUgTk9WQVRFTFdJUkVM RVNTX1BST0RVQ1RfSFNQQV9FTUJFRERFRF9ISUdIU1BFRUQJMHg5MDAxCiAjZGVmaW5lIE5PVkFU RUxXSVJFTEVTU19QUk9EVUNUX0UzNjIJCTB4OTAxMAogI2RlZmluZSBOT1ZBVEVMV0lSRUxFU1Nf UFJPRFVDVF9FMzcxCQkweDkwMTEKKyNkZWZpbmUgTk9WQVRFTFdJUkVMRVNTX1BST0RVQ1RfVTYy MEwJCTB4OTAyMgogI2RlZmluZSBOT1ZBVEVMV0lSRUxFU1NfUFJPRFVDVF9HMgkJMHhBMDEwCiAj ZGVmaW5lIE5PVkFURUxXSVJFTEVTU19QUk9EVUNUX01DNTUxCQkweEIwMDEKIApAQCAtMzU1LDYg KzM1Niw3IEBAIHN0YXRpYyB2b2lkIG9wdGlvbl9pbnN0YXRfY2FsbGJhY2soc3RydWN0IHVyYiAq dXJiKTsKIC8qIFRoaXMgaXMgdGhlIDRHIFhTIFN0aWNrIFcxNCBhLmsuYS4gTW9iaWxjb20gRGVi aXRlbCBTdXJmLVN0aWNrICoKICAqIEl0IHNlZW1zIHRvIGNvbnRhaW4gYSBRdWFsY29tbSBRU0M2 MjQwLzYyOTAgY2hpcHNldCAgICAgICAgICAgICovCiAjZGVmaW5lIEZPVVJfR19TWVNURU1TX1BS T0RVQ1RfVzE0CQkweDk2MDMKKyNkZWZpbmUgRk9VUl9HX1NZU1RFTVNfUFJPRFVDVF9XMTAwCQkw eDliMDEKIAogLyogaUJhbGwgMy41RyBjb25uZWN0IHdpcmVsZXNzIG1vZGVtICovCiAjZGVmaW5l IElCQUxMXzNfNUdfQ09OTkVDVAkJCTB4OTYwNQpAQCAtNTI1LDYgKzUyNywxMSBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IG9wdGlvbl9ibGFja2xpc3RfaW5mbyBmb3VyX2dfdzE0X2JsYWNrbGlzdCA9 IHsKIAkuc2VuZHNldHVwID0gQklUKDApIHwgQklUKDEpLAogfTsKIAorc3RhdGljIGNvbnN0IHN0 cnVjdCBvcHRpb25fYmxhY2tsaXN0X2luZm8gZm91cl9nX3cxMDBfYmxhY2tsaXN0ID0geworCS5z ZW5kc2V0dXAgPSBCSVQoMSkgfCBCSVQoMiksCisJLnJlc2VydmVkID0gQklUKDMpLAorfTsKKwog c3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb25fYmxhY2tsaXN0X2luZm8gYWxjYXRlbF94MjAwX2Js YWNrbGlzdCA9IHsKIAkuc2VuZHNldHVwID0gQklUKDApIHwgQklUKDEpLAogCS5yZXNlcnZlZCA9 IEJJVCg0KSwKQEAgLTEwNTgsNiArMTA2NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2Rl dmljZV9pZCBvcHRpb25faWRzW10gPSB7CiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5G TyhOT1ZBVEVMV0lSRUxFU1NfVkVORE9SX0lELCBOT1ZBVEVMV0lSRUxFU1NfUFJPRFVDVF9NQzU1 MSwgMHhmZiwgMHhmZiwgMHhmZikgfSwKIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZP KE5PVkFURUxXSVJFTEVTU19WRU5ET1JfSUQsIE5PVkFURUxXSVJFTEVTU19QUk9EVUNUX0UzNjIs IDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhO T1ZBVEVMV0lSRUxFU1NfVkVORE9SX0lELCBOT1ZBVEVMV0lSRUxFU1NfUFJPRFVDVF9FMzcxLCAw eGZmLCAweGZmLCAweGZmKSB9LAorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oTk9W QVRFTFdJUkVMRVNTX1ZFTkRPUl9JRCwgTk9WQVRFTFdJUkVMRVNTX1BST0RVQ1RfVTYyMEwsIDB4 ZmYsIDB4MDAsIDB4MDApIH0sCiAKIAl7IFVTQl9ERVZJQ0UoQU1PSV9WRU5ET1JfSUQsIEFNT0lf UFJPRFVDVF9IMDEpIH0sCiAJeyBVU0JfREVWSUNFKEFNT0lfVkVORE9SX0lELCBBTU9JX1BST0RV Q1RfSDAxQSkgfSwKQEAgLTE2NDAsNiArMTY0OCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNi X2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7CiAJeyBVU0JfREVWSUNFKExPTkdDSEVFUl9WRU5E T1JfSUQsIEZPVVJfR19TWVNURU1TX1BST0RVQ1RfVzE0KSwKICAgCSAgLmRyaXZlcl9pbmZvID0g KGtlcm5lbF91bG9uZ190KSZmb3VyX2dfdzE0X2JsYWNrbGlzdAogICAJfSwKKwl7IFVTQl9ERVZJ Q0UoTE9OR0NIRUVSX1ZFTkRPUl9JRCwgRk9VUl9HX1NZU1RFTVNfUFJPRFVDVF9XMTAwKSwKKwkg IC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmZm91cl9nX3cxMDBfYmxhY2tsaXN0CisJ fSwKIAl7IFVTQl9ERVZJQ0UoTE9OR0NIRUVSX1ZFTkRPUl9JRCwgWk9PTV9QUk9EVUNUXzQ1OTcp IH0sCiAJeyBVU0JfREVWSUNFKExPTkdDSEVFUl9WRU5ET1JfSUQsIElCQUxMXzNfNUdfQ09OTkVD VCkgfSwKIAl7IFVTQl9ERVZJQ0UoSEFJRVJfVkVORE9SX0lELCBIQUlFUl9QUk9EVUNUX0NFMTAw KSB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3RpX3VzYl8zNDEwXzUwNTIuYyBi L2RyaXZlcnMvdXNiL3NlcmlhbC90aV91c2JfMzQxMF81MDUyLmMKaW5kZXggODg1ZDE1ZC4uYWQw NDQ1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3RpX3VzYl8zNDEwXzUwNTIuYwor KysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfdXNiXzM0MTBfNTA1Mi5jCkBAIC0xNjQsNyArMTY0 LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBwcm9kdWN0XzUwNTJfY291bnQ7CiAvKiB0aGUgYXJy YXkgZGltZW5zaW9uIGlzIHRoZSBudW1iZXIgb2YgZGVmYXVsdCBlbnRyaWVzIHBsdXMgKi8KIC8q IFRJX0VYVFJBX1ZJRF9QSURfQ09VTlQgdXNlciBkZWZpbmVkIGVudHJpZXMgcGx1cyAxIHRlcm1p bmF0aW5nICovCiAvKiBudWxsIGVudHJ5ICovCi1zdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQg dGlfaWRfdGFibGVfMzQxMFsxNStUSV9FWFRSQV9WSURfUElEX0NPVU5UKzFdID0geworc3RhdGlj IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHRpX2lkX3RhYmxlXzM0MTBbMTcrVElfRVhUUkFfVklEX1BJ RF9DT1VOVCsxXSA9IHsKIAl7IFVTQl9ERVZJQ0UoVElfVkVORE9SX0lELCBUSV8zNDEwX1BST0RV Q1RfSUQpIH0sCiAJeyBVU0JfREVWSUNFKFRJX1ZFTkRPUl9JRCwgVElfMzQxMF9FWjQzMF9JRCkg fSwKIAl7IFVTQl9ERVZJQ0UoTVRTX1ZFTkRPUl9JRCwgTVRTX0dTTV9OT19GV19QUk9EVUNUX0lE KSB9LApAQCAtMTgxLDYgKzE4MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCB0aV9p ZF90YWJsZV8zNDEwWzE1K1RJX0VYVFJBX1ZJRF9QSURfQ09VTlQrMV0gPSB7CiAJeyBVU0JfREVW SUNFKEFCQk9UVF9WRU5ET1JfSUQsIEFCQk9UVF9TVEVSRU9fUExVR19JRCkgfSwKIAl7IFVTQl9E RVZJQ0UoQUJCT1RUX1ZFTkRPUl9JRCwgQUJCT1RUX1NUUklQX1BPUlRfSUQpIH0sCiAJeyBVU0Jf REVWSUNFKFRJX1ZFTkRPUl9JRCwgRlJJMl9QUk9EVUNUX0lEKSB9LAorCXsgVVNCX0RFVklDRShI T05FWVdFTExfVkVORE9SX0lELCBIT05FWVdFTExfSEdJODBfUFJPRFVDVF9JRCkgfSwKIH07CiAK IHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCB0aV9pZF90YWJsZV81MDUyWzUrVElfRVhUUkFf VklEX1BJRF9DT1VOVCsxXSA9IHsKQEAgLTE5MCw3ICsxOTEsNyBAQCBzdGF0aWMgc3RydWN0IHVz Yl9kZXZpY2VfaWQgdGlfaWRfdGFibGVfNTA1Mls1K1RJX0VYVFJBX1ZJRF9QSURfQ09VTlQrMV0g PSB7CiAJeyBVU0JfREVWSUNFKFRJX1ZFTkRPUl9JRCwgVElfNTA1Ml9GSVJNV0FSRV9QUk9EVUNU X0lEKSB9LAogfTsKIAotc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIHRpX2lkX3RhYmxlX2Nv bWJpbmVkWzE5KzIqVElfRVhUUkFfVklEX1BJRF9DT1VOVCsxXSA9IHsKK3N0YXRpYyBzdHJ1Y3Qg dXNiX2RldmljZV9pZCB0aV9pZF90YWJsZV9jb21iaW5lZFsyMSsyKlRJX0VYVFJBX1ZJRF9QSURf Q09VTlQrMV0gPSB7CiAJeyBVU0JfREVWSUNFKFRJX1ZFTkRPUl9JRCwgVElfMzQxMF9QUk9EVUNU X0lEKSB9LAogCXsgVVNCX0RFVklDRShUSV9WRU5ET1JfSUQsIFRJXzM0MTBfRVo0MzBfSUQpIH0s CiAJeyBVU0JfREVWSUNFKE1UU19WRU5ET1JfSUQsIE1UU19HU01fTk9fRldfUFJPRFVDVF9JRCkg fSwKQEAgLTIwOSw3ICsyMTAsOSBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgdGlfaWRf dGFibGVfY29tYmluZWRbMTkrMipUSV9FWFRSQV9WSURfUElEX0NPVU5UKzFdCiAJeyBVU0JfREVW SUNFKElCTV9WRU5ET1JfSUQsIElCTV80NTRCX1BST0RVQ1RfSUQpIH0sCiAJeyBVU0JfREVWSUNF KElCTV9WRU5ET1JfSUQsIElCTV80NTRDX1BST0RVQ1RfSUQpIH0sCiAJeyBVU0JfREVWSUNFKEFC Qk9UVF9WRU5ET1JfSUQsIEFCQk9UVF9QUk9EVUNUX0lEKSB9LAorCXsgVVNCX0RFVklDRShBQkJP VFRfVkVORE9SX0lELCBBQkJPVFRfU1RSSVBfUE9SVF9JRCkgfSwKIAl7IFVTQl9ERVZJQ0UoVElf VkVORE9SX0lELCBGUkkyX1BST0RVQ1RfSUQpIH0sCisJeyBVU0JfREVWSUNFKEhPTkVZV0VMTF9W RU5ET1JfSUQsIEhPTkVZV0VMTF9IR0k4MF9QUk9EVUNUX0lEKSB9LAogCXsgfQogfTsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3RpX3VzYl8zNDEwXzUwNTIuaCBiL2RyaXZlcnMv dXNiL3NlcmlhbC90aV91c2JfMzQxMF81MDUyLmgKaW5kZXggNGEyNDIzZS4uOThmMzVjNiAxMDA2 NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3RpX3VzYl8zNDEwXzUwNTIuaAorKysgYi9kcml2 ZXJzL3VzYi9zZXJpYWwvdGlfdXNiXzM0MTBfNTA1Mi5oCkBAIC01Niw2ICs1NiwxMCBAQAogI2Rl ZmluZSBBQkJPVFRfUFJPRFVDVF9JRAkJQUJCT1RUX1NURVJFT19QTFVHX0lECiAjZGVmaW5lIEFC Qk9UVF9TVFJJUF9QT1JUX0lECQkweDM0MjAKIAorLyogSG9uZXl3ZWxsIHZlbmRvciBhbmQgcHJv ZHVjdCBJRHMgKi8KKyNkZWZpbmUgSE9ORVlXRUxMX1ZFTkRPUl9JRAkJMHgxMGFjCisjZGVmaW5l IEhPTkVZV0VMTF9IR0k4MF9QUk9EVUNUX0lECTB4MDEwMiAgLyogSG9uZXl3ZWxsIEhHSTgwICov CisKIC8qIENvbW1hbmRzICovCiAjZGVmaW5lIFRJX0dFVF9WRVJTSU9OCQkJMHgwMQogI2RlZmlu ZSBUSV9HRVRfUE9SVF9TVEFUVVMJCTB4MDIKZGlmZiAtLWdpdCBhL2ZzLzlwL3Zmc19pbm9kZS5j IGIvZnMvOXAvdmZzX2lub2RlLmMKaW5kZXggYmYxZGY3Mi4uYWRlZGZkNCAxMDA2NDQKLS0tIGEv ZnMvOXAvdmZzX2lub2RlLmMKKysrIGIvZnMvOXAvdmZzX2lub2RlLmMKQEAgLTQzNSw5ICs0MzUs OSBAQCB2b2lkIHY5ZnNfZXZpY3RfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkKIHsKIAlzdHJ1 Y3Qgdjlmc19pbm9kZSAqdjlpbm9kZSA9IFY5RlNfSShpbm9kZSk7CiAKLQl0cnVuY2F0ZV9pbm9k ZV9wYWdlcyhpbm9kZS0+aV9tYXBwaW5nLCAwKTsKKwl0cnVuY2F0ZV9pbm9kZV9wYWdlcygmaW5v ZGUtPmlfZGF0YSwgMCk7CiAJZW5kX3dyaXRlYmFjayhpbm9kZSk7Ci0JZmlsZW1hcF9mZGF0YXdy aXRlKGlub2RlLT5pX21hcHBpbmcpOworCWZpbGVtYXBfZmRhdGF3cml0ZSgmaW5vZGUtPmlfZGF0 YSk7CiAKICNpZmRlZiBDT05GSUdfOVBfRlNDQUNIRQogCXY5ZnNfY2FjaGVfaW5vZGVfcHV0X2Nv b2tpZShpbm9kZSk7CmRpZmYgLS1naXQgYS9mcy9jYWNoZWZpbGVzL3Jkd3IuYyBiL2ZzL2NhY2hl ZmlsZXMvcmR3ci5jCmluZGV4IDAwZDk0MjUuLjhjNDI5MmIgMTAwNjQ0Ci0tLSBhL2ZzL2NhY2hl ZmlsZXMvcmR3ci5jCisrKyBiL2ZzL2NhY2hlZmlsZXMvcmR3ci5jCkBAIC04OTQsNyArODk0LDcg QEAgaW50IGNhY2hlZmlsZXNfd3JpdGVfcGFnZShzdHJ1Y3QgZnNjYWNoZV9zdG9yYWdlICpvcCwg c3RydWN0IHBhZ2UgKnBhZ2UpCiAJbG9mZl90IHBvcywgZW9mOwogCXNpemVfdCBsZW47CiAJdm9p ZCAqZGF0YTsKLQlpbnQgcmV0OworCWludCByZXQgPSAtRU5PQlVGUzsKIAogCUFTU0VSVChvcCAh PSBOVUxMKTsKIAlBU1NFUlQocGFnZSAhPSBOVUxMKTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0 NC5oIGIvZnMvZXh0NC9leHQ0LmgKaW5kZXggNjg1OGQ5ZC4uOGM4MTE1YyAxMDA2NDQKLS0tIGEv ZnMvZXh0NC9leHQ0LmgKKysrIGIvZnMvZXh0NC9leHQ0LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp bmNsdWRlIDxsaW51eC9zZXFsb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNs dWRlIDxsaW51eC90aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KICNpbmNsdWRl IDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8bGludXgvYmxvY2tncm91cF9sb2NrLmg+CiAjaW5j bHVkZSA8bGludXgvcGVyY3B1X2NvdW50ZXIuaD4KQEAgLTY5OCwxOSArNjk5LDU1IEBAIHN0cnVj dCBtb3ZlX2V4dGVudCB7CiAJPD0gKEVYVDRfR09PRF9PTERfSU5PREVfU0laRSArCQkJXAogCSAg ICAoZWlub2RlKS0+aV9leHRyYV9pc2l6ZSkpCQkJXAogCisvKgorICogV2UgdXNlIGFuIGVuY29k aW5nIHRoYXQgcHJlc2VydmVzIHRoZSB0aW1lcyBmb3IgZXh0cmEgZXBvY2ggIjAwIjoKKyAqCisg KiBleHRyYSAgbXNiIG9mICAgICAgICAgICAgICAgICAgICAgICAgIGFkanVzdCBmb3Igc2lnbmVk CisgKiBlcG9jaCAgMzItYml0ICAgICAgICAgICAgICAgICAgICAgICAgIDMyLWJpdCB0dl9zZWMg dG8KKyAqIGJpdHMgICB0aW1lICAgIGRlY29kZWQgNjQtYml0IHR2X3NlYyAgNjQtYml0IHR2X3Nl YyAgICAgIHZhbGlkIHRpbWUgcmFuZ2UKKyAqIDAgMCAgICAxICAgIC0weDgwMDAwMDAwLi4tMHgw MDAwMDAwMSAgMHgwMDAwMDAwMDAgMTkwMS0xMi0xMy4uMTk2OS0xMi0zMQorICogMCAwICAgIDAg ICAgMHgwMDAwMDAwMDAuLjB4MDdmZmZmZmZmICAweDAwMDAwMDAwMCAxOTcwLTAxLTAxLi4yMDM4 LTAxLTE5CisgKiAwIDEgICAgMSAgICAweDA4MDAwMDAwMC4uMHgwZmZmZmZmZmYgIDB4MTAwMDAw MDAwIDIwMzgtMDEtMTkuLjIxMDYtMDItMDcKKyAqIDAgMSAgICAwICAgIDB4MTAwMDAwMDAwLi4w eDE3ZmZmZmZmZiAgMHgxMDAwMDAwMDAgMjEwNi0wMi0wNy4uMjE3NC0wMi0yNQorICogMSAwICAg IDEgICAgMHgxODAwMDAwMDAuLjB4MWZmZmZmZmZmICAweDIwMDAwMDAwMCAyMTc0LTAyLTI1Li4y MjQyLTAzLTE2CisgKiAxIDAgICAgMCAgICAweDIwMDAwMDAwMC4uMHgyN2ZmZmZmZmYgIDB4MjAw MDAwMDAwIDIyNDItMDMtMTYuLjIzMTAtMDQtMDQKKyAqIDEgMSAgICAxICAgIDB4MjgwMDAwMDAw Li4weDJmZmZmZmZmZiAgMHgzMDAwMDAwMDAgMjMxMC0wNC0wNC4uMjM3OC0wNC0yMgorICogMSAx ICAgIDAgICAgMHgzMDAwMDAwMDAuLjB4MzdmZmZmZmZmICAweDMwMDAwMDAwMCAyMzc4LTA0LTIy Li4yNDQ2LTA1LTEwCisgKgorICogTm90ZSB0aGF0IHByZXZpb3VzIHZlcnNpb25zIG9mIHRoZSBr ZXJuZWwgb24gNjQtYml0IHN5c3RlbXMgd291bGQKKyAqIGluY29ycmVjdGx5IHVzZSBleHRyYSBl cG9jaCBiaXRzIDEsMSBmb3IgZGF0ZXMgYmV0d2VlbiAxOTAxIGFuZAorICogMTk3MC4gIGUyZnNj ayB3aWxsIGNvcnJlY3QgdGhpcywgYXNzdW1pbmcgdGhhdCBpdCBpcyBydW4gb24gdGhlCisgKiBh ZmZlY3RlZCBmaWxlc3lzdGVtIGJlZm9yZSAyMjQyLgorICovCisKIHN0YXRpYyBpbmxpbmUgX19s ZTMyIGV4dDRfZW5jb2RlX2V4dHJhX3RpbWUoc3RydWN0IHRpbWVzcGVjICp0aW1lKQogewotICAg ICAgIHJldHVybiBjcHVfdG9fbGUzMigoc2l6ZW9mKHRpbWUtPnR2X3NlYykgPiA0ID8KLQkJCSAg ICh0aW1lLT50dl9zZWMgPj4gMzIpICYgRVhUNF9FUE9DSF9NQVNLIDogMCkgfAotICAgICAgICAg ICAgICAgICAgICAgICAgICAoKHRpbWUtPnR2X25zZWMgPDwgRVhUNF9FUE9DSF9CSVRTKSAmIEVY VDRfTlNFQ19NQVNLKSk7CisJdTMyIGV4dHJhID0gc2l6ZW9mKHRpbWUtPnR2X3NlYykgPiA0ID8K KwkJKCh0aW1lLT50dl9zZWMgLSAoczMyKXRpbWUtPnR2X3NlYykgPj4gMzIpICYgRVhUNF9FUE9D SF9NQVNLIDogMDsKKwlyZXR1cm4gY3B1X3RvX2xlMzIoZXh0cmEgfCAodGltZS0+dHZfbnNlYyA8 PCBFWFQ0X0VQT0NIX0JJVFMpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGV4dDRfZGVjb2Rl X2V4dHJhX3RpbWUoc3RydWN0IHRpbWVzcGVjICp0aW1lLCBfX2xlMzIgZXh0cmEpCiB7Ci0gICAg ICAgaWYgKHNpemVvZih0aW1lLT50dl9zZWMpID4gNCkKLQkgICAgICAgdGltZS0+dHZfc2VjIHw9 IChfX3U2NCkobGUzMl90b19jcHUoZXh0cmEpICYgRVhUNF9FUE9DSF9NQVNLKQotCQkJICAgICAg IDw8IDMyOwotICAgICAgIHRpbWUtPnR2X25zZWMgPSAobGUzMl90b19jcHUoZXh0cmEpICYgRVhU NF9OU0VDX01BU0spID4+IEVYVDRfRVBPQ0hfQklUUzsKKwlpZiAodW5saWtlbHkoc2l6ZW9mKHRp bWUtPnR2X3NlYykgPiA0ICYmCisJCQkoZXh0cmEgJiBjcHVfdG9fbGUzMihFWFQ0X0VQT0NIX01B U0spKSkpIHsKKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIwLDAp CisJCS8qIEhhbmRsZSBsZWdhY3kgZW5jb2Rpbmcgb2YgcHJlLTE5NzAgZGF0ZXMgd2l0aCBlcG9j aAorCQkgKiBiaXRzIDEsMS4gIFdlIGFzc3VtZSB0aGF0IGJ5IGtlcm5lbCB2ZXJzaW9uIDQuMjAs CisJCSAqIGV2ZXJ5b25lIHdpbGwgaGF2ZSBydW4gZnNjayBvdmVyIHRoZSBhZmZlY3RlZAorCQkg KiBmaWxlc3lzdGVtcyB0byBjb3JyZWN0IHRoZSBwcm9ibGVtLiAgKFRoaXMKKwkJICogYmFja3dh cmRzIGNvbXBhdGliaWxpdHkgbWF5IGJlIHJlbW92ZWQgYmVmb3JlIHRoaXMKKwkJICogdGltZSwg YXQgdGhlIGRpc2NyZXRpb24gb2YgdGhlIGV4dDQgZGV2ZWxvcGVycy4pCisJCSAqLworCQl1NjQg ZXh0cmFfYml0cyA9IGxlMzJfdG9fY3B1KGV4dHJhKSAmIEVYVDRfRVBPQ0hfTUFTSzsKKwkJaWYg KGV4dHJhX2JpdHMgPT0gMyAmJiAoKHRpbWUtPnR2X3NlYykgJiAweDgwMDAwMDAwKSAhPSAwKQor CQkJZXh0cmFfYml0cyA9IDA7CisJCXRpbWUtPnR2X3NlYyArPSBleHRyYV9iaXRzIDw8IDMyOwor I2Vsc2UKKwkJdGltZS0+dHZfc2VjICs9ICh1NjQpKGxlMzJfdG9fY3B1KGV4dHJhKSAmIEVYVDRf RVBPQ0hfTUFTSykgPDwgMzI7CisjZW5kaWYKKwl9CisJdGltZS0+dHZfbnNlYyA9IChsZTMyX3Rv X2NwdShleHRyYSkgJiBFWFQ0X05TRUNfTUFTSykgPj4gRVhUNF9FUE9DSF9CSVRTOwogfQogCiAj ZGVmaW5lIEVYVDRfSU5PREVfU0VUX1hUSU1FKHh0aW1lLCBpbm9kZSwgcmF3X2lub2RlKQkJCSAg ICAgICBcCmRpZmYgLS1naXQgYS9mcy9mdXNlL2ZpbGUuYyBiL2ZzL2Z1c2UvZmlsZS5jCmluZGV4 IDUxMGQ0YWEuLmY1MDdlNjIyMCAxMDA2NDQKLS0tIGEvZnMvZnVzZS9maWxlLmMKKysrIGIvZnMv ZnVzZS9maWxlLmMKQEAgLTg1MCw2ICs4NTAsNyBAQCBzdGF0aWMgc3NpemVfdCBmdXNlX2ZpbGxf d3JpdGVfcGFnZXMoc3RydWN0IGZ1c2VfcmVxICpyZXEsCiAKIAkJbWFya19wYWdlX2FjY2Vzc2Vk KHBhZ2UpOwogCisJCWlvdl9pdGVyX2FkdmFuY2UoaWksIHRtcCk7CiAJCWlmICghdG1wKSB7CiAJ CQl1bmxvY2tfcGFnZShwYWdlKTsKIAkJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKQEAgLTg2 MSw3ICs4NjIsNiBAQCBzdGF0aWMgc3NpemVfdCBmdXNlX2ZpbGxfd3JpdGVfcGFnZXMoc3RydWN0 IGZ1c2VfcmVxICpyZXEsCiAJCXJlcS0+cGFnZXNbcmVxLT5udW1fcGFnZXNdID0gcGFnZTsKIAkJ cmVxLT5udW1fcGFnZXMrKzsKIAotCQlpb3ZfaXRlcl9hZHZhbmNlKGlpLCB0bXApOwogCQljb3Vu dCArPSB0bXA7CiAJCXBvcyArPSB0bXA7CiAJCW9mZnNldCArPSB0bXA7CmRpZmYgLS1naXQgYS9m cy9qYmQyL3RyYW5zYWN0aW9uLmMgYi9mcy9qYmQyL3RyYW5zYWN0aW9uLmMKaW5kZXggODZkYzY4 YS4uZTNjNDFjNSAxMDA2NDQKLS0tIGEvZnMvamJkMi90cmFuc2FjdGlvbi5jCisrKyBiL2ZzL2pi ZDIvdHJhbnNhY3Rpb24uYwpAQCAtMTg3Niw2ICsxODc2LDcgQEAgc3RhdGljIGludCBqb3VybmFs X3VubWFwX2J1ZmZlcihqb3VybmFsX3QgKmpvdXJuYWwsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgp CiAKIAkJaWYgKCFidWZmZXJfZGlydHkoYmgpKSB7CiAJCQkvKiBiZGZsdXNoIGhhcyB3cml0dGVu IGl0LiAgV2UgY2FuIGRyb3AgaXQgbm93ICovCisJCQlfX2piZDJfam91cm5hbF9yZW1vdmVfY2hl Y2twb2ludChqaCk7CiAJCQlnb3RvIHphcF9idWZmZXI7CiAJCX0KIApAQCAtMTkxMyw2ICsxOTE0 LDcgQEAgc3RhdGljIGludCBqb3VybmFsX3VubWFwX2J1ZmZlcihqb3VybmFsX3QgKmpvdXJuYWws IHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCiAJCQkJLyogVGhlIG9ycGhhbiByZWNvcmQncyB0cmFu c2FjdGlvbiBoYXMKIAkJCQkgKiBjb21taXR0ZWQuICBXZSBjYW4gY2xlYW5zZSB0aGlzIGJ1ZmZl ciAqLwogCQkJCWNsZWFyX2J1ZmZlcl9qYmRkaXJ0eShiaCk7CisJCQkJX19qYmQyX2pvdXJuYWxf cmVtb3ZlX2NoZWNrcG9pbnQoamgpOwogCQkJCWdvdG8gemFwX2J1ZmZlcjsKIAkJCX0KIAkJfQpk aWZmIC0tZ2l0IGEvZnMvbmZzL2lub2RlLmMgYi9mcy9uZnMvaW5vZGUuYwppbmRleCBiNzhiNWI2 Li5hMTUwM2E3IDEwMDY0NAotLS0gYS9mcy9uZnMvaW5vZGUuYworKysgYi9mcy9uZnMvaW5vZGUu YwpAQCAtMTM4OSw3ICsxMzg5LDExIEBAIHN0YXRpYyBpbnQgbmZzX3VwZGF0ZV9pbm9kZShzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgbmZzX2ZhdHRyICpmYXR0cikKIAkJCW5mc2ktPmF0dHJ0 aW1lb190aW1lc3RhbXAgPSBub3c7CiAJCX0KIAl9Ci0JaW52YWxpZCAmPSB+TkZTX0lOT19JTlZB TElEX0FUVFI7CisKKwkvKiBEb24ndCBkZWNsYXJlIGF0dHJjYWNoZSB1cCB0byBkYXRlIGlmIHRo ZXJlIHdlcmUgbm8gYXR0cnMhICovCisJaWYgKGZhdHRyLT52YWxpZCAhPSAwKQorCQlpbnZhbGlk ICY9IH5ORlNfSU5PX0lOVkFMSURfQVRUUjsKKwogCS8qIERvbid0IGludmFsaWRhdGUgdGhlIGRh dGEgaWYgd2Ugd2VyZSB0byBibGFtZSAqLwogCWlmICghKFNfSVNSRUcoaW5vZGUtPmlfbW9kZSkg fHwgU19JU0RJUihpbm9kZS0+aV9tb2RlKQogCQkJCXx8IFNfSVNMTksoaW5vZGUtPmlfbW9kZSkp KQpkaWZmIC0tZ2l0IGEvZnMvcGFydGl0aW9ucy9tYWMuYyBiL2ZzL3BhcnRpdGlvbnMvbWFjLmMK aW5kZXggMTFmNjg4Yi4uZjUxYzkzMCAxMDA2NDQKLS0tIGEvZnMvcGFydGl0aW9ucy9tYWMuYwor KysgYi9mcy9wYXJ0aXRpb25zL21hYy5jCkBAIC0zMiw3ICszMiw3IEBAIGludCBtYWNfcGFydGl0 aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAJU2VjdG9yIHNlY3Q7CiAJdW5z aWduZWQgY2hhciAqZGF0YTsKIAlpbnQgc2xvdCwgYmxvY2tzX2luX21hcDsKLQl1bnNpZ25lZCBz ZWNzaXplOworCXVuc2lnbmVkIHNlY3NpemUsIGRhdGFzaXplLCBwYXJ0b2Zmc2V0OwogI2lmZGVm IENPTkZJR19QUENfUE1BQwogCWludCBmb3VuZF9yb290ID0gMDsKIAlpbnQgZm91bmRfcm9vdF9n b29kbmVzcyA9IDA7CkBAIC01MCwxMCArNTAsMTQgQEAgaW50IG1hY19wYXJ0aXRpb24oc3RydWN0 IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAl9CiAJc2Vjc2l6ZSA9IGJlMTZfdG9fY3B1KG1k LT5ibG9ja19zaXplKTsKIAlwdXRfZGV2X3NlY3RvcihzZWN0KTsKLQlkYXRhID0gcmVhZF9wYXJ0 X3NlY3RvcihzdGF0ZSwgc2Vjc2l6ZS81MTIsICZzZWN0KTsKKwlkYXRhc2l6ZSA9IHJvdW5kX2Rv d24oc2Vjc2l6ZSwgNTEyKTsKKwlkYXRhID0gcmVhZF9wYXJ0X3NlY3RvcihzdGF0ZSwgZGF0YXNp emUgLyA1MTIsICZzZWN0KTsKIAlpZiAoIWRhdGEpCiAJCXJldHVybiAtMTsKLQlwYXJ0ID0gKHN0 cnVjdCBtYWNfcGFydGl0aW9uICopIChkYXRhICsgc2Vjc2l6ZSU1MTIpOworCXBhcnRvZmZzZXQg PSBzZWNzaXplICUgNTEyOworCWlmIChwYXJ0b2Zmc2V0ICsgc2l6ZW9mKCpwYXJ0KSA+IGRhdGFz aXplKQorCQlyZXR1cm4gLTE7CisJcGFydCA9IChzdHJ1Y3QgbWFjX3BhcnRpdGlvbiAqKSAoZGF0 YSArIHBhcnRvZmZzZXQpOwogCWlmIChiZTE2X3RvX2NwdShwYXJ0LT5zaWduYXR1cmUpICE9IE1B Q19QQVJUSVRJT05fTUFHSUMpIHsKIAkJcHV0X2Rldl9zZWN0b3Ioc2VjdCk7CiAJCXJldHVybiAw OwkJLyogbm90IGEgTWFjT1MgZGlzayAqLwpkaWZmIC0tZ2l0IGEvZnMvc3BsaWNlLmMgYi9mcy9z cGxpY2UuYwppbmRleCA4MzU3YjgyLi43MWM4MGY0IDEwMDY0NAotLS0gYS9mcy9zcGxpY2UuYwor KysgYi9mcy9zcGxpY2UuYwpAQCAtODcyLDYgKzg3MiwxMyBAQCBFWFBPUlRfU1lNQk9MKHNwbGlj ZV9mcm9tX3BpcGVfZmVlZCk7CiAgKi8KIGludCBzcGxpY2VfZnJvbV9waXBlX25leHQoc3RydWN0 IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwgc3RydWN0IHNwbGljZV9kZXNjICpzZCkKIHsKKwkvKgor CSAqIENoZWNrIGZvciBzaWduYWwgZWFybHkgdG8gbWFrZSBwcm9jZXNzIGtpbGxhYmxlIHdoZW4g dGhlcmUgYXJlCisJICogYWx3YXlzIGJ1ZmZlcnMgYXZhaWxhYmxlCisJICovCisJaWYgKHNpZ25h bF9wZW5kaW5nKGN1cnJlbnQpKQorCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCiAJd2hpbGUgKCFw aXBlLT5ucmJ1ZnMpIHsKIAkJaWYgKCFwaXBlLT53cml0ZXJzKQogCQkJcmV0dXJuIDA7CkBAIC05 NTAsNiArOTU3LDcgQEAgc3NpemVfdCBfX3NwbGljZV9mcm9tX3BpcGUoc3RydWN0IHBpcGVfaW5v ZGVfaW5mbyAqcGlwZSwgc3RydWN0IHNwbGljZV9kZXNjICpzZCwKIAogCXNwbGljZV9mcm9tX3Bp cGVfYmVnaW4oc2QpOwogCWRvIHsKKwkJY29uZF9yZXNjaGVkKCk7CiAJCXJldCA9IHNwbGljZV9m cm9tX3BpcGVfbmV4dChwaXBlLCBzZCk7CiAJCWlmIChyZXQgPiAwKQogCQkJcmV0ID0gc3BsaWNl X2Zyb21fcGlwZV9mZWVkKHBpcGUsIHNkLCBhY3Rvcik7CmRpZmYgLS1naXQgYS9mcy9zeXN2L01h a2VmaWxlIGIvZnMvc3lzdi9NYWtlZmlsZQppbmRleCAzNTkxZjlkLi43YTc1ZTcwIDEwMDY0NAot LS0gYS9mcy9zeXN2L01ha2VmaWxlCisrKyBiL2ZzL3N5c3YvTWFrZWZpbGUKQEAgLTUsNCArNSw0 IEBACiBvYmotJChDT05GSUdfU1lTVl9GUykgKz0gc3lzdi5vCiAKIHN5c3Ytb2JqcyA6PSBpYWxs b2MubyBiYWxsb2MubyBpbm9kZS5vIGl0cmVlLm8gZmlsZS5vIGRpci5vIFwKLQkgICAgIG5hbWVp Lm8gc3VwZXIubyBzeW1saW5rLm8KKwkgICAgIG5hbWVpLm8gc3VwZXIubwpkaWZmIC0tZ2l0IGEv ZnMvc3lzdi9pbm9kZS5jIGIvZnMvc3lzdi9pbm9kZS5jCmluZGV4IDI1ZmZiM2UuLmRhY2MxZTEg MTAwNjQ0Ci0tLSBhL2ZzL3N5c3YvaW5vZGUuYworKysgYi9mcy9zeXN2L2lub2RlLmMKQEAgLTE3 NiwxNCArMTc2LDggQEAgdm9pZCBzeXN2X3NldF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBk ZXZfdCByZGV2KQogCQlpbm9kZS0+aV9mb3AgPSAmc3lzdl9kaXJfb3BlcmF0aW9uczsKIAkJaW5v ZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmc3lzdl9hb3BzOwogCX0gZWxzZSBpZiAoU19JU0xOSyhp bm9kZS0+aV9tb2RlKSkgewotCQlpZiAoaW5vZGUtPmlfYmxvY2tzKSB7Ci0JCQlpbm9kZS0+aV9v cCA9ICZzeXN2X3N5bWxpbmtfaW5vZGVfb3BlcmF0aW9uczsKLQkJCWlub2RlLT5pX21hcHBpbmct PmFfb3BzID0gJnN5c3ZfYW9wczsKLQkJfSBlbHNlIHsKLQkJCWlub2RlLT5pX29wID0gJnN5c3Zf ZmFzdF9zeW1saW5rX2lub2RlX29wZXJhdGlvbnM7Ci0JCQluZF90ZXJtaW5hdGVfbGluayhTWVNW X0koaW5vZGUpLT5pX2RhdGEsIGlub2RlLT5pX3NpemUsCi0JCQkJc2l6ZW9mKFNZU1ZfSShpbm9k ZSktPmlfZGF0YSkgLSAxKTsKLQkJfQorCQlpbm9kZS0+aV9vcCA9ICZzeXN2X3N5bWxpbmtfaW5v ZGVfb3BlcmF0aW9uczsKKwkJaW5vZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmc3lzdl9hb3BzOwog CX0gZWxzZQogCQlpbml0X3NwZWNpYWxfaW5vZGUoaW5vZGUsIGlub2RlLT5pX21vZGUsIHJkZXYp OwogfQpkaWZmIC0tZ2l0IGEvZnMvc3lzdi9zeW1saW5rLmMgYi9mcy9zeXN2L3N5bWxpbmsuYwpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDBkMmY4YS4uMDAwMDAwMAotLS0gYS9mcy9z eXN2L3N5bWxpbmsuYworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS8qCi0gKiAgbGlu dXgvZnMvc3lzdi9zeW1saW5rLmMKLSAqCi0gKiAgSGFuZGxpbmcgb2YgU3lzdGVtIFYgZmlsZXN5 c3RlbSBmYXN0IHN5bWxpbmtzIGV4dGVuc2lvbnMuCi0gKiAgQXVnIDIwMDEsIENocmlzdG9waCBI ZWxsd2lnIChoY2hAaW5mcmFkZWFkLm9yZykKLSAqLwotCi0jaW5jbHVkZSAic3lzdi5oIgotI2lu Y2x1ZGUgPGxpbnV4L25hbWVpLmg+Ci0KLXN0YXRpYyB2b2lkICpzeXN2X2ZvbGxvd19saW5rKHN0 cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpCi17Ci0JbmRfc2V0X2xp bmsobmQsIChjaGFyICopU1lTVl9JKGRlbnRyeS0+ZF9pbm9kZSktPmlfZGF0YSk7Ci0JcmV0dXJu IE5VTEw7Ci19Ci0KLWNvbnN0IHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIHN5c3ZfZmFzdF9zeW1s aW5rX2lub2RlX29wZXJhdGlvbnMgPSB7Ci0JLnJlYWRsaW5rCT0gZ2VuZXJpY19yZWFkbGluaywK LQkuZm9sbG93X2xpbmsJPSBzeXN2X2ZvbGxvd19saW5rLAotfTsKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybVAuaCBiL2luY2x1ZGUvZHJtL2RybVAuaAppbmRleCBiZjRiMmRjLi5lN2NkMDNj IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1QLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtUC5o CkBAIC00MzAsNiArNDMwLDExIEBAIHN0cnVjdCBkcm1fZmlsZSB7CiAJdm9pZCAqZHJpdmVyX3By aXY7CiAKIAlpbnQgaXNfbWFzdGVyOyAvKiB0aGlzIGZpbGUgcHJpdmF0ZSBpcyBhIG1hc3RlciBm b3IgYSBtaW5vciAqLworCS8qCisJICogVGhpcyBjbGllbnQgaXMgYWxsb3dlZCB0byBnYWluIG1h c3RlciBwcml2aWxlZ2VzIGZvciBAbWFzdGVyLgorCSAqIFByb3RlY3RlZCBieSBzdHJ1Y3QgZHJt X2RldmljZTo6c3RydWN0X211dGV4LgorCSAqLworCXVuc2lnbmVkIGFsbG93ZWRfbWFzdGVyOjE7 CiAJc3RydWN0IGRybV9tYXN0ZXIgKm1hc3RlcjsgLyogbWFzdGVyIHRoaXMgbm9kZSBpcyBjdXJy ZW50bHkgYXNzb2NpYXRlZCB3aXRoCiAJCQkJICAgICAgTi5CLiBub3QgYWx3YXlzIG1pbm9yLT5t YXN0ZXIgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGZiczsKQEAgLTEyNTQsNiArMTI1OSw3IEBAIGV4 dGVybiBpbnQgZHJtX2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxlICpmaWxwLCBpbnQgb24pOwog ZXh0ZXJuIHNzaXplX3QgZHJtX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpi dWZmZXIsCiAJCQlzaXplX3QgY291bnQsIGxvZmZfdCAqb2Zmc2V0KTsKIGV4dGVybiBpbnQgZHJt X3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApOworZXh0ZXJu IGludCBkcm1fbmV3X3NldF9tYXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRy bV9maWxlICpmcHJpdik7CiAKIAkJCQkvKiBNYXBwaW5nIHN1cHBvcnQgKGRybV92bS5oKSAqLwog ZXh0ZXJuIGludCBkcm1fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICp2bWEpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pcHY2LmggYi9pbmNsdWRlL2xp bnV4L2lwdjYuaAppbmRleCA4NGIxNDQ3Li4wMGVmMDBkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xp bnV4L2lwdjYuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lwdjYuaApAQCAtMzY5LDcgKzM2OSw3IEBA IHN0cnVjdCBpcHY2X3BpbmZvIHsKIAlzdHJ1Y3QgaXB2Nl9hY19zb2NrbGlzdAkqaXB2Nl9hY19s aXN0OwogCXN0cnVjdCBpcHY2X2ZsX3NvY2tsaXN0ICppcHY2X2ZsX2xpc3Q7CiAKLQlzdHJ1Y3Qg aXB2Nl90eG9wdGlvbnMJKm9wdDsKKwlzdHJ1Y3QgaXB2Nl90eG9wdGlvbnMgX19yY3UJKm9wdDsK IAlzdHJ1Y3Qgc2tfYnVmZgkJKnBrdG9wdGlvbnM7CiAJc3RydWN0IHNrX2J1ZmYJCSpyeHBtdHU7 CiAJc3RydWN0IHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbG9ja2RlcC5oIGIvaW5jbHVk ZS9saW51eC9sb2NrZGVwLmgKaW5kZXggYjZhNTZlMy4uOGI5YmJmMSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9saW51eC9sb2NrZGVwLmgKKysrIGIvaW5jbHVkZS9saW51eC9sb2NrZGVwLmgKQEAgLTM0 Miw2ICszNDIsOSBAQCBleHRlcm4gdm9pZCBsb2NrZGVwX3RyYWNlX2FsbG9jKGdmcF90IG1hc2sp OwogI2RlZmluZSBsb2NrZGVwX2RlcHRoKHRzaykJKGRlYnVnX2xvY2tzID8gKHRzayktPmxvY2tk ZXBfZGVwdGggOiAwKQogCiAjZGVmaW5lIGxvY2tkZXBfYXNzZXJ0X2hlbGQobCkJV0FSTl9PTihk ZWJ1Z19sb2NrcyAmJiAhbG9ja2RlcF9pc19oZWxkKGwpKQorI2RlZmluZSBsb2NrZGVwX2Fzc2Vy dF9oZWxkX29uY2UobCkJZG8gewkJCQlcCisJCVdBUk5fT05fT05DRShkZWJ1Z19sb2NrcyAmJiAh bG9ja2RlcF9pc19oZWxkKGwpKTsJXAorCX0gd2hpbGUgKDApCiAKICNlbHNlIC8qICFMT0NLREVQ ICovCiAKQEAgLTM2Miw2ICszNjUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbG9ja2RlcF9vbih2 b2lkKQogIyBkZWZpbmUgbG9ja2RlcF90cmFjZV9hbGxvYyhnKQkJCWRvIHsgfSB3aGlsZSAoMCkK ICMgZGVmaW5lIGxvY2tkZXBfaW5pdCgpCQkJCWRvIHsgfSB3aGlsZSAoMCkKICMgZGVmaW5lIGxv Y2tkZXBfaW5mbygpCQkJCWRvIHsgfSB3aGlsZSAoMCkKKwogIyBkZWZpbmUgbG9ja2RlcF9pbml0 X21hcChsb2NrLCBuYW1lLCBrZXksIHN1YikgXAogCQlkbyB7ICh2b2lkKShuYW1lKTsgKHZvaWQp KGtleSk7IH0gd2hpbGUgKDApCiAjIGRlZmluZSBsb2NrZGVwX3NldF9jbGFzcyhsb2NrLCBrZXkp CQlkbyB7ICh2b2lkKShrZXkpOyB9IHdoaWxlICgwKQpAQCAtMzkxLDYgKzM5NSw3IEBAIHN0cnVj dCBsb2NrX2NsYXNzX2tleSB7IH07CiAjZGVmaW5lIGxvY2tkZXBfZGVwdGgodHNrKQkoMCkKIAog I2RlZmluZSBsb2NrZGVwX2Fzc2VydF9oZWxkKGwpCQkJZG8geyB9IHdoaWxlICgwKQorI2RlZmlu ZSBsb2NrZGVwX2Fzc2VydF9oZWxkX29uY2UobCkJCWRvIHsgKHZvaWQpKGwpOyB9IHdoaWxlICgw KQogCiAjZW5kaWYgLyogIUxPQ0tERVAgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvYWZf dW5peC5oIGIvaW5jbHVkZS9uZXQvYWZfdW5peC5oCmluZGV4IDkxYWI1YjAuLmY0ODQyZjcgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2FmX3VuaXguaAorKysgYi9pbmNsdWRlL25ldC9hZl91bml4 LmgKQEAgLTU0LDEwICs1NCwxMiBAQCBzdHJ1Y3QgdW5peF9zb2NrIHsKIAlzdHJ1Y3QgbGlzdF9o ZWFkCWxpbms7CiAJYXRvbWljX2xvbmdfdAkJaW5mbGlnaHQ7CiAJc3BpbmxvY2tfdAkJbG9jazsK LQl1bnNpZ25lZCBpbnQJCWdjX2NhbmRpZGF0ZSA6IDE7Ci0JdW5zaWduZWQgaW50CQlnY19tYXli ZV9jeWNsZSA6IDE7CiAJdW5zaWduZWQgY2hhcgkJcmVjdXJzaW9uX2xldmVsOworCXVuc2lnbmVk IGxvbmcJCWdjX2ZsYWdzOworI2RlZmluZSBVTklYX0dDX0NBTkRJREFURQkwCisjZGVmaW5lIFVO SVhfR0NfTUFZQkVfQ1lDTEUJMQogCXN0cnVjdCBzb2NrZXRfd3EJcGVlcl93cTsKKwl3YWl0X3F1 ZXVlX3QJCXBlZXJfd2FrZTsKIH07CiAjZGVmaW5lIHVuaXhfc2soX19zaykgKChzdHJ1Y3QgdW5p eF9zb2NrICopX19zaykKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXB2Ni5oIGIvaW5jbHVk ZS9uZXQvaXB2Ni5oCmluZGV4IGFiMmU2ZDcuLjI1ZjA0OTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bmV0L2lwdjYuaAorKysgYi9pbmNsdWRlL25ldC9pcHY2LmgKQEAgLTE5MSw2ICsxOTEsNyBAQCBl eHRlcm4gcndsb2NrX3QgaXA2X3JhX2xvY2s7CiAgKi8KIAogc3RydWN0IGlwdjZfdHhvcHRpb25z IHsKKwlhdG9taWNfdAkJcmVmY250OwogCS8qIExlbmd0aCBvZiB0aGlzIHN0cnVjdHVyZSAqLwog CWludAkJCXRvdF9sZW47CiAKQEAgLTIwMyw3ICsyMDQsNyBAQCBzdHJ1Y3QgaXB2Nl90eG9wdGlv bnMgewogCXN0cnVjdCBpcHY2X29wdF9oZHIJKmRzdDBvcHQ7CiAJc3RydWN0IGlwdjZfcnRfaGRy CSpzcmNydDsJLyogUm91dGluZyBIZWFkZXIgKi8KIAlzdHJ1Y3QgaXB2Nl9vcHRfaGRyCSpkc3Qx b3B0OwotCisJc3RydWN0IHJjdV9oZWFkCQlyY3U7CiAJLyogT3B0aW9uIGJ1ZmZlciwgYXMgcmVh ZCBieSBJUFY2X1BLVE9QVElPTlMsIHN0YXJ0cyBoZXJlLiAqLwogfTsKIApAQCAtMjI5LDYgKzIz MCwyNCBAQCBzdHJ1Y3QgaXB2Nl9mbF9zb2NrbGlzdCB7CiAJc3RydWN0IGlwNl9mbG93bGFiZWwJ KmZsOwogfTsKIAorc3RhdGljIGlubGluZSBzdHJ1Y3QgaXB2Nl90eG9wdGlvbnMgKnR4b3B0X2dl dChjb25zdCBzdHJ1Y3QgaXB2Nl9waW5mbyAqbnApCit7CisJc3RydWN0IGlwdjZfdHhvcHRpb25z ICpvcHQ7CisKKwlyY3VfcmVhZF9sb2NrKCk7CisJb3B0ID0gcmN1X2RlcmVmZXJlbmNlKG5wLT5v cHQpOworCWlmIChvcHQgJiYgIWF0b21pY19pbmNfbm90X3plcm8oJm9wdC0+cmVmY250KSkKKwkJ b3B0ID0gTlVMTDsKKwlyY3VfcmVhZF91bmxvY2soKTsKKwlyZXR1cm4gb3B0OworfQorCitzdGF0 aWMgaW5saW5lIHZvaWQgdHhvcHRfcHV0KHN0cnVjdCBpcHY2X3R4b3B0aW9ucyAqb3B0KQorewor CWlmIChvcHQgJiYgYXRvbWljX2RlY19hbmRfdGVzdCgmb3B0LT5yZWZjbnQpKQorCQlrZnJlZV9y Y3Uob3B0LCByY3UpOworfQorCiBleHRlcm4gc3RydWN0IGlwNl9mbG93bGFiZWwJKmZsNl9zb2Nr X2xvb2t1cChzdHJ1Y3Qgc29jayAqc2ssIF9fYmUzMiBsYWJlbCk7CiBleHRlcm4gc3RydWN0IGlw djZfdHhvcHRpb25zCSpmbDZfbWVyZ2Vfb3B0aW9ucyhzdHJ1Y3QgaXB2Nl90eG9wdGlvbnMgKiBv cHRfc3BhY2UsCiAJCQkJCQkgICBzdHJ1Y3QgaXA2X2Zsb3dsYWJlbCAqIGZsLApAQCAtMzgyLDYg KzQwMSw3IEBAIHN0cnVjdCBpcDZfY3JlYXRlX2FyZyB7CiAJdTMyIHVzZXI7CiAJY29uc3Qgc3Ry dWN0IGluNl9hZGRyICpzcmM7CiAJY29uc3Qgc3RydWN0IGluNl9hZGRyICpkc3Q7CisJaW50IGlp ZjsKIH07CiAKIHZvaWQgaXA2X2ZyYWdfaW5pdChzdHJ1Y3QgaW5ldF9mcmFnX3F1ZXVlICpxLCB2 b2lkICphKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NvY2suaCBiL2luY2x1ZGUvbmV0L3Nv Y2suaAppbmRleCBjOGRjYmI4Li5jZTZmNjQxIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zb2Nr LmgKKysrIGIvaW5jbHVkZS9uZXQvc29jay5oCkBAIC0zMDIsNiArMzAyLDcgQEAgc3RydWN0IHNv Y2sgewogCQkJCXNrX25vX2NoZWNrICA6IDIsCiAJCQkJc2tfdXNlcmxvY2tzIDogNCwKIAkJCQlz a19wcm90b2NvbCAgOiA4LAorI2RlZmluZSBTS19QUk9UT0NPTF9NQVggKCh1OCl+MFUpCiAJCQkJ c2tfdHlwZSAgICAgIDogMTY7CiAJa21lbWNoZWNrX2JpdGZpZWxkX2VuZChmbGFncyk7CiAJaW50 CQkJc2tfd21lbV9xdWV1ZWQ7CkBAIC01NjUsNiArNTY2LDggQEAgZW51bSBzb2NrX2ZsYWdzIHsK IAlTT0NLX1pFUk9DT1BZLCAvKiBidWZmZXJzIGZyb20gdXNlcnNwYWNlICovCiB9OwogCisjZGVm aW5lIFNLX0ZMQUdTX1RJTUVTVEFNUCAoKDFVTCA8PCBTT0NLX1RJTUVTVEFNUCkgfCAoMVVMIDw8 IFNPQ0tfVElNRVNUQU1QSU5HX1JYX1NPRlRXQVJFKSkKKwogc3RhdGljIGlubGluZSB2b2lkIHNv Y2tfY29weV9mbGFncyhzdHJ1Y3Qgc29jayAqbnNrLCBzdHJ1Y3Qgc29jayAqb3NrKQogewogCW5z ay0+c2tfZmxhZ3MgPSBvc2stPnNrX2ZsYWdzOwpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkLmMg Yi9rZXJuZWwvc2NoZWQuYwppbmRleCAyN2MzMDkyLi5hN2E0MGI1IDEwMDY0NAotLS0gYS9rZXJu ZWwvc2NoZWQuYworKysgYi9rZXJuZWwvc2NoZWQuYwpAQCAtMjkzMiw3ICsyOTMyLDYgQEAgb3V0 OgogICovCiBpbnQgd2FrZV91cF9wcm9jZXNzKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIHsKLQlX QVJOX09OKHRhc2tfaXNfc3RvcHBlZF9vcl90cmFjZWQocCkpOwogCXJldHVybiB0cnlfdG9fd2Fr ZV91cChwLCBUQVNLX05PUk1BTCwgMCk7CiB9CiBFWFBPUlRfU1lNQk9MKHdha2VfdXBfcHJvY2Vz cyk7CkBAIC03MTcxLDExICs3MTcwLDExIEBAIHN0YXRpYyBpbnQgaW5pdF9yb290ZG9tYWluKHN0 cnVjdCByb290X2RvbWFpbiAqcmQpCiB7CiAJbWVtc2V0KHJkLCAwLCBzaXplb2YoKnJkKSk7CiAK LQlpZiAoIWFsbG9jX2NwdW1hc2tfdmFyKCZyZC0+c3BhbiwgR0ZQX0tFUk5FTCkpCisJaWYgKCF6 YWxsb2NfY3B1bWFza192YXIoJnJkLT5zcGFuLCBHRlBfS0VSTkVMKSkKIAkJZ290byBvdXQ7Ci0J aWYgKCFhbGxvY19jcHVtYXNrX3ZhcigmcmQtPm9ubGluZSwgR0ZQX0tFUk5FTCkpCisJaWYgKCF6 YWxsb2NfY3B1bWFza192YXIoJnJkLT5vbmxpbmUsIEdGUF9LRVJORUwpKQogCQlnb3RvIGZyZWVf c3BhbjsKLQlpZiAoIWFsbG9jX2NwdW1hc2tfdmFyKCZyZC0+cnRvX21hc2ssIEdGUF9LRVJORUwp KQorCWlmICghemFsbG9jX2NwdW1hc2tfdmFyKCZyZC0+cnRvX21hc2ssIEdGUF9LRVJORUwpKQog CQlnb3RvIGZyZWVfb25saW5lOwogCiAJaWYgKGNwdXByaV9pbml0KCZyZC0+Y3B1cHJpKSAhPSAw KQpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3JpbmdfYnVmZmVyLmMgYi9rZXJuZWwvdHJhY2Uv cmluZ19idWZmZXIuYwppbmRleCBiMjUyNjYxLi4yYTZmODUzIDEwMDY0NAotLS0gYS9rZXJuZWwv dHJhY2UvcmluZ19idWZmZXIuYworKysgYi9rZXJuZWwvdHJhY2UvcmluZ19idWZmZXIuYwpAQCAt MTU4MSwxMiArMTU4MSw2IEBAIHJiX3NldF9jb21taXRfdG9fd3JpdGUoc3RydWN0IHJpbmdfYnVm ZmVyX3Blcl9jcHUgKmNwdV9idWZmZXIpCiAJCWdvdG8gYWdhaW47CiB9CiAKLXN0YXRpYyB2b2lk IHJiX3Jlc2V0X3JlYWRlcl9wYWdlKHN0cnVjdCByaW5nX2J1ZmZlcl9wZXJfY3B1ICpjcHVfYnVm ZmVyKQotewotCWNwdV9idWZmZXItPnJlYWRfc3RhbXAgPSBjcHVfYnVmZmVyLT5yZWFkZXJfcGFn ZS0+cGFnZS0+dGltZV9zdGFtcDsKLQljcHVfYnVmZmVyLT5yZWFkZXJfcGFnZS0+cmVhZCA9IDA7 Ci19Ci0KIHN0YXRpYyB2b2lkIHJiX2luY19pdGVyKHN0cnVjdCByaW5nX2J1ZmZlcl9pdGVyICpp dGVyKQogewogCXN0cnVjdCByaW5nX2J1ZmZlcl9wZXJfY3B1ICpjcHVfYnVmZmVyID0gaXRlci0+ Y3B1X2J1ZmZlcjsKQEAgLTMwNjQsNyArMzA1OCw3IEBAIHJiX2dldF9yZWFkZXJfcGFnZShzdHJ1 Y3QgcmluZ19idWZmZXJfcGVyX2NwdSAqY3B1X2J1ZmZlcikKIAogCS8qIEZpbmFsbHkgdXBkYXRl IHRoZSByZWFkZXIgcGFnZSB0byB0aGUgbmV3IGhlYWQgKi8KIAljcHVfYnVmZmVyLT5yZWFkZXJf cGFnZSA9IHJlYWRlcjsKLQlyYl9yZXNldF9yZWFkZXJfcGFnZShjcHVfYnVmZmVyKTsKKwljcHVf YnVmZmVyLT5yZWFkZXJfcGFnZS0+cmVhZCA9IDA7CiAKIAlpZiAob3ZlcndyaXRlICE9IGNwdV9i dWZmZXItPmxhc3Rfb3ZlcnJ1bikgewogCQljcHVfYnVmZmVyLT5sb3N0X2V2ZW50cyA9IG92ZXJ3 cml0ZSAtIGNwdV9idWZmZXItPmxhc3Rfb3ZlcnJ1bjsKQEAgLTMwNzQsNiArMzA2OCwxMCBAQCBy Yl9nZXRfcmVhZGVyX3BhZ2Uoc3RydWN0IHJpbmdfYnVmZmVyX3Blcl9jcHUgKmNwdV9idWZmZXIp CiAJZ290byBhZ2FpbjsKIAogIG91dDoKKwkvKiBVcGRhdGUgdGhlIHJlYWRfc3RhbXAgb24gdGhl IGZpcnN0IGV2ZW50ICovCisJaWYgKHJlYWRlciAmJiByZWFkZXItPnJlYWQgPT0gMCkKKwkJY3B1 X2J1ZmZlci0+cmVhZF9zdGFtcCA9IHJlYWRlci0+cGFnZS0+dGltZV9zdGFtcDsKKwogCWFyY2hf c3Bpbl91bmxvY2soJmNwdV9idWZmZXItPmxvY2spOwogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdz KTsKIApkaWZmIC0tZ2l0IGEvbW0vYmFja2luZy1kZXYuYyBiL21tL2JhY2tpbmctZGV2LmMKaW5k ZXggMmI0OWRkMi4uMTdmNTQwMyAxMDA2NDQKLS0tIGEvbW0vYmFja2luZy1kZXYuYworKysgYi9t bS9iYWNraW5nLWRldi5jCkBAIC04NDcsOCArODQ3LDkgQEAgRVhQT1JUX1NZTUJPTChjb25nZXN0 aW9uX3dhaXQpOwogICogamlmZmllcyBmb3IgZWl0aGVyIGEgQkRJIHRvIGV4aXQgY29uZ2VzdGlv biBvZiB0aGUgZ2l2ZW4gQHN5bmMgcXVldWUKICAqIG9yIGEgd3JpdGUgdG8gY29tcGxldGUuCiAg KgotICogSW4gdGhlIGFic2VuY2Ugb2Ygem9uZSBjb25nZXN0aW9uLCBjb25kX3Jlc2NoZWQoKSBp cyBjYWxsZWQgdG8geWllbGQKLSAqIHRoZSBwcm9jZXNzb3IgaWYgbmVjZXNzYXJ5IGJ1dCBvdGhl cndpc2UgZG9lcyBub3Qgc2xlZXAuCisgKiBJbiB0aGUgYWJzZW5jZSBvZiB6b25lIGNvbmdlc3Rp b24sIGEgc2hvcnQgc2xlZXAgb3IgYSBjb25kX3Jlc2NoZWQgaXMKKyAqIHBlcmZvcm1lZCB0byB5 aWVsZCB0aGUgcHJvY2Vzc29yIGFuZCB0byBhbGxvdyBvdGhlciBzdWJzeXN0ZW1zIHRvIG1ha2UK KyAqIGEgZm9yd2FyZCBwcm9ncmVzcy4KICAqCiAgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIDAgaWYg dGhlIHNsZWVwIGlzIGZvciB0aGUgZnVsbCB0aW1lb3V0LiBPdGhlcndpc2UsCiAgKiBpdCBpcyB0 aGUgbnVtYmVyIG9mIGppZmZpZXMgdGhhdCB3ZXJlIHN0aWxsIHJlbWFpbmluZyB3aGVuIHRoZSBm dW5jdGlvbgpAQCAtODY4LDcgKzg2OSwxOSBAQCBsb25nIHdhaXRfaWZmX2Nvbmdlc3RlZChzdHJ1 Y3Qgem9uZSAqem9uZSwgaW50IHN5bmMsIGxvbmcgdGltZW91dCkKIAkgKi8KIAlpZiAoYXRvbWlj X3JlYWQoJm5yX2JkaV9jb25nZXN0ZWRbc3luY10pID09IDAgfHwKIAkJCSF6b25lX2lzX3JlY2xh aW1fY29uZ2VzdGVkKHpvbmUpKSB7Ci0JCWNvbmRfcmVzY2hlZCgpOworCisJCS8qCisJCSAqIE1l bW9yeSBhbGxvY2F0aW9uL3JlY2xhaW0gbWlnaHQgYmUgY2FsbGVkIGZyb20gYSBXUQorCQkgKiBj b250ZXh0IGFuZCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgV1EKKwkJICogY29u Y3VycmVuY3kgY29udHJvbCBkb2Vzbid0IHJlY29nbml6ZSB0aGF0IGEgcGFydGljdWxhcgorCQkg KiBXUSBpcyBjb25nZXN0ZWQgaWYgdGhlIHdvcmtlciB0aHJlYWQgaXMgbG9vcGluZyB3aXRob3V0 CisJCSAqIGV2ZXIgc2xlZXBpbmcuIFRoZXJlZm9yZSB3ZSBoYXZlIHRvIGRvIGEgc2hvcnQgc2xl ZXAKKwkJICogaGVyZSByYXRoZXIgdGhhbiBjYWxsaW5nIGNvbmRfcmVzY2hlZCgpLgorCQkgKi8K KwkJaWYgKGN1cnJlbnQtPmZsYWdzICYgUEZfV1FfV09SS0VSKQorCQkJc2NoZWR1bGVfdGltZW91 dCgxKTsKKwkJZWxzZQorCQkJY29uZF9yZXNjaGVkKCk7CiAKIAkJLyogSW4gY2FzZSB3ZSBzY2hl ZHVsZWQsIHdvcmsgb3V0IHRpbWUgcmVtYWluaW5nICovCiAJCXJldCA9IHRpbWVvdXQgLSAoamlm ZmllcyAtIHN0YXJ0KTsKZGlmZiAtLWdpdCBhL21tL2h1Z2V0bGIuYyBiL21tL2h1Z2V0bGIuYwpp bmRleCA3NzZjNjMwLi45MjU2NTkwIDEwMDY0NAotLS0gYS9tbS9odWdldGxiLmMKKysrIGIvbW0v aHVnZXRsYi5jCkBAIC0yODE4LDEyICsyODE4LDEyIEBAIGludCBodWdldGxiX2ZhdWx0KHN0cnVj dCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJfSBlbHNlIGlm ICh1bmxpa2VseShpc19odWdldGxiX2VudHJ5X2h3cG9pc29uZWQoZW50cnkpKSkKIAkJCXJldHVy biBWTV9GQVVMVF9IV1BPSVNPTl9MQVJHRSB8CiAJCQkgICAgICAgVk1fRkFVTFRfU0VUX0hJTkRF WChoIC0gaHN0YXRlcyk7CisJfSBlbHNlIHsKKwkJcHRlcCA9IGh1Z2VfcHRlX2FsbG9jKG1tLCBh ZGRyZXNzLCBodWdlX3BhZ2Vfc2l6ZShoKSk7CisJCWlmICghcHRlcCkKKwkJCXJldHVybiBWTV9G QVVMVF9PT007CiAJfQogCi0JcHRlcCA9IGh1Z2VfcHRlX2FsbG9jKG1tLCBhZGRyZXNzLCBodWdl X3BhZ2Vfc2l6ZShoKSk7Ci0JaWYgKCFwdGVwKQotCQlyZXR1cm4gVk1fRkFVTFRfT09NOwotCiAJ LyoKIAkgKiBTZXJpYWxpemUgaHVnZXBhZ2UgYWxsb2NhdGlvbiBhbmQgaW5zdGFudGlhdGlvbiwg c28gdGhhdCB3ZSBkb24ndAogCSAqIGdldCBzcHVyaW91cyBhbGxvY2F0aW9uIGZhaWx1cmVzIGlm IHR3byBDUFVzIHJhY2UgdG8gaW5zdGFudGlhdGUKZGlmZiAtLWdpdCBhL21tL3Ztc3RhdC5jIGIv bW0vdm1zdGF0LmMKaW5kZXggOGZkNjAzYi4uMTRkOGNiNCAxMDA2NDQKLS0tIGEvbW0vdm1zdGF0 LmMKKysrIGIvbW0vdm1zdGF0LmMKQEAgLTExMzksMTMgKzExMzksMTQgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcHJvY192bXN0YXRfZmlsZV9vcGVyYXRpb25zID0gewog I2VuZGlmIC8qIENPTkZJR19QUk9DX0ZTICovCiAKICNpZmRlZiBDT05GSUdfU01QCitzdGF0aWMg c3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnZtc3RhdF93cTsKIHN0YXRpYyBERUZJTkVfUEVSX0NQ VShzdHJ1Y3QgZGVsYXllZF93b3JrLCB2bXN0YXRfd29yayk7CiBpbnQgc3lzY3RsX3N0YXRfaW50 ZXJ2YWwgX19yZWFkX21vc3RseSA9IEhaOwogCiBzdGF0aWMgdm9pZCB2bXN0YXRfdXBkYXRlKHN0 cnVjdCB3b3JrX3N0cnVjdCAqdykKIHsKIAlyZWZyZXNoX2NwdV92bV9zdGF0cyhzbXBfcHJvY2Vz c29yX2lkKCkpOwotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmX19nZXRfY3B1X3Zhcih2bXN0YXRf d29yayksCisJcXVldWVfZGVsYXllZF93b3JrKHZtc3RhdF93cSwgJl9fZ2V0X2NwdV92YXIodm1z dGF0X3dvcmspLAogCQlyb3VuZF9qaWZmaWVzX3JlbGF0aXZlKHN5c2N0bF9zdGF0X2ludGVydmFs KSk7CiB9CiAKQEAgLTExNTQsNyArMTE1NSw3IEBAIHN0YXRpYyB2b2lkIF9fY3B1aW5pdCBzdGFy dF9jcHVfdGltZXIoaW50IGNwdSkKIAlzdHJ1Y3QgZGVsYXllZF93b3JrICp3b3JrID0gJnBlcl9j cHUodm1zdGF0X3dvcmssIGNwdSk7CiAKIAlJTklUX0RFTEFZRURfV09SS19ERUZFUlJBQkxFKHdv cmssIHZtc3RhdF91cGRhdGUpOwotCXNjaGVkdWxlX2RlbGF5ZWRfd29ya19vbihjcHUsIHdvcmss IF9fcm91bmRfamlmZmllc19yZWxhdGl2ZShIWiwgY3B1KSk7CisJcXVldWVfZGVsYXllZF93b3Jr X29uKGNwdSwgdm1zdGF0X3dxLCB3b3JrLCBfX3JvdW5kX2ppZmZpZXNfcmVsYXRpdmUoSFosIGNw dSkpOwogfQogCiAvKgpAQCAtMTIwNCw2ICsxMjA1LDcgQEAgc3RhdGljIGludCBfX2luaXQgc2V0 dXBfdm1zdGF0KHZvaWQpCiAKIAlyZWdpc3Rlcl9jcHVfbm90aWZpZXIoJnZtc3RhdF9ub3RpZmll cik7CiAKKwl2bXN0YXRfd3EgPSBhbGxvY193b3JrcXVldWUoInZtc3RhdCIsIFdRX0ZSRUVaQUJM RXxXUV9NRU1fUkVDTEFJTSwgMCk7CiAJZm9yX2VhY2hfb25saW5lX2NwdShjcHUpCiAJCXN0YXJ0 X2NwdV90aW1lcihjcHUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9uZXQvYXgyNS9hZl9heDI1LmMg Yi9uZXQvYXgyNS9hZl9heDI1LmMKaW5kZXggN2I4ZGIwZS4uYTMxNGNmZCAxMDA2NDQKLS0tIGEv bmV0L2F4MjUvYWZfYXgyNS5jCisrKyBiL25ldC9heDI1L2FmX2F4MjUuYwpAQCAtODA2LDYgKzgw Niw5IEBAIHN0YXRpYyBpbnQgYXgyNV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29j a2V0ICpzb2NrLCBpbnQgcHJvdG9jb2wsCiAJc3RydWN0IHNvY2sgKnNrOwogCWF4MjVfY2IgKmF4 MjU7CiAKKwlpZiAocHJvdG9jb2wgPCAwIHx8IHByb3RvY29sID4gU0tfUFJPVE9DT0xfTUFYKQor CQlyZXR1cm4gLUVJTlZBTDsKKwogCWlmICghbmV0X2VxKG5ldCwgJmluaXRfbmV0KSkKIAkJcmV0 dXJuIC1FQUZOT1NVUFBPUlQ7CiAKZGlmZiAtLWdpdCBhL25ldC9ibHVldG9vdGgvc2NvLmMgYi9u ZXQvYmx1ZXRvb3RoL3Njby5jCmluZGV4IDJlODBhZWU3Li45ZjBlNWE0IDEwMDY0NAotLS0gYS9u ZXQvYmx1ZXRvb3RoL3Njby5jCisrKyBiL25ldC9ibHVldG9vdGgvc2NvLmMKQEAgLTQ3NSw2ICs0 NzUsOSBAQCBzdGF0aWMgaW50IHNjb19zb2NrX2JpbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3Ry dWN0IHNvY2thZGRyICphZGRyLCBpbnQgYWRkcl9sZQogCWlmICghYWRkciB8fCBhZGRyLT5zYV9m YW1pbHkgIT0gQUZfQkxVRVRPT1RIKQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCWlmIChhZGRyX2xl biA8IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfc2NvKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAls b2NrX3NvY2soc2spOwogCiAJaWYgKHNrLT5za19zdGF0ZSAhPSBCVF9PUEVOKSB7CmRpZmYgLS1n aXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5jCmluZGV4IDdmNDMyMDIuLjlhOTUy MDUgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC01 NDQ2LDcgKzU0NDYsNyBAQCBpbnQgX19uZXRkZXZfdXBkYXRlX2ZlYXR1cmVzKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCiAJCW5ldGRldl9lcnIoZGV2LAogCQkJInNldF9mZWF0dXJlcygpIGZhaWxl ZCAoJWQpOyB3YW50ZWQgMHglMDh4LCBsZWZ0IDB4JTA4eFxuIiwKIAkJCWVyciwgZmVhdHVyZXMs IGRldi0+ZmVhdHVyZXMpOwotCQlyZXR1cm4gLTE7CisJCXJldHVybiAwOwogCX0KIAogCWlmICgh ZXJyKQpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2NtLmMgYi9uZXQvY29yZS9zY20uYwppbmRleCBm ZjUyYWQwLi41MWI0ZDUyIDEwMDY0NAotLS0gYS9uZXQvY29yZS9zY20uYworKysgYi9uZXQvY29y ZS9zY20uYwpAQCAtMzExLDYgKzMxMSw4IEBAIHZvaWQgc2NtX2RldGFjaF9mZHMoc3RydWN0IG1z Z2hkciAqbXNnLCBzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKQogCQkJZXJyID0gcHV0X3VzZXIoY21s ZW4sICZjbS0+Y21zZ19sZW4pOwogCQlpZiAoIWVycikgewogCQkJY21sZW4gPSBDTVNHX1NQQUNF KGkqc2l6ZW9mKGludCkpOworCQkJaWYgKG1zZy0+bXNnX2NvbnRyb2xsZW4gPCBjbWxlbikKKwkJ CQljbWxlbiA9IG1zZy0+bXNnX2NvbnRyb2xsZW47CiAJCQltc2ctPm1zZ19jb250cm9sICs9IGNt bGVuOwogCQkJbXNnLT5tc2dfY29udHJvbGxlbiAtPSBjbWxlbjsKIAkJfQpkaWZmIC0tZ2l0IGEv bmV0L2RjY3AvaXB2Ni5jIGIvbmV0L2RjY3AvaXB2Ni5jCmluZGV4IDU5MmI3OGMuLjA5ODdjODkg MTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2lwdjYuYworKysgYi9uZXQvZGNjcC9pcHY2LmMKQEAgLTIz Niw3ICsyMzYsNiBAQCBzdGF0aWMgaW50IGRjY3BfdjZfc2VuZF9yZXNwb25zZShzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSwKIAlzdHJ1Y3QgaW5ldDZfcmVxdWVzdF9z b2NrICppcmVxNiA9IGluZXQ2X3JzayhyZXEpOwogCXN0cnVjdCBpcHY2X3BpbmZvICpucCA9IGlu ZXQ2X3NrKHNrKTsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwotCXN0cnVjdCBpcHY2X3R4b3B0aW9u cyAqb3B0ID0gTlVMTDsKIAlzdHJ1Y3QgaW42X2FkZHIgKmZpbmFsX3AsIGZpbmFsOwogCXN0cnVj dCBmbG93aTYgZmw2OwogCWludCBlcnIgPSAtMTsKQEAgLTI1Miw5ICsyNTEsMTAgQEAgc3RhdGlj IGludCBkY2NwX3Y2X3NlbmRfcmVzcG9uc2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcmVxdWVz dF9zb2NrICpyZXEsCiAJZmw2LmZsNl9zcG9ydCA9IGluZXRfcnNrKHJlcSktPmxvY19wb3J0Owog CXNlY3VyaXR5X3JlcV9jbGFzc2lmeV9mbG93KHJlcSwgZmxvd2k2X3RvX2Zsb3dpKCZmbDYpKTsK IAotCW9wdCA9IG5wLT5vcHQ7CiAKLQlmaW5hbF9wID0gZmw2X3VwZGF0ZV9kc3QoJmZsNiwgb3B0 LCAmZmluYWwpOworCXJjdV9yZWFkX2xvY2soKTsKKwlmaW5hbF9wID0gZmw2X3VwZGF0ZV9kc3Qo JmZsNiwgcmN1X2RlcmVmZXJlbmNlKG5wLT5vcHQpLCAmZmluYWwpOworCXJjdV9yZWFkX3VubG9j aygpOwogCiAJZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxvdyhzaywgJmZsNiwgZmluYWxfcCwgZmFs c2UpOwogCWlmIChJU19FUlIoZHN0KSkgewpAQCAtMjcxLDEzICsyNzEsMTQgQEAgc3RhdGljIGlu dCBkY2NwX3Y2X3NlbmRfcmVzcG9uc2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcmVxdWVzdF9z b2NrICpyZXEsCiAJCQkJCQkJICZpcmVxNi0+bG9jX2FkZHIsCiAJCQkJCQkJICZpcmVxNi0+cm10 X2FkZHIpOwogCQlpcHY2X2FkZHJfY29weSgmZmw2LmRhZGRyLCAmaXJlcTYtPnJtdF9hZGRyKTsK LQkJZXJyID0gaXA2X3htaXQoc2ssIHNrYiwgJmZsNiwgb3B0LCBucC0+dGNsYXNzKTsKKwkJcmN1 X3JlYWRfbG9jaygpOworCQllcnIgPSBpcDZfeG1pdChzaywgc2tiLCAmZmw2LCByY3VfZGVyZWZl cmVuY2UobnAtPm9wdCksCisJCQkgICAgICAgbnAtPnRjbGFzcyk7CisJCXJjdV9yZWFkX3VubG9j aygpOwogCQllcnIgPSBuZXRfeG1pdF9ldmFsKGVycik7CiAJfQogCiBkb25lOgotCWlmIChvcHQg IT0gTlVMTCAmJiBvcHQgIT0gbnAtPm9wdCkKLQkJc29ja19rZnJlZV9zKHNrLCBvcHQsIG9wdC0+ dG90X2xlbik7CiAJZHN0X3JlbGVhc2UoZHN0KTsKIAlyZXR1cm4gZXJyOwogfQpAQCAtNDY3LDEw ICs0NjgsMTAgQEAgc3RhdGljIHN0cnVjdCBzb2NrICpkY2NwX3Y2X3JlcXVlc3RfcmVjdl9zb2Nr KHN0cnVjdCBzb2NrICpzaywKIHsKIAlzdHJ1Y3QgaW5ldDZfcmVxdWVzdF9zb2NrICppcmVxNiA9 IGluZXQ2X3JzayhyZXEpOwogCXN0cnVjdCBpcHY2X3BpbmZvICpuZXducCwgKm5wID0gaW5ldDZf c2soc2spOworCXN0cnVjdCBpcHY2X3R4b3B0aW9ucyAqb3B0OwogCXN0cnVjdCBpbmV0X3NvY2sg Km5ld2luZXQ7CiAJc3RydWN0IGRjY3A2X3NvY2sgKm5ld2RwNjsKIAlzdHJ1Y3Qgc29jayAqbmV3 c2s7Ci0Jc3RydWN0IGlwdjZfdHhvcHRpb25zICpvcHQ7CiAKIAlpZiAoc2tiLT5wcm90b2NvbCA9 PSBodG9ucyhFVEhfUF9JUCkpIHsKIAkJLyoKQEAgLTUxNSw3ICs1MTYsNiBAQCBzdGF0aWMgc3Ry dWN0IHNvY2sgKmRjY3BfdjZfcmVxdWVzdF9yZWN2X3NvY2soc3RydWN0IHNvY2sgKnNrLAogCQly ZXR1cm4gbmV3c2s7CiAJfQogCi0Jb3B0ID0gbnAtPm9wdDsKIAogCWlmIChza19hY2NlcHRxX2lz X2Z1bGwoc2spKQogCQlnb3RvIG91dF9vdmVyZmxvdzsKQEAgLTUyNyw3ICs1MjcsNyBAQCBzdGF0 aWMgc3RydWN0IHNvY2sgKmRjY3BfdjZfcmVxdWVzdF9yZWN2X3NvY2soc3RydWN0IHNvY2sgKnNr LAogCQltZW1zZXQoJmZsNiwgMCwgc2l6ZW9mKGZsNikpOwogCQlmbDYuZmxvd2k2X3Byb3RvID0g SVBQUk9UT19EQ0NQOwogCQlpcHY2X2FkZHJfY29weSgmZmw2LmRhZGRyLCAmaXJlcTYtPnJtdF9h ZGRyKTsKLQkJZmluYWxfcCA9IGZsNl91cGRhdGVfZHN0KCZmbDYsIG9wdCwgJmZpbmFsKTsKKwkJ ZmluYWxfcCA9IGZsNl91cGRhdGVfZHN0KCZmbDYsIG5wLT5vcHQsICZmaW5hbCk7CiAJCWlwdjZf YWRkcl9jb3B5KCZmbDYuc2FkZHIsICZpcmVxNi0+bG9jX2FkZHIpOwogCQlmbDYuZmxvd2k2X29p ZiA9IHNrLT5za19ib3VuZF9kZXZfaWY7CiAJCWZsNi5mbDZfZHBvcnQgPSBpbmV0X3JzayhyZXEp LT5ybXRfcG9ydDsKQEAgLTU5MiwxNiArNTkyLDE1IEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqZGNj cF92Nl9yZXF1ZXN0X3JlY3Zfc29jayhzdHJ1Y3Qgc29jayAqc2ssCiAJICogWWVzLCBrZWVwaW5n IHJlZmVyZW5jZSBjb3VudCB3b3VsZCBiZSBtdWNoIG1vcmUgY2xldmVyLCBidXQgd2UgbWFrZQog CSAqIG9uZSBtb3JlIG9uZSB0aGluZyB0aGVyZTogcmVhdHRhY2ggb3B0bWVtIHRvIG5ld3NrLgog CSAqLwotCWlmIChvcHQgIT0gTlVMTCkgewotCQluZXducC0+b3B0ID0gaXB2Nl9kdXBfb3B0aW9u cyhuZXdzaywgb3B0KTsKLQkJaWYgKG9wdCAhPSBucC0+b3B0KQotCQkJc29ja19rZnJlZV9zKHNr LCBvcHQsIG9wdC0+dG90X2xlbik7CisJb3B0ID0gcmN1X2RlcmVmZXJlbmNlKG5wLT5vcHQpOwor CWlmIChvcHQpIHsKKwkJb3B0ID0gaXB2Nl9kdXBfb3B0aW9ucyhuZXdzaywgb3B0KTsKKwkJUkNV X0lOSVRfUE9JTlRFUihuZXducC0+b3B0LCBvcHQpOwogCX0KLQogCWluZXRfY3NrKG5ld3NrKS0+ aWNza19leHRfaGRyX2xlbiA9IDA7Ci0JaWYgKG5ld25wLT5vcHQgIT0gTlVMTCkKLQkJaW5ldF9j c2sobmV3c2spLT5pY3NrX2V4dF9oZHJfbGVuID0gKG5ld25wLT5vcHQtPm9wdF9uZmxlbiArCi0J CQkJCQkgICAgIG5ld25wLT5vcHQtPm9wdF9mbGVuKTsKKwlpZiAob3B0KQorCQlpbmV0X2Nzayhu ZXdzayktPmljc2tfZXh0X2hkcl9sZW4gPSBvcHQtPm9wdF9uZmxlbiArCisJCQkJCQkgICAgb3B0 LT5vcHRfZmxlbjsKIAogCWRjY3Bfc3luY19tc3MobmV3c2ssIGRzdF9tdHUoZHN0KSk7CiAKQEAg LTYyMyw4ICs2MjIsNiBAQCBvdXRfbm9uZXdzazoKIAlkc3RfcmVsZWFzZShkc3QpOwogb3V0Ogog CU5FVF9JTkNfU1RBVFNfQkgoc29ja19uZXQoc2spLCBMSU5VWF9NSUJfTElTVEVORFJPUFMpOwot CWlmIChvcHQgIT0gTlVMTCAmJiBvcHQgIT0gbnAtPm9wdCkKLQkJc29ja19rZnJlZV9zKHNrLCBv cHQsIG9wdC0+dG90X2xlbik7CiAJcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTg1NSw2ICs4NTIsNyBA QCBzdGF0aWMgaW50IGRjY3BfdjZfY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2Nr YWRkciAqdWFkZHIsCiAJc3RydWN0IGlwdjZfcGluZm8gKm5wID0gaW5ldDZfc2soc2spOwogCXN0 cnVjdCBkY2NwX3NvY2sgKmRwID0gZGNjcF9zayhzayk7CiAJc3RydWN0IGluNl9hZGRyICpzYWRk ciA9IE5VTEwsICpmaW5hbF9wLCBmaW5hbDsKKwlzdHJ1Y3QgaXB2Nl90eG9wdGlvbnMgKm9wdDsK IAlzdHJ1Y3QgZmxvd2k2IGZsNjsKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Q7CiAJaW50IGFkZHJf dHlwZTsKQEAgLTk1Nyw3ICs5NTUsOCBAQCBzdGF0aWMgaW50IGRjY3BfdjZfY29ubmVjdChzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsCiAJZmw2LmZsNl9zcG9ydCA9IGlu ZXQtPmluZXRfc3BvcnQ7CiAJc2VjdXJpdHlfc2tfY2xhc3NpZnlfZmxvdyhzaywgZmxvd2k2X3Rv X2Zsb3dpKCZmbDYpKTsKIAotCWZpbmFsX3AgPSBmbDZfdXBkYXRlX2RzdCgmZmw2LCBucC0+b3B0 LCAmZmluYWwpOworCW9wdCA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQobnAtPm9wdCwgc29j a19vd25lZF9ieV91c2VyKHNrKSk7CisJZmluYWxfcCA9IGZsNl91cGRhdGVfZHN0KCZmbDYsIG9w dCwgJmZpbmFsKTsKIAogCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssICZmbDYsIGZpbmFs X3AsIHRydWUpOwogCWlmIChJU19FUlIoZHN0KSkgewpAQCAtOTc3LDkgKzk3Niw4IEBAIHN0YXRp YyBpbnQgZGNjcF92Nl9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1 YWRkciwKIAlfX2lwNl9kc3Rfc3RvcmUoc2ssIGRzdCwgTlVMTCwgTlVMTCk7CiAKIAlpY3NrLT5p Y3NrX2V4dF9oZHJfbGVuID0gMDsKLQlpZiAobnAtPm9wdCAhPSBOVUxMKQotCQlpY3NrLT5pY3Nr X2V4dF9oZHJfbGVuID0gKG5wLT5vcHQtPm9wdF9mbGVuICsKLQkJCQkJICBucC0+b3B0LT5vcHRf bmZsZW4pOworCWlmIChvcHQpCisJCWljc2stPmljc2tfZXh0X2hkcl9sZW4gPSBvcHQtPm9wdF9m bGVuICsgb3B0LT5vcHRfbmZsZW47CiAKIAlpbmV0LT5pbmV0X2Rwb3J0ID0gdXNpbi0+c2luNl9w b3J0OwogCmRpZmYgLS1naXQgYS9uZXQvZGVjbmV0L2FmX2RlY25ldC5jIGIvbmV0L2RlY25ldC9h Zl9kZWNuZXQuYwppbmRleCAxNmZiZjhjLi5jMDQ4NmM4IDEwMDY0NAotLS0gYS9uZXQvZGVjbmV0 L2FmX2RlY25ldC5jCisrKyBiL25ldC9kZWNuZXQvYWZfZGVjbmV0LmMKQEAgLTY4MSw2ICs2ODEs OSBAQCBzdGF0aWMgaW50IGRuX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQg KnNvY2ssIGludCBwcm90b2NvbCwKIHsKIAlzdHJ1Y3Qgc29jayAqc2s7CiAKKwlpZiAocHJvdG9j b2wgPCAwIHx8IHByb3RvY29sID4gU0tfUFJPVE9DT0xfTUFYKQorCQlyZXR1cm4gLUVJTlZBTDsK KwogCWlmICghbmV0X2VxKG5ldCwgJmluaXRfbmV0KSkKIAkJcmV0dXJuIC1FQUZOT1NVUFBPUlQ7 CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2FmX2luZXQuYyBiL25ldC9pcHY0L2FmX2luZXQuYwpp bmRleCA1ZDIyOGRlLi5lMmFiOTY4IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9hZl9pbmV0LmMKKysr IGIvbmV0L2lwdjQvYWZfaW5ldC5jCkBAIC0yNzksNiArMjc5LDkgQEAgc3RhdGljIGludCBpbmV0 X2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBwcm90b2Nv bCwKIAlpbnQgdHJ5X2xvYWRpbmdfbW9kdWxlID0gMDsKIAlpbnQgZXJyOwogCisJaWYgKHByb3Rv Y29sIDwgMCB8fCBwcm90b2NvbCA+PSBJUFBST1RPX01BWCkKKwkJcmV0dXJuIC1FSU5WQUw7CisK IAlpZiAodW5saWtlbHkoIWluZXRfZWhhc2hfc2VjcmV0KSkKIAkJaWYgKHNvY2stPnR5cGUgIT0g U09DS19SQVcgJiYgc29jay0+dHlwZSAhPSBTT0NLX0RHUkFNKQogCQkJYnVpbGRfZWhhc2hfc2Vj cmV0KCk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pZ21wLmMgYi9uZXQvaXB2NC9pZ21wLmMKaW5k ZXggMDNlOTQ4Ni4uZDljMWQ1OCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaWdtcC5jCisrKyBiL25l dC9pcHY0L2lnbXAuYwpAQCAtMTg2Niw3ICsxODY2LDcgQEAgaW50IGlwX21jX2xlYXZlX2dyb3Vw KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGlwX21yZXFuICppbXIpCiAKIAlydG5sX2xvY2soKTsK IAlpbl9kZXYgPSBpcF9tY19maW5kX2RldihuZXQsIGltcik7Ci0JaWYgKCFpbl9kZXYpIHsKKwlp ZiAoIWltci0+aW1yX2lmaW5kZXggJiYgIWltci0+aW1yX2FkZHJlc3Muc19hZGRyICYmICFpbl9k ZXYpIHsKIAkJcmV0ID0gLUVOT0RFVjsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMTg4Nyw3ICsxODg3 LDggQEAgaW50IGlwX21jX2xlYXZlX2dyb3VwKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGlwX21y ZXFuICppbXIpCiAKIAkJKmltbHAgPSBpbWwtPm5leHRfcmN1OwogCi0JCWlwX21jX2RlY19ncm91 cChpbl9kZXYsIGdyb3VwKTsKKwkJaWYgKGluX2RldikKKwkJCWlwX21jX2RlY19ncm91cChpbl9k ZXYsIGdyb3VwKTsKIAkJcnRubF91bmxvY2soKTsKIAkJLyogZGVjcmVhc2UgbWVtIG5vdyB0byBh dm9pZCB0aGUgbWVtbGVhayB3YXJuaW5nICovCiAJCWF0b21pY19zdWIoc2l6ZW9mKCppbWwpLCAm c2stPnNrX29tZW1fYWxsb2MpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBtci5jIGIvbmV0L2lw djQvaXBtci5jCmluZGV4IDU4MWRjYjMuLjk1YjQ3ZmYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lw bXIuYworKysgYi9uZXQvaXB2NC9pcG1yLmMKQEAgLTEzNCw3ICsxMzQsNyBAQCBzdGF0aWMgaW50 IGlwbXJfY2FjaGVfcmVwb3J0KHN0cnVjdCBtcl90YWJsZSAqbXJ0LAogCQkJICAgICBzdHJ1Y3Qg c2tfYnVmZiAqcGt0LCB2aWZpX3QgdmlmaSwgaW50IGFzc2VydCk7CiBzdGF0aWMgaW50IF9faXBt cl9maWxsX21yb3V0ZShzdHJ1Y3QgbXJfdGFibGUgKm1ydCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwK IAkJCSAgICAgIHN0cnVjdCBtZmNfY2FjaGUgKmMsIHN0cnVjdCBydG1zZyAqcnRtKTsKLXN0YXRp YyB2b2lkIG1yb3V0ZV9jbGVhbl90YWJsZXMoc3RydWN0IG1yX3RhYmxlICptcnQpOworc3RhdGlj IHZvaWQgbXJvdXRlX2NsZWFuX3RhYmxlcyhzdHJ1Y3QgbXJfdGFibGUgKm1ydCwgYm9vbCBhbGwp Owogc3RhdGljIHZvaWQgaXBtcl9leHBpcmVfcHJvY2Vzcyh1bnNpZ25lZCBsb25nIGFyZyk7CiAK ICNpZmRlZiBDT05GSUdfSVBfTVJPVVRFX01VTFRJUExFX1RBQkxFUwpAQCAtMzQ2LDcgKzM0Niw3 IEBAIHN0YXRpYyBzdHJ1Y3QgbXJfdGFibGUgKmlwbXJfbmV3X3RhYmxlKHN0cnVjdCBuZXQgKm5l dCwgdTMyIGlkKQogc3RhdGljIHZvaWQgaXBtcl9mcmVlX3RhYmxlKHN0cnVjdCBtcl90YWJsZSAq bXJ0KQogewogCWRlbF90aW1lcl9zeW5jKCZtcnQtPmlwbXJfZXhwaXJlX3RpbWVyKTsKLQltcm91 dGVfY2xlYW5fdGFibGVzKG1ydCk7CisJbXJvdXRlX2NsZWFuX3RhYmxlcyhtcnQsIHRydWUpOwog CWtmcmVlKG1ydCk7CiB9CiAKQEAgLTExNDMsNyArMTE0Myw3IEBAIHN0YXRpYyBpbnQgaXBtcl9t ZmNfYWRkKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG1yX3RhYmxlICptcnQsCiAgKglDbG9zZSB0 aGUgbXVsdGljYXN0IHNvY2tldCwgYW5kIGNsZWFyIHRoZSB2aWYgdGFibGVzIGV0YwogICovCiAK LXN0YXRpYyB2b2lkIG1yb3V0ZV9jbGVhbl90YWJsZXMoc3RydWN0IG1yX3RhYmxlICptcnQpCitz dGF0aWMgdm9pZCBtcm91dGVfY2xlYW5fdGFibGVzKHN0cnVjdCBtcl90YWJsZSAqbXJ0LCBib29s IGFsbCkKIHsKIAlpbnQgaTsKIAlMSVNUX0hFQUQobGlzdCk7CkBAIC0xMTUyLDggKzExNTIsOSBA QCBzdGF0aWMgdm9pZCBtcm91dGVfY2xlYW5fdGFibGVzKHN0cnVjdCBtcl90YWJsZSAqbXJ0KQog CS8qIFNodXQgZG93biBhbGwgYWN0aXZlIHZpZiBlbnRyaWVzICovCiAKIAlmb3IgKGkgPSAwOyBp IDwgbXJ0LT5tYXh2aWY7IGkrKykgewotCQlpZiAoIShtcnQtPnZpZl90YWJsZVtpXS5mbGFncyAm IFZJRkZfU1RBVElDKSkKLQkJCXZpZl9kZWxldGUobXJ0LCBpLCAwLCAmbGlzdCk7CisJCWlmICgh YWxsICYmIChtcnQtPnZpZl90YWJsZVtpXS5mbGFncyAmIFZJRkZfU1RBVElDKSkKKwkJCWNvbnRp bnVlOworCQl2aWZfZGVsZXRlKG1ydCwgaSwgMCwgJmxpc3QpOwogCX0KIAl1bnJlZ2lzdGVyX25l dGRldmljZV9tYW55KCZsaXN0KTsKIApAQCAtMTE2MSw3ICsxMTYyLDcgQEAgc3RhdGljIHZvaWQg bXJvdXRlX2NsZWFuX3RhYmxlcyhzdHJ1Y3QgbXJfdGFibGUgKm1ydCkKIAogCWZvciAoaSA9IDA7 IGkgPCBNRkNfTElORVM7IGkrKykgewogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoYywgbmV4 dCwgJm1ydC0+bWZjX2NhY2hlX2FycmF5W2ldLCBsaXN0KSB7Ci0JCQlpZiAoYy0+bWZjX2ZsYWdz ICYgTUZDX1NUQVRJQykKKwkJCWlmICghYWxsICYmIChjLT5tZmNfZmxhZ3MgJiBNRkNfU1RBVElD KSkKIAkJCQljb250aW51ZTsKIAkJCWxpc3RfZGVsX3JjdSgmYy0+bGlzdCk7CiAJCQlpcG1yX2Nh Y2hlX2ZyZWUoYyk7CkBAIC0xMTkxLDcgKzExOTIsNyBAQCBzdGF0aWMgdm9pZCBtcnRzb2NrX2Rl c3RydWN0KHN0cnVjdCBzb2NrICpzaykKIAkJaWYgKHNrID09IHJ0bmxfZGVyZWZlcmVuY2UobXJ0 LT5tcm91dGVfc2spKSB7CiAJCQlJUFY0X0RFVkNPTkZfQUxMKG5ldCwgTUNfRk9SV0FSRElORykt LTsKIAkJCVJDVV9JTklUX1BPSU5URVIobXJ0LT5tcm91dGVfc2ssIE5VTEwpOwotCQkJbXJvdXRl X2NsZWFuX3RhYmxlcyhtcnQpOworCQkJbXJvdXRlX2NsZWFuX3RhYmxlcyhtcnQsIGZhbHNlKTsK IAkJfQogCX0KIAlydG5sX3VubG9jaygpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lucHV0 LmMgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwppbmRleCBmOGI1ODk5Li4zODc3ZTE2IDEwMDY0NAot LS0gYS9uZXQvaXB2NC90Y3BfaW5wdXQuYworKysgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpAQCAt NTgxMSw2ICs1ODExLDcgQEAgZGlzY2FyZDoKIAkJfQogCiAJCXRwLT5yY3Zfbnh0ID0gVENQX1NL Ql9DQihza2IpLT5zZXEgKyAxOworCQl0cC0+Y29waWVkX3NlcSA9IHRwLT5yY3Zfbnh0OwogCQl0 cC0+cmN2X3d1cCA9IFRDUF9TS0JfQ0Ioc2tiKS0+c2VxICsgMTsKIAogCQkvKiBSRkMxMzIzOiBU aGUgd2luZG93IGluIFNZTiAmIFNZTi9BQ0sgc2VnbWVudHMgaXMKZGlmZiAtLWdpdCBhL25ldC9p cHY2L2FmX2luZXQ2LmMgYi9uZXQvaXB2Ni9hZl9pbmV0Ni5jCmluZGV4IGQyN2M3OTcuLmQ1Nzgx MzcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FmX2luZXQ2LmMKKysrIGIvbmV0L2lwdjYvYWZfaW5l dDYuYwpAQCAtMTA5LDYgKzEwOSw5IEBAIHN0YXRpYyBpbnQgaW5ldDZfY3JlYXRlKHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29jaywgaW50IHByb3RvY29sLAogCWludCB0cnlfbG9h ZGluZ19tb2R1bGUgPSAwOwogCWludCBlcnI7CiAKKwlpZiAocHJvdG9jb2wgPCAwIHx8IHByb3Rv Y29sID49IElQUFJPVE9fTUFYKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCWlmIChzb2NrLT50eXBl ICE9IFNPQ0tfUkFXICYmCiAJICAgIHNvY2stPnR5cGUgIT0gU09DS19ER1JBTSAmJgogCSAgICAh aW5ldF9laGFzaF9zZWNyZXQpCkBAIC00MzAsOCArNDMzLDExIEBAIHZvaWQgaW5ldDZfZGVzdHJv eV9zb2NrKHN0cnVjdCBzb2NrICpzaykKIAogCS8qIEZyZWUgdHggb3B0aW9ucyAqLwogCi0JaWYg KChvcHQgPSB4Y2hnKCZucC0+b3B0LCBOVUxMKSkgIT0gTlVMTCkKLQkJc29ja19rZnJlZV9zKHNr LCBvcHQsIG9wdC0+dG90X2xlbik7CisJb3B0ID0geGNoZygoX19mb3JjZSBzdHJ1Y3QgaXB2Nl90 eG9wdGlvbnMgKiopJm5wLT5vcHQsIE5VTEwpOworCWlmIChvcHQpIHsKKwkJYXRvbWljX3N1Yihv cHQtPnRvdF9sZW4sICZzay0+c2tfb21lbV9hbGxvYyk7CisJCXR4b3B0X3B1dChvcHQpOworCX0K IH0KIAogRVhQT1JUX1NZTUJPTF9HUEwoaW5ldDZfZGVzdHJveV9zb2NrKTsKQEAgLTY2OSw3ICs2 NzUsMTAgQEAgaW50IGluZXQ2X3NrX3JlYnVpbGRfaGVhZGVyKHN0cnVjdCBzb2NrICpzaykKIAkJ Zmw2LmZsNl9zcG9ydCA9IGluZXQtPmluZXRfc3BvcnQ7CiAJCXNlY3VyaXR5X3NrX2NsYXNzaWZ5 X2Zsb3coc2ssIGZsb3dpNl90b19mbG93aSgmZmw2KSk7CiAKLQkJZmluYWxfcCA9IGZsNl91cGRh dGVfZHN0KCZmbDYsIG5wLT5vcHQsICZmaW5hbCk7CisJCXJjdV9yZWFkX2xvY2soKTsKKwkJZmlu YWxfcCA9IGZsNl91cGRhdGVfZHN0KCZmbDYsIHJjdV9kZXJlZmVyZW5jZShucC0+b3B0KSwKKwkJ CQkJICZmaW5hbCk7CisJCXJjdV9yZWFkX3VubG9jaygpOwogCiAJCWRzdCA9IGlwNl9kc3RfbG9v a3VwX2Zsb3coc2ssICZmbDYsIGZpbmFsX3AsIGZhbHNlKTsKIAkJaWYgKElTX0VSUihkc3QpKSB7 CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9kYXRhZ3JhbS5jIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwpp bmRleCA2N2YzNjMyLi45ZTRiYWNjIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9kYXRhZ3JhbS5jCisr KyBiL25ldC9pcHY2L2RhdGFncmFtLmMKQEAgLTE2Niw4ICsxNjYsMTAgQEAgaXB2NF9jb25uZWN0 ZWQ6CiAKIAlzZWN1cml0eV9za19jbGFzc2lmeV9mbG93KHNrLCBmbG93aTZfdG9fZmxvd2koJmZs NikpOwogCi0Jb3B0ID0gZmxvd2xhYmVsID8gZmxvd2xhYmVsLT5vcHQgOiBucC0+b3B0OworCXJj dV9yZWFkX2xvY2soKTsKKwlvcHQgPSBmbG93bGFiZWwgPyBmbG93bGFiZWwtPm9wdCA6IHJjdV9k ZXJlZmVyZW5jZShucC0+b3B0KTsKIAlmaW5hbF9wID0gZmw2X3VwZGF0ZV9kc3QoJmZsNiwgb3B0 LCAmZmluYWwpOworCXJjdV9yZWFkX3VubG9jaygpOwogCiAJZHN0ID0gaXA2X2RzdF9sb29rdXBf ZmxvdyhzaywgJmZsNiwgZmluYWxfcCwgdHJ1ZSk7CiAJZXJyID0gMDsKZGlmZiAtLWdpdCBhL25l dC9pcHY2L2V4dGhkcnMuYyBiL25ldC9pcHY2L2V4dGhkcnMuYwppbmRleCBiZjIyYTIyLi5lZjdi ODcyIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9leHRoZHJzLmMKKysrIGIvbmV0L2lwdjYvZXh0aGRy cy5jCkBAIC03NDgsNiArNzQ4LDcgQEAgaXB2Nl9kdXBfb3B0aW9ucyhzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBpcHY2X3R4b3B0aW9ucyAqb3B0KQogCQkJKigoY2hhcioqKSZvcHQyLT5kc3Qxb3B0 KSArPSBkaWY7CiAJCWlmIChvcHQyLT5zcmNydCkKIAkJCSooKGNoYXIqKikmb3B0Mi0+c3JjcnQp ICs9IGRpZjsKKwkJYXRvbWljX3NldCgmb3B0Mi0+cmVmY250LCAxKTsKIAl9CiAJcmV0dXJuIG9w dDI7CiB9CkBAIC04MTIsNyArODEzLDcgQEAgaXB2Nl9yZW5ld19vcHRpb25zKHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IGlwdjZfdHhvcHRpb25zICpvcHQsCiAJCXJldHVybiBFUlJfUFRSKC1FTk9C VUZTKTsKIAogCW1lbXNldChvcHQyLCAwLCB0b3RfbGVuKTsKLQorCWF0b21pY19zZXQoJm9wdDIt PnJlZmNudCwgMSk7CiAJb3B0Mi0+dG90X2xlbiA9IHRvdF9sZW47CiAJcCA9IChjaGFyICopKG9w dDIgKyAxKTsKIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaW5ldDZfY29ubmVjdGlvbl9zb2NrLmMg Yi9uZXQvaXB2Ni9pbmV0Nl9jb25uZWN0aW9uX3NvY2suYwppbmRleCAxNTY3ZmIxLi5hMjMyMzcx IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pbmV0Nl9jb25uZWN0aW9uX3NvY2suYworKysgYi9uZXQv aXB2Ni9pbmV0Nl9jb25uZWN0aW9uX3NvY2suYwpAQCAtNjYsNyArNjYsOSBAQCBzdHJ1Y3QgZHN0 X2VudHJ5ICppbmV0Nl9jc2tfcm91dGVfcmVxKHN0cnVjdCBzb2NrICpzaywKIAltZW1zZXQoJmZs NiwgMCwgc2l6ZW9mKGZsNikpOwogCWZsNi5mbG93aTZfcHJvdG8gPSBJUFBST1RPX1RDUDsKIAlp cHY2X2FkZHJfY29weSgmZmw2LmRhZGRyLCAmdHJlcS0+cm10X2FkZHIpOwotCWZpbmFsX3AgPSBm bDZfdXBkYXRlX2RzdCgmZmw2LCBucC0+b3B0LCAmZmluYWwpOworCXJjdV9yZWFkX2xvY2soKTsK KwlmaW5hbF9wID0gZmw2X3VwZGF0ZV9kc3QoJmZsNiwgcmN1X2RlcmVmZXJlbmNlKG5wLT5vcHQp LCAmZmluYWwpOworCXJjdV9yZWFkX3VubG9jaygpOwogCWlwdjZfYWRkcl9jb3B5KCZmbDYuc2Fk ZHIsICZ0cmVxLT5sb2NfYWRkcik7CiAJZmw2LmZsb3dpNl9vaWYgPSBzay0+c2tfYm91bmRfZGV2 X2lmOwogCWZsNi5mbG93aTZfbWFyayA9IHNrLT5za19tYXJrOwpAQCAtMjI1LDcgKzIyNyw5IEBA IGludCBpbmV0Nl9jc2tfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZmxvd2kgKmZs X3VudXNlZCkKIAlmbDYuZmw2X2Rwb3J0ID0gaW5ldC0+aW5ldF9kcG9ydDsKIAlzZWN1cml0eV9z a19jbGFzc2lmeV9mbG93KHNrLCBmbG93aTZfdG9fZmxvd2koJmZsNikpOwogCi0JZmluYWxfcCA9 IGZsNl91cGRhdGVfZHN0KCZmbDYsIG5wLT5vcHQsICZmaW5hbCk7CisJcmN1X3JlYWRfbG9jaygp OworCWZpbmFsX3AgPSBmbDZfdXBkYXRlX2RzdCgmZmw2LCByY3VfZGVyZWZlcmVuY2UobnAtPm9w dCksICZmaW5hbCk7CisJcmN1X3JlYWRfdW5sb2NrKCk7CiAKIAlkc3QgPSBfX2luZXQ2X2Nza19k c3RfY2hlY2soc2ssIG5wLT5kc3RfY29va2llKTsKIApAQCAtMjQ4LDcgKzI1Miw4IEBAIGludCBp bmV0Nl9jc2tfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZmxvd2kgKmZsX3VudXNl ZCkKIAkvKiBSZXN0b3JlIGZpbmFsIGRlc3RpbmF0aW9uIGJhY2sgYWZ0ZXIgcm91dGluZyBkb25l ICovCiAJaXB2Nl9hZGRyX2NvcHkoJmZsNi5kYWRkciwgJm5wLT5kYWRkcik7CiAKLQlyZXMgPSBp cDZfeG1pdChzaywgc2tiLCAmZmw2LCBucC0+b3B0LCBucC0+dGNsYXNzKTsKKwlyZXMgPSBpcDZf eG1pdChzaywgc2tiLCAmZmw2LCByY3VfZGVyZWZlcmVuY2UobnAtPm9wdCksCisJCSAgICAgICBu cC0+dGNsYXNzKTsKIAlyY3VfcmVhZF91bmxvY2soKTsKIAlyZXR1cm4gcmVzOwogfQpkaWZmIC0t Z2l0IGEvbmV0L2lwdjYvaXA2bXIuYyBiL25ldC9pcHY2L2lwNm1yLmMKaW5kZXggOTllZTg2ZC4u MDJiM2M4MiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2bXIuYworKysgYi9uZXQvaXB2Ni9pcDZt ci5jCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGljIGludCBfX2lwNm1yX2ZpbGxfbXJvdXRlKHN0 cnVjdCBtcjZfdGFibGUgKm1ydCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCSAgICAgICBzdHJ1 Y3QgbWZjNl9jYWNoZSAqYywgc3RydWN0IHJ0bXNnICpydG0pOwogc3RhdGljIGludCBpcDZtcl9y dG1fZHVtcHJvdXRlKHN0cnVjdCBza19idWZmICpza2IsCiAJCQkgICAgICAgc3RydWN0IG5ldGxp bmtfY2FsbGJhY2sgKmNiKTsKLXN0YXRpYyB2b2lkIG1yb3V0ZV9jbGVhbl90YWJsZXMoc3RydWN0 IG1yNl90YWJsZSAqbXJ0KTsKK3N0YXRpYyB2b2lkIG1yb3V0ZV9jbGVhbl90YWJsZXMoc3RydWN0 IG1yNl90YWJsZSAqbXJ0LCBib29sIGFsbCk7CiBzdGF0aWMgdm9pZCBpcG1yX2V4cGlyZV9wcm9j ZXNzKHVuc2lnbmVkIGxvbmcgYXJnKTsKIAogI2lmZGVmIENPTkZJR19JUFY2X01ST1VURV9NVUxU SVBMRV9UQUJMRVMKQEAgLTMzNCw4ICszMzQsOCBAQCBzdGF0aWMgc3RydWN0IG1yNl90YWJsZSAq aXA2bXJfbmV3X3RhYmxlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGlkKQogCiBzdGF0aWMgdm9pZCBp cDZtcl9mcmVlX3RhYmxlKHN0cnVjdCBtcjZfdGFibGUgKm1ydCkKIHsKLQlkZWxfdGltZXIoJm1y dC0+aXBtcl9leHBpcmVfdGltZXIpOwotCW1yb3V0ZV9jbGVhbl90YWJsZXMobXJ0KTsKKwlkZWxf dGltZXJfc3luYygmbXJ0LT5pcG1yX2V4cGlyZV90aW1lcik7CisJbXJvdXRlX2NsZWFuX3RhYmxl cyhtcnQsIHRydWUpOwogCWtmcmVlKG1ydCk7CiB9CiAKQEAgLTE0NzMsNyArMTQ3Myw3IEBAIHN0 YXRpYyBpbnQgaXA2bXJfbWZjX2FkZChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBtcjZfdGFibGUg Km1ydCwKICAqCUNsb3NlIHRoZSBtdWx0aWNhc3Qgc29ja2V0LCBhbmQgY2xlYXIgdGhlIHZpZiB0 YWJsZXMgZXRjCiAgKi8KIAotc3RhdGljIHZvaWQgbXJvdXRlX2NsZWFuX3RhYmxlcyhzdHJ1Y3Qg bXI2X3RhYmxlICptcnQpCitzdGF0aWMgdm9pZCBtcm91dGVfY2xlYW5fdGFibGVzKHN0cnVjdCBt cjZfdGFibGUgKm1ydCwgYm9vbCBhbGwpCiB7CiAJaW50IGk7CiAJTElTVF9IRUFEKGxpc3QpOwpA QCAtMTQ4Myw4ICsxNDgzLDkgQEAgc3RhdGljIHZvaWQgbXJvdXRlX2NsZWFuX3RhYmxlcyhzdHJ1 Y3QgbXI2X3RhYmxlICptcnQpCiAJICoJU2h1dCBkb3duIGFsbCBhY3RpdmUgdmlmIGVudHJpZXMK IAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwgbXJ0LT5tYXh2aWY7IGkrKykgewotCQlpZiAoIShtcnQt PnZpZjZfdGFibGVbaV0uZmxhZ3MgJiBWSUZGX1NUQVRJQykpCi0JCQltaWY2X2RlbGV0ZShtcnQs IGksICZsaXN0KTsKKwkJaWYgKCFhbGwgJiYgKG1ydC0+dmlmNl90YWJsZVtpXS5mbGFncyAmIFZJ RkZfU1RBVElDKSkKKwkJCWNvbnRpbnVlOworCQltaWY2X2RlbGV0ZShtcnQsIGksICZsaXN0KTsK IAl9CiAJdW5yZWdpc3Rlcl9uZXRkZXZpY2VfbWFueSgmbGlzdCk7CiAKQEAgLTE0OTMsNyArMTQ5 NCw3IEBAIHN0YXRpYyB2b2lkIG1yb3V0ZV9jbGVhbl90YWJsZXMoc3RydWN0IG1yNl90YWJsZSAq bXJ0KQogCSAqLwogCWZvciAoaSA9IDA7IGkgPCBNRkM2X0xJTkVTOyBpKyspIHsKIAkJbGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKGMsIG5leHQsICZtcnQtPm1mYzZfY2FjaGVfYXJyYXlbaV0sIGxp c3QpIHsKLQkJCWlmIChjLT5tZmNfZmxhZ3MgJiBNRkNfU1RBVElDKQorCQkJaWYgKCFhbGwgJiYg KGMtPm1mY19mbGFncyAmIE1GQ19TVEFUSUMpKQogCQkJCWNvbnRpbnVlOwogCQkJd3JpdGVfbG9j a19iaCgmbXJ0X2xvY2spOwogCQkJbGlzdF9kZWwoJmMtPmxpc3QpOwpAQCAtMTU0Nyw3ICsxNTQ4 LDcgQEAgaW50IGlwNm1yX3NrX2RvbmUoc3RydWN0IHNvY2sgKnNrKQogCQkJbmV0LT5pcHY2LmRl dmNvbmZfYWxsLT5tY19mb3J3YXJkaW5nLS07CiAJCQl3cml0ZV91bmxvY2tfYmgoJm1ydF9sb2Nr KTsKIAotCQkJbXJvdXRlX2NsZWFuX3RhYmxlcyhtcnQpOworCQkJbXJvdXRlX2NsZWFuX3RhYmxl cyhtcnQsIGZhbHNlKTsKIAkJCWVyciA9IDA7CiAJCQlicmVhazsKIAkJfQpkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvaXB2Nl9zb2NrZ2x1ZS5jIGIvbmV0L2lwdjYvaXB2Nl9zb2NrZ2x1ZS5jCmluZGV4 IGIyMDRkZjguLjlhZjNmNWMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwdjZfc29ja2dsdWUuYwor KysgYi9uZXQvaXB2Ni9pcHY2X3NvY2tnbHVlLmMKQEAgLTExMCwxMCArMTEwLDEyIEBAIHN0cnVj dCBpcHY2X3R4b3B0aW9ucyAqaXB2Nl91cGRhdGVfb3B0aW9ucyhzdHJ1Y3Qgc29jayAqc2ssCiAJ CQlpY3NrLT5pY3NrX2V4dF9oZHJfbGVuID0gb3B0LT5vcHRfZmxlbiArIG9wdC0+b3B0X25mbGVu OwogCQkJaWNzay0+aWNza19zeW5jX21zcyhzaywgaWNzay0+aWNza19wbXR1X2Nvb2tpZSk7CiAJ CX0KLQkJb3B0ID0geGNoZygmaW5ldDZfc2soc2spLT5vcHQsIG9wdCk7CisJCW9wdCA9IHhjaGco KF9fZm9yY2Ugc3RydWN0IGlwdjZfdHhvcHRpb25zICoqKSZpbmV0Nl9zayhzayktPm9wdCwKKwkJ CSAgIG9wdCk7CiAJfSBlbHNlIHsKIAkJc3Bpbl9sb2NrKCZzay0+c2tfZHN0X2xvY2spOwotCQlv cHQgPSB4Y2hnKCZpbmV0Nl9zayhzayktPm9wdCwgb3B0KTsKKwkJb3B0ID0geGNoZygoX19mb3Jj ZSBzdHJ1Y3QgaXB2Nl90eG9wdGlvbnMgKiopJmluZXQ2X3NrKHNrKS0+b3B0LAorCQkJICAgb3B0 KTsKIAkJc3Bpbl91bmxvY2soJnNrLT5za19kc3RfbG9jayk7CiAJfQogCXNrX2RzdF9yZXNldChz ayk7CkBAIC0yMTMsOSArMjE1LDEyIEBAIHN0YXRpYyBpbnQgZG9faXB2Nl9zZXRzb2Nrb3B0KHN0 cnVjdCBzb2NrICpzaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwKIAkJCQlzay0+c2tfc29ja2V0 LT5vcHMgPSAmaW5ldF9kZ3JhbV9vcHM7CiAJCQkJc2stPnNrX2ZhbWlseSA9IFBGX0lORVQ7CiAJ CQl9Ci0JCQlvcHQgPSB4Y2hnKCZucC0+b3B0LCBOVUxMKTsKLQkJCWlmIChvcHQpCi0JCQkJc29j a19rZnJlZV9zKHNrLCBvcHQsIG9wdC0+dG90X2xlbik7CisJCQlvcHQgPSB4Y2hnKChfX2ZvcmNl IHN0cnVjdCBpcHY2X3R4b3B0aW9ucyAqKikmbnAtPm9wdCwKKwkJCQkgICBOVUxMKTsKKwkJCWlm IChvcHQpIHsKKwkJCQlhdG9taWNfc3ViKG9wdC0+dG90X2xlbiwgJnNrLT5za19vbWVtX2FsbG9j KTsKKwkJCQl0eG9wdF9wdXQob3B0KTsKKwkJCX0KIAkJCXBrdG9wdCA9IHhjaGcoJm5wLT5wa3Rv cHRpb25zLCBOVUxMKTsKIAkJCWtmcmVlX3NrYihwa3RvcHQpOwogCkBAIC0zODQsNyArMzg5LDgg QEAgc3RhdGljIGludCBkb19pcHY2X3NldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2 ZWwsIGludCBvcHRuYW1lLAogCQlpZiAob3B0bmFtZSAhPSBJUFY2X1JUSERSICYmICFjYXBhYmxl KENBUF9ORVRfUkFXKSkKIAkJCWJyZWFrOwogCi0JCW9wdCA9IGlwdjZfcmVuZXdfb3B0aW9ucyhz aywgbnAtPm9wdCwgb3B0bmFtZSwKKwkJb3B0ID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChu cC0+b3B0LCBzb2NrX293bmVkX2J5X3VzZXIoc2spKTsKKwkJb3B0ID0gaXB2Nl9yZW5ld19vcHRp b25zKHNrLCBvcHQsIG9wdG5hbWUsCiAJCQkJCSAoc3RydWN0IGlwdjZfb3B0X2hkciBfX3VzZXIg KilvcHR2YWwsCiAJCQkJCSBvcHRsZW4pOwogCQlpZiAoSVNfRVJSKG9wdCkpIHsKQEAgLTQxMyw4 ICs0MTksMTAgQEAgc3RhdGljIGludCBkb19pcHY2X3NldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNr LCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLAogCQlyZXR2ID0gMDsKIAkJb3B0ID0gaXB2Nl91cGRh dGVfb3B0aW9ucyhzaywgb3B0KTsKIHN0aWNreV9kb25lOgotCQlpZiAob3B0KQotCQkJc29ja19r ZnJlZV9zKHNrLCBvcHQsIG9wdC0+dG90X2xlbik7CisJCWlmIChvcHQpIHsKKwkJCWF0b21pY19z dWIob3B0LT50b3RfbGVuLCAmc2stPnNrX29tZW1fYWxsb2MpOworCQkJdHhvcHRfcHV0KG9wdCk7 CisJCX0KIAkJYnJlYWs7CiAJfQogCkBAIC00NjcsNiArNDc1LDcgQEAgc3RpY2t5X2RvbmU6CiAJ CQlicmVhazsKIAogCQltZW1zZXQob3B0LCAwLCBzaXplb2YoKm9wdCkpOworCQlhdG9taWNfc2V0 KCZvcHQtPnJlZmNudCwgMSk7CiAJCW9wdC0+dG90X2xlbiA9IHNpemVvZigqb3B0KSArIG9wdGxl bjsKIAkJcmV0diA9IC1FRkFVTFQ7CiAJCWlmIChjb3B5X2Zyb21fdXNlcihvcHQrMSwgb3B0dmFs LCBvcHRsZW4pKQpAQCAtNDgzLDggKzQ5MiwxMCBAQCB1cGRhdGU6CiAJCXJldHYgPSAwOwogCQlv cHQgPSBpcHY2X3VwZGF0ZV9vcHRpb25zKHNrLCBvcHQpOwogZG9uZToKLQkJaWYgKG9wdCkKLQkJ CXNvY2tfa2ZyZWVfcyhzaywgb3B0LCBvcHQtPnRvdF9sZW4pOworCQlpZiAob3B0KSB7CisJCQlh dG9taWNfc3ViKG9wdC0+dG90X2xlbiwgJnNrLT5za19vbWVtX2FsbG9jKTsKKwkJCXR4b3B0X3B1 dChvcHQpOworCQl9CiAJCWJyZWFrOwogCX0KIAljYXNlIElQVjZfVU5JQ0FTVF9IT1BTOgpAQCAt MTA1MywxMCArMTA2NCwxMSBAQCBzdGF0aWMgaW50IGRvX2lwdjZfZ2V0c29ja29wdChzdHJ1Y3Qg c29jayAqc2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJY2FzZSBJUFY2X1JUSERSOgogCWNh c2UgSVBWNl9EU1RPUFRTOgogCXsKKwkJc3RydWN0IGlwdjZfdHhvcHRpb25zICpvcHQ7CiAKIAkJ bG9ja19zb2NrKHNrKTsKLQkJbGVuID0gaXB2Nl9nZXRzb2Nrb3B0X3N0aWNreShzaywgbnAtPm9w dCwKLQkJCQkJICAgICBvcHRuYW1lLCBvcHR2YWwsIGxlbik7CisJCW9wdCA9IHJjdV9kZXJlZmVy ZW5jZV9wcm90ZWN0ZWQobnAtPm9wdCwgc29ja19vd25lZF9ieV91c2VyKHNrKSk7CisJCWxlbiA9 IGlwdjZfZ2V0c29ja29wdF9zdGlja3koc2ssIG9wdCwgb3B0bmFtZSwgb3B0dmFsLCBsZW4pOwog CQlyZWxlYXNlX3NvY2soc2spOwogCQkvKiBjaGVjayBpZiBpcHY2X2dldHNvY2tvcHRfc3RpY2t5 KCkgcmV0dXJucyBlcnIgY29kZSAqLwogCQlpZiAobGVuIDwgMCkKZGlmZiAtLWdpdCBhL25ldC9p cHY2L21jYXN0LmMgYi9uZXQvaXB2Ni9tY2FzdC5jCmluZGV4IDdiYjY2NDQuLjkxMjlhN2MgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L21jYXN0LmMKKysrIGIvbmV0L2lwdjYvbWNhc3QuYwpAQCAtMTQ0 MSw3ICsxNDQxLDYgQEAgb3V0OgogCWlmICghZXJyKSB7CiAJCUlDTVA2TVNHT1VUX0lOQ19TVEFU UyhuZXQsIGlkZXYsIElDTVBWNl9NTEQyX1JFUE9SVCk7CiAJCUlDTVA2X0lOQ19TVEFUUyhuZXQs IGlkZXYsIElDTVA2X01JQl9PVVRNU0dTKTsKLQkJSVA2X1VQRF9QT19TVEFUUyhuZXQsIGlkZXYs IElQU1RBVFNfTUlCX09VVE1DQVNULCBwYXlsb2FkX2xlbik7CiAJfSBlbHNlIHsKIAkJSVA2X0lO Q19TVEFUUyhuZXQsIGlkZXYsIElQU1RBVFNfTUlCX09VVERJU0NBUkRTKTsKIAl9CkBAIC0xODEx LDcgKzE4MTAsNiBAQCBvdXQ6CiAJaWYgKCFlcnIpIHsKIAkJSUNNUDZNU0dPVVRfSU5DX1NUQVRT KG5ldCwgaWRldiwgdHlwZSk7CiAJCUlDTVA2X0lOQ19TVEFUUyhuZXQsIGlkZXYsIElDTVA2X01J Ql9PVVRNU0dTKTsKLQkJSVA2X1VQRF9QT19TVEFUUyhuZXQsIGlkZXYsIElQU1RBVFNfTUlCX09V VE1DQVNULCBmdWxsX2xlbik7CiAJfSBlbHNlCiAJCUlQNl9JTkNfU1RBVFMobmV0LCBpZGV2LCBJ UFNUQVRTX01JQl9PVVRESVNDQVJEUyk7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2L25ldGZpbHRl ci9uZl9jb25udHJhY2tfcmVhc20uYyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tf cmVhc20uYwppbmRleCA1MmUyZjY1Li4yMjUyYjg3IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9uZXRm aWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMKKysrIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nv bm50cmFja19yZWFzbS5jCkBAIC0xNjIsNyArMTYyLDcgQEAgb3V0OgogLyogQ3JlYXRpb24gcHJp bWl0aXZlcy4gKi8KIAogc3RhdGljIF9faW5saW5lX18gc3RydWN0IG5mX2N0X2ZyYWc2X3F1ZXVl ICoKLWZxX2ZpbmQoX19iZTMyIGlkLCB1MzIgdXNlciwgc3RydWN0IGluNl9hZGRyICpzcmMsIHN0 cnVjdCBpbjZfYWRkciAqZHN0KQorZnFfZmluZChfX2JlMzIgaWQsIHUzMiB1c2VyLCBzdHJ1Y3Qg aW42X2FkZHIgKnNyYywgc3RydWN0IGluNl9hZGRyICpkc3QsIGludCBpaWYpCiB7CiAJc3RydWN0 IGluZXRfZnJhZ19xdWV1ZSAqcTsKIAlzdHJ1Y3QgaXA2X2NyZWF0ZV9hcmcgYXJnOwpAQCAtMTcy LDYgKzE3Miw3IEBAIGZxX2ZpbmQoX19iZTMyIGlkLCB1MzIgdXNlciwgc3RydWN0IGluNl9hZGRy ICpzcmMsIHN0cnVjdCBpbjZfYWRkciAqZHN0KQogCWFyZy51c2VyID0gdXNlcjsKIAlhcmcuc3Jj ID0gc3JjOwogCWFyZy5kc3QgPSBkc3Q7CisJYXJnLmlpZiA9IGlpZjsKIAogCXJlYWRfbG9ja19i aCgmbmZfZnJhZ3MubG9jayk7CiAJaGFzaCA9IGluZXQ2X2hhc2hfZnJhZyhpZCwgc3JjLCBkc3Qs IG5mX2ZyYWdzLnJuZCk7CkBAIC01NTgsNyArNTU5LDggQEAgc3RydWN0IHNrX2J1ZmYgKm5mX2N0 X2ZyYWc2X2dhdGhlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgdXNlcikKIAlpZiAoYXRvbWlj X3JlYWQoJm5mX2luaXRfZnJhZ3MubWVtKSA+IG5mX2luaXRfZnJhZ3MuaGlnaF90aHJlc2gpCiAJ CW5mX2N0X2ZyYWc2X2V2aWN0b3IoKTsKIAotCWZxID0gZnFfZmluZChmaGRyLT5pZGVudGlmaWNh dGlvbiwgdXNlciwgJmhkci0+c2FkZHIsICZoZHItPmRhZGRyKTsKKwlmcSA9IGZxX2ZpbmQoZmhk ci0+aWRlbnRpZmljYXRpb24sIHVzZXIsICZoZHItPnNhZGRyLCAmaGRyLT5kYWRkciwKKwkJICAg ICBza2ItPmRldiA/IHNrYi0+ZGV2LT5pZmluZGV4IDogMCk7CiAJaWYgKGZxID09IE5VTEwpIHsK IAkJcHJfZGVidWcoIkNhbid0IGZpbmQgYW5kIGNhbid0IGNyZWF0ZSBuZXcgcXVldWVcbiIpOwog CQlnb3RvIHJldF9vcmlnOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcmF3LmMgYi9uZXQvaXB2Ni9y YXcuYwppbmRleCAyNDBjMTAyZi4uZDFlNTI4YyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcmF3LmMK KysrIGIvbmV0L2lwdjYvcmF3LmMKQEAgLTcyNCw2ICs3MjQsNyBAQCBzdGF0aWMgaW50IHJhd3Y2 X3Byb2JlX3Byb3RvX29wdChzdHJ1Y3QgZmxvd2k2ICpmbDYsIHN0cnVjdCBtc2doZHIgKm1zZykK IHN0YXRpYyBpbnQgcmF3djZfc2VuZG1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2Nr ICpzaywKIAkJICAgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuKQogeworCXN0cnVjdCBp cHY2X3R4b3B0aW9ucyAqb3B0X3RvX2ZyZWUgPSBOVUxMOwogCXN0cnVjdCBpcHY2X3R4b3B0aW9u cyBvcHRfc3BhY2U7CiAJc3RydWN0IHNvY2thZGRyX2luNiAqIHNpbjYgPSAoc3RydWN0IHNvY2th ZGRyX2luNiAqKSBtc2ctPm1zZ19uYW1lOwogCXN0cnVjdCBpbjZfYWRkciAqZGFkZHIsICpmaW5h bF9wLCBmaW5hbDsKQEAgLTgzMCw4ICs4MzEsMTAgQEAgc3RhdGljIGludCByYXd2Nl9zZW5kbXNn KHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2sgKnNrLAogCQlpZiAoIShvcHQtPm9wdF9u ZmxlbnxvcHQtPm9wdF9mbGVuKSkKIAkJCW9wdCA9IE5VTEw7CiAJfQotCWlmIChvcHQgPT0gTlVM TCkKLQkJb3B0ID0gbnAtPm9wdDsKKwlpZiAoIW9wdCkgeworCQlvcHQgPSB0eG9wdF9nZXQobnAp OworCQlvcHRfdG9fZnJlZSA9IG9wdDsKKwl9CiAJaWYgKGZsb3dsYWJlbCkKIAkJb3B0ID0gZmw2 X21lcmdlX29wdGlvbnMoJm9wdF9zcGFjZSwgZmxvd2xhYmVsLCBvcHQpOwogCW9wdCA9IGlwdjZf Zml4dXBfb3B0aW9ucygmb3B0X3NwYWNlLCBvcHQpOwpAQCAtODk2LDYgKzg5OSw3IEBAIGRvbmU6 CiAJZHN0X3JlbGVhc2UoZHN0KTsKIG91dDoKIAlmbDZfc29ja19yZWxlYXNlKGZsb3dsYWJlbCk7 CisJdHhvcHRfcHV0KG9wdF90b19mcmVlKTsKIAlyZXR1cm4gZXJyPDA/ZXJyOmxlbjsKIGRvX2Nv bmZpcm06CiAJZHN0X2NvbmZpcm0oZHN0KTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JlYXNzZW1i bHkuYyBiL25ldC9pcHY2L3JlYXNzZW1ibHkuYwppbmRleCBlYmE1ZGViLi41Mzc4ZmFhIDEwMDY0 NAotLS0gYS9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMKKysrIGIvbmV0L2lwdjYvcmVhc3NlbWJseS5j CkBAIC0xNDQsOCArMTQ0LDExIEBAIGludCBpcDZfZnJhZ19tYXRjaChzdHJ1Y3QgaW5ldF9mcmFn X3F1ZXVlICpxLCB2b2lkICphKQogCiAJZnEgPSBjb250YWluZXJfb2YocSwgc3RydWN0IGZyYWdf cXVldWUsIHEpOwogCXJldHVybiAoZnEtPmlkID09IGFyZy0+aWQgJiYgZnEtPnVzZXIgPT0gYXJn LT51c2VyICYmCi0JCQlpcHY2X2FkZHJfZXF1YWwoJmZxLT5zYWRkciwgYXJnLT5zcmMpICYmCi0J CQlpcHY2X2FkZHJfZXF1YWwoJmZxLT5kYWRkciwgYXJnLT5kc3QpKTsKKwkJaXB2Nl9hZGRyX2Vx dWFsKCZmcS0+c2FkZHIsIGFyZy0+c3JjKSAmJgorCQlpcHY2X2FkZHJfZXF1YWwoJmZxLT5kYWRk ciwgYXJnLT5kc3QpICYmCisJCShhcmctPmlpZiA9PSBmcS0+aWlmIHx8CisJCSAhKGlwdjZfYWRk cl90eXBlKGFyZy0+ZHN0KSAmIChJUFY2X0FERFJfTVVMVElDQVNUIHwKKwkJCQkJICAgICAgIElQ VjZfQUREUl9MSU5LTE9DQUwpKSkpOwogfQogRVhQT1JUX1NZTUJPTChpcDZfZnJhZ19tYXRjaCk7 CiAKQEAgLTIyOCw3ICsyMzEsOCBAQCBvdXQ6CiB9CiAKIHN0YXRpYyBfX2lubGluZV9fIHN0cnVj dCBmcmFnX3F1ZXVlICoKLWZxX2ZpbmQoc3RydWN0IG5ldCAqbmV0LCBfX2JlMzIgaWQsIGNvbnN0 IHN0cnVjdCBpbjZfYWRkciAqc3JjLCBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmRzdCkKK2ZxX2Zp bmQoc3RydWN0IG5ldCAqbmV0LCBfX2JlMzIgaWQsIGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqc3Jj LAorCWNvbnN0IHN0cnVjdCBpbjZfYWRkciAqZHN0LCBpbnQgaWlmKQogewogCXN0cnVjdCBpbmV0 X2ZyYWdfcXVldWUgKnE7CiAJc3RydWN0IGlwNl9jcmVhdGVfYXJnIGFyZzsKQEAgLTIzOCw2ICsy NDIsNyBAQCBmcV9maW5kKHN0cnVjdCBuZXQgKm5ldCwgX19iZTMyIGlkLCBjb25zdCBzdHJ1Y3Qg aW42X2FkZHIgKnNyYywgY29uc3Qgc3RydWN0IGluNgogCWFyZy51c2VyID0gSVA2X0RFRlJBR19M T0NBTF9ERUxJVkVSOwogCWFyZy5zcmMgPSBzcmM7CiAJYXJnLmRzdCA9IGRzdDsKKwlhcmcuaWlm ID0gaWlmOwogCiAJcmVhZF9sb2NrKCZpcDZfZnJhZ3MubG9jayk7CiAJaGFzaCA9IGluZXQ2X2hh c2hfZnJhZyhpZCwgc3JjLCBkc3QsIGlwNl9mcmFncy5ybmQpOwpAQCAtNTgzLDcgKzU4OCw4IEBA IHN0YXRpYyBpbnQgaXB2Nl9mcmFnX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCWlmIChhdG9t aWNfcmVhZCgmbmV0LT5pcHY2LmZyYWdzLm1lbSkgPiBuZXQtPmlwdjYuZnJhZ3MuaGlnaF90aHJl c2gpCiAJCWlwNl9ldmljdG9yKG5ldCwgaXA2X2RzdF9pZGV2KHNrYl9kc3Qoc2tiKSkpOwogCi0J ZnEgPSBmcV9maW5kKG5ldCwgZmhkci0+aWRlbnRpZmljYXRpb24sICZoZHItPnNhZGRyLCAmaGRy LT5kYWRkcik7CisJZnEgPSBmcV9maW5kKG5ldCwgZmhkci0+aWRlbnRpZmljYXRpb24sICZoZHIt PnNhZGRyLCAmaGRyLT5kYWRkciwKKwkJICAgICBza2ItPmRldiA/IHNrYi0+ZGV2LT5pZmluZGV4 IDogMCk7CiAJaWYgKGZxICE9IE5VTEwpIHsKIAkJaW50IHJldDsKIApkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvc3luY29va2llcy5jIGIvbmV0L2lwdjYvc3luY29va2llcy5jCmluZGV4IDVhMGQ2NjQu LmNmYzYyODQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3N5bmNvb2tpZXMuYworKysgYi9uZXQvaXB2 Ni9zeW5jb29raWVzLmMKQEAgLTIzOCw3ICsyMzgsNyBAQCBzdHJ1Y3Qgc29jayAqY29va2llX3Y2 X2NoZWNrKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJbWVtc2V0KCZm bDYsIDAsIHNpemVvZihmbDYpKTsKIAkJZmw2LmZsb3dpNl9wcm90byA9IElQUFJPVE9fVENQOwog CQlpcHY2X2FkZHJfY29weSgmZmw2LmRhZGRyLCAmaXJlcTYtPnJtdF9hZGRyKTsKLQkJZmluYWxf cCA9IGZsNl91cGRhdGVfZHN0KCZmbDYsIG5wLT5vcHQsICZmaW5hbCk7CisJCWZpbmFsX3AgPSBm bDZfdXBkYXRlX2RzdCgmZmw2LCByY3VfZGVyZWZlcmVuY2UobnAtPm9wdCksICZmaW5hbCk7CiAJ CWlwdjZfYWRkcl9jb3B5KCZmbDYuc2FkZHIsICZpcmVxNi0+bG9jX2FkZHIpOwogCQlmbDYuZmxv d2k2X29pZiA9IHNrLT5za19ib3VuZF9kZXZfaWY7CiAJCWZsNi5mbG93aTZfbWFyayA9IHNrLT5z a19tYXJrOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYuYyBiL25ldC9pcHY2L3RjcF9p cHY2LmMKaW5kZXggNjU1Y2M2MC4uMDE3MDY3OSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvdGNwX2lw djYuYworKysgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCkBAIC0xMzEsNiArMTMxLDcgQEAgc3RhdGlj IGludCB0Y3BfdjZfY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFk ZHIsCiAJc3RydWN0IGlwdjZfcGluZm8gKm5wID0gaW5ldDZfc2soc2spOwogCXN0cnVjdCB0Y3Bf c29jayAqdHAgPSB0Y3Bfc2soc2spOwogCXN0cnVjdCBpbjZfYWRkciAqc2FkZHIgPSBOVUxMLCAq ZmluYWxfcCwgZmluYWw7CisJc3RydWN0IGlwdjZfdHhvcHRpb25zICpvcHQ7CiAJc3RydWN0IHJ0 Nl9pbmZvICpydDsKIAlzdHJ1Y3QgZmxvd2k2IGZsNjsKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Q7 CkBAIC0yNTIsNyArMjUzLDggQEAgc3RhdGljIGludCB0Y3BfdjZfY29ubmVjdChzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsCiAJZmw2LmZsNl9kcG9ydCA9IHVzaW4tPnNp bjZfcG9ydDsKIAlmbDYuZmw2X3Nwb3J0ID0gaW5ldC0+aW5ldF9zcG9ydDsKIAotCWZpbmFsX3Ag PSBmbDZfdXBkYXRlX2RzdCgmZmw2LCBucC0+b3B0LCAmZmluYWwpOworCW9wdCA9IHJjdV9kZXJl ZmVyZW5jZV9wcm90ZWN0ZWQobnAtPm9wdCwgc29ja19vd25lZF9ieV91c2VyKHNrKSk7CisJZmlu YWxfcCA9IGZsNl91cGRhdGVfZHN0KCZmbDYsIG9wdCwgJmZpbmFsKTsKIAogCXNlY3VyaXR5X3Nr X2NsYXNzaWZ5X2Zsb3coc2ssIGZsb3dpNl90b19mbG93aSgmZmw2KSk7CiAKQEAgLTI5NSw5ICsy OTcsOSBAQCBzdGF0aWMgaW50IHRjcF92Nl9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IHNvY2thZGRyICp1YWRkciwKIAl9CiAKIAlpY3NrLT5pY3NrX2V4dF9oZHJfbGVuID0gMDsKLQlp ZiAobnAtPm9wdCkKLQkJaWNzay0+aWNza19leHRfaGRyX2xlbiA9IChucC0+b3B0LT5vcHRfZmxl biArCi0JCQkJCSAgbnAtPm9wdC0+b3B0X25mbGVuKTsKKwlpZiAob3B0KQorCQlpY3NrLT5pY3Nr X2V4dF9oZHJfbGVuID0gb3B0LT5vcHRfZmxlbiArCisJCQkJCSBvcHQtPm9wdF9uZmxlbjsKIAog CXRwLT5yeF9vcHQubXNzX2NsYW1wID0gSVBWNl9NSU5fTVRVIC0gc2l6ZW9mKHN0cnVjdCB0Y3Bo ZHIpIC0gc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTsKIApAQCAtNDgxLDcgKzQ4Myw2IEBAIHN0YXRp YyBpbnQgdGNwX3Y2X3NlbmRfc3luYWNrKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rf c29jayAqcmVxLAogCXN0cnVjdCBpbmV0Nl9yZXF1ZXN0X3NvY2sgKnRyZXEgPSBpbmV0Nl9yc2so cmVxKTsKIAlzdHJ1Y3QgaXB2Nl9waW5mbyAqbnAgPSBpbmV0Nl9zayhzayk7CiAJc3RydWN0IHNr X2J1ZmYgKiBza2I7Ci0Jc3RydWN0IGlwdjZfdHhvcHRpb25zICpvcHQgPSBOVUxMOwogCXN0cnVj dCBpbjZfYWRkciAqIGZpbmFsX3AsIGZpbmFsOwogCXN0cnVjdCBmbG93aTYgZmw2OwogCXN0cnVj dCBkc3RfZW50cnkgKmRzdDsKQEAgLTQ5OCw4ICs0OTksNyBAQCBzdGF0aWMgaW50IHRjcF92Nl9z ZW5kX3N5bmFjayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSwKIAlm bDYuZmw2X3Nwb3J0ID0gaW5ldF9yc2socmVxKS0+bG9jX3BvcnQ7CiAJc2VjdXJpdHlfcmVxX2Ns YXNzaWZ5X2Zsb3cocmVxLCBmbG93aTZfdG9fZmxvd2koJmZsNikpOwogCi0Jb3B0ID0gbnAtPm9w dDsKLQlmaW5hbF9wID0gZmw2X3VwZGF0ZV9kc3QoJmZsNiwgb3B0LCAmZmluYWwpOworCWZpbmFs X3AgPSBmbDZfdXBkYXRlX2RzdCgmZmw2LCByY3VfZGVyZWZlcmVuY2UobnAtPm9wdCksICZmaW5h bCk7CiAKIAlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNrLCAmZmw2LCBmaW5hbF9wLCBmYWxz ZSk7CiAJaWYgKElTX0VSUihkc3QpKSB7CkBAIC01MTMsMTMgKzUxMywxMiBAQCBzdGF0aWMgaW50 IHRjcF92Nl9zZW5kX3N5bmFjayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sg KnJlcSwKIAkJX190Y3BfdjZfc2VuZF9jaGVjayhza2IsICZ0cmVxLT5sb2NfYWRkciwgJnRyZXEt PnJtdF9hZGRyKTsKIAogCQlpcHY2X2FkZHJfY29weSgmZmw2LmRhZGRyLCAmdHJlcS0+cm10X2Fk ZHIpOwotCQllcnIgPSBpcDZfeG1pdChzaywgc2tiLCAmZmw2LCBvcHQsIG5wLT50Y2xhc3MpOwor CQllcnIgPSBpcDZfeG1pdChzaywgc2tiLCAmZmw2LCByY3VfZGVyZWZlcmVuY2UobnAtPm9wdCks CisJCQkgICAgICAgbnAtPnRjbGFzcyk7CiAJCWVyciA9IG5ldF94bWl0X2V2YWwoZXJyKTsKIAl9 CiAKIGRvbmU6Ci0JaWYgKG9wdCAmJiBvcHQgIT0gbnAtPm9wdCkKLQkJc29ja19rZnJlZV9zKHNr LCBvcHQsIG9wdC0+dG90X2xlbik7CiAJZHN0X3JlbGVhc2UoZHN0KTsKIAlyZXR1cm4gZXJyOwog fQpAQCAtMTQwOCw3ICsxNDA3LDYgQEAgc3RhdGljIHN0cnVjdCBzb2NrICogdGNwX3Y2X3N5bl9y ZWN2X3NvY2soc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCX0KIAogCXRy ZXEgPSBpbmV0Nl9yc2socmVxKTsKLQlvcHQgPSBucC0+b3B0OwogCiAJaWYgKHNrX2FjY2VwdHFf aXNfZnVsbChzaykpCiAJCWdvdG8gb3V0X292ZXJmbG93OwpAQCAtMTQ3NiwxNiArMTQ3NCwxNSBA QCBzdGF0aWMgc3RydWN0IHNvY2sgKiB0Y3BfdjZfc3luX3JlY3Zfc29jayhzdHJ1Y3Qgc29jayAq c2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJICAgYnV0IHdlIG1ha2Ugb25lIG1vcmUgb25lIHRo aW5nIHRoZXJlOiByZWF0dGFjaCBvcHRtZW0KIAkgICB0byBuZXdzay4KIAkgKi8KKwlvcHQgPSBy Y3VfZGVyZWZlcmVuY2UobnAtPm9wdCk7CiAJaWYgKG9wdCkgewotCQluZXducC0+b3B0ID0gaXB2 Nl9kdXBfb3B0aW9ucyhuZXdzaywgb3B0KTsKLQkJaWYgKG9wdCAhPSBucC0+b3B0KQotCQkJc29j a19rZnJlZV9zKHNrLCBvcHQsIG9wdC0+dG90X2xlbik7CisJCW9wdCA9IGlwdjZfZHVwX29wdGlv bnMobmV3c2ssIG9wdCk7CisJCVJDVV9JTklUX1BPSU5URVIobmV3bnAtPm9wdCwgb3B0KTsKIAl9 Ci0KLQlpbmV0X2NzayhuZXdzayktPmljc2tfZXh0X2hkcl9sZW4gPSAwOwotCWlmIChuZXducC0+ b3B0KQotCQlpbmV0X2NzayhuZXdzayktPmljc2tfZXh0X2hkcl9sZW4gPSAobmV3bnAtPm9wdC0+ b3B0X25mbGVuICsKLQkJCQkJCSAgICAgbmV3bnAtPm9wdC0+b3B0X2ZsZW4pOworIAlpbmV0X2Nz ayhuZXdzayktPmljc2tfZXh0X2hkcl9sZW4gPSAwOworCWlmIChvcHQpCisJCWluZXRfY3NrKG5l d3NrKS0+aWNza19leHRfaGRyX2xlbiA9IG9wdC0+b3B0X25mbGVuICsKKwkJCQkJCSAgICBvcHQt Pm9wdF9mbGVuOwogCiAJdGNwX210dXBfaW5pdChuZXdzayk7CiAJdGNwX3N5bmNfbXNzKG5ld3Nr LCBkc3RfbXR1KGRzdCkpOwpAQCAtMTUzMCw4ICsxNTI3LDYgQEAgc3RhdGljIHN0cnVjdCBzb2Nr ICogdGNwX3Y2X3N5bl9yZWN2X3NvY2soc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLAogb3V0X292ZXJmbG93OgogCU5FVF9JTkNfU1RBVFNfQkgoc29ja19uZXQoc2spLCBMSU5V WF9NSUJfTElTVEVOT1ZFUkZMT1dTKTsKIG91dF9ub25ld3NrOgotCWlmIChvcHQgJiYgb3B0ICE9 IG5wLT5vcHQpCi0JCXNvY2tfa2ZyZWVfcyhzaywgb3B0LCBvcHQtPnRvdF9sZW4pOwogCWRzdF9y ZWxlYXNlKGRzdCk7CiBvdXQ6CiAJTkVUX0lOQ19TVEFUU19CSChzb2NrX25ldChzayksIExJTlVY X01JQl9MSVNURU5EUk9QUyk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni91ZHAuYyBiL25ldC9pcHY2 L3VkcC5jCmluZGV4IDg4ODg5MmUuLjMzMDg4MDMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3VkcC5j CisrKyBiL25ldC9pcHY2L3VkcC5jCkBAIC05NTQsNiArOTU0LDcgQEAgaW50IHVkcHY2X3NlbmRt c2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29jayAqc2ssCiAJc3RydWN0IHNvY2thZGRy X2luNiAqc2luNiA9IChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopIG1zZy0+bXNnX25hbWU7CiAJc3Ry dWN0IGluNl9hZGRyICpkYWRkciwgKmZpbmFsX3AsIGZpbmFsOwogCXN0cnVjdCBpcHY2X3R4b3B0 aW9ucyAqb3B0ID0gTlVMTDsKKwlzdHJ1Y3QgaXB2Nl90eG9wdGlvbnMgKm9wdF90b19mcmVlID0g TlVMTDsKIAlzdHJ1Y3QgaXA2X2Zsb3dsYWJlbCAqZmxvd2xhYmVsID0gTlVMTDsKIAlzdHJ1Y3Qg Zmxvd2k2IGZsNjsKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Q7CkBAIC0xMTA3LDggKzExMDgsMTAg QEAgZG9fdWRwX3NlbmRtc2c6CiAJCQlvcHQgPSBOVUxMOwogCQljb25uZWN0ZWQgPSAwOwogCX0K LQlpZiAob3B0ID09IE5VTEwpCi0JCW9wdCA9IG5wLT5vcHQ7CisJaWYgKCFvcHQpIHsKKwkJb3B0 ID0gdHhvcHRfZ2V0KG5wKTsKKwkJb3B0X3RvX2ZyZWUgPSBvcHQ7CisJfQogCWlmIChmbG93bGFi ZWwpCiAJCW9wdCA9IGZsNl9tZXJnZV9vcHRpb25zKCZvcHRfc3BhY2UsIGZsb3dsYWJlbCwgb3B0 KTsKIAlvcHQgPSBpcHY2X2ZpeHVwX29wdGlvbnMoJm9wdF9zcGFjZSwgb3B0KTsKQEAgLTEyMDgs NiArMTIxMSw3IEBAIGRvX2FwcGVuZF9kYXRhOgogb3V0OgogCWRzdF9yZWxlYXNlKGRzdCk7CiAJ Zmw2X3NvY2tfcmVsZWFzZShmbG93bGFiZWwpOworCXR4b3B0X3B1dChvcHRfdG9fZnJlZSk7CiAJ aWYgKCFlcnIpCiAJCXJldHVybiBsZW47CiAJLyoKZGlmZiAtLWdpdCBhL25ldC9pcmRhL2FmX2ly ZGEuYyBiL25ldC9pcmRhL2FmX2lyZGEuYwppbmRleCBmNWQwMTFhLi4wM2M4ZWE5IDEwMDY0NAot LS0gYS9uZXQvaXJkYS9hZl9pcmRhLmMKKysrIGIvbmV0L2lyZGEvYWZfaXJkYS5jCkBAIC0xMTA2 LDYgKzExMDYsOSBAQCBzdGF0aWMgaW50IGlyZGFfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3Ry dWN0IHNvY2tldCAqc29jaywgaW50IHByb3RvY29sLAogCiAJSVJEQV9ERUJVRygyLCAiJXMoKVxu IiwgX19mdW5jX18pOwogCisJaWYgKHByb3RvY29sIDwgMCB8fCBwcm90b2NvbCA+IFNLX1BST1RP Q09MX01BWCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlpZiAobmV0ICE9ICZpbml0X25ldCkKIAkJ cmV0dXJuIC1FQUZOT1NVUFBPUlQ7CiAKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tZXNoX3Bh dGh0YmwuYyBiL25ldC9tYWM4MDIxMS9tZXNoX3BhdGh0YmwuYwppbmRleCA3ZjU0YzUwLi44MDYx NTdkIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvbWVzaF9wYXRodGJsLmMKKysrIGIvbmV0L21h YzgwMjExL21lc2hfcGF0aHRibC5jCkBAIC03NzksMTAgKzc3OSw4IEBAIHZvaWQgbWVzaF9wbGlu a19icm9rZW4oc3RydWN0IHN0YV9pbmZvICpzdGEpCiBzdGF0aWMgdm9pZCBtZXNoX3BhdGhfbm9k ZV9yZWNsYWltKHN0cnVjdCByY3VfaGVhZCAqcnApCiB7CiAJc3RydWN0IG1wYXRoX25vZGUgKm5v ZGUgPSBjb250YWluZXJfb2YocnAsIHN0cnVjdCBtcGF0aF9ub2RlLCByY3UpOwotCXN0cnVjdCBp ZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhID0gbm9kZS0+bXBhdGgtPnNkYXRhOwogCiAJZGVs X3RpbWVyX3N5bmMoJm5vZGUtPm1wYXRoLT50aW1lcik7Ci0JYXRvbWljX2RlYygmc2RhdGEtPnUu bWVzaC5tcGF0aHMpOwogCWtmcmVlKG5vZGUtPm1wYXRoKTsKIAlrZnJlZShub2RlKTsKIH0KQEAg LTc5MCw4ICs3ODgsOSBAQCBzdGF0aWMgdm9pZCBtZXNoX3BhdGhfbm9kZV9yZWNsYWltKHN0cnVj dCByY3VfaGVhZCAqcnApCiAvKiBuZWVkcyB0byBiZSBjYWxsZWQgd2l0aCB0aGUgY29ycmVzcG9u ZGluZyBoYXNod2xvY2sgdGFrZW4gKi8KIHN0YXRpYyB2b2lkIF9fbWVzaF9wYXRoX2RlbChzdHJ1 Y3QgbWVzaF90YWJsZSAqdGJsLCBzdHJ1Y3QgbXBhdGhfbm9kZSAqbm9kZSkKIHsKLQlzdHJ1Y3Qg bWVzaF9wYXRoICptcGF0aDsKLQltcGF0aCA9IG5vZGUtPm1wYXRoOworCXN0cnVjdCBtZXNoX3Bh dGggKm1wYXRoID0gbm9kZS0+bXBhdGg7CisJc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAq c2RhdGEgPSBub2RlLT5tcGF0aC0+c2RhdGE7CisKIAlzcGluX2xvY2soJm1wYXRoLT5zdGF0ZV9s b2NrKTsKIAltcGF0aC0+ZmxhZ3MgfD0gTUVTSF9QQVRIX1JFU09MVklORzsKIAlpZiAobXBhdGgt PmlzX2dhdGUpCkBAIC03OTksNiArNzk4LDcgQEAgc3RhdGljIHZvaWQgX19tZXNoX3BhdGhfZGVs KHN0cnVjdCBtZXNoX3RhYmxlICp0YmwsIHN0cnVjdCBtcGF0aF9ub2RlICpub2RlKQogCWhsaXN0 X2RlbF9yY3UoJm5vZGUtPmxpc3QpOwogCWNhbGxfcmN1KCZub2RlLT5yY3UsIG1lc2hfcGF0aF9u b2RlX3JlY2xhaW0pOwogCXNwaW5fdW5sb2NrKCZtcGF0aC0+c3RhdGVfbG9jayk7CisJYXRvbWlj X2RlYygmc2RhdGEtPnUubWVzaC5tcGF0aHMpOwogCWF0b21pY19kZWMoJnRibC0+ZW50cmllcyk7 CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9yZHMvY29ubmVjdGlvbi5jIGIvbmV0L3Jkcy9jb25uZWN0 aW9uLmMKaW5kZXggYmUzZWVjZC4uOWUwN2M3NSAxMDA2NDQKLS0tIGEvbmV0L3Jkcy9jb25uZWN0 aW9uLmMKKysrIGIvbmV0L3Jkcy9jb25uZWN0aW9uLmMKQEAgLTE3OCwxMiArMTc4LDYgQEAgc3Rh dGljIHN0cnVjdCByZHNfY29ubmVjdGlvbiAqX19yZHNfY29ubl9jcmVhdGUoX19iZTMyIGxhZGRy LCBfX2JlMzIgZmFkZHIsCiAJCX0KIAl9CiAKLQlpZiAodHJhbnMgPT0gTlVMTCkgewotCQlrbWVt X2NhY2hlX2ZyZWUocmRzX2Nvbm5fc2xhYiwgY29ubik7Ci0JCWNvbm4gPSBFUlJfUFRSKC1FTk9E RVYpOwotCQlnb3RvIG91dDsKLQl9Ci0KIAljb25uLT5jX3RyYW5zID0gdHJhbnM7CiAKIAlyZXQg PSB0cmFucy0+Y29ubl9hbGxvYyhjb25uLCBnZnApOwpkaWZmIC0tZ2l0IGEvbmV0L3Jkcy9zZW5k LmMgYi9uZXQvcmRzL3NlbmQuYwppbmRleCA4OGVhY2U1Li4zMWM5ZmE0IDEwMDY0NAotLS0gYS9u ZXQvcmRzL3NlbmQuYworKysgYi9uZXQvcmRzL3NlbmQuYwpAQCAtOTU1LDExICs5NTUsMTMgQEAg aW50IHJkc19zZW5kbXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywg c3RydWN0IG1zZ2hkciAqbXNnLAogCQlyZWxlYXNlX3NvY2soc2spOwogCX0KIAotCS8qIHJhY2lu ZyB3aXRoIGFub3RoZXIgdGhyZWFkIGJpbmRpbmcgc2VlbXMgb2sgaGVyZSAqLworCWxvY2tfc29j ayhzayk7CiAJaWYgKGRhZGRyID09IDAgfHwgcnMtPnJzX2JvdW5kX2FkZHIgPT0gMCkgeworCQly ZWxlYXNlX3NvY2soc2spOwogCQlyZXQgPSAtRU5PVENPTk47IC8qIFhYWCBub3QgYSBncmVhdCBl cnJubyAqLwogCQlnb3RvIG91dDsKIAl9CisJcmVsZWFzZV9zb2NrKHNrKTsKIAogCS8qIHNpemUg b2Ygcm0gaW5jbHVkaW5nIGFsbCBzZ3MgKi8KIAlyZXQgPSByZHNfcm1fc2l6ZShtc2csIHBheWxv YWRfbGVuKTsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2F1dGguYyBiL25ldC9zY3RwL2F1dGguYwpp bmRleCA1M2Q0NTVjLi5jNDI4ZDllIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9hdXRoLmMKKysrIGIv bmV0L3NjdHAvYXV0aC5jCkBAIC04MDQsOCArODA0LDggQEAgaW50IHNjdHBfYXV0aF9lcF9zZXRf aG1hY3Moc3RydWN0IHNjdHBfZW5kcG9pbnQgKmVwLAogCWlmICghaGFzX3NoYTEpCiAJCXJldHVy biAtRUlOVkFMOwogCi0JbWVtY3B5KGVwLT5hdXRoX2htYWNzX2xpc3QtPmhtYWNfaWRzLCAmaG1h Y3MtPnNobWFjX2lkZW50c1swXSwKLQkJaG1hY3MtPnNobWFjX251bV9pZGVudHMgKiBzaXplb2Yo X191MTYpKTsKKwlmb3IgKGkgPSAwOyBpIDwgaG1hY3MtPnNobWFjX251bV9pZGVudHM7IGkrKykK KwkJZXAtPmF1dGhfaG1hY3NfbGlzdC0+aG1hY19pZHNbaV0gPSBodG9ucyhobWFjcy0+c2htYWNf aWRlbnRzW2ldKTsKIAllcC0+YXV0aF9obWFjc19saXN0LT5wYXJhbV9oZHIubGVuZ3RoID0gaHRv bnMoc2l6ZW9mKHNjdHBfcGFyYW1oZHJfdCkgKwogCQkJCWhtYWNzLT5zaG1hY19udW1faWRlbnRz ICogc2l6ZW9mKF9fdTE2KSk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9pcHY2 LmMgYi9uZXQvc2N0cC9pcHY2LmMKaW5kZXggMGI2YTM5MS4uMWY5YTZmNyAxMDA2NDQKLS0tIGEv bmV0L3NjdHAvaXB2Ni5jCisrKyBiL25ldC9zY3RwL2lwdjYuYwpAQCAtNjM1LDYgKzYzNSw3IEBA IHN0YXRpYyBzdHJ1Y3Qgc29jayAqc2N0cF92Nl9jcmVhdGVfYWNjZXB0X3NrKHN0cnVjdCBzb2Nr ICpzaywKIAlzdHJ1Y3Qgc29jayAqbmV3c2s7CiAJc3RydWN0IGlwdjZfcGluZm8gKm5ld25wLCAq bnAgPSBpbmV0Nl9zayhzayk7CiAJc3RydWN0IHNjdHA2X3NvY2sgKm5ld3NjdHA2c2s7CisJc3Ry dWN0IGlwdjZfdHhvcHRpb25zICpvcHQ7CiAKIAluZXdzayA9IHNrX2FsbG9jKHNvY2tfbmV0KHNr KSwgUEZfSU5FVDYsIEdGUF9LRVJORUwsIHNrLT5za19wcm90KTsKIAlpZiAoIW5ld3NrKQpAQCAt NjU0LDYgKzY1NSwxMyBAQCBzdGF0aWMgc3RydWN0IHNvY2sgKnNjdHBfdjZfY3JlYXRlX2FjY2Vw dF9zayhzdHJ1Y3Qgc29jayAqc2ssCiAKIAltZW1jcHkobmV3bnAsIG5wLCBzaXplb2Yoc3RydWN0 IGlwdjZfcGluZm8pKTsKIAorCXJjdV9yZWFkX2xvY2soKTsKKwlvcHQgPSByY3VfZGVyZWZlcmVu Y2UobnAtPm9wdCk7CisJaWYgKG9wdCkKKwkJb3B0ID0gaXB2Nl9kdXBfb3B0aW9ucyhuZXdzaywg b3B0KTsKKwlSQ1VfSU5JVF9QT0lOVEVSKG5ld25wLT5vcHQsIG9wdCk7CisJcmN1X3JlYWRfdW5s b2NrKCk7CisKIAkvKiBJbml0aWFsaXplIHNrJ3Mgc3BvcnQsIGRwb3J0LCByY3Zfc2FkZHIgYW5k IGRhZGRyIGZvciBnZXRzb2NrbmFtZSgpCiAJICogYW5kIGdldHBlZXJuYW1lKCkuCiAJICovCmRp ZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4IDI0 ZTg4YWYuLjM5NjI4M2IgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBiL25ldC9z Y3RwL3NvY2tldC5jCkBAIC02NzMxLDYgKzY3MzEsOSBAQCB2b2lkIHNjdHBfY29weV9zb2NrKHN0 cnVjdCBzb2NrICpuZXdzaywgc3RydWN0IHNvY2sgKnNrLAogCW5ld2luZXQtPm1jX3R0bCA9IDE7 CiAJbmV3aW5ldC0+bWNfaW5kZXggPSAwOwogCW5ld2luZXQtPm1jX2xpc3QgPSBOVUxMOworCisJ aWYgKG5ld3NrLT5za19mbGFncyAmIFNLX0ZMQUdTX1RJTUVTVEFNUCkKKwkJbmV0X2VuYWJsZV90 aW1lc3RhbXAoKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHNjdHBfY29weV9kZXNjZW5kYW50 KHN0cnVjdCBzb2NrICpza190bywKQEAgLTY5MTAsNiArNjkxMywxMyBAQCBzdHJ1Y3QgcHJvdG8g c2N0cF9wcm90ID0gewogCiAjaWYgZGVmaW5lZChDT05GSUdfSVBWNikgfHwgZGVmaW5lZChDT05G SUdfSVBWNl9NT0RVTEUpCiAKKyNpbmNsdWRlIDxuZXQvdHJhbnNwX3Y2Lmg+CitzdGF0aWMgdm9p ZCBzY3RwX3Y2X2Rlc3Ryb3lfc29jayhzdHJ1Y3Qgc29jayAqc2spCit7CisJc2N0cF9kZXN0cm95 X3NvY2soc2spOworCWluZXQ2X2Rlc3Ryb3lfc29jayhzayk7Cit9CisKIHN0cnVjdCBwcm90byBz Y3RwdjZfcHJvdCA9IHsKIAkubmFtZQkJPSAiU0NUUHY2IiwKIAkub3duZXIJCT0gVEhJU19NT0RV TEUsCkBAIC02OTE5LDcgKzY5MjksNyBAQCBzdHJ1Y3QgcHJvdG8gc2N0cHY2X3Byb3QgPSB7CiAJ LmFjY2VwdAkJPSBzY3RwX2FjY2VwdCwKIAkuaW9jdGwJCT0gc2N0cF9pb2N0bCwKIAkuaW5pdAkJ PSBzY3RwX2luaXRfc29jaywKLQkuZGVzdHJveQk9IHNjdHBfZGVzdHJveV9zb2NrLAorCS5kZXN0 cm95CT0gc2N0cF92Nl9kZXN0cm95X3NvY2ssCiAJLnNodXRkb3duCT0gc2N0cF9zaHV0ZG93biwK IAkuc2V0c29ja29wdAk9IHNjdHBfc2V0c29ja29wdCwKIAkuZ2V0c29ja29wdAk9IHNjdHBfZ2V0 c29ja29wdCwKZGlmZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3Vu aXguYwppbmRleCA5YjFmMzcxLi5lNjBmYmNkIDEwMDY0NAotLS0gYS9uZXQvdW5peC9hZl91bml4 LmMKKysrIGIvbmV0L3VuaXgvYWZfdW5peC5jCkBAIC0zMDMsNiArMzAzLDExOCBAQCBmb3VuZDoK IAlyZXR1cm4gczsKIH0KIAorLyogU3VwcG9ydCBjb2RlIGZvciBhc3ltbWV0cmljYWxseSBjb25u ZWN0ZWQgZGdyYW0gc29ja2V0cworICoKKyAqIElmIGEgZGF0YWdyYW0gc29ja2V0IGlzIGNvbm5l Y3RlZCB0byBhIHNvY2tldCBub3QgaXRzZWxmIGNvbm5lY3RlZAorICogdG8gdGhlIGZpcnN0IHNv Y2tldCAoZWcsIC9kZXYvbG9nKSwgY2xpZW50cyBtYXkgb25seSBlbnF1ZXVlIG1vcmUKKyAqIG1l c3NhZ2VzIGlmIHRoZSBwcmVzZW50IHJlY2VpdmUgcXVldWUgb2YgdGhlIHNlcnZlciBzb2NrZXQg aXMgbm90CisgKiAidG9vIGxhcmdlIi4gVGhpcyBtZWFucyB0aGVyZSdzIGEgc2Vjb25kIHdyaXRl YWJpbGl0eSBjb25kaXRpb24KKyAqIHBvbGwgYW5kIHNlbmRtc2cgbmVlZCB0byB0ZXN0LiBUaGUg ZGdyYW0gcmVjdiBjb2RlIHdpbGwgZG8gYSB3YWtlCisgKiB1cCBvbiB0aGUgcGVlcl93YWl0IHdh aXQgcXVldWUgb2YgYSBzb2NrZXQgdXBvbiByZWNlcHRpb24gb2YgYQorICogZGF0YWdyYW0gd2hp Y2ggbmVlZHMgdG8gYmUgcHJvcGFnYXRlZCB0byBzbGVlcGluZyB3b3VsZC1iZSB3cml0ZXJzCisg KiBzaW5jZSB0aGVzZSBtaWdodCBub3QgaGF2ZSBzZW50IGFueXRoaW5nIHNvIGZhci4gVGhpcyBj YW4ndCBiZQorICogYWNjb21wbGlzaGVkIHZpYSBwb2xsX3dhaXQgYmVjYXVzZSB0aGUgbGlmZXRp bWUgb2YgdGhlIHNlcnZlcgorICogc29ja2V0IG1pZ2h0IGJlIGxlc3MgdGhhbiB0aGF0IG9mIGl0 cyBjbGllbnRzIGlmIHRoZXNlIGJyZWFrIHRoZWlyCisgKiBhc3NvY2lhdGlvbiB3aXRoIGl0IG9y IGlmIHRoZSBzZXJ2ZXIgc29ja2V0IGlzIGNsb3NlZCB3aGlsZSBjbGllbnRzCisgKiBhcmUgc3Rp bGwgY29ubmVjdGVkIHRvIGl0IGFuZCB0aGVyZSdzIG5vIHdheSB0byBpbmZvcm0gImEgcG9sbGlu ZworICogaW1wbGVtZW50YXRpb24iIHRoYXQgaXQgc2hvdWxkIGxldCBnbyBvZiBhIGNlcnRhaW4g d2FpdCBxdWV1ZQorICoKKyAqIEluIG9yZGVyIHRvIHByb3BhZ2F0ZSBhIHdha2UgdXAsIGEgd2Fp dF9xdWV1ZV90IG9mIHRoZSBjbGllbnQKKyAqIHNvY2tldCBpcyBlbnF1ZXVlZCBvbiB0aGUgcGVl cl93YWl0IHF1ZXVlIG9mIHRoZSBzZXJ2ZXIgc29ja2V0CisgKiB3aG9zZSB3YWtlIGZ1bmN0aW9u IGRvZXMgYSB3YWtlX3VwIG9uIHRoZSBvcmRpbmFyeSBjbGllbnQgc29ja2V0CisgKiB3YWl0IHF1 ZXVlLiBUaGlzIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQgd2hlbmV2ZXIgYSB3cml0ZSAob3IK KyAqIHBvbGwgZm9yIHdyaXRlKSBoaXQgdGhlIGZsb3cgY29udHJvbCBjb25kaXRpb24gYW5kIGJy b2tlbiB3aGVuIHRoZQorICogYXNzb2NpYXRpb24gdG8gdGhlIHNlcnZlciBzb2NrZXQgaXMgZGlz c29sdmVkIG9yIGFmdGVyIGEgd2FrZSB1cAorICogd2FzIHJlbGF5ZWQuCisgKi8KKworc3RhdGlj IGludCB1bml4X2RncmFtX3BlZXJfd2FrZV9yZWxheSh3YWl0X3F1ZXVlX3QgKnEsIHVuc2lnbmVk IG1vZGUsIGludCBmbGFncywKKwkJCQkgICAgICB2b2lkICprZXkpCit7CisJc3RydWN0IHVuaXhf c29jayAqdTsKKwl3YWl0X3F1ZXVlX2hlYWRfdCAqdV9zbGVlcDsKKworCXUgPSBjb250YWluZXJf b2YocSwgc3RydWN0IHVuaXhfc29jaywgcGVlcl93YWtlKTsKKworCV9fcmVtb3ZlX3dhaXRfcXVl dWUoJnVuaXhfc2sodS0+cGVlcl93YWtlLnByaXZhdGUpLT5wZWVyX3dhaXQsCisJCQkgICAgcSk7 CisJdS0+cGVlcl93YWtlLnByaXZhdGUgPSBOVUxMOworCisJLyogcmVsYXlpbmcgY2FuIG9ubHkg aGFwcGVuIHdoaWxlIHRoZSB3cSBzdGlsbCBleGlzdHMgKi8KKwl1X3NsZWVwID0gc2tfc2xlZXAo JnUtPnNrKTsKKwlpZiAodV9zbGVlcCkKKwkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlX3BvbGwodV9z bGVlcCwga2V5KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHVuaXhfZGdyYW1fcGVl cl93YWtlX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29jayAqb3RoZXIpCit7CisJ c3RydWN0IHVuaXhfc29jayAqdSwgKnVfb3RoZXI7CisJaW50IHJjOworCisJdSA9IHVuaXhfc2so c2spOworCXVfb3RoZXIgPSB1bml4X3NrKG90aGVyKTsKKwlyYyA9IDA7CisJc3Bpbl9sb2NrKCZ1 X290aGVyLT5wZWVyX3dhaXQubG9jayk7CisKKwlpZiAoIXUtPnBlZXJfd2FrZS5wcml2YXRlKSB7 CisJCXUtPnBlZXJfd2FrZS5wcml2YXRlID0gb3RoZXI7CisJCV9fYWRkX3dhaXRfcXVldWUoJnVf b3RoZXItPnBlZXJfd2FpdCwgJnUtPnBlZXJfd2FrZSk7CisKKwkJcmMgPSAxOworCX0KKworCXNw aW5fdW5sb2NrKCZ1X290aGVyLT5wZWVyX3dhaXQubG9jayk7CisJcmV0dXJuIHJjOworfQorCitz dGF0aWMgdm9pZCB1bml4X2RncmFtX3BlZXJfd2FrZV9kaXNjb25uZWN0KHN0cnVjdCBzb2NrICpz aywKKwkJCQkJICAgIHN0cnVjdCBzb2NrICpvdGhlcikKK3sKKwlzdHJ1Y3QgdW5peF9zb2NrICp1 LCAqdV9vdGhlcjsKKworCXUgPSB1bml4X3NrKHNrKTsKKwl1X290aGVyID0gdW5peF9zayhvdGhl cik7CisJc3Bpbl9sb2NrKCZ1X290aGVyLT5wZWVyX3dhaXQubG9jayk7CisKKwlpZiAodS0+cGVl cl93YWtlLnByaXZhdGUgPT0gb3RoZXIpIHsKKwkJX19yZW1vdmVfd2FpdF9xdWV1ZSgmdV9vdGhl ci0+cGVlcl93YWl0LCAmdS0+cGVlcl93YWtlKTsKKwkJdS0+cGVlcl93YWtlLnByaXZhdGUgPSBO VUxMOworCX0KKworCXNwaW5fdW5sb2NrKCZ1X290aGVyLT5wZWVyX3dhaXQubG9jayk7Cit9CisK K3N0YXRpYyB2b2lkIHVuaXhfZGdyYW1fcGVlcl93YWtlX2Rpc2Nvbm5lY3Rfd2FrZXVwKHN0cnVj dCBzb2NrICpzaywKKwkJCQkJCSAgIHN0cnVjdCBzb2NrICpvdGhlcikKK3sKKwl1bml4X2RncmFt X3BlZXJfd2FrZV9kaXNjb25uZWN0KHNrLCBvdGhlcik7CisJd2FrZV91cF9pbnRlcnJ1cHRpYmxl X3BvbGwoc2tfc2xlZXAoc2spLAorCQkJCSAgIFBPTExPVVQgfAorCQkJCSAgIFBPTExXUk5PUk0g fAorCQkJCSAgIFBPTExXUkJBTkQpOworfQorCisvKiBwcmVjb25kaXRpb25zOgorICoJLSB1bml4 X3BlZXIoc2spID09IG90aGVyCisgKgktIGFzc29jaWF0aW9uIGlzIHN0YWJsZQorICovCitzdGF0 aWMgaW50IHVuaXhfZGdyYW1fcGVlcl93YWtlX21lKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNv Y2sgKm90aGVyKQoreworCWludCBjb25uZWN0ZWQ7CisKKwljb25uZWN0ZWQgPSB1bml4X2RncmFt X3BlZXJfd2FrZV9jb25uZWN0KHNrLCBvdGhlcik7CisKKwlpZiAodW5peF9yZWN2cV9mdWxsKG90 aGVyKSkKKwkJcmV0dXJuIDE7CisKKwlpZiAoY29ubmVjdGVkKQorCQl1bml4X2RncmFtX3BlZXJf d2FrZV9kaXNjb25uZWN0KHNrLCBvdGhlcik7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGlu bGluZSBpbnQgdW5peF93cml0YWJsZShzdHJ1Y3Qgc29jayAqc2spCiB7CiAJcmV0dXJuIChhdG9t aWNfcmVhZCgmc2stPnNrX3dtZW1fYWxsb2MpIDw8IDIpIDw9IHNrLT5za19zbmRidWY7CkBAIC00 MDksNiArNTIxLDggQEAgc3RhdGljIHZvaWQgdW5peF9yZWxlYXNlX3NvY2soc3RydWN0IHNvY2sg KnNrLCBpbnQgZW1icmlvbikKIAkJCXNrcGFpci0+c2tfc3RhdGVfY2hhbmdlKHNrcGFpcik7CiAJ CQlza193YWtlX2FzeW5jKHNrcGFpciwgU09DS19XQUtFX1dBSVRELCBQT0xMX0hVUCk7CiAJCX0K KworCQl1bml4X2RncmFtX3BlZXJfd2FrZV9kaXNjb25uZWN0KHNrLCBza3BhaXIpOwogCQlzb2Nr X3B1dChza3BhaXIpOyAvKiBJdCBtYXkgbm93IGRpZSAqLwogCQl1bml4X3BlZXIoc2spID0gTlVM TDsKIAl9CkBAIC02MzAsNiArNzQ0LDcgQEAgc3RhdGljIHN0cnVjdCBzb2NrICp1bml4X2NyZWF0 ZTEoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29ja2V0ICpzb2NrKQogCUlOSVRfTElTVF9IRUFE KCZ1LT5saW5rKTsKIAltdXRleF9pbml0KCZ1LT5yZWFkbG9jayk7IC8qIHNpbmdsZSB0YXNrIHJl YWRpbmcgbG9jayAqLwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnUtPnBlZXJfd2FpdCk7CisJaW5p dF93YWl0cXVldWVfZnVuY19lbnRyeSgmdS0+cGVlcl93YWtlLCB1bml4X2RncmFtX3BlZXJfd2Fr ZV9yZWxheSk7CiAJdW5peF9pbnNlcnRfc29ja2V0KHVuaXhfc29ja2V0c191bmJvdW5kLCBzayk7 CiBvdXQ6CiAJaWYgKHNrID09IE5VTEwpCkBAIC0xMDA1LDYgKzExMjAsOCBAQCByZXN0YXJ0Ogog CWlmICh1bml4X3BlZXIoc2spKSB7CiAJCXN0cnVjdCBzb2NrICpvbGRfcGVlciA9IHVuaXhfcGVl cihzayk7CiAJCXVuaXhfcGVlcihzaykgPSBvdGhlcjsKKwkJdW5peF9kZ3JhbV9wZWVyX3dha2Vf ZGlzY29ubmVjdF93YWtldXAoc2ssIG9sZF9wZWVyKTsKKwogCQl1bml4X3N0YXRlX2RvdWJsZV91 bmxvY2soc2ssIG90aGVyKTsKIAogCQlpZiAob3RoZXIgIT0gb2xkX3BlZXIpCkBAIC0xNDQ0LDYg KzE1NjEsNyBAQCBzdGF0aWMgaW50IHVuaXhfZGdyYW1fc2VuZG1zZyhzdHJ1Y3Qga2lvY2IgKmtp b2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCWxvbmcgdGltZW87CiAJc3RydWN0IHNjbV9jb29r aWUgdG1wX3NjbTsKIAlpbnQgbWF4X2xldmVsOworCWludCBza19sb2NrZWQ7CiAKIAlpZiAoTlVM TCA9PSBzaW9jYi0+c2NtKQogCQlzaW9jYi0+c2NtID0gJnRtcF9zY207CkBAIC0xNTEyLDEyICsx NjMwLDE0IEBAIHJlc3RhcnQ6CiAJCWdvdG8gb3V0X2ZyZWU7CiAJfQogCisJc2tfbG9ja2VkID0g MDsKIAl1bml4X3N0YXRlX2xvY2sob3RoZXIpOworcmVzdGFydF9sb2NrZWQ6CiAJZXJyID0gLUVQ RVJNOwogCWlmICghdW5peF9tYXlfc2VuZChzaywgb3RoZXIpKQogCQlnb3RvIG91dF91bmxvY2s7 CiAKLQlpZiAoc29ja19mbGFnKG90aGVyLCBTT0NLX0RFQUQpKSB7CisJaWYgKHVubGlrZWx5KHNv Y2tfZmxhZyhvdGhlciwgU09DS19ERUFEKSkpIHsKIAkJLyoKIAkJICoJQ2hlY2sgd2l0aCAxMDAz LjFnIC0gd2hhdCBzaG91bGQKIAkJICoJZGF0YWdyYW0gZXJyb3IKQEAgLTE1MjUsMTAgKzE2NDUs MTQgQEAgcmVzdGFydDoKIAkJdW5peF9zdGF0ZV91bmxvY2sob3RoZXIpOwogCQlzb2NrX3B1dChv dGhlcik7CiAKKwkJaWYgKCFza19sb2NrZWQpCisJCQl1bml4X3N0YXRlX2xvY2soc2spOworCiAJ CWVyciA9IDA7Ci0JCXVuaXhfc3RhdGVfbG9jayhzayk7CiAJCWlmICh1bml4X3BlZXIoc2spID09 IG90aGVyKSB7CiAJCQl1bml4X3BlZXIoc2spID0gTlVMTDsKKwkJCXVuaXhfZGdyYW1fcGVlcl93 YWtlX2Rpc2Nvbm5lY3Rfd2FrZXVwKHNrLCBvdGhlcik7CisKIAkJCXVuaXhfc3RhdGVfdW5sb2Nr KHNrKTsKIAogCQkJdW5peF9kZ3JhbV9kaXNjb25uZWN0ZWQoc2ssIG90aGVyKTsKQEAgLTE1NTQs MjEgKzE2NzgsMzggQEAgcmVzdGFydDoKIAkJCWdvdG8gb3V0X3VubG9jazsKIAl9CiAKLQlpZiAo dW5peF9wZWVyKG90aGVyKSAhPSBzayAmJiB1bml4X3JlY3ZxX2Z1bGwob3RoZXIpKSB7Ci0JCWlm ICghdGltZW8pIHsKLQkJCWVyciA9IC1FQUdBSU47Ci0JCQlnb3RvIG91dF91bmxvY2s7CisJaWYg KHVubGlrZWx5KHVuaXhfcGVlcihvdGhlcikgIT0gc2sgJiYgdW5peF9yZWN2cV9mdWxsKG90aGVy KSkpIHsKKwkJaWYgKHRpbWVvKSB7CisJCQl0aW1lbyA9IHVuaXhfd2FpdF9mb3JfcGVlcihvdGhl ciwgdGltZW8pOworCisJCQllcnIgPSBzb2NrX2ludHJfZXJybm8odGltZW8pOworCQkJaWYgKHNp Z25hbF9wZW5kaW5nKGN1cnJlbnQpKQorCQkJCWdvdG8gb3V0X2ZyZWU7CisKKwkJCWdvdG8gcmVz dGFydDsKIAkJfQogCi0JCXRpbWVvID0gdW5peF93YWl0X2Zvcl9wZWVyKG90aGVyLCB0aW1lbyk7 CisJCWlmICghc2tfbG9ja2VkKSB7CisJCQl1bml4X3N0YXRlX3VubG9jayhvdGhlcik7CisJCQl1 bml4X3N0YXRlX2RvdWJsZV9sb2NrKHNrLCBvdGhlcik7CisJCX0KIAotCQllcnIgPSBzb2NrX2lu dHJfZXJybm8odGltZW8pOwotCQlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpCi0JCQlnb3Rv IG91dF9mcmVlOworCQlpZiAodW5peF9wZWVyKHNrKSAhPSBvdGhlciB8fAorCQkgICAgdW5peF9k Z3JhbV9wZWVyX3dha2VfbWUoc2ssIG90aGVyKSkgeworCQkJZXJyID0gLUVBR0FJTjsKKwkJCXNr X2xvY2tlZCA9IDE7CisJCQlnb3RvIG91dF91bmxvY2s7CisJCX0KIAotCQlnb3RvIHJlc3RhcnQ7 CisJCWlmICghc2tfbG9ja2VkKSB7CisJCQlza19sb2NrZWQgPSAxOworCQkJZ290byByZXN0YXJ0 X2xvY2tlZDsKKwkJfQogCX0KIAorCWlmICh1bmxpa2VseShza19sb2NrZWQpKQorCQl1bml4X3N0 YXRlX3VubG9jayhzayk7CisKIAlpZiAoc29ja19mbGFnKG90aGVyLCBTT0NLX1JDVlRTVEFNUCkp CiAJCV9fbmV0X3RpbWVzdGFtcChza2IpOwogCW1heWJlX2FkZF9jcmVkcyhza2IsIHNvY2ssIG90 aGVyKTsKQEAgLTE1ODIsNiArMTcyMyw4IEBAIHJlc3RhcnQ6CiAJcmV0dXJuIGxlbjsKIAogb3V0 X3VubG9jazoKKwlpZiAoc2tfbG9ja2VkKQorCQl1bml4X3N0YXRlX3VubG9jayhzayk7CiAJdW5p eF9zdGF0ZV91bmxvY2sob3RoZXIpOwogb3V0X2ZyZWU6CiAJa2ZyZWVfc2tiKHNrYik7CkBAIC0x NzcwLDE0ICsxOTEzLDcgQEAgc3RhdGljIGludCB1bml4X2RncmFtX3JlY3Ztc2coc3RydWN0IGtp b2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCWlmIChmbGFncyZNU0dfT09CKQogCQln b3RvIG91dDsKIAotCWVyciA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmdS0+cmVhZGxvY2sp OwotCWlmICh1bmxpa2VseShlcnIpKSB7Ci0JCS8qIHJlY3Ztc2coKSBpbiBub24gYmxvY2tpbmcg bW9kZSBpcyBzdXBwb3NlZCB0byByZXR1cm4gLUVBR0FJTgotCQkgKiBza19yY3Z0aW1lbyBpcyBu b3QgaG9ub3JlZCBieSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoKQotCQkgKi8KLQkJZXJyID0g bm9ibG9jayA/IC1FQUdBSU4gOiAtRVJFU1RBUlRTWVM7Ci0JCWdvdG8gb3V0OwotCX0KKwltdXRl eF9sb2NrKCZ1LT5yZWFkbG9jayk7CiAKIAlza2IgPSBza2JfcmVjdl9kYXRhZ3JhbShzaywgZmxh Z3MsIG5vYmxvY2ssICZlcnIpOwogCWlmICghc2tiKSB7CkBAIC0xOTYyLDEyICsyMDk4LDEyIEBA IHN0YXRpYyBpbnQgdW5peF9zdHJlYW1fcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVj dCBzb2NrZXQgKnNvY2ssCiAKIAkJCXRpbWVvID0gdW5peF9zdHJlYW1fZGF0YV93YWl0KHNrLCB0 aW1lbyk7CiAKLQkJCWlmIChzaWduYWxfcGVuZGluZyhjdXJyZW50KQotCQkJICAgIHx8ICBtdXRl eF9sb2NrX2ludGVycnVwdGlibGUoJnUtPnJlYWRsb2NrKSkgeworCQkJaWYgKHNpZ25hbF9wZW5k aW5nKGN1cnJlbnQpKSB7CiAJCQkJZXJyID0gc29ja19pbnRyX2Vycm5vKHRpbWVvKTsKIAkJCQln b3RvIG91dDsKIAkJCX0KIAorCQkJbXV0ZXhfbG9jaygmdS0+cmVhZGxvY2spOwogCQkJY29udGlu dWU7CiAgdW5sb2NrOgogCQkJdW5peF9zdGF0ZV91bmxvY2soc2spOwpAQCAtMjE4NiwxNCArMjMy MiwxNiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHVuaXhfZGdyYW1fcG9sbChzdHJ1Y3QgZmlsZSAq ZmlsZSwgc3RydWN0IHNvY2tldCAqc29jaywKIAkJcmV0dXJuIG1hc2s7CiAKIAl3cml0YWJsZSA9 IHVuaXhfd3JpdGFibGUoc2spOwotCW90aGVyID0gdW5peF9wZWVyX2dldChzayk7Ci0JaWYgKG90 aGVyKSB7Ci0JCWlmICh1bml4X3BlZXIob3RoZXIpICE9IHNrKSB7Ci0JCQlzb2NrX3BvbGxfd2Fp dChmaWxlLCAmdW5peF9zayhvdGhlciktPnBlZXJfd2FpdCwgd2FpdCk7Ci0JCQlpZiAodW5peF9y ZWN2cV9mdWxsKG90aGVyKSkKLQkJCQl3cml0YWJsZSA9IDA7Ci0JCX0KLQkJc29ja19wdXQob3Ro ZXIpOworCWlmICh3cml0YWJsZSkgeworCQl1bml4X3N0YXRlX2xvY2soc2spOworCisJCW90aGVy ID0gdW5peF9wZWVyKHNrKTsKKwkJaWYgKG90aGVyICYmIHVuaXhfcGVlcihvdGhlcikgIT0gc2sg JiYKKwkJICAgIHVuaXhfcmVjdnFfZnVsbChvdGhlcikgJiYKKwkJICAgIHVuaXhfZGdyYW1fcGVl cl93YWtlX21lKHNrLCBvdGhlcikpCisJCQl3cml0YWJsZSA9IDA7CisKKwkJdW5peF9zdGF0ZV91 bmxvY2soc2spOwogCX0KIAogCWlmICh3cml0YWJsZSkKZGlmZiAtLWdpdCBhL25ldC91bml4L2dh cmJhZ2UuYyBiL25ldC91bml4L2dhcmJhZ2UuYwppbmRleCBiNmY0Yjk5Li4wMGQzZTU2IDEwMDY0 NAotLS0gYS9uZXQvdW5peC9nYXJiYWdlLmMKKysrIGIvbmV0L3VuaXgvZ2FyYmFnZS5jCkBAIC0x ODUsNyArMTg1LDcgQEAgc3RhdGljIHZvaWQgc2Nhbl9pbmZsaWdodChzdHJ1Y3Qgc29jayAqeCwg dm9pZCAoKmZ1bmMpKHN0cnVjdCB1bml4X3NvY2sgKiksCiAJCQkJCSAqIGhhdmUgYmVlbiBhZGRl ZCB0byB0aGUgcXVldWVzIGFmdGVyCiAJCQkJCSAqIHN0YXJ0aW5nIHRoZSBnYXJiYWdlIGNvbGxl Y3Rpb24KIAkJCQkJICovCi0JCQkJCWlmICh1LT5nY19jYW5kaWRhdGUpIHsKKwkJCQkJaWYgKHRl c3RfYml0KFVOSVhfR0NfQ0FORElEQVRFLCAmdS0+Z2NfZmxhZ3MpKSB7CiAJCQkJCQloaXQgPSB0 cnVlOwogCQkJCQkJZnVuYyh1KTsKIAkJCQkJfQpAQCAtMjU0LDcgKzI1NCw3IEBAIHN0YXRpYyB2 b2lkIGluY19pbmZsaWdodF9tb3ZlX3RhaWwoc3RydWN0IHVuaXhfc29jayAqdSkKIAkgKiBvZiB0 aGUgbGlzdCwgc28gdGhhdCBpdCdzIGNoZWNrZWQgZXZlbiBpZiBpdCB3YXMgYWxyZWFkeQogCSAq IHBhc3NlZCBvdmVyCiAJICovCi0JaWYgKHUtPmdjX21heWJlX2N5Y2xlKQorCWlmICh0ZXN0X2Jp dChVTklYX0dDX01BWUJFX0NZQ0xFLCAmdS0+Z2NfZmxhZ3MpKQogCQlsaXN0X21vdmVfdGFpbCgm dS0+bGluaywgJmdjX2NhbmRpZGF0ZXMpOwogfQogCkBAIC0zMTUsOCArMzE1LDggQEAgdm9pZCB1 bml4X2djKHZvaWQpCiAJCUJVR19PTih0b3RhbF9yZWZzIDwgaW5mbGlnaHRfcmVmcyk7CiAJCWlm ICh0b3RhbF9yZWZzID09IGluZmxpZ2h0X3JlZnMpIHsKIAkJCWxpc3RfbW92ZV90YWlsKCZ1LT5s aW5rLCAmZ2NfY2FuZGlkYXRlcyk7Ci0JCQl1LT5nY19jYW5kaWRhdGUgPSAxOwotCQkJdS0+Z2Nf bWF5YmVfY3ljbGUgPSAxOworCQkJX19zZXRfYml0KFVOSVhfR0NfQ0FORElEQVRFLCAmdS0+Z2Nf ZmxhZ3MpOworCQkJX19zZXRfYml0KFVOSVhfR0NfTUFZQkVfQ1lDTEUsICZ1LT5nY19mbGFncyk7 CiAJCX0KIAl9CiAKQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lkIHVuaXhfZ2Modm9pZCkKIAogCQlp ZiAoYXRvbWljX2xvbmdfcmVhZCgmdS0+aW5mbGlnaHQpID4gMCkgewogCQkJbGlzdF9tb3ZlX3Rh aWwoJnUtPmxpbmssICZub3RfY3ljbGVfbGlzdCk7Ci0JCQl1LT5nY19tYXliZV9jeWNsZSA9IDA7 CisJCQlfX2NsZWFyX2JpdChVTklYX0dDX01BWUJFX0NZQ0xFLCAmdS0+Z2NfZmxhZ3MpOwogCQkJ c2Nhbl9jaGlsZHJlbigmdS0+c2ssIGluY19pbmZsaWdodF9tb3ZlX3RhaWwsIE5VTEwpOwogCQl9 CiAJfQpAQCAtMzU2LDcgKzM1Niw3IEBAIHZvaWQgdW5peF9nYyh2b2lkKQogCSAqLwogCXdoaWxl ICghbGlzdF9lbXB0eSgmbm90X2N5Y2xlX2xpc3QpKSB7CiAJCXUgPSBsaXN0X2VudHJ5KG5vdF9j eWNsZV9saXN0Lm5leHQsIHN0cnVjdCB1bml4X3NvY2ssIGxpbmspOwotCQl1LT5nY19jYW5kaWRh dGUgPSAwOworCQlfX2NsZWFyX2JpdChVTklYX0dDX0NBTkRJREFURSwgJnUtPmdjX2ZsYWdzKTsK IAkJbGlzdF9tb3ZlX3RhaWwoJnUtPmxpbmssICZnY19pbmZsaWdodF9saXN0KTsKIAl9CiAKZGlm ZiAtLWdpdCBhL3NvdW5kL3BjaS9ybWU5Ni5jIGIvc291bmQvcGNpL3JtZTk2LmMKaW5kZXggNDU4 NWM5Ny4uMzI0MGVlNyAxMDA2NDQKLS0tIGEvc291bmQvcGNpL3JtZTk2LmMKKysrIGIvc291bmQv cGNpL3JtZTk2LmMKQEAgLTcwNCwxMCArNzA0LDExIEBAIHNuZF9ybWU5Nl9wbGF5YmFja19zZXRy YXRlKHN0cnVjdCBybWU5NiAqcm1lOTYsCiAJewogCQkvKiBjaGFuZ2UgdG8vZnJvbSBkb3VibGUt c3BlZWQ6IHJlc2V0IHRoZSBEQUMgKGlmIGF2YWlsYWJsZSkgKi8KIAkJc25kX3JtZTk2X3Jlc2V0 X2RhYyhybWU5Nik7CisJCXJldHVybiAxOyAvKiBuZWVkIHRvIHJlc3RvcmUgdm9sdW1lICovCiAJ fSBlbHNlIHsKIAkJd3JpdGVsKHJtZTk2LT53Y3JlZywgcm1lOTYtPmlvYmFzZSArIFJNRTk2X0lP X0NPTlRST0xfUkVHSVNURVIpOworCQlyZXR1cm4gMDsKIAl9Ci0JcmV0dXJuIDA7CiB9CiAKIHN0 YXRpYyBpbnQKQEAgLTk0NSw2ICs5NDYsNyBAQCBzbmRfcm1lOTZfcGxheWJhY2tfaHdfcGFyYW1z KHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAogCXN0cnVjdCBybWU5NiAqcm1l OTYgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CiAJc3RydWN0IHNuZF9wY21f cnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKIAlpbnQgZXJyLCByYXRlLCBk dW1teTsKKwlib29sIGFwcGx5X2RhY192b2x1bWUgPSBmYWxzZTsKIAogCXJ1bnRpbWUtPmRtYV9h cmVhID0gKHZvaWQgX19mb3JjZSAqKShybWU5Ni0+aW9iYXNlICsKIAkJCQkJICAgICBSTUU5Nl9J T19QTEFZX0JVRkZFUik7CkBAIC05NTgsMjQgKzk2MCwyNiBAQCBzbmRfcm1lOTZfcGxheWJhY2tf aHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAogCXsKICAgICAg ICAgICAgICAgICAvKiBzbGF2ZSBjbG9jayAqLwogICAgICAgICAgICAgICAgIGlmICgoaW50KXBh cmFtc19yYXRlKHBhcmFtcykgIT0gcmF0ZSkgewotCQkJc3Bpbl91bmxvY2tfaXJxKCZybWU5Ni0+ bG9jayk7Ci0JCQlyZXR1cm4gLUVJTzsgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg ICAgIH0KLQl9IGVsc2UgaWYgKChlcnIgPSBzbmRfcm1lOTZfcGxheWJhY2tfc2V0cmF0ZShybWU5 NiwgcGFyYW1zX3JhdGUocGFyYW1zKSkpIDwgMCkgewotCQlzcGluX3VubG9ja19pcnEoJnJtZTk2 LT5sb2NrKTsKLQkJcmV0dXJuIGVycjsKLQl9Ci0JaWYgKChlcnIgPSBzbmRfcm1lOTZfcGxheWJh Y2tfc2V0Zm9ybWF0KHJtZTk2LCBwYXJhbXNfZm9ybWF0KHBhcmFtcykpKSA8IDApIHsKLQkJc3Bp bl91bmxvY2tfaXJxKCZybWU5Ni0+bG9jayk7Ci0JCXJldHVybiBlcnI7CisJCQllcnIgPSAtRUlP OworCQkJZ290byBlcnJvcjsKKwkJfQorCX0gZWxzZSB7CisJCWVyciA9IHNuZF9ybWU5Nl9wbGF5 YmFja19zZXRyYXRlKHJtZTk2LCBwYXJhbXNfcmF0ZShwYXJhbXMpKTsKKwkJaWYgKGVyciA8IDAp CisJCQlnb3RvIGVycm9yOworCQlhcHBseV9kYWNfdm9sdW1lID0gZXJyID4gMDsgLyogbmVlZCB0 byByZXN0b3JlIHZvbHVtZSBsYXRlcj8gKi8KIAl9CisKKwllcnIgPSBzbmRfcm1lOTZfcGxheWJh Y2tfc2V0Zm9ybWF0KHJtZTk2LCBwYXJhbXNfZm9ybWF0KHBhcmFtcykpOworCWlmIChlcnIgPCAw KQorCQlnb3RvIGVycm9yOwogCXNuZF9ybWU5Nl9zZXRmcmFtZWxvZyhybWU5NiwgcGFyYW1zX2No YW5uZWxzKHBhcmFtcyksIDEpOwogCWlmIChybWU5Ni0+Y2FwdHVyZV9wZXJpb2RzaXplICE9IDAp IHsKIAkJaWYgKHBhcmFtc19wZXJpb2Rfc2l6ZShwYXJhbXMpIDw8IHJtZTk2LT5wbGF5YmFja19m cmxvZyAhPQogCQkgICAgcm1lOTYtPmNhcHR1cmVfcGVyaW9kc2l6ZSkKIAkJewotCQkJc3Bpbl91 bmxvY2tfaXJxKCZybWU5Ni0+bG9jayk7Ci0JCQlyZXR1cm4gLUVCVVNZOworCQkJZXJyID0gLUVC VVNZOworCQkJZ290byBlcnJvcjsKIAkJfQogCX0KIAlybWU5Ni0+cGxheWJhY2tfcGVyaW9kc2l6 ZSA9CkBAIC05ODYsOSArOTkwLDE2IEBAIHNuZF9ybWU5Nl9wbGF5YmFja19od19wYXJhbXMoc3Ry dWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCiAJCXJtZTk2LT53Y3JlZyAmPSB+KFJN RTk2X1dDUl9QUk8gfCBSTUU5Nl9XQ1JfRE9MQlkgfCBSTUU5Nl9XQ1JfRU1QKTsKIAkJd3JpdGVs KHJtZTk2LT53Y3JlZyB8PSBybWU5Ni0+d2NyZWdfc3BkaWZfc3RyZWFtLCBybWU5Ni0+aW9iYXNl ICsgUk1FOTZfSU9fQ09OVFJPTF9SRUdJU1RFUik7CiAJfQorCisJZXJyID0gMDsKKyBlcnJvcjoK IAlzcGluX3VubG9ja19pcnEoJnJtZTk2LT5sb2NrKTsKLQkJCi0JcmV0dXJuIDA7CisJaWYgKGFw cGx5X2RhY192b2x1bWUpIHsKKwkJdXNsZWVwX3JhbmdlKDMwMDAsIDEwMDAwKTsKKwkJc25kX3Jt ZTk2X2FwcGx5X2RhY192b2x1bWUocm1lOTYpOworCX0KKworCXJldHVybiBlcnI7CiB9CiAKIHN0 YXRpYyBpbnQKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204OTYyLmMgYi9zb3VuZC9z b2MvY29kZWNzL3dtODk2Mi5jCmluZGV4IDhiNjg3ZGEuLmM3OWJkODMgMTAwNjQ0Ci0tLSBhL3Nv dW5kL3NvYy9jb2RlY3Mvd204OTYyLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg5NjIuYwpA QCAtMzczLDggKzM3Myw4IEBAIHN0YXRpYyBjb25zdCB1MTYgd204OTYyX3JlZ1tXTTg5NjJfTUFY X1JFR0lTVEVSICsgMV0gPSB7CiAJWzE2OTI0XSA9IDB4MDA1OSwgICAgIC8qIFIxNjkyNCAtIEhE QkFTU19QR18xICovCiAJWzE2OTI1XSA9IDB4OTk5QSwgICAgIC8qIFIxNjkyNSAtIEhEQkFTU19Q R18wICovCiAKLQlbMTcwNDhdID0gMHgwMDgzLCAgICAgLyogUjE3NDA4IC0gSFBGX0NfMSAqLwot CVsxNzA0OV0gPSAweDk4QUQsICAgICAvKiBSMTc0MDkgLSBIUEZfQ18wICovCisJWzE3NDA4XSA9 IDB4MDA4MywgICAgIC8qIFIxNzQwOCAtIEhQRl9DXzEgKi8KKwlbMTc0MDldID0gMHg5OEFELCAg ICAgLyogUjE3NDA5IC0gSFBGX0NfMCAqLwogCiAJWzE3OTIwXSA9IDB4MDA3RiwgICAgIC8qIFIx NzkyMCAtIEFEQ0xfUkVUVU5FX0MxXzEgKi8KIAlbMTc5MjFdID0gMHhGRkZGLCAgICAgLyogUjE3 OTIxIC0gQURDTF9SRVRVTkVfQzFfMCAqLwpkaWZmIC0tZ2l0IGEvc291bmQvdXNiL21pZGkuYyBi L3NvdW5kL3VzYi9taWRpLmMKaW5kZXggZGU4NmU3NC4uMDc1ZjMyNCAxMDA2NDQKLS0tIGEvc291 bmQvdXNiL21pZGkuYworKysgYi9zb3VuZC91c2IvbWlkaS5jCkBAIC0xNzQsNiArMTc0LDggQEAg c3RydWN0IHNuZF91c2JfbWlkaV9pbl9lbmRwb2ludCB7CiAJCXU4IHJ1bm5pbmdfc3RhdHVzX2xl bmd0aDsKIAl9IHBvcnRzWzB4MTBdOwogCXU4IHNlZW5fZjU7CisJYm9vbCBpbl9zeXNleDsKKwl1 OCBsYXN0X2NpbjsKIAl1OCBlcnJvcl9yZXN1Ym1pdDsKIAlpbnQgY3VycmVudF9wb3J0OwogfTsK QEAgLTQ2NSw2ICs0NjcsMzkgQEAgc3RhdGljIHZvaWQgc25kX3VzYm1pZGlfbWF1ZGlvX2Jyb2tl bl9ydW5uaW5nX3N0YXR1c19pbnB1dCgKIH0KIAogLyoKKyAqIFFpbkhlbmcgQ0gzNDUgaXMgYnVn Z3k6IGV2ZXJ5IHNlY29uZCBwYWNrZXQgaW5zaWRlIGEgU3lzRXggaGFzIG5vdCBDSU4gNAorICog YnV0IHRoZSBwcmV2aW91c2x5IHNlZW4gQ0lOLCBidXQgc3RpbGwgd2l0aCB0aHJlZSBkYXRhIGJ5 dGVzLgorICovCitzdGF0aWMgdm9pZCBjaDM0NV9icm9rZW5fc3lzZXhfaW5wdXQoc3RydWN0IHNu ZF91c2JfbWlkaV9pbl9lbmRwb2ludCAqZXAsCisJCQkJICAgICB1aW50OF90ICpidWZmZXIsIGlu dCBidWZmZXJfbGVuZ3RoKQoreworCXVuc2lnbmVkIGludCBpLCBjaW4sIGxlbmd0aDsKKworCWZv ciAoaSA9IDA7IGkgKyAzIDwgYnVmZmVyX2xlbmd0aDsgaSArPSA0KSB7CisJCWlmIChidWZmZXJb aV0gPT0gMCAmJiBpID4gMCkKKwkJCWJyZWFrOworCQljaW4gPSBidWZmZXJbaV0gJiAweDBmOwor CQlpZiAoZXAtPmluX3N5c2V4ICYmCisJCSAgICBjaW4gPT0gZXAtPmxhc3RfY2luICYmCisJCSAg ICAoYnVmZmVyW2kgKyAxICsgKGNpbiA9PSAweDYpXSAmIDB4ODApID09IDApCisJCQljaW4gPSAw eDQ7CisjaWYgMAorCQlpZiAoYnVmZmVyW2kgKyAxXSA9PSAweDkwKSB7CisJCQkvKgorCQkJICog RWl0aGVyIGEgY29ycnVwdGVkIHJ1bm5pbmcgc3RhdHVzIG9yIGEgcmVhbCBub3RlLW9uCisJCQkg KiBtZXNzYWdlOyBpbXBvc3NpYmxlIHRvIGRldGVjdCByZWxpYWJseS4KKwkJCSAqLworCQl9Cisj ZW5kaWYKKwkJbGVuZ3RoID0gc25kX3VzYm1pZGlfY2luX2xlbmd0aFtjaW5dOworCQlzbmRfdXNi bWlkaV9pbnB1dF9kYXRhKGVwLCAwLCAmYnVmZmVyW2kgKyAxXSwgbGVuZ3RoKTsKKwkJZXAtPmlu X3N5c2V4ID0gY2luID09IDB4NDsKKwkJaWYgKCFlcC0+aW5fc3lzZXgpCisJCQllcC0+bGFzdF9j aW4gPSBjaW47CisJfQorfQorCisvKgogICogQ01FIHByb3RvY29sOiBsaWtlIHRoZSBzdGFuZGFy ZCBwcm90b2NvbCwgYnV0IFN5c0V4IGNvbW1hbmRzIGFyZSBzZW50IGFzIGEKICAqIHNpbmdsZSBV U0IgcGFja2V0IHByZWNlZGVkIGJ5IGEgMHgwRiBieXRlLgogICovCkBAIC02NTAsNiArNjg1LDEy IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX3Byb3RvY29sX29wcyBzbmRfdXNibWlkaV9jbWVfb3BzID0g ewogCS5vdXRwdXRfcGFja2V0ID0gc25kX3VzYm1pZGlfb3V0cHV0X3N0YW5kYXJkX3BhY2tldCwK IH07CiAKK3N0YXRpYyBzdHJ1Y3QgdXNiX3Byb3RvY29sX29wcyBzbmRfdXNibWlkaV9jaDM0NV9i cm9rZW5fc3lzZXhfb3BzID0geworCS5pbnB1dCA9IGNoMzQ1X2Jyb2tlbl9zeXNleF9pbnB1dCwK Kwkub3V0cHV0ID0gc25kX3VzYm1pZGlfc3RhbmRhcmRfb3V0cHV0LAorCS5vdXRwdXRfcGFja2V0 ID0gc25kX3VzYm1pZGlfb3V0cHV0X3N0YW5kYXJkX3BhY2tldCwKK307CisKIC8qCiAgKiBBS0FJ IE1QRDE2IHByb3RvY29sOgogICoKQEAgLTEzMjYsNiArMTM2Nyw3IEBAIHN0YXRpYyBpbnQgc25k X3VzYm1pZGlfb3V0X2VuZHBvaW50X2NyZWF0ZShzdHJ1Y3Qgc25kX3VzYl9taWRpKiB1bWlkaSwK IAkJICogVmFyaW91cyBjaGlwcyBkZWNsYXJlIGEgcGFja2V0IHNpemUgbGFyZ2VyIHRoYW4gNCBi eXRlcywgYnV0CiAJCSAqIGRvIG5vdCBhY3R1YWxseSB3b3JrIHdpdGggbGFyZ2VyIHBhY2tldHM6 CiAJCSAqLworCWNhc2UgVVNCX0lEKDB4MGE2NywgMHg1MDExKTogLyogTWVkZWxpIEREMzA1ICov CiAJY2FzZSBVU0JfSUQoMHgwYTkyLCAweDEwMjApOiAvKiBFU0kgTTRVICovCiAJY2FzZSBVU0Jf SUQoMHgxNDMwLCAweDQ3NGIpOiAvKiBSZWRPY3RhbmUgR0ggTUlESSBJTlRFUkZBQ0UgKi8KIAlj YXNlIFVTQl9JRCgweDE1Y2EsIDB4MDEwMSk6IC8qIFRleHRlY2ggVVNCIE1pZGkgQ2FibGUgKi8K QEAgLTIyMTQsNiArMjI1NiwxMCBAQCBpbnQgc25kX3VzYm1pZGlfY3JlYXRlKHN0cnVjdCBzbmRf Y2FyZCAqY2FyZCwKIAogCQllcnIgPSBzbmRfdXNibWlkaV9kZXRlY3RfcGVyX3BvcnRfZW5kcG9p bnRzKHVtaWRpLCBlbmRwb2ludHMpOwogCQlicmVhazsKKwljYXNlIFFVSVJLX01JRElfQ0gzNDU6 CisJCXVtaWRpLT51c2JfcHJvdG9jb2xfb3BzID0gJnNuZF91c2JtaWRpX2NoMzQ1X2Jyb2tlbl9z eXNleF9vcHM7CisJCWVyciA9IHNuZF91c2JtaWRpX2RldGVjdF9wZXJfcG9ydF9lbmRwb2ludHMo dW1pZGksIGVuZHBvaW50cyk7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXNuZF9wcmludGQoS0VS Tl9FUlIgImludmFsaWQgcXVpcmsgdHlwZSAlZFxuIiwgcXVpcmstPnR5cGUpOwogCQllcnIgPSAt RU5YSU87CmRpZmYgLS1naXQgYS9zb3VuZC91c2IvcXVpcmtzLXRhYmxlLmggYi9zb3VuZC91c2Iv cXVpcmtzLXRhYmxlLmgKaW5kZXggYzAxNGYwMC4uMGYxOGM3NSAxMDA2NDQKLS0tIGEvc291bmQv dXNiL3F1aXJrcy10YWJsZS5oCisrKyBiL3NvdW5kL3VzYi9xdWlya3MtdGFibGUuaApAQCAtMjYx MSw2ICsyNjExLDE3IEBAIFlBTUFIQV9ERVZJQ0UoMHg3MDEwLCAiVUI5OSIpLAogCS5pZFByb2R1 Y3QgPSAweDEwMjAsCiB9LAogCisvKiBRaW5IZW5nIGRldmljZXMgKi8KK3sKKwlVU0JfREVWSUNF KDB4MWE4NiwgMHg3NTJkKSwKKwkuZHJpdmVyX2luZm8gPSAodW5zaWduZWQgbG9uZykgJihjb25z dCBzdHJ1Y3Qgc25kX3VzYl9hdWRpb19xdWlyaykgeworCQkudmVuZG9yX25hbWUgPSAiUWluSGVu ZyIsCisJCS5wcm9kdWN0X25hbWUgPSAiQ0gzNDUiLAorCQkuaWZudW0gPSAxLAorCQkudHlwZSA9 IFFVSVJLX01JRElfQ0gzNDUKKwl9Cit9LAorCiAvKiBLZWl0aE1jTWlsbGVuIFN0cmluZ3BvcnQg Ki8KIHsKIAlVU0JfREVWSUNFKDB4MWYzOCwgMHgwMDAxKSwKZGlmZiAtLWdpdCBhL3NvdW5kL3Vz Yi9xdWlya3MuYyBiL3NvdW5kL3VzYi9xdWlya3MuYwppbmRleCA5YzgyZjhiLi5iMDFkM2NmIDEw MDY0NAotLS0gYS9zb3VuZC91c2IvcXVpcmtzLmMKKysrIGIvc291bmQvdXNiL3F1aXJrcy5jCkBA IC0zMTEsNiArMzExLDcgQEAgaW50IHNuZF91c2JfY3JlYXRlX3F1aXJrKHN0cnVjdCBzbmRfdXNi X2F1ZGlvICpjaGlwLAogCQlbUVVJUktfTUlESV9DTUVdID0gY3JlYXRlX2FueV9taWRpX3F1aXJr LAogCQlbUVVJUktfTUlESV9BS0FJXSA9IGNyZWF0ZV9hbnlfbWlkaV9xdWlyaywKIAkJW1FVSVJL X01JRElfRlRESV0gPSBjcmVhdGVfYW55X21pZGlfcXVpcmssCisJCVtRVUlSS19NSURJX0NIMzQ1 XSA9IGNyZWF0ZV9hbnlfbWlkaV9xdWlyaywKIAkJW1FVSVJLX0FVRElPX1NUQU5EQVJEX0lOVEVS RkFDRV0gPSBjcmVhdGVfc3RhbmRhcmRfYXVkaW9fcXVpcmssCiAJCVtRVUlSS19BVURJT19GSVhF RF9FTkRQT0lOVF0gPSBjcmVhdGVfZml4ZWRfc3RyZWFtX3F1aXJrLAogCQlbUVVJUktfQVVESU9f RURJUk9MX1VBWFhdID0gY3JlYXRlX3VheHhfcXVpcmssCmRpZmYgLS1naXQgYS9zb3VuZC91c2Iv dXNiYXVkaW8uaCBiL3NvdW5kL3VzYi91c2JhdWRpby5oCmluZGV4IDZjODA1YTUuLjVlMGU1OGEg MTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi91c2JhdWRpby5oCisrKyBiL3NvdW5kL3VzYi91c2JhdWRp by5oCkBAIC04MSw2ICs4MSw3IEBAIGVudW0gcXVpcmtfdHlwZSB7CiAJUVVJUktfTUlESV9BS0FJ LAogCVFVSVJLX01JRElfVVMxMjJMLAogCVFVSVJLX01JRElfRlRESSwKKwlRVUlSS19NSURJX0NI MzQ1LAogCVFVSVJLX0FVRElPX1NUQU5EQVJEX0lOVEVSRkFDRSwKIAlRVUlSS19BVURJT19GSVhF RF9FTkRQT0lOVCwKIAlRVUlSS19BVURJT19FRElST0xfVUFYWCwK --=-+OuNSqcTiofkMDjkFc4j-- --=-IF2J/iFme+ufSgmngeat Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAVnwf5+e/yOyVhhEJAQo1khAAhKCeb7skoHo7HIbdMO1uBsjY9Wibh25E d8zLcfY10uJq7vnjt3JC4frDII1dhxuuvshSgZSeLaUmNtqzCrbUIA9see9U3A/p xnkfFkOcd1i7VVChEhwh+qRArMasZqfvHz7kFSzK8fg08SccyvEARBxCg2VDAqMU agXa5SYvY8sg1eYtjt/9fAL7P/PEItg9oRzI4zDkLRdj2hzXDKIy1NWky1x0y4LX tksr+AyBFw5k1h2ji+YdEceIdm9j4nYUU5c+wRX5KW8+D08y8J870/WjWsF6qrDB mBU3YjT30knk+zj1Y6aQiN5P0zq39eyLsid3O53isVz1vxm8biBgysPikjVTY+RQ k/ufMMyd9t0tYj6i7L5WFC7VoDCF9KbiwFsmpzuxPxNmQdoMDd3mhyzJjrSLBV9C HAEfSvn2JXH0bP7HZIxRmHBPV7uTO9fk6a90Wd0w3/qKu7iDnd3N8X+kt9v+3hmq Ev7eQgsQOzOvRX+MvYzZvWjGDY6nh3glPMi5OotUi9Nu1C4Q5f3nMQLFM2PT3TPD T1uGW73nPrcTen/TzHs4to3MZgVecqv2lFmdCrNO256waW/qCJThj1D50RwmSJpX 3nFHj7fZuXxD6wtTPWPYaCICg63wfagVVtfjzExV9GBKsMelkly/UgEeysx07j5k ZnGYjcPp7i0= =PEyO -----END PGP SIGNATURE----- --=-IF2J/iFme+ufSgmngeat--