From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ciao.gmane.io (ciao.gmane.io [116.202.254.214]) by sourceware.org (Postfix) with ESMTPS id 70DF23858D28 for ; Sun, 31 Jul 2022 19:01:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 70DF23858D28 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1oIEC4-00019W-3a for fortran@gcc.gnu.org; Sun, 31 Jul 2022 21:01:40 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: fortran@gcc.gnu.org From: Harald Anlauf Subject: Re: [PATCH, v4] Fortran: detect blanks within literal constants in free-form mode [PR92805] Date: Sun, 31 Jul 2022 21:01:32 +0200 Message-ID: <2e756dfa-0e93-b47c-2b63-ee22188cc76b@gmx.de> References: <46cc765d-469e-d6e8-23c5-dc470028d881@orange.fr> <1073012a-e384-77e6-6cc8-7069dabab862@gmx.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------tjL298aPRvMLnVISxLQxxg85" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US In-Reply-To: Cc: gcc-patches@gcc.gnu.org X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00, BODY_8BITS, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, NICE_REPLY_A, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 Jul 2022 19:01:43 -0000 Message-ID: <20220731190132.KMNWB5VXXxr7pZQfevtq3UeRTD5gq0fKoSYTLOqYJFM@z> This is a multi-part message in MIME format. --------------tjL298aPRvMLnVISxLQxxg85 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Mikael, Am 31.07.22 um 10:35 schrieb Mikael Morin: > Le 30/07/2022 à 21:40, Harald Anlauf a écrit : >> Hi Mikael, >> >> Am 30.07.22 um 10:28 schrieb Mikael Morin: >>> Meh! We killed one check for gfc_current_form but the other one is still >>> there. >>> OK, match_kind_param calls two functions that also gobble space, so >>> there is work remaining here. >>> So please make match_small_literal_constant and gfc_match_name >>> space-gobbling wrappers around space-non-gobbling inner functions and >>> call those inner functions instead in match_kind_param. >> >> well, here's the shortest solution I could come up with. >> I added a new argument to 3 functions used in parsing that >> controls the gobbling of whitespace.  We use this to handle >> whitespace for numerical literals, while the parsing of string >> literals remains as in the previous version of the patch. >> >> This version obviously ignores Thomas' request, as that would >> require to treat gfc_match_char specially... >> >> Regtested again.  OK now? > >>     PR fortran/92805 >>     * match.cc (gfc_match_small_literal_int): Make gobbling of leading >>     whitespace optional. >>     (gfc_match_name): Likewise. >>     (gfc_match_char): Likewise. >>     * match.h (gfc_match_small_literal_int): Adjust prototype. >>     (gfc_match_name): Likewise. >>     (gfc_match_char): Likewise. >>     * primary.cc (match_kind_param): Match small literal int or name >>     without gobbling whitespace. >>     (get_kind): Do not skip over blanks in free-form mode. > I think the "in free-form mode" applied to the preceding patches but can > be dropped now. >>     (match_string_constant): Likewise. > >> diff --git a/gcc/fortran/match.cc b/gcc/fortran/match.cc >> index 1aa3053e70e..c0dc0e89361 100644 >> --- a/gcc/fortran/match.cc >> +++ b/gcc/fortran/match.cc >> @@ -457,7 +457,7 @@ gfc_match_eos (void) >>     will be set to the number of digits.  */ > Please add a note about GOBBLE_WS here, like you did for gfc_match_char. >> >>  match >> -gfc_match_small_literal_int (int *value, int *cnt) >> +gfc_match_small_literal_int (int *value, int *cnt, bool gobble_ws) >>  { >>    locus old_loc; >>    char c; > (...) >> @@ -611,14 +612,15 @@ gfc_match_label (void) >>     than GFC_MAX_SYMBOL_LEN.  */ > Same here. >> >>  match >> -gfc_match_name (char *buffer) >> +gfc_match_name (char *buffer, bool gobble_ws) >>  { >>    locus old_loc; >>    int i; >>    char c; >> > (...) >> @@ -1052,16 +1054,19 @@ cleanup: >>  } >> >> >> -/* Tries to match the next non-whitespace character on the input. >> -   This subroutine does not return MATCH_ERROR.  */ >> +/* Tries to match the next non-whitespace character on the input.  This >> +   subroutine does not return MATCH_ERROR.  When gobble_ws is false, >> do not >> +   skip over leading blanks. >> +*/ > There should be no line feed before end of comment. I've adjusted the patch (see attached) and pushed it as commit r13-1905-gd325e7048c85e13f12ea79aebf9623eddc7ffcaf Thanks, Harald > OK with those changes. > thanks for your patience. > > Mikael > > --------------tjL298aPRvMLnVISxLQxxg85 Content-Type: text/x-patch; charset=UTF-8; name="pr92805-v5.diff" Content-Disposition: attachment; filename="pr92805-v5.diff" Content-Transfer-Encoding: base64 RnJvbSBkMzI1ZTcwNDhjODVlMTNmMTJlYTc5YWViZjk2MjNlZGRjN2ZmY2FmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXJhbGQgQW5sYXVmIDxhbmxhdWZAZ214LmRlPgpE YXRlOiBUaHUsIDI4IEp1bCAyMDIyIDIyOjA3OjAyICswMjAwClN1YmplY3Q6IFtQQVRDSF0g Rm9ydHJhbjogZGV0ZWN0IGJsYW5rcyB3aXRoaW4gbGl0ZXJhbCBjb25zdGFudHMgaW4gZnJl ZS1mb3JtCiBtb2RlIFtQUjkyODA1XQoKZ2NjL2ZvcnRyYW4vQ2hhbmdlTG9nOgoKCVBSIGZv cnRyYW4vOTI4MDUKCSogbWF0Y2guY2MgKGdmY19tYXRjaF9zbWFsbF9saXRlcmFsX2ludCk6 IE1ha2UgZ29iYmxpbmcgb2YgbGVhZGluZwoJd2hpdGVzcGFjZSBvcHRpb25hbC4KCShnZmNf bWF0Y2hfbmFtZSk6IExpa2V3aXNlLgoJKGdmY19tYXRjaF9jaGFyKTogTGlrZXdpc2UuCgkq IG1hdGNoLmggKGdmY19tYXRjaF9zbWFsbF9saXRlcmFsX2ludCk6IEFkanVzdCBwcm90b3R5 cGUuCgkoZ2ZjX21hdGNoX25hbWUpOiBMaWtld2lzZS4KCShnZmNfbWF0Y2hfY2hhcik6IExp a2V3aXNlLgoJKiBwcmltYXJ5LmNjIChtYXRjaF9raW5kX3BhcmFtKTogTWF0Y2ggc21hbGwg bGl0ZXJhbCBpbnQgb3IgbmFtZQoJd2l0aG91dCBnb2JibGluZyB3aGl0ZXNwYWNlLgoJKGdl dF9raW5kKTogRG8gbm90IHNraXAgb3ZlciBibGFua3MuCgkobWF0Y2hfc3RyaW5nX2NvbnN0 YW50KTogTGlrZXdpc2UuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCglQUiBmb3J0cmFu LzkyODA1CgkqIGdmb3J0cmFuLmRnL2xpdGVyYWxfY29uc3RhbnRzLmY6IE5ldyB0ZXN0LgoJ KiBnZm9ydHJhbi5kZy9saXRlcmFsX2NvbnN0YW50cy5mOTA6IE5ldyB0ZXN0LgoKQ28tYXV0 aG9yZWQtYnk6IFN0ZXZlbiBHLiBLYXJnbCA8a2FyZ2xAZ2NjLmdudS5vcmc+Ci0tLQogZ2Nj L2ZvcnRyYW4vbWF0Y2guY2MgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjQgKysrKysr KysrKysrLS0tLS0tLQogZ2NjL2ZvcnRyYW4vbWF0Y2guaCAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDYgKystLS0KIGdjYy9mb3J0cmFuL3ByaW1hcnkuY2MgICAgICAgICAgICAg ICAgICAgICAgICB8IDE0ICsrKy0tLS0tLS0tCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2xpdGVyYWxfY29uc3RhbnRzLmYgfCAyMCArKysrKysrKysrKysrKysrCiAuLi4vZ2ZvcnRy YW4uZGcvbGl0ZXJhbF9jb25zdGFudHMuZjkwICAgICAgICAgfCAyNCArKysrKysrKysrKysr KysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbGl0 ZXJhbF9jb25zdGFudHMuZgogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvbGl0ZXJhbF9jb25zdGFudHMuZjkwCgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRy YW4vbWF0Y2guY2MgYi9nY2MvZm9ydHJhbi9tYXRjaC5jYwppbmRleCAxYWEzMDUzZTcwZS4u OGI4YjZlNzljOGIgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL21hdGNoLmNjCisrKyBiL2dj Yy9mb3J0cmFuL21hdGNoLmNjCkBAIC00NTQsMTAgKzQ1NCwxMSBAQCBnZmNfbWF0Y2hfZW9z ICh2b2lkKQogLyogTWF0Y2ggYSBsaXRlcmFsIGludGVnZXIgb24gdGhlIGlucHV0LCBzZXR0 aW5nIHRoZSB2YWx1ZSBvbgogICAgTUFUQ0hfWUVTLiAgTGl0ZXJhbCBpbnRzIG9jY3VyIGlu IGtpbmQtcGFyYW1ldGVycyBhcyB3ZWxsIGFzCiAgICBvbGQtc3R5bGUgY2hhcmFjdGVyIGxl bmd0aCBzcGVjaWZpY2F0aW9ucy4gIElmIGNudCBpcyBub24tTlVMTCBpdAotICAgd2lsbCBi ZSBzZXQgdG8gdGhlIG51bWJlciBvZiBkaWdpdHMuICAqLworICAgd2lsbCBiZSBzZXQgdG8g dGhlIG51bWJlciBvZiBkaWdpdHMuCisgICBXaGVuIGdvYmJsZV93cyBpcyBmYWxzZSwgZG8g bm90IHNraXAgb3ZlciBsZWFkaW5nIGJsYW5rcy4gICovCiAKIG1hdGNoCi1nZmNfbWF0Y2hf c21hbGxfbGl0ZXJhbF9pbnQgKGludCAqdmFsdWUsIGludCAqY250KQorZ2ZjX21hdGNoX3Nt YWxsX2xpdGVyYWxfaW50IChpbnQgKnZhbHVlLCBpbnQgKmNudCwgYm9vbCBnb2JibGVfd3Mp CiB7CiAgIGxvY3VzIG9sZF9sb2M7CiAgIGNoYXIgYzsKQEAgLTQ2Niw3ICs0NjcsOCBAQCBn ZmNfbWF0Y2hfc21hbGxfbGl0ZXJhbF9pbnQgKGludCAqdmFsdWUsIGludCAqY250KQogICBv bGRfbG9jID0gZ2ZjX2N1cnJlbnRfbG9jdXM7CiAKICAgKnZhbHVlID0gLTE7Ci0gIGdmY19n b2JibGVfd2hpdGVzcGFjZSAoKTsKKyAgaWYgKGdvYmJsZV93cykKKyAgICBnZmNfZ29iYmxl X3doaXRlc3BhY2UgKCk7CiAgIGMgPSBnZmNfbmV4dF9hc2NpaV9jaGFyICgpOwogICBpZiAo Y250KQogICAgICpjbnQgPSAwOwpAQCAtNjA4LDE3ICs2MTAsMTkgQEAgZ2ZjX21hdGNoX2xh YmVsICh2b2lkKQogLyogU2VlIGlmIHRoZSBjdXJyZW50IGlucHV0IGxvb2tzIGxpa2UgYSBu YW1lIG9mIHNvbWUgc29ydC4gIE1vZGlmaWVzCiAgICB0aGUgcGFzc2VkIGJ1ZmZlciB3aGlj aCBtdXN0IGJlIEdGQ19NQVhfU1lNQk9MX0xFTisxIGJ5dGVzIGxvbmcuCiAgICBOb3RlIHRo YXQgb3B0aW9ucy5jYyByZXN0cmljdHMgbWF4X2lkZW50aWZpZXJfbGVuZ3RoIHRvIG5vdCBt b3JlCi0gICB0aGFuIEdGQ19NQVhfU1lNQk9MX0xFTi4gICovCisgICB0aGFuIEdGQ19NQVhf U1lNQk9MX0xFTi4KKyAgIFdoZW4gZ29iYmxlX3dzIGlzIGZhbHNlLCBkbyBub3Qgc2tpcCBv dmVyIGxlYWRpbmcgYmxhbmtzLiAgKi8KIAogbWF0Y2gKLWdmY19tYXRjaF9uYW1lIChjaGFy ICpidWZmZXIpCitnZmNfbWF0Y2hfbmFtZSAoY2hhciAqYnVmZmVyLCBib29sIGdvYmJsZV93 cykKIHsKICAgbG9jdXMgb2xkX2xvYzsKICAgaW50IGk7CiAgIGNoYXIgYzsKIAogICBvbGRf bG9jID0gZ2ZjX2N1cnJlbnRfbG9jdXM7Ci0gIGdmY19nb2JibGVfd2hpdGVzcGFjZSAoKTsK KyAgaWYgKGdvYmJsZV93cykKKyAgICBnZmNfZ29iYmxlX3doaXRlc3BhY2UgKCk7CiAKICAg YyA9IGdmY19uZXh0X2FzY2lpX2NoYXIgKCk7CiAgIGlmICghKElTQUxQSEEgKGMpIHx8IChj ID09ICdfJyAmJiBmbGFnX2FsbG93X2xlYWRpbmdfdW5kZXJzY29yZSkpKQpAQCAtMTA1Mywx NSArMTA1NywxNyBAQCBjbGVhbnVwOgogCiAKIC8qIFRyaWVzIHRvIG1hdGNoIHRoZSBuZXh0 IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlciBvbiB0aGUgaW5wdXQuCi0gICBUaGlzIHN1YnJv dXRpbmUgZG9lcyBub3QgcmV0dXJuIE1BVENIX0VSUk9SLiAgKi8KKyAgIFRoaXMgc3Vicm91 dGluZSBkb2VzIG5vdCByZXR1cm4gTUFUQ0hfRVJST1IuCisgICBXaGVuIGdvYmJsZV93cyBp cyBmYWxzZSwgZG8gbm90IHNraXAgb3ZlciBsZWFkaW5nIGJsYW5rcy4gICovCiAKIG1hdGNo Ci1nZmNfbWF0Y2hfY2hhciAoY2hhciBjKQorZ2ZjX21hdGNoX2NoYXIgKGNoYXIgYywgYm9v bCBnb2JibGVfd3MpCiB7CiAgIGxvY3VzIHdoZXJlOwogCiAgIHdoZXJlID0gZ2ZjX2N1cnJl bnRfbG9jdXM7Ci0gIGdmY19nb2JibGVfd2hpdGVzcGFjZSAoKTsKKyAgaWYgKGdvYmJsZV93 cykKKyAgICBnZmNfZ29iYmxlX3doaXRlc3BhY2UgKCk7CiAKICAgaWYgKGdmY19uZXh0X2Fz Y2lpX2NoYXIgKCkgPT0gYykKICAgICByZXR1cm4gTUFUQ0hfWUVTOwpkaWZmIC0tZ2l0IGEv Z2NjL2ZvcnRyYW4vbWF0Y2guaCBiL2djYy9mb3J0cmFuL21hdGNoLmgKaW5kZXggNDk1Yzkz ZTBiNWMuLjFmNTNlMGNiNjdkIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9tYXRjaC5oCisr KyBiL2djYy9mb3J0cmFuL21hdGNoLmgKQEAgLTQ1LDE0ICs0NSwxNCBAQCBleHRlcm4gZ2Zj X2FjY2VzcyBnZmNfdHlwZWJvdW5kX2RlZmF1bHRfYWNjZXNzOwogbWF0Y2ggZ2ZjX21hdGNo X3NwZWNpYWxfY2hhciAoZ2ZjX2NoYXJfdCAqKTsKIG1hdGNoIGdmY19tYXRjaF9zcGFjZSAo dm9pZCk7CiBtYXRjaCBnZmNfbWF0Y2hfZW9zICh2b2lkKTsKLW1hdGNoIGdmY19tYXRjaF9z bWFsbF9saXRlcmFsX2ludCAoaW50ICosIGludCAqKTsKK21hdGNoIGdmY19tYXRjaF9zbWFs bF9saXRlcmFsX2ludCAoaW50ICosIGludCAqLCBib29sID0gdHJ1ZSk7CiBtYXRjaCBnZmNf bWF0Y2hfc3RfbGFiZWwgKGdmY19zdF9sYWJlbCAqKik7CiBtYXRjaCBnZmNfbWF0Y2hfc21h bGxfaW50IChpbnQgKik7Ci1tYXRjaCBnZmNfbWF0Y2hfbmFtZSAoY2hhciAqKTsKK21hdGNo IGdmY19tYXRjaF9uYW1lIChjaGFyICosIGJvb2wgPSB0cnVlKTsKIG1hdGNoIGdmY19tYXRj aF9zeW1ib2wgKGdmY19zeW1ib2wgKiosIGludCk7CiBtYXRjaCBnZmNfbWF0Y2hfc3ltX3Ry ZWUgKGdmY19zeW10cmVlICoqLCBpbnQpOwogbWF0Y2ggZ2ZjX21hdGNoX2ludHJpbnNpY19v cCAoZ2ZjX2ludHJpbnNpY19vcCAqKTsKLW1hdGNoIGdmY19tYXRjaF9jaGFyIChjaGFyKTsK K21hdGNoIGdmY19tYXRjaF9jaGFyIChjaGFyLCBib29sID0gdHJ1ZSk7CiBtYXRjaCBnZmNf bWF0Y2ggKGNvbnN0IGNoYXIgKiwgLi4uKTsKIG1hdGNoIGdmY19tYXRjaF9pdGVyYXRvciAo Z2ZjX2l0ZXJhdG9yICosIGludCk7CiBtYXRjaCBnZmNfbWF0Y2hfcGFyZW5zICh2b2lkKTsK ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3ByaW1hcnkuY2MgYi9nY2MvZm9ydHJhbi9wcmlt YXJ5LmNjCmluZGV4IDNmMDFmNjdjZDQ5Li4xOWYyZTc4YzhmZiAxMDA2NDQKLS0tIGEvZ2Nj L2ZvcnRyYW4vcHJpbWFyeS5jYworKysgYi9nY2MvZm9ydHJhbi9wcmltYXJ5LmNjCkBAIC00 NSwxMSArNDUsMTEgQEAgbWF0Y2hfa2luZF9wYXJhbSAoaW50ICpraW5kLCBpbnQgKmlzX2lz b19jKQogCiAgICppc19pc29fYyA9IDA7CiAKLSAgbSA9IGdmY19tYXRjaF9zbWFsbF9saXRl cmFsX2ludCAoa2luZCwgTlVMTCk7CisgIG0gPSBnZmNfbWF0Y2hfc21hbGxfbGl0ZXJhbF9p bnQgKGtpbmQsIE5VTEwsIGZhbHNlKTsKICAgaWYgKG0gIT0gTUFUQ0hfTk8pCiAgICAgcmV0 dXJuIG07CiAKLSAgbSA9IGdmY19tYXRjaF9uYW1lIChuYW1lKTsKKyAgbSA9IGdmY19tYXRj aF9uYW1lIChuYW1lLCBmYWxzZSk7CiAgIGlmIChtICE9IE1BVENIX1lFUykKICAgICByZXR1 cm4gbTsKIApAQCAtOTUsNyArOTUsNyBAQCBnZXRfa2luZCAoaW50ICppc19pc29fYykKIAog ICAqaXNfaXNvX2MgPSAwOwogCi0gIGlmIChnZmNfbWF0Y2hfY2hhciAoJ18nKSAhPSBNQVRD SF9ZRVMpCisgIGlmIChnZmNfbWF0Y2hfY2hhciAoJ18nLCBmYWxzZSkgIT0gTUFUQ0hfWUVT KQogICAgIHJldHVybiAtMjsKIAogICBtID0gbWF0Y2hfa2luZF9wYXJhbSAoJmtpbmQsIGlz X2lzb19jKTsKQEAgLTEwNzQsMTcgKzEwNzQsOSBAQCBtYXRjaF9zdHJpbmdfY29uc3RhbnQg KGdmY19leHByICoqcmVzdWx0KQogICAgICAgYyA9IGdmY19uZXh0X2NoYXIgKCk7CiAgICAg fQogCi0gIGlmIChjID09ICcgJykKLSAgICB7Ci0gICAgICBnZmNfZ29iYmxlX3doaXRlc3Bh Y2UgKCk7Ci0gICAgICBjID0gZ2ZjX25leHRfY2hhciAoKTsKLSAgICB9Ci0KICAgaWYgKGMg IT0gJ18nKQogICAgIGdvdG8gbm9fbWF0Y2g7CiAKLSAgZ2ZjX2dvYmJsZV93aGl0ZXNwYWNl ICgpOwotCiAgIGMgPSBnZmNfbmV4dF9jaGFyICgpOwogICBpZiAoYyAhPSAnXCcnICYmIGMg IT0gJyInKQogICAgIGdvdG8gbm9fbWF0Y2g7CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2xpdGVyYWxfY29uc3RhbnRzLmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2xpdGVyYWxfY29uc3RhbnRzLmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjRkMWYxYjdlYjRjCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9saXRlcmFsX2NvbnN0YW50cy5mCkBAIC0wLDAgKzEsMjAgQEAK KyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1vcHRpb25zICItZmZpeGVkLWZvcm0iIH0K KyEgUFIgZm9ydHJhbi85MjgwNSAtIGJsYW5rcyB3aXRoaW4gbGl0ZXJhbCBjb25zdGFudHMg aW4gZml4ZWQtZm9ybSBtb2RlCisKKyAgICAgIGltcGxpY2l0IG5vbmUKKyAgICAgIGludGVn ZXIsIHBhcmFtZXRlciA6OiBjayA9IGtpbmQgKCJhIikgICEgZGVmYXVsdCBjaGFyYWN0ZXIg a2luZAorICAgICAgaW50ZWdlciwgcGFyYW1ldGVyIDo6IHJrID0ga2luZCAoMS4wKSAgISBk ZWZhdWx0IHJlYWwga2luZAorICAgICAgcHJpbnQgKiwgMV8iYWJjIgorICAgICAgcHJpbnQg KiwgMSBfImFiYyIKKyAgICAgIHByaW50ICosIDFfICJhYmMiCisgICAgICBwcmludCAqLCBj a18iYSIKKyAgICAgIHByaW50ICosIGNrIF8iYWIiCisgICAgICBwcmludCAqLCBja18gImFi IgorICAgICAgcHJpbnQgKiwgMy4xNDE1XzQKKyAgICAgIHByaW50ICosIDMuMTQxNSBfNAor ICAgICAgcHJpbnQgKiwgMy4xNDE1XyA0CisgICAgICBwcmludCAqLCAzLjE0MTVfcmsKKyAg ICAgIHByaW50ICosIDMuMTQxNSBfcmsKKyAgICAgIHByaW50ICosIDMuMTQxNV8gcmsKKyAg ICAgIGVuZApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9saXRlcmFs X2NvbnN0YW50cy5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2xpdGVyYWxfY29u c3RhbnRzLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjg5 MDhmOWFkNzYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2xpdGVyYWxfY29uc3RhbnRzLmY5MApAQCAtMCwwICsxLDI0IEBACishIHsgZGctZG8gY29t cGlsZSB9CishIHsgZGctb3B0aW9ucyAiLWZmcmVlLWZvcm0iIH0KKyEgUFIgZm9ydHJhbi85 MjgwNSAtIGJsYW5rcyB3aXRoaW4gbGl0ZXJhbCBjb25zdGFudHMgaW4gZnJlZS1mb3JtIG1v ZGUKKworICAgICAgaW1wbGljaXQgbm9uZQorICAgICAgaW50ZWdlciwgcGFyYW1ldGVyIDo6 IGNrID0ga2luZCAoImEiKSAgISBkZWZhdWx0IGNoYXJhY3RlciBraW5kCisgICAgICBpbnRl Z2VyLCBwYXJhbWV0ZXIgOjogcmsgPSBraW5kICgxLjApICAhIGRlZmF1bHQgcmVhbCBraW5k CisgICAgICBwcmludCAqLCAxXyJhYmMiCisgICAgICBwcmludCAqLCAxIF8iYWJjIiAgICEg eyBkZy1lcnJvciAiU3ludGF4IGVycm9yIiB9CisgICAgICBwcmludCAqLCAxXyAiYWJjIiAg ICEgeyBkZy1lcnJvciAiTWlzc2luZyBraW5kLXBhcmFtZXRlciIgfQorICAgICAgcHJpbnQg KiwgMSBfICJhYmMiICAhIHsgZGctZXJyb3IgIlN5bnRheCBlcnJvciIgfQorICAgICAgcHJp bnQgKiwgY2tfImEiCisgICAgICBwcmludCAqLCBjayBfImFiIiAgICEgeyBkZy1lcnJvciAi U3ludGF4IGVycm9yIiB9CisgICAgICBwcmludCAqLCBja18gImFiIiAgICEgeyBkZy1lcnJv ciAiU3ludGF4IGVycm9yIiB9CisgICAgICBwcmludCAqLCBjayBfICJhYiIgICEgeyBkZy1l cnJvciAiU3ludGF4IGVycm9yIiB9CisgICAgICBwcmludCAqLCAzLjE0MTVfNAorICAgICAg cHJpbnQgKiwgMy4xNDE1IF80ICAhIHsgZGctZXJyb3IgIlN5bnRheCBlcnJvciIgfQorICAg ICAgcHJpbnQgKiwgMy4xNDE1XyA0ICAhIHsgZGctZXJyb3IgIk1pc3Npbmcga2luZC1wYXJh bWV0ZXIiIH0KKyAgICAgIHByaW50ICosIDMuMTQxNSBfIDQgISB7IGRnLWVycm9yICJTeW50 YXggZXJyb3IiIH0KKyAgICAgIHByaW50ICosIDMuMTQxNV9yaworICAgICAgcHJpbnQgKiwg My4xNDE1IF9yayAhIHsgZGctZXJyb3IgIlN5bnRheCBlcnJvciIgfQorICAgICAgcHJpbnQg KiwgMy4xNDE1XyByayAhIHsgZGctZXJyb3IgIk1pc3Npbmcga2luZC1wYXJhbWV0ZXIiIH0K KyAgICAgIHByaW50ICosIDMuMTQxIF8gcmsgISB7IGRnLWVycm9yICJTeW50YXggZXJyb3Ii IH0KKyAgICAgIGVuZAotLSAKMi4zNS4zCgo= --------------tjL298aPRvMLnVISxLQxxg85--