From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#68235: 29.1.90; Switching tabs stops following process output in selected window Date: Wed, 6 Mar 2024 11:19:51 +0100 Message-ID: References: <669371d8-7c65-4c5f-99a9-0d8298808d23@gmx.at> <86cyu5cc0p.fsf@mail.linkov.net> <868r4reoh3.fsf@mail.linkov.net> <0634c46f-db93-4492-be69-5ac6ca0102a8@gmx.at> <865xzuvdgu.fsf@mail.linkov.net> <86a5p5qv61.fsf@mail.linkov.net> <86edeg2ige.fsf@mail.linkov.net> <21dcf921-acc4-4f94-b383-8ad6d0a57c59@gmx.at> <86v87qpow0.fsf@mail.linkov.net> <4bc98faf-5ebe-4c22-8c9f-04755785fde5@gmx.at> <86wmrjl8m3.fsf@mail.linkov.net> <39fe71c5-db40-49d1-b22b-37b52ed13865@gmx.at> <86jzn6yzae.fsf@mail.linkov.net> <021bb8c2-3f2d-4746-8f04-49f43cf57d16@gmx.at> <86il2mxmxd.fsf@mail.linkov.net> <3fe7e4b4-bc9a-4303-a87f-a360765c597f@gmx.at> <86le6wpok4.fsf@mail.linkov.net> Reply-To: martin rudalics Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------tCgWq7WG9Z5GHT100oLHj7Vv" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38850"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 68235@debbugs.gnu.org To: Juri Linkov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Mar 06 11:20:46 2024 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 1rhoOE-0009s7-6n for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 06 Mar 2024 11:20:46 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rhoO3-0002nV-CX; Wed, 06 Mar 2024 05:20:35 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rhoO0-0002nA-F5 for bug-gnu-emacs@gnu.org; Wed, 06 Mar 2024 05:20:32 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rhoO0-0003no-6k for bug-gnu-emacs@gnu.org; Wed, 06 Mar 2024 05:20:32 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rhoOU-0003wn-JG for bug-gnu-emacs@gnu.org; Wed, 06 Mar 2024 05:21:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 06 Mar 2024 10:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68235 X-GNU-PR-Package: emacs Original-Received: via spool by 68235-submit@debbugs.gnu.org id=B68235.170972043715135 (code B ref 68235); Wed, 06 Mar 2024 10:21:02 +0000 Original-Received: (at 68235) by debbugs.gnu.org; 6 Mar 2024 10:20:37 +0000 Original-Received: from localhost ([127.0.0.1]:49767 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rhoO3-0003w2-QZ for submit@debbugs.gnu.org; Wed, 06 Mar 2024 05:20:36 -0500 Original-Received: from mout.gmx.net ([212.227.17.21]:51471) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rhoO0-0003vj-RJ for 68235@debbugs.gnu.org; Wed, 06 Mar 2024 05:20:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.at; s=s31663417; t=1709720395; x=1710325195; i=rudalics@gmx.at; bh=xFlBpE3imfLXlVWrUoWi2UIoG6gGpYgWynzIEQvwwIM=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From: In-Reply-To; b=MD28AqzPJIgNRRYjy6le2J8Ft5j+PU/CgVZQS4/nzyxYvOTYNoP96Qbmnca9jPzG wCYC2rK1eq8ELxweeMWlmUFxobCQ7YobKgveFGFVgpy/d4fLnnfWguIFNNoMF/jYR Hdh6dB9mmD55JEY/TSKjMlT9MPSa5gPXK9aIEene6PZ1aXZs267ahVviQSaPEdiRH Vkzi7sIWuZmsPFXod7M+EHC9yldVr9h0kvrAMJURfizz+Wttdm2K5yEmW8qZzflHv HgK3JHv2KTXAoSiIxjYP0SOpVuHOFYlW2ChhgnYRZI/B9iw4FBbNtp+mzZdWLhsj3 7Q2rmFzcKZGDZPDulw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Original-Received: from [192.168.31.113] ([213.142.96.111]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MG9g4-1rcNPC3NjI-00GaAI; Wed, 06 Mar 2024 11:19:54 +0100 Content-Language: en-US In-Reply-To: <86le6wpok4.fsf@mail.linkov.net> X-Provags-ID: V03:K1:zj0prSiXUk1CGlk7W7mQCvQibkjpW/eONGROEO0O6LpUfFa3Bhm YKb5voKE+g3V0RyGUkPd4mtSEWIVl3KI7rONzI7BszXgI8cIUkVAUK1QTApUECkUl9W1APv K5XhHdBxfaamAOvydIX3yE8Vd3etIv+Y175ESpExyF6Jw1laah8ilDbydRoIED3PvYBy9Pm cNzR3wTJwb8p4X07zps+w== UI-OutboundReport: notjunk:1;M01:P0:NFc6QlnL94w=;kpOXad6Ih8+FJSF4UXMv8Gw5IWb TQyl6w6jT9AtIyeCaY58PFCEqnMCufghA6KsbNqXgaUs/h2CNVDrwx0v4IGzwiiYvUfdGrNRi xFEcy5HwkYHy4jj+nUSRUH8Vnqh47WaRQU61h2TDp9k1YL5y4446SnHZT9d8ZGN+aan9lg0ip esH+wiAtG/A88Zy0MfZdiMlmA5XzfgFA5CwspJXgpkDoGqLBB3wTRYnUcCD2d3JoQHJbGX/ch c0jNIlCA3dDmH3lPYepj/2yndKqgJ3sWqjd2mzvaLgvoo0oVI5nV6260tDjWkfisVEKEt1WWI zWKKqdTLHmSDtqIHL7KZuONEQ4QHVe6q8GVcZUZvY+76Inz57usE8C+q38mjSwjkVR45+AjRv /pIkwuwezXpUuDtL8m+RYNszf5tBAOJO0bfbXLp7W8ZMF7C2neaUXpCgeZ3SOfE8ckyMbJekA mytck4xE+F9dy5y8yS/OgoTaKX7VH0GXfIiJd4OcYuI7I1+jigK+VZ07ImYCkCAsMrnsTNv3g k1t4pExXLz5nc61ttPrgmaONXZJA11qcurIL65NrxtBEYqJ3zXQKYMQjYq/KNZ6HUgce4ENyl VMI1SSpyIlp6iyhzjzsc9YK4No4Hw5ZWrX0ZGLAIRQO1JbLAnRwJX+ev4KE3tNZ9if1oFSibz t60CSBA4pCfV4pkgxXsSzlx4zlkyft9YTtSu+u1GdxBUCvf4sqavHlyKa0cXQSNjc81OswGaU gjRSibWtWLxYW7XLBQ26VXrvSiturXLpEcHWrjGyOQNcVlfeGWG24wUyYoFUQ4C6CVvXRP9m 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:281106 Archived-At: This is a multi-part message in MIME format. --------------tCgWq7WG9Z5GHT100oLHj7Vv Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > In addition to the previous patch I also have more questions: > > 1. window-kept-windows-functions should be announced in etc/NEWS? Maybe, once we fixed all bugs and know how to make good use of it. > 2. window-kept-windows-functions is called too often. > Most of the calls contain just the minibuffer: > > ((# # 1 1)) > > Is it possible not to include the minibuffer window? Yes. Emacs master never deletes a minibuffer window unless it's about to delete its frame. > So when most of the time this list of kept windows will be empty, > then maybe better to not call the hook at all? But earlier you said "Running the hook with an empty list of windows makes sense as well." So it's up to you. > 3. Very often the message inserted by the patch that I posted > are quite useless because they look like this: > > This window displayed the buffer #. > > This would be much more informative: > > This window displayed the buffer *Help*. > > Maybe 'buffer-last-name' could help to achieve this? I tried to implement it. Tested with (let ((buffer (get-buffer-create "*foo*"))) (y-or-n-p (format "current %s last %s" (buffer-name buffer) (buffer-last-name buffer))) (with-current-buffer buffer (rename-buffer "*bar*")) (y-or-n-p (format "current %s last %s" (buffer-name buffer) (buffer-last-name buffer))) (kill-buffer buffer) (y-or-n-p (format "current %s last %s" (buffer-name buffer) (buffer-last-name buffer)))) > 4. I don't understand this part, but maybe this is already correct: > > /* Scan dead buffer windows. */ > if (!NILP (Vwindow_kept_windows_functions)) > for (; CONSP (dead_windows); dead_windows = XCDR (dead_windows)) > { > window = XCAR (dead_windows); > if (WINDOW_LIVE_P (window) && !EQ (window, FRAME_ROOT_WINDOW (f))) > delete_deletable_window (window); > } > > Should it be if(NILP (Vwindow_kept_windows_functions)) instead? It should. Thanks for catching it. > However, this already works correctly in my tests. Because 'set-window-configuration' does not try to delete a window with a dead buffer unless that window was dedicated to its buffer. That's the way it was coded back in 2011. 'window-state-put' OTOH deletes such a window even if it was not dedicated to its buffer. I now made 'window-state-put' behave like 'set-window-configuration' in this regard. Have a look at the attached patch. martin --------------tCgWq7WG9Z5GHT100oLHj7Vv Content-Type: text/x-patch; charset=UTF-8; name="buffer-last-name.diff" Content-Disposition: attachment; filename="buffer-last-name.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL3dpbmRvd3MudGV4aSBiL2RvYy9saXNwcmVmL3dp bmRvd3MudGV4aQppbmRleCBmZTNkYzU3M2RmNS4uYjY5MzdiN2ZkNDggMTAwNjQ0Ci0tLSBh L2RvYy9saXNwcmVmL3dpbmRvd3MudGV4aQorKysgYi9kb2MvbGlzcHJlZi93aW5kb3dzLnRl eGkKQEAgLTYyNjQsMTUgKzYyNjQsMTUgQEAgV2luZG93IENvbmZpZ3VyYXRpb25zCiBAY29k ZXttaW5pYnVmZmVyLXNlbGVjdGVkLXdpbmRvd30uICBJbiB0aGlzIGNhc2UsIHRoZSBmdW5j dGlvbiByZXR1cm5zCiBAY29kZXtuaWx9LiAgT3RoZXJ3aXNlLCBpdCByZXR1cm5zIEBjb2Rl e3R9LgogCi1JZiB0aGUgYnVmZmVyIG9mIGEgd2luZG93IG9mIEB2YXJ7Y29uZmlndXJhdGlv bn0gaGFzIGJlZW4ga2lsbGVkIHNpbmNlCi1AdmFye2NvbmZpZ3VyYXRpb259IHdhcyBtYWRl LCB0aGF0IHdpbmRvdyBpcywgYXMgYSBydWxlLCByZW1vdmVkIGZyb20KLXRoZSByZXN0b3Jl ZCBjb25maWd1cmF0aW9uLiAgSG93ZXZlciwgaWYgdGhhdCB3aW5kb3cgaXMgdGhlIGxhc3Qg d2luZG93Ci1yZW1haW5pbmcgaW4gdGhlIHJlc3RvcmVkIGNvbmZpZ3VyYXRpb24sIGFub3Ro ZXIgbGl2ZSBidWZmZXIgaXMgc2hvd24gaW4KLWl0LiAgQWxzbywgaWYgdGhlIHZhcmlhYmxl IEB2YXJ7d2luZG93LWtlcHQtd2luZG93cy1mdW5jdGlvbnN9IGlzCi1ub24tQGNvZGV7bmls fSwgYW55IHdpbmRvdyB3aG9zZSBidWZmZXIgaXMgbm93IGRlYWQgaXMgbm90IGRlbGV0ZWQu Ci1SYXRoZXIsIHRoaXMgZnVuY3Rpb24gd2lsbCBzaG93IGFub3RoZXIgbGl2ZSBidWZmZXIg aW4gdGhhdCB3aW5kb3cgYW5kCi1pbmNsdWRlIGFuIGVudHJ5IGZvciB0aGF0IHdpbmRvdyB3 aGVuIGNhbGxpbmcgYW55IGZ1bmN0aW9uIGluCi1AdmFye3dpbmRvdy1rZXB0LXdpbmRvd3Mt ZnVuY3Rpb25zfSAoQHB4cmVme1dpbmRvdyBIb29rc30pLgorSWYgdGhpcyBmdW5jdGlvbiB0 cmllcyB0byByZXN0b3JlIGEgbm9uLW1pbmlidWZmZXIgd2luZG93IHdob3NlIGJ1ZmZlcgor d2FzIGtpbGxlZCBzaW5jZSBAdmFye2NvbmZpZ3VyYXRpb259IHdhcyBtYWRlLCBpdCB3aWxs IHByb2NlZWQgYXMKK2ZvbGxvd3M6IElmIHRoZSBhYm5vcm1hbCBob29rIEBjb2Rle3dpbmRv dy1rZXB0LXdpbmRvd3MtZnVuY3Rpb25zfSBpcworQGNvZGV7bmlsfSBhbmQgdGhlIHdpbmRv dyBpcyBkZWRpY2F0ZWQgdG8gaXRzIGJ1ZmZlciwgaXQgd2lsbCB0cnkgdG8KK2RlbGV0ZSB0 aGF0IHdpbmRvdy4gT3RoZXJ3aXNlLCBvciBpZiBpdCBjYW5ub3QgZGVsZXRlIHRoZSB3aW5k b3csIGl0Cit3aWxsIHNob3cgYW5vdGhlciBsaXZlIGJ1ZmZlciBpbiBpdC4KKworVGhpcyBm dW5jdGlvbiBydW5zIHRoZSBhYm5vcm1hbCBob29rIEB2YXJ7d2luZG93LWtlcHQtd2luZG93 cy1mdW5jdGlvbnN9CisoQHB4cmVme1dpbmRvdyBIb29rc30pLgogCiBIZXJlIGlzIGEgd2F5 IG9mIHVzaW5nIHRoaXMgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzYW1lIGVmZmVjdCBhcwogQGNv ZGV7c2F2ZS13aW5kb3ctZXhjdXJzaW9ufToKQEAgLTYzNjEsMTkgKzYzNjEsMjAgQEAgV2lu ZG93IENvbmZpZ3VyYXRpb25zCiBmcmFtZSBiZWZvcmUgcHV0dGluZyBAdmFye3N0YXRlfSBp bnRvIGl0LiAgSWYgQHZhcnt3aW5kb3d9IGlzIEBjb2Rle25pbH0sCiBpdCBwdXRzIHRoZSB3 aW5kb3cgc3RhdGUgaW50byBhIG5ldyB3aW5kb3cuCiAKLUlmIHRoZSBidWZmZXIgb2YgYW55 IHdpbmRvdyByZWNvcmRlZCBpbiBAdmFye3N0YXRlfSBoYXMgYmVlbiBraWxsZWQKLXNpbmNl IEB2YXJ7c3RhdGV9IHdhcyBtYWRlLCB0aGF0IHdpbmRvdyBpcywgYXMgYSBydWxlLCBub3Qg cmVzdG9yZWQuCi1Ib3dldmVyLCBpZiB0aGF0IHdpbmRvdyBpcyB0aGUgb25seSB3aW5kb3cg aW4gQHZhcntzdGF0ZX0sIGFub3RoZXIgbGl2ZQotYnVmZmVyIHdpbGwgYmUgc2hvd24gaW4g aXQuICBBbHNvLCBpZiB0aGUgdmFyaWFibGUKLUB2YXJ7d2luZG93LWtlcHQtd2luZG93cy1m dW5jdGlvbnN9IGlzIG5vbi1AY29kZXtuaWx9LCBhbnkgd2luZG93IHdob3NlCi1idWZmZXIg aXMgbm93IGRlYWQgaXMgcmVzdG9yZWQuICBUaGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyBhbm90 aGVyIGxpdmUKLWJ1ZmZlciBpbiBpdCBhbmQgaW5jbHVkZSBhbiBlbnRyeSBmb3IgdGhhdCB3 aW5kb3cgd2hlbiBjYWxsaW5nIGEKLWZ1bmN0aW9uIGluIEB2YXJ7d2luZG93LWtlcHQtd2lu ZG93cy1mdW5jdGlvbnN9IChAcHhyZWZ7V2luZG93IEhvb2tzfSkuCitJZiB0aGlzIGZ1bmN0 aW9uIHRyaWVzIHRvIHJlc3RvcmUgYSBub24tbWluaWJ1ZmZlciB3aW5kb3cgd2hvc2UgYnVm ZmVyCit3YXMga2lsbGVkIHNpbmNlIEB2YXJ7c3RhdGV9IHdhcyBtYWRlLCBpdCB3aWxsIHBy b2NlZWQgYXMgZm9sbG93czogSWYKK3RoZSBhYm5vcm1hbCBob29rIEBjb2Rle3dpbmRvdy1r ZXB0LXdpbmRvd3MtZnVuY3Rpb25zfSBpcyBAY29kZXtuaWx9IGFuZAordGhlIHdpbmRvdyBp cyBkZWRpY2F0ZWQgdG8gaXRzIGJ1ZmZlciwgaXQgd2lsbCB0cnkgdG8gZGVsZXRlIHRoYXQK K3dpbmRvdy4gT3RoZXJ3aXNlLCBvciBpZiBpdCBjYW5ub3QgZGVsZXRlIHRoZSB3aW5kb3cs IGl0IHdpbGwgc2hvdworYW5vdGhlciBsaXZlIGJ1ZmZlciBpbiBpdC4KIAogSWYgdGhlIG9w dGlvbmFsIGFyZ3VtZW50IEB2YXJ7aWdub3JlfSBpcyBub24tQGNvZGV7bmlsfSwgaXQgbWVh bnMgdG8gaWdub3JlCiBtaW5pbXVtIHdpbmRvdyBzaXplcyBhbmQgZml4ZWQtc2l6ZSByZXN0 cmljdGlvbnMuICBJZiBAdmFye2lnbm9yZX0KIGlzIEBjb2Rle3NhZmV9LCB0aGlzIG1lYW5z IHdpbmRvd3MgY2FuIGdldCBhcyBzbWFsbCBhcyBvbmUgbGluZQogYW5kL29yIHR3byBjb2x1 bW5zLgorCitUaGlzIGZ1bmN0aW9uIHJ1bnMgdGhlIGFibm9ybWFsIGhvb2sgQHZhcnt3aW5k b3cta2VwdC13aW5kb3dzLWZ1bmN0aW9uc30KKyhAcHhyZWZ7V2luZG93IEhvb2tzfSkuCiBA ZW5kIGRlZnVuCiAKIFRoZSBmdW5jdGlvbnMgQGNvZGV7d2luZG93LXN0YXRlLWdldH0gYW5k IEBjb2Rle3dpbmRvdy1zdGF0ZS1wdXR9IGFsc28KQEAgLTY2NDEsNyArNjY0Miw3IEBAIFdp bmRvdyBIb29rcwogICAgVGhpcyB2YXJpYWJsZSBob2xkcyBhIGxpc3Qgb2YgZnVuY3Rpb25z IHRoYXQgRW1hY3Mgd2lsbCBjYWxsIGFmdGVyCiByZXN0b3JpbmcgYSB3aW5kb3cgY29uZmln dXJhdGlvbiB2aWEgQGNvZGV7c2V0LXdpbmRvdy1jb25maWd1cmF0aW9ufSBvcgogc3RhdGUg dmlhIEBjb2Rle3dpbmRvdy1zdGF0ZS1wdXR9IChAcHhyZWZ7V2luZG93IENvbmZpZ3VyYXRp b25zfSkuICBXaGVuCi10aGUgdmFsdWUgb2YgdGhpcyB2YXJpYWJsZSBpcyBub24tQGNvZGV7 bmlsfSwgdGhlc2UgZnVuY3Rpb25zIHdpbGwgbm90Cit0aGUgdmFsdWUgb2YgdGhpcyB2YXJp YWJsZSBpcyBub24tQGNvZGV7bmlsfSwgdGhlc2UgZnVuY3Rpb25zIHdpbGwgbmV2ZXIKIGRl bGV0ZSBhbnkgd2luZG93IHdob3NlIGJ1ZmZlciBoYXMgYmVlbiBraWxsZWQgc2luY2UgdGhl IGNvcnJlc3BvbmRpbmcKIGNvbmZpZ3VyYXRpb24gb3Igc3RhdGUgd2FzIHNhdmVkLCBidXQg c2hvdyBzb21lIGxpdmUgYnVmZmVyIGluIGl0LgogCmRpZmYgLS1naXQgYS9saXNwL3dpbmRv dy5lbCBiL2xpc3Avd2luZG93LmVsCmluZGV4IDI5MzM2ZjU3M2Y4Li4xMWVmNDkwZWM2OCAx MDA2NDQKLS0tIGEvbGlzcC93aW5kb3cuZWwKKysrIGIvbGlzcC93aW5kb3cuZWwKQEAgLTYz OTMsNyArNjM5Myw5IEBAIHdpbmRvdy0tc3RhdGUtcHV0LTIKIAkgICAgOzsgc2F2ZSB0aGUg d2luZG93IHdpdGggdGhlIGludGVudGlvbiBvZiBkZWxldGluZyBpdCBsYXRlcgogCSAgICA7 OyBpZiBwb3NzaWJsZS4KIAkgICAgKHN3aXRjaC10by1wcmV2LWJ1ZmZlciB3aW5kb3cpCi0J ICAgIChpZiB3aW5kb3cta2VwdC13aW5kb3dzLWZ1bmN0aW9ucworCSAgICAodW5sZXNzICh3 aW5kb3ctbWluaWJ1ZmZlci1wIHdpbmRvdykKKwkgICAgICAoY29uZAorCSAgICAgICAod2lu ZG93LWtlcHQtd2luZG93cy1mdW5jdGlvbnMKIAkJKGxldCogKChzdGFydCAoY2RyIChhc3Nx ICdzdGFydCBzdGF0ZSkpKQogCQkgICAgICAgOzsgSGFuZGxlIGJvdGggLSBtYXJrZXIgcG9z aXRpb25zIGZyb20gd3JpdGFibGUKIAkJICAgICAgIDs7IHN0YXRlcyBhbmQgbWFya2VycyBm cm9tIG5vbi13cml0YWJsZSBzdGF0ZXMuCkBAIC02NDAxLDEyICs2NDAzLDE0IEBAIHdpbmRv dy0tc3RhdGUtcHV0LTIKIAkJCQkgICAgICAobWFya2VyLWxhc3QtcG9zaXRpb24gc3RhcnQp CiAJCQkJICAgIHN0YXJ0KSkKIAkJICAgICAgIChwb2ludCAoY2RyIChhc3NxICdwb2ludCBz dGF0ZSkpKQotCQkgICAgICAgKHBvaW50LXBvcyAoaWYgKG1hcmtlcnAgcG9pbnQpCi0JCQkJ ICAgICAgKG1hcmtlci1sYXN0LXBvc2l0aW9uIHBvaW50KQotCQkJCSAgICBwb2ludCkpKQot CQkgIChwdXNoIChsaXN0IHdpbmRvdyBvbGQtYnVmZmVyLW9yLW5hbWUgc3RhcnQtcG9zIHBv aW50LXBvcykKLQkJCXdpbmRvdy1zdGF0ZS1wdXQta2VwdC13aW5kb3dzKSkKLQkgICAgICAo cHVzaCB3aW5kb3cgd2luZG93LXN0YXRlLXB1dC1zdGFsZS13aW5kb3dzKSkpKSkpKSkKKwkJ CSAocG9pbnQtcG9zIChpZiAobWFya2VycCBwb2ludCkKKwkJCQkJKG1hcmtlci1sYXN0LXBv c2l0aW9uIHBvaW50KQorCQkJCSAgICAgIHBvaW50KSkpCisJCSAgICAocHVzaCAobGlzdCB3 aW5kb3cgb2xkLWJ1ZmZlci1vci1uYW1lIHN0YXJ0LXBvcyBwb2ludC1wb3MpCisJCQkgIHdp bmRvdy1zdGF0ZS1wdXQta2VwdC13aW5kb3dzKSkpCisJICAgICAgICgod2luZG93LWRlZGlj YXRlZC1wIHdpbmRvdykKKwkJKHB1c2ggd2luZG93IHdpbmRvdy1zdGF0ZS1wdXQtc3RhbGUt d2luZG93cykpKQorCSAgICAgIChzZXQtd2luZG93LWRlZGljYXRlZC1wIHdpbmRvdyBuaWwp KSkpKSkpKQogCiAoZGVmdW4gd2luZG93LXN0YXRlLXB1dCAoc3RhdGUgJm9wdGlvbmFsIHdp bmRvdyBpZ25vcmUpCiAgICJQdXQgd2luZG93IHN0YXRlIFNUQVRFIGludG8gV0lORE9XLgpA QCAtNjQyMSwxNiArNjQyNSwyMiBAQCB3aW5kb3ctc3RhdGUtcHV0CiB3aW5kb3dzIGNhbiBn ZXQgYXMgc21hbGwgYXMgYHdpbmRvdy1zYWZlLW1pbi1oZWlnaHQnIGFuZAogYHdpbmRvdy1z YWZlLW1pbi13aWR0aCcuCiAKLUlmIHRoZSBhYm5vcm1hbCBob29rIGB3aW5kb3cta2VwdC13 aW5kb3dzLWZ1bmN0aW9ucycgaXMgbm9uLW5pbCwKLWRvIG5vdCBkZWxldGUgYW55IHdpbmRv d3Mgc2F2ZWQgYnkgU1RBVEUgd2hvc2UgYnVmZmVycyB3ZXJlCi1kZWxldGVkIHNpbmNlIFNU QVRFIHdhcyBzYXZlZC4gIFJhdGhlciwgc2hvdyBzb21lIGxpdmUgYnVmZmVyIGluCi10aGVt IGFuZCBjYWxsIHRoZSBmdW5jdGlvbnMgaW4gYHdpbmRvdy1rZXB0LXdpbmRvd3MtZnVuY3Rp b25zJwotd2l0aCBhIGxpc3Qgb2YgdHdvIGFyZ3VtZW50czogdGhlIGZyYW1lIHdoZXJlIFNU QVRFIHdhcyBwdXQgYW5kIGEKLWxpc3Qgb2YgZW50cmllcyBmb3IgZWFjaCBzdWNoIHdpbmRv dy4gIEVhY2ggZW50cnkgY29udGFpbnMgZm91cgotZWxlbWVudHMgLSB0aGUgd2luZG93LCBp dHMgb2xkIGJ1ZmZlciBhbmQgdGhlIGxhc3QgcG9zaXRpb25zIG9mCi1gd2luZG93LXN0YXJ0 JyBhbmQgYHdpbmRvdy1wb2ludCcgZm9yIHRoZSBidWZmZXIgaW4gdGhhdCB3aW5kb3cuCi1B bHdheXMgY2hlY2sgdGhlIHdpbmRvdyBmb3IgbGl2ZW5lc3MgYmVjYXVzZSBhbm90aGVyIGZ1 bmN0aW9uIHJ1bgotYnkgdGhpcyBob29rIG1heSBoYXZlIGRlbGV0ZWQgaXQuIgorSWYgdGhp cyBmdW5jdGlvbiB0cmllcyB0byByZXN0b3JlIGEgbm9uLW1pbmlidWZmZXIgd2luZG93IHdo b3NlIGJ1ZmZlcgord2FzIGtpbGxlZCBzaW5jZSBTVEFURSB3YXMgbWFkZSwgaXQgd2lsbCBw cm9jZWVkIGFzIGZvbGxvd3M6CisKKy0gSWYgdGhlIGFibm9ybWFsIGhvb2sgYHdpbmRvdy1r ZXB0LXdpbmRvd3MtZnVuY3Rpb25zJyBpcyBuaWwgYW5kIHRoZQorICB3aW5kb3cgaXMgZGVk aWNhdGVkIHRvIGl0cyBidWZmZXIsIGl0IHdpbGwgdHJ5IHRvIGRlbGV0ZSB0aGF0IHdpbmRv dy4KKworLSBPdGhlcndpc2UsIG9yIGlmIGl0IGNhbm5vdCBkZWxldGUgdGhlIHdpbmRvdywg aXQgd2lsbCBzaG93IGFub3RoZXIKKyAgYnVmZmVyIGluIGl0LgorCitDYWxsIHRoZSBmdW5j dGlvbnMgaW4gYHdpbmRvdy1rZXB0LXdpbmRvd3MtZnVuY3Rpb25zJyB3aXRoIGEgbGlzdCBv ZiB0d28KK2FyZ3VtZW50czogdGhlIGZyYW1lIHdoZXJlIFNUQVRFIHdhcyBwdXQgYW5kIGEg bGlzdCBvZiBlbnRyaWVzIGZvciBlYWNoCit3aW5kb3cgd2hvc2UgYnVmZmVyIGhhcyBiZWVu IGtpbGxlZCBzaW5jZSBTVEFURSB3YXMgbWFkZS4gIEVhY2ggZW50cnkKK2NvbnRhaW5zIGZv dXIgZWxlbWVudHMgLSB0aGUgd2luZG93LCBpdHMgb2xkIGJ1ZmZlciBhbmQgdGhlIGxhc3QK K3Bvc2l0aW9ucyBvZiBgd2luZG93LXN0YXJ0JyBhbmQgYHdpbmRvdy1wb2ludCcgZm9yIHRo ZSBidWZmZXIgaW4gdGhhdAord2luZG93LiAgQWx3YXlzIGNoZWNrIHRoZSB3aW5kb3cgZm9y IGxpdmVuZXNzIGJlY2F1c2UgYW5vdGhlciBmdW5jdGlvbgorcnVuIGJ5IHRoaXMgaG9vayBt YXkgaGF2ZSBkZWxldGVkIGl0LiIKICAgKHNldHEgd2luZG93LXN0YXRlLXB1dC1zdGFsZS13 aW5kb3dzIG5pbCkKICAgKHNldHEgd2luZG93LXN0YXRlLXB1dC1rZXB0LXdpbmRvd3Mgbmls KQogCmRpZmYgLS1naXQgYS9zcmMvYnVmZmVyLmMgYi9zcmMvYnVmZmVyLmMKaW5kZXggMTI2 ZjNlYjA1NWEuLmU4ZGFhOTNjMmQ5IDEwMDY0NAotLS0gYS9zcmMvYnVmZmVyLmMKKysrIGIv c3JjL2J1ZmZlci5jCkBAIC0zMjcsNiArMzI3LDExIEBAIGJzZXRfbmFtZSAoc3RydWN0IGJ1 ZmZlciAqYiwgTGlzcF9PYmplY3QgdmFsKQogICBiLT5uYW1lXyA9IHZhbDsKIH0KIHN0YXRp YyB2b2lkCitic2V0X2xhc3RfbmFtZSAoc3RydWN0IGJ1ZmZlciAqYiwgTGlzcF9PYmplY3Qg dmFsKQoreworICBiLT5sYXN0X25hbWVfID0gdmFsOworfQorc3RhdGljIHZvaWQKIGJzZXRf b3ZlcndyaXRlX21vZGUgKHN0cnVjdCBidWZmZXIgKmIsIExpc3BfT2JqZWN0IHZhbCkKIHsK ICAgYi0+b3ZlcndyaXRlX21vZGVfID0gdmFsOwpAQCAtNjQ3LDYgKzY1Miw3IEBAIERFRlVO ICgiZ2V0LWJ1ZmZlci1jcmVhdGUiLCBGZ2V0X2J1ZmZlcl9jcmVhdGUsIFNnZXRfYnVmZmVy X2NyZWF0ZSwgMSwgMiwgMCwKICAgbmFtZSA9IEZjb3B5X3NlcXVlbmNlIChidWZmZXJfb3Jf bmFtZSk7CiAgIHNldF9zdHJpbmdfaW50ZXJ2YWxzIChuYW1lLCBOVUxMKTsKICAgYnNldF9u YW1lIChiLCBuYW1lKTsKKyAgYnNldF9sYXN0X25hbWUgKGIsIG5hbWUpOwogCiAgIGItPmlu aGliaXRfYnVmZmVyX2hvb2tzID0gIU5JTFAgKGluaGliaXRfYnVmZmVyX2hvb2tzKTsKICAg YnNldF91bmRvX2xpc3QgKGIsIFNSRUYgKG5hbWUsIDApICE9ICcgJyA/IFFuaWwgOiBRdCk7 CkBAIC04NjYsNiArODcyLDcgQEAgREVGVU4gKCJtYWtlLWluZGlyZWN0LWJ1ZmZlciIsIEZt YWtlX2luZGlyZWN0X2J1ZmZlciwgU21ha2VfaW5kaXJlY3RfYnVmZmVyLAogICBuYW1lID0g RmNvcHlfc2VxdWVuY2UgKG5hbWUpOwogICBzZXRfc3RyaW5nX2ludGVydmFscyAobmFtZSwg TlVMTCk7CiAgIGJzZXRfbmFtZSAoYiwgbmFtZSk7CisgIGJzZXRfbGFzdF9uYW1lIChiLCBu YW1lKTsKIAogICAvKiBBbiBpbmRpcmVjdCBidWZmZXIgc2hhcmVzIHVuZG8gbGlzdCBvZiBp dHMgYmFzZSAoQnVnIzE4MTgwKS4gICovCiAgIGJzZXRfdW5kb19saXN0IChiLCBCVkFSIChi LT5iYXNlX2J1ZmZlciwgdW5kb19saXN0KSk7CkBAIC0xMjgyLDYgKzEyODksMTYgQEAgREVG VU4gKCJidWZmZXItbmFtZSIsIEZidWZmZXJfbmFtZSwgU2J1ZmZlcl9uYW1lLCAwLCAxLCAw LAogICByZXR1cm4gQlZBUiAoZGVjb2RlX2J1ZmZlciAoYnVmZmVyKSwgbmFtZSk7CiB9CiAK K0RFRlVOICgiYnVmZmVyLWxhc3QtbmFtZSIsIEZidWZmZXJfbGFzdF9uYW1lLCBTYnVmZmVy X2xhc3RfbmFtZSwgMCwgMSwgMCwKKyAgICAgICBkb2M6IC8qIFJldHVybiBsYXN0IG5hbWUg b2YgQlVGRkVSLCBhcyBhIHN0cmluZy4KK0JVRkZFUiBkZWZhdWx0cyB0byB0aGUgY3VycmVu dCBidWZmZXIuCisKK1RoaXMgaXMgdGhlIGxhc3QgbmFtZSBvZiBCVUZGRVIgYmVmb3JlIGl0 IGhhcyBiZWVuIHJlbmFtZWQgb3Iga2lsbGVkLiAqLykKKyAgKExpc3BfT2JqZWN0IGJ1ZmZl cikKK3sKKyAgcmV0dXJuIEJWQVIgKGRlY29kZV9idWZmZXIgKGJ1ZmZlciksIGxhc3RfbmFt ZSk7Cit9CisKIERFRlVOICgiYnVmZmVyLWZpbGUtbmFtZSIsIEZidWZmZXJfZmlsZV9uYW1l LCBTYnVmZmVyX2ZpbGVfbmFtZSwgMCwgMSwgMCwKICAgICAgICBkb2M6IC8qIFJldHVybiBu YW1lIG9mIGZpbGUgQlVGRkVSIGlzIHZpc2l0aW5nLCBvciBuaWwgaWYgbm9uZS4KIE5vIGFy Z3VtZW50IG9yIG5pbCBhcyBhcmd1bWVudCBtZWFucyB1c2UgdGhlIGN1cnJlbnQgYnVmZmVy LiAgKi8pCkBAIC0xNjUyLDYgKzE2NjksNyBAQCBERUZVTiAoInJlbmFtZS1idWZmZXIiLCBG cmVuYW1lX2J1ZmZlciwgU3JlbmFtZV9idWZmZXIsIDEsIDIsCiAgIChyZWdpc3RlciBMaXNw X09iamVjdCBuZXduYW1lLCBMaXNwX09iamVjdCB1bmlxdWUpCiB7CiAgIHJlZ2lzdGVyIExp c3BfT2JqZWN0IHRlbSwgYnVmOworICBMaXNwX09iamVjdCBvbGRuYW1lID0gQlZBUiAoY3Vy cmVudF9idWZmZXIsIG5hbWUpOwogICBMaXNwX09iamVjdCByZXF1ZXN0ZWRuYW1lID0gbmV3 bmFtZTsKIAogICBDSEVDS19TVFJJTkcgKG5ld25hbWUpOwpAQCAtMTY2OSwxMiArMTY4Nywx MiBAQCBERUZVTiAoInJlbmFtZS1idWZmZXIiLCBGcmVuYW1lX2J1ZmZlciwgU3JlbmFtZV9i dWZmZXIsIDEsIDIsCiAgICAgICBpZiAoTklMUCAodW5pcXVlKSAmJiBYQlVGRkVSICh0ZW0p ID09IGN1cnJlbnRfYnVmZmVyKQogCXJldHVybiBCVkFSIChjdXJyZW50X2J1ZmZlciwgbmFt ZSk7CiAgICAgICBpZiAoIU5JTFAgKHVuaXF1ZSkpCi0JbmV3bmFtZSA9IEZnZW5lcmF0ZV9u ZXdfYnVmZmVyX25hbWUgKG5ld25hbWUsCi0JICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEJWQVIgKGN1cnJlbnRfYnVmZmVyLCBuYW1lKSk7CisJbmV3bmFtZSA9IEZn ZW5lcmF0ZV9uZXdfYnVmZmVyX25hbWUgKG5ld25hbWUsIG9sZG5hbWUpOwogICAgICAgZWxz ZQogCWVycm9yICgiQnVmZmVyIG5hbWUgYCVzJyBpcyBpbiB1c2UiLCBTREFUQSAobmV3bmFt ZSkpOwogICAgIH0KIAorICBic2V0X2xhc3RfbmFtZSAoY3VycmVudF9idWZmZXIsIG9sZG5h bWUpOwogICBic2V0X25hbWUgKGN1cnJlbnRfYnVmZmVyLCBuZXduYW1lKTsKIAogICAvKiBD YXRjaCByZWRpc3BsYXkncyBhdHRlbnRpb24uICBVbmxlc3Mgd2UgZG8gdGhpcywgdGhlIG1v ZGUgbGluZXMgZm9yCkBAIC0yMDg3LDYgKzIxMDUsNyBAQCBERUZVTiAoImtpbGwtYnVmZmVy IiwgRmtpbGxfYnVmZmVyLCBTa2lsbF9idWZmZXIsIDAsIDEsICJiS2lsbCBidWZmZXI6ICIs CiAgICAgIFRoaXMgZ2V0cyByaWQgb2YgdGhlbSBmb3IgY2VydGFpbi4gICovCiAgIHJlc2V0 X2J1ZmZlcl9sb2NhbF92YXJpYWJsZXMgKGIsIDEpOwogCisgIGJzZXRfbGFzdF9uYW1lIChi LCBCVkFSIChiLCBuYW1lKSk7CiAgIGJzZXRfbmFtZSAoYiwgUW5pbCk7CiAKICAgYmxvY2tf aW5wdXQgKCk7CkBAIC00NjU4LDYgKzQ2NzcsNyBAQCBpbml0X2J1ZmZlcl9vbmNlICh2b2lk KQogICAvKiBUaGVzZSB1c2VkIHRvIGJlIHN0dWNrIGF0IDAgYnkgZGVmYXVsdCwgYnV0IG5v dyB0aGF0IHRoZSBhbGwtemVybyB2YWx1ZQogICAgICBtZWFucyBRbmlsLCB3ZSBoYXZlIHRv IGluaXRpYWxpemUgdGhlbSBleHBsaWNpdGx5LiAgKi8KICAgYnNldF9uYW1lICgmYnVmZmVy X2xvY2FsX2ZsYWdzLCBtYWtlX2ZpeG51bSAoMCkpOworICBic2V0X2xhc3RfbmFtZSAoJmJ1 ZmZlcl9sb2NhbF9mbGFncywgbWFrZV9maXhudW0gKDApKTsKICAgYnNldF9tYXJrICgmYnVm ZmVyX2xvY2FsX2ZsYWdzLCBtYWtlX2ZpeG51bSAoMCkpOwogICBic2V0X2xvY2FsX3Zhcl9h bGlzdCAoJmJ1ZmZlcl9sb2NhbF9mbGFncywgbWFrZV9maXhudW0gKDApKTsKICAgYnNldF9r ZXltYXAgKCZidWZmZXJfbG9jYWxfZmxhZ3MsIG1ha2VfZml4bnVtICgwKSk7CkBAIC02MDE4 LDYgKzYwMzgsNyBAQCBGdW5jdGlvbnMgKGltcGxpY2l0bHkpIHJ1bm5pbmcgdGhpcyBob29r IGFyZSBgZ2V0LWJ1ZmZlci1jcmVhdGUnLAogICBkZWZzdWJyICgmU21ha2VfaW5kaXJlY3Rf YnVmZmVyKTsKICAgZGVmc3ViciAoJlNnZW5lcmF0ZV9uZXdfYnVmZmVyX25hbWUpOwogICBk ZWZzdWJyICgmU2J1ZmZlcl9uYW1lKTsKKyAgZGVmc3ViciAoJlNidWZmZXJfbGFzdF9uYW1l KTsKICAgZGVmc3ViciAoJlNidWZmZXJfZmlsZV9uYW1lKTsKICAgZGVmc3ViciAoJlNidWZm ZXJfYmFzZV9idWZmZXIpOwogICBkZWZzdWJyICgmU2J1ZmZlcl9sb2NhbF92YWx1ZSk7CmRp ZmYgLS1naXQgYS9zcmMvYnVmZmVyLmggYi9zcmMvYnVmZmVyLmgKaW5kZXggODdiYTI4MDJi MzkuLmJiZTFhZWZmNjY4IDEwMDY0NAotLS0gYS9zcmMvYnVmZmVyLmgKKysrIGIvc3JjL2J1 ZmZlci5oCkBAIC0zMDksNiArMzA5LDkgQEAgI2RlZmluZSBCVkFSKGJ1ZiwgZmllbGQpICgo YnVmKS0+ZmllbGQgIyMgXykKICAgLyogVGhlIG5hbWUgb2YgdGhpcyBidWZmZXIuICAqLwog ICBMaXNwX09iamVjdCBuYW1lXzsKIAorICAvKiBUaGUgbGFzdCBuYW1lIG9mIHRoaXMgYnVm ZmVyIGJlZm9yZSBpdCB3YXMgcmVuYW1lZCBvciBraWxsZWQuICAqLworICBMaXNwX09iamVj dCBsYXN0X25hbWVfOworCiAgIC8qIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHZpc2l0ZWQgaW4g dGhpcyBidWZmZXIsIG9yIG5pbC4gICovCiAgIExpc3BfT2JqZWN0IGZpbGVuYW1lXzsKIApk aWZmIC0tZ2l0IGEvc3JjL3dpbmRvdy5jIGIvc3JjL3dpbmRvdy5jCmluZGV4IGVhNzYxZmFk OGJjLi5jMGZhZGJkZmY0MyAxMDA2NDQKLS0tIGEvc3JjL3dpbmRvdy5jCisrKyBiL3NyYy93 aW5kb3cuYwpAQCAtNzEwOSwxMSArNzEwOSwxNCBAQCBERUZVTiAoInNldC13aW5kb3ctY29u ZmlndXJhdGlvbiIsIEZzZXRfd2luZG93X2NvbmZpZ3VyYXRpb24sCiB0aGUgbWluaS13aW5k b3cgb2YgdGhlIGZyYW1lIGRvZXNuJ3QgZ2V0IHNldCB0byB0aGUgY29ycmVzcG9uZGluZyBl bGVtZW50CiBvZiBDT05GSUdVUkFUSU9OLgogCi1Ob3JtYWxseSwgdGhpcyBmdW5jdGlvbiB3 aWxsIHRyeSB0byBkZWxldGUgYW55IGRlYWQgd2luZG93IGluCi1DT05GSUdVUkFUSU9OIHdo b3NlIGJ1ZmZlciBoYXMgYmVlbiBkZWxldGVkIHNpbmNlIENPTkZJR1VSQVRJT04gd2FzCi1t YWRlLiAgSG93ZXZlciwgaWYgdGhlIGFibm9ybWFsIGhvb2sgYHdpbmRvdy1rZXB0LXdpbmRv d3MtZnVuY3Rpb25zJyBpcwotbm9uLW5pbCwgaXQgd2lsbCBwcmVzZXJ2ZSBzdWNoIGEgd2lu ZG93IGluIHRoZSByZXN0b3JlZCBsYXlvdXQgYW5kIHNob3cKLWFub3RoZXIgYnVmZmVyIGlu IGl0LgorSWYgdGhpcyBmdW5jdGlvbiB0cmllcyB0byByZXN0b3JlIGEgbm9uLW1pbmlidWZm ZXIgd2luZG93IHdob3NlIGJ1ZmZlcgord2FzIGtpbGxlZCBzaW5jZSBDT05GSUdVUkFUSU9O IHdhcyBtYWRlLCBpdCB3aWxsIHByb2NlZWQgYXMgZm9sbG93czoKKworLSBJZiB0aGUgYWJu b3JtYWwgaG9vayBgd2luZG93LWtlcHQtd2luZG93cy1mdW5jdGlvbnMnIGlzIG5pbCBhbmQg dGhlCisgIHdpbmRvdyBpcyBkZWRpY2F0ZWQgdG8gaXRzIGJ1ZmZlciwgaXQgd2lsbCB0cnkg dG8gZGVsZXRlIHRoYXQgd2luZG93LgorCistIE90aGVyd2lzZSwgb3IgaWYgaXQgY2Fubm90 IGRlbGV0ZSB0aGUgd2luZG93LCBpdCB3aWxsIHNob3cgYW5vdGhlcgorICBidWZmZXIgaW4g aXQuCiAKIEFmdGVyIHJlc3RvcmluZyB0aGUgZnJhbWUgbGF5b3V0LCB0aGlzIGZ1bmN0aW9u IHJ1bnMgdGhlIGFibm9ybWFsIGhvb2sKIGB3aW5kb3cta2VwdC13aW5kb3dzLWZ1bmN0aW9u cycgd2l0aCB0d28gYXJndW1lbnRzIC0gdGhlIGZyYW1lIHdob3NlCkBAIC03Mzc4LDcgKzcz ODEsNyBAQCBERUZVTiAoInNldC13aW5kb3ctY29uZmlndXJhdGlvbiIsIEZzZXRfd2luZG93 X2NvbmZpZ3VyYXRpb24sCiAJCSAgIEJVRl9QVCAoWEJVRkZFUiAody0+Y29udGVudHMpKSwK IAkJICAgQlVGX1BUX0JZVEUgKFhCVUZGRVIgKHctPmNvbnRlbnRzKSkpOwogCSAgICAgIHct PnN0YXJ0X2F0X2xpbmVfYmVnID0gdHJ1ZTsKLQkgICAgICBpZiAoIU5JTFAgKFZ3aW5kb3df a2VwdF93aW5kb3dzX2Z1bmN0aW9ucykpCisJICAgICAgaWYgKCFOSUxQIChWd2luZG93X2tl cHRfd2luZG93c19mdW5jdGlvbnMpICYmICFNSU5JX1dJTkRPV19QICh3KSkKIAkJa2VwdF93 aW5kb3dzID0gRmNvbnMgKGxpc3Q0ICh3aW5kb3csIHAtPmJ1ZmZlciwKIAkJCQkJICAgICBG bWFya2VyX2xhc3RfcG9zaXRpb24gKHAtPnN0YXJ0KSwKIAkJCQkJICAgICBGbWFya2VyX2xh c3RfcG9zaXRpb24gKHAtPnBvaW50bSkpLApAQCAtNzM5OCwxNiArNzQwMSwyMCBAQCBERUZV TiAoInNldC13aW5kb3ctY29uZmlndXJhdGlvbiIsIEZzZXRfd2luZG93X2NvbmZpZ3VyYXRp b24sCiAJICAgICAgc2V0X21hcmtlcl9yZXN0cmljdGVkX2JvdGggKHctPnBvaW50bSwgdy0+ Y29udGVudHMsIDAsIDApOwogCSAgICAgIHNldF9tYXJrZXJfcmVzdHJpY3RlZF9ib3RoICh3 LT5vbGRfcG9pbnRtLCB3LT5jb250ZW50cywgMCwgMCk7CiAJICAgICAgdy0+c3RhcnRfYXRf bGluZV9iZWcgPSB0cnVlOwotCSAgICAgIGlmICghTklMUCAody0+ZGVkaWNhdGVkKSkKLQkJ LyogUmVjb3JkIHRoaXMgd2luZG93IGFzIGRlYWQuICAqLwotCQlkZWFkX3dpbmRvd3MgPSBG Y29ucyAod2luZG93LCBkZWFkX3dpbmRvd3MpOwotCSAgICAgIC8qIE1ha2Ugc3VyZSB3aW5k b3cgaXMgbm8gbW9yZSBkZWRpY2F0ZWQuICAqLwotCSAgICAgIHdzZXRfZGVkaWNhdGVkICh3 LCBRbmlsKTsKLQkgICAgICBpZiAoIU5JTFAgKFZ3aW5kb3dfa2VwdF93aW5kb3dzX2Z1bmN0 aW9ucykpCi0JCWtlcHRfd2luZG93cyA9IEZjb25zIChsaXN0NCAod2luZG93LCBwLT5idWZm ZXIsCi0JCQkJCSAgICAgRm1hcmtlcl9sYXN0X3Bvc2l0aW9uIChwLT5zdGFydCksCi0JCQkJ CSAgICAgRm1hcmtlcl9sYXN0X3Bvc2l0aW9uIChwLT5wb2ludG0pKSwKLQkJCQkgICAgICBr ZXB0X3dpbmRvd3MpOworCSAgICAgIGlmICghTUlOSV9XSU5ET1dfUCAodykpCisJCXsKKwkJ ICBpZiAoIU5JTFAgKFZ3aW5kb3dfa2VwdF93aW5kb3dzX2Z1bmN0aW9ucykpCisJCSAgICBr ZXB0X3dpbmRvd3MKKwkJICAgICAgPSBGY29ucyAobGlzdDQgKHdpbmRvdywgcC0+YnVmZmVy LAorCQkJCSAgICAgIEZtYXJrZXJfbGFzdF9wb3NpdGlvbiAocC0+c3RhcnQpLAorCQkJCSAg ICAgIEZtYXJrZXJfbGFzdF9wb3NpdGlvbiAocC0+cG9pbnRtKSksCisJCQkgICAgICAga2Vw dF93aW5kb3dzKTsKKwkJICBlbHNlIGlmICghTklMUCAody0+ZGVkaWNhdGVkKSkKKwkJICAg IC8qIFRyeSB0byBkZWxldGUgdGhpcyB3aW5kb3cgbGF0ZXIuICAqLworCQkgICAgZGVhZF93 aW5kb3dzID0gRmNvbnMgKHdpbmRvdywgZGVhZF93aW5kb3dzKTsKKwkJICAvKiBNYWtlIHN1 cmUgd2luZG93IGlzIG5vIG1vcmUgZGVkaWNhdGVkLiAgKi8KKwkJICB3c2V0X2RlZGljYXRl ZCAodywgUW5pbCk7CisJCX0KIAkgICAgfQogCX0KIApAQCAtNzQ1OSw3ICs3NDY2LDcgQEAg REVGVU4gKCJzZXQtd2luZG93LWNvbmZpZ3VyYXRpb24iLCBGc2V0X3dpbmRvd19jb25maWd1 cmF0aW9uLAogICAgICAgdW5ibG9ja19pbnB1dCAoKTsKIAogICAgICAgLyogU2NhbiBkZWFk IGJ1ZmZlciB3aW5kb3dzLiAgKi8KLSAgICAgIGlmICghTklMUCAoVndpbmRvd19rZXB0X3dp bmRvd3NfZnVuY3Rpb25zKSkKKyAgICAgIGlmIChOSUxQIChWd2luZG93X2tlcHRfd2luZG93 c19mdW5jdGlvbnMpKQogCWZvciAoOyBDT05TUCAoZGVhZF93aW5kb3dzKTsgZGVhZF93aW5k b3dzID0gWENEUiAoZGVhZF93aW5kb3dzKSkKIAkgIHsKIAkgICAgd2luZG93ID0gWENBUiAo ZGVhZF93aW5kb3dzKTsK --------------tCgWq7WG9Z5GHT100oLHj7Vv--