From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 124579 invoked by alias); 30 Oct 2019 21:56:26 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 124566 invoked by uid 89); 30 Oct 2019 21:56:26 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-17.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=191, (unknown) X-HELO: EUR01-DB5-obe.outbound.protection.outlook.com Received: from mail-oln040092064097.outbound.protection.outlook.com (HELO EUR01-DB5-obe.outbound.protection.outlook.com) (40.92.64.97) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 30 Oct 2019 21:56:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cJBRBPOVLYLLGnIJhYAYX/E751qC7Nfdr7shk/ui04BXksWzblU+YjtF0w1sl6k+4ZWdzCalplsjO5veZ/uilebaQKCA8EUFEKkK85y6AHIKnBC6r2q7qKqKwYk3GdqKF62O7Imjodld4SM6MbFQgix2F2GGt9vHusbe7k3r3BOoc0QtBEqwQnQeWnVa/QV/bjKiQerXSVpFOoCGMSworjK9exUMEsVoPuJmTALhOydXWtB6uFFF6QYyQF0AMgLzB4g1fBV3+zdS5OPb/9corWuhwssQLiETxefzHpcNIzaneNistD+Tk2Oft4+WFjX1cnTJkHgpwA8pBx0OhNvzqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mM60yqsq+SGWKPe4Jp3N+kkhBysTBaOKxMrR/nQbN/M=; b=ioL2t2MggA1QKtAWgTccT+3mzhwRFlEO/rETCUD8jQrUZqKzL8DL9FpXm7lgpgWYzbOE3te5P1uIHkovTBBDdJVgP1jEZ+IRJzTROXMqh1Qn2XFBHxi6XKLQNS1u9TJOkh0wJ5rxw0wurP0A1/EAKJ76xM24+QN2m4JE9dflNww/B4X+2VhcCPb2iUh3fPlz2WTZw1U6o4jkpB+CifKddz5EC6lLAazTtsqkBXZV8BmGY+anQqXLM91fz9UyJkzeXPdEkVtg6D/Drs5afGEGWcQfrhCgbzHELFaNUz6YHHLH9l/tlt/DKs87eCRoiBSh5iCgnyvLay1ma20mp/ASlg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from VE1EUR01FT009.eop-EUR01.prod.protection.outlook.com (10.152.2.58) by VE1EUR01HT066.eop-EUR01.prod.protection.outlook.com (10.152.2.191) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2387.20; Wed, 30 Oct 2019 21:56:20 +0000 Received: from VI1PR03MB4528.eurprd03.prod.outlook.com (10.152.2.51) by VE1EUR01FT009.mail.protection.outlook.com (10.152.2.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2387.20 via Frontend Transport; Wed, 30 Oct 2019 21:56:20 +0000 Received: from VI1PR03MB4528.eurprd03.prod.outlook.com ([fe80::49b8:a7e6:9f6f:862d]) by VI1PR03MB4528.eurprd03.prod.outlook.com ([fe80::49b8:a7e6:9f6f:862d%3]) with mapi id 15.20.2387.028; Wed, 30 Oct 2019 21:56:20 +0000 From: Bernd Edlinger To: Simon Marchi , "gdb-patches@sourceware.org" Subject: Re: [PATCHv2] Make "skip" work on inline frames Date: Wed, 30 Oct 2019 21:56:00 -0000 Message-ID: References: <8fc93db4-8906-4f4e-53f4-225ebfa0115d@simark.ca> <215bbf9c-4c3c-5cd2-c657-51aa7262f234@simark.ca> In-Reply-To: <215bbf9c-4c3c-5cd2-c657-51aa7262f234@simark.ca> x-microsoft-original-message-id: <2150651f-148f-03dc-e307-9ca33399facd@hotmail.de> x-ms-exchange-purlcount: 3 x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_VI1PR03MB4528C5DFB8796035C09CCD92E4600VI1PR03MB4528eurp_" MIME-Version: 1.0 X-SW-Source: 2019-10/txt/msg01122.txt.bz2 --_002_VI1PR03MB4528C5DFB8796035C09CCD92E4600VI1PR03MB4528eurp_ Content-Type: text/plain; charset="Windows-1252" Content-ID: <04FBE7D2E8091B4692607CC61682BF03@eurprd03.prod.outlook.com> Content-Transfer-Encoding: quoted-printable Content-length: 3107 On 10/27/19 3:17 AM, Simon Marchi wrote: > On 2019-10-26 9:52 p.m., Simon Marchi wrote: >> On 2019-10-20 2:48 a.m., Bernd Edlinger wrote: >>> On 10/19/19 6:38 AM, Bernd Edlinger wrote: >>>> Hmm, >>>> >>>> I noticed that the patch does not yet handle >>>> the step correctly, the count is decremented >>>> although the inline frame is skipped and should not be >>>> counted... >>>> >>>> Thus I will need to change at least this: >>>> >>>> --- a/gdb/infcmd.c >>>> +++ b/gdb/infcmd.c >>>> @@ -1122,7 +1122,6 @@ prepare_one_step (struct step_command_fsm *sm) >>>> set_running (resume_ptid, 1); >>>>=20=20 >>>> step_into_inline_frame (tp); >>>> - sm->count--; >>>>=20=20 >>>> sal =3D find_frame_sal (frame); >>>> sym =3D get_frame_function (frame); >>>> @@ -1132,13 +1131,17 @@ prepare_one_step (struct step_command_fsm *sm) >>>>=20=20 >>>> if (sal.line =3D=3D 0 >>>> || !function_name_is_marked_for_skip (fn, sal)) >>>> - return prepare_one_step (sm); >>>> + { >>>> + sm->count--; >>>> + return prepare_one_step (sm); >>>> + } >>>> } >>>>=20=20 >>>> >>> >>> Attached is an updated patch that fixes this issue, >>> and also adds the following after step_into_inline_frame (): >>> >>> frame =3D get_current_frame (); >>> >>> That I consider safer, since this function calls reinit_frame_cache (). >>> It was probably just by chance that this did not seem to cause any >>> problems for me. >>> >>> >>> Thanks >>> Bernd. >> >> Hi Bernd, >> >> Sorry for the delay. I'll start looking at this patch, but I first need= to play with >> it a bit first and get more familiar with that area of the code. >> >> In the mean time, I looked for your name in the copyright assignment lis= t, and don't find >> it. I think this patch is large enough to warrant one Do you already h= ave one in place? >> If not, please follow instructions here: >> >> https://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/Copyright/request-= assign.future >> >> Simon >=20 > Oh, and I noticed that the patch doesn't come with a test, we'll need one= before getting > the patch in. There are already some skip tests at testsuite/gdb.base/sk= ip*.exp, so I > could very well imagine a new test named gdb.base/skip-inline.exp. >=20 > See these pages for details on how to write and run tests: >=20 > - https://sourceware.org/gdb/wiki/GDBTestcaseCookbook > - https://sourceware.org/gdb/wiki/TestingGDB >=20 > If you can't manage to make a test, at the very least please provide a mi= nimal reproducer > so somebody else will be able to translate that into a test. >=20 While the legal stuff will probably need more time, I quickly wrote a test case for this. Hope this helps to understand how the patch works. Attached you'll find a test case for the skip of inline functions, I also added a test for the glitch in the first version of the patch. (counting step over skipped inlined functions wrong) Thanks Bernd. > Thanks, >=20 > Simon >=20 --_002_VI1PR03MB4528C5DFB8796035C09CCD92E4600VI1PR03MB4528eurp_ Content-Type: text/x-patch; name="0001-Add-a-test-case-for-skip-with-inlined-functions.patch" Content-Description: 0001-Add-a-test-case-for-skip-with-inlined-functions.patch Content-Disposition: attachment; filename="0001-Add-a-test-case-for-skip-with-inlined-functions.patch"; size=5030; creation-date="Wed, 30 Oct 2019 21:56:20 GMT"; modification-date="Wed, 30 Oct 2019 21:56:20 GMT" Content-ID: Content-Transfer-Encoding: base64 Content-length: 6820 RnJvbSBiYWU0ZDA4YzZhNjkzMTRiMDA3M2VlN2Q5MzI1NDA3NmU2NTc0ZTU1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuZCBFZGxpbmdl ciA8YmVybmQuZWRsaW5nZXJAaG90bWFpbC5kZT4KRGF0ZTogV2VkLCAzMCBP Y3QgMjAxOSAyMTozNToyMiArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBh IHRlc3QgY2FzZSBmb3Igc2tpcCB3aXRoIGlubGluZWQgZnVuY3Rpb25zCgot LS0KIGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc2tpcDIuYyAgIHwgNjQgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGdkYi90ZXN0 c3VpdGUvZ2RiLmJhc2Uvc2tpcDIuZXhwIHwgNjcgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAx MzEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0 c3VpdGUvZ2RiLmJhc2Uvc2tpcDIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdk Yi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc2tpcDIuZXhwCgpkaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9za2lwMi5jIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9za2lwMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjI5NWFhMjMKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3NraXAyLmMKQEAgLTAsMCArMSw2NCBAQAorLyog VGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KKworICAgQ29weXJpZ2h0IDIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNp bmNsdWRlIDxzdGRsaWIuaD4KKworaW50IGJhciAodm9pZCk7CitpbnQgYmF6 IChpbnQpOwordm9pZCBza2lwMV90ZXN0X3NraXBfZmlsZV9hbmRfZnVuY3Rp b24gKHZvaWQpOwordm9pZCB0ZXN0X3NraXBfZmlsZV9hbmRfZnVuY3Rpb24g KHZvaWQpOworCitzdGF0aWMgaW50Citmb28gKHZvaWQpCit7CisgIHJldHVy biBiYXIgKCk7Cit9CisKK2ludAorbWFpbiAoKQoreworICB2b2xhdGlsZSBp bnQgeDsKKworICAvKiBzdGVwIGltbWVkaWF0ZWx5IGludG8gdGhlIGlubGlu ZWQgY29kZSAqLworICB4ID0gYmF6IChmb28gKCkpOworCisgIC8qIHN0ZXAg Zmlyc3Qgb3ZlciBub24taW5saW5lIGNvZGUsIHRoaXMgaW52b2x2ZXMgYSBk aWZmZXJlbnQgY29kZSBwYXRoICovCisgIHggPSAwOyB4ID0gYmF6IChmb28g KCkpOworCisgIHRlc3Rfc2tpcF9maWxlX2FuZF9mdW5jdGlvbiAoKTsKKwor ICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK3Rlc3Rfc2tpcCAodm9p ZCkKK3sKK30KKworc3RhdGljIHZvaWQKK2VuZF90ZXN0X3NraXBfZmlsZV9h bmRfZnVuY3Rpb24gKHZvaWQpCit7CisgIGFib3J0ICgpOworfQorCit2b2lk Cit0ZXN0X3NraXBfZmlsZV9hbmRfZnVuY3Rpb24gKHZvaWQpCit7CisgIHRl c3Rfc2tpcCAoKTsKKyAgc2tpcDFfdGVzdF9za2lwX2ZpbGVfYW5kX2Z1bmN0 aW9uICgpOworICBlbmRfdGVzdF9za2lwX2ZpbGVfYW5kX2Z1bmN0aW9uICgp OworfQpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9za2lw Mi5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NraXAyLmV4cApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjQwNjAxCi0tLSAv ZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9za2lwMi5l eHAKQEAgLTAsMCArMSw2NyBAQAorIyAgIENvcHlyaWdodCAyMDE5IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgor Citsb2FkX2xpYiBjb21wbGV0aW9uLXN1cHBvcnQuZXhwCisKK3N0YW5kYXJk X3Rlc3RmaWxlCisKK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxl ZCB0byBwcmVwYXJlIiAic2tpcDIiIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAge3NraXAyLmMgc2tpcDEuYyB9IFwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAge2RlYnVnIG5vd2FybmluZ3Mgb3B0aW1pemU9LU8yfV0gfSB7 CisgICAgcmV0dXJuIC0xCit9CisKK3NldCBzcmNmaWxlIHNraXAyLmMKK3Nl dCBzcmNmaWxlMSBza2lwMS5jCisKK2lmICFbcnVudG9fbWFpbl0geworICAg IGZhaWwgImNhbid0IHJ1biB0byBtYWluIgorICAgIHJldHVybgorfQorCisj IENyZWF0ZSBhIHNraXBsaXN0IGVudHJ5IGZvciBhIHNwZWNpZmllZCBmaWxl IGFuZCBmdW5jdGlvbi4KKworZ2RiX3Rlc3QgInNraXAgZnVuY3Rpb24gZm9v IiAiRnVuY3Rpb24gZm9vIHdpbGwgYmUgc2tpcHBlZCB3aGVuIHN0ZXBwaW5n XC4iCisKK2dkYl90ZXN0ICJzdGVwIiAiLioiICJzdGVwIGluIHRoZSBtYWlu IgorZ2RiX3Rlc3QgImJ0IiAiXFxzKlxcIzBcXHMrbWFpbi4qIiAic3RlcCBp biB0aGUgbWFpbiIKK2dkYl90ZXN0ICJzdGVwIiAiLioiICJzdGVwIGludG8g YmF6LCBzaW5jZSBmb28gd2lsbCBiZSBza2lwcGVkIgorZ2RiX3Rlc3QgImJ0 IiAiXFxzKlxcIzBcXHMrYmF6LioiICJzdGVwIGludG8gYmF6LCBzaW5jZSBm b28gd2lsbCBiZSBza2lwcGVkIgorZ2RiX3Rlc3QgInN0ZXAiICIuKiIgInN0 ZXAgaW4gdGhlIGJheiIKK2dkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK2Jh ei4qIiAic3RlcCBpbiB0aGUgYmF6IgorZ2RiX3Rlc3QgInN0ZXAiICIuKiIg InN0ZXAgYmFjayB0byBtYWluIgorZ2RiX3Rlc3QgImJ0IiAiXFxzKlxcIzBc XHMrbWFpbi4qIiAic3RlcCBiYWNrIHRvIG1haW4iCitnZGJfdGVzdCAic3Rl cCIgIi4qIiAic3RlcCBpbnRvIGJheiwgc2luY2UgZm9vIHdpbGwgYmUgc2tp cHBlZCIKK2dkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK2Jhei4qIiAic3Rl cCBpbnRvIGJheiwgc2luY2UgZm9vIHdpbGwgYmUgc2tpcHBlZCIKK2dkYl90 ZXN0ICJzdGVwIiAiLioiICJzdGVwIGluIHRoZSBiYXoiCitnZGJfdGVzdCAi YnQiICJcXHMqXFwjMFxccytiYXouKiIgInN0ZXAgaW4gdGhlIGJheiIKK2dk Yl90ZXN0ICJzdGVwIiAiLioiICJzdGVwIGJhY2sgdG8gbWFpbiIKK2dkYl90 ZXN0ICJidCIgIlxccypcXCMwXFxzK21haW4uKiIgInN0ZXAgYmFjayB0byBt YWluIgorCitpZiAhW3J1bnRvX21haW5dIHsKKyAgICBmYWlsICJjYW4ndCBy dW4gdG8gbWFpbiIKKyAgICByZXR1cm4KK30KKworZ2RiX3Rlc3QgInN0ZXAi ICIuKiIgInN0ZXAgaW4gdGhlIG1haW4iCitnZGJfdGVzdCAiYnQiICJcXHMq XFwjMFxccyttYWluLioiICJzdGVwIGluIHRoZSBtYWluIgorZ2RiX3Rlc3Qg InN0ZXAgMiIgIi4qIiAic3RlcCBpbnRvIGJheiwgc2luY2UgZm9vIHdpbGwg YmUgc2tpcHBlZCIKK2dkYl90ZXN0ICJidCIgIlxccypcXCMwXFxzK2Jhei4q IiAic3RlcCBpbnRvIGJheiwgc2luY2UgZm9vIHdpbGwgYmUgc2tpcHBlZCIK K2dkYl90ZXN0ICJzdGVwIiAiLioiICJzdGVwIGluIHRoZSBiYXoiCitnZGJf dGVzdCAiYnQiICJcXHMqXFwjMFxccyttYWluLioiICJzdGVwIGJhY2sgdG8g bWFpbiIKK2dkYl90ZXN0ICJzdGVwIDIiICIuKiIgInN0ZXAgaW50byBiYXos IHNpbmNlIGZvbyB3aWxsIGJlIHNraXBwZWQiCitnZGJfdGVzdCAiYnQiICJc XHMqXFwjMFxccytiYXouKiIgInN0ZXAgaW50byBiYXosIHNpbmNlIGZvbyB3 aWxsIGJlIHNraXBwZWQiCitnZGJfdGVzdCAic3RlcCIgIi4qIiAic3RlcCBi YWNrIHRvIG1haW4iCitnZGJfdGVzdCAiYnQiICJcXHMqXFwjMFxccyttYWlu LioiICJzdGVwIGJhY2sgdG8gbWFpbiIKLS0gCjEuOS4xCgo= --_002_VI1PR03MB4528C5DFB8796035C09CCD92E4600VI1PR03MB4528eurp_--