From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#28620: Mouse drag event records wrong window for release when crossing frames Date: Sun, 28 Jul 2019 09:34:00 +0200 Message-ID: <42eec0a5-2c91-aaab-a536-08f3157ca864@gmx.at> References: <5881afff-b233-2a01-34c3-0d7c4225875b@gmx.at> <8336irn617.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------39FE6C27FE5DB683E2477899" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="172429"; mail-complaints-to="usenet@blaine.gmane.org" Cc: rswgnu@gmail.com, scotto@sharpleaf.org, 28620@debbugs.gnu.org, 36269@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jul 28 09:35:23 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hrdiE-000iha-HB for geb-bug-gnu-emacs@m.gmane.org; Sun, 28 Jul 2019 09:35:22 +0200 Original-Received: from localhost ([::1]:43926 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hrdiD-0006lG-JA for geb-bug-gnu-emacs@m.gmane.org; Sun, 28 Jul 2019 03:35:21 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51660) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hrdhx-0006kP-2w for bug-gnu-emacs@gnu.org; Sun, 28 Jul 2019 03:35:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hrdhu-0000Wj-4z for bug-gnu-emacs@gnu.org; Sun, 28 Jul 2019 03:35:05 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:36873) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hrdht-0000WT-Uu for bug-gnu-emacs@gnu.org; Sun, 28 Jul 2019 03:35:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hrdht-0007zg-Qy for bug-gnu-emacs@gnu.org; Sun, 28 Jul 2019 03:35:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 28 Jul 2019 07:35:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28620 X-GNU-PR-Package: emacs Original-Received: via spool by 28620-submit@debbugs.gnu.org id=B28620.156429926330652 (code B ref 28620); Sun, 28 Jul 2019 07:35:01 +0000 Original-Received: (at 28620) by debbugs.gnu.org; 28 Jul 2019 07:34:23 +0000 Original-Received: from localhost ([127.0.0.1]:45688 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hrdhD-0007yF-RB for submit@debbugs.gnu.org; Sun, 28 Jul 2019 03:34:23 -0400 Original-Received: from mout.gmx.net ([212.227.17.21]:55533) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hrdhA-0007xi-QH; Sun, 28 Jul 2019 03:34:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1564299245; bh=33GO84EghBonLdfZxG6rC2j7MbWIEw3TvEAOl+tNY/c=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=N85pRnxGKikDk8y+ynEO5AQYt0u9UiZ3nW4Bi9fNXNzor0MK4+0RtN/i4V1YhFhVT yRpaNqKzVbQjfwals3IH/hVIu+nYjEv+jWjnxzJ+vTa5t8kdZyG41dOWP9maDjwqSx QuMqaNFKrFvetf6ibJSn/VPjMDWaHoIgGseB6nIU= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from [192.168.1.101] ([212.95.5.130]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M7b2T-1hjfTV2vPx-0080lq; Sun, 28 Jul 2019 09:34:04 +0200 In-Reply-To: <8336irn617.fsf@gnu.org> Content-Language: de-DE X-Provags-ID: V03:K1:axf9ntRsxgdms2q9H/gzMm7wG6d99TPEPlR9aa+kh9IlhC7ImJ1 sXAwOUHhRXUq+Mxjd94/dGE5JxaBy1hsiDPs8aaRhT60HCuVMzrIeQa5bIEc313tzudbF4C JBqjz848GEirkPqUtDxhFNAO+DE64fvR3gLWS0Oz287wDsMQUYGFh88gGc/U0H44h/Vq05Q 9XsuLYCZ2GrgNgV6S6CYg== X-UI-Out-Filterresults: notjunk:1;V03:K0:ckY1jz07PjY=:mPbH/r8hy4guNPNsyfHQO7 Xng1bjyxFojDCYwD2KUS726beOdhBH/SYjzN0NFcViePO8ogBl4D4ThvTwK0TFrhMTCOrnmqm DO68U9phgjnE6cvGiNakKB0qgWi2nrqOR25ug+HwaroaPXcwxN0hjYfI0MP/ya5oElsUOue5e HmzYhwbf3J8Uc2lZ7IFoAnvWUOFylhv4XffcsFd3Wbn4Td9yDBw+PnRW+tq+YOOmyv5fMx+eA hJkr98hik7hqvoqjNcRVdLjj2aU3nHDLjeQrbpYz4ePVQ7CODaLv9PxuS/R1TKM2eD2Yipgoy H62qogyahiwJ51IjbQrDpy1koosJUn1BWecZ6Xzf0iiAXw2i5oaa4LUtIzKT4W0Lzk2KVHeDQ z0IK3xaglW5XLcnZfqURKrMZT3F7OnnOt6rWMAGsS7nMwFiJqEDU7hDc4CxWq1e7R9+Oipv8K 3UMCRjnPOChhhDN3cY4Bkd53e04FqvshG7SPPegVoJ6/AX85Mc4Lxjw+ls92kCfeL93PkFjsB axRIfqo28D2WgGGG8dqzewo1qa6qQLcVEvCgH2lcC0sDqtpcCvxhBPte3XB4qoX4pY7GArWXC 6DafcWhWcYfoKI2oJyBgCrD290e0YflCXtkf0LcaUUFwtaSn5I9UTlriIH/PCw0UW7z9T9aa/ +4m8vpxCjbA/2QMawCtrJnMu+I911H/3jWbekB4S3W4tz1ui5p5/856lqDykQnvTGYDbw8HPY wOAXXuXyL9sgDzjlOI+0Soa/a9oTqXyWGN97XtJ3+3Se0Bk/jpNaL6aa468hfiTsuS9Nro1w X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:163931 Archived-At: This is a multi-part message in MIME format. --------------39FE6C27FE5DB683E2477899 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit > Thanks, a few minor comments below. Thanks for the comments. I hopefully applied all changes you proposed. Please keep in mind that I wrote the code almost two years ago and then forgot about it. It's only in the context of Bug#36269 that I resurrected it - with all its inadequacies. >> @@ -3995,7 +3992,7 @@ kbd_buffer_get_event (KBOARD **kbp, >> } >> } >> /* Try generating a mouse motion event. */ >> - else if (!NILP (do_mouse_tracking) && some_mouse_moved ()) >> + else if (some_mouse_moved ()) > > Can't we have mouse motion events outside track-mouse? Not to my knowledge. In either case, I wouldn't want to change anything in this regard here. > There's too much of whitespace changes in the rest of the patch, > making it very hard to review. Can you show the patch without > whitespace differences? I attach a patch which re-adds some extraneous braces to w32term.c. If you want me to restore more of the old code, please tell me. Also, I do not intend to push the changes until someone tells me that they work. I neither use the mouse to drop nor mouse avoidance mode and so have never given it any serious testing. Thanks, martin --------------39FE6C27FE5DB683E2477899 Content-Type: text/plain; charset=UTF-8; name="track-mouse-with-braces.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="track-mouse-with-braces.diff" ZGlmZiAtLWdpdCBhL2xpc3AvYXZvaWQuZWwgYi9saXNwL2F2b2lkLmVsCmluZGV4IDdkNjlm YTJhMjQuLjQzZTUwNjJiNzYgMTAwNjQ0Ci0tLSBhL2xpc3AvYXZvaWQuZWwKKysrIGIvbGlz cC9hdm9pZC5lbApAQCAtMzI3LDYgKzMyNyw5IEBAIG1vdXNlLWF2b2lkYW5jZS1pZ25vcmUt cAogICAgICAgICBleGVjdXRpbmcta2JkLW1hY3JvCSAgICAgICA7IGRvbid0IGNoZWNrIGlu c2lkZSBtYWNybwogCShudWxsIChjYWRyIG1wKSkJICAgICAgIDsgZG9uJ3QgbW92ZSB1bmxl c3MgaW4gYW4gRW1hY3MgZnJhbWUKIAkobm90IChlcSAoY2FyIG1wKSAoc2VsZWN0ZWQtZnJh bWUpKSkKKyAgICAgICAgOzsgRG9uJ3QgaW50ZXJmZXJlIHdpdGggb25nb2luZyBgbW91c2Ut ZHJhZy1hbmQtZHJvcC1yZWdpb24nCisgICAgICAgIDs7IChCdWcjMzYyNjkpLgorICAgICAg ICAoZXEgdHJhY2stbW91c2UgJ2Ryb3BwaW5nKQogCTs7IERvbid0IGRvIGFueXRoaW5nIGlm IGxhc3QgZXZlbnQgd2FzIGEgbW91c2UgZXZlbnQuCiAJOzsgRklYTUU6IHRoaXMgY29kZSBm YWlscyBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgbW91c2Ugd2FzIG1vdmVkCiAJOzsgc2luY2Ug dGhlIGxhc3Qga2V5LXByZXNzIGJ1dCB3aXRob3V0IGdlbmVyYXRpbmcgYW55IGV2ZW50Lgpk aWZmIC0tZ2l0IGEvbGlzcC9tb3VzZS5lbCBiL2xpc3AvbW91c2UuZWwKaW5kZXggNGE1MzJh MTVlNS4uZTk0N2UxNmQ0NyAxMDA2NDQKLS0tIGEvbGlzcC9tb3VzZS5lbAorKysgYi9saXNw L21vdXNlLmVsCkBAIC0xMjk2LDcgKzEyOTYsNyBAQCBtb3VzZS1kcmFnLXRyYWNrCiAgICAg IHQgKGxhbWJkYSAoKQogICAgICAgICAgKHNldHEgdHJhY2stbW91c2Ugb2xkLXRyYWNrLW1v dXNlKQogICAgICAgICAgKHNldHEgYXV0by1oc2Nyb2xsLW1vZGUgYXV0by1oc2Nyb2xsLW1v ZGUtc2F2ZWQpCi0gICAgICAgICAgKGRlYWN0aXZhdGUtbWFyaykKKyAgICAgICAgIChkZWFj dGl2YXRlLW1hcmspCiAgICAgICAgICAocG9wLW1hcmspKSkpKQogCiAoZGVmdW4gbW91c2Ut LWRyYWctc2V0LW1hcmstYW5kLXBvaW50IChzdGFydCBjbGljayBjbGljay1jb3VudCkKQEAg LTI0NjcsMTIgKzI0NjcsMTMgQEAgbW91c2UtZHJhZy1hbmQtZHJvcC1yZWdpb24KIAogICAg IChpZ25vcmUtZXJyb3JzCiAgICAgICAodHJhY2stbW91c2UKKyAgICAgICAgKHNldHEgdHJh Y2stbW91c2UgJ2Ryb3BwaW5nKQogICAgICAgICA7OyBXaGVuIGV2ZW50IHdhcyAiY2xpY2si IGluc3RlYWQgb2YgImRyYWciLCBza2lwIGxvb3AuCiAgICAgICAgICh3aGlsZSAocHJvZ24K ICAgICAgICAgICAgICAgICAgKHNldHEgZXZlbnQgKHJlYWQta2V5KSkgICAgICA7IHJlYWQt ZXZlbnQgb3IgcmVhZC1rZXkKICAgICAgICAgICAgICAgICAgKG9yIChtb3VzZS1tb3ZlbWVu dC1wIGV2ZW50KQogICAgICAgICAgICAgICAgICAgICAgOzsgSGFuZGxlIGBtb3VzZS1hdXRv c2VsZWN0LXdpbmRvdycuCi0gICAgICAgICAgICAgICAgICAgICAoZXEgKGNhci1zYWZlIGV2 ZW50KSAnc2VsZWN0LXdpbmRvdykpKQorICAgICAgICAgICAgICAgICAgICAgKG1lbXEgKGNh ciBldmVudCkgJyhzZWxlY3Qtd2luZG93IHN3aXRjaC1mcmFtZSkpKSkKICAgICAgICAgICA7 OyBPYnRhaW4gdGhlIGRyYWdnZWQgdGV4dCBpbiByZWdpb24uICBXaGVuIHRoZSBsb29wIHdh cwogICAgICAgICAgIDs7IHNraXBwZWQsIHZhbHVlLXNlbGVjdGlvbiByZW1haW5zIG5pbC4K ICAgICAgICAgICAodW5sZXNzIHZhbHVlLXNlbGVjdGlvbgpkaWZmIC0tZ2l0IGEvc3JjL2Rp c3BuZXcuYyBiL3NyYy9kaXNwbmV3LmMKaW5kZXggMDEzMWI2Mzc2Ny4uNzk5ZWYyYmVhZSAx MDA2NDQKLS0tIGEvc3JjL2Rpc3BuZXcuYworKysgYi9zcmMvZGlzcG5ldy5jCkBAIC0zNDAy LDkgKzM0MDIsOSBAQCB1cGRhdGVfd2luZG93IChzdHJ1Y3Qgd2luZG93ICp3LCBib29sIGZv cmNlX3ApCiAgIGlmICghZm9yY2VfcCkKICAgICBkZXRlY3RfaW5wdXRfcGVuZGluZ19pZ25v cmVfc3F1ZWV6YWJsZXMgKCk7CiAKLSAgLyogSWYgZm9yY2VkIHRvIGNvbXBsZXRlIHRoZSB1 cGRhdGUsIG9yIGlmIG5vIGlucHV0IGlzIHBlbmRpbmcsIGRvCi0gICAgIHRoZSB1cGRhdGUu ICAqLwotICBpZiAoZm9yY2VfcCB8fCAhaW5wdXRfcGVuZGluZyB8fCAhTklMUCAoZG9fbW91 c2VfdHJhY2tpbmcpKQorICAvKiBJZiBmb3JjZWQgdG8gY29tcGxldGUgdGhlIHVwZGF0ZSwg bm8gaW5wdXQgaXMgcGVuZGluZywgb3Igd2UgYXJlCisgICAgIHRyYWNraW5nIHRoZSBtb3Vz ZSwgZG8gdGhlIHVwZGF0ZS4gICovCisgIGlmIChmb3JjZV9wIHx8ICFpbnB1dF9wZW5kaW5n IHx8ICFOSUxQICh0cmFja19tb3VzZSkpCiAgICAgewogICAgICAgc3RydWN0IGdseXBoX3Jv dyAqcm93LCAqZW5kOwogICAgICAgc3RydWN0IGdseXBoX3JvdyAqbW9kZV9saW5lX3JvdzsK ZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggYjg2 YWQwMzg1MS4uNzY1YjZlODVjMSAxMDA2NDQKLS0tIGEvc3JjL2tleWJvYXJkLmMKKysrIGIv c3JjL2tleWJvYXJkLmMKQEAgLTExNTksMTQgKzExNTksMTQgQEAgREVGVU4gKCJhYm9ydC1y ZWN1cnNpdmUtZWRpdCIsIEZhYm9ydF9yZWN1cnNpdmVfZWRpdCwgU2Fib3J0X3JlY3Vyc2l2 ZV9lZGl0LCAwLAogICB1c2VyX2Vycm9yICgiTm8gcmVjdXJzaXZlIGVkaXQgaXMgaW4gcHJv Z3Jlc3MiKTsKIH0KIAwKLS8qIFJlc3RvcmUgbW91c2UgdHJhY2tpbmcgZW5hYmxlbWVudC4g IFNlZSBGdHJhY2tfbW91c2UgZm9yIHRoZSBvbmx5IHVzZQotICAgb2YgdGhpcyBmdW5jdGlv bi4gICovCisvKiBSZXN0b3JlIG1vdXNlIHRyYWNraW5nIGVuYWJsZW1lbnQuICBTZWUgRmlu dGVybmFsX3RyYWNrX21vdXNlIGZvcgorICAgdGhlIG9ubHkgdXNlIG9mIHRoaXMgZnVuY3Rp b24uICAqLwogCiBzdGF0aWMgdm9pZAotdHJhY2tpbmdfb2ZmIChMaXNwX09iamVjdCBvbGRf dmFsdWUpCit0cmFja2luZ19vZmYgKExpc3BfT2JqZWN0IG9sZF90cmFja19tb3VzZSkKIHsK LSAgZG9fbW91c2VfdHJhY2tpbmcgPSBvbGRfdmFsdWU7Ci0gIGlmIChOSUxQIChvbGRfdmFs dWUpKQorICB0cmFja19tb3VzZSA9IG9sZF90cmFja19tb3VzZTsKKyAgaWYgKE5JTFAgKG9s ZF90cmFja19tb3VzZSkpCiAgICAgewogICAgICAgLyogUmVkaXNwbGF5IG1heSBoYXZlIGJl ZW4gcHJlZW1wdGVkIGJlY2F1c2UgdGhlcmUgd2FzIGlucHV0CiAJIGF2YWlsYWJsZSwgYW5k IGl0IGFzc3VtZXMgaXQgd2lsbCBiZSBjYWxsZWQgYWdhaW4gYWZ0ZXIgdGhlCkBAIC0xMTgx LDI0ICsxMTgxLDI0IEBAIHRyYWNraW5nX29mZiAoTGlzcF9PYmplY3Qgb2xkX3ZhbHVlKQog ICAgIH0KIH0KIAotREVGVU4gKCJpbnRlcm5hbC0tdHJhY2stbW91c2UiLCBGdHJhY2tfbW91 c2UsIFN0cmFja19tb3VzZSwgMSwgMSwgMCwKK0RFRlVOICgiaW50ZXJuYWwtLXRyYWNrLW1v dXNlIiwgRmludGVybmFsX3RyYWNrX21vdXNlLCBTaW50ZXJuYWxfdHJhY2tfbW91c2UsCisg ICAgICAgMSwgMSwgMCwKICAgICAgICBkb2M6IC8qIENhbGwgQk9EWUZVTiB3aXRoIG1vdXNl IG1vdmVtZW50IGV2ZW50cyBlbmFibGVkLiAgKi8pCiAgIChMaXNwX09iamVjdCBib2R5ZnVu KQogewogICBwdHJkaWZmX3QgY291bnQgPSBTUEVDUERMX0lOREVYICgpOwogICBMaXNwX09i amVjdCB2YWw7CiAKLSAgcmVjb3JkX3Vud2luZF9wcm90ZWN0ICh0cmFja2luZ19vZmYsIGRv X21vdXNlX3RyYWNraW5nKTsKKyAgcmVjb3JkX3Vud2luZF9wcm90ZWN0ICh0cmFja2luZ19v ZmYsIHRyYWNrX21vdXNlKTsKIAotICBkb19tb3VzZV90cmFja2luZyA9IFF0OworICB0cmFj a19tb3VzZSA9IFF0OwogCiAgIHZhbCA9IGNhbGwwIChib2R5ZnVuKTsKICAgcmV0dXJuIHVu YmluZF90byAoY291bnQsIHZhbCk7CiB9CiAKLS8qIElmIG1vdXNlIGhhcyBtb3ZlZCBvbiBz b21lIGZyYW1lLCByZXR1cm4gb25lIG9mIHRob3NlIGZyYW1lcy4KLQotICAgUmV0dXJuIDAg b3RoZXJ3aXNlLgorLyogSWYgbW91c2UgaGFzIG1vdmVkIG9uIHNvbWUgZnJhbWUgYW5kIHdl IGFyZSB0cmFja2luZyB0aGUgbW91c2UsCisgICByZXR1cm4gb25lIG9mIHRob3NlIGZyYW1l cy4gIFJldHVybiBOVUxMIG90aGVyd2lzZS4KIAogICAgSWYgaWdub3JlX21vdXNlX2RyYWdf cCBpcyBub24temVybywgaWdub3JlIChpbXBsaWNpdCkgbW91c2UgbW92ZW1lbnQKICAgIGFm dGVyIHJlc2l6aW5nIHRoZSB0b29sLWJhciB3aW5kb3cuICAqLwpAQCAtMTIxMCwxMSArMTIx MCw4IEBAIHNvbWVfbW91c2VfbW92ZWQgKHZvaWQpCiB7CiAgIExpc3BfT2JqZWN0IHRhaWws IGZyYW1lOwogCi0gIGlmIChpZ25vcmVfbW91c2VfZHJhZ19wKQotICAgIHsKLSAgICAgIC8q IGlnbm9yZV9tb3VzZV9kcmFnX3AgPSBmYWxzZTsgKi8KLSAgICAgIHJldHVybiAwOwotICAg IH0KKyAgaWYgKE5JTFAgKHRyYWNrX21vdXNlKSB8fCBpZ25vcmVfbW91c2VfZHJhZ19wKQor ICAgIHJldHVybiBOVUxMOwogCiAgIEZPUl9FQUNIX0ZSQU1FICh0YWlsLCBmcmFtZSkKICAg ICB7CkBAIC0xMjIyLDcgKzEyMTksNyBAQCBzb21lX21vdXNlX21vdmVkICh2b2lkKQogCXJl dHVybiBYRlJBTUUgKGZyYW1lKTsKICAgICB9CiAKLSAgcmV0dXJuIDA7CisgIHJldHVybiBO VUxMOwogfQogCiAMCkBAIC0yMDcxLDcgKzIwNjgsOCBAQCBzaG93X2hlbHBfZWNobyAoTGlz cF9PYmplY3QgaGVscCwgTGlzcF9PYmplY3Qgd2luZG93LCBMaXNwX09iamVjdCBvYmplY3Qs CiAJIFRoaXMgY2F1c2VzIHRyb3VibGUgaWYgd2UgYXJlIHRyeWluZyB0byByZWFkIGEgbW91 c2UgbW90aW9uCiAJIGV2ZW50IChpLmUuLCBpZiB3ZSBhcmUgaW5zaWRlIGEgYHRyYWNrLW1v dXNlJyBmb3JtKSwgc28gd2UKIAkgcmVzdG9yZSB0aGUgbW91c2VfbW92ZWQgZmxhZy4gICov Ci0gICAgICBzdHJ1Y3QgZnJhbWUgKmYgPSBOSUxQIChkb19tb3VzZV90cmFja2luZykgPyBO VUxMIDogc29tZV9tb3VzZV9tb3ZlZCAoKTsKKyAgICAgIHN0cnVjdCBmcmFtZSAqZiA9IHNv bWVfbW91c2VfbW92ZWQgKCk7CisKICAgICAgIGhlbHAgPSBjYWxsMSAoUW1vdXNlX2ZpeHVw X2hlbHBfbWVzc2FnZSwgaGVscCk7CiAgICAgICBpZiAoZikKIAlmLT5tb3VzZV9tb3ZlZCA9 IHRydWU7CkBAIC0zNDAzLDggKzM0MDEsNyBAQCByZWFkYWJsZV9ldmVudHMgKGludCBmbGFn cykKIAlyZXR1cm4gMTsKICAgICB9CiAKLSAgaWYgKCEoZmxhZ3MgJiBSRUFEQUJMRV9FVkVO VFNfSUdOT1JFX1NRVUVFWkFCTEVTKQotICAgICAgJiYgIU5JTFAgKGRvX21vdXNlX3RyYWNr aW5nKSAmJiBzb21lX21vdXNlX21vdmVkICgpKQorICBpZiAoIShmbGFncyAmIFJFQURBQkxF X0VWRU5UU19JR05PUkVfU1FVRUVaQUJMRVMpICYmIHNvbWVfbW91c2VfbW92ZWQgKCkpCiAg ICAgcmV0dXJuIDE7CiAgIGlmIChzaW5nbGVfa2JvYXJkKQogICAgIHsKQEAgLTM3ODYsNyAr Mzc4Myw3IEBAIGtiZF9idWZmZXJfZ2V0X2V2ZW50IChLQk9BUkQgKiprYnAsCiAKICAgICAg IGlmIChrYmRfZmV0Y2hfcHRyICE9IGtiZF9zdG9yZV9wdHIpCiAJYnJlYWs7Ci0gICAgICBp ZiAoIU5JTFAgKGRvX21vdXNlX3RyYWNraW5nKSAmJiBzb21lX21vdXNlX21vdmVkICgpKQor ICAgICAgaWYgKHNvbWVfbW91c2VfbW92ZWQgKCkpCiAJYnJlYWs7CiAKICAgICAgIC8qIElm IHRoZSBxdWl0IGZsYWcgaXMgc2V0LCB0aGVuIHJlYWRfY2hhciB3aWxsIHJldHVybgpAQCAt MzgwMiw3ICszNzk5LDcgQEAga2JkX2J1ZmZlcl9nZXRfZXZlbnQgKEtCT0FSRCAqKmticCwK ICNlbmRpZgogICAgICAgaWYgKGtiZF9mZXRjaF9wdHIgIT0ga2JkX3N0b3JlX3B0cikKIAli cmVhazsKLSAgICAgIGlmICghTklMUCAoZG9fbW91c2VfdHJhY2tpbmcpICYmIHNvbWVfbW91 c2VfbW92ZWQgKCkpCisgICAgICBpZiAoc29tZV9tb3VzZV9tb3ZlZCAoKSkKIAlicmVhazsK ICAgICAgIGlmIChlbmRfdGltZSkKIAl7CkBAIC0zOTQxLDggKzM5MzgsOSBAQCBrYmRfYnVm ZmVyX2dldF9ldmVudCAoS0JPQVJEICoqa2JwLAogICAgICAgICBicmVhazsKICAgICAgIGRl ZmF1bHQ6CiAJewotCSAgLyogSWYgdGhpcyBldmVudCBpcyBvbiBhIGRpZmZlcmVudCBmcmFt ZSwgcmV0dXJuIGEgc3dpdGNoLWZyYW1lIHRoaXMKLQkgICAgIHRpbWUsIGFuZCBsZWF2ZSB0 aGUgZXZlbnQgaW4gdGhlIHF1ZXVlIGZvciBuZXh0IHRpbWUuICAqLworCSAgLyogSWYgdGhp cyBldmVudCBpcyBvbiBhIGRpZmZlcmVudCBmcmFtZSwgcmV0dXJuIGEKKwkgICAgIHN3aXRj aC1mcmFtZSB0aGlzIHRpbWUsIGFuZCBsZWF2ZSB0aGUgZXZlbnQgaW4gdGhlIHF1ZXVlCisJ ICAgICBmb3IgbmV4dCB0aW1lLiAgKi8KIAkgIExpc3BfT2JqZWN0IGZyYW1lOwogCSAgTGlz cF9PYmplY3QgZm9jdXM7CiAKQEAgLTM5NTYsMTQgKzM5NTQsMTMgQEAga2JkX2J1ZmZlcl9n ZXRfZXZlbnQgKEtCT0FSRCAqKmticCwKIAkgIGlmICghIE5JTFAgKGZvY3VzKSkKIAkgICAg ZnJhbWUgPSBmb2N1czsKIAotCSAgaWYgKCEgRVEgKGZyYW1lLCBpbnRlcm5hbF9sYXN0X2V2 ZW50X2ZyYW1lKQorCSAgaWYgKCFFUSAoZnJhbWUsIGludGVybmFsX2xhc3RfZXZlbnRfZnJh bWUpCiAJICAgICAgJiYgIUVRIChmcmFtZSwgc2VsZWN0ZWRfZnJhbWUpKQogCSAgICBvYmog PSBtYWtlX2xpc3B5X3N3aXRjaF9mcmFtZSAoZnJhbWUpOwogCSAgaW50ZXJuYWxfbGFzdF9l dmVudF9mcmFtZSA9IGZyYW1lOwogCiAJICAvKiBJZiB3ZSBkaWRuJ3QgZGVjaWRlIHRvIG1h a2UgYSBzd2l0Y2gtZnJhbWUgZXZlbnQsIGdvIGFoZWFkCiAJICAgICBhbmQgYnVpbGQgYSBy ZWFsIGV2ZW50IGZyb20gdGhlIHF1ZXVlIGVudHJ5LiAgKi8KLQogCSAgaWYgKE5JTFAgKG9i aikpCiAJICAgIHsKIAkgICAgICBvYmogPSBtYWtlX2xpc3B5X2V2ZW50ICgmZXZlbnQtPmll KTsKQEAgLTM5OTUsNyArMzk5Miw3IEBAIGtiZF9idWZmZXJfZ2V0X2V2ZW50IChLQk9BUkQg KiprYnAsCiAgICAgICB9CiAgICAgfQogICAvKiBUcnkgZ2VuZXJhdGluZyBhIG1vdXNlIG1v dGlvbiBldmVudC4gICovCi0gIGVsc2UgaWYgKCFOSUxQIChkb19tb3VzZV90cmFja2luZykg JiYgc29tZV9tb3VzZV9tb3ZlZCAoKSkKKyAgZWxzZSBpZiAoc29tZV9tb3VzZV9tb3ZlZCAo KSkKICAgICB7CiAgICAgICBzdHJ1Y3QgZnJhbWUgKmYgPSBzb21lX21vdXNlX21vdmVkICgp OwogICAgICAgTGlzcF9PYmplY3QgYmFyX3dpbmRvdzsKQEAgLTQwMjcsNyArNDAyNCw3IEBA IGtiZF9idWZmZXJfZ2V0X2V2ZW50IChLQk9BUkQgKiprYnAsCiAJICBpZiAoTklMUCAoZnJh bWUpKQogCSAgICBYU0VURlJBTUUgKGZyYW1lLCBmKTsKIAotCSAgaWYgKCEgRVEgKGZyYW1l LCBpbnRlcm5hbF9sYXN0X2V2ZW50X2ZyYW1lKQorCSAgaWYgKCFFUSAoZnJhbWUsIGludGVy bmFsX2xhc3RfZXZlbnRfZnJhbWUpCiAJICAgICAgJiYgIUVRIChmcmFtZSwgc2VsZWN0ZWRf ZnJhbWUpKQogCSAgICBvYmogPSBtYWtlX2xpc3B5X3N3aXRjaF9mcmFtZSAoZnJhbWUpOwog CSAgaW50ZXJuYWxfbGFzdF9ldmVudF9mcmFtZSA9IGZyYW1lOwpAQCAtMTA5MzUsNyArMTA5 MzIsNyBAQCBpbml0X2tleWJvYXJkICh2b2lkKQogICByZWNlbnRfa2V5c19pbmRleCA9IDA7 CiAgIGtiZF9mZXRjaF9wdHIgPSBrYmRfYnVmZmVyOwogICBrYmRfc3RvcmVfcHRyID0ga2Jk X2J1ZmZlcjsKLSAgZG9fbW91c2VfdHJhY2tpbmcgPSBRbmlsOworICB0cmFja19tb3VzZSA9 IFFuaWw7CiAgIGlucHV0X3BlbmRpbmcgPSBmYWxzZTsKICAgaW50ZXJydXB0X2lucHV0X2Js b2NrZWQgPSAwOwogICBwZW5kaW5nX3NpZ25hbHMgPSBmYWxzZTsKQEAgLTExMjk3LDcgKzEx Mjk0LDcgQEAgc3ltc19vZl9rZXlib2FyZCAodm9pZCkKICAgZGVmc3ViciAoJlNyZWFkX2tl eV9zZXF1ZW5jZSk7CiAgIGRlZnN1YnIgKCZTcmVhZF9rZXlfc2VxdWVuY2VfdmVjdG9yKTsK ICAgZGVmc3ViciAoJlNyZWN1cnNpdmVfZWRpdCk7Ci0gIGRlZnN1YnIgKCZTdHJhY2tfbW91 c2UpOworICBkZWZzdWJyICgmU2ludGVybmFsX3RyYWNrX21vdXNlKTsKICAgZGVmc3ViciAo JlNpbnB1dF9wZW5kaW5nX3ApOwogICBkZWZzdWJyICgmU3JlY2VudF9rZXlzKTsKICAgZGVm c3ViciAoJlN0aGlzX2NvbW1hbmRfa2V5cyk7CkBAIC0xMTY0Miw4ICsxMTYzOSwxNSBAQCBh bmQgdGhlIG1pbm9yIG1vZGUgbWFwcyByZWdhcmRsZXNzIG9mIGBvdmVycmlkaW5nLWxvY2Fs LW1hcCcuICAqLyk7CiAJICAgICAgIGRvYzogLyogS2V5bWFwIGRlZmluaW5nIGJpbmRpbmdz IGZvciBzcGVjaWFsIGV2ZW50cyB0byBleGVjdXRlIGF0IGxvdyBsZXZlbC4gICovKTsKICAg VnNwZWNpYWxfZXZlbnRfbWFwID0gbGlzdDEgKFFrZXltYXApOwogCi0gIERFRlZBUl9MSVNQ ICgidHJhY2stbW91c2UiLCBkb19tb3VzZV90cmFja2luZywKLQkgICAgICAgZG9jOiAvKiBO b24tbmlsIG1lYW5zIGdlbmVyYXRlIG1vdGlvbiBldmVudHMgZm9yIG1vdXNlIG1vdGlvbi4g ICovKTsKKyAgREVGVkFSX0xJU1AgKCJ0cmFjay1tb3VzZSIsIHRyYWNrX21vdXNlLAorCSAg ICAgICBkb2M6IC8qIE5vbi1uaWwgbWVhbnMgZ2VuZXJhdGUgbW90aW9uIGV2ZW50cyBmb3Ig bW91c2UgbW90aW9uLgorVGhlIHNwZWNpYWwgdmFsdWVzIGBkcmFnZ2luZycgYW5kIGBkcm9w cGluZycgYXNzZXJ0IHRoYXQgdGhlIG1vdXNlCitjdXJzb3IgcmV0YWlucyBpdHMgYXBwZWFy YW5jZSBkdXJpbmcgbW91c2UgbW90aW9uLiAgQW55IG5vbi1uaWwgdmFsdWUKK2J1dCBgZHJv cHBpbmcnIGFzc2VydHMgdGhhdCBtb3Rpb24gZXZlbnRzIGFsd2F5cyByZWxhdGUgdG8gdGhl IGZyYW1lCit3aGVyZSB0aGUgdGhlIG1vdXNlIG1vdmVtZW50IHN0YXJ0ZWQuICBUaGUgdmFs dWUgYGRyb3BwaW5nJyBhc3NlcnRzCit0aGF0IG1vdGlvbiBldmVudHMgcmVsYXRlIHRvIHRo ZSBmcmFtZSB3aGVyZSB0aGUgbW91c2UgY3Vyc29yIGlzIHNlZW4KK3doZW4gZ2VuZXJhdGlu ZyB0aGUgZXZlbnQuICBJZiB0aGVyZSdzIG5vIHN1Y2ggZnJhbWUsIHN1Y2ggbW90aW9uCitl dmVudHMgcmVsYXRlIHRvIHRoZSBmcmFtZSB3aGVyZSB0aGUgbW91c2UgbW92ZW1lbnQgc3Rh cnRlZC4gICovKTsKIAogICBERUZWQVJfS0JPQVJEICgic3lzdGVtLWtleS1hbGlzdCIsIFZz eXN0ZW1fa2V5X2FsaXN0LAogCQkgZG9jOiAvKiBBbGlzdCBvZiBzeXN0ZW0tc3BlY2lmaWMg WCB3aW5kb3dzIGtleSBzeW1ib2xzLgpkaWZmIC0tZ2l0IGEvc3JjL25zdGVybS5tIGIvc3Jj L25zdGVybS5tCmluZGV4IDAyMzMxODI2ZDkuLmZiMmU1NTkyOWUgMTAwNjQ0Ci0tLSBhL3Ny Yy9uc3Rlcm0ubQorKysgYi9zcmMvbnN0ZXJtLm0KQEAgLTI0ODAsNyArMjQ4MCwxMSBAQCBz byBzb21lIGtleSBwcmVzc2VzIChUQUIpIGFyZSBzd2FsbG93ZWQgYnkgdGhlIHN5c3RlbS4g ICovCiAgICAgICBYRlJBTUUgKGZyYW1lKS0+bW91c2VfbW92ZWQgPSAwOwogCiAgIGRweWlu Zm8tPmxhc3RfbW91c2Vfc2Nyb2xsX2JhciA9IG5pbDsKKyAgZiA9IGRweWluZm8tPm5zX2Zv Y3VzX2ZyYW1lID8gZHB5aW5mby0+bnNfZm9jdXNfZnJhbWUgOiBTRUxFQ1RFRF9GUkFNRSAo KTsKICAgaWYgKGRweWluZm8tPmxhc3RfbW91c2VfZnJhbWUKKyAgICAgIC8qIFdoaWxlIGRy b3BwaW5nLCB1c2UgdGhlIGxhc3QgbW91c2UgZnJhbWUgb25seSBpZiB0aGVyZSBpcyBubwor CSBjdXJyZW50bHkgZm9jdXNlZCBmcmFtZS4gICovCisgICAgICAmJiAoIUVRICh0cmFja19t b3VzZSwgUWRyb3BwaW5nKSB8fCAhZikKICAgICAgICYmIEZSQU1FX0xJVkVfUCAoZHB5aW5m by0+bGFzdF9tb3VzZV9mcmFtZSkpCiAgICAgZiA9IGRweWluZm8tPmxhc3RfbW91c2VfZnJh bWU7CiAgIGVsc2UKZGlmZiAtLWdpdCBhL3NyYy90ZXJtLmMgYi9zcmMvdGVybS5jCmluZGV4 IGIwNThkOGJkYWQuLmE4OGQ0N2Y5MjMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXJtLmMKKysrIGIv c3JjL3Rlcm0uYwpAQCAtMzAzMywxOCArMzAzMywxOCBAQCByZWFkX21lbnVfaW5wdXQgKHN0 cnVjdCBmcmFtZSAqc2YsIGludCAqeCwgaW50ICp5LCBpbnQgbWluX3ksIGludCBtYXhfeSwK ICAgICAgIGJvb2wgdXNhYmxlX2lucHV0ID0gMTsKICAgICAgIG1pX3Jlc3VsdCBzdCA9IE1J X0NPTlRJTlVFOwogICAgICAgc3RydWN0IHR0eV9kaXNwbGF5X2luZm8gKnR0eSA9IEZSQU1F X1RUWSAoc2YpOwotICAgICAgTGlzcF9PYmplY3Qgc2F2ZWRfbW91c2VfdHJhY2tpbmcgPSBk b19tb3VzZV90cmFja2luZzsKKyAgICAgIExpc3BfT2JqZWN0IG9sZF90cmFja19tb3VzZSA9 IHRyYWNrX21vdXNlOwogCiAgICAgICAvKiBTaWduYWwgdGhlIGtleWJvYXJkIHJlYWRpbmcg cm91dGluZXMgd2UgYXJlIGRpc3BsYXlpbmcgYSBtZW51CiAJIG9uIHRoaXMgdGVybWluYWwu ICAqLwogICAgICAgdHR5LT5zaG93aW5nX21lbnUgPSAxOwogICAgICAgLyogV2Ugd2FudCBt b3VzZSBtb3ZlbWVudHMgYmUgcmVwb3J0ZWQgYnkgcmVhZF9tZW51X2NvbW1hbmQuICAqLwot ICAgICAgZG9fbW91c2VfdHJhY2tpbmcgPSBRdDsKKyAgICAgIHRyYWNrX21vdXNlID0gUXQ7 CiAgICAgICBkbyB7CiAJY21kID0gcmVhZF9tZW51X2NvbW1hbmQgKCk7CiAgICAgICB9IHdo aWxlIChOSUxQIChjbWQpKTsKICAgICAgIHR0eS0+c2hvd2luZ19tZW51ID0gMDsKLSAgICAg IGRvX21vdXNlX3RyYWNraW5nID0gc2F2ZWRfbW91c2VfdHJhY2tpbmc7CisgICAgICB0cmFj a19tb3VzZSA9IG9sZF90cmFja19tb3VzZTsKIAogICAgICAgaWYgKEVRIChjbWQsIFF0KSB8 fCBFUSAoY21kLCBRdHR5X21lbnVfZXhpdCkKIAkgIC8qIElmIHNvbWUgaW5wdXQgc3dpdGNo ZWQgZnJhbWVzIHVuZGVyIG91ciBmZWV0LCBleGl0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL3cz MmZucy5jIGIvc3JjL3czMmZucy5jCmluZGV4IGFjZDljODA1MjguLmEyYTg4YjI1ODggMTAw NjQ0Ci0tLSBhL3NyYy93MzJmbnMuYworKysgYi9zcmMvdzMyZm5zLmMKQEAgLTQ1ODYsNyAr NDU4Niw4IEBAIHczMl93bmRfcHJvYyAoSFdORCBod25kLCBVSU5UIG1zZywgV1BBUkFNIHdQ YXJhbSwgTFBBUkFNIGxQYXJhbSkKIAlpZiAoYnV0dG9uX3N0YXRlICYgdGhpcykKIAkgIHJl dHVybiAwOwogCi0JaWYgKGJ1dHRvbl9zdGF0ZSA9PSAwKQorCS8qIERvbid0IGNhcHR1cmUg bW91c2Ugd2hlbiBkcm9wcGluZy4gICovCisJaWYgKGJ1dHRvbl9zdGF0ZSA9PSAwICYmICFF USAodHJhY2tfbW91c2UsIFFkcm9wcGluZykpCiAJICBTZXRDYXB0dXJlIChod25kKTsKIAog CWJ1dHRvbl9zdGF0ZSB8PSB0aGlzOwpAQCAtNDcwNyw4ICs0NzA4LDExIEBAIHczMl93bmRf cHJvYyAoSFdORCBod25kLCBVSU5UIG1zZywgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJh bSkKIAogCWlmIChwYXJzZV9idXR0b24gKG1zZywgSElXT1JEICh3UGFyYW0pLCAmYnV0dG9u LCAmdXApKQogCSAgewotCSAgICBpZiAodXApIFJlbGVhc2VDYXB0dXJlICgpOwotCSAgICBl bHNlIFNldENhcHR1cmUgKGh3bmQpOworCSAgICBpZiAodXApCisJICAgICAgUmVsZWFzZUNh cHR1cmUgKCk7CisJICAgIC8qIERvbid0IGNhcHR1cmUgbW91c2Ugd2hlbiBkcm9wcGluZy4g ICovCisJICAgIGVsc2UgaWYgKCFFUSAodHJhY2tfbW91c2UsIFFkcm9wcGluZykpCisJICAg ICAgU2V0Q2FwdHVyZSAoaHduZCk7CiAJICAgIGJ1dHRvbiA9IChidXR0b24gPT0gMCkgPyBM TU9VU0UgOgogCSAgICAgICgoYnV0dG9uID09IDEpID8gTU1PVVNFICA6IFJNT1VTRSk7CiAJ ICAgIGlmICh1cCkKQEAgLTUzNTEsOCArNTM1NSw5IEBAIHczMl93bmRfcHJvYyAoSFdORCBo d25kLCBVSU5UIG1zZywgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKIAllbHNlIGlm IChidXR0b25fc3RhdGUgJiBSTU9VU0UpCiAJICBmbGFncyB8PSBUUE1fUklHSFRCVVRUT047 CiAKLQkvKiBSZW1lbWJlciB3ZSBkaWQgYSBTZXRDYXB0dXJlIG9uIHRoZSBpbml0aWFsIG1v dXNlIGRvd24gZXZlbnQsCi0JICAgc28gZm9yIHNhZmV0eSwgd2UgbWFrZSBzdXJlIHRoZSBj YXB0dXJlIGlzIGNhbmNlbGVkIG5vdy4gICovCisJLyogV2UgbWF5IGhhdmUgZG9uZSBhIFNl dENhcHR1cmUgb24gdGhlIGluaXRpYWwgbW91c2UgZG93bgorCSAgIGV2ZW50LCBzbyBmb3Ig c2FmZXR5LCBtYWtlIHN1cmUgdGhlIGNhcHR1cmUgaXMgY2FuY2VsZWQKKwkgICBub3cuICAq LwogCVJlbGVhc2VDYXB0dXJlICgpOwogCWJ1dHRvbl9zdGF0ZSA9IDA7CiAKZGlmZiAtLWdp dCBhL3NyYy93MzJ0ZXJtLmMgYi9zcmMvdzMydGVybS5jCmluZGV4IGM2ZTE3NWU3ZTUuLjAw NThiOThlZDQgMTAwNjQ0Ci0tLSBhL3NyYy93MzJ0ZXJtLmMKKysrIGIvc3JjL3czMnRlcm0u YwpAQCAtMzUyNSwxMSArMzUyNSwxMyBAQCB3MzJfbW91c2VfcG9zaXRpb24gKHN0cnVjdCBm cmFtZSAqKmZwLCBpbnQgaW5zaXN0LCBMaXNwX09iamVjdCAqYmFyX3dpbmRvdywKIAogICAg ICAgLyogTm93IHdlIGhhdmUgYSBwb3NpdGlvbiBvbiB0aGUgcm9vdDsgZmluZCB0aGUgaW5u ZXJtb3N0IHdpbmRvdwogCSBjb250YWluaW5nIHRoZSBwb2ludGVyLiAgKi8KKwogICAgICAg ewotCS8qIElmIG1vdXNlIHdhcyBncmFiYmVkIG9uIGEgZnJhbWUsIGdpdmUgY29vcmRzIGZv ciB0aGF0Ci0JICAgZnJhbWUgZXZlbiBpZiB0aGUgbW91c2UgaXMgbm93IG91dHNpZGUgaXQu ICBPdGhlcndpc2UKLQkgICBjaGVjayBmb3Igd2luZG93IHVuZGVyIG1vdXNlIG9uIG9uZSBv ZiBvdXIgZnJhbWVzLiAgKi8KLQlpZiAoZ3VpX21vdXNlX2dyYWJiZWQgKGRweWluZm8pKQor CS8qIElmIG1vdXNlIHdhcyBncmFiYmVkIG9uIGEgZnJhbWUgYW5kIHdlIGFyZSBub3QgZHJv cHBpbmcsCisJICAgZ2l2ZSBjb29yZHMgZm9yIHRoYXQgZnJhbWUgZXZlbiBpZiB0aGUgbW91 c2UgaXMgbm93IG91dHNpZGUKKwkgICBpdC4gIE90aGVyd2lzZSBjaGVjayBmb3Igd2luZG93 IHVuZGVyIG1vdXNlIG9uIG9uZSBvZiBvdXIKKwkgICBmcmFtZXMuICAqLworCWlmIChndWlf bW91c2VfZ3JhYmJlZCAoZHB5aW5mbykgJiYgIUVRICh0cmFja19tb3VzZSwgUWRyb3BwaW5n KSkKIAkgIGYxID0gZHB5aW5mby0+bGFzdF9tb3VzZV9mcmFtZTsKIAllbHNlCiAJICB7CkBA IC0zNTU1LDE3ICszNTU3LDIzIEBAIHczMl9tb3VzZV9wb3NpdGlvbiAoc3RydWN0IGZyYW1l ICoqZnAsIGludCBpbnNpc3QsIExpc3BfT2JqZWN0ICpiYXJfd2luZG93LAogCSAgICAgIH0K IAkgIH0KIAorCWlmICghZjEgfHwgRlJBTUVfVE9PTFRJUF9QIChmMSkpCisJICAvKiBEb24n dCB1c2UgYSB0b29sdGlwIGZyYW1lLiAgKi8KKwkgIGYxID0gKChFUSAodHJhY2tfbW91c2Us IFFkcm9wcGluZykgJiYgZ3VpX21vdXNlX2dyYWJiZWQgKGRweWluZm8pKQorCQk/IGRweWlu Zm8tPmxhc3RfbW91c2VfZnJhbWUKKwkJOiBOVUxMKTsKKwogCS8qIElmIG5vdCwgaXMgaXQg b25lIG9mIG91ciBzY3JvbGwgYmFycz8gICovCi0JaWYgKCEgZjEpCisJaWYgKCFmMSkKIAkg IHsKIAkgICAgc3RydWN0IHNjcm9sbF9iYXIgKmJhcgotICAgICAgICAgICAgICA9IHczMl93 aW5kb3dfdG9fc2Nyb2xsX2JhciAoV2luZG93RnJvbVBvaW50IChwdCksIDIpOworCSAgICAg ID0gdzMyX3dpbmRvd190b19zY3JvbGxfYmFyIChXaW5kb3dGcm9tUG9pbnQgKHB0KSwgMik7 CiAKIAkgICAgaWYgKGJhcikKIAkgICAgICBmMSA9IFhGUkFNRSAoV0lORE9XX0ZSQU1FIChY V0lORE9XIChiYXItPndpbmRvdykpKTsKIAkgIH0KIAotCWlmIChmMSA9PSAwICYmIGluc2lz dCA+IDApCisJaWYgKCFmMSAmJiBpbnNpc3QgPiAwKQogCSAgZjEgPSBTRUxFQ1RFRF9GUkFN RSAoKTsKIAogCWlmIChmMSkKQEAgLTQ2NjcsNiArNDY3NSwzNyBAQCBzdGF0aWMgc2hvcnQg dGVtcF9idWZmZXJbMTAwXTsKIC8qIFRlbXBvcmFyaWx5IHN0b3JlIGxlYWQgYnl0ZSBvZiBE QkNTIGlucHV0IHNlcXVlbmNlcy4gICovCiBzdGF0aWMgY2hhciBkYmNzX2xlYWQgPSAwOwog CisvKioKKyAgbW91c2Vfb3Jfd2Rlc2NfZnJhbWU6IFdoZW4gbm90IGRyb3BwaW5nIGFuZCB0 aGUgbW91c2Ugd2FzIGdyYWJiZWQKKyAgZm9yIERQWUlORk8sIHJldHVybiB0aGUgZnJhbWUg d2hlcmUgdGhlIG1vdXNlIHdhcyBzZWVuIGxhc3QuICBJZgorICB0aGVyZSdzIG5vIHN1Y2gg ZnJhbWUsIHJldHVybiB0aGUgZnJhbWUgYWNjb3JkaW5nIHRvIFdERVNDLiAgV2hlbgorICBk cm9wcGluZywgcmV0dXJuIHRoZSBmcmFtZSBhY2NvcmRpbmcgdG8gV0RFU0MuICBJZiB0aGVy ZSdzIG5vIHN1Y2gKKyAgZnJhbWUgYW5kIHRoZSBtb3VzZSB3YXMgZ3JhYmJlZCBmb3IgRFBZ SU5GTywgcmV0dXJuIHRoZSBmcmFtZSB3aGVyZQorICB0aGUgbW91c2Ugd2FzIHNlZW4gbGFz dC4gIEluIGVpdGhlciBjYXNlLCBuZXZlciByZXR1cm4gYSB0b29sdGlwCisgIGZyYW1lLiAg Ki8KK3N0YXRpYyBzdHJ1Y3QgZnJhbWUgKgorbW91c2Vfb3Jfd2Rlc2NfZnJhbWUgKHN0cnVj dCB3MzJfZGlzcGxheV9pbmZvICpkcHlpbmZvLCBIV05EIHdkZXNjKQoreworICBzdHJ1Y3Qg ZnJhbWUgKmxtX2YgPSAoZ3VpX21vdXNlX2dyYWJiZWQgKGRweWluZm8pCisJCQk/IGRweWlu Zm8tPmxhc3RfbW91c2VfZnJhbWUKKwkJCTogTlVMTCk7CisKKyAgaWYgKGxtX2YgJiYgIUVR ICh0cmFja19tb3VzZSwgUWRyb3BwaW5nKSkKKyAgICByZXR1cm4gbG1fZjsKKyAgZWxzZQor ICAgIHsKKyAgICAgIHN0cnVjdCBmcmFtZSAqd19mID0gdzMyX3dpbmRvd190b19mcmFtZSAo ZHB5aW5mbywgd2Rlc2MpOworCisgICAgICAvKiBEbyBub3QgcmV0dXJuIGEgdG9vbHRpcCBm cmFtZS4gICovCisgICAgICBpZiAoIXdfZiB8fCBGUkFNRV9UT09MVElQX1AgKHdfZikpCisJ cmV0dXJuIEVRICh0cmFja19tb3VzZSwgUWRyb3BwaW5nKSA/IGxtX2YgOiBOVUxMOworICAg ICAgZWxzZQorCS8qIFdoZW4gZHJvcHBpbmcgaXQgd291bGQgYmUgcHJvYmFibHkgbmljZSB0 byByYWlzZSB3X2YKKwkgICBoZXJlLiAgKi8KKwlyZXR1cm4gd19mOworICAgIH0KK30KKwog LyogUmVhZCBldmVudHMgY29taW5nIGZyb20gdGhlIFczMiBzaGVsbC4KICAgIFRoaXMgcm91 dGluZSBpcyBjYWxsZWQgYnkgdGhlIFNJR0lPIGhhbmRsZXIuCiAgICBXZSByZXR1cm4gYXMg c29vbiBhcyB0aGVyZSBhcmUgbm8gbW9yZSBldmVudHMgdG8gYmUgcmVhZC4KQEAgLTQ5NDAs MTUgKzQ5NzksMTMgQEAgdzMyX3JlYWRfc29ja2V0IChzdHJ1Y3QgdGVybWluYWwgKnRlcm1p bmFsLAogICAgICAgICAgIHByZXZpb3VzX2hlbHBfZWNob19zdHJpbmcgPSBoZWxwX2VjaG9f c3RyaW5nOwogCSAgaGVscF9lY2hvX3N0cmluZyA9IFFuaWw7CiAKLQkgIGYgPSAoZ3VpX21v dXNlX2dyYWJiZWQgKGRweWluZm8pID8gZHB5aW5mby0+bGFzdF9tb3VzZV9mcmFtZQotCSAg ICAgICA6IHczMl93aW5kb3dfdG9fZnJhbWUgKGRweWluZm8sIG1zZy5tc2cuaHduZCkpOwot CiAJICBpZiAoaGxpbmZvLT5tb3VzZV9mYWNlX2hpZGRlbikKIAkgICAgewogCSAgICAgIGhs aW5mby0+bW91c2VfZmFjZV9oaWRkZW4gPSBmYWxzZTsKIAkgICAgICBjbGVhcl9tb3VzZV9m YWNlIChobGluZm8pOwogCSAgICB9CiAKKwkgIGYgPSBtb3VzZV9vcl93ZGVzY19mcmFtZSAo ZHB5aW5mbywgbXNnLm1zZy5od25kKTsKIAkgIGlmIChmKQogCSAgICB7CiAJICAgICAgLyog TWF5YmUgZ2VuZXJhdGUgU0VMRUNUX1dJTkRPV19FVkVOVHMgZm9yCkBAIC01MDIwLDkgKzUw NTcsNyBAQCB3MzJfcmVhZF9zb2NrZXQgKHN0cnVjdCB0ZXJtaW5hbCAqdGVybWluYWwsCiAJ ICAgIGludCBidXR0b24gPSAwOwogCSAgICBpbnQgdXAgPSAwOwogCi0JICAgIGYgPSAoZ3Vp X21vdXNlX2dyYWJiZWQgKGRweWluZm8pID8gZHB5aW5mby0+bGFzdF9tb3VzZV9mcmFtZQot CQkgOiB3MzJfd2luZG93X3RvX2ZyYW1lIChkcHlpbmZvLCBtc2cubXNnLmh3bmQpKTsKLQor CSAgICBmID0gbW91c2Vfb3Jfd2Rlc2NfZnJhbWUgKGRweWluZm8sIG1zZy5tc2cuaHduZCk7 CiAJICAgIGlmIChmKQogCSAgICAgIHsKICAgICAgICAgICAgICAgICB3MzJfY29uc3RydWN0 X21vdXNlX2NsaWNrICgmaW5ldiwgJm1zZywgZik7CkBAIC01MDgxLDkgKzUxMTYsNyBAQCB3 MzJfcmVhZF9zb2NrZXQgKHN0cnVjdCB0ZXJtaW5hbCAqdGVybWluYWwsCiAJY2FzZSBXTV9N T1VTRVdIRUVMOgogICAgICAgICBjYXNlIFdNX01PVVNFSFdIRUVMOgogCSAgewotCSAgICBm ID0gKGd1aV9tb3VzZV9ncmFiYmVkIChkcHlpbmZvKSA/IGRweWluZm8tPmxhc3RfbW91c2Vf ZnJhbWUKLQkJIDogdzMyX3dpbmRvd190b19mcmFtZSAoZHB5aW5mbywgbXNnLm1zZy5od25k KSk7Ci0KKwkgICAgZiA9IG1vdXNlX29yX3dkZXNjX2ZyYW1lIChkcHlpbmZvLCBtc2cubXNn Lmh3bmQpOwogCSAgICBpZiAoZikKIAkgICAgICB7CiAJCWlmICghZHB5aW5mby0+dzMyX2Zv Y3VzX2ZyYW1lCkBAIC01NDM5LDYgKzU0NzIsNyBAQCB3MzJfcmVhZF9zb2NrZXQgKHN0cnVj dCB0ZXJtaW5hbCAqdGVybWluYWwsCiAJICAgICAgaWYgKGFueV9oZWxwX2V2ZW50X3ApCiAJ CWRvX2hlbHAgPSAtMTsKIAkgICAgfQorCiAJICBicmVhazsKIAogCWNhc2UgV01fU0VURk9D VVM6CmRpZmYgLS1naXQgYS9zcmMveGRpc3AuYyBiL3NyYy94ZGlzcC5jCmluZGV4IDFiYjVm NWUwZjIuLjczMzhkMmI3ZDQgMTAwNjQ0Ci0tLSBhL3NyYy94ZGlzcC5jCisrKyBiL3NyYy94 ZGlzcC5jCkBAIC0xNzI4OSw3ICsxNzI4OSw3IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3Bf T2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAJIHRoZSBtb3VzZSwgcmVz dWx0aW5nIGluIGFuIHVud2FudGVkIG1vdXNlLW1vdmVtZW50IHJhdGhlcgogCSB0aGFuIGEg c2ltcGxlIG1vdXNlLWNsaWNrLiAgKi8KICAgICAgIGlmICghdy0+c3RhcnRfYXRfbGluZV9i ZWcKLQkgICYmIE5JTFAgKGRvX21vdXNlX3RyYWNraW5nKQorCSAgJiYgTklMUCAodHJhY2tf bW91c2UpCiAgICAgICAJICAmJiBDSEFSUE9TIChzdGFydHApID4gQkVHVgogCSAgJiYgQ0hB UlBPUyAoc3RhcnRwKSA+IEJFRyArIGJlZ191bmNoYW5nZWQKIAkgICYmIENIQVJQT1MgKHN0 YXJ0cCkgPD0gWiAtIGVuZF91bmNoYW5nZWQKQEAgLTMwMjc5LDcgKzMwMjc5LDcgQEAgc2hv d19tb3VzZV9mYWNlIChNb3VzZV9ITEluZm8gKmhsaW5mbywgZW51bSBkcmF3X2dseXBoc19m YWNlIGRyYXcpCiAKICNpZmRlZiBIQVZFX1dJTkRPV19TWVNURU0KICAgLyogQ2hhbmdlIHRo ZSBtb3VzZSBjdXJzb3IuICAqLwotICBpZiAoRlJBTUVfV0lORE9XX1AgKGYpICYmIE5JTFAg KGRvX21vdXNlX3RyYWNraW5nKSkKKyAgaWYgKEZSQU1FX1dJTkRPV19QIChmKSAmJiBOSUxQ ICh0cmFja19tb3VzZSkpCiAgICAgewogI2lmbmRlZiBIQVZFX0VYVF9UT09MX0JBUgogICAg ICAgaWYgKGRyYXcgPT0gRFJBV19OT1JNQUxfVEVYVApAQCAtMzEyMjYsNyArMzEyMjYsNyBA QCBkZWZpbmVfZnJhbWVfY3Vyc29yMSAoc3RydWN0IGZyYW1lICpmLCBFbWFjc19DdXJzb3Ig Y3Vyc29yLCBMaXNwX09iamVjdCBwb2ludGVyKQogICAgIHJldHVybjsKIAogICAvKiBEbyBu b3QgY2hhbmdlIGN1cnNvciBzaGFwZSB3aGlsZSBkcmFnZ2luZyBtb3VzZS4gICovCi0gIGlm IChFUSAoZG9fbW91c2VfdHJhY2tpbmcsIFFkcmFnZ2luZykpCisgIGlmIChFUSAodHJhY2tf bW91c2UsIFFkcmFnZ2luZykgfHwgRVEgKHRyYWNrX21vdXNlLCBRZHJvcHBpbmcpKQogICAg IHJldHVybjsKIAogICBpZiAoIU5JTFAgKHBvaW50ZXIpKQpAQCAtMzI5NTYsNiArMzI5NTYs NyBAQCBiZSBsZXQtYm91bmQgYXJvdW5kIGNvZGUgdGhhdCBuZWVkcyB0byBkaXNhYmxlIG1l c3NhZ2VzIHRlbXBvcmFyaWx5LiAqLyk7CiAgIC8qIGFsc28gUXRleHQgKi8KIAogICBERUZT WU0gKFFkcmFnZ2luZywgImRyYWdnaW5nIik7CisgIERFRlNZTSAoUWRyb3BwaW5nLCAiZHJv cHBpbmciKTsKIAogICBERUZTWU0gKFFpbmhpYml0X2ZyZWVfcmVhbGl6ZWRfZmFjZXMsICJp bmhpYml0LWZyZWUtcmVhbGl6ZWQtZmFjZXMiKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3h0ZXJt LmMgYi9zcmMveHRlcm0uYwppbmRleCBjOTZhYTc0YTdhLi45N2QxNGY3ZDQ1IDEwMDY0NAot LS0gYS9zcmMveHRlcm0uYworKysgYi9zcmMveHRlcm0uYwpAQCAtNTE2NywyMCArNTE2Nywx NSBAQCBYVG1vdXNlX3Bvc2l0aW9uIChzdHJ1Y3QgZnJhbWUgKipmcCwgaW50IGluc2lzdCwg TGlzcF9PYmplY3QgKmJhcl93aW5kb3csCiAgICAgICAvKiBGaWd1cmUgb3V0IHdoaWNoIHJv b3Qgd2luZG93IHdlJ3JlIG9uLiAgKi8KICAgICAgIFhRdWVyeVBvaW50ZXIgKEZSQU1FX1hf RElTUExBWSAoKmZwKSwKIAkJICAgICBEZWZhdWx0Um9vdFdpbmRvdyAoRlJBTUVfWF9ESVNQ TEFZICgqZnApKSwKLQogCQkgICAgIC8qIFRoZSByb290IHdpbmRvdyB3aGljaCBjb250YWlu cyB0aGUgcG9pbnRlci4gICovCiAJCSAgICAgJnJvb3QsCi0KIAkJICAgICAvKiBUcmFzaCB3 aGljaCB3ZSBjYW4ndCB0cnVzdCBpZiB0aGUgcG9pbnRlciBpcyBvbgogCQkJYSBkaWZmZXJl bnQgc2NyZWVuLiAgKi8KIAkJICAgICAmZHVtbXlfd2luZG93LAotCiAJCSAgICAgLyogVGhl IHBvc2l0aW9uIG9uIHRoYXQgcm9vdCB3aW5kb3cuICAqLwogCQkgICAgICZyb290X3gsICZy b290X3ksCi0KIAkJICAgICAvKiBNb3JlIHRyYXNoIHdlIGNhbid0IHRydXN0LiAgKi8KIAkJ ICAgICAmZHVtbXksICZkdW1teSwKLQogCQkgICAgIC8qIE1vZGlmaWVyIGtleXMgYW5kIHBv aW50ZXIgYnV0dG9ucywgYWJvdXQgd2hpY2gKIAkJCXdlIGRvbid0IGNhcmUuICAqLwogCQkg ICAgICh1bnNpZ25lZCBpbnQgKikgJmR1bW15KTsKQEAgLTUyMDMsMjEgKzUxOTgsMTcgQEAg WFRtb3VzZV9wb3NpdGlvbiAoc3RydWN0IGZyYW1lICoqZnAsIGludCBpbnNpc3QsIExpc3Bf T2JqZWN0ICpiYXJfd2luZG93LAogCiAJeF9jYXRjaF9lcnJvcnMgKEZSQU1FX1hfRElTUExB WSAoKmZwKSk7CiAKLQlpZiAoZ3VpX21vdXNlX2dyYWJiZWQgKGRweWluZm8pKQorCWlmIChn dWlfbW91c2VfZ3JhYmJlZCAoZHB5aW5mbykgJiYgIUVRICh0cmFja19tb3VzZSwgUWRyb3Bw aW5nKSkKIAkgIHsKIAkgICAgLyogSWYgbW91c2Ugd2FzIGdyYWJiZWQgb24gYSBmcmFtZSwg Z2l2ZSBjb29yZHMgZm9yIHRoYXQgZnJhbWUKIAkgICAgICAgZXZlbiBpZiB0aGUgbW91c2Ug aXMgbm93IG91dHNpZGUgaXQuICAqLwogCSAgICBYVHJhbnNsYXRlQ29vcmRpbmF0ZXMgKEZS QU1FX1hfRElTUExBWSAoKmZwKSwKLQogCQkJCSAgIC8qIEZyb20td2luZG93LiAgKi8KIAkJ CQkgICByb290LAotCiAJCQkJICAgLyogVG8td2luZG93LiAgKi8KIAkJCQkgICBGUkFNRV9Y X1dJTkRPVyAoZHB5aW5mby0+bGFzdF9tb3VzZV9mcmFtZSksCi0KIAkJCQkgICAvKiBGcm9t LXBvc2l0aW9uLCB0by1wb3NpdGlvbi4gICovCiAJCQkJICAgcm9vdF94LCByb290X3ksICZ3 aW5feCwgJndpbl95LAotCiAJCQkJICAgLyogQ2hpbGQgb2Ygd2luLiAgKi8KIAkJCQkgICAm Y2hpbGQpOwogCSAgICBmMSA9IGRweWluZm8tPmxhc3RfbW91c2VfZnJhbWU7CkBAIC01MjI3 LDE2ICs1MjE4LDEyIEBAIFhUbW91c2VfcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAqKmZwLCBp bnQgaW5zaXN0LCBMaXNwX09iamVjdCAqYmFyX3dpbmRvdywKIAkgICAgd2hpbGUgKHRydWUp CiAJICAgICAgewogCQlYVHJhbnNsYXRlQ29vcmRpbmF0ZXMgKEZSQU1FX1hfRElTUExBWSAo KmZwKSwKLQogCQkJCSAgICAgICAvKiBGcm9tLXdpbmRvdywgdG8td2luZG93LiAgKi8KIAkJ CQkgICAgICAgcm9vdCwgd2luLAotCiAJCQkJICAgICAgIC8qIEZyb20tcG9zaXRpb24sIHRv LXBvc2l0aW9uLiAgKi8KIAkJCQkgICAgICAgcm9vdF94LCByb290X3ksICZ3aW5feCwgJndp bl95LAotCiAJCQkJICAgICAgIC8qIENoaWxkIG9mIHdpbi4gICovCiAJCQkJICAgICAgICZj aGlsZCk7Ci0KIAkJaWYgKGNoaWxkID09IE5vbmUgfHwgY2hpbGQgPT0gd2luKQogCQkgIHsK ICNpZmRlZiBVU0VfR1RLCkBAIC01Mjk5LDEzICs1Mjg2LDM1IEBAIFhUbW91c2VfcG9zaXRp b24gKHN0cnVjdCBmcmFtZSAqKmZwLCBpbnQgaW5zaXN0LCBMaXNwX09iamVjdCAqYmFyX3dp bmRvdywKICNlbmRpZiAvKiBVU0VfWF9UT09MS0lUICovCiAJICB9CiAKKwlpZiAoKCFmMSB8 fCBGUkFNRV9UT09MVElQX1AgKGYxKSkKKwkgICAgJiYgRVEgKHRyYWNrX21vdXNlLCBRZHJv cHBpbmcpCisJICAgICYmIGd1aV9tb3VzZV9ncmFiYmVkIChkcHlpbmZvKSkKKwkgIHsKKwkg ICAgLyogV2hlbiBkcm9wcGluZyB0aGVuIGlmIHdlIGRpZG4ndCBnZXQgYSBmcmFtZSBvciBv bmx5IGEKKwkgICAgICAgdG9vbHRpcCBmcmFtZSBhbmQgdGhlIG1vdXNlIHdhcyBncmFiYmVk IG9uIGEgZnJhbWUsCisJICAgICAgIGdpdmUgY29vcmRzIGZvciB0aGF0IGZyYW1lIGV2ZW4g aWYgdGhlIG1vdXNlIGlzIG5vdworCSAgICAgICBvdXRzaWRlIGl0LiAgKi8KKwkgICAgWFRy YW5zbGF0ZUNvb3JkaW5hdGVzIChGUkFNRV9YX0RJU1BMQVkgKCpmcCksCisJCQkJICAgLyog RnJvbS13aW5kb3cuICAqLworCQkJCSAgIHJvb3QsCisJCQkJICAgLyogVG8td2luZG93LiAg Ki8KKwkJCQkgICBGUkFNRV9YX1dJTkRPVyAoZHB5aW5mby0+bGFzdF9tb3VzZV9mcmFtZSks CisJCQkJICAgLyogRnJvbS1wb3NpdGlvbiwgdG8tcG9zaXRpb24uICAqLworCQkJCSAgIHJv b3RfeCwgcm9vdF95LCAmd2luX3gsICZ3aW5feSwKKwkJCQkgICAvKiBDaGlsZCBvZiB3aW4u ICAqLworCQkJCSAgICZjaGlsZCk7CisJICAgIGYxID0gZHB5aW5mby0+bGFzdF9tb3VzZV9m cmFtZTsKKwkgIH0KKwllbHNlIGlmIChmMSAmJiBGUkFNRV9UT09MVElQX1AgKGYxKSkKKwkg IGYxID0gTlVMTDsKKwogCWlmICh4X2hhZF9lcnJvcnNfcCAoRlJBTUVfWF9ESVNQTEFZICgq ZnApKSkKLQkgIGYxID0gMDsKKwkgIGYxID0gTlVMTDsKIAogCXhfdW5jYXRjaF9lcnJvcnNf YWZ0ZXJfY2hlY2sgKCk7CiAKIAkvKiBJZiBub3QsIGlzIGl0IG9uZSBvZiBvdXIgc2Nyb2xs IGJhcnM/ICAqLwotCWlmICghIGYxKQorCWlmICghZjEpCiAJICB7CiAJICAgIHN0cnVjdCBz Y3JvbGxfYmFyICpiYXI7CiAKQEAgLTUzMTksNyArNTMyOCw3IEBAIFhUbW91c2VfcG9zaXRp b24gKHN0cnVjdCBmcmFtZSAqKmZwLCBpbnQgaW5zaXN0LCBMaXNwX09iamVjdCAqYmFyX3dp bmRvdywKIAkgICAgICB9CiAJICB9CiAKLQlpZiAoZjEgPT0gMCAmJiBpbnNpc3QgPiAwKQor CWlmICghZjEgJiYgaW5zaXN0ID4gMCkKIAkgIGYxID0gU0VMRUNURURfRlJBTUUgKCk7CiAK IAlpZiAoZjEpCkBAIC03Nzg4LDYgKzc3OTcsMzcgQEAgZmx1c2hfZGlydHlfYmFja19idWZm ZXJzICh2b2lkKQogICB1bmJsb2NrX2lucHV0ICgpOwogfQogCisvKioKKyAgbW91c2Vfb3Jf d2Rlc2NfZnJhbWU6IFdoZW4gbm90IGRyb3BwaW5nIGFuZCB0aGUgbW91c2Ugd2FzIGdyYWJi ZWQKKyAgZm9yIERQWUlORk8sIHJldHVybiB0aGUgZnJhbWUgd2hlcmUgdGhlIG1vdXNlIHdh cyBzZWVuIGxhc3QuICBJZgorICB0aGVyZSdzIG5vIHN1Y2ggZnJhbWUsIHJldHVybiB0aGUg ZnJhbWUgYWNjb3JkaW5nIHRvIFdERVNDLiAgV2hlbgorICBkcm9wcGluZywgcmV0dXJuIHRo ZSBmcmFtZSBhY2NvcmRpbmcgdG8gV0RFU0MuICBJZiB0aGVyZSdzIG5vIHN1Y2gKKyAgZnJh bWUgYW5kIHRoZSBtb3VzZSB3YXMgZ3JhYmJlZCBmb3IgRFBZSU5GTywgcmV0dXJuIHRoZSBm cmFtZSB3aGVyZQorICB0aGUgbW91c2Ugd2FzIHNlZW4gbGFzdC4gIEluIGVpdGhlciBjYXNl LCBuZXZlciByZXR1cm4gYSB0b29sdGlwCisgIGZyYW1lLiAgKi8KK3N0YXRpYyBzdHJ1Y3Qg ZnJhbWUgKgorbW91c2Vfb3Jfd2Rlc2NfZnJhbWUgKHN0cnVjdCB4X2Rpc3BsYXlfaW5mbyAq ZHB5aW5mbywgaW50IHdkZXNjKQoreworICBzdHJ1Y3QgZnJhbWUgKmxtX2YgPSAoZ3VpX21v dXNlX2dyYWJiZWQgKGRweWluZm8pCisJCQk/IGRweWluZm8tPmxhc3RfbW91c2VfZnJhbWUK KwkJCTogTlVMTCk7CisKKyAgaWYgKGxtX2YgJiYgIUVRICh0cmFja19tb3VzZSwgUWRyb3Bw aW5nKSkKKyAgICByZXR1cm4gbG1fZjsKKyAgZWxzZQorICAgIHsKKyAgICAgIHN0cnVjdCBm cmFtZSAqd19mID0geF93aW5kb3dfdG9fZnJhbWUgKGRweWluZm8sIHdkZXNjKTsKKworICAg ICAgLyogRG8gbm90IHJldHVybiBhIHRvb2x0aXAgZnJhbWUuICAqLworICAgICAgaWYgKCF3 X2YgfHwgRlJBTUVfVE9PTFRJUF9QICh3X2YpKQorCXJldHVybiBFUSAodHJhY2tfbW91c2Us IFFkcm9wcGluZykgPyBsbV9mIDogTlVMTDsKKyAgICAgIGVsc2UKKwkvKiBXaGVuIGRyb3Bw aW5nIGl0IHdvdWxkIGJlIHByb2JhYmx5IG5pY2UgdG8gcmFpc2Ugd19mCisJICAgaGVyZS4g ICovCisJcmV0dXJuIHdfZjsKKyAgICB9Cit9CisKIC8qIEhhbmRsZXMgdGhlIFhFdmVudCBF VkVOVCBvbiBkaXNwbGF5IERQWUlORk8uCiAKICAgICpGSU5JU0ggaXMgWF9FVkVOVF9HT1RP X09VVCBpZiBjYWxsZXIgc2hvdWxkIHN0b3AgcmVhZGluZyBldmVudHMuCkBAIC04NzIwLDE1 ICs4NzYwLDE0IEBAIGhhbmRsZV9vbmVfeGV2ZW50IChzdHJ1Y3QgeF9kaXNwbGF5X2luZm8g KmRweWluZm8sCiAgICAgICAgIHByZXZpb3VzX2hlbHBfZWNob19zdHJpbmcgPSBoZWxwX2Vj aG9fc3RyaW5nOwogICAgICAgICBoZWxwX2VjaG9fc3RyaW5nID0gUW5pbDsKIAotCWYgPSAo Z3VpX21vdXNlX2dyYWJiZWQgKGRweWluZm8pID8gZHB5aW5mby0+bGFzdF9tb3VzZV9mcmFt ZQotCSAgICAgOiB4X3dpbmRvd190b19mcmFtZSAoZHB5aW5mbywgZXZlbnQtPnhtb3Rpb24u d2luZG93KSk7Ci0KLSAgICAgICAgaWYgKGhsaW5mby0+bW91c2VfZmFjZV9oaWRkZW4pCisJ aWYgKGhsaW5mby0+bW91c2VfZmFjZV9oaWRkZW4pCiAgICAgICAgICAgewogICAgICAgICAg ICAgaGxpbmZvLT5tb3VzZV9mYWNlX2hpZGRlbiA9IGZhbHNlOwogICAgICAgICAgICAgY2xl YXJfbW91c2VfZmFjZSAoaGxpbmZvKTsKICAgICAgICAgICB9CiAKKwlmID0gbW91c2Vfb3Jf d2Rlc2NfZnJhbWUgKGRweWluZm8sIGV2ZW50LT54bW90aW9uLndpbmRvdyk7CisKICNpZmRl ZiBVU0VfR1RLCiAgICAgICAgIGlmIChmICYmIHhnX2V2ZW50X2lzX2Zvcl9zY3JvbGxiYXIg KGYsIGV2ZW50KSkKICAgICAgICAgICBmID0gMDsKQEAgLTg5NzAsMzMgKzkwMDksMjcgQEAg aGFuZGxlX29uZV94ZXZlbnQgKHN0cnVjdCB4X2Rpc3BsYXlfaW5mbyAqZHB5aW5mbywKIAlk cHlpbmZvLT5sYXN0X21vdXNlX2dseXBoX2ZyYW1lID0gTlVMTDsKIAl4X2Rpc3BsYXlfc2V0 X2xhc3RfdXNlcl90aW1lIChkcHlpbmZvLCBldmVudC0+eGJ1dHRvbi50aW1lKTsKIAotCWlm IChndWlfbW91c2VfZ3JhYmJlZCAoZHB5aW5mbykpCi0JICBmID0gZHB5aW5mby0+bGFzdF9t b3VzZV9mcmFtZTsKLQllbHNlCisJZiA9IG1vdXNlX29yX3dkZXNjX2ZyYW1lIChkcHlpbmZv LCBldmVudC0+eG1vdGlvbi53aW5kb3cpOworCWlmIChmICYmIGV2ZW50LT54YnV0dG9uLnR5 cGUgPT0gQnV0dG9uUHJlc3MKKwkgICAgJiYgIXBvcHVwX2FjdGl2YXRlZCAoKQorCSAgICAm JiAheF93aW5kb3dfdG9fc2Nyb2xsX2JhciAoZXZlbnQtPnhidXR0b24uZGlzcGxheSwKKwkJ CQkJZXZlbnQtPnhidXR0b24ud2luZG93LCAyKQorCSAgICAmJiAhRlJBTUVfTk9fQUNDRVBU X0ZPQ1VTIChmKSkKIAkgIHsKLQkgICAgZiA9IHhfd2luZG93X3RvX2ZyYW1lIChkcHlpbmZv LCBldmVudC0+eGJ1dHRvbi53aW5kb3cpOworCSAgICAvKiBXaGVuIGNsaWNraW5nIGludG8g YSBjaGlsZCBmcmFtZSBvciB3aGVuIGNsaWNraW5nCisJICAgICAgIGludG8gYSBwYXJlbnQg ZnJhbWUgd2l0aCB0aGUgY2hpbGQgZnJhbWUgc2VsZWN0ZWQgYW5kCisJICAgICAgIGBuby1h Y2NlcHQtZm9jdXMnIGlzIG5vdCBzZXQsIHNlbGVjdCB0aGUgY2xpY2tlZAorCSAgICAgICBm cmFtZS4gICovCisJICAgIHN0cnVjdCBmcmFtZSAqaGYgPSBkcHlpbmZvLT5oaWdobGlnaHRf ZnJhbWU7CiAKLQkgICAgaWYgKGYgJiYgZXZlbnQtPnhidXR0b24udHlwZSA9PSBCdXR0b25Q cmVzcwotCQkmJiAhcG9wdXBfYWN0aXZhdGVkICgpCi0JCSYmICF4X3dpbmRvd190b19zY3Jv bGxfYmFyIChldmVudC0+eGJ1dHRvbi5kaXNwbGF5LAotCQkJCQkgICAgZXZlbnQtPnhidXR0 b24ud2luZG93LCAyKQotCQkmJiAhRlJBTUVfTk9fQUNDRVBUX0ZPQ1VTIChmKSkKKwkgICAg aWYgKEZSQU1FX1BBUkVOVF9GUkFNRSAoZikgfHwgKGhmICYmIGZyYW1lX2FuY2VzdG9yX3Ag KGYsIGhmKSkpCiAJICAgICAgewotCQkvKiBXaGVuIGNsaWNraW5nIGludG8gYSBjaGlsZCBm cmFtZSBvciB3aGVuIGNsaWNraW5nCi0JCSAgIGludG8gYSBwYXJlbnQgZnJhbWUgd2l0aCB0 aGUgY2hpbGQgZnJhbWUgc2VsZWN0ZWQgYW5kCi0JCSAgIGBuby1hY2NlcHQtZm9jdXMnIGlz IG5vdCBzZXQsIHNlbGVjdCB0aGUgY2xpY2tlZAotCQkgICBmcmFtZS4gICovCi0JCXN0cnVj dCBmcmFtZSAqaGYgPSBkcHlpbmZvLT5oaWdobGlnaHRfZnJhbWU7Ci0KLQkJaWYgKEZSQU1F X1BBUkVOVF9GUkFNRSAoZikgfHwgKGhmICYmIGZyYW1lX2FuY2VzdG9yX3AgKGYsIGhmKSkp Ci0JCSAgewotCQkgICAgYmxvY2tfaW5wdXQgKCk7Ci0JCSAgICBYU2V0SW5wdXRGb2N1cyAo RlJBTUVfWF9ESVNQTEFZIChmKSwgRlJBTUVfT1VURVJfV0lORE9XIChmKSwKLQkJCQkgICAg UmV2ZXJ0VG9QYXJlbnQsIEN1cnJlbnRUaW1lKTsKLQkJICAgIGlmIChGUkFNRV9QQVJFTlRf RlJBTUUgKGYpKQotCQkgICAgICBYUmFpc2VXaW5kb3cgKEZSQU1FX1hfRElTUExBWSAoZiks IEZSQU1FX09VVEVSX1dJTkRPVyAoZikpOwotCQkgICAgdW5ibG9ja19pbnB1dCAoKTsKLQkJ ICB9CisJCWJsb2NrX2lucHV0ICgpOworCQlYU2V0SW5wdXRGb2N1cyAoRlJBTUVfWF9ESVNQ TEFZIChmKSwgRlJBTUVfT1VURVJfV0lORE9XIChmKSwKKwkJCQlSZXZlcnRUb1BhcmVudCwg Q3VycmVudFRpbWUpOworCQlpZiAoRlJBTUVfUEFSRU5UX0ZSQU1FIChmKSkKKwkJICBYUmFp c2VXaW5kb3cgKEZSQU1FX1hfRElTUExBWSAoZiksIEZSQU1FX09VVEVSX1dJTkRPVyAoZikp OworCQl1bmJsb2NrX2lucHV0ICgpOwogCSAgICAgIH0KIAkgIH0KIAoK --------------39FE6C27FE5DB683E2477899--