From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from szxga03-in.huawei.com ([119.145.14.66]:64982 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751933AbbJTIev (ORCPT ); Tue, 20 Oct 2015 04:34:51 -0400 Subject: Re: [PATCH 3.4 00/65] 3.4.110-rc1 review To: Geert Uytterhoeven References: <1445302030-4607-1-git-send-email-lizf@kernel.org> <5625A440.5010304@roeck-us.net> CC: Guenter Roeck , , stable , , "Eric W. Biederman" From: Zefan Li Message-ID: <5625F9FA.1020403@huawei.com> Date: Tue, 20 Oct 2015 16:23:22 +0800 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------090202030107010601060406" Sender: stable-owner@vger.kernel.org List-ID: --------------090202030107010601060406 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit On 2015/10/20 15:05, Geert Uytterhoeven wrote: > On Tue, Oct 20, 2015 at 4:17 AM, Guenter Roeck wrote: >> On 10/19/2015 05:47 PM, lizf@kernel.org wrote: >>> From: Zefan Li >>> >>> This is the start of the stable review cycle for the 3.4.110 release. >>> There are 65 patches in this series, all will be posted as a response >>> to this one. If anyone has any issues with these being applied, please >>> let me know. >>> >> >> Build results: >> total: 97 pass: 96 fail: 1 >> Failed builds: >> m68k:sun3_defconfig >> >> Qemu test results: >> total: 63 pass: 63 fail: 0 >> >> Build failure is due to inconsistent kallsyms data when building >> m68k:sun3_defconfig. >> From the build log: >> >> Inconsistent kallsyms data >> This is a bug - please report about it >> Try make KALLSYMS_EXTRA_PASS=1 as a workaround >> Makefile:922: recipe for target 'vmlinux' failed >> >> Bisect says that the problem is caused by "vfs: Test for and handle paths >> that are unreachable from their mnt_root", and reverting that patch >> fixes the problem. No idea what is going on. Copying Eric and Geert. > This is odd... > The posted patch is whitespace-damaged. Is there a git tree I can fetch > from? > Oops. The patch is attached. And you can also fetch thost changes from git://git.kernel.org/pub/scm/linux/kernel/git/lizf/linux-3.4.y.git for-review --------------090202030107010601060406 Content-Type: text/plain; charset="UTF-8"; name="patch-3.4.110-rc1" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch-3.4.110-rc1" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9wa3RnZW4udHh0IGIvRG9j dW1lbnRhdGlvbi9uZXR3b3JraW5nL3BrdGdlbi50eHQKaW5kZXggNzVlNGZkNy4uYTAzMjM5 YyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3BrdGdlbi50eHQKKysr IGIvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3BrdGdlbi50eHQKQEAgLTI0LDE3ICsyNCwz MyBAQCBGb3IgbW9uaXRvcmluZyBhbmQgY29udHJvbCBwa3RnZW4gY3JlYXRlczoKICAgICAg ICAgL3Byb2MvbmV0L3BrdGdlbi9ldGhYCiAKIAotVmlld2luZyB0aHJlYWRzCi09PT09PT09 PT09PT09PT0KLS9wcm9jL25ldC9wa3RnZW4va3BrdGdlbmRfMCAKLU5hbWU6IGtwa3RnZW5k XzAgIG1heF9iZWZvcmVfc29mdGlycTogMTAwMDAKLVJ1bm5pbmc6IAotU3RvcHBlZDogZXRo MSAKLVJlc3VsdDogT0s6IG1heF9iZWZvcmVfc29mdGlycT0xMDAwMAorS2VybmVsIHRocmVh ZHMKKz09PT09PT09PT09PT09CitQa3RnZW4gY3JlYXRlcyBhIHRocmVhZCBmb3IgZWFjaCBD UFUgd2l0aCBhZmZpbml0eSB0byB0aGF0IENQVS4KK1doaWNoIGlzIGNvbnRyb2xsZWQgdGhy b3VnaCBwcm9jZmlsZSAvcHJvYy9uZXQvcGt0Z2VuL2twa3RnZW5kX1guCisKK0V4YW1wbGU6 IC9wcm9jL25ldC9wa3RnZW4va3BrdGdlbmRfMAorCisgUnVubmluZzoKKyBTdG9wcGVkOiBl dGg0QDAKKyBSZXN1bHQ6IE9LOiBhZGRfZGV2aWNlPWV0aDRAMAorCitNb3N0IGltcG9ydGFu dCBhcmUgdGhlIGRldmljZXMgYXNzaWduZWQgdG8gdGhlIHRocmVhZC4KIAotTW9zdCBpbXBv cnRhbnQgdGhlIGRldmljZXMgYXNzaWduZWQgdG8gdGhyZWFkLiBOb3RlISBBIGRldmljZSBj YW4gb25seSBiZWxvbmcgCi10byBvbmUgdGhyZWFkLgorVGhlIHR3byBiYXNpYyB0aHJlYWQg Y29tbWFuZHMgYXJlOgorICogYWRkX2RldmljZSBERVZJQ0VATkFNRSAtLSBhZGRzIGEgc2lu Z2xlIGRldmljZQorICogcmVtX2RldmljZV9hbGwgICAgICAgICAtLSByZW1vdmUgYWxsIGFz c29jaWF0ZWQgZGV2aWNlcwogCitXaGVuIGFkZGluZyBhIGRldmljZSB0byBhIHRocmVhZCwg YSBjb3Jyb3Nwb25kaW5nIHByb2NmaWxlIGlzIGNyZWF0ZWQKK3doaWNoIGlzIHVzZWQgZm9y IGNvbmZpZ3VyaW5nIHRoaXMgZGV2aWNlLiBUaHVzLCBkZXZpY2UgbmFtZXMgbmVlZCB0bwor YmUgdW5pcXVlLgorCitUbyBzdXBwb3J0IGFkZGluZyB0aGUgc2FtZSBkZXZpY2UgdG8gbXVs dGlwbGUgdGhyZWFkcywgd2hpY2ggaXMgdXNlZnVsCit3aXRoIG11bHRpIHF1ZXVlIE5JQ3Ms IGEgdGhlIGRldmljZSBuYW1pbmcgc2NoZW1lIGlzIGV4dGVuZGVkIHdpdGggIkAiOgorIGRl dmljZUBzb21ldGhpbmcKKworVGhlIHBhcnQgYWZ0ZXIgIkAiIGNhbiBiZSBhbnl0aGluZywg YnV0IGl0IGlzIGN1c3RvbSB0byB1c2UgdGhlIHRocmVhZAorbnVtYmVyLgogCiBWaWV3aW5n IGRldmljZXMKID09PT09PT09PT09PT09PQpAQCAtNDIsMjkgKzU4LDMyIEBAIFZpZXdpbmcg ZGV2aWNlcwogUGFybSBzZWN0aW9uIGhvbGRzIGNvbmZpZ3VyZWQgaW5mby4gQ3VycmVudCBo b2xkIHJ1bm5pbmcgc3RhdHMuIAogUmVzdWx0IGlzIHByaW50ZWQgYWZ0ZXIgcnVuIG9yIGFm dGVyIGludGVycnVwdGlvbi4gRXhhbXBsZToKIAotL3Byb2MvbmV0L3BrdGdlbi9ldGgxICAg ICAgIAorL3Byb2MvbmV0L3BrdGdlbi9ldGg0QDAKIAotUGFyYW1zOiBjb3VudCAxMDAwMDAw MCAgbWluX3BrdF9zaXplOiA2MCAgbWF4X3BrdF9zaXplOiA2MAotICAgICBmcmFnczogMCAg ZGVsYXk6IDAgIGNsb25lX3NrYjogMTAwMDAwMCAgaWZuYW1lOiBldGgxCisgUGFyYW1zOiBj b3VudCAxMDAwMDAgIG1pbl9wa3Rfc2l6ZTogNjAgIG1heF9wa3Rfc2l6ZTogNjAKKyAgICAg ZnJhZ3M6IDAgIGRlbGF5OiAwICBjbG9uZV9za2I6IDY0ICBpZm5hbWU6IGV0aDRAMAogICAg ICBmbG93czogMCBmbG93bGVuOiAwCi0gICAgIGRzdF9taW46IDEwLjEwLjExLjIgIGRzdF9t YXg6IAotICAgICBzcmNfbWluOiAgIHNyY19tYXg6IAotICAgICBzcmNfbWFjOiAwMDowMDow MDowMDowMDowMCAgZHN0X21hYzogMDA6MDQ6MjM6QUM6RkQ6ODIKLSAgICAgdWRwX3NyY19t aW46IDkgIHVkcF9zcmNfbWF4OiA5ICB1ZHBfZHN0X21pbjogOSAgdWRwX2RzdF9tYXg6IDkK LSAgICAgc3JjX21hY19jb3VudDogMCAgZHN0X21hY19jb3VudDogMCAKLSAgICAgRmxhZ3M6 IAotQ3VycmVudDoKLSAgICAgcGt0cy1zb2ZhcjogMTAwMDAwMDAgIGVycm9yczogMzk2NjQK LSAgICAgc3RhcnRlZDogMTEwMzA1Mzk4NjI0NTE4N3VzICBzdG9wcGVkOiAxMTAzMDUzOTk5 MzQ2MzI5dXMgaWRsZTogODgwNDAxdXMKLSAgICAgc2VxX251bTogMTAwMDAwMTEgIGN1cl9k c3RfbWFjX29mZnNldDogMCAgY3VyX3NyY19tYWNfb2Zmc2V0OiAwCi0gICAgIGN1cl9zYWRk cjogMHgxMGEwYTBhICBjdXJfZGFkZHI6IDB4MjBiMGEwYQotICAgICBjdXJfdWRwX2RzdDog OSAgY3VyX3VkcF9zcmM6IDkKKyAgICAgcXVldWVfbWFwX21pbjogMCAgcXVldWVfbWFwX21h eDogMAorICAgICBkc3RfbWluOiAxOTIuMTY4LjgxLjIgIGRzdF9tYXg6CisgICAgIHNyY19t aW46ICAgc3JjX21heDoKKyAgICAgc3JjX21hYzogOTA6ZTI6YmE6MGE6NTY6YjQgZHN0X21h YzogMDA6MWI6MjE6M2M6OWQ6ZjgKKyAgICAgdWRwX3NyY19taW46IDkgIHVkcF9zcmNfbWF4 OiAxMDkgIHVkcF9kc3RfbWluOiA5ICB1ZHBfZHN0X21heDogOQorICAgICBzcmNfbWFjX2Nv dW50OiAwICBkc3RfbWFjX2NvdW50OiAwCisgICAgIEZsYWdzOiBVRFBTUkNfUk5EICBOT19U SU1FU1RBTVAgIFFVRVVFX01BUF9DUFUKKyBDdXJyZW50OgorICAgICBwa3RzLXNvZmFyOiAx MDAwMDAgIGVycm9yczogMAorICAgICBzdGFydGVkOiA2MjM5MTMzODEwMDh1cyAgc3RvcHBl ZDogNjIzOTEzMzk2NDM5dXMgaWRsZTogMjV1cworICAgICBzZXFfbnVtOiAxMDAwMDEgIGN1 cl9kc3RfbWFjX29mZnNldDogMCAgY3VyX3NyY19tYWNfb2Zmc2V0OiAwCisgICAgIGN1cl9z YWRkcjogMTkyLjE2OC44LjMgIGN1cl9kYWRkcjogMTkyLjE2OC44MS4yCisgICAgIGN1cl91 ZHBfZHN0OiA5ICBjdXJfdWRwX3NyYzogNDIKKyAgICAgY3VyX3F1ZXVlX21hcDogCiAgICAg IGZsb3dzOiAwCi1SZXN1bHQ6IE9LOiAxMzEwMTE0MihjMTIyMjA3NDErZDg4MDQwMSkgdXNl YywgMTAwMDAwMDAgKDYwYnl0ZSwwZnJhZ3MpCi0gIDc2MzI5MnBwcyAzOTBNYi9zZWMgKDM5 MDgwNTUwNGJwcykgZXJyb3JzOiAzOTY2NAorIFJlc3VsdDogT0s6IDE1NDMwKGMxNTQwNWQy NSkgdXNlYywgMTAwMDAwICg2MGJ5dGUsMGZyYWdzKQorICA2NDgwNTYycHBzIDMxMTBNYi9z ZWMgKDMxMTA2Njk3NjBicHMpIGVycm9yczogMAogCi1Db25maWd1cmluZyB0aHJlYWRzIGFu ZCBkZXZpY2VzCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitDb25maWd1 cmluZyBkZXZpY2VzCis9PT09PT09PT09PT09PT09PT09CiBUaGlzIGlzIGRvbmUgdmlhIHRo ZSAvcHJvYyBpbnRlcmZhY2UgZWFzaWVzdCBkb25lIHZpYSBwZ3NldCBpbiB0aGUgc2NyaXB0 cwogCiBFeGFtcGxlczoKQEAgLTE3Nyw2ICsxOTYsOCBAQCBOb3RlIHdoZW4gYWRkaW5nIGRl dmljZXMgdG8gYSBzcGVjaWZpYyBDUFUgdGhlcmUgZ29vZCBpZGVhIHRvIGFsc28gYXNzaWdu CiAvcHJvYy9pcnEvWFgvc21wX2FmZmluaXR5IHNvIHRoZSBUWC1pbnRlcnJ1cHRzIGdldHMg Ym91bmQgdG8gdGhlIHNhbWUgQ1BVLgogYXMgdGhpcyByZWR1Y2VzIGNhY2hlIGJvdW5jaW5n IHdoZW4gZnJlZWluZyBza2Incy4KIAorUGx1cyB1c2luZyB0aGUgZGV2aWNlIGZsYWcgUVVF VUVfTUFQX0NQVSwgd2hpY2ggbWFwcyB0aGUgU0tCcyBUWCBxdWV1ZQordG8gdGhlIHJ1bm5p bmcgdGhyZWFkcyBDUFUgKGRpcmVjdGx5IGZyb20gc21wX3Byb2Nlc3Nvcl9pZCgpKS4KIAog Q3VycmVudCBjb21tYW5kcyBhbmQgY29uZmlndXJhdGlvbiBvcHRpb25zCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL01ha2VmaWxl IGIvTWFrZWZpbGUKaW5kZXggNzMzNzcyMC4uYTRiMjM4MyAxMDA2NDQKLS0tIGEvTWFrZWZp bGUKKysrIGIvTWFrZWZpbGUKQEAgLTEsNyArMSw3IEBACiBWRVJTSU9OID0gMwogUEFUQ0hM RVZFTCA9IDQKLVNVQkxFVkVMID0gMTA5Ci1FWFRSQVZFUlNJT04gPQorU1VCTEVWRUwgPSAx MTAKK0VYVFJBVkVSU0lPTiA9IC1yYzEKIE5BTUUgPSBTYWJlci10b290aGVkIFNxdWlycmVs CiAKICMgKkRPQ1VNRU5UQVRJT04qCmRpZmYgLS1naXQgYS9hcmNoL2FybS9uZXQvYnBmX2pp dF8zMi5jIGIvYXJjaC9hcm0vbmV0L2JwZl9qaXRfMzIuYwppbmRleCBhZDk0MTQ1Li43NzAy NjQxNSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbmV0L2JwZl9qaXRfMzIuYworKysgYi9hcmNo L2FybS9uZXQvYnBmX2ppdF8zMi5jCkBAIC04OTksNyArODk5LDcgQEAgdm9pZCBicGZfaml0 X2NvbXBpbGUoc3RydWN0IHNrX2ZpbHRlciAqZnApCiAJCWlmIChjdHguaW1tX2NvdW50KQog CQkJa2ZyZWUoY3R4LmltbXMpOwogI2VuZGlmCi0JCWJwZl9qaXRfYmluYXJ5X2ZyZWUoaGVh ZGVyKTsKKwkJbW9kdWxlX2ZyZWUoTlVMTCwgY3R4LnRhcmdldCk7CiAJCWdvdG8gb3V0Owog CX0KIAlidWlsZF9lcGlsb2d1ZSgmY3R4KTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9jcnlw dG8vZ2hhc2hfczM5MC5jIGIvYXJjaC9zMzkwL2NyeXB0by9naGFzaF9zMzkwLmMKaW5kZXgg YzJkYWMyZS4uNjliNWE0YiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2NyeXB0by9naGFzaF9z MzkwLmMKKysrIGIvYXJjaC9zMzkwL2NyeXB0by9naGFzaF9zMzkwLmMKQEAgLTExNSw3ICsx MTUsNyBAQCBzdGF0aWMgaW50IGdoYXNoX2ZpbmFsKHN0cnVjdCBzaGFzaF9kZXNjICpkZXNj LCB1OCAqZHN0KQogCXN0cnVjdCBnaGFzaF9kZXNjX2N0eCAqZGN0eCA9IHNoYXNoX2Rlc2Nf Y3R4KGRlc2MpOwogCiAJZ2hhc2hfZmx1c2goZGN0eCk7Ci0JbWVtY3B5KGRzdCwgZHR4LT5p Y3YsIEdIQVNIX0JMT0NLX1NJWkUpOworCW1lbWNweShkc3QsIGRjdHgtPmljdiwgR0hBU0hf QkxPQ0tfU0laRSk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2lu Y2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5o CmluZGV4IDRmNzg3NTcuLmQ2MGZhY2IgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUv YXNtL2t2bV9ob3N0LmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaApA QCAtNTA5LDcgKzUwOSw3IEBAIHN0cnVjdCBrdm1fYXJjaCB7CiAJc3RydWN0IGt2bV9waWMg KnZwaWM7CiAJc3RydWN0IGt2bV9pb2FwaWMgKnZpb2FwaWM7CiAJc3RydWN0IGt2bV9waXQg KnZwaXQ7Ci0JaW50IHZhcGljc19pbl9ubWlfbW9kZTsKKwlhdG9taWNfdCB2YXBpY3NfaW5f bm1pX21vZGU7CiAKIAl1bnNpZ25lZCBpbnQgdHNzX2FkZHI7CiAJc3RydWN0IHBhZ2UgKmFw aWNfYWNjZXNzX3BhZ2U7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vaTgyNTQuYyBiL2Fy Y2gveDg2L2t2bS9pODI1NC5jCmluZGV4IGRiMzM2ZjkuLmVhYWQ0OWEgMTAwNjQ0Ci0tLSBh L2FyY2gveDg2L2t2bS9pODI1NC5jCisrKyBiL2FyY2gveDg2L2t2bS9pODI1NC5jCkBAIC0z MTcsNyArMzE3LDcgQEAgc3RhdGljIHZvaWQgcGl0X2RvX3dvcmsoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQogCQkgKiBMVlQwIHRvIE5NSSBkZWxpdmVyeS4gT3RoZXIgUElDIGludGVy cnVwdHMgYXJlIGp1c3Qgc2VudCB0bwogCQkgKiBWQ1BVMCwgYW5kIG9ubHkgaWYgaXRzIExW VDAgaXMgaW4gRVhUSU5UIG1vZGUuCiAJCSAqLwotCQlpZiAoa3ZtLT5hcmNoLnZhcGljc19p bl9ubWlfbW9kZSA+IDApCisJCWlmIChhdG9taWNfcmVhZCgma3ZtLT5hcmNoLnZhcGljc19p bl9ubWlfbW9kZSkgPiAwKQogCQkJa3ZtX2Zvcl9lYWNoX3ZjcHUoaSwgdmNwdSwga3ZtKQog CQkJCWt2bV9hcGljX25taV93ZF9kZWxpdmVyKHZjcHUpOwogCX0KZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2t2bS9sYXBpYy5jIGIvYXJjaC94ODYva3ZtL2xhcGljLmMKaW5kZXggNTc4NjEz ZC4uNTM0NTRhNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2xhcGljLmMKKysrIGIvYXJj aC94ODYva3ZtL2xhcGljLmMKQEAgLTc2MSwxMCArNzYxLDEwIEBAIHN0YXRpYyB2b2lkIGFw aWNfbWFuYWdlX25taV93YXRjaGRvZyhzdHJ1Y3Qga3ZtX2xhcGljICphcGljLCB1MzIgbHZ0 MF92YWwpCiAJCWlmICghbm1pX3dkX2VuYWJsZWQpIHsKIAkJCWFwaWNfZGVidWcoIlJlY2Vp dmUgTk1JIHNldHRpbmcgb24gQVBJQ19MVlQwICIKIAkJCQkgICAiZm9yIGNwdSAlZFxuIiwg YXBpYy0+dmNwdS0+dmNwdV9pZCk7Ci0JCQlhcGljLT52Y3B1LT5rdm0tPmFyY2gudmFwaWNz X2luX25taV9tb2RlKys7CisJCQlhdG9taWNfaW5jKCZhcGljLT52Y3B1LT5rdm0tPmFyY2gu dmFwaWNzX2luX25taV9tb2RlKTsKIAkJfQogCX0gZWxzZSBpZiAobm1pX3dkX2VuYWJsZWQp Ci0JCWFwaWMtPnZjcHUtPmt2bS0+YXJjaC52YXBpY3NfaW5fbm1pX21vZGUtLTsKKwkJYXRv bWljX2RlYygmYXBpYy0+dmNwdS0+a3ZtLT5hcmNoLnZhcGljc19pbl9ubWlfbW9kZSk7CiB9 CiAKIHN0YXRpYyBpbnQgYXBpY19yZWdfd3JpdGUoc3RydWN0IGt2bV9sYXBpYyAqYXBpYywg dTMyIHJlZywgdTMyIHZhbCkKQEAgLTEyNTcsNiArMTI1Nyw3IEBAIHZvaWQga3ZtX2FwaWNf cG9zdF9zdGF0ZV9yZXN0b3JlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAogCWFwaWNfdXBk YXRlX3BwcihhcGljKTsKIAlocnRpbWVyX2NhbmNlbCgmYXBpYy0+bGFwaWNfdGltZXIudGlt ZXIpOworCWFwaWNfbWFuYWdlX25taV93YXRjaGRvZyhhcGljLCBhcGljX2dldF9yZWcoYXBp YywgQVBJQ19MVlQwKSk7CiAJdXBkYXRlX2RpdmlkZV9jb3VudChhcGljKTsKIAlzdGFydF9h cGljX3RpbWVyKGFwaWMpOwogCWFwaWMtPmlycl9wZW5kaW5nID0gdHJ1ZTsKZGlmZiAtLWdp dCBhL2FyY2gveDg2L3BjaS9hY3BpLmMgYi9hcmNoL3g4Ni9wY2kvYWNwaS5jCmluZGV4IGVk MjgzNWUuLjY1Y2Y0ZjIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9hY3BpLmMKKysrIGIv YXJjaC94ODYvcGNpL2FjcGkuYwpAQCAtNzAsNiArNzAsMTcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBkbWlfc3lzdGVtX2lkIHBjaV91c2VfY3JzX3RhYmxlW10gX19pbml0Y29uc3QgPSB7 CiAJCQlETUlfTUFUQ0goRE1JX0JJT1NfVkVORE9SLCAiUGhvZW5peCBUZWNobm9sb2dpZXMs IExURCIpLAogCQl9LAogCX0sCisJLyogaHR0cHM6Ly9idWdzLmxhdW5jaHBhZC5uZXQvdWJ1 bnR1Lytzb3VyY2UvYWxzYS1kcml2ZXIvK2J1Zy85MzEzNjggKi8KKwkvKiBodHRwczovL2J1 Z3MubGF1bmNocGFkLm5ldC91YnVudHUvK3NvdXJjZS9hbHNhLWRyaXZlci8rYnVnLzEwMzMy OTkgKi8KKwl7CisJCS5jYWxsYmFjayA9IHNldF91c2VfY3JzLAorCQkuaWRlbnQgPSAiRm94 Y29ubiBLOE04OTAtODIzN0EiLAorCQkubWF0Y2hlcyA9IHsKKwkJCURNSV9NQVRDSChETUlf Qk9BUkRfVkVORE9SLCAiRm94Y29ubiIpLAorCQkJRE1JX01BVENIKERNSV9CT0FSRF9OQU1F LCAiSzhNODkwLTgyMzdBIiksCisJCQlETUlfTUFUQ0goRE1JX0JJT1NfVkVORE9SLCAiUGhv ZW5peCBUZWNobm9sb2dpZXMsIExURCIpLAorCQl9LAorCX0sCiAKIAkvKiBOb3cgZm9yIHRo ZSBibGFja2xpc3QuLiAqLwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvYWNwaWNhL3V0 eGZhY2UuYyBiL2RyaXZlcnMvYWNwaS9hY3BpY2EvdXR4ZmFjZS5jCmluZGV4IGFmYTk0ZjUu LjA5ODVhYjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9hY3BpY2EvdXR4ZmFjZS5jCisr KyBiL2RyaXZlcnMvYWNwaS9hY3BpY2EvdXR4ZmFjZS5jCkBAIC0xNjYsMTAgKzE2NiwxMiBA QCBhY3BpX3N0YXR1cyBhY3BpX2VuYWJsZV9zdWJzeXN0ZW0odTMyIGZsYWdzKQogCSAqIE9i dGFpbiBhIHBlcm1hbmVudCBtYXBwaW5nIGZvciB0aGUgRkFDUy4gVGhpcyBpcyByZXF1aXJl ZCBmb3IgdGhlCiAJICogR2xvYmFsIExvY2sgYW5kIHRoZSBGaXJtd2FyZSBXYWtpbmcgVmVj dG9yCiAJICovCi0Jc3RhdHVzID0gYWNwaV90Yl9pbml0aWFsaXplX2ZhY3MoKTsKLQlpZiAo QUNQSV9GQUlMVVJFKHN0YXR1cykpIHsKLQkJQUNQSV9XQVJOSU5HKChBRV9JTkZPLCAiQ291 bGQgbm90IG1hcCB0aGUgRkFDUyB0YWJsZSIpKTsKLQkJcmV0dXJuX0FDUElfU1RBVFVTKHN0 YXR1cyk7CisJaWYgKCEoZmxhZ3MgJiBBQ1BJX05PX0ZBQ1NfSU5JVCkpIHsKKwkJc3RhdHVz ID0gYWNwaV90Yl9pbml0aWFsaXplX2ZhY3MoKTsKKwkJaWYgKEFDUElfRkFJTFVSRShzdGF0 dXMpKSB7CisJCQlBQ1BJX1dBUk5JTkcoKEFFX0lORk8sICJDb3VsZCBub3QgbWFwIHRoZSBG QUNTIHRhYmxlIikpOworCQkJcmV0dXJuX0FDUElfU1RBVFVTKHN0YXR1cyk7CisJCX0KIAl9 CiAjZW5kaWYJCQkJLyogIUFDUElfUkVEVUNFRF9IQVJEV0FSRSAqLwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2Jhc2UvcmVnbWFwL3JlZ21hcC5jIGIvZHJpdmVycy9iYXNlL3JlZ21hcC9y ZWdtYXAuYwppbmRleCA4ZTgxZjg1Li4wYWM2N2FjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jh c2UvcmVnbWFwL3JlZ21hcC5jCisrKyBiL2RyaXZlcnMvYmFzZS9yZWdtYXAvcmVnbWFwLmMK QEAgLTc4NCw3ICs3ODQsNyBAQCBpbnQgcmVnbWFwX2J1bGtfcmVhZChzdHJ1Y3QgcmVnbWFw ICptYXAsIHVuc2lnbmVkIGludCByZWcsIHZvaWQgKnZhbCwKIAkJCXJldCA9IHJlZ21hcF9y ZWFkKG1hcCwgcmVnICsgaSwgJml2YWwpOwogCQkJaWYgKHJldCAhPSAwKQogCQkJCXJldHVy biByZXQ7Ci0JCQltZW1jcHkodmFsICsgKGkgKiB2YWxfYnl0ZXMpLCAmaXZhbCwgdmFsX2J5 dGVzKTsKKwkJCW1hcC0+Zm9ybWF0LmZvcm1hdF92YWwodmFsICsgKGkgKiB2YWxfYnl0ZXMp LCBpdmFsKTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibHVldG9vdGgvYXRo M2suYyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMKaW5kZXggNTJiZTQ5OC4uNGI4ZTAz ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvYXRoM2suYworKysgYi9kcml2ZXJz L2JsdWV0b290aC9hdGgzay5jCkBAIC0xMDQsNiArMTA0LDcgQEAgc3RhdGljIHN0cnVjdCB1 c2JfZGV2aWNlX2lkIGF0aDNrX3RhYmxlW10gPSB7CiAJeyBVU0JfREVWSUNFKDB4MTNkMywg MHgzNDA4KSB9LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQyMykgfSwKIAl7IFVTQl9E RVZJQ0UoMHgxM2QzLCAweDM0MzIpIH0sCisJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDc0 KSB9LAogCiAJLyogQXRoZXJvcyBBUjVCQlUxMiB3aXRoIHNmbGFzaCBmaXJtd2FyZSAqLwog CXsgVVNCX0RFVklDRSgweDA0ODksIDB4RTAyQykgfSwKQEAgLTE1Myw2ICsxNTQsNyBAQCBz dGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYXRoM2tfYmxpc3RfdGJsW10gPSB7CiAJeyBV U0JfREVWSUNFKDB4MTNkMywgMHgzNDA4KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAx MiB9LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQyMyksIC5kcml2ZXJfaW5mbyA9IEJU VVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0MzIpLCAuZHJpdmVy X2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDc0 KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCiAJLyogQXRoZXJvcyBBUjVC QlUyMiB3aXRoIHNmbGFzaCBmaXJtd2FyZSAqLwogCXsgVVNCX0RFVklDRSgweDA0ODksIDB4 RTAzQyksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMgYi9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jCmlu ZGV4IGY4YTU4ZGIuLmJiZDFlNmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2J0 dXNiLmMKKysrIGIvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYwpAQCAtMTgyLDYgKzE4Miw3 IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBibGFja2xpc3RfdGFibGVbXSA9IHsK IAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0MDgpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9B VEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDIzKSwgLmRyaXZlcl9pbmZv ID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQzMiksIC5k cml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAw eDM0NzQpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAKIAkvKiBBdGhlcm9z IEFSNUJCVTEyIHdpdGggc2ZsYXNoIGZpcm13YXJlICovCiAJeyBVU0JfREVWSUNFKDB4MDQ4 OSwgMHhlMDJjKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfSUdOT1JFIH0sCmRpZmYgLS1naXQg YS9kcml2ZXJzL2NoYXIvYWdwL2ludGVsLWd0dC5jIGIvZHJpdmVycy9jaGFyL2FncC9pbnRl bC1ndHQuYwppbmRleCA3ZjAyNWZiLi40ZTk4NWNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2No YXIvYWdwL2ludGVsLWd0dC5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvaW50ZWwtZ3R0LmMK QEAgLTExOTQsNyArMTE5NCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IG5lZWRzX2lkbGVfbWFw cyh2b2lkKQogCS8qIFF1ZXJ5IGludGVsX2lvbW11IHRvIHNlZSBpZiB3ZSBuZWVkIHRoZSB3 b3JrYXJvdW5kLiBQcmVzdW1hYmx5IHRoYXQKIAkgKiB3YXMgbG9hZGVkIGZpcnN0LgogCSAq LwotCWlmICgoZ3B1X2RldmlkID09IFBDSV9ERVZJQ0VfSURfSU5URUxfSVJPTkxBS0VfTV9I QiB8fAorCWlmICgoZ3B1X2RldmlkID09IFBDSV9ERVZJQ0VfSURfSU5URUxfSVJPTkxBS0Vf RF9JRyB8fAogCSAgICAgZ3B1X2RldmlkID09IFBDSV9ERVZJQ0VfSURfSU5URUxfSVJPTkxB S0VfTV9JRykgJiYKIAkgICAgIGludGVsX2lvbW11X2dmeF9tYXBwZWQpCiAJCXJldHVybiAx OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5jIGIvZHJpdmVycy9jcnlw dG8vdGFsaXRvcy5jCmluZGV4IDkyMTAzOWUuLmE3NTlmZGMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvY3J5cHRvL3RhbGl0b3MuYworKysgYi9kcml2ZXJzL2NyeXB0by90YWxpdG9zLmMKQEAg LTI2NTMsNiArMjY1Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgdGFsaXRvc19jcnlwdG9fYWxnICp0 YWxpdG9zX2FsZ19hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCWJyZWFrOwogCWRlZmF1 bHQ6CiAJCWRldl9lcnIoZGV2LCAidW5rbm93biBhbGdvcml0aG0gdHlwZSAlZFxuIiwgdF9h bGctPmFsZ3QudHlwZSk7CisJCWtmcmVlKHRfYWxnKTsKIAkJcmV0dXJuIEVSUl9QVFIoLUVJ TlZBTCk7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9tdl94b3IuYyBiL2RyaXZl cnMvZG1hL212X3hvci5jCmluZGV4IGZhNWQ1NWYuLmM4ZmVjYmMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZG1hL212X3hvci5jCisrKyBiL2RyaXZlcnMvZG1hL212X3hvci5jCkBAIC0zOTAs NyArMzkwLDggQEAgc3RhdGljIHZvaWQgX19tdl94b3Jfc2xvdF9jbGVhbnVwKHN0cnVjdCBt dl94b3JfY2hhbiAqbXZfY2hhbikKIAlkbWFfY29va2llX3QgY29va2llID0gMDsKIAlpbnQg YnVzeSA9IG12X2NoYW5faXNfYnVzeShtdl9jaGFuKTsKIAl1MzIgY3VycmVudF9kZXNjID0g bXZfY2hhbl9nZXRfY3VycmVudF9kZXNjKG12X2NoYW4pOwotCWludCBzZWVuX2N1cnJlbnQg PSAwOworCWludCBjdXJyZW50X2NsZWFuZWQgPSAwOworCXN0cnVjdCBtdl94b3JfZGVzYyAq aHdfZGVzYzsKIAogCWRldl9kYmcobXZfY2hhbi0+ZGV2aWNlLT5jb21tb24uZGV2LCAiJXMg JWRcbiIsIF9fZnVuY19fLCBfX0xJTkVfXyk7CiAJZGV2X2RiZyhtdl9jaGFuLT5kZXZpY2Ut PmNvbW1vbi5kZXYsICJjdXJyZW50X2Rlc2MgJXhcbiIsIGN1cnJlbnRfZGVzYyk7CkBAIC00 MDIsMzggKzQwMyw1NyBAQCBzdGF0aWMgdm9pZCBfX212X3hvcl9zbG90X2NsZWFudXAoc3Ry dWN0IG12X3hvcl9jaGFuICptdl9jaGFuKQogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZl KGl0ZXIsIF9pdGVyLCAmbXZfY2hhbi0+Y2hhaW4sCiAJCQkJCWNoYWluX25vZGUpIHsKLQkJ cHJlZmV0Y2goX2l0ZXIpOwotCQlwcmVmZXRjaCgmX2l0ZXItPmFzeW5jX3R4KTsKIAotCQkv KiBkbyBub3QgYWR2YW5jZSBwYXN0IHRoZSBjdXJyZW50IGRlc2NyaXB0b3IgbG9hZGVkIGlu dG8gdGhlCi0JCSAqIGhhcmR3YXJlIGNoYW5uZWwsIHN1YnNlcXVlbnQgZGVzY3JpcHRvcnMg YXJlIGVpdGhlciBpbgotCQkgKiBwcm9jZXNzIG9yIGhhdmUgbm90IGJlZW4gc3VibWl0dGVk Ci0JCSAqLwotCQlpZiAoc2Vlbl9jdXJyZW50KQotCQkJYnJlYWs7CisJCS8qIGNsZWFuIGZp bmlzaGVkIGRlc2NyaXB0b3JzICovCisJCWh3X2Rlc2MgPSBpdGVyLT5od19kZXNjOworCQlp ZiAoaHdfZGVzYy0+c3RhdHVzICYgWE9SX0RFU0NfU1VDQ0VTUykgeworCQkJY29va2llID0g bXZfeG9yX3J1bl90eF9jb21wbGV0ZV9hY3Rpb25zKGl0ZXIsIG12X2NoYW4sCisJCQkJCQkJ CWNvb2tpZSk7CiAKLQkJLyogc3RvcCB0aGUgc2VhcmNoIGlmIHdlIHJlYWNoIHRoZSBjdXJy ZW50IGRlc2NyaXB0b3IgYW5kIHRoZQotCQkgKiBjaGFubmVsIGlzIGJ1c3kKLQkJICovCi0J CWlmIChpdGVyLT5hc3luY190eC5waHlzID09IGN1cnJlbnRfZGVzYykgewotCQkJc2Vlbl9j dXJyZW50ID0gMTsKLQkJCWlmIChidXN5KQorCQkJLyogZG9uZSBwcm9jZXNzaW5nIGRlc2Ms IGNsZWFuIHNsb3QgKi8KKwkJCW12X3hvcl9jbGVhbl9zbG90KGl0ZXIsIG12X2NoYW4pOwor CisJCQkvKiBicmVhayBpZiB3ZSBkaWQgY2xlYW5lZCB0aGUgY3VycmVudCAqLworCQkJaWYg KGl0ZXItPmFzeW5jX3R4LnBoeXMgPT0gY3VycmVudF9kZXNjKSB7CisJCQkJY3VycmVudF9j bGVhbmVkID0gMTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCWlmIChpdGVy LT5hc3luY190eC5waHlzID09IGN1cnJlbnRfZGVzYykgeworCQkJCWN1cnJlbnRfY2xlYW5l ZCA9IDA7CiAJCQkJYnJlYWs7CisJCQl9CiAJCX0KLQotCQljb29raWUgPSBtdl94b3JfcnVu X3R4X2NvbXBsZXRlX2FjdGlvbnMoaXRlciwgbXZfY2hhbiwgY29va2llKTsKLQotCQlpZiAo bXZfeG9yX2NsZWFuX3Nsb3QoaXRlciwgbXZfY2hhbikpCi0JCQlicmVhazsKIAl9CiAKIAlp ZiAoKGJ1c3kgPT0gMCkgJiYgIWxpc3RfZW1wdHkoJm12X2NoYW4tPmNoYWluKSkgewotCQlz dHJ1Y3QgbXZfeG9yX2Rlc2Nfc2xvdCAqY2hhaW5faGVhZDsKLQkJY2hhaW5faGVhZCA9IGxp c3RfZW50cnkobXZfY2hhbi0+Y2hhaW4ubmV4dCwKLQkJCQkJc3RydWN0IG12X3hvcl9kZXNj X3Nsb3QsCi0JCQkJCWNoYWluX25vZGUpOwotCi0JCW12X3hvcl9zdGFydF9uZXdfY2hhaW4o bXZfY2hhbiwgY2hhaW5faGVhZCk7CisJCWlmIChjdXJyZW50X2NsZWFuZWQpIHsKKwkJCS8q CisJCQkgKiBjdXJyZW50IGRlc2NyaXB0b3IgY2xlYW5lZCBhbmQgcmVtb3ZlZCwgcnVuCisJ CQkgKiBmcm9tIGxpc3QgaGVhZAorCQkJICovCisJCQlpdGVyID0gbGlzdF9lbnRyeShtdl9j aGFuLT5jaGFpbi5uZXh0LAorCQkJCQkgIHN0cnVjdCBtdl94b3JfZGVzY19zbG90LAorCQkJ CQkgIGNoYWluX25vZGUpOworCQkJbXZfeG9yX3N0YXJ0X25ld19jaGFpbihtdl9jaGFuLCBp dGVyKTsKKwkJfSBlbHNlIHsKKwkJCWlmICghbGlzdF9pc19sYXN0KCZpdGVyLT5jaGFpbl9u b2RlLCAmbXZfY2hhbi0+Y2hhaW4pKSB7CisJCQkJLyoKKwkJCQkgKiBkZXNjcmlwdG9ycyBh cmUgc3RpbGwgd2FpdGluZyBhZnRlcgorCQkJCSAqIGN1cnJlbnQsIHRyaWdnZXIgdGhlbQor CQkJCSAqLworCQkJCWl0ZXIgPSBsaXN0X2VudHJ5KGl0ZXItPmNoYWluX25vZGUubmV4dCwK KwkJCQkJCSAgc3RydWN0IG12X3hvcl9kZXNjX3Nsb3QsCisJCQkJCQkgIGNoYWluX25vZGUp OworCQkJCW12X3hvcl9zdGFydF9uZXdfY2hhaW4obXZfY2hhbiwgaXRlcik7CisJCQl9IGVs c2UgeworCQkJCS8qCisJCQkJICogc29tZSBkZXNjcmlwdG9ycyBhcmUgc3RpbGwgd2FpdGlu ZworCQkJCSAqIHRvIGJlIGNsZWFuZWQKKwkJCQkgKi8KKwkJCQl0YXNrbGV0X3NjaGVkdWxl KCZtdl9jaGFuLT5pcnFfdGFza2xldCk7CisJCQl9CisJCX0KIAl9CiAKIAlpZiAoY29va2ll ID4gMCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL212X3hvci5oIGIvZHJpdmVycy9kbWEv bXZfeG9yLmgKaW5kZXggNjU0ODc2Yi4uMGFmMDM3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9k bWEvbXZfeG9yLmgKKysrIGIvZHJpdmVycy9kbWEvbXZfeG9yLmgKQEAgLTMwLDYgKzMwLDcg QEAKICNkZWZpbmUgWE9SX09QRVJBVElPTl9NT0RFX1hPUgkJMAogI2RlZmluZSBYT1JfT1BF UkFUSU9OX01PREVfTUVNQ1BZCTIKICNkZWZpbmUgWE9SX09QRVJBVElPTl9NT0RFX01FTVNF VAk0CisjZGVmaW5lIFhPUl9ERVNDX1NVQ0NFU1MJCTB4NDAwMDAwMDAKIAogI2RlZmluZSBY T1JfQ1VSUl9ERVNDKGNoYW4pCShjaGFuLT5tbXJfYmFzZSArIDB4MjEwICsgKGNoYW4tPmlk eCAqIDQpKQogI2RlZmluZSBYT1JfTkVYVF9ERVNDKGNoYW4pCShjaGFuLT5tbXJfYmFzZSAr IDB4MjAwICsgKGNoYW4tPmlkeCAqIDQpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5k ZXggZTFjNzQ0ZC4uYjFmMWQxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0x Nzc5LDYgKzE3NzksOSBAQCBpOTE1X2dlbV9yZXRpcmVfcmVxdWVzdHNfcmluZyhzdHJ1Y3Qg aW50ZWxfcmluZ19idWZmZXIgKnJpbmcpCiAJdWludDMyX3Qgc2Vxbm87CiAJaW50IGk7CiAK KwlpZiAobGlzdF9lbXB0eSgmcmluZy0+cmVxdWVzdF9saXN0KSkKKwkJcmV0dXJuOworCiAJ V0FSTl9PTihpOTE1X3ZlcmlmeV9saXN0cyhyaW5nLT5kZXYpKTsKIAogCXNlcW5vID0gcmlu Zy0+Z2V0X3NlcW5vKHJpbmcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9ldmVyZ3JlZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMKaW5k ZXggZGI0ZGY5Ny4uYzVmZTc5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9ldmVyZ3JlZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5j CkBAIC0xMDc5LDcgKzEwNzksNyBAQCBpbnQgZXZlcmdyZWVuX3BjaWVfZ2FydF9lbmFibGUo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJV1JFRzMyKE1DX1ZNX01CX0wxX1RMQjJf Q05UTCwgdG1wKTsKIAlXUkVHMzIoTUNfVk1fTUJfTDFfVExCM19DTlRMLCB0bXApOwogCVdS RUczMihWTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFIsIHJkZXYtPm1jLmd0dF9z dGFydCA+PiAxMik7Ci0JV1JFRzMyKFZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFIs IChyZGV2LT5tYy5ndHRfZW5kID4+IDEyKSAtIDEpOworCVdSRUczMihWTV9DT05URVhUMF9Q QUdFX1RBQkxFX0VORF9BRERSLCByZGV2LT5tYy5ndHRfZW5kID4+IDEyKTsKIAlXUkVHMzIo Vk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFIsIHJkZXYtPmdhcnQudGFibGVfYWRk ciA+PiAxMik7CiAJV1JFRzMyKFZNX0NPTlRFWFQwX0NOVEwsIEVOQUJMRV9DT05URVhUIHwg UEFHRV9UQUJMRV9ERVBUSCgwKSB8CiAJCQkJUkFOR0VfUFJPVEVDVElPTl9GQVVMVF9FTkFC TEVfREVGQVVMVCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL25pLmMg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL25pLmMKaW5kZXggMWY0NTE3OS4uNDYxMjYyZSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vbmkuYwpAQCAtMTA3NSw3ICsxMDc1LDcgQEAgaW50IGNheW1hbl9w Y2llX2dhcnRfZW5hYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCSAgICAgICBM Ml9DQUNIRV9CSUdLX0ZSQUdNRU5UX1NJWkUoNikpOwogCS8qIHNldHVwIGNvbnRleHQwICov CiAJV1JFRzMyKFZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RBUlRfQUREUiwgcmRldi0+bWMu Z3R0X3N0YXJ0ID4+IDEyKTsKLQlXUkVHMzIoVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRf QUREUiwgKHJkZXYtPm1jLmd0dF9lbmQgPj4gMTIpIC0gMSk7CisJV1JFRzMyKFZNX0NPTlRF WFQwX1BBR0VfVEFCTEVfRU5EX0FERFIsIHJkZXYtPm1jLmd0dF9lbmQgPj4gMTIpOwogCVdS RUczMihWTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUiwgcmRldi0+Z2FydC50YWJs ZV9hZGRyID4+IDEyKTsKIAlXUkVHMzIoVk1fQ09OVEVYVDBfUFJPVEVDVElPTl9GQVVMVF9E RUZBVUxUX0FERFIsCiAJCQkodTMyKShyZGV2LT5kdW1teV9wYWdlLmFkZHIgPj4gMTIpKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yNjAwLmMKaW5kZXggZDQ0MWFlZC4uOWM3MDYyZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yNjAwLmMKQEAgLTkzMCw3ICs5MzAsNyBAQCBpbnQgcjYwMF9wY2llX2dhcnRf ZW5hYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCVdSRUczMihNQ19WTV9MMV9U TEJfTUNCX1JEX1NFTV9DTlRMLCB0bXAgfCBFTkFCTEVfU0VNQVBIT1JFX01PREUpOwogCVdS RUczMihNQ19WTV9MMV9UTEJfTUNCX1dSX1NFTV9DTlRMLCB0bXAgfCBFTkFCTEVfU0VNQVBI T1JFX01PREUpOwogCVdSRUczMihWTV9DT05URVhUMF9QQUdFX1RBQkxFX1NUQVJUX0FERFIs IHJkZXYtPm1jLmd0dF9zdGFydCA+PiAxMik7Ci0JV1JFRzMyKFZNX0NPTlRFWFQwX1BBR0Vf VEFCTEVfRU5EX0FERFIsIChyZGV2LT5tYy5ndHRfZW5kID4+IDEyKSAtIDEpOworCVdSRUcz MihWTV9DT05URVhUMF9QQUdFX1RBQkxFX0VORF9BRERSLCByZGV2LT5tYy5ndHRfZW5kID4+ IDEyKTsKIAlXUkVHMzIoVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9CQVNFX0FERFIsIHJkZXYt PmdhcnQudGFibGVfYWRkciA+PiAxMik7CiAJV1JFRzMyKFZNX0NPTlRFWFQwX0NOVEwsIEVO QUJMRV9DT05URVhUIHwgUEFHRV9UQUJMRV9ERVBUSCgwKSB8CiAJCQkJUkFOR0VfUFJPVEVD VElPTl9GQVVMVF9FTkFCTEVfREVGQVVMVCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f Y3MuYwppbmRleCBkNjZkMmNkLi5mM2VlMzYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2NzLmMKQEAgLTQ5LDcgKzQ5LDcgQEAgaW50IHJhZGVvbl9jc19wYXJzZXJfcmVsb2Nz KHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwKQogCWlmIChwLT5yZWxvY3NfcHRyID09IE5V TEwpIHsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQotCXAtPnJlbG9jcyA9IGRybV9jYWxsb2Nf bGFyZ2UocC0+bnJlbG9jcywgc2l6ZW9mKHN0cnVjdCByYWRlb25fYm9fbGlzdCkpOworCXAt PnJlbG9jcyA9IGtjYWxsb2MocC0+bnJlbG9jcywgc2l6ZW9mKHN0cnVjdCByYWRlb25fY3Nf cmVsb2MpLCBHRlBfS0VSTkVMKTsKIAlpZiAocC0+cmVsb2NzID09IE5VTEwpIHsKIAkJcmV0 dXJuIC1FTk9NRU07CiAJfQpAQCAtMzI0LDcgKzMyNCw3IEBAIHN0YXRpYyB2b2lkIHJhZGVv bl9jc19wYXJzZXJfZmluaShzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcGFyc2VyLCBpbnQg ZXJyb3IpCiAJCX0KIAl9CiAJa2ZyZWUocGFyc2VyLT50cmFjayk7Ci0JZHJtX2ZyZWVfbGFy Z2UocGFyc2VyLT5yZWxvY3MpOworCWtmcmVlKHBhcnNlci0+cmVsb2NzKTsKIAlrZnJlZShw YXJzZXItPnJlbG9jc19wdHIpOwogCWZvciAoaSA9IDA7IGkgPCBwYXJzZXItPm5jaHVua3M7 IGkrKykgewogCQlrZnJlZShwYXJzZXItPmNodW5rc1tpXS5rZGF0YSk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9pcnFfa21zLmMgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9pcnFfa21zLmMKaW5kZXggNjQ1ZGNiZi4uNzdjNDU2ZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25faXJxX2ttcy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2lycV9rbXMuYwpAQCAtNTEsMTAg KzUxLDEyIEBAIHN0YXRpYyB2b2lkIHJhZGVvbl9ob3RwbHVnX3dvcmtfZnVuYyhzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspCiAJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqbW9kZV9jb25m aWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yOwogCisJbXV0ZXhfbG9jaygmbW9kZV9jb25maWctPm11dGV4KTsKIAlpZiAobW9kZV9j b25maWctPm51bV9jb25uZWN0b3IpIHsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0 b3IsICZtb2RlX2NvbmZpZy0+Y29ubmVjdG9yX2xpc3QsIGhlYWQpCiAJCQlyYWRlb25fY29u bmVjdG9yX2hvdHBsdWcoY29ubmVjdG9yKTsKIAl9CisJbXV0ZXhfdW5sb2NrKCZtb2RlX2Nv bmZpZy0+bXV0ZXgpOwogCS8qIEp1c3QgZmlyZSBvZmYgYSB1ZXZlbnQgYW5kIGxldCB1c2Vy c3BhY2UgdGVsbCB1cyB3aGF0IHRvIGRvICovCiAJZHJtX2hlbHBlcl9ocGRfaXJxX2V2ZW50 KGRldik7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NzcwLmMg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NzcwLmMKaW5kZXggMzM1ODczMC4uMWVjMTI1 NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjc3MC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcnY3NzAuYwpAQCAtMTU4LDcgKzE1OCw3IEBAIGludCBy djc3MF9wY2llX2dhcnRfZW5hYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCVdS RUczMihNQ19WTV9NQl9MMV9UTEIyX0NOVEwsIHRtcCk7CiAJV1JFRzMyKE1DX1ZNX01CX0wx X1RMQjNfQ05UTCwgdG1wKTsKIAlXUkVHMzIoVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9TVEFS VF9BRERSLCByZGV2LT5tYy5ndHRfc3RhcnQgPj4gMTIpOwotCVdSRUczMihWTV9DT05URVhU MF9QQUdFX1RBQkxFX0VORF9BRERSLCAocmRldi0+bWMuZ3R0X2VuZCA+PiAxMikgLSAxKTsK KwlXUkVHMzIoVk1fQ09OVEVYVDBfUEFHRV9UQUJMRV9FTkRfQUREUiwgcmRldi0+bWMuZ3R0 X2VuZCA+PiAxMik7CiAJV1JFRzMyKFZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfQkFTRV9BRERS LCByZGV2LT5nYXJ0LnRhYmxlX2FkZHIgPj4gMTIpOwogCVdSRUczMihWTV9DT05URVhUMF9D TlRMLCBFTkFCTEVfQ09OVEVYVCB8IFBBR0VfVEFCTEVfREVQVEgoMCkgfAogCQkJCVJBTkdF X1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFVTFQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9zaS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jCmlu ZGV4IDNiNmU2NDEuLjY2MDlhMjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMKQEAgLTI1MzcsNyAr MjUzNyw3IEBAIGludCBzaV9wY2llX2dhcnRfZW5hYmxlKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2KQogCSAgICAgICBMMl9DQUNIRV9CSUdLX0ZSQUdNRU5UX1NJWkUoMCkpOwogCS8q IHNldHVwIGNvbnRleHQwICovCiAJV1JFRzMyKFZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfU1RB UlRfQUREUiwgcmRldi0+bWMuZ3R0X3N0YXJ0ID4+IDEyKTsKLQlXUkVHMzIoVk1fQ09OVEVY VDBfUEFHRV9UQUJMRV9FTkRfQUREUiwgKHJkZXYtPm1jLmd0dF9lbmQgPj4gMTIpIC0gMSk7 CisJV1JFRzMyKFZNX0NPTlRFWFQwX1BBR0VfVEFCTEVfRU5EX0FERFIsIHJkZXYtPm1jLmd0 dF9lbmQgPj4gMTIpOwogCVdSRUczMihWTV9DT05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQURE UiwgcmRldi0+Z2FydC50YWJsZV9hZGRyID4+IDEyKTsKIAlXUkVHMzIoVk1fQ09OVEVYVDBf UFJPVEVDVElPTl9GQVVMVF9ERUZBVUxUX0FERFIsCiAJCQkodTMyKShyZGV2LT5kdW1teV9w YWdlLmFkZHIgPj4gMTIpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9x aWIvcWliLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYi5oCmluZGV4IGM3ZDRl ZjEuLmRjZmY2NGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWli LmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWIuaApAQCAtMTQyOSw2ICsx NDI5LDEwIEBAIGV4dGVybiBzdHJ1Y3QgbXV0ZXggcWliX211dGV4OwogCQkJcWliX2dldF91 bml0X25hbWUoKGRkKS0+dW5pdCksICMjX19WQV9BUkdTX18pOyBcCiAJfSB3aGlsZSAoMCkK IAorI2RlZmluZSBxaWJfZGV2X3dhcm4oZGQsIGZtdCwgLi4uKSBcCisJZGV2X3dhcm4oJihk ZCktPnBjaWRldi0+ZGV2LCAiJXM6ICIgZm10LCBcCisJCXFpYl9nZXRfdW5pdF9uYW1lKChk ZCktPnVuaXQpLCAjI19fVkFfQVJHU19fKQorCiAjZGVmaW5lIHFpYl9kZXZfcG9ydGVycihk ZCwgcG9ydCwgZm10LCAuLi4pIFwKIAlkbyB7IFwKIAkJZGV2X2VycigmKGRkKS0+cGNpZGV2 LT5kZXYsICIlczogSUIldToldSAiIGZtdCwgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZp bmliYW5kL2h3L3FpYi9xaWJfa2V5cy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9x aWJfa2V5cy5jCmluZGV4IDhmZDE5YTQuLmNhNmU2Y2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv aW5maW5pYmFuZC9ody9xaWIvcWliX2tleXMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQv aHcvcWliL3FpYl9rZXlzLmMKQEAgLTY5LDYgKzY5LDEwIEBAIGludCBxaWJfYWxsb2NfbGtl eShzdHJ1Y3QgcWliX2xrZXlfdGFibGUgKnJrdCwgc3RydWN0IHFpYl9tcmVnaW9uICptcikK IAkgKiB1bnJlc3RyaWN0ZWQgTEtFWS4KIAkgKi8KIAlya3QtPmdlbisrOworCS8qCisJICog Yml0cyBhcmUgY2FwcGVkIGluIHFpYl92ZXJicy5jIHRvIGluc3VyZSBlbm91Z2ggYml0cwor CSAqIGZvciBnZW5lcmF0aW9uIG51bWJlcgorCSAqLwogCW1yLT5sa2V5ID0gKHIgPDwgKDMy IC0gaWJfcWliX2xrZXlfdGFibGVfc2l6ZSkpIHwKIAkJKCgoKDEgPDwgKDI0IC0gaWJfcWli X2xrZXlfdGFibGVfc2l6ZSkpIC0gMSkgJiBya3QtPmdlbikKIAkJIDw8IDgpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfdmVyYnMuYyBiL2RyaXZlcnMv aW5maW5pYmFuZC9ody9xaWIvcWliX3ZlcmJzLmMKaW5kZXggN2I2YzNiZi4uMzk1ZDlkNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfdmVyYnMuYworKysg Yi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl92ZXJicy5jCkBAIC00MCw2ICs0MCw3 IEBACiAjaW5jbHVkZSA8bGludXgvcmN1bGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+ CiAjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+CisjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5o PgogCiAjaW5jbHVkZSAicWliLmgiCiAjaW5jbHVkZSAicWliX2NvbW1vbi5oIgpAQCAtMjA1 OCwxMCArMjA1OSwxNiBAQCBpbnQgcWliX3JlZ2lzdGVyX2liX2RldmljZShzdHJ1Y3QgcWli X2RldmRhdGEgKmRkKQogCSAqIHRoZSBMS0VZKS4gIFRoZSByZW1haW5pbmcgYml0cyBhY3Qg YXMgYSBnZW5lcmF0aW9uIG51bWJlciBvciB0YWcuCiAJICovCiAJc3Bpbl9sb2NrX2luaXQo JmRldi0+bGtfdGFibGUubG9jayk7CisJLyogaW5zdXJlIGdlbmVyYXRpb24gaXMgYXQgbGVh c3QgNCBiaXRzIHNlZSBrZXlzLmMgKi8KKwlpZiAoaWJfcWliX2xrZXlfdGFibGVfc2l6ZSA+ IE1BWF9MS0VZX1RBQkxFX0JJVFMpIHsKKwkJcWliX2Rldl93YXJuKGRkLCAibGtleSBiaXRz ICV1IHRvbyBsYXJnZSwgcmVkdWNlZCB0byAldVxuIiwKKwkJCWliX3FpYl9sa2V5X3RhYmxl X3NpemUsIE1BWF9MS0VZX1RBQkxFX0JJVFMpOworCQlpYl9xaWJfbGtleV90YWJsZV9zaXpl ID0gTUFYX0xLRVlfVEFCTEVfQklUUzsKKwl9CiAJZGV2LT5sa190YWJsZS5tYXggPSAxIDw8 IGliX3FpYl9sa2V5X3RhYmxlX3NpemU7CiAJbGtfdGFiX3NpemUgPSBkZXYtPmxrX3RhYmxl Lm1heCAqIHNpemVvZigqZGV2LT5sa190YWJsZS50YWJsZSk7CiAJZGV2LT5sa190YWJsZS50 YWJsZSA9IChzdHJ1Y3QgcWliX21yZWdpb24gKiopCi0JCV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQ X0tFUk5FTCwgZ2V0X29yZGVyKGxrX3RhYl9zaXplKSk7CisJCXZtYWxsb2MobGtfdGFiX3Np emUpOwogCWlmIChkZXYtPmxrX3RhYmxlLnRhYmxlID09IE5VTEwpIHsKIAkJcmV0ID0gLUVO T01FTTsKIAkJZ290byBlcnJfbGs7CkBAIC0yMjMxLDcgKzIyMzgsNyBAQCBlcnJfdHg6CiAJ CQkJCXNpemVvZihzdHJ1Y3QgcWliX3Bpb19oZWFkZXIpLAogCQkJCSAgZGV2LT5waW9faGRy cywgZGV2LT5waW9faGRyc19waHlzKTsKIGVycl9oZHJzOgotCWZyZWVfcGFnZXMoKHVuc2ln bmVkIGxvbmcpIGRldi0+bGtfdGFibGUudGFibGUsIGdldF9vcmRlcihsa190YWJfc2l6ZSkp OworCXZmcmVlKGRldi0+bGtfdGFibGUudGFibGUpOwogZXJyX2xrOgogCWtmcmVlKGRldi0+ cXBfdGFibGUpOwogZXJyX3FwdDoKQEAgLTIyODUsNyArMjI5Miw2IEBAIHZvaWQgcWliX3Vu cmVnaXN0ZXJfaWJfZGV2aWNlKHN0cnVjdCBxaWJfZGV2ZGF0YSAqZGQpCiAJCQkJCXNpemVv ZihzdHJ1Y3QgcWliX3Bpb19oZWFkZXIpLAogCQkJCSAgZGV2LT5waW9faGRycywgZGV2LT5w aW9faGRyc19waHlzKTsKIAlsa190YWJfc2l6ZSA9IGRldi0+bGtfdGFibGUubWF4ICogc2l6 ZW9mKCpkZXYtPmxrX3RhYmxlLnRhYmxlKTsKLQlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25n KSBkZXYtPmxrX3RhYmxlLnRhYmxlLAotCQkgICBnZXRfb3JkZXIobGtfdGFiX3NpemUpKTsK Kwl2ZnJlZShkZXYtPmxrX3RhYmxlLnRhYmxlKTsKIAlrZnJlZShkZXYtPnFwX3RhYmxlKTsK IH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3ZlcmJzLmgg Yi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl92ZXJicy5oCmluZGV4IDBjMTllZjAu LjY2ZjdmNjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3Zl cmJzLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfdmVyYnMuaApAQCAt NjIyLDYgKzYyMiw4IEBAIHN0cnVjdCBxaWJfcXBuX3RhYmxlIHsKIAlzdHJ1Y3QgcXBuX21h cCBtYXBbUVBOTUFQX0VOVFJJRVNdOwogfTsKIAorI2RlZmluZSBNQVhfTEtFWV9UQUJMRV9C SVRTIDIzCisKIHN0cnVjdCBxaWJfbGtleV90YWJsZSB7CiAJc3BpbmxvY2tfdCBsb2NrOyAv KiBwcm90ZWN0IGNoYW5nZXMgaW4gdGhpcyBzdHJ1Y3QgKi8KIAl1MzIgbmV4dDsgICAgICAg ICAgICAgICAvKiBuZXh0IHVudXNlZCBpbmRleCAoc3BlZWRzIHNlYXJjaCkgKi8KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbW1jL2NhcmQvYmxvY2suYyBiL2RyaXZlcnMvbW1jL2NhcmQvYmxv Y2suYwppbmRleCBjMzJhOTA5Li40N2E3ODllIDEwMDY0NAotLS0gYS9kcml2ZXJzL21tYy9j YXJkL2Jsb2NrLmMKKysrIGIvZHJpdmVycy9tbWMvY2FyZC9ibG9jay5jCkBAIC0xMzcyLDkg KzEzNzIsMTEgQEAgc3RhdGljIGludCBtbWNfYmxrX2lzc3VlX3J3X3JxKHN0cnVjdCBtbWNf cXVldWUgKm1xLCBzdHJ1Y3QgcmVxdWVzdCAqcnFjKQogCQkJYnJlYWs7CiAJCWNhc2UgTU1D X0JMS19DTURfRVJSOgogCQkJcmV0ID0gbW1jX2Jsa19jbWRfZXJyKG1kLCBjYXJkLCBicnEs IHJlcSwgcmV0KTsKLQkJCWlmICghbW1jX2Jsa19yZXNldChtZCwgY2FyZC0+aG9zdCwgdHlw ZSkpCi0JCQkJYnJlYWs7Ci0JCQlnb3RvIGNtZF9hYm9ydDsKKwkJCWlmIChtbWNfYmxrX3Jl c2V0KG1kLCBjYXJkLT5ob3N0LCB0eXBlKSkKKwkJCQlnb3RvIGNtZF9hYm9ydDsKKwkJCWlm ICghcmV0KQorCQkJCWdvdG8gc3RhcnRfbmV3X3JlcTsKKwkJCWJyZWFrOwogCQljYXNlIE1N Q19CTEtfUkVUUlk6CiAJCQlpZiAocmV0cnkrKyA8IDUpCiAJCQkJYnJlYWs7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL210ZC9tYXBzL2RjMjEyODUuYyBiL2RyaXZlcnMvbXRkL21hcHMvZGMy MTI4NS5jCmluZGV4IDA4MGYwNjAuLjg2NTk4YTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRk L21hcHMvZGMyMTI4NS5jCisrKyBiL2RyaXZlcnMvbXRkL21hcHMvZGMyMTI4NS5jCkBAIC0z OCw5ICszOCw5IEBAIHN0YXRpYyB2b2lkIG53X2VuX3dyaXRlKHZvaWQpCiAJICogd2Ugd2Fu dCB0byB3cml0ZSBhIGJpdCBwYXR0ZXJuIFhYWDEgdG8gWGlsaW54IHRvIGVuYWJsZQogCSAq IHRoZSB3cml0ZSBnYXRlLCB3aGljaCB3aWxsIGJlIG9wZW4gZm9yIGFib3V0IHRoZSBuZXh0 IDJtcy4KIAkgKi8KLQlzcGluX2xvY2tfaXJxc2F2ZSgmbndfZ3Bpb19sb2NrLCBmbGFncyk7 CisJcmF3X3NwaW5fbG9ja19pcnFzYXZlKCZud19ncGlvX2xvY2ssIGZsYWdzKTsKIAlud19j cGxkX21vZGlmeShDUExEX0ZMQVNIX1dSX0VOQUJMRSwgQ1BMRF9GTEFTSF9XUl9FTkFCTEUp OwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm53X2dwaW9fbG9jaywgZmxhZ3MpOworCXJh d19zcGluX3VubG9ja19pcnFyZXN0b3JlKCZud19ncGlvX2xvY2ssIGZsYWdzKTsKIAogCS8q CiAJICogbGV0IHRoZSBJU0EgYnVzIHRvIGNhdGNoIG9uLi4uCmRpZmYgLS1naXQgYS9kcml2 ZXJzL210ZC9tdGRfYmxrZGV2cy5jIGIvZHJpdmVycy9tdGQvbXRkX2Jsa2RldnMuYwppbmRl eCBmMWYwNjcxLi4xOTE3ZjdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9tdGRfYmxrZGV2 cy5jCisrKyBiL2RyaXZlcnMvbXRkL210ZF9ibGtkZXZzLmMKQEAgLTIxNCw2ICsyMTQsNyBA QCBzdGF0aWMgaW50IGJsa3RyYW5zX29wZW4oc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwg Zm1vZGVfdCBtb2RlKQogCQlyZXR1cm4gLUVSRVNUQVJUU1lTOyAvKiBGSVhNRTogYnVzeSBs b29wISAtYXJuZCovCiAKIAltdXRleF9sb2NrKCZkZXYtPmxvY2spOworCW11dGV4X2xvY2so Jm10ZF90YWJsZV9tdXRleCk7CiAKIAlpZiAoZGV2LT5vcGVuKQogCQlnb3RvIHVubG9jazsK QEAgLTIzNyw2ICsyMzgsNyBAQCBzdGF0aWMgaW50IGJsa3RyYW5zX29wZW4oc3RydWN0IGJs b2NrX2RldmljZSAqYmRldiwgZm1vZGVfdCBtb2RlKQogCiB1bmxvY2s6CiAJZGV2LT5vcGVu Kys7CisJbXV0ZXhfdW5sb2NrKCZtdGRfdGFibGVfbXV0ZXgpOwogCW11dGV4X3VubG9jaygm ZGV2LT5sb2NrKTsKIAlibGt0cmFuc19kZXZfcHV0KGRldik7CiAJcmV0dXJuIHJldDsKQEAg LTI0Nyw2ICsyNDksNyBAQCBlcnJvcl9yZWxlYXNlOgogZXJyb3JfcHV0OgogCW1vZHVsZV9w dXQoZGV2LT50ci0+b3duZXIpOwogCWtyZWZfcHV0KCZkZXYtPnJlZiwgYmxrdHJhbnNfZGV2 X3JlbGVhc2UpOworCW11dGV4X3VubG9jaygmbXRkX3RhYmxlX211dGV4KTsKIAltdXRleF91 bmxvY2soJmRldi0+bG9jayk7CiAJYmxrdHJhbnNfZGV2X3B1dChkZXYpOwogCXJldHVybiBy ZXQ7CkBAIC0yNjEsNiArMjY0LDcgQEAgc3RhdGljIGludCBibGt0cmFuc19yZWxlYXNlKHN0 cnVjdCBnZW5kaXNrICpkaXNrLCBmbW9kZV90IG1vZGUpCiAJCXJldHVybiByZXQ7CiAKIAlt dXRleF9sb2NrKCZkZXYtPmxvY2spOworCW11dGV4X2xvY2soJm10ZF90YWJsZV9tdXRleCk7 CiAKIAlpZiAoLS1kZXYtPm9wZW4pCiAJCWdvdG8gdW5sb2NrOwpAQCAtMjczLDYgKzI3Nyw3 IEBAIHN0YXRpYyBpbnQgYmxrdHJhbnNfcmVsZWFzZShzdHJ1Y3QgZ2VuZGlzayAqZGlzaywg Zm1vZGVfdCBtb2RlKQogCQlfX3B1dF9tdGRfZGV2aWNlKGRldi0+bXRkKTsKIAl9CiB1bmxv Y2s6CisJbXV0ZXhfdW5sb2NrKCZtdGRfdGFibGVfbXV0ZXgpOwogCW11dGV4X3VubG9jaygm ZGV2LT5sb2NrKTsKIAlibGt0cmFuc19kZXZfcHV0KGRldik7CiAJcmV0dXJuIHJldDsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2Rlc2NzLmgg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kZXNjcy5oCmluZGV4IDk4 MjBlYzguLmU5M2EwYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWlj cm8vc3RtbWFjL2Rlc2NzLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9z dG1tYWMvZGVzY3MuaApAQCAtMTUzLDYgKzE1Myw4IEBAIHN0cnVjdCBkbWFfZGVzYyB7CiAJ CQl1MzIgYnVmZmVyMl9zaXplOjEzOwogCQkJdTMyIHJlc2VydmVkNDozOwogCQl9IGV0eDsJ CS8qIC0tIGVuaGFuY2VkIC0tICovCisKKwkJdTY0IGFsbF9mbGFnczsKIAl9IGRlczAxOwog CXVuc2lnbmVkIGludCBkZXMyOwogCXVuc2lnbmVkIGludCBkZXMzOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZW5oX2Rlc2MuYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2VuaF9kZXNjLmMKaW5kZXggYWQxYjYy Ny4uZTBkYjZmNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9z dG1tYWMvZW5oX2Rlc2MuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9lbmhfZGVzYy5jCkBAIC0yMzIsNiArMjMyLDcgQEAgc3RhdGljIHZvaWQgZW5oX2Rl c2NfaW5pdF9yeF9kZXNjKHN0cnVjdCBkbWFfZGVzYyAqcCwgdW5zaWduZWQgaW50IHJpbmdf c2l6ZSwKIHsKIAlpbnQgaTsKIAlmb3IgKGkgPSAwOyBpIDwgcmluZ19zaXplOyBpKyspIHsK KwkJcC0+ZGVzMDEuYWxsX2ZsYWdzID0gMDsKIAkJcC0+ZGVzMDEuZXJ4Lm93biA9IDE7CiAJ CXAtPmRlczAxLmVyeC5idWZmZXIxX3NpemUgPSBCVUZfU0laRV84S2lCIC0gMTsKIApAQCAt MjQ4LDcgKzI0OSw3IEBAIHN0YXRpYyB2b2lkIGVuaF9kZXNjX2luaXRfdHhfZGVzYyhzdHJ1 Y3QgZG1hX2Rlc2MgKnAsIHVuc2lnbmVkIGludCByaW5nX3NpemUpCiAJaW50IGk7CiAKIAlm b3IgKGkgPSAwOyBpIDwgcmluZ19zaXplOyBpKyspIHsKLQkJcC0+ZGVzMDEuZXR4Lm93biA9 IDA7CisJCXAtPmRlczAxLmFsbF9mbGFncyA9IDA7CiAJCWVobl9kZXNjX3R4X3NldF9vbl9y aW5nX2NoYWluKHAsIChpID09IHJpbmdfc2l6ZSAtIDEpKTsKIAkJcCsrOwogCX0KQEAgLTI3 MSw2ICsyNzIsNyBAQCBzdGF0aWMgdm9pZCBlbmhfZGVzY19zZXRfdHhfb3duZXIoc3RydWN0 IGRtYV9kZXNjICpwKQogCiBzdGF0aWMgdm9pZCBlbmhfZGVzY19zZXRfcnhfb3duZXIoc3Ry dWN0IGRtYV9kZXNjICpwKQogeworCXAtPmRlczAxLmFsbF9mbGFncyA9IDA7CiAJcC0+ZGVz MDEuZXJ4Lm93biA9IDE7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL25vcm1fZGVzYy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3Rt aWNyby9zdG1tYWMvbm9ybV9kZXNjLmMKaW5kZXggMjU5NTNiYi4uOTcwMzM0MCAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvbm9ybV9kZXNjLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvbm9ybV9kZXNjLmMK QEAgLTEyNiw2ICsxMjYsNyBAQCBzdGF0aWMgdm9pZCBuZGVzY19pbml0X3J4X2Rlc2Moc3Ry dWN0IGRtYV9kZXNjICpwLCB1bnNpZ25lZCBpbnQgcmluZ19zaXplLAogewogCWludCBpOwog CWZvciAoaSA9IDA7IGkgPCByaW5nX3NpemU7IGkrKykgeworCQlwLT5kZXMwMS5hbGxfZmxh Z3MgPSAwOwogCQlwLT5kZXMwMS5yeC5vd24gPSAxOwogCQlwLT5kZXMwMS5yeC5idWZmZXIx X3NpemUgPSBCVUZfU0laRV8yS2lCIC0gMTsKIApAQCAtMTQxLDcgKzE0Miw3IEBAIHN0YXRp YyB2b2lkIG5kZXNjX2luaXRfdHhfZGVzYyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHVuc2lnbmVk IGludCByaW5nX3NpemUpCiB7CiAJaW50IGk7CiAJZm9yIChpID0gMDsgaSA8IHJpbmdfc2l6 ZTsgaSsrKSB7Ci0JCXAtPmRlczAxLnR4Lm93biA9IDA7CisJCXAtPmRlczAxLmFsbF9mbGFn cyA9IDA7CiAJCW5kZXNjX3R4X3NldF9vbl9yaW5nX2NoYWluKHAsIChpID09IChyaW5nX3Np emUgLSAxKSkpOwogCQlwKys7CiAJfQpAQCAtMTY0LDYgKzE2NSw3IEBAIHN0YXRpYyB2b2lk IG5kZXNjX3NldF90eF9vd25lcihzdHJ1Y3QgZG1hX2Rlc2MgKnApCiAKIHN0YXRpYyB2b2lk IG5kZXNjX3NldF9yeF9vd25lcihzdHJ1Y3QgZG1hX2Rlc2MgKnApCiB7CisJcC0+ZGVzMDEu YWxsX2ZsYWdzID0gMDsKIAlwLT5kZXMwMS5yeC5vd24gPSAxOwogfQogCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwppbmRl eCA5YmRmYWJhLi44OGM4NjQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9z dG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKQEAgLTQyNCwxOSArNDI0LDE3IEBAIHN0 YXRpYyB2b2lkIGluaXRfZG1hX2Rlc2NfcmluZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldikK IAlwcml2LT5yeF9za2J1ZmYgPQogCSAgICBrbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc2tfYnVm ZiAqKSAqIHJ4c2l6ZSwgR0ZQX0tFUk5FTCk7CiAJcHJpdi0+ZG1hX3J4ID0KLQkgICAgKHN0 cnVjdCBkbWFfZGVzYyAqKWRtYV9hbGxvY19jb2hlcmVudChwcml2LT5kZXZpY2UsCi0JCQkJ CQkgIHJ4c2l6ZSAqCi0JCQkJCQkgIHNpemVvZihzdHJ1Y3QgZG1hX2Rlc2MpLAotCQkJCQkJ ICAmcHJpdi0+ZG1hX3J4X3BoeSwKLQkJCQkJCSAgR0ZQX0tFUk5FTCk7CisJICAgIChzdHJ1 Y3QgZG1hX2Rlc2MgKilkbWFfemFsbG9jX2NvaGVyZW50KHByaXYtPmRldmljZSwgcnhzaXpl ICoKKwkJCQkJCSAgIHNpemVvZihzdHJ1Y3QgZG1hX2Rlc2MpLAorCQkJCQkJICAgJnByaXYt PmRtYV9yeF9waHksCisJCQkJCQkgICBHRlBfS0VSTkVMKTsKIAlwcml2LT50eF9za2J1ZmYg PSBrbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc2tfYnVmZiAqKSAqIHR4c2l6ZSwKIAkJCQkgICAg ICAgR0ZQX0tFUk5FTCk7CiAJcHJpdi0+ZG1hX3R4ID0KLQkgICAgKHN0cnVjdCBkbWFfZGVz YyAqKWRtYV9hbGxvY19jb2hlcmVudChwcml2LT5kZXZpY2UsCi0JCQkJCQkgIHR4c2l6ZSAq Ci0JCQkJCQkgIHNpemVvZihzdHJ1Y3QgZG1hX2Rlc2MpLAotCQkJCQkJICAmcHJpdi0+ZG1h X3R4X3BoeSwKLQkJCQkJCSAgR0ZQX0tFUk5FTCk7CisJICAgIChzdHJ1Y3QgZG1hX2Rlc2Mg KilkbWFfemFsbG9jX2NvaGVyZW50KHByaXYtPmRldmljZSwgdHhzaXplICoKKwkJCQkJCSAg IHNpemVvZihzdHJ1Y3QgZG1hX2Rlc2MpLAorCQkJCQkJICAgJnByaXYtPmRtYV90eF9waHks CisJCQkJCQkgICBHRlBfS0VSTkVMKTsKIAogCWlmICgocHJpdi0+ZG1hX3J4ID09IE5VTEwp IHx8IChwcml2LT5kbWFfdHggPT0gTlVMTCkpIHsKIAkJcHJfZXJyKCIlczpFUlJPUiBhbGxv Y2F0aW5nIHRoZSBETUEgVHgvUnggZGVzY1xuIiwgX19mdW5jX18pOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL21haW4uYyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGg5ay9tYWluLmMKaW5kZXggZWYyNjA1Ni4uN2U3YmQxNSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL21haW4uYworKysgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvbWFpbi5jCkBAIC0yMzUsNyArMjM1LDcgQEAg c3RhdGljIGJvb2wgYXRoX3ByZXBhcmVfcmVzZXQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIGJv b2wgcmV0cnlfdHgsIGJvb2wgZmx1c2gpCiB7CiAJc3RydWN0IGF0aF9odyAqYWggPSBzYy0+ c2NfYWg7CiAJc3RydWN0IGF0aF9jb21tb24gKmNvbW1vbiA9IGF0aDlrX2h3X2NvbW1vbihh aCk7Ci0JYm9vbCByZXQ7CisJYm9vbCByZXQgPSB0cnVlOwogCiAJaWVlZTgwMjExX3N0b3Bf cXVldWVzKHNjLT5odyk7CiAKQEAgLTI0NSwxMCArMjQ1LDEzIEBAIHN0YXRpYyBib29sIGF0 aF9wcmVwYXJlX3Jlc2V0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBib29sIHJldHJ5X3R4LCBi b29sIGZsdXNoKQogCWF0aDlrX2RlYnVnX3NhbXBfYmJfbWFjKHNjKTsKIAlhdGg5a19od19k aXNhYmxlX2ludGVycnVwdHMoYWgpOwogCi0JcmV0ID0gYXRoX2RyYWluX2FsbF90eHEoc2Ms IHJldHJ5X3R4KTsKLQotCWlmICghYXRoX3N0b3ByZWN2KHNjKSkKLQkJcmV0ID0gZmFsc2U7 CisJaWYgKEFSX1NSRVZfOTMwMF8yMF9PUl9MQVRFUihhaCkpIHsKKwkJcmV0ICY9IGF0aF9z dG9wcmVjdihzYyk7CisJCXJldCAmPSBhdGhfZHJhaW5fYWxsX3R4cShzYywgcmV0cnlfdHgp OworCX0gZWxzZSB7CisJCXJldCAmPSBhdGhfZHJhaW5fYWxsX3R4cShzYywgcmV0cnlfdHgp OworCQlyZXQgJj0gYXRoX3N0b3ByZWN2KHNjKTsKKwl9CiAKIAlpZiAoIWZsdXNoKSB7CiAJ CWlmIChhaC0+Y2Fwcy5od19jYXBzICYgQVRIOUtfSFdfQ0FQX0VETUEpCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC93aXJlbGVzcy9ybmRpc193bGFuLmMgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9ybmRpc193bGFuLmMKaW5kZXggZDY2ZTI5OC4uNDE0YWM0OSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvd2lyZWxlc3Mvcm5kaXNfd2xhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL3JuZGlzX3dsYW4uYwpAQCAtNDA3LDkgKzQwNyw5IEBAIHN0cnVjdCBuZGlzXzgw MjExX3Bta2lkIHsKICNkZWZpbmUgQ0FQX01PREVfODAyMTFHCQk0CiAjZGVmaW5lIENBUF9N T0RFX01BU0sJCTcKIAotI2RlZmluZSBXT1JLX0xJTktfVVAJCSgxPDwwKQotI2RlZmluZSBX T1JLX0xJTktfRE9XTgkJKDE8PDEpCi0jZGVmaW5lIFdPUktfU0VUX01VTFRJQ0FTVF9MSVNU CSgxPDwyKQorI2RlZmluZSBXT1JLX0xJTktfVVAJCTAKKyNkZWZpbmUgV09SS19MSU5LX0RP V04JCTEKKyNkZWZpbmUgV09SS19TRVRfTVVMVElDQVNUX0xJU1QJMgogCiAjZGVmaW5lIFJO RElTX1dMQU5fQUxHX05PTkUJMAogI2RlZmluZSBSTkRJU19XTEFOX0FMR19XRVAJKDE8PDAp CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS90b3BpYy5oIGIvZHJpdmVycy9wY21jaWEv dG9waWMuaAppbmRleCA2MTVhNDVhLi41ODI2ODhmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9w Y21jaWEvdG9waWMuaAorKysgYi9kcml2ZXJzL3BjbWNpYS90b3BpYy5oCkBAIC0xMDQsNiAr MTA0LDkgQEAKICNkZWZpbmUgVE9QSUNfRVhDQV9JRl9DT05UUk9MCQkweDNlCS8qIDggYml0 ICovCiAjZGVmaW5lIFRPUElDX0VYQ0FfSUZDXzMzVl9FTkEJCTB4MDEKIAorI2RlZmluZSBU T1BJQ19QQ0lfQ0ZHX1BQQkNOCQkweDNlCS8qIDE2LWJpdCAqLworI2RlZmluZSBUT1BJQ19Q Q0lfQ0ZHX1BQQkNOX1dCRU4JMHgwNDAwCisKIHN0YXRpYyB2b2lkIHRvcGljOTdfem9vbV92 aWRlbyhzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqc29jaywgaW50IG9ub2ZmKQogewogCXN0cnVj dCB5ZW50YV9zb2NrZXQgKnNvY2tldCA9IGNvbnRhaW5lcl9vZihzb2NrLCBzdHJ1Y3QgeWVu dGFfc29ja2V0LCBzb2NrZXQpOwpAQCAtMTM4LDYgKzE0MSw3IEBAIHN0YXRpYyBpbnQgdG9w aWM5N19vdmVycmlkZShzdHJ1Y3QgeWVudGFfc29ja2V0ICpzb2NrZXQpCiBzdGF0aWMgaW50 IHRvcGljOTVfb3ZlcnJpZGUoc3RydWN0IHllbnRhX3NvY2tldCAqc29ja2V0KQogewogCXU4 IGZjdHJsOworCXUxNiBwcGJjbjsKIAogCS8qIGVuYWJsZSAzLjNWIHN1cHBvcnQgZm9yIDE2 Yml0IGNhcmRzICovCiAJZmN0cmwgPSBleGNhX3JlYWRiKHNvY2tldCwgVE9QSUNfRVhDQV9J Rl9DT05UUk9MKTsKQEAgLTE0Niw2ICsxNTAsMTggQEAgc3RhdGljIGludCB0b3BpYzk1X292 ZXJyaWRlKHN0cnVjdCB5ZW50YV9zb2NrZXQgKnNvY2tldCkKIAkvKiB0ZWxsIHllbnRhIHRv IHVzZSBleGNhIHJlZ2lzdGVycyB0byBwb3dlciAxNmJpdCBjYXJkcyAqLwogCXNvY2tldC0+ ZmxhZ3MgfD0gWUVOVEFfMTZCSVRfUE9XRVJfRVhDQSB8IFlFTlRBXzE2QklUX1BPV0VSX0RG OwogCisJLyogRGlzYWJsZSB3cml0ZSBidWZmZXJzIHRvIHByZXZlbnQgbG9ja3VwcyB1bmRl ciBsb2FkIHdpdGggbnVtZXJvdXMKKwkgICBDYXJkYnVzIGNhcmRzLCBvYnNlcnZlZCBvbiBU ZWNyYSA1MDBDRFQgYW5kIHJlcG9ydGVkIGVsc2V3aGVyZSBvbiB0aGUKKwkgICBuZXQuICBU aGlzIGlzIG5vdCBhIHBvd2VyLW9uIGRlZmF1bHQgYWNjb3JkaW5nIHRvIHRoZSBkYXRhc2hl ZXQKKwkgICBidXQgc29tZSBCSU9TZXMgc2VlbSB0byBzZXQgaXQuICovCisJaWYgKHBjaV9y ZWFkX2NvbmZpZ193b3JkKHNvY2tldC0+ZGV2LCBUT1BJQ19QQ0lfQ0ZHX1BQQkNOLCAmcHBi Y24pID09IDAKKwkgICAgJiYgc29ja2V0LT5kZXYtPnJldmlzaW9uIDw9IDcKKwkgICAgJiYg KHBwYmNuICYgVE9QSUNfUENJX0NGR19QUEJDTl9XQkVOKSkgeworCQlwcGJjbiAmPSB+VE9Q SUNfUENJX0NGR19QUEJDTl9XQkVOOworCQlwY2lfd3JpdGVfY29uZmlnX3dvcmQoc29ja2V0 LT5kZXYsIFRPUElDX1BDSV9DRkdfUFBCQ04sIHBwYmNuKTsKKwkJZGV2X2luZm8oJnNvY2tl dC0+ZGV2LT5kZXYsICJEaXNhYmxlZCBUb1BJQzk1IENhcmRidXMgd3JpdGUgYnVmZmVycy5c biIpOworCX0KKwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRm b3JtL3g4Ni9kZWxsLWxhcHRvcC5jIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvZGVsbC1sYXB0 b3AuYwppbmRleCBlNmMwOGVlLi4zZDY3NTkxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BsYXRm b3JtL3g4Ni9kZWxsLWxhcHRvcC5jCisrKyBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L2RlbGwt bGFwdG9wLmMKQEAgLTIxNiw3ICsyMTYsNiBAQCBzdGF0aWMgc3RydWN0IGRtaV9zeXN0ZW1f aWQgX19kZXZpbml0ZGF0YSBkZWxsX3F1aXJrc1tdID0gewogfTsKIAogc3RhdGljIHN0cnVj dCBjYWxsaW5nX2ludGVyZmFjZV9idWZmZXIgKmJ1ZmZlcjsKLXN0YXRpYyBzdHJ1Y3QgcGFn ZSAqYnVmZmVycGFnZTsKIHN0YXRpYyBERUZJTkVfTVVURVgoYnVmZmVyX211dGV4KTsKIAog c3RhdGljIGludCBod3N3aXRjaF9zdGF0ZTsKQEAgLTcxNCwxMSArNzEzLDEwIEBAIHN0YXRp YyBpbnQgX19pbml0IGRlbGxfaW5pdCh2b2lkKQogCSAqIEFsbG9jYXRlIGJ1ZmZlciBiZWxv dyA0R0IgZm9yIFNNSSBkYXRhLS1vbmx5IDMyLWJpdCBwaHlzaWNhbCBhZGRyCiAJICogaXMg cGFzc2VkIHRvIFNNSSBoYW5kbGVyLgogCSAqLwotCWJ1ZmZlcnBhZ2UgPSBhbGxvY19wYWdl KEdGUF9LRVJORUwgfCBHRlBfRE1BMzIpOworCWJ1ZmZlciA9ICh2b2lkICopX19nZXRfZnJl ZV9wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BMzIpOwogCi0JaWYgKCFidWZmZXJwYWdlKQor CWlmICghYnVmZmVyKQogCQlnb3RvIGZhaWxfYnVmZmVyOwotCWJ1ZmZlciA9IHBhZ2VfYWRk cmVzcyhidWZmZXJwYWdlKTsKIAogCXJldCA9IGRlbGxfc2V0dXBfcmZraWxsKCk7CiAKQEAg LTc4Nyw3ICs3ODUsNyBAQCBmYWlsX2JhY2tsaWdodDoKIGZhaWxfZmlsdGVyOgogCWRlbGxf Y2xlYW51cF9yZmtpbGwoKTsKIGZhaWxfcmZraWxsOgotCWZyZWVfcGFnZSgodW5zaWduZWQg bG9uZylidWZmZXJwYWdlKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpYnVmZmVyKTsK IGZhaWxfYnVmZmVyOgogCXBsYXRmb3JtX2RldmljZV9kZWwocGxhdGZvcm1fZGV2aWNlKTsK IGZhaWxfcGxhdGZvcm1fZGV2aWNlMjoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0v eDg2L2lkZWFwYWQtbGFwdG9wLmMgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9pZGVhcGFkLWxh cHRvcC5jCmluZGV4IGFjOTAyZjcuLjM0ZTlmY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGxh dGZvcm0veDg2L2lkZWFwYWQtbGFwdG9wLmMKKysrIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYv aWRlYXBhZC1sYXB0b3AuYwpAQCAtNDA3LDcgKzQwNyw4IEBAIGNvbnN0IHN0cnVjdCBpZGVh cGFkX3Jma19kYXRhIGlkZWFwYWRfcmZrX2RhdGFbXSA9IHsKIAogc3RhdGljIGludCBpZGVh cGFkX3Jma19zZXQodm9pZCAqZGF0YSwgYm9vbCBibG9ja2VkKQogewotCXVuc2lnbmVkIGxv bmcgb3Bjb2RlID0gKHVuc2lnbmVkIGxvbmcpZGF0YTsKKwl1bnNpZ25lZCBsb25nIGRldiA9 ICh1bnNpZ25lZCBsb25nKWRhdGE7CisJaW50IG9wY29kZSA9IGlkZWFwYWRfcmZrX2RhdGFb ZGV2XS5vcGNvZGU7CiAKIAlyZXR1cm4gd3JpdGVfZWNfY21kKGlkZWFwYWRfaGFuZGxlLCBv cGNvZGUsICFibG9ja2VkKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVndWxhdG9yL2Nv cmUuYyBiL2RyaXZlcnMvcmVndWxhdG9yL2NvcmUuYwppbmRleCAwZDcxNTU3Li5jOGYxNjBk IDEwMDY0NAotLS0gYS9kcml2ZXJzL3JlZ3VsYXRvci9jb3JlLmMKKysrIGIvZHJpdmVycy9y ZWd1bGF0b3IvY29yZS5jCkBAIC03NDksNyArNzQ5LDcgQEAgc3RhdGljIGludCBzdXNwZW5k X3ByZXBhcmUoc3RydWN0IHJlZ3VsYXRvcl9kZXYgKnJkZXYsIHN1c3BlbmRfc3RhdGVfdCBz dGF0ZSkKIHN0YXRpYyB2b2lkIHByaW50X2NvbnN0cmFpbnRzKHN0cnVjdCByZWd1bGF0b3Jf ZGV2ICpyZGV2KQogewogCXN0cnVjdCByZWd1bGF0aW9uX2NvbnN0cmFpbnRzICpjb25zdHJh aW50cyA9IHJkZXYtPmNvbnN0cmFpbnRzOwotCWNoYXIgYnVmWzgwXSA9ICIiOworCWNoYXIg YnVmWzE2MF0gPSAiIjsKIAlpbnQgY291bnQgPSAwOwogCWludCByZXQ7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvc2NzaS9pcHIuaCBiL2RyaXZlcnMvc2NzaS9pcHIuaAppbmRleCAxNTNi OGJkLi4xOWZmOGIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvaXByLmgKKysrIGIvZHJp dmVycy9zY3NpL2lwci5oCkBAIC0yNTEsNyArMjUxLDcgQEAKICNkZWZpbmUgSVBSX1JVTlRJ TUVfUkVTRVQJCQkJMHg0MDAwMDAwMAogCiAjZGVmaW5lIElQUl9JUExfSU5JVF9NSU5fU1RB R0VfVElNRQkJCTUKLSNkZWZpbmUgSVBSX0lQTF9JTklUX0RFRkFVTFRfU1RBR0VfVElNRSAg ICAgICAgICAgICAgICAgMTUKKyNkZWZpbmUgSVBSX0lQTF9JTklUX0RFRkFVTFRfU1RBR0Vf VElNRSAgICAgICAgICAgICAgICAgMzAKICNkZWZpbmUgSVBSX0lQTF9JTklUX1NUQUdFX1VO S05PV04JCQkweDAKICNkZWZpbmUgSVBSX0lQTF9JTklUX1NUQUdFX1RSQU5TT1AJCQkweEIw MDAwMDAwCiAjZGVmaW5lIElQUl9JUExfSU5JVF9TVEFHRV9NQVNLCQkJCTB4ZmYwMDAwMDAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4NzEyL3J0bDg3MTJfcmVjdi5jIGIv ZHJpdmVycy9zdGFnaW5nL3J0bDg3MTIvcnRsODcxMl9yZWN2LmMKaW5kZXggODg3YTgwNy4u NTQ5YjhhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3J0bDg3MTIvcnRsODcxMl9y ZWN2LmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3J0bDg3MTIvcnRsODcxMl9yZWN2LmMKQEAg LTEwNzQsNyArMTA3NCw4IEBAIHN0YXRpYyBpbnQgcmVjdmJ1ZjJyZWN2ZnJhbWUoc3RydWN0 IF9hZGFwdGVyICpwYWRhcHRlciwgc3RydWN0IHNrX2J1ZmYgKnBza2IpCiAJCS8qIGZvciBm aXJzdCBmcmFnbWVudCBwYWNrZXQsIGRyaXZlciBuZWVkIGFsbG9jYXRlIDE1MzYgKwogCQkg KiBkcnZpbmZvX3N6ICsgUlhERVNDX1NJWkUgdG8gZGVmcmFnIHBhY2tldC4gKi8KIAkJaWYg KChtZiA9PSAxKSAmJiAoZnJhZyA9PSAwKSkKLQkJCWFsbG9jX3N6ID0gMTY1ODsvKjE2NTgr Nj0xNjY0LCAxNjY0IGlzIDEyOCBhbGlnbm1lbnQuKi8KKwkJCS8qMTY1OCs2PTE2NjQsIDE2 NjQgaXMgMTI4IGFsaWdubWVudC4qLworCQkJYWxsb2Nfc3ogPSBtYXhfdCh1MTYsIHRtcF9s ZW4sIDE2NTgpOwogCQllbHNlCiAJCQlhbGxvY19zeiA9IHRtcF9sZW47CiAJCS8qIDIgaXMg Zm9yIElQIGhlYWRlciA0IGJ5dGVzIGFsaWdubWVudCBpbiBRb1MgcGFja2V0IGNhc2UuCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwvYXRtZWxfc2VyaWFsLmMgYi9kcml2ZXJz L3R0eS9zZXJpYWwvYXRtZWxfc2VyaWFsLmMKaW5kZXggZmY1OGQyOC4uODVjMjhlMyAxMDA2 NDQKLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL2F0bWVsX3NlcmlhbC5jCisrKyBiL2RyaXZl cnMvdHR5L3NlcmlhbC9hdG1lbF9zZXJpYWwuYwpAQCAtMjI5LDggKzIyOSw3IEBAIHZvaWQg YXRtZWxfY29uZmlnX3JzNDg1KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHN0cnVjdCBzZXJp YWxfcnM0ODUgKnJzNDg1Y29uZikKIAlpZiAocnM0ODVjb25mLT5mbGFncyAmIFNFUl9SUzQ4 NV9FTkFCTEVEKSB7CiAJCWRldl9kYmcocG9ydC0+ZGV2LCAiU2V0dGluZyBVQVJUIHRvIFJT NDg1XG4iKTsKIAkJYXRtZWxfcG9ydC0+dHhfZG9uZV9tYXNrID0gQVRNRUxfVVNfVFhFTVBU WTsKLQkJaWYgKChyczQ4NWNvbmYtPmRlbGF5X3J0c19hZnRlcl9zZW5kKSA+IDApCi0JCQlV QVJUX1BVVF9UVEdSKHBvcnQsIHJzNDg1Y29uZi0+ZGVsYXlfcnRzX2FmdGVyX3NlbmQpOwor CQlVQVJUX1BVVF9UVEdSKHBvcnQsIHJzNDg1Y29uZi0+ZGVsYXlfcnRzX2FmdGVyX3NlbmQp OwogCQltb2RlIHw9IEFUTUVMX1VTX1VTTU9ERV9SUzQ4NTsKIAl9IGVsc2UgewogCQlkZXZf ZGJnKHBvcnQtPmRldiwgIlNldHRpbmcgVUFSVCB0byBSUzIzMlxuIik7CkBAIC0zMDUsOSAr MzA0LDcgQEAgc3RhdGljIHZvaWQgYXRtZWxfc2V0X21jdHJsKHN0cnVjdCB1YXJ0X3BvcnQg KnBvcnQsIHVfaW50IG1jdHJsKQogCiAJaWYgKGF0bWVsX3BvcnQtPnJzNDg1LmZsYWdzICYg U0VSX1JTNDg1X0VOQUJMRUQpIHsKIAkJZGV2X2RiZyhwb3J0LT5kZXYsICJTZXR0aW5nIFVB UlQgdG8gUlM0ODVcbiIpOwotCQlpZiAoKGF0bWVsX3BvcnQtPnJzNDg1LmRlbGF5X3J0c19h ZnRlcl9zZW5kKSA+IDApCi0JCQlVQVJUX1BVVF9UVEdSKHBvcnQsCi0JCQkJCWF0bWVsX3Bv cnQtPnJzNDg1LmRlbGF5X3J0c19hZnRlcl9zZW5kKTsKKwkJVUFSVF9QVVRfVFRHUihwb3J0 LCBhdG1lbF9wb3J0LT5yczQ4NS5kZWxheV9ydHNfYWZ0ZXJfc2VuZCk7CiAJCW1vZGUgfD0g QVRNRUxfVVNfVVNNT0RFX1JTNDg1OwogCX0gZWxzZSB7CiAJCWRldl9kYmcocG9ydC0+ZGV2 LCAiU2V0dGluZyBVQVJUIHRvIFJTMjMyXG4iKTsKQEAgLTEyMzksOSArMTIzNiw3IEBAIHN0 YXRpYyB2b2lkIGF0bWVsX3NldF90ZXJtaW9zKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHN0 cnVjdCBrdGVybWlvcyAqdGVybWlvcywKIAogCWlmIChhdG1lbF9wb3J0LT5yczQ4NS5mbGFn cyAmIFNFUl9SUzQ4NV9FTkFCTEVEKSB7CiAJCWRldl9kYmcocG9ydC0+ZGV2LCAiU2V0dGlu ZyBVQVJUIHRvIFJTNDg1XG4iKTsKLQkJaWYgKChhdG1lbF9wb3J0LT5yczQ4NS5kZWxheV9y dHNfYWZ0ZXJfc2VuZCkgPiAwKQotCQkJVUFSVF9QVVRfVFRHUihwb3J0LAotCQkJCQlhdG1l bF9wb3J0LT5yczQ4NS5kZWxheV9ydHNfYWZ0ZXJfc2VuZCk7CisJCVVBUlRfUFVUX1RUR1Io cG9ydCwgYXRtZWxfcG9ydC0+cnM0ODUuZGVsYXlfcnRzX2FmdGVyX3NlbmQpOwogCQltb2Rl IHw9IEFUTUVMX1VTX1VTTU9ERV9SUzQ4NTsKIAl9IGVsc2UgewogCQlkZXZfZGJnKHBvcnQt PmRldiwgIlNldHRpbmcgVUFSVCB0byBSUzIzMlxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJz L3VzYi9jb3JlL2h1Yi5jIGIvZHJpdmVycy91c2IvY29yZS9odWIuYwppbmRleCA5M2YyNTM4 Li42MmVhOTI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jCisrKyBiL2Ry aXZlcnMvdXNiL2NvcmUvaHViLmMKQEAgLTIxNzYsOSArMjE3Niw2IEBAIHN0YXRpYyB1bnNp Z25lZCBodWJfaXNfd3VzYihzdHJ1Y3QgdXNiX2h1YiAqaHViKQogI2RlZmluZSBIVUJfTE9O R19SRVNFVF9USU1FCTIwMAogI2RlZmluZSBIVUJfUkVTRVRfVElNRU9VVAk4MDAKIAotc3Rh dGljIGludCBodWJfcG9ydF9yZXNldChzdHJ1Y3QgdXNiX2h1YiAqaHViLCBpbnQgcG9ydDEs Ci0JCQlzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiwgdW5zaWduZWQgaW50IGRlbGF5LCBib29s IHdhcm0pOwotCiAvKiBJcyBhIFVTQiAzLjAgcG9ydCBpbiB0aGUgSW5hY3RpdmUgb3IgQ29t cGxpbmFuY2UgTW9kZSBzdGF0ZT8KICAqIFBvcnQgd29ybSByZXNldCBpcyByZXF1aXJlZCB0 byByZWNvdmVyCiAgKi8KQEAgLTIyNTgsNDQgKzIyNTUsNiBAQCBkZWxheToKIAlyZXR1cm4g LUVCVVNZOwogfQogCi1zdGF0aWMgdm9pZCBodWJfcG9ydF9maW5pc2hfcmVzZXQoc3RydWN0 IHVzYl9odWIgKmh1YiwgaW50IHBvcnQxLAotCQkJc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYs IGludCAqc3RhdHVzKQotewotCXN3aXRjaCAoKnN0YXR1cykgewotCWNhc2UgMDoKLQkJLyog VFJTVFJDWSA9IDEwIG1zOyBwbHVzIHNvbWUgZXh0cmEgKi8KLQkJbXNsZWVwKDEwICsgNDAp OwotCQlpZiAodWRldikgewotCQkJc3RydWN0IHVzYl9oY2QgKmhjZCA9IGJ1c190b19oY2Qo dWRldi0+YnVzKTsKLQotCQkJdXBkYXRlX2Rldm51bSh1ZGV2LCAwKTsKLQkJCS8qIFRoZSB4 SEMgbWF5IHRoaW5rIHRoZSBkZXZpY2UgaXMgYWxyZWFkeSByZXNldCwKLQkJCSAqIHNvIGln bm9yZSB0aGUgc3RhdHVzLgotCQkJICovCi0JCQlpZiAoaGNkLT5kcml2ZXItPnJlc2V0X2Rl dmljZSkKLQkJCQloY2QtPmRyaXZlci0+cmVzZXRfZGV2aWNlKGhjZCwgdWRldik7Ci0JCX0K LQkJLyogRkFMTCBUSFJPVUdIICovCi0JY2FzZSAtRU5PVENPTk46Ci0JY2FzZSAtRU5PREVW OgotCQljbGVhcl9wb3J0X2ZlYXR1cmUoaHViLT5oZGV2LAotCQkJCXBvcnQxLCBVU0JfUE9S VF9GRUFUX0NfUkVTRVQpOwotCQlpZiAoaHViX2lzX3N1cGVyc3BlZWQoaHViLT5oZGV2KSkg ewotCQkJY2xlYXJfcG9ydF9mZWF0dXJlKGh1Yi0+aGRldiwgcG9ydDEsCi0JCQkJCVVTQl9Q T1JUX0ZFQVRfQ19CSF9QT1JUX1JFU0VUKTsKLQkJCWNsZWFyX3BvcnRfZmVhdHVyZShodWIt PmhkZXYsIHBvcnQxLAotCQkJCQlVU0JfUE9SVF9GRUFUX0NfUE9SVF9MSU5LX1NUQVRFKTsK LQkJCWNsZWFyX3BvcnRfZmVhdHVyZShodWItPmhkZXYsIHBvcnQxLAotCQkJCQlVU0JfUE9S VF9GRUFUX0NfQ09OTkVDVElPTik7Ci0JCX0KLQkJaWYgKHVkZXYpCi0JCQl1c2Jfc2V0X2Rl dmljZV9zdGF0ZSh1ZGV2LCAqc3RhdHVzCi0JCQkJCT8gVVNCX1NUQVRFX05PVEFUVEFDSEVE Ci0JCQkJCTogVVNCX1NUQVRFX0RFRkFVTFQpOwotCQlicmVhazsKLQl9Ci19Ci0KIC8qIEhh bmRsZSBwb3J0IHJlc2V0IGFuZCBwb3J0IHdhcm0oQkgpIHJlc2V0IChmb3IgVVNCMyBwcm90 b2NvbCBwb3J0cykgKi8KIHN0YXRpYyBpbnQgaHViX3BvcnRfcmVzZXQoc3RydWN0IHVzYl9o dWIgKmh1YiwgaW50IHBvcnQxLAogCQkJc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYsIHVuc2ln bmVkIGludCBkZWxheSwgYm9vbCB3YXJtKQpAQCAtMjMxOCwxMyArMjI3Nyw5IEBAIHN0YXRp YyBpbnQgaHViX3BvcnRfcmVzZXQoc3RydWN0IHVzYl9odWIgKmh1YiwgaW50IHBvcnQxLAog CQkgKiBJZiB0aGUgY2FsbGVyIGhhc24ndCBleHBsaWNpdGx5IHJlcXVlc3RlZCBhIHdhcm0g cmVzZXQsCiAJCSAqIGRvdWJsZSBjaGVjayBhbmQgc2VlIGlmIG9uZSBpcyBuZWVkZWQuCiAJ CSAqLwotCQlzdGF0dXMgPSBodWJfcG9ydF9zdGF0dXMoaHViLCBwb3J0MSwKLQkJCQkJJnBv cnRzdGF0dXMsICZwb3J0Y2hhbmdlKTsKLQkJaWYgKHN0YXR1cyA8IDApCi0JCQlnb3RvIGRv bmU7Ci0KLQkJaWYgKGh1Yl9wb3J0X3dhcm1fcmVzZXRfcmVxdWlyZWQoaHViLCBwb3J0c3Rh dHVzKSkKLQkJCXdhcm0gPSB0cnVlOworCQlpZiAoaHViX3BvcnRfc3RhdHVzKGh1YiwgcG9y dDEsICZwb3J0c3RhdHVzLCAmcG9ydGNoYW5nZSkgPT0gMCkKKwkJCWlmIChodWJfcG9ydF93 YXJtX3Jlc2V0X3JlcXVpcmVkKGh1YiwgcG9ydHN0YXR1cykpCisJCQkJd2FybSA9IHRydWU7 CiAJfQogCiAJLyogUmVzZXQgdGhlIHBvcnQgKi8KQEAgLTIzNDcsMTEgKzIzMDIsMTkgQEAg c3RhdGljIGludCBodWJfcG9ydF9yZXNldChzdHJ1Y3QgdXNiX2h1YiAqaHViLCBpbnQgcG9y dDEsCiAKIAkJLyogQ2hlY2sgZm9yIGRpc2Nvbm5lY3Qgb3IgcmVzZXQgKi8KIAkJaWYgKHN0 YXR1cyA9PSAwIHx8IHN0YXR1cyA9PSAtRU5PVENPTk4gfHwgc3RhdHVzID09IC1FTk9ERVYp IHsKLQkJCWh1Yl9wb3J0X2ZpbmlzaF9yZXNldChodWIsIHBvcnQxLCB1ZGV2LCAmc3RhdHVz KTsKKwkJCWNsZWFyX3BvcnRfZmVhdHVyZShodWItPmhkZXYsIHBvcnQxLAorCQkJCQlVU0Jf UE9SVF9GRUFUX0NfUkVTRVQpOwogCiAJCQlpZiAoIWh1Yl9pc19zdXBlcnNwZWVkKGh1Yi0+ aGRldikpCiAJCQkJZ290byBkb25lOwogCisJCQljbGVhcl9wb3J0X2ZlYXR1cmUoaHViLT5o ZGV2LCBwb3J0MSwKKwkJCQkJVVNCX1BPUlRfRkVBVF9DX0JIX1BPUlRfUkVTRVQpOworCQkJ Y2xlYXJfcG9ydF9mZWF0dXJlKGh1Yi0+aGRldiwgcG9ydDEsCisJCQkJCVVTQl9QT1JUX0ZF QVRfQ19QT1JUX0xJTktfU1RBVEUpOworCQkJY2xlYXJfcG9ydF9mZWF0dXJlKGh1Yi0+aGRl diwgcG9ydDEsCisJCQkJCVVTQl9QT1JUX0ZFQVRfQ19DT05ORUNUSU9OKTsKKwogCQkJLyoK IAkJCSAqIElmIGEgVVNCIDMuMCBkZXZpY2UgbWlncmF0ZXMgZnJvbSByZXNldCB0byBhbiBl cnJvcgogCQkJICogc3RhdGUsIHJlLWlzc3VlIHRoZSB3YXJtIHJlc2V0LgpAQCAtMjM4NSw2 ICsyMzQ4LDI2IEBAIHN0YXRpYyBpbnQgaHViX3BvcnRfcmVzZXQoc3RydWN0IHVzYl9odWIg Kmh1YiwgaW50IHBvcnQxLAogCQlwb3J0MSk7CiAKIGRvbmU6CisJaWYgKHN0YXR1cyA9PSAw KSB7CisJCS8qIFRSU1RSQ1kgPSAxMCBtczsgcGx1cyBzb21lIGV4dHJhICovCisJCW1zbGVl cCgxMCArIDQwKTsKKwkJaWYgKHVkZXYpIHsKKwkJCXN0cnVjdCB1c2JfaGNkICpoY2QgPSBi dXNfdG9faGNkKHVkZXYtPmJ1cyk7CisKKwkJCXVwZGF0ZV9kZXZudW0odWRldiwgMCk7CisJ CQkvKiBUaGUgeEhDIG1heSB0aGluayB0aGUgZGV2aWNlIGlzIGFscmVhZHkgcmVzZXQsCisJ CQkgKiBzbyBpZ25vcmUgdGhlIHN0YXR1cy4KKwkJCSAqLworCQkJaWYgKGhjZC0+ZHJpdmVy LT5yZXNldF9kZXZpY2UpCisJCQkJaGNkLT5kcml2ZXItPnJlc2V0X2RldmljZShoY2QsIHVk ZXYpOworCisJCQl1c2Jfc2V0X2RldmljZV9zdGF0ZSh1ZGV2LCBVU0JfU1RBVEVfREVGQVVM VCk7CisJCX0KKwl9IGVsc2UgeworCQlpZiAodWRldikKKwkJCXVzYl9zZXRfZGV2aWNlX3N0 YXRlKHVkZXYsIFVTQl9TVEFURV9OT1RBVFRBQ0hFRCk7CisJfQorCiAJaWYgKCFodWJfaXNf c3VwZXJzcGVlZChodWItPmhkZXYpKQogCQl1cF9yZWFkKCZlaGNpX2NmX3BvcnRfcmVzZXRf cndzZW0pOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9kd2MzL2VwMC5jIGIvZHJpdmVy cy91c2IvZHdjMy9lcDAuYwppbmRleCA4YTdhOGVlLi5hODcxNGZkIDEwMDY0NAotLS0gYS9k cml2ZXJzL3VzYi9kd2MzL2VwMC5jCisrKyBiL2RyaXZlcnMvdXNiL2R3YzMvZXAwLmMKQEAg LTY0NCw2ICs2NDQsMTAgQEAgc3RhdGljIHZvaWQgZHdjM19lcDBfeGZlcl9jb21wbGV0ZShz dHJ1Y3QgZHdjMyAqZHdjLAogCQlkZXZfdmRiZyhkd2MtPmRldiwgIlN0YXR1cyBQaGFzZVxu Iik7CiAJCWR3YzNfZXAwX2NvbXBsZXRlX3JlcShkd2MsIGV2ZW50KTsKIAkJYnJlYWs7CisJ Y2FzZSBVU0JfUkVRX1NFVF9JTlRFUkZBQ0U6CisJCWRldl92ZGJnKGR3Yy0+ZGV2LCAiVVNC X1JFUV9TRVRfSU5URVJGQUNFXG4iKTsKKwkJZHdjLT5zdGFydF9jb25maWdfaXNzdWVkID0g ZmFsc2U7CisJCS8qIEZhbGwgdGhyb3VnaCAqLwogCWRlZmF1bHQ6CiAJCVdBUk4odHJ1ZSwg IlVOS05PV04gZXAwc3RhdGUgJWRcbiIsIGR3Yy0+ZXAwc3RhdGUpOwogCX0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvdXNiL2R3YzMvZ2FkZ2V0LmMgYi9kcml2ZXJzL3VzYi9kd2MzL2dhZGdl dC5jCmluZGV4IGI3Zjg5MjYuLmI0M2M2ZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2R3 YzMvZ2FkZ2V0LmMKKysrIGIvZHJpdmVycy91c2IvZHdjMy9nYWRnZXQuYwpAQCAtMzAxLDYg KzMwMSw4IEBAIGludCBkd2MzX3NlbmRfZ2FkZ2V0X2VwX2NtZChzdHJ1Y3QgZHdjMyAqZHdj LCB1bnNpZ25lZCBlcCwKIAkJaWYgKCEocmVnICYgRFdDM19ERVBDTURfQ01EQUNUKSkgewog CQkJZGV2X3ZkYmcoZHdjLT5kZXYsICJDb21tYW5kIENvbXBsZXRlIC0tPiAlZFxuIiwKIAkJ CQkJRFdDM19ERVBDTURfU1RBVFVTKHJlZykpOworCQkJaWYgKERXQzNfREVQQ01EX1NUQVRV UyhyZWcpKQorCQkJCXJldHVybiAtRUlOVkFMOwogCQkJcmV0dXJuIDA7CiAJCX0KIApkaWZm IC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9vbWFwX3dkdC5jIGIvZHJpdmVycy93YXRjaGRv Zy9vbWFwX3dkdC5jCmluZGV4IDgyODVkNjUuLmMwODBiZTUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvd2F0Y2hkb2cvb21hcF93ZHQuYworKysgYi9kcml2ZXJzL3dhdGNoZG9nL29tYXBfd2R0 LmMKQEAgLTE1Miw2ICsxNTIsMTMgQEAgc3RhdGljIGludCBvbWFwX3dkdF9vcGVuKHN0cnVj dCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogCiAJcG1fcnVudGltZV9nZXRf c3luYyh3ZGV2LT5kZXYpOwogCisJLyoKKwkgKiBNYWtlIHN1cmUgdGhlIHdhdGNoZG9nIGlz IGRpc2FibGVkLiBUaGlzIGlzIHVuZm9ydHVuYXRlbHkgcmVxdWlyZWQKKwkgKiBiZWNhdXNl IHdyaXRpbmcgdG8gdmFyaW91cyByZWdpc3RlcnMgd2l0aCB0aGUgd2F0Y2hkb2cgcnVubmlu ZyBoYXMgbm8KKwkgKiBlZmZlY3QuCisJICovCisJb21hcF93ZHRfZGlzYWJsZSh3ZGV2KTsK KwogCS8qIGluaXRpYWxpemUgcHJlc2NhbGVyICovCiAJd2hpbGUgKF9fcmF3X3JlYWRsKGJh c2UgKyBPTUFQX1dBVENIRE9HX1dQUykgJiAweDAxKQogCQljcHVfcmVsYXgoKTsKZGlmZiAt LWdpdCBhL2ZzL2RjYWNoZS5jIGIvZnMvZGNhY2hlLmMKaW5kZXggZDA3MWVhNy4uMDNlYjJj MiAxMDA2NDQKLS0tIGEvZnMvZGNhY2hlLmMKKysrIGIvZnMvZGNhY2hlLmMKQEAgLTI1MTgs NiArMjUxOCw4IEBAIHN0YXRpYyBpbnQgcHJlcGVuZF9wYXRoKGNvbnN0IHN0cnVjdCBwYXRo ICpwYXRoLAogCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IHBhdGgtPmRlbnRyeTsKIAlzdHJ1 Y3QgdmZzbW91bnQgKnZmc21udCA9IHBhdGgtPm1udDsKIAlzdHJ1Y3QgbW91bnQgKm1udCA9 IHJlYWxfbW91bnQodmZzbW50KTsKKwljaGFyICpvcmlnX2J1ZmZlciA9ICpidWZmZXI7CisJ aW50IG9yaWdfbGVuID0gKmJ1ZmxlbjsKIAlib29sIHNsYXNoID0gZmFsc2U7CiAJaW50IGVy cm9yID0gMDsKIApAQCAtMjUyNSw2ICsyNTI3LDE0IEBAIHN0YXRpYyBpbnQgcHJlcGVuZF9w YXRoKGNvbnN0IHN0cnVjdCBwYXRoICpwYXRoLAogCQlzdHJ1Y3QgZGVudHJ5ICogcGFyZW50 OwogCiAJCWlmIChkZW50cnkgPT0gdmZzbW50LT5tbnRfcm9vdCB8fCBJU19ST09UKGRlbnRy eSkpIHsKKwkJCS8qIEVzY2FwZWQ/ICovCisJCQlpZiAoZGVudHJ5ICE9IHZmc21udC0+bW50 X3Jvb3QpIHsKKwkJCQkqYnVmZmVyID0gb3JpZ19idWZmZXI7CisJCQkJKmJ1ZmxlbiA9IG9y aWdfbGVuOworCQkJCXNsYXNoID0gZmFsc2U7CisJCQkJZXJyb3IgPSAzOworCQkJCWdvdG8g Z2xvYmFsX3Jvb3Q7CisJCQl9CiAJCQkvKiBHbG9iYWwgcm9vdD8gKi8KIAkJCWlmICghbW50 X2hhc19wYXJlbnQobW50KSkKIAkJCQlnb3RvIGdsb2JhbF9yb290OwpkaWZmIC0tZ2l0IGEv ZnMvZXh0NC9pbmRpcmVjdC5jIGIvZnMvZXh0NC9pbmRpcmVjdC5jCmluZGV4IDZkYzYxNTMu LmY4MTk4MzcgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvaW5kaXJlY3QuYworKysgYi9mcy9leHQ0 L2luZGlyZWN0LmMKQEAgLTcwNSw3ICs3MDUsNyBAQCBpbnQgZXh0NF9pbmRfbWFwX2Jsb2Nr cyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJCSAgICAgICBF WFQ0X0ZFQVRVUkVfUk9fQ09NUEFUX0JJR0FMTE9DKSkgewogCQlFWFQ0X0VSUk9SX0lOT0RF KGlub2RlLCAiQ2FuJ3QgYWxsb2NhdGUgYmxvY2tzIGZvciAiCiAJCQkJICJub24tZXh0ZW50 IG1hcHBlZCBpbm9kZXMgd2l0aCBiaWdhbGxvYyIpOwotCQlyZXR1cm4gLUVOT1NQQzsKKwkJ cmV0dXJuIC1FVUNMRUFOOwogCX0KIAogCWdvYWwgPSBleHQ0X2ZpbmRfZ29hbChpbm9kZSwg bWFwLT5tX2xibGssIHBhcnRpYWwpOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbm9kZS5jIGIv ZnMvZXh0NC9pbm9kZS5jCmluZGV4IDllOWRiNDIuLmZhY2YxY2YgMTAwNjQ0Ci0tLSBhL2Zz L2V4dDQvaW5vZGUuYworKysgYi9mcy9leHQ0L2lub2RlLmMKQEAgLTE4NDgsMTggKzE4NDgs MzIgQEAgc3RhdGljIGludCBfX2V4dDRfam91cm5hbGxlZF93cml0ZXBhZ2Uoc3RydWN0IHBh Z2UgKnBhZ2UsCiAJcGFnZV9idWZzID0gcGFnZV9idWZmZXJzKHBhZ2UpOwogCUJVR19PTigh cGFnZV9idWZzKTsKIAl3YWxrX3BhZ2VfYnVmZmVycyhoYW5kbGUsIHBhZ2VfYnVmcywgMCwg bGVuLCBOVUxMLCBiZ2V0X29uZSk7Ci0JLyogQXMgc29vbiBhcyB3ZSB1bmxvY2sgdGhlIHBh Z2UsIGl0IGNhbiBnbyBhd2F5LCBidXQgd2UgaGF2ZQotCSAqIHJlZmVyZW5jZXMgdG8gYnVm ZmVycyBzbyB3ZSBhcmUgc2FmZSAqLworCS8qCisJICogV2UgbmVlZCB0byByZWxlYXNlIHRo ZSBwYWdlIGxvY2sgYmVmb3JlIHdlIHN0YXJ0IHRoZQorCSAqIGpvdXJuYWwsIHNvIGdyYWIg YSByZWZlcmVuY2Ugc28gdGhlIHBhZ2Ugd29uJ3QgZGlzYXBwZWFyCisJICogb3V0IGZyb20g dW5kZXIgdXMuCisJICovCisJZ2V0X3BhZ2UocGFnZSk7CiAJdW5sb2NrX3BhZ2UocGFnZSk7 CiAKIAloYW5kbGUgPSBleHQ0X2pvdXJuYWxfc3RhcnQoaW5vZGUsIGV4dDRfd3JpdGVwYWdl X3RyYW5zX2Jsb2Nrcyhpbm9kZSkpOwogCWlmIChJU19FUlIoaGFuZGxlKSkgewogCQlyZXQg PSBQVFJfRVJSKGhhbmRsZSk7Ci0JCWdvdG8gb3V0OworCQlwdXRfcGFnZShwYWdlKTsKKwkJ Z290byBvdXRfbm9fcGFnZWxvY2s7CiAJfQogCiAJQlVHX09OKCFleHQ0X2hhbmRsZV92YWxp ZChoYW5kbGUpKTsKIAorCWxvY2tfcGFnZShwYWdlKTsKKwlwdXRfcGFnZShwYWdlKTsKKwlp ZiAocGFnZS0+bWFwcGluZyAhPSBtYXBwaW5nKSB7CisJCS8qIFRoZSBwYWdlIGdvdCB0cnVu Y2F0ZWQgZnJvbSB1bmRlciB1cyAqLworCQlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwor CQlyZXQgPSAwOworCQlnb3RvIG91dDsKKwl9CisKIAlyZXQgPSB3YWxrX3BhZ2VfYnVmZmVy cyhoYW5kbGUsIHBhZ2VfYnVmcywgMCwgbGVuLCBOVUxMLAogCQkJCWRvX2pvdXJuYWxfZ2V0 X3dyaXRlX2FjY2Vzcyk7CiAKQEAgLTE4NzUsNiArMTg4OSw4IEBAIHN0YXRpYyBpbnQgX19l eHQ0X2pvdXJuYWxsZWRfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLAogCXdhbGtfcGFn ZV9idWZmZXJzKGhhbmRsZSwgcGFnZV9idWZzLCAwLCBsZW4sIE5VTEwsIGJwdXRfb25lKTsK IAlleHQ0X3NldF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9KREFUQSk7CiBvdXQ6 CisJdW5sb2NrX3BhZ2UocGFnZSk7CitvdXRfbm9fcGFnZWxvY2s6CiAJcmV0dXJuIHJldDsK IH0KIApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9zdXBlci5jIGIvZnMvZXh0NC9zdXBlci5jCmlu ZGV4IDkyZWE1NjAuLjJlMjZhNTQgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvc3VwZXIuYworKysg Yi9mcy9leHQ0L3N1cGVyLmMKQEAgLTg4OCw2ICs4ODgsNyBAQCBzdGF0aWMgdm9pZCBleHQ0 X3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCQlkdW1wX29ycGhhbl9saXN0 KHNiLCBzYmkpOwogCUpfQVNTRVJUKGxpc3RfZW1wdHkoJnNiaS0+c19vcnBoYW4pKTsKIAor CXN5bmNfYmxvY2tkZXYoc2ItPnNfYmRldik7CiAJaW52YWxpZGF0ZV9iZGV2KHNiLT5zX2Jk ZXYpOwogCWlmIChzYmktPmpvdXJuYWxfYmRldiAmJiBzYmktPmpvdXJuYWxfYmRldiAhPSBz Yi0+c19iZGV2KSB7CiAJCS8qCmRpZmYgLS1naXQgYS9mcy9mdXNlL2lub2RlLmMgYi9mcy9m dXNlL2lub2RlLmMKaW5kZXggYTVjOGIzNC4uZDhiYzBhOCAxMDA2NDQKLS0tIGEvZnMvZnVz ZS9pbm9kZS5jCisrKyBiL2ZzL2Z1c2UvaW5vZGUuYwpAQCAtOTgxLDYgKzk4MSw3IEBAIHN0 YXRpYyBpbnQgZnVzZV9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQg KmRhdGEsIGludCBzaWxlbnQpCiAJCWdvdG8gZXJyX2ZwdXQ7CiAKIAlmdXNlX2Nvbm5faW5p dChmYyk7CisJZmMtPnJlbGVhc2UgPSBmdXNlX2ZyZWVfY29ubjsKIAogCWZjLT5kZXYgPSBz Yi0+c19kZXY7CiAJZmMtPnNiID0gc2I7CkBAIC05OTUsNyArOTk2LDYgQEAgc3RhdGljIGlu dCBmdXNlX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwg aW50IHNpbGVudCkKIAkJZmMtPmRvbnRfbWFzayA9IDE7CiAJc2ItPnNfZmxhZ3MgfD0gTVNf UE9TSVhBQ0w7CiAKLQlmYy0+cmVsZWFzZSA9IGZ1c2VfZnJlZV9jb25uOwogCWZjLT5mbGFn cyA9IGQuZmxhZ3M7CiAJZmMtPnVzZXJfaWQgPSBkLnVzZXJfaWQ7CiAJZmMtPmdyb3VwX2lk ID0gZC5ncm91cF9pZDsKZGlmZiAtLWdpdCBhL2ZzL2piZDIvY2hlY2twb2ludC5jIGIvZnMv amJkMi9jaGVja3BvaW50LmMKaW5kZXggYzc4ODQxZS4uNGZkNzg1NiAxMDA2NDQKLS0tIGEv ZnMvamJkMi9jaGVja3BvaW50LmMKKysrIGIvZnMvamJkMi9jaGVja3BvaW50LmMKQEAgLTQ0 MCw3ICs0NDAsNyBAQCBpbnQgamJkMl9jbGVhbnVwX2pvdXJuYWxfdGFpbChqb3VybmFsX3Qg KmpvdXJuYWwpCiAJdW5zaWduZWQgbG9uZwlibG9ja25yOwogCiAJaWYgKGlzX2pvdXJuYWxf YWJvcnRlZChqb3VybmFsKSkKLQkJcmV0dXJuIDE7CisJCXJldHVybiAtRUlPOwogCiAJaWYg KCFqYmQyX2pvdXJuYWxfZ2V0X2xvZ190YWlsKGpvdXJuYWwsICZmaXJzdF90aWQsICZibG9j a25yKSkKIAkJcmV0dXJuIDE7CkBAIC00NTUsMTAgKzQ1NSw5IEBAIGludCBqYmQyX2NsZWFu dXBfam91cm5hbF90YWlsKGpvdXJuYWxfdCAqam91cm5hbCkKIAkgKiBqYmQyX2NsZWFudXBf am91cm5hbF90YWlsKCkgZG9lc24ndCBnZXQgY2FsbGVkIGFsbCB0aGF0IG9mdGVuLgogCSAq LwogCWlmIChqb3VybmFsLT5qX2ZsYWdzICYgSkJEMl9CQVJSSUVSKQotCQlibGtkZXZfaXNz dWVfZmx1c2goam91cm5hbC0+al9mc19kZXYsIEdGUF9LRVJORUwsIE5VTEwpOworCQlibGtk ZXZfaXNzdWVfZmx1c2goam91cm5hbC0+al9mc19kZXYsIEdGUF9OT0ZTLCBOVUxMKTsKIAot CV9famJkMl91cGRhdGVfbG9nX3RhaWwoam91cm5hbCwgZmlyc3RfdGlkLCBibG9ja25yKTsK LQlyZXR1cm4gMDsKKwlyZXR1cm4gX19qYmQyX3VwZGF0ZV9sb2dfdGFpbChqb3VybmFsLCBm aXJzdF90aWQsIGJsb2NrbnIpOwogfQogCiAKQEAgLTQ2OCwxNCArNDY3LDE0IEBAIGludCBq YmQyX2NsZWFudXBfam91cm5hbF90YWlsKGpvdXJuYWxfdCAqam91cm5hbCkKICAqIGpvdXJu YWxfY2xlYW5fb25lX2NwX2xpc3QKICAqCiAgKiBGaW5kIGFsbCB0aGUgd3JpdHRlbi1iYWNr IGNoZWNrcG9pbnQgYnVmZmVycyBpbiB0aGUgZ2l2ZW4gbGlzdCBhbmQKLSAqIHJlbGVhc2Ug dGhlbS4KKyAqIHJlbGVhc2UgdGhlbS4gSWYgJ2Rlc3Ryb3knIGlzIHNldCwgY2xlYW4gYWxs IGJ1ZmZlcnMgdW5jb25kaXRpb25hbGx5LgogICoKICAqIENhbGxlZCB3aXRoIHRoZSBqb3Vy bmFsIGxvY2tlZC4KICAqIENhbGxlZCB3aXRoIGpfbGlzdF9sb2NrIGhlbGQuCiAgKiBSZXR1 cm5zIG51bWJlciBvZiBidWZmZXJzIHJlYXBlZCAoZm9yIGRlYnVnKQogICovCiAKLXN0YXRp YyBpbnQgam91cm5hbF9jbGVhbl9vbmVfY3BfbGlzdChzdHJ1Y3Qgam91cm5hbF9oZWFkICpq aCwgaW50ICpyZWxlYXNlZCkKK3N0YXRpYyBpbnQgam91cm5hbF9jbGVhbl9vbmVfY3BfbGlz dChzdHJ1Y3Qgam91cm5hbF9oZWFkICpqaCwgaW50ICpyZWxlYXNlZCwgYm9vbCBkZXN0cm95 KQogewogCXN0cnVjdCBqb3VybmFsX2hlYWQgKmxhc3Rfamg7CiAJc3RydWN0IGpvdXJuYWxf aGVhZCAqbmV4dF9qaCA9IGpoOwpAQCAtNDg5LDcgKzQ4OCwxMCBAQCBzdGF0aWMgaW50IGpv dXJuYWxfY2xlYW5fb25lX2NwX2xpc3Qoc3RydWN0IGpvdXJuYWxfaGVhZCAqamgsIGludCAq cmVsZWFzZWQpCiAJZG8gewogCQlqaCA9IG5leHRfamg7CiAJCW5leHRfamggPSBqaC0+Yl9j cG5leHQ7Ci0JCXJldCA9IF9fdHJ5X3RvX2ZyZWVfY3BfYnVmKGpoKTsKKwkJaWYgKCFkZXN0 cm95KQorCQkJcmV0ID0gX190cnlfdG9fZnJlZV9jcF9idWYoamgpOworCQllbHNlCisJCQly ZXQgPSBfX2piZDJfam91cm5hbF9yZW1vdmVfY2hlY2twb2ludChqaCkgKyAxOwogCQlpZiAo cmV0KSB7CiAJCQlmcmVlZCsrOwogCQkJaWYgKHJldCA9PSAyKSB7CkBAIC01MTUsMTIgKzUx NywxNCBAQCBzdGF0aWMgaW50IGpvdXJuYWxfY2xlYW5fb25lX2NwX2xpc3Qoc3RydWN0IGpv dXJuYWxfaGVhZCAqamgsIGludCAqcmVsZWFzZWQpCiAgKgogICogRmluZCBhbGwgdGhlIHdy aXR0ZW4tYmFjayBjaGVja3BvaW50IGJ1ZmZlcnMgaW4gdGhlIGpvdXJuYWwgYW5kIHJlbGVh c2UgdGhlbS4KICAqCisgKiBJZiAnZGVzdHJveScgaXMgc2V0LCByZWxlYXNlIGFsbCBidWZm ZXJzIHVuY29uZGl0aW9uYWxseS4KKyAqCiAgKiBDYWxsZWQgd2l0aCB0aGUgam91cm5hbCBs b2NrZWQuCiAgKiBDYWxsZWQgd2l0aCBqX2xpc3RfbG9jayBoZWxkLgogICogUmV0dXJucyBu dW1iZXIgb2YgYnVmZmVycyByZWFwZWQgKGZvciBkZWJ1ZykKICAqLwogCi1pbnQgX19qYmQy X2pvdXJuYWxfY2xlYW5fY2hlY2twb2ludF9saXN0KGpvdXJuYWxfdCAqam91cm5hbCkKK2lu dCBfX2piZDJfam91cm5hbF9jbGVhbl9jaGVja3BvaW50X2xpc3Qoam91cm5hbF90ICpqb3Vy bmFsLCBib29sIGRlc3Ryb3kpCiB7CiAJdHJhbnNhY3Rpb25fdCAqdHJhbnNhY3Rpb24sICps YXN0X3RyYW5zYWN0aW9uLCAqbmV4dF90cmFuc2FjdGlvbjsKIAlpbnQgcmV0ID0gMDsKQEAg LTUzNiw3ICs1NDAsNyBAQCBpbnQgX19qYmQyX2pvdXJuYWxfY2xlYW5fY2hlY2twb2ludF9s aXN0KGpvdXJuYWxfdCAqam91cm5hbCkKIAkJdHJhbnNhY3Rpb24gPSBuZXh0X3RyYW5zYWN0 aW9uOwogCQluZXh0X3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb24tPnRfY3BuZXh0OwogCQly ZXQgKz0gam91cm5hbF9jbGVhbl9vbmVfY3BfbGlzdCh0cmFuc2FjdGlvbi0+Ci0JCQkJdF9j aGVja3BvaW50X2xpc3QsICZyZWxlYXNlZCk7CisJCQkJdF9jaGVja3BvaW50X2xpc3QsICZy ZWxlYXNlZCwgZGVzdHJveSk7CiAJCS8qCiAJCSAqIFRoaXMgZnVuY3Rpb24gb25seSBmcmVl cyB1cCBzb21lIG1lbW9yeSBpZiBwb3NzaWJsZSBzbyB3ZQogCQkgKiBkb250IGhhdmUgYW4g b2JsaWdhdGlvbiB0byBmaW5pc2ggcHJvY2Vzc2luZy4gQmFpbCBvdXQgaWYKQEAgLTU1Miw3 ICs1NTYsNyBAQCBpbnQgX19qYmQyX2pvdXJuYWxfY2xlYW5fY2hlY2twb2ludF9saXN0KGpv dXJuYWxfdCAqam91cm5hbCkKIAkJICogd2UgY2FuIHBvc3NpYmx5IHNlZSBub3QgeWV0IHN1 Ym1pdHRlZCBidWZmZXJzIG9uIGlvX2xpc3QKIAkJICovCiAJCXJldCArPSBqb3VybmFsX2Ns ZWFuX29uZV9jcF9saXN0KHRyYW5zYWN0aW9uLT4KLQkJCQl0X2NoZWNrcG9pbnRfaW9fbGlz dCwgJnJlbGVhc2VkKTsKKwkJCQl0X2NoZWNrcG9pbnRfaW9fbGlzdCwgJnJlbGVhc2VkLCBk ZXN0cm95KTsKIAkJaWYgKG5lZWRfcmVzY2hlZCgpKQogCQkJZ290byBvdXQ7CiAJfSB3aGls ZSAodHJhbnNhY3Rpb24gIT0gbGFzdF90cmFuc2FjdGlvbik7CkBAIC01NjEsNiArNTY1LDI4 IEBAIG91dDoKIH0KIAogLyoKKyAqIFJlbW92ZSBidWZmZXJzIGZyb20gYWxsIGNoZWNrcG9p bnQgbGlzdHMgYXMgam91cm5hbCBpcyBhYm9ydGVkIGFuZCB3ZSBqdXN0CisgKiBuZWVkIHRv IGZyZWUgbWVtb3J5CisgKi8KK3ZvaWQgamJkMl9qb3VybmFsX2Rlc3Ryb3lfY2hlY2twb2lu dChqb3VybmFsX3QgKmpvdXJuYWwpCit7CisJLyoKKwkgKiBXZSBsb29wIGJlY2F1c2UgX19q YmQyX2pvdXJuYWxfY2xlYW5fY2hlY2twb2ludF9saXN0KCkgbWF5IGFib3J0CisJICogZWFy bHkgZHVlIHRvIGEgbmVlZCBvZiByZXNjaGVkdWxpbmcuCisJICovCisJd2hpbGUgKDEpIHsK KwkJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CisJCWlmICgham91cm5hbC0+ al9jaGVja3BvaW50X3RyYW5zYWN0aW9ucykgeworCQkJc3Bpbl91bmxvY2soJmpvdXJuYWwt PmpfbGlzdF9sb2NrKTsKKwkJCWJyZWFrOworCQl9CisJCV9famJkMl9qb3VybmFsX2NsZWFu X2NoZWNrcG9pbnRfbGlzdChqb3VybmFsLCB0cnVlKTsKKwkJc3Bpbl91bmxvY2soJmpvdXJu YWwtPmpfbGlzdF9sb2NrKTsKKwkJY29uZF9yZXNjaGVkKCk7CisJfQorfQorCisvKgogICog am91cm5hbF9yZW1vdmVfY2hlY2twb2ludDogY2FsbGVkIGFmdGVyIGEgYnVmZmVyIGhhcyBi ZWVuIGNvbW1pdHRlZAogICogdG8gZGlzayAoZWl0aGVyIGJ5IGJlaW5nIHdyaXRlLWJhY2sg Zmx1c2hlZCB0byBkaXNrLCBvciBiZWluZwogICogY29tbWl0dGVkIHRvIHRoZSBsb2cpLgpk aWZmIC0tZ2l0IGEvZnMvamJkMi9jb21taXQuYyBiL2ZzL2piZDIvY29tbWl0LmMKaW5kZXgg YTBkY2JkNjIuLjI1OWYyOGQgMTAwNjQ0Ci0tLSBhL2ZzL2piZDIvY29tbWl0LmMKKysrIGIv ZnMvamJkMi9jb21taXQuYwpAQCAtNDM4LDcgKzQzOCw3IEBAIHZvaWQgamJkMl9qb3VybmFs X2NvbW1pdF90cmFuc2FjdGlvbihqb3VybmFsX3QgKmpvdXJuYWwpCiAJICogZnJlZXMgc29t ZSBtZW1vcnkKIAkgKi8KIAlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQlf X2piZDJfam91cm5hbF9jbGVhbl9jaGVja3BvaW50X2xpc3Qoam91cm5hbCk7CisJX19qYmQy X2pvdXJuYWxfY2xlYW5fY2hlY2twb2ludF9saXN0KGpvdXJuYWwsIGZhbHNlKTsKIAlzcGlu X3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwogCiAJamJkX2RlYnVnKDMsICJKQkQy OiBjb21taXQgcGhhc2UgMVxuIik7CmRpZmYgLS1naXQgYS9mcy9qYmQyL2pvdXJuYWwuYyBi L2ZzL2piZDIvam91cm5hbC5jCmluZGV4IGY2OTc0NjguLmEzMjc5NDQgMTAwNjQ0Ci0tLSBh L2ZzL2piZDIvam91cm5hbC5jCisrKyBiL2ZzL2piZDIvam91cm5hbC5jCkBAIC04MjMsOSAr ODIzLDEwIEBAIGludCBqYmQyX2pvdXJuYWxfZ2V0X2xvZ190YWlsKGpvdXJuYWxfdCAqam91 cm5hbCwgdGlkX3QgKnRpZCwKICAqCiAgKiBSZXF1aXJlcyBqX2NoZWNrcG9pbnRfbXV0ZXgK ICAqLwotdm9pZCBfX2piZDJfdXBkYXRlX2xvZ190YWlsKGpvdXJuYWxfdCAqam91cm5hbCwg dGlkX3QgdGlkLCB1bnNpZ25lZCBsb25nIGJsb2NrKQoraW50IF9famJkMl91cGRhdGVfbG9n X3RhaWwoam91cm5hbF90ICpqb3VybmFsLCB0aWRfdCB0aWQsIHVuc2lnbmVkIGxvbmcgYmxv Y2spCiB7CiAJdW5zaWduZWQgbG9uZyBmcmVlZDsKKwlpbnQgcmV0OwogCiAJQlVHX09OKCFt dXRleF9pc19sb2NrZWQoJmpvdXJuYWwtPmpfY2hlY2twb2ludF9tdXRleCkpOwogCkBAIC04 MzUsNyArODM2LDEwIEBAIHZvaWQgX19qYmQyX3VwZGF0ZV9sb2dfdGFpbChqb3VybmFsX3Qg KmpvdXJuYWwsIHRpZF90IHRpZCwgdW5zaWduZWQgbG9uZyBibG9jaykKIAkgKiBzcGFjZSBh bmQgaWYgd2UgbG9zZSBzYiB1cGRhdGUgZHVyaW5nIHBvd2VyIGZhaWx1cmUgd2UnZCByZXBs YXkKIAkgKiBvbGQgdHJhbnNhY3Rpb24gd2l0aCBwb3NzaWJseSBuZXdseSBvdmVyd3JpdHRl biBkYXRhLgogCSAqLwotCWpiZDJfam91cm5hbF91cGRhdGVfc2JfbG9nX3RhaWwoam91cm5h bCwgdGlkLCBibG9jaywgV1JJVEVfRlVBKTsKKwlyZXQgPSBqYmQyX2pvdXJuYWxfdXBkYXRl X3NiX2xvZ190YWlsKGpvdXJuYWwsIHRpZCwgYmxvY2ssIFdSSVRFX0ZVQSk7CisJaWYgKHJl dCkKKwkJZ290byBvdXQ7CisKIAl3cml0ZV9sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2sp OwogCWZyZWVkID0gYmxvY2sgLSBqb3VybmFsLT5qX3RhaWw7CiAJaWYgKGJsb2NrIDwgam91 cm5hbC0+al90YWlsKQpAQCAtODUxLDYgKzg1NSw5IEBAIHZvaWQgX19qYmQyX3VwZGF0ZV9s b2dfdGFpbChqb3VybmFsX3QgKmpvdXJuYWwsIHRpZF90IHRpZCwgdW5zaWduZWQgbG9uZyBi bG9jaykKIAlqb3VybmFsLT5qX3RhaWxfc2VxdWVuY2UgPSB0aWQ7CiAJam91cm5hbC0+al90 YWlsID0gYmxvY2s7CiAJd3JpdGVfdW5sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2spOwor CitvdXQ6CisJcmV0dXJuIHJldDsKIH0KIAogLyoKQEAgLTEyNjQsNyArMTI3MSw3IEBAIHN0 YXRpYyBpbnQgam91cm5hbF9yZXNldChqb3VybmFsX3QgKmpvdXJuYWwpCiAJcmV0dXJuIGpi ZDJfam91cm5hbF9zdGFydF90aHJlYWQoam91cm5hbCk7CiB9CiAKLXN0YXRpYyB2b2lkIGpi ZDJfd3JpdGVfc3VwZXJibG9jayhqb3VybmFsX3QgKmpvdXJuYWwsIGludCB3cml0ZV9vcCkK K3N0YXRpYyBpbnQgamJkMl93cml0ZV9zdXBlcmJsb2NrKGpvdXJuYWxfdCAqam91cm5hbCwg aW50IHdyaXRlX29wKQogewogCXN0cnVjdCBidWZmZXJfaGVhZCAqYmggPSBqb3VybmFsLT5q X3NiX2J1ZmZlcjsKIAlpbnQgcmV0OwpAQCAtMTMwMSw3ICsxMzA4LDEwIEBAIHN0YXRpYyB2 b2lkIGpiZDJfd3JpdGVfc3VwZXJibG9jayhqb3VybmFsX3QgKmpvdXJuYWwsIGludCB3cml0 ZV9vcCkKIAkJcHJpbnRrKEtFUk5fRVJSICJKQkQyOiBFcnJvciAlZCBkZXRlY3RlZCB3aGVu IHVwZGF0aW5nICIKIAkJICAgICAgICJqb3VybmFsIHN1cGVyYmxvY2sgZm9yICVzLlxuIiwg cmV0LAogCQkgICAgICAgam91cm5hbC0+al9kZXZuYW1lKTsKKwkJamJkMl9qb3VybmFsX2Fi b3J0KGpvdXJuYWwsIHJldCk7CiAJfQorCisJcmV0dXJuIHJldDsKIH0KIAogLyoqCkBAIC0x MzE0LDEwICsxMzI0LDExIEBAIHN0YXRpYyB2b2lkIGpiZDJfd3JpdGVfc3VwZXJibG9jayhq b3VybmFsX3QgKmpvdXJuYWwsIGludCB3cml0ZV9vcCkKICAqIFVwZGF0ZSBhIGpvdXJuYWwn cyBzdXBlcmJsb2NrIGluZm9ybWF0aW9uIGFib3V0IGxvZyB0YWlsIGFuZCB3cml0ZSBpdCB0 bwogICogZGlzaywgd2FpdGluZyBmb3IgdGhlIElPIHRvIGNvbXBsZXRlLgogICovCi12b2lk IGpiZDJfam91cm5hbF91cGRhdGVfc2JfbG9nX3RhaWwoam91cm5hbF90ICpqb3VybmFsLCB0 aWRfdCB0YWlsX3RpZCwKK2ludCBqYmQyX2pvdXJuYWxfdXBkYXRlX3NiX2xvZ190YWlsKGpv dXJuYWxfdCAqam91cm5hbCwgdGlkX3QgdGFpbF90aWQsCiAJCQkJICAgICB1bnNpZ25lZCBs b25nIHRhaWxfYmxvY2ssIGludCB3cml0ZV9vcCkKIHsKIAlqb3VybmFsX3N1cGVyYmxvY2tf dCAqc2IgPSBqb3VybmFsLT5qX3N1cGVyYmxvY2s7CisJaW50IHJldDsKIAogCUJVR19PTigh bXV0ZXhfaXNfbG9ja2VkKCZqb3VybmFsLT5qX2NoZWNrcG9pbnRfbXV0ZXgpKTsKIAlqYmRf ZGVidWcoMSwgIkpCRDI6IHVwZGF0aW5nIHN1cGVyYmxvY2sgKHN0YXJ0ICVsdSwgc2VxICV1 KVxuIiwKQEAgLTEzMjYsMTMgKzEzMzcsMTggQEAgdm9pZCBqYmQyX2pvdXJuYWxfdXBkYXRl X3NiX2xvZ190YWlsKGpvdXJuYWxfdCAqam91cm5hbCwgdGlkX3QgdGFpbF90aWQsCiAJc2It PnNfc2VxdWVuY2UgPSBjcHVfdG9fYmUzMih0YWlsX3RpZCk7CiAJc2ItPnNfc3RhcnQgICAg PSBjcHVfdG9fYmUzMih0YWlsX2Jsb2NrKTsKIAotCWpiZDJfd3JpdGVfc3VwZXJibG9jayhq b3VybmFsLCB3cml0ZV9vcCk7CisJcmV0ID0gamJkMl93cml0ZV9zdXBlcmJsb2NrKGpvdXJu YWwsIHdyaXRlX29wKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKIAogCS8qIExvZyBpcyBu byBsb25nZXIgZW1wdHkgKi8KIAl3cml0ZV9sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2sp OwogCVdBUk5fT04oIXNiLT5zX3NlcXVlbmNlKTsKIAlqb3VybmFsLT5qX2ZsYWdzICY9IH5K QkQyX0ZMVVNIRUQ7CiAJd3JpdGVfdW5sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2spOwor CitvdXQ6CisJcmV0dXJuIHJldDsKIH0KIAogLyoqCkBAIC0xNTc1LDggKzE1OTEsMTcgQEAg aW50IGpiZDJfam91cm5hbF9kZXN0cm95KGpvdXJuYWxfdCAqam91cm5hbCkKIAl3aGlsZSAo am91cm5hbC0+al9jaGVja3BvaW50X3RyYW5zYWN0aW9ucyAhPSBOVUxMKSB7CiAJCXNwaW5f dW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CiAJCW11dGV4X2xvY2soJmpvdXJuYWwt PmpfY2hlY2twb2ludF9tdXRleCk7Ci0JCWpiZDJfbG9nX2RvX2NoZWNrcG9pbnQoam91cm5h bCk7CisJCWVyciA9IGpiZDJfbG9nX2RvX2NoZWNrcG9pbnQoam91cm5hbCk7CiAJCW11dGV4 X3VubG9jaygmam91cm5hbC0+al9jaGVja3BvaW50X211dGV4KTsKKwkJLyoKKwkJICogSWYg Y2hlY2twb2ludGluZyBmYWlsZWQsIGp1c3QgZnJlZSB0aGUgYnVmZmVycyB0byBhdm9pZAor CQkgKiBsb29waW5nIGZvcmV2ZXIKKwkJICovCisJCWlmIChlcnIpIHsKKwkJCWpiZDJfam91 cm5hbF9kZXN0cm95X2NoZWNrcG9pbnQoam91cm5hbCk7CisJCQlzcGluX2xvY2soJmpvdXJu YWwtPmpfbGlzdF9sb2NrKTsKKwkJCWJyZWFrOworCQl9CiAJCXNwaW5fbG9jaygmam91cm5h bC0+al9saXN0X2xvY2spOwogCX0KIApAQCAtMTc4NSw3ICsxODEwLDE0IEBAIGludCBqYmQy X2pvdXJuYWxfZmx1c2goam91cm5hbF90ICpqb3VybmFsKQogCQlyZXR1cm4gLUVJTzsKIAog CW11dGV4X2xvY2soJmpvdXJuYWwtPmpfY2hlY2twb2ludF9tdXRleCk7Ci0JamJkMl9jbGVh bnVwX2pvdXJuYWxfdGFpbChqb3VybmFsKTsKKwlpZiAoIWVycikgeworCQllcnIgPSBqYmQy X2NsZWFudXBfam91cm5hbF90YWlsKGpvdXJuYWwpOworCQlpZiAoZXJyIDwgMCkgeworCQkJ bXV0ZXhfdW5sb2NrKCZqb3VybmFsLT5qX2NoZWNrcG9pbnRfbXV0ZXgpOworCQkJZ290byBv dXQ7CisJCX0KKwkJZXJyID0gMDsKKwl9CiAKIAkvKiBGaW5hbGx5LCBtYXJrIHRoZSBqb3Vy bmFsIGFzIHJlYWxseSBuZWVkaW5nIG5vIHJlY292ZXJ5LgogCSAqIFRoaXMgc2V0cyBzX3N0 YXJ0PT0wIGluIHRoZSB1bmRlcmx5aW5nIHN1cGVyYmxvY2ssIHdoaWNoIGlzCkBAIC0xODAx LDcgKzE4MzMsOCBAQCBpbnQgamJkMl9qb3VybmFsX2ZsdXNoKGpvdXJuYWxfdCAqam91cm5h bCkKIAlKX0FTU0VSVChqb3VybmFsLT5qX2hlYWQgPT0gam91cm5hbC0+al90YWlsKTsKIAlK X0FTU0VSVChqb3VybmFsLT5qX3RhaWxfc2VxdWVuY2UgPT0gam91cm5hbC0+al90cmFuc2Fj dGlvbl9zZXF1ZW5jZSk7CiAJd3JpdGVfdW5sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2sp OwotCXJldHVybiAwOworb3V0OgorCXJldHVybiBlcnI7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0 IGEvZnMvbmFtZWkuYyBiL2ZzL25hbWVpLmMKaW5kZXggOWM0YjliOC4uNGZjMDM0ZiAxMDA2 NDQKLS0tIGEvZnMvbmFtZWkuYworKysgYi9mcy9uYW1laS5jCkBAIC0zOTcsNiArMzk3LDI0 IEBAIHZvaWQgcGF0aF9wdXQoc3RydWN0IHBhdGggKnBhdGgpCiB9CiBFWFBPUlRfU1lNQk9M KHBhdGhfcHV0KTsKIAorLyoqCisgKiBwYXRoX2Nvbm5lY3RlZCAtIFZlcmlmeSB0aGF0IGEg cGF0aC0+ZGVudHJ5IGlzIGJlbG93IHBhdGgtPm1udC5tbnRfcm9vdAorICogQHBhdGg6IG5h bWVpZGF0ZSB0byB2ZXJpZnkKKyAqCisgKiBSZW5hbWUgY2FuIHNvbWV0aW1lcyBtb3ZlIGEg ZmlsZSBvciBkaXJlY3Rvcnkgb3V0c2lkZSBvZiBhIGJpbmQKKyAqIG1vdW50LCBwYXRoX2Nv bm5lY3RlZCBhbGxvd3MgdGhvc2UgY2FzZXMgdG8gYmUgZGV0ZWN0ZWQuCisgKi8KK3N0YXRp YyBib29sIHBhdGhfY29ubmVjdGVkKGNvbnN0IHN0cnVjdCBwYXRoICpwYXRoKQoreworCXN0 cnVjdCB2ZnNtb3VudCAqbW50ID0gcGF0aC0+bW50OworCisJLyogT25seSBiaW5kIG1vdW50 cyBjYW4gaGF2ZSBkaXNjb25uZWN0ZWQgcGF0aHMgKi8KKwlpZiAobW50LT5tbnRfcm9vdCA9 PSBtbnQtPm1udF9zYi0+c19yb290KQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBpc19z dWJkaXIocGF0aC0+ZGVudHJ5LCBtbnQtPm1udF9yb290KTsKK30KKwogLyoKICAqIFBhdGgg d2Fsa2luZyBoYXMgMiBtb2RlcywgcmN1LXdhbGsgYW5kIHJlZi13YWxrIChzZWUKICAqIERv Y3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcGF0aC1sb29rdXAudHh0KS4gIEluIHNpdHVhdGlv bnMgd2hlbiB3ZSBjYW4ndApAQCAtOTQ1LDYgKzk2Myw4IEBAIHN0YXRpYyBpbnQgZm9sbG93 X2RvdGRvdF9yY3Uoc3RydWN0IG5hbWVpZGF0YSAqbmQpCiAJCQkJZ290byBmYWlsZWQ7CiAJ CQluZC0+cGF0aC5kZW50cnkgPSBwYXJlbnQ7CiAJCQluZC0+c2VxID0gc2VxOworCQkJaWYg KHVubGlrZWx5KCFwYXRoX2Nvbm5lY3RlZCgmbmQtPnBhdGgpKSkKKwkJCQlnb3RvIGZhaWxl ZDsKIAkJCWJyZWFrOwogCQl9CiAJCWlmICghZm9sbG93X3VwX3JjdSgmbmQtPnBhdGgpKQpA QCAtMTAyOSw3ICsxMDQ5LDcgQEAgc3RhdGljIHZvaWQgZm9sbG93X21vdW50KHN0cnVjdCBw YXRoICpwYXRoKQogCX0KIH0KIAotc3RhdGljIHZvaWQgZm9sbG93X2RvdGRvdChzdHJ1Y3Qg bmFtZWlkYXRhICpuZCkKK3N0YXRpYyBpbnQgZm9sbG93X2RvdGRvdChzdHJ1Y3QgbmFtZWlk YXRhICpuZCkKIHsKIAlpZiAoIW5kLT5yb290Lm1udCkKIAkJc2V0X3Jvb3QobmQpOwpAQCAt MTA0NSw2ICsxMDY1LDEwIEBAIHN0YXRpYyB2b2lkIGZvbGxvd19kb3Rkb3Qoc3RydWN0IG5h bWVpZGF0YSAqbmQpCiAJCQkvKiByYXJlIGNhc2Ugb2YgbGVnaXRpbWF0ZSBkZ2V0X3BhcmVu dCgpLi4uICovCiAJCQluZC0+cGF0aC5kZW50cnkgPSBkZ2V0X3BhcmVudChuZC0+cGF0aC5k ZW50cnkpOwogCQkJZHB1dChvbGQpOworCQkJaWYgKHVubGlrZWx5KCFwYXRoX2Nvbm5lY3Rl ZCgmbmQtPnBhdGgpKSkgeworCQkJCXBhdGhfcHV0KCZuZC0+cGF0aCk7CisJCQkJcmV0dXJu IC1FTk9FTlQ7CisJCQl9CiAJCQlicmVhazsKIAkJfQogCQlpZiAoIWZvbGxvd191cCgmbmQt PnBhdGgpKQpAQCAtMTA1Miw2ICsxMDc2LDcgQEAgc3RhdGljIHZvaWQgZm9sbG93X2RvdGRv dChzdHJ1Y3QgbmFtZWlkYXRhICpuZCkKIAl9CiAJZm9sbG93X21vdW50KCZuZC0+cGF0aCk7 CiAJbmQtPmlub2RlID0gbmQtPnBhdGguZGVudHJ5LT5kX2lub2RlOworCXJldHVybiAwOwog fQogCiAvKgpAQCAtMTI1Miw3ICsxMjc3LDcgQEAgc3RhdGljIGlubGluZSBpbnQgaGFuZGxl X2RvdHMoc3RydWN0IG5hbWVpZGF0YSAqbmQsIGludCB0eXBlKQogCQkJaWYgKGZvbGxvd19k b3Rkb3RfcmN1KG5kKSkKIAkJCQlyZXR1cm4gLUVDSElMRDsKIAkJfSBlbHNlCi0JCQlmb2xs b3dfZG90ZG90KG5kKTsKKwkJCXJldHVybiBmb2xsb3dfZG90ZG90KG5kKTsKIAl9CiAJcmV0 dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9mcy9uZnMvbmZzM3hkci5jIGIvZnMvbmZzL25mczN4 ZHIuYwppbmRleCBhNzdjYzlhLi5lNjBiYmUyIDEwMDY0NAotLS0gYS9mcy9uZnMvbmZzM3hk ci5jCisrKyBiL2ZzL25mcy9uZnMzeGRyLmMKQEAgLTEzMzMsNyArMTMzMyw3IEBAIHN0YXRp YyB2b2lkIG5mczNfeGRyX2VuY19zZXRhY2wzYXJncyhzdHJ1Y3QgcnBjX3Jxc3QgKnJlcSwK IAlpZiAoYXJncy0+bnBhZ2VzICE9IDApCiAJCXhkcl93cml0ZV9wYWdlcyh4ZHIsIGFyZ3Mt PnBhZ2VzLCAwLCBhcmdzLT5sZW4pOwogCWVsc2UKLQkJeGRyX3Jlc2VydmVfc3BhY2UoeGRy LCBORlNfQUNMX0lOTElORV9CVUZTSVpFKTsKKwkJeGRyX3Jlc2VydmVfc3BhY2UoeGRyLCBh cmdzLT5sZW4pOwogCiAJZXJyb3IgPSBuZnNhY2xfZW5jb2RlKHhkci0+YnVmLCBiYXNlLCBh cmdzLT5pbm9kZSwKIAkJCSAgICAoYXJncy0+bWFzayAmIE5GU19BQ0wpID8KZGlmZiAtLWdp dCBhL2ZzL25mcy9uZnM0c3RhdGUuYyBiL2ZzL25mcy9uZnM0c3RhdGUuYwppbmRleCBjNDYw MGI1Li4xNjM5YTRjIDEwMDY0NAotLS0gYS9mcy9uZnMvbmZzNHN0YXRlLmMKKysrIGIvZnMv bmZzL25mczRzdGF0ZS5jCkBAIC0xMjc5LDYgKzEyNzksOCBAQCByZXN0YXJ0OgogCQkJCX0K IAkJCQlzcGluX3VubG9jaygmc3RhdGUtPnN0YXRlX2xvY2spOwogCQkJCW5mczRfcHV0X29w ZW5fc3RhdGUoc3RhdGUpOworCQkJCWNsZWFyX2JpdChORlM0Q0xOVF9SRUNMQUlNX05PR1JB Q0UsCisJCQkJCSZzdGF0ZS0+ZmxhZ3MpOwogCQkJCWdvdG8gcmVzdGFydDsKIAkJCX0KIAkJ fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hY3BpL2FjdHlwZXMuaCBiL2luY2x1ZGUvYWNwaS9h Y3R5cGVzLmgKaW5kZXggNmQ1MjQyOS4uMDQ2MDA3MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9h Y3BpL2FjdHlwZXMuaAorKysgYi9pbmNsdWRlL2FjcGkvYWN0eXBlcy5oCkBAIC00OTUsNiAr NDk1LDcgQEAgdHlwZWRlZiB1NjQgYWNwaV9pbnRlZ2VyOwogI2RlZmluZSBBQ1BJX05PX0FD UElfRU5BQkxFICAgICAgICAgICAgIDB4MTAKICNkZWZpbmUgQUNQSV9OT19ERVZJQ0VfSU5J VCAgICAgICAgICAgICAweDIwCiAjZGVmaW5lIEFDUElfTk9fT0JKRUNUX0lOSVQgICAgICAg ICAgICAgMHg0MAorI2RlZmluZSBBQ1BJX05PX0ZBQ1NfSU5JVCAgICAgICAgICAgICAgIDB4 ODAKIAogLyoKICAqIEluaXRpYWxpemF0aW9uIHN0YXRlCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L2piZDIuaCBiL2luY2x1ZGUvbGludXgvamJkMi5oCmluZGV4IDJmZmJmOTkuLjIx NzlkNzggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvamJkMi5oCisrKyBiL2luY2x1ZGUv bGludXgvamJkMi5oCkBAIC05NzQsMTUgKzk3NCwxNiBAQCBleHRlcm4gc3RydWN0IGpvdXJu YWxfaGVhZCAqIGpiZDJfam91cm5hbF9nZXRfZGVzY3JpcHRvcl9idWZmZXIoam91cm5hbF90 ICopOwogaW50IGpiZDJfam91cm5hbF9uZXh0X2xvZ19ibG9jayhqb3VybmFsX3QgKiwgdW5z aWduZWQgbG9uZyBsb25nICopOwogaW50IGpiZDJfam91cm5hbF9nZXRfbG9nX3RhaWwoam91 cm5hbF90ICpqb3VybmFsLCB0aWRfdCAqdGlkLAogCQkJICAgICAgdW5zaWduZWQgbG9uZyAq YmxvY2spOwotdm9pZCBfX2piZDJfdXBkYXRlX2xvZ190YWlsKGpvdXJuYWxfdCAqam91cm5h bCwgdGlkX3QgdGlkLCB1bnNpZ25lZCBsb25nIGJsb2NrKTsKK2ludCBfX2piZDJfdXBkYXRl X2xvZ190YWlsKGpvdXJuYWxfdCAqam91cm5hbCwgdGlkX3QgdGlkLCB1bnNpZ25lZCBsb25n IGJsb2NrKTsKIHZvaWQgamJkMl91cGRhdGVfbG9nX3RhaWwoam91cm5hbF90ICpqb3VybmFs LCB0aWRfdCB0aWQsIHVuc2lnbmVkIGxvbmcgYmxvY2spOwogCiAvKiBDb21taXQgbWFuYWdl bWVudCAqLwogZXh0ZXJuIHZvaWQgamJkMl9qb3VybmFsX2NvbW1pdF90cmFuc2FjdGlvbihq b3VybmFsX3QgKik7CiAKIC8qIENoZWNrcG9pbnQgbGlzdCBtYW5hZ2VtZW50ICovCi1pbnQg X19qYmQyX2pvdXJuYWxfY2xlYW5fY2hlY2twb2ludF9saXN0KGpvdXJuYWxfdCAqam91cm5h bCk7CitpbnQgX19qYmQyX2pvdXJuYWxfY2xlYW5fY2hlY2twb2ludF9saXN0KGpvdXJuYWxf dCAqam91cm5hbCwgYm9vbCBkZXN0cm95KTsKIGludCBfX2piZDJfam91cm5hbF9yZW1vdmVf Y2hlY2twb2ludChzdHJ1Y3Qgam91cm5hbF9oZWFkICopOwordm9pZCBqYmQyX2pvdXJuYWxf ZGVzdHJveV9jaGVja3BvaW50KGpvdXJuYWxfdCAqam91cm5hbCk7CiB2b2lkIF9famJkMl9q b3VybmFsX2luc2VydF9jaGVja3BvaW50KHN0cnVjdCBqb3VybmFsX2hlYWQgKiwgdHJhbnNh Y3Rpb25fdCAqKTsKIAogCkBAIC0xMDkzLDcgKzEwOTQsNyBAQCBleHRlcm4gaW50CSAgIGpi ZDJfam91cm5hbF9yZWNvdmVyICAgIChqb3VybmFsX3QgKmpvdXJuYWwpOwogZXh0ZXJuIGlu dAkgICBqYmQyX2pvdXJuYWxfd2lwZSAgICAgICAoam91cm5hbF90ICosIGludCk7CiBleHRl cm4gaW50CSAgIGpiZDJfam91cm5hbF9za2lwX3JlY292ZXJ5CShqb3VybmFsX3QgKik7CiBl eHRlcm4gdm9pZAkgICBqYmQyX2pvdXJuYWxfdXBkYXRlX3NiX2Vycm5vKGpvdXJuYWxfdCAq KTsKLWV4dGVybiB2b2lkCSAgIGpiZDJfam91cm5hbF91cGRhdGVfc2JfbG9nX3RhaWwJKGpv dXJuYWxfdCAqLCB0aWRfdCwKK2V4dGVybiBpbnQJICAgamJkMl9qb3VybmFsX3VwZGF0ZV9z Yl9sb2dfdGFpbAkoam91cm5hbF90ICosIHRpZF90LAogCQkJCXVuc2lnbmVkIGxvbmcsIGlu dCk7CiBleHRlcm4gdm9pZAkgICBfX2piZDJfam91cm5hbF9hYm9ydF9oYXJkCShqb3VybmFs X3QgKik7CiBleHRlcm4gdm9pZAkgICBqYmQyX2pvdXJuYWxfYWJvcnQgICAgICAoam91cm5h bF90ICosIGludCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25mc194ZHIuaCBiL2lu Y2x1ZGUvbGludXgvbmZzX3hkci5oCmluZGV4IDdiYTM1NTEuLjg0NWI0MDIgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvbmZzX3hkci5oCisrKyBiL2luY2x1ZGUvbGludXgvbmZzX3hk ci5oCkBAIC0xMDYxLDcgKzEwNjEsNyBAQCBzdHJ1Y3QgbmZzdGltZTQgewogfTsKIAogI2lm ZGVmIENPTkZJR19ORlNfVjRfMQotI2RlZmluZSBORlM0X0VYQ0hBTkdFX0lEX0xFTgkoNDgp CisjZGVmaW5lIE5GUzRfRVhDSEFOR0VfSURfTEVOCSgxMjcpCiBzdHJ1Y3QgbmZzNDFfZXhj aGFuZ2VfaWRfYXJncyB7CiAJc3RydWN0IG5mc19jbGllbnQJCSpjbGllbnQ7CiAJbmZzNF92 ZXJpZmllcgkJCSp2ZXJpZmllcjsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3NjdHAvc3Ry dWN0cy5oIGIvaW5jbHVkZS9uZXQvc2N0cC9zdHJ1Y3RzLmgKaW5kZXggODg5NDlhOS4uNGVh MGVjNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2N0cC9zdHJ1Y3RzLmgKKysrIGIvaW5j bHVkZS9uZXQvc2N0cC9zdHJ1Y3RzLmgKQEAgLTIwOSw2ICsyMDksNyBAQCBleHRlcm4gc3Ry dWN0IHNjdHBfZ2xvYmFscyB7CiAJc3RydWN0IGxpc3RfaGVhZCBhZGRyX3dhaXRxOwogCXN0 cnVjdCB0aW1lcl9saXN0IGFkZHJfd3FfdGltZXI7CiAJc3RydWN0IGxpc3RfaGVhZCBhdXRv X2FzY29uZl9zcGxpc3Q7CisJLyogTG9jayB0aGF0IHByb3RlY3RzIGJvdGggYWRkcl93YWl0 cSBhbmQgYXV0b19hc2NvbmZfc3BsaXN0ICovCiAJc3BpbmxvY2tfdCBhZGRyX3dxX2xvY2s7 CiAKIAkvKiBMb2NrIHRoYXQgcHJvdGVjdHMgdGhlIGxvY2FsX2FkZHJfbGlzdCB3cml0ZXJz ICovCkBAIC0zNTUsNiArMzU2LDEwIEBAIHN0cnVjdCBzY3RwX3NvY2sgewogCWF0b21pY190 IHBkX21vZGU7CiAJLyogUmVjZWl2ZSB0byBoZXJlIHdoaWxlIHBhcnRpYWwgZGVsaXZlcnkg aXMgaW4gZWZmZWN0LiAqLwogCXN0cnVjdCBza19idWZmX2hlYWQgcGRfbG9iYnk7CisKKwkv KiBUaGVzZSBtdXN0IGJlIHRoZSBsYXN0IGZpZWxkcywgYXMgdGhleSB3aWxsIHNraXBwZWQg b24gY29waWVzLAorCSAqIGxpa2Ugb24gYWNjZXB0IGFuZCBwZWVsb2ZmIG9wZXJhdGlvbnMK KwkgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGF1dG9fYXNjb25mX2xpc3Q7CiAJaW50IGRvX2F1 dG9fYXNjb25mOwogfTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9ocnRpbWVyLmMgYi9rZXJuZWwv aHJ0aW1lci5jCmluZGV4IDQzNGYyYjYuLjM0MDMxYTAgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9o cnRpbWVyLmMKKysrIGIva2VybmVsL2hydGltZXIuYwpAQCAtODUzLDYgKzg1Myw5IEBAIHU2 NCBocnRpbWVyX2ZvcndhcmQoc3RydWN0IGhydGltZXIgKnRpbWVyLCBrdGltZV90IG5vdywg a3RpbWVfdCBpbnRlcnZhbCkKIAlpZiAoZGVsdGEudHY2NCA8IDApCiAJCXJldHVybiAwOwog CisJaWYgKFdBUk5fT04odGltZXItPnN0YXRlICYgSFJUSU1FUl9TVEFURV9FTlFVRVVFRCkp CisJCXJldHVybiAwOworCiAJaWYgKGludGVydmFsLnR2NjQgPCB0aW1lci0+YmFzZS0+cmVz b2x1dGlvbi50djY0KQogCQlpbnRlcnZhbC50djY0ID0gdGltZXItPmJhc2UtPnJlc29sdXRp b24udHY2NDsKIApAQCAtMTI2NSwxMSArMTI2OCwxNCBAQCBzdGF0aWMgdm9pZCBfX3J1bl9o cnRpbWVyKHN0cnVjdCBocnRpbWVyICp0aW1lciwga3RpbWVfdCAqbm93KQogCSAqIE5vdGU6 IFdlIGNsZWFyIHRoZSBDQUxMQkFDSyBiaXQgYWZ0ZXIgZW5xdWV1ZV9ocnRpbWVyIGFuZAog CSAqIHdlIGRvIG5vdCByZXByb2dyYW1tIHRoZSBldmVudCBoYXJkd2FyZS4gSGFwcGVucyBl aXRoZXIgaW4KIAkgKiBocnRpbWVyX3N0YXJ0X3JhbmdlX25zKCkgb3IgaW4gaHJ0aW1lcl9p bnRlcnJ1cHQoKQorCSAqCisJICogTm90ZTogQmVjYXVzZSB3ZSBkcm9wcGVkIHRoZSBjcHVf YmFzZS0+bG9jayBhYm92ZSwKKwkgKiBocnRpbWVyX3N0YXJ0X3JhbmdlX25zKCkgY2FuIGhh dmUgcG9wcGVkIGluIGFuZCBlbnF1ZXVlZCB0aGUgdGltZXIKKwkgKiBmb3IgdXMgYWxyZWFk eS4KIAkgKi8KLQlpZiAocmVzdGFydCAhPSBIUlRJTUVSX05PUkVTVEFSVCkgewotCQlCVUdf T04odGltZXItPnN0YXRlICE9IEhSVElNRVJfU1RBVEVfQ0FMTEJBQ0spOworCWlmIChyZXN0 YXJ0ICE9IEhSVElNRVJfTk9SRVNUQVJUICYmCisJICAgICEodGltZXItPnN0YXRlICYgSFJU SU1FUl9TVEFURV9FTlFVRVVFRCkpCiAJCWVucXVldWVfaHJ0aW1lcih0aW1lciwgYmFzZSk7 Ci0JfQogCiAJV0FSTl9PTl9PTkNFKCEodGltZXItPnN0YXRlICYgSFJUSU1FUl9TVEFURV9D QUxMQkFDSykpOwogCmRpZmYgLS1naXQgYS9rZXJuZWwvcmN1dGlueS5jIGIva2VybmVsL3Jj dXRpbnkuYwppbmRleCAzN2E1NDQ0Li42MGE1NmY0IDEwMDY0NAotLS0gYS9rZXJuZWwvcmN1 dGlueS5jCisrKyBiL2tlcm5lbC9yY3V0aW55LmMKQEAgLTI3OSw2ICsyNzksMTEgQEAgc3Rh dGljIHZvaWQgX19yY3VfcHJvY2Vzc19jYWxsYmFja3Moc3RydWN0IHJjdV9jdHJsYmxrICpy Y3ApCiAKIAkvKiBNb3ZlIHRoZSByZWFkeS10by1pbnZva2UgY2FsbGJhY2tzIHRvIGEgbG9j YWwgbGlzdC4gKi8KIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJaWYgKHJjcC0+ZG9uZXRh aWwgPT0gJnJjcC0+cmN1Y2JsaXN0KSB7CisJCS8qIE5vIGNhbGxiYWNrcyByZWFkeSwgc28g anVzdCBsZWF2ZS4gKi8KKwkJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCQlyZXR1cm47 CisJfQogCVJDVV9UUkFDRSh0cmFjZV9yY3VfYmF0Y2hfc3RhcnQocmNwLT5uYW1lLCAwLCBy Y3AtPnFsZW4sIC0xKSk7CiAJbGlzdCA9IHJjcC0+cmN1Y2JsaXN0OwogCXJjcC0+cmN1Y2Js aXN0ID0gKnJjcC0+ZG9uZXRhaWw7CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2Vf ZXZlbnRzX2ZpbHRlci5jIGIva2VybmVsL3RyYWNlL3RyYWNlX2V2ZW50c19maWx0ZXIuYwpp bmRleCAzYjA0YWVjLi4wOTZkNzc0IDEwMDY0NAotLS0gYS9rZXJuZWwvdHJhY2UvdHJhY2Vf ZXZlbnRzX2ZpbHRlci5jCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9ldmVudHNfZmlsdGVy LmMKQEAgLTEwNDQsNiArMTA0NCw5IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2luaXQoc3RydWN0 IGZpbHRlcl9wYXJzZV9zdGF0ZSAqcHMsCiAKIHN0YXRpYyBjaGFyIGluZml4X25leHQoc3Ry dWN0IGZpbHRlcl9wYXJzZV9zdGF0ZSAqcHMpCiB7CisJaWYgKCFwcy0+aW5maXguY250KQor CQlyZXR1cm4gMDsKKwogCXBzLT5pbmZpeC5jbnQtLTsKIAogCXJldHVybiBwcy0+aW5maXgu c3RyaW5nW3BzLT5pbmZpeC50YWlsKytdOwpAQCAtMTA1OSw2ICsxMDYyLDkgQEAgc3RhdGlj IGNoYXIgaW5maXhfcGVlayhzdHJ1Y3QgZmlsdGVyX3BhcnNlX3N0YXRlICpwcykKIAogc3Rh dGljIHZvaWQgaW5maXhfYWR2YW5jZShzdHJ1Y3QgZmlsdGVyX3BhcnNlX3N0YXRlICpwcykK IHsKKwlpZiAoIXBzLT5pbmZpeC5jbnQpCisJCXJldHVybjsKKwogCXBzLT5pbmZpeC5jbnQt LTsKIAlwcy0+aW5maXgudGFpbCsrOwogfQpAQCAtMTM3Miw3ICsxMzc4LDkgQEAgc3RhdGlj IGludCBjaGVja19wcmVkcyhzdHJ1Y3QgZmlsdGVyX3BhcnNlX3N0YXRlICpwcykKIAkJfQog CQljbnQtLTsKIAkJbl9ub3JtYWxfcHJlZHMrKzsKLQkJV0FSTl9PTl9PTkNFKGNudCA8IDAp OworCQkvKiBhbGwgb3BzIHNob3VsZCBoYXZlIG9wZXJhbmRzICovCisJCWlmIChjbnQgPCAw KQorCQkJYnJlYWs7CiAJfQogCiAJaWYgKGNudCAhPSAxIHx8ICFuX25vcm1hbF9wcmVkcyB8 fCBuX2xvZ2ljYWxfcHJlZHMgPj0gbl9ub3JtYWxfcHJlZHMpIHsKZGlmZiAtLWdpdCBhL2xp Yi9iaXRtYXAuYyBiL2xpYi9iaXRtYXAuYwppbmRleCA2Y2NmMjEyLi5mNjI0OTZhIDEwMDY0 NAotLS0gYS9saWIvYml0bWFwLmMKKysrIGIvbGliL2JpdG1hcC5jCkBAIC02MDMsMTIgKzYw MywxMiBAQCBzdGF0aWMgaW50IF9fYml0bWFwX3BhcnNlbGlzdChjb25zdCBjaGFyICpidWYs IHVuc2lnbmVkIGludCBidWZsZW4sCiAJdW5zaWduZWQgYSwgYjsKIAlpbnQgYywgb2xkX2Ms IHRvdGFsZGlnaXRzOwogCWNvbnN0IGNoYXIgX191c2VyIF9fZm9yY2UgKnVidWYgPSAoY29u c3QgY2hhciBfX3VzZXIgX19mb3JjZSAqKWJ1ZjsKLQlpbnQgZXhwX2RpZ2l0LCBpbl9yYW5n ZTsKKwlpbnQgYXRfc3RhcnQsIGluX3JhbmdlOwogCiAJdG90YWxkaWdpdHMgPSBjID0gMDsK IAliaXRtYXBfemVybyhtYXNrcCwgbm1hc2tiaXRzKTsKIAlkbyB7Ci0JCWV4cF9kaWdpdCA9 IDE7CisJCWF0X3N0YXJ0ID0gMTsKIAkJaW5fcmFuZ2UgPSAwOwogCQlhID0gYiA9IDA7CiAK QEAgLTYzNywxMSArNjM3LDEwIEBAIHN0YXRpYyBpbnQgX19iaXRtYXBfcGFyc2VsaXN0KGNv bnN0IGNoYXIgKmJ1ZiwgdW5zaWduZWQgaW50IGJ1ZmxlbiwKIAkJCQlicmVhazsKIAogCQkJ aWYgKGMgPT0gJy0nKSB7Ci0JCQkJaWYgKGV4cF9kaWdpdCB8fCBpbl9yYW5nZSkKKwkJCQlp ZiAoYXRfc3RhcnQgfHwgaW5fcmFuZ2UpCiAJCQkJCXJldHVybiAtRUlOVkFMOwogCQkJCWIg PSAwOwogCQkJCWluX3JhbmdlID0gMTsKLQkJCQlleHBfZGlnaXQgPSAxOwogCQkJCWNvbnRp bnVlOwogCQkJfQogCkBAIC02NTEsMTYgKzY1MCwxOCBAQCBzdGF0aWMgaW50IF9fYml0bWFw X3BhcnNlbGlzdChjb25zdCBjaGFyICpidWYsIHVuc2lnbmVkIGludCBidWZsZW4sCiAJCQli ID0gYiAqIDEwICsgKGMgLSAnMCcpOwogCQkJaWYgKCFpbl9yYW5nZSkKIAkJCQlhID0gYjsK LQkJCWV4cF9kaWdpdCA9IDA7CisJCQlhdF9zdGFydCA9IDA7CiAJCQl0b3RhbGRpZ2l0cysr OwogCQl9CiAJCWlmICghKGEgPD0gYikpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJaWYgKGIg Pj0gbm1hc2tiaXRzKQogCQkJcmV0dXJuIC1FUkFOR0U7Ci0JCXdoaWxlIChhIDw9IGIpIHsK LQkJCXNldF9iaXQoYSwgbWFza3ApOwotCQkJYSsrOworCQlpZiAoIWF0X3N0YXJ0KSB7CisJ CQl3aGlsZSAoYSA8PSBiKSB7CisJCQkJc2V0X2JpdChhLCBtYXNrcCk7CisJCQkJYSsrOwor CQkJfQogCQl9CiAJfSB3aGlsZSAoYnVmbGVuICYmIGMgPT0gJywnKTsKIAlyZXR1cm4gMDsK ZGlmZiAtLWdpdCBhL21tL2ttZW1sZWFrLmMgYi9tbS9rbWVtbGVhay5jCmluZGV4IGFkNmVl ODguLmM3NDgyN2MgMTAwNjQ0Ci0tLSBhL21tL2ttZW1sZWFrLmMKKysrIGIvbW0va21lbWxl YWsuYwpAQCAtMTkzLDYgKzE5Myw4IEBAIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqc2Nh bl9hcmVhX2NhY2hlOwogCiAvKiBzZXQgaWYgdHJhY2luZyBtZW1vcnkgb3BlcmF0aW9ucyBp cyBlbmFibGVkICovCiBzdGF0aWMgYXRvbWljX3Qga21lbWxlYWtfZW5hYmxlZCA9IEFUT01J Q19JTklUKDApOworLyogc2FtZSBhcyBhYm92ZSBidXQgb25seSBmb3IgdGhlIGttZW1sZWFr X2ZyZWUoKSBjYWxsYmFjayAqLworc3RhdGljIGludCBrbWVtbGVha19mcmVlX2VuYWJsZWQ7 CiAvKiBzZXQgaW4gdGhlIGxhdGVfaW5pdGNhbGwgaWYgdGhlcmUgd2VyZSBubyBlcnJvcnMg Ki8KIHN0YXRpYyBhdG9taWNfdCBrbWVtbGVha19pbml0aWFsaXplZCA9IEFUT01JQ19JTklU KDApOwogLyogZW5hYmxlcyBvciBkaXNhYmxlcyBlYXJseSBsb2dnaW5nIG9mIHRoZSBtZW1v cnkgb3BlcmF0aW9ucyAqLwpAQCAtOTM2LDcgKzkzOCw3IEBAIHZvaWQgX19yZWYga21lbWxl YWtfZnJlZShjb25zdCB2b2lkICpwdHIpCiB7CiAJcHJfZGVidWcoIiVzKDB4JXApXG4iLCBf X2Z1bmNfXywgcHRyKTsKIAotCWlmIChhdG9taWNfcmVhZCgma21lbWxlYWtfZW5hYmxlZCkg JiYgcHRyICYmICFJU19FUlIocHRyKSkKKwlpZiAoa21lbWxlYWtfZnJlZV9lbmFibGVkICYm IHB0ciAmJiAhSVNfRVJSKHB0cikpCiAJCWRlbGV0ZV9vYmplY3RfZnVsbCgodW5zaWduZWQg bG9uZylwdHIpOwogCWVsc2UgaWYgKGF0b21pY19yZWFkKCZrbWVtbGVha19lYXJseV9sb2cp KQogCQlsb2dfZWFybHkoS01FTUxFQUtfRlJFRSwgcHRyLCAwLCAwKTsKQEAgLTk3Niw3ICs5 NzgsNyBAQCB2b2lkIF9fcmVmIGttZW1sZWFrX2ZyZWVfcGVyY3B1KGNvbnN0IHZvaWQgX19w ZXJjcHUgKnB0cikKIAogCXByX2RlYnVnKCIlcygweCVwKVxuIiwgX19mdW5jX18sIHB0cik7 CiAKLQlpZiAoYXRvbWljX3JlYWQoJmttZW1sZWFrX2VuYWJsZWQpICYmIHB0ciAmJiAhSVNf RVJSKHB0cikpCisJaWYgKGttZW1sZWFrX2ZyZWVfZW5hYmxlZCAmJiBwdHIgJiYgIUlTX0VS UihwdHIpKQogCQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KQogCQkJZGVsZXRlX29iamVj dF9mdWxsKCh1bnNpZ25lZCBsb25nKXBlcl9jcHVfcHRyKHB0ciwKIAkJCQkJCQkJICAgICAg Y3B1KSk7CkBAIC0xNjkwLDYgKzE2OTIsMTMgQEAgc3RhdGljIHZvaWQga21lbWxlYWtfZG9f Y2xlYW51cChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJbXV0ZXhfbG9jaygmc2Nhbl9t dXRleCk7CiAJc3RvcF9zY2FuX3RocmVhZCgpOwogCisJLyoKKwkgKiBPbmNlIHRoZSBzY2Fu IHRocmVhZCBoYXMgc3RvcHBlZCwgaXQgaXMgc2FmZSB0byBubyBsb25nZXIgdHJhY2sKKwkg KiBvYmplY3QgZnJlZWluZy4gT3JkZXJpbmcgb2YgdGhlIHNjYW4gdGhyZWFkIHN0b3BwaW5n IGFuZCB0aGUgbWVtb3J5CisJICogYWNjZXNzZXMgYmVsb3cgaXMgZ3VhcmFudGVlZCBieSB0 aGUga3RocmVhZF9zdG9wKCkgZnVuY3Rpb24uCisJICAqLworCWttZW1sZWFrX2ZyZWVfZW5h YmxlZCA9IDA7CisKIAlpZiAoY2xlYW51cCkgewogCQlyY3VfcmVhZF9sb2NrKCk7CiAJCWxp c3RfZm9yX2VhY2hfZW50cnlfcmN1KG9iamVjdCwgJm9iamVjdF9saXN0LCBvYmplY3RfbGlz dCkKQEAgLTE3MTcsNiArMTcyNiw4IEBAIHN0YXRpYyB2b2lkIGttZW1sZWFrX2Rpc2FibGUo dm9pZCkKIAkvKiBjaGVjayB3aGV0aGVyIGl0IGlzIHRvbyBlYXJseSBmb3IgYSBrZXJuZWwg dGhyZWFkICovCiAJaWYgKGF0b21pY19yZWFkKCZrbWVtbGVha19pbml0aWFsaXplZCkpCiAJ CXNjaGVkdWxlX3dvcmsoJmNsZWFudXBfd29yayk7CisJZWxzZQorCQlrbWVtbGVha19mcmVl X2VuYWJsZWQgPSAwOwogCiAJcHJfaW5mbygiS2VybmVsIG1lbW9yeSBsZWFrIGRldGVjdG9y IGRpc2FibGVkXG4iKTsKIH0KQEAgLTE3ODIsOCArMTc5MywxMCBAQCB2b2lkIF9faW5pdCBr bWVtbGVha19pbml0KHZvaWQpCiAJaWYgKGF0b21pY19yZWFkKCZrbWVtbGVha19lcnJvcikp IHsKIAkJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCQlyZXR1cm47Ci0JfSBlbHNlCisJ fSBlbHNlIHsKIAkJYXRvbWljX3NldCgma21lbWxlYWtfZW5hYmxlZCwgMSk7CisJCWttZW1s ZWFrX2ZyZWVfZW5hYmxlZCA9IDE7CisJfQogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsK IAogCS8qCmRpZmYgLS1naXQgYS9uZXQvOXAvY2xpZW50LmMgYi9uZXQvOXAvY2xpZW50LmMK aW5kZXggYjIzYTE3Yy4uMzJkZjBhMyAxMDA2NDQKLS0tIGEvbmV0LzlwL2NsaWVudC5jCisr KyBiL25ldC85cC9jbGllbnQuYwpAQCAtODMzLDcgKzgzMyw4IEBAIHN0YXRpYyBzdHJ1Y3Qg cDlfcmVxX3QgKnA5X2NsaWVudF96Y19ycGMoc3RydWN0IHA5X2NsaWVudCAqYywgaW50OF90 IHR5cGUsCiAJaWYgKGVyciA8IDApIHsKIAkJaWYgKGVyciA9PSAtRUlPKQogCQkJYy0+c3Rh dHVzID0gRGlzY29ubmVjdGVkOwotCQlnb3RvIHJldGVycjsKKwkJaWYgKGVyciAhPSAtRVJF U1RBUlRTWVMpCisJCQlnb3RvIHJldGVycjsKIAl9CiAJaWYgKHJlcS0+c3RhdHVzID09IFJF UV9TVEFUVVNfRVJST1IpIHsKIAkJcDlfZGVidWcoUDlfREVCVUdfRVJST1IsICJyZXFfc3Rh dHVzIGVycm9yICVkXG4iLCByZXEtPnRfZXJyKTsKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2Uv YnJfaW9jdGwuYyBiL25ldC9icmlkZ2UvYnJfaW9jdGwuYwppbmRleCA3MjIyZmUxLi5lYTBl MTVjIDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX2lvY3RsLmMKKysrIGIvbmV0L2JyaWRn ZS9icl9pb2N0bC5jCkBAIC0yNDYsOSArMjQ2LDcgQEAgc3RhdGljIGludCBvbGRfZGV2X2lv Y3RsKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqcnEsIGludCBjbWQp CiAJCWlmICghY2FwYWJsZShDQVBfTkVUX0FETUlOKSkKIAkJCXJldHVybiAtRVBFUk07CiAK LQkJc3Bpbl9sb2NrX2JoKCZici0+bG9jayk7CiAJCWJyX3N0cF9zZXRfYnJpZGdlX3ByaW9y aXR5KGJyLCBhcmdzWzFdKTsKLQkJc3Bpbl91bmxvY2tfYmgoJmJyLT5sb2NrKTsKIAkJcmV0 dXJuIDA7CiAKIAljYXNlIEJSQ1RMX1NFVF9QT1JUX1BSSU9SSVRZOgpkaWZmIC0tZ2l0IGEv bmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMK aW5kZXggYTQxMDUxYS4uODdhZThjMyAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9tdWx0 aWNhc3QuYworKysgYi9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jCkBAIC0zNiw2ICszNiw5 IEBACiAjZGVmaW5lIG1sb2NrX2RlcmVmZXJlbmNlKFgsIGJyKSBcCiAJcmN1X2RlcmVmZXJl bmNlX3Byb3RlY3RlZChYLCBsb2NrZGVwX2lzX2hlbGQoJmJyLT5tdWx0aWNhc3RfbG9jaykp CiAKK3N0YXRpYyB2b2lkIGJyX211bHRpY2FzdF9hZGRfcm91dGVyKHN0cnVjdCBuZXRfYnJp ZGdlICpiciwKKwkJCQkgICAgc3RydWN0IG5ldF9icmlkZ2VfcG9ydCAqcG9ydCk7CisKICNp ZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KQogc3RhdGljIGlubGluZSBpbnQgaXB2Nl9pc190 cmFuc2llbnRfbXVsdGljYXN0KGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqYWRkcikKIHsKQEAg LTg0Miw2ICs4NDUsOCBAQCB2b2lkIGJyX211bHRpY2FzdF9lbmFibGVfcG9ydChzdHJ1Y3Qg bmV0X2JyaWRnZV9wb3J0ICpwb3J0KQogCQlnb3RvIG91dDsKIAogCV9fYnJfbXVsdGljYXN0 X2VuYWJsZV9wb3J0KHBvcnQpOworCWlmIChwb3J0LT5tdWx0aWNhc3Rfcm91dGVyID09IDIg JiYgaGxpc3RfdW5oYXNoZWQoJnBvcnQtPnJsaXN0KSkKKwkJYnJfbXVsdGljYXN0X2FkZF9y b3V0ZXIoYnIsIHBvcnQpOwogCiBvdXQ6CiAJc3Bpbl91bmxvY2soJmJyLT5tdWx0aWNhc3Rf bG9jayk7CmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX3N0cF9pZi5jIGIvbmV0L2JyaWRn ZS9icl9zdHBfaWYuYwppbmRleCAyZjEwMGNjLi4yM2VhMTU5IDEwMDY0NAotLS0gYS9uZXQv YnJpZGdlL2JyX3N0cF9pZi5jCisrKyBiL25ldC9icmlkZ2UvYnJfc3RwX2lmLmMKQEAgLTI0 MiwxMiArMjQyLDEzIEBAIGJvb2wgYnJfc3RwX3JlY2FsY3VsYXRlX2JyaWRnZV9pZChzdHJ1 Y3QgbmV0X2JyaWRnZSAqYnIpCiAJcmV0dXJuIHRydWU7CiB9CiAKLS8qIGNhbGxlZCB1bmRl ciBicmlkZ2UgbG9jayAqLworLyogQWNxdWlyZXMgYW5kIHJlbGVhc2VzIGJyaWRnZSBsb2Nr ICovCiB2b2lkIGJyX3N0cF9zZXRfYnJpZGdlX3ByaW9yaXR5KHN0cnVjdCBuZXRfYnJpZGdl ICpiciwgdTE2IG5ld3ByaW8pCiB7CiAJc3RydWN0IG5ldF9icmlkZ2VfcG9ydCAqcDsKIAlp bnQgd2Fzcm9vdDsKIAorCXNwaW5fbG9ja19iaCgmYnItPmxvY2spOwogCXdhc3Jvb3QgPSBi cl9pc19yb290X2JyaWRnZShicik7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZici0+ cG9ydF9saXN0LCBsaXN0KSB7CkBAIC0yNjUsNiArMjY2LDcgQEAgdm9pZCBicl9zdHBfc2V0 X2JyaWRnZV9wcmlvcml0eShzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsIHUxNiBuZXdwcmlvKQog CWJyX3BvcnRfc3RhdGVfc2VsZWN0aW9uKGJyKTsKIAlpZiAoYnJfaXNfcm9vdF9icmlkZ2Uo YnIpICYmICF3YXNyb290KQogCQlicl9iZWNvbWVfcm9vdF9icmlkZ2UoYnIpOworCXNwaW5f dW5sb2NrX2JoKCZici0+bG9jayk7CiB9CiAKIC8qIGNhbGxlZCB1bmRlciBicmlkZ2UgbG9j ayAqLwpkaWZmIC0tZ2l0IGEvbmV0L2NlcGgvb3NkbWFwLmMgYi9uZXQvY2VwaC9vc2RtYXAu YwppbmRleCA3ZmJlMjEwLi5kNGZiY2I2IDEwMDY0NAotLS0gYS9uZXQvY2VwaC9vc2RtYXAu YworKysgYi9uZXQvY2VwaC9vc2RtYXAuYwpAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyBp bnQgY3J1c2hfZGVjb2RlX3RyZWVfYnVja2V0KHZvaWQgKipwLCB2b2lkICplbmQsCiB7CiAJ aW50IGo7CiAJZG91dCgiY3J1c2hfZGVjb2RlX3RyZWVfYnVja2V0ICVwIHRvICVwXG4iLCAq cCwgZW5kKTsKLQljZXBoX2RlY29kZV8zMl9zYWZlKHAsIGVuZCwgYi0+bnVtX25vZGVzLCBi YWQpOworCWNlcGhfZGVjb2RlXzhfc2FmZShwLCBlbmQsIGItPm51bV9ub2RlcywgYmFkKTsK IAliLT5ub2RlX3dlaWdodHMgPSBrY2FsbG9jKGItPm51bV9ub2Rlcywgc2l6ZW9mKHUzMiks IEdGUF9OT0ZTKTsKIAlpZiAoYi0+bm9kZV93ZWlnaHRzID09IE5VTEwpCiAJCXJldHVybiAt RU5PTUVNOwpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcGt0Z2VuLmMgYi9uZXQvY29yZS9wa3Rn ZW4uYwppbmRleCA1NDZiMTMzLi5mZmE1ZDVkIDEwMDY0NAotLS0gYS9uZXQvY29yZS9wa3Rn ZW4uYworKysgYi9uZXQvY29yZS9wa3RnZW4uYwpAQCAtNTY4LDcgKzU2OCw3IEBAIHN0YXRp YyBpbnQgcGt0Z2VuX2lmX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpCiAJ CQkgICAiICAgICBkc3RfbWluOiAlcyAgZHN0X21heDogJXNcbiIsCiAJCQkgICBwa3RfZGV2 LT5kc3RfbWluLCBwa3RfZGV2LT5kc3RfbWF4KTsKIAkJc2VxX3ByaW50ZihzZXEsCi0JCQkg ICAiICAgICAgICBzcmNfbWluOiAlcyAgc3JjX21heDogJXNcbiIsCisJCQkgICAiICAgICBz cmNfbWluOiAlcyAgc3JjX21heDogJXNcbiIsCiAJCQkgICBwa3RfZGV2LT5zcmNfbWluLCBw a3RfZGV2LT5zcmNfbWF4KTsKIAl9CiAKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFj a2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCmluZGV4IGRiZTE3MTUuLjc5Yzc1ZTEg MTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9h Zl9wYWNrZXQuYwpAQCAtMTE2OSwxNiArMTE2OSw2IEBAIHN0YXRpYyB2b2lkIHBhY2tldF9z b2NrX2Rlc3RydWN0KHN0cnVjdCBzb2NrICpzaykKIAlza19yZWZjbnRfZGVidWdfZGVjKHNr KTsKIH0KIAotc3RhdGljIGludCBmYW5vdXRfcnJfbmV4dChzdHJ1Y3QgcGFja2V0X2Zhbm91 dCAqZiwgdW5zaWduZWQgaW50IG51bSkKLXsKLQlpbnQgeCA9IGF0b21pY19yZWFkKCZmLT5y cl9jdXIpICsgMTsKLQotCWlmICh4ID49IG51bSkKLQkJeCA9IDA7Ci0KLQlyZXR1cm4geDsK LX0KLQogc3RhdGljIHN0cnVjdCBzb2NrICpmYW5vdXRfZGVtdXhfaGFzaChzdHJ1Y3QgcGFj a2V0X2Zhbm91dCAqZiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdW5zaWduZWQgaW50IG51bSkK IHsKIAl1MzIgaWR4LCBoYXNoID0gc2tiLT5yeGhhc2g7CkBAIC0xMTkwLDEzICsxMTgwLDkg QEAgc3RhdGljIHN0cnVjdCBzb2NrICpmYW5vdXRfZGVtdXhfaGFzaChzdHJ1Y3QgcGFja2V0 X2Zhbm91dCAqZiwgc3RydWN0IHNrX2J1ZmYgKnMKIAogc3RhdGljIHN0cnVjdCBzb2NrICpm YW5vdXRfZGVtdXhfbGIoc3RydWN0IHBhY2tldF9mYW5vdXQgKmYsIHN0cnVjdCBza19idWZm ICpza2IsIHVuc2lnbmVkIGludCBudW0pCiB7Ci0JaW50IGN1ciwgb2xkOworCXVuc2lnbmVk IGludCB2YWwgPSBhdG9taWNfaW5jX3JldHVybigmZi0+cnJfY3VyKTsKIAotCWN1ciA9IGF0 b21pY19yZWFkKCZmLT5ycl9jdXIpOwotCXdoaWxlICgob2xkID0gYXRvbWljX2NtcHhjaGco JmYtPnJyX2N1ciwgY3VyLAotCQkJCSAgICAgZmFub3V0X3JyX25leHQoZiwgbnVtKSkpICE9 IGN1cikKLQkJY3VyID0gb2xkOwotCXJldHVybiBmLT5hcnJbY3VyXTsKKwlyZXR1cm4gZi0+ YXJyW3ZhbCAlIG51bV07CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qgc29jayAqZmFub3V0X2RlbXV4 X2NwdShzdHJ1Y3QgcGFja2V0X2Zhbm91dCAqZiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdW5z aWduZWQgaW50IG51bSkKQEAgLTEyMTAsNyArMTE5Niw3IEBAIHN0YXRpYyBpbnQgcGFja2V0 X3Jjdl9mYW5vdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRl diwKIAkJCSAgICAgc3RydWN0IHBhY2tldF90eXBlICpwdCwgc3RydWN0IG5ldF9kZXZpY2Ug Km9yaWdfZGV2KQogewogCXN0cnVjdCBwYWNrZXRfZmFub3V0ICpmID0gcHQtPmFmX3BhY2tl dF9wcml2OwotCXVuc2lnbmVkIGludCBudW0gPSBmLT5udW1fbWVtYmVyczsKKwl1bnNpZ25l ZCBpbnQgbnVtID0gQUNDRVNTX09OQ0UoZi0+bnVtX21lbWJlcnMpOwogCXN0cnVjdCBwYWNr ZXRfc29jayAqcG87CiAJc3RydWN0IHNvY2sgKnNrOwogCmRpZmYgLS1naXQgYS9uZXQvc2N0 cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4IDBjMGJkMmYuLmJjN2I1ZGUg MTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBiL25ldC9zY3RwL3NvY2tldC5j CkBAIC0xNTM5LDggKzE1MzksMTAgQEAgU0NUUF9TVEFUSUMgdm9pZCBzY3RwX2Nsb3NlKHN0 cnVjdCBzb2NrICpzaywgbG9uZyB0aW1lb3V0KQogCiAJLyogU3VwcG9zZWRseSwgbm8gcHJv Y2VzcyBoYXMgYWNjZXNzIHRvIHRoZSBzb2NrZXQsIGJ1dAogCSAqIHRoZSBuZXQgbGF5ZXJz IHN0aWxsIG1heS4KKwkgKiBBbHNvLCBzY3RwX2Rlc3Ryb3lfc29jaygpIG5lZWRzIHRvIGJl IGNhbGxlZCB3aXRoIGFkZHJfd3FfbG9jaworCSAqIGhlbGQgYW5kIHRoYXQgc2hvdWxkIGJl IGdyYWJiZWQgYmVmb3JlIHNvY2tldCBsb2NrLgogCSAqLwotCXNjdHBfbG9jYWxfYmhfZGlz YWJsZSgpOworCXNwaW5fbG9ja19iaCgmc2N0cF9nbG9iYWxzLmFkZHJfd3FfbG9jayk7CiAJ c2N0cF9iaF9sb2NrX3NvY2soc2spOwogCiAJLyogSG9sZCB0aGUgc29jaywgc2luY2Ugc2tf Y29tbW9uX3JlbGVhc2UoKSB3aWxsIHB1dCBzb2NrX3B1dCgpCkBAIC0xNTUwLDcgKzE1NTIs NyBAQCBTQ1RQX1NUQVRJQyB2b2lkIHNjdHBfY2xvc2Uoc3RydWN0IHNvY2sgKnNrLCBsb25n IHRpbWVvdXQpCiAJc2tfY29tbW9uX3JlbGVhc2Uoc2spOwogCiAJc2N0cF9iaF91bmxvY2tf c29jayhzayk7Ci0Jc2N0cF9sb2NhbF9iaF9lbmFibGUoKTsKKwlzcGluX3VubG9ja19iaCgm c2N0cF9nbG9iYWxzLmFkZHJfd3FfbG9jayk7CiAKIAlzb2NrX3B1dChzayk7CiAKQEAgLTM0 OTIsNiArMzQ5NCw3IEBAIHN0YXRpYyBpbnQgc2N0cF9zZXRzb2Nrb3B0X2F1dG9fYXNjb25m KHN0cnVjdCBzb2NrICpzaywgY2hhciBfX3VzZXIgKm9wdHZhbCwKIAlpZiAoKHZhbCAmJiBz cC0+ZG9fYXV0b19hc2NvbmYpIHx8ICghdmFsICYmICFzcC0+ZG9fYXV0b19hc2NvbmYpKQog CQlyZXR1cm4gMDsKIAorCXNwaW5fbG9ja19iaCgmc2N0cF9nbG9iYWxzLmFkZHJfd3FfbG9j ayk7CiAJaWYgKHZhbCA9PSAwICYmIHNwLT5kb19hdXRvX2FzY29uZikgewogCQlsaXN0X2Rl bCgmc3AtPmF1dG9fYXNjb25mX2xpc3QpOwogCQlzcC0+ZG9fYXV0b19hc2NvbmYgPSAwOwpA QCAtMzUwMCw2ICszNTAzLDcgQEAgc3RhdGljIGludCBzY3RwX3NldHNvY2tvcHRfYXV0b19h c2NvbmYoc3RydWN0IHNvY2sgKnNrLCBjaGFyIF9fdXNlciAqb3B0dmFsLAogCQkgICAgJnNj dHBfYXV0b19hc2NvbmZfc3BsaXN0KTsKIAkJc3AtPmRvX2F1dG9fYXNjb25mID0gMTsKIAl9 CisJc3Bpbl91bmxvY2tfYmgoJnNjdHBfZ2xvYmFscy5hZGRyX3dxX2xvY2spOwogCXJldHVy biAwOwogfQogCkBAIC0zOTM1LDE4ICszOTM5LDI4IEBAIFNDVFBfU1RBVElDIGludCBzY3Rw X2luaXRfc29jayhzdHJ1Y3Qgc29jayAqc2spCiAJbG9jYWxfYmhfZGlzYWJsZSgpOwogCXBl cmNwdV9jb3VudGVyX2luYygmc2N0cF9zb2NrZXRzX2FsbG9jYXRlZCk7CiAJc29ja19wcm90 X2ludXNlX2FkZChzb2NrX25ldChzayksIHNrLT5za19wcm90LCAxKTsKKworCS8qIE5vdGhp bmcgY2FuIGZhaWwgYWZ0ZXIgdGhpcyBibG9jaywgb3RoZXJ3aXNlCisJICogc2N0cF9kZXN0 cm95X3NvY2soKSB3aWxsIGJlIGNhbGxlZCB3aXRob3V0IGFkZHJfd3FfbG9jayBoZWxkCisJ ICovCiAJaWYgKHNjdHBfZGVmYXVsdF9hdXRvX2FzY29uZikgeworCQlzcGluX2xvY2soJnNj dHBfZ2xvYmFscy5hZGRyX3dxX2xvY2spOwogCQlsaXN0X2FkZF90YWlsKCZzcC0+YXV0b19h c2NvbmZfbGlzdCwKIAkJICAgICZzY3RwX2F1dG9fYXNjb25mX3NwbGlzdCk7CiAJCXNwLT5k b19hdXRvX2FzY29uZiA9IDE7Ci0JfSBlbHNlCisJCXNwaW5fdW5sb2NrKCZzY3RwX2dsb2Jh bHMuYWRkcl93cV9sb2NrKTsKKwl9IGVsc2UgewogCQlzcC0+ZG9fYXV0b19hc2NvbmYgPSAw OworCX0KKwogCWxvY2FsX2JoX2VuYWJsZSgpOwogCiAJcmV0dXJuIDA7CiB9CiAKLS8qIENs ZWFudXAgYW55IFNDVFAgcGVyIHNvY2tldCByZXNvdXJjZXMuICAqLworLyogQ2xlYW51cCBh bnkgU0NUUCBwZXIgc29ja2V0IHJlc291cmNlcy4gTXVzdCBiZSBjYWxsZWQgd2l0aAorICog c2N0cF9nbG9iYWxzLmFkZHJfd3FfbG9jayBoZWxkIGlmIHNwLT5kb19hdXRvX2FzY29uZiBp cyB0cnVlCisgKi8KIFNDVFBfU1RBVElDIHZvaWQgc2N0cF9kZXN0cm95X3NvY2soc3RydWN0 IHNvY2sgKnNrKQogewogCXN0cnVjdCBzY3RwX3NvY2sgKnNwOwpAQCAtNjc0Niw2ICs2NzYw LDE5IEBAIHZvaWQgc2N0cF9jb3B5X3NvY2soc3RydWN0IHNvY2sgKm5ld3NrLCBzdHJ1Y3Qg c29jayAqc2ssCiAJbmV3aW5ldC0+bWNfbGlzdCA9IE5VTEw7CiB9CiAKK3N0YXRpYyBpbmxp bmUgdm9pZCBzY3RwX2NvcHlfZGVzY2VuZGFudChzdHJ1Y3Qgc29jayAqc2tfdG8sCisJCQkJ CWNvbnN0IHN0cnVjdCBzb2NrICpza19mcm9tKQoreworCWludCBhbmNlc3Rvcl9zaXplID0g c2l6ZW9mKHN0cnVjdCBpbmV0X3NvY2spICsKKwkJCSAgICBzaXplb2Yoc3RydWN0IHNjdHBf c29jaykgLQorCQkJICAgIG9mZnNldG9mKHN0cnVjdCBzY3RwX3NvY2ssIGF1dG9fYXNjb25m X2xpc3QpOworCisJaWYgKHNrX2Zyb20tPnNrX2ZhbWlseSA9PSBQRl9JTkVUNikKKwkJYW5j ZXN0b3Jfc2l6ZSArPSBzaXplb2Yoc3RydWN0IGlwdjZfcGluZm8pOworCisJX19pbmV0X3Nr X2NvcHlfZGVzY2VuZGFudChza190bywgc2tfZnJvbSwgYW5jZXN0b3Jfc2l6ZSk7Cit9CisK IC8qIFBvcHVsYXRlIHRoZSBmaWVsZHMgb2YgdGhlIG5ld3NrIGZyb20gdGhlIG9sZHNrIGFu ZCBtaWdyYXRlIHRoZSBhc3NvYwogICogYW5kIGl0cyBtZXNzYWdlcyB0byB0aGUgbmV3c2su CiAgKi8KQEAgLTY3NjAsNyArNjc4Nyw2IEBAIHN0YXRpYyB2b2lkIHNjdHBfc29ja19taWdy YXRlKHN0cnVjdCBzb2NrICpvbGRzaywgc3RydWN0IHNvY2sgKm5ld3NrLAogCXN0cnVjdCBz a19idWZmICpza2IsICp0bXA7CiAJc3RydWN0IHNjdHBfdWxwZXZlbnQgKmV2ZW50OwogCXN0 cnVjdCBzY3RwX2JpbmRfaGFzaGJ1Y2tldCAqaGVhZDsKLQlzdHJ1Y3QgbGlzdF9oZWFkIHRt cGxpc3Q7CiAKIAkvKiBNaWdyYXRlIHNvY2tldCBidWZmZXIgc2l6ZXMgYW5kIGFsbCB0aGUg c29ja2V0IGxldmVsIG9wdGlvbnMgdG8gdGhlCiAJICogbmV3IHNvY2tldC4KQEAgLTY3Njgs MTIgKzY3OTQsNyBAQCBzdGF0aWMgdm9pZCBzY3RwX3NvY2tfbWlncmF0ZShzdHJ1Y3Qgc29j ayAqb2xkc2ssIHN0cnVjdCBzb2NrICpuZXdzaywKIAluZXdzay0+c2tfc25kYnVmID0gb2xk c2stPnNrX3NuZGJ1ZjsKIAluZXdzay0+c2tfcmN2YnVmID0gb2xkc2stPnNrX3JjdmJ1ZjsK IAkvKiBCcnV0ZSBmb3JjZSBjb3B5IG9sZCBzY3RwIG9wdC4gKi8KLQlpZiAob2xkc3AtPmRv X2F1dG9fYXNjb25mKSB7Ci0JCW1lbWNweSgmdG1wbGlzdCwgJm5ld3NwLT5hdXRvX2FzY29u Zl9saXN0LCBzaXplb2YodG1wbGlzdCkpOwotCQlpbmV0X3NrX2NvcHlfZGVzY2VuZGFudChu ZXdzaywgb2xkc2spOwotCQltZW1jcHkoJm5ld3NwLT5hdXRvX2FzY29uZl9saXN0LCAmdG1w bGlzdCwgc2l6ZW9mKHRtcGxpc3QpKTsKLQl9IGVsc2UKLQkJaW5ldF9za19jb3B5X2Rlc2Nl bmRhbnQobmV3c2ssIG9sZHNrKTsKKwlzY3RwX2NvcHlfZGVzY2VuZGFudChuZXdzaywgb2xk c2spOwogCiAJLyogUmVzdG9yZSB0aGUgZXAgdmFsdWUgdGhhdCB3YXMgb3ZlcndyaXR0ZW4g d2l0aCB0aGUgYWJvdmUgc3RydWN0dXJlCiAJICogY29weS4KZGlmZiAtLWdpdCBhL25ldC9z dW5ycGMvYmFja2NoYW5uZWxfcnFzdC5jIGIvbmV0L3N1bnJwYy9iYWNrY2hhbm5lbF9ycXN0 LmMKaW5kZXggMzFkZWY2OC4uNjE3Yjk1NSAxMDA2NDQKLS0tIGEvbmV0L3N1bnJwYy9iYWNr Y2hhbm5lbF9ycXN0LmMKKysrIGIvbmV0L3N1bnJwYy9iYWNrY2hhbm5lbF9ycXN0LmMKQEAg LTYwLDcgKzYwLDcgQEAgc3RhdGljIHZvaWQgeHBydF9mcmVlX2FsbG9jYXRpb24oc3RydWN0 IHJwY19ycXN0ICpyZXEpCiAKIAlkcHJpbnRrKCJSUEM6ICAgICAgICBmcmVlIGFsbG9jYXRp b25zIGZvciByZXE9ICVwXG4iLCByZXEpOwogCUJVR19PTih0ZXN0X2JpdChSUENfQkNfUEFf SU5fVVNFLCAmcmVxLT5ycV9iY19wYV9zdGF0ZSkpOwotCXhidWZwID0gJnJlcS0+cnFfcHJp dmF0ZV9idWY7CisJeGJ1ZnAgPSAmcmVxLT5ycV9yY3ZfYnVmOwogCWZyZWVfcGFnZSgodW5z aWduZWQgbG9uZyl4YnVmcC0+aGVhZFswXS5pb3ZfYmFzZSk7CiAJeGJ1ZnAgPSAmcmVxLT5y cV9zbmRfYnVmOwogCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZyl4YnVmcC0+aGVhZFswXS5p b3ZfYmFzZSk7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtODczNy5jIGIvc291 bmQvc29jL2NvZGVjcy93bTg3MzcuYwppbmRleCA0ZmU5ZDE5Li44MDQ2MGQyIDEwMDY0NAot LS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtODczNy5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mv d204NzM3LmMKQEAgLTQ4NCw3ICs0ODQsOCBAQCBzdGF0aWMgaW50IHdtODczN19zZXRfYmlh c19sZXZlbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCiAKIAkJCS8qIEZhc3QgVk1J RCByYW1wIGF0IDIqMi41ayAqLwogCQkJc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywgV004 NzM3X01JU0NfQklBU19DT05UUk9MLAotCQkJCQkgICAgV004NzM3X1ZNSURTRUxfTUFTSywg MHg0KTsKKwkJCQkJICAgIFdNODczN19WTUlEU0VMX01BU0ssCisJCQkJCSAgICAyIDw8IFdN ODczN19WTUlEU0VMX1NISUZUKTsKIAogCQkJLyogQnJpbmcgVk1JRCB1cCAqLwogCQkJc25k X3NvY191cGRhdGVfYml0cyhjb2RlYywgV004NzM3X1BPV0VSX01BTkFHRU1FTlQsCkBAIC00 OTgsNyArNDk5LDggQEAgc3RhdGljIGludCB3bTg3Mzdfc2V0X2JpYXNfbGV2ZWwoc3RydWN0 IHNuZF9zb2NfY29kZWMgKmNvZGVjLAogCiAJCS8qIFZNSUQgYXQgMiozMDBrICovCiAJCXNu ZF9zb2NfdXBkYXRlX2JpdHMoY29kZWMsIFdNODczN19NSVNDX0JJQVNfQ09OVFJPTCwKLQkJ CQkgICAgV004NzM3X1ZNSURTRUxfTUFTSywgMik7CisJCQkJICAgIFdNODczN19WTUlEU0VM X01BU0ssCisJCQkJICAgIDEgPDwgV004NzM3X1ZNSURTRUxfU0hJRlQpOwogCiAJCWJyZWFr OwogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtODkwMy5oIGIvc291bmQvc29j L2NvZGVjcy93bTg5MDMuaAppbmRleCBkYjk0OTMxLi4wYmI0YTY0IDEwMDY0NAotLS0gYS9z b3VuZC9zb2MvY29kZWNzL3dtODkwMy5oCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204OTAz LmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBleHRlcm4gaW50IHdtODkwM19taWNfZGV0ZWN0KHN0 cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKICNkZWZpbmUgV004OTAzX1ZNSURfQlVGX0VO QV9XSURUSCAgICAgICAgICAgICAgICAgICAgMSAgLyogVk1JRF9CVUZfRU5BICovCiAKICNk ZWZpbmUgV004OTAzX1ZNSURfUkVTXzUwSyAgICAgICAgICAgICAgICAgICAgICAgICAgMgot I2RlZmluZSBXTTg5MDNfVk1JRF9SRVNfMjUwSyAgICAgICAgICAgICAgICAgICAgICAgICAz CisjZGVmaW5lIFdNODkwM19WTUlEX1JFU18yNTBLICAgICAgICAgICAgICAgICAgICAgICAg IDQKICNkZWZpbmUgV004OTAzX1ZNSURfUkVTXzVLICAgICAgICAgICAgICAgICAgICAgICAg ICAgNgogCiAvKgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg5NTUuYyBiL3Nv dW5kL3NvYy9jb2RlY3Mvd204OTU1LmMKaW5kZXggNDY5NmY2Ni4uMDdiNzhhOSAxMDA2NDQK LS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg5NTUuYworKysgYi9zb3VuZC9zb2MvY29kZWNz L3dtODk1NS5jCkBAIC0yOTgsNyArMjk4LDcgQEAgc3RhdGljIGludCB3bTg5NTVfY29uZmln dXJlX2Nsb2NraW5nKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIAkJc25kX3NvY191 cGRhdGVfYml0cyhjb2RlYywgV004OTU1X1BMTF9DT05UUk9MXzIsCiAJCQkJICAgIFdNODk1 NV9LXzE3XzlfTUFTSywKIAkJCQkgICAgKHBsbC5rID4+IDkpICYgV004OTU1X0tfMTdfOV9N QVNLKTsKLQkJc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywgV004OTU1X1BMTF9DT05UUk9M XzIsCisJCXNuZF9zb2NfdXBkYXRlX2JpdHMoY29kZWMsIFdNODk1NV9QTExfQ09OVFJPTF8z LAogCQkJCSAgICBXTTg5NTVfS184XzBfTUFTSywKIAkJCQkgICAgcGxsLmsgJiBXTTg5NTVf S184XzBfTUFTSyk7CiAJCWlmIChwbGwuaykKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2Rl Y3Mvd204OTYwLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtODk2MC5jCmluZGV4IGVkOTg2ZTYu LmJkM2M2ZWYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvd204OTYwLmMKKysrIGIv c291bmQvc29jL2NvZGVjcy93bTg5NjAuYwpAQCAtMTgzLDcgKzE4Myw3IEBAIFNPQ19TSU5H TEUoIlBDTSBQbGF5YmFjayAtNmRCIFN3aXRjaCIsIFdNODk2MF9EQUNDVEwxLCA3LCAxLCAw KSwKIFNPQ19FTlVNKCJBREMgUG9sYXJpdHkiLCB3bTg5NjBfZW51bVswXSksCiBTT0NfU0lO R0xFKCJBREMgSGlnaCBQYXNzIEZpbHRlciBTd2l0Y2giLCBXTTg5NjBfREFDQ1RMMSwgMCwg MSwgMCksCiAKLVNPQ19FTlVNKCJEQUMgUG9sYXJpdHkiLCB3bTg5NjBfZW51bVsyXSksCitT T0NfRU5VTSgiREFDIFBvbGFyaXR5Iiwgd204OTYwX2VudW1bMV0pLAogU09DX1NJTkdMRV9C T09MX0VYVCgiREFDIERlZW1waGFzaXMgU3dpdGNoIiwgMCwKIAkJICAgIHdtODk2MF9nZXRf ZGVlbXBoLCB3bTg5NjBfcHV0X2RlZW1waCksCiAK --------------090202030107010601060406--