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: Tue, 07 May 2024 01:45:44 +0000 Message-ID: <5db43ef0-f218-4790-b263-a3eb80929d9b@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> <1fca0de5-236e-428f-9224-b03a4d7d6998@protonmail.com> Reply-To: Okamsn Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_GIc4IVwxZm5sYzB3lhXoalCoZgTokRfnuyovSfYuFc" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36437"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 68863@debbugs.gnu.org, Nicolas Petton To: Stefan Monnier , Eli Zaretskii , Michael Heerdegen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue May 07 03:47:05 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 1s49v7-0009Cs-EK for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 07 May 2024 03:47:05 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s49ul-0004J2-DG; Mon, 06 May 2024 21:46:43 -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 1s49uh-0004Gz-R8 for bug-gnu-emacs@gnu.org; Mon, 06 May 2024 21:46:41 -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 1s49ug-0005fb-CX for bug-gnu-emacs@gnu.org; Mon, 06 May 2024 21:46:38 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1s49v4-000218-FJ for bug-gnu-emacs@gnu.org; Mon, 06 May 2024 21:47:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Okamsn Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 07 May 2024 01:47: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.17150463857737 (code B ref 68863); Tue, 07 May 2024 01:47:02 +0000 Original-Received: (at 68863) by debbugs.gnu.org; 7 May 2024 01:46:25 +0000 Original-Received: from localhost ([127.0.0.1]:41371 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s49uS-00020j-Jv for submit@debbugs.gnu.org; Mon, 06 May 2024 21:46:25 -0400 Original-Received: from mail-4316.protonmail.ch ([185.70.43.16]:22229) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s49uP-00020d-FX for 68863@debbugs.gnu.org; Mon, 06 May 2024 21:46:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1715046350; x=1715305550; bh=AxiiZdYt2Qh+KDerGgjUYyDk0K4t96d9KZEG1+huqT0=; 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=YiOnvvU8K/EKHKMg5QcsXYiYzX69wunooGPf/tsn5aC2thCQFTMd+q5ua0GqVL7eu 8zHo4Icat+62wep+BUfm1wb7n9DcQe3neHDqElsxu0/Pn0pDskC0CDj5VeRaGZhyNt YKLlUnD1vh8pcn77EB/MX9hwOk0JmJHUdIPQ746OKu2FfN+p0ZpbfefpGxmqMPHhX8 juEVXcGOUrwvVtlFRmTPyFKQBFH2sL1b6YN9jxqpJEVkLveU3dUDqj2K47r3AfwjqG vdWtXsePOG1pCn0a8upd39PaSP50ZdhPRT+s25kuydy4q594pEcNcVEi2qiNKollr+ MoWHXEzv8+FgA== In-Reply-To: <1fca0de5-236e-428f-9224-b03a4d7d6998@protonmail.com> Feedback-ID: 25935600:user:proton X-Pm-Message-ID: 1eb6f2d8570ebaec82b086557c7e16cef7c62038 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:284615 Archived-At: This is a multi-part message in MIME format. --b1_GIc4IVwxZm5sYzB3lhXoalCoZgTokRfnuyovSfYuFc Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Okamsn wrote: > Okamsn wrote: >> Hello, >> >> After testing it more, I see that what I've written does not work as I >> expected in the case >> >> (let ((v (vector (vector 0 1) >> (vector 2 3) >> (vector 4 5)))) >> (setf (seq-subseq (seq-subseq (elt v 0) 0) 0) >> [10]) >> v) >> >> 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. >> >> Thank you for your patience. >> >> >=20 > Hello, >=20 > I found a way to work with subplaces, like in the example in my previous > e-mail message. Instead of creating the generic feature `(setf > seq-subseq)` like what is done for `seq-elt`, I created a generic > function `seq-replace`, which is used in a new `gv-expander` for > `seq-subseq`. This way of doing it is like what is done for `substring`, > which has the behavior that I wanted. >=20 > What do you think about this approach? >=20 > Thank you. Hello, Since supporting sub-places is controversial, would you please review=20 version 2 of the patch that I sent, which I have re-attached for=20 convenience. This version /does not/ support sub-places. I have added Michael Heerdegen to the recipients list in case they would=20 like to comment. Thank you. --b1_GIc4IVwxZm5sYzB3lhXoalCoZgTokRfnuyovSfYuFc Content-Type: text/x-patch; charset=UTF-8; name=v2-0001-Add-setf-support-for-seq-subseq.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v2-0001-Add-setf-support-for-seq-subseq.patch RnJvbSBiMDZkYjc5MDVmNWQ2ZGZhMGQzM2MwNWZkMjE0ZWY5NWQxOTgxNGI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFYXJsIEh5YXR0IDxva2Ftc25AcHJvdG9ubWFpbC5jb20+CkRh dGU6IFN1biwgMjggSmFuIDIwMjQgMjI6NDg6MTMgLTA1MDAKU3ViamVjdDogW1BBVENIIHYyXSBB ZGQgc2V0ZiBzdXBwb3J0IGZvciBzZXEtc3Vic2VxLgoKKiBsaXNwL2VtYWNzLWxpc3Avc2VxLmVs IChzZXEtc3Vic2VxKTogQWRkIGEgZ2VuZXJpYyB2ZXJzaW9uIG9mCmNhbGxpbmcgc2V0ZiBvbiBz ZXEtc3Vic2VxIGFuZCBhZGQgYSBzcGVjaWFsaXplZCB2ZXJzaW9uIGZvciB3aGVuIHRoZQptb2Rp ZmllZCBzZXF1ZW5jZSBpcyBhIGxpc3QuCiogdGVzdC9saXNwL2VtYWNzLWxpc3Avc2VxLXRlc3Rz LmVsICh0ZXN0LXNldGYtc2VxLXN1YnNlcSkKKHRlc3Qtc2V0Zi1zZXEtc3Vic2VxLWNvbWJpbmF0 aW9ucyk6IEFkZCB0ZXN0cyBmb3IgdGhlIGZlYXR1cmUuCgpUaGUgZmVhdHVyZSB3aWxsIHNpZ25h bCAnYXJncy1vdXQtb2YtcmFuZ2UnIGlmIHRoZSBzdGFydGluZyBpbmRleCBvcgplbmRpbmcgaW5k ZXggKGlmIGdpdmVuKSBpcyBvdXRzaWRlIG9mIHRoZSByYW5nZSBvZiB2YWx1ZXMgZnJvbSAwCnRo cm91Z2ggdGhlIGxlbmd0aCBvZiB0aGUgc2VxdWVuY2Ugb3IgZnJvbSB0aGUgbmVnYXRpdmUgbGVu Z3RoIG9mIHRoZQpzZXF1ZW5jZSB0aHJvdWdoIG5lZ2F0aXZlIDEuICBJZiB0aGUgc3RhcnRpbmcg aW5kZXggaXMgZXF1YWwgdG8gdGhlCmxlbmd0aCBvZiB0aGUgc2VxdWVuY2UsIHRoZW4gbm90aGlu ZyBpcyBjaGFuZ2VkLiAgSWYgdGhlIHN0YXJ0aW5nCmluZGV4IGlzIGVxdWFsIHRvIHRoZSBlbmRp bmcgaW5kZXgsIHRoZW4gbm90aGluZyBpcyBjaGFuZ2VkLiAgVGhlCmZlYXR1cmUgc2hvdWxkIHNp Z25hbCBhbiBlcnJvciBpbiBhbGwgY2FzZXMgd2hlcmUgdXNpbmcgJ3NlcS1zdWJzZXEnCndvdWxk IHNpZ25hbCBhbiBlcnJvci4KLS0tCiBsaXNwL2VtYWNzLWxpc3Avc2VxLmVsICAgICAgICAgICAg fCAgODggKysrKysrKysrKysrKysrKysrCiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9zZXEtdGVzdHMu ZWwgfCAxNDkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQs IDIzNyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGlzcC9lbWFjcy1saXNwL3NlcS5lbCBi L2xpc3AvZW1hY3MtbGlzcC9zZXEuZWwKaW5kZXggNGM2NTUzOTcyYzIuLjZhMWZkNGMzNWUzIDEw MDY0NAotLS0gYS9saXNwL2VtYWNzLWxpc3Avc2VxLmVsCisrKyBiL2xpc3AvZW1hY3MtbGlzcC9z ZXEuZWwKQEAgLTE5Myw2ICsxOTMsOTQgQEAgc2VxLXN1YnNlcQogICAgICAgICAoY29weS1zZXF1 ZW5jZSBzZXF1ZW5jZSkpKSkKICAgICh0IChlcnJvciAiVW5zdXBwb3J0ZWQgc2VxdWVuY2U6ICVz IiBzZXF1ZW5jZSkpKSkKIAorKGNsLWRlZmdlbmVyaWMgKHNldGYgc2VxLXN1YnNlcSkgKHN0b3Jl IHNlcXVlbmNlIHN0YXJ0ICZvcHRpb25hbCBlbmQpCisgICJNb2RpZnkgdGhlIGVsZW1lbnRzIG9m IFNFUVVFTkNFIGZyb20gU1RBUlQgdG8gRU5EIHRvIGJlIHRob3NlIG9mIFNUT1JFLgorRU5EIGlz IGV4Y2x1c2l2ZS4KKworSWYgRU5EIGlzIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIHRoZSBsZW5n dGggb2YgdGhlIHNlcXVlbmNlLiAgSWYKK1NUQVJUIG9yIEVORCBpcyBuZWdhdGl2ZSwgaXQgY291 bnRzIGZyb20gdGhlIGVuZC4gIFNpZ25hbCBhbgorZXJyb3IgaWYgU1RBUlQgb3IgRU5EIGFyZSBv dXRzaWRlIG9mIHRoZSBzZXF1ZW5jZSAoaS5lIHRvbyBsYXJnZQoraWYgcG9zaXRpdmUgb3IgdG9v IHNtYWxsIGlmIG5lZ2F0aXZlKS4KKworU0VRVUVOQ0UgaXMgbmVpdGhlciBsZW5ndGhlbmVkIG5v ciBzaG9ydGVuZWQuIgorICAobGV0KiAoKGxlbiAoc2VxLWxlbmd0aCBzZXF1ZW5jZSkpCisgICAg ICAgICAoc2lnbmFsLWZuIChsYW1iZGEgKCkKKyAgICAgICAgICAgICAgICAgICAgICAoc2lnbmFs ICdhcmdzLW91dC1vZi1yYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGVu ZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IHNlcXVlbmNlIHN0YXJ0 IGVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3Qgc2VxdWVuY2Ugc3Rh cnQpKSkpKQorICAgICAgICAgKHNpZ25hbC1vci12YWwtZm4gKGxhbWJkYSAodmFsKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKCg+IHZhbCBsZW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwg c2lnbmFsLWZuKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoPCB2YWwgMCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgodmFsMiAoKyB2YWwgbGVuKSkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKDwgdmFsMiAwKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIHNpZ25hbC1mbikKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsMikpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpKSkpCisgICAg ICAgICAoaWR4IChmdW5jYWxsIHNpZ25hbC1vci12YWwtZm4gc3RhcnQpKQorICAgICAgICAgKGlk eC1lbmQgKGlmIChudWxsIGVuZCkKKyAgICAgICAgICAgICAgICAgICAgICBsZW4KKyAgICAgICAg ICAgICAgICAgICAgKGZ1bmNhbGwgc2lnbmFsLW9yLXZhbC1mbiBlbmQpKSkKKyAgICAgICAgICh0 YWcgKGdlbnN5bSkpKQorICAgIChpZiAoPiBpZHggaWR4LWVuZCkKKyAgICAgICAgKGZ1bmNhbGwg c2lnbmFsLWZuKQorICAgICAgKGNhdGNoIHRhZworICAgICAgICAoc2VxLWRvIChsYW1iZGEgKHYp CisgICAgICAgICAgICAgICAgICAoaWYgKDwgaWR4IGlkeC1lbmQpCisgICAgICAgICAgICAgICAg ICAgICAgKHNldGYgKHNlcS1lbHQgc2VxdWVuY2UgaWR4KSB2CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWR4ICgxKyBpZHgpKQorICAgICAgICAgICAgICAgICAgICAodGhyb3cgdGFnIG5p bCkpKQorICAgICAgICAgICAgICAgIHN0b3JlKSkpKQorICBzdG9yZSkKKworKGNsLWRlZm1ldGhv ZCAoc2V0ZiBzZXEtc3Vic2VxKSAoc3RvcmUgKHNlcXVlbmNlIGxpc3QpIHN0YXJ0ICZvcHRpb25h bCBlbmQpCisgICJNb2RpZnkgdGhlIGVsZW1lbnRzIG9mIFNFUVVFTkNFIGZyb20gU1RBUlQgdG8g RU5EIHRvIGJlIHRob3NlIG9mIFNUT1JFLgorRU5EIGlzIGV4Y2x1c2l2ZS4KKworSWYgRU5EIGlz IG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIHRoZSBsZW5ndGggb2YgdGhlIHNlcXVlbmNlLiAgSWYK K1NUQVJUIG9yIEVORCBpcyBuZWdhdGl2ZSwgaXQgY291bnRzIGZyb20gdGhlIGVuZC4gIFNpZ25h bCBhbgorZXJyb3IgaWYgU1RBUlQgb3IgRU5EIGFyZSBvdXRzaWRlIG9mIHRoZSBzZXF1ZW5jZSAo aS5lIHRvbyBsYXJnZQoraWYgcG9zaXRpdmUgb3IgdG9vIHNtYWxsIGlmIG5lZ2F0aXZlKS4KKwor U0VRVUVOQ0UgaXMgbmVpdGhlciBsZW5ndGhlbmVkIG5vciBzaG9ydGVuZWQuIgorICAobGV0KiAo KGxlbiAoc2VxLWxlbmd0aCBzZXF1ZW5jZSkpCisgICAgICAgICAoc2lnbmFsLWZuIChsYW1iZGEg KCkKKyAgICAgICAgICAgICAgICAgICAgICAoc2lnbmFsICdhcmdzLW91dC1vZi1yYW5nZQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGVuZAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaXN0IHNlcXVlbmNlIHN0YXJ0IGVuZCkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpc3Qgc2VxdWVuY2Ugc3RhcnQpKSkpKQorICAgICAgICAgKHNpZ25h bC1vci12YWwtZm4gKGxhbWJkYSAodmFsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Y29uZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCg+IHZhbCBsZW4pCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgc2lnbmFsLWZuKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgoPCB2YWwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGV0ICgodmFsMiAoKyB2YWwgbGVuKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoaWYgKDwgdmFsMiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChmdW5jYWxsIHNpZ25hbC1mbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFsMikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2YWwpKSkpCisgICAgICAgICAoaWR4IChmdW5jYWxsIHNpZ25h bC1vci12YWwtZm4gc3RhcnQpKQorICAgICAgICAgKGlkeC1lbmQgKGlmIChudWxsIGVuZCkKKyAg ICAgICAgICAgICAgICAgICAgICBsZW4KKyAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgc2ln bmFsLW9yLXZhbC1mbiBlbmQpKSkKKyAgICAgICAgICh0YWcgKGdlbnN5bSkpKQorICAgIChpZiAo PiBpZHggaWR4LWVuZCkKKyAgICAgICAgKGZ1bmNhbGwgc2lnbmFsLWZuKQorICAgICAgKGNhdGNo IHRhZworICAgICAgICAoc2VxLWRvIChsZXQgKChyZXBsYWNlZCAobnRoY2RyIGlkeCBzZXF1ZW5j ZSkpKQorICAgICAgICAgICAgICAgICAgKGxhbWJkYSAodikKKyAgICAgICAgICAgICAgICAgICAg KGlmICg8IGlkeCBpZHgtZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgKHNldGYgKGNhciBy ZXBsYWNlZCkgdgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQgKGNkciBy ZXBsYWNlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeCAoMSsgaWR4KSkKKyAg ICAgICAgICAgICAgICAgICAgICAodGhyb3cgdGFnIG5pbCkpKSkKKyAgICAgICAgICAgICAgICBz dG9yZSkpKSkKKyAgc3RvcmUpCisKIAwKIChjbC1kZWZnZW5lcmljIHNlcS1tYXAgKGZ1bmN0aW9u IHNlcXVlbmNlKQogICAiUmV0dXJuIHRoZSByZXN1bHQgb2YgYXBwbHlpbmcgRlVOQ1RJT04gdG8g ZWFjaCBlbGVtZW50IG9mIFNFUVVFTkNFLiIKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lbWFjcy1s aXNwL3NlcS10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL3NlcS10ZXN0cy5lbAppbmRl eCBjMDZjZWIwMGJkYi4uZDNlNDZjMzJmOTkgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9lbWFjcy1s aXNwL3NlcS10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9zZXEtdGVzdHMuZWwK QEAgLTMxMiw2ICszMTIsMTU1IEBAIHRlc3Qtc2VxLXN1YnNlcQogICAgICAgICAgICAgICAgICAg KDpzdWNjZXNzCiAgICAgICAgICAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKHNlcS1zdWJzZXEg bGlzdCBzdGFydCBlbmQpIHJlcykpKSkpKSkpKSkpKQogCisoY2wtZGVmbWFjcm8gdGVzdC1zZXRm LXNlcS1zdWJzZXEtY29tYmluYXRpb25zCisgICAgKCZrZXkgaW5pdC12YWxzIHN1Yi12YWxzIHJl c3VsdCByYW5nZSBlcnJvcikKKyAgIk1ha2UgYSB0ZXN0IGZvciBlYWNoIGNvbWJpbmF0aW9uIG9m IHNlcXVlbmNlIHR5cGUgZm9yIGBzZXEtc3Vic2VxJyB1c2luZyBgc2V0ZicuCisKKy0gSU5JVC1W QUxTIGlzIGEgbGlzdCBob2xkaW5nIHRoZSBpbml0aWFsIGVsZW1lbnRzLgorLSBSRVNVTFQgaXMg d2hhdCB0aGUgZmluYWwgdmFsdWUgc2hvdWxkIGJlIGFmdGVyIHN1YnN0aXR1dGlvbi4KKy0gRVJS T1IgaXMgd2hldGhlciB0aGUgZm9ybSBzaG91bGQgc2lnbmFsIGBhcmdzLW91dC1vZi1yYW5nZScu CistIFNVQi1WQUxTIGlzIGEgbGlzdCBob2xkaW5nIHRoZSBlbGVtZW50cyB0byBiZSBzdWJzdGl0 dXRlZCBpbi4KKy0gUkFOR0UgaXMgYSBsaXN0IG9mIHRoZSBgc3RhcnQnIGFuZCBgZW5kJyBhcmd1 bWVudHMgb2YgYHNlcS1zdWJzZXEnLiIKKyAgKGxldCAoKHRlc3RzKSkKKyAgICAoZG9saXN0ICh0 eXBlMSAnKGxpc3QgdmVjdG9yIHN0cmluZykpCisgICAgICAoZG9saXN0ICh0eXBlMiAnKGxpc3Qg dmVjdG9yIHN0cmluZykpCisgICAgICAgIChwdXNoICAoaWYgZXJyb3IKKyAgICAgICAgICAgICAg ICAgICBgKHNob3VsZC1lcnJvciAobGV0ICgoc2VxICgsdHlwZTEgLEBpbml0LXZhbHMpKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRmIChzZXEtc3Vic2VxIHNlcSAs QHJhbmdlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCx0eXBl MiAsQHN1Yi12YWxzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dHlwZSAocXVvdGUgYXJncy1vdXQt b2YtcmFuZ2UpKQorICAgICAgICAgICAgICAgICBgKHNob3VsZCAoZXF1YWwgKCx0eXBlMSAsQHJl c3VsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChzZXEgKCx0eXBl MSAsQGluaXQtdmFscykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0 ZiAoc2VxLXN1YnNlcSBzZXEgLEByYW5nZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKCx0eXBlMiAsQHN1Yi12YWxzKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VxKSkpKQorICAgICAgICAgICAgICAgdGVzdHMpKSkKKyAgICBgKHByb2du ICxAdGVzdHMpKSkKKworKGVydC1kZWZ0ZXN0IHRlc3Qtc2V0Zi1zZXEtc3Vic2VxICgpCisgICJU ZXN0IHVzaW5nIGBzZXEtc3Vic2VxJyB3aXRoIGBzZXRmJy4KKworQW55IGNvbWJpbmF0aW9uIG9m IHNlcXVlbmNlcyBzaG91bGQgd29yay4KKworQW4gZXJyb3Igc2hvdWxkIGJlIHNpZ25hbGxlZCBp ZiB0aGUgaW5jbHVzaXZlIHN0YXJ0aW5nIGluZGV4IG9yCit0aGUgZXhjbHVzaXZlIGVuZGluZyBp bmRleCBpcyBvdXQgb2YgdGhlIHJhbmdlIGZyb20gMCB0aHJvdWdoIHRoZQorbGVuZ3RoIG9mIHRo ZSBzZXF1ZW5jZSwgb3IgaWYgdGhlIHN0YXJ0aW5nIGluZGV4IGlzIGdyZWF0ZXIgdGhhbgordGhl IGVuZGluZyBpbmRleC4gIElmIHRoZSBzdGFydGluZyBpbmRleCBpcyBlcXVhbCB0byB0aGUgZW5k aW5nCitpbmRleCwgdGhlbiBub3RoaW5nIGlzIGNoYW5nZWQuICBJZiB0aGUgc3RhcnRpbmcgaW5k ZXggaXMgZXF1YWwKK3RvIHRoZSBsZW5ndGggb2YgdGhlIHNlcXVlbmNlLCB0aGVuIG5vdGhpbmcg aXMgY2hhbmdlZC4gIEl0CitzaG91bGQgc2lnbmFsIGFuIGVycm9yIGluIGFsbCB0aGUgY2FzZXMg dGhhdCBgc2VxLXN1YnNlcScgc2lnbmFscworYW4gZXJyb3IuIgorICAodGVzdC1zZXRmLXNlcS1z dWJzZXEtY29tYmluYXRpb25zCisgICA6aW5pdC12YWxzICgwIDEgMikKKyAgIDpzdWItdmFscyAo MTAgMTEgMTIpCisgICA6cmFuZ2UgKDApCisgICA6cmVzdWx0ICgxMCAxMSAxMikpCisKKyAgKHRl c3Qtc2V0Zi1zZXEtc3Vic2VxLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAoMCAxKQorICAg OnN1Yi12YWxzICgxMCAxMSAxMikKKyAgIDpyYW5nZSAoMCkKKyAgIDpyZXN1bHQgKDEwIDExKSkK KworICAodGVzdC1zZXRmLXNlcS1zdWJzZXEtY29tYmluYXRpb25zCisgICA6aW5pdC12YWxzICgw IDEgMikKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIpCisgICA6cmFuZ2UgKDEpCisgICA6cmVzdWx0 ICgwIDEwIDExKSkKKworICAodGVzdC1zZXRmLXNlcS1zdWJzZXEtY29tYmluYXRpb25zCisgICA6 aW5pdC12YWxzICgwIDEgMikKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIpCisgICA6cmFuZ2UgKDEg MykKKyAgIDpyZXN1bHQgKDAgMTAgMTEpKQorCisgICh0ZXN0LXNldGYtc2VxLXN1YnNlcS1jb21i aW5hdGlvbnMKKyAgIDppbml0LXZhbHMgKDAgMSAyKQorICAgOnN1Yi12YWxzICgxMCAxMSAxMikK KyAgIDpyYW5nZSAoMyAxKQorICAgOmVycm9yIHQpCisKKyAgKHRlc3Qtc2V0Zi1zZXEtc3Vic2Vx LWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAoMCAxIDIpCisgICA6c3ViLXZhbHMgKDEwIDEx IDEyKQorICAgOnJhbmdlICgxIDEwMCkKKyAgIDplcnJvciB0KQorCisgICh0ZXN0LXNldGYtc2Vx LXN1YnNlcS1jb21iaW5hdGlvbnMKKyAgIDppbml0LXZhbHMgKDAgMSAyKQorICAgOnN1Yi12YWxz ICgxMCAxMSAxMikKKyAgIDpyYW5nZSAoNykKKyAgIDplcnJvciB0KQorCisgICh0ZXN0LXNldGYt c2VxLXN1YnNlcS1jb21iaW5hdGlvbnMKKyAgIDppbml0LXZhbHMgKDAgMSAyIDMgNCkKKyAgIDpz dWItdmFscyAoMTIgMTMgMTQgMTUpCisgICA6cmFuZ2UgKDIgMykKKyAgIDpyZXN1bHQgKDAgMSAx MiAzIDQpKQorCisgICh0ZXN0LXNldGYtc2VxLXN1YnNlcS1jb21iaW5hdGlvbnMKKyAgIDppbml0 LXZhbHMgKDAgMSAyIDMgNCkKKyAgIDpzdWItdmFscyAoMTIgMTMgMTQgMTUpCisgICA6cmFuZ2Ug KDIgMikKKyAgIDpyZXN1bHQgKDAgMSAyIDMgNCkpCisKKyAgKHRlc3Qtc2V0Zi1zZXEtc3Vic2Vx LWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAoMCAxIDIgMyA0KQorICAgOnN1Yi12YWxzICgx MiAxMyAxNCAxNSkKKyAgIDpyYW5nZSAoNSkKKyAgIDpyZXN1bHQgKDAgMSAyIDMgNCkpCisKKyAg KHRlc3Qtc2V0Zi1zZXEtc3Vic2VxLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAoMCAxIDIg MyA0KQorICAgOnN1Yi12YWxzICgxMiAxMyAxNCAxNSkKKyAgIDpyYW5nZSAoNikKKyAgIDplcnJv ciB0KQorCisgICh0ZXN0LXNldGYtc2VxLXN1YnNlcS1jb21iaW5hdGlvbnMKKyAgIDppbml0LXZh bHMgKDAgMSAyIDMgNCkKKyAgIDpzdWItdmFscyAoMTIgMTMgMTQgMTUpCisgICA6cmFuZ2UgKDUg NikKKyAgIDplcnJvciB0KQorCisgICh0ZXN0LXNldGYtc2VxLXN1YnNlcS1jb21iaW5hdGlvbnMK KyAgIDppbml0LXZhbHMgKDAgMSAyIDMgNCA1IDYgNyA4IDkpCisgICA6c3ViLXZhbHMgKDEwIDEx IDEyIDEzIDE0KQorICAgOnJhbmdlICgtMikKKyAgIDpyZXN1bHQgKDAgMSAyIDMgNCA1IDYgNyAx MCAxMSkpCisKKyAgKHRlc3Qtc2V0Zi1zZXEtc3Vic2VxLWNvbWJpbmF0aW9ucworICAgOmluaXQt dmFscyAoMCAxIDIgMyA0IDUgNiA3IDggOSkKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIgMTMgMTQp CisgICA6cmFuZ2UgKC02IC0zKQorICAgOnJlc3VsdCAoMCAxIDIgMyAxMCAxMSAxMiA3IDggOSkp CisKKyAgKHRlc3Qtc2V0Zi1zZXEtc3Vic2VxLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAo MCAxIDIgMyA0IDUgNiA3IDggOSkKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIgMTMgMTQpCisgICA6 cmFuZ2UgKC02IC0xMCkKKyAgIDplcnJvciB0KQorCisgIDs7IFRoaXMgcmFuZ2UgbWlnaHQgbWFr ZSBzZW5zZSwgYnV0IHNpbmNlIGl0IHdvdWxkIHNpZ25hbCBhbiBlcnJvcgorICA7OyBpbiBgc2Vx LXN1YnNlcScsIHdlIGFsc28gc2lnbmFsIGFuIGVycm9yIGluIHRoZSBgc2V0ZicgZmVhdHVyZS4K KyAgKHRlc3Qtc2V0Zi1zZXEtc3Vic2VxLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAoMCAx IDIgMyA0IDUgNiA3IDggOSkKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIgMTMgMTQpCisgICA6cmFu Z2UgKC02IDApCisgICA6ZXJyb3IgdCkKKworICAodGVzdC1zZXRmLXNlcS1zdWJzZXEtY29tYmlu YXRpb25zCisgICA6aW5pdC12YWxzICgwIDEgMiAzIDQgNSA2IDcgOCA5KQorICAgOnN1Yi12YWxz ICgxMCAxMSAxMiAxMyAxNCkKKyAgIDpyYW5nZSAoMTAwKQorICAgOmVycm9yIHQpCisKKyAgKHRl c3Qtc2V0Zi1zZXEtc3Vic2VxLWNvbWJpbmF0aW9ucworICAgOmluaXQtdmFscyAoMCAxIDIgMyA0 IDUgNiA3IDggOSkKKyAgIDpzdWItdmFscyAoMTAgMTEgMTIgMTMgMTQpCisgICA6cmFuZ2UgKC0x MDApCisgICA6ZXJyb3IgdCkpCisKIChlcnQtZGVmdGVzdCB0ZXN0LXNlcS1jb25jYXRlbmF0ZSAo KQogICAod2l0aC10ZXN0LXNlcXVlbmNlcyAoc2VxICcoMiA0IDYpKQogICAgIChzaG91bGQgKGVx dWFsIChzZXEtY29uY2F0ZW5hdGUgJ3N0cmluZyBzZXEgWzhdKSAoc3RyaW5nIDIgNCA2IDgpKSkK LS0gCjIuMzQuMQoK --b1_GIc4IVwxZm5sYzB3lhXoalCoZgTokRfnuyovSfYuFc--