From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12343 invoked by alias); 21 Jun 2009 12:26:03 -0000 Received: (qmail 12321 invoked by uid 22791); 21 Jun 2009 12:25:54 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_46,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-pz0-f196.google.com (HELO mail-pz0-f196.google.com) (209.85.222.196) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 21 Jun 2009 12:25:42 +0000 Received: by pzk34 with SMTP id 34so2715583pzk.12 for ; Sun, 21 Jun 2009 05:25:39 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.214.12 with SMTP id m12mr2217475wfg.119.1245587139545; Sun, 21 Jun 2009 05:25:39 -0700 (PDT) In-Reply-To: References: Date: Sun, 21 Jun 2009 12:26:00 -0000 Message-ID: Subject: Re: [Precord RFA/RFC] Add process record Linux system call 64 bits support From: Hui Zhu To: gdb-patches ml Content-Type: multipart/mixed; boundary=000e0cd32d18fd4de5046cdada1b X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-06/txt/msg00546.txt.bz2 --000e0cd32d18fd4de5046cdada1b Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 994 Add a very small comment, just 1 line. Thanks, Hui On Sat, Jun 20, 2009 at 16:04, Hui Zhu wrote: > > Hi everyone, > > The linux-record has a lot of 32 bits special code (uint32_t and so > on). Then it can't support other bits. > I make a patch to remove all of them (Change them to ULONGEST and > extract_unsigned_integer) and make it support other bits better. > > 2009-06-19 =A0Hui Zhu =A0 > > =A0 =A0 =A0 =A0Add process record Linux system call 64 bits support. > > =A0 =A0 =A0 =A0* linux-record.h (linux_record_tdep): Add size_pointer, > =A0 =A0 =A0 =A0size_size_t, size_iovec. > =A0 =A0 =A0 =A0* i386-linux-tdep.c (i386_linux_init_abi): Ditto. > =A0 =A0 =A0 =A0* linux-record.c (record_linux_system_call): Make this > =A0 =A0 =A0 =A0function support 64 bits. > > Please help me review it. > > And I had post amd64 insn prec support in > http://sourceware.org/ml/gdb-patches/2009-06/msg00293.html > Please help me review it too. > > Thanks, > Hui --000e0cd32d18fd4de5046cdada1b Content-Type: text/plain; charset=US-ASCII; name="prec_syscall_64bits.txt" Content-Disposition: attachment; filename="prec_syscall_64bits.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fw7qegzj1 Content-length: 125111 LS0tCiBpMzg2LWxpbnV4LXRkZXAuYyB8ICAgIDMgCiBsaW51eC1yZWNvcmQu YyAgICB8IDEzODggKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaW51eC1yZWNvcmQuaCAgICB8ICAg IDQgCiAzIGZpbGVzIGNoYW5nZWQsIDc3NSBpbnNlcnRpb25zKCspLCA2MjAg ZGVsZXRpb25zKC0pCgotLS0gYS9pMzg2LWxpbnV4LXRkZXAuYworKysgYi9p Mzg2LWxpbnV4LXRkZXAuYwpAQCAtNDc5LDYgKzQ3OSw3IEBAIGkzODZfbGlu dXhfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8KICAgLyogSW5pdGlh bGl6ZSB0aGUgaTM4Nl9saW51eF9yZWNvcmRfdGRlcC4gICovCiAgIC8qIFRo ZXNlIHZhbHVlcyBhcmUgdGhlIHNpemUgb2YgdGhlIHR5cGUgdGhhdCB3aWxs IGJlIHVzZWQgaW4gYSBzeXN0ZW0KICAgICAgY2FsbC4gIFRoZXkgYXJlIG9i dGFpbmVkIGZyb20gTGludXggS2VybmVsIHNvdXJjZS4gICovCisgIGkzODZf bGludXhfcmVjb3JkX3RkZXAuc2l6ZV9wb2ludGVyID0gNDsKICAgaTM4Nl9s aW51eF9yZWNvcmRfdGRlcC5zaXplX19vbGRfa2VybmVsX3N0YXQgPSAzMjsK ICAgaTM4Nl9saW51eF9yZWNvcmRfdGRlcC5zaXplX3RtcyA9IDE2OwogICBp Mzg2X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfbG9mZl90ID0gODsKQEAgLTU0 NCw2ICs1NDUsOCBAQCBpMzg2X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2Ri YXJjaF9pbmZvCiAgIGkzODZfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9zZXJp YWxfc3RydWN0ID0gNjA7CiAgIGkzODZfbGludXhfcmVjb3JkX3RkZXAuc2l6 ZV9zZXJpYWxfaWNvdW50ZXJfc3RydWN0ID0gODA7CiAgIGkzODZfbGludXhf cmVjb3JkX3RkZXAuc2l6ZV9oYXllc19lc3BfY29uZmlnID0gMTI7CisgIGkz ODZfbGludXhfcmVjb3JkX3RkZXAuc2l6ZV9zaXplX3QgPSA0OworICBpMzg2 X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfaW92ZWMgPSA4OwogCiAgIC8qIFRo ZXNlIHZhbHVlcyBhcmUgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBzeXN0ZW0g Y2FsbCAic3lzX2lvY3RsIi4KICAgICAgVGhleSBhcmUgb2J0YWluZWQgZnJv bSBMaW51eCBLZXJuZWwgc291cmNlLiAgKi8KLS0tIGEvbGludXgtcmVjb3Jk LmMKKysrIGIvbGludXgtcmVjb3JkLmMKQEAgLTE5LDYgKzE5LDcgQEAKIAog I2luY2x1ZGUgImRlZnMuaCIKICNpbmNsdWRlICJ0YXJnZXQuaCIKKyNpbmNs dWRlICJnZGJ0eXBlcy5oIgogI2luY2x1ZGUgInJlZ2NhY2hlLmgiCiAjaW5j bHVkZSAicmVjb3JkLmgiCiAjaW5jbHVkZSAibGludXgtcmVjb3JkLmgiCkBA IC05MiwxMSArOTMsMTQgQEAKIAogICAgUmV0dXJuIC0xIGlmIHNvbWV0aGlu ZyB3cm9uZy4gICovCiAKKyNkZWZpbmUgT1VUUFVUX1JFRyh2YWwsIG51bSkg ICAgICBwaGV4X256ICgodmFsKSwgXAorICAgIFRZUEVfTEVOR1RIIChnZGJh cmNoX3JlZ2lzdGVyX3R5cGUgKGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNo ZSksIChudW0pKSkpCisKIGludAogcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxs IChpbnQgbnVtLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogCQkJICBz dHJ1Y3QgbGludXhfcmVjb3JkX3RkZXAgKnRkZXApCiB7Ci0gIHVpbnQzMl90 IHRtcHUzMjsKKyAgVUxPTkdFU1QgdG1wdWxvbmdlc3Q7CiAKICAgc3dpdGNo IChudW0pCiAgICAgewpAQCAtMTI2LDEwICsxMzAsMTAgQEAgcmVjb3JkX2xp bnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogICAgICAgLyogc3lz X3JlYWQgKi8KICAgICBjYXNlIDM6CiAgICAgICB7Ci0JdWludDMyX3QgYWRk ciwgY291bnQ7Ci0JcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVw LT5hcmcyLCAoZ2RiX2J5dGUgKikgJiBhZGRyKTsKLQlyZWdjYWNoZV9yYXdf cmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsIChnZGJfYnl0ZSAqKSAmIGNv dW50KTsKLQlpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtIChhZGRyLCBj b3VudCkpCisJVUxPTkdFU1QgYWRkciwgY291bnQ7CisJcmVnY2FjaGVfcmF3 X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAmYWRkcik7 CisJcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVw LT5hcmczLCAmY291bnQpOworCWlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9t ZW0gKChDT1JFX0FERFIpYWRkciwgKGludCljb3VudCkpCiAJICByZXR1cm4g LTE7CiAgICAgICB9CiAgICAgICBicmVhazsKQEAgLTE3MCw4ICsxNzQsOSBA QCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0sIHN0cnVjCiAg ICAgY2FzZSAyODoKICAgICAgIC8qIHN5c19sc3RhdCAqLwogICAgIGNhc2Ug ODQ6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAt PmFyZzIsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNpemVfX29s ZF9rZXJuZWxfc3RhdCkpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNp Z25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2VzdCk7Cisg ICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERS KXRtcHVsb25nZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGRlcC0+c2l6ZV9fb2xkX2tlcm5lbF9zdGF0KSkKIAlyZXR1cm4g LTE7CiAgICAgICBicmVhazsKIApAQCAtMTkzLDE0ICsxOTgsMTQgQEAgcmVj b3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAg ICAvKiBzeXNfcHRyYWNlICovCiAgICAgY2FzZSAyNjoKLSAgICAgIHJlZ2Nh Y2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMSwgKGdkYl9ieXRl ICopICYgdG1wdTMyKTsKLSAgICAgIGlmICh0bXB1MzIgPT0gUkVDT1JEX1BU UkFDRV9QRUVLVEVYVAotCSAgfHwgdG1wdTMyID09IFJFQ09SRF9QVFJBQ0Vf UEVFS0RBVEEKLQkgIHx8IHRtcHUzMiA9PSBSRUNPUkRfUFRSQUNFX1BFRUtV U1IpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2Fj aGUsIHRkZXAtPmFyZzEsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAodG1w dWxvbmdlc3QgPT0gUkVDT1JEX1BUUkFDRV9QRUVLVEVYVAorCSAgfHwgdG1w dWxvbmdlc3QgPT0gUkVDT1JEX1BUUkFDRV9QRUVLREFUQQorCSAgfHwgdG1w dWxvbmdlc3QgPT0gUkVDT1JEX1BUUkFDRV9QRUVLVVNSKQogCXsKLQkgIHJl Z2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnNCwKLQkJCSAg ICAgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLQkgIGlmIChyZWNvcmRfYXJj aF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgNCkpCisJICByZWdjYWNoZV9yYXdf cmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzQsCisJCQkgICAg ICAgICAgICAgICZ0bXB1bG9uZ2VzdCk7CisJICBpZiAocmVjb3JkX2FyY2hf bGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LCA0KSkKIAkg ICAgcmV0dXJuIC0xOwogCX0KICAgICAgIGJyZWFrOwpAQCAtMjM5LDggKzI0 NCw4IEBAIHJlY29yZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3Ry dWMKIAogICAgICAgLyogc3lzX3RpbWVzICovCiAgICAgY2FzZSA0MzoKLSAg ICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMSwg KGdkYl9ieXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNvcmRfYXJj aF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV90bXMpKQorICAg ICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVw LT5hcmcxLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNo X2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwgdGRlcC0+ c2l6ZV90bXMpKQogCXJldHVybiAtMTsKICAgICAgIGJyZWFrOwogCkBAIC0y NjksMTIzICsyNzQsMTQ1IEBAIHJlY29yZF9saW51eF9zeXN0ZW1fY2FsbCAo aW50IG51bSwgc3RydWMKICAgICAgIC8qIHN5c19pb2N0bCAqLwogICAgIGNh c2UgNTQ6CiAgICAgICAvKiBYWFggTmVlZCB0byBhZGQgYSBsb3Qgb2Ygc3Vw cG9ydCBvZiBvdGhlciBpb2N0bCByZXF1ZXN0cy4gICovCi0gICAgICByZWdj YWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsIChnZGJfYnl0 ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAodG1wdTMyID09IHRkZXAtPmlv Y3RsX0ZJT0NMRVggfHwgdG1wdTMyID09IHRkZXAtPmlvY3RsX0ZJT05DTEVY Ci0JICB8fCB0bXB1MzIgPT0gdGRlcC0+aW9jdGxfRklPTkJJTyB8fCB0bXB1 MzIgPT0gdGRlcC0+aW9jdGxfRklPQVNZTkMKLQkgIHx8IHRtcHUzMiA9PSB0 ZGVwLT5pb2N0bF9UQ1NFVFMgfHwgdG1wdTMyID09IHRkZXAtPmlvY3RsX1RD U0VUU1cKLQkgIHx8IHRtcHUzMiA9PSB0ZGVwLT5pb2N0bF9UQ1NFVFNGIHx8 IHRtcHUzMiA9PSB0ZGVwLT5pb2N0bF9UQ1NFVEEKLQkgIHx8IHRtcHUzMiA9 PSB0ZGVwLT5pb2N0bF9UQ1NFVEFXIHx8IHRtcHUzMiA9PSB0ZGVwLT5pb2N0 bF9UQ1NFVEFGCi0JICB8fCB0bXB1MzIgPT0gdGRlcC0+aW9jdGxfVENTQlJL IHx8IHRtcHUzMiA9PSB0ZGVwLT5pb2N0bF9UQ1hPTkMKLQkgIHx8IHRtcHUz MiA9PSB0ZGVwLT5pb2N0bF9UQ0ZMU0ggfHwgdG1wdTMyID09IHRkZXAtPmlv Y3RsX1RJT0NFWENMCi0JICB8fCB0bXB1MzIgPT0gdGRlcC0+aW9jdGxfVElP Q05YQ0wKLQkgIHx8IHRtcHUzMiA9PSB0ZGVwLT5pb2N0bF9USU9DU0NUVFkK LQkgIHx8IHRtcHUzMiA9PSB0ZGVwLT5pb2N0bF9USU9DU1BHUlAgfHwgdG1w dTMyID09IHRkZXAtPmlvY3RsX1RJT0NTVEkKLQkgIHx8IHRtcHUzMiA9PSB0 ZGVwLT5pb2N0bF9USU9DU1dJTlNaCi0JICB8fCB0bXB1MzIgPT0gdGRlcC0+ aW9jdGxfVElPQ01CSVMgfHwgdG1wdTMyID09IHRkZXAtPmlvY3RsX1RJT0NN QklDCi0JICB8fCB0bXB1MzIgPT0gdGRlcC0+aW9jdGxfVElPQ01TRVQKLQkg IHx8IHRtcHUzMiA9PSB0ZGVwLT5pb2N0bF9USU9DU1NPRlRDQVIKLQkgIHx8 IHRtcHUzMiA9PSB0ZGVwLT5pb2N0bF9USU9DQ09OUwotCSAgfHwgdG1wdTMy ID09IHRkZXAtPmlvY3RsX1RJT0NTU0VSSUFMCi0JICB8fCB0bXB1MzIgPT0g dGRlcC0+aW9jdGxfVElPQ1BLVCB8fCB0bXB1MzIgPT0gdGRlcC0+aW9jdGxf VElPQ05PVFRZCi0JICB8fCB0bXB1MzIgPT0gdGRlcC0+aW9jdGxfVElPQ1NF VEQgfHwgdG1wdTMyID09IHRkZXAtPmlvY3RsX1RDU0JSS1AKLQkgIHx8IHRt cHUzMiA9PSB0ZGVwLT5pb2N0bF9USU9DVFRZR1NUUlVDVAotCSAgfHwgdG1w dTMyID09IHRkZXAtPmlvY3RsX1RJT0NTQlJLIHx8IHRtcHUzMiA9PSB0ZGVw LT5pb2N0bF9USU9DQ0JSSwotCSAgfHwgdG1wdTMyID09IHRkZXAtPmlvY3Rs X1RDU0VUUzIgfHwgdG1wdTMyID09IHRkZXAtPmlvY3RsX1RDU0VUU1cyCi0J ICB8fCB0bXB1MzIgPT0gdGRlcC0+aW9jdGxfVENTRVRTRjIKLQkgIHx8IHRt cHUzMiA9PSB0ZGVwLT5pb2N0bF9USU9DU1BUTENLCi0JICB8fCB0bXB1MzIg PT0gdGRlcC0+aW9jdGxfVElPQ1NFUkNPTkZJRwotCSAgfHwgdG1wdTMyID09 IHRkZXAtPmlvY3RsX1RJT0NTRVJHV0lMRAotCSAgfHwgdG1wdTMyID09IHRk ZXAtPmlvY3RsX1RJT0NTRVJTV0lMRAotCSAgfHwgdG1wdTMyID09IHRkZXAt PmlvY3RsX1RJT0NTTENLVFJNSU9TCi0JICB8fCB0bXB1MzIgPT0gdGRlcC0+ aW9jdGxfVElPQ1NFUkdFVE1VTFRJCi0JICB8fCB0bXB1MzIgPT0gdGRlcC0+ aW9jdGxfVElPQ1NFUlNFVE1VTFRJCi0JICB8fCB0bXB1MzIgPT0gdGRlcC0+ aW9jdGxfVElPQ01JV0FJVAotCSAgfHwgdG1wdTMyID09IHRkZXAtPmlvY3Rs X1RJT0NTSEFZRVNFU1ApCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNp Z25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2VzdCk7Cisg ICAgICBpZiAodG1wdWxvbmdlc3QgPT0gdGRlcC0+aW9jdGxfRklPQ0xFWAor ICAgICAgICAgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX0ZJT05D TEVYCisJICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9GSU9OQklP CisgICAgICAgICAgfHwgdG1wdWxvbmdlc3QgPT0gdGRlcC0+aW9jdGxfRklP QVNZTkMKKwkgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX1RDU0VU UworICAgICAgICAgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX1RD U0VUU1cKKwkgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX1RDU0VU U0YKKyAgICAgICAgICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9U Q1NFVEEKKwkgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX1RDU0VU QVcKKyAgICAgICAgICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9U Q1NFVEFGCisJICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9UQ1NC UksKKyAgICAgICAgICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9U Q1hPTkMKKwkgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX1RDRkxT SAorICAgICAgICAgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX1RJ T0NFWENMCisJICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9USU9D TlhDTAorCSAgfHwgdG1wdWxvbmdlc3QgPT0gdGRlcC0+aW9jdGxfVElPQ1ND VFRZCisJICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9USU9DU1BH UlAKKyAgICAgICAgICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9U SU9DU1RJCisJICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9USU9D U1dJTlNaCisJICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9USU9D TUJJUworICAgICAgICAgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3Rs X1RJT0NNQklDCisJICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9U SU9DTVNFVAorCSAgfHwgdG1wdWxvbmdlc3QgPT0gdGRlcC0+aW9jdGxfVElP Q1NTT0ZUQ0FSCisJICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9U SU9DQ09OUworCSAgfHwgdG1wdWxvbmdlc3QgPT0gdGRlcC0+aW9jdGxfVElP Q1NTRVJJQUwKKwkgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX1RJ T0NQS1QKKyAgICAgICAgICB8fCB0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0 bF9USU9DTk9UVFkKKwkgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3Rs X1RJT0NTRVRECisgICAgICAgICAgfHwgdG1wdWxvbmdlc3QgPT0gdGRlcC0+ aW9jdGxfVENTQlJLUAorCSAgfHwgdG1wdWxvbmdlc3QgPT0gdGRlcC0+aW9j dGxfVElPQ1RUWUdTVFJVQ1QKKwkgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAt PmlvY3RsX1RJT0NTQlJLCisgICAgICAgICAgfHwgdG1wdWxvbmdlc3QgPT0g dGRlcC0+aW9jdGxfVElPQ0NCUksKKwkgIHx8IHRtcHVsb25nZXN0ID09IHRk ZXAtPmlvY3RsX1RDU0VUUzIKKyAgICAgICAgICB8fCB0bXB1bG9uZ2VzdCA9 PSB0ZGVwLT5pb2N0bF9UQ1NFVFNXMgorCSAgfHwgdG1wdWxvbmdlc3QgPT0g dGRlcC0+aW9jdGxfVENTRVRTRjIKKwkgIHx8IHRtcHVsb25nZXN0ID09IHRk ZXAtPmlvY3RsX1RJT0NTUFRMQ0sKKwkgIHx8IHRtcHVsb25nZXN0ID09IHRk ZXAtPmlvY3RsX1RJT0NTRVJDT05GSUcKKwkgIHx8IHRtcHVsb25nZXN0ID09 IHRkZXAtPmlvY3RsX1RJT0NTRVJHV0lMRAorCSAgfHwgdG1wdWxvbmdlc3Qg PT0gdGRlcC0+aW9jdGxfVElPQ1NFUlNXSUxECisJICB8fCB0bXB1bG9uZ2Vz dCA9PSB0ZGVwLT5pb2N0bF9USU9DU0xDS1RSTUlPUworCSAgfHwgdG1wdWxv bmdlc3QgPT0gdGRlcC0+aW9jdGxfVElPQ1NFUkdFVE1VTFRJCisJICB8fCB0 bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9USU9DU0VSU0VUTVVMVEkKKwkg IHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX1RJT0NNSVdBSVQKKwkg IHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX1RJT0NTSEFZRVNFU1Ap CiAJewogCSAgLyogTm90aGluZyB0byBkby4gICovCiAJfQotICAgICAgZWxz ZSBpZiAodG1wdTMyID09IHRkZXAtPmlvY3RsX1RDR0VUUyB8fCB0bXB1MzIg PT0gdGRlcC0+aW9jdGxfVENHRVRBCi0JICAgICAgIHx8IHRtcHUzMiA9PSB0 ZGVwLT5pb2N0bF9USU9DR0xDS1RSTUlPUykKKyAgICAgIGVsc2UgaWYgKHRt cHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX1RDR0VUUworICAgICAgICAgICAg ICAgfHwgdG1wdWxvbmdlc3QgPT0gdGRlcC0+aW9jdGxfVENHRVRBCisJICAg ICAgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX1RJT0NHTENLVFJN SU9TKQogCXsKLQkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRl cC0+YXJnMywKLQkJCSAgICAgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLQkg IGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+ c2l6ZV90ZXJtaW9zKSkKKwkgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVk IChyZWdjYWNoZSwgdGRlcC0+YXJnMywKKwkJCSAgICAgICAgICAgICAgJnRt cHVsb25nZXN0KTsKKwkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0g KChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV90ZXJtaW9zKSkKIAkg ICAgcmV0dXJuIC0xOwogCX0KLSAgICAgIGVsc2UgaWYgKHRtcHUzMiA9PSB0 ZGVwLT5pb2N0bF9USU9DR1BHUlAKLQkgICAgICAgfHwgdG1wdTMyID09IHRk ZXAtPmlvY3RsX1RJT0NHU0lEKQorICAgICAgZWxzZSBpZiAodG1wdWxvbmdl c3QgPT0gdGRlcC0+aW9jdGxfVElPQ0dQR1JQCisJICAgICAgIHx8IHRtcHVs b25nZXN0ID09IHRkZXAtPmlvY3RsX1RJT0NHU0lEKQogCXsKLQkgIHJlZ2Nh Y2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywKLQkJCSAgICAg KGdkYl9ieXRlICopICYgdG1wdTMyKTsKLQkgIGlmIChyZWNvcmRfYXJjaF9s aXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV9waWRfdCkpCisJICBy ZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFy ZzMsCisJCQkgICAgICAgICAgICAgICZ0bXB1bG9uZ2VzdCk7CisJICBpZiAo cmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25n ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRkZXAtPnNpemVfcGlkX3QpKQogCSAgICByZXR1cm4gLTE7CiAJfQotICAg ICAgZWxzZSBpZiAodG1wdTMyID09IHRkZXAtPmlvY3RsX1RJT0NPVVRRCi0J ICAgICAgIHx8IHRtcHUzMiA9PSB0ZGVwLT5pb2N0bF9USU9DTUdFVAotCSAg ICAgICB8fCB0bXB1MzIgPT0gdGRlcC0+aW9jdGxfVElPQ0dTT0ZUQ0FSCi0J ICAgICAgIHx8IHRtcHUzMiA9PSB0ZGVwLT5pb2N0bF9GSU9OUkVBRAotCSAg ICAgICB8fCB0bXB1MzIgPT0gdGRlcC0+aW9jdGxfVElPQ0lOUQotCSAgICAg ICB8fCB0bXB1MzIgPT0gdGRlcC0+aW9jdGxfVElPQ0dFVEQKLQkgICAgICAg fHwgdG1wdTMyID09IHRkZXAtPmlvY3RsX1RJT0NHUFROCi0JICAgICAgIHx8 IHRtcHUzMiA9PSB0ZGVwLT5pb2N0bF9USU9DU0VSR0VUTFNSKQorICAgICAg ZWxzZSBpZiAodG1wdWxvbmdlc3QgPT0gdGRlcC0+aW9jdGxfVElPQ09VVFEK KwkgICAgICAgfHwgdG1wdWxvbmdlc3QgPT0gdGRlcC0+aW9jdGxfVElPQ01H RVQKKwkgICAgICAgfHwgdG1wdWxvbmdlc3QgPT0gdGRlcC0+aW9jdGxfVElP Q0dTT0ZUQ0FSCisJICAgICAgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAtPmlv Y3RsX0ZJT05SRUFECisJICAgICAgIHx8IHRtcHVsb25nZXN0ID09IHRkZXAt PmlvY3RsX1RJT0NJTlEKKwkgICAgICAgfHwgdG1wdWxvbmdlc3QgPT0gdGRl cC0+aW9jdGxfVElPQ0dFVEQKKwkgICAgICAgfHwgdG1wdWxvbmdlc3QgPT0g dGRlcC0+aW9jdGxfVElPQ0dQVE4KKwkgICAgICAgfHwgdG1wdWxvbmdlc3Qg PT0gdGRlcC0+aW9jdGxfVElPQ1NFUkdFVExTUikKIAl7Ci0JICByZWdjYWNo ZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsCi0JCQkgICAgIChn ZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0JICBpZiAocmVjb3JkX2FyY2hfbGlz dF9hZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNpemVfaW50KSkKKwkgIHJlZ2Nh Y2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywK KwkJCSAgICAgICAgICAgICAgJnRtcHVsb25nZXN0KTsKKwkgIGlmIChyZWNv cmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3Qs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRl cC0+c2l6ZV9pbnQpKQogCSAgICByZXR1cm4gLTE7CiAJfQotICAgICAgZWxz ZSBpZiAodG1wdTMyID09IHRkZXAtPmlvY3RsX1RJT0NHV0lOU1opCisgICAg ICBlbHNlIGlmICh0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9USU9DR1dJ TlNaKQogCXsKLQkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRl cC0+YXJnMywKLQkJCSAgICAgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLQkg IGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+ c2l6ZV93aW5zaXplKSkKKwkgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVk IChyZWdjYWNoZSwgdGRlcC0+YXJnMywKKwkJCSAgICAgICAgICAgICAgJnRt cHVsb25nZXN0KTsKKwkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0g KChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV93aW5zaXplKSkKIAkg ICAgcmV0dXJuIC0xOwogCX0KLSAgICAgIGVsc2UgaWYgKHRtcHUzMiA9PSB0 ZGVwLT5pb2N0bF9USU9DTElOVVgpCisgICAgICBlbHNlIGlmICh0bXB1bG9u Z2VzdCA9PSB0ZGVwLT5pb2N0bF9USU9DTElOVVgpCiAJewotCSAgcmVnY2Fj aGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLAotCQkJICAgICAo Z2RiX2J5dGUgKikgJiB0bXB1MzIpOworCSAgcmVnY2FjaGVfcmF3X3JlYWRf dW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLAorCQkJICAgICAgICAg ICAgICAmdG1wdWxvbmdlc3QpOwogICAgICAgICAgIC8qIFRoaXMgc3lzY2Fs bCBhZmZlY3QgYSBjaGFyIHNpemUgbWVtb3J5LiAgKi8KLQkgIGlmIChyZWNv cmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgMSkpCisJICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0 LCAxKSkKIAkgICAgcmV0dXJuIC0xOwogCX0KLSAgICAgIGVsc2UgaWYgKHRt cHUzMiA9PSB0ZGVwLT5pb2N0bF9USU9DR1NFUklBTCkKKyAgICAgIGVsc2Ug aWYgKHRtcHVsb25nZXN0ID09IHRkZXAtPmlvY3RsX1RJT0NHU0VSSUFMKQog CXsKLQkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJn MywKLQkJCSAgICAgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLQkgIGlmIChy ZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV9z ZXJpYWxfc3RydWN0KSkKKwkgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVk IChyZWdjYWNoZSwgdGRlcC0+YXJnMywKKwkJCSAgICAgICAgICAgICAgJnRt cHVsb25nZXN0KTsKKwkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0g KChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9zZXJpYWxfc3RydWN0 KSkKIAkgICAgcmV0dXJuIC0xOwogCX0KLSAgICAgIGVsc2UgaWYgKHRtcHUz MiA9PSB0ZGVwLT5pb2N0bF9UQ0dFVFMyKQorICAgICAgZWxzZSBpZiAodG1w dWxvbmdlc3QgPT0gdGRlcC0+aW9jdGxfVENHRVRTMikKIAl7Ci0JICByZWdj YWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsCi0JCQkgICAg IChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0JICBpZiAocmVjb3JkX2FyY2hf bGlzdF9hZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNpemVfdGVybWlvczIpKQor CSAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVw LT5hcmczLAorCQkJICAgICAgICAgICAgICAmdG1wdWxvbmdlc3QpOworCSAg aWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1 bG9uZ2VzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ZGVwLT5zaXplX3Rlcm1pb3MyKSkKIAkgICAgcmV0dXJuIC0xOwog CX0KLSAgICAgIGVsc2UgaWYgKHRtcHUzMiA9PSB0ZGVwLT5pb2N0bF9GSU9R U0laRSkKKyAgICAgIGVsc2UgaWYgKHRtcHVsb25nZXN0ID09IHRkZXAtPmlv Y3RsX0ZJT1FTSVpFKQogCXsKLQkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdj YWNoZSwgdGRlcC0+YXJnMywKLQkJCSAgICAgKGdkYl9ieXRlICopICYgdG1w dTMyKTsKLQkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUz MiwgdGRlcC0+c2l6ZV9sb2ZmX3QpKQorCSAgcmVnY2FjaGVfcmF3X3JlYWRf dW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLAorCQkJICAgICAgICAg ICAgICAmdG1wdWxvbmdlc3QpOworCSAgaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX2xvZmZf dCkpCiAJICAgIHJldHVybiAtMTsKIAl9Ci0gICAgICBlbHNlIGlmICh0bXB1 MzIgPT0gdGRlcC0+aW9jdGxfVElPQ0dJQ09VTlQpCisgICAgICBlbHNlIGlm ICh0bXB1bG9uZ2VzdCA9PSB0ZGVwLT5pb2N0bF9USU9DR0lDT1VOVCkKIAl7 Ci0JICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMs Ci0JCQkgICAgIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0JICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfbWVtCi0JICAgICAgKHRtcHUzMiwgdGRlcC0+ c2l6ZV9zZXJpYWxfaWNvdW50ZXJfc3RydWN0KSkKKwkgIHJlZ2NhY2hlX3Jh d19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywKKwkJCSAg ICAgICAgICAgICAgJnRtcHVsb25nZXN0KTsKKwkgIGlmIChyZWNvcmRfYXJj aF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6 ZV9zZXJpYWxfaWNvdW50ZXJfc3RydWN0KSkKIAkgICAgcmV0dXJuIC0xOwog CX0KLSAgICAgIGVsc2UgaWYgKHRtcHUzMiA9PSB0ZGVwLT5pb2N0bF9USU9D R0hBWUVTRVNQKQorICAgICAgZWxzZSBpZiAodG1wdWxvbmdlc3QgPT0gdGRl cC0+aW9jdGxfVElPQ0dIQVlFU0VTUCkKIAl7Ci0JICByZWdjYWNoZV9yYXdf cmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsCi0JCQkgICAgIChnZGJfYnl0 ZSAqKSAmIHRtcHUzMik7Ci0JICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRf bWVtICh0bXB1MzIsIHRkZXAtPnNpemVfaGF5ZXNfZXNwX2NvbmZpZykpCisJ ICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAt PmFyZzMsCisJCQkgICAgICAgICAgICAgICZ0bXB1bG9uZ2VzdCk7CisgICAg ICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQURE Uil0bXB1bG9uZ2VzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0ZGVwLT5zaXplX2hheWVzX2VzcF9jb25maWcpKQogCSAg ICByZXR1cm4gLTE7CiAJfQotICAgICAgZWxzZSBpZiAodG1wdTMyID09IHRk ZXAtPmlvY3RsX1RJT0NTRVJHU1RSVUNUKQorICAgICAgZWxzZSBpZiAodG1w dWxvbmdlc3QgPT0gdGRlcC0+aW9jdGxfVElPQ1NFUkdTVFJVQ1QpCiAJewog CSAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oIlByb2Nlc3MgcmVjb3JkIGFuZCBy ZXBsYXkgdGFyZ2V0IGRvZXNuJ3QgIgogCQkJICAgICAgICJzdXBwb3J0IGlv Y3RsIHJlcXVlc3QgVElPQ1NFUkdTVFJVQ1RcbiIpKTsKQEAgLTM5Myw5ICs0 MjAsOSBAQCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0sIHN0 cnVjCiAJfQogICAgICAgZWxzZQogCXsKLQkgIHByaW50Zl91bmZpbHRlcmVk IChfKCJQcm9jZXNzIHJlY29yZCBhbmQgcmVwbGF5IHRhcmdldCBkb2Vzbid0 ICIKLQkJCSAgICAgICAic3VwcG9ydCBpb2N0bCByZXF1ZXN0IDB4JXMuXG4i KSwKLQkJCSAgICAgcGhleF9ueiAodG1wdTMyLCA0KSk7CisgICAgICAgICAg cHJpbnRmX3VuZmlsdGVyZWQgKF8oIlByb2Nlc3MgcmVjb3JkIGFuZCByZXBs YXkgdGFyZ2V0IGRvZXNuJ3QgIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJzdXBwb3J0IGlvY3RsIHJlcXVlc3QgMHglcy5cbiIpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPVVRQVVRfUkVHICh0bXB1bG9u Z2VzdCwgdGRlcC0+YXJnMikpOwogCSAgcmV0dXJuIDE7CiAJfQogICAgICAg YnJlYWs7CkBAIC00MDMsMTMgKzQzMCwxNCBAQCByZWNvcmRfbGludXhfc3lz dGVtX2NhbGwgKGludCBudW0sIHN0cnVjCiAgICAgICAvKiBzeXNfZmNudGwg Ki8KICAgICBjYXNlIDU1OgogICAgICAgLyogWFhYICovCi0gICAgICByZWdj YWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsIChnZGJfYnl0 ZSAqKSAmIHRtcHUzMik7CisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNp Z25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2VzdCk7CiAg ICAgc3lzX2ZjbnRsOgotICAgICAgaWYgKHRtcHUzMiA9PSB0ZGVwLT5mY250 bF9GX0dFVExLKQorICAgICAgaWYgKHRtcHVsb25nZXN0ID09IHRkZXAtPmZj bnRsX0ZfR0VUTEspCiAJewotCSAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2Nh Y2hlLCB0ZGVwLT5hcmczLAotCQkJICAgICAoZ2RiX2J5dGUgKikgJiB0bXB1 MzIpOwotCSAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMy LCB0ZGVwLT5zaXplX2Zsb2NrKSkKKwkgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vu c2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywKKwkJCSAgICAgICAgICAg ICAgJnRtcHVsb25nZXN0KTsKKyAgICAgICAgICBpZiAocmVjb3JkX2FyY2hf bGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkZXAtPnNpemVf ZmxvY2spKQogCSAgICByZXR1cm4gLTE7CiAJfQogICAgICAgYnJlYWs7CkBA IC00MjQsOCArNDUyLDkgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChp bnQgbnVtLCBzdHJ1YwogCiAgICAgICAvKiBzeXNfb2xkdW5hbWUgKi8KICAg ICBjYXNlIDU5OgotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hl LCB0ZGVwLT5hcmcxLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAg aWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5z aXplX29sZG9sZF91dHNuYW1lKSkKKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFk X3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMSwgJnRtcHVsb25nZXN0 KTsKKyAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JF X0FERFIpdG1wdWxvbmdlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0ZGVwLT5zaXplX29sZG9sZF91dHNuYW1lKSkKIAlyZXR1 cm4gLTE7CiAgICAgICBicmVhazsKIApAQCAtNDM3LDggKzQ2Niw5IEBAIHJl Y29yZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKIAogICAg ICAgLyogc3lzX3VzdGF0ICovCiAgICAgY2FzZSA2MjoKLSAgICAgIHJlZ2Nh Y2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwgKGdkYl9ieXRl ICopICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2Fk ZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV91c3RhdCkpCisgICAgICByZWdj YWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIs ICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9h ZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV91c3RhdCkpCiAJ cmV0dXJuIC0xOwogICAgICAgYnJlYWs7CiAKQEAgLTQ1NCw4ICs0ODQsOSBA QCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0sIHN0cnVjCiAK ICAgICAgIC8qIHN5c19zaWdhY3Rpb24gKi8KICAgICBjYXNlIDY3OgotICAg ICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAo Z2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNo X2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX29sZF9zaWdhY3Rp b24pKQorICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2Nh Y2hlLCB0ZGVwLT5hcmczLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHJl Y29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2Vz dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkZXAt PnNpemVfb2xkX3NpZ2FjdGlvbikpCiAJcmV0dXJuIC0xOwogICAgICAgYnJl YWs7CiAKQEAgLTQ3Myw4ICs1MDQsOSBAQCByZWNvcmRfbGludXhfc3lzdGVt X2NhbGwgKGludCBudW0sIHN0cnVjCiAKICAgICAgIC8qIHN5c19zaWdwZW5k aW5nICovCiAgICAgY2FzZSA3MzoKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFk IChyZWdjYWNoZSwgdGRlcC0+YXJnMSwgKGdkYl9ieXRlICopICYgdG1wdTMy KTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUz MiwgdGRlcC0+c2l6ZV9vbGRfc2lnc2V0X3QpKQorICAgICAgcmVnY2FjaGVf cmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcxLCAmdG1w dWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRkZXAtPnNpemVfb2xkX3NpZ3NldF90KSkK IAlyZXR1cm4gLTE7CiAgICAgICBicmVhazsKIApAQCAtNDg2LDI1ICs1MTgs MjkgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1 YwogCiAgICAgICAvKiBzeXNfb2xkX2dldHJsaW1pdCAqLwogICAgIGNhc2Ug NzY6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAt PmFyZzIsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNpemVfcmxp bWl0KSkKKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdj YWNoZSwgdGRlcC0+YXJnMiwgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlmIChy ZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdl c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVw LT5zaXplX3JsaW1pdCkpCiAJcmV0dXJuIC0xOwogICAgICAgYnJlYWs7CiAK ICAgICAgIC8qIHN5c19nZXRydXNhZ2UgKi8KICAgICBjYXNlIDc3OgotICAg ICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAo Z2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNo X2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX3J1c2FnZSkpCisg ICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRk ZXAtPmFyZzIsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3JkX2Fy Y2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9y dXNhZ2UpKQogCXJldHVybiAtMTsKICAgICAgIGJyZWFrOwogCiAgICAgICAv KiBzeXNfZ2V0dGltZW9mZGF5ICovCiAgICAgY2FzZSA3ODoKLSAgICAgIHJl Z2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMSwgKGdkYl9i eXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0 X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV90aW1ldmFsKSkKKyAgICAg IHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+ YXJnMSwgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlmIChyZWNvcmRfYXJjaF9s aXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX3RpbWV2 YWwpKQogCXJldHVybiAtMTsKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChy ZWdjYWNoZSwgdGRlcC0+YXJnMiwgKGdkYl9ieXRlICopICYgdG1wdTMyKTsK LSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwg dGRlcC0+c2l6ZV90aW1lem9uZSkpCisgICAgICByZWdjYWNoZV9yYXdfcmVh ZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2Vz dCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09S RV9BRERSKXRtcHVsb25nZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGRlcC0+c2l6ZV90aW1lem9uZSkpCiAJcmV0dXJuIC0x OwogICAgICAgYnJlYWs7CiAKQEAgLTUxNCwxNSArNTUwLDE3IEBAIHJlY29y ZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKIAogICAgICAg Lyogc3lzX2dldGdyb3VwczE2ICovCiAgICAgY2FzZSA4MDoKLSAgICAgIHJl Z2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwgKGdkYl9i eXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0 X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV9vbGRfZ2lkX3QpKQorICAg ICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVw LT5hcmcyLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNo X2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkZXAtPnNpemVfb2xk X2dpZF90KSkKIAlyZXR1cm4gLTE7CiAgICAgICBicmVhazsKIAogICAgICAg Lyogc3lzX3NldGdyb3VwczE2ICovCiAgICAgY2FzZSA4MToKLSAgICAgIHJl Z2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwgKGdkYl9i eXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0 X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV9vbGRfZ2lkX3QpKQorICAg ICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVw LT5hcmcyLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNo X2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkZXAtPnNpemVfb2xk X2dpZF90KSkKIAlyZXR1cm4gLTE7CiAgICAgICBicmVhazsKIApAQCAtNTM4 LDE3ICs1NzYsMTggQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQg bnVtLCBzdHJ1YwogCSAgQ09SRV9BRERSIHR2cDsKIAl9IHNlbDsKIAotCXJl Z2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMSwKLQkJCSAg IChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0JaWYgKHRtcHUzMikKKwlyZWdj YWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEs CisJCQkgICAgICAgICAgICAmdG1wdWxvbmdlc3QpOworCWlmICh0bXB1bG9u Z2VzdCkKIAkgIHsKLQkgICAgaWYgKHRhcmdldF9yZWFkX21lbW9yeSAodG1w dTMyLCAoZ2RiX2J5dGUgKikgJiBzZWwsIHNpemVvZiAoc2VsKSkpCisJICAg IGlmICh0YXJnZXRfcmVhZF9tZW1vcnkgKHRtcHVsb25nZXN0LCAoZ2RiX2J5 dGUgKikmc2VsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mKHNlbCkpKQogCSAgICAgIHsKIAkJaWYgKHJlY29yZF9kZWJ1 ZykKIAkJICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAJCQkJ ICAgICAgIlByb2Nlc3MgcmVjb3JkOiBlcnJvciByZWFkaW5nIG1lbW9yeSAi CiAJCQkJICAgICAgImF0IGFkZHIgPSAweCVzIGxlbiA9ICVsdS5cbiIsCi0J CQkJICAgICAgcGFkZHJfbnogKHRtcHUzMiksCisJCQkJICAgICAgT1VUUFVU X1JFRyAodG1wdWxvbmdlc3QsIHRkZXAtPmFyZzEpLAogCQkJCSAgICAgICh1 bnNpZ25lZCBsb25nKXNpemVvZiAoc2VsKSk7CiAJCXJldHVybiAtMTsKIAkg ICAgICB9CkBAIC01NzEsMTEgKzYxMCwxMSBAQCByZWNvcmRfbGludXhfc3lz dGVtX2NhbGwgKGludCBudW0sIHN0cnVjCiAgICAgICAvKiBzeXNfcmVhZGxp bmsgKi8KICAgICBjYXNlIDg1OgogICAgICAgewotCXVpbnQzMl90IGxlbjsK LQlyZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsCi0J CQkgICAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotCXJlZ2NhY2hlX3Jhd19y ZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywgKGdkYl9ieXRlICopICYgbGVu KTsKLQlpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIGxl bikpCisJVUxPTkdFU1QgbGVuOworCXJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2ln bmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwKKwkJCSAgICAgICAgICAgICZ0 bXB1bG9uZ2VzdCk7CisJcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJl Z2NhY2hlLCB0ZGVwLT5hcmczLCAmbGVuKTsKKyAgICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwg KGludClsZW4pKQogCSAgcmV0dXJuIC0xOwogICAgICAgfQogICAgICAgYnJl YWs7CkBAIC02MDMsOCArNjQyLDkgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9j YWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAvKiBvbGRfcmVhZGRpciAq LwogICAgIGNhc2UgODk6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVn Y2FjaGUsIHRkZXAtPmFyZzIsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0g ICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHRk ZXAtPnNpemVfZGlyZW50KSkKKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vu c2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwgJnRtcHVsb25nZXN0KTsK KyAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FE RFIpdG1wdWxvbmdlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0ZGVwLT5zaXplX2RpcmVudCkpCiAJcmV0dXJuIC0xOwogICAg ICAgYnJlYWs7CiAKQEAgLTYxNiwxOCArNjU2LDE4IEBAIHJlY29yZF9saW51 eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKICAgICBjYXNlIDkxOgog ICAgICAgewogCWludCBxOwotCXVpbnQzMl90IGxlbjsKKwlVTE9OR0VTVCBs ZW47CiAKLQlyZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFy ZzEsCi0JCQkgICAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotCXJlZ2NhY2hl X3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwgKGdkYl9ieXRlICop ICYgbGVuKTsKKwlyZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2Fj aGUsIHRkZXAtPmFyZzEsCisJCQkgICAgICAgICAgICAmdG1wdWxvbmdlc3Qp OworCXJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRl cC0+YXJnMiwgJmxlbik7CiAJdGFyZ2V0X3Rlcm1pbmFsX291cnMgKCk7CiAJ cSA9CiAJICB5cXVlcnkgKF8oIlRoZSBuZXh0IGluc3RydWN0aW9uIGlzIHN5 c2NhbGwgbXVubWFwLiAgIgogCQkgICAgIkl0IHdpbGwgZnJlZSB0aGUgbWVt b3J5IGFkZHIgPSAweCVzIGxlbiA9ICV1LiAgIgogCQkgICAgIkl0IHdpbGwg bWFrZSByZWNvcmQgdGFyZ2V0IGdldCBlcnJvci4gICIKIAkJICAgICJEbyB5 b3Ugd2FudCB0byBzdG9wIHRoZSBwcm9ncmFtPyIpLAotCQkgIHBhZGRyX256 ICh0bXB1MzIpLCAoaW50KWxlbik7CisJCSAgT1VUUFVUX1JFRyAodG1wdWxv bmdlc3QsIHRkZXAtPmFyZzEpLCAoaW50KWxlbik7CiAJdGFyZ2V0X3Rlcm1p bmFsX2luZmVyaW9yICgpOwogCWlmIChxKQogCSAgcmV0dXJuIDE7CkBAIC02 NTQsOCArNjk0LDkgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQg bnVtLCBzdHJ1YwogICAgIGNhc2UgOTk6CiAgICAgICAvKiBzeXNfZnN0YXRm cyAqLwogICAgIGNhc2UgMTAwOgotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQg KHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIp OwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMy LCB0ZGVwLT5zaXplX3N0YXRmcykpCisgICAgICByZWdjYWNoZV9yYXdfcmVh ZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2Vz dCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09S RV9BRERSKXRtcHVsb25nZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGRlcC0+c2l6ZV9zdGF0ZnMpKQogCXJldHVybiAtMTsK ICAgICAgIGJyZWFrOwogCkBAIC02NjUsOCArNzA2LDggQEAgcmVjb3JkX2xp bnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAvKiBz eXNfc29ja2V0Y2FsbCAqLwogICAgIGNhc2UgMTAyOgotICAgICAgcmVnY2Fj aGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcxLCAoZ2RiX2J5dGUg KikgJiB0bXB1MzIpOwotICAgICAgc3dpdGNoICh0bXB1MzIpCisgICAgICBy ZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFy ZzEsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBzd2l0Y2ggKHRtcHVsb25nZXN0 KQogCXsKIAljYXNlIFJFQ09SRF9TWVNfU09DS0VUOgogCWNhc2UgUkVDT1JE X1NZU19CSU5EOgpAQCAtNjc3LDI0ICs3MTgsMzEgQEAgcmVjb3JkX2xpbnV4 X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCWNhc2UgUkVDT1JEX1NZ U19HRVRTT0NLTkFNRToKIAljYXNlIFJFQ09SRF9TWVNfR0VUUEVFUk5BTUU6 CiAJICB7Ci0JICAgIHVpbnQzMl90IGFbM107Ci0JICAgIHJlZ2NhY2hlX3Jh d19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwKLQkJCSAgICAgICAoZ2Ri X2J5dGUgKikgJiB0bXB1MzIpOwotCSAgICBpZiAodG1wdTMyKQorCSAgICBn ZGJfYnl0ZSAqYSA9IGFsbG9jYSAodGRlcC0+c2l6ZV91bG9uZyAqIDIpOwor CSAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRk ZXAtPmFyZzIsCisJCQkgICAgICAgICAgICAgICAgJnRtcHVsb25nZXN0KTsK KwkgICAgaWYgKHRtcHVsb25nZXN0KQogCSAgICAgIHsKLQkJaWYgKHRhcmdl dF9yZWFkX21lbW9yeSAodG1wdTMyLCAoZ2RiX2J5dGUgKikgYSwgc2l6ZW9m IChhKSkpCisgICAgICAgICAgICAgICAgdG1wdWxvbmdlc3QgKz0gdGRlcC0+ c2l6ZV91bG9uZzsKKwkJaWYgKHRhcmdldF9yZWFkX21lbW9yeSAoKENPUkVf QUREUil0bXB1bG9uZ2VzdCwgYSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX3Vsb25nICogMikpCiAJCSAg ewogCQkgICAgaWYgKHJlY29yZF9kZWJ1ZykKIAkJICAgICAgZnByaW50Zl91 bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogCQkJCQkgICJQcm9jZXNzIHJlY29y ZDogZXJyb3IgcmVhZGluZyAiCi0JCQkJCSAgIm1lbW9yeSBhdCBhZGRyID0g MHglcyBsZW4gPSAlbHUuXG4iLAotCQkJCQkgIHBhZGRyX256ICh0bXB1MzIp LAotCQkJCQkgICh1bnNpZ25lZCBsb25nKXNpemVvZiAoYSkpOworCQkJCQkg ICJtZW1vcnkgYXQgYWRkciA9IDB4JXMgbGVuID0gJWQuXG4iLAorCQkJCQkg IE9VVFBVVF9SRUcgKHRtcHVsb25nZXN0LCB0ZGVwLT5hcmcyKSwKKwkJCQkJ ICB0ZGVwLT5zaXplX3Vsb25nICogMik7CiAJCSAgICByZXR1cm4gLTE7CiAJ CSAgfQotCQlpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtIChhWzFdLCB0 ZGVwLT5zaXplX3NvY2thZGRyKSkKKwkJaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX21lbSAoKENPUkVfQUREUilleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGEsIHRkZXAtPnNpemVfdWxvbmcpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkZXAt PnNpemVfc29ja2FkZHIpKQogCQkgIHJldHVybiAtMTsKLQkJaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAoYVsyXSwgdGRlcC0+c2l6ZV9pbnQpKQor ICAgICAgICAgICAgICAgIGEgKz0gdGRlcC0+c2l6ZV91bG9uZzsKKwkJaWYg KHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUilleHRyYWN0 X3Vuc2lnbmVkX2ludGVnZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGEsIHRkZXAtPnNp emVfdWxvbmcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRkZXAtPnNpemVfaW50KSkKIAkJICByZXR1cm4gLTE7 CiAJICAgICAgfQogCSAgfQpAQCAtNzAyLDIyICs3NTAsMjYgQEAgcmVjb3Jk X2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAJY2FzZSBS RUNPUkRfU1lTX1NPQ0tFVFBBSVI6CiAJICB7Ci0JICAgIHVpbnQzMl90IGFb NF07Ci0JICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+ YXJnMiwKLQkJCSAgICAgICAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotCSAg ICBpZiAodG1wdTMyKQorCSAgICBnZGJfYnl0ZSAqYSA9IGFsbG9jYSAodGRl cC0+c2l6ZV91bG9uZyk7CisJICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2ln bmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwKKwkJCSAgICAgICAgICAgICAg ICAmdG1wdWxvbmdlc3QpOworCSAgICBpZiAodG1wdWxvbmdlc3QpCiAJICAg ICAgewotCQlpZiAodGFyZ2V0X3JlYWRfbWVtb3J5ICh0bXB1MzIsIChnZGJf Ynl0ZSAqKSBhLCBzaXplb2YgKGEpKSkKKyAgICAgICAgICAgICAgICB0bXB1 bG9uZ2VzdCArPSB0ZGVwLT5zaXplX3Vsb25nICogMzsKKwkJaWYgKHRhcmdl dF9yZWFkX21lbW9yeSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwgYSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVwLT5z aXplX3Vsb25nKSkKIAkJICB7CiAJCSAgICBpZiAocmVjb3JkX2RlYnVnKQog CQkgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAJCQkJ CSAgIlByb2Nlc3MgcmVjb3JkOiBlcnJvciByZWFkaW5nICIKLQkJCQkJICAi bWVtb3J5IGF0IGFkZHIgPSAweCVzIGxlbiA9ICVsdS5cbiIsCi0JCQkJCSAg cGFkZHJfbnogKHRtcHUzMiksCi0JCQkJICAgICAgICAgICh1bnNpZ25lZCBs b25nKXNpemVvZiAoYSkpOworCQkJCQkgICJtZW1vcnkgYXQgYWRkciA9IDB4 JXMgbGVuID0gJWQuXG4iLAorCQkJCQkgIE9VVFBVVF9SRUcgKHRtcHVsb25n ZXN0LCB0ZGVwLT5hcmcyKSwKKwkJCQkgICAgICAgICAgdGRlcC0+c2l6ZV91 bG9uZyk7CiAJCSAgICByZXR1cm4gLTE7CiAJCSAgfQotCQlpZiAocmVjb3Jk X2FyY2hfbGlzdF9hZGRfbWVtIChhWzNdLCB0ZGVwLT5zaXplX2ludCkpCisJ CWlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpZXh0 cmFjdF91bnNpZ25lZF9pbnRlZ2VyCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhLCB0ZGVw LT5zaXplX3Vsb25nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX2ludCkpCiAJCSAgcmV0dXJu IC0xOwogCSAgICAgIH0KIAkgIH0KQEAgLTcyNywzNiArNzc5LDQ0IEBAIHJl Y29yZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKIAkgIGJy ZWFrOwogCWNhc2UgUkVDT1JEX1NZU19SRUNWOgogCSAgewotCSAgICB1aW50 MzJfdCBhWzNdOwotCSAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUs IHRkZXAtPmFyZzIsCi0JCQkgICAgICAgKGdkYl9ieXRlICopICYgdG1wdTMy KTsKLQkgICAgaWYgKHRtcHUzMikKKwkgICAgZ2RiX2J5dGUgKmEgPSBhbGxv Y2EgKHRkZXAtPnNpemVfdWxvbmcgKiAyKTsKKwkgICAgcmVnY2FjaGVfcmF3 X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLAorCQkJICAg ICAgICAgICAgICAgICZ0bXB1bG9uZ2VzdCk7CisJICAgIGlmICh0bXB1bG9u Z2VzdCkKIAkgICAgICB7Ci0JCWlmICh0YXJnZXRfcmVhZF9tZW1vcnkgKHRt cHUzMiwgKGdkYl9ieXRlICopIGEsIHNpemVvZiAoYSkpKQorICAgICAgICAg ICAgICAgIHRtcHVsb25nZXN0ICs9IHRkZXAtPnNpemVfdWxvbmcgKiAyOwor CQlpZiAodGFyZ2V0X3JlYWRfbWVtb3J5ICgoQ09SRV9BRERSKXRtcHVsb25n ZXN0LCBhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRkZXAtPnNpemVfdWxvbmcpKQogCQkgIHsKIAkJICAgIGlmIChyZWNv cmRfZGVidWcpCiAJCSAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0 ZGxvZywKIAkJCQkJICAiUHJvY2VzcyByZWNvcmQ6IGVycm9yIHJlYWRpbmcg IgotCQkJCQkgICJtZW1vcnkgYXQgYWRkciA9IDB4JXMgbGVuID0gJWx1Llxu IiwKLQkJCQkJICBwYWRkcl9ueiAodG1wdTMyKSwKLQkJCQkJICAodW5zaWdu ZWQgbG9uZylzaXplb2YgKGEpKTsKKwkJCQkJICAibWVtb3J5IGF0IGFkZHIg PSAweCVzIGxlbiA9ICVkLlxuIiwKKwkJCQkJICBPVVRQVVRfUkVHICh0bXB1 bG9uZ2VzdCwgdGRlcC0+YXJnMiksCisJCQkJCSAgdGRlcC0+c2l6ZV91bG9u Zyk7CiAJCSAgICByZXR1cm4gLTE7CiAJCSAgfQotCQlpZiAoYVsyXSkKKyAg ICAgICAgICAgICAgICB0bXB1bG9uZ2VzdCA9IGV4dHJhY3RfdW5zaWduZWRf aW50ZWdlciAoYSwgdGRlcC0+c2l6ZV91bG9uZyk7CisJCWlmICh0bXB1bG9u Z2VzdCkKIAkJICB7Ci0JCSAgICBpZiAodGFyZ2V0X3JlYWRfbWVtb3J5Ci0J CQkoYVsyXSwgKGdkYl9ieXRlICopICYgKGFbMl0pLCBzaXplb2YgKGFbMl0p KSkKKwkJICAgIGlmICh0YXJnZXRfcmVhZF9tZW1vcnkgKChDT1JFX0FERFIp dG1wdWxvbmdlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGEsIHRkZXAtPnNpemVfdWxvbmcgKiAyKSkKIAkJICAg ICAgewogCQkJaWYgKHJlY29yZF9kZWJ1ZykKIAkJCSAgZnByaW50Zl91bmZp bHRlcmVkIChnZGJfc3RkbG9nLAogCQkJCQkgICAgICAiUHJvY2VzcyByZWNv cmQ6IGVycm9yIHJlYWRpbmcgIgogCQkJCQkgICAgICAibWVtb3J5IGF0IGFk ZHIgPSAweCVzICIKLQkJCQkJICAgICAgImxlbiA9ICVsdS5cbiIsCi0JCQkJ CSAgICAgIHBhZGRyX256IChhWzJdKSwKLQkJCQkJICAgICAgKHVuc2lnbmVk IGxvbmcpc2l6ZW9mIChhWzJdKSk7CisJCQkJCSAgICAgICJsZW4gPSAlZC5c biIsCisJCQkJCSAgICAgIHBoZXhfbnogKHRtcHVsb25nZXN0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRkZXAtPnNpemVfdWxvbmcpLAorCQkJCQkgICAgICB0ZGVwLT5zaXpl X3Vsb25nICogMik7CiAJCQlyZXR1cm4gLTE7CiAJCSAgICAgIH0KLQkJICAg IGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKGFbMV0sIGFbMl0pKQor CQkgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQURE UilleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChhLCB0ZGVwLT5zaXplX3Vsb25nKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludClleHRyYWN0X3Vu c2lnbmVkX2ludGVnZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhICsgdGRlcC0+ c2l6ZV91bG9uZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX3Vs b25nKSkpCiAJCSAgICAgIHJldHVybiAtMTsKIAkJICB9CiAJICAgICAgfQpA QCAtNzY0LDQwICs4MjQsNTYgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxs IChpbnQgbnVtLCBzdHJ1YwogCSAgYnJlYWs7CiAJY2FzZSBSRUNPUkRfU1lT X1JFQ1ZGUk9NOgogCSAgewotCSAgICB1aW50MzJfdCBhWzZdOwotCSAgICBy ZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsCi0JCQkg ICAgICAgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLQkgICAgaWYgKHRtcHUz MikKKyAgICAgICAgICAgIGdkYl9ieXRlICphID0gYWxsb2NhICh0ZGVwLT5z aXplX3Vsb25nICogNSk7CisJICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2ln bmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwKKwkJCSAgICAgICAgICAgICAg ICAmdG1wdWxvbmdlc3QpOworCSAgICBpZiAodG1wdWxvbmdlc3QpCiAJICAg ICAgewotCQlpZiAodGFyZ2V0X3JlYWRfbWVtb3J5ICh0bXB1MzIsIChnZGJf Ynl0ZSAqKSBhLCBzaXplb2YgKGEpKSkKKyAgICAgICAgICAgICAgICB0bXB1 bG9uZ2VzdCArPSB0ZGVwLT5zaXplX3Vsb25nOworCQlpZiAodGFyZ2V0X3Jl YWRfbWVtb3J5ICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LCBhLAorICAgICAg ICAgICAgICAgICAgICB0ZGVwLT5zaXplX3Vsb25nICogNSkpCiAJCSAgewog CQkgICAgaWYgKHJlY29yZF9kZWJ1ZykKIAkJICAgICAgZnByaW50Zl91bmZp bHRlcmVkIChnZGJfc3RkbG9nLAogCQkJCQkgICJQcm9jZXNzIHJlY29yZDog ZXJyb3IgcmVhZGluZyAiCi0JCQkJCSAgIm1lbW9yeSBhdCBhZGRyID0gMHgl cyBsZW4gPSAlbHUuXG4iLAotCQkJCQkgIHBhZGRyX256ICh0bXB1MzIpLAot CQkJCQkgICh1bnNpZ25lZCBsb25nKXNpemVvZiAoYSkpOworCQkJCQkgICJt ZW1vcnkgYXQgYWRkciA9IDB4JXMgbGVuID0gJWQuXG4iLAorCQkJCQkgIE9V VFBVVF9SRUcgKHRtcHVsb25nZXN0LCB0ZGVwLT5hcmcyKSwKKwkJCQkJICB0 ZGVwLT5zaXplX3Vsb25nICogNSk7CiAJCSAgICByZXR1cm4gLTE7CiAJCSAg fQotCQlpZiAoYVsyXSkKKyAgICAgICAgICAgICAgICB0bXB1bG9uZ2VzdCA9 IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoYSArIHRkZXAtPnNpemVfdWxv bmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRkZXAtPnNpemVfdWxvbmcpOworCQlpZiAodG1wdWxvbmdl c3QpCiAJCSAgewotCQkgICAgaWYgKHRhcmdldF9yZWFkX21lbW9yeQotCQkJ KGFbMl0sIChnZGJfYnl0ZSAqKSAmIChhWzJdKSwgc2l6ZW9mIChhWzJdKSkp CisJCSAgICBpZiAodGFyZ2V0X3JlYWRfbWVtb3J5ICgoQ09SRV9BRERSKXRt cHVsb25nZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhICsgdGRlcC0+c2l6ZV91bG9uZywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV91 bG9uZykpCiAJCSAgICAgIHsKIAkJCWlmIChyZWNvcmRfZGVidWcpCiAJCQkg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKIAkJCQkJICAgICAg IlByb2Nlc3MgcmVjb3JkOiBlcnJvciByZWFkaW5nICIKIAkJCQkJICAgICAg Im1lbW9yeSBhdCBhZGRyID0gMHglcyAiCi0JCQkJCSAgICAgICJsZW4gPSAl bHUuXG4iLAotCQkJCQkgICAgICBwYWRkcl9ueiAoYVsyXSksCi0JCQkJCSAg ICAgICh1bnNpZ25lZCBsb25nKXNpemVvZiAoYVsyXSkpOworCQkJCQkgICAg ICAibGVuID0gJWQuXG4iLAorCQkJCQkgICAgICBwaGV4X256ICh0bXB1bG9u Z2VzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX3Vsb25nKSwKKwkJCQkJICAg ICAgdGRlcC0+c2l6ZV91bG9uZyk7CiAJCQlyZXR1cm4gLTE7CiAJCSAgICAg IH0KLQkJICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKGFbMV0s IGFbMl0pKQorCQkgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAo KENPUkVfQUREUilleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChhLCB0ZGVwLT5zaXplX3Vsb25nKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCll eHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChh ICsgdGRlcC0+c2l6ZV91bG9uZywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVw LT5zaXplX3Vsb25nKSkpCiAJCSAgICAgIHJldHVybiAtMTsKLQkJICAgIGlm IChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKGFbNF0sIHRkZXAtPnNpemVf c29ja2FkZHIpKQorICAgICAgICAgICAgICAgICAgICBhICs9IHRkZXAtPnNp emVfdWxvbmcgKiAzOworCQkgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRk X21lbSAoKENPUkVfQUREUilleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChhLCB0ZGVwLT5zaXplX3Vsb25nKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGRlcC0+c2l6ZV9zb2NrYWRkcikpCiAJCSAgICAgIHJldHVybiAtMTsKLQkJ ICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKGFbNV0sIHRkZXAt PnNpemVfaW50KSkKKyAgICAgICAgICAgICAgICAgICAgYSArPSB0ZGVwLT5z aXplX3Vsb25nOworCQkgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAoKENPUkVfQUREUilleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChhLCB0ZGVwLT5zaXplX3Vsb25nKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRl cC0+c2l6ZV9pbnQpKQogCQkgICAgICByZXR1cm4gLTE7CiAJCSAgfQogCSAg ICAgIH0KQEAgLTgwOCw0MCArODg0LDUwIEBAIHJlY29yZF9saW51eF9zeXN0 ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKIAkgIGJyZWFrOwogCWNhc2UgUkVD T1JEX1NZU19HRVRTT0NLT1BUOgogCSAgewotCSAgICB1aW50MzJfdCBhWzVd OwotCSAgICB1aW50MzJfdCBhdjsKKyAgICAgICAgICAgIGdkYl9ieXRlICph ID0gYWxsb2NhICh0ZGVwLT5zaXplX3Vsb25nICogMik7CisgICAgICAgICAg ICBnZGJfYnl0ZSAqYXYgPSBhbGxvY2EgKHRkZXAtPnNpemVfdWxvbmcpOwog Ci0JICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJn MiwKLQkJCSAgICAgICAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotCSAgICBp ZiAodG1wdTMyKQorCSAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAo cmVnY2FjaGUsIHRkZXAtPmFyZzIsCisJCQkgICAgICAgICAgICAgICAgJnRt cHVsb25nZXN0KTsKKwkgICAgaWYgKHRtcHVsb25nZXN0KQogCSAgICAgIHsK LQkJaWYgKHRhcmdldF9yZWFkX21lbW9yeSAodG1wdTMyLCAoZ2RiX2J5dGUg KikgYSwgc2l6ZW9mIChhKSkpCisgICAgICAgICAgICAgICAgdG1wdWxvbmdl c3QgKz0gdGRlcC0+c2l6ZV91bG9uZyAqIDM7CisJCWlmICh0YXJnZXRfcmVh ZF9tZW1vcnkgKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsIGEsIHRkZXAtPnNp emVfdWxvbmcgKiAyKSkKIAkJICB7CiAJCSAgICBpZiAocmVjb3JkX2RlYnVn KQogCQkgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAJ CQkJCSAgIlByb2Nlc3MgcmVjb3JkOiBlcnJvciByZWFkaW5nICIKLQkJCQkJ ICAibWVtb3J5IGF0IGFkZHIgPSAweCVzIGxlbiA9ICVsdS5cbiIsCi0JCQkJ CSAgcGFkZHJfbnogKHRtcHUzMiksCi0JCQkJCSAgKHVuc2lnbmVkIGxvbmcp c2l6ZW9mIChhKSk7CisJCQkJCSAgIm1lbW9yeSBhdCBhZGRyID0gMHglcyBs ZW4gPSAlZC5cbiIsCisJCQkJCSAgT1VUUFVUX1JFRyAodG1wdWxvbmdlc3Qs IHRkZXAtPmFyZzIpLAorCQkJCQkgIHRkZXAtPnNpemVfdWxvbmcgKiAyKTsK IAkJICAgIHJldHVybiAtMTsKIAkJICB9Ci0JCWlmIChhWzRdKQorICAgICAg ICAgICAgICAgIHRtcHVsb25nZXN0ID0gZXh0cmFjdF91bnNpZ25lZF9pbnRl Z2VyIChhICsgdGRlcC0+c2l6ZV91bG9uZywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV91 bG9uZyk7CisJCWlmICh0bXB1bG9uZ2VzdCkKIAkJICB7Ci0JCSAgICBpZiAo dGFyZ2V0X3JlYWRfbWVtb3J5Ci0JCQkoYVs0XSwgKGdkYl9ieXRlICopICYg YXYsIHNpemVvZiAoYXYpKSkKKwkJICAgIGlmICh0YXJnZXRfcmVhZF9tZW1v cnkgKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsIGF2LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX3Vs b25nKSkKIAkJICAgICAgewogCQkJaWYgKHJlY29yZF9kZWJ1ZykKIAkJCSAg ZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogCQkJCQkgICAgICAi UHJvY2VzcyByZWNvcmQ6IGVycm9yIHJlYWRpbmcgIgogCQkJCQkgICAgICAi bWVtb3J5IGF0IGFkZHIgPSAweCVzICIKLQkJCQkJICAgICAgImxlbiA9ICVs dS5cbiIsCi0JCQkJCSAgICAgIHBhZGRyX256IChhWzRdKSwKLQkJCQkJICAg ICAgKHVuc2lnbmVkIGxvbmcpc2l6ZW9mIChhdikpOworCQkJCQkgICAgICAi bGVuID0gJWQuXG4iLAorCQkJCQkgICAgICBwaGV4X256ICh0bXB1bG9uZ2Vz dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0ZGVwLT5zaXplX3Vsb25nKSwKKwkJCQkJICAgICAg dGRlcC0+c2l6ZV91bG9uZyk7CiAJCQlyZXR1cm4gLTE7CiAJCSAgICAgIH0K LQkJICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKGFbM10sIGF2 KSkKKwkJICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JF X0FERFIpZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2VyCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoYSwgdGRlcC0+c2l6ZV91bG9uZyksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpZXh0cmFj dF91bnNpZ25lZF9pbnRlZ2VyCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXYsIHRk ZXAtPnNpemVfdWxvbmcpKSkKIAkJICAgICAgcmV0dXJuIC0xOwotCQkgICAg aWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoYVs0XSwgdGRlcC0+c2l6 ZV9pbnQpKQorICAgICAgICAgICAgICAgICAgICBhICs9IHRkZXAtPnNpemVf dWxvbmc7CisJCSAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgo Q09SRV9BRERSKWV4dHJhY3RfdW5zaWduZWRfaW50ZWdlcgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGEsIHRkZXAtPnNpemVfdWxvbmcpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVwLT5z aXplX2ludCkpCiAJCSAgICAgIHJldHVybiAtMTsKIAkJICB9CiAJICAgICAg fQpAQCAtODUxLDg0ICs5MzcsOTYgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9j YWxsIChpbnQgbnVtLCBzdHJ1YwogCSAgYnJlYWs7CiAJY2FzZSBSRUNPUkRf U1lTX1JFQ1ZNU0c6CiAJICB7Ci0JICAgIHVpbnQzMl90IGFbMl0sIGk7Ci0J ICAgIHN0cnVjdCByZWNvcmRfbXNnaGRyCi0JICAgIHsKLQkgICAgICB1aW50 MzJfdCBtc2dfbmFtZTsKLQkgICAgICB1aW50MzJfdCBtc2dfbmFtZWxlbjsK LQkgICAgICB1aW50MzJfdCBtc2dfaW92OwotCSAgICAgIHVpbnQzMl90IG1z Z19pb3ZsZW47Ci0JICAgICAgdWludDMyX3QgbXNnX2NvbnRyb2w7Ci0JICAg ICAgdWludDMyX3QgbXNnX2NvbnRyb2xsZW47Ci0JICAgICAgdWludDMyX3Qg bXNnX2ZsYWdzOwotCSAgICB9IHJlYzsKLQkgICAgc3RydWN0IHJlY29yZF9p b3ZlYwotCSAgICB7Ci0JICAgICAgdWludDMyX3QgaW92X2Jhc2U7Ci0JICAg ICAgdWludDMyX3QgaW92X2xlbjsKLQkgICAgfSBpb3Y7CisgICAgICAgICAg ICBnZGJfYnl0ZSAqYSA9IGFsbG9jYSAodGRlcC0+c2l6ZV91bG9uZyk7CiAK LQkgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcy LAotCQkJICAgICAgIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0JICAgIGlm ICh0bXB1MzIpCisJICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChy ZWdjYWNoZSwgdGRlcC0+YXJnMiwKKwkJCSAgICAgICAgICAgICAgICAmdG1w dWxvbmdlc3QpOworCSAgICBpZiAodG1wdWxvbmdlc3QpCiAJICAgICAgewot CQlpZiAodGFyZ2V0X3JlYWRfbWVtb3J5ICh0bXB1MzIsIChnZGJfYnl0ZSAq KSBhLCBzaXplb2YgKGEpKSkKKyAgICAgICAgICAgICAgICB0bXB1bG9uZ2Vz dCArPSB0ZGVwLT5zaXplX3Vsb25nOworCQlpZiAodGFyZ2V0X3JlYWRfbWVt b3J5ICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LCBhLAorICAgICAgICAgICAg ICAgICAgICB0ZGVwLT5zaXplX3Vsb25nKSkKIAkJICB7CiAJCSAgICBpZiAo cmVjb3JkX2RlYnVnKQogCQkgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdk Yl9zdGRsb2csCiAJCQkJCSAgIlByb2Nlc3MgcmVjb3JkOiBlcnJvciByZWFk aW5nICIKLQkJCQkJICAibWVtb3J5IGF0IGFkZHIgPSAweCVzIGxlbiA9ICVs dS5cbiIsCi0JCQkJCSAgcGFkZHJfbnogKHRtcHUzMiksCi0JCQkJCSAgKHVu c2lnbmVkIGxvbmcpc2l6ZW9mIChhKSk7CisJCQkJCSAgIm1lbW9yeSBhdCBh ZGRyID0gMHglcyBsZW4gPSAlZC5cbiIsCisJCQkJCSAgT1VUUFVUX1JFRyAo dG1wdWxvbmdlc3QsIHRkZXAtPmFyZzIpLAorCQkJCQkgIHRkZXAtPnNpemVf dWxvbmcpOwogCQkgICAgcmV0dXJuIC0xOwogCQkgIH0KLQkJaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAoYVsxXSwgdGRlcC0+c2l6ZV9tc2doZHIp KQotCQkgIHJldHVybiAtMTsKLQkJaWYgKGFbMV0pCisgICAgICAgICAgICAg ICAgdG1wdWxvbmdlc3QgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKGEs IHRkZXAtPnNpemVfdWxvbmcpOworCQlpZiAodG1wdWxvbmdlc3QpCiAJCSAg ewotCQkgICAgaWYgKHRhcmdldF9yZWFkX21lbW9yeQotCQkJKGFbMV0sIChn ZGJfYnl0ZSAqKSAmIHJlYywgc2l6ZW9mIChyZWMpKSkKKwkJICAgIGlmIChy ZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdl c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRkZXAtPnNpemVfbXNnaGRyKSkKKwkJICAgICAgcmV0dXJu IC0xOworICAgICAgICAgICAgICAgICAgICBhID0gYWxsb2NhICh0ZGVwLT5z aXplX21zZ2hkcik7CisJCSAgICBpZiAodGFyZ2V0X3JlYWRfbWVtb3J5ICgo Q09SRV9BRERSKXRtcHVsb25nZXN0LCBhLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX21zZ2hkcikp CiAJCSAgICAgIHsKIAkJCWlmIChyZWNvcmRfZGVidWcpCiAJCQkgIGZwcmlu dGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKIAkJCQkJICAgICAgIlByb2Nl c3MgcmVjb3JkOiBlcnJvciByZWFkaW5nICIKIAkJCQkJICAgICAgIm1lbW9y eSBhdCBhZGRyID0gMHglcyAiCi0JCQkJCSAgICAgICJsZW4gPSAlbHUuXG4i LAotCQkJCQkgICAgICBwYWRkcl9ueiAoYVsxXSksCi0JCQkJCSAgICAgICh1 bnNpZ25lZCBsb25nKXNpemVvZiAocmVjKSk7CisJCQkJCSAgICAgICJsZW4g PSAlZC5cbiIsCisJCQkJCSAgICAgIHBoZXhfbnogKHRtcHVsb25nZXN0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRkZXAtPnNpemVfdWxvbmcpLAorCQkJCQkgICAgICB0ZGVw LT5zaXplX21zZ2hkcik7CiAJCQlyZXR1cm4gLTE7CiAJCSAgICAgIH0KLQkJ ICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0KLQkJCShyZWMubXNn X25hbWUsIHJlYy5tc2dfbmFtZWxlbikpCi0JCSAgICAgIHJldHVybiAtMTsK LQkJICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0KLQkJCShyZWMu bXNnX2NvbnRyb2wsIHJlYy5tc2dfY29udHJvbGxlbikpCisgICAgICAgICAg ICAgICAgICAgIC8qIG1zZ19uYW1lIG1zZ19uYW1lbGVuICovCisJCSAgICB0 bXB1bG9uZ2VzdCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoYSwgdGRl cC0+c2l6ZV9wb2ludGVyKTsKKyAgICAgICAgICAgICAgICAgICAgYSArPSB0 ZGVwLT5zaXplX3BvaW50ZXI7CisgICAgICAgICAgICAgICAgICAgIGlmIChy ZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAoaW50KWV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAo YSwgdGRlcC0+c2l6ZV9pbnQpKSkKIAkJICAgICAgcmV0dXJuIC0xOwotCQkg ICAgaWYgKHJlYy5tc2dfaW92KQorICAgICAgICAgICAgICAgICAgICBhICs9 IHRkZXAtPnNpemVfaW50OworCQkgICAgLyogbXNnX2lvdiBtc2dfaW92bGVu ICovCisJCSAgICB0bXB1bG9uZ2VzdCA9IGV4dHJhY3RfdW5zaWduZWRfaW50 ZWdlciAoYSwgdGRlcC0+c2l6ZV9wb2ludGVyKTsKKyAgICAgICAgICAgICAg ICAgICAgYSArPSB0ZGVwLT5zaXplX3BvaW50ZXI7CisgICAgICAgICAgICAg ICAgICAgIGlmICh0bXB1bG9uZ2VzdCkKIAkJICAgICAgewotCQkJZm9yIChp ID0gMDsgaSA8IHJlYy5tc2dfaW92bGVuOyBpKyspCisgICAgICAgICAgICAg ICAgICAgICAgICBVTE9OR0VTVCBpOworICAgICAgICAgICAgICAgICAgICAg ICAgVUxPTkdFU1QgbGVuID0gZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2VyCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhLCB0 ZGVwLT5zaXplX3NpemVfdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBn ZGJfYnl0ZSAqaW92ID0gYWxsb2NhICh0ZGVwLT5zaXplX2lvdmVjKTsKKwor CQkJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQogCQkJICB7Ci0JCQkgICAg aWYgKHRhcmdldF9yZWFkX21lbW9yeQotCQkJCShyZWMubXNnX2lvdiwgKGdk Yl9ieXRlICopICYgaW92LAotCQkJCSBzaXplb2YgKGlvdikpKQorCQkJICAg IGlmICh0YXJnZXRfcmVhZF9tZW1vcnkgKChDT1JFX0FERFIpdG1wdWxvbmdl c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW92LCB0ZGVwLT5zaXplX2lvdmVjKSkKIAkJCSAgICAg IHsKIAkJCQlpZiAocmVjb3JkX2RlYnVnKQogCQkJCSAgZnByaW50Zl91bmZp bHRlcmVkIChnZGJfc3RkbG9nLAogCQkJCQkJICAgICAgIlByb2Nlc3MgcmVj b3JkOiBlcnJvciAiCiAJCQkJCQkgICAgICAicmVhZGluZyBtZW1vcnkgYXQg IgogCQkJCQkJICAgICAgImFkZHIgPSAweCVzICIKLQkJCQkJCSAgICAgICJs ZW4gPSAlbHUuXG4iLAotCQkJCQkJICAgICAgcGFkZHJfbnogKHJlYy4KLQkJ CQkJCQkJbXNnX2lvdiksCi0JCQkJCQkgICAgICAodW5zaWduZWQgbG9uZylz aXplb2YgKGlvdikpOworCQkJCQkJICAgICAgImxlbiA9ICVkLlxuIiwKKwkJ CQkJCSAgICAgIHBoZXhfbnogKHRtcHVsb25nZXN0LAorCQkJCQkJCQl0ZGVw LT5zaXplX3BvaW50ZXIpLAorCQkJCQkJICAgICAgdGRlcC0+c2l6ZV9pb3Zl Yyk7CiAJCQkJcmV0dXJuIC0xOwogCQkJICAgICAgfQotCQkJICAgIGlmIChy ZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0KLQkJCQkoaW92Lmlvdl9iYXNlLCBp b3YuaW92X2xlbikpCisJCSAgICAgICAgICAgIGlmIChyZWNvcmRfYXJjaF9s aXN0X2FkZF9tZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoKENPUkVfQUREUilleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp b3YsIHRkZXAtPnNpemVfcG9pbnRlciksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChpbnQpZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2Vy CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo aW92ICsgdGRlcC0+c2l6ZV9wb2ludGVyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRkZXAtPnNpemVfc2l6ZV90KSkp CiAJCQkgICAgICByZXR1cm4gLTE7Ci0JCQkgICAgcmVjLm1zZ19pb3YgKz0g c2l6ZW9mIChzdHJ1Y3QgcmVjb3JkX2lvdmVjKTsKKwkJCSAgICB0bXB1bG9u Z2VzdCArPSB0ZGVwLT5zaXplX2lvdmVjOwogCQkJICB9CiAJCSAgICAgIH0K KyAgICAgICAgICAgICAgICAgICAgYSArPSB0ZGVwLT5zaXplX3NpemVfdDsK KyAgICAgICAgICAgICAgICAgICAgLyogbXNnX2NvbnRyb2wgbXNnX2NvbnRy b2xsZW4gKi8KKyAgICAgICAgICAgICAgICAgICAgdG1wdWxvbmdlc3QgPSBl eHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKGEsIHRkZXAtPnNpemVfcG9pbnRl cik7CisgICAgICAgICAgICAgICAgICAgIGEgKz0gdGRlcC0+c2l6ZV9wb2lu dGVyOworCQkgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENP UkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludClleHRyYWN0X3Vuc2ln bmVkX2ludGVnZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChhLCB0ZGVwLT5zaXplX3NpemVf dCkpKQorCQkgICAgICByZXR1cm4gLTE7CiAJCSAgfQogCSAgICAgIH0KIAkg IH0KQEAgLTkzNiw3ICsxMDM0LDcgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9j YWxsIChpbnQgbnVtLCBzdHJ1YwogCWRlZmF1bHQ6CiAJICBwcmludGZfdW5m aWx0ZXJlZCAoXygiUHJvY2VzcyByZWNvcmQgYW5kIHJlcGxheSB0YXJnZXQg IgogCQkJICAgICAgICJkb2Vzbid0IHN1cHBvcnQgc29ja2V0Y2FsbCBjYWxs IDB4JXNcbiIpLAotCQkJICAgICBwaGV4X256ICh0bXB1MzIsIDQpKTsKKwkJ CSAgICAgT1VUUFVUX1JFRyAodG1wdWxvbmdlc3QsIHRkZXAtPmFyZzEpKTsK IAkgIHJldHVybiAtMTsKIAkgIGJyZWFrOwogCX0KQEAgLTk0OCwxNSArMTA0 NiwxNyBAQCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0sIHN0 cnVjCiAKICAgICAgIC8qIHN5c19zZXRpdGltZXIgKi8KICAgICBjYXNlIDEw NDoKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+ YXJnMywgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNv cmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV9pdGlt ZXJ2YWwpKQorICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJl Z2NhY2hlLCB0ZGVwLT5hcmczLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYg KHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9u Z2VzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRk ZXAtPnNpemVfaXRpbWVydmFsKSkKIAlyZXR1cm4gLTE7CiAgICAgICBicmVh azsKIAogICAgICAgLyogc3lzX2dldGl0aW1lciAqLwogICAgIGNhc2UgMTA1 OgotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5h cmcyLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2l0aW1l cnZhbCkpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVn Y2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAo cmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25n ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRl cC0+c2l6ZV9pdGltZXJ2YWwpKQogCXJldHVybiAtMTsKICAgICAgIGJyZWFr OwogCkBAIC05NjYsMTUgKzEwNjYsMTYgQEAgcmVjb3JkX2xpbnV4X3N5c3Rl bV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogICAgIGNhc2UgMTA3OgogICAgICAg Lyogc3lzX25ld2ZzdGF0ICovCiAgICAgY2FzZSAxMDg6Ci0gICAgICByZWdj YWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsIChnZGJfYnl0 ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9h ZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNpemVfc3RhdCkpCisgICAgICByZWdj YWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIs ICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9h ZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LCB0ZGVwLT5zaXplX3N0 YXQpKQogCXJldHVybiAtMTsKICAgICAgIGJyZWFrOwogCiAgICAgICAvKiBz eXNfdW5hbWUgKi8KICAgICBjYXNlIDEwOToKLSAgICAgIHJlZ2NhY2hlX3Jh d19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMSwgKGdkYl9ieXRlICopICYg dG1wdTMyKTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0g KHRtcHUzMiwgdGRlcC0+c2l6ZV9vbGRfdXRzbmFtZSkpCisgICAgICByZWdj YWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEs ICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9h ZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9vbGRfdXRzbmFt ZSkpCiAJcmV0dXJuIC0xOwogICAgICAgYnJlYWs7CiAKQEAgLTk5MCwxMSAr MTA5MSwxMyBAQCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0s IHN0cnVjCiAKICAgICAgIC8qIHN5c193YWl0NCAqLwogICAgIGNhc2UgMTE0 OgotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5h cmcyLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2ludCkp CisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUs IHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3Jk X2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6 ZV9pbnQpKQogCXJldHVybiAtMTsKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFk IChyZWdjYWNoZSwgdGRlcC0+YXJnNCwgKGdkYl9ieXRlICopICYgdG1wdTMy KTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUz MiwgdGRlcC0+c2l6ZV9ydXNhZ2UpKQorICAgICAgcmVnY2FjaGVfcmF3X3Jl YWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmc0LCAmdG1wdWxvbmdl c3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENP UkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRkZXAtPnNpemVfcnVzYWdlKSkKIAlyZXR1cm4gLTE7 CiAgICAgICBicmVhazsKIApAQCAtMTAwNCw0NCArMTEwNyw0NyBAQCByZWNv cmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0sIHN0cnVjCiAKICAgICAg IC8qIHN5c19zeXNpbmZvICovCiAgICAgY2FzZSAxMTY6Ci0gICAgICByZWdj YWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEsIChnZGJfYnl0 ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9h ZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNpemVfc3lzaW5mbykpCisgICAgICBy ZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFy ZzEsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlz dF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9zeXNpbmZv KSkKIAlyZXR1cm4gLTE7CiAgICAgICBicmVhazsKIAogICAgICAgLyogc3lz X2lwYyAqLwogICAgIGNhc2UgMTE3OgotICAgICAgcmVnY2FjaGVfcmF3X3Jl YWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcxLCAoZ2RiX2J5dGUgKikgJiB0bXB1 MzIpOwotICAgICAgc3dpdGNoICh0bXB1MzIpCisgICAgICByZWdjYWNoZV9y YXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEsICZ0bXB1 bG9uZ2VzdCk7CisgICAgICBzd2l0Y2ggKHRtcHVsb25nZXN0KQogCXsKIAlj YXNlIFJFQ09SRF9NU0dSQ1Y6CiAJICB7Ci0JICAgIGludDMyX3Qgc2Vjb25k OwotCSAgICB1aW50MzJfdCBwdHI7Ci0JICAgIHJlZ2NhY2hlX3Jhd19yZWFk IChyZWdjYWNoZSwgdGRlcC0+YXJnMywKLQkJCSAgICAgICAoZ2RiX2J5dGUg KikgJiBzZWNvbmQpOwotCSAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2Fj aGUsIHRkZXAtPmFyZzUsCi0JCQkgICAgICAgKGdkYl9ieXRlICopICYgcHRy KTsKLQkgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAocHRyLCBz ZWNvbmQgKyB0ZGVwLT5zaXplX2xvbmcpKQorCSAgICBVTE9OR0VTVCBzZWNv bmQ7CisJICAgIFVMT05HRVNUIHB0cjsKKwkgICAgcmVnY2FjaGVfcmF3X3Jl YWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAmc2Vjb25kKTsK KwkgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0 ZGVwLT5hcmc1LCAmcHRyKTsKKwkgICAgaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX21lbSAoKENPUkVfQUREUilwdHIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoaW50KXNlY29uZCArIHRkZXAtPnNp emVfbG9uZykpCiAJICAgICAgcmV0dXJuIC0xOwogCSAgfQogCSAgYnJlYWs7 CiAJY2FzZSBSRUNPUkRfTVNHQ1RMOgotCSAgcmVnY2FjaGVfcmF3X3JlYWQg KHJlZ2NhY2hlLCB0ZGVwLT5hcmc1LAotCQkJICAgICAoZ2RiX2J5dGUgKikg JiB0bXB1MzIpOwotCSAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAo dG1wdTMyLCB0ZGVwLT5zaXplX21zcWlkX2RzKSkKKwkgIHJlZ2NhY2hlX3Jh d19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnNSwKKwkJCSAg ICAgICAgICAgICAgJnRtcHVsb25nZXN0KTsKKyAgICAgICAgICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRk ZXAtPnNpemVfbXNxaWRfZHMpKQogCSAgICByZXR1cm4gLTE7CiAJICBicmVh azsKIAljYXNlIFJFQ09SRF9TSE1BVDoKLQkgIHJlZ2NhY2hlX3Jhd19yZWFk IChyZWdjYWNoZSwgdGRlcC0+YXJnNCwKLQkJCSAgICAgKGdkYl9ieXRlICop ICYgdG1wdTMyKTsKLQkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0g KHRtcHUzMiwgdGRlcC0+c2l6ZV91bG9uZykpCisJICByZWdjYWNoZV9yYXdf cmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzQsCisJCQkgICAg ICAgICAgICAgICZ0bXB1bG9uZ2VzdCk7CisgICAgICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVw LT5zaXplX3Vsb25nKSkKIAkgICAgcmV0dXJuIC0xOwogCSAgYnJlYWs7CiAJ Y2FzZSBSRUNPUkRfU0hNQ1RMOgotCSAgcmVnY2FjaGVfcmF3X3JlYWQgKHJl Z2NhY2hlLCB0ZGVwLT5hcmc1LAotCQkJICAgICAoZ2RiX2J5dGUgKikgJiB0 bXB1MzIpOwotCSAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1w dTMyLCB0ZGVwLT5zaXplX3NobWlkX2RzKSkKKwkgIHJlZ2NhY2hlX3Jhd19y ZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnNSwKKwkJCSAgICAg ICAgICAgICAgJnRtcHVsb25nZXN0KTsKKyAgICAgICAgICBpZiAocmVjb3Jk X2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkZXAt PnNpemVfc2htaWRfZHMpKQogCSAgICByZXR1cm4gLTE7CiAJICBicmVhazsK IAl9CkBAIC0xMDU5LDI5ICsxMTY1LDI5IEBAIHJlY29yZF9saW51eF9zeXN0 ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKIAogICAgICAgLyogc3lzX25ld3Vu YW1lICovCiAgICAgY2FzZSAxMjI6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVh ZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEsIChnZGJfYnl0ZSAqKSAmIHRtcHUz Mik7Ci0gICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1 MzIsIHRkZXAtPnNpemVfbmV3X3V0c25hbWUpKQorICAgICAgcmVnY2FjaGVf cmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcxLCAmdG1w dWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRkZXAtPnNpemVfbmV3X3V0c25hbWUpKQog CXJldHVybiAtMTsKICAgICAgIGJyZWFrOwogCiAgICAgICAvKiBzeXNfbW9k aWZ5X2xkdCAqLwogICAgIGNhc2UgMTIzOgotICAgICAgcmVnY2FjaGVfcmF3 X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcxLCAoZ2RiX2J5dGUgKikgJiB0 bXB1MzIpOwotICAgICAgaWYgKHRtcHUzMiA9PSAwIHx8IHRtcHUzMiA9PSAy KQorICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hl LCB0ZGVwLT5hcmcxLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHRtcHVs b25nZXN0ID09IDAgfHwgdG1wdWxvbmdlc3QgPT0gMikKIAl7Ci0JICB1aW50 MzJfdCBwdHIsIGJ5dGVjb3VudDsKLQkgIHJlZ2NhY2hlX3Jhd19yZWFkIChy ZWdjYWNoZSwgdGRlcC0+YXJnMiwgKGdkYl9ieXRlICopICYgcHRyKTsKLQkg IHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywKLQkJ CSAgICAgKGdkYl9ieXRlICopICYgYnl0ZWNvdW50KTsKLQkgIGlmIChyZWNv cmRfYXJjaF9saXN0X2FkZF9tZW0gKHB0ciwgYnl0ZWNvdW50KSkKKwkgIFVM T05HRVNUIHB0ciwgYnl0ZWNvdW50OworCSAgcmVnY2FjaGVfcmF3X3JlYWRf dW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAmcHRyKTsKKwkgIHJl Z2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJn MywgJmJ5dGVjb3VudCk7CisJICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRf bWVtICgoQ09SRV9BRERSKXB0ciwgKGludClieXRlY291bnQpKQogCSAgICBy ZXR1cm4gLTE7CiAJfQogICAgICAgYnJlYWs7CiAKICAgICAgIC8qIHN5c19h ZGp0aW1leCAqLwogICAgIGNhc2UgMTI0OgotICAgICAgcmVnY2FjaGVfcmF3 X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcxLCAoZ2RiX2J5dGUgKikgJiB0 bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAo dG1wdTMyLCB0ZGVwLT5zaXplX3RpbWV4KSkKKyAgICAgIHJlZ2NhY2hlX3Jh d19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMSwgJnRtcHVs b25nZXN0KTsKKyAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0g KChDT1JFX0FERFIpdG1wdWxvbmdlc3QsIHRkZXAtPnNpemVfdGltZXgpKQog CXJldHVybiAtMTsKICAgICAgIGJyZWFrOwogCkBAIC0xMDkxLDggKzExOTcs OSBAQCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0sIHN0cnVj CiAKICAgICAgIC8qIHN5c19zaWdwcm9jbWFzayAqLwogICAgIGNhc2UgMTI2 OgotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5h cmczLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX29sZF9z aWdzZXRfdCkpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAo cmVnY2FjaGUsIHRkZXAtPmFyZzMsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBp ZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVs b25nZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGRlcC0+c2l6ZV9vbGRfc2lnc2V0X3QpKQogCXJldHVybiAtMTsKICAgICAg IGJyZWFrOwogCkBAIC0xMTA4LDMyICsxMjE1LDM2IEBAIHJlY29yZF9saW51 eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKIAogICAgICAgLyogc3lz X3F1b3RhY3RsICovCiAgICAgY2FzZSAxMzE6Ci0gICAgICByZWdjYWNoZV9y YXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEsIChnZGJfYnl0ZSAqKSAm IHRtcHUzMik7Ci0gICAgICBzd2l0Y2ggKHRtcHUzMikKKyAgICAgIHJlZ2Nh Y2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMSwg JnRtcHVsb25nZXN0KTsKKyAgICAgIHN3aXRjaCAodG1wdWxvbmdlc3QpCiAJ ewogCWNhc2UgUkVDT1JEX1FfR0VURk1UOgotCSAgcmVnY2FjaGVfcmF3X3Jl YWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmc0LAotCQkJICAgICAoZ2RiX2J5dGUg KikgJiB0bXB1MzIpOwotCSAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAodG1wdTMyLCA0KSkKKwkgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVk IChyZWdjYWNoZSwgdGRlcC0+YXJnNCwKKwkJCSAgICAgICAgICAgICAgJnRt cHVsb25nZXN0KTsKKyAgICAgICAgICAvKiBfX3UzMiAqLworICAgICAgICAg IGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1w dWxvbmdlc3QsIDQpKQogCSAgICByZXR1cm4gLTE7CiAJICBicmVhazsKIAlj YXNlIFJFQ09SRF9RX0dFVElORk86Ci0JICByZWdjYWNoZV9yYXdfcmVhZCAo cmVnY2FjaGUsIHRkZXAtPmFyZzQsCi0JCQkgICAgIChnZGJfYnl0ZSAqKSAm IHRtcHUzMik7Ci0JICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0 bXB1MzIsIHRkZXAtPnNpemVfbWVtX2RxaW5mbykpCisJICByZWdjYWNoZV9y YXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzQsCisJCQkg ICAgICAgICAgICAgICZ0bXB1bG9uZ2VzdCk7CisgICAgICAgICAgaWYgKHJl Y29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2Vz dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 ZGVwLT5zaXplX21lbV9kcWluZm8pKQogCSAgICByZXR1cm4gLTE7CiAJICBi cmVhazsKIAljYXNlIFJFQ09SRF9RX0dFVFFVT1RBOgotCSAgcmVnY2FjaGVf cmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmc0LAotCQkJICAgICAoZ2Ri X2J5dGUgKikgJiB0bXB1MzIpOwotCSAgaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2lmX2RxYmxrKSkKKwkgIHJl Z2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJn NCwKKwkJCSAgICAgICAgICAgICAgJnRtcHVsb25nZXN0KTsKKyAgICAgICAg ICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRt cHVsb25nZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRkZXAtPnNpemVfaWZfZHFibGspKQogCSAgICByZXR1cm4gLTE7 CiAJICBicmVhazsKIAljYXNlIFJFQ09SRF9RX1hHRVRRU1RBVDoKIAljYXNl IFJFQ09SRF9RX1hHRVRRVU9UQToKLQkgIHJlZ2NhY2hlX3Jhd19yZWFkIChy ZWdjYWNoZSwgdGRlcC0+YXJnNCwKLQkJCSAgICAgKGdkYl9ieXRlICopICYg dG1wdTMyKTsKLQkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRt cHUzMiwgdGRlcC0+c2l6ZV9mc19xdW90YV9zdGF0KSkKKwkgIHJlZ2NhY2hl X3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnNCwKKwkJ CSAgICAgICAgICAgICAgJnRtcHVsb25nZXN0KTsKKyAgICAgICAgICBpZiAo cmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25n ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRkZXAtPnNpemVfZnNfcXVvdGFfc3RhdCkpCiAJICAgIHJldHVybiAtMTsK IAkgIGJyZWFrOwogCX0KQEAgLTExNDksMTMgKzEyNjAsMTMgQEAgcmVjb3Jk X2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAv KiBzeXNfc3lzZnMgKi8KICAgICBjYXNlIDEzNToKLSAgICAgIHJlZ2NhY2hl X3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMSwgKGdkYl9ieXRlICop ICYgdG1wdTMyKTsKLSAgICAgIGlmICh0bXB1MzIgPT0gMikKKyAgICAgIHJl Z2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJn MSwgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlmICh0bXB1bG9uZ2VzdCA9PSAy KQogCXsKLQkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+ YXJnMywKLQkJCSAgICAgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKKwkgIHJl Z2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJn MywKKwkJCSAgICAgICAgICAgICAgJnRtcHVsb25nZXN0KTsKIAkgIC8qWFhY IHRoZSBzaXplIG9mIG1lbW9yeSBpcyBub3QgdmVyeSBjbGVhci4gICovCi0J ICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIDEwKSkK KyAgICAgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09S RV9BRERSKXRtcHVsb25nZXN0LCAxMCkpCiAJICAgIHJldHVybiAtMTsKIAl9 CiAgICAgICBicmVhazsKQEAgLTExNzIsMzYgKzEyODMsNDIgQEAgcmVjb3Jk X2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAv KiBzeXNfbGxzZWVrICovCiAgICAgY2FzZSAxNDA6Ci0gICAgICByZWdjYWNo ZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzQsIChnZGJfYnl0ZSAq KSAmIHRtcHUzMik7Ci0gICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRf bWVtICh0bXB1MzIsIHRkZXAtPnNpemVfbG9mZl90KSkKKyAgICAgIHJlZ2Nh Y2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnNCwg JnRtcHVsb25nZXN0KTsKKyAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2Fk ZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX2xvZmZfdCkpCiAJ cmV0dXJuIC0xOwogICAgICAgYnJlYWs7CiAKICAgICAgIC8qIHN5c19nZXRk ZW50cyAqLwogICAgIGNhc2UgMTQxOgogICAgICAgewotCXVpbnQzMl90IGNv dW50OwotCXJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJn MiwKLQkJCSAgIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0JcmVnY2FjaGVf cmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAoZ2RiX2J5dGUgKikg JiBjb3VudCk7Ci0JaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1w dTMyLCB0ZGVwLT5zaXplX2RpcmVudCAqIGNvdW50KSkKKwlVTE9OR0VTVCBj b3VudDsKKwlyZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUs IHRkZXAtPmFyZzIsCisJCQkgICAgICAgICAgICAmdG1wdWxvbmdlc3QpOwor CXJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+ YXJnMywgJmNvdW50KTsKKyAgICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9kaXJlbnQg KiBjb3VudCkpCiAJICByZXR1cm4gLTE7CiAgICAgICB9CiAgICAgICBicmVh azsKIAogICAgICAgLyogc3lzX3NlbGVjdCAqLwogICAgIGNhc2UgMTQyOgot ICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcy LCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9h cmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2ZkX3NldCkp CisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUs IHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3Jk X2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6 ZV9mZF9zZXQpKQogCXJldHVybiAtMTsKLSAgICAgIHJlZ2NhY2hlX3Jhd19y ZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywgKGdkYl9ieXRlICopICYgdG1w dTMyKTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRt cHUzMiwgdGRlcC0+c2l6ZV9mZF9zZXQpKQorICAgICAgcmVnY2FjaGVfcmF3 X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAmdG1wdWxv bmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAo KENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRkZXAtPnNpemVfZmRfc2V0KSkKIAlyZXR1cm4g LTE7Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAt PmFyZzQsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNpemVfZmRf c2V0KSkKKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdj YWNoZSwgdGRlcC0+YXJnNCwgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlmIChy ZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdl c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVw LT5zaXplX2ZkX3NldCkpCiAJcmV0dXJuIC0xOwotICAgICAgcmVnY2FjaGVf cmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmc1LCAoZ2RiX2J5dGUgKikg JiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAodG1wdTMyLCB0ZGVwLT5zaXplX3RpbWV2YWwpKQorICAgICAgcmVnY2Fj aGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmc1LCAm dG1wdWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRk X21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRkZXAtPnNpemVfdGltZXZhbCkpCiAJ cmV0dXJuIC0xOwogICAgICAgYnJlYWs7CiAKQEAgLTEyMTQsMzQgKzEzMzEs MzQgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1 YwogICAgICAgLyogc3lzX3JlYWR2ICovCiAgICAgY2FzZSAxNDU6CiAgICAg ICB7Ci0JdWludDMyX3QgdmVjOwotCXVpbnQzMl90IHZsZW47Ci0Jc3RydWN0 IHJlY29yZF9pb3ZlYwotCXsKLQkgIHVpbnQzMl90IGlvdl9iYXNlOwotCSAg dWludDMyX3QgaW92X2xlbjsKLQl9IGlvdjsKLQlyZWdjYWNoZV9yYXdfcmVh ZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsIChnZGJfYnl0ZSAqKSAmIHZlYyk7 CisJVUxPTkdFU1QgdmVjLCB2bGVuOworCisJcmVnY2FjaGVfcmF3X3JlYWRf dW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAmdmVjKTsKIAlpZiAo dmVjKQogCSAgewotCSAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUs IHRkZXAtPmFyZzMsCi0JCQkgICAgICAgKGdkYl9ieXRlICopICYgdmxlbik7 Ci0JICAgIGZvciAodG1wdTMyID0gMDsgdG1wdTMyIDwgdmxlbjsgdG1wdTMy KyspCisgICAgICAgICAgICBnZGJfYnl0ZSAqaW92ID0gYWxsb2NhICh0ZGVw LT5zaXplX2lvdmVjKTsKKworCSAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNp Z25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsICZ2bGVuKTsKKwkgICAgZm9y ICh0bXB1bG9uZ2VzdCA9IDA7IHRtcHVsb25nZXN0IDwgdmxlbjsgdG1wdWxv bmdlc3QrKykKIAkgICAgICB7Ci0JCWlmICh0YXJnZXRfcmVhZF9tZW1vcnkK LQkJICAgICh2ZWMsIChnZGJfYnl0ZSAqKSAmIGlvdiwgc2l6ZW9mIChzdHJ1 Y3QgcmVjb3JkX2lvdmVjKSkpCisJCWlmICh0YXJnZXRfcmVhZF9tZW1vcnkg KChDT1JFX0FERFIpdmVjLCBpb3YsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9pb3ZlYykpCiAJCSAgewog CQkgICAgaWYgKHJlY29yZF9kZWJ1ZykKIAkJICAgICAgZnByaW50Zl91bmZp bHRlcmVkIChnZGJfc3RkbG9nLAogCQkJCQkgICJQcm9jZXNzIHJlY29yZDog ZXJyb3IgcmVhZGluZyAiCi0JCQkJCSAgIm1lbW9yeSBhdCBhZGRyID0gMHgl cyBsZW4gPSAlbHUuXG4iLAotCQkJCQkgIHBhZGRyX256ICh2ZWMpLAotCQkJ CQkgICh1bnNpZ25lZCBsb25nKXNpemVvZiAoc3RydWN0IHJlY29yZF9pb3Zl YykpOworCQkJCQkgICJtZW1vcnkgYXQgYWRkciA9IDB4JXMgbGVuID0gJWQu XG4iLAorCQkJCQkgIE9VVFBVVF9SRUcgKHZlYywgdGRlcC0+YXJnMiksCisJ CQkJCSAgdGRlcC0+c2l6ZV9pb3ZlYyk7CiAJCSAgICByZXR1cm4gLTE7CiAJ CSAgfQotCQlpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtIChpb3YuaW92 X2Jhc2UsIGlvdi5pb3ZfbGVuKSkKKwkJaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX21lbQorICAgICAgICAgICAgICAgICAgICAgICgoQ09SRV9BRERSKWV4 dHJhY3RfdW5zaWduZWRfaW50ZWdlcgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGlvdiwgdGRlcC0+c2l6ZV9wb2ludGVyKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgKGludClleHRyYWN0X3Vuc2lnbmVkX2lu dGVnZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpb3YgKyB0 ZGVwLT5zaXplX3BvaW50ZXIsIHRkZXAtPnNpemVfc2l6ZV90KSkpCiAJCSAg cmV0dXJuIC0xOwotCQl2ZWMgKz0gc2l6ZW9mIChzdHJ1Y3QgcmVjb3JkX2lv dmVjKTsKKwkJdmVjICs9IHRkZXAtPnNpemVfaW92ZWM7CiAJICAgICAgfQog CSAgfQogICAgICAgfQpAQCAtMTI2OSw4ICsxMzg2LDggQEAgcmVjb3JkX2xp bnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAvKiBz eXNfc2NoZWRfZ2V0cGFyYW0gKi8KICAgICBjYXNlIDE1NToKLSAgICAgIHJl Z2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwgKGdkYl9i eXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0 X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV9pbnQpKQorICAgICAgcmVn Y2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcy LCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwgdGRlcC0+c2l6ZV9p bnQpKQogCXJldHVybiAtMTsKICAgICAgIGJyZWFrOwogCkBAIC0xMjkwLDgg KzE0MDcsOSBAQCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0s IHN0cnVjCiAgICAgY2FzZSAxNjE6CiAgICAgICAvKiBzeXNfbmFub3NsZWVw ICovCiAgICAgY2FzZSAxNjI6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAo cmVnY2FjaGUsIHRkZXAtPmFyZzIsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7 Ci0gICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIs IHRkZXAtPnNpemVfdGltZXNwZWMpKQorICAgICAgcmVnY2FjaGVfcmF3X3Jl YWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAmdG1wdWxvbmdl c3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENP UkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRkZXAtPnNpemVfdGltZXNwZWMpKQogCXJldHVybiAt MTsKICAgICAgIGJyZWFrOwogCkBAIC0xMzAzLDE0ICsxNDIxLDE2IEBAIHJl Y29yZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKIAogICAg ICAgLyogc3lzX2dldHJlc3VpZDE2ICovCiAgICAgY2FzZSAxNjU6Ci0gICAg ICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEsIChn ZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAocmVjb3JkX2FyY2hf bGlzdF9hZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNpemVfb2xkX3VpZF90KSkK KyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwg dGRlcC0+YXJnMSwgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlmIChyZWNvcmRf YXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVwLT5zaXpl X29sZF91aWRfdCkpCiAJcmV0dXJuIC0xOwotICAgICAgcmVnY2FjaGVfcmF3 X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5dGUgKikgJiB0 bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAo dG1wdTMyLCB0ZGVwLT5zaXplX29sZF91aWRfdCkpCisgICAgICByZWdjYWNo ZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0 bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRf bWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9vbGRfdWlkX3QpKQog CXJldHVybiAtMTsKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNo ZSwgdGRlcC0+YXJnMywgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLSAgICAg IGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+ c2l6ZV9vbGRfdWlkX3QpKQorICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5z aWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAmdG1wdWxvbmdlc3QpOwor ICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQURE Uil0bXB1bG9uZ2VzdCwgdGRlcC0+c2l6ZV9vbGRfdWlkX3QpKQogCXJldHVy biAtMTsKICAgICAgIGJyZWFrOwogCkBAIC0xMzIyLDMwICsxNDQyLDMwIEBA IHJlY29yZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKIAog ICAgICAgLyogc3lzX3BvbGwgKi8KICAgICBjYXNlIDE2ODoKLSAgICAgIHJl Z2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMSwgKGdkYl9i eXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlmICh0bXB1MzIpCisgICAgICBy ZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFy ZzEsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAodG1wdWxvbmdlc3QpCiAJ ewotCSAgdWludDMyX3QgbmZkczsKLQkgIHJlZ2NhY2hlX3Jhd19yZWFkIChy ZWdjYWNoZSwgdGRlcC0+YXJnMiwKLQkJCSAgICAgKGdkYl9ieXRlICopICYg bmZkcyk7Ci0JICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1 MzIsIHRkZXAtPnNpemVfcG9sbGZkICogbmZkcykpCisJICBVTE9OR0VTVCBu ZmRzOworCSAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hl LCB0ZGVwLT5hcmcyLCAmbmZkcyk7CisgICAgICAgICAgaWYgKHJlY29yZF9h cmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVwLT5z aXplX3BvbGxmZCAqIG5mZHMpKQogCSAgICByZXR1cm4gLTE7CiAJfQogICAg ICAgYnJlYWs7CiAKICAgICAgIC8qIHN5c19uZnNzZXJ2Y3RsICovCiAgICAg Y2FzZSAxNjk6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUs IHRkZXAtPmFyZzEsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBp ZiAodG1wdTMyID09IDcgfHwgdG1wdTMyID09IDgpCisgICAgICByZWdjYWNo ZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEsICZ0 bXB1bG9uZ2VzdCk7CisgICAgICBpZiAodG1wdWxvbmdlc3QgPT0gNyB8fCB0 bXB1bG9uZ2VzdCA9PSA4KQogCXsKLQkgIHVpbnQzMl90IHJzaXplOwotCSAg aWYgKHRtcHUzMiA9PSA3KQorCSAgaW50IHJzaXplOworCSAgaWYgKHRtcHVs b25nZXN0ID09IDcpCiAJICAgIHJzaXplID0gdGRlcC0+c2l6ZV9ORlNfRkhT SVpFOwogCSAgZWxzZQogCSAgICByc2l6ZSA9IHRkZXAtPnNpemVfa25mc2Rf Zmg7Ci0JICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFy ZzMsCi0JCQkgICAgIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0JICBpZiAo cmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHJzaXplKSkKKwkg IHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+ YXJnMywKKwkJCSAgICAgICAgICAgICAgJnRtcHVsb25nZXN0KTsKKyAgICAg ICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERS KXRtcHVsb25nZXN0LCByc2l6ZSkpCiAJICAgIHJldHVybiAtMTsKIAl9CiAg ICAgICBicmVhazsKQEAgLTEzNTYsMzIgKzE0NzYsMzQgQEAgcmVjb3JkX2xp bnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAvKiBz eXNfZ2V0cmVzZ2lkMTYgKi8KICAgICBjYXNlIDE3MToKLSAgICAgIHJlZ2Nh Y2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMSwgKGdkYl9ieXRl ICopICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2Fk ZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV9vbGRfZ2lkX3QpKQorICAgICAg cmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5h cmcxLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xp c3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCx0ZGVwLT5zaXpl X29sZF9naWRfdCkpCiAJcmV0dXJuIC0xOwotICAgICAgcmVnY2FjaGVfcmF3 X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5dGUgKikgJiB0 bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAo dG1wdTMyLCB0ZGVwLT5zaXplX29sZF9naWRfdCkpCisgICAgICByZWdjYWNo ZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0 bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRf bWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LCB0ZGVwLT5zaXplX29sZF9n aWRfdCkpCiAJcmV0dXJuIC0xOwotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQg KHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIp OwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMy LCB0ZGVwLT5zaXplX29sZF9naWRfdCkpCisgICAgICByZWdjYWNoZV9yYXdf cmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsICZ0bXB1bG9u Z2VzdCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgo Q09SRV9BRERSKXRtcHVsb25nZXN0LCB0ZGVwLT5zaXplX29sZF9naWRfdCkp CiAJcmV0dXJuIC0xOwogICAgICAgYnJlYWs7CiAKICAgICAgIC8qIHN5c19w cmN0bCAqLwogICAgIGNhc2UgMTcyOgotICAgICAgcmVnY2FjaGVfcmF3X3Jl YWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcxLCAoZ2RiX2J5dGUgKikgJiB0bXB1 MzIpOwotICAgICAgc3dpdGNoICh0bXB1MzIpCisgICAgICByZWdjYWNoZV9y YXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEsICZ0bXB1 bG9uZ2VzdCk7CisgICAgICBzd2l0Y2ggKHRtcHVsb25nZXN0KQogCXsKIAlj YXNlIDI6Ci0JICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAt PmFyZzIsCi0JCQkgICAgIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0JICBp ZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNp emVfaW50KSkKKwkgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdj YWNoZSwgdGRlcC0+YXJnMiwKKwkJCSAgICAgICAgICAgICAgJnRtcHVsb25n ZXN0KTsKKwkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JF X0FERFIpdG1wdWxvbmdlc3QsCisJICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0ZGVwLT5zaXplX2ludCkpCiAJICAgIHJldHVybiAtMTsKIAkg IGJyZWFrOwogCWNhc2UgMTY6Ci0JICByZWdjYWNoZV9yYXdfcmVhZCAocmVn Y2FjaGUsIHRkZXAtPmFyZzIsCi0JCQkgICAgIChnZGJfYnl0ZSAqKSAmIHRt cHUzMik7Ci0JICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1 MzIsIHRkZXAtPnNpemVfVEFTS19DT01NX0xFTikpCisJICByZWdjYWNoZV9y YXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsCisJCQkg ICAgICAgICAgICAgICZ0bXB1bG9uZ2VzdCk7CisJICBpZiAocmVjb3JkX2Fy Y2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9UQVNL X0NPTU1fTEVOKSkKIAkgICAgcmV0dXJuIC0xOwogCSAgYnJlYWs7CiAJfQpA QCAtMTM5MywzNSArMTUxNSwzOCBAQCByZWNvcmRfbGludXhfc3lzdGVtX2Nh bGwgKGludCBudW0sIHN0cnVjCiAKICAgICAgIC8qIHN5c19ydF9zaWdhY3Rp b24gKi8KICAgICBjYXNlIDE3NDoKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFk IChyZWdjYWNoZSwgdGRlcC0+YXJnMywgKGdkYl9ieXRlICopICYgdG1wdTMy KTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUz MiwgdGRlcC0+c2l6ZV9zaWdhY3Rpb24pKQorICAgICAgcmVnY2FjaGVfcmF3 X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAmdG1wdWxv bmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAo KENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKwkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGRlcC0+c2l6ZV9zaWdhY3Rpb24pKQogCXJldHVybiAtMTsK ICAgICAgIGJyZWFrOwogCiAgICAgICAvKiBzeXNfcnRfc2lncHJvY21hc2sg Ki8KICAgICBjYXNlIDE3NToKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChy ZWdjYWNoZSwgdGRlcC0+YXJnMywgKGdkYl9ieXRlICopICYgdG1wdTMyKTsK LSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwg dGRlcC0+c2l6ZV9zaWdzZXRfdCkpCisgICAgICByZWdjYWNoZV9yYXdfcmVh ZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsICZ0bXB1bG9uZ2Vz dCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09S RV9BRERSKXRtcHVsb25nZXN0LAorCSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ZGVwLT5zaXplX3NpZ3NldF90KSkKIAlyZXR1cm4gLTE7CiAgICAg ICBicmVhazsKIAogICAgICAgLyogc3lzX3J0X3NpZ3BlbmRpbmcgKi8KICAg ICBjYXNlIDE3NjoKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNo ZSwgdGRlcC0+YXJnMSwgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLSAgICAg IGlmICh0bXB1MzIpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25l ZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEsICZ0bXB1bG9uZ2VzdCk7CisgICAg ICBpZiAodG1wdWxvbmdlc3QpCiAJewotCSAgdWludDMyX3Qgc2lnc2V0c2l6 ZTsKLQkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJn MiwKLQkJCSAgICAgKGdkYl9ieXRlICopICYgc2lnc2V0c2l6ZSk7Ci0JICBp ZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHNpZ3NldHNp emUpKQorCSAgVUxPTkdFU1Qgc2lnc2V0c2l6ZTsKKwkgIHJlZ2NhY2hlX3Jh d19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwmc2lnc2V0 c2l6ZSk7CisJICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09S RV9BRERSKXRtcHVsb25nZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChpbnQpc2lnc2V0c2l6ZSkpCiAJICAgIHJldHVy biAtMTsKIAl9CiAgICAgICBicmVhazsKIAogICAgICAgLyogc3lzX3J0X3Np Z3RpbWVkd2FpdCAqLwogICAgIGNhc2UgMTc3OgotICAgICAgcmVnY2FjaGVf cmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5dGUgKikg JiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAodG1wdTMyLCB0ZGVwLT5zaXplX3NpZ2luZm9fdCkpCisgICAgICByZWdj YWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIs ICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9h ZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX3NpZ2luZm9fdCkpCiAJcmV0 dXJuIC0xOwogICAgICAgYnJlYWs7CiAKQEAgLTE0MzMsMTMgKzE1NTgsMTIg QEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1Ywog CiAgICAgICAvKiBzeXNfcHJlYWQ2NCAqLwogICAgIGNhc2UgMTgwOgotICAg ICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAo Z2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHRtcHUzMikKKyAg ICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRl cC0+YXJnMiwgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlmICh0bXB1bG9uZ2Vz dCkKIAl7Ci0JICB1aW50MzJfdCBjb3VudDsKLQkgIHJlZ2NhY2hlX3Jhd19y ZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywKLQkJCSAgICAgKGdkYl9ieXRl ICopICYgY291bnQpOwotCSAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAodG1wdTMyLCBjb3VudCkpCisJICBVTE9OR0VTVCBjb3VudDsKKwkgIHJl Z2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJn MywmY291bnQpOworCSAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAo KENPUkVfQUREUil0bXB1bG9uZ2VzdCwgKGludCljb3VudCkpCiAJICAgIHJl dHVybiAtMTsKIAl9CiAgICAgICBicmVhazsKQEAgLTE0NTIsMjEgKzE1NzYs MjEgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1 YwogCiAgICAgICAvKiBzeXNfZ2V0Y3dkICovCiAgICAgY2FzZSAxODM6Ci0g ICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEs IChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAodG1wdTMyKQor ICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0 ZGVwLT5hcmcxLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHRtcHVsb25n ZXN0KQogCXsKLQkgIHVpbnQzMl90IHNpemU7Ci0JICByZWdjYWNoZV9yYXdf cmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsCi0JCQkgICAgIChnZGJfYnl0 ZSAqKSAmIHNpemUpOwotCSAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAodG1wdTMyLCBzaXplKSkKKwkgIFVMT05HRVNUIHNpemU7CisJICByZWdj YWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIs ICZzaXplKTsKKwkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChD T1JFX0FERFIpdG1wdWxvbmdlc3QsIChpbnQpc2l6ZSkpCiAJICAgIHJldHVy biAtMTsKIAl9CiAgICAgICBicmVhazsKIAogICAgICAgLyogc3lzX2NhcGdl dCAqLwogICAgIGNhc2UgMTg0OgotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQg KHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIp OwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMy LCB0ZGVwLT5zaXplX2NhcF91c2VyX2RhdGFfdCkpCisgICAgICByZWdjYWNo ZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0 bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRf bWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorCSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0ZGVwLT5zaXplX2NhcF91c2VyX2RhdGFfdCkpCiAJ cmV0dXJuIC0xOwogICAgICAgYnJlYWs7CiAKQEAgLTE0NzYsMTUgKzE2MDAs MTYgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1 YwogCiAgICAgICAvKiBzeXNfc2lnYWx0c3RhY2sgKi8KICAgICBjYXNlIDE4 NjoKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+ YXJnMiwgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNv cmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV9zdGFj a190KSkKKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdj YWNoZSwgdGRlcC0+YXJnMiwgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlmIChy ZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdl c3QsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkZXAtPnNpemVf c3RhY2tfdCkpCiAJcmV0dXJuIC0xOwogICAgICAgYnJlYWs7CiAKICAgICAg IC8qIHN5c19zZW5kZmlsZSAqLwogICAgIGNhc2UgMTg3OgotICAgICAgcmVn Y2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAoZ2RiX2J5 dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX29mZl90KSkKKyAgICAgIHJl Z2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJn MywgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0 X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsIHRkZXAtPnNpemVf b2ZmX3QpKQogCXJldHVybiAtMTsKICAgICAgIGJyZWFrOwogCkBAIC0xNDk4 LDggKzE2MjMsOSBAQCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBu dW0sIHN0cnVjCiAKICAgICAgIC8qIHN5c19nZXRybGltaXQgKi8KICAgICBj YXNlIDE5MToKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwg dGRlcC0+YXJnMiwgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlm IChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6 ZV9ybGltaXQpKQorICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQg KHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAmdG1wdWxvbmdlc3QpOworICAgICAg aWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1 bG9uZ2VzdCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+ c2l6ZV9ybGltaXQpKQogCXJldHVybiAtMTsKICAgICAgIGJyZWFrOwogCkBA IC0xNTE5LDggKzE2NDUsOSBAQCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwg KGludCBudW0sIHN0cnVjCiAgICAgY2FzZSAxOTY6CiAgICAgICAvKiBzeXNf ZnN0YXQ2NCAqLwogICAgIGNhc2UgMTk3OgotICAgICAgcmVnY2FjaGVfcmF3 X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5dGUgKikgJiB0 bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAo dG1wdTMyLCB0ZGVwLT5zaXplX3N0YXQ2NCkpCisgICAgICByZWdjYWNoZV9y YXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1 bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVt ICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorCSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0ZGVwLT5zaXplX3N0YXQ2NCkpCiAJcmV0dXJuIC0xOwog ICAgICAgYnJlYWs7CiAKQEAgLTE1NDIsMTQgKzE2NjksMTQgQEAgcmVjb3Jk X2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAv KiBzeXNfZ2V0Z3JvdXBzICovCiAgICAgY2FzZSAyMDU6Ci0gICAgICByZWdj YWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsIChnZGJfYnl0 ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAodG1wdTMyKQorICAgICAgcmVn Y2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcy LCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHRtcHVsb25nZXN0KQogCXsK LQkgIGludCBnaWRzZXRzaXplOwotCSAgcmVnY2FjaGVfcmF3X3JlYWQgKHJl Z2NhY2hlLCB0ZGVwLT5hcmcxLAotCQkJICAgICAoZ2RiX2J5dGUgKikgJiBn aWRzZXRzaXplKTsKLQkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0K LQkgICAgICAodG1wdTMyLCB0ZGVwLT5zaXplX2dpZF90ICogZ2lkc2V0c2l6 ZSkpCisJICBVTE9OR0VTVCBnaWRzZXRzaXplOworCSAgcmVnY2FjaGVfcmF3 X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcxLAorCQkJICAg ICAgICAgICAgICAmZ2lkc2V0c2l6ZSk7CisJICBpZiAocmVjb3JkX2FyY2hf bGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorCSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9naWRfdCAq IChpbnQpZ2lkc2V0c2l6ZSkpCiAJICAgIHJldHVybiAtMTsKIAl9CiAgICAg ICBicmVhazsKQEAgLTE1NjQsMTQgKzE2OTEsMTQgQEAgcmVjb3JkX2xpbnV4 X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAvKiBzeXNf Z2V0cmVzdWlkICovCiAgICAgY2FzZSAyMDk6Ci0gICAgICByZWdjYWNoZV9y YXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEsIChnZGJfYnl0ZSAqKSAm IHRtcHUzMik7Ci0gICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVt ICh0bXB1MzIsIHRkZXAtPnNpemVfdWlkX3QpKQorICAgICAgcmVnY2FjaGVf cmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcxLCAmdG1w dWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwgdGRlcC0+c2l6ZV91aWRfdCkp CiAJcmV0dXJuIC0xOwotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2Nh Y2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAg ICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVw LT5zaXplX3VpZF90KSkKKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2ln bmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwgJnRtcHVsb25nZXN0KTsKKyAg ICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIp dG1wdWxvbmdlc3QsIHRkZXAtPnNpemVfdWlkX3QpKQogCXJldHVybiAtMTsK LSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJn MywgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNvcmRf YXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV91aWRfdCkp CisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUs IHRkZXAtPmFyZzMsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3Jk X2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LCB0 ZGVwLT5zaXplX3VpZF90KSkKIAlyZXR1cm4gLTE7CiAgICAgICBicmVhazsK IApAQCAtMTU4MSwxNCArMTcwOCwxNCBAQCByZWNvcmRfbGludXhfc3lzdGVt X2NhbGwgKGludCBudW0sIHN0cnVjCiAKICAgICAgIC8qIHN5c19nZXRyZXNn aWQgKi8KICAgICBjYXNlIDIxMToKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFk IChyZWdjYWNoZSwgdGRlcC0+YXJnMSwgKGdkYl9ieXRlICopICYgdG1wdTMy KTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUz MiwgdGRlcC0+c2l6ZV9naWRfdCkpCisgICAgICByZWdjYWNoZV9yYXdfcmVh ZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEsICZ0bXB1bG9uZ2Vz dCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09S RV9BRERSKXRtcHVsb25nZXN0LCB0ZGVwLT5zaXplX2dpZF90KSkKIAlyZXR1 cm4gLTE7Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRk ZXAtPmFyZzIsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAo cmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNpemVf Z2lkX3QpKQorICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJl Z2NhY2hlLCB0ZGVwLT5hcmcyLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYg KHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9u Z2VzdCwgdGRlcC0+c2l6ZV9naWRfdCkpCiAJcmV0dXJuIC0xOwotICAgICAg cmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAoZ2Ri X2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xp c3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2dpZF90KSkKKyAgICAg IHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+ YXJnMywgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlmIChyZWNvcmRfYXJjaF9s aXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsIHRkZXAtPnNp emVfZ2lkX3QpKQogCXJldHVybiAtMTsKICAgICAgIGJyZWFrOwogCkBAIC0x NjA4LDggKzE3MzUsOSBAQCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGlu dCBudW0sIHN0cnVjCiAKICAgICAgIC8qIHN5c19taW5jb3JlICovCiAgICAg Y2FzZSAyMTg6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUs IHRkZXAtPmFyZzMsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBp ZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNp emVfUEFHRV9TSVpFKSkKKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2ln bmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywgJnRtcHVsb25nZXN0KTsKKyAg ICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIp dG1wdWxvbmdlc3QsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRk ZXAtPnNpemVfUEFHRV9TSVpFKSkKIAlyZXR1cm4gLTE7CiAgICAgICBicmVh azsKIApAQCAtMTYyMCwyNyArMTc0OCwyOSBAQCByZWNvcmRfbGludXhfc3lz dGVtX2NhbGwgKGludCBudW0sIHN0cnVjCiAgICAgICAvKiBzeXNfZ2V0ZGVu dHM2NCAqLwogICAgIGNhc2UgMjIwOgogICAgICAgewotCXVpbnQzMl90IGNv dW50OwotCXJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJn MiwKLQkJCSAgIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0JcmVnY2FjaGVf cmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAoZ2RiX2J5dGUgKikg JiBjb3VudCk7Ci0JaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1w dTMyLCB0ZGVwLT5zaXplX2RpcmVudDY0ICogY291bnQpKQorCVVMT05HRVNU IGNvdW50OworCXJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNo ZSwgdGRlcC0+YXJnMiwKKwkJCSAgICAgICAgICAgICZ0bXB1bG9uZ2VzdCk7 CisJcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVw LT5hcmczLCAmY291bnQpOworCWlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9t ZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisJICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9kaXJlbnQ2NCAqIGNvdW50KSkK IAkgIHJldHVybiAtMTsKICAgICAgIH0KICAgICAgIGJyZWFrOwogCiAgICAg ICAvKiBzeXNfZmNudGw2NCAqLwogICAgIGNhc2UgMjIxOgotICAgICAgcmVn Y2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5 dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHRtcHUzMiA9PSB0ZGVwLT5m Y250bF9GX0dFVExLNjQpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNp Z25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2VzdCk7Cisg ICAgICBpZiAodG1wdWxvbmdlc3QgPT0gdGRlcC0+ZmNudGxfRl9HRVRMSzY0 KQogICAgICAgICB7Ci0JICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUs IHRkZXAtPmFyZzMsCi0JCQkgICAgIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7 Ci0JICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHRk ZXAtPnNpemVfZmxvY2s2NCkpCisJICByZWdjYWNoZV9yYXdfcmVhZF91bnNp Z25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsCisJCQkgICAgICAgICAgICAg ICZ0bXB1bG9uZ2VzdCk7CisJICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRf bWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorCSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9mbG9jazY0KSkKIAkgICAg cmV0dXJuIC0xOwogCX0KLSAgICAgIGVsc2UgaWYgKHRtcHUzMiAhPSB0ZGVw LT5mY250bF9GX1NFVExLNjQKLQkgICAgICAgJiYgdG1wdTMyICE9IHRkZXAt PmZjbnRsX0ZfU0VUTEtXNjQpCisgICAgICBlbHNlIGlmICh0bXB1bG9uZ2Vz dCAhPSB0ZGVwLT5mY250bF9GX1NFVExLNjQKKwkgICAgICAgJiYgdG1wdWxv bmdlc3QgIT0gdGRlcC0+ZmNudGxfRl9TRVRMS1c2NCkKICAgICAgICAgewog CSAgZ290byBzeXNfZmNudGw7CiAJfQpAQCAtMTY2OCwxMyArMTc5OCwxMiBA QCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0sIHN0cnVjCiAg ICAgY2FzZSAyMzA6CiAgICAgICAvKiBzeXNfZmdldHhhdHRyICovCiAgICAg Y2FzZSAyMzE6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUs IHRkZXAtPmFyZzMsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBp ZiAodG1wdTMyKQorICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQg KHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAmdG1wdWxvbmdlc3QpOworICAgICAg aWYgKHRtcHVsb25nZXN0KQogCXsKLQkgIHVpbnQzMl90IHNpemU7Ci0JICBy ZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzQsCi0JCQkg ICAgIChnZGJfYnl0ZSAqKSAmIHNpemUpOwotCSAgaWYgKHJlY29yZF9hcmNo X2xpc3RfYWRkX21lbSAodG1wdTMyLCBzaXplKSkKKwkgIFVMT05HRVNUIHNp emU7CisJICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUs IHRkZXAtPmFyZzQsICZzaXplKTsKKwkgIGlmIChyZWNvcmRfYXJjaF9saXN0 X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsIChpbnQpc2l6ZSkp CiAJICAgIHJldHVybiAtMTsKIAl9CiAgICAgICBicmVhazsKQEAgLTE2ODUs MTMgKzE4MTQsMTIgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQg bnVtLCBzdHJ1YwogICAgIGNhc2UgMjMzOgogICAgICAgLyogc3lzX2ZsaXN0 eGF0dHIgKi8KICAgICBjYXNlIDIzNDoKLSAgICAgIHJlZ2NhY2hlX3Jhd19y ZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwgKGdkYl9ieXRlICopICYgdG1w dTMyKTsKLSAgICAgIGlmICh0bXB1MzIpCisgICAgICByZWdjYWNoZV9yYXdf cmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9u Z2VzdCk7CisgICAgICBpZiAodG1wdWxvbmdlc3QpCiAJewotCSAgdWludDMy X3Qgc2l6ZTsKLQkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRl cC0+YXJnMywKLQkJCSAgICAgKGdkYl9ieXRlICopICYgc2l6ZSk7Ci0JICBp ZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHNpemUpKQor CSAgVUxPTkdFU1Qgc2l6ZTsKKwkgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2ln bmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywgJnNpemUpOworCSAgaWYgKHJl Y29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2Vz dCwgKGludClzaXplKSkKIAkgICAgcmV0dXJuIC0xOwogCX0KICAgICAgIGJy ZWFrOwpAQCAtMTcwOCw4ICsxODM2LDkgQEAgcmVjb3JkX2xpbnV4X3N5c3Rl bV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAvKiBzeXNfc2VuZGZp bGU2NCAqLwogICAgIGNhc2UgMjM5OgotICAgICAgcmVnY2FjaGVfcmF3X3Jl YWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAoZ2RiX2J5dGUgKikgJiB0bXB1 MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1w dTMyLCB0ZGVwLT5zaXplX2xvZmZfdCkpCisgICAgICByZWdjYWNoZV9yYXdf cmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsICZ0bXB1bG9u Z2VzdCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgo Q09SRV9BRERSKXRtcHVsb25nZXN0LAorCSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0ZGVwLT5zaXplX2xvZmZfdCkpCiAJcmV0dXJuIC0xOwogICAg ICAgYnJlYWs7CiAKQEAgLTE3MjEsMzQgKzE4NTAsMzUgQEAgcmVjb3JkX2xp bnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAvKiBz eXNfc2NoZWRfZ2V0YWZmaW5pdHkgKi8KICAgICBjYXNlIDI0MjoKLSAgICAg IHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywgKGdk Yl9ieXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlmICh0bXB1MzIpCisgICAg ICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAt PmFyZzMsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAodG1wdWxvbmdlc3Qp CiAJewotCSAgdWludDMyX3QgbGVuOwotCSAgcmVnY2FjaGVfcmF3X3JlYWQg KHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5dGUgKikgJiBsZW4pOwot CSAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCBsZW4p KQorCSAgVUxPTkdFU1QgbGVuOworCSAgcmVnY2FjaGVfcmF3X3JlYWRfdW5z aWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAmbGVuKTsKKwkgIGlmIChy ZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdl c3QsIChpbnQpbGVuKSkKIAkgICAgcmV0dXJuIC0xOwogCX0KICAgICAgIGJy ZWFrOwogCiAgICAgICAvKiBzeXNfc2V0X3RocmVhZF9hcmVhICovCiAgICAg Y2FzZSAyNDM6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUs IHRkZXAtPmFyZzEsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBp ZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNp emVfaW50KSkKKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChy ZWdjYWNoZSwgdGRlcC0+YXJnMSwgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlm IChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxv bmdlc3QsIHRkZXAtPnNpemVfaW50KSkKIAlyZXR1cm4gLTE7CiAgICAgICBi cmVhazsKIAogICAgICAgLyogc3lzX2dldF90aHJlYWRfYXJlYSAqLwogICAg IGNhc2UgMjQ0OgotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hl LCB0ZGVwLT5hcmcxLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAg aWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5z aXplX3VzZXJfZGVzYykpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNp Z25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEsICZ0bXB1bG9uZ2VzdCk7Cisg ICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERS KXRtcHVsb25nZXN0LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 ZGVwLT5zaXplX3VzZXJfZGVzYykpCiAJcmV0dXJuIC0xOwogICAgICAgYnJl YWs7CiAKICAgICAgIC8qIHN5c19pb19zZXR1cCAqLwogICAgIGNhc2UgMjQ1 OgotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5h cmcyLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2xvbmcp KQorICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hl LCB0ZGVwLT5hcmcyLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwg dGRlcC0+c2l6ZV9sb25nKSkKIAlyZXR1cm4gLTE7CiAgICAgICBicmVhazsK IApAQCAtMTc1OCw0OCArMTg4OCw1NSBAQCByZWNvcmRfbGludXhfc3lzdGVt X2NhbGwgKGludCBudW0sIHN0cnVjCiAKICAgICAgIC8qIHN5c19pb19nZXRl dmVudHMgKi8KICAgICBjYXNlIDI0NzoKLSAgICAgIHJlZ2NhY2hlX3Jhd19y ZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnNCwgKGdkYl9ieXRlICopICYgdG1w dTMyKTsKLSAgICAgIGlmICh0bXB1MzIpCisgICAgICByZWdjYWNoZV9yYXdf cmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzQsICZ0bXB1bG9u Z2VzdCk7CisgICAgICBpZiAodG1wdWxvbmdlc3QpCiAJewotCSAgaW50MzJf dCBucjsKLQkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+ YXJnMywgKGdkYl9ieXRlICopICYgbnIpOwotCSAgaWYgKHJlY29yZF9hcmNo X2xpc3RfYWRkX21lbSAodG1wdTMyLCBuciAqIHRkZXAtPnNpemVfaW9fZXZl bnQpKQorCSAgVUxPTkdFU1QgbnI7CisJICByZWdjYWNoZV9yYXdfcmVhZF91 bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsICZucik7CisJICBpZiAo cmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25n ZXN0LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnIgKiB0 ZGVwLT5zaXplX2lvX2V2ZW50KSkKIAkgICAgcmV0dXJuIC0xOwogCX0KICAg ICAgIGJyZWFrOwogCiAgICAgICAvKiBzeXNfaW9fc3VibWl0ICovCiAgICAg Y2FzZSAyNDg6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUs IHRkZXAtPmFyZzMsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBp ZiAodG1wdTMyKQorICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQg KHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAmdG1wdWxvbmdlc3QpOworICAgICAg aWYgKHRtcHVsb25nZXN0KQogCXsKLQkgIGludDMyX3QgaSwgbnI7Ci0JICB1 aW50MzJfdCAqaW9jYnA7Ci0JICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2Fj aGUsIHRkZXAtPmFyZzIsIChnZGJfYnl0ZSAqKSAmIG5yKTsKLQkgIGlvY2Jw ID0gKHVpbnQzMl90ICopIGFsbG9jYSAobnIgKiB0ZGVwLT5zaXplX2ludCk7 Ci0JICBpZiAodGFyZ2V0X3JlYWRfbWVtb3J5Ci0JICAgICAgKHRtcHUzMiwg KGdkYl9ieXRlICopIGlvY2JwLCBuciAqIHRkZXAtPnNpemVfaW50KSkKKyAg ICAgICAgICBVTE9OR0VTVCBuciwgaTsKKyAgICAgICAgICBnZGJfYnl0ZSAq aW9jYnA7CisKKwkgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdj YWNoZSwgdGRlcC0+YXJnMiwgJm5yKTsKKyAgICAgICAgICBpb2NicCA9IGFs bG9jYSAobnIgKiB0ZGVwLT5zaXplX3BvaW50ZXIpOworCSAgaWYgKHRhcmdl dF9yZWFkX21lbW9yeSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwgaW9jYnAs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnIgKiB0ZGVw LT5zaXplX3BvaW50ZXIpKQogCSAgICB7CiAJICAgICAgaWYgKHJlY29yZF9k ZWJ1ZykKIAkJZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogCQkJ CSAgICAiUHJvY2VzcyByZWNvcmQ6IGVycm9yIHJlYWRpbmcgbWVtb3J5ICIK IAkJCQkgICAgImF0IGFkZHIgPSAweCVzIGxlbiA9ICV1LlxuIiwKLQkJCQkg ICAgcGFkZHJfbnogKHRtcHUzMiksCi0JCQkJICAgIChpbnQpKG5yICogdGRl cC0+c2l6ZV9pbnQpKTsKKwkJCQkgICAgT1VUUFVUX1JFRyAodG1wdWxvbmdl c3QsIHRkZXAtPmFyZzIpLAorCQkJCSAgICAoaW50KShuciAqIHRkZXAtPnNp emVfcG9pbnRlcikpOwogCSAgICAgIHJldHVybiAtMTsKIAkgICAgfQogCSAg Zm9yIChpID0gMDsgaSA8IG5yOyBpKyspCiAJICAgIHsKLQkgICAgICBpZiAo cmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtIChpb2NicFtpXSwgdGRlcC0+c2l6 ZV9pb2NiKSkKKwkgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVt ICgoQ09SRV9BRERSKWV4dHJhY3RfdW5zaWduZWRfaW50ZWdlcgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGlvY2JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkZXAtPnNpemVfcG9pbnRl ciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRkZXAtPnNpemVfaW9jYikpCiAJCXJldHVybiAtMTsKKyAgICAgICAg ICAgICAgaW9jYnAgKz0gdGRlcC0+c2l6ZV9wb2ludGVyOwogCSAgICB9CiAJ fQogICAgICAgYnJlYWs7CiAKICAgICAgIC8qIHN5c19pb19jYW5jZWwgKi8K ICAgICBjYXNlIDI0OToKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdj YWNoZSwgdGRlcC0+YXJnMywgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLSAg ICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRl cC0+c2l6ZV9pb19ldmVudCkpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91 bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsICZ0bXB1bG9uZ2VzdCk7 CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9B RERSKXRtcHVsb25nZXN0LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0ZGVwLT5zaXplX2lvX2V2ZW50KSkKIAlyZXR1cm4gLTE7CiAgICAgICBi cmVhazsKIApAQCAtMTgyNiwxMiArMTk2MywxMiBAQCByZWNvcmRfbGludXhf c3lzdGVtX2NhbGwgKGludCBudW0sIHN0cnVjCiAKICAgICAgIC8qIHN5c19s b29rdXBfZGNvb2tpZSAqLwogICAgIGNhc2UgMjUzOgotICAgICAgcmVnY2Fj aGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5dGUg KikgJiB0bXB1MzIpOwotICAgICAgaWYgKHRtcHUzMikKKyAgICAgIHJlZ2Nh Y2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwg JnRtcHVsb25nZXN0KTsKKyAgICAgIGlmICh0bXB1bG9uZ2VzdCkKIAl7Ci0J ICB1aW50MzJfdCBsZW47Ci0JICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2Fj aGUsIHRkZXAtPmFyZzMsIChnZGJfYnl0ZSAqKSAmIGxlbik7Ci0JICBpZiAo cmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIGxlbikpCisJICBV TE9OR0VTVCBsZW47CisJICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAo cmVnY2FjaGUsIHRkZXAtPmFyZzMsICZsZW4pOworCSAgaWYgKHJlY29yZF9h cmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwgKGlu dClsZW4pKQogCSAgICByZXR1cm4gLTE7CiAJfQogICAgICAgYnJlYWs7CkBA IC0xODQ0LDE0ICsxOTgxLDEzIEBAIHJlY29yZF9saW51eF9zeXN0ZW1fY2Fs bCAoaW50IG51bSwgc3RydWMKIAogICAgICAgLyogc3lzX2Vwb2xsX3dhaXQg Ki8KICAgICBjYXNlIDI1NjoKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChy ZWdjYWNoZSwgdGRlcC0+YXJnMiwgKGdkYl9ieXRlICopICYgdG1wdTMyKTsK LSAgICAgIGlmICh0bXB1MzIpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91 bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2VzdCk7 CisgICAgICBpZiAodG1wdWxvbmdlc3QpCiAJewotCSAgaW50MzJfdCBtYXhl dmVudHM7Ci0JICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAt PmFyZzMsCi0JCQkgICAgIChnZGJfYnl0ZSAqKSAmIG1heGV2ZW50cyk7Ci0J ICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtCi0JICAgICAgKHRtcHUz MiwgbWF4ZXZlbnRzICogdGRlcC0+c2l6ZV9lcG9sbF9ldmVudCkpCisJICBV TE9OR0VTVCBtYXhldmVudHM7CisJICByZWdjYWNoZV9yYXdfcmVhZF91bnNp Z25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsICZtYXhldmVudHMpOworCSAg aWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1 bG9uZ2VzdCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h eGV2ZW50cyAqIHRkZXAtPnNpemVfZXBvbGxfZXZlbnQpKQogCSAgICByZXR1 cm4gLTE7CiAJfQogICAgICAgYnJlYWs7CkBAIC0xODY0LDIyICsyMDAwLDI0 IEBAIHJlY29yZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMK IAogICAgICAgLyogc3lzX3RpbWVyX2NyZWF0ZSAqLwogICAgIGNhc2UgMjU5 OgotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5h cmczLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2ludCkp CisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUs IHRkZXAtPmFyZzMsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3Jk X2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LCB0 ZGVwLT5zaXplX2ludCkpCiAJcmV0dXJuIC0xOwogICAgICAgYnJlYWs7CiAK ICAgICAgIC8qIHN5c190aW1lcl9zZXR0aW1lICovCiAgICAgY2FzZSAyNjA6 Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFy ZzQsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAocmVjb3Jk X2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNpemVfaXRpbWVy c3BlYykpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVn Y2FjaGUsIHRkZXAtPmFyZzQsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAo cmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25n ZXN0LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVwLT5zaXpl X2l0aW1lcnNwZWMpKQogCXJldHVybiAtMTsKICAgICAgIGJyZWFrOwogCiAg ICAgICAvKiBzeXNfdGltZXJfZ2V0dGltZSAqLwogICAgIGNhc2UgMjYxOgot ICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcy LCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9h cmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2l0aW1lcnNw ZWMpKQorICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2Nh Y2hlLCB0ZGVwLT5hcmcyLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHJl Y29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2Vz dCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9p dGltZXJzcGVjKSkKIAlyZXR1cm4gLTE7CiAgICAgICBicmVhazsKIApAQCAt MTg5MywyMiArMjAzMSwyNSBAQCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwg KGludCBudW0sIHN0cnVjCiAKICAgICAgIC8qIHN5c19jbG9ja19nZXR0aW1l ICovCiAgICAgY2FzZSAyNjU6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAo cmVnY2FjaGUsIHRkZXAtPmFyZzIsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7 Ci0gICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIs IHRkZXAtPnNpemVfdGltZXNwZWMpKQorICAgICAgcmVnY2FjaGVfcmF3X3Jl YWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAmdG1wdWxvbmdl c3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoKENP UkVfQUREUil0bXB1bG9uZ2VzdCwKKwkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGRlcC0+c2l6ZV90aW1lc3BlYykpCiAJcmV0dXJuIC0xOwogICAg ICAgYnJlYWs7CiAKICAgICAgIC8qIHN5c19jbG9ja19nZXRyZXMgKi8KICAg ICBjYXNlIDI2NjoKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNo ZSwgdGRlcC0+YXJnMiwgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLSAgICAg IGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+ c2l6ZV90aW1lc3BlYykpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNp Z25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2VzdCk7Cisg ICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERS KXRtcHVsb25nZXN0LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 ZGVwLT5zaXplX3RpbWVzcGVjKSkKIAlyZXR1cm4gLTE7CiAgICAgICBicmVh azsKIAogICAgICAgLyogc3lzX2Nsb2NrX25hbm9zbGVlcCAqLwogICAgIGNh c2UgMjY3OgotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0 ZGVwLT5hcmc0LCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYg KHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXpl X3RpbWVzcGVjKSkKKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVk IChyZWdjYWNoZSwgdGRlcC0+YXJnNCwgJnRtcHVsb25nZXN0KTsKKyAgICAg IGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1w dWxvbmdlc3QsCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkZXAt PnNpemVfdGltZXNwZWMpKQogCXJldHVybiAtMTsKICAgICAgIGJyZWFrOwog CkBAIC0xOTE2LDggKzIwNTcsOSBAQCByZWNvcmRfbGludXhfc3lzdGVtX2Nh bGwgKGludCBudW0sIHN0cnVjCiAgICAgY2FzZSAyNjg6CiAgICAgICAvKiBz eXNfZnN0YXRmczY0ICovCiAgICAgY2FzZSAyNjk6Ci0gICAgICByZWdjYWNo ZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsIChnZGJfYnl0ZSAq KSAmIHRtcHUzMik7Ci0gICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRf bWVtICh0bXB1MzIsIHRkZXAtPnNpemVfc3RhdGZzNjQpKQorICAgICAgcmVn Y2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcz LCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKwkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9zdGF0ZnM2NCkpCiAJcmV0 dXJuIC0xOwogICAgICAgYnJlYWs7CiAKQEAgLTE5MzUsMTYgKzIwNzcsMTYg QEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1Ywog CiAgICAgICAvKiBzeXNfZ2V0X21lbXBvbGljeSAqLwogICAgIGNhc2UgMjc1 OgotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5h cmcxLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2ludCkp CisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUs IHRkZXAtPmFyZzEsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3Jk X2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LCB0 ZGVwLT5zaXplX2ludCkpCiAJcmV0dXJuIC0xOwotICAgICAgcmVnY2FjaGVf cmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5dGUgKikg JiB0bXB1MzIpOwotICAgICAgaWYgKHRtcHUzMikKKyAgICAgIHJlZ2NhY2hl X3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwgJnRt cHVsb25nZXN0KTsKKyAgICAgIGlmICh0bXB1bG9uZ2VzdCkKIAl7Ci0JICB1 aW50MzJfdCBtYXhub2RlOwotCSAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2Nh Y2hlLCB0ZGVwLT5hcmczLAotCQkJICAgICAoZ2RiX2J5dGUgKikgJiBtYXhu b2RlKTsKLQkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUz MiwgbWF4bm9kZSAqIHRkZXAtPnNpemVfbG9uZykpCisJICBVTE9OR0VTVCBt YXhub2RlOworCSAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2Nh Y2hlLCB0ZGVwLT5hcmczLCAmbWF4bm9kZSk7CisJICBpZiAocmVjb3JkX2Fy Y2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LAorCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bm9kZSAqIHRkZXAt PnNpemVfbG9uZykpCiAJICAgIHJldHVybiAtMTsKIAl9CiAgICAgICBicmVh azsKQEAgLTE5NjEsMTcgKzIxMDMsMTYgQEAgcmVjb3JkX2xpbnV4X3N5c3Rl bV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAvKiBzeXNfbXFfdGlt ZWRyZWNlaXZlICovCiAgICAgY2FzZSAyODA6Ci0gICAgICByZWdjYWNoZV9y YXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsIChnZGJfYnl0ZSAqKSAm IHRtcHUzMik7Ci0gICAgICBpZiAodG1wdTMyKQorICAgICAgcmVnY2FjaGVf cmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAmdG1w dWxvbmdlc3QpOworICAgICAgaWYgKHRtcHVsb25nZXN0KQogCXsKLQkgIHVp bnQzMl90IG1zZ19sZW47Ci0JICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2Fj aGUsIHRkZXAtPmFyZzMsCi0JCQkgICAgIChnZGJfYnl0ZSAqKSAmIG1zZ19s ZW4pOwotCSAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMy LCBtc2dfbGVuKSkKKwkgIFVMT05HRVNUIG1zZ19sZW47CisJICByZWdjYWNo ZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsICZt c2dfbGVuKTsKKwkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChD T1JFX0FERFIpdG1wdWxvbmdlc3QsIChpbnQpbXNnX2xlbikpCiAJICAgIHJl dHVybiAtMTsKIAl9Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2Fj aGUsIHRkZXAtPmFyZzQsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAg ICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHRkZXAt PnNpemVfaW50KSkKKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVk IChyZWdjYWNoZSwgdGRlcC0+YXJnNCwgJnRtcHVsb25nZXN0KTsKKyAgICAg IGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1w dWxvbmdlc3QsIHRkZXAtPnNpemVfaW50KSkKIAlyZXR1cm4gLTE7CiAgICAg ICBicmVhazsKIApAQCAtMTk4MSw4ICsyMTIyLDkgQEAgcmVjb3JkX2xpbnV4 X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAvKiBzeXNf bXFfZ2V0c2V0YXR0ciAqLwogICAgIGNhc2UgMjgyOgotICAgICAgcmVnY2Fj aGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAoZ2RiX2J5dGUg KikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRk X21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX21xX2F0dHIpKQorICAgICAgcmVn Y2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcz LCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKwkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGRlcC0+c2l6ZV9tcV9hdHRyKSkKIAlyZXR1 cm4gLTE7CiAgICAgICBicmVhazsKIApAQCAtMTk5MiwxMSArMjEzNCwxMyBA QCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0sIHN0cnVjCiAK ICAgICAgIC8qIHN5c193YWl0aWQgKi8KICAgICBjYXNlIDI4NDoKLSAgICAg IHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywgKGdk Yl9ieXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9s aXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV9zaWdpbmZvKSkKKyAg ICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRl cC0+YXJnMywgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlmIChyZWNvcmRfYXJj aF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisJICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRkZXAtPnNpemVfc2lnaW5mbykp CiAJcmV0dXJuIC0xOwotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2Nh Y2hlLCB0ZGVwLT5hcmc1LCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAg ICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVw LT5zaXplX3J1c2FnZSkpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNp Z25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzUsICZ0bXB1bG9uZ2VzdCk7Cisg ICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERS KXRtcHVsb25nZXN0LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 ZGVwLT5zaXplX3J1c2FnZSkpCiAJcmV0dXJuIC0xOwogICAgICAgYnJlYWs7 CiAKQEAgLTIwMTAsMTcgKzIxNTQsMTcgQEAgcmVjb3JkX2xpbnV4X3N5c3Rl bV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAvKiBzeXNfa2V5Y3Rs ICovCiAgICAgY2FzZSAyODg6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAo cmVnY2FjaGUsIHRkZXAtPmFyZzEsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7 Ci0gICAgICBpZiAodG1wdTMyID09IDYgfHwgdG1wdTMyID09IDExKQorICAg ICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVw LT5hcmcxLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHRtcHVsb25nZXN0 ID09IDYgfHwgdG1wdWxvbmdlc3QgPT0gMTEpCiAJewotCSAgcmVnY2FjaGVf cmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLAotCQkJICAgICAoZ2Ri X2J5dGUgKikgJiB0bXB1MzIpOwotCSAgaWYgKHRtcHUzMikKKwkgIHJlZ2Nh Y2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywK KwkJCSAgICAgICAgICAgICAgJnRtcHVsb25nZXN0KTsKKwkgIGlmICh0bXB1 bG9uZ2VzdCkKIAkgICAgewotCSAgICAgIHVpbnQzMl90IGJ1ZmxlbjsKLQkg ICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzQs Ci0JCQkJIChnZGJfYnl0ZSAqKSAmIGJ1Zmxlbik7Ci0JICAgICAgaWYgKHJl Y29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCBidWZsZW4pKQorCSAg ICAgIFVMT05HRVNUIGJ1ZmxlbjsKKwkgICAgICByZWdjYWNoZV9yYXdfcmVh ZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzQsICZidWZsZW4pOwor CSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FE RFIpdG1wdWxvbmdlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChpbnQpYnVmbGVuKSkKIAkJcmV0dXJuIC0xOwog CSAgICB9CiAJfQpAQCAtMjA1Miw4ICsyMTk2LDkgQEAgcmVjb3JkX2xpbnV4 X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCiAgICAgICAvKiBzeXNf ZnN0YXRhdDY0ICovCiAgICAgY2FzZSAzMDA6Ci0gICAgICByZWdjYWNoZV9y YXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsIChnZGJfYnl0ZSAqKSAm IHRtcHUzMik7Ci0gICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVt ICh0bXB1MzIsIHRkZXAtPnNpemVfc3RhdDY0KSkKKyAgICAgIHJlZ2NhY2hl X3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywgJnRt cHVsb25nZXN0KTsKKyAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9t ZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisJICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRkZXAtPnNpemVfc3RhdDY0KSkKIAlyZXR1cm4gLTE7 CiAgICAgICBicmVhazsKIApAQCAtMjA2OSwxMyArMjIxNCwxMiBAQCByZWNv cmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0sIHN0cnVjCiAKICAgICAg IC8qIHN5c19yZWFkbGlua2F0ICovCiAgICAgY2FzZSAzMDU6Ci0gICAgICBy ZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsIChnZGJf Ynl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAodG1wdTMyKQorICAgICAg cmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5h cmczLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHRtcHVsb25nZXN0KQog CXsKLQkgIGludDMyX3QgYnVmc2l6OwotCSAgcmVnY2FjaGVfcmF3X3JlYWQg KHJlZ2NhY2hlLCB0ZGVwLT5hcmc0LAotCQkJICAgICAoZ2RiX2J5dGUgKikg JiBidWZzaXopOwotCSAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAo dG1wdTMyLCBidWZzaXopKQorCSAgVUxPTkdFU1QgYnVmc2l6OworCSAgcmVn Y2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmc0 LCAmYnVmc2l6KTsKKwkgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0g KChDT1JFX0FERFIpdG1wdWxvbmdlc3QsIChpbnQpYnVmc2l6KSkKIAkgICAg cmV0dXJuIC0xOwogCX0KICAgICAgIGJyZWFrOwpAQCAtMjA4OCwzMyArMjIz MiwzOCBAQCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0sIHN0 cnVjCiAKICAgICAgIC8qIHN5c19wc2VsZWN0NiAqLwogICAgIGNhc2UgMzA4 OgotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5h cmcyLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2ZkX3Nl dCkpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2Fj aGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+ c2l6ZV9mZF9zZXQpKQogCXJldHVybiAtMTsKLSAgICAgIHJlZ2NhY2hlX3Jh d19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywgKGdkYl9ieXRlICopICYg dG1wdTMyKTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0g KHRtcHUzMiwgdGRlcC0+c2l6ZV9mZF9zZXQpKQorICAgICAgcmVnY2FjaGVf cmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAmdG1w dWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRkZXAtPnNpemVfZmRfc2V0KSkKIAlyZXR1 cm4gLTE7Ci0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRk ZXAtPmFyZzQsIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBpZiAo cmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1MzIsIHRkZXAtPnNpemVf ZmRfc2V0KSkKKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChy ZWdjYWNoZSwgdGRlcC0+YXJnNCwgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlm IChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxv bmdlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 ZGVwLT5zaXplX2ZkX3NldCkpCiAJcmV0dXJuIC0xOwotICAgICAgcmVnY2Fj aGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmc1LCAoZ2RiX2J5dGUg KikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRk X21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX3RpbWVzcGVjKSkKKyAgICAgIHJl Z2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJn NSwgJnRtcHVsb25nZXN0KTsKKyAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0 X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX3RpbWVzcGVj KSkKIAlyZXR1cm4gLTE7CiAgICAgICBicmVhazsKIAogICAgICAgLyogc3lz X3Bwb2xsICovCiAgICAgY2FzZSAzMDk6Ci0gICAgICByZWdjYWNoZV9yYXdf cmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzEsIChnZGJfYnl0ZSAqKSAmIHRt cHUzMik7Ci0gICAgICBpZiAodG1wdTMyKQorICAgICAgcmVnY2FjaGVfcmF3 X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcxLCAmdG1wdWxv bmdlc3QpOworICAgICAgaWYgKHRtcHVsb25nZXN0KQogCXsKLQkgIHVpbnQz Ml90IG5mZHM7Ci0JICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRk ZXAtPmFyZzIsCi0JCQkgICAgIChnZGJfYnl0ZSAqKSAmIG5mZHMpOwotCSAg aWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5z aXplX3BvbGxmZCAqIG5mZHMpKQorCSAgVUxPTkdFU1QgbmZkczsKKwkgIHJl Z2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJn MiwgJm5mZHMpOworCSAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAo KENPUkVfQUREUil0bXB1bG9uZ2VzdCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX3BvbGxmZCAqIG5mZHMp KQogCSAgICByZXR1cm4gLTE7CiAJfQotICAgICAgcmVnY2FjaGVfcmF3X3Jl YWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAoZ2RiX2J5dGUgKikgJiB0bXB1 MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1w dTMyLCB0ZGVwLT5zaXplX3RpbWVzcGVjKSkKKyAgICAgIHJlZ2NhY2hlX3Jh d19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywgJnRtcHVs b25nZXN0KTsKKyAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0g KChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0ZGVwLT5zaXplX3RpbWVzcGVjKSkKIAlyZXR1 cm4gLTE7CiAgICAgICBicmVhazsKIApAQCAtMjEyNiwyMSArMjI3NSwyMyBA QCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0sIHN0cnVjCiAK ICAgICAgIC8qIHN5c19nZXRfcm9idXN0X2xpc3QgKi8KICAgICBjYXNlIDMx MjoKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+ YXJnMiwgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNv cmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV9pbnQp KQorICAgICAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hl LCB0ZGVwLT5hcmcyLCAmdG1wdWxvbmdlc3QpOworICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwg dGRlcC0+c2l6ZV9pbnQpKQogCXJldHVybiAtMTsKLSAgICAgIHJlZ2NhY2hl X3Jhd19yZWFkIChyZWdjYWNoZSwgdGRlcC0+YXJnMywgKGdkYl9ieXRlICop ICYgdG1wdTMyKTsKLSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9t ZW0gKHRtcHUzMiwgdGRlcC0+c2l6ZV9pbnQpKQorICAgICAgcmVnY2FjaGVf cmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLCAmdG1w dWxvbmdlc3QpOworICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwgdGRlcC0+c2l6ZV9pbnQpKQog CXJldHVybiAtMTsKICAgICAgIGJyZWFrOwogCiAgICAgICAvKiBzeXNfc3Bs aWNlICovCiAgICAgY2FzZSAzMTM6Ci0gICAgICByZWdjYWNoZV9yYXdfcmVh ZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsIChnZGJfYnl0ZSAqKSAmIHRtcHUz Mik7Ci0gICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICh0bXB1 MzIsIHRkZXAtPnNpemVfbG9mZl90KSkKKyAgICAgIHJlZ2NhY2hlX3Jhd19y ZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRlcC0+YXJnMiwgJnRtcHVsb25n ZXN0KTsKKyAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKChD T1JFX0FERFIpdG1wdWxvbmdlc3QsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0ZGVwLT5zaXplX2xvZmZfdCkpCiAJcmV0dXJuIC0x OwotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5h cmc0LCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2xvZmZf dCkpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2Fj aGUsIHRkZXAtPmFyZzQsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGRlcC0+ c2l6ZV9sb2ZmX3QpKQogCXJldHVybiAtMTsKICAgICAgIGJyZWFrOwogCkBA IC0yMTU0LDQ4ICsyMzA1LDQ3IEBAIHJlY29yZF9saW51eF9zeXN0ZW1fY2Fs bCAoaW50IG51bSwgc3RydWMKIAogICAgICAgLyogc3lzX21vdmVfcGFnZXMg Ki8KICAgICBjYXNlIDMxNzoKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChy ZWdjYWNoZSwgdGRlcC0+YXJnNSwgKGdkYl9ieXRlICopICYgdG1wdTMyKTsK LSAgICAgIGlmICh0bXB1MzIpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91 bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzUsICZ0bXB1bG9uZ2VzdCk7 CisgICAgICBpZiAodG1wdWxvbmdlc3QpCiAJewotCSAgdWludDMyX3QgbnJf cGFnZXM7Ci0JICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAt PmFyZzIsCi0JCQkgICAgIChnZGJfYnl0ZSAqKSAmIG5yX3BhZ2VzKTsKLQkg IGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKHRtcHUzMiwgbnJfcGFn ZXMgKiB0ZGVwLT5zaXplX2ludCkpCisJICBVTE9OR0VTVCBucl9wYWdlczsK KwkgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgdGRl cC0+YXJnMiwgJm5yX3BhZ2VzKTsKKwkgIGlmIChyZWNvcmRfYXJjaF9saXN0 X2FkZF9tZW0gKChDT1JFX0FERFIpdG1wdWxvbmdlc3QsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnJfcGFnZXMgKiB0ZGVw LT5zaXplX2ludCkpCiAJICAgIHJldHVybiAtMTsKIAl9CiAgICAgICBicmVh azsKIAogICAgICAgLyogc3lzX2dldGNwdSAqLwogICAgIGNhc2UgMzE4Ogot ICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcx LCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9h cmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2ludCkpCisg ICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRk ZXAtPmFyZzEsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBpZiAocmVjb3JkX2Fy Y2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRtcHVsb25nZXN0LCB0ZGVw LT5zaXplX2ludCkpCiAJcmV0dXJuIC0xOwotICAgICAgcmVnY2FjaGVfcmF3 X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5dGUgKikgJiB0 bXB1MzIpOwotICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAo dG1wdTMyLCB0ZGVwLT5zaXplX2ludCkpCisgICAgICByZWdjYWNoZV9yYXdf cmVhZF91bnNpZ25lZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9u Z2VzdCk7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgo Q09SRV9BRERSKXRtcHVsb25nZXN0LCB0ZGVwLT5zaXplX2ludCkpCiAJcmV0 dXJuIC0xOwotICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCB0 ZGVwLT5hcmczLCAoZ2RiX2J5dGUgKikgJiB0bXB1MzIpOwotICAgICAgaWYg KHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXpl X3Vsb25nICogMikpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25l ZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsICZ0bXB1bG9uZ2VzdCk7CisgICAg ICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtICgoQ09SRV9BRERSKXRt cHVsb25nZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGRlcC0+c2l6ZV91bG9uZyAqIDIpKQogCXJldHVybiAtMTsKICAgICAg IGJyZWFrOwogCiAgICAgICAvKiBzeXNfZXBvbGxfcHdhaXQgKi8KICAgICBj YXNlIDMxOToKLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwg dGRlcC0+YXJnMiwgKGdkYl9ieXRlICopICYgdG1wdTMyKTsKLSAgICAgIGlm ICh0bXB1MzIpCisgICAgICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAo cmVnY2FjaGUsIHRkZXAtPmFyZzIsICZ0bXB1bG9uZ2VzdCk7CisgICAgICBp ZiAodG1wdWxvbmdlc3QpCiAJewotCSAgaW50MzJfdCBtYXhldmVudHM7Ci0J ICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzMsCi0J CQkgICAgIChnZGJfYnl0ZSAqKSAmIG1heGV2ZW50cyk7Ci0JICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfbWVtCi0JICAgICAgKHRtcHUzMiwgbWF4ZXZl bnRzICogdGRlcC0+c2l6ZV9lcG9sbF9ldmVudCkpCisJICBVTE9OR0VTVCBt YXhldmVudHM7CisJICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAocmVn Y2FjaGUsIHRkZXAtPmFyZzMsICZtYXhldmVudHMpOworCSAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAoKENPUkVfQUREUil0bXB1bG9uZ2VzdCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50 KW1heGV2ZW50cyAqIHRkZXAtPnNpemVfZXBvbGxfZXZlbnQpKQogCSAgICBy ZXR1cm4gLTE7CiAJfQogICAgICAgYnJlYWs7CiAKICAgICBkZWZhdWx0Ogog ICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oIlByb2Nlc3MgcmVjb3JkIGFu ZCByZXBsYXkgdGFyZ2V0IGRvZXNuJ3QgIgotCQkJICAgInN1cHBvcnQgc3lz Y2FsbCBudW1iZXIgJXVcbiIpLAotCQkJIChpbnQpdG1wdTMyKTsKKwkJCSAg ICJzdXBwb3J0IHN5c2NhbGwgbnVtYmVyICV1XG4iKSwgbnVtKTsKICAgICAg IHJldHVybiAtMTsKICAgICAgIGJyZWFrOwogICAgIH0KLS0tIGEvbGludXgt cmVjb3JkLmgKKysrIGIvbGludXgtcmVjb3JkLmgKQEAgLTIzLDYgKzIzLDcg QEAKIHN0cnVjdCBsaW51eF9yZWNvcmRfdGRlcAogewogICAvKiBUaGUgc2l6 ZSBvZiB0aGUgdHlwZSB0aGF0IHdpbGwgYmUgdXNlZCBpbiBhIHN5c3RlbSBj YWxsLiAgKi8KKyAgaW50IHNpemVfcG9pbnRlcjsKICAgaW50IHNpemVfX29s ZF9rZXJuZWxfc3RhdDsKICAgaW50IHNpemVfdG1zOwogICBpbnQgc2l6ZV9s b2ZmX3Q7CkBAIC04MSw3ICs4Miw2IEBAIHN0cnVjdCBsaW51eF9yZWNvcmRf dGRlcAogICBpbnQgc2l6ZV9pdGltZXJzcGVjOwogICBpbnQgc2l6ZV9tcV9h dHRyOwogICBpbnQgc2l6ZV9zaWdpbmZvOwotCiAgIGludCBzaXplX3Rlcm1p b3M7CiAgIGludCBzaXplX3Rlcm1pb3MyOwogICBpbnQgc2l6ZV9waWRfdDsK QEAgLTg5LDYgKzg5LDggQEAgc3RydWN0IGxpbnV4X3JlY29yZF90ZGVwCiAg IGludCBzaXplX3NlcmlhbF9zdHJ1Y3Q7CiAgIGludCBzaXplX3NlcmlhbF9p Y291bnRlcl9zdHJ1Y3Q7CiAgIGludCBzaXplX2hheWVzX2VzcF9jb25maWc7 CisgIGludCBzaXplX3NpemVfdDsKKyAgaW50IHNpemVfaW92ZWM7CiAKICAg LyogVGhlIHZhbHVlcyBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHN5c3Rl bSBjYWxsICJzeXNfaW9jdGwiLiAgKi8KICAgaW50IGlvY3RsX1RDR0VUUzsK --000e0cd32d18fd4de5046cdada1b--