From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Robert Church Newsgroups: gmane.emacs.bugs Subject: bug#70963: [PATCH] Add Oklab color space utility functions in color.el. Date: Wed, 15 May 2024 09:58:27 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000aa6ef506188107af" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15766"; mail-complaints-to="usenet@ciao.gmane.io" To: 70963@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed May 15 18:59:28 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 1s7HyS-0003uY-Mi for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 15 May 2024 18:59:28 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s7Hy3-0001YY-MC; Wed, 15 May 2024 12:59:03 -0400 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 1s7Hy1-0001YK-RL for bug-gnu-emacs@gnu.org; Wed, 15 May 2024 12:59:01 -0400 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 1s7Hy1-00077W-3z for bug-gnu-emacs@gnu.org; Wed, 15 May 2024 12:59:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1s7Hy2-000773-BU for bug-gnu-emacs@gnu.org; Wed, 15 May 2024 12:59:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Robert Church Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 15 May 2024 16:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 70963 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.171579232827331 (code B ref -1); Wed, 15 May 2024 16:59:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 15 May 2024 16:58:48 +0000 Original-Received: from localhost ([127.0.0.1]:43138 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s7Hxn-00076l-Ii for submit@debbugs.gnu.org; Wed, 15 May 2024 12:58:47 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:58066) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s7Hxl-00076f-NA for submit@debbugs.gnu.org; Wed, 15 May 2024 12:58:46 -0400 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 1s7Hxj-0001Vv-9h for bug-gnu-emacs@gnu.org; Wed, 15 May 2024 12:58:43 -0400 Original-Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s7Hxh-00075y-9T for bug-gnu-emacs@gnu.org; Wed, 15 May 2024 12:58:43 -0400 Original-Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-a59b81d087aso179751966b.3 for ; Wed, 15 May 2024 09:58:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715792319; x=1716397119; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=+urmW4Lm4G323sTwvAKJWyaMsMV0IbpiA+lK6jukCZo=; b=J4E8LVsdToUvpADDe+lfLxq7Cyw6OT3WmU1vS8hsfhD86Ebn4CkqsLuA2Hz1fFqogK cwJMHOR06dJqp0QAdXCUoCxaB51sevwQttDFaEH0b4m+ZnAGUhIopXdmPX3zNP2GwPjy C5Os4twnx16/iqobC/ed9hlfYS6PQ2MjsLE74jL8N60i6np643t2WwuZ+KQ58HQWvA74 nbCrQYr0Va9/1msKOBWrwg5aa4tZVFdclP/4+nwJhInwAVElutVDTQ4Z9FVf/rdbxNYR eRbU0GNc7x6RpPh/dub7qjiv5EAJMLfZifxF7xgzQZyTqtXTAu43XpMWtnVtY9lfLRSP UXhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715792319; x=1716397119; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+urmW4Lm4G323sTwvAKJWyaMsMV0IbpiA+lK6jukCZo=; b=Xv6vFFnUnkRetSqXdJJUJlzEAW5j8jVQn1G97ghLXUKMoCGomfNMVt0nJ+COBizFDm CjyJQJwSTYRCTK+52L9Txb2jYWcWVomcdczaz25JcmF8//+rsv2LQd2sEkRFoUSMwEYo EEH8qBklUR9Bo/rSM8ARQXrS0RsMvKX2XKcumhxWpVHmxpOb/cMahxilWXre7CCHdDjz 47VPMBCBwd2KblhJYY0uwdVszc9jLOyudz1/t2ykkYxot+4MCIRxsPpxRR+Fgi5m+f9l iyjRZ+DAvsId23St4n3IdxOlXy0odd7J4eXNJKRxaDKzQ1eK0V8/nMDnuf4uDX/hdyV8 v+Ig== X-Gm-Message-State: AOJu0YzLos6UgA5yT/S6Zn7XcjGJu41uEFPebhPzu2lqDju6jJPtBzY2 H51ZVKr1MROHKCW6qSovIJoqjl760CBP9GpYQ55sJQrbr/sPzSYq2XNDtQbYnMj9xE92JpQQMXs M/Wh2NxWSlT6z4L/YjUbyTzTEE7rCJLN7eVE= X-Google-Smtp-Source: AGHT+IGaDodcWK4UVjJ4IAX6sEq0upfzS9vJi7ksBPr4tL2JJPBMLgVoCLRY/YGgJD9GtzBwN3zf0iTqPXnAoZktnlA= X-Received: by 2002:a17:906:3c7:b0:a5c:e031:faf2 with SMTP id a640c23a62f3a-a5ce03210e7mr31075066b.77.1715792318713; Wed, 15 May 2024 09:58:38 -0700 (PDT) Received-SPF: pass client-ip=2a00:1450:4864:20::630; envelope-from=chrchr@gmail.com; helo=mail-ej1-x630.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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:285098 Archived-At: --000000000000aa6ef506188107af Content-Type: multipart/alternative; boundary="000000000000aa6ef406188107ad" --000000000000aa6ef406188107ad Content-Type: text/plain; charset="UTF-8" This patch adds functions to convert to and from the Oklab perceptual color space to color.el. Oklab preserves the perceived brightness ot a color as the hue and saturation change. It is especially useful for programmatically generating color schemes, and can be used directly in CSS in current web browsers. Oklab is described here: https://bottosson.github.io/posts/oklab/ --000000000000aa6ef406188107ad Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
This patch adds functions to convert to and from the = Oklab perceptual color space to color.el. Oklab preserves the perceived bri= ghtness ot a color as the hue and saturation change. It is especially usefu= l for programmatically generating color schemes, and can be used directly i= n CSS in current web browsers.

--000000000000aa6ef406188107ad-- --000000000000aa6ef506188107af Content-Type: application/octet-stream; name="0001-Add-Oklab-color-space-utility-functions-in-color.el.patch" Content-Disposition: attachment; filename="0001-Add-Oklab-color-space-utility-functions-in-color.el.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lw829p6g0 RnJvbSA4YTRjOTQwNDdiYTI2YzA0ZTI2OTIyNzFlMTQ3NWM3MDI0NGZjNmQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnQgQ2h1cmNoIDxjaHJjaHJAZ21haWwuY29tPgpEYXRl OiBNb24sIDEzIE1heSAyMDI0IDE3OjI4OjI4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQWRkIE9r bGFiIGNvbG9yIHNwYWNlIHV0aWxpdHkgZnVuY3Rpb25zIGluIGNvbG9yLmVsLgoKLS0tCiBsaXNw L2NvbG9yLmVsICAgICAgICAgICAgfCA0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystCiB0ZXN0L2xpc3AvY29sb3ItdGVzdHMuZWwgfCAzMyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9jb2xvci5lbCBiL2xpc3AvY29sb3IuZWwKaW5k ZXggMDc4YzEyZmJmNDcuLjViYTczZjRhODc5IDEwMDY0NAotLS0gYS9saXNwL2NvbG9yLmVsCisr KyBiL2xpc3AvY29sb3IuZWwKQEAgLTI5LDcgKzI5LDggQEAKIDs7CiA7OyBTdXBwb3J0ZWQgY29s b3IgcmVwcmVzZW50YXRpb25zIGluY2x1ZGUgUkdCIChyZWQsIGdyZWVuLCBibHVlKSwgSFNWCiA7 OyAoaHVlLCBzYXR1cmF0aW9uLCB2YWx1ZSksIEhTTCAoaHVlLCBzYXR1cmF0aW9uLCBsdW1pbmFu Y2UpLCBzUkdCLAotOzsgQ0lFIFhZWiwgYW5kIENJRSBMKmEqYiogY29sb3IgY29tcG9uZW50cy4K Kzs7IENJRSBYWVosIENJRSBMKmEqYiogY29sb3IgY29tcG9uZW50cywgYW5kIHRoZSBPa2xhYiBw ZXJjZXB0dWFsIGNvbG9yCis7OyBzcGFjZS4KIAogOzs7IENvZGU6CiAKQEAgLTM2OCw2ICszNjks NDQgQEAgY29sb3ItY2llLWRlMjAwMAogICAgICAgICAgICAgICAgICAoZXhwdCAoLyDOlEjigLIg KCogU2gga0gpKSAyLjApCiAgICAgICAgICAgICAgICAgICgqIFJ0ICgvIM6UQ+KAsiAoKiBTYyBr QykpICgvIM6USOKAsiAoKiBTaCBrSCkpKSkpKSkKIAorKGRlZnVuIGNvbG9yLW9rbGFiLXRvLXh5 eiAobCBhIGIpCisgICJDb252ZXJ0IHRoZSBPa0xhYiBjb2xvciByZXByZXNlbnRlZCBieSBMIEEg QiB0byBDSUUgWFlaLgorT2tsYWIgaXMgYSBwZXJjZXB0dWFsIGNvbG9yIHNwYWNlIGNyZWF0ZWQg YnkgQmrDtnJuIE90dG9zc29uCis8aHR0cHM6Ly9ib3R0b3Nzb24uZ2l0aHViLmlvL3Bvc3RzL29r bGFiLz4uIEl0IGhhcyB0aGUgcHJvcGVydHkgdGhhdAorY2hhbmdlcyBpbiB0aGUgaHVlIGFuZCBz YXR1cmF0aW9uIG9mIGEgY29sb3IgY2FuIGJlIG1hZGUgd2hpbGUgbWFpbnRhaW5pbmcKK3RoZSBz YW1lIHBlcmNlaXZlZCBsaWdodG5lc3MuIgorICAobGV0ICgobGwgKGV4cHQgKCsgKCogMS4wIGwp ICgqIDAuMzk2MzM3NzkgYSkgKCogMC4yMTU4MDM3NiBiKSkgMykpCisgICAgICAgIChtbSAoZXhw dCAoKyAoKiAxLjAwMDAwMDAxIGwpICgqIC0wLjEwNTU2MTM0IGEpICgqIC0wLjA2Mzg1NDE3IGIp KSAzKSkKKyAgICAgICAgKHNzIChleHB0ICgrICgqIDEuMDAwMDAwMDUgbCkgKCogLTAuMDg5NDg0 MTggYSkgKCogLTEuMjkxNDg1NTQgYikpIDMpKSkKKyAgICAobGlzdCAoKyAoKiBsbCAxLjIyNzAx Mzg1KSAoKiBtbSAtMC41NTc3OTk5OCkgKCogc3MgMC4yODEyNTYxNSkpCisgICAgICAgICAgKCsg KCogbGwgLTAuMDQwNTgwMTgpICgqIG1tIDEuMTEyMjU2ODcpICgqIHNzIC0wLjA3MTY3NjY4KSkK KyAgICAgICAgICAoKyAoKiBsbCAtMC4wNzYzODEyOCkgKCogbW0gLTAuNDIxNDgxOTgpICgqIHNz IDEuNTg2MTYzMjIpKSkpKQorCisoZGVmdW4gY29sb3IteHl6LXRvLW9rbGFiICh4IHkgeikKKyAg IkNvbnZlcnQgdGhlIENJRSBYWVogY29sb3IgcmVwcmVzZW50ZWQgYnkgWCBZIFogdG8gT2tsYWIu IgorICAobGV0ICgobGwgKCsgKCogeCAwLjgxODkzMzAxMDEpICgqIHkgMC4zNjE4NjY3NDI0KSAo KiB6IC0wLjEyODg1OTcxMzcpKSkKKyAgICAgICAgKG1tICgrICgqIHggMC4wMzI5ODQ1NDM2KSAo KiB5IDAuOTI5MzExODcxNSkgKCogeiAwLjAzNjE0NTYzODcpKSkKKyAgICAgICAgKHNzICgrICgq IHggMC4wNDgyMDAzMDE4KSAoKiB5IDAuMjY0MzY2MjY5MSkgKCogeiAwLjYzMzg1MTcwNzApKSkp CisgICAgKGxldCoKKyAgICAgICAgKChjdWJlLXJvb3QgKGxhbWJkYSAoZikKKyAgICAgICAgICAg ICAgICAgICAgICAoaWYgKDwgZiAwKQorCSAgICAgICAgICAgICAgICAgICgtIChleHB0ICgtIGYp ICgvIDEuMCAzLjApKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChleHB0IGYgKC8gMS4wIDMu MCkpKSkpCisgICAgICAgICAobGxsIChmdW5jYWxsIGN1YmUtcm9vdCBsbCkpCisgICAgICAgICAo bW1tIChmdW5jYWxsIGN1YmUtcm9vdCBtbSkpCisgICAgICAgICAoc3NzIChmdW5jYWxsIGN1YmUt cm9vdCBzcykpKQorICAgICAgKGxpc3QgKCsgKCogbGxsIDAuMjEwNDU0MjU1MykgKCogbW1tIDAu NzkzNjE3Nzg1MCkgKCogc3NzIC0wLjAwNDA3MjA0NjgpKQorICAgICAgICAgICAgKCsgKCogbGxs IDEuOTc3OTk4NDk1MSkgKCogbW1tIC0yLjQyODU5MjIwNTApICgqIHNzcyAwLjQ1MDU5MzcwOTkp KQorICAgICAgICAgICAgKCsgKCogbGxsIDAuMDI1OTA0MDM3MSkgKCogbW1tIDAuNzgyNzcxNzY2 MikgKCogc3NzIC0wLjgwODY3NTc2NjApKSkpKSkKKworKGRlZnVuIGNvbG9yLW9rbGFiLXRvLXNy Z2IgKGwgYSBiKQorICAiQ29udmVydCB0aGUgT2tsYWIgY29sb3IgcmVwcmVzZW50ZWQgYnkgTCBB IEIgdG8gc1JHQi4iCisgIChhcHBseSAjJ2NvbG9yLXh5ei10by1zcmdiIChjb2xvci1va2xhYi10 by14eXogbCBhIGIpKSkKKworKGRlZnVuIGNvbG9yLXNyZ2ItdG8tb2tsYWIgKHIgZyBiKQorICAi Q29udmVydCB0aGUgc1JHQiBjb2xvciBSIEcgQiB0byBPa2xhYi4iCisgIChhcHBseSAjJ2NvbG9y LXh5ei10by1va2xhYiAoY29sb3Itc3JnYi10by14eXogciBnIGIpKSkKKwogKGRlZnVuIGNvbG9y LWNsYW1wICh2YWx1ZSkKICAgIk1ha2Ugc3VyZSBWQUxVRSBpcyBhIG51bWJlciBiZXR3ZWVuIDAu MCBhbmQgMS4wIGluY2x1c2l2ZS4iCiAgIChtaW4gMS4wIChtYXggMC4wIHZhbHVlKSkpCmRpZmYg LS1naXQgYS90ZXN0L2xpc3AvY29sb3ItdGVzdHMuZWwgYi90ZXN0L2xpc3AvY29sb3ItdGVzdHMu ZWwKaW5kZXggOWI2YjhjMWY4ZGMuLjBmNTNlNDMzMmE0IDEwMDY0NAotLS0gYS90ZXN0L2xpc3Av Y29sb3ItdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL2NvbG9yLXRlc3RzLmVsCkBAIC0yNDcsNSAr MjQ3LDM4IEBAIGNvbG9yLXRlc3RzLWRhcmtlbi1uYW1lCiAgIChzaG91bGQgKGVxdWFsIChjb2xv ci1kYXJrZW4tbmFtZSAicmVkIiAwKSAiI2ZmZmYwMDAwMDAwMCIpKQogICAoc2hvdWxkIChlcXVh bCAoY29sb3ItZGFya2VuLW5hbWUgInJlZCIgMTApICIjZTY2NTAwMDAwMDAwIikpKQogCisoZXJ0 LWRlZnRlc3QgY29sb3ItdGVzdHMtb2tsYWItdG8teHl6ICgpCisgIChzaG91bGQgKGNvbG9yLXRl c3RzLS1hcHByb3gtZXF1YWwgKGNvbG9yLW9rbGFiLXRvLXh5eiAwIDAgMCkgJygwLjAgMC4wIDAu MCkpKQorICAoc2hvdWxkIChjb2xvci10ZXN0cy0tYXBwcm94LWVxdWFsIChjb2xvci1va2xhYi10 by14eXogMS4wIDAuMCAwLjApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JygwLjk1MDQ3MDA1IDEuMCAxLjA4ODMwMDEpKSkKKyAgKHNob3VsZCAoY29sb3ItdGVzdHMtLWFw cHJveC1lcXVhbCAoY29sb3Itb2tsYWItdG8teHl6IDAuNDUwIDEuMjM2IC0wLjAxOSkgJygxLjAw MDYwNCAtMC4wMDAwMDggLTAuMDAwMDM4KSkpCisgIChzaG91bGQgKGNvbG9yLXRlc3RzLS1hcHBy b3gtZXF1YWwgKGNvbG9yLW9rbGFiLXRvLXh5eiAwLjkyMiAtMC42NzEgMC4yNjMpICcoMC4wMDAz MDUgMS4wMDA1MDQgMC4wMDA4OTgpKSkKKyAgKHNob3VsZCAoY29sb3ItdGVzdHMtLWFwcHJveC1l cXVhbCAoY29sb3Itb2tsYWItdG8teHl6IDAuMTUzIC0xLjQxNSAtMC40NDkpICcoMC4wMDA1OTAg MC4wMDAwNTcgMS4wMDE2NTApKSkpCisKKyhlcnQtZGVmdGVzdCBjb2xvci10ZXN0cy14eXotdG8t b2tsYWIgKCkKKyAgKHNob3VsZCAoY29sb3ItdGVzdHMtLWFwcHJveC1lcXVhbCAoY29sb3IteHl6 LXRvLW9rbGFiIDAgMCAwKSAnKDAuMCAwLjAgMC4wKSkpCisgIChzaG91bGQgKGNvbG9yLXRlc3Rz LS1hcHByb3gtZXF1YWwgKGNvbG9yLXh5ei10by1va2xhYiAwLjk1IDEuMCAxLjA4OSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKDAuOTk5OTY5IC0wLjAwMDI1OCAtMC4w MDAxMTUpKSkKKyAgKHNob3VsZCAoY29sb3ItdGVzdHMtLWFwcHJveC1lcXVhbCAoY29sb3IteHl6 LXRvLW9rbGFiIDEuMCAwLjAgMC4wKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICcoMC40NDk5MzIgMS4yMzU3MTAgLTAuMDE5MDI4KSkpCisgIChzaG91bGQgKGNvbG9yLXRl c3RzLS1hcHByb3gtZXF1YWwgKGNvbG9yLXh5ei10by1va2xhYiAwLjAgMS4wIDAuMCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKDAuOTIxODE3IC0wLjY3MTIzOCAwLjI2 MzMyNCkpKQorICAoc2hvdWxkIChjb2xvci10ZXN0cy0tYXBwcm94LWVxdWFsIChjb2xvci14eXot dG8tb2tsYWIgMC4wIDAuMCAxLjApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJygwLjE1MjYwMyAtMS40MTQ5OTcgLTAuNDQ4OTI3KSkpKQorCisoZXJ0LWRlZnRlc3QgY29s b3ItdGVzdHMtc3JnYi10by1va2xhYiAoKQorICAoc2hvdWxkIChlcXVhbCAoY29sb3Itc3JnYi10 by1va2xhYiAwIDAgMCkgJygwLjAgMC4wIDAuMCkpKQorICAoc2hvdWxkCisgICAoY29sb3ItdGVz dHMtLWFwcHJveC1lcXVhbCAoY29sb3Itc3JnYi10by1va2xhYiAwIDAgMSkgJygwLjQ1MTk3OCAt MC4wMzI0MzAgLTAuMzExNjExKSkpCisgIChzaG91bGQKKyAgIChjb2xvci10ZXN0cy0tYXBwcm94 LWVxdWFsIChjb2xvci1zcmdiLXRvLW9rbGFiIDAuMSAwLjIgMC4zKSAnKDAuMzEzODI4IC0wLjAx OTA5MSAtMC4wNTI1NjEpKSkpCisKKyhlcnQtZGVmdGVzdCBjb2xvci10ZXN0cy1va2xhYi10by1z cmdiICgpCisgIChzaG91bGQgKGVxdWFsIChjb2xvci1va2xhYi10by1zcmdiIDAgMCAwKSAnKDAu MCAwLjAgMC4wKSkpCisgIChzaG91bGQKKyAgIChjb2xvci10ZXN0cy0tYXBwcm94LWVxdWFsIChj b2xvci1va2xhYi10by1zcmdiIDAuNDUxOTc4IC0wLjAzMjQzMCAtMC4zMTE2MTEpICcoMC4wIDAu MCAxLjApKSkKKyAgKHNob3VsZAorICAgKGNvbG9yLXRlc3RzLS1hcHByb3gtZXF1YWwgKGNvbG9y LW9rbGFiLXRvLXNyZ2IgMC4zMTM4MjggLTAuMDE5MDkxIC0wLjA1MjU2MSkgJygwLjEgMC4yIDAu MykpKSkKKwogKHByb3ZpZGUgJ2NvbG9yLXRlc3RzKQogOzs7IGNvbG9yLXRlc3RzLmVsIGVuZHMg aGVyZQotLSAKMi4zOS4yCgo= --000000000000aa6ef506188107af--