From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#68246: 30.0.50; Add non-TS mode as extra parent of TS modes Date: Mon, 15 Jan 2024 04:10:16 +0200 Message-ID: References: <838r53vlo5.fsf@gnu.org> <831qavvcbo.fsf@gnu.org> <83a5phskd5.fsf@gnu.org> <83h6joqz0t.fsf@gnu.org> <834jfoq86m.fsf@gnu.org> <831qarrbjx.fsf@gnu.org> <87a5p84nlh.fsf@gmail.com> <83edekfldq.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------z7nKgB6pfDIY6GBUOKYYxVsB" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15288"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 68246@debbugs.gnu.org, casouri@gmail.com, monnier@iro.umontreal.ca To: Eli Zaretskii , =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= , Stefan Kangas Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jan 15 03:11:31 2024 Return-path: 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 ) id 1rPCRj-0003kj-W2 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 15 Jan 2024 03:11:30 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rPCRL-0004IZ-UF; Sun, 14 Jan 2024 21:11:03 -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 1rPCRK-0004IN-MA for bug-gnu-emacs@gnu.org; Sun, 14 Jan 2024 21:11:02 -0500 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 ) id 1rPCRK-0001tv-Ab for bug-gnu-emacs@gnu.org; Sun, 14 Jan 2024 21:11:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rPCRJ-0004fE-PY for bug-gnu-emacs@gnu.org; Sun, 14 Jan 2024 21:11:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 15 Jan 2024 02:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68246 X-GNU-PR-Package: emacs Original-Received: via spool by 68246-submit@debbugs.gnu.org id=B68246.170528462817877 (code B ref 68246); Mon, 15 Jan 2024 02:11:01 +0000 Original-Received: (at 68246) by debbugs.gnu.org; 15 Jan 2024 02:10:28 +0000 Original-Received: from localhost ([127.0.0.1]:44411 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rPCQl-0004eG-Nh for submit@debbugs.gnu.org; Sun, 14 Jan 2024 21:10:28 -0500 Original-Received: from out1-smtp.messagingengine.com ([66.111.4.25]:44931) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rPCQi-0004dv-Jm for 68246@debbugs.gnu.org; Sun, 14 Jan 2024 21:10:25 -0500 Original-Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id E0E515C00FD; Sun, 14 Jan 2024 21:10:19 -0500 (EST) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Sun, 14 Jan 2024 21:10:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1705284619; x=1705371019; bh=J5l6/C1wdj Fj0ezXq2KDbvL7dc9+mHMPhGmQX6eVaDE=; b=f7+oF4Br06PgwUkU4bweo9rGKW QPVDx3eIPXsUx1H/32PUoYboD5KwfbMt+0pHvisji9FDcYC9f/LUGru5T73Djawb 2P7u9q5U7o6XZ7fKZ5V21ye/XUZzDmyF9cjQz95YdiTz1Ow7/xzmiA9f7YoM0SRA VvKOPmTTt7eV4OTy8WWzV21KTayNz0WAfL7rD2yoO5NznZcXCZlCj6co1ai6JQ1b n1cjqEfN4j42AgqV9h7Tura2E39gvhwv4sVzNPdHymkaQQdqgxHUYx433ZaOp+UT eOA2Iq0o4cRg1QdloM+N7DsGMplcdtnHQuXV0ioDTsqNuwdepb8/yWaAGTCg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1705284619; x=1705371019; bh=J5l6/C1wdjFj0ezXq2KDbvL7dc9+ mHMPhGmQX6eVaDE=; b=YRHpUzfR4bO+eMPQst1GoarMHBBuNOYKuy8YkEJ6eooH 8g7AqHJRU5dhsYKHtG7PqrjhdoobC60e/XKGaN/mepAQjWWYjfvr6U/pwymPCB0n w6gOinqLg8S00TZnBcQ7ZuQopOCUqgC09wGxtCKa291QKMep8+bQg2GzmrUQj87s n8l/X2kJOUETjG++YZS04xwouyR9fcZAgm6gb3dNn1ZTv9/+iS3ssmbSD5yjGKub jlzx2USR7n3aFKuDfCzb0uColKNOYQc5t4bANvO/5W0Re0rR4KWTDHbdLeb2SIij /5h1ghUwB99cbCHh6rhpA8JgDxu0W7cZfdemR6ca+g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvdejtddggeefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeenucfhrhhomhepffhmihht rhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtth gvrhhnpeehleefudekudduveekieelgfeiffdvkefhkeeljeeujeegueekveffkeejjeev heenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumh hithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 14 Jan 2024 21:10:17 -0500 (EST) Content-Language: en-US In-Reply-To: <83edekfldq.fsf@gnu.org> 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" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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:278247 Archived-At: This is a multi-part message in MIME format. --------------z7nKgB6pfDIY6GBUOKYYxVsB Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 14/01/2024 09:02, Eli Zaretskii wrote: >> From: João Távora >> Cc: Eli Zaretskii , Stefan Monnier >> , 68246@debbugs.gnu.org >> Date: Sun, 14 Jan 2024 03:10:02 +0000 >> >> Yuan Fu writes: >> >>> observe what breaks? Then Joao can either say “I told you” or happily >>> found out that this patch works ok. >> >> Those are not the only two outcomes. It might work OK and not break >> anything [*]. >> >> However it is not easy to quantify confused users looking to understand >> the new meaning of things in dir-locals.el. Or users wondering why they >> need to set Eglot variables in both 'c++-mode-hook' and >> 'c++-ts-mode-hook' when all they see is 'c++-mode' in >> 'eglot-server-programs'. > > Those users will hopefully submit bug reports or otherwise complain on > the Emacs mailing lists, and then we will know. I rather wouldn't rely on that. >> There are better alternatives to this patch: >> >> 1. The base modes, which are substantially _already_ in place. They >> follow the naming convention -base-mode. After giving more >> thought to your earlier objection about derived modes overriding >> variables, it doesn't make sense (I can elaborate if you want :-) ). > > The recommendation is to use base modes where it makes sense, and the > installed changes around derived-mode-add-parents don't in any way > preclude having a base mode and don't make it harder. But I don't > think we should force everyone in this situation to invent a base mode > as the sole means for solving this. It's not like we don't have an existing solution for this: if there are two different modes to configure, change the settings for both modes, or alter two hooks. Less magical and more verbose, but being explicit can be good. >> 2. Explicitly associating some major modes with languages or file types. >> This doesn't seem hard and other further uses like suggesting modes >> or packages to a new user based on languages have been proposed. > > This is IMO a heavier and more thorough change, especially since Emacs > doesn't have the notion of "language". This discussion shows that its > advantages are not evident, and moreover we don't even have a clear > shared view what will that entail. Here's a draft patch of how a "language" could work. It doesn't alter every entry, but it is backward compatible. It adds an entity called "language" above major modes which are denoted with keywords (you could also call it content-types, but that's a longer name). The patch implements an implicit language detection as well (based on the mode name), but ideally modes that belong to specific languages would not have direct entries in auto-mode-alist, etc, at all. Benefits: - Avoiding duplicating a bunch of regexps, for ts modes in particular. - Uncovered an existing bug: ruby-ts-mode didn't add an entry for interpreter-mode-alist, only for auto-mode-alist. - The user could avoid thinking in terms of major modes, and when they wanted to enable a fitting mode, they can type 'M-x set-buffer-language' and choose one of the known languages with completion. - Features like Eglot could now call (buffer-language) and dispatch based on that (that can make the value of eglot-server-programs more compact in the long run). - Hook -language-hook is run inside set-auto-mode-0, for the user to add customizations to major modes that share the language but no common ancestor. Further possible additions (mentioned previously): - Potential UI for customizing major-mode-remap-alist to decide which major mode to use for a given language, becomes easier/doable. - Even when there is no installed major mode for a given language, but an auto-mode-alist entry for it exists, we could now do something with it in fundamental-mode. Like still use Eglot's features, or suggest the user installs one of the language support packages for that language from ELPA (knowing the language name, we can suggest a specific package). --------------z7nKgB6pfDIY6GBUOKYYxVsB Content-Type: text/x-patch; charset=UTF-8; name="buffer-language.diff" Content-Disposition: attachment; filename="buffer-language.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvZmlsZXMuZWwgYi9saXNwL2ZpbGVzLmVsCmluZGV4IDljODkx NGJmYzUwLi4wNzA3ZGMwOWFjOCAxMDA2NDQKLS0tIGEvbGlzcC9maWxlcy5lbAorKysgYi9s aXNwL2ZpbGVzLmVsCkBAIC0zMDEwLDEwICszMDEwLDEwIEBAIGF1dG8tbW9kZS1hbGlzdAog ICAgICAoIlxcLmRia1xcJyIgLiB4bWwtbW9kZSkKICAgICAgKCJcXC5kdGRcXCciIC4gc2dt bC1tb2RlKQogICAgICAoIlxcLmRzXFwoc3NcXCk/bFxcJyIgLiBkc3NzbC1tb2RlKQotICAg ICAoIlxcLmpzW214XT9cXCciIC4gamF2YXNjcmlwdC1tb2RlKQorICAgICAoIlxcLmpzW214 XT9cXCciIC4gOmpzKQogICAgICA7OyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS8u aGFyCi0gICAgICgiXFwuaGFyXFwnIiAuIGphdmFzY3JpcHQtbW9kZSkKLSAgICAgKCJcXC5q c29uXFwnIiAuIGpzLWpzb24tbW9kZSkKKyAgICAgKCJcXC5oYXJcXCciIC4gOmpzKQorICAg ICAoIlxcLmpzb25cXCciIC4gOmpzb24pCiAgICAgICgiXFwuW2RzXT92YT9oP1xcJyIgLiB2 ZXJpbG9nLW1vZGUpCiAgICAgICgiXFwuYnlcXCciIC4gYm92aW5lLWdyYW1tYXItbW9kZSkK ICAgICAgKCJcXC53eVxcJyIgLiB3aXNlbnQtZ3JhbW1hci1tb2RlKQpAQCAtMzE1MCw2ICsz MTUwLDkgQEAgYXV0by1tb2RlLWFsaXN0CiBWaXNpdGluZyBhIGZpbGUgd2hvc2UgbmFtZSBt YXRjaGVzIFJFR0VYUCBzcGVjaWZpZXMgRlVOQ1RJT04gYXMgdGhlCiBtb2RlIGZ1bmN0aW9u IHRvIHVzZS4gIEZVTkNUSU9OIHdpbGwgYmUgY2FsbGVkLCB1bmxlc3MgaXQgaXMgbmlsLgog CitGVU5DVElPTiBjYW4gYWxzbyBiZSBhIGtleXdvcmQgZGVub3RpbmcgYSBsYW5ndWFnZSwg dG8gYmUgbG9va2VkCit1cCBpbiBgbWFqb3ItbW9kZS1yZW1hcC1hbGlzdCcuCisKIElmIHRo ZSBlbGVtZW50IGhhcyB0aGUgZm9ybSAoUkVHRVhQIEZVTkNUSU9OIE5PTi1OSUwpLCB0aGVu IGFmdGVyCiBjYWxsaW5nIEZVTkNUSU9OIChpZiBpdCdzIG5vdCBuaWwpLCB3ZSBkZWxldGUg dGhlIHN1ZmZpeCB0aGF0IG1hdGNoZWQKIFJFR0VYUCBhbmQgc2VhcmNoIHRoZSBsaXN0IGFn YWluIGZvciBhbm90aGVyIG1hdGNoLgpAQCAtMzIwNiwxMCArMzIwOSwxMCBAQCBpbnRlcnBy ZXRlci1tb2RlLWFsaXN0CiAgICAgICgiZW1hY3MiIC4gZW1hY3MtbGlzcC1tb2RlKSkpCiAg ICJBbGlzdCBtYXBwaW5nIGludGVycHJldGVyIG5hbWVzIHRvIG1ham9yIG1vZGVzLgogVGhp cyBpcyB1c2VkIGZvciBmaWxlcyB3aG9zZSBmaXJzdCBsaW5lcyBtYXRjaCBgYXV0by1tb2Rl LWludGVycHJldGVyLXJlZ2V4cCcuCi1FYWNoIGVsZW1lbnQgbG9va3MgbGlrZSAoUkVHRVhQ IC4gTU9ERSkuCitFYWNoIGVsZW1lbnQgbG9va3MgbGlrZSAoUkVHRVhQIC4gTU9ERS1PUi1M QU5HVUFHRSkuCiBJZiBSRUdFWFAgbWF0Y2hlcyB0aGUgZW50aXJlIG5hbWUgKG1pbnVzIGFu eSBkaXJlY3RvcnkgcGFydCkgb2YKIHRoZSBpbnRlcnByZXRlciBzcGVjaWZpZWQgaW4gdGhl IGZpcnN0IGxpbmUgb2YgYSBzY3JpcHQsIGVuYWJsZQotbWFqb3IgbW9kZSBNT0RFLgorTU9E RS1PUi1MQU5HVUFHRS4KIAogU2VlIGFsc28gYGF1dG8tbW9kZS1hbGlzdCcuIikKIApAQCAt MzU1NCw3ICszNTU3LDcgQEAgbWFqb3ItbW9kZS1yZW1hcC1hbGlzdAogOzsgc2FtZSBvbmUg d2UgYWxyZWFkeSBoYXZlLCBkb24ndCBhY3R1YWxseSByZXNldCBpdC4gIFdlIGRvbid0IHdh bnQgdG8gbG9zZQogOzsgbWlub3IgbW9kZXMgc3VjaCBhcyBGb250IExvY2suCiAoZGVmdW4g c2V0LWF1dG8tbW9kZS0wIChtb2RlICZvcHRpb25hbCBrZWVwLW1vZGUtaWYtc2FtZSkKLSAg IkFwcGx5IE1PREUgYW5kIHJldHVybiBpdC4KKyAgIkFwcGx5IE1PREUgYW5kIHJldHVybiBp dC4gIE1PREUgY2FuIGJlIGEgZnVuY3Rpb24gb2YgbGFuZ3VhZ2UuCiBJZiBvcHRpb25hbCBh cmcgS0VFUC1NT0RFLUlGLVNBTUUgaXMgbm9uLW5pbCwgTU9ERSBpcyBjaGFzZWQgb2YKIGFu eSBhbGlhc2VzIGFuZCBjb21wYXJlZCB0byBjdXJyZW50IG1ham9yIG1vZGUuICBJZiB0aGV5 IGFyZSB0aGUKIHNhbWUsIGRvIG5vdGhpbmcgYW5kIHJldHVybiBuaWwuIgpAQCAtMzU2NSwx MSArMzU2OCw0MyBAQCBzZXQtYXV0by1tb2RlLTAKIAkJICAgICAgICAoZXEgbW9kZSAoY2Fy IHNldC1hdXRvLW1vZGUtLWxhc3QpKQogCQkgICAgICAgIChlcSBtYWpvci1tb2RlIChjZHIg c2V0LWF1dG8tbW9kZS0tbGFzdCkpKSkpCiAgICAgKHdoZW4gbW9kZQotICAgICAgKGZ1bmNh bGwgKGFsaXN0LWdldCBtb2RlIG1ham9yLW1vZGUtcmVtYXAtYWxpc3QgbW9kZSkpCisgICAg ICA7OyBYWFg6IFdoZW4gdGhlcmUncyBubyBtYXBwaW5nIGZvciBgOjxsYW5ndWFnZT4nLCB3 ZSBjb3VsZCBhbHNvCisgICAgICA7OyBsb29rIGZvciBhIGZ1bmN0aW9uIGNhbGxlZCBgPGxh bmd1YWdlPi1tb2RlJy4KKyAgICAgIChmdW5jYWxsIChhbGlzdC1nZXQgbW9kZSBtYWpvci1t b2RlLXJlbWFwLWFsaXN0IChpZiAoa2V5d29yZHAgbW9kZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ2Z1bmRhbWVudGFs LW1vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbW9kZSkpKQorICAgICAgKHdoZW4gKGtleXdvcmRwIG1vZGUpICAgICAgICAg ICAgIDtQZXJoYXBzIGRvIHRoYXQgdW5jb25kaXRpb25hbGx5LgorICAgICAgICAocnVuLWhv b2tzIChpbnRlcm4gKGZvcm1hdCAiJXMtbGFuZ3VhZ2UtaG9vayIgKGJ1ZmZlci1sYW5ndWFn ZSkpKSkpCiAgICAgICAodW5sZXNzIChlcSBtb2RlIG1ham9yLW1vZGUpCiAgICAgICAgIChz ZXRxIHNldC1hdXRvLW1vZGUtLWxhc3QgKGNvbnMgbW9kZSBtYWpvci1tb2RlKSkpCiAgICAg ICBtb2RlKSkpCiAKKyhkZWZ1biBidWZmZXItbGFuZ3VhZ2UgKCkKKyAgIlJldHVybiB0aGUg bGFuZ3VhZ2Ugb2YgdGhlIGN1cnJlbnQgYnVmZmVyLgorQSBsYW5ndWFnZSBpcyBhIGxvd2Vy Y2FzZSBrZXl3b3JkIHdpdGggdGhlIG5hbWUgb2YgdGhlIGxhbmd1YWdlLiIKKyAgOzsgQWx0 ZXJuYXRpdmVseSwgd2UgY291bGQgZ28gdGhyb3VnaCBhbGwgdGhlIG1hdGNoZXJzIGluCisg IDs7IGF1dG8tbW9kZS1hbGlzdCwgaW50ZXJwcmV0ZXItbW9kZS1hbGlzdCwKKyAgOzsgbWFn aWMtZmFsbGJhY2stbW9kZS1hbGlzdCBoZXJlLCBwb3NzaWJseSB1c2luZyBhIGNhY2hlIGtl eWVkIG9uCisgIDs7IGJ1ZmZlci1maWxlLW5hbWUuICBCdXQgdGhhdCdzIHByb2JhYmx5IGFu IG92ZXJraWxsOiBpZiB0aGUgdXNlcgorICA7OyBjaGFuZ2VzIHRoZSBzZXR0aW5ncywgdGhl eSBjYW4gY2FsbCBgTS14IHJldmVydC1idWZmZXInIGF0IHRoZSBlbmQuCisgIChpZiAoa2V5 d29yZHAgKGNhciBzZXQtYXV0by1tb2RlLS1sYXN0KSkKKyAgICAgIChjYXIgc2V0LWF1dG8t bW9kZS0tbGFzdCkKKyAgICA7OyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorICAgIChpbnRl cm4gKGZvcm1hdCAiOiVzIiAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICJcXCg/Oi10c1xc KT8tbW9kZVxcJyIgIiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoc3ltYm9sLW5hbWUgbWFqb3ItbW9kZSkpKSkpKQorCisoZGVmdW4g c2V0LWJ1ZmZlci1sYW5ndWFnZSAobGFuZ3VhZ2UpCisgICJTZXQgdGhlIGxhbmd1YWdlIG9m IHRoZSBjdXJyZW50IGJ1ZmZlci4KK0FuZCBzd2l0Y2ggdGhlIG1ham9yIG1vZGUgYXBwcm9w cmlhdGVseS4iCisgIChpbnRlcmFjdGl2ZQorICAgKGxpc3QgKGxldCogKChjdCAobWFwY2Fu CisgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChwYWlyKSAoYW5kIChrZXl3b3JkcCAo Y2FyIHBhaXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3Qg KHN5bWJvbC1uYW1lIChjYXIgcGFpcikpKSkpCisgICAgICAgICAgICAgICAgICAgICBtYWpv ci1tb2RlLXJlbWFwLWFsaXN0KSkKKyAgICAgICAgICAgICAgICAobGFuZyAoY29tcGxldGlu Zy1yZWFkICJMYW5ndWFnZTogIiBjdCkpKQorICAgICAgICAgICAoYW5kIGxhbmcgKGludGVy biBsYW5nKSkpKSkKKyAgKHNldC1hdXRvLW1vZGUtMCBsYW5ndWFnZSkpCisKIChkZWZ2YXIg ZmlsZS1hdXRvLW1vZGUtc2tpcCAiXlxcKCMhXFx8J1xcXFxcIlxcKSIKICAgIlJlZ2V4cCBv ZiBsaW5lcyB0byBza2lwIHdoZW4gbG9va2luZyBmb3IgZmlsZS1sb2NhbCBzZXR0aW5ncy4K IElmIHRoZSBmaXJzdCBsaW5lIG1hdGNoZXMgdGhpcyByZWd1bGFyIGV4cHJlc3Npb24sIHRo ZW4gdGhlIC0qLS4uLi0qLSBmaWxlLQpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvanMu ZWwgYi9saXNwL3Byb2dtb2Rlcy9qcy5lbAppbmRleCAwMTE1ZmViMGU5Ny4uMjE4YTBmMDU1 NDEgMTAwNjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL2pzLmVsCisrKyBiL2xpc3AvcHJvZ21v ZGVzL2pzLmVsCkBAIC0zODk1LDggKzM4OTUsNyBAQCBqcy10cy1tb2RlCiAgICAgICAgICAg ICAgICAgICAgbmlsIG5pbCkpKQogICAgICh0cmVlc2l0LW1ham9yLW1vZGUtc2V0dXApCiAK LSAgICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdAotICAgICAgICAgICAgICAgICAn KCJcXChcXC5qc1tteF1cXHxcXC5oYXJcXClcXCciIC4ganMtdHMtbW9kZSkpKSkKKyAgICAo YWRkLXRvLWxpc3QgJ21ham9yLW1vZGUtcmVtYXAtYWxpc3QgJyg6anMgLiBqcy10cy1tb2Rl KSkpKQogCiAoZGVmdmFyIGpzLXRzLS1zLXAtcXVlcnkKICAgKHdoZW4gKHRyZWVzaXQtYXZh aWxhYmxlLXApCkBAIC0zOTc3LDcgKzM5NzYsMTEgQEAganMtanN4LS1jb21tZW50LXJlZ2lv bgogCiA7OzsjIyNhdXRvbG9hZAogKGRvbGlzdCAobmFtZSAobGlzdCAibm9kZSIgIm5vZGVq cyIgImdqcyIgInJoaW5vIikpCi0gIChhZGQtdG8tbGlzdCAnaW50ZXJwcmV0ZXItbW9kZS1h bGlzdCAoY29ucyAocHVyZWNvcHkgbmFtZSkgJ2pzLW1vZGUpKSkKKyAgKGFkZC10by1saXN0 ICdpbnRlcnByZXRlci1tb2RlLWFsaXN0IChjb25zIChwdXJlY29weSBuYW1lKSA6anMpKSkK KworOzs7IyMjYXV0b2xvYWQKKyhhZGQtdG8tbGlzdCAnbWFqb3ItbW9kZS1yZW1hcC1hbGlz dCAnKDpqcyAuIGpzLW1vZGUpKQorKGFkZC10by1saXN0ICdtYWpvci1tb2RlLXJlbWFwLWFs aXN0ICcoOmpzb24gLiBqcy1qc29uLW1vZGUpKQogCiAocHJvdmlkZSAnanMpCiAKZGlmZiAt LWdpdCBhL2xpc3AvcHJvZ21vZGVzL2pzb24tdHMtbW9kZS5lbCBiL2xpc3AvcHJvZ21vZGVz L2pzb24tdHMtbW9kZS5lbAppbmRleCAzMmJjMTBiYmRhOS4uNDUzNTU0YTkyZGQgMTAwNjQ0 Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL2pzb24tdHMtbW9kZS5lbAorKysgYi9saXNwL3Byb2dt b2Rlcy9qc29uLXRzLW1vZGUuZWwKQEAgLTE2NSw4ICsxNjUsNyBAQCBqc29uLXRzLW1vZGUK ICAgKHRyZWVzaXQtbWFqb3ItbW9kZS1zZXR1cCkpCiAKIChpZiAodHJlZXNpdC1yZWFkeS1w ICdqc29uKQotICAgIChhZGQtdG8tbGlzdCAnYXV0by1tb2RlLWFsaXN0Ci0gICAgICAgICAg ICAgICAgICcoIlxcLmpzb25cXCciIC4ganNvbi10cy1tb2RlKSkpCisgICAgKGFkZC10by1s aXN0ICdtYWpvci1tb2RlLXJlbWFwLWFsaXN0ICcoOmpzb24gLiBqc29uLXRzLW1vZGUpKSkK IAogKHByb3ZpZGUgJ2pzb24tdHMtbW9kZSkKIApkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9k ZXMvcHl0aG9uLmVsIGIvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCmluZGV4IDExNDhkYTEx YTA2Li4wZDU2MGVlMWE1ZiAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVs CisrKyBiL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbApAQCAtMjg4LDkgKzI4OCw5IEBAIG91 dGxpbmUtaGVhZGluZy1lbmQtcmVnZXhwCiAoYXV0b2xvYWQgJ2hlbHAtZnVuY3Rpb24tYXJn bGlzdCAiaGVscC1mbnMiKQogCiA7OzsjIyNhdXRvbG9hZAotKGFkZC10by1saXN0ICdhdXRv LW1vZGUtYWxpc3QgKGNvbnMgKHB1cmVjb3B5ICJcXC5weVtpd10/XFwnIikgJ3B5dGhvbi1t b2RlKSkKKyhhZGQtdG8tbGlzdCAnYXV0by1tb2RlLWFsaXN0IChjb25zIChwdXJlY29weSAi XFwucHlbaXddP1xcJyIpIDpweXRob24pKQogOzs7IyMjYXV0b2xvYWQKLShhZGQtdG8tbGlz dCAnaW50ZXJwcmV0ZXItbW9kZS1hbGlzdCAoY29ucyAocHVyZWNvcHkgInB5dGhvblswLTku XSoiKSAncHl0aG9uLW1vZGUpKQorKGFkZC10by1saXN0ICdpbnRlcnByZXRlci1tb2RlLWFs aXN0IChjb25zIChwdXJlY29weSAicHl0aG9uWzAtOS5dKiIpIDpweXRob24pKQogCiAoZGVm Z3JvdXAgcHl0aG9uIG5pbAogICAiUHl0aG9uIExhbmd1YWdlJ3MgZmx5aW5nIGNpcmN1cyBz dXBwb3J0IGZvciBFbWFjcy4iCkBAIC02OTkyLDggKzY5OTIsNyBAQCBweXRob24tdHMtbW9k ZQogICAgICh3aGVuIHB5dGhvbi1pbmRlbnQtZ3Vlc3MtaW5kZW50LW9mZnNldAogICAgICAg KHB5dGhvbi1pbmRlbnQtZ3Vlc3MtaW5kZW50LW9mZnNldCkpCiAKLSAgICAoYWRkLXRvLWxp c3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5weVtpd10/XFwnIiAuIHB5dGhvbi10cy1tb2Rl KSkKLSAgICAoYWRkLXRvLWxpc3QgJ2ludGVycHJldGVyLW1vZGUtYWxpc3QgJygicHl0aG9u WzAtOS5dKiIgLiBweXRob24tdHMtbW9kZSkpKSkKKyAgICAoYWRkLXRvLWxpc3QgJ21ham9y LW1vZGUtcmVtYXAtYWxpc3QgJyg6cHl0aG9uIC4gcHl0aG9uLXRzLW1vZGUpKSkpCiAKIDs7 OyBDb21wbGV0aW9uIHByZWRpY2F0ZXMgZm9yIE0teAogOzsgQ29tbWFuZHMgdGhhdCBvbmx5 IG1ha2Ugc2Vuc2Ugd2hlbiBlZGl0aW5nIFB5dGhvbiBjb2RlLgpkaWZmIC0tZ2l0IGEvbGlz cC9wcm9nbW9kZXMvcnVieS1tb2RlLmVsIGIvbGlzcC9wcm9nbW9kZXMvcnVieS1tb2RlLmVs CmluZGV4IDk5OWZiZWJmYjA4Li42OTc1Y2Y1YmUwYSAxMDA2NDQKLS0tIGEvbGlzcC9wcm9n bW9kZXMvcnVieS1tb2RlLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3J1YnktbW9kZS5lbApA QCAtMjcwMywxMSArMjcwMywxMyBAQCBydWJ5LW1vZGUKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiXFx8UHVwcGV0XFx8QmVya3NcXHxCcmV3XFx8RmFzdCIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFx8VmFncmFudFxcfEd1YXJk XFx8UG9kXFwpZmlsZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi XFwpXFwnIikpCi0gICAgICAgICAgICAgICAgICAgJ3J1YnktbW9kZSkpCisgICAgICAgICAg ICAgICAgICAgOnJ1YnkpKQorOzs7IyMjYXV0b2xvYWQKKyhhZGQtdG8tbGlzdCAnbWFqb3It bW9kZS1yZW1hcC1hbGlzdCAnKDpydWJ5IC4gcnVieS1tb2RlKSkKIAogOzs7IyMjYXV0b2xv YWQKIChkb2xpc3QgKG5hbWUgKGxpc3QgInJ1YnkiICJyYngiICJqcnVieSIgImo/cnVieVxc KD86WzAtOS5dK1xcKSIpKQotICAoYWRkLXRvLWxpc3QgJ2ludGVycHJldGVyLW1vZGUtYWxp c3QgKGNvbnMgKHB1cmVjb3B5IG5hbWUpICdydWJ5LW1vZGUpKSkKKyAgKGFkZC10by1saXN0 ICdpbnRlcnByZXRlci1tb2RlLWFsaXN0IChjb25zIChwdXJlY29weSBuYW1lKSA6cnVieSkp KQogCiAocHJvdmlkZSAncnVieS1tb2RlKQogCmRpZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rl cy9ydWJ5LXRzLW1vZGUuZWwgYi9saXNwL3Byb2dtb2Rlcy9ydWJ5LXRzLW1vZGUuZWwKaW5k ZXggNTk4ZWFhNDYxZmYuLjlmYjI1M2JhNzA2IDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rl cy9ydWJ5LXRzLW1vZGUuZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMvcnVieS10cy1tb2RlLmVs CkBAIC0zNSw4ICszNSw4IEBACiA7OyBgdHJlZXNpdC1leHRyYS1sb2FkLXBhdGgnLgogCiA7 OyBUaGlzIG1vZGUgZG9lc24ndCBhc3NvY2lhdGUgaXRzZWxmIHdpdGggLnJiIGZpbGVzIGF1 dG9tYXRpY2FsbHkuCi07OyBZb3UgY2FuIGRvIHRoYXQgZWl0aGVyIGJ5IHByZXBlbmRpbmcg dG8gdGhlIHZhbHVlIG9mCi07OyBgYXV0by1tb2RlLWFsaXN0Jywgb3IgdXNpbmcgYG1ham9y LW1vZGUtcmVtYXAtYWxpc3QnLgorOzsgWW91IGNhbiBkbyB0aGF0IHVzaW5nIGBtYWpvci1t b2RlLXJlbWFwLWFsaXN0JyAoYnkgYWRkaW5nIGFuIGVudHJ5Cis7OyBmb3IgYDpydWJ5Jyku CiAKIDs7IFRyZWUgU2l0dGVyIGJyaW5ncyBhIGxvdCBvZiBwb3dlciBhbmQgdmVyc2l0aWxp dHkgd2hpY2ggY2FuIGJlCiA7OyBicm9rZW4gaW50byB0aGVzZSBmZWF0dXJlcy4KQEAgLTEx OTcsMTggKzExOTcsNyBAQCBydWJ5LXRzLW1vZGUKICAgKHNldHEtbG9jYWwgc3ludGF4LXBy b3BlcnRpemUtZnVuY3Rpb24gIydydWJ5LXRzLS1zeW50YXgtcHJvcGVydGl6ZSkpCiAKIChp ZiAodHJlZXNpdC1yZWFkeS1wICdydWJ5KQotICAgIDs7IENvcGllZCBmcm9tIHJ1YnktbW9k ZS5lbC4KLSAgICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdAotICAgICAgICAgICAg ICAgICAoY29ucyAoY29uY2F0ICJcXCg/OlxcLlxcKD86IgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJyYnc/XFx8cnVcXHxyYWtlXFx8dGhvciIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiXFx8amJ1aWxkZXJcXHxyYWJsXFx8Z2Vtc3BlY1xcfHBvZHNw ZWMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcKSIKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiXFx8LyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiXFwoPzpHZW1cXHxSYWtlXFx8Q2FwXFx8VGhvciIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiXFx8UHVwcGV0XFx8QmVya3NcXHxCcmV3IgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJcXHxWYWdyYW50XFx8R3VhcmRcXHxQb2RcXClmaWxlIgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXClcXCciKQotICAgICAgICAgICAg ICAgICAgICAgICAncnVieS10cy1tb2RlKSkpCisgICAgKGFkZC10by1saXN0ICdtYWpvci1t b2RlLXJlbWFwLWFsaXN0ICcoOnJ1YnkgLiBydWJ5LXRzLW1vZGUpKSkKIAogKHByb3ZpZGUg J3J1YnktdHMtbW9kZSkKIAo= --------------z7nKgB6pfDIY6GBUOKYYxVsB--