From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Okamsn via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#68863: Add support for using setf with seq-subseq Date: Thu, 18 Apr 2024 02:54:46 +0000 Message-ID: <1fca0de5-236e-428f-9224-b03a4d7d6998@protonmail.com> References: <050ba625-2372-425f-85c6-988e2ef4cf14@protonmail.com> <86y1bvw5ff.fsf@gnu.org> <2dfd9d7f-5c63-4e1d-845c-cd245a71fc34@protonmail.com> <8d2a8d06-5b69-4587-9aab-36f7c792c623@protonmail.com> Reply-To: Okamsn Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_Pe2x6QukYaYI9CWYXi3IIxLnEctI7SEQA9dpZ8eW1s" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23181"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 68863@debbugs.gnu.org, Nicolas Petton To: Stefan Monnier , Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Apr 18 04:56:07 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 1rxHwU-0005lT-6h for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 18 Apr 2024 04:56:06 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rxHwE-00036J-H3; Wed, 17 Apr 2024 22:55:50 -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 1rxHwD-00036B-IE for bug-gnu-emacs@gnu.org; Wed, 17 Apr 2024 22:55:49 -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 1rxHwD-0007AX-AR for bug-gnu-emacs@gnu.org; Wed, 17 Apr 2024 22:55:49 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rxHwQ-000576-8i for bug-gnu-emacs@gnu.org; Wed, 17 Apr 2024 22:56:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Okamsn Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 18 Apr 2024 02:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68863 X-GNU-PR-Package: emacs Original-Received: via spool by 68863-submit@debbugs.gnu.org id=B68863.171340891619199 (code B ref 68863); Thu, 18 Apr 2024 02:56:02 +0000 Original-Received: (at 68863) by debbugs.gnu.org; 18 Apr 2024 02:55:16 +0000 Original-Received: from localhost ([127.0.0.1]:49575 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rxHve-0004zU-RI for submit@debbugs.gnu.org; Wed, 17 Apr 2024 22:55:16 -0400 Original-Received: from mail-40133.protonmail.ch ([185.70.40.133]:19787) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rxHvb-0004yY-SB for 68863@debbugs.gnu.org; Wed, 17 Apr 2024 22:55:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1713408892; x=1713668092; bh=UaBsVk0PzlNPV8QffxMh0bd7JGVLUd4ckSBM/b+wS1o=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=zKmmELW+ZJiTVaWr5ciDGfEgRqzpAsEF5s5leBKo9jl+gqjvBvZRIfmw2/4qDnh5x hWXvVcBGzb/CVCrEXFQdKROtDKiWS3XA0VIE14Ut9QTHhImW+lLELh1216R0bwB7Yw GKRNGeWV+xotki/or8gZFFsSkFHIGdzKFS+eZMydW1jXBVyO+9kwQJtY9IY3+n43U8 C7b236/B1V9jJigTqsDt3e+lBZNtT9zHplT5Sz8Sq108wEb4V20xi65wR+w6BMjrJi 1OIuoZuKxeVQAspAQmJ2lXe57orVC4jVD0w23I451wzQZkxZ6KBJoTysBs5YVMSvfa khnaqPTM6lywg== In-Reply-To: <8d2a8d06-5b69-4587-9aab-36f7c792c623@protonmail.com> Feedback-ID: 25935600:user:proton 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:283527 Archived-At: This is a multi-part message in MIME format. --b1_Pe2x6QukYaYI9CWYXi3IIxLnEctI7SEQA9dpZ8eW1s Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Okamsn wrote: > Hello, >=20 > After testing it more, I see that what I've written does not work as I > expected in the case >=20 > (let ((v (vector (vector 0 1) > (vector 2 3) > (vector 4 5)))) > (setf (seq-subseq (seq-subseq (elt v 0) 0) 0) > [10]) > v) >=20 > in which I would expect it to replace the first element of the first > sub-vector with 10. I will take more time to continue working on this. >=20 > Thank you for your patience. >=20 >=20 Hello, I found a way to work with subplaces, like in the example in my previous=20 e-mail message. Instead of creating the generic feature `(setf=20 seq-subseq)` like what is done for `seq-elt`, I created a generic=20 function `seq-replace`, which is used in a new `gv-expander` for=20 `seq-subseq`. This way of doing it is like what is done for `substring`,=20 which has the behavior that I wanted. What do you think about this approach? Thank you. --b1_Pe2x6QukYaYI9CWYXi3IIxLnEctI7SEQA9dpZ8eW1s Content-Type: text/x-patch; charset=UTF-8; name=v3-0001-Add-seq-replace-and-setf-support-for-seq-subseq.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v3-0001-Add-seq-replace-and-setf-support-for-seq-subseq.patch RnJvbSA0MTRjNzY4OWVmODczNWU0ZDI5NTVlMGY5N2I1Y2U4NDIxMjA4ODNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFYXJsIEh5YXR0IDxva2Ftc25AcHJvdG9ubWFpbC5jb20+CkRh dGU6IFN1biwgMjggSmFuIDIwMjQgMjI6NDg6MTMgLTA1MDAKU3ViamVjdDogW1BBVENIIHYzXSBB ZGQgc2VxLXJlcGxhY2UgYW5kIHNldGYgc3VwcG9ydCBmb3Igc2VxLXN1YnNlcS4KCiogbGlzcC9l bWFjcy1saXNwL3NlcS5lbCAoc2VxLXJlcGxhY2UpOiBBZGQgZnVuY3Rpb24gZm9yCm5vbi1kZXN0 cnVjdGl2ZWx5IHJlcGxhY2luZyB0aGUgZWxlbWVudHMgb2Ygc2VxdWVuY2UKd2l0aCB0aG9zZSBm cm9tIGFub3RoZXIgc2VxdWVuY2UuCiogbGlzcC9lbWFjcy1saXNwL3NlcS5lbCAoc2VxLXN1YnNl cSk6IERlY2xhcmUgdGhlICdndi1leHBhbmRlcicKc3BlY2lmaWNhdGlvbiB1c2luZyB0aGUgbmV3 ICdzZXEtcmVwbGFjZScgZnVuY3Rpb25zLgoqIHRlc3QvbGlzcC9lbWFjcy1saXNwL3NlcS10ZXN0 cy5lbCAodGVzdC1zZXEtcmVwbGFjZSkKKHRlc3Qtc2VxLXJlcGxhY2UtY29tYmluYXRpb25zKTog QWRkIHRlc3RzIGZvciAnc2VxLXJlcGxhY2UnLgoqIHRlc3QvbGlzcC9lbWFjcy1saXNwL3NlcS10 ZXN0cy5lbCAodGVzdC1zZXRmLXNlcS1zdWJzZXEpCih0ZXN0LXNldGYtc2VxLXN1YnNlcS1jb21i aW5hdGlvbnMsIHRlc3Qtc2V0Zi1zZXEtc3Vic2VxLXJlY3Vyc2l2ZSk6IEFkZAp0ZXN0cyBmb3Ig dGhlIG5ldyBndiBleHBhbmRlci4KClRoZSBmZWF0dXJlIHdpbGwgc2lnbmFsICdhcmdzLW91dC1v Zi1yYW5nZScgaWYgdGhlIHN0YXJ0aW5nIGluZGV4IG9yCmVuZGluZyBpbmRleCAoaWYgZ2l2ZW4p IGlzIG91dHNpZGUgb2YgdGhlIHJhbmdlIG9mIHZhbHVlcyBmcm9tIDAgdGhyb3VnaAp0aGUgbGVu Z3RoIG9mIHRoZSBzZXF1ZW5jZSBvciBmcm9tIHRoZSBuZWdhdGl2ZSBsZW5ndGggb2YgdGhlIHNl cXVlbmNlCnRocm91Z2ggbmVnYXRpdmUgMS4gIElmIHRoZSBzdGFydGluZyBpbmRleCBpcyBlcXVh bCB0byB0aGUgbGVuZ3RoIG9mIHRoZQpzZXF1ZW5jZSwgdGhlbiBub3RoaW5nIGlzIGNoYW5nZWQu ICBJZiB0aGUgc3RhcnRpbmcgaW5kZXggaXMgZXF1YWwgdG8KdGhlIGVuZGluZyBpbmRleCwgdGhl biBub3RoaW5nIGlzIGNoYW5nZWQuICBUaGUgJ3NlcS1yZXBsYWNlJyBhbmQgdGhlCm5ldyAnc2V0 Zicgc3VwcG9ydCBmb3IgJ3NlcS1zdWJzZXEnIHNob3VsZCBzaWduYWwgYW4gZXJyb3IgaW4gYWxs IGNhc2VzCndoZXJlIHVzaW5nICdzZXEtc3Vic2VxJyB3b3VsZCBzaWduYWwgYW4gZXJyb3IuCi0t LQogbGlzcC9lbWFjcy1saXNwL3NlcS5lbCAgICAgICAgICAgIHwgIDkxICsrKysrKysrKwogdGVz dC9saXNwL2VtYWNzLWxpc3Avc2VxLXRlc3RzLmVsIHwgMzI0ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA0MTUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2xpc3AvZW1hY3MtbGlzcC9zZXEuZWwgYi9saXNwL2VtYWNzLWxpc3Avc2VxLmVsCmluZGV4 IGEyMGNmZjE2OTgyLi4zN2Y3MzkzMmNkNyAxMDA2NDQKLS0tIGEvbGlzcC9lbWFjcy1saXNwL3Nl cS5lbAorKysgYi9saXNwL2VtYWNzLWxpc3Avc2VxLmVsCkBAIC0xNTgsNiArMTU4LDg0IEBAIHNl cS1jb3B5CiAgICJSZXR1cm4gYSBzaGFsbG93IGNvcHkgb2YgU0VRVUVOQ0UuIgogICAoY29weS1z ZXF1ZW5jZSBzZXF1ZW5jZSkpCiAKKyhjbC1kZWZnZW5lcmljIHNlcS1yZXBsYWNlIChzZXF1ZW5j ZSByZXBsYWNlbWVudHMgc3RhcnQgJm9wdGlvbmFsIGVuZCkKKyAgIlJlcGxhY2UgZWxlbWVudHMg b2YgU0VRVUVOQ0UgZnJvbSBTVEFSVCB0byBFTkQgd2l0aCBlbGVtZW50cyBvZiBSRVBMQUNFTUVO VFMuCitFTkQgaXMgZXhjbHVzaXZlLiIKKyAgKGxldCogKChsZW4gKHNlcS1sZW5ndGggc2VxdWVu Y2UpKQorICAgICAgICAgKHNpZ25hbC1mbiAobGFtYmRhICgpCisgICAgICAgICAgICAgICAgICAg ICAgKHNpZ25hbCAnYXJncy1vdXQtb2YtcmFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChpZiBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCBzZXF1 ZW5jZSBzdGFydCBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IHNl cXVlbmNlIHN0YXJ0KSkpKSkKKyAgICAgICAgIChzaWduYWwtb3ItdmFsLWZuIChsYW1iZGEgKHZh bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgoPiB2YWwgbGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChmdW5jYWxsIHNpZ25hbC1mbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDwg dmFsIDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHZhbDIgKCsgdmFs IGxlbikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmICg8IHZhbDIgMCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBzaWduYWwtZm4p CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbDIpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFs KSkpKQorICAgICAgICAgKGlkeC1zdGFydCAoZnVuY2FsbCBzaWduYWwtb3ItdmFsLWZuIHN0YXJ0 KSkKKyAgICAgICAgIChpZHgtZW5kIChpZiAobnVsbCBlbmQpCisgICAgICAgICAgICAgICAgICAg ICAgbGVuCisgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIHNpZ25hbC1vci12YWwtZm4gZW5k KSkpKQorICAgIChpZiAoPiBpZHgtc3RhcnQgaWR4LWVuZCkKKyAgICAgICAgKGZ1bmNhbGwgc2ln bmFsLWZuKQorICAgICAgKGxldCAoKHJlcGxhY2VtZW50LWlkeCAwKQorICAgICAgICAgICAgKHJl cGxhY2VtZW50LWxlbiAoc2VxLWxlbmd0aCByZXBsYWNlbWVudHMpKSkKKyAgICAgICAgKHNlcS1p bnRvIChzZXEtbWFwLWluZGV4ZWQgKGxhbWJkYSAoZWxlbSBpZHgpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGlmIChhbmQgKDw9IGlkeC1zdGFydCBpZHgpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDwgaWR4IGlkeC1lbmQpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDwgcmVwbGFjZW1l bnQtaWR4IHJlcGxhY2VtZW50LWxlbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChwcm9nMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHNlcS1lbHQgcmVwbGFjZW1lbnRzIHJlcGxhY2VtZW50LWlkeCkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSByZXBsYWNlbWVudC1pZHggKDEr IHJlcGxhY2VtZW50LWlkeCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZWxlbSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlKQor ICAgICAgICAgICAgICAgICAgKGlmIChsaXN0cCBzZXF1ZW5jZSkKKyAgICAgICAgICAgICAgICAg ICAgICAnbGlzdAorICAgICAgICAgICAgICAgICAgICAodHlwZS1vZiBzZXF1ZW5jZSkpKSkpKSkK KworKGNsLWRlZm1ldGhvZCBzZXEtcmVwbGFjZSAoc2VxdWVuY2UgKHJlcGxhY2VtZW50cyBsaXN0 KSBzdGFydCAmb3B0aW9uYWwgZW5kKQorICAiUmVwbGFjZSBlbGVtZW50cyBvZiBTRVFVRU5DRSBm cm9tIFNUQVJUIHRvIEVORCB3aXRoIGVsZW1lbnRzIG9mIFJFUExBQ0VNRU5UUy4KK0VORCBpcyBl eGNsdXNpdmUuIgorICAobGV0KiAoKGxlbiAoc2VxLWxlbmd0aCBzZXF1ZW5jZSkpCisgICAgICAg ICAoc2lnbmFsLWZuIChsYW1iZGEgKCkKKyAgICAgICAgICAgICAgICAgICAgICAoc2lnbmFsICdh cmdzLW91dC1vZi1yYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGVuZAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IHNlcXVlbmNlIHN0YXJ0IGVu ZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3Qgc2VxdWVuY2Ugc3RhcnQp KSkpKQorICAgICAgICAgKHNpZ25hbC1vci12YWwtZm4gKGxhbWJkYSAodmFsKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCg+IHZhbCBsZW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgc2ln bmFsLWZuKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoPCB2YWwgMCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgodmFsMiAoKyB2YWwgbGVuKSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKDwgdmFsMiAwKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIHNpZ25hbC1mbikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmFsMikpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpKSkpCisgICAgICAg ICAoaWR4LXN0YXJ0IChmdW5jYWxsIHNpZ25hbC1vci12YWwtZm4gc3RhcnQpKQorICAgICAgICAg KGlkeC1lbmQgKGlmIChudWxsIGVuZCkKKyAgICAgICAgICAgICAgICAgICAgICBsZW4KKyAgICAg ICAgICAgICAgICAgICAgKGZ1bmNhbGwgc2lnbmFsLW9yLXZhbC1mbiBlbmQpKSkpCisgICAgKGlm ICg+IGlkeC1zdGFydCBpZHgtZW5kKQorICAgICAgICAoZnVuY2FsbCBzaWduYWwtZm4pCisgICAg ICAoc2VxLWludG8gKHNlcS1tYXAtaW5kZXhlZCAobGFtYmRhIChlbGVtIGlkeCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChhbmQgKDw9IGlkeC1zdGFydCBpZHgpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8IGlkeCBpZHgtZW5k KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVu dHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9wIHJlcGxhY2Vt ZW50cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlKQorICAgICAgICAgICAgICAgIChp ZiAobGlzdHAgc2VxdWVuY2UpCisgICAgICAgICAgICAgICAgICAgICdsaXN0CisgICAgICAgICAg ICAgICAgICAodHlwZS1vZiBzZXF1ZW5jZSkpKSkpKQorCiA7OzsjIyNhdXRvbG9hZAogKGNsLWRl ZmdlbmVyaWMgc2VxLXN1YnNlcSAoc2VxdWVuY2Ugc3RhcnQgJm9wdGlvbmFsIGVuZCkKICAgIlJl dHVybiB0aGUgc2VxdWVuY2Ugb2YgZWxlbWVudHMgb2YgU0VRVUVOQ0UgZnJvbSBTVEFSVCB0byBF TkQuCkBAIC0xNjcsNiArMjQ1LDE5IEBAIHNlcS1zdWJzZXEKIFNUQVJUIG9yIEVORCBpcyBuZWdh dGl2ZSwgaXQgY291bnRzIGZyb20gdGhlIGVuZC4gIFNpZ25hbCBhbgogZXJyb3IgaWYgU1RBUlQg b3IgRU5EIGFyZSBvdXRzaWRlIG9mIHRoZSBzZXF1ZW5jZSAoaS5lIHRvbyBsYXJnZQogaWYgcG9z aXRpdmUgb3IgdG9vIHNtYWxsIGlmIG5lZ2F0aXZlKS4iCisgIChkZWNsYXJlCisgICAoZ3YtZXhw YW5kZXIKKyAgICAobGFtYmRhIChkbykKKyAgICAgIChndi1sZXRwbGFjZSAoZ2V0dGVyIHNldHRl cikgYChndi1kZWxheS1lcnJvciAsc2VxdWVuY2UpCisgICAgICAgIChtYWNyb2V4cC1sZXQyKiBu aWwgKChzdGFydCBzdGFydCkgKGVuZCBlbmQpKQorICAgICAgICAgIChmdW5jYWxsIGRvCisgICAg ICAgICAgICAgICAgICAgYChzZXEtc3Vic2VxICxnZXR0ZXIgLHN0YXJ0ICxlbmQpCisgICAgICAg ICAgICAgICAgICAgKGxhbWJkYSAodikKKyAgICAgICAgICAgICAgICAgICAgIChtYWNyb2V4cC1s ZXQyIG5pbCB2IHYKKyAgICAgICAgICAgICAgICAgICAgICAgYChwcm9nbgorICAgICAgICAgICAg ICAgICAgICAgICAgICAsKGZ1bmNhbGwgc2V0dGVyCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBgKHNlcS1yZXBsYWNlICxnZXR0ZXIgLHYgLHN0YXJ0ICxlbmQpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAsdikpKSkpKSkpKQogICAoY29uZAogICAgKChvciAoc3RyaW5n cCBzZXF1ZW5jZSkgKHZlY3RvcnAgc2VxdWVuY2UpKSAoc3Vic3RyaW5nIHNlcXVlbmNlIHN0YXJ0 IGVuZCkpCiAgICAoKGxpc3RwIHNlcXVlbmNlKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL2VtYWNz LWxpc3Avc2VxLXRlc3RzLmVsIGIvdGVzdC9saXNwL2VtYWNzLWxpc3Avc2VxLXRlc3RzLmVsCmlu ZGV4IGMwNmNlYjAwYmRiLi40NGZkNTM1MGY3MiAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2VtYWNz LWxpc3Avc2VxLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL3NlcS10ZXN0cy5l bApAQCAtMzEyLDYgKzMxMiwzMzAgQEAgdGVzdC1zZXEtc3Vic2VxCiAgICAgICAgICAgICAgICAg ICAoOnN1Y2Nlc3MKICAgICAgICAgICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoc2VxLXN1YnNl cSBsaXN0IHN0YXJ0IGVuZCkgcmVzKSkpKSkpKSkpKSkpCiAKKyhjbC1kZWZtYWNybyB0ZXN0LXNl cS1yZXBsYWNlLWNvbWJpbmF0aW9ucworICAgICgma2V5IGluaXQtdmFscyBzdWItdmFscyByZXN1 bHQgcmFuZ2UgZXJyb3IpCisgICJNYWtlIGEgdGVzdCBmb3IgZWFjaCBjb21iaW5hdGlvbiBvZiBz ZXF1ZW5jZSB0eXBlIGZvciBgc2VxLXN1YnNlcScgdXNpbmcgYHNldGYnLgorCistIElOSVQtVkFM UyBpcyBhIGxpc3QgaG9sZGluZyB0aGUgaW5pdGlhbCBlbGVtZW50cy4KKy0gUkVTVUxUIGlzIHdo YXQgdGhlIGZpbmFsIHZhbHVlIHNob3VsZCBiZSBhZnRlciBzdWJzdGl0dXRpb24uCistIEVSUk9S IGlzIHdoZXRoZXIgdGhlIGZvcm0gc2hvdWxkIHNpZ25hbCBgYXJncy1vdXQtb2YtcmFuZ2UnLgor LSBTVUItVkFMUyBpcyBhIGxpc3QgaG9sZGluZyB0aGUgZWxlbWVudHMgdG8gYmUgc3Vic3RpdHV0 ZWQgaW4uCistIFJBTkdFIGlzIGEgbGlzdCBvZiB0aGUgYHN0YXJ0JyBhbmQgYGVuZCcgYXJndW1l bnRzIG9mIGBzZXEtc3Vic2VxJy4iCisgIChsZXQgKCh0ZXN0cykpCisgICAgKGRvbGlzdCAodHlw ZTEgJyhsaXN0IHZlY3RvciBzdHJpbmcpKQorICAgICAgKGRvbGlzdCAodHlwZTIgJyhsaXN0IHZl Y3RvciBzdHJpbmcpKQorICAgICAgICAocHVzaCAgKGlmIGVycm9yCisgICAgICAgICAgICAgICAg ICAgYChzaG91bGQtZXJyb3IgKHNlcS1yZXBsYWNlICgsdHlwZTEgLEBpbml0LXZhbHMpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgsdHlwZTIgLEBzdWIt dmFscykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLEBy YW5nZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dHlwZSAocXVvdGUgYXJn cy1vdXQtb2YtcmFuZ2UpKQorICAgICAgICAgICAgICAgICBgKHNob3VsZCAoZXF1YWwgKCx0eXBl MSAsQHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEtcmVwbGFj ZSAoLHR5cGUxICxAaW5pdC12YWxzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgsdHlwZTIgLEBzdWItdmFscykKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAsQHJhbmdlKSkpKQorICAgICAgICAgICAgICAgdGVzdHMp KSkKKyAgICBgKHByb2duICxAdGVzdHMpKSkKKworKGVydC1kZWZ0ZXN0IHRlc3Qtc2VxLXJlcGxh Y2UgKCkKKyAgIlRlc3QgdXNpbmcgYHNlcS1yZXBsYWNlJyB3aXRoIGBzZXRmJy4KKworQW55IGNv bWJpbmF0aW9uIG9mIHNlcXVlbmNlcyBzaG91bGQgd29yay4KKworQW4gZXJyb3Igc2hvdWxkIGJl IHNpZ25hbGxlZCBpZiB0aGUgaW5jbHVzaXZlIHN0YXJ0aW5nIGluZGV4IG9yCit0aGUgZXhjbHVz aXZlIGVuZGluZyBpbmRleCBpcyBvdXQgb2YgdGhlIHJhbmdlIGZyb20gMCB0aHJvdWdoIHRoZQor bGVuZ3RoIG9mIHRoZSBzZXF1ZW5jZSwgb3IgaWYgdGhlIHN0YXJ0aW5nIGluZGV4IGlzIGdyZWF0 ZXIgdGhhbgordGhlIGVuZGluZyBpbmRleC4gIElmIHRoZSBzdGFydGluZyBpbmRleCBpcyBlcXVh bCB0byB0aGUgZW5kaW5nCitpbmRleCwgdGhlbiBub3RoaW5nIGlzIGNoYW5nZWQuICBJZiB0aGUg c3RhcnRpbmcgaW5kZXggaXMgZXF1YWwKK3RvIHRoZSBsZW5ndGggb2YgdGhlIHNlcXVlbmNlLCB0 aGVuIG5vdGhpbmcgaXMgY2hhbmdlZC4gIEl0CitzaG91bGQgc2lnbmFsIGFuIGVycm9yIGluIGFs bCB0aGUgY2FzZXMgdGhhdCBgc2VxLXJlcGxhY2UnIHNpZ25hbHMKK2FuIGVycm9yLiIKKyAgKHRl c3Qtc2VxLXJlcGxhY2UtY29tYmluYXRpb25zCisgICA6aW5pdC12YWxzICgwIDEgMikKKyAgIDpz dWItdmFscyAoMTAgMTEgMTIpCisgICA6cmFuZ2UgKDApCisgICA6cmVzdWx0ICgxMCAxMSAxMikp CisKKyAgKHRlc3Qtc2VxLXJlcGxhY2UtY29tYmluYXRpb25zCisgICA6aW5pdC12YWxzICgwIDEp CisgICA6c3ViLXZhbHMgKDEwIDExIDEyKQorICAgOnJhbmdlICgwKQorICAgOnJlc3VsdCAoMTAg MTEpKQorCisgICh0ZXN0LXNlcS1yZXBsYWNlLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAo MCAxIDIpCisgICA6c3ViLXZhbHMgKDEwIDExIDEyKQorICAgOnJhbmdlICgxKQorICAgOnJlc3Vs dCAoMCAxMCAxMSkpCisKKyAgKHRlc3Qtc2VxLXJlcGxhY2UtY29tYmluYXRpb25zCisgICA6aW5p dC12YWxzICgwIDEgMikKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIpCisgICA6cmFuZ2UgKDEgMykK KyAgIDpyZXN1bHQgKDAgMTAgMTEpKQorCisgICh0ZXN0LXNlcS1yZXBsYWNlLWNvbWJpbmF0aW9u cworICAgOmluaXQtdmFscyAoMCAxIDIpCisgICA6c3ViLXZhbHMgKDEwIDExIDEyKQorICAgOnJh bmdlICgzIDEpCisgICA6ZXJyb3IgdCkKKworICAodGVzdC1zZXEtcmVwbGFjZS1jb21iaW5hdGlv bnMKKyAgIDppbml0LXZhbHMgKDAgMSAyKQorICAgOnN1Yi12YWxzICgxMCAxMSAxMikKKyAgIDpy YW5nZSAoMSAxMDApCisgICA6ZXJyb3IgdCkKKworICAodGVzdC1zZXEtcmVwbGFjZS1jb21iaW5h dGlvbnMKKyAgIDppbml0LXZhbHMgKDAgMSAyKQorICAgOnN1Yi12YWxzICgxMCAxMSAxMikKKyAg IDpyYW5nZSAoNykKKyAgIDplcnJvciB0KQorCisgICh0ZXN0LXNlcS1yZXBsYWNlLWNvbWJpbmF0 aW9ucworICAgOmluaXQtdmFscyAoMCAxIDIgMyA0KQorICAgOnN1Yi12YWxzICgxMiAxMyAxNCAx NSkKKyAgIDpyYW5nZSAoMiAzKQorICAgOnJlc3VsdCAoMCAxIDEyIDMgNCkpCisKKyAgKHRlc3Qt c2VxLXJlcGxhY2UtY29tYmluYXRpb25zCisgICA6aW5pdC12YWxzICgwIDEgMiAzIDQpCisgICA6 c3ViLXZhbHMgKDEyIDEzIDE0IDE1KQorICAgOnJhbmdlICgyIDIpCisgICA6cmVzdWx0ICgwIDEg MiAzIDQpKQorCisgICh0ZXN0LXNlcS1yZXBsYWNlLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFs cyAoMCAxIDIgMyA0KQorICAgOnN1Yi12YWxzICgxMiAxMyAxNCAxNSkKKyAgIDpyYW5nZSAoNSkK KyAgIDpyZXN1bHQgKDAgMSAyIDMgNCkpCisKKyAgKHRlc3Qtc2VxLXJlcGxhY2UtY29tYmluYXRp b25zCisgICA6aW5pdC12YWxzICgwIDEgMiAzIDQpCisgICA6c3ViLXZhbHMgKDEyIDEzIDE0IDE1 KQorICAgOnJhbmdlICg2KQorICAgOmVycm9yIHQpCisKKyAgKHRlc3Qtc2VxLXJlcGxhY2UtY29t YmluYXRpb25zCisgICA6aW5pdC12YWxzICgwIDEgMiAzIDQpCisgICA6c3ViLXZhbHMgKDEyIDEz IDE0IDE1KQorICAgOnJhbmdlICg1IDYpCisgICA6ZXJyb3IgdCkKKworICAodGVzdC1zZXEtcmVw bGFjZS1jb21iaW5hdGlvbnMKKyAgIDppbml0LXZhbHMgKDAgMSAyIDMgNCA1IDYgNyA4IDkpCisg ICA6c3ViLXZhbHMgKDEwIDExIDEyIDEzIDE0KQorICAgOnJhbmdlICgtMikKKyAgIDpyZXN1bHQg KDAgMSAyIDMgNCA1IDYgNyAxMCAxMSkpCisKKyAgKHRlc3Qtc2VxLXJlcGxhY2UtY29tYmluYXRp b25zCisgICA6aW5pdC12YWxzICgwIDEgMiAzIDQgNSA2IDcgOCA5KQorICAgOnN1Yi12YWxzICgx MCAxMSAxMiAxMyAxNCkKKyAgIDpyYW5nZSAoLTYgLTMpCisgICA6cmVzdWx0ICgwIDEgMiAzIDEw IDExIDEyIDcgOCA5KSkKKworICAodGVzdC1zZXEtcmVwbGFjZS1jb21iaW5hdGlvbnMKKyAgIDpp bml0LXZhbHMgKDAgMSAyIDMgNCA1IDYgNyA4IDkpCisgICA6c3ViLXZhbHMgKDEwIDExIDEyIDEz IDE0KQorICAgOnJhbmdlICgtNiAtMTApCisgICA6ZXJyb3IgdCkKKworICA7OyBUaGlzIHJhbmdl IG1pZ2h0IG1ha2Ugc2Vuc2UsIGJ1dCBzaW5jZSBpdCB3b3VsZCBzaWduYWwgYW4gZXJyb3IKKyAg OzsgaW4gYHNlcS1zdWJzZXEnLCB3ZSBhbHNvIHNpZ25hbCBhbiBlcnJvciBpbiB0aGUgYHNldGYn IGZlYXR1cmUuCisgICh0ZXN0LXNlcS1yZXBsYWNlLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFs cyAoMCAxIDIgMyA0IDUgNiA3IDggOSkKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIgMTMgMTQpCisg ICA6cmFuZ2UgKC02IDApCisgICA6ZXJyb3IgdCkKKworICAodGVzdC1zZXEtcmVwbGFjZS1jb21i aW5hdGlvbnMKKyAgIDppbml0LXZhbHMgKDAgMSAyIDMgNCA1IDYgNyA4IDkpCisgICA6c3ViLXZh bHMgKDEwIDExIDEyIDEzIDE0KQorICAgOnJhbmdlICgxMDApCisgICA6ZXJyb3IgdCkKKworICAo dGVzdC1zZXEtcmVwbGFjZS1jb21iaW5hdGlvbnMKKyAgIDppbml0LXZhbHMgKDAgMSAyIDMgNCA1 IDYgNyA4IDkpCisgICA6c3ViLXZhbHMgKDEwIDExIDEyIDEzIDE0KQorICAgOnJhbmdlICgtMTAw KQorICAgOmVycm9yIHQpKQorCisoY2wtZGVmbWFjcm8gdGVzdC1zZXRmLXNlcS1zdWJzZXEtY29t YmluYXRpb25zCisgICAgKCZrZXkgaW5pdC12YWxzIHN1Yi12YWxzIHJlc3VsdCByYW5nZSBlcnJv cikKKyAgIk1ha2UgYSB0ZXN0IGZvciBlYWNoIGNvbWJpbmF0aW9uIG9mIHNlcXVlbmNlIHR5cGUg Zm9yIGBzZXEtc3Vic2VxJyB1c2luZyBgc2V0ZicuCisKKy0gSU5JVC1WQUxTIGlzIGEgbGlzdCBo b2xkaW5nIHRoZSBpbml0aWFsIGVsZW1lbnRzLgorLSBSRVNVTFQgaXMgd2hhdCB0aGUgZmluYWwg dmFsdWUgc2hvdWxkIGJlIGFmdGVyIHN1YnN0aXR1dGlvbi4KKy0gRVJST1IgaXMgd2hldGhlciB0 aGUgZm9ybSBzaG91bGQgc2lnbmFsIGBhcmdzLW91dC1vZi1yYW5nZScuCistIFNVQi1WQUxTIGlz IGEgbGlzdCBob2xkaW5nIHRoZSBlbGVtZW50cyB0byBiZSBzdWJzdGl0dXRlZCBpbi4KKy0gUkFO R0UgaXMgYSBsaXN0IG9mIHRoZSBgc3RhcnQnIGFuZCBgZW5kJyBhcmd1bWVudHMgb2YgYHNlcS1z dWJzZXEnLiIKKyAgKGxldCAoKHRlc3RzKSkKKyAgICAoZG9saXN0ICh0eXBlMSAnKGxpc3QgdmVj dG9yIHN0cmluZykpCisgICAgICAoZG9saXN0ICh0eXBlMiAnKGxpc3QgdmVjdG9yIHN0cmluZykp CisgICAgICAgIChwdXNoICAoaWYgZXJyb3IKKyAgICAgICAgICAgICAgICAgICBgKHNob3VsZC1l cnJvciAobGV0ICgoc2VxICgsdHlwZTEgLEBpbml0LXZhbHMpKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzZXRmIChzZXEtc3Vic2VxIHNlcSAsQHJhbmdlKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCx0eXBlMiAsQHN1Yi12YWxzKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6dHlwZSAocXVvdGUgYXJncy1vdXQtb2YtcmFuZ2UpKQorICAg ICAgICAgICAgICAgICBgKHNob3VsZCAoZXF1YWwgKCx0eXBlMSAsQHJlc3VsdCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChzZXEgKCx0eXBlMSAsQGluaXQtdmFscykp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ZiAoc2VxLXN1YnNlcSBz ZXEgLEByYW5nZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCx0 eXBlMiAsQHN1Yi12YWxzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vx KSkpKQorICAgICAgICAgICAgICAgdGVzdHMpKSkKKyAgICBgKHByb2duICxAdGVzdHMpKSkKKwor KGVydC1kZWZ0ZXN0IHRlc3Qtc2V0Zi1zZXEtc3Vic2VxICgpCisgICJUZXN0IHVzaW5nIGBzZXEt c3Vic2VxJyB3aXRoIGBzZXRmJy4KKworQW55IGNvbWJpbmF0aW9uIG9mIHNlcXVlbmNlcyBzaG91 bGQgd29yay4KKworQW4gZXJyb3Igc2hvdWxkIGJlIHNpZ25hbGxlZCBpZiB0aGUgaW5jbHVzaXZl IHN0YXJ0aW5nIGluZGV4IG9yCit0aGUgZXhjbHVzaXZlIGVuZGluZyBpbmRleCBpcyBvdXQgb2Yg dGhlIHJhbmdlIGZyb20gMCB0aHJvdWdoIHRoZQorbGVuZ3RoIG9mIHRoZSBzZXF1ZW5jZSwgb3Ig aWYgdGhlIHN0YXJ0aW5nIGluZGV4IGlzIGdyZWF0ZXIgdGhhbgordGhlIGVuZGluZyBpbmRleC4g IElmIHRoZSBzdGFydGluZyBpbmRleCBpcyBlcXVhbCB0byB0aGUgZW5kaW5nCitpbmRleCwgdGhl biBub3RoaW5nIGlzIGNoYW5nZWQuICBJZiB0aGUgc3RhcnRpbmcgaW5kZXggaXMgZXF1YWwKK3Rv IHRoZSBsZW5ndGggb2YgdGhlIHNlcXVlbmNlLCB0aGVuIG5vdGhpbmcgaXMgY2hhbmdlZC4gIEl0 CitzaG91bGQgc2lnbmFsIGFuIGVycm9yIGluIGFsbCB0aGUgY2FzZXMgdGhhdCBgc2VxLXN1YnNl cScgc2lnbmFscworYW4gZXJyb3IuIgorICAodGVzdC1zZXRmLXNlcS1zdWJzZXEtY29tYmluYXRp b25zCisgICA6aW5pdC12YWxzICgwIDEgMikKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIpCisgICA6 cmFuZ2UgKDApCisgICA6cmVzdWx0ICgxMCAxMSAxMikpCisKKyAgKHRlc3Qtc2V0Zi1zZXEtc3Vi c2VxLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAoMCAxKQorICAgOnN1Yi12YWxzICgxMCAx MSAxMikKKyAgIDpyYW5nZSAoMCkKKyAgIDpyZXN1bHQgKDEwIDExKSkKKworICAodGVzdC1zZXRm LXNlcS1zdWJzZXEtY29tYmluYXRpb25zCisgICA6aW5pdC12YWxzICgwIDEgMikKKyAgIDpzdWIt dmFscyAoMTAgMTEgMTIpCisgICA6cmFuZ2UgKDEpCisgICA6cmVzdWx0ICgwIDEwIDExKSkKKwor ICAodGVzdC1zZXRmLXNlcS1zdWJzZXEtY29tYmluYXRpb25zCisgICA6aW5pdC12YWxzICgwIDEg MikKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIpCisgICA6cmFuZ2UgKDEgMykKKyAgIDpyZXN1bHQg KDAgMTAgMTEpKQorCisgICh0ZXN0LXNldGYtc2VxLXN1YnNlcS1jb21iaW5hdGlvbnMKKyAgIDpp bml0LXZhbHMgKDAgMSAyKQorICAgOnN1Yi12YWxzICgxMCAxMSAxMikKKyAgIDpyYW5nZSAoMyAx KQorICAgOmVycm9yIHQpCisKKyAgKHRlc3Qtc2V0Zi1zZXEtc3Vic2VxLWNvbWJpbmF0aW9ucwor ICAgOmluaXQtdmFscyAoMCAxIDIpCisgICA6c3ViLXZhbHMgKDEwIDExIDEyKQorICAgOnJhbmdl ICgxIDEwMCkKKyAgIDplcnJvciB0KQorCisgICh0ZXN0LXNldGYtc2VxLXN1YnNlcS1jb21iaW5h dGlvbnMKKyAgIDppbml0LXZhbHMgKDAgMSAyKQorICAgOnN1Yi12YWxzICgxMCAxMSAxMikKKyAg IDpyYW5nZSAoNykKKyAgIDplcnJvciB0KQorCisgICh0ZXN0LXNldGYtc2VxLXN1YnNlcS1jb21i aW5hdGlvbnMKKyAgIDppbml0LXZhbHMgKDAgMSAyIDMgNCkKKyAgIDpzdWItdmFscyAoMTIgMTMg MTQgMTUpCisgICA6cmFuZ2UgKDIgMykKKyAgIDpyZXN1bHQgKDAgMSAxMiAzIDQpKQorCisgICh0 ZXN0LXNldGYtc2VxLXN1YnNlcS1jb21iaW5hdGlvbnMKKyAgIDppbml0LXZhbHMgKDAgMSAyIDMg NCkKKyAgIDpzdWItdmFscyAoMTIgMTMgMTQgMTUpCisgICA6cmFuZ2UgKDIgMikKKyAgIDpyZXN1 bHQgKDAgMSAyIDMgNCkpCisKKyAgKHRlc3Qtc2V0Zi1zZXEtc3Vic2VxLWNvbWJpbmF0aW9ucwor ICAgOmluaXQtdmFscyAoMCAxIDIgMyA0KQorICAgOnN1Yi12YWxzICgxMiAxMyAxNCAxNSkKKyAg IDpyYW5nZSAoNSkKKyAgIDpyZXN1bHQgKDAgMSAyIDMgNCkpCisKKyAgKHRlc3Qtc2V0Zi1zZXEt c3Vic2VxLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAoMCAxIDIgMyA0KQorICAgOnN1Yi12 YWxzICgxMiAxMyAxNCAxNSkKKyAgIDpyYW5nZSAoNikKKyAgIDplcnJvciB0KQorCisgICh0ZXN0 LXNldGYtc2VxLXN1YnNlcS1jb21iaW5hdGlvbnMKKyAgIDppbml0LXZhbHMgKDAgMSAyIDMgNCkK KyAgIDpzdWItdmFscyAoMTIgMTMgMTQgMTUpCisgICA6cmFuZ2UgKDUgNikKKyAgIDplcnJvciB0 KQorCisgICh0ZXN0LXNldGYtc2VxLXN1YnNlcS1jb21iaW5hdGlvbnMKKyAgIDppbml0LXZhbHMg KDAgMSAyIDMgNCA1IDYgNyA4IDkpCisgICA6c3ViLXZhbHMgKDEwIDExIDEyIDEzIDE0KQorICAg OnJhbmdlICgtMikKKyAgIDpyZXN1bHQgKDAgMSAyIDMgNCA1IDYgNyAxMCAxMSkpCisKKyAgKHRl c3Qtc2V0Zi1zZXEtc3Vic2VxLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAoMCAxIDIgMyA0 IDUgNiA3IDggOSkKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIgMTMgMTQpCisgICA6cmFuZ2UgKC02 IC0zKQorICAgOnJlc3VsdCAoMCAxIDIgMyAxMCAxMSAxMiA3IDggOSkpCisKKyAgKHRlc3Qtc2V0 Zi1zZXEtc3Vic2VxLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAoMCAxIDIgMyA0IDUgNiA3 IDggOSkKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIgMTMgMTQpCisgICA6cmFuZ2UgKC02IC0xMCkK KyAgIDplcnJvciB0KQorCisgIDs7IFRoaXMgcmFuZ2UgbWlnaHQgbWFrZSBzZW5zZSwgYnV0IHNp bmNlIGl0IHdvdWxkIHNpZ25hbCBhbiBlcnJvcgorICA7OyBpbiBgc2VxLXN1YnNlcScsIHdlIGFs c28gc2lnbmFsIGFuIGVycm9yIGluIHRoZSBgc2V0ZicgZmVhdHVyZS4KKyAgKHRlc3Qtc2V0Zi1z ZXEtc3Vic2VxLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAoMCAxIDIgMyA0IDUgNiA3IDgg OSkKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIgMTMgMTQpCisgICA6cmFuZ2UgKC02IDApCisgICA6 ZXJyb3IgdCkKKworICAodGVzdC1zZXRmLXNlcS1zdWJzZXEtY29tYmluYXRpb25zCisgICA6aW5p dC12YWxzICgwIDEgMiAzIDQgNSA2IDcgOCA5KQorICAgOnN1Yi12YWxzICgxMCAxMSAxMiAxMyAx NCkKKyAgIDpyYW5nZSAoMTAwKQorICAgOmVycm9yIHQpCisKKyAgKHRlc3Qtc2V0Zi1zZXEtc3Vi c2VxLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAoMCAxIDIgMyA0IDUgNiA3IDggOSkKKyAg IDpzdWItdmFscyAoMTAgMTEgMTIgMTMgMTQpCisgICA6cmFuZ2UgKC0xMDApCisgICA6ZXJyb3Ig dCkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LXNldGYtc2VxLXN1YnNlcS1yZWN1cnNpdmUgKCkKKyAg IlRlc3QgdXNpbmcgYHNldGYnIHdpdGggYHNlcS1zdWJzZXEnIG9uIHN1Yi1wbGFjZXMuCitMaWtl IHVzaW5nIGBzZXRmJyB3aXRoIGBzdWJzdHJpbmcnLiIKKyAgKGxldCAoKHZlY3QgKHZlY3RvciAw IDEgMiAzIDQgNSA2KSkpCisgICAgKHNldGYgKHNlcS1zdWJzZXEgKHNlcS1zdWJzZXEgdmVjdCAy KSAyKSBbMTExIDIyMl0pCisgICAgKHNob3VsZCAoZXF1YWwgdmVjdCAodmVjdG9yIDAgMSAyIDMg MTExIDIyMiA2KSkpKQorCisgIChsZXQgKChzdHIgKHN0cmluZyA/YSA/YiA/YyA/ZCA/ZSA/ZiA/ ZykpKQorICAgIChzZXRmIChzZXEtc3Vic2VxIChzZXEtc3Vic2VxIHN0ciAyKSAwKSAobGlzdCA/ eCA/eSA/eiA/MSA/MiA/MykpCisgICAgKHNob3VsZCAoZXF1YWwgc3RyIChzdHJpbmcgP2EgP2Ig P3ggP3kgP3ogPzEgPzIpKSkpCisKKyAgKGxldCAoKGxzdCAobGlzdCA/YSA/YiA/YyA/ZCA/ZSA/ ZiA/ZykpKQorICAgIChzZXRmIChzZXEtc3Vic2VxIChzZXEtc3Vic2VxIChzZXEtc3Vic2VxIChz ZXEtc3Vic2VxIGxzdCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMikKKyAgICAgICAg ICAgICAgICAgICAgICAtNQorICAgICAgICAgICAgICAgICAgICAgIC0zKQorICAgICAgICAgICh2 ZWN0b3IgP3ggP3kgP3ogPzEgPzIgPzMpKQorICAgIChzaG91bGQgKGVxdWFsIGxzdCAobGlzdCA/ YSA/YiA/eCA/eSA/ZSA/ZiA/ZykpKSkKKworICAobGV0ICgobHN0IChsaXN0IDAgMSAyIDMgNCA1 IDYgNyA4IDkpKSkKKyAgICAoc2V0ZiAoc2VxLXN1YnNlcSAoc2VxLXN1YnNlcSAoc2VxLXN1YnNl cSAoc2VxLXN1YnNlcSBsc3QgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpCisgICAg ICAgICAgICAgICAgICAgICAgMSkKKyAgICAgICAgICAodmVjdG9yIDExMSAyMjIgMzMzIDQ0NCA1 NTUgNjY2IDc3NyA4ODgpKQorICAgIChzaG91bGQgKGVxdWFsIGxzdCAobGlzdCAwIDEgMiAzIDEx MSAyMjIgMzMzIDQ0NCA1NTUgNjY2KSkpKSkKKwogKGVydC1kZWZ0ZXN0IHRlc3Qtc2VxLWNvbmNh dGVuYXRlICgpCiAgICh3aXRoLXRlc3Qtc2VxdWVuY2VzIChzZXEgJygyIDQgNikpCiAgICAgKHNo b3VsZCAoZXF1YWwgKHNlcS1jb25jYXRlbmF0ZSAnc3RyaW5nIHNlcSBbOF0pIChzdHJpbmcgMiA0 IDYgOCkpKQotLSAKMi4zNC4xCgo= --b1_Pe2x6QukYaYI9CWYXi3IIxLnEctI7SEQA9dpZ8eW1s--