From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#71576: 30.0.50; [PATCH] Improve performance of Comint/Eshell password prompt handling Date: Sat, 15 Jun 2024 12:50:01 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------RO9GwwTGaLuRfEcC7HfCkltz" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6219"; mail-complaints-to="usenet@ciao.gmane.io" To: 71576@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jun 15 22:00:10 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 1sIZZK-0001Ve-NW for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 15 Jun 2024 22:00:10 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sIZZF-0007ny-L1; Sat, 15 Jun 2024 16:00:05 -0400 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 1sIZZD-0007nT-1K for bug-gnu-emacs@gnu.org; Sat, 15 Jun 2024 16:00:03 -0400 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 1sIZZC-0001Ii-OZ for bug-gnu-emacs@gnu.org; Sat, 15 Jun 2024 16:00:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sIZZD-0005YG-I9 for bug-gnu-emacs@gnu.org; Sat, 15 Jun 2024 16:00:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 15 Jun 2024 20:00:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 71576 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.171848159821284 (code B ref -1); Sat, 15 Jun 2024 20:00:03 +0000 Original-Received: (at submit) by debbugs.gnu.org; 15 Jun 2024 19:59:58 +0000 Original-Received: from localhost ([127.0.0.1]:45588 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sIZZ7-0005XC-AU for submit@debbugs.gnu.org; Sat, 15 Jun 2024 15:59:58 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:54510) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sIZZ4-0005WR-Ks for submit@debbugs.gnu.org; Sat, 15 Jun 2024 15:59:55 -0400 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 1sIZPY-0002rJ-Iv for bug-gnu-emacs@gnu.org; Sat, 15 Jun 2024 15:50:04 -0400 Original-Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sIZPW-0008JZ-DN for bug-gnu-emacs@gnu.org; Sat, 15 Jun 2024 15:50:04 -0400 Original-Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-6e5fd488d9fso2453976a12.3 for ; Sat, 15 Jun 2024 12:50:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718481001; x=1719085801; darn=gnu.org; h=subject:from:to:content-language:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=dWIFUXMQcpYDEJgzYo52Ov67Qn6Fx2VsAzA4fBy7GMI=; b=ePhuClNLii88/MrOZdFteA0/fvd8JaRpX7fzFS5w3aZc8ZTL0diGKZ9achwkkN4vXn Ofmxm7n20qIB5UC/YCYlrGeacidLft6mnWXabh4oNqRCK2kFAy3C6dkuwVtirWx9NpY0 jAw9dwNOzoIMHO2DHwZpoc2mHEWesusaniMwtu0VUeRdLC4xFnZ52RbUtz37T0NEZlvM 3pCF0aIj3x1yInsFGY3bLsm/tVCCOQWIA3fvwhObl1wq5UhQs5jJTXb1F/vGVVlhVEYX vMn3DKOt4iADn3UDbJ23+bkPdhykxSvUUxB/TpLBJiNzPMjtiS253RpoCvfECxA4kaMz iN1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718481001; x=1719085801; h=subject:from:to:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=dWIFUXMQcpYDEJgzYo52Ov67Qn6Fx2VsAzA4fBy7GMI=; b=VTFbOZXuPqK/bu/9Uejiaxw+AD6y/sgujDlHXIfvCeL0ZAKJ4ckhwTmwg0j3/Ej36R SvMf4jjkHyF6OGFERDO0nKWERynfOpOAA7pTxyDE3zUBbH57Y8JrqHmmzB59+XEYps5N XkDJAvqqYzR1J46z/xJemirNLOs/o5B/gZzDEiB3Js4QiUOsh/meCM5vtKvjjXFr0fsf tRaWmIyuaXIBW+qIKE5GMUGbsPNWGs3sPBuaI+S3bap9cEW6T/3oD/mDdgZuxtndNOBz 7WTmI8BGW2VVnwymVPZMYKtnznka67+ilUvh2J0iPStwfpHpqjAdViIjw1uOfUTK2QXe rz9g== X-Gm-Message-State: AOJu0Yw3oirtdALu0Kqz0RWlR/W7dPyyk5A/rcy/P5fhjEjQVxuKzxg7 d0tad4dZAeDmiXopwZXmjcBnk96knXTnSRCt5K6rw1EcqDevH+KoKeJqUg== X-Google-Smtp-Source: AGHT+IHwNKl//W18fAjiO22ZjmHUoU9QOm9xvJRWPBb99mhjJmSUlIhWxppnUyoBBSlGkvF8bbIp2w== X-Received: by 2002:a17:902:d3c5:b0:1f7:b24:3e8d with SMTP id d9443c01a7336-1f8627cc396mr61558245ad.38.1718481000686; Sat, 15 Jun 2024 12:50:00 -0700 (PDT) Original-Received: from [192.168.1.2] (syn-023-240-098-037.res.spectrum.com. [23.240.98.37]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-1f855ee8354sm53338425ad.149.2024.06.15.12.49.59 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 15 Jun 2024 12:50:00 -0700 (PDT) X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US Received-SPF: pass client-ip=2607:f8b0:4864:20::533; envelope-from=jporterbugs@gmail.com; helo=mail-pg1-x533.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action 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:287311 Archived-At: This is a multi-part message in MIME format. --------------RO9GwwTGaLuRfEcC7HfCkltz Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit How long can a password prompt really be? In Comint and Eshell, we check for output from subprocesses that looks like a password prompt, so that we can hide the password when the user types it in. That's good, but for commands that output a lot of text, it can take a while to scan through it all. The attached patch adds a performance optimization for this: since we only check for password prompts at the end of a block of output (the subprocess is presumably waiting for the user to type in their password), we only need to look at the last N characters, where N is whatever the maximum password prompt length is. There's obviously no *strict* maximum here, but I can't imagine a password prompt being longer than 256 characters. Compared to the default 'read-process-output-max' value of 4096, this means we could skip up to 93% of the output when looking for the prompt. In practice, this optimization makes us about 25% faster at outputting large amounts of text. For example, in shell-mode, "cat config.log" gives me the following results: BEFORE | AFTER --------+------- 3.852 | 2.890 3.728 | 2.771 3.568 | 2.716 The results in Eshell are pretty similar, too. I've added NEWS entries for this, although maybe this isn't something that really needs to be announced. Still, I figured it was worth mentioning in the unlikely case that the new behavior could cause some problem with (very!) long password prompts. I'm also totally fine with letting this patch wait for Emacs 31 if there's any concern about the code. It's not a big change, but maybe it's worth erring on the side of stability. --------------RO9GwwTGaLuRfEcC7HfCkltz Content-Type: text/plain; charset=UTF-8; name="0001-Limit-the-amount-of-text-we-examine-when-looking-for.patch" Content-Disposition: attachment; filename*0="0001-Limit-the-amount-of-text-we-examine-when-looking-for.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxOTdlYzYzNjhlNmQyNjc4ZjhmMTYwMWRjMWE5ODAwODU1ZGYwOTQzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTUgSnVuIDIwMjQgMTE6MDM6MzMgLTA3MDAKU3ViamVjdDogW1BB VENIXSBMaW1pdCB0aGUgYW1vdW50IG9mIHRleHQgd2UgZXhhbWluZSB3aGVuIGxvb2tpbmcg Zm9yIHBhc3N3b3JkCiBwcm9tcHRzCgpCb3RoIENvbWludCBhbmQgRXNoZWxsIGRvIHRoaXMs IGFuZCBpdCBjYW4gc2lnbmlmaWNhbnRseSBzbG93IGRvd24KY29tbWFuZHMgdGhhdCB3cml0 ZSBhIGxvdCBvZiBvdXRwdXQuCgoqIGxpc3AvY29taW50LmVsIChjb21pbnQtcGFzc3dvcmQt cHJvbXB0LW1heC1sZW5ndGgpOiBOZXcgb3B0aW9uLi4uCihjb21pbnQtd2F0Y2gtZm9yLXBh c3N3b3JkLXByb21wdCk6IC4uLiB1c2UgaXQuICBBZGRpdGlvbmFsbHksIHVzZSB0aGUKbWF0 Y2hlZCByZXN1bHQgZm9yIHRoZSBFbWFjcy1iYXNlZCBwYXNzd29yZCBwcm9tcHQuCgoqIGxp c3AvZXNoZWxsL2VzaC1tb2RlLmVsIChlc2hlbGwtcGFzc3dvcmQtcHJvbXB0LW1heC1sZW5n dGgpOiBOZXcKb3B0aW9uLi4uCihlc2hlbGwtd2F0Y2gtZm9yLXBhc3N3b3JkLXByb21wdCk6 IC4uLiB1c2UgaXQuCgoqIGV0Yy9ORVdTOiBBbm5vdW5jZSB0aGlzIGNoYW5nZS4KLS0tCiBl dGMvTkVXUyAgICAgICAgICAgICAgICB8IDIxICsrKysrKysrKysrKysrKy0tLQogbGlzcC9j b21pbnQuZWwgICAgICAgICAgfCA0OSArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLQogbGlzcC9lc2hlbGwvZXNoLW1vZGUuZWwgfCA0MSArKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDc4IGluc2VydGlvbnMo KyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MK aW5kZXggYjJmZGJjNGE4OGYuLjFjZjUwMjU5MTBjIDEwMDY0NAotLS0gYS9ldGMvTkVXUwor KysgYi9ldGMvTkVXUwpAQCAtMTAwMiw5ICsxMDAyLDE2IEBAIG1vcmUgaW5mb3JtYXRpb24g b24gdGhpcyBub3RhdGlvbi4KIC0tLQogKioqIFBlcmZvcm1hbmNlIGltcHJvdmVtZW50cyBm b3IgaW50ZXJhY3RpdmUgb3V0cHV0IGluIEVzaGVsbC4KIEludGVyYWN0aXZlIG91dHB1dCBp biBFc2hlbGwgc2hvdWxkIG5vdyBiZSBzaWduaWZpY2FudGx5IGZhc3RlciwKLWVzcGVjaWFs bHkgZm9yIGJ1aWx0LWluIGNvbW1hbmRzIHRoYXQgY2FuIHByaW50IGxhcmdlIGFtb3VudHMg b2Ygb3V0cHV0Ci0oZS5nLiAiY2F0IikuICBJbiBhZGRpdGlvbiwgdGhlc2UgY29tbWFuZHMg Y2FuIG5vdyB1cGRhdGUgdGhlIGRpc3BsYXkKLXBlcmlvZGljYWxseSB0byBzaG93IHRoZWly IHByb2dyZXNzLgorZXNwZWNpYWxseSBmb3IgY29tbWFuZHMgdGhhdCBjYW4gcHJpbnQgbGFy Z2UgYW1vdW50cyBvZiBvdXRwdXQKKyhlLmcuICJjYXQiKS4gIEZvciBleHRlcm5hbCBjb21t YW5kcywgRXNoZWxsIHNhdmVzIHRpbWUgYnkgb25seSBsb29raW5nCitmb3IgcGFzc3dvcmQg cHJvbXB0cyBpbiB0aGUgbGFzdCAyNTYgY2hhcmFjdGVycyBvZiBlYWNoIGJsb2NrIG9mIG91 dHB1dC4KK1RvIGNoYW5nZSB0aGUgYW1vdW50IG9mIHRleHQgdG8gZXhhbWluZSwgY3VzdG9t aXplCisnZXNoZWxsLXBhc3N3b3JkLXByb21wdC1tYXgtbGVuZ3RoJy4KKworLS0tCisqKiog RXNoZWxsIGJ1aWx0LWluIGNvbW1hbmRzIGNhbiBub3cgZGlzcGxheSBwcm9ncmVzcy4KK0Vz aGVsbCBidWlsdC1pbiBjb21tYW5kcyBsaWtlICJjYXQiIGFuZCAibHMiIG5vdyB1cGRhdGUg dGhlIGRpc3BsYXkKK3BlcmlvZGljYWxseSB3aGlsZSBydW5uaW5nIHRvIHNob3cgdGhlaXIg cHJvZ3Jlc3MuCiAKICsrKwogKioqIE5ldyBzcGVjaWFsIHJlZmVyZW5jZSB0eXBlICcjPG1h cmtlciBQT1NJVElPTiBCVUZGRVI+Jy4KQEAgLTExNjAsNiArMTE2NywxNCBAQCBlbnZpcm9u bWVudCB2YXJpYWJsZSAnSElTVEZJTEUnLgogCiBJbiBhICdzaGVsbCcgYnVmZmVyLCB0aGlz IHVzZXIgb3B0aW9uIGlzIGNvbm5lY3Rpb24tbG9jYWwuCiAKKy0tLQorKioqIFBlcmZvcm1h bmNlIGltcHJvdmVtZW50cyBmb3IgaW50ZXJhY3RpdmUgb3V0cHV0LgorSW50ZXJhY3RpdmUg b3V0cHV0IGluIFNoZWxsIG1vZGUgbm93IHNjYW5zIG1vcmUgc2VsZWN0aXZlbHkgZm9yIHBh c3N3b3JkCitwcm9tcHRzIGJ5IG9ubHkgZXhhbWluaW5nIHRoZSBsYXN0IDI1NiBjaGFyYWN0 ZXJzIG9mIGVhY2ggYmxvY2sgb2YKK291dHB1dCwgcmVkdWNpbmcgdGhlIHRpbWUgc3BlbnQg d2hlbiBwcmludGluZyBsYXJnZSBhbW91bnRzIG9mIG91dHB1dC4KK1RvIGNoYW5nZSB0aGUg YW1vdW50IG9mIHRleHQgdG8gZXhhbWluZSwgY3VzdG9taXplCisnY29taW50LXBhc3N3b3Jk LXByb21wdC1tYXgtbGVuZ3RoJy4KKwogKiogTWFrZSBtb2RlCiAKICoqKiBUaGUgTWFrZWZp bGUgYnJvd3NlciBpcyBub3cgb2Jzb2xldGUuCmRpZmYgLS1naXQgYS9saXNwL2NvbWludC5l bCBiL2xpc3AvY29taW50LmVsCmluZGV4IDM4MDQ5MzJlMDFjLi5iOGExMjA3NGZiNyAxMDA2 NDQKLS0tIGEvbGlzcC9jb21pbnQuZWwKKysrIGIvbGlzcC9jb21pbnQuZWwKQEAgLTQyNiw2 ICs0MjYsMTggQEAgY29taW50LXBhc3N3b3JkLXByb21wdC1yZWdleHAKICAgOnR5cGUgJ3Jl Z2V4cAogICA6Z3JvdXAgJ2NvbWludCkKIAorKGRlZmN1c3RvbSBjb21pbnQtcGFzc3dvcmQt cHJvbXB0LW1heC1sZW5ndGggMjU2CisgICJUaGUgbWF4aW11bSBhbW91bnQgb2YgdGV4dCB0 byBleGFtaW5lIHdoZW4gbWF0Y2hpbmcgcGFzc3dvcmQgcHJvbXB0cy4KK1doZW4gbm9uLW5p bCwgb25seSBleGFtaW5lIHRoZSBsYXN0IE4gY2hhcmFjdGVycyBvZiBhIGJsb2NrIG9mIG91 dHB1dC4KK0lmIG5pbCwgZXhhbWluZSBhbGwgdGhlIG91dHB1dC4KKworVGhpcyBpcyB1c2Vk IGJ5IGBjb21pbnQtd2F0Y2gtZm9yLXBhc3N3b3JkLXByb21wdCcgdG8gcmVkdWNlIHRoZSBh bW91bnQKK29mIHRpbWUgc3BlbnQgc2VhcmNoaW5nIGZvciBwYXNzd29yZCBwcm9tcHRzLiIK KyAgOnZlcnNpb24gIjMwLjEiCisgIDp0eXBlICcoY2hvaWNlIG5hdG51bQorICAgICAgICAg ICAgICAgICAoY29uc3QgOnRhZyAiRXhhbWluZSBhbGwgb3V0cHV0IiBuaWwpKQorICA6Z3Jv dXAgJ2NvbWludCkKKwogOzsgSGVyZSBhcmUgdGhlIHBlci1pbnRlcnByZXRlciBob29rcy4K IChkZWZ2YXIgY29taW50LWdldC1vbGQtaW5wdXQgKGZ1bmN0aW9uIGNvbWludC1nZXQtb2xk LWlucHV0LWRlZmF1bHQpCiAgICJGdW5jdGlvbiB0aGF0IHJldHVybnMgb2xkIHRleHQgaW4g Q29taW50IG1vZGUuCkBAIC0yNTYzLDIzICsyNTc1LDI2IEBAIGNvbWludC13YXRjaC1mb3It cGFzc3dvcmQtcHJvbXB0CiBjYXJyaWFnZSByZXR1cm5zIChcXHIpIGluIFNUUklORy4KIAog VGhpcyBmdW5jdGlvbiBjb3VsZCBiZSBpbiB0aGUgbGlzdCBgY29taW50LW91dHB1dC1maWx0 ZXItZnVuY3Rpb25zJy4iCi0gICh3aGVuIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpKQot CSAgKHN0cmluZy1tYXRjaCBjb21pbnQtcGFzc3dvcmQtcHJvbXB0LXJlZ2V4cAotICAgICAg ICAgICAgICAgICAgICAgICAgKHN0cmluZy1yZXBsYWNlICJcciIgIiIgc3RyaW5nKSkpCi0g ICAgOzsgVXNlIGBydW4tYXQtdGltZScgaW4gb3JkZXIgbm90IHRvIHBhdXNlIGV4ZWN1dGlv biBvZiB0aGUKLSAgICA7OyBwcm9jZXNzIGZpbHRlciB3aXRoIGEgbWluaWJ1ZmZlcgotICAg IChydW4tYXQtdGltZQotICAgICAwIG5pbAotICAgICAobGFtYmRhIChjdXJyZW50LWJ1ZikK LSAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBjdXJyZW50LWJ1ZgotICAgICAgICAgKGxl dCAoKGNvbWludC0tcHJvbXB0LXJlY3Vyc2lvbi1kZXB0aAotICAgICAgICAgICAgICAgICgx KyBjb21pbnQtLXByb21wdC1yZWN1cnNpb24tZGVwdGgpKSkKLSAgICAgICAgICAgKGlmICg+ IGNvbWludC0tcHJvbXB0LXJlY3Vyc2lvbi1kZXB0aCAxMCkKLSAgICAgICAgICAgICAgICht ZXNzYWdlICJQYXNzd29yZCBwcm9tcHQgcmVjdXJzaW9uIHRvbyBkZWVwIikKLSAgICAgICAg ICAgICAod2hlbiAoZ2V0LWJ1ZmZlci1wcm9jZXNzIChjdXJyZW50LWJ1ZmZlcikpCi0gICAg ICAgICAgICAgICAoY29taW50LXNlbmQtaW52aXNpYmxlCi0gICAgICAgICAgICAgICAgKHN0 cmluZy10cmltIHN0cmluZyAiWyBcblxyXHRcdlxmXGJcYV0rIiAiXG4rIikpKSkpKSkKLSAg ICAgKGN1cnJlbnQtYnVmZmVyKSkpKQorICAobGV0ICgoc3RyaW5nIChzdHJpbmctbGltaXQg c3RyaW5nIGNvbWludC1wYXNzd29yZC1wcm9tcHQtbWF4LWxlbmd0aCB0KSkKKyAgICAgICAg cHJvbXB0KQorICAgICh3aGVuIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpKQorICAgICAg ICAgICAgKHN0cmluZy1tYXRjaCBjb21pbnQtcGFzc3dvcmQtcHJvbXB0LXJlZ2V4cAorICAg ICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLXJlcGxhY2UgIlxyIiAiIiBzdHJpbmcp KSkKKyAgICAgIChzZXRxIHByb21wdCAoc3RyaW5nLXRyaW0gKG1hdGNoLXN0cmluZyAwIHN0 cmluZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlsgXG5cclx0XHZcZlxi XGFdKyIgIlxuKyIpKQorICAgICAgOzsgVXNlIGBydW4tYXQtdGltZScgaW4gb3JkZXIgbm90 IHRvIHBhdXNlIGV4ZWN1dGlvbiBvZiB0aGUKKyAgICAgIDs7IHByb2Nlc3MgZmlsdGVyIHdp dGggYSBtaW5pYnVmZmVyCisgICAgICAocnVuLWF0LXRpbWUKKyAgICAgICAwIG5pbAorICAg ICAgIChsYW1iZGEgKGN1cnJlbnQtYnVmKQorICAgICAgICAgKHdpdGgtY3VycmVudC1idWZm ZXIgY3VycmVudC1idWYKKyAgICAgICAgICAgKGxldCAoKGNvbWludC0tcHJvbXB0LXJlY3Vy c2lvbi1kZXB0aAorICAgICAgICAgICAgICAgICAgKDErIGNvbWludC0tcHJvbXB0LXJlY3Vy c2lvbi1kZXB0aCkpKQorICAgICAgICAgICAgIChpZiAoPiBjb21pbnQtLXByb21wdC1yZWN1 cnNpb24tZGVwdGggMTApCisgICAgICAgICAgICAgICAgIChtZXNzYWdlICJQYXNzd29yZCBw cm9tcHQgcmVjdXJzaW9uIHRvbyBkZWVwIikKKyAgICAgICAgICAgICAgICh3aGVuIChnZXQt YnVmZmVyLXByb2Nlc3MgKGN1cnJlbnQtYnVmZmVyKSkKKyAgICAgICAgICAgICAgICAgKGNv bWludC1zZW5kLWludmlzaWJsZSBwcm9tcHQpKSkpKSkKKyAgICAgICAoY3VycmVudC1idWZm ZXIpKSkpKQogDAogOzsgTG93LWxldmVsIHByb2Nlc3MgY29tbXVuaWNhdGlvbgogCmRpZmYg LS1naXQgYS9saXNwL2VzaGVsbC9lc2gtbW9kZS5lbCBiL2xpc3AvZXNoZWxsL2VzaC1tb2Rl LmVsCmluZGV4IGVjMWEwN2I3ZTJmLi41NjAzZmVmOTBhNCAxMDA2NDQKLS0tIGEvbGlzcC9l c2hlbGwvZXNoLW1vZGUuZWwKKysrIGIvbGlzcC9lc2hlbGwvZXNoLW1vZGUuZWwKQEAgLTE4 Miw2ICsxODIsMTggQEAgZXNoZWxsLXBhc3N3b3JkLXByb21wdC1yZWdleHAKICAgOnR5cGUg J3JlZ2V4cAogICA6dmVyc2lvbiAiMjcuMSIpCiAKKyhkZWZjdXN0b20gZXNoZWxsLXBhc3N3 b3JkLXByb21wdC1tYXgtbGVuZ3RoIDI1NgorICAiVGhlIG1heGltdW0gYW1vdW50IG9mIHRl eHQgdG8gZXhhbWluZSB3aGVuIG1hdGNoaW5nIHBhc3N3b3JkIHByb21wdHMuCitXaGVuIG5v bi1uaWwsIG9ubHkgZXhhbWluZSB0aGUgbGFzdCBOIGNoYXJhY3RlcnMgb2YgYSBibG9jayBv ZiBvdXRwdXQuCitJZiBuaWwsIGV4YW1pbmUgYWxsIHRoZSBvdXRwdXQuCisKK1RoaXMgaXMg dXNlZCBieSBgZXNoZWxsLXdhdGNoLWZvci1wYXNzd29yZC1wcm9tcHQnIHRvIHJlZHVjZSB0 aGUgYW1vdW50CitvZiB0aW1lIHNwZW50IHNlYXJjaGluZyBmb3IgcGFzc3dvcmQgcHJvbXB0 cy4iCisgIDp2ZXJzaW9uICIzMC4xIgorICA6dHlwZSAnKGNob2ljZSBuYXRudW0KKyAgICAg ICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkV4YW1pbmUgYWxsIG91dHB1dCIgbmlsKSkKKyAg Omdyb3VwICdjb21pbnQpCisKIChkZWZjdXN0b20gZXNoZWxsLXNraXAtcHJvbXB0LWZ1bmN0 aW9uIG5pbAogICAiQSBmdW5jdGlvbiBjYWxsZWQgZnJvbSBiZWdpbm5pbmcgb2YgbGluZSB0 byBza2lwIHRoZSBwcm9tcHQuIgogICA6dHlwZSAnKGNob2ljZSAoY29uc3QgbmlsKSBmdW5j dGlvbikpCkBAIC05NDksMTkgKzk2MSwyMiBAQCBlc2hlbGwtd2F0Y2gtZm9yLXBhc3N3b3Jk LXByb21wdAogVGhpcyBmdW5jdGlvbiBjb3VsZCBiZSBpbiB0aGUgbGlzdCBgZXNoZWxsLW91 dHB1dC1maWx0ZXItZnVuY3Rpb25zJy4iCiAgICh3aGVuIChlc2hlbGwtaGVhZC1wcm9jZXNz KQogICAgIChzYXZlLWV4Y3Vyc2lvbgotICAgICAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2gg dCkpCi0JKGdvdG8tY2hhciBlc2hlbGwtbGFzdC1vdXRwdXQtYmxvY2stYmVnaW4pCi0JKGJl Z2lubmluZy1vZi1saW5lKQotCShpZiAocmUtc2VhcmNoLWZvcndhcmQgZXNoZWxsLXBhc3N3 b3JkLXByb21wdC1yZWdleHAKLQkJCSAgICAgICBlc2hlbGwtbGFzdC1vdXRwdXQtZW5kIHQp Ci0gICAgICAgICAgICA7OyBVc2UgYHJ1bi1hdC10aW1lJyBpbiBvcmRlciBub3QgdG8gcGF1 c2UgZXhlY3V0aW9uIG9mCi0gICAgICAgICAgICA7OyB0aGUgcHJvY2VzcyBmaWx0ZXIgd2l0 aCBhIG1pbmlidWZmZXIKLQkgICAgKHJ1bi1hdC10aW1lCi0gICAgICAgICAgICAgMCBuaWwK LSAgICAgICAgICAgICAobGFtYmRhIChjdXJyZW50LWJ1ZikKLSAgICAgICAgICAgICAgICh3 aXRoLWN1cnJlbnQtYnVmZmVyIGN1cnJlbnQtYnVmCi0gICAgICAgICAgICAgICAgIChlc2hl bGwtc2VuZC1pbnZpc2libGUpKSkKLSAgICAgICAgICAgICAoY3VycmVudC1idWZmZXIpKSkp KSkpCisgICAgICAoZ290by1jaGFyIChpZiBlc2hlbGwtcGFzc3dvcmQtcHJvbXB0LW1heC1s ZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgIChtYXggZXNoZWxsLWxhc3Qtb3V0cHV0LWJs b2NrLWJlZ2luCisgICAgICAgICAgICAgICAgICAgICAgICAgICgtIGVzaGVsbC1sYXN0LW91 dHB1dC1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXNoZWxsLXBhc3N3b3Jk LXByb21wdC1tYXgtbGVuZ3RoKSkKKyAgICAgICAgICAgICAgICAgICBlc2hlbGwtbGFzdC1v dXRwdXQtYmxvY2stYmVnaW4pKQorICAgICAgKHdoZW4gKGxldCAoKGNhc2UtZm9sZC1zZWFy Y2ggdCkpCisgICAgICAgICAgICAgIChyZS1zZWFyY2gtZm9yd2FyZCBlc2hlbGwtcGFzc3dv cmQtcHJvbXB0LXJlZ2V4cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXNo ZWxsLWxhc3Qtb3V0cHV0LWVuZCB0KSkKKyAgICAgICAgOzsgVXNlIGBydW4tYXQtdGltZScg aW4gb3JkZXIgbm90IHRvIHBhdXNlIGV4ZWN1dGlvbiBvZiB0aGUKKyAgICAgICAgOzsgcHJv Y2VzcyBmaWx0ZXIgd2l0aCBhIG1pbmlidWZmZXIuCisgICAgICAgIChydW4tYXQtdGltZQor ICAgICAgICAgMCBuaWwKKyAgICAgICAgIChsYW1iZGEgKGN1cnJlbnQtYnVmKQorICAgICAg ICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBjdXJyZW50LWJ1ZgorICAgICAgICAgICAgIChl c2hlbGwtc2VuZC1pbnZpc2libGUpKSkKKyAgICAgICAgIChjdXJyZW50LWJ1ZmZlcikpKSkp KQogCiAoY3VzdG9tLWFkZC1vcHRpb24gJ2VzaGVsbC1vdXRwdXQtZmlsdGVyLWZ1bmN0aW9u cwogCQkgICAnZXNoZWxsLXdhdGNoLWZvci1wYXNzd29yZC1wcm9tcHQpCi0tIAoyLjI1LjEK Cg== --------------RO9GwwTGaLuRfEcC7HfCkltz--