From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: fabrice nicol Newsgroups: gmane.emacs.bugs Subject: bug#47408: Etags support for Mercury [v0.5] Date: Thu, 10 Jun 2021 18:52:49 +0200 Message-ID: References: <70503251-f8ea-9006-b7e7-b13b93bb71de@gmail.com> <838s4gxurw.fsf@gnu.org> <53162dfb-0715-3077-78d1-3a8340943f2f@gmail.com> <838s3y6kaq.fsf@gnu.org> <83k0n7iarj.fsf@gnu.org> <65f059b1-149d-146d-3b8d-36db60ff1044@gmail.com> <87o8cin9fb.fsf@tucano.isti.cnr.it> <39f683d3-65d7-a7d9-18b1-cf6dfa7d254a@gmail.com> <83fsxthnye.fsf@gnu.org> <87lf7kmxuk.fsf@tucano.isti.cnr.it> <83bl8gfuhy.fsf@gnu.org> <87k0n4msku.fsf@tucano.isti.cnr.it> <834ke5ddnb.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------211BF609FFFB707993F452CF" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="32901"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 Cc: 47408@debbugs.gnu.org To: Eli Zaretskii , Francesco =?UTF-8?Q?Potort=C3=AC?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Jun 10 18:55:26 2021 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 1lrNxl-0008Mt-TT for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 10 Jun 2021 18:55:26 +0200 Original-Received: from localhost ([::1]:41618 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lrNxk-00012d-VL for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 10 Jun 2021 12:55:24 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45516) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lrNuU-0005cg-Gg for bug-gnu-emacs@gnu.org; Thu, 10 Jun 2021 12:52:05 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54353) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lrNuU-0005a6-9H for bug-gnu-emacs@gnu.org; Thu, 10 Jun 2021 12:52:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lrNuU-0005lP-62 for bug-gnu-emacs@gnu.org; Thu, 10 Jun 2021 12:52:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: fabrice nicol Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 10 Jun 2021 16:52:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47408 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 47408-submit@debbugs.gnu.org id=B47408.162334391722143 (code B ref 47408); Thu, 10 Jun 2021 16:52:02 +0000 Original-Received: (at 47408) by debbugs.gnu.org; 10 Jun 2021 16:51:57 +0000 Original-Received: from localhost ([127.0.0.1]:37666 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lrNuP-0005l5-0e for submit@debbugs.gnu.org; Thu, 10 Jun 2021 12:51:57 -0400 Original-Received: from mail-wr1-f45.google.com ([209.85.221.45]:42753) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lrNuL-0005kq-8y for 47408@debbugs.gnu.org; Thu, 10 Jun 2021 12:51:55 -0400 Original-Received: by mail-wr1-f45.google.com with SMTP id c5so3081457wrq.9 for <47408@debbugs.gnu.org>; Thu, 10 Jun 2021 09:51:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language; bh=+nDjsDlQFBcEVca+p9lKqI/SKDQJuwAenNZUs6WOPwI=; b=k4QSrhP1Pkg5W1WlFxpPsUi2Ycy/mvtrBuoES9lxOZyI+e7AbfRd6XEoutDkRHHGM8 3sm3/b7WjpoNih1uUtrwfTW1PAAxYpjLFpTxTBikjkPYHdQR/0E+p9vJFxBSNaMyUwQY AQmpzjy5CLDgp6Bqkmui1mMDqZaGpZ5IreseF7ddADVWzsB5dzowaEdOumDAsU23w23R 7pg2PztrQ8oHJcZDsZ94JtGbQso5wGxTyY1GkngZToJPS8C/7uE3EZBF6Cq17GlBqYsF 6kwREk7lpQc6+s2CWOLaqoxHhSh0cDLEd0by8XxKxUehRn/VHcaknVP3CfV26w3VDD6W Sleg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=+nDjsDlQFBcEVca+p9lKqI/SKDQJuwAenNZUs6WOPwI=; b=VhvYCZJlTHSVDZNxUJyLn+Dalu48TP6f9/hI/Ki7pQeCvp/MbAvoYTolXVmFp3gFYB n2asXMR+IO6ODAFYnt2vb7uyWIT6avirQL+4OEEbvq7WyPLjzZSLacUMLe8yw0YwAQNI M827zjGKhws2JId4mupOaVm28Iw0bvmWkuZr5Ty7y2Q+yuzZDonj7If38HTcD+aIBGV4 805wRLxhlQyTnydSGwLege2jZeV0T12MgHfVa0ZtDz3ShaIH/s92hPIkpz9QG7J7ag79 jLnbW/2qe13LbIhslO19opB648vtZ3E/GuD1RFerGMnTOKH98WXsTvvazSgye27JeqLa Glbw== X-Gm-Message-State: AOAM533IMFspUzhj14r1GB7BUCAMu/btdslZfG5dG7C7Ndl4kY7ICYGo JW3s2YwdPusVypvdQaxHQyKLNy1d4xw= X-Google-Smtp-Source: ABdhPJwljFCK0ICKsGlutgGxU0eVNhdQtQdwMnXrwJne9MXprAH3bgs5vLhMBnLK3TqMpkBzm4Rd5w== X-Received: by 2002:a05:6000:186c:: with SMTP id d12mr6533226wri.123.1623343907181; Thu, 10 Jun 2021 09:51:47 -0700 (PDT) Original-Received: from ?IPv6:2a01:cb1d:88b9:5c00:7b73:7901:965e:8523? ([2a01:cb1d:88b9:5c00:7b73:7901:965e:8523]) by smtp.gmail.com with ESMTPSA id q19sm1973742wmf.22.2021.06.10.09.51.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 10 Jun 2021 09:51:45 -0700 (PDT) In-Reply-To: <834ke5ddnb.fsf@gnu.org> Content-Language: en-US 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" Xref: news.gmane.io gmane.emacs.bugs:208331 Archived-At: This is a multi-part message in MIME format. --------------211BF609FFFB707993F452CF Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Eli, your latest fix for Mercury 'etags' support has introduced a regression for existentially quantified predicates. These predicates have the following (somewhat simplified) syntax (in extended regexp  form, \s for white space): :-[:blank:]+some[:blank:]*\[[:blank:]*T(,[:blank:]*[:upper:]{1})*[:blank:]*\][:blank:]+pred[:blank:]+([:lower:]+([:alnum:]|[:punct:])*)+[:blank:]*\([^()]+\)([:blank:]|[:lower:])*\. Example: :- some [T] pred unravel_univ(univ::in, T::out) is det. Your fix incorrectly outputs such quantified predicates. For example on tagging univ.m (attached), your commit version yields: :- some [T] pred unravel_univ(^?[T] pred unravel_univ^A141,4333 whilst my original code yields the correct tag: :- some [T] pred unravel_univ(^?141,4333 In other words, 'pred unravel_univ' is wrongly repeated in your latest commit. The issue seems to be located at the patch line below: + char *name = skip_non_spaces (s + len0); Pending a more accurate 'fix for the fix', it would probably be wiser to revert to original code, as it - at least - gives a correct output for 'etags' invocation. Existentially quantified predicates are not uncommon in Mercury. Fabrice >> Date: Tue, 08 Jun 2021 14:47:13 +0200 >> Cc: fabrnicol@gmail.com, >> 47408@debbugs.gnu.org >> >>>> I just looked at the code. Unless I am grossly mistaken, nothing is >>>> needed to get ctags output. You just call the program as ctags and >>>> that's it. So there is no reason to prevent ctags help from mentioning >>>> Mercurial. >>> Then how come, when I run the etags test suite (test/manual/etags/), I >>> get no change in the produced CTAGS file wrt CTAGS.good? That .good >>> file is from before we added the Mercury source to the suite. What am >>> I missing? >> Sorry, don't know :( Looked again, but then I'd need to debug it to know... > I found the reason: make_tag was called incorrectly from mercury_pr. > > This should be fixed now. --------------211BF609FFFB707993F452CF Content-Type: application/vnd.wolfram.mathematica.package; name="univ.m" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="univ.m" JS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSUKJSB2aW06IGZ0PW1lcmN1cnkgdHM9NCBzdz00IGV0 CiUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0lCiUgQ29weXJpZ2h0IChDKSAxOTk0LTIwMTAgVGhl IFVuaXZlcnNpdHkgb2YgTWVsYm91cm5lLgolIENvcHlyaWdodCAoQykgMjAxNC0yMDE4IFRo ZSBNZXJjdXJ5IHRlYW0uCiUgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0 ZXJtcyBzcGVjaWZpZWQgaW4gQ09QWUlORy5MSUIuCiUtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0l CiUKJSBGaWxlOiB1bml2Lm0uCiUgTWFpbiBhdXRob3I6IGZqaC4KJSBTdGFiaWxpdHk6IG1l ZGl1bS4KJQolIFRoZSB1bml2ZXJzYWwgdHlwZSBgdW5pdicKJQolLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tJQolLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJQoKOi0gbW9kdWxlIHVuaXYuCjotIGlu dGVyZmFjZS4KCjotIGltcG9ydF9tb2R1bGUgdHlwZV9kZXNjLgoKJS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSUKCiAgICAlIEFuIG9iamVjdCBvZiB0eXBlIGB1bml2JyBjYW4gaG9sZCB0aGUg dHlwZSBhbmQgdmFsdWUgb2YgYW4gb2JqZWN0IG9mIGFueQogICAgJSBvdGhlciB0eXBlLgog ICAgJQo6LSB0eXBlIHVuaXYuCgogICAgJSB0eXBlX3RvX3VuaXYoT2JqZWN0LCBVbml2KS4K ICAgICUKICAgICUgVHJ1ZSBpZmYgdGhlIHR5cGUgc3RvcmVkIGluIGBVbml2JyBpcyB0aGUg c2FtZSBhcyB0aGUgdHlwZSBvZiBgT2JqZWN0JywKICAgICUgYW5kIHRoZSB2YWx1ZSBzdG9y ZWQgaW4gYFVuaXYnIGlzIGVxdWFsIHRvIHRoZSB2YWx1ZSBvZiBgT2JqZWN0Jy4KICAgICUK ICAgICUgT3BlcmF0aW9uYWxseSwKICAgICUKICAgICUgLSB0aGUgZm9yd2FyZCBtb2RlcyAo dGhlIGRpLHVvIG1vZGUgYW5kIHRoZSBpbixvdXQgbW9kZSkKICAgICUgICBjb252ZXJ0IGBP YmplY3QnIHRvIHR5cGUgdW5pdjsKICAgICUKICAgICUgLSB0aGUgcmV2ZXJzZSBtb2RlIChv dXQsaW4pIGNoZWNrcyB3aGV0aGVyIHRoZSB2YWx1ZSBzdG9yZWQgaW4gYFVuaXYnCiAgICAl ICAgaXMgb2YgdHlwZSBULiBJZiB0aGlzIHR5cGUgdGVzdCBzdWNjZWVkcywgaXQgcmV0dXJu cyB0aGF0IHZhbHVlCiAgICAlICAgYXMgYE9iamVjdCcsIGJ1dCBpZiB0aGUgdGVzdCBmYWls cywgaXQgZmFpbHMgYXMgd2VsbC4KICAgICUKOi0gcHJlZCB0eXBlX3RvX3VuaXYoVCwgdW5p dikuCjotIG1vZGUgdHlwZV90b191bml2KGRpLCB1bykgaXMgZGV0Lgo6LSBtb2RlIHR5cGVf dG9fdW5pdihpbiwgb3V0KSBpcyBkZXQuCjotIG1vZGUgdHlwZV90b191bml2KG91dCwgaW4p IGlzIHNlbWlkZXQuCgogICAgJSB1bml2X3RvX3R5cGUoVW5pdiwgT2JqZWN0KSA6LSB0eXBl X3RvX3VuaXYoT2JqZWN0LCBVbml2KS4KICAgICUKOi0gcHJlZCB1bml2X3RvX3R5cGUodW5p diwgVCkuCjotIG1vZGUgdW5pdl90b190eXBlKGluLCBvdXQpIGlzIHNlbWlkZXQuCjotIG1v ZGUgdW5pdl90b190eXBlKG91dCwgaW4pIGlzIGRldC4KOi0gbW9kZSB1bml2X3RvX3R5cGUo dW8sIGRpKSBpcyBkZXQuCgogICAgJSBUaGUgZnVuY3Rpb24gdW5pdi8xIHByb3ZpZGVzIHRo ZSBzYW1lIGZ1bmN0aW9uYWxpdHkgYXMgdHlwZV90b191bml2LzIuCiAgICAlIHVuaXYoT2Jq ZWN0KSA9IFVuaXYgOi0gdHlwZV90b191bml2KE9iamVjdCwgVW5pdikuCiAgICAlCjotIGZ1 bmMgdW5pdihUKSA9IHVuaXYuCjotIG1vZGUgdW5pdihpbikgPSBvdXQgaXMgZGV0Lgo6LSBt b2RlIHVuaXYoZGkpID0gdW8gaXMgZGV0Lgo6LSBtb2RlIHVuaXYob3V0KSA9IGluIGlzIHNl bWlkZXQuCgogICAgJSBkZXRfdW5pdl90b190eXBlKFVuaXYsIE9iamVjdCkuCiAgICAlCiAg ICAlIFRoZSBzYW1lIGFzIHRoZSBmb3J3YXJkcyBtb2RlIG9mIHVuaXZfdG9fdHlwZSwgYnV0 IHRocm93cyBhbiBleGNlcHRpb24KICAgICUgaWYgdW5pdl90b190eXBlIGZhaWxzLgogICAg JQo6LSBwcmVkIGRldF91bml2X3RvX3R5cGUodW5pdjo6aW4sIFQ6Om91dCkgaXMgZGV0LgoK ICAgICUgdW5pdl90eXBlKFVuaXYpLgogICAgJQogICAgJSBSZXR1cm5zIHRoZSB0eXBlX2Rl c2MgZm9yIHRoZSB0eXBlIHN0b3JlZCBpbiBgVW5pdicuCiAgICAlCjotIGZ1bmMgdW5pdl90 eXBlKHVuaXYpID0gdHlwZV9kZXNjLgoKICAgICUgdW5pdl92YWx1ZShVbml2KS4KICAgICUK ICAgICUgUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIG9iamVjdCBzdG9yZWQgaW4gVW5pdi4K ICAgICUKOi0gc29tZSBbVF0gZnVuYyB1bml2X3ZhbHVlKHVuaXYpID0gVC4KCiUtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0lCiUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0lCgo6LSBpbXBsZW1lbnRh dGlvbi4KCjotIGltcG9ydF9tb2R1bGUgcmVxdWlyZS4KOi0gaW1wb3J0X21vZHVsZSBsaXN0 Lgo6LSBpbXBvcnRfbW9kdWxlIHN0cmluZy4KCiUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0lCgog ICAgJSBXZSBjYWxsIHRoZSBjb25zdHJ1Y3RvciBmb3IgdW5pdnMgYHVuaXZfY29ucycgdG8g YXZvaWQgYW1iaWd1aXR5CiAgICAlIHdpdGggdGhlIHVuaXYvMSBmdW5jdGlvbiB3aGljaCBy ZXR1cm5zIGEgdW5pdi4KICAgICUKOi0gdHlwZSB1bml2CiAgICAtLS0+ICAgIHNvbWUgW1Rd IHVuaXZfY29ucyhUKS4KCjotIHByYWdtYSBwcm9taXNlX2VxdWl2YWxlbnRfY2xhdXNlcyh0 eXBlX3RvX3VuaXYvMikuCgp0eXBlX3RvX3VuaXYoVDo6ZGksIFVuaXY6OnVvKSA6LQogICAg VW5pdjAgPSAnbmV3IHVuaXZfY29ucycoVCksCiAgICB1bnNhZmVfcHJvbWlzZV91bmlxdWUo VW5pdjAsIFVuaXYpLgp0eXBlX3RvX3VuaXYoVDo6aW4sIFVuaXY6Om91dCkgOi0KICAgIFVu aXYgPSAnbmV3IHVuaXZfY29ucycoVCkuCnR5cGVfdG9fdW5pdihUOjpvdXQsIFVuaXY6Omlu KSA6LQogICAgVW5pdiA9IHVuaXZfY29ucyhUMCksCiAgICBwcml2YXRlX2J1aWx0aW4udHlw ZWRfdW5pZnkoVDAsIFQpLgoKdW5pdl90b190eXBlKFVuaXYsIFgpIDotCiAgICB0eXBlX3Rv X3VuaXYoWCwgVW5pdikuCgp1bml2KFgpID0gVW5pdiA6LQogICAgdHlwZV90b191bml2KFgs IFVuaXYpLgoKZGV0X3VuaXZfdG9fdHlwZShVbml2LCBYKSA6LQogICAgKCBpZiB0eXBlX3Rv X3VuaXYoWDAsIFVuaXYpIHRoZW4KICAgICAgICBYID0gWDAKICAgIGVsc2UKICAgICAgICBV bml2VHlwZU5hbWUgPSB0eXBlX25hbWUodW5pdl90eXBlKFVuaXYpKSwKICAgICAgICBPYmpl Y3RUeXBlTmFtZSA9IHR5cGVfbmFtZSh0eXBlX29mKFgpKSwKICAgICAgICBzdHJpbmcuYXBw ZW5kX2xpc3QoWyJkZXRfdW5pdl90b190eXBlOiBjb252ZXJzaW9uIGZhaWxlZFxuIiwKICAg ICAgICAgICAgIlx0VW5pdiBUeXBlOiAiLCBVbml2VHlwZU5hbWUsICJcbiIsCiAgICAgICAg ICAgICJcdE9iamVjdCBUeXBlOiAiLCBPYmplY3RUeXBlTmFtZV0sIEVycm9yU3RyaW5nKSwK ICAgICAgICBlcnJvcihFcnJvclN0cmluZykKICAgICkuCgp1bml2X3R5cGUoVW5pdikgPSB0 eXBlX29mKHVuaXZfdmFsdWUoVW5pdikpLgoKdW5pdl92YWx1ZSh1bml2X2NvbnMoWCkpID0g WC4KCjotIHByZWQgY29uc3RydWN0X3VuaXYoVDo6aW4sIHVuaXY6Om91dCkgaXMgZGV0Lgo6 LSBwcmFnbWEgZm9yZWlnbl9leHBvcnQoIkMiLCBjb25zdHJ1Y3RfdW5pdihpbiwgb3V0KSwg Ik1MX2NvbnN0cnVjdF91bml2IikuCjotIHByYWdtYSBmb3JlaWduX2V4cG9ydCgiQyMiLCBj b25zdHJ1Y3RfdW5pdihpbiwgb3V0KSwgIk1MX2NvbnN0cnVjdF91bml2IikuCjotIHByYWdt YSBmb3JlaWduX2V4cG9ydCgiSmF2YSIsIGNvbnN0cnVjdF91bml2KGluLCBvdXQpLCAiTUxf Y29uc3RydWN0X3VuaXYiKS4KCmNvbnN0cnVjdF91bml2KFgsIFVuaXYpIDotCiAgICBVbml2 ID0gdW5pdihYKS4KCjotIHNvbWUgW1RdIHByZWQgdW5yYXZlbF91bml2KHVuaXY6OmluLCBU OjpvdXQpIGlzIGRldC4KOi0gcHJhZ21hIGZvcmVpZ25fZXhwb3J0KCJDIiwgdW5yYXZlbF91 bml2KGluLCBvdXQpLCAiTUxfdW5yYXZlbF91bml2IikuCjotIHByYWdtYSBmb3JlaWduX2V4 cG9ydCgiQyMiLCB1bnJhdmVsX3VuaXYoaW4sIG91dCksICJNTF91bnJhdmVsX3VuaXYiKS4K Oi0gcHJhZ21hIGZvcmVpZ25fZXhwb3J0KCJKYXZhIiwgdW5yYXZlbF91bml2KGluLCBvdXQp LCAiTUxfdW5yYXZlbF91bml2IikuCgp1bnJhdmVsX3VuaXYoVW5pdiwgWCkgOi0KICAgIHVu aXZfdmFsdWUoVW5pdikgPSBYLgoKJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSUKOi0gZW5kX21v ZHVsZSB1bml2LgolLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJQo= --------------211BF609FFFB707993F452CF--