From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kaushal Modi Subject: Re: [PATCH] noweb documentation update Date: Thu, 22 Jun 2017 19:01:10 +0000 Message-ID: References: <87fues8pu0.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="001a114b974251898e0552911c3b" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:56735) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dO7M8-0002XK-0P for emacs-orgmode@gnu.org; Thu, 22 Jun 2017 15:01:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dO7M6-0006mM-M9 for emacs-orgmode@gnu.org; Thu, 22 Jun 2017 15:01:28 -0400 Received: from mail-lf0-x22e.google.com ([2a00:1450:4010:c07::22e]:35920) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dO7M6-0006kz-86 for emacs-orgmode@gnu.org; Thu, 22 Jun 2017 15:01:26 -0400 Received: by mail-lf0-x22e.google.com with SMTP id h22so18271776lfk.3 for ; Thu, 22 Jun 2017 12:01:24 -0700 (PDT) In-Reply-To: <87fues8pu0.fsf@nicolasgoaziou.fr> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Nicolas Goaziou Cc: sjLambda@gmail.com, emacs-org list --001a114b974251898e0552911c3b Content-Type: multipart/alternative; boundary="001a114b974251898a0552911c39" --001a114b974251898a0552911c39 Content-Type: text/plain; charset="UTF-8" Hello, Thanks. My comments are below, and the updated patch is attached. In addition to your suggestion: - Replaced ``Noweb'' with ``noweb'' every where. I am still bugged by the inconsistency that some places have ``noweb'' while some places have just noweb (no quotes). Or would replacing all occurrences of ``noweb'' and noweb with Noweb be better? - Added more examples under "Noweb prefix lines" sub-heading. On Thu, Jun 22, 2017 at 3:05 AM Nicolas Goaziou wrote: > I agree the latter is less clear. However, I suggest less convoluted > wording: > > Org can include the @emph{results} of a code block rather than its > body. To that effect, append parentheses, possibly including > arguments, to the code block name, as show below. > That's better, thanks. > > - :PROPERTIES: > > - :header-args: :noweb-ref fullest-disk > > - :END: > > + :PROPERTIES: > > + :header-args: :noweb-ref fullest-disk > > + :END: > > I don't think the change above is meaningful here. Anyway it should be > consistent with other examples across the manual. > I agree, that indentation change is reverted. By default everything is left-flushed in org (except where you intend to have indented (see what I did?) lists and such). So I removed that extra spaces from before the property drawer. But I think all such property drawer instances in org.texi have 2 leading spaces, so I will stick to that. > What about > > The default is @code{:noweb no}. Org defaults to @code{:noweb no} so > as not to cause errors in languages where ``noweb'' syntax is > ambiguous. For example, @samp{Ruby} language interprets > @samp{<>} differently. Change Org's default to @code{:noweb > yes} for languages where there is no risk of confusion. > OK. I had simply moved the prior "Note" as it was useful to have the information about :noweb default in one place. I have reworded it as suggested. Note that I don't know what <> means in Ruby. > Neither do I. Hope this is fine -- I have removed that line as there is no clear reference to that statement. Quick searching through this also doesn't show anything like <>: http://ruby-doc.com/docs/ProgrammingRuby/. Also this answer ( https://stackoverflow.com/a/6852104/1219634 ) has reference to "<<", but all it says is that "<<" is an operator.. like in many other languages too. > > +Notice the difference in how they get exported: > > +@example > > +In Python 3, with "str='foo'", "print(str)" would print: > > + > > + foo > > + > > +@end example > > Would it be better to split it into two distinct examples? > Done. -- Kaushal Modi --001a114b974251898a0552911c39 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello,

Thanks. My comments are below, a= nd the updated patch is attached.

In addition to y= our suggestion:

- Replaced ``Noweb'' with = ``noweb'' every where. I am still bugged by the inconsistency that = some places have ``noweb'' while some places have just noweb (no qu= otes). Or would replacing all occurrences of ``noweb'' and noweb wi= th Noweb be better?

- Added more examples under &q= uot;Noweb prefix lines" sub-heading.

On Thu, Jun 22, 2017 at 3:05 AM Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:<= br>
I agree the latter is less clear. H= owever, I suggest less convoluted
wording:

=C2=A0 =C2=A0 Org can include the @emph{results} of a code block rather tha= n its
=C2=A0 =C2=A0 body.=C2=A0 To that effect, append parentheses, possibly incl= uding
=C2=A0 =C2=A0 arguments, to the code block name, as show below.

That's better, thanks.
=C2=A0
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">> -=C2=A0 =C2=A0:PROPERTIES:
> -=C2=A0 =C2=A0:header-args: :noweb-ref fullest-disk
> -=C2=A0 =C2=A0:END:
> + :PROPERTIES:
> + :header-args: :noweb-ref fullest-disk
> + :END:

I don't think the change above is meaningful here. Anyway it should be<= br> consistent with other examples across the manual.

=
I agree, that indentation change is reverted. By default everyth= ing is left-flushed in org (except where you intend to have indented (see w= hat I did?) lists and such). So I removed that extra spaces from before the= property drawer. But I think all such property drawer instances in org.tex= i have 2 leading spaces, so I will stick to that.
=C2=A0
What about

=C2=A0 =C2=A0 The default is @code{:noweb no}.=C2=A0 Org defaults to @code{= :noweb no} so
=C2=A0 =C2=A0 as not to cause errors in languages where ``noweb'' s= yntax is
=C2=A0 =C2=A0 ambiguous.=C2=A0 For example, @samp{Ruby} language interprets=
=C2=A0 =C2=A0 @samp{<<arg>>} differently.=C2=A0 Change Org'= s default to @code{:noweb
=C2=A0 =C2=A0 yes} for languages where there is no risk of confusion.

OK. I had simply moved the prior "Note&= quot; =C2=A0as it was useful to have the information about :noweb default i= n one place. I have reworded it as suggested.

Note that I don't know what <<arg>> m= eans in Ruby.

Neither do I. Hope this i= s fine -- I have removed that line as there is no clear reference to that s= tatement. Quick searching through this also doesn't show anything like = <<foo>>:=C2=A0http://ruby-doc.com/docs/ProgrammingRuby/. Also this answer (=C2= =A0https://stackove= rflow.com/a/6852104/1219634=C2=A0) has reference to "<<"= ;, but all it says is that "<<" is an operator.. like in ma= ny other languages too.
=C2=A0
> +Notice the difference in how they get exported:
> +@example
> +In Python 3, with "str=3D'foo'", "print(str)&q= uot; would print:
> +
> +=C2=A0 =C2=A0 foo
> +
> +@end example

Would it be better to split it into two distinct examples?
=

Done.=C2=A0
-- =

Kaushal Mo= di

--001a114b974251898a0552911c39-- --001a114b974251898e0552911c3b Content-Type: application/octet-stream; name="0001-Improve-noweb-documentation.patch" Content-Disposition: attachment; filename="0001-Improve-noweb-documentation.patch" Content-Transfer-Encoding: base64 Content-ID: <15cd12b9762b9645c391> X-Attachment-Id: 15cd12b9762b9645c391 RnJvbSA1MjY0YjI4MmY4ZTcyYjEwYTkyYmU0N2IyY2JmNzFiNWIwNDE5M2Q0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLYXVzaGFsIE1vZGkgPGthdXNoYWwubW9kaUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMjIgSnVuIDIwMTcgMTQ6NTI6MzIgLTA0MDAKU3ViamVjdDogW1BBVENIXSBJ bXByb3ZlIG5vd2ViIGRvY3VtZW50YXRpb24KCiogZG9jL29yZy50ZXhpIChub3dlYiwgbm93ZWIt cmVmLCBOb3dlYiByZWZlcmVuY2Ugc3ludGF4KTogQWRkCmV4YW1wbGVzIGFuZCBpbXByb3ZlIHdv cmRpbmcuICBDbGFyaWZ5IHRoZSB1c2Ugb2Ygbm93ZWIgc3R5bGUKcmVmZXJlbmNlcyB3aXRoIGNv ZGUgYmxvY2sgYXJndW1lbnRzLgotLS0KIGRvYy9vcmcudGV4aSB8IDE0NSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDEyMiBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvb3JnLnRleGkgYi9kb2Mvb3JnLnRleGkKaW5kZXggYjcyMmI1ZGE5My4uOTU4MDhlYTM2ZCAx MDA2NDQKLS0tIGEvZG9jL29yZy50ZXhpCisrKyBiL2RvYy9vcmcudGV4aQpAQCAtMTYxODgsMzYg KzE2MTg4LDUwIEBAIGNvZGUgYmxvY2tzIGFyZSBldmFsdWF0ZWQsIHRhbmdsZWQsIG9yIGV4cG9y dGVkLgogCiBAaXRlbWl6ZSBAYnVsbGV0CiBAaXRlbSBAY29kZXtub30KLURlZmF1bHQuICBObyBl eHBhbnNpb24gb2YgYGBOb3dlYicnIHN5bnRheCByZWZlcmVuY2VzIGluIHRoZSBib2R5IG9mIHRo ZSBjb2RlCitEZWZhdWx0LiAgTm8gZXhwYW5zaW9uIG9mIGBgbm93ZWInJyBzeW50YXggcmVmZXJl bmNlcyBpbiB0aGUgYm9keSBvZiB0aGUgY29kZQogd2hlbiBldmFsdWF0aW5nLCB0YW5nbGluZywg b3IgZXhwb3J0aW5nLgogQGl0ZW0gQGNvZGV7eWVzfQotRXhwYW5zaW9uIG9mIGBgTm93ZWInJyBz eW50YXggcmVmZXJlbmNlcyBpbiB0aGUgYm9keSBvZiB0aGUgQHNhbXB7c3JjfSBjb2RlCitFeHBh bnNpb24gb2YgYGBub3dlYicnIHN5bnRheCByZWZlcmVuY2VzIGluIHRoZSBib2R5IG9mIHRoZSBA c2FtcHtzcmN9IGNvZGUKIGJsb2NrIHdoZW4gZXZhbHVhdGluZywgdGFuZ2xpbmcsIG9yIGV4cG9y dGluZy4KIEBpdGVtIEBjb2Rle3RhbmdsZX0KLUV4cGFuc2lvbiBvZiBgYE5vd2ViJycgc3ludGF4 IHJlZmVyZW5jZXMgaW4gdGhlIGJvZHkgb2YgdGhlIEBzYW1we3NyY30gY29kZQorRXhwYW5zaW9u IG9mIGBgbm93ZWInJyBzeW50YXggcmVmZXJlbmNlcyBpbiB0aGUgYm9keSBvZiB0aGUgQHNhbXB7 c3JjfSBjb2RlCiBibG9jayB3aGVuIHRhbmdsaW5nLiAgTm8gZXhwYW5zaW9uIHdoZW4gZXZhbHVh dGluZyBvciBleHBvcnRpbmcuCiBAaXRlbSBAY29kZXtuby1leHBvcnR9Ci1FeHBhbnNpb24gb2Yg YGBOb3dlYicnIHN5bnRheCByZWZlcmVuY2VzIGluIHRoZSBib2R5IG9mIHRoZSBAc2FtcHtzcmN9 IGNvZGUKK0V4cGFuc2lvbiBvZiBgYG5vd2ViJycgc3ludGF4IHJlZmVyZW5jZXMgaW4gdGhlIGJv ZHkgb2YgdGhlIEBzYW1we3NyY30gY29kZQogYmxvY2sgd2hlbiBldmFsdWF0aW5nIG9yIHRhbmds aW5nLiAgTm8gZXhwYW5zaW9uIHdoZW4gZXhwb3J0aW5nLgogQGl0ZW0gQGNvZGV7c3RyaXAtZXhw b3J0fQotRXhwYW5zaW9uIG9mIGBgTm93ZWInJyBzeW50YXggcmVmZXJlbmNlcyBpbiB0aGUgYm9k eSBvZiB0aGUgQHNhbXB7c3JjfSBjb2RlCitFeHBhbnNpb24gb2YgYGBub3dlYicnIHN5bnRheCBy ZWZlcmVuY2VzIGluIHRoZSBib2R5IG9mIHRoZSBAc2FtcHtzcmN9IGNvZGUKIGJsb2NrIHdoZW4g ZXhwYW5kaW5nIHByaW9yIHRvIGV2YWx1YXRpbmcgb3IgdGFuZ2xpbmcuICBSZW1vdmVzIGBgbm93 ZWInJwogc3ludGF4IHJlZmVyZW5jZXMgd2hlbiBleHBvcnRpbmcuCiBAaXRlbSBAY29kZXtldmFs fQotRXhwYW5zaW9uIG9mIGBgTm93ZWInJyBzeW50YXggcmVmZXJlbmNlcyBpbiB0aGUgYm9keSBv ZiB0aGUgQHNhbXB7c3JjfSBjb2RlCitFeHBhbnNpb24gb2YgYGBub3dlYicnIHN5bnRheCByZWZl cmVuY2VzIGluIHRoZSBib2R5IG9mIHRoZSBAc2FtcHtzcmN9IGNvZGUKIGJsb2NrIG9ubHkgYmVm b3JlIGV2YWx1YXRpbmcuCiBAZW5kIGl0ZW1pemUKIAogQHN1YnN1YmhlYWRpbmcgTm93ZWIgcHJl Zml4IGxpbmVzCi1Ob3dlYiBpbnNlcnRpb25zIG5vdyBob25vciBwcmVmaXggY2hhcmFjdGVycyB0 aGF0IGFwcGVhciBiZWZvcmUKLUBjb2Rlezw8cmVmZXJlbmNlPj59LiAgVGhpcyBiZWhhdmlvciBp cyBpbGx1c3RyYXRlZCBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUuCi1CZWNhdXNlIHRoZSBAY29k ZXs8PGV4YW1wbGU+Pn0gbm93ZWIgcmVmZXJlbmNlIGFwcGVhcnMgYmVoaW5kIHRoZSBTUUwgY29t bWVudAotc3ludGF4LCBlYWNoIGxpbmUgb2YgdGhlIGV4cGFuZGVkIG5vd2ViIHJlZmVyZW5jZSB3 aWxsIGJlIGNvbW1lbnRlZC4KK05vd2ViIGluc2VydGlvbnMgbm93IGhvbm9yIHByZWZpeCBjaGFy YWN0ZXJzIHRoYXQgYXBwZWFyIGJlZm9yZSB0aGUgYGBub3dlYicnCitzeW50YXggcmVmZXJlbmNl LgogCi1UaGlzIEBzYW1we3NyY30gY29kZSBibG9jazoKK1RoaXMgYmVoYXZpb3IgaXMgaWxsdXN0 cmF0ZWQgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLiAgQmVjYXVzZSB0aGUKK0Bjb2Rlezw8ZXhh bXBsZT4+fSBub3dlYiByZWZlcmVuY2UgYXBwZWFycyBiZWhpbmQgdGhlIFNRTCBjb21tZW50IHN5 bnRheCwKK2VhY2ggbGluZSBvZiB0aGUgZXhwYW5kZWQgbm93ZWIgcmVmZXJlbmNlIHdpbGwgYmUg Y29tbWVudGVkLgorCitXaXRoOgogCiBAZXhhbXBsZQorIytOQU1FOiBleGFtcGxlCisjK0JFR0lO X1NSQyB0ZXh0Cit0aGlzIGlzIHRoZQorbXVsdGktbGluZSBib2R5IG9mIGV4YW1wbGUKKyMrRU5E X1NSQworQGVuZCBleGFtcGxlCisKK3RoaXMgQHNhbXB7c3JjfSBjb2RlIGJsb2NrOgorCitAZXhh bXBsZQorIytCRUdJTl9TUkMgc3FsIDpub3dlYiB5ZXMKIC0tIDw8ZXhhbXBsZT4+CisjK0VORF9T UkMKIEBlbmQgZXhhbXBsZQogCiBleHBhbmRzIHRvOgpAQCAtMTYyMzAsMTcgKzE2MjQ0LDYwIEBA IGV4cGFuZHMgdG86CiBTaW5jZSB0aGlzIGNoYW5nZSB3aWxsIG5vdCBhZmZlY3Qgbm93ZWIgcmVw bGFjZW1lbnQgdGV4dCB3aXRob3V0IG5ld2xpbmVzIGluCiB0aGVtLCBpbmxpbmUgbm93ZWIgcmVm ZXJlbmNlcyBhcmUgYWNjZXB0YWJsZS4KIAorVGhpcyBmZWF0dXJlIGNhbiBhbHNvIGJlIHVzZWQg Zm9yIG1hbmFnZW1lbnQgb2YgaW5kZW50YXRpb24gaW4gZXhwb3J0ZWQgY29kZSBzbmlwcGV0cy4K KworV2l0aDoKKworQGV4YW1wbGUKKyMrTkFNRTogaWYtdHJ1ZQorIytCRUdJTl9TUkMgcHl0aG9u IDpleHBvcnRzIG5vbmUKK3ByaW50KCdEbyB0aGluZ3Mgd2hlbiBUcnVlJykKKyMrRU5EX1NSQwor CisjK05BTUU6IGlmLWZhbHNlCisjK0JFR0lOX1NSQyBweXRob24gOmV4cG9ydHMgbm9uZQorcHJp bnQoJ0RvIHRoaW5ncyB3aGVuIEZhbHNlJykKKyMrRU5EX1NSQworQGVuZCBleGFtcGxlCisKK3Ro aXMgQHNhbXB7c3JjfSBjb2RlIGJsb2NrOgorCitAZXhhbXBsZQorIytCRUdJTl9TUkMgcHl0aG9u IDpub3dlYiB5ZXMgOnJlc3VsdHMgb3V0cHV0CitpZiBUcnVlOgorICAgIDw8aWYtdHJ1ZT4+Citl bHNlOgorICAgIDw8aWYtZmFsc2U+PgorIytFTkRfU1JDCitAZW5kIGV4YW1wbGUKKworZXhwYW5k cyB0bzoKKworQGV4YW1wbGUKK2lmIFRydWU6CisgICAgcHJpbnQoJ0RvIHRoaW5ncyB3aGVuIFRy dWUnKQorZWxzZToKKyAgICBwcmludCgnRG8gdGhpbmdzIHdoZW4gRmFsc2UnKQorQGVuZCBleGFt cGxlCisKK2FuZCBldmFsdWF0ZXMgdG86CisKK0BleGFtcGxlCitEbyB0aGluZ3Mgd2hlbiBUcnVl CitAZW5kIGV4YW1wbGUKKwogQG5vZGUgbm93ZWItcmVmCiBAc3Vic3Vic2VjdGlvbiBAY29kZXs6 bm93ZWItcmVmfQogQGNpbmRleCBAY29kZXs6bm93ZWItcmVmfSwgc3JjIGhlYWRlciBhcmd1bWVu dAogCiBXaGVuIGV4cGFuZGluZyBgYG5vd2ViJycgc3R5bGUgcmVmZXJlbmNlcywgT3JnIGNvbmNh dGVuYXRlcyBAc2FtcHtzcmN9IGNvZGUKLWJsb2NrcyBieSBtYXRjaGluZyB0aGUgcmVmZXJlbmNl IG5hbWUgdG8gZWl0aGVyIHRoZSBibG9jayBuYW1lIG9yIHRoZQorYmxvY2tzIGJ5IG1hdGNoaW5n IHRoZSByZWZlcmVuY2UgbmFtZSB0byBlaXRoZXIgdGhlIGNvZGUgYmxvY2sgbmFtZSBvciB0aGUK IEBjb2Rlezpub3dlYi1yZWZ9IGhlYWRlciBhcmd1bWVudC4KIAogRm9yIHNpbXBsZSBjb25jYXRl bmF0aW9uLCBzZXQgdGhpcyBAY29kZXs6bm93ZWItcmVmfSBoZWFkZXIgYXJndW1lbnQgYXQgdGhl CiBzdWItdHJlZSBvciBmaWxlIGxldmVsLiAgSW4gdGhlIGV4YW1wbGUgT3JnIGZpbGUgc2hvd24g bmV4dCwgdGhlIGJvZHkgb2YgdGhlCi1zb3VyY2UgY29kZSBpbiBlYWNoIGJsb2NrIGlzIGV4dHJh Y3RlZCBmb3IgY29uY2F0ZW5hdGlvbiB0byBhIHB1cmUgY29kZSBmaWxlLgorc291cmNlIGNvZGUg aW4gZWFjaCBibG9jayBpcyBleHRyYWN0ZWQgZm9yIGNvbmNhdGVuYXRpb24gdG8gYSBwdXJlIGNv ZGUgZmlsZQord2hlbiB0YW5nbGVkLgogCiBAZXhhbXBsZQogICMrQkVHSU5fU1JDIHNoIDp0YW5n bGUgeWVzIDpub3dlYiB5ZXMgOnNoZWJhbmcgIyEvYmluL3NoCkBAIC0xNjc1NiwyNSArMTY4MTMs NjcgQEAgcmVmZXJlbmNlcyBpbiB0aGUgQHNhbXB7c3JjfSBjb2RlIGJsb2NrIGJlZm9yZSBldmFs dWF0aW9uLgogRm9yIHRoZSBoZWFkZXIgYXJndW1lbnQgQGNvZGV7Om5vd2ViIG5vfSwgT3JnIGRv ZXMgbm90IGV4cGFuZCBgYG5vd2ViJycgc3R5bGUKIHJlZmVyZW5jZXMgaW4gdGhlIEBzYW1we3Ny Y30gY29kZSBibG9jayBiZWZvcmUgZXZhbHVhdGlvbi4KIAotVGhlIGRlZmF1bHQgaXMgQGNvZGV7 Om5vd2ViIG5vfS4KK1RoZSBkZWZhdWx0IGlzIEBjb2Rlezpub3dlYiBub30uICBPcmcgZGVmYXVs dHMgdG8gQGNvZGV7Om5vd2ViIG5vfSBzbyBhcyBub3QKK3RvIGNhdXNlIGVycm9ycyBpbiBsYW5n dWFnZXMgd2hlcmUgYGBub3dlYicnIHN5bnRheCBpcyBhbWJpZ3VvdXMuICBDaGFuZ2UKK09yZydz IGRlZmF1bHQgdG8gQGNvZGV7Om5vd2ViIHllc30gZm9yIGxhbmd1YWdlcyB3aGVyZSB0aGVyZSBp cyBubyByaXNrIG9mCitjb25mdXNpb24uCiAKIE9yZyBvZmZlcnMgYSBtb3JlIGZsZXhpYmxlIHdh eSB0byByZXNvbHZlIGBgbm93ZWInJyBzdHlsZSByZWZlcmVuY2VzCiAoQHB4cmVme25vd2ViLXJl Zn0pLgogCi1PcmcgY2FuIGhhbmRsZSBuYW1pbmcgb2YgQGVtcGh7cmVzdWx0c30gYmxvY2ssIHJh dGhlciB0aGFuIHRoZSBib2R5IG9mIHRoZQotQHNhbXB7c3JjfSBjb2RlIGJsb2NrLCB1c2luZyBg YG5vd2ViJycgc3R5bGUgcmVmZXJlbmNlcy4KLQotRm9yIGBgbm93ZWInJyBzdHlsZSByZWZlcmVu Y2UsIGFwcGVuZCBwYXJlbnRoZXNpcyB0byB0aGUgY29kZSBibG9jayBuYW1lIGZvcgotYXJndW1l bnRzLCBhcyBzaG93biBpbiB0aGlzIGV4YW1wbGU6CitPcmcgY2FuIGluY2x1ZGUgdGhlIEBlbXBo e3Jlc3VsdHN9IG9mIGEgY29kZSBibG9jayByYXRoZXIgdGhhbiBpdHMgYm9keS4gIFRvCit0aGF0 IGVmZmVjdCwgYXBwZW5kIHBhcmVudGhlc2VzLCBwb3NzaWJseSBpbmNsdWRpbmcgYXJndW1lbnRz LCB0byB0aGUgY29kZQorYmxvY2sgbmFtZSwgYXMgc2hvdyBiZWxvdy4KIAogQGV4YW1wbGUKIDw8 Y29kZS1ibG9jay1uYW1lKG9wdGlvbmFsIGFyZ3VtZW50cyk+PgogQGVuZCBleGFtcGxlCiAKLU5v dGU6IE9yZyBkZWZhdWx0cyB0byBAY29kZXs6bm93ZWIgbm99IHNvIGFzIG5vdCB0byBjYXVzZSBl cnJvcnMgaW4gbGFuZ3VhZ2VzCi1zdWNoIGFzIEBzYW1we1J1Ynl9IHdoZXJlIGBgbm93ZWInJyBz eW50YXggaXMgZXF1YWxseSB2YWxpZCBjaGFyYWN0ZXJzLiAgRm9yCi1leGFtcGxlLCBAY29kZXs8 PGFyZz4+fS4gIENoYW5nZSBPcmcncyBkZWZhdWx0IHRvIEBjb2Rlezpub3dlYiB5ZXN9IGZvcgot bGFuZ3VhZ2VzIHdoZXJlIHRoZXJlIGlzIG5vIHJpc2sgb2YgY29uZnVzaW9uLgorTm90ZSB0aGF0 IHdoZW4gdXNpbmcgdGhlIGFib3ZlIGFwcHJvYWNoIHRvIGEgY29kZSBibG9jaydzIHJlc3VsdHMs IHRoZSBjb2RlCitibG9jayBuYW1lIHNldCBieSBAY29kZXsjK05BTUV9IGtleXdvcmQgaXMgcmVx dWlyZWQ7IHRoZSByZWZlcmVuY2Ugc2V0IGJ5CitAY29kZXs6bm93ZWItcmVmfSB3aWxsIG5vdCB3 b3JrLgorCitIZXJlIGlzIGFuIGV4YW1wbGUgdGhhdCBkZW1vbnN0cmF0ZXMgaG93IHRoZSBleHBv cnRlZCBjb250ZW50IGNoYW5nZXMgd2hlbgorYGBub3dlYicnIHN0eWxlIHJlZmVyZW5jZXMgYXJl IHVzZWQgd2l0aCBwYXJlbnRoZXNlcyB2ZXJzdXMgd2l0aG91dC4KKworV2l0aAorCitAZXhhbXBs ZQorIytOQU1FOiBzb21lLWNvZGUKKyMrQkVHSU5fU1JDIHB5dGhvbiA6dmFyIG51bT0wIDpyZXN1 bHRzIG91dHB1dCA6ZXhwb3J0cyBub25lCitwcmludChudW0qMTApCisjK0VORF9TUkMKK0BlbmQg ZXhhbXBsZQorCitUaGlzIGNvZGUgYmxvY2s6CisKK0BleGFtcGxlCisjK0JFR0lOX1NSQyB0ZXh0 IDpub3dlYiB5ZXMKKzw8c29tZS1jb2RlPj4KKyMrRU5EX1NSQworQGVuZCBleGFtcGxlCisKK2V4 cGFuZHMgdG86CisKK0BleGFtcGxlCitwcmludChudW0qMTApCitAZW5kIGV4YW1wbGUKKworQmVs b3csIGEgc2ltaWxhciBgYG5vd2ViJycgc3R5bGUgcmVmZXJlbmNlIGlzIHVzZWQsIGJ1dCB3aXRo IHBhcmVudGhlc2VzLAord2hpbGUgc2V0dGluZyBhIHZhcmlhYmxlIH5udW1+IHRvIDEwOgorCitA ZXhhbXBsZQorIytCRUdJTl9TUkMgdGV4dCA6bm93ZWIgeWVzCis8PHNvbWUtY29kZShudW09MTAp Pj4KKyMrRU5EX1NSQworQGVuZCBleGFtcGxlCisKK05vdGUgdGhhdCBub3cgdGhlIGV4cGFuc2lv biBjb250YWlucyB0aGUgQGVtcGh7cmVzdWx0c30gb2YgdGhlIGNvZGUgYmxvY2sKK0Bjb2Rle3Nv bWUtY29kZX0sIG5vdCB0aGUgY29kZSBibG9jayBpdHNlbGY6CisKK0BleGFtcGxlCisxMDAKK0Bl bmQgZXhhbXBsZQogCiBGb3IgZmFzdGVyIHRhbmdsaW5nIG9mIGxhcmdlIE9yZyBtb2RlIGZpbGVz LCBzZXQKIEBjb2Rle29yZy1iYWJlbC11c2UtcXVpY2stYW5kLWRpcnR5LW5vd2ViLWV4cGFuc2lv bn0gdmFyaWFibGUgdG8gQGNvZGV7dH0uCi0tIAoyLjEzLjAKCg== --001a114b974251898e0552911c3b--