From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id 4D2B33858D20; Mon, 27 Feb 2023 11:57:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4D2B33858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.97,331,1669104000"; d="diff'?scan'208";a="98163349" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa3.mentor.iphmx.com with ESMTP; 27 Feb 2023 03:57:26 -0800 IronPort-SDR: dys4F4Le5yqvXWpn4rywuvDMEmZgeFwdWvIvq+7kE+CxpeCBxI4rnFByh8CjnuPilb2nmFI1Ut SFbknWnOjBUBcxJe6rD2W6GcYXwvBdng1UNVIOk0gP2ZVFvGoa3zKCDZHHl9ZGweZ5eBro7ofH r1nf9p1Cqcy24utmsZCia8Nbh3ASFJrLZS2GOt155ySSaFD4r57JhJY+vYrDw8UHw3W5zSYnC+ aE306WVimT2OxXqI9LBSKi8TT1FZsjq4i3HzqtYG3aqfK17KWMH71xdPpZFGM8nF7wa3ehxI5M ETw= Content-Type: multipart/mixed; boundary="------------1EoZfpt7Rmun2fuSvcvXavyx" Message-ID: Date: Mon, 27 Feb 2023 12:57:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.2 Subject: [OG12,committed] Update dg-dump-scan for ... (was: [Patch] Fortran/OpenMP: Fix mapping of array descriptors and deferred-length strings) Content-Language: en-US To: Thomas Schwinge CC: , References: <57880257-d50f-e72b-5423-932af6c64e92@codesourcery.com> <877cw6cdnv.fsf@euler.schwinge.homeip.net> From: Tobias Burnus In-Reply-To: <877cw6cdnv.fsf@euler.schwinge.homeip.net> X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-15.mgc.mentorg.com (139.181.222.15) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,SPF_HELO_PASS,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 List-Id: --------------1EoZfpt7Rmun2fuSvcvXavyx Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable Hi Thomas, On 25.02.23 10:11, Thomas Schwinge wrote: > Do to the scan patterns need adjusting, or is something wrong? The former. Regarding: * gfortran.dg/goacc/finalize-1.f - for 'acc exit data': !$ACC EXIT DATA FINALIZE DELETE (del_f_p(2:5)) Here, 'map\\(to:del_f_p [pointer set]' changed to 'map(release:del_f_p' By itself, this is handled identically in libgomp. However, there is als= o a 'finalize' - which change original-dump's 'release' to 'delete' in the gimple dump. 'delete' is handled differently in terms of the refcount. =E2=86=92 I believe the patch actually fixed an OpenACC issue by also fo= rce-unmapping the descriptor and not only the pointer target. * gfortran.dg/gomp/pr78260-2.f90 Here, the '* 4' multiplication moved from the expression, shown in the '= to' clause to the expression evalulation. Reasons: To work properly with deferred-length strings (first, to take t= he current value and not some saved expr and to avoid issues when the var i= s unallocated - especially with absent 'optional' variables.) Side remark: On OG12 there are too many FAIL, compared to mainline. That do= es not have anything to do with the items above - but it still makes working with OG12 harder. I hope that OG13 will have fewer fails. Tobias PS: --word-diff for 'finalize-1.f': original: [-map\\(to:del_f_p \\\[pointer set, len:-]{+map\\(release:del_f_p= \\\[len:+} gimple: [-map\\(to:del_f_p \\\[pointer set, len:-]{+map\\(delete:del_f_p \\= \[len:+} and for pr78260-2.f90, the "len: " changed (twice) as in [-D.\[0-9\]+ \\* 4\\\]\\)-]{+D.\[0-9\]+\\\]\\)+} and there is now additionally the following to ensure the '* 4' it not lost= : ! { dg-final { scan-tree-dump-times "D\\.\[0-9\]+ =3D D\\.\[0-9\]+ \\* 4;" = 2 "original" } } ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------1EoZfpt7Rmun2fuSvcvXavyx Content-Type: text/x-patch; charset="UTF-8"; name="committed.diff" Content-Disposition: attachment; filename="committed.diff" Content-Transfer-Encoding: base64 Y29tbWl0IGU0ZGU4N2EyMzA5YmI2ZWVjYzlkNGEzOTFlNDQ1NGI2ZTUxMjg5YzMKQXV0aG9y OiBUb2JpYXMgQnVybnVzIDx0b2JpYXNAY29kZXNvdXJjZXJ5LmNvbT4KRGF0ZTogICBNb24g RmViIDI3IDEyOjQ3OjU0IDIwMjMgKzAxMDAKCiAgICBVcGRhdGUgZGctZHVtcC1zY2FuIGZv ciAiRm9ydHJhbi9PcGVuTVA6IEZpeCBtYXBwaW5nIG9mIGFycmF5IGRlc2NyaXB0b3JzIGFu ZCBkZWZlcnJlZC1sZW5ndGggc3RyaW5ncyIKICAgIAogICAgRm9sbG93LXVwIHRvIGNvbW1p dCA1NWExOGQ0NzQ0MjU4ZTM5MDk1NjhlNDI1ZjlmNDczYzQ5ZjlkMTNmCiAgICAiRm9ydHJh bi9PcGVuTVA6IEZpeCBtYXBwaW5nIG9mIGFycmF5IGRlc2NyaXB0b3JzIGFuZCBkZWZlcnJl ZC1sZW5ndGggc3RyaW5ncyIKICAgIHVwZGF0aW5nIHRoZSBkdW1wcy4KICAgICogRm9yIHRo ZSBnb2FjYyB0ZXN0Y2FzZSwgJ3RvJyBjaGFuZ2VkIHRvICdyZWxlYXNlJyBhbmQgZHVlIHRv ICdmaW5hbGx5JyB0aGVuCiAgICAgIHRvICdkZWxldGUnLCB3aGljaCBjYW4gYmUgcmVnYXJk ZWQgYXMgYnVnZml4LgogICAgKiBGb3IgcHI3ODI2MC0yLmY5MCwgdGhlIGNhbGN1bGF0aW9u IG1vdmVkIGluc2lkZSB0aGUgJ2lmKC4uLi0+ZGF0YSA9PSBOVUxMKScKICAgICAgYmxvY2sg dG8gaGFuZGxlIGRlZmVycmVkLXN0cmluZyBsZW5ndGggdmFycyBiZXR0ZXIsIGVzcC4gd2hl biAnb3B0aW9uYWwnLgogICAgCiAgICBnY2MvdGVzdHN1aXRlLzoKICAgICAgICAgICAgKiBn Zm9ydHJhbi5kZy9nb2FjYy9maW5hbGl6ZS0xLmY6IFVwZGF0ZSBzY2FuLXRyZWUtZHVtcC10 aW1lcyBmb3IKICAgICAgICAgICAgbWFwcGluZyBjaGFuZ2VzLgogICAgICAgICAgICAqIGdm b3J0cmFuLmRnL2dvbXAvcHI3ODI2MC0yLmY5MDogTGlrZXdpc2UuCi0tLQogZ2NjL3Rlc3Rz dWl0ZS9DaGFuZ2VMb2cub21wICAgICAgICAgICAgICAgICAgfCA2ICsrKysrKwogZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9maW5hbGl6ZS0xLmYgfCA0ICsrLS0KIGdjYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9wcjc4MjYwLTIuZjkwIHwgNiArKysrLS0KIDMg ZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL0NoYW5nZUxvZy5vbXAgYi9nY2MvdGVzdHN1aXRlL0No YW5nZUxvZy5vbXAKaW5kZXggOThlNDE2ODc2MzMuLmQ0MjE3Y2NjNzFmIDEwMDY0NAotLS0g YS9nY2MvdGVzdHN1aXRlL0NoYW5nZUxvZy5vbXAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9DaGFu Z2VMb2cub21wCkBAIC0xLDMgKzEsOSBAQAorMjAyMy0wMi0yNyAgVG9iaWFzIEJ1cm51cyAg PHRvYmlhc0Bjb2Rlc291cmNlcnkuY29tPgorCisJKiBnZm9ydHJhbi5kZy9nb2FjYy9maW5h bGl6ZS0xLmY6IFVwZGF0ZSBzY2FuLXRyZWUtZHVtcC10aW1lcyBmb3IKKwltYXBwaW5nIGNo YW5nZXMuCisJKiBnZm9ydHJhbi5kZy9nb21wL3ByNzgyNjAtMi5mOTA6IExpa2V3aXNlLgor CiAyMDIzLTAyLTIzICBBbmRyZXcgU3R1YmJzICA8YW1zQGNvZGVzb3VyY2VyeS5jb20+CiAK IAlCYWNrcG9ydCBmcm9tIG1haW5saW5lOgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9nb2FjYy9maW5hbGl6ZS0xLmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2dvYWNjL2ZpbmFsaXplLTEuZgppbmRleCAxZTViZjBiYTFlNi4uMjNmMGZmYzYyN2Ug MTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29hY2MvZmluYWxpemUt MS5mCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29hY2MvZmluYWxpemUtMS5m CkBAIC0yMCw4ICsyMCw4IEBACiAhIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAiKD9uKSNwcmFnbWEgb21wIHRhcmdldCBvYWNjX2V4aXRfZGF0YSBtYXBcXChkZWxldGU6 ZGVsX2YgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIGZpbmFsaXplJCIgMSAiZ2ltcGxlIiB9 IH0KIAogISRBQ0MgRVhJVCBEQVRBIEZJTkFMSVpFIERFTEVURSAoZGVsX2ZfcCgyOjUpKQot ISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIig/bikjcHJhZ21hIGFjYyBl eGl0IGRhdGEgbWFwXFwocmVsZWFzZTpcXCpcXChpbnRlZ2VyXFwoa2luZD0uXFwpXFxcWzA6 XFxcXSBcXCpcXCkgcGFybVxcLjBcXC5kYXRhIFxcXFtsZW46IFxbXlxcXF1cXStcXFxdXFwp IG1hcFxcKHRvOmRlbF9mX3AgXFxcW3BvaW50ZXIgc2V0LCBsZW46IFxbMC05XF0rXFxcXVxc KSBtYXBcXChhbGxvYzpcXChpbnRlZ2VyXFwoa2luZD0xXFwpXFxcWzA6XFxcXSBcXCogcmVz dHJpY3RcXCkgZGVsX2ZfcFxcLmRhdGEgXFxcW3BvaW50ZXIgYXNzaWduLCBiaWFzOiBcXCgu KmludC4qXFwpIHBhcm1cXC4wXFwuZGF0YSAtIFxcKC4qaW50LipcXCkgZGVsX2ZfcFxcLmRh dGFcXFxdXFwpIGZpbmFsaXplOyQiIDEgIm9yaWdpbmFsIiB9IH0KLSEgeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIoP24pI3ByYWdtYSBvbXAgdGFyZ2V0IG9hY2NfZXhp dF9kYXRhIG1hcFxcKGRlbGV0ZTpNRU0gPFxbXj5cXSs+IFxcXFtcXChpbnRlZ2VyXFwoa2lu ZD0uXFwpXFxcWzA6XFxcXSBcXCpcXClfXFswLTlcXStcXFxdIFxcXFtsZW46IFxbXlxcXF1c XStcXFxdXFwpIG1hcFxcKHRvOmRlbF9mX3AgXFxcW3BvaW50ZXIgc2V0LCBsZW46IFxbMC05 XF0rXFxcXVxcKSBtYXBcXChhbGxvYzpkZWxfZl9wXFwuZGF0YSBcXFxbcG9pbnRlciBhc3Np Z24sIGJpYXM6IFxbXlxcXF1cXStcXFxdXFwpIGZpbmFsaXplJCIgMSAiZ2ltcGxlIiB9IH0K KyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIoP24pI3ByYWdtYSBhY2Mg ZXhpdCBkYXRhIG1hcFxcKHJlbGVhc2U6XFwqXFwoaW50ZWdlclxcKGtpbmQ9LlxcKVxcXFsw OlxcXF0gXFwqXFwpIHBhcm1cXC4wXFwuZGF0YSBcXFxbbGVuOiBcW15cXFxdXF0rXFxcXVxc KSBtYXBcXChyZWxlYXNlOmRlbF9mX3AgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIG1hcFxc KGFsbG9jOlxcKGludGVnZXJcXChraW5kPTFcXClcXFxbMDpcXFxdIFxcKiByZXN0cmljdFxc KSBkZWxfZl9wXFwuZGF0YSBcXFxbcG9pbnRlciBhc3NpZ24sIGJpYXM6IFxcKC4qaW50Lipc XCkgcGFybVxcLjBcXC5kYXRhIC0gXFwoLippbnQuKlxcKSBkZWxfZl9wXFwuZGF0YVxcXF1c XCkgZmluYWxpemU7JCIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtdGltZXMgIig/bikjcHJhZ21hIG9tcCB0YXJnZXQgb2FjY19leGl0X2RhdGEg bWFwXFwoZGVsZXRlOk1FTSA8XFtePlxdKz4gXFxcW1xcKGludGVnZXJcXChraW5kPS5cXClc XFxbMDpcXFxdIFxcKlxcKV9cWzAtOVxdK1xcXF0gXFxcW2xlbjogXFteXFxcXVxdK1xcXF1c XCkgbWFwXFwoZGVsZXRlOmRlbF9mX3AgXFxcW2xlbjogXFswLTlcXStcXFxdXFwpIG1hcFxc KGFsbG9jOmRlbF9mX3BcXC5kYXRhIFxcXFtwb2ludGVyIGFzc2lnbiwgYmlhczogXFteXFxc XVxdK1xcXF1cXCkgZmluYWxpemUkIiAxICJnaW1wbGUiIH0gfQogCiAhJEFDQyBFWElUIERB VEEgQ09QWU9VVCAoY3BvX3IpCiAhIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAiKD9uKSNwcmFnbWEgYWNjIGV4aXQgZGF0YSBtYXBcXChmcm9tOmNwb19yXFwpOyQiIDEg Im9yaWdpbmFsIiB9IH0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv Z29tcC9wcjc4MjYwLTIuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3By NzgyNjAtMi5mOTAKaW5kZXggZjVkODg4NTkyYjkuLmNkNzcxYjMzYTI1IDEwMDY0NAotLS0g YS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvcHI3ODI2MC0yLmY5MAorKysgYi9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvcHI3ODI2MC0yLmY5MApAQCAtNDgsOSAr NDgsMTEgQEAgY29udGFpbnMKICAgZW5kIHN1YnJvdXRpbmUgc3ViCiBlbmQgbW9kdWxlIG0K IAotISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRh cmdldCBkYXRhIG1hcFxcKHRvZnJvbTpcXCpcXChpbnRlZ2VyXFwoa2luZD00XFwpXFxcWzA6 XFxcXSBcXCogcmVzdHJpY3RcXCkgYXJyLmRhdGEgXFxcW2xlbjogRC5cWzAtOVxdKyBcXCog NFxcXF1cXCkgbWFwXFwodG86YXJyIFxcXFtwb2ludGVyIHNldCwgbGVuOiAuLlxcXF1cXCkg bWFwXFwoYWxsb2M6XFwoaW50ZWdlclxcKGtpbmQ9NFxcKVxcXFswOlxcXF0gXFwqIHJlc3Ry aWN0XFwpIGFyci5kYXRhIFxcXFtwb2ludGVyIGFzc2lnbiwgYmlhczogMFxcXF1cXCkiIDEg Im9yaWdpbmFsIiB9IH0KKyEgQ2hlY2sgZm9yIG11bHRpcGxpY2F0aW9uOiBsZW4gPSBhcnJh eXNfc2l6ZSAqIDQ8Ynl0ZXM+OgorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGlt ZXMgIkRcXC5cWzAtOVxdKyA9IERcXC5cWzAtOVxdKyBcXCogNDsiIDIgIm9yaWdpbmFsIiB9 IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0 YXJnZXQgZGF0YSBtYXBcXCh0b2Zyb206XFwqXFwoaW50ZWdlclxcKGtpbmQ9NFxcKVxcXFsw OlxcXF0gXFwqIHJlc3RyaWN0XFwpIGFyci5kYXRhIFxcXFtsZW46IEQuXFswLTlcXStcXFxd XFwpIG1hcFxcKHRvOmFyciBcXFxbcG9pbnRlciBzZXQsIGxlbjogLi5cXFxdXFwpIG1hcFxc KGFsbG9jOlxcKGludGVnZXJcXChraW5kPTRcXClcXFxbMDpcXFxdIFxcKiByZXN0cmljdFxc KSBhcnIuZGF0YSBcXFxbcG9pbnRlciBhc3NpZ24sIGJpYXM6IDBcXFxdXFwpIiAxICJvcmln aW5hbCIgfSB9CiAhIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdt YSBvbXAgdGFyZ2V0IHVwZGF0ZSB0b1xcKFxcKlxcKGludGVnZXJcXChraW5kPTRcXClcXFxb MDpcXFxdIFxcKiByZXN0cmljdFxcKSBhcnIuZGF0YSBcXFxbbGVuOiBELlxbMC05XF0rIFxc KiA0XFxcXVxcKSIgMSAib3JpZ2luYWwiIH0gfQotISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHRhcmdldCBkYXRhIG1hcFxcKHRvZnJvbTpcXCpc XChpbnRlZ2VyXFwoa2luZD00XFwpXFxcWzA6XFxcXSBcXCogcmVzdHJpY3RcXCkgX19yZXN1 bHQtPmRhdGEgXFxcW2xlbjogRC5cWzAtOVxdKyBcXCogNFxcXF1cXCkgbWFwXFwodG86XFwq X19yZXN1bHQgXFxcW3BvaW50ZXIgc2V0LCBsZW46IC4uXFxcXVxcKSBtYXBcXChhbGxvYzpc XChpbnRlZ2VyXFwoa2luZD00XFwpXFxcWzA6XFxcXSBcXCogcmVzdHJpY3RcXCkgX19yZXN1 bHQtPmRhdGEgXFxcW3BvaW50ZXIgYXNzaWduLCBiaWFzOiAwXFxcXVxcKSBtYXBcXChhbGxv YzpfX3Jlc3VsdCBcXFxbcG9pbnRlciBhc3NpZ24sIGJpYXM6IDBcXFxdXFwpIiAxICJvcmln aW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdt YSBvbXAgdGFyZ2V0IGRhdGEgbWFwXFwodG9mcm9tOlxcKlxcKGludGVnZXJcXChraW5kPTRc XClcXFxbMDpcXFxdIFxcKiByZXN0cmljdFxcKSBfX3Jlc3VsdC0+ZGF0YSBcXFxbbGVuOiBE LlxbMC05XF0rXFxcXVxcKSBtYXBcXCh0bzpcXCpfX3Jlc3VsdCBcXFxbcG9pbnRlciBzZXQs IGxlbjogLi5cXFxdXFwpIG1hcFxcKGFsbG9jOlxcKGludGVnZXJcXChraW5kPTRcXClcXFxb MDpcXFxdIFxcKiByZXN0cmljdFxcKSBfX3Jlc3VsdC0+ZGF0YSBcXFxbcG9pbnRlciBhc3Np Z24sIGJpYXM6IDBcXFxdXFwpIG1hcFxcKGFsbG9jOl9fcmVzdWx0IFxcXFtwb2ludGVyIGFz c2lnbiwgYmlhczogMFxcXF1cXCkiIDEgIm9yaWdpbmFsIiB9IH0KICEgeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCB0YXJnZXQgdXBkYXRlIHRvXFwo XFwqXFwoaW50ZWdlclxcKGtpbmQ9NFxcKVxcXFswOlxcXF0gXFwqIHJlc3RyaWN0XFwpIF9f cmVzdWx0LT5kYXRhIFxcXFtsZW46IEQuXFswLTlcXSsgXFwqIDRcXFxdXFwpIiAxICJvcmln aW5hbCIgfSB9CiAhIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdt YSBvbXAgdGFyZ2V0IGRhdGEgbWFwXFwodG9mcm9tOlxcKl9fcmVzdWx0LjBcXCkgbWFwXFwo YWxsb2M6X19yZXN1bHQuMCBcXFxbcG9pbnRlciBhc3NpZ24sIGJpYXM6IDBcXFxdXFwpIiAy ICJvcmlnaW5hbCIgfSB9CiAhIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAi I3ByYWdtYSBvbXAgdGFyZ2V0IHVwZGF0ZSB0b1xcKFxcKl9fcmVzdWx0LjBcXCkiIDIgIm9y aWdpbmFsIiB9IH0K --------------1EoZfpt7Rmun2fuSvcvXavyx--