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.devel Subject: [RFC] Explicity-remote commands in Eshell Date: Sun, 5 Mar 2023 18:35:43 -0800 Message-ID: <0298a618-645c-a0c0-172b-9a0491462959@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------oMEEy0X0PhopjAFDwLi0WBFd" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29659"; mail-complaints-to="usenet@ciao.gmane.io" Cc: michael.albinus@gmx.de To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Mar 06 03:36:43 2023 Return-path: Envelope-to: ged-emacs-devel@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 1pZ0iR-0007aX-7N for ged-emacs-devel@m.gmane-mx.org; Mon, 06 Mar 2023 03:36:43 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pZ0hZ-00077o-Ns; Sun, 05 Mar 2023 21:35:49 -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 1pZ0hX-00077I-He for emacs-devel@gnu.org; Sun, 05 Mar 2023 21:35:47 -0500 Original-Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pZ0hV-00019R-Lg for emacs-devel@gnu.org; Sun, 05 Mar 2023 21:35:47 -0500 Original-Received: by mail-pj1-x1032.google.com with SMTP id p3-20020a17090ad30300b0023a1cd5065fso7590495pju.0 for ; Sun, 05 Mar 2023 18:35:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678070144; h=cc:to:subject:from:content-language:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=jdGZC5Uww7keSkCntlZx/nagxggHLiYslrCrOqsaAJk=; b=YEYoCO+9LMuL7E7cMQgkI0dTrd2oPgNKAYRRZFsBos+OCNCgfzXBbvBbashXgz7pr3 atubLmijbCYV+DVjh72c2c1pNlRQfJ1ghMe0zIBV3Ib6wv+AuSIkIE4kHJtU2YBJq72c TMqlhyihoOwVdk3nhxTRyPWemsFhnu+ci5khpjXthxLltkoGX4rwhJO+hQ9pqHr+1Goh hHv4jZSZgMrOs1A3MOZWNsK6azMGJHWiw+5rHtbtGaBSIZgtc7/4Ok0u+cdC2X28CVc+ /VPhJmf4YuFB+bA3zLN3MRwhaaO+/ESFkmbGRmyP+H5d3LWovIi1vHBPtPWyYNJYKprc EE5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678070144; h=cc:to:subject:from:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=jdGZC5Uww7keSkCntlZx/nagxggHLiYslrCrOqsaAJk=; b=bw6jT+IM8o5hD+7xV4cU5CMbBJvzUbK6tYc4Z1ZFOVrDE7n9wSSYVLTOn15ceh3R0t z6Aq9aiAatdZCBlmXdupuy0HUw3LsqylvzvAI+S0T6cskZLo/jFJe4h9VggyCO5tmgQI luWiTHio2dbmXCQ65HRUwJNaVWokCfkgZshlDWcbcySo3FpB7oDinfyHMqdo/JURjIjN oog2TOQzKfE3BDj2oYi+IJa+OmpzD9WNPqW68p/CdInSN5ETjgusP/c5go6K5pKkn1BF L+b/inzJewIeO3pws435AeNx9m+ICAx+fZ1/8wdQUPA4LwyL1ZydAZChpQsMurKIl6a3 4mJw== X-Gm-Message-State: AO0yUKWJf78EtRWdJIQSuMfQGX8/owJDjD95uXqUHqu4E1funqz3N2Oq vJOxRa3p48/dvwsR8qsoBEIzHDIKcgk= X-Google-Smtp-Source: AK7set+LZ55XqFbw8agiUss8h83m71QC7IcfgJTINLlF3ryZ52/wfR7Kt+Bqy9O6IvcUXYdgZaBMnQ== X-Received: by 2002:a05:6a20:7785:b0:c7:13be:6de9 with SMTP id c5-20020a056a20778500b000c713be6de9mr7653509pzg.14.1678070144060; Sun, 05 Mar 2023 18:35:44 -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 e1-20020a631e01000000b004fb681ea0e1sm5124377pge.84.2023.03.05.18.35.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 05 Mar 2023 18:35:43 -0800 (PST) X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=jporterbugs@gmail.com; helo=mail-pj1-x1032.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 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:304013 Archived-At: This is a multi-part message in MIME format. --------------oMEEy0X0PhopjAFDwLi0WBFd Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit One of the nice features of Eshell is that since it's aware of Tramp, connecting to a different machine (or changing users on a machine) is just a matter of cd'ing into a remote directory: cd /ssh:user@somewhere:~/some/dir In addition, Eshell routes data in pipelines through buffers. In principle, this means it should be easy to build cross-host pipelines in Eshell, where the output of a command on host A is piped into the input of a command on host B. However, it's not easy to spell this in Eshell; the best I can come up with is to use a subshell like this: {cd /ssh:user@somewhere: && remote-command} | local-command Instead, I think we could make this easier: /ssh:user@somewhere:remote-command | local-command What do people think of the above syntax? It's a little bit different from the usual Tramp syntax, since the local part shouldn't be expanded using 'expand-file-name'; it's an executable somewhere on the remote $PATH. I can't think of any problems with supporting this syntax in Eshell[1], but I'm interested to hear others' thoughts. Attached is a patch demonstrating this. The only non-Eshell change I had to make was to enhance 'file-remote-p' so that I can tell Tramp not to call 'expand-file-name'. As a footnote: you might wonder how to execute a program on your local host when the current Eshell directory is remote. In my patch, I chose to do this via quoted file names: /:local-command [1] Tramp shouldn't need to know about this syntax in other places. It can just be something Eshell understands. --------------oMEEy0X0PhopjAFDwLi0WBFd Content-Type: text/plain; charset=UTF-8; name="0001-Add-support-for-explicitly-remote-commands-in-Eshell.patch" Content-Disposition: attachment; filename*0="0001-Add-support-for-explicitly-remote-commands-in-Eshell.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2NzY2NTllYmNiZjJjYWJjNWU2MDY2MjBmZGQ1OGUzZjQ5ODIyNWY5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFN1biwgMjIgSmFuIDIwMjMgMjI6NDU6NDAgLTA4MDAKU3ViamVjdDogW1BB VENIXSBBZGQgc3VwcG9ydCBmb3IgZXhwbGljaXRseS1yZW1vdGUgY29tbWFuZHMgaW4gRXNo ZWxsCgoqIGxpc3AvZmlsZXMuZWwgKGZpbGUtcmVtb3RlLXApOiBEb2N1bWVudCAnbmV2ZXIn IGZvciBDT05ORUNURUQKYXJndW1lbnQuCgoqIGxpc3AvbmV0L3RyYW1wLmVsICh0cmFtcC1o YW5kbGUtZmlsZS1yZW1vdGUtcCk6IEhhbmRsZSBDT05ORUNURUQKdmFsdWUgb2YgJ25ldmVy Jy4KCiogbGlzcC9lc2hlbGwvZXNoLWV4dC5lbCAoZXNoZWxsLWV4cGxpY2l0LXJlbW90ZS1j b21tYW5kcyk6IE5ldwpvcHRpb24uCihlc2hlbGwtZXh0LWluaXRpYWxpemUpOiBBcHBseSAn ZXNoZWxsLWhhbmRsZS1yZW1vdGUtY29tbWFuZCcgd2hlbgpyZXF1ZXN0ZWQuCihlc2hlbGwt aGFuZGxlLXJlbW90ZS1jb21tYW5kKTogTmV3IGZ1bmN0aW9uLgooZXNoZWxsLXJlbW90ZS1j b21tYW5kKTogUmVpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbiBhbmQgZGlzcGF0Y2ggdG8KJ2Vz aGVsbC1leHRlcm5hbC1jb21tYW5kJywgd2hpY2ggY2FuIGhhbmRsZSByZW1vdGUgcHJvY2Vz c2VzIG9uIGl0cwpvd24uCi0tLQogbGlzcC9lc2hlbGwvZXNoLWV4dC5lbCB8IDU4ICsrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogbGlzcC9maWxlcy5lbCAg ICAgICAgICB8ICA0ICsrLQogbGlzcC9uZXQvdHJhbXAuZWwgICAgICB8ICA1ICsrLS0KIDMg ZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbGlzcC9lc2hlbGwvZXNoLWV4dC5lbCBiL2xpc3AvZXNoZWxsL2VzaC1leHQu ZWwKaW5kZXggZjM1MDYyMmU3OGMuLmQ3MjBjZGUwZGQyIDEwMDY0NAotLS0gYS9saXNwL2Vz aGVsbC9lc2gtZXh0LmVsCisrKyBiL2xpc3AvZXNoZWxsL2VzaC1leHQuZWwKQEAgLTE2OCwx MSArMTY4LDIzIEBAIGVzaGVsbC1leHBsaWNpdC1jb21tYW5kLWNoYXIKICAgOnR5cGUgJ2No YXJhY3RlcgogICA6Z3JvdXAgJ2VzaGVsbC1leHQpCiAKKyhkZWZjdXN0b20gZXNoZWxsLWV4 cGxpY2l0LXJlbW90ZS1jb21tYW5kcyB0CisgICJJZiBub24tbmlsLCBzdXBwb3J0IGV4cGxp Y2l0bHktcmVtb3RlIGNvbW1hbmRzLgorVGhlc2UgYXJlIGNvbW1hbmRzIHdpdGggYSBmdWxs IHJlbW90ZSBmaWxlIG5hbWUsIHN1Y2ggYXMKK1wiL3NzaDpob3N0Ondob2FtaVwiLiAgSWYg dGhpcyBpcyBlbmFibGVkLCB5b3UgY2FuIGFsc28gcnVuCitleHBsaWNpdGx5LWxvY2FsIGNv bW1hbmRzIGJ5IHVzaW5nIGEgcXVvdGVkIGZpbGUgbmFtZSwgbGlrZQorXCIvOndob2FtaVwi LiIKKyAgOnR5cGUgJ2Jvb2xlYW4KKyAgOmdyb3VwICdlc2hlbGwtZXh0KQorCiA7OzsgRnVu Y3Rpb25zOgogCiAoZGVmdW4gZXNoZWxsLWV4dC1pbml0aWFsaXplICgpICAgICA7Q2FsbGVk IGZyb20gYGVzaGVsbC1tb2RlJyB2aWEgaW50ZXJuLXNvZnQhCiAgICJJbml0aWFsaXplIHRo ZSBleHRlcm5hbCBjb21tYW5kIGhhbmRsaW5nIGNvZGUuIgotICAoYWRkLWhvb2sgJ2VzaGVs bC1uYW1lZC1jb21tYW5kLWhvb2sgIydlc2hlbGwtZXhwbGljaXQtY29tbWFuZCBuaWwgdCkp CisgIChhZGQtaG9vayAnZXNoZWxsLW5hbWVkLWNvbW1hbmQtaG9vayAjJ2VzaGVsbC1leHBs aWNpdC1jb21tYW5kIG5pbCB0KQorICAod2hlbiBlc2hlbGwtZXhwbGljaXQtcmVtb3RlLWNv bW1hbmRzCisgICAgKGFkZC1ob29rICdlc2hlbGwtbmFtZWQtY29tbWFuZC1ob29rCisgICAg ICAgICAgICAgICMnZXNoZWxsLWhhbmRsZS1yZW1vdGUtY29tbWFuZCBuaWwgdCkpKQogCiAo ZGVmdW4gZXNoZWxsLWV4cGxpY2l0LWNvbW1hbmQgKGNvbW1hbmQgYXJncykKICAgIklmIGEg Y29tbWFuZCBuYW1lIGJlZ2lucyB3aXRoIGAqJywgY2FsbCBpdCBleHRlcm5hbGx5IGFsd2F5 cy4KQEAgLTE4NiwzMCArMTk4LDMyIEBAIGVzaGVsbC1leHBsaWNpdC1jb21tYW5kCiAJKGVy cm9yICIlczogZXh0ZXJuYWwgY29tbWFuZCBub3QgZm91bmQiCiAJICAgICAgIChzdWJzdHJp bmcgY29tbWFuZCAxKSkpKSkpCiAKKyhkZWZ1biBlc2hlbGwtaGFuZGxlLXJlbW90ZS1jb21t YW5kIChjb21tYW5kIGFyZ3MpCisgICJIYW5kbGUgcmVtb3RlIChvciBxdW90ZWQpIENPTU1B TkQgbmFtZXMsIHVzaW5nIEFSR1MuCitUaGlzIGNhbGxzIHRoZSBhcHByb3ByaWF0ZSBmdW5j dGlvbiBmb3IgY29tbWFuZHMgdGhhdCBhcmVuJ3Qgb24KK3RoZSBjb25uZWN0aW9uIGFzc29j aWF0ZWQgd2l0aCBgZGVmYXVsdC1kaXJlY3RvcnknLiAgKFNlZQorYGVzaGVsbC1leHBsaWNp dC1yZW1vdGUtY29tbWFuZHMnLikiCisgIChpZiAoZmlsZS1uYW1lLXF1b3RlZC1wIGNvbW1h bmQpCisgICAgICAobGV0ICgoZGVmYXVsdC1kaXJlY3RvcnkgKGlmIChmaWxlLXJlbW90ZS1w IGRlZmF1bHQtZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZXhwYW5kLWZpbGUtbmFtZSAifiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZWZhdWx0LWRpcmVjdG9yeSkpKQorICAgICAgICAoZXNoZWxsLWV4dGVybmFsLWNv bW1hbmQgKGZpbGUtbmFtZS11bnF1b3RlIGNvbW1hbmQpIGFyZ3MpKQorICAgICh3aGVuIChm aWxlLXJlbW90ZS1wIGNvbW1hbmQpCisgICAgICAoZXNoZWxsLXJlbW90ZS1jb21tYW5kIGNv bW1hbmQgYXJncykpKSkKKwogKGRlZnVuIGVzaGVsbC1yZW1vdGUtY29tbWFuZCAoY29tbWFu ZCBhcmdzKQogICAiSW5zZXJ0IG91dHB1dCBmcm9tIGEgcmVtb3RlIENPTU1BTkQsIHVzaW5n IEFSR1MuCiBBIHJlbW90ZSBjb21tYW5kIGlzIHNvbWV0aGluZyB0aGF0IGV4ZWN1dGVzIG9u IGEgZGlmZmVyZW50IG1hY2hpbmUuCi1BbiBleHRlcm5hbCBjb21tYW5kIHNpbXBseSBtZWFu cyBleHRlcm5hbCB0byBFbWFjcy4KLQotTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgdmVy eSBjcnVkZSBhdCB0aGUgbW9tZW50LiAgSXQgZ2F0aGVycyB1cAotYWxsIHRoZSBvdXRwdXQg ZnJvbSB0aGUgcmVtb3RlIGNvbW1hbmQsIGFuZCBzZW5kcyBpdCBhbGwgYXQgb25jZSwKLWNh dXNpbmcgdGhlIHVzZXIgdG8gd29uZGVyIGlmIGFueXRoaW5nJ3MgcmVhbGx5IGdvaW5nIG9u Li4uIgotICAobGV0ICgob3V0YnVmIChnZW5lcmF0ZS1uZXctYnVmZmVyICIgKmVzaGVsbCBy ZW1vdGUgb3V0cHV0KiIpKQotCShlcnJidWYgKGdlbmVyYXRlLW5ldy1idWZmZXIgIiAqZXNo ZWxsIHJlbW90ZSBlcnJvcioiKSkKLQkoY29tbWFuZCAoZmlsZS1sb2NhbC1uYW1lIGNvbW1h bmQpKQotCShleGl0Y29kZSAxKSkKLSAgICAodW53aW5kLXByb3RlY3QKLQkocHJvZ24KLQkg IChzZXRxIGV4aXRjb2RlCi0JCShzaGVsbC1jb21tYW5kCi0JCSAobWFwY29uY2F0ICMnc2hl bGwtcXVvdGUtYXJndW1lbnQKLQkJCSAgICAoYXBwZW5kIChsaXN0IGNvbW1hbmQpIGFyZ3Mp ICIgIikKLQkJIG91dGJ1ZiBlcnJidWYpKQotCSAgKGVzaGVsbC1wcmludCAod2l0aC1jdXJy ZW50LWJ1ZmZlciBvdXRidWYgKGJ1ZmZlci1zdHJpbmcpKSkKLQkgIChlc2hlbGwtZXJyb3Ig KHdpdGgtY3VycmVudC1idWZmZXIgZXJyYnVmIChidWZmZXItc3RyaW5nKSkpKQotICAgICAg KGVzaGVsbC1jbG9zZS1oYW5kbGVzIGV4aXRjb2RlICduaWwpCi0gICAgICAoa2lsbC1idWZm ZXIgb3V0YnVmKQotICAgICAgKGtpbGwtYnVmZmVyIGVycmJ1ZikpKSkKK0FuIGV4dGVybmFs IGNvbW1hbmQgc2ltcGx5IG1lYW5zIGV4dGVybmFsIHRvIEVtYWNzLiIKKyAgKGxldCogKChj d2QtY29ubmVjdGlvbiAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0LWRpcmVjdG9yeSkpCisgICAg ICAgICAoY29tbWFuZC1jb25uZWN0aW9uIChmaWxlLXJlbW90ZS1wIGNvbW1hbmQpKQorICAg ICAgICAgKGRlZmF1bHQtZGlyZWN0b3J5IChpZiAoZXF1YWwgY3dkLWNvbm5lY3Rpb24gY29t bWFuZC1jb25uZWN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh dWx0LWRpcmVjdG9yeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZC1j b25uZWN0aW9uKSkKKyAgICAgICAgIChjb21tYW5kLWxvY2FsbmFtZSAoZmlsZS1yZW1vdGUt cCBjb21tYW5kICdsb2NhbG5hbWUgJ25ldmVyKSkpCisgICAgKHVubGVzcyBjb21tYW5kLWNv bm5lY3Rpb24KKyAgICAgIChlcnJvciAiJXM6IG5vdCBhIHJlbW90ZSBjb21tYW5kIiBjb21t YW5kKSkKKyAgICAoZXNoZWxsLWV4dGVybmFsLWNvbW1hbmQgY29tbWFuZC1sb2NhbG5hbWUg YXJncykpKQogCiAoZGVmdW4gZXNoZWxsLWV4dGVybmFsLWNvbW1hbmQgKGNvbW1hbmQgYXJn cykKICAgIkluc2VydCBvdXRwdXQgZnJvbSBhbiBleHRlcm5hbCBDT01NQU5ELCB1c2luZyBB UkdTLiIKZGlmZiAtLWdpdCBhL2xpc3AvZmlsZXMuZWwgYi9saXNwL2ZpbGVzLmVsCmluZGV4 IDM4N2EzYjVkYzY2Li5lNWNiNzc1ZWI2ZCAxMDA2NDQKLS0tIGEvbGlzcC9maWxlcy5lbAor KysgYi9saXNwL2ZpbGVzLmVsCkBAIC0xMjY3LDcgKzEyNjcsOSBAQCBmaWxlLXJlbW90ZS1w CiAKIElmIENPTk5FQ1RFRCBpcyBub24tbmlsLCByZXR1cm4gYW4gaWRlbnRpZmljYXRpb24g b25seSBpZiBGSUxFIGlzCiBsb2NhdGVkIG9uIGEgcmVtb3RlIHN5c3RlbSBhbmQgYSBjb25u ZWN0aW9uIGlzIGVzdGFibGlzaGVkIHRvCi10aGF0IHJlbW90ZSBzeXN0ZW0uCit0aGF0IHJl bW90ZSBzeXN0ZW0uICBJZiBDT05ORUNURUQgaXMgYG5ldmVyJywgbmV2ZXIgdXNlIGFuCitl eGlzdGluZyBjb25uZWN0aW9uIHRvIHJldHVybiB0aGUgaWRlbnRpZmljYXRpb24gKHRoaXMg aXMKK290aGVyd2lzZSBsaWtlIGEgdmFsdWUgb2YgbmlsKS4KIAogVGlwOiBZb3UgY2FuIHVz ZSB0aGlzIGV4cGFuc2lvbiBvZiByZW1vdGUgaWRlbnRpZmllciBjb21wb25lbnRzCiAgICAg IHRvIGRlcml2ZSBhIG5ldyByZW1vdGUgZmlsZSBuYW1lIGZyb20gYW4gZXhpc3Rpbmcgb25l LiAgRm9yCmRpZmYgLS1naXQgYS9saXNwL25ldC90cmFtcC5lbCBiL2xpc3AvbmV0L3RyYW1w LmVsCmluZGV4IDQ3MTczYjk1YmVhLi5lMmIwZTZiZmZhMCAxMDA2NDQKLS0tIGEvbGlzcC9u ZXQvdHJhbXAuZWwKKysrIGIvbGlzcC9uZXQvdHJhbXAuZWwKQEAgLTQyNjksMTMgKzQyNjks MTQgQEAgdHJhbXAtaGFuZGxlLWZpbGUtcmVtb3RlLXAKICAgKGxldCAoKHRyYW1wLXZlcmJv c2UgKG1pbiB0cmFtcC12ZXJib3NlIDMpKSkKICAgICAod2hlbiAodHJhbXAtdHJhbXAtZmls ZS1wIGZpbGVuYW1lKQogICAgICAgKGxldCogKChvICh0cmFtcC1kaXNzZWN0LWZpbGUtbmFt ZSBmaWxlbmFtZSkpCi0JICAgICAocCAodHJhbXAtZ2V0LWNvbm5lY3Rpb24tcHJvY2VzcyBv KSkKKwkgICAgIChwIChhbmQgKG5vdCAoZXEgY29ubmVjdGVkICduZXZlcikpCisgICAgICAg ICAgICAgICAgICAgICAodHJhbXAtZ2V0LWNvbm5lY3Rpb24tcHJvY2VzcyBvKSkpCiAJICAg ICAoYyAoYW5kIChwcm9jZXNzLWxpdmUtcCBwKQogCQkgICAgICh0cmFtcC1nZXQtY29ubmVj dGlvbi1wcm9wZXJ0eSBwICJjb25uZWN0ZWQiKSkpKQogCTs7IFdlIGV4cGFuZCB0aGUgZmls ZSBuYW1lIG9ubHksIGlmIHRoZXJlIGlzIGFscmVhZHkgYSBjb25uZWN0aW9uLgogCSh3aXRo LXBhcnNlZC10cmFtcC1maWxlLW5hbWUKIAkgICAgKGlmIGMgKGV4cGFuZC1maWxlLW5hbWUg ZmlsZW5hbWUpIGZpbGVuYW1lKSBuaWwKLQkgIChhbmQgKG9yIChub3QgY29ubmVjdGVkKSBj KQorCSAgKGFuZCAob3IgKG1lbXEgY29ubmVjdGVkICcobmlsIG5ldmVyKSkgYykKIAkgICAg ICAgKGNvbmQKIAkJKChlcSBpZGVudGlmaWNhdGlvbiAnbWV0aG9kKSBtZXRob2QpCiAJCTs7 IERvbWFpbiBhbmQgcG9ydCBhcmUgYXBwZW5kZWQgdG8gdXNlciBhbmQgaG9zdCwKLS0gCjIu MjUuMQoK --------------oMEEy0X0PhopjAFDwLi0WBFd--