From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?Jostein_Kj=c3=b8nigsen?= Newsgroups: gmane.emacs.devel Subject: Re: toml-ts-mode: first draft Date: Wed, 14 Dec 2022 09:40:11 +0100 Message-ID: <94a44e82-c8ae-7ca5-ee79-0099cfd8dde4@secure.kjonigsen.net> References: <4E261A68-AB14-48A5-B19C-8981CB003F33@secure.kjonigsen.net> <86a63unfvp.fsf@mail.linkov.net> <83cz8pu9cr.fsf@gnu.org> <0f74be1a-8502-ce66-6101-2b3f060295c5@secure.kjonigsen.net> <7825A406-3F21-4E38-9E9B-B429B9E81B4E@gmail.com> <1711257d-a476-3f67-04e1-0da3c979594a@secure.kjonigsen.net> Reply-To: jostein@kjonigsen.net Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------pgqJU9DhV1tR8FWizlgR0FZC" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36997"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Cc: Yuan Fu , Eli Zaretskii , Juri Linkov , emacs-devel , theo@thornhill.no To: Randy Taylor Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Dec 14 09:47:11 2022 Return-path: Envelope-to: ged-emacs-devel@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 1p5NPx-0009Kh-ME for ged-emacs-devel@m.gmane-mx.org; Wed, 14 Dec 2022 09:47:09 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p5NJV-0004tj-A8; Wed, 14 Dec 2022 03:40:29 -0500 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 ) id 1p5NJS-0004sY-Ir for emacs-devel@gnu.org; Wed, 14 Dec 2022 03:40:26 -0500 Original-Received: from wout4-smtp.messagingengine.com ([64.147.123.20]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p5NJO-0004lh-KE; Wed, 14 Dec 2022 03:40:26 -0500 Original-Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id 98177320084E; Wed, 14 Dec 2022 03:40:17 -0500 (EST) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Wed, 14 Dec 2022 03:40:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= secure.kjonigsen.net; h=cc:cc:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:reply-to:sender:subject:subject:to:to; s=fm1; t= 1671007217; x=1671093617; bh=y2uXMRuAb0FfLK/+8GRLhXTPafT49Pm9ahc nxqWzXdA=; b=PCqyH5DproUdLOi96gLz5kqTd1FUGyAwNkQ6m7xF98fRaC9HPmM hkUoVjKGBsKBJ5MmsDsmmn7YZPyvyWd1HLKW/O+ciWUE2mJ3fs63mdrJ2IdvqC0I bpxF0Z6QaT3q+/9QPDH0VbEAvhzYIpENU5lLCSABvzBz2arITtalnqhVerjBbyFB aGhHYV8pS/BMs5uwH1lR0aMQOFrZ2XcFxhzT8R8R4rfXMyhsQs3jcps7V3lkbA/q Fuw5vmpiLq5z/pY9DZhsL3lVK+rB1HdbNSJ8zYXKQLUU792L3XGrB/rhcV9NN0q2 JupXG7ByqhHw9EjjWDWQ81gDktXB+kl0hkA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; t=1671007217; x=1671093617; bh=y2uXMRuAb0FfL K/+8GRLhXTPafT49Pm9ahcnxqWzXdA=; b=seW/9X3XLUY18wbOybswRfpUiWp0h PJEmK4pVC9y+gBmV4IOboxijI4T91pJNoKCRiIsPBH4z7FYC1apj/lnEZvIyaJ9V j+hgf2j20q6L3q1jsIDUgINrl6AaIj0aV3YadVRQj5UYq5YEU8mW3IagzPeb2kg3 /R+VwruTO8zDFHoDBOmgfJzo45P13u8GW50PwIa0te6QUNxawsjSIXQXmJeoXp82 LHtcAZlGNvQlg9j3LbMl+VkwIL4f9clZU9sCm23/gD2wtLgJk9SYlZ39Zy+pn4KF OKTwuZj1iadVVWeRhJL6Fe/rWcjpLzgZWQuGoc/PcAMcbQEmLpCf2XSNw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfedvgdduvdduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptgfkffggfghruffvvehfhfgjsehmtderredtfeejnecuhfhrohhmpeflohhs thgvihhnucfmjhppnhhighhsvghnuceojhhoshhtvghinhesshgvtghurhgvrdhkjhhonh highhsvghnrdhnvghtqeenucggtffrrghtthgvrhhnpeelieehgfevfeffleekleelffff tdefveelteehfefgtdfgtdefieevkefgveekvdenucevlhhushhtvghrufhiiigvpedtne curfgrrhgrmhepmhgrihhlfhhrohhmpehjohhsthgvihhnsehsvggtuhhrvgdrkhhjohhn ihhgshgvnhdrnhgvth X-ME-Proxy: Feedback-ID: ib2f84088:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 14 Dec 2022 03:40:15 -0500 (EST) Content-Language: en-GB, nb-NO In-Reply-To: Received-SPF: pass client-ip=64.147.123.20; envelope-from=jostein@secure.kjonigsen.net; helo=wout4-smtp.messagingengine.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:301374 Archived-At: This is a multi-part message in MIME format. --------------pgqJU9DhV1tR8FWizlgR0FZC Content-Type: multipart/alternative; boundary="------------Y4S5TKMF0QfuBED0ftZnY6NE" --------------Y4S5TKMF0QfuBED0ftZnY6NE Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 13.12.2022 23:37, Randy Taylor wrote: > > Looks good! > > Just a few final comments: > > - It would be nice to separate bracket out to its own bracket feature > if it's not too much of a hassle. Is it not matchable just with (["[" > "]"]) on its own? > It's actually a problem about matching the bare_key, or dotted_key in the table-header. Without having those brackets there, that selector does not get applied. > - (setq-local treesit-font-lock-level 4) should probably be removed > since I don't think modes shouldn't be setting that. > Ok. Fixed. And I'll just need to figure out how to force level 4 on my system globally then. I don't find level 3 particularly pleasing :) > - Should toml-ts--indent-rules be named toml-ts-mode--indent-rules to > be consistent with everything else? > Nice catch. Fixed. Attached is a new revision. Final revision? Is this good for merging now? :) -- Jostein --------------Y4S5TKMF0QfuBED0ftZnY6NE Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit On 13.12.2022 23:37, Randy Taylor wrote:

Looks good!

Just a few final comments:

- It would be nice to separate bracket out to its own bracket feature if it's not too much of a hassle. Is it not matchable just with (["[" "]"]) on its own?

It's actually a problem about matching the bare_key, or dotted_key in the table-header. Without having those brackets there, that selector does not get applied.

- (setq-local treesit-font-lock-level 4) should probably be removed since I don't think modes shouldn't be setting that.

Ok. Fixed.

And I'll just need to figure out how to force level 4 on my system globally then. I don't find level 3 particularly pleasing :)

- Should toml-ts--indent-rules be named toml-ts-mode--indent-rules to be consistent with everything else?

Nice catch. Fixed.

Attached is a new revision. Final revision? Is this good for merging now? :)

--
Jostein

--------------Y4S5TKMF0QfuBED0ftZnY6NE-- --------------pgqJU9DhV1tR8FWizlgR0FZC Content-Type: text/x-patch; charset=UTF-8; name="0005-Introduce-support-for-TOML-config-format.patch" Content-Disposition: attachment; filename="0005-Introduce-support-for-TOML-config-format.patch" Content-Transfer-Encoding: base64 RnJvbSA3NTczMjZmNmNkN2MwOWVhNDYwODU4NjBlYTZhNjZiODZjZjJiZTA5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sm9zdGVpbj0yMEtqPUMzPUI4bmln c2VuPz0gPGpvc3RlaW5Aa2pvbmlnc2VuLm5ldD4KRGF0ZTogU3VuLCAxMSBEZWMgMjAyMiAx MzowNToyOSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggNS81XSBJbnRyb2R1Y2Ugc3VwcG9ydCBm b3IgVE9NTCBjb25maWctZm9ybWF0CgpUaGlzIGNvbW1pdCBpbnRyb2R1Y2VzIHN1cHBvcnQg Zm9yIHRoZSBzZW1pLXBvcHVsYXIgVE9NTApjb25maWctZm9ybWF0WzFdIHRocm91Z2ggYSBu ZXcgbWFqb3ItbW9kZTogdG9tbC10cy1tb2RlLgoKSSd2ZSByZWFkIHRocm91Z2ggdGhlIGZ1 bGwgc3BlY1syXSwgYW5kIGZyb20gd2hhdCBJIGNhbiBzZWUgdGhpcwptYWpvci1tb2RlIHNo b3VsZCBwcm92aWRlIGNvcnJlY3Qgc3ludGF4LWhpZ2hsaWd0aW5nIGZvciBldmVyeSBzb3J0 IG9mCmNvbmZpZy1kZWNsYXJhdGlvbiB3aGljaCBhZGhlcmVzIHRvIHRoZSBzcGVjaWZpY2F0 aW9uLgoKQmVzaWRlcyB0aGF0IGl0IGFsc28gYWRkcyBzdXBwb3J0IGZvciBpbWVudSBhbmQg YmFzaWMgdHJlZS1zaXR0ZXIKYmFzZWQgbmF2aWdhdGlvbi4KClsxXSBodHRwczovL3RvbWwu aW8vZW4vClsyXSBodHRwczovL3RvbWwuaW8vZW4vdjEuMC4wCi0tLQogYWRtaW4vbm90ZXMv dHJlZS1zaXR0ZXIvYnVpbGQtbW9kdWxlL2JhdGNoLnNoIHwgICA0ICstCiBsaXNwL3RleHRt b2Rlcy90b21sLXRzLW1vZGUuZWwgICAgICAgICAgICAgICAgfCAxODcgKysrKysrKysrKysr KysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDE5MCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGlzcC90ZXh0bW9kZXMvdG9tbC10cy1tb2RlLmVs CgpkaWZmIC0tZ2l0IGEvYWRtaW4vbm90ZXMvdHJlZS1zaXR0ZXIvYnVpbGQtbW9kdWxlL2Jh dGNoLnNoIGIvYWRtaW4vbm90ZXMvdHJlZS1zaXR0ZXIvYnVpbGQtbW9kdWxlL2JhdGNoLnNo CmluZGV4IDZkY2UwMDBjYWE2Li4yYjgzNjdmZTZkYiAxMDA3NTUKLS0tIGEvYWRtaW4vbm90 ZXMvdHJlZS1zaXR0ZXIvYnVpbGQtbW9kdWxlL2JhdGNoLnNoCisrKyBiL2FkbWluL25vdGVz L3RyZWUtc2l0dGVyL2J1aWxkLW1vZHVsZS9iYXRjaC5zaApAQCAtMSw2ICsxLDcgQEAKICMh L2Jpbi9iYXNoCiAKIGxhbmd1YWdlcz0oCisgICAgJ2Jhc2gnCiAgICAgJ2MnCiAgICAgJ2Nw cCcKICAgICAnY3NzJwpAQCAtMTIsOCArMTMsOSBAQCBsYW5ndWFnZXM9CiAgICAgJ2pzb24n CiAgICAgJ3B5dGhvbicKICAgICAncnVzdCcKLSAgICAndHlwZXNjcmlwdCcKKyAgICAndG9t bCcKICAgICAndHN4JworICAgICd0eXBlc2NyaXB0JwogKQogCiBmb3IgbGFuZ3VhZ2UgaW4g IiR7bGFuZ3VhZ2VzW0BdfSIKZGlmZiAtLWdpdCBhL2xpc3AvdGV4dG1vZGVzL3RvbWwtdHMt bW9kZS5lbCBiL2xpc3AvdGV4dG1vZGVzL3RvbWwtdHMtbW9kZS5lbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjZhM2ViNjlkOGQKLS0tIC9kZXYvbnVsbAor KysgYi9saXNwL3RleHRtb2Rlcy90b21sLXRzLW1vZGUuZWwKQEAgLTAsMCArMSwxODcgQEAK Kzs7OyB0b21sLXRzLW1vZGUuZWwgLS0tIHRyZWUtc2l0dGVyIHN1cHBvcnQgZm9yIFRPTUwg IC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQorCis7OyBDb3B5cmlnaHQgKEMpIDIwMjIg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKzs7IEF1dGhvciAgICAgOiBKb3N0 ZWluIEtqw7huaWdzZW4gPGpvc3RlaW5Aa2pvbmlnc2VuLm5ldD4KKzs7IE1haW50YWluZXIg OiBKb3N0ZWluIEtqw7huaWdzZW4gPGpvc3RlaW5Aa2pvbmlnc2VuLm5ldD4KKzs7IENyZWF0 ZWQgICAgOiBEZWNlbWJlciAyMDIyCis7OyBLZXl3b3JkcyAgIDogdG9tbCBsYW5ndWFnZXMg dHJlZS1zaXR0ZXIKKworOzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgorCis7 OyBHTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKzs7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCis7OyAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCis7OyBHTlUgRW1hY3MgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKzs7IGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCis7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorCis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorOzsgYWxvbmcgd2l0aCBHTlUgRW1h Y3MuICBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCis7 OzsgQ29tbWVudGFyeToKKzs7CisKKzs7OyBDb2RlOgorCisocmVxdWlyZSAndHJlZXNpdCkK KworKGRlY2xhcmUtZnVuY3Rpb24gdHJlZXNpdC1wYXJzZXItY3JlYXRlICJ0cmVlc2l0LmMi KQorKGRlY2xhcmUtZnVuY3Rpb24gdHJlZXNpdC1pbmR1Y2Utc3BhcnNlLXRyZWUgInRyZWVz aXQuYyIpCisoZGVjbGFyZS1mdW5jdGlvbiB0cmVlc2l0LW5vZGUtc3RhcnQgInRyZWVzaXQu YyIpCisoZGVjbGFyZS1mdW5jdGlvbiB0cmVlc2l0LW5vZGUtY2hpbGQtYnktZmllbGQtbmFt ZSAidHJlZXNpdC5jIikKKworKGRlZmN1c3RvbSB0b21sLXRzLW1vZGUtaW5kZW50LW9mZnNl dCAyCisgICJOdW1iZXIgb2Ygc3BhY2VzIGZvciBlYWNoIGluZGVudGF0aW9uIHN0ZXAgaW4g YHRvbWwtdHMtbW9kZScuIgorICA6dmVyc2lvbiAiMjkuMSIKKyAgOnR5cGUgJ2ludGVnZXIK KyAgOnNhZmUgJ2ludGVnZXJwCisgIDpncm91cCAndG9tbCkKKworKGRlZnZhciB0b21sLXRz LW1vZGUtLXN5bnRheC10YWJsZQorICAobGV0ICgodGFibGUgKG1ha2Utc3ludGF4LXRhYmxl KSkpCisgICAgKG1vZGlmeS1zeW50YXgtZW50cnkgP18gICJfIiAgICAgdGFibGUpCisgICAg KG1vZGlmeS1zeW50YXgtZW50cnkgP1xcICJcXCIgICAgdGFibGUpCisgICAgKG1vZGlmeS1z eW50YXgtZW50cnkgPz0gICIuIiAgICAgdGFibGUpCisgICAgKG1vZGlmeS1zeW50YXgtZW50 cnkgP1wnICJcIiIgICAgdGFibGUpCisgICAgKG1vZGlmeS1zeW50YXgtZW50cnkgPyMgICI8 IiAgIHRhYmxlKQorICAgIChtb2RpZnktc3ludGF4LWVudHJ5ID9cbiAiPiBiIiAgdGFibGUp CisgICAgKG1vZGlmeS1zeW50YXgtZW50cnkgP1xebSAiPiBiIiB0YWJsZSkKKyAgICB0YWJs ZSkKKyAgIlN5bnRheCB0YWJsZSBmb3IgYHRvbWwtdHMtbW9kZScuIikKKworKGRlZnZhciB0 b21sLXRzLW1vZGUtLWluZGVudC1ydWxlcworICBgKCh0b21sCisgICAgICgobm9kZS1pcyAi XSIpIHBhcmVudC1ib2wgMCkKKyAgICAgKChwYXJlbnQtaXMgInN0cmluZyIpIHBhcmVudC1i b2wgdG9tbC10cy1tb2RlLWluZGVudC1vZmZzZXQpCisgICAgICgocGFyZW50LWlzICJhcnJh eSIpIHBhcmVudC1ib2wgdG9tbC10cy1tb2RlLWluZGVudC1vZmZzZXQpKSkpCisKKyhkZWZ2 YXIgdG9tbC10cy1tb2RlLS1mb250LWxvY2stc2V0dGluZ3MKKyAgKHRyZWVzaXQtZm9udC1s b2NrLXJ1bGVzCisgICA6bGFuZ3VhZ2UgJ3RvbWwKKyAgIDpmZWF0dXJlICdjb21tZW50Cisg ICAnKChjb21tZW50KSBAZm9udC1sb2NrLWNvbW1lbnQtZmFjZSkKKworICAgOmxhbmd1YWdl ICd0b21sCisgICA6ZmVhdHVyZSAnY29uc3RhbnQKKyAgICcoKGJvb2xlYW4pIEBmb250LWxv Y2stY29uc3RhbnQtZmFjZSkKKworICAgOmxhbmd1YWdlICd0b21sCisgICA6ZmVhdHVyZSAn ZGVsaW1pdGVyCisgICAnKChbIj0iXSkgQGZvbnQtbG9jay1kZWxpbWl0ZXItZmFjZSkKKwor ICAgOmxhbmd1YWdlICd0b21sCisgICA6ZmVhdHVyZSAnbnVtYmVyCisgICAnKFsoaW50ZWdl cikgKGZsb2F0KSAobG9jYWxfZGF0ZSkgKGxvY2FsX2RhdGVfdGltZSkgKGxvY2FsX3RpbWUp XQorICAgICBAZm9udC1sb2NrLW51bWJlci1mYWNlKQorCisgICA6bGFuZ3VhZ2UgJ3RvbWwK KyAgIDpmZWF0dXJlICdzdHJpbmcKKyAgICcoKHN0cmluZykgQGZvbnQtbG9jay1zdHJpbmct ZmFjZSkKKworICAgOmxhbmd1YWdlICd0b21sCisgICA6ZmVhdHVyZSAnZXNjYXBlLXNlcXVl bmNlCisgICA6b3ZlcnJpZGUgdAorICAgJygoZXNjYXBlX3NlcXVlbmNlKSBAZm9udC1sb2Nr LWVzY2FwZS1mYWNlKQorCisgICA6bGFuZ3VhZ2UgJ3RvbWwKKyAgIDpmZWF0dXJlICdwYWly CisgICA6b3ZlcnJpZGUgdCAgICAgICAgICAgIDsgTmVlZGVkIGZvciBvdmVycmlkaW5nIHN0 cmluZyBmYWNlIG9uIGtleXMuCisgICAnKChiYXJlX2tleSkgQGZvbnQtbG9jay1wcm9wZXJ0 eS1mYWNlCisgICAgIChxdW90ZWRfa2V5KSBAZm9udC1sb2NrLXByb3BlcnR5LWZhY2UKKyAg ICAgKHRhYmxlICgiWyIgQGZvbnQtbG9jay1icmFja2V0LWZhY2UKKyAgICAgICAgICAgICAo XykgQGZvbnQtbG9jay10eXBlLWZhY2UKKyAgICAgICAgICAgICAiXSIgQGZvbnQtbG9jay1i cmFja2V0LWZhY2UpKQorICAgICAodGFibGVfYXJyYXlfZWxlbWVudCAoIltbIiBAZm9udC1s b2NrLWJyYWNrZXQtZmFjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKF8pIEBmb250 LWxvY2stdHlwZS1mYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXV0iIEBmb250 LWxvY2stYnJhY2tldC1mYWNlKSkKKyAgICAgKHRhYmxlIChxdW90ZWRfa2V5KSBAZm9udC1s b2NrLXR5cGUtZmFjZSkKKyAgICAgKHRhYmxlIChkb3R0ZWRfa2V5IChxdW90ZWRfa2V5KSkg QGZvbnQtbG9jay10eXBlLWZhY2UpKQorCisgICA6bGFuZ3VhZ2UgJ3RvbWwKKyAgIDpmZWF0 dXJlICdlcnJvcgorICAgOm92ZXJyaWRlIHQKKyAgICcoKEVSUk9SKSBAZm9udC1sb2NrLXdh cm5pbmctZmFjZSkpCisgICJGb250LWxvY2sgc2V0dGluZ3MgZm9yIFRPTUwuIikKKworKGRl ZnVuIHRvbWwtdHMtbW9kZS0tZ2V0LXRhYmxlLW5hbWUgKG5vZGUpCisgICJPYnRhaW5zIHRo ZSBoZWFkZXItbmFtZSBmb3IgdGhlIGFzc29jaWF0ZWQgdHJlZS1zaXR0ZXIgYE5PREUnLiIK KyAgKGlmIG5vZGUKKyAgICAgICh0cmVlc2l0LW5vZGUtdGV4dAorICAgICAgIChjYXIgKGNk ciAodHJlZXNpdC1ub2RlLWNoaWxkcmVuIG5vZGUpKSkpCisgICAgIlJvb3QgdGFibGUiKSkK KworKGRlZnVuIHRvbWwtdHMtbW9kZS0taW1lbnUtMSAobm9kZSkKKyAgIkhlbHBlciBmb3Ig YHRvbWwtdHMtbW9kZS0taW1lbnUnLgorRmluZCBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9y IE5PREUgYW5kIHNldCBtYXJrZXIsIHRoZW4gcmVjdXJzZQordGhlIHN1YnRyZWVzLiIKKyAg KGxldCogKCh0cy1ub2RlIChjYXIgbm9kZSkpCisgICAgICAgICAoc3VidHJlZXMgKG1hcGNh biAjJ3RvbWwtdHMtbW9kZS0taW1lbnUtMSAoY2RyIG5vZGUpKSkKKyAgICAgICAgIChuYW1l ICh0b21sLXRzLW1vZGUtLWdldC10YWJsZS1uYW1lIHRzLW5vZGUpKQorICAgICAgICAgKG1h cmtlciAod2hlbiB0cy1ub2RlCisgICAgICAgICAgICAgICAgICAgKHNldC1tYXJrZXIgKG1h a2UtbWFya2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmVlc2l0LW5v ZGUtc3RhcnQgdHMtbm9kZSkpKSkpCisgICAgKGNvbmQKKyAgICAgKChudWxsIHRzLW5vZGUp IHN1YnRyZWVzKQorICAgICAoc3VidHJlZXMKKyAgICAgIGAoKCxuYW1lICwoY29ucyBuYW1l IG1hcmtlcikgLEBzdWJ0cmVlcykpKQorICAgICAodAorICAgICAgYCgoLG5hbWUgLiAsbWFy a2VyKSkpKSkpCisKKyhkZWZ1biB0b21sLXRzLW1vZGUtLWltZW51ICgpCisgICJSZXR1cm4g SW1lbnUgYWxpc3QgZm9yIHRoZSBjdXJyZW50IGJ1ZmZlci4iCisgIChsZXQqICgobm9kZSAo dHJlZXNpdC1idWZmZXItcm9vdC1ub2RlKSkKKyAgICAgICAgICh0YWJsZS10cmVlICh0cmVl c2l0LWluZHVjZS1zcGFyc2UtdHJlZQorICAgICAgICAgICAgICAgICAgICAgIG5vZGUgIl50 YWJsZSQiIG5pbCAxMDAwKSkKKyAgICAgICAgICh0YWJsZS1hcnJheS10cmVlICh0cmVlc2l0 LWluZHVjZS1zcGFyc2UtdHJlZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUg Il50YWJsZV9hcnJheV9lbGVtZW50JCIgbmlsIDEwMDApKQorICAgICAgICAgKHRhYmxlLWlu ZGV4ICh0b21sLXRzLW1vZGUtLWltZW51LTEgdGFibGUtdHJlZSkpCisgICAgICAgICAodGFi bGUtYXJyYXktaW5kZXggKHRvbWwtdHMtbW9kZS0taW1lbnUtMSB0YWJsZS1hcnJheS10cmVl KSkpCisgICAgKGFwcGVuZAorICAgICAod2hlbiB0YWJsZS1pbmRleCBgKCgiSGVhZGVycyIg LiAsdGFibGUtaW5kZXgpKSkKKyAgICAgKHdoZW4gdGFibGUtYXJyYXktaW5kZXggYCgoIkFy cmF5cyIgLiAsdGFibGUtYXJyYXktaW5kZXgpKSkpKSkKKworCis7OzsjIyNhdXRvbG9hZAor KGFkZC10by1saXN0ICdhdXRvLW1vZGUtYWxpc3QgJygiXFwudG9tbFxcJyIgLiB0b21sLXRz LW1vZGUpKQorCis7OzsjIyNhdXRvbG9hZAorKGRlZmluZS1kZXJpdmVkLW1vZGUgdG9tbC10 cy1tb2RlIHRleHQtbW9kZSAiVE9NTCIKKyAgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgVE9N TCwgcG93ZXJlZCBieSB0cmVlLXNpdHRlci4iCisgIDpncm91cCAndG9tbC1tb2RlCisgIDpz eW50YXgtdGFibGUgdG9tbC10cy1tb2RlLS1zeW50YXgtdGFibGUKKworICAod2hlbiAodHJl ZXNpdC1yZWFkeS1wICd0b21sKQorICAgICh0cmVlc2l0LXBhcnNlci1jcmVhdGUgJ3RvbWwp CisKKyAgICA7OyBDb21tZW50cworICAgIChzZXRxLWxvY2FsIGNvbW1lbnQtc3RhcnQgIiMg IikKKyAgICAoc2V0cS1sb2NhbCBjb21tZW5kLWVuZCAiIikKKworICAgIDs7IEluZGVudC4K KyAgICAoc2V0cS1sb2NhbCB0cmVlc2l0LXNpbXBsZS1pbmRlbnQtcnVsZXMgdG9tbC10cy1t b2RlLS1pbmRlbnQtcnVsZXMpCisKKyAgICA7OyBOYXZpZ2F0aW9uLgorICAgIChzZXRxLWxv Y2FsIHRyZWVzaXQtZGVmdW4tdHlwZS1yZWdleHAKKyAgICAgICAgICAgICAgICAocnggKG9y ICJ0YWJsZSIgInRhYmxlX2FycmF5X2VsZW1lbnQiKSkpCisKKyAgICA7OyBGb250LWxvY2su CisgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MgdG9tbC10cy1t b2RlLS1mb250LWxvY2stc2V0dGluZ3MpCisgICAgKHNldHEtbG9jYWwgdHJlZXNpdC1mb250 LWxvY2stZmVhdHVyZS1saXN0CisgICAgICAgICAgICAgICAgJygoY29tbWVudCkKKyAgICAg ICAgICAgICAgICAgIChjb25zdGFudCBudW1iZXIgcGFpciBzdHJpbmcpCisgICAgICAgICAg ICAgICAgICAoZXNjYXBlLXNlcXVlbmNlKQorICAgICAgICAgICAgICAgICAgKGRlbGltaXRl ciBlcnJvcikpKQorCisgICAgOzsgSW1lbnUuCisgICAgKHNldHEtbG9jYWwgaW1lbnUtY3Jl YXRlLWluZGV4LWZ1bmN0aW9uICMndG9tbC10cy1tb2RlLS1pbWVudSkKKyAgICAoc2V0cS1s b2NhbCB3aGljaC1mdW5jLWZ1bmN0aW9ucyBuaWwpIDs7IFBpZ2d5YmFjayBvbiBpbWVudQor CisgICAgKHRyZWVzaXQtbWFqb3ItbW9kZS1zZXR1cCkpKQorCisocHJvdmlkZSAndG9tbC10 cy1tb2RlKQorCis7OzsgdG9tbC10cy1tb2RlLmVsIGVuZHMgaGVyZQotLSAKMi4zNy4yCgo= --------------pgqJU9DhV1tR8FWizlgR0FZC--