From mboxrd@z Thu Jan  1 00:00:00 1970
Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail
From: Jim Porter <jporterbugs@gmail.com>
Newsgroups: gmane.emacs.bugs
Subject: bug#66756: 30.0.50;
 [PATCH] Improve discussion of 'let' in Elisp Introduction manual
Date: Thu, 26 Oct 2023 11:30:46 -0700
Message-ID: <a5120e2f-b008-1b74-1ad9-3fe7d861b13c@gmail.com>
References: <a9812c1d-71e4-5f3f-83a4-a2923e649f3a@gmail.com>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="------------pLS8SgkCX4BkOUlIXEdkfVyJ"
Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214";
	logging-data="20947"; mail-complaints-to="usenet@ciao.gmane.io"
To: 66756@debbugs.gnu.org, eliz@gnu.org
Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Oct 26 20:32:00 2023
Return-path: <bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org>
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 <bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org>)
	id 1qw59C-0005JK-JO
	for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 26 Oct 2023 20:31:58 +0200
Original-Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <bug-gnu-emacs-bounces@gnu.org>)
	id 1qw58q-0006eS-G7; Thu, 26 Oct 2023 14:31:36 -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 <Debian-debbugs@debbugs.gnu.org>)
 id 1qw58m-0006ce-Mg
 for bug-gnu-emacs@gnu.org; Thu, 26 Oct 2023 14:31:32 -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 <Debian-debbugs@debbugs.gnu.org>)
 id 1qw58m-0003ei-ER
 for bug-gnu-emacs@gnu.org; Thu, 26 Oct 2023 14:31:32 -0400
Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2)
 (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1qw59G-0007yn-Eq
 for bug-gnu-emacs@gnu.org; Thu, 26 Oct 2023 14:32:02 -0400
X-Loop: help-debbugs@gnu.org
Resent-From: Jim Porter <jporterbugs@gmail.com>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@gnu.org
Resent-Date: Thu, 26 Oct 2023 18:32:02 +0000
Resent-Message-ID: <handler.66756.B66756.169834508930633@debbugs.gnu.org>
Resent-Sender: help-debbugs@gnu.org
X-GNU-PR-Message: followup 66756
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
Original-Received: via spool by 66756-submit@debbugs.gnu.org id=B66756.169834508930633
 (code B ref 66756); Thu, 26 Oct 2023 18:32:02 +0000
Original-Received: (at 66756) by debbugs.gnu.org; 26 Oct 2023 18:31:29 +0000
Original-Received: from localhost ([127.0.0.1]:34461 helo=debbugs.gnu.org)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>)
 id 1qw58i-0007y1-M8
 for submit@debbugs.gnu.org; Thu, 26 Oct 2023 14:31:29 -0400
Original-Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]:54433)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jporterbugs@gmail.com>) id 1qw58g-0007xk-10
 for 66756@debbugs.gnu.org; Thu, 26 Oct 2023 14:31:27 -0400
Original-Received: by mail-pf1-x430.google.com with SMTP id
 d2e1a72fcca58-6b89ab5ddb7so1234893b3a.0
 for <66756@debbugs.gnu.org>; Thu, 26 Oct 2023 11:30:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1698345049; x=1698949849; darn=debbugs.gnu.org;
 h=in-reply-to:references:to:from:content-language:subject
 :mime-version:date:message-id:from:to:cc:subject:date:message-id
 :reply-to; bh=DEGQZAdeYkwo3wHH++p6M5GyIwbhJrt/4g4pAT2PTIo=;
 b=NGZxhOpzwSPI7OHEYFju100pMHRtlPowMiD8tIEAzKZQaFocEeBmIAkjh6HzjOyTFI
 14j1J97fMDFnM9ecfTysnkmttBpmPqj1P/NF0NDm/c5uMCmO4R0iTep+wdacLI4HGUCR
 1MF/hEe+JCnOMx0EEo8dXuANcgqQv/bNzsW1zzGWnG+z6d4gibJ3XdkYDCmHVK759MEY
 Motc/KbG9cbPKbfO3JsaHgKX00TXy3Bj3UR4Ks8BzaoHRC7BaNOO2jcbHHLD1LumOLMY
 xUfx/35vp/UWisqyul8wPfWzka04AXjOYx1nQUmEImpgAnrkIs9NeOsqkd5bjrbDocuj
 nDBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1698345049; x=1698949849;
 h=in-reply-to:references:to:from:content-language:subject
 :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=DEGQZAdeYkwo3wHH++p6M5GyIwbhJrt/4g4pAT2PTIo=;
 b=L4/V5U8qS4Q0LJbeOF1RJ5vqQ2ZiCbNZ285VRnrkqMDCzLQdw3No/mjh1ym4O3zWH6
 zz/TeYPHWpp129jnbTGJ4K4Po4Y0yCnzx9wJNb7OZ8ZMkraWx65oYmeiZtXbpFy6c38J
 p4vbvBVIUPAmtC1KLzie0GxUEtFRvsRomSijjY1Ey2wBVGIDkhRY+Yhkfc3zb5H8rScR
 Jmxy/jk02/KixV5fOROM+V0MODQtPYv6Nc+1K1DwiKUKBMs77yKRMCT6yYfFzAzILNMf
 YVjlxg3hwyo47FDUHPi6Wm/0j8+NcQR5hB4QvgY3/Igr5HX0kBFcPZi5+VgN8dBVzaFc
 GmdQ==
X-Gm-Message-State: AOJu0YxlYVK5NmGrFeeboekMF1t784Zz7Z4PzT2AgjpDqx129Iv1FHCj
 F8AdSx37Jv50rJOyCZmv2Y5O6jG8ZLo=
X-Google-Smtp-Source: AGHT+IG8YsqSQ3Jm8xy0O5CrVh2ta8K28mT7orrSecAbMlyNNGxwN98Mg8ANmlkEWji2ySnjPEBy1g==
X-Received: by 2002:a05:6a00:2e27:b0:6bd:b3b9:649f with SMTP id
 fc39-20020a056a002e2700b006bdb3b9649fmr387968pfb.7.1698345048694; 
 Thu, 26 Oct 2023 11:30:48 -0700 (PDT)
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
 s187-20020a625ec4000000b0068ff267f094sm11980235pfb.158.2023.10.26.11.30.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Oct 2023 11:30:48 -0700 (PDT)
Content-Language: en-US
In-Reply-To: <a9812c1d-71e4-5f3f-83a4-a2923e649f3a@gmail.com>
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" <bug-gnu-emacs.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/bug-gnu-emacs>,
 <mailto:bug-gnu-emacs-request@gnu.org?subject=unsubscribe>
List-Archive: <https://lists.gnu.org/archive/html/bug-gnu-emacs>
List-Post: <mailto:bug-gnu-emacs@gnu.org>
List-Help: <mailto:bug-gnu-emacs-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/bug-gnu-emacs>,
 <mailto:bug-gnu-emacs-request@gnu.org?subject=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:273310
Archived-At: <http://permalink.gmane.org/gmane.emacs.bugs/273310>

This is a multi-part message in MIME format.
--------------pLS8SgkCX4BkOUlIXEdkfVyJ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 10/26/2023 12:09 AM, Eli Zaretskii wrote:
 > Thanks.
 >
 > The challenge in updating the Lisp Introduction manual is to try to
 > keep its informal and reader-friendly style as much as possible.  It
 > is not just another ELisp Reference manual!  So please try to keep
 > that in mind when you write the text, and in particular try not to
 > modify the existing text that is still accurate -- it was written by a
 > master, and each word there counts, even if it looks at first sight as
 > not important.

Ok, here's a second attempt. I've tried to avoid changing anything that 
I don't think is truly necessary. I did alter a bit of the original 
wording to emphasize that under lexical binding, 'let' isn't about time, 
but about place. For example, that's why I changed this:

> This is like understanding that whenever your host refers to ``the house'', he means his house, not yours.

to this:

> This is like understanding that in your host's home, whenever he refers to ``the house'', he means his house, not yours.

My previous concern about the "lexical binding" digression still applies 
though. However, I'm not sure how to get around that at present; if we 
want to talk about lexical binding in the manual, we need to get users 
to enable it, so I think it's unavoidable that we at least mention it. I 
tried to introduce the jargon as gently as I could (by first introducing 
the term "binding" on its own before mentioning "lexical/dynamic 
binding"), but it's still a bit intimidating. On the positive side, when 
lexical binding is the default, we could remove that entire digression.

There's also an argument that the example I added is in the wrong spot, 
since we haven't actually introduced the 'let' syntax yet. However, I 
personally find the example to be pretty useful since it shows off one 
of the key differences between lexical and dynamic binding, and helps 
show one of the boundaries of the 'let' form's scope. I myself tend to 
learn best by seeing examples of that sort. Fixing the order so we 
introduce the syntax first would require more extensive changes to this 
section...
--------------pLS8SgkCX4BkOUlIXEdkfVyJ
Content-Type: text/plain; charset=UTF-8;
 name="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.patch"
Content-Disposition: attachment;
 filename*0="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.pa";
 filename*1="tch"
Content-Transfer-Encoding: base64

RnJvbSAxMjg0N2UwZDU5YjJkZTM3OTFlZmEwOTBhZGRjMDE2OWU3MTNlNmQxIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j
b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB
VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw
CiBJbnRyb2R1Y3Rpb24KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkg
KFByZXZlbnQgY29uZnVzaW9uKTogUmV3b3JrIHRoZQpleHBsYW5hdGlvbiB0byBkaXNjdXNz
IGhvdyB0aGluZ3Mgd29yayB1bmRlciBsZXhpY2FsIGJpbmRpbmcKKGluY2x1ZGluZyBob3cg
dG8gZW5hYmxlIGl0KS4KLS0tCiBkb2MvbGlzcGludHJvL2VtYWNzLWxpc3AtaW50cm8udGV4
aSB8IDY3ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg
NTEgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2xp
c3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkgYi9kb2MvbGlzcGludHJvL2VtYWNzLWxp
c3AtaW50cm8udGV4aQppbmRleCBmY2U3NTgzZmU5MS4uZTgwNTgzM2Y5NzkgMTAwNjQ0Ci0t
LSBhL2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpCisrKyBiL2RvYy9saXNw
aW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpCkBAIC0zNjAyLDI0ICszNjAyLDU5IEBAIFBy
ZXZlbnQgY29uZnVzaW9uCiBAY2luZGV4IEBzYW1we3ZhcmlhYmxlLCBsb2NhbH0sIGRlZmlu
ZWQKIFRoZSBAY29kZXtsZXR9IHNwZWNpYWwgZm9ybSBwcmV2ZW50cyBjb25mdXNpb24uICBA
Y29kZXtsZXR9IGNyZWF0ZXMgYQogbmFtZSBmb3IgYSBAZGZue2xvY2FsIHZhcmlhYmxlfSB0
aGF0IG92ZXJzaGFkb3dzIGFueSB1c2Ugb2YgdGhlIHNhbWUKLW5hbWUgb3V0c2lkZSB0aGUg
QGNvZGV7bGV0fSBleHByZXNzaW9uLiAgVGhpcyBpcyBsaWtlIHVuZGVyc3RhbmRpbmcKLXRo
YXQgd2hlbmV2ZXIgeW91ciBob3N0IHJlZmVycyB0byBgYHRoZSBob3VzZScnLCBoZSBtZWFu
cyBoaXMgaG91c2UsIG5vdAoteW91cnMuICAoU3ltYm9scyB1c2VkIGluIGFyZ3VtZW50IGxp
c3RzIHdvcmsgdGhlIHNhbWUgd2F5LgorbmFtZSBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4
cHJlc3Npb24gKGluIGNvbXB1dGVyIHNjaWVuY2UgamFyZ29uLCB3ZQorY2FsbCB0aGlzIGBg
YmluZGluZycnIHRoZSB2YXJpYWJsZSkuICBUaGlzIGlzIGxpa2UgdW5kZXJzdGFuZGluZyB0
aGF0CitpbiB5b3VyIGhvc3QncyBob21lLCB3aGVuZXZlciBoZSByZWZlcnMgdG8gYGB0aGUg
aG91c2UnJywgaGUgbWVhbnMgaGlzCitob3VzZSwgbm90IHlvdXJzLiAgKFN5bWJvbHMgdXNl
ZCBpbiBhcmd1bWVudCBsaXN0cyB3b3JrIHRoZSBzYW1lIHdheS4KIEB4cmVme2RlZnVuLCAs
IFRoZSBAY29kZXtkZWZ1bn0gTWFjcm99LikKIAotTG9jYWwgdmFyaWFibGVzIGNyZWF0ZWQg
YnkgYSBAY29kZXtsZXR9IGV4cHJlc3Npb24gcmV0YWluIHRoZWlyIHZhbHVlCi1AZW1waHtv
bmx5fSB3aXRoaW4gdGhlIEBjb2Rle2xldH0gZXhwcmVzc2lvbiBpdHNlbGYgKGFuZCB3aXRo
aW4KLWV4cHJlc3Npb25zIGNhbGxlZCB3aXRoaW4gdGhlIEBjb2Rle2xldH0gZXhwcmVzc2lv
bik7IHRoZSBsb2NhbAotdmFyaWFibGVzIGhhdmUgbm8gZWZmZWN0IG91dHNpZGUgdGhlIEBj
b2Rle2xldH0gZXhwcmVzc2lvbi4KLQotQW5vdGhlciB3YXkgdG8gdGhpbmsgYWJvdXQgQGNv
ZGV7bGV0fSBpcyB0aGF0IGl0IGlzIGxpa2UgYSBAY29kZXtzZXRxfQotdGhhdCBpcyB0ZW1w
b3JhcnkgYW5kIGxvY2FsLiAgVGhlIHZhbHVlcyBzZXQgYnkgQGNvZGV7bGV0fSBhcmUKLWF1
dG9tYXRpY2FsbHkgdW5kb25lIHdoZW4gdGhlIEBjb2Rle2xldH0gaXMgZmluaXNoZWQuICBU
aGUgc2V0dGluZwotb25seSBhZmZlY3RzIGV4cHJlc3Npb25zIHRoYXQgYXJlIGluc2lkZSB0
aGUgYm91bmRzIG9mIHRoZSBAY29kZXtsZXR9Ci1leHByZXNzaW9uLiAgSW4gY29tcHV0ZXIg
c2NpZW5jZSBqYXJnb24sIHdlIHdvdWxkIHNheSB0aGUgYmluZGluZyBvZgotYSBzeW1ib2wg
aXMgdmlzaWJsZSBvbmx5IGluIGZ1bmN0aW9ucyBjYWxsZWQgaW4gdGhlIEBjb2Rle2xldH0g
Zm9ybTsKLWluIEVtYWNzIExpc3AsIHRoZSBkZWZhdWx0IHNjb3BpbmcgaXMgZHluYW1pYywg
bm90IGxleGljYWwuICAoVGhlCi1ub24tZGVmYXVsdCBsZXhpY2FsIGJpbmRpbmcgaXMgbm90
IGRpc2N1c3NlZCBpbiB0aGlzIG1hbnVhbC4pCitAY2luZGV4IGxleGljYWwgYmluZGluZwor
QGNpbmRleCBiaW5kaW5nLCBsZXhpY2FsCitAY2luZGV4IGR5bmFtaWMgYmluZGluZworQGNp
bmRleCBiaW5kaW5nLCBkeW5hbWljCitCZWZvcmUgd2UgYmVnaW4gZGlzY3Vzc2luZyBAY29k
ZXtsZXR9IGluIGRldGFpbCwgd2UgbXVzdCBmaXJzdCBtZW50aW9uCithbiBpbXBvcnRhbnQg
bm90ZS4gIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIEVtYWNzIExpc3AgdXNlcyBhIGZvcm0g
b2YKK3ZhcmlhYmxlIGJpbmRpbmcgY2FsbGVkIGBgZHluYW1pYyBiaW5kaW5nJycuICBIb3dl
dmVyLCB0aGlzIG1hbnVhbAord2lsbCBkaXNjdXNzIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiBi
aW5kaW5nLCBjYWxsZWQgYGBsZXhpY2FsIGJpbmRpbmcnJworKGlmIHlvdSBoYXZlIHByb2dy
YW1tZWQgaW4gb3RoZXIgbGFuZ3VhZ2VzIGJlZm9yZSwgeW91J3JlIGxpa2VseQorYWxyZWFk
eSBmYW1pbGlhciB3aXRoIGhvdyBsZXhpY2FsIGJpbmRpbmcgYmVoYXZlcykuICBJbiBvcmRl
ciB0byB1c2UKK2xleGljYWwgYmluZGluZywgeW91IHNob3VsZCBhZGQgc29tZXRoaW5nIGxp
a2UgdGhpcyB0byB0aGUgZmlyc3QgbGluZQorb2YgeW91ciBFbWFjcyBMaXNwIGZpbGU6CisK
K0BleGFtcGxlCis7OzsgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0KK0BlbmQgZXhhbXBs
ZQorCitGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzLCBAcHhyZWZ7U2VsZWN0aW5n
IExpc3AgRGlhbGVjdCwgLCAsCitlbGlzcCwgVGhlIEVtYWNzIExpc3AgUmVmZXJlbmNlIE1h
bnVhbH0uCisKK1dpdGggdGhhdCBvdXQgb2YgdGhlIHdheSwgd2UgY2FuIGdldCBiYWNrIHRv
IGRpc2N1c3NpbmcgQGNvZGV7bGV0fS4KK0Fub3RoZXIgd2F5IHRvIHRoaW5rIGFib3V0IEBj
b2Rle2xldH0gaXMgdGhhdCBpdCBkZWZpbmVzIGEgcGxhY2UgaW4KK3lvdXIgY29kZSB3aGVy
ZSB0aGUgdmFyaWFibGVzIHlvdSBuYW1lZCBoYXZlIHRoZWlyIG93biBsb2NhbCBtZWFuaW5n
LgorT3V0c2lkZSBvZiB0aGUgQGNvZGV7bGV0fSBib2R5LCB0aGV5IGhhdmUgYW5vdGhlciBt
ZWFuaW5nIChvciB0aGV5IG1heQorbm90IGJlIGRlZmluZWQgYXQgYWxsKS4KKworVGhpcyBt
ZWFucyB0aGF0IGluc2lkZSB0aGUgQGNvZGV7bGV0fSBib2R5LCBjYWxsaW5nIEBjb2Rle3Nl
dHF9Citmb3IgYSB2YXJpYWJsZSBuYW1lZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9u
IHdpbGwgc2V0IHRoZSB2YWx1ZQorb2YgdGhlIEBlbXBoe2xvY2FsfSB2YXJpYWJsZSBvZiB0
aGF0IG5hbWUuICBUaGlzIGFsc28gbWVhbnMgdGhhdAorb3V0c2lkZSBvZiB0aGUgQGNvZGV7
bGV0fSBib2R5LCBjYWxsaW5nIEBjb2Rle3NldHF9IGZvciBhIHZhcmlhYmxlCituYW1lZCBi
eSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uIHdpbGwgQGVtcGh7bm90fSBhZmZlY3QgdGhh
dCBsb2NhbAordmFyaWFibGUuCisKK0ZvciBleGFtcGxlLCBpZiB5b3UgY2FsbCBhIGZ1bmN0
aW9uIGluc2lkZSBvZiBhIEBjb2Rle2xldH0KK2JvZHksIHRoYXQgZnVuY3Rpb24ncyBib2R5
IHdvdWxkIGJlIHVuYWJsZSB0byBgYHNlZScnIChvciBtb2RpZnkpIHRoZQordmFsdWUgb2Yg
YSBsb2NhbCB2YXJpYWJsZSBmcm9tIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb246CisKK0Bl
eGFtcGxlCisoc2V0cSB4IDEpCisKKyhkZWZ1biBnZXR4ICgpCisgIHgpCisKKyhsZXQgKCh4
IDIpKQorICAoZ2V0LXgpKQorICAgICBAcmVzdWx0e30gMQorQGVuZCBleGFtcGxlCiAKIEBj
b2Rle2xldH0gY2FuIGNyZWF0ZSBtb3JlIHRoYW4gb25lIHZhcmlhYmxlIGF0IG9uY2UuICBB
bHNvLAogQGNvZGV7bGV0fSBnaXZlcyBlYWNoIHZhcmlhYmxlIGl0IGNyZWF0ZXMgYW4gaW5p
dGlhbCB2YWx1ZSwgZWl0aGVyIGEKLS0gCjIuMjUuMQoK

--------------pLS8SgkCX4BkOUlIXEdkfVyJ--