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#59469: Adding a simpler duplication of the issue Date: Tue, 24 Jan 2023 17:39:26 -0800 Message-ID: <68ce6804-885d-01ce-2d37-461cd3aa33af@gmail.com> References: <136fc764-48a4-4b03-c520-bd6ef16d9a50@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------rYLgYRu4h0Rlyi0dteYFIoi8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24378"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 59469@debbugs.gnu.org To: Milan Zimmermann Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Jan 25 02:40:30 2023 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 1pKUm5-0006CB-6C for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 25 Jan 2023 02:40:29 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pKUlo-0001gM-27; Tue, 24 Jan 2023 20:40:12 -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 1pKUle-0001eR-7s for bug-gnu-emacs@gnu.org; Tue, 24 Jan 2023 20:40:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pKUld-0008Uy-Sa for bug-gnu-emacs@gnu.org; Tue, 24 Jan 2023 20:40:01 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pKUld-0007on-JG for bug-gnu-emacs@gnu.org; Tue, 24 Jan 2023 20:40:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 25 Jan 2023 01:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59469 X-GNU-PR-Package: emacs Original-Received: via spool by 59469-submit@debbugs.gnu.org id=B59469.167461077630013 (code B ref 59469); Wed, 25 Jan 2023 01:40:01 +0000 Original-Received: (at 59469) by debbugs.gnu.org; 25 Jan 2023 01:39:36 +0000 Original-Received: from localhost ([127.0.0.1]:57913 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pKUlD-0007nz-Mn for submit@debbugs.gnu.org; Tue, 24 Jan 2023 20:39:36 -0500 Original-Received: from mail-pf1-f170.google.com ([209.85.210.170]:42666) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pKUlC-0007nn-HJ for 59469@debbugs.gnu.org; Tue, 24 Jan 2023 20:39:35 -0500 Original-Received: by mail-pf1-f170.google.com with SMTP id a184so12451054pfa.9 for <59469@debbugs.gnu.org>; Tue, 24 Jan 2023 17:39:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=8ebHM0fzsHKXmaRm7OiErot6irqTqOBd8WtvzvjlMks=; b=dPJJ5DUjX/LEncNuKFRa11BHkEJts0s83RygINASdIq0BTcK40eCleBA5ZwqzI+im0 qoYslI2D65StPYZC9XRt9+C4wGCGdQ6iJJO5uQCnsnV1qKZsFFdHjbMkfX8VFF1Uxrcz X6b7NTuSBmbI7J+WWXqgLk7FFWWu4YBLen4vUTPlrzqhyeSIpLyDa5H7L1KvZRznL+b5 7hqkFFY54cBRZc4/NlYO42SHsAYd80IFnS0ZCIeKAUuya1CQfhbTmDZCE2b3F+HxG80P FOiUnzElrDa1TGGT6Ax90TabXZxONKb9HiwSYX1TBfg+VzMRvKMxnLzFH+T4M4DfPTjM d2Aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=8ebHM0fzsHKXmaRm7OiErot6irqTqOBd8WtvzvjlMks=; b=wiE/dr5d2mJf0mPIgDS1D9GNkOFsOulUpL6heFNjUYTdwKwYTTy0miSSeX66yqyiAd Ges2tA9xu98PQw1l2OSJObOE0ddvVe5WNSrcQuTIMXIB63fFclYPo5nfZuv8+7BQ6AOH ZdKhAAQZ/WaocwwWTdPMyqHbE4a9mbt7rotO/EztapgzI/39wCvSkJM1+A9hQM/GSNgK GCldiSmv78laMVhRIq3tyB0fG34qLpSlI9G0ihkQ6rJfgSxjvqHGk2u85HBvRHpJeCm5 8zNMrRHo8rrA5VTe24nBLwRYI9dXD48o8kXmGvs3kLjMMjv7MTxvqIv7tgJ1VqjpO+CK oTxQ== X-Gm-Message-State: AFqh2kqmeRZrtJayvRVHDKlgWZC/4Vpfl2DNizKCsJL0zbzKIYOovAny OzGKQn3PN53Lh46nK3FUICs= X-Google-Smtp-Source: AMrXdXuzuJY7Zn5dBi9BwbYvzFm9ZOXXacb0DMNksbDqQiCQal4vHhnOcYtXfQAFJTu/S/nmIau5rg== X-Received: by 2002:a05:6a00:1887:b0:58c:b0a:e504 with SMTP id x7-20020a056a00188700b0058c0b0ae504mr40487078pfh.18.1674610768663; Tue, 24 Jan 2023 17:39:28 -0800 (PST) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id n37-20020a056a000d6500b0058215708d57sm2336558pfv.141.2023.01.24.17.39.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 24 Jan 2023 17:39:27 -0800 (PST) Content-Language: en-US In-Reply-To: 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:254088 Archived-At: This is a multi-part message in MIME format. --------------rYLgYRu4h0Rlyi0dteYFIoi8 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 11/21/2022 11:18 PM, Milan Zimmermann wrote: > But it sounds to me like your intuition about this could be fixed by > rewriting the core 'eshell-do-eval' loop in bug#57635 can be correct.  I > would enjoy helping with  it, but at the moment it is above my time and > elisp abilities. After digging through 'eshell-do-eval' for another issue, I think I mostly understand it now. I still think bug#57635 is the way to go long-term (either that or use real threads), but since that's a big change, it might be best to give users some time where they could opt out of some new Eshell evaluation backend, just in case we break something with it. As such, I want to make sure the existing backend is as bug-free as possible so that (ideally) switching between the two has no behavioral difference. With that said, here's a patch that fixes this, plus a regression test. One question for anyone reviewing the patch: is there a better way to do the "catch and rethrow" dance I do in 'eshell-do-eval'? It seems kind of clumsy... ---------------------------------------- The patch has a description of the problem, but I'll describe it in more detail here for anyone curious. Eshell turns the command in the original message into a form like this (note: this is very approximate): (let ((process-environment process-environment)) (setenv "var" "value") (eshell-external-command "grep") ; This throws 'eshell-defer' (eshell/echo (getenv "var"))) 'eshell-do-eval' gradually steps through this form, evaluating subforms and replacing them with their (quoted) results. This way, when a command throws 'eshell-defer', you can resume this form simply by calling 'eshell-do-eval' again. So at the point 'eshell-defer' gets thrown, the form has been updated to: (let ((process-environment process-environment)) '"value" ; The quoted result of 'setenv' above. (eshell-external-command "grep") (eshell/echo (getenv "var"))) But since 'process-environment' is let-bound, when we resume evaluation, it's as though 'setenv' had never been called at all! The fix here is that when we're inside a 'let' and see 'eshell-defer' get thrown, update the let-bindings in place. So now the updated form would look like: (let ((process-environment (cons "var=value" process-environment))) '"value" ; Not really necessary, but it doesn't hurt anything. (eshell-external-command "grep") (eshell/echo (getenv "var"))) And so with this, it all works. --------------rYLgYRu4h0Rlyi0dteYFIoi8 Content-Type: text/plain; charset=UTF-8; name="0001-Ensure-that-deferred-commands-don-t-make-Eshell-forg.patch" Content-Disposition: attachment; filename*0="0001-Ensure-that-deferred-commands-don-t-make-Eshell-forg.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBlMmVhNWEyNGEwMWQwMDhjN2YyZThkMGRiNTlmMTliOWIwNDJhZjVhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgMjQgSmFuIDIwMjMgMTc6MTQ6NTQgLTA4MDAKU3ViamVjdDogW1BB VENIXSBFbnN1cmUgdGhhdCBkZWZlcnJlZCBjb21tYW5kcyBkb24ndCBtYWtlIEVzaGVsbCBm b3JnZXQKIGxldC1ib3VuZCB2YWx1ZXMKCiogbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCAoZXNo ZWxsLWRvLWV2YWwpOiBQcm92aWRlIG1vcmUgZGV0YWlsIGluCmRvY3N0cmluZy4gIEhhbmRs ZSAnZXNoZWxsLWRlZmVyJyBpbnNpZGUgJ2xldCcgZm9ybXMuCiogdGVzdC9saXNwL2VzaGVs bC9lc2gtY21kLXRlc3RzLmVsCihlc2gtY21kLXRlc3QvbGV0LXJlYmluZHMtYWZ0ZXItZGVm ZXIpOiBOZXcgdGVzdCAoYnVnIzU5NDY5KS4KLS0tCiBsaXNwL2VzaGVsbC9lc2gtY21kLmVs ICAgICAgICAgICAgfCA2MSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiB0ZXN0 L2xpc3AvZXNoZWxsL2VzaC1jbWQtdGVzdHMuZWwgfCAxNyArKysrKysrKysKIDIgZmlsZXMg Y2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCBiL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwKaW5k ZXggOTljM2Q3ZjYyN2QuLjQxNDkzNDA4MWIwIDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9l c2gtY21kLmVsCisrKyBiL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwKQEAgLTEwOTUsOSArMTA5 NSwxNyBAQCBlc2hlbGwtbWFuaXB1bGF0ZQogICAgICAgIChlc2hlbGwtZGVidWctY29tbWFu ZCAsKGNvbmNhdCAiZG9uZSAiIChldmFsIHRhZykpIGZvcm0pKSkpCiAKIChkZWZ1biBlc2hl bGwtZG8tZXZhbCAoZm9ybSAmb3B0aW9uYWwgc3luY2hyb25vdXMtcCkKLSAgIkV2YWx1YXRl IGZvcm0sIHNpbXBsaWZ5aW5nIGl0IGFzIHdlIGdvLgorICAiRXZhbHVhdGUgRk9STSwgc2lt cGxpZnlpbmcgaXQgYXMgd2UgZ28uCiBVbmxlc3MgU1lOQ0hST05PVVMtUCBpcyBub24tbmls LCB0aHJvd3MgYGVzaGVsbC1kZWZlcicgaWYgaXQgbmVlZHMgdG8KLWJlIGZpbmlzaGVkIGxh dGVyIGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIGFuIGFzeW5jaHJvbm91cyBzdWJwcm9jZXNz LiIKK2JlIGZpbmlzaGVkIGxhdGVyIGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIGFuIGFzeW5j aHJvbm91cyBzdWJwcm9jZXNzLgorCitBcyB0aGlzIGZ1bmN0aW9uIGV2YWx1YXRlcyBGT1JN LCBpdCB3aWxsIGdyYWR1YWxseSByZXBsYWNlCitzdWJmb3JtcyB3aXRoIHRoZSAocXVvdGVk KSByZXN1bHQgb2YgZXZhbHVhdGluZyB0aGVtLiAgRm9yCitleGFtcGxlLCBhIGZ1bmN0aW9u IGNhbGwgaXMgcmVwbGFjZWQgd2l0aCB0aGUgcmVzdWx0IG9mIHRoZSBjYWxsLgorVGhpcyBh bGxvd3MgdXMgdG8gcmVzdW1lIGV2YWx1YXRpb24gb2YgRk9STSBhZnRlciBzb21ldGhpbmcK K2luc2lkZSB0aHJvd3MgYGVzaGVsbC1kZWZlcicgc2ltcGx5IGJ5IGNhbGxpbmcgdGhpcyBm dW5jdGlvbgorYWdhaW4uICBBbnkgZm9ybXMgcHJlY2VkaW5nIG9uZSB0aGF0IHRocm93IGBl c2hlbGwtZGVmZXInIHdpbGwKK2hhdmUgYmVlbiByZXBsYWNlZCBieSBjb25zdGFudHMuIgog ICAoY29uZAogICAgKChub3QgKGxpc3RwIGZvcm0pKQogICAgIChsaXN0ICdxdW90ZSAoZXZh bCBmb3JtKSkpCkBAIC0xMTYxLDIxICsxMTY5LDQ4IEBAIGVzaGVsbC1kby1ldmFsCiAJKHNl dGNhciAoY2RyIGFyZ3MpIChlc2hlbGwtZG8tZXZhbCAoY2FkciBhcmdzKSBzeW5jaHJvbm91 cy1wKSkKIAkoZXZhbCBmb3JtKSkKICAgICAgICAoKGVxIChjYXIgZm9ybSkgJ2xldCkKLQko aWYgKG5vdCAoZXEgKGNhciAoY2FkciBhcmdzKSkgJ2VzaGVsbC1kby1ldmFsKSkKLQkgICAg KGVzaGVsbC1tYW5pcHVsYXRlICJldmFsdWF0aW5nIGxldCBhcmdzIgotCSAgICAgIChkb2xp c3QgKGxldGFyZyAoY2FyIGFyZ3MpKQotCQkoaWYgKGFuZCAobGlzdHAgbGV0YXJnKQotCQkJ IChub3QgKGVxIChjYWRyIGxldGFyZykgJ3F1b3RlKSkpCi0JCSAgICAoc2V0Y2RyIGxldGFy ZwotCQkJICAgIChsaXN0IChlc2hlbGwtZG8tZXZhbAotCQkJCSAgIChjYWRyIGxldGFyZykg c3luY2hyb25vdXMtcCkpKSkpKSkKKyAgICAgICAgKHdoZW4gKG5vdCAoZXEgKGNhciAoY2Fk ciBhcmdzKSkgJ2VzaGVsbC1kby1ldmFsKSkKKyAgICAgICAgICAoZXNoZWxsLW1hbmlwdWxh dGUgImV2YWx1YXRpbmcgbGV0IGFyZ3MiCisgICAgICAgICAgICAoZG9saXN0IChsZXRhcmcg KGNhciBhcmdzKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGFuZCAobGlzdHAgbGV0YXJnKQor ICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxIChjYWRyIGxldGFyZykgJ3F1b3Rl KSkpCisgICAgICAgICAgICAgICAgKHNldGNkciBsZXRhcmcKKyAgICAgICAgICAgICAgICAg ICAgICAgIChsaXN0IChlc2hlbGwtZG8tZXZhbAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChjYWRyIGxldGFyZykgc3luY2hyb25vdXMtcCkpKSkpKSkKICAgICAgICAgKGNs LXByb2d2Ci0gICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGJpbmRpbmcpIChpZiAoY29u c3AgYmluZGluZykgKGNhciBiaW5kaW5nKSBiaW5kaW5nKSkKKyAgICAgICAgICAgIChtYXBj YXIgKGxhbWJkYSAoYmluZGluZykKKyAgICAgICAgICAgICAgICAgICAgICAoaWYgKGNvbnNw IGJpbmRpbmcpIChjYXIgYmluZGluZykgYmluZGluZykpCiAgICAgICAgICAgICAgICAgICAg IChjYXIgYXJncykpCiAgICAgICAgICAgICA7OyBUaGVzZSBleHByZXNzaW9ucyBzaG91bGQg YWxsIGJlIGNvbnN0YW50cyBub3cuCi0gICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGJp bmRpbmcpIChpZiAoY29uc3AgYmluZGluZykgKGV2YWwgKGNhZHIgYmluZGluZykpKSkKKyAg ICAgICAgICAgIChtYXBjYXIgKGxhbWJkYSAoYmluZGluZykKKyAgICAgICAgICAgICAgICAg ICAgICAod2hlbiAoY29uc3AgYmluZGluZykgKGV2YWwgKGNhZHIgYmluZGluZykpKSkKICAg ICAgICAgICAgICAgICAgICAgKGNhciBhcmdzKSkKLQkgIChlc2hlbGwtZG8tZXZhbCAobWFj cm9leHAtcHJvZ24gKGNkciBhcmdzKSkgc3luY2hyb25vdXMtcCkpKQorICAgICAgICAgIChs ZXQgKGRlZmVycmVkIHJlc3VsdCkKKyAgICAgICAgICAgIDs7IEV2YWx1YXRlIHRoZSBgbGV0 JyBib2R5LCBjYXRjaGluZyBgZXNoZWxsLWRlZmVyJyBzbyB3ZQorICAgICAgICAgICAgOzsg Y2FuIGhhbmRsZSBpdCBiZWxvdy4KKyAgICAgICAgICAgIChzZXRxIGRlZmVycmVkCisgICAg ICAgICAgICAgICAgICAoY2F0Y2ggJ2VzaGVsbC1kZWZlcgorICAgICAgICAgICAgICAgICAg ICAoaWdub3JlIChzZXRxIHJlc3VsdCAoZXNoZWxsLWRvLWV2YWwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWNyb2V4cC1wcm9nbiAoY2RyIGFyZ3Mp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY2hyb25v dXMtcCkpKSkpCisgICAgICAgICAgICA7OyBJZiBzb21ldGhpbmcgdGhyZXcgYGVzaGVsbC1k ZWZlcicsIHdlIG5lZWQgdG8gdXBkYXRlCisgICAgICAgICAgICA7OyB0aGUgbGV0LWJpbmRp bmdzJyB2YWx1ZXMgc28gdGhhdCB0aG9zZSB2YWx1ZXMgYXJlCisgICAgICAgICAgICA7OyBj b3JyZWN0IHdoZW4gd2UgcmVzdW1lIGV2YWx1YXRpb24gb2YgdGhpcyBmb3JtLgorICAgICAg ICAgICAgKHdoZW4gZGVmZXJyZWQKKyAgICAgICAgICAgICAgKGVzaGVsbC1tYW5pcHVsYXRl ICJyZWJpbmRpbmcgbGV0IGFyZ3MgYWZ0ZXIgYGVzaGVsbC1kZWZlciciCisgICAgICAgICAg ICAgICAgKGxldCAoKGJpbmRpbmdzIChjYXIgYXJncykpKQorICAgICAgICAgICAgICAgICAg KHdoaWxlIGJpbmRpbmdzCisgICAgICAgICAgICAgICAgICAgIChsZXQgKChiaW5kaW5nIChp ZiAoY29uc3AgKGNhciBiaW5kaW5ncykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY2FhciBiaW5kaW5ncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY2FyIGJpbmRpbmdzKSkpKQorICAgICAgICAgICAgICAgICAgICAgIChz ZXRjYXIgYmluZGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGJp bmRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICdxdW90 ZSAoc3ltYm9sLXZhbHVlIGJpbmRpbmcpKSkpKQorICAgICAgICAgICAgICAgICAgICAocG9w IGJpbmRpbmdzKSkpKQorICAgICAgICAgICAgICAodGhyb3cgJ2VzaGVsbC1kZWZlciBkZWZl cnJlZCkpCisgICAgICAgICAgICA7OyBJZiB3ZSBnZXQgaGVyZSwgdGhlcmUgd2FzIG5vIGBl c2hlbGwtZGVmZXInIHRocm93biwgc28KKyAgICAgICAgICAgIDs7IGp1c3QgcmV0dXJuIHRo ZSBgbGV0JyBib2R5J3MgcmVzdWx0LgorICAgICAgICAgICAgcmVzdWx0KSkpCiAgICAgICAg KChtZW1xIChjYXIgZm9ybSkgJyhjYXRjaCBjb25kaXRpb24tY2FzZSB1bndpbmQtcHJvdGVj dCkpCiAJOzsgYGNvbmRpdGlvbi1jYXNlJyBhbmQgYHVud2luZC1wcm90ZWN0JyBoYXZlIHRv IGJlCiAJOzsgaGFuZGxlZCBzcGVjaWFsbHksIGJlY2F1c2Ugd2Ugb25seSB3YW50IHRvIGNh bGwKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lc2hlbGwvZXNoLWNtZC10ZXN0cy5lbCBiL3Rl c3QvbGlzcC9lc2hlbGwvZXNoLWNtZC10ZXN0cy5lbAppbmRleCBiY2VjYzlhNTMxZi4uOTQ3 NjM5NTQ2MjIgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9lc2hlbGwvZXNoLWNtZC10ZXN0cy5l bAorKysgYi90ZXN0L2xpc3AvZXNoZWxsL2VzaC1jbWQtdGVzdHMuZWwKQEAgLTczLDYgKzcz LDIzIEBAIGVzaC1jbWQtdGVzdC9zdWJjb21tYW5kLWxpc3AKIGUuZy4gXCJ7KCsgMSAyKX0g M1wiID0+IDMiCiAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtZXF1YWwgInsoKyAxIDIpfSAz IiAzKSkKIAorKGVydC1kZWZ0ZXN0IGVzaC1jbWQtdGVzdC9sZXQtcmViaW5kcy1hZnRlci1k ZWZlciAoKQorICAiVGVzdCB0aGF0IGxldC1ib3VuZCB2YWx1ZXMgYXJlIHByb3Blcmx5IHVw ZGF0ZWQgYWZ0ZXIgYGVzaGVsbC1kZWZlcicuCitXaGVuIGluc2lkZSBhIGBsZXQnIGJsb2Nr IGluIGFuIEVzaGVsbCBjb21tYW5kIGZvcm0sIHdlIG5lZWQgdG8KK2Vuc3VyZSB0aGF0IGRl ZmVycmVkIGNvbW1hbmRzIHVwZGF0ZSBhbnkgbGV0LWJvdW5kIHZhcmlhYmxlcyBzbwordGhl eSBoYXZlIHRoZSBjb3JyZWN0IHZhbHVlcyB3aGVuIHJlc3VtaW5nIGV2YWx1YXRpb24uICBT ZWUKK2J1ZyM1OTQ2OS4iCisgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kICJlY2hv IikpCisgICh3aXRoLXRlbXAtZXNoZWxsCisgICAoZXNoZWxsLW1hdGNoLWNvbW1hbmQtb3V0 cHV0CisgICAgKGNvbmNhdCAieyIKKyAgICAgICAgICAgICIgIGV4cG9ydCBMT0NBTD12YWx1 ZTsgIgorICAgICAgICAgICAgIiAgZWNobyBcIiRMT0NBTFwiOyAiCisgICAgICAgICAgICAi ICAqZWNobyBleHRlcm5hbDsgIiAgICAgICAgOyBUaGlzIHdpbGwgdGhyb3cgYGVzaGVsbC1k ZWZlcicuCisgICAgICAgICAgICAiICBlY2hvIFwiJExPQ0FMXCI7ICIKKyAgICAgICAgICAg ICJ9IikKKyAgICAidmFsdWVcbmV4dGVybmFsXG52YWx1ZVxuIikpKQorCiAMCiA7OyBMaXNw IGZvcm1zCiAKLS0gCjIuMjUuMQoK --------------rYLgYRu4h0Rlyi0dteYFIoi8--