From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Mauro Aranda Newsgroups: gmane.emacs.bugs Subject: bug#139: describe-key vs. widget red tape Date: Sat, 5 Oct 2019 11:06:24 -0300 Message-ID: References: <87mynwgrxb.fsf@jidanni.org> <877e5ql42d.fsf@gnus.org> <8336gedyus.fsf@gnu.org> <874l0ugrl4.fsf@gnus.org> <83sgoechsf.fsf@gnu.org> <87v9t9bzng.fsf@gnus.org> <874l0s8x8s.fsf@gnus.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000a9a64005942a53d5" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="266886"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 139@debbugs.gnu.org, jidanni@jidanni.org To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Oct 05 16:07:13 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iGkiG-0017Hn-CB for geb-bug-gnu-emacs@m.gmane.org; Sat, 05 Oct 2019 16:07:12 +0200 Original-Received: from localhost ([::1]:56984 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iGkiF-0000T3-8U for geb-bug-gnu-emacs@m.gmane.org; Sat, 05 Oct 2019 10:07:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35121) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iGki8-0000Sw-Db for bug-gnu-emacs@gnu.org; Sat, 05 Oct 2019 10:07:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iGki6-0004IU-FG for bug-gnu-emacs@gnu.org; Sat, 05 Oct 2019 10:07:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:36158) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iGki6-0004IO-BO for bug-gnu-emacs@gnu.org; Sat, 05 Oct 2019 10:07:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iGki6-0007Op-4r for bug-gnu-emacs@gnu.org; Sat, 05 Oct 2019 10:07:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Mauro Aranda Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 05 Oct 2019 14:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 139 X-GNU-PR-Package: emacs Original-Received: via spool by 139-submit@debbugs.gnu.org id=B139.157028440728422 (code B ref 139); Sat, 05 Oct 2019 14:07:02 +0000 Original-Received: (at 139) by debbugs.gnu.org; 5 Oct 2019 14:06:47 +0000 Original-Received: from localhost ([127.0.0.1]:44979 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iGkho-0007OI-OS for submit@debbugs.gnu.org; Sat, 05 Oct 2019 10:06:47 -0400 Original-Received: from mail-lj1-f182.google.com ([209.85.208.182]:35743) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iGkhm-0007O3-Qh for 139@debbugs.gnu.org; Sat, 05 Oct 2019 10:06:44 -0400 Original-Received: by mail-lj1-f182.google.com with SMTP id m7so9309114lji.2 for <139@debbugs.gnu.org>; Sat, 05 Oct 2019 07:06:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=orthH2sQjmU8NqMRIMSj5pMCRb2B2ti/kJJuWe5MixI=; b=WSDTtWPGyb/JQaHzbl3EtRALTCd6kG5UA8pLcRQQlWGx4xgVSsaKqbSUj342mMtzOc yi8cNTqKgatElxVeS/FRCaa9pPE/9joQH1G/FsWNqscgN3VT5WUsyVAm9RnXBBmtGTal bTvu5SLXqleQui0El7wQMmArcLUu1M+DDOmrw1OYLnMvi5o8Hvc/ljVLDAxKCajvbNMh BAVfB/1lDnfmFqc+izJV9hrDWSX3wGnibTifrsJcqYPiiXxeNLKVrpTBIZB0fA9+knVz gabLEJgvSTu2NkEypBlOJcbSSkbUmRcCJ/E4djFH4QqFS2Xvt00lA/+/28f2eTqYXy7k wwyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=orthH2sQjmU8NqMRIMSj5pMCRb2B2ti/kJJuWe5MixI=; b=K3ZOUedxmXli5lyrkiXXOIQaERcaG+HkSn5AKiHQB9HsOlZqswPBuOU7HNvjsumllK eQLu4VxkxjpeVA7tDEiXaUWt9Krf1RYHbz4pPgNPWiZHNOq7AqquShfM7IIYHD+gDU/d qchr8q4Xmsn9xmEzCTGBAbQ506B/gcjFi4LOjyBBK3Asq9CWzRBt/3ZSb4lwCifdlsA/ UTE6g4osUMlYY6vx1neDy6ee5/ULYFls6lOsIR5n/cTiUnDNI+1wX5SYctdywqUrE2O+ abD7Im44/TYq0/7iANJoOKv4ndnAzBveipfw5htIDOKNfoJHvW4m91xW6r+FvWha2JXH 6AsQ== X-Gm-Message-State: APjAAAWYA8eCLyhkOhhUZPB5x2z69C77p1VM+qZ2cDPk0kXsbXL/VgWp qHDCxgpxdM4sgL9bWrNnGEnwEAtCDJtMhsRm+Sg= X-Google-Smtp-Source: APXvYqw0yeLkF+WkJxzwNirqDxvob1dLWcIjeSIC/MJg3uYs1aH23K2zhZ2tggR17ylz5zYUJ5abRq4ygcdKEhCCnsU= X-Received: by 2002:a05:651c:283:: with SMTP id b3mr13043207ljo.25.1570284396698; Sat, 05 Oct 2019 07:06:36 -0700 (PDT) In-Reply-To: <874l0s8x8s.fsf@gnus.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:168378 Archived-At: --000000000000a9a64005942a53d5 Content-Type: multipart/alternative; boundary="000000000000a9a63e05942a53d3" --000000000000a9a63e05942a53d3 Content-Type: text/plain; charset="UTF-8" Lars Ingebrigtsen writes: > Mauro Aranda writes: > >>> Could this also be extended to button.el buttons? >> >> I think so. I'll think how to put it all together and come back with a >> patch. (Will be busy the next few days, but perhaps by the weekend I'll >> be able to send it) > > Great! Find in the attached patch my idea to implement this. I wrote a command, describe-actions, so the user does not have to care if the element to describe is either a button, a widget, or whatever. And then, the libraries that define this kind of elements should add themselves to `describe-actions-functions'. Then I implemented the functions for the button.el buttons and the widgets. There are some things I would like to ask: - I would like to put an initial value of nil to `describe-actions-functions', and let each library add the function to this list. Is it OK to use `with-eval-after-load' here? Is there another way? - I put an autoload cookie in `seq-find', in order to use it in `describe-actions'. Is it OK? Please review the patch and send any suggestions for improvement. If accepted, I'll write the documentation needed for the NEWS file and the manual. Best regards, Mauro. --000000000000a9a63e05942a53d3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Lars Ingebrigtsen <la= rsi@gnus.org> writes:

> Mauro Aranda <maurooaranda@gmail.com> writes:
>
= >>> Could this also be extended to button.el buttons?
>><= br>>> I think so.=C2=A0 I'll think how to put it all together and= come back with a
>> patch. =C2=A0(Will be busy the next few days,= but perhaps by the weekend I'll
>> be able to send it)
>= ;
> Great!

Find in the attached patch my idea to implement thi= s.

I wrote a command, describe-actions, so the user does not have to= care
if the element to describe is either a button, a widget, or whatev= er.
And then, the libraries that define this kind of elements should add=
themselves to `describe-actions-functions'.

Then I implement= ed the functions for the button.el buttons and the
widgets.

There= are some things I would like to ask:
- I would like to put an initial v= alue of nil to
`describe-actions-functions', and let each library ad= d the function to
this list.=C2=A0 Is it OK to use `with-eval-after-load= ' here? Is there
another way?

- I put an autoload cookie in `= seq-find', in order to use it in
`describe-actions'.=C2=A0 Is it= OK?

Please review the patch and send any suggestions for improvemen= t.=C2=A0 If
accepted, I'll write the documentation needed for t= he NEWS file and the
manual.

Best regards,
Mauro.=
--000000000000a9a63e05942a53d3-- --000000000000a9a64005942a53d5 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-New-command-describe-actions-Bug-139.patch" Content-Disposition: attachment; filename="0001-New-command-describe-actions-Bug-139.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k1dmq92m0 RnJvbSAzMTRhZDkzMjMzM2Y2YzM0MTQzZDdlMzg4ODA5MDAzYzdiNDI0MzE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXVybyBBcmFuZGEgPG1hdXJvb2FyYW5kYUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgNCBPY3QgMjAxOSAxMzo1ODoxMSAtMDMwMApTdWJqZWN0OiBbUEFUQ0hdIE5l dyBjb21tYW5kIGRlc2NyaWJlLWFjdGlvbnMgKEJ1ZyMxMzkpCgoqIGxpc3AvaGVscC1mbnMuZWwg KGRlc2NyaWJlLWFjdGlvbnMtZnVuY3Rpb25zKTogTmV3IHZhcmlhYmxlLCB0byB1c2UKaW4gZGVz Y3JpYmUtYWN0aW9ucy4KKGRlc2NyaWJlLWFjdGlvbnMpOiBOZXcgY29tbWFuZCwgdG8gZGVzY3Jp YmUgdGhlIGFjdGlvbnMgb2YgYW4KZWxlbWVudCwgbGlrZSBhIGJ1dHRvbiBvciB3aWRnZXQuCiog bGlzcC9lbWFjcy1saXNwL3NlcS5lbCAoc2VxLWZpbmQpOiBBZGQgYXV0b2xvYWQgY29va2llLCBz bwpkZXNjcmliZS1hY3Rpb25zIGNhbiB1c2UgaXQuCiogbGlzcC9idXR0b24uZWwgKGJ1dHRvbi1k ZXNjcmliZS1hY3Rpb25zKTogTmV3IGNvbW1hbmQsIHRvIGRlc2NyaWJlCnRoZSBhY3Rpb25zIG9m IGEgYnV0dG9uLgooYnV0dG9uLS1kZXNjcmliZS1hY3Rpb25zLWludGVybmFsKTogSGVscGVyIGZ1 bmN0aW9uIGZvcgpidXR0b24tZGVzY3JpYmUtYWN0aW9uLgoqIGxpc3Avd2lkLWVkaXQuZWwgKHdp ZGdldC1kZXNjcmliZS1hY3Rpb25zKTogTmV3IGNvbW1hbmQsIHRvIGRlc2NyaWJlCnRoZSBhY3Rp b25zIG9mIGEgd2lkZ2V0Lgood2lkZ2V0LXJlc29sdmUtcGFyZW50LWFjdGlvbik6IEhlbHBlciBm dW5jdGlvbiwgdG8gYWxsb3cKd2lkZ2V0LWRlc2NyaWJlLWFjdGlvbnMgc2hvdyBtb3JlIHVzZWZ1 bCBpbmZvcm1hdGlvbi4KLS0tCiBsaXNwL2J1dHRvbi5lbCAgICAgICAgIHwgNTggKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaXNwL2VtYWNzLWxpc3Avc2Vx LmVsIHwgIDEgKwogbGlzcC9oZWxwLWZucy5lbCAgICAgICB8IDQyICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogbGlzcC93aWQtZWRpdC5lbCAgICAgICB8IDY0ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQs IDE2NSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGlzcC9idXR0b24uZWwgYi9saXNwL2J1 dHRvbi5lbAppbmRleCAwNGU3N2NhLi42NmJjMTJmIDEwMDY0NAotLS0gYS9saXNwL2J1dHRvbi5l bAorKysgYi9saXNwL2J1dHRvbi5lbApAQCAtNTM4LDYgKzUzOCw2NCBAQCBiYWNrd2FyZC1idXR0 b24KICAgKGludGVyYWN0aXZlICJwXG5kXG5kIikKICAgKGZvcndhcmQtYnV0dG9uICgtIG4pIHdy YXAgZGlzcGxheS1tZXNzYWdlIG5vLWVycm9yKSkKIAorKGRlZnVuIGJ1dHRvbi0tZGVzY3JpYmUt YWN0aW9ucy1pbnRlcm5hbCAodHlwZSBhY3Rpb24gbW91c2UtZG93bi1hY3Rpb24pCisgICJEZXNj cmliZSBhIGJ1dHRvbidzIFRZUEUsIEFDVElPTiBhbmQgTU9VU0UtRE9XTi1BQ1RJT04gaW4gYSAq SGVscCogYnVmZmVyLgorVGhpcyBpcyBhIGhlbHBlciBmdW5jdGlvbiBmb3IgYGJ1dHRvbi1kZXNj cmliZS1hY3Rpb25zJywgaW4gb3JkZXIgdG8gYmUgcG9zc2libGUKK3RvIHVzZSBgaGVscC1zZXR1 cC14cmVmJy4iCisgICh3aXRoLWhlbHAtd2luZG93IChoZWxwLWJ1ZmZlcikKKyAgICAod2l0aC1j dXJyZW50LWJ1ZmZlciAoaGVscC1idWZmZXIpCisgICAgICAoaW5zZXJ0ICJUaGlzIGJ1dHRvbidz IHR5cGUgaXMgIikKKyAgICAgIChwcmluYyB0eXBlKQorICAgICAgKGluc2VydCAiXG5cbiIpCisg ICAgICAod2hlbiAoZnVuY3Rpb25wIGFjdGlvbikKKwkoaW5zZXJ0IChwcm9wZXJ0aXplICJBY3Rp b24iICdmYWNlICdib2xkKSkKKwkoaW5zZXJ0ICJcblRoZSBhY3Rpb24gb2YgdGhpcyBidXR0b24g aXMgIikKKwkoaWYgKHN5bWJvbHAgYWN0aW9uKQorCSAgICAocHJvZ24KKwkgICAgICAocHJpbmMg YWN0aW9uKQorCSAgICAgIChpbnNlcnQgIixcbndoaWNoIGlzICIpCisJICAgICAgKGRlc2NyaWJl LWZ1bmN0aW9uLTEgYWN0aW9uKSkKKwkgIChpbnNlcnQgIlxuIikKKwkgIChwcmluYyBhY3Rpb24p KSkKKyAgICAgICh3aGVuIChmdW5jdGlvbnAgbW91c2UtZG93bi1hY3Rpb24pCisJKGluc2VydCAo cHJvcGVydGl6ZSAiTW91c2UtZG93bi1hY3Rpb24iICdmYWNlICdib2xkKSkKKwkoaW5zZXJ0ICJc blRoZSBtb3VzZS1kb3duLWFjdGlvbiBvZiB0aGlzIGJ1dHRvbiBpcyAiKQorCShpZiAoc3ltYm9s cCBtb3VzZS1kb3duLWFjdGlvbikKKwkgICAgKHByb2duCisJICAgICAgKHByaW5jIG1vdXNlLWRv d24tYWN0aW9uKQorCSAgICAgIChpbnNlcnQgIixcbndoaWNoIGlzICIpCisJICAgICAgKGRlc2Ny aWJlLWZ1bmN0aW9uLTEgbW91c2UtZG93bi1hY3Rpb24pKQorCSAgKGluc2VydCAiXG4iKQorCSAg KHByaW5jIG1vdXNlLWRvd24tYWN0aW9uKSkpKSkpCisKKyhkZWZ1biBidXR0b24tZGVzY3JpYmUt YWN0aW9ucyAoJm9wdGlvbmFsIGJ1dHRvbi1vci1wb3MpCisgICJEZXNjcmliZSB0aGUgYWN0aW9u cyBhc3NvY2lhdGVkIHRvIHRoZSBidXR0b24gYXQgcG9pbnQuCitEaXNwbGF5cyBhICpIZWxwKiBi dWZmZXIgd2l0aCBhIGRlc2NyaXB0aW9uIG9mIHRoZSBhY3Rpb25zLgorCitXaGVuIGNhbGxlZCBm cm9tIExpc3AsIHBhc3MgQlVUVE9OLU9SLVBPUyBhcyB0aGUgYnV0dG9uIHRvIGRlc2NyaWJlLCBv ciBhCitidWZmZXIgcG9zaXRpb24gd2hlcmUgYSBidXR0b24gaXMgcHJlc2VudC4gIElmIEJVVFRP Ti1PUi1QT1MgaXMgbmlsLCB0aGUKK2J1dHRvbiBhdCBwb2ludCBpcyB0aGUgYnV0dG9uIHRvIGRl c2NyaWJlLiIKKyAgKGludGVyYWN0aXZlICJkIikKKyAgKGxldCAoKGJ1dHRvbiAoY29uZCAoKG51 bWJlcnAgYnV0dG9uLW9yLXBvcykKKwkJICAgICAgIChidXR0b24tYXQgYnV0dG9uLW9yLXBvcykp CisJCSAgICAgICgobWFya2VycCBidXR0b24tb3ItcG9zKQorCQkgICAgICAgKHdpdGgtY3VycmVu dC1idWZmZXIgKG1hcmtlci1idWZmZXIgYnV0dG9uLW9yLXBvcykKKwkJCSAoYnV0dG9uLWF0IGJ1 dHRvbi1vci1wb3MpKSkKKwkJICAgICAgKChudWxsIGJ1dHRvbi1vci1wb3MpCisJCSAgICAgICAo YnV0dG9uLWF0IChwb2ludCkpKQorCQkgICAgICAodAorCQkgICAgICAgYnV0dG9uLW9yLXBvcykp KQorCWFjdGlvbiBtb3VzZS1kb3duLWFjdGlvbiB0eXBlKQorICAgICh3aGVuIGJ1dHRvbgorICAg ICAgKHNldHEgdHlwZSAoYnV0dG9uLXR5cGUgYnV0dG9uKQorICAgICAgICAgICAgYWN0aW9uIChi dXR0b24tZ2V0IGJ1dHRvbiAnYWN0aW9uKQorCSAgICBtb3VzZS1kb3duLWFjdGlvbiAoYnV0dG9u LWdldCBidXR0b24gJ21vdXNlLWRvd24tYWN0aW9uKSkKKyAgICAgIChoZWxwLXNldHVwLXhyZWYK KyAgICAgICAobGlzdCAjJ2J1dHRvbi0tZGVzY3JpYmUtYWN0aW9ucy1pbnRlcm5hbCB0eXBlIGFj dGlvbiBtb3VzZS1kb3duLWFjdGlvbikKKyAgICAgICAoY2FsbGVkLWludGVyYWN0aXZlbHktcCAn aW50ZXJhY3RpdmUpKQorICAgICAgKGJ1dHRvbi0tZGVzY3JpYmUtYWN0aW9ucy1pbnRlcm5hbCB0 eXBlIGFjdGlvbiBtb3VzZS1kb3duLWFjdGlvbikKKyAgICAgIHQpKSkKKwogKHByb3ZpZGUgJ2J1 dHRvbikKIAogOzs7IGJ1dHRvbi5lbCBlbmRzIGhlcmUKZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3Mt bGlzcC9zZXEuZWwgYi9saXNwL2VtYWNzLWxpc3Avc2VxLmVsCmluZGV4IDM0MTNjZDEuLmYwMDFk Y2UgMTAwNjQ0Ci0tLSBhL2xpc3AvZW1hY3MtbGlzcC9zZXEuZWwKKysrIGIvbGlzcC9lbWFjcy1s aXNwL3NlcS5lbApAQCAtMzM0LDYgKzMzNCw3IEBAIHNlcS1zb3J0LWJ5CiAgICAgICAgICAgKHRo cm93ICdzZXEtLWJyZWFrIHJlc3VsdCkpKSkKICAgICBuaWwpKQogCis7OzsjIyNhdXRvbG9hZAog KGNsLWRlZmdlbmVyaWMgc2VxLWZpbmQgKHByZWQgc2VxdWVuY2UgJm9wdGlvbmFsIGRlZmF1bHQp CiAgICJSZXR1cm4gdGhlIGZpcnN0IGVsZW1lbnQgZm9yIHdoaWNoIChQUkVEIGVsZW1lbnQpIGlz IG5vbi1uaWwgaW4gU0VRVUVOQ0UuCiBJZiBubyBlbGVtZW50IGlzIGZvdW5kLCByZXR1cm4gREVG QVVMVC4KZGlmZiAtLWdpdCBhL2xpc3AvaGVscC1mbnMuZWwgYi9saXNwL2hlbHAtZm5zLmVsCmlu ZGV4IGU5ZTI4MThkLi5lOWQyMTM5IDEwMDY0NAotLS0gYS9saXNwL2hlbHAtZm5zLmVsCisrKyBi L2xpc3AvaGVscC1mbnMuZWwKQEAgLTE1MzAsNiArMTUzMCw0OCBAQCBkZXNjcmliZS1jYXRlZ29y aWVzCiAJKHdoaWxlIChzZXRxIHRhYmxlIChjaGFyLXRhYmxlLXBhcmVudCB0YWJsZSkpCiAJICAo aW5zZXJ0ICJcblRoZSBwYXJlbnQgY2F0ZWdvcnkgdGFibGUgaXM6IikKIAkgIChkZXNjcmliZS12 ZWN0b3IgdGFibGUgJ2hlbHAtZGVzY3JpYmUtY2F0ZWdvcnktc2V0KSkpKSkpCisMCis7OyBBY3Rp b25zLgorCisoZGVmdmFyIGRlc2NyaWJlLWFjdGlvbnMtZnVuY3Rpb25zICcoYnV0dG9uLWRlc2Ny aWJlLWFjdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWRnZXQt ZGVzY3JpYmUtYWN0aW9ucykKKyAgIkEgbGlzdCBvZiBmdW5jdGlvbnMgZm9yIGBkZXNjcmliZS1h Y3Rpb25zJyB0byBjYWxsLgorRWFjaCBmdW5jdGlvbiBzaG91bGQgdGFrZSBvbmUgYXJndW1lbnQs IGEgcG9zaXRpb24gaW4gdGhlIGJ1ZmZlciwgYW5kIHJldHVybgorbm9uLW5pbCBpZiBpdCBkZXNj cmliZWQgdGhlIGFjdGlvbnMgb2YgYW4gZWxlbWVudCBhdCB0aGF0IHBvc2l0aW9uLgorVGhlIGFy Z3VtZW50IHBhc3NlZCBtaWdodCBiZSBuaWwsIHdoaWNoIGluZGljYXRlcyB0byBkZXNjcmliZSB0 aGUgYWN0aW9ucyBvZgordGhlIGVsZW1lbnQgYXQgcG9pbnQuIikKKworOzs7IyMjYXV0b2xvYWQK KyhkZWZ1biBkZXNjcmliZS1hY3Rpb25zICgmb3B0aW9uYWwgcG9zKQorICAiRGVzY3JpYmUgdGhl IGFjdGlvbnMgYXNzb2NpYXRlZCB0byBhbiBlbGVtZW50IGF0IGEgYnVmZmVyIHBvc2l0aW9uIFBP Uy4KK0FjdGlvbnMgYXJlIGZ1bmN0aW9ucyB0aGF0IGdldCBleGVjdXRlZCB3aGVuIHRoZSB1c2Vy IGFjdGl2YXRlcyB0aGUgZWxlbWVudCwKK2J5IGNsaWNraW5nIG9uIGl0LCBvciBwcmVzc2luZyBh IGtleS4gIFR5cGljYWxseSwgYWN0aW9ucyBhcmUgYXNzb2NpYXRlZCB0bworYSBidXR0b24gKGUu Zy4sIGxpbmtzIGluIGEgKkhlbHAqIGJ1ZmZlcikgb3IgYSB3aWRnZXQgKGUuZy4sIGJ1dHRvbnMs IGxpbmtzLAorZWRpdGFibGUgZmllbGRzLCBldGMuLCBvZiB0aGUgY3VzdG9taXphdGlvbiBidWZm ZXJzKS4KKworSW50ZXJhY3RpdmVseSwgY2xpY2sgb24gYW4gZWxlbWVudCB0byBkZXNjcmliZSBp dHMgYWN0aW9ucywgb3IgaGl0IFJFVAordG8gZGVzY3JpYmUgdGhlIGFjdGlvbnMgb2YgdGhlIGVs ZW1lbnQgYXQgcG9pbnQuCisKK1doZW4gY2FsbGVkIGZyb20gTGlzcCwgUE9TIG1heSBiZSBhIGJ1 ZmZlciBwb3NpdGlvbiwgb3IgbmlsLCB0byBkZXNjcmliZSB0aGUKK2FjdGlvbnMgb2YgdGhlIGVs ZW1lbnQgYXQgcG9pbnQuCisKK1RyYXZlcnNlcyB0aGUgbGlzdCBgZGVzY3JpYmUtYWN0aW9uLWZ1 bmN0aW9ucycsIHVudGlsIG9uZSBvZiB0aGUgZnVuY3Rpb25zCityZXR1cm5zIG5vbi1uaWwuIgor ICAoaW50ZXJhY3RpdmUKKyAgIChsaXN0CisgICAgKGxldCAoKGtleQorICAgICAgICAgICAocmVh ZC1rZXkKKwkgICAgIkNsaWNrIGFuIGVsZW1lbnQsIG9yIGhpdCBSRVQgdG8gZGVzY3JpYmUgdGhl IGVsZW1lbnQgYXQgcG9pbnQiKSkpCisgICAgICAoY29uZCAoKGVxIGtleSA/XEMtbSkgbmlsKQor ICAgICAgICAgICAgKChhbmQgKG1vdXNlLWV2ZW50LXAga2V5KQorICAgICAgICAgICAgICAgICAg KGVxIChldmVudC1iYXNpYy10eXBlIGtleSkgJ21vdXNlLTEpCisgICAgICAgICAgICAgICAgICAo ZXF1YWwgKGV2ZW50LW1vZGlmaWVycyBrZXkpICcoY2xpY2spKSkKKyAgICAgICAgICAgICAocG9z bi1wb2ludCAoZXZlbnQtZW5kIGtleSkpKQorICAgICAgICAgICAgKChlcSBrZXkgP1xDLWcpIChz aWduYWwgJ3F1aXQgbmlsKSkKKyAgICAgICAgICAgICh0ICh1c2VyLWVycm9yICJZb3UgZGlkbid0 IHNwZWNpZnkgYW4gZWxlbWVudCIpKSkpKSkKKyAgKHVubGVzcyAoc2VxLWZpbmQgKGxhbWJkYSAo ZnVuKSAod2hlbiAoZmJvdW5kcCBmdW4pIChmdW5jYWxsIGZ1biBwb3MpKSkKKwkJICAgIGRlc2Ny aWJlLWFjdGlvbnMtZnVuY3Rpb25zKQorICAgIChtZXNzYWdlICJObyBhY3Rpb25zIGhlcmUiKSkp CiAKIAwKIDs7OyBSZXBsYWNlbWVudHMgZm9yIG9sZCBsaWItc3JjLyBwcm9ncmFtcy4gIERvbid0 IHNlZW0gZXNwZWNpYWxseSB1c2VmdWwuCmRpZmYgLS1naXQgYS9saXNwL3dpZC1lZGl0LmVsIGIv bGlzcC93aWQtZWRpdC5lbAppbmRleCA5MTZkNDFhLi5mOGY0ODVhIDEwMDY0NAotLS0gYS9saXNw L3dpZC1lZGl0LmVsCisrKyBiL2xpc3Avd2lkLWVkaXQuZWwKQEAgLTU4Niw2ICs1ODYsNzAgQEAg d2lkZ2V0LW1hcC1idXR0b25zCiAgICAgICAoaWYgKGFuZCB3aWRnZXQgKGZ1bmNhbGwgZnVuY3Rp b24gd2lkZ2V0IG1hcGFyZykpCiAJICAoc2V0cSBvdmVybGF5cyBuaWwpKSkpKQogCisoZGVmdW4g d2lkZ2V0LWRlc2NyaWJlLWFjdGlvbnMgKCZvcHRpb25hbCB3aWRnZXQtb3ItcG9zKQorICAiRGVz Y3JpYmUgdGhlIGFjdGlvbnMgYXNzb2NpYXRlZCB0byB0aGUgd2lkZ2V0IGF0IHBvaW50LgorRGlz cGxheXMgYSBidWZmZXIgd2l0aCBhIGRlc2NyaXB0aW9uIG9mIHRoZSBhY3Rpb25zLCBhcyB3ZWxs IGFzIGEgbGluayB0bworYnJvd3NlIGFsbCB0aGUgcHJvcGVydGllcyBvZiB0aGUgd2lkZ2V0Lgor VGhpcyBjb21tYW5kIHJlc29sdmVzIHRoZSBpbmRpcmVjdGlvbiBvZiB3aWRnZXRzIHJ1bm5pbmcg dGhlIGFjdGlvbiBvZiBpdHMKK3BhcmVudHMsIHNvIHRoZSByZWFsIGFjdGlvbiBleGVjdXRlZCBj YW4gYmUga25vd24uCisKK1doZW4gY2FsbGVkIGZyb20gTGlzcCwgcGFzcyBXSURHRVQtT1ItUE9T IGFzIHRoZSB3aWRnZXQgdG8gZGVzY3JpYmUsCitvciBhIGJ1ZmZlciBwb3NpdGlvbiB3aGVyZSBh IHdpZGdldCBpcyBwcmVzZW50LiAgSWYgV0lER0VULU9SLVBPUyBpcyBuaWwsCit0aGUgd2lkZ2V0 IGF0IHBvaW50IGlzIHRoZSB3aWRnZXQgdG8gZGVzY3JpYmUuIgorICAoaW50ZXJhY3RpdmUgImQi KQorICAocmVxdWlyZSAnd2lkLWJyb3dzZSkKKyAgKGxldCAoKHdpZGdldCAoaWYgKHdpZGdldHAg d2lkZ2V0LW9yLXBvcykKKwkJICAgIHdpZGdldC1vci1wb3MKKwkJICAod2lkZ2V0LWF0IChvciB3 aWRnZXQtb3ItcG9zIChwb2ludCkpKSkpCisJKGluaGliaXQtcmVhZC1vbmx5IHQpIDsgRm9yIGVy YXNpbmcgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIuCisJYWN0aW9uIG1vdXNlLWRvd24tYWN0 aW9uKQorICAgICh3aGVuIHdpZGdldAorICAgICAgKHNldHEgYWN0aW9uICh3aWRnZXQtcmVzb2x2 ZS1wYXJlbnQtYWN0aW9uIHdpZGdldCkKKwkgICAgbW91c2UtZG93bi1hY3Rpb24gKHdpZGdldC1n ZXQgd2lkZ2V0IDptb3VzZS1kb3duLWFjdGlvbikpCisgICAgICAoaGVscC1zZXR1cC14cmVmIChs aXN0ICMnd2lkZ2V0LWRlc2NyaWJlLWFjdGlvbnMgd2lkZ2V0KQorCQkgICAgICAgKGNhbGxlZC1p bnRlcmFjdGl2ZWx5LXAgJ2ludGVyYWN0aXZlKSkKKyAgICAgICh3aXRoLWhlbHAtd2luZG93ICho ZWxwLWJ1ZmZlcikKKwkod2l0aC1jdXJyZW50LWJ1ZmZlciAoaGVscC1idWZmZXIpCisJICAod2lk Z2V0LWluc2VydCAiVGhpcyB3aWRnZXQncyB0eXBlIGlzICIpCisJICAod2lkZ2V0LWNyZWF0ZSAn d2lkZ2V0LWJyb3dzZSA6Zm9ybWF0ICIlWyV2JV1cbiVkIgorCQkJIDpkb2MgKGdldCAoY2FyIHdp ZGdldCkgJ3dpZGdldC1kb2N1bWVudGF0aW9uKQorCQkJIDpoZWxwLWVjaG8gIkJyb3dzZSB0aGlz IHdpZGdldCdzIHByb3BlcnRpZXMiCisJCQkgd2lkZ2V0KQorCSAgKHdpZGdldC1pbnNlcnQgIlxu IikKKwkgICh3aGVuIChmdW5jdGlvbnAgYWN0aW9uKQorCSAgICAod2lkZ2V0LWluc2VydCAocHJv cGVydGl6ZSAiQWN0aW9uIiAnZmFjZSAnYm9sZCkpCisJICAgICh3aWRnZXQtaW5zZXJ0ICJcblRo ZSBhY3Rpb24gb2YgdGhpcyB3aWRnZXQgaXMgIikKKwkgICAgKGlmIChzeW1ib2xwIGFjdGlvbikK KwkJKHdpZGdldC1jcmVhdGUgJ2Z1bmN0aW9uLWxpbmsgOnZhbHVlIGFjdGlvbgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDpidXR0b24tcHJlZml4ICIiCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOmJ1dHRvbi1zdWZmaXggIiIKKwkJCSAgICAgICA6aGVscC1lY2hvICJE ZXNjcmliZSB0aGlzIGZ1bmN0aW9uIikKKwkgICAgICAod2lkZ2V0LWluc2VydCAiXG4iKQorCSAg ICAgIChwcmluYyBhY3Rpb24pKQorCSAgICAod2lkZ2V0LWluc2VydCAiXG5cbiIpKQorCSAgKHdo ZW4gKGZ1bmN0aW9ucCBtb3VzZS1kb3duLWFjdGlvbikKKwkgICAgKHdpZGdldC1pbnNlcnQgKHBy b3BlcnRpemUgIk1vdXNlLWRvd24tYWN0aW9uIiAnZmFjZSAnYm9sZCkpCisJICAgICh3aWRnZXQt aW5zZXJ0ICJcblRoZSBtb3VzZS1kb3duLWFjdGlvbiBvZiB0aGlzIHdpZGdldCBpcyAiKQorCSAg ICAoaWYgKHN5bWJvbHAgbW91c2UtZG93bi1hY3Rpb24pCisJCSh3aWRnZXQtY3JlYXRlICdmdW5j dGlvbi1saW5rIDp2YWx1ZSBtb3VzZS1kb3duLWFjdGlvbgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDpidXR0b24tcHJlZml4ICIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOmJ1dHRvbi1zdWZmaXggIiIKKwkJCSAgICAgICA6aGVscC1lY2hvICJEZXNjcmliZSB0aGlz IGZ1bmN0aW9uIikKKwkgICAgICAod2lkZ2V0LWluc2VydCAiXG4iKQorCSAgICAgIChwcmluYyBt b3VzZS1kb3duLWFjdGlvbikpCisJICAgICh3aWRnZXQtaW5zZXJ0ICJcbiIpKQorCSAgKHdpZGdl dC1zZXR1cCkKKwkgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpKSkpKSkKKworKGRlZnVuIHdpZGdl dC1yZXNvbHZlLXBhcmVudC1hY3Rpb24gKHdpZGdldCkKKyAgIklmIGFjdGlvbiBvZiBXSURHRVQg aXMgYHdpZGdldC1wYXJlbnQtYWN0aW9uJywgZmluZCBvdXQgd2hhdCB3b3VsZCB0aGF0IGJlLiIK KyAgKGxldCAoKGFjdGlvbiAod2lkZ2V0LWdldCB3aWRnZXQgOmFjdGlvbikpCisJKHBhcmVudCAo d2lkZ2V0LWdldCB3aWRnZXQgOnBhcmVudCkpKQorICAgICh3aGlsZSAoYW5kIChlcSBhY3Rpb24g J3dpZGdldC1wYXJlbnQtYWN0aW9uKQorCQkoc2V0cSBwYXJlbnQgKHdpZGdldC1nZXQgcGFyZW50 IDpwYXJlbnQpKSkKKyAgICAgIChzZXRxIGFjdGlvbiAod2lkZ2V0LWdldCBwYXJlbnQgOmFjdGlv bikpKQorICAgIGFjdGlvbikpCisKIDs7OyBJbWFnZXMuCiAKIChkZWZjdXN0b20gd2lkZ2V0LWlt YWdlLWRpcmVjdG9yeSAoZmlsZS1uYW1lLWFzLWRpcmVjdG9yeQotLSAKMi43LjQKCg== --000000000000a9a64005942a53d5--