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#52999: 29.0.50; [PATCH] `eshell-eval-using-options' should follow POSIX/GNU argument conventions Date: Mon, 3 Jan 2022 17:36:06 -0800 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------A8C922D7353326319C324D19" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35821"; mail-complaints-to="usenet@ciao.gmane.io" To: 52999@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jan 04 02:37:32 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 1n4YlW-000946-5z for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 04 Jan 2022 02:37:30 +0100 Original-Received: from localhost ([::1]:60068 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n4YlU-0000ES-H8 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 03 Jan 2022 20:37:28 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:45044) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n4Yl4-0000EK-SF for bug-gnu-emacs@gnu.org; Mon, 03 Jan 2022 20:37:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:53322) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n4Yl4-0004RI-Iz for bug-gnu-emacs@gnu.org; Mon, 03 Jan 2022 20:37:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1n4Yl4-0006zv-IX for bug-gnu-emacs@gnu.org; Mon, 03 Jan 2022 20:37:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 04 Jan 2022 01:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 52999 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.164126017526833 (code B ref -1); Tue, 04 Jan 2022 01:37:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 4 Jan 2022 01:36:15 +0000 Original-Received: from localhost ([127.0.0.1]:36635 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n4YkI-0006yi-AU for submit@debbugs.gnu.org; Mon, 03 Jan 2022 20:36:15 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:33480) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n4YkG-0006yZ-IN for submit@debbugs.gnu.org; Mon, 03 Jan 2022 20:36:13 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:44900) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n4YkG-0000Aa-C2 for bug-gnu-emacs@gnu.org; Mon, 03 Jan 2022 20:36:12 -0500 Original-Received: from [2607:f8b0:4864:20::1034] (port=38555 helo=mail-pj1-x1034.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n4YkD-0003b3-O8 for bug-gnu-emacs@gnu.org; Mon, 03 Jan 2022 20:36:12 -0500 Original-Received: by mail-pj1-x1034.google.com with SMTP id l10-20020a17090a384a00b001b22190e075so33964900pjf.3 for ; Mon, 03 Jan 2022 17:36:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:subject:to:message-id:date:mime-version:content-language; bh=aKNvUR+sV8bLhtVCPq4bwidv9kyjS6OQwZeMQjF88Dg=; b=KIuNH12NPkd09wxFZmL45WwQeIWQA2/Dxk4k28ZA1GO0KjQxfPVrXaeBArLbitkZsg ajyzMkMRbUEXKNGbZ/jEZ4/qp+mTf2xDZsxnzyPLMLNfoGgNWOPRlgaa/T2b6NPLJRwW 8eDxkZU6KLedT1wFT9UsczWq5Ghndb4CqRY8TJriIrHiZTGOcR33EgwJYWBDf29qnNub nzwfcTlArJW/CZMoUogM8+4T9lYPQVO8HvokzPp/MhwPcZcbcxQZBBdb3FQLAFOkgNcV Zj3ie6P1xigsunV/5HrfL8MDxNgaLnsnNUuDZBWH4bp6t6Zm3I3pgEBOZf7tpUHA5LOo sXLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:subject:to:message-id:date:mime-version :content-language; bh=aKNvUR+sV8bLhtVCPq4bwidv9kyjS6OQwZeMQjF88Dg=; b=0lItZCm06s8O3LgkHcCs9PQo7vw1rPDwDW3q1rgAwHL3FY/J0A6RSKcf3RfqnM5a0I f9U05pTf+GD/GN9FB5esPqEHoFTXvkKJxiVJ0TFxhjmhxbDkELVVO168MHxNFMhmU5up W/5VLqY2ZdCb7TYRgGwZl7y/Olv976kLjJQ+taXk4KA6ZJXryWsPmJ9jbc46iiQhBq/O tJwIC/iBYuLnXLiH0A6t7be6FRXqmp/iLyBmKSTUvcaoUaFBhTCQqrIw+XvBiVVXgOKv SEMSgEMf2P95gQBqkrKCIzvv7vDpejoFWwZ/bHuX2DFWvSN8BltdAIRywEEt8bzHYhSa 9AQA== X-Gm-Message-State: AOAM5315CXYcQb9nJK9XD+wqhhpo7MnAofc7nBDxh7ntwSZZqB/DVQoe 1+eFp3grJuDsdIP9M3rkqKxNBhGbg+Q= X-Google-Smtp-Source: ABdhPJxsYG1R19Amdvkcd5D9Titx2vj+KlVz0ROr6X04InBNG15eg9v6So62GwaazmO7vM/nEgj/ZQ== X-Received: by 2002:a17:902:e0c4:b0:148:adfd:a3ff with SMTP id e4-20020a170902e0c400b00148adfda3ffmr48471670pla.103.1641260167966; Mon, 03 Jan 2022 17:36:07 -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 q9sm35883729pjg.1.2022.01.03.17.36.06 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 03 Jan 2022 17:36:07 -0800 (PST) X-Mozilla-News-Host: news://news.gmane.org:119 Content-Language: en-US X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::1034 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=jporterbugs@gmail.com; helo=mail-pj1-x1034.google.com X-Spam_score_int: 6 X-Spam_score: 0.6 X-Spam_bar: / X-Spam_report: (0.6 / 5.0 requ) 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, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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" Xref: news.gmane.io gmane.emacs.bugs:223619 Archived-At: This is a multi-part message in MIME format. --------------A8C922D7353326319C324D19 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Currently, `eshell-eval-using-options' doesn't follow POSIX/GNU argument conventions[1], resulting in some confusing behavior. To see this in action, the easiest way is probably to make a small patch to `eshell-do-ls' in lisp/eshell/em-ls.el: just comment out the line that says, :external "ls" and then eval the function again. (This is necessary so that eshell doesn't fall back to the system's `ls' command when it gets confused.) Then open `eshell' and run: ls '-I*.el' Instead of what you'd expect (a directory listing that ignores Emacs Lisp files), instead you get a directory listing of *all* the files in the long listing format. That's because `eshell-eval-using-options' assumes that all the characters after the "-" are names of short options, rather than a single short option followed by its value. You can see a similar problem with: ls '--ignore=*.el' In this case, `eshell-eval-using-options' looks for an option named "ignore=*.el" instead of an option named "ignore" followed by its value. I've attached a patch with tests to fix this and use the POSIX/GNU argument conventions, supporting both the above cases. However, I should mention that this is a slightly incompatible change. A small number of existing eshell commands work like `ls -I', and their behavior is now a bit different. Previously, you could do the following, ls -Ia '*.el' to list all the files in a directory, excluding Emacs Lisp files. Now, you have to spell that as: ls -aI '*.el' # or... ls -aI'*.el' I think that's ok though, since I can't imagine anyone *wanting* the old behavior. It surprised me quite a bit when I stumbled across it, and worse, it only crops up sometimes, since eshell transparently falls back to the real commands when it gets confused. For completeness, the following commands+options are affected: sudo -u du -d ls -I [1] https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html --------------A8C922D7353326319C324D19 Content-Type: text/plain; charset=UTF-8; name="0001-Follow-POSIX-GNU-argument-conventions-for-eshell-eva.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Follow-POSIX-GNU-argument-conventions-for-eshell-eva.pa"; filename*1="tch" RnJvbSA5ZmNiMjM4OWNjOTgyOGJlNTljMzUwYmYwMmI1Nzg4NTVjODY3YWQzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IE1vbiwgMyBKYW4gMjAyMiAxNzoyODowMCAtMDgwMApTdWJqZWN0OiBbUEFU Q0hdIEZvbGxvdyBQT1NJWC9HTlUgYXJndW1lbnQgY29udmVudGlvbnMgZm9yCiAnZXNoZWxs LWV2YWwtdXNpbmctb3B0aW9ucycKCiogbGlzcC9lc2hlbGwvZXNoLW9wdC5lbCAoZXNoZWxs LS1zcGxpdC1zd2l0Y2gpOiBOZXcgZnVuY3Rpb24uCihlc2hlbGwtc2V0LW9wdGlvbik6IEFs bG93IHNldHRpbmcgYSBzdXBwbGllZCB2YWx1ZSBpbnN0ZWFkIG9mIGFsd2F5cwpjb25zdW1p bmcgZnJvbSAnZXNoZWxsLS1hcmdzJy4KKGVzaGVsbC0tcHJvY2Vzcy1vcHRpb24pOiBTdXBw b3J0IGNvbnN1bWluZyBvcHRpb24gdmFsdWVzIHNwZWNpZmllZCBhcwphIHNpbmdsZSB0b2tl bi4KKGVzaGVsbC0tcHJvY2Vzcy1hcmdzKTogRm9yIHNob3J0IG9wdGlvbnMsIHBhc3MgZnVs bCBzd2l0Y2ggdG9rZW4gdG8KJ2VzaGVsbC0tcHJvY2Vzcy1vcHRpb24nLgoKKiB0ZXN0L2xp c3AvZXNoZWxsL2VzaC1vcHQtdGVzdHMuZWwgKGVzaC1vcHQtcHJvY2Vzcy1hcmdzLXRlc3Qp OiBGaXgKdGVzdC4KKHRlc3QtZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucyk6IEFkZCB0ZXN0 cyBmb3IgdmFyaW91cyB0eXBlcyBvZgpvcHRpb25zLgoKKiBldGMvTkVXUzogQW5ub3VuY2Ug dGhlIGNoYW5nZS4KLS0tCiBldGMvTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDMgKwogbGlzcC9lc2hlbGwvZXNoLW9wdC5lbCAgICAgICAgICAgIHwgIDkwICsrKysrKysr KysrKystLS0tLS0tCiB0ZXN0L2xpc3AvZXNoZWxsL2VzaC1vcHQtdGVzdHMuZWwgfCAxMzEg KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE1OCBp bnNlcnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBi L2V0Yy9ORVdTCmluZGV4IGNhNmE3MTZjY2QuLmI1OTVkOTk2MzMgMTAwNjQ0Ci0tLSBhL2V0 Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC0xMDYwLDYgKzEwNjAsOSBAQCBkaW1lbnNpb25z LgogU3BlY2lmeWluZyBhIGNvbnMgYXMgdGhlIGZyb20gYXJndW1lbnQgYWxsb3dzIHRvIHN0 YXJ0IG1lYXN1cmluZyB0ZXh0CiBmcm9tIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBwaXhlbHMg YWJvdmUgb3IgYmVsb3cgYSBwb3NpdGlvbi4KIAorLS0tCisqKiAnZXNoZWxsLWV2YWwtdXNp bmctb3B0aW9ucycgbm93IGZvbGxvd3MgUE9TSVgvR05VIGFyZ3VtZW50IHN5bnRheCBjb252 ZW50aW9ucy4KKwogKiogWERHIHN1cHBvcnQKIAogKioqIE5ldyBmdW5jdGlvbiAneGRnLXN0 YXRlLWhvbWUnIHJldHVybnMgJ1hER19TVEFURV9IT01FJyBlbnZpcm9ubWVudCB2YXJpYWJs ZS4KZGlmZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VzaC1vcHQuZWwgYi9saXNwL2VzaGVsbC9l c2gtb3B0LmVsCmluZGV4IDdkMzE4NDU1MjguLmZjYzM1NzgwZTkgMTAwNjQ0Ci0tLSBhL2xp c3AvZXNoZWxsL2VzaC1vcHQuZWwKKysrIGIvbGlzcC9lc2hlbGwvZXNoLW9wdC5lbApAQCAt MTg3LDQ5ICsxODcsODIgQEAgZXNoZWxsLXNob3ctdXNhZ2UKIHdpbGwgYmUgY2FsbGVkIGlu c3RlYWQuIiBleHRjbWQpKSkpKQogICAgICh0aHJvdyAnZXNoZWxsLXVzYWdlIHVzYWdlKSkp CiAKLShkZWZ1biBlc2hlbGwtLXNldC1vcHRpb24gKG5hbWUgYWkgb3B0IG9wdGlvbnMgb3B0 LXZhbHMpCisoZGVmdW4gZXNoZWxsLS1zcGxpdC1zd2l0Y2ggKHN3aXRjaCBraW5kKQorICAi U3BsaXQgU1dJVENIIGludG8gaXRzIG9wdGlvbiBuYW1lIGFuZCBwb3RlbnRpYWwgdmFsdWUs IGlmIGFueS4KK0tJTkQgc2hvdWxkIGJlIHRoZSBpbnRlZ2VyIDAgaWYgU1dJVENIIGlzIGEg c2hvcnQgb3B0aW9uLCBvciAxIGlmIGl0J3MKK2EgbG9uZyBvcHRpb24uIgorICAoaWYgKGVx IGtpbmQgMCkKKyAgICAgIDs7IFNob3J0IG9wdGlvbgorICAgICAgKGNvbnMgKGFyZWYgc3dp dGNoIDApCisgICAgICAgICAgICAoYW5kICg+IChsZW5ndGggc3dpdGNoKSAxKSAoc3Vic3Ry aW5nIHN3aXRjaCAxKSkpCisgICAgOzsgTG9uZyBvcHRpb24KKyAgICAoc2F2ZS1tYXRjaC1k YXRhCisgICAgICAoc3RyaW5nLW1hdGNoICJcXChbXj1dKlxcKVxcKD86PVxcKC4qXFwpXFwp PyIgc3dpdGNoKQorICAgICAgKGNvbnMgKG1hdGNoLXN0cmluZyAxIHN3aXRjaCkgKG1hdGNo LXN0cmluZyAyIHN3aXRjaCkpKSkpCisKKyhkZWZ1biBlc2hlbGwtLXNldC1vcHRpb24gKG5h bWUgYWkgb3B0IHZhbHVlIG9wdGlvbnMgb3B0LXZhbHMpCiAgICJVc2luZyBOQU1FJ3MgcmVt YWluaW5nIGFyZ3MgKGluZGV4IEFJKSwgc2V0IHRoZSBPUFQgd2l0aGluIE9QVElPTlMuCi1J ZiB0aGUgb3B0aW9uIGNvbnN1bWVzIGFuIGFyZ3VtZW50IGZvciBpdHMgdmFsdWUsIHRoZSBh cmd1bWVudCBsaXN0Ci13aWxsIGJlIG1vZGlmaWVkLiIKK1ZBTFVFIGlzIHRoZSBwb3RlbnRp YWwgdmFsdWUgb2YgdGhlIE9QVCwgY29taW5nIGZyb20gYXJncyBsaWtlCitcIi1mVkFMVUVc IiBvciBcIi0tZm9vPVZBTFVFXCIsIG9yIG5pbCBpZiBubyB2YWx1ZSB3YXMgc3VwcGxpZWQu ICBJZgorT1BUIGRvZXNuJ3QgY29uc3VtZSBhIHZhbHVlLCByZXR1cm4gVkFMVUUgdW5jaGFu Z2VkIHNvIHRoYXQgaXQgY2FuIGJlCitwcm9jZXNzZWQgbGF0ZXI7IG90aGVyd3NpZSwgcmV0 dXJuIG5pbC4KKworSWYgdGhlIE9QVCBjb25zdW1lcyBhbiBhcmd1bWVudCBmb3IgaXRzIHZh bHVlIGFuZCBWQUxVRSBpcyBuaWwsIHRoZQorYXJndW1lbnQgbGlzdCB3aWxsIGJlIG1vZGlm aWVkLiIKICAgKGlmIChub3QgKG50aCAzIG9wdCkpCiAgICAgICAoZXNoZWxsLXNob3ctdXNh Z2UgbmFtZSBvcHRpb25zKQotICAgIChzZXRjZHIgKGFzc3EgKG50aCAzIG9wdCkgb3B0LXZh bHMpCi0gICAgICAgICAgICAoaWYgKGVxIChudGggMiBvcHQpIHQpCi0gICAgICAgICAgICAg ICAgKGlmICg+IGFpIChsZW5ndGggZXNoZWxsLS1hcmdzKSkKLSAgICAgICAgICAgICAgICAg ICAgKGVycm9yICIlczogbWlzc2luZyBvcHRpb24gYXJndW1lbnQiIG5hbWUpCi0gICAgICAg ICAgICAgICAgICAocG9wIChudGhjZHIgYWkgZXNoZWxsLS1hcmdzKSkpCi0gICAgICAgICAg ICAgIChvciAobnRoIDIgb3B0KSB0KSkpKSkKKyAgICAoaWYgKGVxIChudGggMiBvcHQpIHQp CisgICAgICAgIChwcm9nbgorICAgICAgICAgIChzZXRjZHIgKGFzc3EgKG50aCAzIG9wdCkg b3B0LXZhbHMpCisgICAgICAgICAgICAgICAgICAob3IgdmFsdWUKKyAgICAgICAgICAgICAg ICAgICAgICAoaWYgKD4gYWkgKGxlbmd0aCBlc2hlbGwtLWFyZ3MpKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAoZXJyb3IgIiVzOiBtaXNzaW5nIG9wdGlvbiBhcmd1bWVudCIgbmFt ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChwb3AgKG50aGNkciBhaSBlc2hlbGwtLWFy Z3MpKSkpKQorICAgICAgICAgIG5pbCkKKyAgICAgIChzZXRjZHIgKGFzc3EgKG50aCAzIG9w dCkgb3B0LXZhbHMpCisgICAgICAgICAgICAgIChvciAobnRoIDIgb3B0KSB0KSkKKyAgICAg IHZhbHVlKSkpCiAKIChkZWZ1biBlc2hlbGwtLXByb2Nlc3Mtb3B0aW9uIChuYW1lIHN3aXRj aCBraW5kIGFpIG9wdGlvbnMgb3B0LXZhbHMpCiAgICJGb3IgTkFNRSwgcHJvY2VzcyBTV0lU Q0ggKG9mIHR5cGUgS0lORCksIGZyb20gYXJncyBhdCBpbmRleCBBSS4KIFRoZSBTV0lUQ0gg d2lsbCBiZSBsb29rZWQgdXAgaW4gdGhlIHNldCBvZiBPUFRJT05TLgogCi1TV0lUQ0ggc2hv dWxkIGJlIGVpdGhlciBhIHN0cmluZyBvciBjaGFyYWN0ZXIuICBLSU5EIHNob3VsZCBiZSB0 aGUKLWludGVnZXIgMCBpZiBpdCdzIGEgY2hhcmFjdGVyLCBvciAxIGlmIGl0J3MgYSBzdHJp bmcuCi0KLVRoZSBTV0lUQ0ggaXMgdGhlbiBiZSBtYXRjaGVkIGFnYWluc3QgT1BUSU9OUy4g IElmIG5vIG1hdGNoaW5nIGhhbmRsZXIKLWlzIGZvdW5kLCBhbmQgYW4gOmV4dGVybmFsIGNv bW1hbmQgaXMgZGVmaW5lZCAoYW5kIGF2YWlsYWJsZSksIGl0IHdpbGwKLWJlIGNhbGxlZDsg b3RoZXJ3aXNlLCBhbiBlcnJvciB3aWxsIGJlIHRyaWdnZXJlZCB0byBzYXkgdGhhdCB0aGUK LXN3aXRjaCBpcyB1bnJlY29nbml6ZWQuIgotICAobGV0KiAoKG9wdHMgb3B0aW9ucykKLQkg Zm91bmQpCitTV0lUQ0ggc2hvdWxkIGJlIGEgc3RyaW5nIHN0YXJ0aW5nIHdpdGggdGhlIG9w dGlvbiB0byBwcm9jZXNzLAorcG9zc2libHkgZm9sbG93ZWQgYnkgaXRzIHZhbHVlLCBlLmcu IFwidVwiIG9yIFwidVVTRVJcIi4gIEtJTkQgc2hvdWxkCitiZSB0aGUgaW50ZWdlciAwIGlm IGl0J3MgYSBzaG9ydCBvcHRpb24sIG9yIDEgaWYgaXQncyBhIGxvbmcgb3B0aW9uLgorCitU aGUgU1dJVENIIGlzIHRoZW4gYmUgbWF0Y2hlZCBhZ2FpbnN0IE9QVElPTlMuICBJZiBLSU5E IGlzIDAgYW5kIHRoZQorU1dJVENIIG1hdGNoZXMgYW4gb3B0aW9uIHRoYXQgZG9lc24ndCB0 YWtlIGEgdmFsdWUsIHJldHVybiB0aGUKK3JlbWFpbmluZyBjaGFyYWN0ZXJzIGluIFNXSVRD SCB0byBiZSBwcm9jZXNzZWQgbGF0ZXIgYXMgZnVydGhlciBzaG9ydAorb3B0aW9ucy4KKwor SWYgbm8gbWF0Y2hpbmcgaGFuZGxlciBpcyBmb3VuZCwgYW5kIGFuIDpleHRlcm5hbCBjb21t YW5kIGlzIGRlZmluZWQKKyhhbmQgYXZhaWxhYmxlKSwgaXQgd2lsbCBiZSBjYWxsZWQ7IG90 aGVyd2lzZSwgYW4gZXJyb3Igd2lsbCBiZQordHJpZ2dlcmVkIHRvIHNheSB0aGF0IHRoZSBz d2l0Y2ggaXMgdW5yZWNvZ25pemVkLiIKKyAgKGxldCAoKHN3aXRjaCAoZXNoZWxsLS1zcGxp dC1zd2l0Y2ggc3dpdGNoIGtpbmQpKQorICAgICAgICAob3B0cyBvcHRpb25zKQorCWZvdW5k IHJlbWFpbmluZykKICAgICAod2hpbGUgb3B0cwogICAgICAgKGlmIChhbmQgKGxpc3RwIChj YXIgb3B0cykpCi0gICAgICAgICAgICAgICAobnRoIGtpbmQgKGNhciBvcHRzKSkKLSAgICAg ICAgICAgICAgIChlcXVhbCBzd2l0Y2ggKG50aCBraW5kIChjYXIgb3B0cykpKSkKKyAgICAg ICAgICAgICAgIChlcXVhbCAoY2FyIHN3aXRjaCkgKG50aCBraW5kIChjYXIgb3B0cykpKSkK IAkgIChwcm9nbgotCSAgICAoZXNoZWxsLS1zZXQtb3B0aW9uIG5hbWUgYWkgKGNhciBvcHRz KSBvcHRpb25zIG9wdC12YWxzKQorCSAgICAoc2V0cSByZW1haW5pbmcgKGVzaGVsbC0tc2V0 LW9wdGlvbiBuYW1lIGFpIChjYXIgb3B0cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChjZHIgc3dpdGNoKSBvcHRpb25zIG9wdC12YWxzKSkK KyAgICAgICAgICAgICh3aGVuIChhbmQgcmVtYWluaW5nIChlcSBraW5kIDEpKQorICAgICAg ICAgICAgICAoZXJyb3IgIiVzOiBvcHRpb24gLS0lcyBkb2Vzbid0IGFsbG93IGFuIGFyZ3Vt ZW50IgorICAgICAgICAgICAgICAgICAgICAgbmFtZSAoY2FyIHN3aXRjaCkpKQogCSAgICAo c2V0cSBmb3VuZCB0IG9wdHMgbmlsKSkKIAkoc2V0cSBvcHRzIChjZHIgb3B0cykpKSkKLSAg ICAodW5sZXNzIGZvdW5kCisgICAgKGlmIGZvdW5kCisgICAgICAgIHJlbWFpbmluZwogICAg ICAgKGxldCAoKGV4dGNtZCAobWVtcSAnOmV4dGVybmFsIG9wdGlvbnMpKSkKIAkod2hlbiBl eHRjbWQKIAkgIChzZXRxIGV4dGNtZCAoZXNoZWxsLXNlYXJjaC1wYXRoIChjYWRyIGV4dGNt ZCkpKQogCSAgKGlmIGV4dGNtZAogCSAgICAgICh0aHJvdyAnZXNoZWxsLWV4dC1jb21tYW5k IGV4dGNtZCkKLSAgICAgICAgICAgIChlcnJvciAoaWYgKGNoYXJhY3RlcnAgc3dpdGNoKSAi JXM6IHVucmVjb2duaXplZCBvcHRpb24gLSVjIgorICAgICAgICAgICAgKGVycm9yIChpZiAo Y2hhcmFjdGVycCAoY2FyIHN3aXRjaCkpICIlczogdW5yZWNvZ25pemVkIG9wdGlvbiAtJWMi CiAgICAgICAgICAgICAgICAgICAgICAiJXM6IHVucmVjb2duaXplZCBvcHRpb24gLS0lcyIp Ci0gICAgICAgICAgICAgICAgICAgbmFtZSBzd2l0Y2gpKSkpKSkpCisgICAgICAgICAgICAg ICAgICAgbmFtZSAoY2FyIHN3aXRjaCkpKSkpKSkpCiAKIChkZWZ1biBlc2hlbGwtLXByb2Nl c3MtYXJncyAobmFtZSBhcmdzIG9wdGlvbnMpCiAgICJQcm9jZXNzIHRoZSBnaXZlbiBBUkdT IHVzaW5nIE9QVElPTlMuIgpAQCAtMjYyLDEyICsyOTUsOSBAQCBlc2hlbGwtLXByb2Nlc3Mt YXJncwogCSAgICAgIChpZiAoPiAobGVuZ3RoIHN3aXRjaCkgMCkKIAkJICAoZXNoZWxsLS1w cm9jZXNzLW9wdGlvbiBuYW1lIHN3aXRjaCAxIGFpIG9wdGlvbnMgb3B0LXZhbHMpCiAJCShz ZXRxIGFpIChsZW5ndGggZXNoZWxsLS1hcmdzKSkpCi0JICAgIChsZXQgKChsZW4gKGxlbmd0 aCBzd2l0Y2gpKQotCQkgIChpbmRleCAwKSkKLQkgICAgICAod2hpbGUgKDwgaW5kZXggbGVu KQotCQkoZXNoZWxsLS1wcm9jZXNzLW9wdGlvbiBuYW1lIChhcmVmIHN3aXRjaCBpbmRleCkK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIGFpIG9wdGlvbnMg b3B0LXZhbHMpCi0JCShzZXRxIGluZGV4ICgxKyBpbmRleCkpKSkpKSkpCisJICAgICAgKHdo aWxlICg+IChsZW5ndGggc3dpdGNoKSAwKQorCQkoc2V0cSBzd2l0Y2ggKGVzaGVsbC0tcHJv Y2Vzcy1vcHRpb24gbmFtZSBzd2l0Y2ggMAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhaSBvcHRpb25zIG9wdC12YWxzKSkpKSkpKQog ICAgIChuY29uYyAobWFwY2FyICMnY2RyIG9wdC12YWxzKSBlc2hlbGwtLWFyZ3MpKSkKIAog KHByb3ZpZGUgJ2VzaC1vcHQpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNoZWxsL2VzaC1v cHQtdGVzdHMuZWwgYi90ZXN0L2xpc3AvZXNoZWxsL2VzaC1vcHQtdGVzdHMuZWwKaW5kZXgg ZTJhMGVhNTlkMS4uZjkyMDNiZDkyYSAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2VzaGVsbC9l c2gtb3B0LXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9lc2hlbGwvZXNoLW9wdC10ZXN0cy5l bApAQCAtNTcsNyArNTcsNyBAQCBlc2gtb3B0LXByb2Nlc3MtYXJncy10ZXN0CiAgICAgICAg ICAgICcoKD91ICJ1c2VyIiB0IHVzZXIgImV4ZWN1dGUgYSBjb21tYW5kIGFzIGFub3RoZXIg VVNFUiIpCiAgICAgICAgICAgICAgOnBhcnNlLWxlYWRpbmctb3B0aW9ucy1vbmx5KSkpKQog ICAoc2hvdWxkCi0gICAoZXF1YWwgJygid29ybGQiICJlbWVyZ2UiKQorICAgKGVxdWFsICco IkROIiAiZW1lcmdlIiAid29ybGQiKQogICAgICAgICAgIChlc2hlbGwtLXByb2Nlc3MtYXJn cwogICAgICAgICAgICAic3VkbyIKICAgICAgICAgICAgJygiLXUiICJyb290IiAiZW1lcmdl IiAiLXVETiIgIndvcmxkIikKQEAgLTY1LDU5ICs2NSwxMTggQEAgZXNoLW9wdC1wcm9jZXNz LWFyZ3MtdGVzdAogCiAoZXJ0LWRlZnRlc3QgdGVzdC1lc2hlbGwtZXZhbC11c2luZy1vcHRp b25zICgpCiAgICJUZXN0cyBmb3IgYGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMnLiIKKyAg OzsgVGVzdCBzaG9ydCBvcHRpb25zLgogICAoZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucwot ICAgInN1ZG8iICcoIi11IiAicm9vdCIgIndob2FtaSIpCi0gICAnKCg/dSAidXNlciIgdCB1 c2VyICJleGVjdXRlIGEgY29tbWFuZCBhcyBhbm90aGVyIFVTRVIiKQotICAgICA6cGFyc2Ut bGVhZGluZy1vcHRpb25zLW9ubHkpCi0gICAoc2hvdWxkIChlcXVhbCB1c2VyICJyb290Iikp KQorICAgImxzIiAnKCItYSIgIi9kZXYvbnVsbCIpCisgICAnKCg/YSAiYWxsIiBuaWwgc2hv dy1hbGwKKwkgImRvIG5vdCBpZ25vcmUgZW50cmllcyBzdGFydGluZyB3aXRoIC4iKSkKKyAg IChzaG91bGQgKGVxIHNob3ctYWxsIHQpKQorICAgKHNob3VsZCAoZXF1YWwgYXJncyAnKCIv ZGV2L251bGwiKSkpKQogICAoZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucwotICAgInN1ZG8i ICcoIi0tdXNlciIgInJvb3QiICJ3aG9hbWkiKQotICAgJygoP3UgInVzZXIiIHQgdXNlciAi ZXhlY3V0ZSBhIGNvbW1hbmQgYXMgYW5vdGhlciBVU0VSIikKLSAgICAgOnBhcnNlLWxlYWRp bmctb3B0aW9ucy1vbmx5KQotICAgKHNob3VsZCAoZXF1YWwgdXNlciAicm9vdCIpKSkKKyAg ICJscyIgJygiL2Rldi9udWxsIikKKyAgICcoKD9hICJhbGwiIG5pbCBzaG93LWFsbAorCSAi ZG8gbm90IGlnbm9yZSBlbnRyaWVzIHN0YXJ0aW5nIHdpdGggLiIpKQorICAgKHNob3VsZCAo ZXEgc2hvdy1hbGwgbmlsKSkKKyAgIChzaG91bGQgKGVxdWFsIGFyZ3MgJygiL2Rldi9udWxs IikpKSkKIAorICA7OyBUZXN0IGxvbmcgb3B0aW9ucy4KICAgKGVzaGVsbC1ldmFsLXVzaW5n LW9wdGlvbnMKLSAgICJzdWRvIiAnKCJlbWVyZ2UiICItdUROIiAid29ybGQiKQotICAgJygo P3UgInVzZXIiIHQgdXNlciAiZXhlY3V0ZSBhIGNvbW1hbmQgYXMgYW5vdGhlciBVU0VSIikp Ci0gICAoc2hvdWxkIChlcXVhbCB1c2VyICJ3b3JsZCIpKSkKKyAgICJscyIgJygiLS1hbGwi ICIvZGV2L251bGwiKQorICAgJygoP2EgImFsbCIgbmlsIHNob3ctYWxsCisJICJkbyBub3Qg aWdub3JlIGVudHJpZXMgc3RhcnRpbmcgd2l0aCAuIikpCisgICAoc2hvdWxkIChlcSBzaG93 LWFsbCB0KSkKKyAgIChzaG91bGQgKGVxdWFsIGFyZ3MgJygiL2Rldi9udWxsIikpKSkKKwor ICA7OyBUZXN0IG9wdGlvbnMgd2l0aCBjb25zdGFudCB2YWx1ZXMuCiAgIChlc2hlbGwtZXZh bC11c2luZy1vcHRpb25zCi0gICAic3VkbyIgJygiZW1lcmdlIiAiLXVETiIgIndvcmxkIikK LSAgICcoKD91ICJ1c2VyIiB0IHVzZXIgImV4ZWN1dGUgYSBjb21tYW5kIGFzIGFub3RoZXIg VVNFUiIpCi0gICAgIDpwYXJzZS1sZWFkaW5nLW9wdGlvbnMtb25seSkKLSAgIChzaG91bGQg KGVxIHVzZXIgbmlsKSkpCisgICAibHMiICcoIi9kZXYvbnVsbCIgIi1oIikKKyAgICcoKD9o ICJodW1hbi1yZWFkYWJsZSIgMTAyNCBodW1hbi1yZWFkYWJsZQorCSAicHJpbnQgc2l6ZXMg aW4gaHVtYW4gcmVhZGFibGUgZm9ybWF0IikpCisgICAoc2hvdWxkIChlcWwgaHVtYW4tcmVh ZGFibGUgMTAyNCkpCisgICAoc2hvdWxkIChlcXVhbCBhcmdzICcoIi9kZXYvbnVsbCIpKSkp CisgIChlc2hlbGwtZXZhbC11c2luZy1vcHRpb25zCisgICAibHMiICcoIi9kZXYvbnVsbCIg Ii0taHVtYW4tcmVhZGFibGUiKQorICAgJygoP2ggImh1bWFuLXJlYWRhYmxlIiAxMDI0IGh1 bWFuLXJlYWRhYmxlCisJICJwcmludCBzaXplcyBpbiBodW1hbiByZWFkYWJsZSBmb3JtYXQi KSkKKyAgIChzaG91bGQgKGVxbCBodW1hbi1yZWFkYWJsZSAxMDI0KSkKKyAgIChzaG91bGQg KGVxdWFsIGFyZ3MgJygiL2Rldi9udWxsIikpKSkKKyAgKGVzaGVsbC1ldmFsLXVzaW5nLW9w dGlvbnMKKyAgICJscyIgJygiL2Rldi9udWxsIikKKyAgICcoKD9oICJodW1hbi1yZWFkYWJs ZSIgMTAyNCBodW1hbi1yZWFkYWJsZQorCSAicHJpbnQgc2l6ZXMgaW4gaHVtYW4gcmVhZGFi bGUgZm9ybWF0IikpCisgICAoc2hvdWxkIChlcSBodW1hbi1yZWFkYWJsZSBuaWwpKQorICAg KHNob3VsZCAoZXF1YWwgYXJncyAnKCIvZGV2L251bGwiKSkpKQogCisgIDs7IFRlc3Qgb3B0 aW9ucyB3aXRoIHVzZXItc3BlY2lmaWVkIHZhbHVlcy4KICAgKGVzaGVsbC1ldmFsLXVzaW5n LW9wdGlvbnMKICAgICJscyIgJygiLUkiICIqLnR4dCIgIi9kZXYvbnVsbCIpCiAgICAnKCg/ SSAiaWdub3JlIiB0IGlnbm9yZS1wYXR0ZXJuCiAJICJkbyBub3QgbGlzdCBpbXBsaWVkIGVu dHJpZXMgbWF0Y2hpbmcgcGF0dGVybiIpKQotICAgKHNob3VsZCAoZXF1YWwgaWdub3JlLXBh dHRlcm4gIioudHh0IikpKQorICAgKHNob3VsZCAoZXF1YWwgaWdub3JlLXBhdHRlcm4gIiou dHh0IikpCisgICAoc2hvdWxkIChlcXVhbCBhcmdzICcoIi9kZXYvbnVsbCIpKSkpCisgIChl c2hlbGwtZXZhbC11c2luZy1vcHRpb25zCisgICAibHMiICcoIi1JKi50eHQiICIvZGV2L251 bGwiKQorICAgJygoP0kgImlnbm9yZSIgdCBpZ25vcmUtcGF0dGVybgorICAgICAgICAgImRv IG5vdCBsaXN0IGltcGxpZWQgZW50cmllcyBtYXRjaGluZyBwYXR0ZXJuIikpCisgICAoc2hv dWxkIChlcXVhbCBpZ25vcmUtcGF0dGVybiAiKi50eHQiKSkKKyAgIChzaG91bGQgKGVxdWFs IGFyZ3MgJygiL2Rldi9udWxsIikpKSkKKyAgKGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMK KyAgICJscyIgJygiLS1pZ25vcmUiICIqLnR4dCIgIi9kZXYvbnVsbCIpCisgICAnKCg/SSAi aWdub3JlIiB0IGlnbm9yZS1wYXR0ZXJuCisJICJkbyBub3QgbGlzdCBpbXBsaWVkIGVudHJp ZXMgbWF0Y2hpbmcgcGF0dGVybiIpKQorICAgKHNob3VsZCAoZXF1YWwgaWdub3JlLXBhdHRl cm4gIioudHh0IikpCisgICAoc2hvdWxkIChlcXVhbCBhcmdzICcoIi9kZXYvbnVsbCIpKSkp CisgIChlc2hlbGwtZXZhbC11c2luZy1vcHRpb25zCisgICAibHMiICcoIi0taWdub3JlPSou dHh0IiAiL2Rldi9udWxsIikKKyAgICcoKD9JICJpZ25vcmUiIHQgaWdub3JlLXBhdHRlcm4K KwkgImRvIG5vdCBsaXN0IGltcGxpZWQgZW50cmllcyBtYXRjaGluZyBwYXR0ZXJuIikpCisg ICAoc2hvdWxkIChlcXVhbCBpZ25vcmUtcGF0dGVybiAiKi50eHQiKSkKKyAgIChzaG91bGQg KGVxdWFsIGFyZ3MgJygiL2Rldi9udWxsIikpKSkKIAorICA7OyBUZXN0IG11bHRpcGxlIHNo b3J0IG9wdGlvbnMgaW4gYSBzaW5nbGUgdG9rZW4uCiAgIChlc2hlbGwtZXZhbC11c2luZy1v cHRpb25zCi0gICAibHMiICcoIi1sIiAiL2Rldi9udWxsIikKLSAgICcoKD9sIG5pbCBsb25n LWxpc3RpbmcgbGlzdGluZy1zdHlsZQorICAgImxzIiAnKCItYWwiICIvZGV2L251bGwiKQor ICAgJygoP2EgImFsbCIgbmlsIHNob3ctYWxsCisJICJkbyBub3QgaWdub3JlIGVudHJpZXMg c3RhcnRpbmcgd2l0aCAuIikKKyAgICAgKD9sIG5pbCBsb25nLWxpc3RpbmcgbGlzdGluZy1z dHlsZQogCSAidXNlIGEgbG9uZyBsaXN0aW5nIGZvcm1hdCIpKQotICAgKHNob3VsZCAoZXFs IGxpc3Rpbmctc3R5bGUgJ2xvbmctbGlzdGluZykpKQorICAgKHNob3VsZCAoZXEgdCBzaG93 LWFsbCkpCisgICAoc2hvdWxkIChlcWwgbGlzdGluZy1zdHlsZSAnbG9uZy1saXN0aW5nKSkK KyAgIChzaG91bGQgKGVxdWFsIGFyZ3MgJygiL2Rldi9udWxsIikpKSkKICAgKGVzaGVsbC1l dmFsLXVzaW5nLW9wdGlvbnMKLSAgICJscyIgJygiL2Rldi9udWxsIikKLSAgICcoKD9sIG5p bCBsb25nLWxpc3RpbmcgbGlzdGluZy1zdHlsZQotCSAidXNlIGEgbG9uZyBsaXN0aW5nIGZv cm1hdCIpKQotICAgKHNob3VsZCAoZXEgbGlzdGluZy1zdHlsZSBuaWwpKSkKKyAgICJscyIg JygiLWFJKi50eHQiICIvZGV2L251bGwiKQorICAgJygoP2EgImFsbCIgbmlsIHNob3ctYWxs CisJICJkbyBub3QgaWdub3JlIGVudHJpZXMgc3RhcnRpbmcgd2l0aCAuIikKKyAgICAgKD9J ICJpZ25vcmUiIHQgaWdub3JlLXBhdHRlcm4KKyAgICAgICAgICJkbyBub3QgbGlzdCBpbXBs aWVkIGVudHJpZXMgbWF0Y2hpbmcgcGF0dGVybiIpKQorICAgKHNob3VsZCAoZXEgdCBzaG93 LWFsbCkpCisgICAoc2hvdWxkIChlcXVhbCBpZ25vcmUtcGF0dGVybiAiKi50eHQiKSkKKyAg IChzaG91bGQgKGVxdWFsIGFyZ3MgJygiL2Rldi9udWxsIikpKSkKIAorICA7OyBUZXN0IDpw YXJzZS1sZWFkaW5nLW9wdGlvbnMtb25seS4KICAgKGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlv bnMKLSAgICJscyIgJygiL2Rldi9udWxsIiAiLWgiKQotICAgJygoP2ggImh1bWFuLXJlYWRh YmxlIiAxMDI0IGh1bWFuLXJlYWRhYmxlCi0JICJwcmludCBzaXplcyBpbiBodW1hbiByZWFk YWJsZSBmb3JtYXQiKSkKLSAgIChzaG91bGQgKGVxbCBodW1hbi1yZWFkYWJsZSAxMDI0KSkp CisgICAic3VkbyIgJygiLXUiICJyb290IiAid2hvYW1pIikKKyAgICcoKD91ICJ1c2VyIiB0 IHVzZXIgImV4ZWN1dGUgYSBjb21tYW5kIGFzIGFub3RoZXIgVVNFUiIpCisgICAgIDpwYXJz ZS1sZWFkaW5nLW9wdGlvbnMtb25seSkKKyAgIChzaG91bGQgKGVxdWFsIHVzZXIgInJvb3Qi KSkKKyAgIChzaG91bGQgKGVxdWFsIGFyZ3MgJygid2hvYW1pIikpKSkKICAgKGVzaGVsbC1l dmFsLXVzaW5nLW9wdGlvbnMKLSAgICJscyIgJygiL2Rldi9udWxsIiAiLS1odW1hbi1yZWFk YWJsZSIpCi0gICAnKCg/aCAiaHVtYW4tcmVhZGFibGUiIDEwMjQgaHVtYW4tcmVhZGFibGUK LQkgInByaW50IHNpemVzIGluIGh1bWFuIHJlYWRhYmxlIGZvcm1hdCIpKQotICAgKHNob3Vs ZCAoZXFsIGh1bWFuLXJlYWRhYmxlIDEwMjQpKSkKKyAgICJzdWRvIiAnKCItLXVzZXIiICJy b290IiAid2hvYW1pIikKKyAgICcoKD91ICJ1c2VyIiB0IHVzZXIgImV4ZWN1dGUgYSBjb21t YW5kIGFzIGFub3RoZXIgVVNFUiIpCisgICAgIDpwYXJzZS1sZWFkaW5nLW9wdGlvbnMtb25s eSkKKyAgIChzaG91bGQgKGVxdWFsIHVzZXIgInJvb3QiKSkKKyAgIChzaG91bGQgKGVxdWFs IGFyZ3MgJygid2hvYW1pIikpKSkKICAgKGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMKLSAg ICJscyIgJygiL2Rldi9udWxsIikKLSAgICcoKD9oICJodW1hbi1yZWFkYWJsZSIgMTAyNCBo dW1hbi1yZWFkYWJsZQotCSAicHJpbnQgc2l6ZXMgaW4gaHVtYW4gcmVhZGFibGUgZm9ybWF0 IikpCi0gICAoc2hvdWxkIChlcSBodW1hbi1yZWFkYWJsZSBuaWwpKSkpCisgICAic3VkbyIg JygiZW1lcmdlIiAiLXVETiIgIndvcmxkIikKKyAgICcoKD91ICJ1c2VyIiB0IHVzZXIgImV4 ZWN1dGUgYSBjb21tYW5kIGFzIGFub3RoZXIgVVNFUiIpKQorICAgKHNob3VsZCAoZXF1YWwg dXNlciAiRE4iKSkKKyAgIChzaG91bGQgKGVxdWFsIGFyZ3MgJygiZW1lcmdlIiAid29ybGQi KSkpKQorICAoZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucworICAgInN1ZG8iICcoImVtZXJn ZSIgIi11RE4iICJ3b3JsZCIpCisgICAnKCg/dSAidXNlciIgdCB1c2VyICJleGVjdXRlIGEg Y29tbWFuZCBhcyBhbm90aGVyIFVTRVIiKQorICAgICA6cGFyc2UtbGVhZGluZy1vcHRpb25z LW9ubHkpCisgICAoc2hvdWxkIChlcSB1c2VyIG5pbCkpCisgICAoc2hvdWxkIChlcXVhbCBh cmdzICcoImVtZXJnZSIgIi11RE4iICJ3b3JsZCIpKSkpKQogCiAocHJvdmlkZSAnZXNoLW9w dC10ZXN0cykKIAotLSAKMi4yNS4xCgo= --------------A8C922D7353326319C324D19--