From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 938 invoked from network); 12 Feb 2023 17:04:35 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 12 Feb 2023 17:04:35 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1676221475; b=JWkZDR9mMX6jBTEd7UmEBpKt+XAqu4BqI0YtTFDoLIRGtldM3iP2DU0R6tq9XUqadHgmim0vmD T56q66Ux2ME8jYt4NEQSvsFw8AHbjL24T4mhuvgw4WOmulvV+u55T9xZZiBiGA1FsfzgsQivLo ym9e56RbjylkoqjuogVwQ02sZ4g0MjH5JHLjapki4mOkvu+RiLXPlGwZNtb0FnIm4NNfAwPK7i dF0ZG0i9MT1VW10eG9oZjcKndwLyu0NxxUgpTW0F7DCkkSycwn5kKsney8uyVcZ3UQqcE/7kL6 MzGEzKHdwrJu8gt8NtgbKjboW2MCBB/1UkmqRhu4NVmBVA==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-pl1-f171.google.com) smtp.remote-ip=209.85.214.171; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1676221475; bh=8+YiExGxj/oUFl4zIT8ojoX4LbP4XXnqKD8TuQVlpGo=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:Reply-To: MIME-Version:DKIM-Signature:DKIM-Signature; b=i0+emOpxjRqYChRCyvflO5vgGbZgZNYHkeCgSThsidZ45aVGAk098HYZUaNZbEsgwznR6cXnU/ zdqhL6ZE4oL8uQMaXEl+s/NQ8d64iNcZE/S4wzEN3fU5azpIvaIrgDhSZ7d8NlNq7tlGyOTtjv Pm2F64jr0fPRNjnKmyh4+A36km0AZ0xrRVPNbkNOhP4aM77XWmucLrXWU4UhV2FxciuL221PyX tCIMs1SsLRO7yOIl0VjcAzJCK6IAvawigHpcDvrYkSIwsdD+FAOVNeWKzcgAre10ZyXWQAbQKI G8dpJdQUBg81OXhYGwsMb7yhpmlDjKF37FwKCmsmvRe0og==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:To:Subject:Message-ID: Date:From:Reply-To:MIME-Version:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References; bh=Ta/cycnfwcZ0a2DUAN+IjARxJP+4GAauy5c5tgFgOfI=; b=rXGYdoHoJV9F2dJBevWwKaJ5Wu EkhwDt9FafyDDwdlHIhL9TJfITv6qcM/kv0V0oPd+kECHUUvDAJ1NGDiGmAfVAmCfOI6lxb8xWddV WpW/iEKXAcxY4tGifsI+/PxNNdA/JbRZ9Sd8G77UIlUj+vVw49IoGxC8ST5eD9ljTNUyWwyZXJcM+ 1wv40/Bxx2VIPcmS97Yu+GYIDTkbXJu4BsDeC1Koo9hPO1oeXl9i8iLPEoMpGciBtX4JA2lbgBCit jnySKklLEV7h9C01XxZmAar4l8ch3dcj0q2U253qMLEqP5iejE9JpPTVdca3f5J99PSsY39tfvt4q vMyDS2gg==; Received: by zero.zsh.org with local id 1pRFmE-000Aym-HQ; Sun, 12 Feb 2023 17:04:34 +0000 Authentication-Results: zsh.org; iprev=pass (mail-pl1-f171.google.com) smtp.remote-ip=209.85.214.171; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-pl1-f171.google.com ([209.85.214.171]:41872) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1pRFlu-000Aej-SZ; Sun, 12 Feb 2023 17:04:16 +0000 Received: by mail-pl1-f171.google.com with SMTP id w5so11298882plg.8 for ; Sun, 12 Feb 2023 09:04:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:reply-to:mime-version:from:to:cc :subject:date:message-id:reply-to; bh=Ta/cycnfwcZ0a2DUAN+IjARxJP+4GAauy5c5tgFgOfI=; b=WSHmcXe5HfYDkyfK83sbAxfxLr58U9vs/lwIpdQG4Sj1nOjGcTr5Ed33VqMHKcNVPm ZSxqK4DjHQqkRJOq7TtZCZqk3yyH5QEkRG6/HqYq+FLvFfnKRmwehYvmoozj6kNy05yZ ouDgHM03xIClWRBURQSGpWiTUieSsbo8FvqrVFoG9i+/KnGR7fNlx3w5DIrvlR/4/bOH W9ekjWO0OkroM7OZrE0DCjWjXcjYy2IP23azMkGLUnpWyw0D9Asx2UlXYIT0aav8OnNO r7ANpefrmMI7cHwl7VB/3l/qrghUQzfP5iVO+fo2fH5vgBlBnsyDumDv/ACVrBc95kOv p13g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:reply-to:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Ta/cycnfwcZ0a2DUAN+IjARxJP+4GAauy5c5tgFgOfI=; b=WF2ZvHgvTM99+3qJYrYNj6UfJs6SygrL1mY8ALFXXx4wBJMMjSrj+hzOo+y6Np26gd UhNEz3akonKJ+NH5duCcf7Ayt0xpdGkk8CT5to7az4rEDK7kqwlgrVA6y5q7ef4mB6tQ DbgiwSqIkHhEbH40kkavZNQVDJmXLJQCJCIvUEjJlB3qZRuCu2GMEZc4XnQxN2EKkU9l A+Hzv9sgdCmqiUDemRF/FS6XaoskLwlwmRDiLDVvPJRpSsARBLGYoO/mlbVv1FLppE5T xxx0MT2uMWuLCRzermpbyCGLi+hcdfR0LA10WvFC8tAVlQlywuHBvrxJp4ijA4ljRi/S cOtw== X-Gm-Message-State: AO0yUKVjwibqWzzxkuyLIIjKiZiRjDKHIPw7/qFeJA11iXXjX0zuLIhR 8pkqF0RYu2XR9sHGuL6iAAU6uxhc/Hq9kpn/xbiMUUz8Hzc= X-Google-Smtp-Source: AK7set+0/mspb4IS/TWL0dd6lw/rEMA/H7loMQF9ZeXK5XUUgHY7rkA/p4LS2chVdWz2b3UoyamRve+zAxYvHTRiOjc= X-Received: by 2002:a17:902:7c8e:b0:198:ef8f:4d89 with SMTP id y14-20020a1709027c8e00b00198ef8f4d89mr5062229pll.15.1676221453083; Sun, 12 Feb 2023 09:04:13 -0800 (PST) MIME-Version: 1.0 Reply-To: linuxtechguy@gmail.com From: Jim Date: Sun, 12 Feb 2023 11:04:02 -0600 Message-ID: Subject: colors_plus To: devs Content-Type: multipart/mixed; boundary="00000000000046bd7805f483b804" X-Seq: 51413 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: --00000000000046bd7805f483b804 Content-Type: multipart/alternative; boundary="00000000000046bd7605f483b802" --00000000000046bd7605f483b802 Content-Type: text/plain; charset="UTF-8" Hi all, To be honest I wrote the following with the intent to send it to zsh-users, but the more I thought about it I decided to first ask those on zsh-workers for your thoughts and opinions. For lack of a better name, "colors_plus" for now. This is a function I have been trying to think through as an addition to the current colors function. It should work on at least some virtual terminals(best guess). Doesn't work on the linux console, so colors would still be needed. Attached is the function colors_plus_test. It is also a wip(work in progress) so has a number of notes and comments. Also code that is commented out that was used for testing, that may or may not have worked out. It needs a lot of cleanup, to say the least, but should be good enough for testing. It should show what a virtual terminal is capable of outputting. Results can only be determined by visual observation. Anyway I was hoping that some on this list would run the function and give me feedback on what you think of the output. It has several defaults so autoloading the function and then typing the function's name will give you 8 lines of output. The 8 colors match those used in the colors function. There is a 27 colors option with color names. There is a 64 color options, but it doesn't have color names, if you care to look. BTW some of the 27 color names couldn't be found in files like rgb.txt. Lots of google searches to come up with some of the names. I'm open to suggestions on color names too. The shorter the name, the better it would be. Command line arguments for colors_plus_test are: [1|2|3] the number of colors to output 1) 8 (default), 2) 27 and 3) 64 colors [n|b|d] ** n) for normal text output(default), b) for bold and d) for dim [i|f|r|u|s|c] ** These can be used in any combination from none to all of them. Although some combinations will be useless for most people. i) italic, f) flash, r) reverse, u) underscore, s) strikethrough and c) conceal ** case insensitive Examples: colors_plus_test -- defaults to "colors_plus_test 1 n" 8 colors and normal colors_plus_test 2 b i r -- outputs 27 colors as bold italic reverse colors_plus_test d -- outputs 8 colors as dim ... Requirements: Colors_plus uses the module zsh/nearcolor to convert the hex input to a usable output. The zsh man page suggests checking the COLORTERM parameter to see if it is equal to either 24bit or truecolor to load the module. xterm doesn't set this parameter, but the function will work with xterm if TERM is set to xterm-256color. For those using TMUX, on an xterm, TERM set to tmux-256color will also work. Haven't tested TMUX running on other terminals yet. Tested on the following virtual terminals and appears to work: xterm xfce4-terminal Tested on the following virtual terminals with mixed results: kitty - also doesn't work well with 'colors function' Parameter(s) and elements: For the function colors_plus, which I'm working on, I'm considering using one associative array "CP" with element names something like: Would the following be to obscure for most to use? ${CP[2nfi_electric_blue]} 2 - number of colors n - normal fi - flash italic , note these letters would be in alphabetical order for consistency _ - separator colorname - name of the color to display As I said, comments are welcome. Are 8 colors enough? Are 27 colors to many? So fire away! Also haven't tested on a bright(white) background. Regards and thanks, Jim Murphy --00000000000046bd7605f483b802 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi all,

To be honest I wrote= the following with the intent to send it to zsh-users, but the
m= ore I thought about it I decided to first ask those on zsh-workers for your=
thoughts and opinions.

For lack= =C2=A0 of a better name, "colors_plus" for now.=C2=A0 This is a f= unction I have been
trying to think through as an addition to the= current colors function. It should work
on at least some virtual= terminals(best guess). Doesn't work on the linux console,
so= colors would still be needed.

Attached is the= function colors_plus_test.=C2=A0 It is also a wip(work in progress) so has= a
number of notes and comments.=C2=A0 Also code that is commente= d out that was used
for testing, that may or may not have worked = out. It needs a lot of cleanup, to say
the least, but should be g= ood enough for testing. It should show what a virtual
terminal is= capable of outputting. Results can only be determined by visual
= observation.

Anyway I was hoping that some on = this list would run the function and give=C2=A0 me
feedback on wh= at you think of the output. It has several defaults so autoloading
the function and then typing the function's name will give you 8 line= s of output.
The 8 colors match those used in the colors function= . There is a 27 colors option
with color names. There is a 64 col= or options, but it doesn't have color names, if
you care to l= ook. BTW some of the 27 color names couldn't be found in files like
rgb.txt. Lots of google searches to come up with some of the names.= =C2=A0 I'm open
to suggestions on color names too. The shorte= r the name, the better it would be.

Command li= ne arguments for colors_plus_test are:
=C2=A0 [1|2|3]=C2=A0 the n= umber of colors to output 1) 8 (default), 2) 27 and 3) 64 colors
= =C2=A0 [n|b|d] **=C2=A0 n) for normal text output(default), b) for bold and= d) for dim
=C2=A0 [i|f|r|u|s|c] ** These can be used in any comb= ination from none to all of them.
=C2=A0=C2=A0=C2=A0 Although som= e combinations will be useless for most people.
=C2=A0=C2=A0= =C2=A0 i) italic, f) flash, r) reverse, u) underscore, s) strikethrough and= c) conceal

** case insensitive

Examples:
=C2=A0 colors_plus_test=C2=A0 -- defaults to &qu= ot;colors_plus_test 1 n" 8 colors and normal
=C2=A0 colo= rs_plus_test 2 b i r=C2=A0 -- outputs 27 colors as bold italic reverse
=C2=A0 colors_plus_test d=C2=A0 -- outputs 8 colors as dim
= =C2=A0 ...

Requirements:
=C2=A0 Colo= rs_plus uses the module zsh/nearcolor to convert the hex input to a usable<= /div>
=C2=A0 output. The zsh man page suggests checking the COLORTERM p= arameter to see
=C2=A0 if it is equal to either 24bit or truecolo= r to load the module.=C2=A0 xterm doesn't set this
=C2=A0 par= ameter, but the function will work with xterm if TERM is set to xterm-256co= lor.
=C2=A0 For those using TMUX, on an xterm, TERM set to tmux-2= 56color will also work.
=C2=A0 Haven't tested TMUX running on= other terminals yet.

Tested on the following = virtual terminals and appears to work:
=C2=A0 xterm
=C2= =A0 xfce4-terminal

Tested on the following virtual= terminals with mixed results:
kitty - also doesn't work well= with 'colors function'

Parameter(s) a= nd elements:
=C2=A0 For the function colors_plus, which I'm w= orking on, I'm considering using one
=C2=A0 associative array= "CP" with element names something like:
=C2=A0 Would t= he following be to obscure for most to use?
=C2=A0 ${CP[2nfi_= electric_blue]}
=C2=A0=C2=A0=C2=A0=C2=A0 2 - number of color= s
=C2=A0=C2=A0=C2=A0=C2=A0 n - normal
=C2=A0=C2=A0=C2= =A0=C2=A0 fi - flash italic , note these letters would be in alphabetical o= rder for consistency
=C2=A0=C2=A0=C2=A0 _ - separator
= =C2=A0=C2=A0=C2=A0=C2=A0 colorname - name of the color to display

As I said, comments are welcome. Are 8 colors enough? Are 2= 7 colors to many?
So fire away!=C2=A0 Also haven't tested on = a bright(white) background.

Regards and thanks= ,

Jim Murphy
--00000000000046bd7605f483b802-- --00000000000046bd7805f483b804 Content-Type: application/octet-stream; name=colors_plus_test Content-Disposition: attachment; filename=colors_plus_test Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_le1mdexk0 ZW11bGF0ZSAtTCB6c2ggLW8gZXh0ZW5kZWRnbG9iCiMgRnVuY3Rpb246ICBjb2xvcnNfcGx1c190 ZXN0CiMgQXV0aG9yOiAgSmltICJmcmlhcnRlayIgTXVycGh5CiMgQ29weXJpZ2h0OiAgMjAyMwoj IExpY2Vuc2U6ICBGUkVFCiMgVGhpcyBpcyBzdGlsbCBhIChXKW9yayAoSSluIChQKXJvZ3Jlc3Mh CltbIC12IG1vZHVsZXNbenNoL25lYXJjb2xvcl0gXV0gfHwgem1vZGxvYWQgenNoL25lYXJjb2xv cgojIE5PVEVTOiAocXVpdGUgYSBmZXcpICBbW1sKIyBJUyBORUFSQ09MT1IgU1VQUE9SVEVEIGJ5 IGEgdmlydHVhbCB0ZXJtaW5hbCB3aXRoIHRoZSBjdXJyZW50IFRFUk0gc2V0dGluZz8KIyBWaXJ0 dWFsIHRlcm1pbmFscyBzdWNoIGFzIHh0ZXJtIGRvIG5vdCwgQUZBSUssIHNldCBDT0xPUlRFUk0g YnV0IHRoZQojIGZvbGxvd2luZyBjaGVjayB3aWxsIHZlcmlmeSBpZiBuZWFyY29sb3IgaXMgc3Vw cG9ydGVkIHdpdGggdGhlIGN1cnJlbnQgVEVSTQojIHNldHRpbmcuICBURVJNIHNldCB0byB4dGVy bS0yNTZjb2xvciBzaG91bGQgd29yay4gRm9yIFRNVVggdXNlcnMsIHNldHRpbmcKIyBURVJNIHRv IHRtdXgtMjU2Y29sb3Igc2hvdWxkIGFsc28gd29yay4KIyBUaGUgZm9sbG93aW5nIHdpbGwgY2hl Y2sgaWYgbmVhcmNvbG9yIHdvcmtzIG9yIGRvZXNuJ3QuIElmIG5vdCwgaXQgdW5sb2FkUwojIG5l YXJjb2xvciBtb2R1bGUuCiMgWD0iJUZ7I2FiY2RlZn0iCiMgQT0keyR7JHsoVikkKHByaW50IC1y ICR7KCUpWH0pfSMjKjt9JW19CiMgW1sgJCNBIC1uZSAwIF1dICYmIHByaW50ICJuZWFyY29sb3Ig aXMgc3VwcG9ydGVkIiB8fCB6bW9kbG9hZCAtdWkgenNoL25lYXJjb2xvcgojIFNvdXJjZTogaHR0 cHM6Ly91bml4LnN0YWNrZXhjaGFuZ2UuY29tL3F1ZXN0aW9ucy82NjUzNzAvXAojICAgY29uZnVz ZWQtb24tY29sb3JzLXh0ZXJtLXZzLXpzaC1ob3ctdG8tc2V0LXh0ZXJtLXdpdGhvdXQtYnJlYWtp bmctenNoLWNvbG9ycwojIFRoYW5rcyB0byBTdMOpcGhhbmUgQ2hhemVsYXMKIyBwcmludCAtUCAn JUZ7I0FCQ0I4RH10ZXh0JWYnCiMgTmV4dCBsaW5lLCBjb21wbGltZW50cyBvZiBCYXJ0IFNjaGFl ZmVyIChtb2RpZmllZCkKIyB2YXI9IiVGeyNBQkNCOER9dGV4dCVmIiA7IHByaW50IC1yIC0tICR7 KCUpdmFyfQojIF1dXQojIElOUFVUOgojICgxKSA4IGNvbG9ycyAoMikgMjcgY29sb3JzICgzKSA2 NCBjb2xvcnMgIyMgd2F5IGluIHRoZSBmdXR1cmUgKDQpIDEyNSBjb2xvcnMKIyAoTilvcm1hbD0w IChCKW9sZD0xIChEKWltPTIKIyAoSSl0YWxpYy0zIChVKW5kZXI9NCAoRilsYXNoPTUgKFIpZXZl cnNlPTcgKEMpb25jZWFsPTggKFMpdHJpa2U9OQpsb2NhbCAgICAgQUJpIEFCSSBBQ04gQyBDZSBD RiBDbCBDUCBDcyBFIEwgTSBOIE5DT0xPUlMgVCBYIFIgRyBCIFJDCmxvY2FsIC1hICBIIEhzIE0g Q0xzIENMWHMgT3MgTEMgVG1wIFVDIENOOCBDTjI3IENONjQgQ1NDOCBDU0MyNwpsb2NhbCAtQSAg Q1AgQ04yQ0FOIEhleDgKQ0Y9JEhPTUUvLmNvbmZpZy9jb2xvcnNfcGx1cy5jZmcKTkNPTE9SUz04 ICMgZGVmYXVsdApDTjg9KGJsYWNrIGJsdWUgZ3JlZW4gY3lhbiByZWQgbWFnZW50YSB5ZWxsb3cg d2hpdGUpCkNOMjc9KAogIGJsYWNrICBuYXZ5ICAgICAgICAgYmx1ZSAgICBqYWRlICAgdGVhbCAg ICAgICAgYXp1cmUKICBncmVlbiAgc3ByaW5nX2dyZWVuIGN5YW4gICAgbWFyb29uIHB1cnBsZSAg ICAgIHZpb2xldAogIG9saXZlICBncmV5ICAgICAgICAgbGlsYWMgICBzYWdlICAgbGlnaHRfZ3Jl ZW4gZWxlY3RyaWNfYmx1ZQogIHJlZCAgICBicmlnaHRfcGluayAgbWFnZW50YSBvcmFuZ2UgY29u Z29fcGluayAgcGluawogIHllbGxvdyBzdW5ueSAgICAgICAgd2hpdGUKICAjIHR3byBsZXR0ZXIg Y29sb3IgY29kZXMKICAjIGJrIG55IGJlIGplIHRsIGFlIGduIHNnIGNuIG1uIHBlIHZ0IG9lIGd5 IGxjIHNlIGxnIGViIHJkIGJwIG1hIG9yIGNwIHBrIHl3IHN5IHdlCikKIyBUaGUgZm9sbG93aW5n IHRyaWVzIHRvIGNvbWUgdXAgd2l0aCBhIHR3byBjaGFyYWN0ZXIgY29sb3IgY29kZSBmb3IgZWFj aCBjb2xvci4KIyBUaGlzIGNvZGUgaXNuJ3QgcGVyZmVjdCBidXQgYXBwZWFycyB0byB3b3JrIGZv ciB0aGUgMjcgY29sb3JzIGluIHRoaXMgZmlsZXMKIyBvcmlnaW5hbCBDTjI3IHBhcmFtZXRlci4K IyBvcmlnbmFsIGNvZGUgZmFpciwgY2hhbmdlcyBvb3BzIC4uLgpmb3IgRSAoJENOMjcpIHsgW1sg JEUgPT0gKl8qIF1dIFwKICAmJiB7IFRtcD0oJHsocy5fLilFfSkgOyBBQ049JHtUbXBbMV1bMV19 JHtUbXBbMl1bMV19IH0gXAogIHx8IEFDTj0kRVsxXSRFWy0xXQogIFRtcD0oJHsodilDTjJDQU59 KQogIEFCaT0ke1RtcFsoaSkkQUNOXX0KICBbWyAkQUJpIC1ndCAkI1RtcCBdXSB8fCBBQ049JEVb MSwyXQogIENOMkNBTlskRV09JEFDTgp9CiNwcmludCAtLSBDTjJDQU46ICAkI0NOMkNBTgojZm9y IEUgKCR7Q04yN30pIHByaW50IC0tICRFICRDTjJDQU5bJEVdCiNyZXR1cm4KZm9yIE0gKHsxLi4z fSkgewogIE49JHthcmd2WyhpKSRNXX0KICBbWyAkTiAtbGUgJCNhcmd2IF1dICYmIHsKICAgIEw9 JE0KICAgIGNhc2UgJE0gaW4gOyAxKSBDUD1DTjggOzsgMikgQ1A9Q04yNyA7OyAzKSBDUD1DTjY0 IDs7IGVzYWMKICB9Cn0gOyA6ICR7Q1A6PUNOOH0KZm9yIEUgKEQgZCBOIG4gQiBiKSB7CiAgTj0k e2FyZ3ZbKGkpJEVdfQogIFtbICROIC1ndCAkI2FyZ3YgXV0gJiYgY29udGludWUKICBjYXNlICRF IGluCiAgICBEfGQpIE9zPSgnMjsnKSA7OyBCfGIpIE9zPSgnMTsnKSA7OyBOfG4pIE9zPSgnMDsn KSA7OwogIGVzYWMKfQo6ICR7T3M6PTA7fSAjIERlZmF1bHQgbm9ybWFsCmZvciBFIChJIGkgVSB1 IEYgZiBSIHIgQyBjIFMgcykgewogIE49JHthcmd2WyhpKSRFXX0KICBbWyAkTiAtZ3QgJCNhcmd2 IF1dICYmIGNvbnRpbnVlCiAgY2FzZSAkRSBpbgogICAgSXxpKSBPcys9KCczOycpIDs7IFV8dSkg T3MrPSgnNDsnKSA7OyBGfGYpIE9zKz0oJzU7JykgOzsKICAgIFJ8cikgT3MrPSgnNzsnKSA7OyBD fGMpIE9zKz0oJzg7JykgOzsgU3xzKSBPcys9KCc5OycpIDs7CiAgZXNhYwp9IDsgTz0keyhqLi4p T3N9ClVDPSh7QS4uWn0pIDsgTEM9KHthLi56fSkgOyBNPSgke1VDOl5MQ30pIDsgVD0keyhqLi4p TX0KQ3M9JCdcZVsnJE8nMzg7NTsnIDsgQ2U9J20nIDsgUkM9JCdcZVsnMCRDZQpIcz0oJzAwIGZm JyAnMDAgN2YgZmYnICcwMCA1NSBhYSBmZicgJzAwIDNmIDdmIGJmIGZmJykgICMgOChkZWZhdWx0 KSwgMjcgb3IgNjQgY29sb3JzCk49CjogJHtOOj0ke0w6PTF9fSAgIyBOID0gMShkZWZhdWx0KSBv ciAyIG9yIDMKSD0oJHsoeilIc1tOXX0pCmZvciBSICgkSCkgeyBmb3IgRyAoJEgpIHsgZm9yIEIg KCRIKSB7CiAgICAgIFg9JFIkRyRCIDsgQz0iJUZ7IyR7WH19IgogICAgICBDTFhzKz0oJFgpCiAg ICAgICNDTHMrPSgkeyR7JHsoVikkKHByaW50IC1QICR7Q30pfSMjKjt9JW19KQogICAgICBDTHMr PSgkeyR7JHsoVikkKHByaW50IC1yICR7KCUpQ30pfSMjKjt9JW19KQp9IH0gfQojZm9yIEUgKCRD THMpIHsgQ2w9IiRDcyRFJENlIiA7IHByaW50IC0tICRDbCRUJFJDICR7KGwuMy4uIC4pRX0gfQoj Zm9yIEUgKCRDTHMpIHsgQ2w9IiRDcyRFJENlIiA7IHByaW50IC0tICRDbCRUJFJDICR7KFYpQ2x9 IH0KZm9yIE4gKHsxLi4keyNDTHN9fSkgeyBFPSRDTHNbTl0gOyBDbD0iJENzJEUkQ2UiCiAgcHJp bnQgLS0gJENsJFQkUkMgJHtDTFhzW05dfSAkeyhWKUNsfSAkeyR7KFApQ1B9W05dfSB9CiNmb3Ig RSAoJENMcykgeyBDbD0iJENzJEUkQ2UiIDsgcHJpbnQgJHsoVilDbH0gfQoKIyB2aW06IGZvbGRt ZXRob2Q9bWFya2VyIGZvbGRtYXJrZXI9W1tbLF1dXSBmb2xkbGV2ZWw9MCA6CiMgdmltOiB0cz0y IHN3PTIgc3RzPTIgc3RhIGFpIGV0IGZ0PXpzaCA6Cg== --00000000000046bd7805f483b804--