From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#55412: 28.1; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work properly Date: Sun, 15 May 2022 11:28:16 +0200 Message-ID: <3e9955b5-ac61-c4ab-b1a3-c64ab3c3b1a7@gmx.at> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------U1TOTRQrhAsQi4bQPbUlFGBU" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24690"; mail-complaints-to="usenet@ciao.gmane.io" To: tanzer@swing.co.at, 55412@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun May 15 11:29:12 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nqAYq-0006HJ-A8 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 15 May 2022 11:29:12 +0200 Original-Received: from localhost ([::1]:51186 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nqAYo-00054B-Pk for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 15 May 2022 05:29:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48876) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nqAYg-000543-J7 for bug-gnu-emacs@gnu.org; Sun, 15 May 2022 05:29:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54648) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nqAYg-0006uN-A6 for bug-gnu-emacs@gnu.org; Sun, 15 May 2022 05:29:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nqAYg-0002PW-5P for bug-gnu-emacs@gnu.org; Sun, 15 May 2022 05:29:02 -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, 15 May 2022 09:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 55412 X-GNU-PR-Package: emacs Original-Received: via spool by 55412-submit@debbugs.gnu.org id=B55412.16526069189235 (code B ref 55412); Sun, 15 May 2022 09:29:02 +0000 Original-Received: (at 55412) by debbugs.gnu.org; 15 May 2022 09:28:38 +0000 Original-Received: from localhost ([127.0.0.1]:48545 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nqAYH-0002Os-Og for submit@debbugs.gnu.org; Sun, 15 May 2022 05:28:38 -0400 Original-Received: from mout.gmx.net ([212.227.15.19]:35481) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nqAYF-0002Od-6q for 55412@debbugs.gnu.org; Sun, 15 May 2022 05:28:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1652606898; bh=uC4rVpK/KPGfqL2CB3DeNBaZ+xzGubAo66y0xHuG4MQ=; h=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To; b=Q7Z5lVp42buxwHeibtchAxexizKstk5q/7vB9tby1ODyaCQHpdESsD3B6KIunwpjd 3Un5DRGuq1yDgcxkvl8Gli3A0qZUgXZ2GtX6t41Fpn0fVF5kwa0KdXVdhTd/v3Y4gN GfpP6pYApX0CtC4AXBM43bIDvzSCjolMg3DbJviY= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from [192.168.1.101] ([46.125.249.75]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MNbkv-1oF99G2Xn9-00P1Vg; Sun, 15 May 2022 11:28:17 +0200 Content-Language: en-US In-Reply-To: X-Provags-ID: V03:K1:Tlk4J4D3EBOZU35tTkZSTXZnaWB7QpqlOzV/JQ9Ph0xGseMtQFk vYmB9T6E3W10H7tRC/XCunww4StsK/kWwHM9T1XCe3j6e9RnKChSZlHai1G8GcxfoG6EGgi p5G2jhh3XdVN0CLlJKADeWSFI0/UosFrTsuj67jczEVAPc0RkTLbpv+jPx4vNs4J8FVYlFj UU/sVD4Y2++LDDjT63Ghw== X-UI-Out-Filterresults: notjunk:1;V03:K0:1ci3zmohFQ4=:nDD/TyUVCavagMjzZwv8t5 DGkkFOEOaL/XpzwS+bK39ddsePZBJ39lYZphsdJsURkfKu//GVYq1juzOYazUmBakLrqBvJwX HefupVEcykqXJXc1xmnEBMfeGAX1DacdvDrPGf85S3jdaEqMYZIG64uBkXRPFW2vYBYx1ID2l P6knI0PByddySZbUcAN/4eg9obo3cM+7Q4Y4ta78FWRDyTaCkHTP9EEiI9oOal87eZAl2eWW8 YQdCcmU3B3xPbluz6isK+kIpaCXnlmn1IahFyVnIuh7AF7NZ1G3NUmQ/WZjt+He5z4j2Auu/V 0/SPPBudv/3khODn1jD11jI8fbvEb3YwJJRhJKLHiOJoYzSuC34qrhD1x+uO3ehk1KHtFOCFM h5uaCVt1AgBPfHe1gKpP3Ba0JniihSAGSVxVOotFJTHeOs7vGSlop9AYZC/O+QM0uvmaJyZML h5FotSV6+wtJnp20e5oIbIhtiHvG2jP9NjwzLrAnA+R8M+UnNOvOPuEnOwSq6yuxH2swBnIAX Ij6M3Yw1RS2YrJvJdlxiIxHBVEnDXbg9ofqKu4CQ6MB1Q8NyFF2agSs4m95TNE3npGJ0/Yk9z zv3HlfAUzw9YU3q4sAtY9Y8fWGBWQhvY0BANabIc9x2VH3cBB26yPsjsg4dkr7DQJkeCoMWoC DricIKHfzujpj8za484/EfI8sG5R+siO42k14K7qz+gDBLJtiFq7S6l3P9UvqC5u2PFRomjqF 3XqAKtcaQAj7gPJfbXcVfB/YeubITlW8BtS3JhkfaFVuELX+3Rl/977BBhE88izZqOxwVwYg X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:232289 Archived-At: This is a multi-part message in MIME format. --------------U1TOTRQrhAsQi4bQPbUlFGBU Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > ;;; In Emacs 28.1, using ':eval' in 'frame-title-format' doesn't work like it > ;;; used to in Emacs 27 and earlier. In fact, it is completely broken, if one > ;;; uses a frame-parameter in ':eval'. > ;;; > ;;; The following elisp snippet demonstrates the problem in an Emacs 28.1 > ;;; instance started with 'emacs -Q' > > (defun title-suffix () > (cdr (assoc 'title-suffix (frame-parameters (selected-frame))))) > > (defvar title-prefix "Test") > (setq frame-title-format (list title-prefix '(:eval (title-suffix)) " %b")) > > ;;; The original frame should show a frame title of 'Test *scratch*' > (set-frame-parameter (selected-frame) 'title-suffix "") > > ;;; The next frame created should show a frame title of 'Test-xxx *scratch*' > (make-frame-command) > (set-frame-parameter (selected-frame) 'title-suffix "-xxx") > > ;;; The third frame created should show a frame title of 'Test-yyy *scratch*' > (make-frame-command) > (set-frame-parameter (selected-frame) 'title-suffix "-yyy") > > ;;; In Emacs 27 and earlier, that is exactly what happens. Selecting a > ;;; different frame doesn't change the titles of all other frames. > > ;;; In Emacs 28.1, all frames show the same frame title, with the last one > ;;; selected determining which one is shown for the bunch of them. Changing to > ;;; a different frame changes the titles of all frames to the title of the > ;;; newly selected one. Could you try the attached patch? Its purpose is to solve a more general problem in this area and I had to scrape it out from my sources so there are most likely dragons around. But AFAICT it does not exhibit the problem you see, tested with a GNUstep build on old stable Debian. Thanks, martin --------------U1TOTRQrhAsQi4bQPbUlFGBU Content-Type: text/x-patch; charset=UTF-8; name="with-window-selected.diff" Content-Disposition: attachment; filename="with-window-selected.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy93aW5kb3cuYyBiL3NyYy93aW5kb3cuYwppbmRleCBhODdiNDgz NGFhLi43ZjYxNmJjNWFjIDEwMDY0NAotLS0gYS9zcmMvd2luZG93LmMKKysrIGIvc3JjL3dp bmRvdy5jCkBAIC02MDcsNiArNjA3LDEyMSBAQCBzZWxlY3Rfd2luZG93XzEgKExpc3BfT2Jq ZWN0IHdpbmRvdywgYm9vbCBpbmhpYml0X3BvaW50X3N3YXApCiAgIHNldF9wb2ludF9mcm9t X21hcmtlciAoWFdJTkRPVyAod2luZG93KS0+cG9pbnRtKTsKIH0KIAorCisvKiogVGVtcG9y YXJpbHkgc2VsZWN0IGEgd2luZG93IHdpdGggbWluaW11bSBvdmVyaGVhZC4gICovCisKK3N0 YXRpYyBMaXNwX09iamVjdCBWd2l0aF93aW5kb3dfc2VsZWN0ZWRfdmVjdG9yOworCitzdGF0 aWMgTGlzcF9PYmplY3QKK3dpdGhfd2luZG93X3NlbGVjdGVkX3Vud2luZF9kYXRhIChMaXNw X09iamVjdCB3aW5kb3cpCit7CisgIExpc3BfT2JqZWN0IHZlY3RvciwgYnVmZmVyOworICBz dHJ1Y3QgZnJhbWUgKmYgPSBXSU5ET1dfWEZSQU1FIChYV0lORE9XICh3aW5kb3cpKTsKKwor ICB2ZWN0b3IgPSBWd2l0aF93aW5kb3dfc2VsZWN0ZWRfdmVjdG9yOworICBWd2l0aF93aW5k b3dfc2VsZWN0ZWRfdmVjdG9yID0gUW5pbDsKKworICBpZiAoTklMUCAodmVjdG9yKSkKKyAg ICB2ZWN0b3IgPSBtYWtlX25pbF92ZWN0b3IgKDQpOworCisgIC8qIEN1cnJlbnQgYnVmZmVy LiAgVG8gYmUgcmVzdG9yZWQgaWYgc3RpbGwgYWxpdmUuICAqLworICBYU0VUQlVGRkVSIChi dWZmZXIsIGN1cnJlbnRfYnVmZmVyKTsKKyAgQVNFVCAodmVjdG9yLCAwLCBidWZmZXIpOwor ICAvKiBTZWxlY3RlZCB3aW5kb3cuICBUbyBiZSByZXN0b3JlZCBpZiBzdGlsbCBhbGl2ZS4g ICovCisgIEFTRVQgKHZlY3RvciwgMSwgc2VsZWN0ZWRfd2luZG93KTsKKyAgLyogU2VsZWN0 ZWQgd2luZG93IG9mIFdJTkRPVydzIGZyYW1lLiAgVG8gYmUgcmVzdG9yZWQgaWYgc3RpbGwK KyAgICAgYWxpdmUuICAqLworICBBU0VUICh2ZWN0b3IsIDIsIGYtPnNlbGVjdGVkX3dpbmRv dyk7CisgIC8qIEZvciBhIFRUWSBmcmFtZSBzYXZlIGl0cyB0b3AtZnJhbWUuICBUbyBiZSBy ZXN0b3JlZCBpZiBzdGlsbAorICAgICBhbGl2ZS4gICovCisgIGlmIChGUkFNRV9URVJNQ0FQ X1AgKGYpIHx8IEZSQU1FX01TRE9TX1AgKGYpKQorICAgIEFTRVQgKHZlY3RvciwgMywgRlJB TUVfVFRZIChmKS0+dG9wX2ZyYW1lKTsKKyAgZWxzZQorICAgIEFTRVQgKHZlY3RvciwgMywg UW5pbCk7CisKKyAgcmV0dXJuIHZlY3RvcjsKK30KKworCitzdGF0aWMgdm9pZAordW53aW5k X3dpdGhfd2luZG93X3NlbGVjdGVkIChMaXNwX09iamVjdCB2ZWN0b3IpCit7CisgIExpc3Bf T2JqZWN0IGJ1ZmZlciA9IEFSRUYgKHZlY3RvciwgMCk7CisgIExpc3BfT2JqZWN0IHdpbmRv dyA9IEFSRUYgKHZlY3RvciwgMSk7CisgIExpc3BfT2JqZWN0IGZyYW1lX3NlbGVjdGVkX3dp bmRvdyA9IEFSRUYgKHZlY3RvciwgMik7CisgIExpc3BfT2JqZWN0IHRvcF9mcmFtZSA9IEFS RUYgKHZlY3RvciwgMyk7CisKKyAgLyogUmVzdG9yZSB0aGluZ3MgaWZmIHRoZSB3aW5kb3cg aXMgc3RpbGwgYWxpdmUuICAqLworICBpZiAoV0lORE9XX0xJVkVfUCAod2luZG93KSkKKyAg ICB7CisgICAgICBzdHJ1Y3Qgd2luZG93ICp3ID0gWFdJTkRPVyAod2luZG93KTsKKyAgICAg IExpc3BfT2JqZWN0IGZyYW1lID0gV0lORE9XX0ZSQU1FICh3KTsKKyAgICAgIHN0cnVjdCBm cmFtZSAqZiA9IFhGUkFNRSAoZnJhbWUpOworCisgICAgICAvKiBSZXN0b3JlIHRoZSBmcmFt ZSdzIHNlbGVjdGVkIHdpbmRvdyBpZiBpdCdzIHN0aWxsIGFsaXZlLiAgKi8KKyAgICAgIGlm IChXSU5ET1dfTElWRV9QIChmcmFtZV9zZWxlY3RlZF93aW5kb3cpKQorCVdJTkRPV19YRlJB TUUgKFhXSU5ET1cgKGZyYW1lX3NlbGVjdGVkX3dpbmRvdykpLT5zZWxlY3RlZF93aW5kb3cK KwkgID0gZnJhbWVfc2VsZWN0ZWRfd2luZG93OworCisgICAgICAvKiBNYWtlIHctPmNvbnRl bnRzIGN1cnJlbnQgYmVmb3JlIGNhbGxpbmcgc2VsZWN0X3dpbmRvd18xIGJlY2F1c2UKKwkg dGhlIGxhdHRlciBzZXRzIFBUIGZyb20gdy0+cG9pbnRtLiAgKi8KKyAgICAgIHNldF9idWZm ZXJfaW50ZXJuYWxfMSAoWEJVRkZFUiAody0+Y29udGVudHMpKTsKKyAgICAgIHNlbGVjdF93 aW5kb3dfMSAod2luZG93LCBmYWxzZSk7CisKKyAgICAgIGlmIChGUkFNRVAgKHRvcF9mcmFt ZSkgJiYgRlJBTUVfTElWRV9QIChYRlJBTUUgKHRvcF9mcmFtZSkpKQorCXNlbGVjdGVkX2Zy YW1lID0gdG9wX2ZyYW1lOworICAgICAgZWxzZQorCXNlbGVjdGVkX2ZyYW1lID0gZnJhbWU7 CisKKyAgICAgIGYtPnNlbGVjdGVkX3dpbmRvdyA9IHdpbmRvdzsKKyAgICB9CisKKyAgLyog UmVzdG9yZSBjdXJyZW50IGJ1ZmZlciBpZiBpdCdzIHN0aWxsIGFsaXZlLiAgKi8KKyAgaWYg KEJVRkZFUl9MSVZFX1AgKFhCVUZGRVIgKGJ1ZmZlcikpKQorICAgIHNldF9idWZmZXJfaW50 ZXJuYWxfMSAoWEJVRkZFUiAoYnVmZmVyKSk7CisKKyAgVndpdGhfd2luZG93X3NlbGVjdGVk X3ZlY3RvciA9IHZlY3RvcjsKK30KKworCisvKiogIENhbm9uaWNhbCBmb3JtIHRvIHJ1biBz b21ldGhpbmcgd2l0aCBXSU5ET1cgdGVtcG9yYXJpbHkgc2VsZWN0ZWQuCisgICAgIE5vdGU6 IFRoaXMgZG9lcyBub3QgcG9wIHRoZSB1bndpbmQtcHJvdGVjdCBzdGFjayBhbmQgc3Vic2Vx dWVudGx5CisgICAgIGNhbGwgdW53aW5kX3dpdGhfd2luZG93X3NlbGVjdGVkLiAgQ2FsbGVy cyBoYXZlIHRvIHByb3ZpZGUgdGhlCisgICAgIGNvcnJlc3BvbmRpbmcgdW5iaW5kX3RvIGZv cm0gdGhlbXNlbHZlcy4gICoqLwordm9pZAord2l0aF93aW5kb3dfc2VsZWN0ZWQgKExpc3Bf T2JqZWN0IHdpbmRvdykKK3sKKyAgaWYgKCFFUSAod2luZG93LCBzZWxlY3RlZF93aW5kb3cp CisgICAgICB8fCBjdXJyZW50X2J1ZmZlciAhPSBYQlVGRkVSIChYV0lORE9XIChzZWxlY3Rl ZF93aW5kb3cpLT5jb250ZW50cykpCisgICAgeworICAgICAgc3RydWN0IHdpbmRvdyAqdyA9 IFhXSU5ET1cgKHdpbmRvdyk7CisgICAgICBMaXNwX09iamVjdCBmcmFtZSA9IFdJTkRPV19G UkFNRSAodyk7CisgICAgICBzdHJ1Y3QgZnJhbWUgKmYgPSBYRlJBTUUgKGZyYW1lKTsKKyAg ICAgIHN0cnVjdCB3aW5kb3cgKm93ID0gWFdJTkRPVyAoc2VsZWN0ZWRfd2luZG93KTsKKwor ICAgICAgcmVjb3JkX3Vud2luZF9wcm90ZWN0ICh1bndpbmRfd2l0aF93aW5kb3dfc2VsZWN0 ZWQsCisJCQkgICAgIHdpdGhfd2luZG93X3NlbGVjdGVkX3Vud2luZF9kYXRhICh3aW5kb3cp KTsKKworICAgICAgc2V0X2J1ZmZlcl9pbnRlcm5hbF8xIChYQlVGRkVSICh3LT5jb250ZW50 cykpOworCisgICAgICBpZiAoQlVGRkVSUCAob3ctPmNvbnRlbnRzKSkKKwlzZXRfbWFya2Vy X2JvdGggKG93LT5wb2ludG0sIG93LT5jb250ZW50cywKKwkJCSBCVUZfUFQgKFhCVUZGRVIg KG93LT5jb250ZW50cykpLAorCQkJIEJVRl9QVF9CWVRFIChYQlVGRkVSIChvdy0+Y29udGVu dHMpKSk7CisKKyAgICAgIHNlbGVjdGVkX3dpbmRvdyA9IHdpbmRvdzsKKworICAgICAgaWYg KCFOSUxQIChYV0lORE9XICh3aW5kb3cpLT5wb2ludG0pKQorCXNldF9wb2ludF9mcm9tX21h cmtlciAoWFdJTkRPVyAod2luZG93KS0+cG9pbnRtKTsKKworICAgICAgc2VsZWN0ZWRfZnJh bWUgPSBmcmFtZTsKKyAgICAgIGYtPnNlbGVjdGVkX3dpbmRvdyA9IHdpbmRvdzsKKyAgICAg IGlmIChGUkFNRV9URVJNQ0FQX1AgKGYpIHx8IEZSQU1FX01TRE9TX1AgKGYpKQorCUZSQU1F X1RUWSAoZiktPnRvcF9mcmFtZSA9IGZyYW1lOworICAgIH0KK30KKworCiBERUZVTiAoInNl bGVjdC13aW5kb3ciLCBGc2VsZWN0X3dpbmRvdywgU3NlbGVjdF93aW5kb3csIDEsIDIsIDAs CiAgICAgICAgZG9jOiAvKiBTZWxlY3QgV0lORE9XIHdoaWNoIG11c3QgYmUgYSBsaXZlIHdp bmRvdy4KIEFsc28gbWFrZSBXSU5ET1cncyBmcmFtZSB0aGUgc2VsZWN0ZWQgZnJhbWUgYW5k IFdJTkRPVyB0aGF0IGZyYW1lJ3MKQEAgLTgxNTEsNiArODI2Niw5IEBAIGluaXRfd2luZG93 X29uY2UgKHZvaWQpCiAgIG1pbmlidWZfc2VsZWN0ZWRfd2luZG93ID0gUW5pbDsKICAgc3Rh dGljcHJvICgmbWluaWJ1Zl9zZWxlY3RlZF93aW5kb3cpOwogCisgIFZ3aXRoX3dpbmRvd19z ZWxlY3RlZF92ZWN0b3IgPSBRbmlsOworICBzdGF0aWNwcm8gKCZWd2l0aF93aW5kb3dfc2Vs ZWN0ZWRfdmVjdG9yKTsKKwogICBwZHVtcGVyX2RvX25vd19hbmRfYWZ0ZXJfbGF0ZV9sb2Fk IChpbml0X3dpbmRvd19vbmNlX2Zvcl9wZHVtcGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3Jj L3dpbmRvdy5oIGIvc3JjL3dpbmRvdy5oCmluZGV4IDdmN2RlNTg4NDYuLjY3ZjRiYmQ5ZTAg MTAwNjQ0Ci0tLSBhL3NyYy93aW5kb3cuaAorKysgYi9zcmMvd2luZG93LmgKQEAgLTExOTIs NiArMTE5Miw3IEBAICNkZWZpbmUgQ0hFQ0tfTElWRV9XSU5ET1coV0lORE9XKQkJCQlcCiBl eHRlcm4gdm9pZCB0ZW1wX291dHB1dF9idWZmZXJfc2hvdyAoTGlzcF9PYmplY3QpOwogZXh0 ZXJuIHZvaWQgcmVwbGFjZV9idWZmZXJfaW5fd2luZG93cyAoTGlzcF9PYmplY3QpOwogZXh0 ZXJuIHZvaWQgcmVwbGFjZV9idWZmZXJfaW5fd2luZG93c19zYWZlbHkgKExpc3BfT2JqZWN0 KTsKK2V4dGVybiB2b2lkIHdpdGhfd2luZG93X3NlbGVjdGVkIChMaXNwX09iamVjdCk7CiAv KiBUaGlzIGxvb2tzIGxpa2UgYSBzZXR0ZXIsIGJ1dCBpdCBpcyBhIGJpdCBzcGVjaWFsLiAg Ki8KIGV4dGVybiB2b2lkIHdzZXRfYnVmZmVyIChzdHJ1Y3Qgd2luZG93ICosIExpc3BfT2Jq ZWN0KTsKIGV4dGVybiBib29sIHdpbmRvd19vdXRkYXRlZCAoc3RydWN0IHdpbmRvdyAqKTsK ZGlmZiAtLWdpdCBhL3NyYy94ZGlzcC5jIGIvc3JjL3hkaXNwLmMKaW5kZXggNWZmNTRiMjg4 NC4uODQwNDM3Zjc2YSAxMDA2NDQKLS0tIGEvc3JjL3hkaXNwLmMKKysrIGIvc3JjL3hkaXNw LmMKQEAgLTEyOTY3LDIwICsxMjk2NywxNyBAQCAjZGVmaW5lIE1PREVfTElORV9OT1BST1Bf TEVOKHN0YXJ0KSBcCiBzdGF0aWMgTGlzcF9PYmplY3QgVm1vZGVfbGluZV91bndpbmRfdmVj dG9yOwogCiBzdGF0aWMgTGlzcF9PYmplY3QKLWZvcm1hdF9tb2RlX2xpbmVfdW53aW5kX2Rh dGEgKHN0cnVjdCBmcmFtZSAqdGFyZ2V0X2ZyYW1lLAotCQkJICAgICAgc3RydWN0IGJ1ZmZl ciAqb2J1ZiwKLQkJCSAgICAgIExpc3BfT2JqZWN0IG93aW4sCi0JCQkgICAgICBib29sIHNh dmVfcHJvcHRyYW5zKQorZm9ybWF0X21vZGVfbGluZV91bndpbmRfZGF0YSAoYm9vbCBzYXZl X3Byb3B0cmFucykKIHsKLSAgTGlzcF9PYmplY3QgdmVjdG9yLCB0bXA7CisgIExpc3BfT2Jq ZWN0IHZlY3RvcjsKIAogICAvKiBSZWR1Y2UgY29uc2luZyBieSBrZWVwaW5nIG9uZSB2ZWN0 b3IgaW4KLSAgICAgVndpdGhfZWNob19hcmVhX3NhdmVfdmVjdG9yLiAgKi8KKyAgICAgVm1v ZGVfbGluZV91bndpbmRfdmVjdG9yLiAgKi8KICAgdmVjdG9yID0gVm1vZGVfbGluZV91bndp bmRfdmVjdG9yOwogICBWbW9kZV9saW5lX3Vud2luZF92ZWN0b3IgPSBRbmlsOwogCiAgIGlm IChOSUxQICh2ZWN0b3IpKQotICAgIHZlY3RvciA9IG1ha2VfbmlsX3ZlY3RvciAoMTIpOwor ICAgIHZlY3RvciA9IG1ha2VfbmlsX3ZlY3RvciAoNik7CiAKICAgQVNFVCAodmVjdG9yLCAw LCBtYWtlX2ZpeG51bSAobW9kZV9saW5lX3RhcmdldCkpOwogICBBU0VUICh2ZWN0b3IsIDEs IG1ha2VfZml4bnVtIChNT0RFX0xJTkVfTk9QUk9QX0xFTiAoMCkpKTsKQEAgLTEyOTg5LDQ0 ICsxMjk4NiwxMiBAQCBmb3JtYXRfbW9kZV9saW5lX3Vud2luZF9kYXRhIChzdHJ1Y3QgZnJh bWUgKnRhcmdldF9mcmFtZSwKICAgQVNFVCAodmVjdG9yLCA0LCBtb2RlX2xpbmVfc3RyaW5n X2ZhY2UpOwogICBBU0VUICh2ZWN0b3IsIDUsIG1vZGVfbGluZV9zdHJpbmdfZmFjZV9wcm9w KTsKIAotICBpZiAob2J1ZikKLSAgICBYU0VUQlVGRkVSICh0bXAsIG9idWYpOwotICBlbHNl Ci0gICAgdG1wID0gUW5pbDsKLSAgQVNFVCAodmVjdG9yLCA2LCB0bXApOwotICBBU0VUICh2 ZWN0b3IsIDcsIG93aW4pOwotICBpZiAodGFyZ2V0X2ZyYW1lKQotICAgIHsKLSAgICAgIExp c3BfT2JqZWN0IGJ1ZmZlciA9IFhXSU5ET1cgKHRhcmdldF9mcmFtZS0+c2VsZWN0ZWRfd2lu ZG93KS0+Y29udGVudHM7Ci0gICAgICBzdHJ1Y3QgYnVmZmVyICpiID0gWEJVRkZFUiAoYnVm ZmVyKTsKLSAgICAgIHN0cnVjdCBidWZmZXIgKmNiID0gY3VycmVudF9idWZmZXI7Ci0KLSAg ICAgIC8qIFNpbWlsYXJseSB0byBgd2l0aC1zZWxlY3RlZC13aW5kb3cnLCBpZiB0aGUgb3Bl cmF0aW9uIHNlbGVjdHMKLQkgYSB3aW5kb3cgb24gYW5vdGhlciBmcmFtZSwgd2UgbXVzdCBy ZXN0b3JlIHRoYXQgZnJhbWUncwotCSBzZWxlY3RlZCB3aW5kb3csIGFuZCAoZm9yIGEgdHR5 KSB0aGUgdG9wLWZyYW1lLiAgKi8KLSAgICAgIEFTRVQgKHZlY3RvciwgOCwgdGFyZ2V0X2Zy YW1lLT5zZWxlY3RlZF93aW5kb3cpOwotICAgICAgaWYgKEZSQU1FX1RFUk1DQVBfUCAodGFy Z2V0X2ZyYW1lKSkKLQlBU0VUICh2ZWN0b3IsIDksIEZSQU1FX1RUWSAodGFyZ2V0X2ZyYW1l KS0+dG9wX2ZyYW1lKTsKLQotICAgICAgLyogSWYgd2Ugc2VsZWN0IGEgd2luZG93IG9uIGFu b3RoZXIgZnJhbWUsIG1ha2Ugc3VyZSB0aGF0IHRoYXQKLQkgc2VsZWN0aW9uIGRvZXMgbm90 IGxlYXZlIGl0cyBidWZmZXIncyBwb2ludCBtb2RpZmllZCB3aGVuCi0JIHVud2luZGluZyAo QnVnIzMyNzc3KS4gICovCi0gICAgICBBU0VUICh2ZWN0b3IsIDEwLCBidWZmZXIpOwotICAg ICAgY3VycmVudF9idWZmZXIgPSBiOwotICAgICAgQVNFVCAodmVjdG9yLCAxMSwgYnVpbGRf bWFya2VyIChjdXJyZW50X2J1ZmZlciwgUFQsIFBUX0JZVEUpKTsKLSAgICAgIGN1cnJlbnRf YnVmZmVyID0gY2I7Ci0gICAgfQotCiAgIHJldHVybiB2ZWN0b3I7CiB9CiAKIHN0YXRpYyB2 b2lkCiB1bndpbmRfZm9ybWF0X21vZGVfbGluZSAoTGlzcF9PYmplY3QgdmVjdG9yKQogewot ICBMaXNwX09iamVjdCBvbGRfd2luZG93ID0gQVJFRiAodmVjdG9yLCA3KTsKLSAgTGlzcF9P YmplY3QgdGFyZ2V0X2ZyYW1lX3dpbmRvdyA9IEFSRUYgKHZlY3RvciwgOCk7Ci0gIExpc3Bf T2JqZWN0IG9sZF90b3BfZnJhbWUgPSBBUkVGICh2ZWN0b3IsIDkpOwotCiAgIG1vZGVfbGlu ZV90YXJnZXQgPSBYRklYTlVNIChBUkVGICh2ZWN0b3IsIDApKTsKICAgbW9kZV9saW5lX25v cHJvcF9wdHIgPSBtb2RlX2xpbmVfbm9wcm9wX2J1ZiArIFhGSVhOVU0gKEFSRUYgKHZlY3Rv ciwgMSkpOwogICBtb2RlX2xpbmVfc3RyaW5nX2xpc3QgPSBBUkVGICh2ZWN0b3IsIDIpOwpA QCAtMTMwMzUsNTUgKzEzMDAwLDkgQEAgdW53aW5kX2Zvcm1hdF9tb2RlX2xpbmUgKExpc3Bf T2JqZWN0IHZlY3RvcikKICAgbW9kZV9saW5lX3N0cmluZ19mYWNlID0gQVJFRiAodmVjdG9y LCA0KTsKICAgbW9kZV9saW5lX3N0cmluZ19mYWNlX3Byb3AgPSBBUkVGICh2ZWN0b3IsIDUp OwogCi0gIC8qIFNlbGVjdCB3aW5kb3cgYmVmb3JlIGJ1ZmZlciwgc2luY2UgaXQgbWF5IGNo YW5nZSB0aGUgYnVmZmVyLiAgKi8KLSAgaWYgKFdJTkRPV19MSVZFX1AgKG9sZF93aW5kb3cp KQotICAgIHsKLSAgICAgIC8qIElmIHRoZSBvcGVyYXRpb24gdGhhdCB3ZSBhcmUgdW53aW5k aW5nIGhhZCBzZWxlY3RlZCBhIHdpbmRvdwotCSBvbiBhIGRpZmZlcmVudCBmcmFtZSwgcmVz ZXQgaXRzIGZyYW1lLXNlbGVjdGVkLXdpbmRvdy4gIEZvciBhCi0JIHRleHQgdGVybWluYWws IHJlc2V0IGl0cyB0b3AtZnJhbWUgaWYgbmVjZXNzYXJ5LiAgKi8KLSAgICAgIGlmIChXSU5E T1dfTElWRV9QICh0YXJnZXRfZnJhbWVfd2luZG93KSkKLQl7Ci0JICBMaXNwX09iamVjdCBm cmFtZQotCSAgICA9IFdJTkRPV19GUkFNRSAoWFdJTkRPVyAodGFyZ2V0X2ZyYW1lX3dpbmRv dykpOwotCi0JICBpZiAoIUVRIChmcmFtZSwgV0lORE9XX0ZSQU1FIChYV0lORE9XIChvbGRf d2luZG93KSkpKQotCSAgICBGc2VsZWN0X3dpbmRvdyAodGFyZ2V0X2ZyYW1lX3dpbmRvdywg UXQpOwotCi0JICBpZiAoIU5JTFAgKG9sZF90b3BfZnJhbWUpICYmICFFUSAob2xkX3RvcF9m cmFtZSwgZnJhbWUpKQotCSAgICBGc2VsZWN0X2ZyYW1lIChvbGRfdG9wX2ZyYW1lLCBRdCk7 Ci0JfQotCi0gICAgICBGc2VsZWN0X3dpbmRvdyAob2xkX3dpbmRvdywgUXQpOwotCi0gICAg ICAvKiBSZXN0b3JlIHBvaW50IG9mIHRhcmdldF9mcmFtZV93aW5kb3cncyBidWZmZXIgKEJ1 ZyMzMjc3NykuCi0JIEJ1dCBkbyB0aGlzIG9ubHkgYWZ0ZXIgb2xkX3dpbmRvdyBoYXMgYmVl biByZXNlbGVjdGVkIHRvCi0JIGF2b2lkIHRoYXQgdGhlIHdpbmRvdyBwb2ludCBvZiB0YXJn ZXRfZnJhbWVfd2luZG93IG1vdmVzLiAgKi8KLSAgICAgIGlmIChXSU5ET1dfTElWRV9QICh0 YXJnZXRfZnJhbWVfd2luZG93KSkKLQl7Ci0JICBMaXNwX09iamVjdCBidWZmZXIgPSBBUkVG ICh2ZWN0b3IsIDEwKTsKLQotCSAgaWYgKEJVRkZFUl9MSVZFX1AgKFhCVUZGRVIgKGJ1ZmZl cikpKQotCSAgICB7Ci0JICAgICAgc3RydWN0IGJ1ZmZlciAqY2IgPSBjdXJyZW50X2J1ZmZl cjsKLQotCSAgICAgIGN1cnJlbnRfYnVmZmVyID0gWEJVRkZFUiAoYnVmZmVyKTsKLQkgICAg ICBzZXRfcG9pbnRfZnJvbV9tYXJrZXIgKEFSRUYgKHZlY3RvciwgMTEpKTsKLQkgICAgICBB U0VUICh2ZWN0b3IsIDExLCBRbmlsKTsKLQkgICAgICBjdXJyZW50X2J1ZmZlciA9IGNiOwot CSAgICB9Ci0JfQotICAgIH0KLQotICBpZiAoIU5JTFAgKEFSRUYgKHZlY3RvciwgNikpKQot ICAgIHsKLSAgICAgIHNldF9idWZmZXJfaW50ZXJuYWxfMSAoWEJVRkZFUiAoQVJFRiAodmVj dG9yLCA2KSkpOwotICAgICAgQVNFVCAodmVjdG9yLCA2LCBRbmlsKTsKLSAgICB9Ci0KICAg Vm1vZGVfbGluZV91bndpbmRfdmVjdG9yID0gdmVjdG9yOwogfQogCi0KIC8qIFN0b3JlIGEg c2luZ2xlIGNoYXJhY3RlciBDIGZvciB0aGUgZnJhbWUgdGl0bGUgaW4gbW9kZV9saW5lX25v cHJvcF9idWYuCiAgICBSZS1hbGxvY2F0ZSBtb2RlX2xpbmVfbm9wcm9wX2J1ZiBpZiBuZWNl c3NhcnkuICAqLwogCkBAIC0xMzE5NSwxNSArMTMxMTQsMTEgQEAgZ3VpX2NvbnNpZGVyX2Zy YW1lX3RpdGxlIChMaXNwX09iamVjdCBmcmFtZSkKIAkgQnVnIzM0MzE3LiAgKi8KICAgICAg IHNwZWNiaW5kIChRaW5oaWJpdF9yZWRpc3BsYXksIFF0KTsKIAotICAgICAgLyogU3dpdGNo IHRvIHRoZSBidWZmZXIgb2Ygc2VsZWN0ZWQgd2luZG93IG9mIHRoZSBmcmFtZS4gIFNldCB1 cAotCSBtb2RlX2xpbmVfdGFyZ2V0IHNvIHRoYXQgZGlzcGxheV9tb2RlX2VsZW1lbnQgd2ls bCBvdXRwdXQgaW50bwotCSBtb2RlX2xpbmVfbm9wcm9wX2J1ZjsgdGhlbiBkaXNwbGF5IHRo ZSB0aXRsZS4gICovCisgICAgICB3aXRoX3dpbmRvd19zZWxlY3RlZCAoZi0+c2VsZWN0ZWRf d2luZG93KTsKKwogICAgICAgcmVjb3JkX3Vud2luZF9wcm90ZWN0ICh1bndpbmRfZm9ybWF0 X21vZGVfbGluZSwKLQkJCSAgICAgZm9ybWF0X21vZGVfbGluZV91bndpbmRfZGF0YQotCQkJ ICAgICAoTlVMTCwgY3VycmVudF9idWZmZXIsIFFuaWwsIGZhbHNlKSk7CisJCQkgICAgIGZv cm1hdF9tb2RlX2xpbmVfdW53aW5kX2RhdGEgKGZhbHNlKSk7CiAKLSAgICAgIHNldF9idWZm ZXJfaW50ZXJuYWxfMQotCShYQlVGRkVSIChYV0lORE9XIChmLT5zZWxlY3RlZF93aW5kb3cp LT5jb250ZW50cykpOwogICAgICAgZm10ID0gRlJBTUVfSUNPTklGSUVEX1AgKGYpID8gVmlj b25fdGl0bGVfZm9ybWF0IDogVmZyYW1lX3RpdGxlX2Zvcm1hdDsKIAogICAgICAgbW9kZV9s aW5lX3RhcmdldCA9IE1PREVfTElORV9USVRMRTsKQEAgLTEzNDk3LDY5ICsxMzQxMiw2IEBA IHVwZGF0ZV9tZW51X2JhciAoc3RydWN0IGZyYW1lICpmLCBib29sIHNhdmVfbWF0Y2hfZGF0 YSwgYm9vbCBob29rc19ydW4pCiAJCQkgICAgICAgVGFiLWJhcnMKICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KIAotLyogUmVzdG9yZSBXSU5ET1cgYXMgdGhlIHNlbGVjdGVkIHdpbmRvdyBhbmQg aXRzIGZyYW1lIGFzIHRoZSBzZWxlY3RlZAotICAgZnJhbWUuICBJZiBXSU5ET1cgaXMgZGVh ZCBidXQgdGhlIHNlbGVjdGVkIGZyYW1lIGlzIGxpdmUsIG1ha2UgdGhlCi0gICBsYXR0ZXIn cyBzZWxlY3RlZCB3aW5kb3cgdGhlIHNlbGVjdGVkIHdpbmRvdy4gIElmIGJvdGgsIFdJTkRP VyBhbmQKLSAgIHRoZSBzZWxlY3RlZCBmcmFtZSwgYXJlIGRlYWQsIGFzc2lnbiBzZWxlY3Rl ZCBmcmFtZSBhbmQgd2luZG93IGZyb20KLSAgIHNvbWUgYXJiaXRyYXJ5IGxpdmUgZnJhbWUu ICBBYm9ydCBpZiBubyBzdWNoIGZyYW1lIGNhbiBiZSBmb3VuZC4gICovCi1zdGF0aWMgdm9p ZAotcmVzdG9yZV9zZWxlY3RlZF93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdykKLXsKLSAg aWYgKFdJTkRPV19MSVZFX1AgKHdpbmRvdykpCi0gICAgLyogSWYgV0lORE9XIGlzIGxpdmUs IG1ha2UgaXQgdGhlIHNlbGVjdGVkIHdpbmRvdyBhbmQgaXRzIGZyYW1lJ3MKLSAgICAgICBz ZWxlY3RlZCB3aW5kb3cgYW5kIHNldCB0aGUgc2VsZWN0ZWQgZnJhbWUgdG8gaXRzIGZyYW1l LiAgKi8KLSAgICB7Ci0gICAgICBzZWxlY3RlZF93aW5kb3cgPSB3aW5kb3c7Ci0gICAgICBz ZWxlY3RlZF9mcmFtZSA9IFhXSU5ET1cgKHdpbmRvdyktPmZyYW1lOwotICAgICAgRlJBTUVf U0VMRUNURURfV0lORE9XIChYRlJBTUUgKHNlbGVjdGVkX2ZyYW1lKSkgPSB3aW5kb3c7Ci0g ICAgfQotICBlbHNlIGlmIChGUkFNRVAgKHNlbGVjdGVkX2ZyYW1lKSAmJiBGUkFNRV9MSVZF X1AgKFhGUkFNRSAoc2VsZWN0ZWRfZnJhbWUpKSkKLSAgICAvKiBJZiBXSU5ET1cgaXMgZGVh ZCBidXQgdGhlIHNlbGVjdGVkIGZyYW1lIGlzIHN0aWxsIGxpdmUsIG1ha2UgdGhlCi0gICAg ICAgbGF0dGVyJ3Mgc2VsZWN0ZWQgd2luZG93IHRoZSBzZWxlY3RlZCBvbmUuICAqLwotICAg IHNlbGVjdGVkX3dpbmRvdyA9IEZSQU1FX1NFTEVDVEVEX1dJTkRPVyAoWEZSQU1FIChzZWxl Y3RlZF9mcmFtZSkpOwotICBlbHNlCi0gICAgLyogSWYgV0lORE9XIGFuZCB0aGUgc2VsZWN0 ZWQgZnJhbWUgYXJlIGRlYWQsIGNob29zZSBzb21lIGxpdmUsCi0gICAgICAgbm9uLWNoaWxk IGFuZCBub24tdG9vbHRpcCBmcmFtZSBhcyB0aGUgbmV3IHNlbGVjdGVkIGZyYW1lIGFuZAot ICAgICAgIG1ha2UgaXRzIHNlbGVjdGVkIHdpbmRvdyB0aGUgc2VsZWN0ZWQgd2luZG93LiAg Ki8KLSAgICB7Ci0gICAgICBMaXNwX09iamVjdCB0YWlsOwotICAgICAgTGlzcF9PYmplY3Qg ZnJhbWUgVU5JTklUOwotCi0gICAgICBGT1JfRUFDSF9GUkFNRSAodGFpbCwgZnJhbWUpCi0J ewotCSAgc3RydWN0IGZyYW1lICpmID0gWEZSQU1FIChmcmFtZSk7Ci0KLQkgIGlmICghRlJB TUVfUEFSRU5UX0ZSQU1FIChmKSAmJiAhRlJBTUVfVE9PTFRJUF9QIChmKSkKLQkgICAgewot CSAgICAgIHNlbGVjdGVkX2ZyYW1lID0gZnJhbWU7Ci0JICAgICAgc2VsZWN0ZWRfd2luZG93 ID0gRlJBTUVfU0VMRUNURURfV0lORE9XIChmKTsKLQotCSAgICAgIHJldHVybjsKLQkgICAg fQotCX0KLQotICAgICAgLyogQWJvcnQgaWYgd2UgY2Fubm90IGZpbmQgYSBsaXZlIGZyYW1l LiAgKi8KLSAgICAgIGVtYWNzX2Fib3J0ICgpOwotICAgIH0KLX0KLQotLyogUmVzdG9yZSBX SU5ET1csIGlmIGxpdmUsIGFzIGl0cyBmcmFtZSdzIHNlbGVjdGVkIHdpbmRvdy4gICovCi1z dGF0aWMgdm9pZAotcmVzdG9yZV9mcmFtZV9zZWxlY3RlZF93aW5kb3cgKExpc3BfT2JqZWN0 IHdpbmRvdykKLXsKLSAgaWYgKFdJTkRPV19MSVZFX1AgKHdpbmRvdykpCi0gICAgLyogSWYg V0lORE9XIGlzIGxpdmUsIG1ha2UgaXQgaXRzIGZyYW1lJ3Mgc2VsZWN0ZWQgd2luZG93LiAg SWYgdGhhdAotICAgICAgIGZyYW1lIGlzIHRoZSBzZWxlY3RlZCBmcmFtZSwgbWFrZSBXSU5E T1cgdGhlIHNlbGVjdGVkIHdpbmRvdyBhcwotICAgICAgIHdlbGwuICAqLwotICAgIHsKLSAg ICAgIExpc3BfT2JqZWN0IGZyYW1lID0gWFdJTkRPVyAod2luZG93KS0+ZnJhbWU7Ci0KLSAg ICAgIEZSQU1FX1NFTEVDVEVEX1dJTkRPVyAoWEZSQU1FIChmcmFtZSkpID0gd2luZG93Owot ICAgICAgaWYgKEVRIChmcmFtZSwgc2VsZWN0ZWRfZnJhbWUpKQotCXNlbGVjdGVkX3dpbmRv dyA9IHdpbmRvdzsKLSAgICB9Ci19Ci0KIC8qIFVwZGF0ZSB0aGUgdGFiLWJhciBpdGVtIGxp c3QgZm9yIGZyYW1lIEYuICBUaGlzIGhhcyB0byBiZSBkb25lCiAgICBiZWZvcmUgd2Ugc3Rh cnQgdG8gZmlsbCBpbiBhbnkgZGlzcGxheSBsaW5lcy4gIENhbGxlZCBmcm9tCiAgICBwcmVw YXJlX21lbnVfYmFycy4gIElmIFNBVkVfTUFUQ0hfREFUQSwgd2UgbXVzdCBzYXZlCkBAIC0x MzU4MiwxMSArMTM0MzQsOCBAQCB1cGRhdGVfdGFiX2JhciAoc3RydWN0IGZyYW1lICpmLCBi b29sIHNhdmVfbWF0Y2hfZGF0YSkKIAogICBpZiAoZG9fdXBkYXRlKQogICAgIHsKLSAgICAg IExpc3BfT2JqZWN0IHdpbmRvdzsKLSAgICAgIHN0cnVjdCB3aW5kb3cgKnc7Ci0KLSAgICAg IHdpbmRvdyA9IEZSQU1FX1NFTEVDVEVEX1dJTkRPVyAoZik7Ci0gICAgICB3ID0gWFdJTkRP VyAod2luZG93KTsKKyAgICAgIExpc3BfT2JqZWN0IHdpbmRvdyA9IEZSQU1FX1NFTEVDVEVE X1dJTkRPVyAoZik7CisgICAgICBzdHJ1Y3Qgd2luZG93ICp3ID0gWFdJTkRPVyAod2luZG93 KTsKIAogICAgICAgLyogSWYgdGhlIHVzZXIgaGFzIHN3aXRjaGVkIGJ1ZmZlcnMgb3Igd2lu ZG93cywgd2UgbmVlZCB0bwogCSByZWNvbXB1dGUgdG8gcmVmbGVjdCB0aGUgbmV3IGJpbmRp bmdzLiAgQnV0IHdlJ2xsCkBAIC0xMzYwMCwxNiArMTM0NDksMTAgQEAgdXBkYXRlX3RhYl9i YXIgKHN0cnVjdCBmcmFtZSAqZiwgYm9vbCBzYXZlX21hdGNoX2RhdGEpCiAJICB8fCB1cGRh dGVfbW9kZV9saW5lcwogCSAgfHwgd2luZG93X2J1ZmZlcl9jaGFuZ2VkICh3KSkKIAl7Ci0J ICBzdHJ1Y3QgYnVmZmVyICpwcmV2ID0gY3VycmVudF9idWZmZXI7CiAJICBzcGVjcGRsX3Jl ZiBjb3VudCA9IFNQRUNQRExfSU5ERVggKCk7CiAJICBMaXNwX09iamVjdCBuZXdfdGFiX2Jh cjsKICAgICAgICAgICBpbnQgbmV3X25fdGFiX2JhcjsKIAotCSAgLyogU2V0IGN1cnJlbnRf YnVmZmVyIHRvIHRoZSBidWZmZXIgb2YgdGhlIHNlbGVjdGVkCi0JICAgICB3aW5kb3cgb2Yg dGhlIGZyYW1lLCBzbyB0aGF0IHdlIGdldCB0aGUgcmlnaHQgbG9jYWwKLQkgICAgIGtleW1h cHMuICAqLwotCSAgc2V0X2J1ZmZlcl9pbnRlcm5hbF8xIChYQlVGRkVSICh3LT5jb250ZW50 cykpOwotCiAJICAvKiBTYXZlIG1hdGNoIGRhdGEsIGlmIHdlIG11c3QuICAqLwogCSAgaWYg KHNhdmVfbWF0Y2hfZGF0YSkKIAkgICAgcmVjb3JkX3Vud2luZF9zYXZlX21hdGNoX2RhdGEg KCk7CkBAIC0xMzYyMSwyMCArMTM0NjQsOCBAQCB1cGRhdGVfdGFiX2JhciAoc3RydWN0IGZy YW1lICpmLCBib29sIHNhdmVfbWF0Y2hfZGF0YSkKIAkgICAgICBzcGVjYmluZCAoUW92ZXJy aWRpbmdfbG9jYWxfbWFwLCBRbmlsKTsKIAkgICAgfQogCi0JICAvKiBXZSBtdXN0IHRlbXBv cmFyaWx5IHNldCB0aGUgc2VsZWN0ZWQgZnJhbWUgdG8gdGhpcyBmcmFtZQotCSAgICAgYmVm b3JlIGNhbGxpbmcgdGFiX2Jhcl9pdGVtcywgYmVjYXVzZSB0aGUgY2FsY3VsYXRpb24gb2YK LQkgICAgIHRoZSB0YWItYmFyIGtleW1hcCB1c2VzIHRoZSBzZWxlY3RlZCBmcmFtZSAoc2Vl Ci0JICAgICBgdGFiLWJhci1tYWtlLWtleW1hcCcgaW4gdGFiLWJhci5lbCkuICAqLwotCSAg ZWFzc2VydCAoRVEgKHNlbGVjdGVkX3dpbmRvdywKLQkJICAgICAgIC8qIFNpbmNlIHdlIG9u bHkgZXhwbGljaXRseSBwcmVzZXJ2ZSBzZWxlY3RlZF9mcmFtZSwKLQkJCSAgY2hlY2sgdGhh dCBzZWxlY3RlZF93aW5kb3cgd291bGQgYmUgcmVkdW5kYW50LiAgKi8KLQkJICAgICAgIFhG UkFNRSAoc2VsZWN0ZWRfZnJhbWUpLT5zZWxlY3RlZF93aW5kb3cpKTsKICNpZmRlZiBIQVZF X1dJTkRPV19TWVNURU0KLQkgIExpc3BfT2JqZWN0IGZyYW1lOwotCSAgcmVjb3JkX3Vud2lu ZF9wcm90ZWN0IChyZXN0b3JlX3NlbGVjdGVkX3dpbmRvdywgc2VsZWN0ZWRfd2luZG93KTsK LQkgIFhTRVRGUkFNRSAoZnJhbWUsIGYpOwotCSAgc2VsZWN0ZWRfZnJhbWUgPSBmcmFtZTsK LQkgIHNlbGVjdGVkX3dpbmRvdyA9IEZSQU1FX1NFTEVDVEVEX1dJTkRPVyAoZik7CisJICB3 aXRoX3dpbmRvd19zZWxlY3RlZCAod2luZG93KTsKICNlbmRpZgogCiAJICAvKiBCdWlsZCBk ZXNpcmVkIHRhYi1iYXIgaXRlbXMgZnJvbSBrZXltYXBzLiAgKi8KQEAgLTEzNjU3LDcgKzEz NDg4LDYgQEAgdXBkYXRlX3RhYl9iYXIgKHN0cnVjdCBmcmFtZSAqZiwgYm9vbCBzYXZlX21h dGNoX2RhdGEpCiAgICAgICAgICAgICB9CiAKIAkgIHVuYmluZF90byAoY291bnQsIFFuaWwp OwotCSAgc2V0X2J1ZmZlcl9pbnRlcm5hbF8xIChwcmV2KTsKIAl9CiAgICAgfQogfQpAQCAt MTQ0OTUsMTEgKzE0MzI1LDggQEAgdXBkYXRlX3Rvb2xfYmFyIChzdHJ1Y3QgZnJhbWUgKmYs IGJvb2wgc2F2ZV9tYXRjaF9kYXRhKQogCiAgIGlmIChkb191cGRhdGUpCiAgICAgewotICAg ICAgTGlzcF9PYmplY3Qgd2luZG93OwotICAgICAgc3RydWN0IHdpbmRvdyAqdzsKLQotICAg ICAgd2luZG93ID0gRlJBTUVfU0VMRUNURURfV0lORE9XIChmKTsKLSAgICAgIHcgPSBYV0lO RE9XICh3aW5kb3cpOworICAgICAgTGlzcF9PYmplY3Qgd2luZG93ID0gRlJBTUVfU0VMRUNU RURfV0lORE9XIChmKTsKKyAgICAgIHN0cnVjdCB3aW5kb3cgKncgPSBYV0lORE9XICh3aW5k b3cpOwogCiAgICAgICAvKiBJZiB0aGUgdXNlciBoYXMgc3dpdGNoZWQgYnVmZmVycyBvciB3 aW5kb3dzLCB3ZSBuZWVkIHRvCiAJIHJlY29tcHV0ZSB0byByZWZsZWN0IHRoZSBuZXcgYmlu ZGluZ3MuICBCdXQgd2UnbGwKQEAgLTE0NTEzLDE2ICsxNDM0MCwxMCBAQCB1cGRhdGVfdG9v bF9iYXIgKHN0cnVjdCBmcmFtZSAqZiwgYm9vbCBzYXZlX21hdGNoX2RhdGEpCiAJICB8fCB1 cGRhdGVfbW9kZV9saW5lcwogCSAgfHwgd2luZG93X2J1ZmZlcl9jaGFuZ2VkICh3KSkKIAl7 Ci0JICBzdHJ1Y3QgYnVmZmVyICpwcmV2ID0gY3VycmVudF9idWZmZXI7CiAJICBzcGVjcGRs X3JlZiBjb3VudCA9IFNQRUNQRExfSU5ERVggKCk7Ci0JICBMaXNwX09iamVjdCBmcmFtZSwg bmV3X3Rvb2xfYmFyOworCSAgTGlzcF9PYmplY3QgbmV3X3Rvb2xfYmFyOwogICAgICAgICAg IGludCBuZXdfbl90b29sX2JhcjsKIAotCSAgLyogU2V0IGN1cnJlbnRfYnVmZmVyIHRvIHRo ZSBidWZmZXIgb2YgdGhlIHNlbGVjdGVkCi0JICAgICB3aW5kb3cgb2YgdGhlIGZyYW1lLCBz byB0aGF0IHdlIGdldCB0aGUgcmlnaHQgbG9jYWwKLQkgICAgIGtleW1hcHMuICAqLwotCSAg c2V0X2J1ZmZlcl9pbnRlcm5hbF8xIChYQlVGRkVSICh3LT5jb250ZW50cykpOwotCiAJICAv KiBTYXZlIG1hdGNoIGRhdGEsIGlmIHdlIG11c3QuICAqLwogCSAgaWYgKHNhdmVfbWF0Y2hf ZGF0YSkKIAkgICAgcmVjb3JkX3Vud2luZF9zYXZlX21hdGNoX2RhdGEgKCk7CkBAIC0xNDUz NCwxOCArMTQzNTUsNyBAQCB1cGRhdGVfdG9vbF9iYXIgKHN0cnVjdCBmcmFtZSAqZiwgYm9v bCBzYXZlX21hdGNoX2RhdGEpCiAJICAgICAgc3BlY2JpbmQgKFFvdmVycmlkaW5nX2xvY2Fs X21hcCwgUW5pbCk7CiAJICAgIH0KIAotCSAgLyogV2UgbXVzdCB0ZW1wb3JhcmlseSBzZXQg dGhlIHNlbGVjdGVkIGZyYW1lIHRvIHRoaXMgZnJhbWUKLQkgICAgIGJlZm9yZSBjYWxsaW5n IHRvb2xfYmFyX2l0ZW1zLCBiZWNhdXNlIHRoZSBjYWxjdWxhdGlvbiBvZgotCSAgICAgdGhl IHRvb2wtYmFyIGtleW1hcCB1c2VzIHRoZSBzZWxlY3RlZCBmcmFtZSAoc2VlCi0JICAgICBg dG9vbC1iYXItbWFrZS1rZXltYXAnIGluIHRvb2wtYmFyLmVsKS4gICovCi0JICBlYXNzZXJ0 IChFUSAoc2VsZWN0ZWRfd2luZG93LAotCQkgICAgICAgLyogU2luY2Ugd2Ugb25seSBleHBs aWNpdGx5IHByZXNlcnZlIHNlbGVjdGVkX2ZyYW1lLAotCQkJICBjaGVjayB0aGF0IHNlbGVj dGVkX3dpbmRvdyB3b3VsZCBiZSByZWR1bmRhbnQuICAqLwotCQkgICAgICAgWEZSQU1FIChz ZWxlY3RlZF9mcmFtZSktPnNlbGVjdGVkX3dpbmRvdykpOwotCSAgcmVjb3JkX3Vud2luZF9w cm90ZWN0IChyZXN0b3JlX3NlbGVjdGVkX3dpbmRvdywgc2VsZWN0ZWRfd2luZG93KTsKLQkg IFhTRVRGUkFNRSAoZnJhbWUsIGYpOwotCSAgc2VsZWN0ZWRfZnJhbWUgPSBmcmFtZTsKLQkg IHNlbGVjdGVkX3dpbmRvdyA9IEZSQU1FX1NFTEVDVEVEX1dJTkRPVyAoZik7CisJICB3aXRo X3dpbmRvd19zZWxlY3RlZCAod2luZG93KTsKIAogCSAgLyogQnVpbGQgZGVzaXJlZCB0b29s LWJhciBpdGVtcyBmcm9tIGtleW1hcHMuICAqLwogICAgICAgICAgIG5ld190b29sX2JhcgpA QCAtMTQ1NjcsNyArMTQzNzcsNiBAQCB1cGRhdGVfdG9vbF9iYXIgKHN0cnVjdCBmcmFtZSAq ZiwgYm9vbCBzYXZlX21hdGNoX2RhdGEpCiAgICAgICAgICAgICB9CiAKIAkgIHVuYmluZF90 byAoY291bnQsIFFuaWwpOwotCSAgc2V0X2J1ZmZlcl9pbnRlcm5hbF8xIChwcmV2KTsKIAl9 CiAgICAgfQogfQpAQCAtMjYwNzUsMTUgKzI1ODg0LDggQEAgcmVkaXNwbGF5X21vZGVfbGlu ZXMgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBmb3JjZSkKIHN0YXRpYyBpbnQKIGRpc3Bs YXlfbW9kZV9saW5lcyAoc3RydWN0IHdpbmRvdyAqdykKIHsKLSAgTGlzcF9PYmplY3Qgb2xk X3NlbGVjdGVkX3dpbmRvdyA9IHNlbGVjdGVkX3dpbmRvdzsKLSAgTGlzcF9PYmplY3QgbmV3 X2ZyYW1lID0gdy0+ZnJhbWU7Ci0gIHNwZWNwZGxfcmVmIGNvdW50ID0gU1BFQ1BETF9JTkRF WCAoKTsKICAgaW50IG4gPSAwOwogCi0gIHJlY29yZF91bndpbmRfcHJvdGVjdCAocmVzdG9y ZV9zZWxlY3RlZF93aW5kb3csIHNlbGVjdGVkX3dpbmRvdyk7Ci0gIHJlY29yZF91bndpbmRf cHJvdGVjdAotICAgIChyZXN0b3JlX2ZyYW1lX3NlbGVjdGVkX3dpbmRvdywgWEZSQU1FIChu ZXdfZnJhbWUpLT5zZWxlY3RlZF93aW5kb3cpOwotCiAgIGlmICh3aW5kb3dfd2FudHNfbW9k ZV9saW5lICh3KSkKICAgICB7CiAgICAgICBMaXNwX09iamVjdCB3aW5kb3c7CkBAIC0yNjEw MSwxMiArMjU5MDMsNiBAQCBkaXNwbGF5X21vZGVfbGluZXMgKHN0cnVjdCB3aW5kb3cgKncp CiAJd3NldF9tb2RlX2xpbmVfaGVscF9lY2hvICh3LCBRbmlsKTsKICAgICB9CiAKLSAgc2Vs ZWN0ZWRfZnJhbWUgPSBuZXdfZnJhbWU7Ci0gIC8qIEZJWE1FOiBJZiB3ZSB3ZXJlIHRvIGFs bG93IHRoZSBtb2RlLWxpbmUncyBjb21wdXRhdGlvbiBjaGFuZ2luZyB0aGUgYnVmZmVyCi0g ICAgIG9yIHdpbmRvdydzIHBvaW50LCB0aGVuIHdlJ2QgbmVlZCBzZWxlY3Rfd2luZG93XzEg aGVyZSBhcyB3ZWxsLiAgKi8KLSAgWFNFVFdJTkRPVyAoc2VsZWN0ZWRfd2luZG93LCB3KTsK LSAgWEZSQU1FIChuZXdfZnJhbWUpLT5zZWxlY3RlZF93aW5kb3cgPSBzZWxlY3RlZF93aW5k b3c7Ci0KICAgLyogVGhlc2Ugd2lsbCBiZSBzZXQgd2hpbGUgdGhlIG1vZGUgbGluZSBzcGVj cyBhcmUgcHJvY2Vzc2VkLiAgKi8KICAgbGluZV9udW1iZXJfZGlzcGxheWVkID0gZmFsc2U7 CiAgIHctPmNvbHVtbl9udW1iZXJfZGlzcGxheWVkID0gLTE7CkBAIC0yNjExNSw3ICsyNTkx MSw3IEBAIGRpc3BsYXlfbW9kZV9saW5lcyAoc3RydWN0IHdpbmRvdyAqdykKICAgICB7CiAg ICAgICBMaXNwX09iamVjdCB3aW5kb3dfbW9kZV9saW5lX2Zvcm1hdAogCT0gd2luZG93X3Bh cmFtZXRlciAodywgUW1vZGVfbGluZV9mb3JtYXQpOwotICAgICAgc3RydWN0IHdpbmRvdyAq c2VsX3cgPSBYV0lORE9XIChvbGRfc2VsZWN0ZWRfd2luZG93KTsKKyAgICAgIHN0cnVjdCB3 aW5kb3cgKnNlbF93ID0gWFdJTkRPVyAoc2VsZWN0ZWRfd2luZG93KTsKIAogICAgICAgLyog U2VsZWN0IG1vZGUgbGluZSBmYWNlIGJhc2VkIG9uIHRoZSByZWFsIHNlbGVjdGVkIHdpbmRv dy4gICovCiAgICAgICBkaXNwbGF5X21vZGVfbGluZSAodywKQEAgLTI2MTUwLDggKzI1OTQ2 LDYgQEAgZGlzcGxheV9tb2RlX2xpbmVzIChzdHJ1Y3Qgd2luZG93ICp3KQogICAgICAgKytu OwogICAgIH0KIAotICB1bmJpbmRfdG8gKGNvdW50LCBRbmlsKTsKLQogICBpZiAobiA+IDAp CiAgICAgdy0+bXVzdF9iZV91cGRhdGVkX3AgPSB0cnVlOwogICByZXR1cm4gbjsKQEAgLTI2 MTY3LDYgKzI1OTYxLDcgQEAgZGlzcGxheV9tb2RlX2xpbmVzIChzdHJ1Y3Qgd2luZG93ICp3 KQogc3RhdGljIGludAogZGlzcGxheV9tb2RlX2xpbmUgKHN0cnVjdCB3aW5kb3cgKncsIGVu dW0gZmFjZV9pZCBmYWNlX2lkLCBMaXNwX09iamVjdCBmb3JtYXQpCiB7CisgIExpc3BfT2Jq ZWN0IHdpbmRvdzsKICAgc3RydWN0IGl0IGl0OwogICBzdHJ1Y3QgZmFjZSAqZmFjZTsKICAg c3BlY3BkbF9yZWYgY291bnQgPSBTUEVDUERMX0lOREVYICgpOwpAQCAtMjYxOTEsOSArMjU5 ODYsMTEgQEAgZGlzcGxheV9tb2RlX2xpbmUgKHN0cnVjdCB3aW5kb3cgKncsIGVudW0gZmFj ZV9pZCBmYWNlX2lkLCBMaXNwX09iamVjdCBmb3JtYXQpCiAgICAgIG1hZGUgdXAgb2YgbWFu eSBzZXBhcmF0ZSBzdHJpbmdzLiAgKi8KICAgaXQucGFyYWdyYXBoX2VtYmVkZGluZyA9IEwy UjsKIAorICBYU0VUV0lORE9XICh3aW5kb3csIHcpOworICB3aXRoX3dpbmRvd19zZWxlY3Rl ZCAod2luZG93KTsKKwogICByZWNvcmRfdW53aW5kX3Byb3RlY3QgKHVud2luZF9mb3JtYXRf bW9kZV9saW5lLAotCQkJIGZvcm1hdF9tb2RlX2xpbmVfdW53aW5kX2RhdGEgKE5VTEwsIE5V TEwsCi0JCQkJCQkgICAgICAgUW5pbCwgZmFsc2UpKTsKKwkJCSBmb3JtYXRfbW9kZV9saW5l X3Vud2luZF9kYXRhIChmYWxzZSkpOwogCiAgIC8qIFRlbXBvcmFyaWx5IG1ha2UgZnJhbWUn cyBrZXlib2FyZCB0aGUgY3VycmVudCBrYm9hcmQgc28gdGhhdAogICAgICBrYm9hcmQtbG9j YWwgdmFyaWFibGVzIGluIHRoZSBtb2RlX2xpbmVfZm9ybWF0IHdpbGwgZ2V0IHRoZSByaWdo dApAQCAtMjY5MzEsNyArMjY3MjgsNiBAQCBERUZVTiAoImZvcm1hdC1tb2RlLWxpbmUiLCBG Zm9ybWF0X21vZGVfbGluZSwgU2Zvcm1hdF9tb2RlX2xpbmUsCiAgIHN0cnVjdCBpdCBpdDsK ICAgaW50IGxlbjsKICAgc3RydWN0IHdpbmRvdyAqdzsKLSAgc3RydWN0IGJ1ZmZlciAqb2xk X2J1ZmZlciA9IE5VTEw7CiAgIGludCBmYWNlX2lkOwogICBib29sIG5vX3Byb3BzID0gRklY TlVNUCAoZmFjZSk7CiAgIHNwZWNwZGxfcmVmIGNvdW50ID0gU1BFQ1BETF9JTkRFWCAoKTsK QEAgLTI2OTY0LDE3ICsyNjc2MCwxNSBAQCBERUZVTiAoImZvcm1hdC1tb2RlLWxpbmUiLCBG Zm9ybWF0X21vZGVfbGluZSwgU2Zvcm1hdF9tb2RlX2xpbmUsCiAgICAgOiBFUSAoZmFjZSwg UXRvb2xfYmFyKSA/IFRPT0xfQkFSX0ZBQ0VfSUQKICAgICA6IERFRkFVTFRfRkFDRV9JRDsK IAotICBvbGRfYnVmZmVyID0gY3VycmVudF9idWZmZXI7CisgIHdpdGhfd2luZG93X3NlbGVj dGVkICh3aW5kb3cpOwogCiAgIC8qIFNhdmUgdGhpbmdzIGluY2x1ZGluZyBtb2RlX2xpbmVf cHJvcHRyYW5zX2FsaXN0LAogICAgICBhbmQgc2V0IHRoYXQgdG8gbmlsIHNvIHRoYXQgd2Ug ZG9uJ3QgYWx0ZXIgdGhlIG91dGVyIHZhbHVlLiAgKi8KICAgcmVjb3JkX3Vud2luZF9wcm90 ZWN0ICh1bndpbmRfZm9ybWF0X21vZGVfbGluZSwKLQkJCSBmb3JtYXRfbW9kZV9saW5lX3Vu d2luZF9kYXRhCi0JCQkgICAoWEZSQU1FIChXSU5ET1dfRlJBTUUgKHcpKSwKLQkJCSAgICBv bGRfYnVmZmVyLCBzZWxlY3RlZF93aW5kb3csIHRydWUpKTsKKwkJCSBmb3JtYXRfbW9kZV9s aW5lX3Vud2luZF9kYXRhICh0cnVlKSk7CiAgIG1vZGVfbGluZV9wcm9wdHJhbnNfYWxpc3Qg PSBRbmlsOwogCi0gIEZzZWxlY3Rfd2luZG93ICh3aW5kb3csIFF0KTsKKyAgLyogVGhpcyBz aG91bGQgYmUgY292ZXJlZCBieSAndW53aW5kX3dpdGhfd2luZG93X3NlbGVjdGVkJy4gICov CiAgIHNldF9idWZmZXJfaW50ZXJuYWxfMSAoWEJVRkZFUiAoYnVmZmVyKSk7CiAKICAgaW5p dF9pdGVyYXRvciAoJml0LCB3LCAtMSwgLTEsIE5VTEwsIGZhY2VfaWQpOwo= --------------U1TOTRQrhAsQi4bQPbUlFGBU--