From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Dunsmore Subject: Re: [PATCH] Add support for month trees Date: Tue, 26 Nov 2019 18:14:04 -0600 Message-ID: References: <87ftib2dqx.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000008b4724059848e0e3" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:40297) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZkyK-00085n-Mv for emacs-orgmode@gnu.org; Tue, 26 Nov 2019 19:14:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iZkyI-0007Kx-Ev for emacs-orgmode@gnu.org; Tue, 26 Nov 2019 19:14:20 -0500 Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]:36053) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iZkyI-0007IA-1p for emacs-orgmode@gnu.org; Tue, 26 Nov 2019 19:14:18 -0500 Received: by mail-lj1-x22e.google.com with SMTP id k15so22346007lja.3 for ; Tue, 26 Nov 2019 16:14:17 -0800 (PST) In-Reply-To: <87ftib2dqx.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: Org Mode --0000000000008b4724059848e0e3 Content-Type: multipart/alternative; boundary="0000000000008b4722059848e0e1" --0000000000008b4722059848e0e1 Content-Type: text/plain; charset="UTF-8" Hi Nicolas, I've addressed each of your points in my updated patch (attached). Thanks, Jason On Tue, Nov 26, 2019 at 3:22 AM Nicolas Goaziou wrote: > Hello, > > Jason writes: > > > Please find my attached patch which implements a way to capture entries > > grouped by month. > > Thank you. > > > I was searching for this option, but only found a way to group entries by > > week or day. > > > > I found the following posts where other people also need this feature: > > https://emacs.stackexchange.com/questions/48414/monthly-date-tree > > https://lists.gnu.org/archive/html/emacs-orgmode/2018-02/msg00092.html > > I think this can be tested in "next" branch. Could you rebase your patch > against it? > > > * etc/ORG-NEWS: Document new `:tree-type month' option. > > No need to provide this information in the commit message, IMO. Of > course, it doesn't hurt in any case. Just sayin'. > > > + Use ~week~ to make a week tree instead of the month-day tree, > > + i.e., place the headings for each day under a heading with the > > + current ISO week. Use @code{month} to group entries by month > > + only. Default is to group entries by day. > > You need to put two spaces after full stops. > > > + (cond > > + ((eq (org-capture-get :tree-type) 'week) > > + #'org-datetree-find-iso-week-create) > > + ((eq (org-capture-get :tree-type) 'month) > > + #'org-datetree-find-month-create) > > + (t > > + #'org-datetree-find-date-create)) > > Could you refactor that with `case' instead? I.e., > > (case (org-capture-get :tree-type) > (`week ...) > ...) > > + (if (eq time-grouping 'day) > > + (org-datetree--find-create > > + "^\\*+[ \t]+%d-%02d-\\([0123][0-9]\\) \\w+$" > > + year month day))))) > > Please use `when' (or `unless') instead of one-armed `if'. > > Could you send an updated patch? > > Regards, > > -- > Nicolas Goaziou > --0000000000008b4722059848e0e1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi=C2=A0Nicolas,

I'= ;ve addressed each of your points in my updated patch (attached).

Thanks,
Jason

On Tue, Nov 26, 2019 at 3:22 A= M Nicolas Goaziou <mail@nicola= sgoaziou.fr> wrote:
Hello,

Jason <jaso= ndunsmore@gmail.com> writes:

> Please find my attached patch which implements a way to capture entrie= s
> grouped by month.

Thank you.

> I was searching for this option, but only found a way to group entries= by
> week or day.
>
> I found the following posts where other people also need this feature:=
> https://emacs.stackexchange.co= m/questions/48414/monthly-date-tree
> https://lists.gnu.org/arc= hive/html/emacs-orgmode/2018-02/msg00092.html

I think this can be tested in "next" branch. Could you rebase you= r patch
against it?

> * etc/ORG-NEWS: Document new `:tree-type month' option.

No need to provide this information in the commit message, IMO. Of
course, it doesn't hurt in any case. Just sayin'.

> +=C2=A0 =C2=A0 Use ~week~ to make a week tree instead of the month-day= tree,
> +=C2=A0 =C2=A0 i.e., place the headings for each day under a heading w= ith the
> +=C2=A0 =C2=A0 current ISO week. Use @code{month} to group entries by = month
> +=C2=A0 =C2=A0 only. Default is to group entries by day.

You need to put two spaces after full stops.

> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(cond
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ((eq (org-capture-get :tree-type) = 'week)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0#'org-datetree-find-iso-= week-create)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ((eq (org-capture-get :tree-type) = 'month)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0#'org-datetree-find-mont= h-create)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (t
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0#'org-datetree-find-date= -create))

Could you refactor that with `case' instead? I.e.,

=C2=A0 =C2=A0 (case (org-capture-get :tree-type)
=C2=A0 =C2=A0 =C2=A0(`week ...)
=C2=A0 =C2=A0 =C2=A0...)
> +=C2=A0 =C2=A0 =C2=A0 (if (eq time-grouping 'day)
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0(org-datetree--find-create
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 "^\\*+[ \t]+%d-%02d-\\([0123][0-9]\\= ) \\w+$"
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 year month day)))))

Please use `when' (or `unless') instead of one-armed `if'.

Could you send an updated patch?

Regards,

--
Nicolas Goaziou
--0000000000008b4722059848e0e1-- --0000000000008b4724059848e0e3 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-org-capture.el-Add-support-for-month-trees.patch" Content-Disposition: attachment; filename="0001-org-capture.el-Add-support-for-month-trees.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k3gjc5bm0 RnJvbSBiNDMyYmE0ZWRiMWZjY2Y1M2ExYTZmMTg3ZTcxMGI4MjViMDU0NjczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBEdW5zbW9yZSA8amFzb25kdW5zbW9yZUBnbWFpbC5j b20+CkRhdGU6IFdlZCwgNiBOb3YgMjAxOSAyMTo0OTo0MyAtMDYwMApTdWJqZWN0OiBbUEFUQ0hd IG9yZy1jYXB0dXJlLmVsOiBBZGQgc3VwcG9ydCBmb3IgbW9udGggdHJlZXMKCiogZG9jL29yZy1t YW51YWwub3JnOiBBZGQgYDp0cmVlLXR5cGUgbW9udGgnIG9wdGlvbiBmb3IgY2FwdHVyZQogIHRl bXBsYXRlcy4KKiBsaXNwL29yZy1jYXB0dXJlLmVsIChvcmctY2FwdHVyZS1zZXQtdGFyZ2V0LWxv Y2F0aW9uKTogQWRkCiAgYDp0cmVlLXR5cGUgbW9udGgnIG9wdGlvbiB0byBjYXB0dXJlIHRlbXBs YXRlcyB0byBncm91cCBlbnRyaWVzIGJ5CiAgbW9udGguCiogbGlzcC9vcmctZGF0ZXRyZWUuZWwg KG9yZy1kYXRldHJlZS1maW5kLW1vbnRoLWNyZWF0ZSk6IEFkZAogIGBvcmctZGF0ZXRyZWUtZmlu ZC1tb250aC1jcmVhdGUnIGZ1bmN0aW9uIHRvIGFkZCBkYXRldHJlZSBlbnRyaWVzCiAgZ3JvdXBl ZCBieSBtb250aC4KKiB0ZXN0aW5nL2xpc3AvdGVzdC1vcmctZGF0ZXRyZWUuZWwKICAodGVzdC1v cmctZGF0ZXRyZWUvZmluZC1tb250aC1jcmVhdGUpOiBBZGQgdGVzdCBmb3IgbmV3IGZ1bmN0aW9u LgotLS0KIGRvYy9vcmctbWFudWFsLm9yZyAgICAgICAgICAgICAgICB8ICA3ICsrKystLS0KIGV0 Yy9PUkctTkVXUyAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrKystCiBsaXNwL29yZy1jYXB0 dXJlLmVsICAgICAgICAgICAgICAgfCAgNyArKysrLS0tCiBsaXNwL29yZy1kYXRldHJlZS5lbCAg ICAgICAgICAgICAgfCAyNyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIHRlc3RpbmcvbGlz cC90ZXN0LW9yZy1kYXRldHJlZS5lbCB8IDExICsrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQs IDQ2IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9vcmct bWFudWFsLm9yZyBiL2RvYy9vcmctbWFudWFsLm9yZwppbmRleCBlZTcwOTJkMTQuLjhjMzEwYTBm OSAxMDA2NDQKLS0tIGEvZG9jL29yZy1tYW51YWwub3JnCisrKyBiL2RvYy9vcmctbWFudWFsLm9y ZwpAQCAtNzU5OSw5ICs3NTk5LDEwIEBAIE5vdyBsZXRzIGxvb2sgYXQgdGhlIGVsZW1lbnRzIG9m IGEgdGVtcGxhdGUgZGVmaW5pdGlvbi4gIEVhY2ggZW50cnkgaW4KIAogICAtIH46dHJlZS10eXBl fiA6OgogCi0gICAgV2hlbiB+d2Vla34sIG1ha2UgYSB3ZWVrIHRyZWUgaW5zdGVhZCBvZiB0aGUg bW9udGggdHJlZSwgaS5lLiwKLSAgICBwbGFjZSB0aGUgaGVhZGluZ3MgZm9yIGVhY2ggZGF5IHVu ZGVyIGEgaGVhZGluZyB3aXRoIHRoZSBjdXJyZW50Ci0gICAgSVNPIHdlZWsuCisgICAgVXNlIH53 ZWVrfiB0byBtYWtlIGEgd2VlayB0cmVlIGluc3RlYWQgb2YgdGhlIG1vbnRoLWRheSB0cmVlLAor ICAgIGkuZS4sIHBsYWNlIHRoZSBoZWFkaW5ncyBmb3IgZWFjaCBkYXkgdW5kZXIgYSBoZWFkaW5n IHdpdGggdGhlCisgICAgY3VycmVudCBJU08gd2Vlay4gIFVzZSBAY29kZXttb250aH0gdG8gZ3Jv dXAgZW50cmllcyBieSBtb250aAorICAgIG9ubHkuICBEZWZhdWx0IGlzIHRvIGdyb3VwIGVudHJp ZXMgYnkgZGF5LgogCiAgIC0gfjp1bm5hcnJvd2VkfiA6OgogCmRpZmYgLS1naXQgYS9ldGMvT1JH LU5FV1MgYi9ldGMvT1JHLU5FV1MKaW5kZXggNjg5YTA3ODcxLi4wYjk3OTQ4ZTYgMTAwNjQ0Ci0t LSBhL2V0Yy9PUkctTkVXUworKysgYi9ldGMvT1JHLU5FV1MKQEAgLTM0NSw3ICszNDUsOSBAQCB0 aGUgaGVhZGxpbmUgdG8gdXNlIGZvciBtYWtpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLgogLCog QW5vdGhlciBzZWN0aW9uCiAsIytUT0M6IGhlYWRsaW5lcyAxIDp0YXJnZXQgIiNUYXJnZXRTZWN0 aW9uIgogIytlbmRfZXhhbXBsZQotCisqKiogTmV3IG9wdGlvbiB0byBncm91cCBjYXB0dXJlZCBk YXRldGltZSBlbnRyaWVzIGJ5IG1vbnRoCitBIG5ldyBgOnRyZWUtdHlwZSBtb250aCcgb3B0aW9u IHdhcyBhZGRlZCB0byBvcmctY2FwdHVyZS10ZW1wbGF0ZXMgdG8KK2dyb3VwIG5ldyBkYXRldGlt ZSBlbnRyaWVzIGJ5IG1vbnRoLgogKiogTmV3IGZ1bmN0aW9ucwogKioqIH5vcmctZHluYW1pYy1i bG9jay1pbnNlcnQtZGJsb2NrfgogCkBAIC0zNTgsNiArMzYwLDcgQEAgZHluYW1pYyBibG9jayBp biB+b3JnLWR5bmFtaWMtYmxvY2stYWxpc3R+LgogKioqIH5vcmctdGFibGUtY2VsbC1sZWZ0fgog KioqIH5vcmctdGFibGUtY2VsbC1yaWdodH4KICoqKiB+b3JnLWhhYml0LXRvZ2dsZS1kaXNwbGF5 LWluLWFnZW5kYX4KKyoqKiB+b3JnLWRhdGV0cmVlLWZpbmQtbW9udGgtY3JlYXRlfgogKiogUmVt b3ZlZCBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcwogKioqIFJlbW92ZWQgT3JnIERyaWxsCiAKZGlm ZiAtLWdpdCBhL2xpc3Avb3JnLWNhcHR1cmUuZWwgYi9saXNwL29yZy1jYXB0dXJlLmVsCmluZGV4 IDY3MzQzZTAyYS4uMzkxMjFkMWZiIDEwMDY0NAotLS0gYS9saXNwL29yZy1jYXB0dXJlLmVsCisr KyBiL2xpc3Avb3JnLWNhcHR1cmUuZWwKQEAgLTk5OCw5ICs5OTgsMTAgQEAgU3RvcmUgdGhlbSBp biB0aGUgY2FwdHVyZSBwcm9wZXJ0eSBsaXN0LiIKIAkgICA7OyBNYWtlIGEgZGF0ZS93ZWVrIHRy ZWUgZW50cnksIHdpdGggdGhlIGN1cnJlbnQgZGF0ZSAob3IKIAkgICA7OyB5ZXN0ZXJkYXksIGlm IHdlIGFyZSBleHRlbmRpbmcgZGF0ZXMgZm9yIGEgY291cGxlIG9mIGhvdXJzKQogCSAgIChmdW5j YWxsCi0JICAgIChpZiAoZXEgKG9yZy1jYXB0dXJlLWdldCA6dHJlZS10eXBlKSAnd2VlaykKLQkJ IydvcmctZGF0ZXRyZWUtZmluZC1pc28td2Vlay1jcmVhdGUKLQkgICAgICAjJ29yZy1kYXRldHJl ZS1maW5kLWRhdGUtY3JlYXRlKQorCSAgICAocGNhc2UgKG9yZy1jYXB0dXJlLWdldCA6dHJlZS10 eXBlKQorCSAgICAgICgnd2VlayAjJ29yZy1kYXRldHJlZS1maW5kLWlzby13ZWVrLWNyZWF0ZSkK KwkgICAgICAoJ21vbnRoICMnb3JnLWRhdGV0cmVlLWZpbmQtbW9udGgtY3JlYXRlKQorCSAgICAg ICh0ICMnb3JnLWRhdGV0cmVlLWZpbmQtZGF0ZS1jcmVhdGUpKQogCSAgICAoY2FsZW5kYXItZ3Jl Z29yaWFuLWZyb20tYWJzb2x1dGUKIAkgICAgIChjb25kCiAJICAgICAgKG9yZy1vdmVycmlkaW5n LWRlZmF1bHQtdGltZQpkaWZmIC0tZ2l0IGEvbGlzcC9vcmctZGF0ZXRyZWUuZWwgYi9saXNwL29y Zy1kYXRldHJlZS5lbAppbmRleCBiNDc5N2RlMWUuLmVlODY3MmQ3YiAxMDA2NDQKLS0tIGEvbGlz cC9vcmctZGF0ZXRyZWUuZWwKKysrIGIvbGlzcC9vcmctZGF0ZXRyZWUuZWwKQEAgLTUxLDExICs1 MSwyOSBAQCBBZGRlZCB0aW1lIHN0YW1wIGlzIGFjdGl2ZSB1bmxlc3MgdmFsdWUgaXMgYGluYWN0 aXZlJy4iCiAKIDs7OyMjI2F1dG9sb2FkCiAoZGVmdW4gb3JnLWRhdGV0cmVlLWZpbmQtZGF0ZS1j cmVhdGUgKGQgJm9wdGlvbmFsIGtlZXAtcmVzdHJpY3Rpb24pCi0gICJGaW5kIG9yIGNyZWF0ZSBh biBlbnRyeSBmb3IgZGF0ZSBELgorICAiRmluZCBvciBjcmVhdGUgYSBkYXkgZW50cnkgZm9yIGRh dGUgRC4KIElmIEtFRVAtUkVTVFJJQ1RJT04gaXMgbm9uLW5pbCwgZG8gbm90IHdpZGVuIHRoZSBi dWZmZXIuCiBXaGVuIGl0IGlzIG5pbCwgdGhlIGJ1ZmZlciB3aWxsIGJlIHdpZGVuZWQgdG8gbWFr ZSBzdXJlIGFuIGV4aXN0aW5nIGRhdGUKIHRyZWUgY2FuIGJlIGZvdW5kLiAgSWYgaXQgaXMgdGhl IHN5bWJvbCBgc3VidHJlZS1hdC1wb2ludCcsIHRoZW4gdGhlIHRyZWUKIHdpbGwgYmUgYnVpbHQg dW5kZXIgdGhlIGhlYWRsaW5lIGF0IHBvaW50LiIKKyAgKG9yZy1kYXRldHJlZS0tZmluZC1jcmVh dGUtZ3JvdXAgZCAnZGF5IGtlZXAtcmVzdHJpY3Rpb24pKQorCis7OzsjIyNhdXRvbG9hZAorKGRl ZnVuIG9yZy1kYXRldHJlZS1maW5kLW1vbnRoLWNyZWF0ZSAoZCAmb3B0aW9uYWwga2VlcC1yZXN0 cmljdGlvbikKKyAgIkZpbmQgb3IgY3JlYXRlIGEgbW9udGggZW50cnkgZm9yIGRhdGUgRC4KK0Nv bXBhcmVkIHRvIGBvcmctZGF0ZXRyZWUtZmluZC1kYXRlLWNyZWF0ZScgdGhpcyBmdW5jdGlvbiBj cmVhdGVzCitlbnRyaWVzIGdyb3VwZWQgYnkgbW9udGggaW5zdGVhZCBvZiBkYXlzLgorSWYgS0VF UC1SRVNUUklDVElPTiBpcyBub24tbmlsLCBkbyBub3Qgd2lkZW4gdGhlIGJ1ZmZlci4KK1doZW4g aXQgaXMgbmlsLCB0aGUgYnVmZmVyIHdpbGwgYmUgd2lkZW5lZCB0byBtYWtlIHN1cmUgYW4gZXhp c3RpbmcgZGF0ZQordHJlZSBjYW4gYmUgZm91bmQuICBJZiBpdCBpcyB0aGUgc3ltYm9sIGBzdWJ0 cmVlLWF0LXBvaW50JywgdGhlbiB0aGUgdHJlZQord2lsbCBiZSBidWlsdCB1bmRlciB0aGUgaGVh ZGxpbmUgYXQgcG9pbnQuIgorICAob3JnLWRhdGV0cmVlLS1maW5kLWNyZWF0ZS1ncm91cCBkICdt b250aCBrZWVwLXJlc3RyaWN0aW9uKSkKKworKGRlZnVuIG9yZy1kYXRldHJlZS0tZmluZC1jcmVh dGUtZ3JvdXAKKyAgICAoZCB0aW1lLWdyb3VwaW5nICZvcHRpb25hbCBrZWVwLXJlc3RyaWN0aW9u KQorICAiRmluZCBvciBjcmVhdGUgYW4gZW50cnkgZm9yIGRhdGUgRC4KK0lmIHRpbWUtcGVyaW9k IGlzIGRheSwgZ3JvdXAgZW50cmllcyBieSBkYXkuIElmIHRpbWUtcGVyaW9kIGlzCittb250aCwg dGhlbiBncm91cCBlbnRyaWVzIGJ5IG1vbnRoLiIKICAgKHNldHEtbG9jYWwgb3JnLWRhdGV0cmVl LWJhc2UtbGV2ZWwgMSkKICAgKHNhdmUtcmVzdHJpY3Rpb24KICAgICAoaWYgKGVxIGtlZXAtcmVz dHJpY3Rpb24gJ3N1YnRyZWUtYXQtcG9pbnQpCkBAIC04NCw5ICsxMDIsMTAgQEAgd2lsbCBiZSBi dWlsdCB1bmRlciB0aGUgaGVhZGxpbmUgYXQgcG9pbnQuIgogICAgICAgKG9yZy1kYXRldHJlZS0t ZmluZC1jcmVhdGUKICAgICAgICAiXlxcKitbIFx0XSslZC1cXChbMDFdWzAtOV1cXCkgXFx3KyQi CiAgICAgICAgeWVhciBtb250aCkKLSAgICAgIChvcmctZGF0ZXRyZWUtLWZpbmQtY3JlYXRlCi0g ICAgICAgIl5cXCorWyBcdF0rJWQtJTAyZC1cXChbMDEyM11bMC05XVxcKSBcXHcrJCIKLSAgICAg ICB5ZWFyIG1vbnRoIGRheSkpKSkKKyAgICAgICh3aGVuIChlcSB0aW1lLWdyb3VwaW5nICdkYXkp CisJKG9yZy1kYXRldHJlZS0tZmluZC1jcmVhdGUKKwkgIl5cXCorWyBcdF0rJWQtJTAyZC1cXChb MDEyM11bMC05XVxcKSBcXHcrJCIKKwkgeWVhciBtb250aCBkYXkpKSkpKQogCiA7OzsjIyNhdXRv bG9hZAogKGRlZnVuIG9yZy1kYXRldHJlZS1maW5kLWlzby13ZWVrLWNyZWF0ZSAoZCAmb3B0aW9u YWwga2VlcC1yZXN0cmljdGlvbikKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1k YXRldHJlZS5lbCBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1kYXRldHJlZS5lbAppbmRleCA1ZDU1 ZjZmYzYuLjU1NTdkNWUyMyAxMDA2NDQKLS0tIGEvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWRhdGV0 cmVlLmVsCisrKyBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1kYXRldHJlZS5lbApAQCAtMTEzLDYg KzExMywxNyBAQAogCShvcmctZGF0ZXRyZWUtZmluZC1kYXRlLWNyZWF0ZSAnKDMgMjkgMjAxMikp KQogICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcgKHBvaW50KSAobGluZS1lbmQtcG9zaXRpb24pKSkp KSkKIAorKGVydC1kZWZ0ZXN0IHRlc3Qtb3JnLWRhdGV0cmVlL2ZpbmQtbW9udGgtY3JlYXRlICgp CisgICJUZXN0IGBvcmctZGF0ZXRyZWUtZmluZC1tb250aC1jcmVhdGUnIHNwZWNpZmljYXRpb25z LiIKKyAgOzsgV2hlbiBkYXRlIGlzIG1pc3NpbmcsIGNyZWF0ZSBpdCB3aXRoIHRoZSBlbnRyeSB1 bmRlciBtb250aC4KKyAgKHNob3VsZAorICAgKHN0cmluZy1tYXRjaAorICAgICJcXGBcXCogMjAx MlxuXFwqXFwqIDIwMTItMDMgLipcXCciCisgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIi CisgICAgICAobGV0ICgob3JnLWRhdGV0cmVlLWFkZC10aW1lc3RhbXAgbmlsKSkKKwkob3JnLWRh dGV0cmVlLWZpbmQtbW9udGgtY3JlYXRlICcoMyAyOSAyMDEyKSkpCisgICAgICAob3JnLXRyaW0g KGJ1ZmZlci1zdHJpbmcpKSkpKSkKKwogKGVydC1kZWZ0ZXN0IHRlc3Qtb3JnLWRhdGV0cmVlL2Zp bmQtaXNvLXdlZWstY3JlYXRlICgpCiAgICJUZXN0IGBvcmctZGF0ZXRyZWUtZmluZC1pc28tZGF0 ZS1jcmVhdGUnIHNwZWNpZmljYWl0b24uIgogICA7OyBXaGVuIGRhdGUgaXMgbWlzc2luZywgY3Jl YXRlIGl0LgotLSAKMi4xNy4xCgo= --0000000000008b4724059848e0e3--