Received: (at 25018) by debbugs.gnu.org; 18 Oct 2022 15:33:42 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Oct 18 11:33:42 2022 Received: from localhost ([127.0.0.1]:53819 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1okob7-00087J-Kh for submit <at> debbugs.gnu.org; Tue, 18 Oct 2022 11:33:41 -0400 Received: from mail-qt1-f181.google.com ([209.85.160.181]:46711) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1okob6-000870-1W; Tue, 18 Oct 2022 11:33:40 -0400 Received: by mail-qt1-f181.google.com with SMTP id hh9so9852897qtb.13; Tue, 18 Oct 2022 08:33:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=/OeIxddDf3Lj3gj3R1lxG03npbgxJLnmDvtFO7OQymY=; b=jjac519wC6Q8tu2nDLiXvNC3l0nCn70V3wbK9CoRPs0iWlMHT46LL8X4/p5iZxdnpp aP3/oBk1kYRYiIb+E97Ct83+HyMcYq9Q00I4ZGHhax15foJC5Y8xTSug64AhQADjfHJA eykR/du6Z3mwT6Sfez6XNLsqlSPTqSr1ryBQ1g6CPPek3MgZEsl92widdfN7D5F+rNzv Qrfpvela4C+Yfs6rfEzUoILtKNKlhxQrP8vCDiLprkQyLVEM9w53KmlO6RMYtZd70j22 QWgGNhAhrP/FLtRgdxhzZFZUe5x7yA9nHYfA+JHMdxV3nD8m9S9H1lby6cDwkDeGp624 m+fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=/OeIxddDf3Lj3gj3R1lxG03npbgxJLnmDvtFO7OQymY=; b=Ro94LkBElQsqzm0YkzHFTEgbI+RJ97PDrOdBZuKLiuHQ55dEfMYdJ6JFHgfhYSIkUC SHwheLg5YEZ6dtBSGKPC0iQref/LbL9rbW88JT/cX8h6nZzpiwSOOFtitkgIfa3GIpYa t5UiTnWxTXoYZtRgGXGO7c4gPMPKL7yYO2rFtcp3/Nq/E+UO6qrvZunovlrxY5kfjR9c 3EG/99ZtUtnCFswKcbO0GcpZ+VeZk+q/LjY6BK0aVREmMHnyEsAkV9FX9SWZLch2cY/J LVtAPWQlz5563Zws3Oeuen/5N2cm8XmKKp5M81CyT49pkPcOblCVQjn0doMmIlzHJpCM IkYA== X-Gm-Message-State: ACrzQf2TF3e9WBkzLIrdX6UacgIq3dISxOTWklis2v7mvPbDGLvMgXEI UJU7HgEV4p0T23ndf4bDur8pkENWigM0hA== X-Google-Smtp-Source: AMsMyM55luddrbzOCfsYtlGyOn/dsJEcFpbnvWynUx+ocZic/ME90XGOhqggdt/FTU8gPhs6Bo8v5w== X-Received: by 2002:ac8:5f14:0:b0:39c:dae5:35d5 with SMTP id x20-20020ac85f14000000b0039cdae535d5mr2598854qta.312.1666107213912; Tue, 18 Oct 2022 08:33:33 -0700 (PDT) Received: from hurd (dsl-154-51.b2b2c.ca. [66.158.154.51]) by smtp.gmail.com with ESMTPSA id t14-20020a05620a450e00b006ce580c2663sm2684542qkp.35.2022.10.18.08.33.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Oct 2022 08:33:33 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Subject: Re: bug#25018: GC incorrectly removes the temporary root file of the calling process References: <87d1hl55ur.fsf@HIDDEN> <87pmf34afr.fsf@HIDDEN> <87zge43y6a.fsf@HIDDEN> <87wn92jggr.fsf@HIDDEN> <87edv7z1ev.fsf@HIDDEN> <87v8oig7eg.fsf@HIDDEN> Date: Tue, 18 Oct 2022 11:33:32 -0400 In-Reply-To: <87v8oig7eg.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Mon, 17 Oct 2022 10:51:19 +0200") Message-ID: <877d0xw3hv.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 25018 Cc: 25018 <at> debbugs.gnu.org, GNU Debbugs <control <at> debbugs.gnu.org> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) reopen 25018 quit Hi, Ludovic Court=C3=A8s <ludo@HIDDEN> writes: [...] > I reverted it in eec920ba93ecb086366576e31b785962fbaf81c2. > > The way forward will be to review those tests one by one, make sure they > were making the =E2=80=9Cwrong=E2=80=9D assumption, adjust them according= ly, and > possibly add new tests. It=E2=80=99s not necessarily difficult but takes= a bit > of time. (In the coming weeks I=E2=80=99m going to try and focus on more= urgent > matters but I=E2=80=99m happy to review if you or someone else gets to it= !) Thanks, and sorry for not noticing the breakage. I'm reopening the bug so that we don't forget about it. --=20 Thanks, Maxim
bug-guix@HIDDEN
:bug#25018
; Package guix
.
Full text available.Received: (at 25018) by debbugs.gnu.org; 17 Oct 2022 08:51:45 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 17 04:51:45 2022 Received: from localhost ([127.0.0.1]:47291 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1okLqa-0004vB-NT for submit <at> debbugs.gnu.org; Mon, 17 Oct 2022 04:51:45 -0400 Received: from eggs.gnu.org ([209.51.188.92]:43690) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1okLqY-0004uw-UI for 25018 <at> debbugs.gnu.org; Mon, 17 Oct 2022 04:51:43 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:38024) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1okLqT-0005ZW-Ls; Mon, 17 Oct 2022 04:51:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=s0A/HrvxJcpGMKc34meBDi4aD2U33iO+zmw9zolOIGc=; b=TG/fwsp9tuji999OEt/a CVR1G6TEPEhW5JRlsGoB4pn/NWISdSQZL/YCr3Gy72lQ2+KGFkjoOk9Xj4CuHRNZVX0XmpsEZvmTG 4fozrGmxsdMNi7XWaGt2wu6djVw9DkbyDBFvNea20WPg83pfON4qWk92jEhCVxWIkyIujjdjohiFj 33QBLKbD8bWOTbUDsf1LJv33YerKjOg93eGocsjJdeJyDIU3LQLz2EIJ5b9ulD+rmgDAdgTeWM8MI F1FAtC6fGJPY+0USKHpO1GyedK5lo7j8kCu/q2R4ouNUxD08TFtf97PIWA0aA65m4na5wi3NlNM4E tvQCCjjRcpjiAw==; Received: from [193.50.110.209] (port=54150 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1okLqC-00026o-UQ; Mon, 17 Oct 2022 04:51:34 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Subject: Re: bug#25018: GC incorrectly removes the temporary root file of the calling process References: <87d1hl55ur.fsf@HIDDEN> <87pmf34afr.fsf@HIDDEN> <87zge43y6a.fsf@HIDDEN> <87wn92jggr.fsf@HIDDEN> <87edv7z1ev.fsf@HIDDEN> Date: Mon, 17 Oct 2022 10:51:19 +0200 In-Reply-To: <87edv7z1ev.fsf@HIDDEN> (Maxim Cournoyer's message of "Sun, 16 Oct 2022 21:25:44 -0400") Message-ID: <87v8oig7eg.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 25018 Cc: 25018 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hi Maxim, Maxim Cournoyer <maxim.cournoyer@HIDDEN> skribis: > Ludovic Court=C3=A8s <ludo@HIDDEN> writes: > >> Hi Maxim, >> >> (Stripping Cc:.) >> >> Ludovic Court=C3=A8s <ludo@HIDDEN> skribis: >> >>> Thank you! (Your bug triage work is much appreciated!) We could turn >>> the example here in a unit test; the only downside is that running the >>> GC in a test is expensive. >> >> Actually, there are tests that most likely relied on the previous >> behavior and are now failing in >> tests/{derivations,nar,publish,pypi,store}.scm. We=E2=80=99ll have to l= ook at >> each one to make sure they are indeed making the wrong assumption and to >> fix them. > > Hmm, I hadn't seen that coming. > >> What about reverting the change first so we can do that without >> pressure and come up with a self-contained patch? > > Sounds reasonable, if we can't think of an immediate fix. I reverted it in eec920ba93ecb086366576e31b785962fbaf81c2. The way forward will be to review those tests one by one, make sure they were making the =E2=80=9Cwrong=E2=80=9D assumption, adjust them accordingly= , and possibly add new tests. It=E2=80=99s not necessarily difficult but takes a= bit of time. (In the coming weeks I=E2=80=99m going to try and focus on more u= rgent matters but I=E2=80=99m happy to review if you or someone else gets to it!) Thanks, Ludo=E2=80=99.
bug-guix@HIDDEN
:bug#25018
; Package guix
.
Full text available.Debbugs Internal Request <help-debbugs@HIDDEN>
to internal_control <at> debbugs.gnu.org
.
Full text available.Received: (at 25018) by debbugs.gnu.org; 17 Oct 2022 01:25:54 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 16 21:25:54 2022 Received: from localhost ([127.0.0.1]:46601 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1okEt7-0004rN-Sf for submit <at> debbugs.gnu.org; Sun, 16 Oct 2022 21:25:54 -0400 Received: from mail-qk1-f173.google.com ([209.85.222.173]:37661) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1okEt5-0004qt-9t for 25018 <at> debbugs.gnu.org; Sun, 16 Oct 2022 21:25:52 -0400 Received: by mail-qk1-f173.google.com with SMTP id m6so5838166qkm.4 for <25018 <at> debbugs.gnu.org>; Sun, 16 Oct 2022 18:25:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=cBukZNAJwM+8waoELSpa/7ecruVjmjxVY56PWpVDVes=; b=POq0Dlpyv1s9xyCnCuFZ1NIntkfzCEyb2oFTnUFh2i0J28e6mNNqy1iK37jXsbbicH Gg+VnuiWCzp57TXmXgRn0kY4SAqCnuxRWNDJyu0b50O7HaI88/2JAdnOHbpUkIJDCYSO aVqIjIbqWpoKkHo/XA3mvmXMo1WCvDEbYi34aq31LdTZI9vaKMfv7r5BBBFrD16lksFc F61zxOJtvhNyRpcshI6FNWgZTcZz7224Vllo7/sIvaWgHi1eK/PBMmwAL9FRiuXho7zo kcAb0V0L8Czf3LLjxYvJr4SYwE0PArh7VU19espFixfBpASbiQXvf1krYdhFchC/JB28 UXbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=cBukZNAJwM+8waoELSpa/7ecruVjmjxVY56PWpVDVes=; b=tDufJqbOYRaXICdsIeH5iTVSlxEvArNu4XNdxOmoo6rgV3GNedB0/oMBFSHv3SEfjz c63p4MDL8EBpzx7joNlnOs9y+F7ayviiHqz/uZ9ENlMQykDEBsuzOGm9PaGRSVwlVUvy 2qolDJF5lJtdtWGAIhcPIHG0ncpbrR2WFAcUdE/K371W14qX2Y0Yb/+QBFOP4v6npMsJ bbSaWeOHCA/a9gcoCkI0hb8yNlvskGhzOCX3JcCnVydpcFJK8+4KrZiVboYG3A36vRB3 baFxc9PEfWQHYtgt72nAl77oPD3WepKANy+dJxnc1dGXuzMQGCOaVmJHECIyV9N/iZOv r6kg== X-Gm-Message-State: ACrzQf3XpisEbCyPk0KPxkI3dreQ/LcwFDTJuSDVUObugkgMkm5nh/U+ rG0MEYkBeJmery3DEVg6J8o2XmM3D0Y= X-Google-Smtp-Source: AMsMyM6cp5VVQHzAqMih68oF89S/2PhsMXq2byvTB7himZSEDe6+MLgXd0rHYbh61EzSF3QHrAp+ew== X-Received: by 2002:a05:620a:13e1:b0:6ee:9408:1f90 with SMTP id h1-20020a05620a13e100b006ee94081f90mr6132915qkl.502.1665969945635; Sun, 16 Oct 2022 18:25:45 -0700 (PDT) Received: from hurd (dsl-150-158.b2b2c.ca. [66.158.150.158]) by smtp.gmail.com with ESMTPSA id a26-20020ac8721a000000b00398ed306034sm6700229qtp.81.2022.10.16.18.25.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Oct 2022 18:25:45 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Subject: Re: bug#25018: GC incorrectly removes the temporary root file of the calling process References: <87d1hl55ur.fsf@HIDDEN> <87pmf34afr.fsf@HIDDEN> <87zge43y6a.fsf@HIDDEN> <87wn92jggr.fsf@HIDDEN> Date: Sun, 16 Oct 2022 21:25:44 -0400 In-Reply-To: <87wn92jggr.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Fri, 14 Oct 2022 22:30:28 +0200") Message-ID: <87edv7z1ev.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 25018 Cc: 25018 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hi Ludovic! Ludovic Court=C3=A8s <ludo@HIDDEN> writes: > Hi Maxim, > > (Stripping Cc:.) > > Ludovic Court=C3=A8s <ludo@HIDDEN> skribis: > >> Thank you! (Your bug triage work is much appreciated!) We could turn >> the example here in a unit test; the only downside is that running the >> GC in a test is expensive. > > Actually, there are tests that most likely relied on the previous > behavior and are now failing in > tests/{derivations,nar,publish,pypi,store}.scm. We=E2=80=99ll have to lo= ok at > each one to make sure they are indeed making the wrong assumption and to > fix them. Hmm, I hadn't seen that coming. > What about reverting the change first so we can do that without > pressure and come up with a self-contained patch? Sounds reasonable, if we can't think of an immediate fix. --=20 Thanks, Maxim
bug-guix@HIDDEN
:bug#25018
; Package guix
.
Full text available.Received: (at 25018) by debbugs.gnu.org; 14 Oct 2022 20:30:45 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 14 16:30:45 2022 Received: from localhost ([127.0.0.1]:38744 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ojRKP-0007AS-0e for submit <at> debbugs.gnu.org; Fri, 14 Oct 2022 16:30:45 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54526) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1ojRKN-0007AF-0t for 25018 <at> debbugs.gnu.org; Fri, 14 Oct 2022 16:30:43 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:45946) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1ojRKF-0007ed-50; Fri, 14 Oct 2022 16:30:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=tLkJ7Lhrni5NZimqyV5wBx9Go4hZepfkJ5atEr7lmIQ=; b=cLFicnu7qaqyYQ7zZ4Vc VEcDYopOFxsPWVvhkr/7kRhqa0mYhtvwB52uR04r9Z4dRrDAqao4NtLSFNXuGZAGxCnJmleqLWNqn YiYksSLNJhZF0dFGzZKUCMR1jyZtjdW/mHFzx2c/QbaxoI72RgZJ9twuGIr8hAwimGk/m45q9vMyQ 6tIx+U2/Kh7XyVaFINV5wtV0PeruNq5qoZ03CSPyrpPi6FONR8Vsz0eZEBHqcQT4TMQ/KJc93a+sg nQ8CWvtocmf83caN/0nxANkBk0AL3w28pD0xvJM570FAjSHOE+v3dAqaRDwh4dCxkEB1x1Ky0j/A9 PpH0XrjRQie4Gw==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201]:55196 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1ojRKD-0000Dw-1g; Fri, 14 Oct 2022 16:30:34 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Subject: Re: bug#25018: GC incorrectly removes the temporary root file of the calling process References: <87d1hl55ur.fsf@HIDDEN> <87pmf34afr.fsf@HIDDEN> <87zge43y6a.fsf@HIDDEN> Date: Fri, 14 Oct 2022 22:30:28 +0200 In-Reply-To: <87zge43y6a.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Mon, 10 Oct 2022 10:01:01 +0200") Message-ID: <87wn92jggr.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 25018 Cc: 25018 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hi Maxim, (Stripping Cc:.) Ludovic Court=C3=A8s <ludo@HIDDEN> skribis: > Thank you! (Your bug triage work is much appreciated!) We could turn > the example here in a unit test; the only downside is that running the > GC in a test is expensive. Actually, there are tests that most likely relied on the previous behavior and are now failing in tests/{derivations,nar,publish,pypi,store}.scm. We=E2=80=99ll have to look= at each one to make sure they are indeed making the wrong assumption and to fix them. What about reverting the change first so we can do that without pressure and come up with a self-contained patch? Ludo=E2=80=99.
bug-guix@HIDDEN
:bug#25018
; Package guix
.
Full text available.Received: (at 25018) by debbugs.gnu.org; 10 Oct 2022 17:24:45 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 10 13:24:45 2022 Received: from localhost ([127.0.0.1]:49771 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ohwWD-00051C-QV for submit <at> debbugs.gnu.org; Mon, 10 Oct 2022 13:24:45 -0400 Received: from mail.arctype.co ([138.68.9.245]:46145) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ryan@HIDDEN>) id 1ohwWB-00050w-R8 for 25018 <at> debbugs.gnu.org; Mon, 10 Oct 2022 13:24:44 -0400 Received: from authenticated-user (mail.arctype.co [138.68.9.245]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by mail.arctype.co (Postfix) with ESMTPSA id 3106B13B19D for <25018 <at> debbugs.gnu.org>; Mon, 10 Oct 2022 17:24:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=arctype.co; s=mail; t=1665422677; bh=War4QiHQZ9GAjvPHAFmGItrolSGG5jCoMMV1VTETjB4=; h=Date:To:From:Subject:From; b=gT85u4Gy2+tytGQLuj0heCKhg9omQsSP3LcX4PDwhw7Il0jJjhDjDTEgxrDWp4Vnz 83oj/7UZ4+uedbmavc2flFMleVQvgc06n7oraLFYqb5kT3HSyt8Yyxiz0KZIiNtam/ EMuYmJ7LN78fuIu0Ml1twST6NiFt4gIr7V5om2K7HSC4P9clZofwLYM7M+wQnJJ/cU P6yffEVR5zJD36DMO0FTr3PPg4neEIdA6JBsEul2tp4YQfdcQMqmZRRtD69H9VQ6Qj BsrHqbLNmOoSRpFqnPD29fy1KY1PYJ3k5lYAObyG6dRJA67t2DtNanZFgjMIlWiC+i NWMi1PJlGlNuw== Message-ID: <1266b38d-9bf5-49be-f25f-2271b63c4bf9@HIDDEN> Date: Mon, 10 Oct 2022 10:24:36 -0700 MIME-Version: 1.0 Content-Language: en-US To: 25018 <at> debbugs.gnu.org From: Ryan Sundberg <ryan@HIDDEN> Subject: Broken test suite Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------45UUjUTN2FF0Ndb0hWdeL0l5" X-Debbugs-Envelope-To: 25018 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------45UUjUTN2FF0Ndb0hWdeL0l5 Content-Type: multipart/mixed; boundary="------------tNOaKiY0yIhdORW0oJuQOzVl"; protected-headers="v1" From: Ryan Sundberg <ryan@HIDDEN> To: 25018 <at> debbugs.gnu.org Message-ID: <1266b38d-9bf5-49be-f25f-2271b63c4bf9@HIDDEN> Subject: Broken test suite --------------tNOaKiY0yIhdORW0oJuQOzVl Content-Type: multipart/mixed; boundary="------------5CV7AsdnQOhBWMFcMJbRgDcS" --------------5CV7AsdnQOhBWMFcMJbRgDcS Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello, this patch seems to have broken the test suite in tests/store.scm. My test log file is attached. ./test-env make check TESTS=3Dtests/store.scm Cuirass did not detect the changes since they are at such a low level: (https://ci.guix.gnu.org/eval/700414) -- Sincerely, Ryan Sundberg --------------5CV7AsdnQOhBWMFcMJbRgDcS Content-Type: text/x-log; charset=UTF-8; name="test-suite.log" Content-Disposition: attachment; filename="test-suite.log" Content-Transfer-Encoding: base64 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KICAgR05VIEd1aXggMS4zLjAuMjM2ODctNzM4MDgtZGlydHk6IC4vdGVzdC1zdWl0ZS5s b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KCiMgVE9UQUw6IDc1CiMgUEFTUzogIDcxCiMgU0tJUDogIDAKIyBYRkFJTDogMAoj IEZBSUw6ICA0CiMgWFBBU1M6IDAKIyBFUlJPUjogMAoKLi4gY29udGVudHM6OiA6ZGVwdGg6 IDIKCkZBSUw6IHRlc3RzL3N0b3JlCj09PT09PT09PT09PT09PT09Cgp0ZXN0LW5hbWU6IG9w ZW4tY29ubmVjdGlvbiB3aXRoIGZpbGU6Ly8gVVJJCmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5 L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjU4CnNvdXJjZToKKyAodGVzdC1hc3NlcnQKKyAgICJv cGVuLWNvbm5lY3Rpb24gd2l0aCBmaWxlOi8vIFVSSSIKKyAgIChsZXQgKChzdG9yZSAob3Bl bi1jb25uZWN0aW9uCisgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiZmlsZTov LyIgKCVkYWVtb24tc29ja2V0LXVyaSkpKSkpCisgICAgIChhbmQgKGFkZC10ZXh0LXRvLXN0 b3JlIHN0b3JlICJmb28iICJiYXIiKQorICAgICAgICAgIChiZWdpbiAoY2xvc2UtY29ubmVj dGlvbiBzdG9yZSkgI3QpKSkpCmFjdHVhbC12YWx1ZTogI3QKcmVzdWx0OiBQQVNTCgp0ZXN0 LW5hbWU6IGNvbm5lY3Rpb24gaGFuZHNoYWtlIGVycm9yCmxvY2F0aW9uOiAvaG9tZS9zdW5k YnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjY2CnNvdXJjZToKKyAodGVzdC1lcXVhbAorICAg ImNvbm5lY3Rpb24gaGFuZHNoYWtlIGVycm9yIgorICAgRVBST1RPCisgICAobGV0ICgocG9y dCAoJW1ha2Utdm9pZC1wb3J0ICJydyIpKSkKKyAgICAgKGd1YXJkIChjICgoc3RvcmUtY29u bmVjdGlvbi1lcnJvcj8gYykKKyAgICAgICAgICAgICAgICAoYW5kIChlcT8gcG9ydCAoc3Rv cmUtY29ubmVjdGlvbi1lcnJvci1maWxlIGMpKQorICAgICAgICAgICAgICAgICAgICAgKHN0 b3JlLWNvbm5lY3Rpb24tZXJyb3ItY29kZSBjKSkpKQorICAgICAgICAgICAgKG9wZW4tY29u bmVjdGlvbiAjZiAjOnBvcnQgcG9ydCkKKyAgICAgICAgICAgICdicm9rZW4pKSkKZXhwZWN0 ZWQtdmFsdWU6IDcxCmFjdHVhbC12YWx1ZTogNzEKcmVzdWx0OiBQQVNTCgp0ZXN0LW5hbWU6 IHN0b3JlLXBhdGgtaGFzaC1wYXJ0CmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVz dHMvc3RvcmUuc2NtOjc1CnNvdXJjZToKKyAodGVzdC1lcXVhbAorICAgInN0b3JlLXBhdGgt aGFzaC1wYXJ0IgorICAgIjI4M2dxeTM5djNnOWR4ankyNnJ5bmwwemxzODJmbWNnIgorICAg KHN0b3JlLXBhdGgtaGFzaC1wYXJ0CisgICAgIChzdHJpbmctYXBwZW5kCisgICAgICAgKCVz dG9yZS1wcmVmaXgpCisgICAgICAgIi8yODNncXkzOXYzZzlkeGp5MjZyeW5sMHpsczgyZm1j Zy1ndWlsZS0yLjAuNyIpKSkKZXhwZWN0ZWQtdmFsdWU6ICIyODNncXkzOXYzZzlkeGp5MjZy eW5sMHpsczgyZm1jZyIKYWN0dWFsLXZhbHVlOiAiMjgzZ3F5Mzl2M2c5ZHhqeTI2cnlubDB6 bHM4MmZtY2ciCnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiBzdG9yZS1wYXRoLWhhc2gtcGFy dCAjZgpsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbTo4MQpz b3VyY2U6CisgKHRlc3QtZXF1YWwKKyAgICJzdG9yZS1wYXRoLWhhc2gtcGFydCAjZiIKKyAg ICNmCisgICAoc3RvcmUtcGF0aC1oYXNoLXBhcnQKKyAgICAgKHN0cmluZy1hcHBlbmQKKyAg ICAgICAoJXN0b3JlLXByZWZpeCkKKyAgICAgICAiL2Zvby9iYXIvMjgzZ3F5Mzl2M2c5ZHhq eTI2cnlubDB6bHM4MmZtY2ctZ3VpbGUtMi4wLjciKSkpCmV4cGVjdGVkLXZhbHVlOiAjZgph Y3R1YWwtdmFsdWU6ICNmCnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiBzdG9yZS1wYXRoLXBh Y2thZ2UtbmFtZQpsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNj bTo4Nwpzb3VyY2U6CisgKHRlc3QtZXF1YWwKKyAgICJzdG9yZS1wYXRoLXBhY2thZ2UtbmFt ZSIKKyAgICJndWlsZS0yLjAuNyIKKyAgIChzdG9yZS1wYXRoLXBhY2thZ2UtbmFtZQorICAg ICAoc3RyaW5nLWFwcGVuZAorICAgICAgICglc3RvcmUtcHJlZml4KQorICAgICAgICIvMjgz Z3F5Mzl2M2c5ZHhqeTI2cnlubDB6bHM4MmZtY2ctZ3VpbGUtMi4wLjciKSkpCmV4cGVjdGVk LXZhbHVlOiAiZ3VpbGUtMi4wLjciCmFjdHVhbC12YWx1ZTogImd1aWxlLTIuMC43IgpyZXN1 bHQ6IFBBU1MKCnRlc3QtbmFtZTogc3RvcmUtcGF0aC1wYWNrYWdlLW5hbWUgI2YKbG9jYXRp b246IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0cy9zdG9yZS5zY206OTMKc291cmNlOgorICh0 ZXN0LWVxdWFsCisgICAic3RvcmUtcGF0aC1wYWNrYWdlLW5hbWUgI2YiCisgICAjZgorICAg KHN0b3JlLXBhdGgtcGFja2FnZS1uYW1lCisgICAgICIvZm9vL2Jhci8yODNncXkzOXYzZzlk eGp5MjZyeW5sMHpsczgyZm1jZy1ndWlsZS0yLjAuNyIpKQpleHBlY3RlZC12YWx1ZTogI2YK YWN0dWFsLXZhbHVlOiAjZgphY3R1YWwtZXJyb3I6CisgKHdyb25nLXR5cGUtYXJnCisgICAi c3Vic3RyaW5nIgorICAgIldyb25nIHR5cGUgYXJndW1lbnQgaW4gcG9zaXRpb24gfkEgKGV4 cGVjdGluZyB+QSk6IH5TIgorICAgKDEgInN0cmluZyIgI2YpCisgICAoI2YpKQpyZXN1bHQ6 IFBBU1MKCnRlc3QtbmFtZTogZGlyZWN0LXN0b3JlLXBhdGg/CmxvY2F0aW9uOiAvaG9tZS9z dW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjk4CnNvdXJjZToKKyAodGVzdC1hc3NlcnQK KyAgICJkaXJlY3Qtc3RvcmUtcGF0aD8iCisgICAoYW5kIChkaXJlY3Qtc3RvcmUtcGF0aD8K KyAgICAgICAgICAoc3RyaW5nLWFwcGVuZAorICAgICAgICAgICAgKCVzdG9yZS1wcmVmaXgp CisgICAgICAgICAgICAiLzI4M2dxeTM5djNnOWR4ankyNnJ5bmwwemxzODJmbWNnLWd1aWxl LTIuMC43IikpCisgICAgICAgIChub3QgKGRpcmVjdC1zdG9yZS1wYXRoPworICAgICAgICAg ICAgICAgKHN0cmluZy1hcHBlbmQKKyAgICAgICAgICAgICAgICAgKCVzdG9yZS1wcmVmaXgp CisgICAgICAgICAgICAgICAgICIvMjgzZ3F5Mzl2M2c5ZHhqeTI2cnlubDB6bHM4MmZtY2ct Z3VpbGUtMi4wLjcvYmluL2d1aWxlIikpKQorICAgICAgICAobm90IChkaXJlY3Qtc3RvcmUt cGF0aD8gKCVzdG9yZS1wcmVmaXgpKSkpKQphY3R1YWwtdmFsdWU6ICN0CnJlc3VsdDogUEFT UwoKdGVzdC1uYW1lOiBwcm9maWxlcy9wZXItdXNlciBleGlzdHMgYW5kIGlzIG5vdCB3cml0 YWJsZQpsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbToxMTAK c291cmNlOgorICh0ZXN0LWVxdWFsCisgICAicHJvZmlsZXMvcGVyLXVzZXIgZXhpc3RzIGFu ZCBpcyBub3Qgd3JpdGFibGUiCisgICA0OTMKKyAgIChzdGF0OnBlcm1zCisgICAgIChzdGF0 IChzdHJpbmctYXBwZW5kCisgICAgICAgICAgICAgJXN0YXRlLWRpcmVjdG9yeQorICAgICAg ICAgICAgICIvcHJvZmlsZXMvcGVyLXVzZXIiKSkpKQpleHBlY3RlZC12YWx1ZTogNDkzCmFj dHVhbC12YWx1ZTogNDkzCnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiBwcm9maWxlcy9wZXIt dXNlci8kVVNFUiBleGlzdHMKbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0cy9z dG9yZS5zY206MTE0CnNvdXJjZToKKyAodGVzdC1lcXVhbAorICAgInByb2ZpbGVzL3Blci11 c2VyLyRVU0VSIGV4aXN0cyIKKyAgIChsaXN0IChnZXR1aWQpIDQ5MykKKyAgIChsZXQgKChz IChzdGF0IChzdHJpbmctYXBwZW5kCisgICAgICAgICAgICAgICAgICAgICVzdGF0ZS1kaXJl Y3RvcnkKKyAgICAgICAgICAgICAgICAgICAgIi9wcm9maWxlcy9wZXItdXNlci8iCisgICAg ICAgICAgICAgICAgICAgIChwYXNzd2Q6bmFtZSAoZ2V0cHd1aWQgKGdldHVpZCkpKSkpKSkK KyAgICAgKGxpc3QgKHN0YXQ6dWlkIHMpIChzdGF0OnBlcm1zIHMpKSkpCmV4cGVjdGVkLXZh bHVlOiAoMTAwMCA0OTMpCmFjdHVhbC12YWx1ZTogKDEwMDAgNDkzKQpyZXN1bHQ6IFBBU1MK CnRlc3QtbmFtZTogYWRkLXRvLXN0b3JlCmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgv dGVzdHMvc3RvcmUuc2NtOjEyMApzb3VyY2U6CisgKHRlc3QtZXF1YWwKKyAgICJhZGQtdG8t c3RvcmUiCisgICAnKCJzaGExIgorICAgICAic2hhMjU2IgorICAgICAic2hhNTEyIgorICAg ICAic2hhMy0yNTYiCisgICAgICJzaGEzLTUxMiIKKyAgICAgImJsYWtlMnMtMjU2IikKKyAg IChsZXQqICgoZmlsZSAoc2VhcmNoLXBhdGggJWxvYWQtcGF0aCAiZ3VpeC5zY20iKSkKKyAg ICAgICAgICAoY29udGVudAorICAgICAgICAgICAgKGNhbGwtd2l0aC1pbnB1dC1maWxlIGZp bGUgZ2V0LWJ5dGV2ZWN0b3ItYWxsKSkpCisgICAgIChtYXAgKGxhbWJkYSAoaGFzaC1hbGdv KQorICAgICAgICAgICAgKGxldCAoKGZpbGUgKGFkZC10by1zdG9yZQorICAgICAgICAgICAg ICAgICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImd1aXgu c2NtIgorICAgICAgICAgICAgICAgICAgICAgICAgICAjZgorICAgICAgICAgICAgICAgICAg ICAgICAgICBoYXNoLWFsZ28KKyAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSkpKQor ICAgICAgICAgICAgICAoYW5kIChkaXJlY3Qtc3RvcmUtcGF0aD8gZmlsZSkKKyAgICAgICAg ICAgICAgICAgICAoYnl0ZXZlY3Rvcj0/CisgICAgICAgICAgICAgICAgICAgICAoY2FsbC13 aXRoLWlucHV0LWZpbGUgZmlsZSBnZXQtYnl0ZXZlY3Rvci1hbGwpCisgICAgICAgICAgICAg ICAgICAgICBjb250ZW50KQorICAgICAgICAgICAgICAgICAgIGhhc2gtYWxnbykpKQorICAg ICAgICAgICcoInNoYTEiCisgICAgICAgICAgICAic2hhMjU2IgorICAgICAgICAgICAgInNo YTUxMiIKKyAgICAgICAgICAgICJzaGEzLTI1NiIKKyAgICAgICAgICAgICJzaGEzLTUxMiIK KyAgICAgICAgICAgICJibGFrZTJzLTI1NiIpKSkpCmV4cGVjdGVkLXZhbHVlOiAoInNoYTEi ICJzaGEyNTYiICJzaGE1MTIiICJzaGEzLTI1NiIgInNoYTMtNTEyIiAiYmxha2Uycy0yNTYi KQphY3R1YWwtdmFsdWU6ICgic2hhMSIgInNoYTI1NiIgInNoYTUxMiIgInNoYTMtMjU2IiAi c2hhMy01MTIiICJibGFrZTJzLTI1NiIpCnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiBhZGQt ZGF0YS10by1zdG9yZQpsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3Jl LnNjbToxMzIKc291cmNlOgorICh0ZXN0LWVxdWFsCisgICAiYWRkLWRhdGEtdG8tc3RvcmUi CisgICAjdnU4KDEgMiAzIDQgNSkKKyAgIChjYWxsLXdpdGgtaW5wdXQtZmlsZQorICAgICAo YWRkLWRhdGEtdG8tc3RvcmUgJXN0b3JlICJkYXRhIiAjdnU4KDEgMiAzIDQgNSkpCisgICAg IGdldC1ieXRldmVjdG9yLWFsbCkpCmV4cGVjdGVkLXZhbHVlOiAjdnU4KDEgMiAzIDQgNSkK YWN0dWFsLXZhbHVlOiAjdnU4KDEgMiAzIDQgNSkKcmVzdWx0OiBQQVNTCgp0ZXN0LW5hbWU6 IHZhbGlkLXBhdGg/IGxpdmUKbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0cy9z dG9yZS5zY206MTM3CnNvdXJjZToKKyAodGVzdC1hc3NlcnQKKyAgICJ2YWxpZC1wYXRoPyBs aXZlIgorICAgKGxldCAoKHAgKGFkZC10ZXh0LXRvLXN0b3JlICVzdG9yZSAiaGVsbG8iICJo ZWxsbywgd29ybGQiKSkpCisgICAgICh2YWxpZC1wYXRoPyAlc3RvcmUgcCkpKQphY3R1YWwt dmFsdWU6ICN0CnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiB2YWxpZC1wYXRoPyBmYWxzZQps b2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbToxNDEKc291cmNl OgorICh0ZXN0LWFzc2VydAorICAgInZhbGlkLXBhdGg/IGZhbHNlIgorICAgKG5vdCAodmFs aWQtcGF0aD8KKyAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAoc3RyaW5nLWFwcGVuZAor ICAgICAgICAgICAgKCVzdG9yZS1wcmVmaXgpCisgICAgICAgICAgICAiLyIKKyAgICAgICAg ICAgIChtYWtlLXN0cmluZyAzMiAjXGUpCisgICAgICAgICAgICAiLWZvb2JhciIpKSkpCmFj dHVhbC12YWx1ZTogI3QKcmVzdWx0OiBQQVNTCgp0ZXN0LW5hbWU6IHdpdGgtc3RvcmUsIG11 bHRpcGxlIHZhbHVlcwpsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3Jl LnNjbToxNDYKc291cmNlOgorICh0ZXN0LWVxdWFsCisgICAid2l0aC1zdG9yZSwgbXVsdGlw bGUgdmFsdWVzIgorICAgJygxIDIgMykKKyAgIChjYWxsLXdpdGgtdmFsdWVzCisgICAgIChs YW1iZGEgKCkKKyAgICAgICAod2l0aC1zdG9yZQorICAgICAgICAgcworICAgICAgICAgKGFk ZC10ZXh0LXRvLXN0b3JlIHMgImZvbyIgImJhciIpCisgICAgICAgICAodmFsdWVzIDEgMiAz KSkpCisgICAgIGxpc3QpKQpleHBlY3RlZC12YWx1ZTogKDEgMiAzKQphY3R1YWwtdmFsdWU6 ICgxIDIgMykKcmVzdWx0OiBQQVNTCgp0ZXN0LW5hbWU6IHZhbGlkLXBhdGg/IGVycm9yCmxv Y2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjE1NQpzb3VyY2U6 CisgKHRlc3QtYXNzZXJ0CisgICAidmFsaWQtcGF0aD8gZXJyb3IiCisgICAod2l0aC1zdG9y ZQorICAgICBzCisgICAgIChndWFyZCAoYyAoKHN0b3JlLXByb3RvY29sLWVycm9yPyBjKSAj dCkpCisgICAgICAgICAgICAodmFsaWQtcGF0aD8gcyAiZm9vIikKKyAgICAgICAgICAgICNm KSkpCmFjdHVhbC12YWx1ZTogI3QKcmVzdWx0OiBQQVNTCgp0ZXN0LW5hbWU6IHZhbGlkLXBh dGg/IHJlY292ZXJ5CmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUu c2NtOjE2MQpzb3VyY2U6CisgKHRlc3QtYXNzZXJ0CisgICAidmFsaWQtcGF0aD8gcmVjb3Zl cnkiCisgICAod2l0aC1zdG9yZQorICAgICBzCisgICAgIChsZXQtc3ludGF4ICgodHJ1ZS1p Zi1lcnJvcgorICAgICAgICAgICAgICAgICAgICAoc3ludGF4LXJ1bGVzICgpCisgICAgICAg ICAgICAgICAgICAgICAgKChfIGV4cCkKKyAgICAgICAgICAgICAgICAgICAgICAgKGd1YXJk IChjICgoc3RvcmUtcHJvdG9jb2wtZXJyb3I/IGMpICN0KSkgZXhwICNmKSkpKSkKKyAgICAg ICAoYW5kICh0cnVlLWlmLWVycm9yICh2YWxpZC1wYXRoPyBzICJmb28iKSkKKyAgICAgICAg ICAgICh0cnVlLWlmLWVycm9yICh2YWxpZC1wYXRoPyBzICJiYXIiKSkKKyAgICAgICAgICAg ICh0cnVlLWlmLWVycm9yICh2YWxpZC1wYXRoPyBzICJiYXoiKSkKKyAgICAgICAgICAgICh0 cnVlLWlmLWVycm9yICh2YWxpZC1wYXRoPyBzICJjaGJvdWliIikpCisgICAgICAgICAgICAo dmFsaWQtcGF0aD8KKyAgICAgICAgICAgICAgcworICAgICAgICAgICAgICAoYWRkLXRleHQt dG8tc3RvcmUgcyAidmFsaWQiICJ5ZWFoIikpKSkpKQphY3R1YWwtdmFsdWU6ICN0CnJlc3Vs dDogUEFTUwoKdGVzdC1uYW1lOiBoYXNoLXBhcnQtPnBhdGgKbG9jYXRpb246IC9ob21lL3N1 bmRicnkvZ3VpeC90ZXN0cy9zdG9yZS5zY206MTc4CnNvdXJjZToKKyAodGVzdC1hc3NlcnQK KyAgICJoYXNoLXBhcnQtPnBhdGgiCisgICAobGV0ICgocCAoYWRkLXRleHQtdG8tc3RvcmUg JXN0b3JlICJoZWxsbyIgImhlbGxvLCB3b3JsZCIpKSkKKyAgICAgKGVxdWFsPworICAgICAg IChoYXNoLXBhcnQtPnBhdGggJXN0b3JlIChzdG9yZS1wYXRoLWhhc2gtcGFydCBwKSkKKyAg ICAgICBwKSkpCmFjdHVhbC12YWx1ZTogI3QKcmVzdWx0OiBQQVNTCgpyYW5kb20gc2VlZCBm b3IgdGVzdHM6IDE2NjU0MTc1NTcKZmluZGluZyBnYXJiYWdlIGNvbGxlY3RvciByb290cy4u LgpkZXRlcm1pbmluZyBsaXZlL2RlYWQgcGF0aHMuLi4KdGVzdC1uYW1lOiBkZWFkLXBhdGhz CmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjE4Mwpzb3Vy Y2U6CisgKHRlc3QtYXNzZXJ0CisgICAiZGVhZC1wYXRocyIKKyAgIChsZXQgKChwIChhZGQt dGV4dC10by1zdG9yZQorICAgICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgInJh bmRvbS10ZXh0IgorICAgICAgICAgICAgICAocmFuZG9tLXRleHQpKSkpCisgICAgICgtPmJv b2wgKG1lbWJlciBwIChkZWFkLXBhdGhzICVzdG9yZSkpKSkpCmFjdHVhbC12YWx1ZTogI2YK cmVzdWx0OiBGQUlMCgp0ZXN0LW5hbWU6IGFkZC1pbmRpcmVjdC1yb290IGFuZCBmaW5kLXJv b3RzCmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjIwNApz b3VyY2U6CisgKHRlc3QtYXNzZXJ0CisgICAiYWRkLWluZGlyZWN0LXJvb3QgYW5kIGZpbmQt cm9vdHMiCisgICAoY2FsbC13aXRoLXRlbXBvcmFyeS1kaXJlY3RvcnkKKyAgICAgKGxhbWJk YSAoZGlyZWN0b3J5KQorICAgICAgIChsZXQqICgoaXRlbSAoYWRkLXRleHQtdG8tc3RvcmUK KyAgICAgICAgICAgICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICAgICAgICAi c29tZXRoaW5nIgorICAgICAgICAgICAgICAgICAgICAgIChyYW5kb20tdGV4dCkpKQorICAg ICAgICAgICAgICAocm9vdCAoc3RyaW5nLWFwcGVuZCBkaXJlY3RvcnkgIi9nYy1yb290Iikp KQorICAgICAgICAgKHN5bWxpbmsgaXRlbSByb290KQorICAgICAgICAgKGFkZC1pbmRpcmVj dC1yb290ICVzdG9yZSByb290KQorICAgICAgICAgKGxldCAoKHJlc3VsdAorICAgICAgICAg ICAgICAgICAobWVtYmVyIChjb25zIHJvb3QgaXRlbSkgKGZpbmQtcm9vdHMgJXN0b3JlKSkp KQorICAgICAgICAgICAoZGVsZXRlLWZpbGUgcm9vdCkKKyAgICAgICAgICAgcmVzdWx0KSkp KSkKYWN0dWFsLXZhbHVlOiAoKCIvdG1wL2d1aXgtZGlyZWN0b3J5LjVoemxjWi9nYy1yb290 IiAuICIvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUvZzVoNHM0ZjFxYWRpYzRh ZDUwcTN6NDdjajM3OTcxcTAtc29tZXRoaW5nIikpCnJlc3VsdDogUEFTUwoKZmluZGluZyBn YXJiYWdlIGNvbGxlY3RvciByb290cy4uLgpkZXRlcm1pbmluZyBsaXZlL2RlYWQgcGF0aHMu Li4KZmluZGluZyBnYXJiYWdlIGNvbGxlY3RvciByb290cy4uLgpkZXRlcm1pbmluZyBsaXZl L2RlYWQgcGF0aHMuLi4KdGVzdC1uYW1lOiBwZXJtYW5lbnQgcm9vdApsb2NhdGlvbjogL2hv bWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbToyMTUKc291cmNlOgorICh0ZXN0LWFz c2VydAorICAgInBlcm1hbmVudCByb290IgorICAgKGxldCogKChwICh3aXRoLXN0b3JlCisg ICAgICAgICAgICAgICBzdG9yZQorICAgICAgICAgICAgICAgKGxldCAoKHAgKGFkZC10ZXh0 LXRvLXN0b3JlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICJyYW5kb20tdGV4dCIKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgKHJhbmRvbS10ZXh0KSkpKQorICAgICAgICAgICAgICAgICAoYWRkLXBlcm1hbmVudC1y b290IHApCisgICAgICAgICAgICAgICAgIChhZGQtcGVybWFuZW50LXJvb3QgcCkKKyAgICAg ICAgICAgICAgICAgcCkpKSkKKyAgICAgKGFuZCAobWVtYmVyIHAgKGxpdmUtcGF0aHMgJXN0 b3JlKSkKKyAgICAgICAgICAoYmVnaW4KKyAgICAgICAgICAgIChyZW1vdmUtcGVybWFuZW50 LXJvb3QgcCkKKyAgICAgICAgICAgICgtPmJvb2wgKG1lbWJlciBwIChkZWFkLXBhdGhzICVz dG9yZSkpKSkpKSkKYWN0dWFsLXZhbHVlOiAjdApyZXN1bHQ6IFBBU1MKCmZpbmRpbmcgZ2Fy YmFnZSBjb2xsZWN0b3Igcm9vdHMuLi4KdGVzdC1uYW1lOiBkZWFkIHBhdGggY2FuIGJlIGV4 cGxpY2l0bHkgY29sbGVjdGVkCmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMv c3RvcmUuc2NtOjIyNwpzb3VyY2U6CisgKHRlc3QtYXNzZXJ0CisgICAiZGVhZCBwYXRoIGNh biBiZSBleHBsaWNpdGx5IGNvbGxlY3RlZCIKKyAgIChsZXQgKChwIChhZGQtdGV4dC10by1z dG9yZQorICAgICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgInJhbmRvbS10ZXh0 IgorICAgICAgICAgICAgICAocmFuZG9tLXRleHQpCisgICAgICAgICAgICAgICcoKSkpKQor ICAgICAobGV0LXZhbHVlcworICAgICAgICgoKHBhdGhzIGZyZWVkKSAoZGVsZXRlLXBhdGhz ICVzdG9yZSAobGlzdCBwKSkpKQorICAgICAgIChhbmQgKGVxdWFsPyBwYXRocyAobGlzdCBw KSkKKyAgICAgICAgICAgIChub3QgKGZpbGUtZXhpc3RzPyBwKSkpKSkpCmFjdHVhbC12YWx1 ZTogI2YKYWN0dWFsLWVycm9yOgorICglZXhjZXB0aW9uCisgICAjPCZzdG9yZS1wcm90b2Nv bC1lcnJvciBtZXNzYWdlOiAiY2Fubm90IGRlbGV0ZSBwYXRoIGAvaG9tZS9zdW5kYnJ5L2d1 aXgvdGVzdC10bXAvc3RvcmUvYmtqMjB6bnYzcGp4bTJtcTA1MWJpd25icGtwYWdzNWwtcmFu ZG9tLXRleHQnIHNpbmNlIGl0IGlzIHN0aWxsIGFsaXZlIiBzdGF0dXM6IDE+KQpyZXN1bHQ6 IEZBSUwKCmZpbmRpbmcgZ2FyYmFnZSBjb2xsZWN0b3Igcm9vdHMuLi4KcmVtb3Zpbmcgc3Rh bGUgdGVtcG9yYXJ5IHJvb3RzIGZpbGUgYC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC92 YXIvNDgwNi90ZW1wcm9vdHMvNDg0MicKdGVzdC1uYW1lOiBhZGQtdGV4dC10by1zdG9yZS9h ZGQtdG8tc3RvcmUgdnMuIGRlbGV0ZS1wYXRocwpsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9n dWl4L3Rlc3RzL3N0b3JlLnNjbToyMzcKc291cmNlOgorICh0ZXN0LWFzc2VydAorICAgImFk ZC10ZXh0LXRvLXN0b3JlL2FkZC10by1zdG9yZSB2cy4gZGVsZXRlLXBhdGhzIgorICAgKHdp dGgtc3RvcmUKKyAgICAgc3RvcmUKKyAgICAgKGxldCogKCh0ZXh0IChyYW5kb20tdGV4dCkp CisgICAgICAgICAgICAoZmlsZSAoc2VhcmNoLXBhdGggJWxvYWQtcGF0aCAiZ3VpeC5zY20i KSkKKyAgICAgICAgICAgIChwYXRoMSAoYWRkLXRleHQtdG8tc3RvcmUgc3RvcmUgImRlbGV0 ZS1tZSIgdGV4dCkpCisgICAgICAgICAgICAocGF0aDIgKGFkZC10by1zdG9yZSBzdG9yZSAi ZGVsZXRlLW1lIiAjdCAic2hhMjU2IiBmaWxlKSkKKyAgICAgICAgICAgIChkZWxldGVkIChk ZWxldGUtcGF0aHMgc3RvcmUgKGxpc3QgcGF0aDEgcGF0aDIpKSkpCisgICAgICAgKGFuZCAo c3RyaW5nPT8KKyAgICAgICAgICAgICAgcGF0aDEKKyAgICAgICAgICAgICAgKGFkZC10ZXh0 LXRvLXN0b3JlIHN0b3JlICJkZWxldGUtbWUiIHRleHQpKQorICAgICAgICAgICAgKHN0cmlu Zz0/CisgICAgICAgICAgICAgIHBhdGgyCisgICAgICAgICAgICAgIChhZGQtdG8tc3RvcmUg c3RvcmUgImRlbGV0ZS1tZSIgI3QgInNoYTI1NiIgZmlsZSkpCisgICAgICAgICAgICAobHNl dD0gc3RyaW5nPT8gZGVsZXRlZCAobGlzdCBwYXRoMSBwYXRoMikpCisgICAgICAgICAgICAo dmFsaWQtcGF0aD8gc3RvcmUgcGF0aDEpCisgICAgICAgICAgICAodmFsaWQtcGF0aD8gc3Rv cmUgcGF0aDIpCisgICAgICAgICAgICAoZmlsZS1leGlzdHM/IHBhdGgxKQorICAgICAgICAg ICAgKGZpbGUtZXhpc3RzPyBwYXRoMikpKSkpCmFjdHVhbC12YWx1ZTogI2YKYWN0dWFsLWVy cm9yOgorICglZXhjZXB0aW9uCisgICAjPCZzdG9yZS1wcm90b2NvbC1lcnJvciBtZXNzYWdl OiAiY2Fubm90IGRlbGV0ZSBwYXRoIGAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3Rv cmUvM2NpNGxwbnc2a2Z3NTB5d2doYm03OGZxOWxyZnY0NzMtZGVsZXRlLW1lJyBzaW5jZSBp dCBpcyBzdGlsbCBhbGl2ZSIgc3RhdHVzOiAxPikKcmVzdWx0OiBGQUlMCgp0ZXN0LW5hbWU6 IGFkZC1maWxlLXRyZWUtdG8tc3RvcmUKbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90 ZXN0cy9zdG9yZS5zY206MjU0CnNvdXJjZToKKyAodGVzdC1lcXVhbAorICAgImFkZC1maWxl LXRyZWUtdG8tc3RvcmUiCisgICBgKDQyCisgICAgICgiLiIgZGlyZWN0b3J5ICN0KQorICAg ICAoIi4vYmFyIiBkaXJlY3RvcnkgI3QpCisgICAgICgiLi9mb28iIGRpcmVjdG9yeSAjdCkK KyAgICAgKCIuL2Zvby9hIiByZWd1bGFyICJmaWxlIGEiKQorICAgICAoIi4vZm9vL2IiIHN5 bWxpbmsgImEiKQorICAgICAoIi4vZm9vL2MiIGRpcmVjdG9yeSAjdCkKKyAgICAgKCIuL2Zv by9jL3AiIHJlZ3VsYXIgImZpbGUgcCIpCisgICAgICgiLi9mb28vYy9xIiBkaXJlY3Rvcnkg I3QpCisgICAgICgiLi9mb28vYy9xL3giCisgICAgICByZWd1bGFyCisgICAgICAsKHN0cmlu Zy1hcHBlbmQgIiMhIiAlc2hlbGwgIlxuZXhpdCA0MiIpKQorICAgICAoIi4vZm9vL2MvcS95 IiBzeW1saW5rICIuLiIpCisgICAgICgiLi9mb28vYy9xL3oiIGRpcmVjdG9yeSAjdCkpCisg ICAobGV0KiAoKHRyZWUgYCgiZmlsZS10cmVlIgorICAgICAgICAgICAgICAgICAgZGlyZWN0 b3J5CisgICAgICAgICAgICAgICAgICAoImZvbyIKKyAgICAgICAgICAgICAgICAgICBkaXJl Y3RvcnkKKyAgICAgICAgICAgICAgICAgICAoImEiIHJlZ3VsYXIgKGRhdGEgImZpbGUgYSIp KQorICAgICAgICAgICAgICAgICAgICgiYiIgc3ltbGluayAiYSIpCisgICAgICAgICAgICAg ICAgICAgKCJjIgorICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnkKKyAgICAgICAgICAg ICAgICAgICAgKCJwIiByZWd1bGFyIChkYXRhICwoc3RyaW5nLT51dGY4ICJmaWxlIHAiKSkp CisgICAgICAgICAgICAgICAgICAgICgicSIKKyAgICAgICAgICAgICAgICAgICAgIGRpcmVj dG9yeQorICAgICAgICAgICAgICAgICAgICAgKCJ4IgorICAgICAgICAgICAgICAgICAgICAg IGV4ZWN1dGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAoZGF0YSAsKHN0cmluZy1hcHBl bmQgIiMhIiAlc2hlbGwgIlxuZXhpdCA0MiIpKSkKKyAgICAgICAgICAgICAgICAgICAgICgi eSIgc3ltbGluayAiLi4iKQorICAgICAgICAgICAgICAgICAgICAgKCJ6IiBkaXJlY3Rvcnkp KSkpCisgICAgICAgICAgICAgICAgICAoImJhciIgZGlyZWN0b3J5KSkpCisgICAgICAgICAg KHJlc3VsdCAoYWRkLWZpbGUtdHJlZS10by1zdG9yZSAlc3RvcmUgdHJlZSkpKQorICAgICAo Y29ucyAoc3RhdHVzOmV4aXQtdmFsCisgICAgICAgICAgICAgKHN5c3RlbSogKHN0cmluZy1h cHBlbmQgcmVzdWx0ICIvZm9vL2MvcS94IikpKQorICAgICAgICAgICAod2l0aC1kaXJlY3Rv cnktZXhjdXJzaW9uCisgICAgICAgICAgICAgcmVzdWx0CisgICAgICAgICAgICAgKG1hcCAo bGFtYmRhIChmaWxlKQorICAgICAgICAgICAgICAgICAgICAobGV0ICgodHlwZSAoc3RhdDp0 eXBlIChsc3RhdCBmaWxlKSkpKQorICAgICAgICAgICAgICAgICAgICAgIGAoLGZpbGUKKyAg ICAgICAgICAgICAgICAgICAgICAgICx0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAs KG1hdGNoIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChvciAncmVn dWxhciAnZXhlY3V0YWJsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj YWxsLXdpdGgtaW5wdXQtZmlsZSBmaWxlIGdldC1zdHJpbmctYWxsKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKCdzeW1saW5rIChyZWFkbGluayBmaWxlKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdkaXJlY3RvcnkgI3QpKSkpKQorICAgICAg ICAgICAgICAgICAgKGZpbmQtZmlsZXMgIi4iICM6ZGlyZWN0b3JpZXM/ICN0KSkpKSkpCmV4 cGVjdGVkLXZhbHVlOiAoNDIgKCIuIiBkaXJlY3RvcnkgI3QpICgiLi9iYXIiIGRpcmVjdG9y eSAjdCkgKCIuL2ZvbyIgZGlyZWN0b3J5ICN0KSAoIi4vZm9vL2EiIHJlZ3VsYXIgImZpbGUg YSIpICgiLi9mb28vYiIgc3ltbGluayAiYSIpICgiLi9mb28vYyIgZGlyZWN0b3J5ICN0KSAo Ii4vZm9vL2MvcCIgcmVndWxhciAiZmlsZSBwIikgKCIuL2Zvby9jL3EiIGRpcmVjdG9yeSAj dCkgKCIuL2Zvby9jL3EveCIgcmVndWxhciAiIyEvYmluL3NoXG5leGl0IDQyIikgKCIuL2Zv by9jL3EveSIgc3ltbGluayAiLi4iKSAoIi4vZm9vL2MvcS96IiBkaXJlY3RvcnkgI3QpKQph Y3R1YWwtdmFsdWU6ICg0MiAoIi4iIGRpcmVjdG9yeSAjdCkgKCIuL2JhciIgZGlyZWN0b3J5 ICN0KSAoIi4vZm9vIiBkaXJlY3RvcnkgI3QpICgiLi9mb28vYSIgcmVndWxhciAiZmlsZSBh IikgKCIuL2Zvby9iIiBzeW1saW5rICJhIikgKCIuL2Zvby9jIiBkaXJlY3RvcnkgI3QpICgi Li9mb28vYy9wIiByZWd1bGFyICJmaWxlIHAiKSAoIi4vZm9vL2MvcSIgZGlyZWN0b3J5ICN0 KSAoIi4vZm9vL2MvcS94IiByZWd1bGFyICIjIS9iaW4vc2hcbmV4aXQgNDIiKSAoIi4vZm9v L2MvcS95IiBzeW1saW5rICIuLiIpICgiLi9mb28vYy9xL3oiIGRpcmVjdG9yeSAjdCkpCnJl c3VsdDogUEFTUwoKdGVzdC1uYW1lOiBhZGQtZmlsZS10cmVlLXRvLXN0b3JlLCBmbGF0Cmxv Y2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjI5NApzb3VyY2U6 CisgKHRlc3QtZXF1YWwKKyAgICJhZGQtZmlsZS10cmVlLXRvLXN0b3JlLCBmbGF0IgorICAg IkhlbGxvLCB3b3JsZCEiCisgICAobGV0KiAoKHRyZWUgYCgiZmxhdC1maWxlIiByZWd1bGFy IChkYXRhICJIZWxsbywgd29ybGQhIikpKQorICAgICAgICAgIChyZXN1bHQgKGFkZC1maWxl LXRyZWUtdG8tc3RvcmUgJXN0b3JlIHRyZWUpKSkKKyAgICAgKGFuZCAoZmlsZS1leGlzdHM/ IHJlc3VsdCkKKyAgICAgICAgICAoY2FsbC13aXRoLWlucHV0LWZpbGUgcmVzdWx0IGdldC1z dHJpbmctYWxsKSkpKQpleHBlY3RlZC12YWx1ZTogIkhlbGxvLCB3b3JsZCEiCmFjdHVhbC12 YWx1ZTogIkhlbGxvLCB3b3JsZCEiCnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiByZWZlcmVu Y2VzCmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjMwMQpz b3VyY2U6CisgKHRlc3QtYXNzZXJ0CisgICAicmVmZXJlbmNlcyIKKyAgIChsZXQqICgodDEg KGFkZC10ZXh0LXRvLXN0b3JlCisgICAgICAgICAgICAgICAgJXN0b3JlCisgICAgICAgICAg ICAgICAgInJhbmRvbTEiCisgICAgICAgICAgICAgICAgKHJhbmRvbS10ZXh0KSkpCisgICAg ICAgICAgKHQyIChhZGQtdGV4dC10by1zdG9yZQorICAgICAgICAgICAgICAgICVzdG9yZQor ICAgICAgICAgICAgICAgICJyYW5kb20yIgorICAgICAgICAgICAgICAgIChyYW5kb20tdGV4 dCkKKyAgICAgICAgICAgICAgICAobGlzdCB0MSkpKSkKKyAgICAgKGFuZCAoZXF1YWw/IChs aXN0IHQxKSAocmVmZXJlbmNlcyAlc3RvcmUgdDIpKQorICAgICAgICAgIChlcXVhbD8gKGxp c3QgdDIpIChyZWZlcnJlcnMgJXN0b3JlIHQxKSkKKyAgICAgICAgICAobnVsbD8gKHJlZmVy ZW5jZXMgJXN0b3JlIHQxKSkKKyAgICAgICAgICAobnVsbD8gKHJlZmVycmVycyAlc3RvcmUg dDIpKSkpKQphY3R1YWwtdmFsdWU6ICN0CnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiBzdWJz dGl0dXRhYmxlLXBhdGgtaW5mbyB3aGVuIHN1YnN0aXR1dGVzIGFyZSB0dXJuZWQgb2ZmCmxv Y2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjMxMQpzb3VyY2U6 CisgKHRlc3QtZXF1YWwKKyAgICJzdWJzdGl0dXRhYmxlLXBhdGgtaW5mbyB3aGVuIHN1YnN0 aXR1dGVzIGFyZSB0dXJuZWQgb2ZmIgorICAgJygpCisgICAod2l0aC1zdG9yZQorICAgICBz CisgICAgIChzZXQtYnVpbGQtb3B0aW9ucyBzICM6dXNlLXN1YnN0aXR1dGVzPyAjZikKKyAg ICAgKGxldCogKChiIChhZGQtdG8tc3RvcmUKKyAgICAgICAgICAgICAgICAgcworICAgICAg ICAgICAgICAgICAiYmFzaCIKKyAgICAgICAgICAgICAgICAgI3QKKyAgICAgICAgICAgICAg ICAgInNoYTI1NiIKKyAgICAgICAgICAgICAgICAgKHNlYXJjaC1ib290c3RyYXAtYmluYXJ5 CisgICAgICAgICAgICAgICAgICAgImJhc2giCisgICAgICAgICAgICAgICAgICAgKCVjdXJy ZW50LXN5c3RlbSkpKSkKKyAgICAgICAgICAgIChkIChkZXJpdmF0aW9uCisgICAgICAgICAg ICAgICAgIHMKKyAgICAgICAgICAgICAgICAgInRoZS10aGluZyIKKyAgICAgICAgICAgICAg ICAgYgorICAgICAgICAgICAgICAgICAnKCItLXZlcnNpb24iKQorICAgICAgICAgICAgICAg ICAjOmlucHV0cworICAgICAgICAgICAgICAgICBgKCgsYikpKSkKKyAgICAgICAgICAgIChv IChkZXJpdmF0aW9uLT5vdXRwdXQtcGF0aCBkKSkpCisgICAgICAgKHdpdGgtZGVyaXZhdGlv bi1uYXJpbmZvCisgICAgICAgICBkCisgICAgICAgICAoc3Vic3RpdHV0YWJsZS1wYXRoLWlu Zm8gcyAobGlzdCBvKSkpKSkpCmV4cGVjdGVkLXZhbHVlOiAoKQphY3R1YWwtdmFsdWU6ICgp CnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiBzdWJzdGl0dXRhYmxlLXBhdGhzIHdoZW4gc3Vi c3RpdHV0ZXMgYXJlIHR1cm5lZCBvZmYKbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90 ZXN0cy9zdG9yZS5zY206MzI0CnNvdXJjZToKKyAodGVzdC1lcXVhbAorICAgInN1YnN0aXR1 dGFibGUtcGF0aHMgd2hlbiBzdWJzdGl0dXRlcyBhcmUgdHVybmVkIG9mZiIKKyAgICcoKQor ICAgKHdpdGgtc3RvcmUKKyAgICAgcworICAgICAoc2V0LWJ1aWxkLW9wdGlvbnMgcyAjOnVz ZS1zdWJzdGl0dXRlcz8gI2YpCisgICAgIChsZXQqICgoYiAoYWRkLXRvLXN0b3JlCisgICAg ICAgICAgICAgICAgIHMKKyAgICAgICAgICAgICAgICAgImJhc2giCisgICAgICAgICAgICAg ICAgICN0CisgICAgICAgICAgICAgICAgICJzaGEyNTYiCisgICAgICAgICAgICAgICAgIChz ZWFyY2gtYm9vdHN0cmFwLWJpbmFyeQorICAgICAgICAgICAgICAgICAgICJiYXNoIgorICAg ICAgICAgICAgICAgICAgICglY3VycmVudC1zeXN0ZW0pKSkpCisgICAgICAgICAgICAoZCAo ZGVyaXZhdGlvbgorICAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgICJ0aGUt dGhpbmciCisgICAgICAgICAgICAgICAgIGIKKyAgICAgICAgICAgICAgICAgJygiLS12ZXJz aW9uIikKKyAgICAgICAgICAgICAgICAgIzppbnB1dHMKKyAgICAgICAgICAgICAgICAgYCgo LGIpKSkpCisgICAgICAgICAgICAobyAoZGVyaXZhdGlvbi0+b3V0cHV0LXBhdGggZCkpKQor ICAgICAgICh3aXRoLWRlcml2YXRpb24tbmFyaW5mbworICAgICAgICAgZAorICAgICAgICAg KHN1YnN0aXR1dGFibGUtcGF0aHMgcyAobGlzdCBvKSkpKSkpCmV4cGVjdGVkLXZhbHVlOiAo KQphY3R1YWwtdmFsdWU6ICgpCnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiByZXF1aXNpdGVz CmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjMzNwpzb3Vy Y2U6CisgKHRlc3QtYXNzZXJ0CisgICAicmVxdWlzaXRlcyIKKyAgIChsZXQqICgodDEgKGFk ZC10ZXh0LXRvLXN0b3JlCisgICAgICAgICAgICAgICAgJXN0b3JlCisgICAgICAgICAgICAg ICAgInJhbmRvbTEiCisgICAgICAgICAgICAgICAgKHJhbmRvbS10ZXh0KQorICAgICAgICAg ICAgICAgICcoKSkpCisgICAgICAgICAgKHQyIChhZGQtdGV4dC10by1zdG9yZQorICAgICAg ICAgICAgICAgICVzdG9yZQorICAgICAgICAgICAgICAgICJyYW5kb20yIgorICAgICAgICAg ICAgICAgIChyYW5kb20tdGV4dCkKKyAgICAgICAgICAgICAgICAobGlzdCB0MSkpKQorICAg ICAgICAgICh0MyAoYWRkLXRleHQtdG8tc3RvcmUKKyAgICAgICAgICAgICAgICAlc3RvcmUK KyAgICAgICAgICAgICAgICAicmFuZG9tMyIKKyAgICAgICAgICAgICAgICAocmFuZG9tLXRl eHQpCisgICAgICAgICAgICAgICAgKGxpc3QgdDIpKSkKKyAgICAgICAgICAodDQgKGFkZC10 ZXh0LXRvLXN0b3JlCisgICAgICAgICAgICAgICAgJXN0b3JlCisgICAgICAgICAgICAgICAg InJhbmRvbTQiCisgICAgICAgICAgICAgICAgKHJhbmRvbS10ZXh0KQorICAgICAgICAgICAg ICAgIChsaXN0IHQxIHQzKSkpKQorICAgICAoZGVmaW5lIChzYW1lPyB4IHkpCisgICAgICAg KGFuZCAoPSAobGVuZ3RoIHgpIChsZW5ndGggeSkpCisgICAgICAgICAgICAobHNldD0gZXF1 YWw/IHggeSkpKQorICAgICAoYW5kIChzYW1lPyAocmVxdWlzaXRlcyAlc3RvcmUgKGxpc3Qg dDEpKSAobGlzdCB0MSkpCisgICAgICAgICAgKHNhbWU/IChyZXF1aXNpdGVzICVzdG9yZSAo bGlzdCB0MikpCisgICAgICAgICAgICAgICAgIChsaXN0IHQxIHQyKSkKKyAgICAgICAgICAo c2FtZT8gKHJlcXVpc2l0ZXMgJXN0b3JlIChsaXN0IHQzKSkKKyAgICAgICAgICAgICAgICAg KGxpc3QgdDEgdDIgdDMpKQorICAgICAgICAgIChzYW1lPyAocmVxdWlzaXRlcyAlc3RvcmUg KGxpc3QgdDQpKQorICAgICAgICAgICAgICAgICAobGlzdCB0MSB0MiB0MyB0NCkpCisgICAg ICAgICAgKHNhbWU/IChyZXF1aXNpdGVzICVzdG9yZSAobGlzdCB0MSB0MiB0MyB0NCkpCisg ICAgICAgICAgICAgICAgIChsaXN0IHQxIHQyIHQzIHQ0KSkpKSkKYWN0dWFsLXZhbHVlOiAj dApyZXN1bHQ6IFBBU1MKCndhcm5pbmc6IGluICd0aGUtdGhpbmcnOiBkZXByZWNhdGVkICdk ZXJpdmF0aW9uJyBjYWxsaW5nIGNvbnZlbnRpb24gdXNlZAp3YXJuaW5nOiBpbiAndGhlLXRo aW5nJzogZGVwcmVjYXRlZCAnZGVyaXZhdGlvbicgY2FsbGluZyBjb252ZW50aW9uIHVzZWQK d2FybmluZzogaW4gJ3RoZS10aGluZyc6IGRlcHJlY2F0ZWQgJ2Rlcml2YXRpb24nIGNhbGxp bmcgY29udmVudGlvbiB1c2VkCndhcm5pbmc6IGluICd0aGUtdGhpbmcnOiBkZXByZWNhdGVk ICdkZXJpdmF0aW9uJyBjYWxsaW5nIGNvbnZlbnRpb24gdXNlZAp3YXJuaW5nOiBpbiAndGhl LXRoaW5nJzogZGVwcmVjYXRlZCAnZGVyaXZhdGlvbicgY2FsbGluZyBjb252ZW50aW9uIHVz ZWQKd2FybmluZzogaW4gJ3RoZS10aGluZyc6IGRlcHJlY2F0ZWQgJ2Rlcml2YXRpb24nIGNh bGxpbmcgY29udmVudGlvbiB1c2VkCndhcm5pbmc6IGluICd0aGUtdGhpbmcnOiBkZXByZWNh dGVkICdkZXJpdmF0aW9uJyBjYWxsaW5nIGNvbnZlbnRpb24gdXNlZAp3YXJuaW5nOiBpbiAn dGhlLXRoaW5nJzogZGVwcmVjYXRlZCAnZGVyaXZhdGlvbicgY2FsbGluZyBjb252ZW50aW9u IHVzZWQKQCBidWlsZC1zdGFydGVkIC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9y ZS83eGEyNzJyMzY4NzNiMGNsN240Ymcwa3c5YWNjYXAxaC10aGUtdGhpbmcuZHJ2IC0geDg2 XzY0LWxpbnV4IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC92YXIvbG9nL2d1aXgvZHJ2 cy83eC8vYTI3MnIzNjg3M2IwY2w3bjRiZzBrdzlhY2NhcDFoLXRoZS10aGluZy5kcnYuZ3og NDk3MQpAIGJ1aWxkLXN1Y2NlZWRlZCAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3Rv cmUvN3hhMjcycjM2ODczYjBjbDduNGJnMGt3OWFjY2FwMWgtdGhlLXRoaW5nLmRydiAtCnRl c3QtbmFtZTogZGVyaXZlcnMKbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0cy9z dG9yZS5zY206MzU3CnNvdXJjZToKKyAodGVzdC1hc3NlcnQKKyAgICJkZXJpdmVycyIKKyAg IChsZXQqICgoYiAoYWRkLXRleHQtdG8tc3RvcmUKKyAgICAgICAgICAgICAgICVzdG9yZQor ICAgICAgICAgICAgICAgImJ1aWxkIgorICAgICAgICAgICAgICAgImVjaG8gJGZvbyA+ICRv dXQiCisgICAgICAgICAgICAgICAnKCkpKQorICAgICAgICAgIChzIChhZGQtdG8tc3RvcmUK KyAgICAgICAgICAgICAgICVzdG9yZQorICAgICAgICAgICAgICAgImJhc2giCisgICAgICAg ICAgICAgICAjdAorICAgICAgICAgICAgICAgInNoYTI1NiIKKyAgICAgICAgICAgICAgIChz ZWFyY2gtYm9vdHN0cmFwLWJpbmFyeQorICAgICAgICAgICAgICAgICAiYmFzaCIKKyAgICAg ICAgICAgICAgICAgKCVjdXJyZW50LXN5c3RlbSkpKSkKKyAgICAgICAgICAoZCAoZGVyaXZh dGlvbgorICAgICAgICAgICAgICAgJXN0b3JlCisgICAgICAgICAgICAgICAidGhlLXRoaW5n IgorICAgICAgICAgICAgICAgcworICAgICAgICAgICAgICAgYCgiLWUiICxiKQorICAgICAg ICAgICAgICAgIzplbnYtdmFycworICAgICAgICAgICAgICAgYCgoImZvbyIgdW5xdW90ZSAo cmFuZG9tLXRleHQpKSkKKyAgICAgICAgICAgICAgICM6aW5wdXRzCisgICAgICAgICAgICAg ICBgKCgsYikgKCxzKSkpKQorICAgICAgICAgIChvIChkZXJpdmF0aW9uLT5vdXRwdXQtcGF0 aCBkKSkpCisgICAgIChhbmQgKGJ1aWxkLWRlcml2YXRpb25zICVzdG9yZSAobGlzdCBkKSkK KyAgICAgICAgICAoZXF1YWw/CisgICAgICAgICAgICAocXVlcnktZGVyaXZhdGlvbi1vdXRw dXRzCisgICAgICAgICAgICAgICVzdG9yZQorICAgICAgICAgICAgICAoZGVyaXZhdGlvbi1m aWxlLW5hbWUgZCkpCisgICAgICAgICAgICAobGlzdCBvKSkKKyAgICAgICAgICAoZXF1YWw/ CisgICAgICAgICAgICAodmFsaWQtZGVyaXZlcnMgJXN0b3JlIG8pCisgICAgICAgICAgICAo bGlzdCAoZGVyaXZhdGlvbi1maWxlLW5hbWUgZCkpKSkpKQphY3R1YWwtdmFsdWU6ICN0CnJl c3VsdDogUEFTUwoKQCBidWlsZC1zdGFydGVkIC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRt cC9zdG9yZS9mbG44aGNsNWMyOW00ajl5OGI5bXY1MjcxeW5pbG15bS10aGUtdGhpbmcuZHJ2 IC0geDg2XzY0LWxpbnV4IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC92YXIvbG9nL2d1 aXgvZHJ2cy9mbC8vbjhoY2w1YzI5bTRqOXk4YjltdjUyNzF5bmlsbXltLXRoZS10aGluZy5k cnYuZ3ogNDk5MQpAIGJ1aWxkLXN1Y2NlZWRlZCAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10 bXAvc3RvcmUvZmxuOGhjbDVjMjltNGo5eThiOW12NTI3MXluaWxteW0tdGhlLXRoaW5nLmRy diAtCnRlc3QtbmFtZTogd2l0aC1idWlsZC1oYW5kbGVyCmxvY2F0aW9uOiAvaG9tZS9zdW5k YnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjM3Mwpzb3VyY2U6CisgKHRlc3QtZXF1YWwKKyAg ICJ3aXRoLWJ1aWxkLWhhbmRsZXIiCisgICAnc3VjY2VzcworICAgKGxldCogKChiIChhZGQt dGV4dC10by1zdG9yZQorICAgICAgICAgICAgICAgJXN0b3JlCisgICAgICAgICAgICAgICAi YnVpbGQiCisgICAgICAgICAgICAgICAiZWNobyAkZm9vID4gJG91dCIKKyAgICAgICAgICAg ICAgICcoKSkpCisgICAgICAgICAgKHMgKGFkZC10by1zdG9yZQorICAgICAgICAgICAgICAg JXN0b3JlCisgICAgICAgICAgICAgICAiYmFzaCIKKyAgICAgICAgICAgICAgICN0CisgICAg ICAgICAgICAgICAic2hhMjU2IgorICAgICAgICAgICAgICAgKHNlYXJjaC1ib290c3RyYXAt YmluYXJ5CisgICAgICAgICAgICAgICAgICJiYXNoIgorICAgICAgICAgICAgICAgICAoJWN1 cnJlbnQtc3lzdGVtKSkpKQorICAgICAgICAgIChkMSAoZGVyaXZhdGlvbgorICAgICAgICAg ICAgICAgICVzdG9yZQorICAgICAgICAgICAgICAgICJ0aGUtdGhpbmciCisgICAgICAgICAg ICAgICAgcworICAgICAgICAgICAgICAgIGAoIi1lIiAsYikKKyAgICAgICAgICAgICAgICAj OmVudi12YXJzCisgICAgICAgICAgICAgICAgYCgoImZvbyIgdW5xdW90ZSAocmFuZG9tLXRl eHQpKSkKKyAgICAgICAgICAgICAgICAjOnNvdXJjZXMKKyAgICAgICAgICAgICAgICAobGlz dCBiIHMpKSkKKyAgICAgICAgICAoZDIgKGRlcml2YXRpb24KKyAgICAgICAgICAgICAgICAl c3RvcmUKKyAgICAgICAgICAgICAgICAidGhlLXRoaW5nIgorICAgICAgICAgICAgICAgIHMK KyAgICAgICAgICAgICAgICBgKCItZSIgLGIpCisgICAgICAgICAgICAgICAgIzplbnYtdmFy cworICAgICAgICAgICAgICAgIGAoKCJmb28iIHVucXVvdGUgKHJhbmRvbS10ZXh0KSkgKCJi YXIiIC4gImJheiIpKQorICAgICAgICAgICAgICAgICM6c291cmNlcworICAgICAgICAgICAg ICAgIChsaXN0IGIgcykpKQorICAgICAgICAgIChvMSAoZGVyaXZhdGlvbi0+b3V0cHV0LXBh dGggZDEpKQorICAgICAgICAgIChvMiAoZGVyaXZhdGlvbi0+b3V0cHV0LXBhdGggZDIpKSkK KyAgICAgKHdpdGgtYnVpbGQtaGFuZGxlcgorICAgICAgIChsZXQgKChjb3VudGVyIDApKQor ICAgICAgICAgKGxhbWJkYSAoY29udGludWUgc3RvcmUgdGhpbmdzIG1vZGUpCisgICAgICAg ICAgIChtYXRjaCB0aGluZ3MKKyAgICAgICAgICAgICAgICAgICgoZHJ2KQorICAgICAgICAg ICAgICAgICAgIChzZXQhIGNvdW50ZXIgKCsgMSBjb3VudGVyKSkKKyAgICAgICAgICAgICAg ICAgICAoaWYgKHN0cmluZz0/IGRydiAoZGVyaXZhdGlvbi1maWxlLW5hbWUgZDEpKQorICAg ICAgICAgICAgICAgICAgICAgKGNvbnRpbnVlICN0KQorICAgICAgICAgICAgICAgICAgICAg KGFuZCAoc3RyaW5nPT8gZHJ2IChkZXJpdmF0aW9uLWZpbGUtbmFtZSBkMikpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICg9IGNvdW50ZXIgMikKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3N1Y2Nlc3MpKSkpKSkKKyAgICAgICAoYnVpbGQtZGVyaXZhdGlvbnMgJXN0b3Jl IChsaXN0IGQxKSkKKyAgICAgICAoYnVpbGQtZGVyaXZhdGlvbnMgJXN0b3JlIChsaXN0IGQy KSkKKyAgICAgICAnZmFpbCkpKQpleHBlY3RlZC12YWx1ZTogc3VjY2VzcwphY3R1YWwtdmFs dWU6IHN1Y2Nlc3MKcmVzdWx0OiBQQVNTCgpzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6 IHdhcm5pbmc6IEFDTCBmb3IgYXJjaGl2ZSBpbXBvcnRzIHNlZW1zIHRvIGJlIHVuaW5pdGlh bGl6ZWQsIHN1YnN0aXR1dGVzIG1heSBiZSB1bmF2YWlsYWJsZQpzdWJzdGl0dXRlOiBndWl4 IHN1YnN0aXR1dGU6IHdhcm5pbmc6IGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9u IG9mIHN1YnN0aXR1dGVzIGRpc2FibGVkIQpidWlsZGluZyBwYXRoKHMpIGAvaG9tZS9zdW5k YnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUvcXZuMGl2em5oNjZwZ3kxbjE0d3E0czJrZmNta2xo MzYtdGhpbmdpZScKdGVzdC1uYW1lOiB3aXRoLWJ1aWxkLWhhbmRsZXIgKyB3aXRoLXN0b3Jl CmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjQwNQpzb3Vy Y2U6CisgKHRlc3QtZXF1YWwKKyAgICJ3aXRoLWJ1aWxkLWhhbmRsZXIgKyB3aXRoLXN0b3Jl IgorICAgJ3N1Y2Nlc3MKKyAgICh3aXRoLWJ1aWxkLWhhbmRsZXIKKyAgICAgKGxhbWJkYSAo Y29udGludWUgc3RvcmUgdGhpbmdzIG1vZGUpCisgICAgICAgKG1hdGNoIHRoaW5ncworICAg ICAgICAgICAgICAoKGRydikKKyAgICAgICAgICAgICAgIChhbmQgKHN0cmluZy1zdWZmaXg/ ICJ0aGluZ2llLmRydiIgZHJ2KQorICAgICAgICAgICAgICAgICAgICAobm90IChwb3J0LWNs b3NlZD8gKHN0b3JlLWNvbm5lY3Rpb24tc29ja2V0IHN0b3JlKSkpCisgICAgICAgICAgICAg ICAgICAgIChjb250aW51ZSAjdCkpKSkpCisgICAgICh3aXRoLXN0b3JlCisgICAgICAgc3Rv cmUKKyAgICAgICAobGV0KiAoKGIgKGFkZC10ZXh0LXRvLXN0b3JlCisgICAgICAgICAgICAg ICAgICAgc3RvcmUKKyAgICAgICAgICAgICAgICAgICAiYnVpbGQiCisgICAgICAgICAgICAg ICAgICAgImVjaG8gJGZvbyA+ICRvdXQiCisgICAgICAgICAgICAgICAgICAgJygpKSkKKyAg ICAgICAgICAgICAgKHMgKGFkZC10by1zdG9yZQorICAgICAgICAgICAgICAgICAgIHN0b3Jl CisgICAgICAgICAgICAgICAgICAgImJhc2giCisgICAgICAgICAgICAgICAgICAgI3QKKyAg ICAgICAgICAgICAgICAgICAic2hhMjU2IgorICAgICAgICAgICAgICAgICAgIChzZWFyY2gt Ym9vdHN0cmFwLWJpbmFyeQorICAgICAgICAgICAgICAgICAgICAgImJhc2giCisgICAgICAg ICAgICAgICAgICAgICAoJWN1cnJlbnQtc3lzdGVtKSkpKQorICAgICAgICAgICAgICAoZCAo ZGVyaXZhdGlvbgorICAgICAgICAgICAgICAgICAgIHN0b3JlCisgICAgICAgICAgICAgICAg ICAgInRoaW5naWUiCisgICAgICAgICAgICAgICAgICAgcworICAgICAgICAgICAgICAgICAg IGAoIi1lIiAsYikKKyAgICAgICAgICAgICAgICAgICAjOmVudi12YXJzCisgICAgICAgICAg ICAgICAgICAgYCgoImZvbyIgdW5xdW90ZSAocmFuZG9tLXRleHQpKSkKKyAgICAgICAgICAg ICAgICAgICAjOnNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAobGlzdCBiIHMpKSkpCisg ICAgICAgICAoYnVpbGQtZGVyaXZhdGlvbnMgc3RvcmUgKGxpc3QgZCkpCisgICAgICAgICAo YW5kICh2YWxpZC1wYXRoPyBzdG9yZSAoZGVyaXZhdGlvbi0+b3V0cHV0LXBhdGggZCkpCisg ICAgICAgICAgICAgICdzdWNjZXNzKSkpKSkKZXhwZWN0ZWQtdmFsdWU6IHN1Y2Nlc3MKYWN0 dWFsLXZhbHVlOiBzdWNjZXNzCnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiBtYXAvYWNjdW11 bGF0ZS1idWlsZHMKbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0cy9zdG9yZS5z Y206NDMyCnNvdXJjZToKKyAodGVzdC1hc3NlcnQKKyAgICJtYXAvYWNjdW11bGF0ZS1idWls ZHMiCisgICAobGV0KiAoKGIgKGFkZC10ZXh0LXRvLXN0b3JlCisgICAgICAgICAgICAgICAl c3RvcmUKKyAgICAgICAgICAgICAgICJidWlsZCIKKyAgICAgICAgICAgICAgICJlY2hvICRm b28gPiAkb3V0IgorICAgICAgICAgICAgICAgJygpKSkKKyAgICAgICAgICAocyAoYWRkLXRv LXN0b3JlCisgICAgICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICJiYXNoIgor ICAgICAgICAgICAgICAgI3QKKyAgICAgICAgICAgICAgICJzaGEyNTYiCisgICAgICAgICAg ICAgICAoc2VhcmNoLWJvb3RzdHJhcC1iaW5hcnkKKyAgICAgICAgICAgICAgICAgImJhc2gi CisgICAgICAgICAgICAgICAgICglY3VycmVudC1zeXN0ZW0pKSkpCisgICAgICAgICAgKGQx IChkZXJpdmF0aW9uCisgICAgICAgICAgICAgICAgJXN0b3JlCisgICAgICAgICAgICAgICAg InRoZS10aGluZyIKKyAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgYCgiLWUi ICxiKQorICAgICAgICAgICAgICAgICM6ZW52LXZhcnMKKyAgICAgICAgICAgICAgICBgKCgi Zm9vIiB1bnF1b3RlIChyYW5kb20tdGV4dCkpKQorICAgICAgICAgICAgICAgICM6c291cmNl cworICAgICAgICAgICAgICAgIChsaXN0IGIgcykpKQorICAgICAgICAgIChkMiAoZGVyaXZh dGlvbgorICAgICAgICAgICAgICAgICVzdG9yZQorICAgICAgICAgICAgICAgICJ0aGUtdGhp bmciCisgICAgICAgICAgICAgICAgcworICAgICAgICAgICAgICAgIGAoIi1lIiAsYikKKyAg ICAgICAgICAgICAgICAjOmVudi12YXJzCisgICAgICAgICAgICAgICAgYCgoImZvbyIgdW5x dW90ZSAocmFuZG9tLXRleHQpKSAoImJhciIgLiAiYmF6IikpCisgICAgICAgICAgICAgICAg Izpzb3VyY2VzCisgICAgICAgICAgICAgICAgKGxpc3QgYiBzKSkpKQorICAgICAod2l0aC1i dWlsZC1oYW5kbGVyCisgICAgICAgKGxhbWJkYSAoY29udGludWUgc3RvcmUgdGhpbmdzIG1v ZGUpCisgICAgICAgICAoZXF1YWw/CisgICAgICAgICAgIChtYXAgZGVyaXZhdGlvbi1maWxl LW5hbWUgKGxpc3QgZDEgZDIpKQorICAgICAgICAgICB0aGluZ3MpKQorICAgICAgIChtYXAv YWNjdW11bGF0ZS1idWlsZHMKKyAgICAgICAgICVzdG9yZQorICAgICAgICAgKGxhbWJkYSAo ZHJ2KQorICAgICAgICAgICAoYnVpbGQtZGVyaXZhdGlvbnMgJXN0b3JlIChsaXN0IGRydikp CisgICAgICAgICAgIChhZGQtdG8tc3RvcmUKKyAgICAgICAgICAgICAlc3RvcmUKKyAgICAg ICAgICAgICAiY29udGVudC1hZGRyZXNzZWQiCisgICAgICAgICAgICAgI3QKKyAgICAgICAg ICAgICAic2hhMjU2IgorICAgICAgICAgICAgIChkZXJpdmF0aW9uLT5vdXRwdXQtcGF0aCBk cnYpKSkKKyAgICAgICAgIChsaXN0IGQxIGQyKSkpKSkKYWN0dWFsLXZhbHVlOiAjdApyZXN1 bHQ6IFBBU1MKCnRlc3QtbmFtZTogbWFwL2FjY3VtdWxhdGUtYnVpbGRzIGN1dG9mZgpsb2Nh dGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbTo0NTcKc291cmNlOgor ICh0ZXN0LWVxdWFsCisgICAibWFwL2FjY3VtdWxhdGUtYnVpbGRzIGN1dG9mZiIKKyAgIChp b3RhIDIwKQorICAgKGxldCogKChiIChhZGQtdGV4dC10by1zdG9yZQorICAgICAgICAgICAg ICAgJXN0b3JlCisgICAgICAgICAgICAgICAiYnVpbGQiCisgICAgICAgICAgICAgICAiZWNo byAkZm9vID4gJG91dCIKKyAgICAgICAgICAgICAgICcoKSkpCisgICAgICAgICAgKHMgKGFk ZC10by1zdG9yZQorICAgICAgICAgICAgICAgJXN0b3JlCisgICAgICAgICAgICAgICAiYmFz aCIKKyAgICAgICAgICAgICAgICN0CisgICAgICAgICAgICAgICAic2hhMjU2IgorICAgICAg ICAgICAgICAgKHNlYXJjaC1ib290c3RyYXAtYmluYXJ5CisgICAgICAgICAgICAgICAgICJi YXNoIgorICAgICAgICAgICAgICAgICAoJWN1cnJlbnQtc3lzdGVtKSkpKQorICAgICAgICAg IChkIChtYXAgKGxhbWJkYSAoaSkKKyAgICAgICAgICAgICAgICAgICAgKGRlcml2YXRpb24K KyAgICAgICAgICAgICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICAgICAgICAo c3RyaW5nLWFwcGVuZCAidGhlLXRoaW5nLSIgKG51bWJlci0+c3RyaW5nIGkpKQorICAgICAg ICAgICAgICAgICAgICAgIHMKKyAgICAgICAgICAgICAgICAgICAgICBgKCItZSIgLGIpCisg ICAgICAgICAgICAgICAgICAgICAgIzplbnYtdmFycworICAgICAgICAgICAgICAgICAgICAg IGAoKCJmb28iIHVucXVvdGUgKHJhbmRvbS10ZXh0KSkpCisgICAgICAgICAgICAgICAgICAg ICAgIzpzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgYiBzKQorICAgICAg ICAgICAgICAgICAgICAgICM6cHJvcGVydGllcworICAgICAgICAgICAgICAgICAgICAgIGAo KG4gdW5xdW90ZSBpKSkpKQorICAgICAgICAgICAgICAgICAgKGlvdGEgMjApKSkKKyAgICAg ICAgICAoY2FsbHMgJygpKSkKKyAgICAgKGRlZmluZSBsc3QKKyAgICAgICAod2l0aC1idWls ZC1oYW5kbGVyCisgICAgICAgICAobGFtYmRhIChjb250aW51ZSBzdG9yZSB0aGluZ3MgbW9k ZSkKKyAgICAgICAgICAgKHNldCEgY2FsbHMgKGNvbnMgdGhpbmdzIGNhbGxzKSkKKyAgICAg ICAgICAgKGNvbnRpbnVlICNmKSkKKyAgICAgICAgIChtYXAvYWNjdW11bGF0ZS1idWlsZHMK KyAgICAgICAgICAgJXN0b3JlCisgICAgICAgICAgIChsYW1iZGEgKGQpCisgICAgICAgICAg ICAgKGJ1aWxkLWRlcml2YXRpb25zICVzdG9yZSAobGlzdCBkKSkKKyAgICAgICAgICAgICAo YXNzcS1yZWYgKGRlcml2YXRpb24tcHJvcGVydGllcyBkKSAnbikpCisgICAgICAgICAgIGQK KyAgICAgICAgICAgIzpjdXRvZmYKKyAgICAgICAgICAgNykpKQorICAgICAobWF0Y2ggKHJl dmVyc2UgY2FsbHMpCisgICAgICAgICAgICAoKChiYXRjaDEgLi4uKSAoYmF0Y2gyIC4uLikg KGJhdGNoMyAuLi4pKQorICAgICAgICAgICAgIChhbmQgKGVxdWFsPworICAgICAgICAgICAg ICAgICAgICAobWFwIGRlcml2YXRpb24tZmlsZS1uYW1lICh0YWtlIGQgOCkpCisgICAgICAg ICAgICAgICAgICAgIGJhdGNoMSkKKyAgICAgICAgICAgICAgICAgIChlcXVhbD8KKyAgICAg ICAgICAgICAgICAgICAgKG1hcCBkZXJpdmF0aW9uLWZpbGUtbmFtZSAodGFrZSAoZHJvcCBk IDgpIDgpKQorICAgICAgICAgICAgICAgICAgICBiYXRjaDIpCisgICAgICAgICAgICAgICAg ICAoZXF1YWw/CisgICAgICAgICAgICAgICAgICAgIChtYXAgZGVyaXZhdGlvbi1maWxlLW5h bWUgKGRyb3AgZCAxNikpCisgICAgICAgICAgICAgICAgICAgIGJhdGNoMykKKyAgICAgICAg ICAgICAgICAgIGxzdCkpKSkpCmV4cGVjdGVkLXZhbHVlOiAoMCAxIDIgMyA0IDUgNiA3IDgg OSAxMCAxMSAxMiAxMyAxNCAxNSAxNiAxNyAxOCAxOSkKYWN0dWFsLXZhbHVlOiAoMCAxIDIg MyA0IDUgNiA3IDggOSAxMCAxMSAxMiAxMyAxNCAxNSAxNiAxNyAxOCAxOSkKcmVzdWx0OiBQ QVNTCgpzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6IHdhcm5pbmc6IEFDTCBmb3IgYXJj aGl2ZSBpbXBvcnRzIHNlZW1zIHRvIGJlIHVuaW5pdGlhbGl6ZWQsIHN1YnN0aXR1dGVzIG1h eSBiZSB1bmF2YWlsYWJsZQpzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6IHdhcm5pbmc6 IGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIG9mIHN1YnN0aXR1dGVzIGRpc2Fi bGVkIQpidWlsZGluZyBwYXRoKHMpIGAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3Rv cmUvZzh3dnZiNnJyNzY1d3dpZGttbjdjc3Zudzg2ZnpjeWgtc2Vjb25kJwp0ZXN0LW5hbWU6 IG1hcC9hY2N1bXVsYXRlLWJ1aWxkcyBhbmQgZGlmZmVyZW50IHN0b3JlCmxvY2F0aW9uOiAv aG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjQ5Mwpzb3VyY2U6CisgKHRlc3Qt ZXF1YWwKKyAgICJtYXAvYWNjdW11bGF0ZS1idWlsZHMgYW5kIGRpZmZlcmVudCBzdG9yZSIK KyAgICcoZDIpCisgICAobGV0KiAoKGIgKGFkZC10ZXh0LXRvLXN0b3JlCisgICAgICAgICAg ICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICJidWlsZCIKKyAgICAgICAgICAgICAgICJl Y2hvICRmb28gPiAkb3V0IgorICAgICAgICAgICAgICAgJygpKSkKKyAgICAgICAgICAocyAo YWRkLXRvLXN0b3JlCisgICAgICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICJi YXNoIgorICAgICAgICAgICAgICAgI3QKKyAgICAgICAgICAgICAgICJzaGEyNTYiCisgICAg ICAgICAgICAgICAoc2VhcmNoLWJvb3RzdHJhcC1iaW5hcnkKKyAgICAgICAgICAgICAgICAg ImJhc2giCisgICAgICAgICAgICAgICAgICglY3VycmVudC1zeXN0ZW0pKSkpCisgICAgICAg ICAgKGQxIChkZXJpdmF0aW9uCisgICAgICAgICAgICAgICAgJXN0b3JlCisgICAgICAgICAg ICAgICAgImZpcnN0IgorICAgICAgICAgICAgICAgIHMKKyAgICAgICAgICAgICAgICBgKCIt ZSIgLGIpCisgICAgICAgICAgICAgICAgIzplbnYtdmFycworICAgICAgICAgICAgICAgIGAo KCJmb28iIHVucXVvdGUgKHJhbmRvbS10ZXh0KSkpCisgICAgICAgICAgICAgICAgIzpzb3Vy Y2VzCisgICAgICAgICAgICAgICAgKGxpc3QgYiBzKSkpCisgICAgICAgICAgKGQyIChkZXJp dmF0aW9uCisgICAgICAgICAgICAgICAgJXN0b3JlCisgICAgICAgICAgICAgICAgInNlY29u ZCIKKyAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgYCgiLWUiICxiKQorICAg ICAgICAgICAgICAgICM6ZW52LXZhcnMKKyAgICAgICAgICAgICAgICBgKCgiZm9vIiB1bnF1 b3RlIChyYW5kb20tdGV4dCkpICgiYmFyIiAuICJiYXoiKSkKKyAgICAgICAgICAgICAgICAj OnNvdXJjZXMKKyAgICAgICAgICAgICAgICAobGlzdCBiIHMpKSkpCisgICAgICh3aXRoLXN0 b3JlCisgICAgICAgYWx0ZXJuYXRlLXN0b3JlCisgICAgICAgKHdpdGgtYnVpbGQtaGFuZGxl cgorICAgICAgICAgKGxhbWJkYSAoY29udGludWUgc3RvcmUgdGhpbmdzIG1vZGUpICdmYWls ZWQpCisgICAgICAgICAobWFwL2FjY3VtdWxhdGUtYnVpbGRzCisgICAgICAgICAgICVzdG9y ZQorICAgICAgICAgICAobGFtYmRhIChkcnYpCisgICAgICAgICAgICAgKGJ1aWxkLWRlcml2 YXRpb25zIGFsdGVybmF0ZS1zdG9yZSAobGlzdCBkMikpCisgICAgICAgICAgICAgJ2QyKQor ICAgICAgICAgICAobGlzdCBkMSkpKSkpKQpleHBlY3RlZC12YWx1ZTogKGQyKQphY3R1YWwt dmFsdWU6IChkMikKcmVzdWx0OiBQQVNTCgoKOzs7ICh6eiAoIzxkZXJpdmF0aW9uIC9ob21l L3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS94ZGN5aTE5OHIzN3J4NHBpYmhnOXZrenlq NTFpcHZ5bi1mb28uZHJ2ID0+IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS8x MndxbG5oN3Judmp4c3dpZzZqazkxcmxyYnA4Y2pkbS1mb28gN2ZkZjllNWFjNjQwPiAjPGRl cml2YXRpb24gL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL2IyeWxobGl4bmdt cHA3Nmp5M2h5enM4bXFhNDd6cHFwLWJhci5kcnYgPT4gL2hvbWUvc3VuZGJyeS9ndWl4L3Rl c3QtdG1wL3N0b3JlL3hrY3Mza3d3YjJta3E3aXlwbDhoYjIyczBqZjBueHpzLWJhciA3ZmRm OWU1YWM0NjA+KSkKCjs7OyAoWFggKCIvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3Rv cmUveGRjeWkxOThyMzdyeDRwaWJoZzl2a3p5ajUxaXB2eW4tZm9vLmRydiIgIi9ob21lL3N1 bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS9iMnlsaGxpeG5nbXBwNzZqeTNoeXpzOG1xYTQ3 enBxcC1iYXIuZHJ2IikpCnRlc3QtbmFtZTogbWFwbS9hY2N1bXVsYXRlLWJ1aWxkcwpsb2Nh dGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbTo1MjEKc291cmNlOgor ICh0ZXN0LWFzc2VydAorICAgIm1hcG0vYWNjdW11bGF0ZS1idWlsZHMiCisgICAobGV0KiAo KGQxIChydW4td2l0aC1zdG9yZQorICAgICAgICAgICAgICAgICVzdG9yZQorICAgICAgICAg ICAgICAgIChnZXhwLT5kZXJpdmF0aW9uCisgICAgICAgICAgICAgICAgICAiZm9vIgorICAg ICAgICAgICAgICAgICAgKGdleHAgKG1rZGlyICh1bmdleHAgb3V0cHV0KSkpKSkpCisgICAg ICAgICAgKGQyIChydW4td2l0aC1zdG9yZQorICAgICAgICAgICAgICAgICVzdG9yZQorICAg ICAgICAgICAgICAgIChnZXhwLT5kZXJpdmF0aW9uCisgICAgICAgICAgICAgICAgICAiYmFy IgorICAgICAgICAgICAgICAgICAgKGdleHAgKG1rZGlyICh1bmdleHAgb3V0cHV0KSkpKSkp KQorICAgICAod2l0aC1idWlsZC1oYW5kbGVyCisgICAgICAgKGxhbWJkYSAoY29udGludWUg c3RvcmUgdGhpbmdzIG1vZGUpCisgICAgICAgICAoZXF1YWw/CisgICAgICAgICAgIChtYXAg ZGVyaXZhdGlvbi1maWxlLW5hbWUgKHBrICd6eiAobGlzdCBkMSBkMikpKQorICAgICAgICAg ICAocGsgJ1hYIHRoaW5ncykpKQorICAgICAgIChydW4td2l0aC1zdG9yZQorICAgICAgICAg JXN0b3JlCisgICAgICAgICAobWFwbS9hY2N1bXVsYXRlLWJ1aWxkcworICAgICAgICAgICBi dWlsdC1kZXJpdmF0aW9ucworICAgICAgICAgICBgKCgsZDEpICgsZDIpKSkpKSkpCmFjdHVh bC12YWx1ZTogI3QKcmVzdWx0OiBQQVNTCgp0ZXN0LW5hbWU6IG1hcG0vYWNjdW11bGF0ZS1i dWlsZHMsICVjdXJyZW50LXRhcmdldC1zeXN0ZW0KbG9jYXRpb246IC9ob21lL3N1bmRicnkv Z3VpeC90ZXN0cy9zdG9yZS5zY206NTMyCnNvdXJjZToKKyAodGVzdC1lcXVhbAorICAgIm1h cG0vYWNjdW11bGF0ZS1idWlsZHMsICVjdXJyZW50LXRhcmdldC1zeXN0ZW0iCisgICAobWFr ZS1saXN0IDIgJygiaTU4Ni1wYy1nbnUiICJpNTg2LXBjLWdudSIpKQorICAgKHJ1bi13aXRo LXN0b3JlCisgICAgICVzdG9yZQorICAgICAobWxldCAlc3RvcmUtbW9uYWQKKyAgICAgICAg ICAgKChsc3QxIChtYXBtICVzdG9yZS1tb25hZAorICAgICAgICAgICAgICAgICAgICAgICAg KGxhbWJkYSBfIChjdXJyZW50LXRhcmdldC1zeXN0ZW0pKQorICAgICAgICAgICAgICAgICAg ICAgICAgJyhhIGIpKSkKKyAgICAgICAgICAgIChsc3QyIChtYXBtL2FjY3VtdWxhdGUtYnVp bGRzCisgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgXyAoY3VycmVudC10YXJnZXQtc3lz dGVtKSkKKyAgICAgICAgICAgICAgICAgICAgJyhhIGIpKSkpCisgICAgICAgICAgIChyZXR1 cm4gKGxpc3QgbHN0MSBsc3QyKSkpCisgICAgICM6c3lzdGVtCisgICAgIHN5c3RlbQorICAg ICAjOnRhcmdldAorICAgICAiaTU4Ni1wYy1nbnUiKSkKZXhwZWN0ZWQtdmFsdWU6ICgoImk1 ODYtcGMtZ251IiAiaTU4Ni1wYy1nbnUiKSAoImk1ODYtcGMtZ251IiAiaTU4Ni1wYy1nbnUi KSkKYWN0dWFsLXZhbHVlOiAoKCJpNTg2LXBjLWdudSIgImk1ODYtcGMtZ251IikgKCJpNTg2 LXBjLWdudSIgImk1ODYtcGMtZ251IikpCnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiB0b3Bv bG9naWNhbGx5LXNvcnRlZCwgb25lIGl0ZW0KbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3Vp eC90ZXN0cy9zdG9yZS5zY206NTQ5CnNvdXJjZToKKyAodGVzdC1hc3NlcnQKKyAgICJ0b3Bv bG9naWNhbGx5LXNvcnRlZCwgb25lIGl0ZW0iCisgICAobGV0KiAoKGEgKGFkZC10ZXh0LXRv LXN0b3JlICVzdG9yZSAiYSIgImEiKSkKKyAgICAgICAgICAoYiAoYWRkLXRleHQtdG8tc3Rv cmUgJXN0b3JlICJiIiAiYiIgKGxpc3QgYSkpKQorICAgICAgICAgIChjIChhZGQtdGV4dC10 by1zdG9yZSAlc3RvcmUgImMiICJjIiAobGlzdCBiKSkpCisgICAgICAgICAgKGQgKGFkZC10 ZXh0LXRvLXN0b3JlICVzdG9yZSAiZCIgImQiIChsaXN0IGMpKSkKKyAgICAgICAgICAocyAo dG9wb2xvZ2ljYWxseS1zb3J0ZWQgJXN0b3JlIChsaXN0IGQpKSkpCisgICAgIChlcXVhbD8g cyAobGlzdCBhIGIgYyBkKSkpKQphY3R1YWwtdmFsdWU6ICN0CnJlc3VsdDogUEFTUwoKdGVz dC1uYW1lOiB0b3BvbG9naWNhbGx5LXNvcnRlZCwgc2V2ZXJhbCBpdGVtcwpsb2NhdGlvbjog L2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbTo1NTcKc291cmNlOgorICh0ZXN0 LWFzc2VydAorICAgInRvcG9sb2dpY2FsbHktc29ydGVkLCBzZXZlcmFsIGl0ZW1zIgorICAg KGxldCogKChhIChhZGQtdGV4dC10by1zdG9yZSAlc3RvcmUgImEiICJhIikpCisgICAgICAg ICAgKGIgKGFkZC10ZXh0LXRvLXN0b3JlICVzdG9yZSAiYiIgImIiIChsaXN0IGEpKSkKKyAg ICAgICAgICAoYyAoYWRkLXRleHQtdG8tc3RvcmUgJXN0b3JlICJjIiAiYyIgKGxpc3QgYikp KQorICAgICAgICAgIChkIChhZGQtdGV4dC10by1zdG9yZSAlc3RvcmUgImQiICJkIiAobGlz dCBjKSkpCisgICAgICAgICAgKHMxICh0b3BvbG9naWNhbGx5LXNvcnRlZCAlc3RvcmUgKGxp c3QgZCBhIGMgYikpKQorICAgICAgICAgIChzMiAodG9wb2xvZ2ljYWxseS1zb3J0ZWQgJXN0 b3JlIChsaXN0IGIgZCBjIGEgYiBkKSkpKQorICAgICAoZXF1YWw/IHMxIHMyIChsaXN0IGEg YiBjIGQpKSkpCmFjdHVhbC12YWx1ZTogI3QKcmVzdWx0OiBQQVNTCgp0ZXN0LW5hbWU6IHRv cG9sb2dpY2FsbHktc29ydGVkLCBtb3JlIGRpZmZpY3VsdApsb2NhdGlvbjogL2hvbWUvc3Vu ZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbTo1NjYKc291cmNlOgorICh0ZXN0LWFzc2VydAor ICAgInRvcG9sb2dpY2FsbHktc29ydGVkLCBtb3JlIGRpZmZpY3VsdCIKKyAgIChsZXQqICgo YSAoYWRkLXRleHQtdG8tc3RvcmUgJXN0b3JlICJhIiAiYSIpKQorICAgICAgICAgIChiIChh ZGQtdGV4dC10by1zdG9yZSAlc3RvcmUgImIiICJiIiAobGlzdCBhKSkpCisgICAgICAgICAg KGMgKGFkZC10ZXh0LXRvLXN0b3JlICVzdG9yZSAiYyIgImMiIChsaXN0IGIpKSkKKyAgICAg ICAgICAoZCAoYWRkLXRleHQtdG8tc3RvcmUgJXN0b3JlICJkIiAiZCIgKGxpc3QgYykpKQor ICAgICAgICAgICh3IChhZGQtdGV4dC10by1zdG9yZSAlc3RvcmUgInciICJ3IikpCisgICAg ICAgICAgKHggKGFkZC10ZXh0LXRvLXN0b3JlICVzdG9yZSAieCIgIngiIChsaXN0IHcpKSkK KyAgICAgICAgICAoeSAoYWRkLXRleHQtdG8tc3RvcmUgJXN0b3JlICJ5IiAieSIgKGxpc3Qg eCBkKSkpCisgICAgICAgICAgKHMxICh0b3BvbG9naWNhbGx5LXNvcnRlZCAlc3RvcmUgKGxp c3QgeSkpKQorICAgICAgICAgIChzMiAodG9wb2xvZ2ljYWxseS1zb3J0ZWQgJXN0b3JlIChs aXN0IGMgeSkpKQorICAgICAgICAgIChzMyAodG9wb2xvZ2ljYWxseS1zb3J0ZWQKKyAgICAg ICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICAoY29ucyB5IChyZWZlcmVuY2Vz ICVzdG9yZSB5KSkpKSkKKyAgICAgKGxldCogKCh4LXRoZW4tZD8KKyAgICAgICAgICAgICAg KGVxdWFsPyAocmVmZXJlbmNlcyAlc3RvcmUgeSkgKGxpc3QgeCBkKSkpKQorICAgICAgIChh bmQgKGVxdWFsPworICAgICAgICAgICAgICBzMQorICAgICAgICAgICAgICAoaWYgeC10aGVu LWQ/CisgICAgICAgICAgICAgICAgKGxpc3QgdyB4IGEgYiBjIGQgeSkKKyAgICAgICAgICAg ICAgICAobGlzdCBhIGIgYyBkIHcgeCB5KSkpCisgICAgICAgICAgICAoZXF1YWw/CisgICAg ICAgICAgICAgIHMyCisgICAgICAgICAgICAgIChpZiB4LXRoZW4tZD8KKyAgICAgICAgICAg ICAgICAobGlzdCBhIGIgYyB3IHggZCB5KQorICAgICAgICAgICAgICAgIChsaXN0IGEgYiBj IGQgdyB4IHkpKSkKKyAgICAgICAgICAgIChsc2V0PSBzdHJpbmc9PyBzMSBzMykpKSkpCmFj dHVhbC12YWx1ZTogI3QKcmVzdWx0OiBQQVNTCgp0ZXN0LW5hbWU6IGN1cnJlbnQtYnVpbGQt b3V0cHV0LXBvcnQsIFVURi04CmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMv c3RvcmUuc2NtOjU5MApzb3VyY2U6CisgKHRlc3QtYXNzZXJ0CisgICAiY3VycmVudC1idWls ZC1vdXRwdXQtcG9ydCwgVVRGLTgiCisgICAoc3RyaW5nLWNvbnRhaW5zCisgICAgICh3aXRo LWZsdWlkcworICAgICAgICgoJWRlZmF1bHQtcG9ydC1lbmNvZGluZyAiVVRGLTgiKSkKKyAg ICAgICAoY2FsbC13aXRoLW91dHB1dC1zdHJpbmcKKyAgICAgICAgIChsYW1iZGEgKHBvcnQp CisgICAgICAgICAgIChwYXJhbWV0ZXJpemUKKyAgICAgICAgICAgICAoKGN1cnJlbnQtYnVp bGQtb3V0cHV0LXBvcnQgcG9ydCkpCisgICAgICAgICAgICAgKGxldCogKChzICJIZXJlP3Mg YSBHcmVlayBsZXR0ZXI6ID8uIikKKyAgICAgICAgICAgICAgICAgICAgKGQgKGJ1aWxkLWV4 cHJlc3Npb24tPmRlcml2YXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAlc3RvcmUK KyAgICAgICAgICAgICAgICAgICAgICAgICAiZm9vIgorICAgICAgICAgICAgICAgICAgICAg ICAgIGAoZGlzcGxheSAscykKKyAgICAgICAgICAgICAgICAgICAgICAgICAjOmd1aWxlLWZv ci1idWlsZAorICAgICAgICAgICAgICAgICAgICAgICAgIChwYWNrYWdlLWRlcml2YXRpb24K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICVzdG9yZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgJWJvb3RzdHJhcC1ndWlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg KCVjdXJyZW50LXN5c3RlbSkpKSkpCisgICAgICAgICAgICAgICAoZ3VhcmQgKGMgKChzdG9y ZS1wcm90b2NvbC1lcnJvcj8gYykgI3QpKQorICAgICAgICAgICAgICAgICAgICAgIChidWls ZC1kZXJpdmF0aW9ucyAlc3RvcmUgKGxpc3QgZCkpKSkpKSkpCisgICAgICJIZXJlP3MgYSBH cmVlayBsZXR0ZXI6ID8uIikpCmFjdHVhbC12YWx1ZTogMjAzCnJlc3VsdDogUEFTUwoKdGVz dC1uYW1lOiBjdXJyZW50LWJ1aWxkLW91dHB1dC1wb3J0LCBVVEYtOCArIGdhcmJhZ2UKbG9j YXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0cy9zdG9yZS5zY206NjA3CnNvdXJjZToK KyAodGVzdC1hc3NlcnQKKyAgICJjdXJyZW50LWJ1aWxkLW91dHB1dC1wb3J0LCBVVEYtOCAr IGdhcmJhZ2UiCisgICAoc3RyaW5nLWNvbnRhaW5zCisgICAgICh3aXRoLWZsdWlkcworICAg ICAgICgoJWRlZmF1bHQtcG9ydC1lbmNvZGluZyAiVVRGLTgiKSkKKyAgICAgICAoY2FsbC13 aXRoLW91dHB1dC1zdHJpbmcKKyAgICAgICAgIChsYW1iZGEgKHBvcnQpCisgICAgICAgICAg IChwYXJhbWV0ZXJpemUKKyAgICAgICAgICAgICAoKGN1cnJlbnQtYnVpbGQtb3V0cHV0LXBv cnQgcG9ydCkpCisgICAgICAgICAgICAgKGxldCAoKGQgKGJ1aWxkLWV4cHJlc3Npb24tPmRl cml2YXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICVzdG9yZQorICAgICAgICAgICAg ICAgICAgICAgICAgImZvbyIKKyAgICAgICAgICAgICAgICAgICAgICAgIGAoYmVnaW4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICh1c2UtbW9kdWxlcyAocm5ycyBpbyBwb3J0cykp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGlzcGxheSAiZ2FyYmFnZTogIikKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIChwdXQtYnl0ZXZlY3RvciAoY3VycmVudC1vdXRw dXQtcG9ydCkgI3Z1OCgxMjgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpc3Bs YXkgImxhbWJkYTogP1xuIikpCisgICAgICAgICAgICAgICAgICAgICAgICAjOmd1aWxlLWZv ci1idWlsZAorICAgICAgICAgICAgICAgICAgICAgICAgKHBhY2thZ2UtZGVyaXZhdGlvbiAl c3RvcmUgJWJvb3RzdHJhcC1ndWlsZSkpKSkKKyAgICAgICAgICAgICAgIChndWFyZCAoYyAo KHN0b3JlLXByb3RvY29sLWVycm9yPyBjKSAjdCkpCisgICAgICAgICAgICAgICAgICAgICAg KGJ1aWxkLWRlcml2YXRpb25zICVzdG9yZSAobGlzdCBkKSkpKSkpKSkKKyAgICAgImdhcmJh Z2U6ID9sYW1iZGE6ID8iKSkKYWN0dWFsLXZhbHVlOiAyMDMKcmVzdWx0OiBQQVNTCgovaG9t ZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjU5ODoyMDogd2FybmluZzogJ2J1aWxk LWV4cHJlc3Npb24tPmRlcml2YXRpb24nIGlzIGRlcHJlY2F0ZWQsIHVzZSAnZ2V4cC0+ZGVy aXZhdGlvbicgaW5zdGVhZAovaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjYx NDoxOTogd2FybmluZzogJ2J1aWxkLWV4cHJlc3Npb24tPmRlcml2YXRpb24nIGlzIGRlcHJl Y2F0ZWQsIHVzZSAnZ2V4cC0+ZGVyaXZhdGlvbicgaW5zdGVhZAp3YXJuaW5nOiBpbiAndGhl LXRoaW5nJzogZGVwcmVjYXRlZCAnZGVyaXZhdGlvbicgY2FsbGluZyBjb252ZW50aW9uIHVz ZWQKd2FybmluZzogaW4gJ3RoZS10aGluZyc6IGRlcHJlY2F0ZWQgJ2Rlcml2YXRpb24nIGNh bGxpbmcgY29udmVudGlvbiB1c2VkCndhcm5pbmc6IGluICd0aGUtdGhpbmcnOiBkZXByZWNh dGVkICdkZXJpdmF0aW9uJyBjYWxsaW5nIGNvbnZlbnRpb24gdXNlZAp3YXJuaW5nOiBpbiAn dGhlLXRoaW5nJzogZGVwcmVjYXRlZCAnZGVyaXZhdGlvbicgY2FsbGluZyBjb252ZW50aW9u IHVzZWQKQCBidWlsZC1zdGFydGVkIC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9y ZS9tc2hsZHo1cTIyYzR5bGMxem1ic2lqeHJ5emxjZnBnZi10aGUtdGhpbmcuZHJ2IC0geDg2 XzY0LWxpbnV4IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC92YXIvbG9nL2d1aXgvZHJ2 cy9tcy8vaGxkejVxMjJjNHlsYzF6bWJzaWp4cnl6bGNmcGdmLXRoZS10aGluZy5kcnYuZ3og NTEyNQpAIGJ1aWxkLXN1Y2NlZWRlZCAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3Rv cmUvbXNobGR6NXEyMmM0eWxjMXptYnNpanhyeXpsY2ZwZ2YtdGhlLXRoaW5nLmRydiAtCgo7 OzsgKCIvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvdmFyL2xvZy9ndWl4L2RydnMvbXMv aGxkejVxMjJjNHlsYzF6bWJzaWp4cnl6bGNmcGdmLXRoZS10aGluZy5kcnYuZ3oiKQp0ZXN0 LW5hbWU6IGxvZy1maWxlLCBkZXJpdmF0aW9uCmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1 aXgvdGVzdHMvc3RvcmUuc2NtOjYyNwpzb3VyY2U6CisgKHRlc3QtYXNzZXJ0CisgICAibG9n LWZpbGUsIGRlcml2YXRpb24iCisgICAobGV0KiAoKGIgKGFkZC10ZXh0LXRvLXN0b3JlCisg ICAgICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICJidWlsZCIKKyAgICAgICAg ICAgICAgICJlY2hvICRmb28gPiAkb3V0IgorICAgICAgICAgICAgICAgJygpKSkKKyAgICAg ICAgICAocyAoYWRkLXRvLXN0b3JlCisgICAgICAgICAgICAgICAlc3RvcmUKKyAgICAgICAg ICAgICAgICJiYXNoIgorICAgICAgICAgICAgICAgI3QKKyAgICAgICAgICAgICAgICJzaGEy NTYiCisgICAgICAgICAgICAgICAoc2VhcmNoLWJvb3RzdHJhcC1iaW5hcnkKKyAgICAgICAg ICAgICAgICAgImJhc2giCisgICAgICAgICAgICAgICAgICglY3VycmVudC1zeXN0ZW0pKSkp CisgICAgICAgICAgKGQgKGRlcml2YXRpb24KKyAgICAgICAgICAgICAgICVzdG9yZQorICAg ICAgICAgICAgICAgInRoZS10aGluZyIKKyAgICAgICAgICAgICAgIHMKKyAgICAgICAgICAg ICAgIGAoIi1lIiAsYikKKyAgICAgICAgICAgICAgICM6ZW52LXZhcnMKKyAgICAgICAgICAg ICAgIGAoKCJmb28iIHVucXVvdGUgKHJhbmRvbS10ZXh0KSkpCisgICAgICAgICAgICAgICAj OmlucHV0cworICAgICAgICAgICAgICAgYCgoLGIpICgscykpKSkpCisgICAgIChhbmQgKGJ1 aWxkLWRlcml2YXRpb25zICVzdG9yZSAobGlzdCBkKSkKKyAgICAgICAgICAoZmlsZS1leGlz dHM/CisgICAgICAgICAgICAocGsgKGxvZy1maWxlICVzdG9yZSAoZGVyaXZhdGlvbi1maWxl LW5hbWUgZCkpKSkpKSkKYWN0dWFsLXZhbHVlOiAjdApyZXN1bHQ6IFBBU1MKCndhcm5pbmc6 IGluICd0aGUtdGhpbmcnOiBkZXByZWNhdGVkICdkZXJpdmF0aW9uJyBjYWxsaW5nIGNvbnZl bnRpb24gdXNlZAp3YXJuaW5nOiBpbiAndGhlLXRoaW5nJzogZGVwcmVjYXRlZCAnZGVyaXZh dGlvbicgY2FsbGluZyBjb252ZW50aW9uIHVzZWQKd2FybmluZzogaW4gJ3RoZS10aGluZyc6 IGRlcHJlY2F0ZWQgJ2Rlcml2YXRpb24nIGNhbGxpbmcgY29udmVudGlvbiB1c2VkCndhcm5p bmc6IGluICd0aGUtdGhpbmcnOiBkZXByZWNhdGVkICdkZXJpdmF0aW9uJyBjYWxsaW5nIGNv bnZlbnRpb24gdXNlZApAIGJ1aWxkLXN0YXJ0ZWQgL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3Qt dG1wL3N0b3JlLzlsZzg1bmJrMHk4bWdkemxxYTF3bmcyajVuNnE0Y3ZnLXRoZS10aGluZy5k cnYgLSB4ODZfNjQtbGludXggL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3Zhci9sb2cv Z3VpeC9kcnZzLzlsLy9nODVuYmsweThtZ2R6bHFhMXduZzJqNW42cTRjdmctdGhlLXRoaW5n LmRydi5neiA1MTQ0CkAgYnVpbGQtc3VjY2VlZGVkIC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0 LXRtcC9zdG9yZS85bGc4NW5iazB5OG1nZHpscWExd25nMmo1bjZxNGN2Zy10aGUtdGhpbmcu ZHJ2IC0KCjs7OyAoIi9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC92YXIvbG9nL2d1aXgv ZHJ2cy85bC9nODVuYmsweThtZ2R6bHFhMXduZzJqNW42cTRjdmctdGhlLXRoaW5nLmRydi5n eiIpCnRlc3QtbmFtZTogbG9nLWZpbGUsIG91dHB1dCBmaWxlIG5hbWUKbG9jYXRpb246IC9o b21lL3N1bmRicnkvZ3VpeC90ZXN0cy9zdG9yZS5zY206NjM5CnNvdXJjZToKKyAodGVzdC1h c3NlcnQKKyAgICJsb2ctZmlsZSwgb3V0cHV0IGZpbGUgbmFtZSIKKyAgIChsZXQqICgoYiAo YWRkLXRleHQtdG8tc3RvcmUKKyAgICAgICAgICAgICAgICVzdG9yZQorICAgICAgICAgICAg ICAgImJ1aWxkIgorICAgICAgICAgICAgICAgImVjaG8gJGZvbyA+ICRvdXQiCisgICAgICAg ICAgICAgICAnKCkpKQorICAgICAgICAgIChzIChhZGQtdG8tc3RvcmUKKyAgICAgICAgICAg ICAgICVzdG9yZQorICAgICAgICAgICAgICAgImJhc2giCisgICAgICAgICAgICAgICAjdAor ICAgICAgICAgICAgICAgInNoYTI1NiIKKyAgICAgICAgICAgICAgIChzZWFyY2gtYm9vdHN0 cmFwLWJpbmFyeQorICAgICAgICAgICAgICAgICAiYmFzaCIKKyAgICAgICAgICAgICAgICAg KCVjdXJyZW50LXN5c3RlbSkpKSkKKyAgICAgICAgICAoZCAoZGVyaXZhdGlvbgorICAgICAg ICAgICAgICAgJXN0b3JlCisgICAgICAgICAgICAgICAidGhlLXRoaW5nIgorICAgICAgICAg ICAgICAgcworICAgICAgICAgICAgICAgYCgiLWUiICxiKQorICAgICAgICAgICAgICAgIzpl bnYtdmFycworICAgICAgICAgICAgICAgYCgoImZvbyIgdW5xdW90ZSAocmFuZG9tLXRleHQp KSkKKyAgICAgICAgICAgICAgICM6aW5wdXRzCisgICAgICAgICAgICAgICBgKCgsYikgKCxz KSkpKQorICAgICAgICAgIChvIChkZXJpdmF0aW9uLT5vdXRwdXQtcGF0aCBkKSkpCisgICAg IChhbmQgKGJ1aWxkLWRlcml2YXRpb25zICVzdG9yZSAobGlzdCBkKSkKKyAgICAgICAgICAo ZmlsZS1leGlzdHM/IChwayAobG9nLWZpbGUgJXN0b3JlIG8pKSkKKyAgICAgICAgICAoc3Ry aW5nPT8KKyAgICAgICAgICAgIChsb2ctZmlsZSAlc3RvcmUgKGRlcml2YXRpb24tZmlsZS1u YW1lIGQpKQorICAgICAgICAgICAgKGxvZy1maWxlICVzdG9yZSBvKSkpKSkKYWN0dWFsLXZh bHVlOiAjdApyZXN1bHQ6IFBBU1MKCnRlc3QtbmFtZTogbm8gc3Vic3RpdHV0ZXMKbG9jYXRp b246IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0cy9zdG9yZS5zY206NjU0CnNvdXJjZToKKyAo dGVzdC1hc3NlcnQKKyAgICJubyBzdWJzdGl0dXRlcyIKKyAgICh3aXRoLXN0b3JlCisgICAg IHMKKyAgICAgKGxldCogKChkMSAocGFja2FnZS1kZXJpdmF0aW9uCisgICAgICAgICAgICAg ICAgICBzCisgICAgICAgICAgICAgICAgICAlYm9vdHN0cmFwLWd1aWxlCisgICAgICAgICAg ICAgICAgICAoJWN1cnJlbnQtc3lzdGVtKSkpCisgICAgICAgICAgICAoZDIgKHBhY2thZ2Ut ZGVyaXZhdGlvbgorICAgICAgICAgICAgICAgICAgcworICAgICAgICAgICAgICAgICAgJWJv b3RzdHJhcC1nbGliYworICAgICAgICAgICAgICAgICAgKCVjdXJyZW50LXN5c3RlbSkpKQor ICAgICAgICAgICAgKG8gKG1hcCBkZXJpdmF0aW9uLT5vdXRwdXQtcGF0aCAobGlzdCBkMSBk MikpKSkKKyAgICAgICAoc2V0LWJ1aWxkLW9wdGlvbnMgcyAjOnVzZS1zdWJzdGl0dXRlcz8g I2YpCisgICAgICAgKGFuZCAobm90IChoYXMtc3Vic3RpdHV0ZXM/IHMgKGRlcml2YXRpb24t ZmlsZS1uYW1lIGQxKSkpCisgICAgICAgICAgICAobm90IChoYXMtc3Vic3RpdHV0ZXM/IHMg KGRlcml2YXRpb24tZmlsZS1uYW1lIGQyKSkpCisgICAgICAgICAgICAobnVsbD8gKHN1YnN0 aXR1dGFibGUtcGF0aHMgcyBvKSkKKyAgICAgICAgICAgIChudWxsPyAoc3Vic3RpdHV0YWJs ZS1wYXRoLWluZm8gcyBvKSkpKSkpCmFjdHVhbC12YWx1ZTogI3QKcmVzdWx0OiBQQVNTCgp0 ZXN0LW5hbWU6IGJ1aWxkLXRoaW5ncyB3aXRoIG91dHB1dCBwYXRoCmxvY2F0aW9uOiAvaG9t ZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjY2NQpzb3VyY2U6CisgKHRlc3QtYXNz ZXJ0CisgICAiYnVpbGQtdGhpbmdzIHdpdGggb3V0cHV0IHBhdGgiCisgICAod2l0aC1zdG9y ZQorICAgICBzCisgICAgIChsZXQqICgoYyAocmFuZG9tLXRleHQpKQorICAgICAgICAgICAg KGQgKGJ1aWxkLWV4cHJlc3Npb24tPmRlcml2YXRpb24KKyAgICAgICAgICAgICAgICAgcwor ICAgICAgICAgICAgICAgICAic3Vic3RpdHV0ZS1tZSIKKyAgICAgICAgICAgICAgICAgYChj YWxsLXdpdGgtb3V0cHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgJW91dHB1dAorICAg ICAgICAgICAgICAgICAgICAobGFtYmRhIChwKSAoZGlzcGxheSAsYyBwKSkpCisgICAgICAg ICAgICAgICAgICM6Z3VpbGUtZm9yLWJ1aWxkCisgICAgICAgICAgICAgICAgIChwYWNrYWdl LWRlcml2YXRpb24KKyAgICAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgICAg JWJvb3RzdHJhcC1ndWlsZQorICAgICAgICAgICAgICAgICAgICglY3VycmVudC1zeXN0ZW0p KSkpCisgICAgICAgICAgICAobyAoZGVyaXZhdGlvbi0+b3V0cHV0LXBhdGggZCkpKQorICAg ICAgIChzZXQtYnVpbGQtb3B0aW9ucyBzICM6dXNlLXN1YnN0aXR1dGVzPyAjZikKKyAgICAg ICAoYnVpbGQtdGhpbmdzIHMgKGxpc3QgbykpCisgICAgICAgKG5vdCAodmFsaWQtcGF0aD8g cyBvKSkpKSkKYWN0dWFsLXZhbHVlOiAjdApyZXN1bHQ6IFBBU1MKCi9ob21lL3N1bmRicnkv Z3VpeC90ZXN0cy9zdG9yZS5zY206NjY4OjE2OiB3YXJuaW5nOiAnYnVpbGQtZXhwcmVzc2lv bi0+ZGVyaXZhdGlvbicgaXMgZGVwcmVjYXRlZCwgdXNlICdnZXhwLT5kZXJpdmF0aW9uJyBp bnN0ZWFkCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2FybmluZzogQUNMIGZvciBh cmNoaXZlIGltcG9ydHMgc2VlbXMgdG8gYmUgdW5pbml0aWFsaXplZCwgc3Vic3RpdHV0ZXMg bWF5IGJlIHVuYXZhaWxhYmxlCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2Fybmlu ZzogYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gb2Ygc3Vic3RpdHV0ZXMgZGlz YWJsZWQhCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2FybmluZzogYXV0aGVudGlj YXRpb24gYW5kIGF1dGhvcml6YXRpb24gb2Ygc3Vic3RpdHV0ZXMgZGlzYWJsZWQhCnN1YnN0 aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2FybmluZzogYXV0aGVudGljYXRpb24gYW5kIGF1 dGhvcml6YXRpb24gb2Ygc3Vic3RpdHV0ZXMgZGlzYWJsZWQhCgo7OzsgKHNwaSAoIzw8c3Vi c3RpdHV0YWJsZT4gcGF0aDogIi9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS9w YWh4czBkZ2x2ZGh2YWZuaTAza3c4MHptM3prdmJiNy1ndWlsZS1ib290c3RyYXAtMi4wIiBk ZXJpdmVyOiAiL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL3BnaDk0Yjg4MHFz bGd2ejZmODA1cWZpZHFucDQzeGJ2LWd1aWxlLWJvb3RzdHJhcC0yLjAuZHJ2IiByZWZzOiAo KSBkbC1zaXplOiAwIG5hci1zaXplOiAxMjM0PikpCnRlc3QtbmFtZTogc3Vic3RpdHV0ZSBx dWVyeQpsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbTo2ODUK c291cmNlOgorICh0ZXN0LWFzc2VydAorICAgInN1YnN0aXR1dGUgcXVlcnkiCisgICAod2l0 aC1zdG9yZQorICAgICBzCisgICAgIChsZXQqICgoZCAocGFja2FnZS1kZXJpdmF0aW9uCisg ICAgICAgICAgICAgICAgIHMKKyAgICAgICAgICAgICAgICAgJWJvb3RzdHJhcC1ndWlsZQor ICAgICAgICAgICAgICAgICAoJWN1cnJlbnQtc3lzdGVtKSkpCisgICAgICAgICAgICAobyAo ZGVyaXZhdGlvbi0+b3V0cHV0LXBhdGggZCkpKQorICAgICAgICh3aXRoLWRlcml2YXRpb24t bmFyaW5mbworICAgICAgICAgZAorICAgICAgICAgKGZhbHNlLWlmLWV4Y2VwdGlvbgorICAg ICAgICAgICAoZGVsZXRlLWZpbGUtcmVjdXJzaXZlbHkKKyAgICAgICAgICAgICAoc3RyaW5n LWFwcGVuZAorICAgICAgICAgICAgICAgKGdldGVudiAiWERHX0NBQ0hFX0hPTUUiKQorICAg ICAgICAgICAgICAgIi9ndWl4L3N1YnN0aXR1dGUiKSkpCisgICAgICAgICAoc2V0LWJ1aWxk LW9wdGlvbnMKKyAgICAgICAgICAgcworICAgICAgICAgICAjOnVzZS1zdWJzdGl0dXRlcz8K KyAgICAgICAgICAgI3QKKyAgICAgICAgICAgIzpzdWJzdGl0dXRlLXVybHMKKyAgICAgICAg ICAgKCV0ZXN0LXN1YnN0aXR1dGUtdXJscykpCisgICAgICAgICAoYW5kIChoYXMtc3Vic3Rp dHV0ZXM/IHMgbykKKyAgICAgICAgICAgICAgKGVxdWFsPworICAgICAgICAgICAgICAgIChs aXN0IG8pCisgICAgICAgICAgICAgICAgKHN1YnN0aXR1dGFibGUtcGF0aHMgcyAobGlzdCBv KSkpCisgICAgICAgICAgICAgIChtYXRjaCAocGsgJ3NwaSAoc3Vic3RpdHV0YWJsZS1wYXRo LWluZm8gcyAobGlzdCBvKSkpCisgICAgICAgICAgICAgICAgICAgICAoKCg/IHN1YnN0aXR1 dGFibGU/IHMpKQorICAgICAgICAgICAgICAgICAgICAgIChhbmQgKHN0cmluZz0/CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdGl0dXRhYmxlLWRlcml2ZXIgcykKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlcml2YXRpb24tZmlsZS1uYW1lIGQpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG51bGw/IChzdWJzdGl0dXRhYmxlLXJlZmVy ZW5jZXMgcykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWw/IChzdWJzdGl0 dXRhYmxlLW5hci1zaXplIHMpIDEyMzQpKSkpKSkpKSkKYWN0dWFsLXZhbHVlOiAjdApyZXN1 bHQ6IFBBU1MKCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2FybmluZzogQUNMIGZv ciBhcmNoaXZlIGltcG9ydHMgc2VlbXMgdG8gYmUgdW5pbml0aWFsaXplZCwgc3Vic3RpdHV0 ZXMgbWF5IGJlIHVuYXZhaWxhYmxlCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2Fy bmluZzogYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gb2Ygc3Vic3RpdHV0ZXMg ZGlzYWJsZWQhCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2FybmluZzogQUNMIGZv ciBhcmNoaXZlIGltcG9ydHMgc2VlbXMgdG8gYmUgdW5pbml0aWFsaXplZCwgc3Vic3RpdHV0 ZXMgbWF5IGJlIHVuYXZhaWxhYmxlCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2Fy bmluZzogYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gb2Ygc3Vic3RpdHV0ZXMg ZGlzYWJsZWQhCnN1YnN0aXR1dGU6IA1zdWJzdGl0dXRlOiAbW0t1cGRhdGluZyBzdWJzdGl0 dXRlcyBmcm9tICdodHRwOi8vZG9lcy1ub3QtZXhpc3QnLi4uICAgMC4wJWd1aXggc3Vic3Rp dHV0ZTogd2FybmluZzogZG9lcy1ub3QtZXhpc3Q6IGhvc3Qgbm90IGZvdW5kOiBOYW1lIG9y IHNlcnZpY2Ugbm90IGtub3duCnN1YnN0aXR1dGU6IApzdWJzdGl0dXRlOiBndWl4IHN1YnN0 aXR1dGU6IHdhcm5pbmc6IEFDTCBmb3IgYXJjaGl2ZSBpbXBvcnRzIHNlZW1zIHRvIGJlIHVu aW5pdGlhbGl6ZWQsIHN1YnN0aXR1dGVzIG1heSBiZSB1bmF2YWlsYWJsZQpzdWJzdGl0dXRl OiBndWl4IHN1YnN0aXR1dGU6IHdhcm5pbmc6IGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3Jp emF0aW9uIG9mIHN1YnN0aXR1dGVzIGRpc2FibGVkIQpzdWJzdGl0dXRlOiBndWl4IHN1YnN0 aXR1dGU6IHdhcm5pbmc6IEFDTCBmb3IgYXJjaGl2ZSBpbXBvcnRzIHNlZW1zIHRvIGJlIHVu aW5pdGlhbGl6ZWQsIHN1YnN0aXR1dGVzIG1heSBiZSB1bmF2YWlsYWJsZQpzdWJzdGl0dXRl OiBndWl4IHN1YnN0aXR1dGU6IHdhcm5pbmc6IGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3Jp emF0aW9uIG9mIHN1YnN0aXR1dGVzIGRpc2FibGVkIQp0ZXN0LW5hbWU6IHN1YnN0aXR1dGUg cXVlcnksIGFsdGVybmF0aW5nIFVSTHMKbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90 ZXN0cy9zdG9yZS5zY206NzA5CnNvdXJjZToKKyAodGVzdC1hc3NlcnQKKyAgICJzdWJzdGl0 dXRlIHF1ZXJ5LCBhbHRlcm5hdGluZyBVUkxzIgorICAgKGxldCogKChkICh3aXRoLXN0b3Jl CisgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAocGFja2FnZS1kZXJpdmF0aW9u CisgICAgICAgICAgICAgICAgIHMKKyAgICAgICAgICAgICAgICAgJWJvb3RzdHJhcC1ndWls ZQorICAgICAgICAgICAgICAgICAoJWN1cnJlbnQtc3lzdGVtKSkpKQorICAgICAgICAgIChv IChkZXJpdmF0aW9uLT5vdXRwdXQtcGF0aCBkKSkpCisgICAgICh3aXRoLWRlcml2YXRpb24t bmFyaW5mbworICAgICAgIGQKKyAgICAgICAoZmFsc2UtaWYtZXhjZXB0aW9uCisgICAgICAg ICAoZGVsZXRlLWZpbGUtcmVjdXJzaXZlbHkKKyAgICAgICAgICAgKHN0cmluZy1hcHBlbmQK KyAgICAgICAgICAgICAoZ2V0ZW52ICJYREdfQ0FDSEVfSE9NRSIpCisgICAgICAgICAgICAg Ii9ndWl4L3N1YnN0aXR1dGUiKSkpCisgICAgICAgKGFuZCAod2l0aC1zdG9yZQorICAgICAg ICAgICAgICBzCisgICAgICAgICAgICAgIChzZXQtYnVpbGQtb3B0aW9ucworICAgICAgICAg ICAgICAgIHMKKyAgICAgICAgICAgICAgICAjOnVzZS1zdWJzdGl0dXRlcz8KKyAgICAgICAg ICAgICAgICAjdAorICAgICAgICAgICAgICAgICM6c3Vic3RpdHV0ZS11cmxzCisgICAgICAg ICAgICAgICAgKCV0ZXN0LXN1YnN0aXR1dGUtdXJscykpCisgICAgICAgICAgICAgIChoYXMt c3Vic3RpdHV0ZXM/IHMgbykpCisgICAgICAgICAgICAod2l0aC1zdG9yZQorICAgICAgICAg ICAgICBzCisgICAgICAgICAgICAgIChzZXQtYnVpbGQtb3B0aW9ucworICAgICAgICAgICAg ICAgIHMKKyAgICAgICAgICAgICAgICAjOnVzZS1zdWJzdGl0dXRlcz8KKyAgICAgICAgICAg ICAgICAjdAorICAgICAgICAgICAgICAgICM6c3Vic3RpdHV0ZS11cmxzCisgICAgICAgICAg ICAgICAgKGxpc3QgImh0dHA6Ly9kb2VzLW5vdC1leGlzdCIpKQorICAgICAgICAgICAgICAo bm90IChoYXMtc3Vic3RpdHV0ZXM/IHMgbykpKQorICAgICAgICAgICAgKHdpdGgtc3RvcmUK KyAgICAgICAgICAgICAgcworICAgICAgICAgICAgICAoc2V0LWJ1aWxkLW9wdGlvbnMKKyAg ICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgIzp1c2Utc3Vic3RpdHV0ZXM/Cisg ICAgICAgICAgICAgICAgI3QKKyAgICAgICAgICAgICAgICAjOnN1YnN0aXR1dGUtdXJscwor ICAgICAgICAgICAgICAgICgldGVzdC1zdWJzdGl0dXRlLXVybHMpKQorICAgICAgICAgICAg ICAoaGFzLXN1YnN0aXR1dGVzPyBzIG8pKQorICAgICAgICAgICAgKHdpdGgtc3RvcmUKKyAg ICAgICAgICAgICAgcworICAgICAgICAgICAgICAoc2V0LWJ1aWxkLW9wdGlvbnMKKyAgICAg ICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgIzp1c2Utc3Vic3RpdHV0ZXM/CisgICAg ICAgICAgICAgICAgI3QKKyAgICAgICAgICAgICAgICAjOnN1YnN0aXR1dGUtdXJscworICAg ICAgICAgICAgICAgICcoKSkKKyAgICAgICAgICAgICAgKG5vdCAoaGFzLXN1YnN0aXR1dGVz PyBzIG8pKSkpKSkpCmFjdHVhbC12YWx1ZTogI3QKcmVzdWx0OiBQQVNTCgovaG9tZS9zdW5k YnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjc0NDoxNjogd2FybmluZzogJ2J1aWxkLWV4cHJl c3Npb24tPmRlcml2YXRpb24nIGlzIGRlcHJlY2F0ZWQsIHVzZSAnZ2V4cC0+ZGVyaXZhdGlv bicgaW5zdGVhZApzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6IHdhcm5pbmc6IEFDTCBm b3IgYXJjaGl2ZSBpbXBvcnRzIHNlZW1zIHRvIGJlIHVuaW5pdGlhbGl6ZWQsIHN1YnN0aXR1 dGVzIG1heSBiZSB1bmF2YWlsYWJsZQpzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6IHdh cm5pbmc6IGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIG9mIHN1YnN0aXR1dGVz IGRpc2FibGVkIQpzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6IHdhcm5pbmc6IGF1dGhl bnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIG9mIHN1YnN0aXR1dGVzIGRpc2FibGVkIQpA IHN1YnN0aXR1dGVyLXN0YXJ0ZWQgL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3Jl LzY4NnYzNWR6azFsbXJ2aTl4MHh2aDh5a3NnY2NjOWRjLXN1YnN0aXR1dGUtbWUgc3Vic3Rp dHV0ZQpndWl4IHN1YnN0aXR1dGU6IHdhcm5pbmc6IEFDTCBmb3IgYXJjaGl2ZSBpbXBvcnRz IHNlZW1zIHRvIGJlIHVuaW5pdGlhbGl6ZWQsIHN1YnN0aXR1dGVzIG1heSBiZSB1bmF2YWls YWJsZQpEb3dubG9hZGluZyBmaWxlOi9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC92YXIv NDgwNi9zdWJzdGl0dXRlci1kYXRhL2V4YW1wbGUubmFyLi4uCg0bW0sgZXhhbXBsZS5uYXIg IDE3NkIgICAgICAgICAgICAgICAgICAgICAgIDBCL3MgMDA6MDAgWyAgICAgICAgICAgICAg ICAgIF0gICAwLjAlDRtbSyBleGFtcGxlLm5hciAgMTc2QiAgICAgICAgICAgICAgICAgICAy MjhLaUIvcyAwMDowMCBbIyMjIyMjIyMjIyMjIyMjIyMjXSAxMDAuMCUNG1tLIGV4YW1wbGUu bmFyICAxNzZCICAgICAgICAgICAgICAgICAgIDE1OEtpQi9zIDAwOjAwIFsjIyMjIyMjIyMj IyMjIyMjIyNdIDEwMC4wJQoKQCBzdWJzdGl0dXRlci1zdWNjZWVkZWQgL2hvbWUvc3VuZGJy eS9ndWl4L3Rlc3QtdG1wL3N0b3JlLzY4NnYzNWR6azFsbXJ2aTl4MHh2aDh5a3NnY2NjOWRj LXN1YnN0aXR1dGUtbWUKdGVzdC1uYW1lOiBzdWJzdGl0dXRlCmxvY2F0aW9uOiAvaG9tZS9z dW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjc0MQpzb3VyY2U6CisgKHRlc3QtYXNzZXJ0 CisgICAic3Vic3RpdHV0ZSIKKyAgICh3aXRoLXN0b3JlCisgICAgIHMKKyAgICAgKGxldCog KChjIChyYW5kb20tdGV4dCkpCisgICAgICAgICAgICAoZCAoYnVpbGQtZXhwcmVzc2lvbi0+ ZGVyaXZhdGlvbgorICAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgICJzdWJz dGl0dXRlLW1lIgorICAgICAgICAgICAgICAgICBgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZQor ICAgICAgICAgICAgICAgICAgICAlb3V0cHV0CisgICAgICAgICAgICAgICAgICAgIChsYW1i ZGEgKHApIChleGl0IDEpIChkaXNwbGF5ICxjIHApKSkKKyAgICAgICAgICAgICAgICAgIzpn dWlsZS1mb3ItYnVpbGQKKyAgICAgICAgICAgICAgICAgKHBhY2thZ2UtZGVyaXZhdGlvbgor ICAgICAgICAgICAgICAgICAgIHMKKyAgICAgICAgICAgICAgICAgICAlYm9vdHN0cmFwLWd1 aWxlCisgICAgICAgICAgICAgICAgICAgKCVjdXJyZW50LXN5c3RlbSkpKSkKKyAgICAgICAg ICAgIChvIChkZXJpdmF0aW9uLT5vdXRwdXQtcGF0aCBkKSkpCisgICAgICAgKHdpdGgtZGVy aXZhdGlvbi1zdWJzdGl0dXRlCisgICAgICAgICBkCisgICAgICAgICBjCisgICAgICAgICAo c2V0LWJ1aWxkLW9wdGlvbnMKKyAgICAgICAgICAgcworICAgICAgICAgICAjOnVzZS1zdWJz dGl0dXRlcz8KKyAgICAgICAgICAgI3QKKyAgICAgICAgICAgIzpzdWJzdGl0dXRlLXVybHMK KyAgICAgICAgICAgKCV0ZXN0LXN1YnN0aXR1dGUtdXJscykpCisgICAgICAgICAoYW5kICho YXMtc3Vic3RpdHV0ZXM/IHMgbykKKyAgICAgICAgICAgICAgKGJ1aWxkLWRlcml2YXRpb25z IHMgKGxpc3QgZCkpCisgICAgICAgICAgICAgIChjYW5vbmljYWwtZmlsZT8gbykKKyAgICAg ICAgICAgICAgKGVxdWFsPworICAgICAgICAgICAgICAgIGMKKyAgICAgICAgICAgICAgICAo Y2FsbC13aXRoLWlucHV0LWZpbGUgbyBnZXQtc3RyaW5nLWFsbCkpKSkpKSkKYWN0dWFsLXZh bHVlOiAjdApyZXN1bHQ6IFBBU1MKCi9ob21lL3N1bmRicnkvZ3VpeC90ZXN0cy9zdG9yZS5z Y206NzY3OjE2OiB3YXJuaW5nOiAnYnVpbGQtZXhwcmVzc2lvbi0+ZGVyaXZhdGlvbicgaXMg ZGVwcmVjYXRlZCwgdXNlICdnZXhwLT5kZXJpdmF0aW9uJyBpbnN0ZWFkCi9ob21lL3N1bmRi cnkvZ3VpeC90ZXN0cy9zdG9yZS5zY206NzcwOjE2OiB3YXJuaW5nOiAnYnVpbGQtZXhwcmVz c2lvbi0+ZGVyaXZhdGlvbicgaXMgZGVwcmVjYXRlZCwgdXNlICdnZXhwLT5kZXJpdmF0aW9u JyBpbnN0ZWFkCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2FybmluZzogQUNMIGZv ciBhcmNoaXZlIGltcG9ydHMgc2VlbXMgdG8gYmUgdW5pbml0aWFsaXplZCwgc3Vic3RpdHV0 ZXMgbWF5IGJlIHVuYXZhaWxhYmxlCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2Fy bmluZzogYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gb2Ygc3Vic3RpdHV0ZXMg ZGlzYWJsZWQhCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2FybmluZzogYXV0aGVu dGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gb2Ygc3Vic3RpdHV0ZXMgZGlzYWJsZWQhCkAg YnVpbGQtc3RhcnRlZCAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUvY2FzNDJj NGZwbTVoeGwwY3c0ZDB3c25qN2ZyeHN5YWotYnVpbGQtbWUuZHJ2IC0geDg2XzY0LWxpbnV4 IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC92YXIvbG9nL2d1aXgvZHJ2cy9jYS8vczQy YzRmcG01aHhsMGN3NGQwd3NuajdmcnhzeWFqLWJ1aWxkLW1lLmRydi5neiA1MzE3CkAgYnVp bGQtc3VjY2VlZGVkIC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS9jYXM0MmM0 ZnBtNWh4bDBjdzRkMHdzbmo3ZnJ4c3lhai1idWlsZC1tZS5kcnYgLQpzdWJzdGl0dXRlOiBn dWl4IHN1YnN0aXR1dGU6IHdhcm5pbmc6IGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0 aW9uIG9mIHN1YnN0aXR1dGVzIGRpc2FibGVkIQpAIHN1YnN0aXR1dGVyLXN0YXJ0ZWQgL2hv bWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL2IwMmthcW53bnA0czFjcGI0NXNjMzh4 dmhuOWEzZGE3LXN1YnN0aXR1dGUtbWUgc3Vic3RpdHV0ZQpndWl4IHN1YnN0aXR1dGU6IHdh cm5pbmc6IEFDTCBmb3IgYXJjaGl2ZSBpbXBvcnRzIHNlZW1zIHRvIGJlIHVuaW5pdGlhbGl6 ZWQsIHN1YnN0aXR1dGVzIG1heSBiZSB1bmF2YWlsYWJsZQpEb3dubG9hZGluZyBmaWxlOi9o b21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC92YXIvNDgwNi9zdWJzdGl0dXRlci1kYXRhL2V4 YW1wbGUubmFyLi4uCg0bW0sgZXhhbXBsZS5uYXIgIDEzS2lCICAgICAgICAgICAgICAgICAg ICAgIDBCL3MgMDA6MDAgWyAgICAgICAgICAgICAgICAgIF0gICAwLjAlDRtbSyBleGFtcGxl Lm5hciAgMTNLaUIgICAgICAgICAgICAgICAgICAxLjRNaUIvcyAwMDowMCBbIyAgICAgICAg ICAgICAgICAgXSAgIDcuOSUNG1tLIGV4YW1wbGUubmFyICAxM0tpQiAgICAgICAgICAgICAg ICAgIDkuNE1pQi9zIDAwOjAwIFsjIyMjIyMjIyMjIyMjIyMjIyNdIDEwMC4wJQoKQCBzdWJz dGl0dXRlci1zdWNjZWVkZWQgL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL2Iw MmthcW53bnA0czFjcGI0NXNjMzh4dmhuOWEzZGE3LXN1YnN0aXR1dGUtbWUKdGVzdC1uYW1l OiBzdWJzdGl0dXRlLCBkZWR1cGxpY2F0aW9uCmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1 aXgvdGVzdHMvc3RvcmUuc2NtOjc2MQpzb3VyY2U6CisgKHRlc3QtYXNzZXJ0CisgICAic3Vi c3RpdHV0ZSwgZGVkdXBsaWNhdGlvbiIKKyAgICh3aXRoLXN0b3JlCisgICAgIHMKKyAgICAg KGxldCogKChjIChzdHJpbmctY29uY2F0ZW5hdGUKKyAgICAgICAgICAgICAgICAgKG1ha2Ut bGlzdCAyMDAgKHJhbmRvbS10ZXh0KSkpKQorICAgICAgICAgICAgKGcgKHBhY2thZ2UtZGVy aXZhdGlvbiBzICVib290c3RyYXAtZ3VpbGUpKQorICAgICAgICAgICAgKGQxIChidWlsZC1l eHByZXNzaW9uLT5kZXJpdmF0aW9uCisgICAgICAgICAgICAgICAgICBzCisgICAgICAgICAg ICAgICAgICAic3Vic3RpdHV0ZS1tZSIKKyAgICAgICAgICAgICAgICAgIGAoYmVnaW4gLGMg KGV4aXQgMSkpCisgICAgICAgICAgICAgICAgICAjOmd1aWxlLWZvci1idWlsZAorICAgICAg ICAgICAgICAgICAgZykpCisgICAgICAgICAgICAoZDIgKGJ1aWxkLWV4cHJlc3Npb24tPmRl cml2YXRpb24KKyAgICAgICAgICAgICAgICAgIHMKKyAgICAgICAgICAgICAgICAgICJidWls ZC1tZSIKKyAgICAgICAgICAgICAgICAgIGAoY2FsbC13aXRoLW91dHB1dC1maWxlCisgICAg ICAgICAgICAgICAgICAgICAlb3V0cHV0CisgICAgICAgICAgICAgICAgICAgICAobGFtYmRh IChwKSAoZGlzcGxheSAsYyBwKSkpCisgICAgICAgICAgICAgICAgICAjOmd1aWxlLWZvci1i dWlsZAorICAgICAgICAgICAgICAgICAgZykpCisgICAgICAgICAgICAobzEgKGRlcml2YXRp b24tPm91dHB1dC1wYXRoIGQxKSkKKyAgICAgICAgICAgIChvMiAoZGVyaXZhdGlvbi0+b3V0 cHV0LXBhdGggZDIpKSkKKyAgICAgICAod2l0aC1kZXJpdmF0aW9uLXN1YnN0aXR1dGUKKyAg ICAgICAgIGQxCisgICAgICAgICBjCisgICAgICAgICAoc2V0LWJ1aWxkLW9wdGlvbnMKKyAg ICAgICAgICAgcworICAgICAgICAgICAjOnVzZS1zdWJzdGl0dXRlcz8KKyAgICAgICAgICAg I3QKKyAgICAgICAgICAgIzpzdWJzdGl0dXRlLXVybHMKKyAgICAgICAgICAgKCV0ZXN0LXN1 YnN0aXR1dGUtdXJscykpCisgICAgICAgICAoYW5kIChoYXMtc3Vic3RpdHV0ZXM/IHMgbzEp CisgICAgICAgICAgICAgIChidWlsZC1kZXJpdmF0aW9ucyBzIChsaXN0IGQyKSkKKyAgICAg ICAgICAgICAgKGJ1aWxkLWRlcml2YXRpb25zIHMgKGxpc3QgZDEpKQorICAgICAgICAgICAg ICAoY2Fub25pY2FsLWZpbGU/IG8xKQorICAgICAgICAgICAgICAoZXF1YWw/CisgICAgICAg ICAgICAgICAgYworICAgICAgICAgICAgICAgIChjYWxsLXdpdGgtaW5wdXQtZmlsZSBvMSBn ZXQtc3RyaW5nLWFsbCkpCisgICAgICAgICAgICAgICg9IChzdGF0OmlubyAoc3RhdCBvMSkp IChzdGF0OmlubyAoc3RhdCBvMikpKSkpKSkpCmFjdHVhbC12YWx1ZTogI3QKcmVzdWx0OiBQ QVNTCgovaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjc5MDoxNjogd2Fybmlu ZzogJ2J1aWxkLWV4cHJlc3Npb24tPmRlcml2YXRpb24nIGlzIGRlcHJlY2F0ZWQsIHVzZSAn Z2V4cC0+ZGVyaXZhdGlvbicgaW5zdGVhZApzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6 IHdhcm5pbmc6IEFDTCBmb3IgYXJjaGl2ZSBpbXBvcnRzIHNlZW1zIHRvIGJlIHVuaW5pdGlh bGl6ZWQsIHN1YnN0aXR1dGVzIG1heSBiZSB1bmF2YWlsYWJsZQpzdWJzdGl0dXRlOiBndWl4 IHN1YnN0aXR1dGU6IHdhcm5pbmc6IGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9u IG9mIHN1YnN0aXR1dGVzIGRpc2FibGVkIQpzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6 IHdhcm5pbmc6IGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIG9mIHN1YnN0aXR1 dGVzIGRpc2FibGVkIQpAIHN1YnN0aXR1dGVyLXN0YXJ0ZWQgL2hvbWUvc3VuZGJyeS9ndWl4 L3Rlc3QtdG1wL3N0b3JlL2oyY3h4cjhkOXdxOGdzczhtMXZpeGE1aDNpZmlja3ppLXN1YnN0 aXR1dGUtbWUgc3Vic3RpdHV0ZQpndWl4IHN1YnN0aXR1dGU6IHdhcm5pbmc6IEFDTCBmb3Ig YXJjaGl2ZSBpbXBvcnRzIHNlZW1zIHRvIGJlIHVuaW5pdGlhbGl6ZWQsIHN1YnN0aXR1dGVz IG1heSBiZSB1bmF2YWlsYWJsZQpEb3dubG9hZGluZyBmaWxlOi9ob21lL3N1bmRicnkvZ3Vp eC90ZXN0LXRtcC92YXIvNDgwNi9zdWJzdGl0dXRlci1kYXRhL2V4YW1wbGUubmFyLi4uCg0b W0sgZXhhbXBsZS5uYXIgIDE3NkIgICAgICAgICAgICAgICAgICAgICAgIDBCL3MgMDA6MDAg WyAgICAgICAgICAgICAgICAgIF0gICAwLjAlDRtbSyBleGFtcGxlLm5hciAgMTc2QiAgICAg ICAgICAgICAgICAgICAyMzJLaUIvcyAwMDowMCBbIyMjIyMjIyMjIyMjIyMjIyMjXSAxMDAu MCUNG1tLIGV4YW1wbGUubmFyICAxNzZCICAgICAgICAgICAgICAgICAgIDE2MktpQi9zIDAw OjAwIFsjIyMjIyMjIyMjIyMjIyMjIyNdIDEwMC4wJQoKQCBzdWJzdGl0dXRlci1zdWNjZWVk ZWQgL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL2oyY3h4cjhkOXdxOGdzczht MXZpeGE1aDNpZmlja3ppLXN1YnN0aXR1dGUtbWUKdGVzdC1uYW1lOiBzdWJzdGl0dXRlICsg YnVpbGQtdGhpbmdzIHdpdGggb3V0cHV0IHBhdGgKbG9jYXRpb246IC9ob21lL3N1bmRicnkv Z3VpeC90ZXN0cy9zdG9yZS5zY206Nzg3CnNvdXJjZToKKyAodGVzdC1hc3NlcnQKKyAgICJz dWJzdGl0dXRlICsgYnVpbGQtdGhpbmdzIHdpdGggb3V0cHV0IHBhdGgiCisgICAod2l0aC1z dG9yZQorICAgICBzCisgICAgIChsZXQqICgoYyAocmFuZG9tLXRleHQpKQorICAgICAgICAg ICAgKGQgKGJ1aWxkLWV4cHJlc3Npb24tPmRlcml2YXRpb24KKyAgICAgICAgICAgICAgICAg cworICAgICAgICAgICAgICAgICAic3Vic3RpdHV0ZS1tZSIKKyAgICAgICAgICAgICAgICAg YChjYWxsLXdpdGgtb3V0cHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgJW91dHB1dAor ICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChwKSAoZXhpdCAxKSAoZGlzcGxheSAsYyBw KSkpCisgICAgICAgICAgICAgICAgICM6Z3VpbGUtZm9yLWJ1aWxkCisgICAgICAgICAgICAg ICAgIChwYWNrYWdlLWRlcml2YXRpb24KKyAgICAgICAgICAgICAgICAgICBzCisgICAgICAg ICAgICAgICAgICAgJWJvb3RzdHJhcC1ndWlsZQorICAgICAgICAgICAgICAgICAgICglY3Vy cmVudC1zeXN0ZW0pKSkpCisgICAgICAgICAgICAobyAoZGVyaXZhdGlvbi0+b3V0cHV0LXBh dGggZCkpKQorICAgICAgICh3aXRoLWRlcml2YXRpb24tc3Vic3RpdHV0ZQorICAgICAgICAg ZAorICAgICAgICAgYworICAgICAgICAgKHNldC1idWlsZC1vcHRpb25zCisgICAgICAgICAg IHMKKyAgICAgICAgICAgIzp1c2Utc3Vic3RpdHV0ZXM/CisgICAgICAgICAgICN0CisgICAg ICAgICAgICM6c3Vic3RpdHV0ZS11cmxzCisgICAgICAgICAgICgldGVzdC1zdWJzdGl0dXRl LXVybHMpKQorICAgICAgICAgKGFuZCAoaGFzLXN1YnN0aXR1dGVzPyBzIG8pCisgICAgICAg ICAgICAgIChidWlsZC10aGluZ3MgcyAobGlzdCBvKSkKKyAgICAgICAgICAgICAgKHZhbGlk LXBhdGg/IHMgbykKKyAgICAgICAgICAgICAgKGNhbm9uaWNhbC1maWxlPyBvKQorICAgICAg ICAgICAgICAoZXF1YWw/CisgICAgICAgICAgICAgICAgYworICAgICAgICAgICAgICAgIChj YWxsLXdpdGgtaW5wdXQtZmlsZSBvIGdldC1zdHJpbmctYWxsKSkpKSkpKQphY3R1YWwtdmFs dWU6ICN0CnJlc3VsdDogUEFTUwoKL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNj bTo4MTE6MTY6IHdhcm5pbmc6ICdidWlsZC1leHByZXNzaW9uLT5kZXJpdmF0aW9uJyBpcyBk ZXByZWNhdGVkLCB1c2UgJ2dleHAtPmRlcml2YXRpb24nIGluc3RlYWQKc3Vic3RpdHV0ZTog Z3VpeCBzdWJzdGl0dXRlOiB3YXJuaW5nOiBBQ0wgZm9yIGFyY2hpdmUgaW1wb3J0cyBzZWVt cyB0byBiZSB1bmluaXRpYWxpemVkLCBzdWJzdGl0dXRlcyBtYXkgYmUgdW5hdmFpbGFibGUK c3Vic3RpdHV0ZTogZ3VpeCBzdWJzdGl0dXRlOiB3YXJuaW5nOiBhdXRoZW50aWNhdGlvbiBh bmQgYXV0aG9yaXphdGlvbiBvZiBzdWJzdGl0dXRlcyBkaXNhYmxlZCEKc3Vic3RpdHV0ZTog Z3VpeCBzdWJzdGl0dXRlOiB3YXJuaW5nOiBhdXRoZW50aWNhdGlvbiBhbmQgYXV0aG9yaXph dGlvbiBvZiBzdWJzdGl0dXRlcyBkaXNhYmxlZCEKQCBzdWJzdGl0dXRlci1zdGFydGVkIC9o b21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS9rMm5nanB4aWkzZHNmMzU1OWE2a2c2 d2pxbTMzdzliNS1zdWJzdGl0dXRlLW1lIHN1YnN0aXR1dGUKZ3VpeCBzdWJzdGl0dXRlOiB3 YXJuaW5nOiBBQ0wgZm9yIGFyY2hpdmUgaW1wb3J0cyBzZWVtcyB0byBiZSB1bmluaXRpYWxp emVkLCBzdWJzdGl0dXRlcyBtYXkgYmUgdW5hdmFpbGFibGUKRG93bmxvYWRpbmcgZmlsZTov aG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvdmFyLzQ4MDYvc3Vic3RpdHV0ZXItZGF0YS9l eGFtcGxlLm5hci4uLgoNG1tLIGV4YW1wbGUubmFyICAxNzZCICAgICAgICAgICAgICAgICAg ICAgICAwQi9zIDAwOjAwIFsgICAgICAgICAgICAgICAgICBdICAgMC4wJQ0bW0sgZXhhbXBs ZS5uYXIgIDE3NkIgICAgICAgICAgICAgICAgICAgMjQwS2lCL3MgMDA6MDAgWyMjIyMjIyMj IyMjIyMjIyMjI10gMTAwLjAlDRtbSyBleGFtcGxlLm5hciAgMTc2QiAgICAgICAgICAgICAg ICAgICAxNjdLaUIvcyAwMDowMCBbIyMjIyMjIyMjIyMjIyMjIyMjXSAxMDAuMCUKCkAgc3Vi c3RpdHV0ZXItc3VjY2VlZGVkIC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS9r Mm5nanB4aWkzZHNmMzU1OWE2a2c2d2pxbTMzdzliNS1zdWJzdGl0dXRlLW1lCnRlc3QtbmFt ZTogc3Vic3RpdHV0ZSArIGJ1aWxkLXRoaW5ncyB3aXRoIHNwZWNpZmljIG91dHB1dApsb2Nh dGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbTo4MDgKc291cmNlOgor ICh0ZXN0LWFzc2VydAorICAgInN1YnN0aXR1dGUgKyBidWlsZC10aGluZ3Mgd2l0aCBzcGVj aWZpYyBvdXRwdXQiCisgICAod2l0aC1zdG9yZQorICAgICBzCisgICAgIChsZXQqICgoYyAo cmFuZG9tLXRleHQpKQorICAgICAgICAgICAgKGQgKGJ1aWxkLWV4cHJlc3Npb24tPmRlcml2 YXRpb24KKyAgICAgICAgICAgICAgICAgcworICAgICAgICAgICAgICAgICAic3Vic3RpdHV0 ZS1tZSIKKyAgICAgICAgICAgICAgICAgYChiZWdpbiAsYyAoZXhpdCAxKSkKKyAgICAgICAg ICAgICAgICAgIzpvdXRwdXRzCisgICAgICAgICAgICAgICAgICcoIm91dCIgIm9uZSIgInR3 byIpCisgICAgICAgICAgICAgICAgICM6Z3VpbGUtZm9yLWJ1aWxkCisgICAgICAgICAgICAg ICAgIChwYWNrYWdlLWRlcml2YXRpb24KKyAgICAgICAgICAgICAgICAgICBzCisgICAgICAg ICAgICAgICAgICAgJWJvb3RzdHJhcC1ndWlsZQorICAgICAgICAgICAgICAgICAgICglY3Vy cmVudC1zeXN0ZW0pKSkpCisgICAgICAgICAgICAobyAoZGVyaXZhdGlvbi0+b3V0cHV0LXBh dGggZCkpKQorICAgICAgICh3aXRoLWRlcml2YXRpb24tc3Vic3RpdHV0ZQorICAgICAgICAg ZAorICAgICAgICAgYworICAgICAgICAgKHNldC1idWlsZC1vcHRpb25zCisgICAgICAgICAg IHMKKyAgICAgICAgICAgIzp1c2Utc3Vic3RpdHV0ZXM/CisgICAgICAgICAgICN0CisgICAg ICAgICAgICM6c3Vic3RpdHV0ZS11cmxzCisgICAgICAgICAgICgldGVzdC1zdWJzdGl0dXRl LXVybHMpKQorICAgICAgICAgKGFuZCAoaGFzLXN1YnN0aXR1dGVzPyBzIG8pCisgICAgICAg ICAgICAgIChidWlsZC10aGluZ3MKKyAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAg ICAgYCgoKHVucXVvdGUgKGRlcml2YXRpb24tZmlsZS1uYW1lIGQpKSAuICJvdXQiKSkpCisg ICAgICAgICAgICAgICh2YWxpZC1wYXRoPyBzIG8pCisgICAgICAgICAgICAgIChjYW5vbmlj YWwtZmlsZT8gbykKKyAgICAgICAgICAgICAgKGVxdWFsPworICAgICAgICAgICAgICAgIGMK KyAgICAgICAgICAgICAgICAoY2FsbC13aXRoLWlucHV0LWZpbGUgbyBnZXQtc3RyaW5nLWFs bCkpKSkpKSkKYWN0dWFsLXZhbHVlOiAjdApyZXN1bHQ6IFBBU1MKCi9ob21lL3N1bmRicnkv Z3VpeC90ZXN0cy9zdG9yZS5zY206ODM1OjE2OiB3YXJuaW5nOiAnYnVpbGQtZXhwcmVzc2lv bi0+ZGVyaXZhdGlvbicgaXMgZGVwcmVjYXRlZCwgdXNlICdnZXhwLT5kZXJpdmF0aW9uJyBp bnN0ZWFkCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2FybmluZzogQUNMIGZvciBh cmNoaXZlIGltcG9ydHMgc2VlbXMgdG8gYmUgdW5pbml0aWFsaXplZCwgc3Vic3RpdHV0ZXMg bWF5IGJlIHVuYXZhaWxhYmxlCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2Fybmlu ZzogYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24gb2Ygc3Vic3RpdHV0ZXMgZGlz YWJsZWQhCnN1YnN0aXR1dGU6IGd1aXggc3Vic3RpdHV0ZTogd2FybmluZzogYXV0aGVudGlj YXRpb24gYW5kIGF1dGhvcml6YXRpb24gb2Ygc3Vic3RpdHV0ZXMgZGlzYWJsZWQhCkAgc3Vi c3RpdHV0ZXItc3RhcnRlZCAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUvcHZh aXMzbWhqMTc4aDhnNnFwY2ZucWxiazYyNDl5Y2ctY29ycnVwdC1zdWJzdGl0dXRlIHN1YnN0 aXR1dGUKZ3VpeCBzdWJzdGl0dXRlOiB3YXJuaW5nOiBBQ0wgZm9yIGFyY2hpdmUgaW1wb3J0 cyBzZWVtcyB0byBiZSB1bmluaXRpYWxpemVkLCBzdWJzdGl0dXRlcyBtYXkgYmUgdW5hdmFp bGFibGUKRG93bmxvYWRpbmcgZmlsZTovaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvdmFy LzQ4MDYvc3Vic3RpdHV0ZXItZGF0YS9leGFtcGxlLm5hci4uLgoNG1tLIGV4YW1wbGUubmFy ICAxMjhCICAgICAgICAgICAgICAgICAgICAgICAwQi9zIDAwOjAwIFsgICAgICAgICAgICAg ICAgICBdICAgMC4wJQ0bW0sgZXhhbXBsZS5uYXIgIDEyOEIgICAgICAgICAgICAgICAgICAg MTcwS2lCL3MgMDA6MDAgWyMjIyMjIyMjIyMjIyMjIyMjI10gMTAwLjAlDRtbSyBleGFtcGxl Lm5hciAgMTI4QiAgICAgICAgICAgICAgICAgICAxMTlLaUIvcyAwMDowMCBbIyMjIyMjIyMj IyMjIyMjIyMjXSAxMDAuMCUKCkAgaGFzaC1taXNtYXRjaCAvaG9tZS9zdW5kYnJ5L2d1aXgv dGVzdC10bXAvc3RvcmUvcHZhaXMzbWhqMTc4aDhnNnFwY2ZucWxiazYyNDl5Y2ctY29ycnVw dC1zdWJzdGl0dXRlIHNoYTI1NiAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwIDBkZm12azB2NWp3M2Y1ZjF3cHY4djhkZ3d4ajYybWc1bmFu eW41bGszcmwwbjlwM214eHEKQCBzdWJzdGl0dXRlci1mYWlsZWQgL2hvbWUvc3VuZGJyeS9n dWl4L3Rlc3QtdG1wL3N0b3JlL3B2YWlzM21oajE3OGg4ZzZxcGNmbnFsYms2MjQ5eWNnLWNv cnJ1cHQtc3Vic3RpdHV0ZSBoYXNoLW1pc21hdGNoIHNoYTI1NiAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDBkZm12azB2NWp3M2Y1ZjF3 cHY4djhkZ3d4ajYybWc1bmFueW41bGszcmwwbjlwM214eHEgaGFzaCBtaXNtYXRjaCBmb3Ig c3Vic3RpdHV0ZWQgaXRlbSBgL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL3B2 YWlzM21oajE3OGg4ZzZxcGNmbnFsYms2MjQ5eWNnLWNvcnJ1cHQtc3Vic3RpdHV0ZScKCjs7 OyAoY29ycnVwdCAjPCZzdG9yZS1wcm90b2NvbC1lcnJvciBtZXNzYWdlOiAic29tZSBzdWJz dGl0dXRlcyBmb3IgdGhlIG91dHB1dHMgb2YgZGVyaXZhdGlvbiBgL2hvbWUvc3VuZGJyeS9n dWl4L3Rlc3QtdG1wL3N0b3JlLzNhcGk1czlrN2h3eGw2azA5bmo1YW1kcHkyaWtieHY4LWNv cnJ1cHQtc3Vic3RpdHV0ZS5kcnYnIGZhaWxlZCAodXN1YWxseSBoYXBwZW5zIGR1ZSB0byBu ZXR3b3JraW5nIGlzc3Vlcyk7IHRyeSBgLS1mYWxsYmFjaycgdG8gYnVpbGQgZGVyaXZhdGlv biBmcm9tIHNvdXJjZSAiIHN0YXR1czogMT4pCnRlc3QtbmFtZTogc3Vic3RpdHV0ZSwgY29y cnVwdCBvdXRwdXQgaGFzaApsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0 b3JlLnNjbTo4MjkKc291cmNlOgorICh0ZXN0LWFzc2VydAorICAgInN1YnN0aXR1dGUsIGNv cnJ1cHQgb3V0cHV0IGhhc2giCisgICAod2l0aC1zdG9yZQorICAgICBzCisgICAgIChsZXQq ICgoYyAiaGVsbG8sIHdvcmxkIikKKyAgICAgICAgICAgIChkIChidWlsZC1leHByZXNzaW9u LT5kZXJpdmF0aW9uCisgICAgICAgICAgICAgICAgIHMKKyAgICAgICAgICAgICAgICAgImNv cnJ1cHQtc3Vic3RpdHV0ZSIKKyAgICAgICAgICAgICAgICAgYChta2RpciAlb3V0cHV0KQor ICAgICAgICAgICAgICAgICAjOmd1aWxlLWZvci1idWlsZAorICAgICAgICAgICAgICAgICAo cGFja2FnZS1kZXJpdmF0aW9uCisgICAgICAgICAgICAgICAgICAgcworICAgICAgICAgICAg ICAgICAgICVib290c3RyYXAtZ3VpbGUKKyAgICAgICAgICAgICAgICAgICAoJWN1cnJlbnQt c3lzdGVtKSkpKQorICAgICAgICAgICAgKG8gKGRlcml2YXRpb24tPm91dHB1dC1wYXRoIGQp KSkKKyAgICAgICAod2l0aC1kZXJpdmF0aW9uLXN1YnN0aXR1dGUKKyAgICAgICAgIGQKKyAg ICAgICAgIGMKKyAgICAgICAgIChzaGEyNTYgPT4gKG1ha2UtYnl0ZXZlY3RvciAzMiAwKSkK KyAgICAgICAgIChzZXQtYnVpbGQtb3B0aW9ucworICAgICAgICAgICBzCisgICAgICAgICAg ICM6dXNlLXN1YnN0aXR1dGVzPworICAgICAgICAgICAjdAorICAgICAgICAgICAjOmZhbGxi YWNrPworICAgICAgICAgICAjZgorICAgICAgICAgICAjOnN1YnN0aXR1dGUtdXJscworICAg ICAgICAgICAoJXRlc3Qtc3Vic3RpdHV0ZS11cmxzKSkKKyAgICAgICAgIChhbmQgKGhhcy1z dWJzdGl0dXRlcz8gcyBvKQorICAgICAgICAgICAgICAoZ3VhcmQgKGMgKChzdG9yZS1wcm90 b2NvbC1lcnJvcj8gYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAocGsgJ2NvcnJ1cHQg YykKKyAgICAgICAgICAgICAgICAgICAgICAgICAobm90ICh6ZXJvPyAoc3RvcmUtcHJvdG9j b2wtZXJyb3Itc3RhdHVzIGMpKSkpKQorICAgICAgICAgICAgICAgICAgICAgKGJ1aWxkLWRl cml2YXRpb25zIHMgKGxpc3QgZCkpCisgICAgICAgICAgICAgICAgICAgICAjZikpKSkpKQph Y3R1YWwtdmFsdWU6ICN0CnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiBzdWJzdGl0dXRlLCBj b3JydXB0IG91dHB1dCBoYXNoLCBidWlsZCB0cmFjZQpsb2NhdGlvbjogL2hvbWUvc3VuZGJy eS9ndWl4L3Rlc3RzL3N0b3JlLnNjbTo4NTkKc291cmNlOgorICh0ZXN0LWFzc2VydAorICAg InN1YnN0aXR1dGUsIGNvcnJ1cHQgb3V0cHV0IGhhc2gsIGJ1aWxkIHRyYWNlIgorICAgKHdp dGgtc3RvcmUKKyAgICAgcworICAgICAobGV0KiAoKGMgImhlbGxvLCB3b3JsZCIpCisgICAg ICAgICAgICAoZCAoYnVpbGQtZXhwcmVzc2lvbi0+ZGVyaXZhdGlvbgorICAgICAgICAgICAg ICAgICBzCisgICAgICAgICAgICAgICAgICJjb3JydXB0LXN1YnN0aXR1dGUiCisgICAgICAg ICAgICAgICAgIGAobWtkaXIgJW91dHB1dCkKKyAgICAgICAgICAgICAgICAgIzpndWlsZS1m b3ItYnVpbGQKKyAgICAgICAgICAgICAgICAgKHBhY2thZ2UtZGVyaXZhdGlvbgorICAgICAg ICAgICAgICAgICAgIHMKKyAgICAgICAgICAgICAgICAgICAlYm9vdHN0cmFwLWd1aWxlCisg ICAgICAgICAgICAgICAgICAgKCVjdXJyZW50LXN5c3RlbSkpKSkKKyAgICAgICAgICAgIChv IChkZXJpdmF0aW9uLT5vdXRwdXQtcGF0aCBkKSkpCisgICAgICAgKHNldC1idWlsZC1vcHRp b25zCisgICAgICAgICBzCisgICAgICAgICAjOnByaW50LWJ1aWxkLXRyYWNlCisgICAgICAg ICAjdAorICAgICAgICAgIzp1c2Utc3Vic3RpdHV0ZXM/CisgICAgICAgICAjdAorICAgICAg ICAgIzpmYWxsYmFjaz8KKyAgICAgICAgICNmCisgICAgICAgICAjOnN1YnN0aXR1dGUtdXJs cworICAgICAgICAgKCV0ZXN0LXN1YnN0aXR1dGUtdXJscykpCisgICAgICAgKHdpdGgtZGVy aXZhdGlvbi1zdWJzdGl0dXRlCisgICAgICAgICBkCisgICAgICAgICBjCisgICAgICAgICAo c2hhMjU2ID0+IChtYWtlLWJ5dGV2ZWN0b3IgMzIgMCkpCisgICAgICAgICAoZGVmaW5lIG91 dHB1dAorICAgICAgICAgICAoY2FsbC13aXRoLW91dHB1dC1zdHJpbmcKKyAgICAgICAgICAg ICAobGFtYmRhIChwb3J0KQorICAgICAgICAgICAgICAgKHBhcmFtZXRlcml6ZQorICAgICAg ICAgICAgICAgICAoKGN1cnJlbnQtYnVpbGQtb3V0cHV0LXBvcnQgcG9ydCkpCisgICAgICAg ICAgICAgICAgIChndWFyZCAoYyAoKHN0b3JlLXByb3RvY29sLWVycm9yPyBjKSAjdCkpCisg ICAgICAgICAgICAgICAgICAgICAgICAoYnVpbGQtZGVyaXZhdGlvbnMgcyAobGlzdCBkKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICNmKSkpKSkKKyAgICAgICAgIChkZWZpbmUgYWN0 dWFsLWhhc2gKKyAgICAgICAgICAgKGxldC12YWx1ZXMKKyAgICAgICAgICAgICAoKChwb3J0 IGdldC1oYXNoKQorICAgICAgICAgICAgICAgKGdjcnlwdDpvcGVuLWhhc2gtcG9ydAorICAg ICAgICAgICAgICAgICAoZ2NyeXB0Omhhc2gtYWxnb3JpdGhtIGdjcnlwdDpzaGEyNTYpKSkp CisgICAgICAgICAgICAgKHdyaXRlLWZpbGUtdHJlZQorICAgICAgICAgICAgICAgImZvbyIK KyAgICAgICAgICAgICAgIHBvcnQKKyAgICAgICAgICAgICAgICM6ZmlsZS10eXBlK3NpemUK KyAgICAgICAgICAgICAgIChsYW1iZGEgXyAodmFsdWVzICdyZWd1bGFyIChzdHJpbmctbGVu Z3RoIGMpKSkKKyAgICAgICAgICAgICAgICM6ZmlsZS1wb3J0CisgICAgICAgICAgICAgICAo bGFtYmRhIF8gKG9wZW4taW5wdXQtc3RyaW5nIGMpKSkKKyAgICAgICAgICAgICAoY2xvc2Ut cG9ydCBwb3J0KQorICAgICAgICAgICAgIChieXRldmVjdG9yLT5uaXgtYmFzZTMyLXN0cmlu ZyAoZ2V0LWhhc2gpKSkpCisgICAgICAgICAoZGVmaW5lIGV4cGVjdGVkLWhhc2gKKyAgICAg ICAgICAgKGJ5dGV2ZWN0b3ItPm5peC1iYXNlMzItc3RyaW5nCisgICAgICAgICAgICAgKG1h a2UtYnl0ZXZlY3RvciAzMiAwKSkpCisgICAgICAgICAoZGVmaW5lIG1pc21hdGNoCisgICAg ICAgICAgIChzdHJpbmctYXBwZW5kCisgICAgICAgICAgICAgIkAgaGFzaC1taXNtYXRjaCAi CisgICAgICAgICAgICAgbworICAgICAgICAgICAgICIgc2hhMjU2ICIKKyAgICAgICAgICAg ICBleHBlY3RlZC1oYXNoCisgICAgICAgICAgICAgIiAiCisgICAgICAgICAgICAgYWN0dWFs LWhhc2gKKyAgICAgICAgICAgICAiXG4iKSkKKyAgICAgICAgIChkZWZpbmUgZmFpbHVyZQor ICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiQCBzdWJzdGl0dXRlci1mYWlsZWQgIiBvKSkK KyAgICAgICAgIChhbmQgKHN0cmluZy1jb250YWlucyBvdXRwdXQgbWlzbWF0Y2gpCisgICAg ICAgICAgICAgIChzdHJpbmctY29udGFpbnMgb3V0cHV0IGZhaWx1cmUpKSkpKSkKYWN0dWFs LXZhbHVlOiA5OTUKcmVzdWx0OiBQQVNTCgovaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3Rv cmUuc2NtOjg2MzoxNjogd2FybmluZzogJ2J1aWxkLWV4cHJlc3Npb24tPmRlcml2YXRpb24n IGlzIGRlcHJlY2F0ZWQsIHVzZSAnZ2V4cC0+ZGVyaXZhdGlvbicgaW5zdGVhZAovaG9tZS9z dW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjkxNzoxNjogd2FybmluZzogJ2J1aWxkLWV4 cHJlc3Npb24tPmRlcml2YXRpb24nIGlzIGRlcHJlY2F0ZWQsIHVzZSAnZ2V4cC0+ZGVyaXZh dGlvbicgaW5zdGVhZApzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6IHdhcm5pbmc6IEFD TCBmb3IgYXJjaGl2ZSBpbXBvcnRzIHNlZW1zIHRvIGJlIHVuaW5pdGlhbGl6ZWQsIHN1YnN0 aXR1dGVzIG1heSBiZSB1bmF2YWlsYWJsZQpzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6 IHdhcm5pbmc6IGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIG9mIHN1YnN0aXR1 dGVzIGRpc2FibGVkIQpzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6IHdhcm5pbmc6IGF1 dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIG9mIHN1YnN0aXR1dGVzIGRpc2FibGVk IQpAIHN1YnN0aXR1dGVyLXN0YXJ0ZWQgL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0 b3JlL2pnbWR4aHYyaDdsYjRicnEyNHJ3bTBnZG5qZ3kxc2JwLXN1YnN0aXR1dGUtbWUtbm90 IHN1YnN0aXR1dGUKZ3VpeCBzdWJzdGl0dXRlOiB3YXJuaW5nOiBBQ0wgZm9yIGFyY2hpdmUg aW1wb3J0cyBzZWVtcyB0byBiZSB1bmluaXRpYWxpemVkLCBzdWJzdGl0dXRlcyBtYXkgYmUg dW5hdmFpbGFibGUKRG93bmxvYWRpbmcgZmlsZTovaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10 bXAvdmFyLzQ4MDYvc3Vic3RpdHV0ZXItZGF0YS9leGFtcGxlLm5hci4uLgpyZXRyeWluZyBk b3dubG9hZCBvZiAnL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL2pnbWR4aHYy aDdsYjRicnEyNHJ3bTBnZG5qZ3kxc2JwLXN1YnN0aXR1dGUtbWUtbm90JyB3aXRoIG90aGVy IHN1YnN0aXR1dGUgVVJMcy4uLgpEb3dubG9hZGluZyBmaWxlOi9ob21lL3N1bmRicnkvZ3Vp eC90ZXN0LXRtcC92YXIvNDgwNi9zdWJzdGl0dXRlci1kYXRhL2V4YW1wbGUubmFyLi4uCmd1 aXggc3Vic3RpdHV0ZTogZXJyb3I6IGZhaWxlZCB0byBmaW5kIGFsdGVybmF0aXZlIHN1YnN0 aXR1dGUgZm9yICcvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUvamdtZHhodjJo N2xiNGJycTI0cndtMGdkbmpneTFzYnAtc3Vic3RpdHV0ZS1tZS1ub3QnCkAgc3Vic3RpdHV0 ZXItZmFpbGVkIC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS9qZ21keGh2Mmg3 bGI0YnJxMjRyd20wZ2Ruamd5MXNicC1zdWJzdGl0dXRlLW1lLW5vdCAgZmV0Y2hpbmcgcGF0 aCBgL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL2pnbWR4aHYyaDdsYjRicnEy NHJ3bTBnZG5qZ3kxc2JwLXN1YnN0aXR1dGUtbWUtbm90JyAoZW1wdHkgc3RhdHVzOiAnJykK c3Vic3RpdHV0ZTogZ3VpeCBzdWJzdGl0dXRlOiB3YXJuaW5nOiBhdXRoZW50aWNhdGlvbiBh bmQgYXV0aG9yaXphdGlvbiBvZiBzdWJzdGl0dXRlcyBkaXNhYmxlZCEKQCBzdWJzdGl0dXRl ci1zdGFydGVkIC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS9qZ21keGh2Mmg3 bGI0YnJxMjRyd20wZ2Ruamd5MXNicC1zdWJzdGl0dXRlLW1lLW5vdCBzdWJzdGl0dXRlCmd1 aXggc3Vic3RpdHV0ZTogd2FybmluZzogQUNMIGZvciBhcmNoaXZlIGltcG9ydHMgc2VlbXMg dG8gYmUgdW5pbml0aWFsaXplZCwgc3Vic3RpdHV0ZXMgbWF5IGJlIHVuYXZhaWxhYmxlCkRv d25sb2FkaW5nIGZpbGU6L2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3Zhci80ODA2L3N1 YnN0aXR1dGVyLWRhdGEvZXhhbXBsZS5uYXIuLi4KcmV0cnlpbmcgZG93bmxvYWQgb2YgJy9o b21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS9qZ21keGh2Mmg3bGI0YnJxMjRyd20w Z2Ruamd5MXNicC1zdWJzdGl0dXRlLW1lLW5vdCcgd2l0aCBvdGhlciBzdWJzdGl0dXRlIFVS THMuLi4KRG93bmxvYWRpbmcgZmlsZTovaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvdmFy LzQ4MDYvc3Vic3RpdHV0ZXItZGF0YS9leGFtcGxlLm5hci4uLgpndWl4IHN1YnN0aXR1dGU6 IGVycm9yOiBmYWlsZWQgdG8gZmluZCBhbHRlcm5hdGl2ZSBzdWJzdGl0dXRlIGZvciAnL2hv bWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL2pnbWR4aHYyaDdsYjRicnEyNHJ3bTBn ZG5qZ3kxc2JwLXN1YnN0aXR1dGUtbWUtbm90JwpAIHN1YnN0aXR1dGVyLWZhaWxlZCAvaG9t ZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUvamdtZHhodjJoN2xiNGJycTI0cndtMGdk bmpneTFzYnAtc3Vic3RpdHV0ZS1tZS1ub3QgIGZldGNoaW5nIHBhdGggYC9ob21lL3N1bmRi cnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS9qZ21keGh2Mmg3bGI0YnJxMjRyd20wZ2Ruamd5MXNi cC1zdWJzdGl0dXRlLW1lLW5vdCcgKGVtcHR5IHN0YXR1czogJycpCkAgYnVpbGQtc3RhcnRl ZCAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUvbmZhbWd5czA0Nm4wdnE4c2ph NGliOGhsajlnZ3Z2eWgtc3Vic3RpdHV0ZS1tZS1ub3QuZHJ2IC0geDg2XzY0LWxpbnV4IC9o b21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC92YXIvbG9nL2d1aXgvZHJ2cy9uZi8vYW1neXMw NDZuMHZxOHNqYTRpYjhobGo5Z2d2dnloLXN1YnN0aXR1dGUtbWUtbm90LmRydi5neiA1NTYw CkAgYnVpbGQtc3VjY2VlZGVkIC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS9u ZmFtZ3lzMDQ2bjB2cThzamE0aWI4aGxqOWdndnZ5aC1zdWJzdGl0dXRlLW1lLW5vdC5kcnYg LQp0ZXN0LW5hbWU6IHN1YnN0aXR1dGUgLS1mYWxsYmFjawpsb2NhdGlvbjogL2hvbWUvc3Vu ZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbTo5MTQKc291cmNlOgorICh0ZXN0LWFzc2VydAor ICAgInN1YnN0aXR1dGUgLS1mYWxsYmFjayIKKyAgICh3aXRoLXN0b3JlCisgICAgIHMKKyAg ICAgKGxldCogKCh0IChyYW5kb20tdGV4dCkpCisgICAgICAgICAgICAoZCAoYnVpbGQtZXhw cmVzc2lvbi0+ZGVyaXZhdGlvbgorICAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAg ICAgICJzdWJzdGl0dXRlLW1lLW5vdCIKKyAgICAgICAgICAgICAgICAgYChjYWxsLXdpdGgt b3V0cHV0LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgJW91dHB1dAorICAgICAgICAgICAg ICAgICAgICAobGFtYmRhIChwKSAoZGlzcGxheSAsdCBwKSkpCisgICAgICAgICAgICAgICAg ICM6Z3VpbGUtZm9yLWJ1aWxkCisgICAgICAgICAgICAgICAgIChwYWNrYWdlLWRlcml2YXRp b24KKyAgICAgICAgICAgICAgICAgICBzCisgICAgICAgICAgICAgICAgICAgJWJvb3RzdHJh cC1ndWlsZQorICAgICAgICAgICAgICAgICAgICglY3VycmVudC1zeXN0ZW0pKSkpCisgICAg ICAgICAgICAobyAoZGVyaXZhdGlvbi0+b3V0cHV0LXBhdGggZCkpKQorICAgICAgICh3aXRo LWRlcml2YXRpb24tbmFyaW5mbworICAgICAgICAgZAorICAgICAgICAgKHNldC1idWlsZC1v cHRpb25zCisgICAgICAgICAgIHMKKyAgICAgICAgICAgIzp1c2Utc3Vic3RpdHV0ZXM/Cisg ICAgICAgICAgICN0CisgICAgICAgICAgICM6c3Vic3RpdHV0ZS11cmxzCisgICAgICAgICAg ICgldGVzdC1zdWJzdGl0dXRlLXVybHMpKQorICAgICAgICAgKGFuZCAoaGFzLXN1YnN0aXR1 dGVzPyBzIG8pCisgICAgICAgICAgICAgIChndWFyZCAoYyAoKHN0b3JlLXByb3RvY29sLWVy cm9yPyBjKQorICAgICAgICAgICAgICAgICAgICAgICAgIChzZXQtYnVpbGQtb3B0aW9ucwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgcworICAgICAgICAgICAgICAgICAgICAgICAg ICAgIzp1c2Utc3Vic3RpdHV0ZXM/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAjdAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpzdWJzdGl0dXRlLXVybHMKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICgldGVzdC1zdWJzdGl0dXRlLXVybHMpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAjOmZhbGxiYWNrPworICAgICAgICAgICAgICAgICAgICAgICAg ICAgI3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoYnVpbGQtZGVyaXZhdGlv bnMgcyAobGlzdCBkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbD8K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoY2FsbC13aXRoLWlucHV0LWZpbGUgbyBnZXQtc3RyaW5nLWFsbCkp KSkpCisgICAgICAgICAgICAgICAgICAgICAoYnVpbGQtZGVyaXZhdGlvbnMgcyAobGlzdCBk KSkKKyAgICAgICAgICAgICAgICAgICAgICNmKSkpKSkpCmFjdHVhbC12YWx1ZTogI3QKcmVz dWx0OiBQQVNTCgpzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6IHdhcm5pbmc6IEFDTCBm b3IgYXJjaGl2ZSBpbXBvcnRzIHNlZW1zIHRvIGJlIHVuaW5pdGlhbGl6ZWQsIHN1YnN0aXR1 dGVzIG1heSBiZSB1bmF2YWlsYWJsZQpzdWJzdGl0dXRlOiBndWl4IHN1YnN0aXR1dGU6IHdh cm5pbmc6IGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIG9mIHN1YnN0aXR1dGVz IGRpc2FibGVkIQoKOzs7IChzcGkgKCM8PHN1YnN0aXR1dGFibGU+IHBhdGg6ICIvaG9tZS9z dW5kYnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUvYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWEtYmFkLXNpemUiIGRlcml2ZXI6ICIiIHJlZnM6ICgpIGRsLXNpemU6IDAgbmFyLXNp emU6IDkyMjMzNzIwMzY4NTQ3NzU5MDg+KSkKdGVzdC1uYW1lOiBzdWJzdGl0dXRlIHF1ZXJ5 IGFuZCBsYXJnZSBzaXplCmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3Rv cmUuc2NtOjk0Ngpzb3VyY2U6CisgKHRlc3QtZXF1YWwKKyAgICJzdWJzdGl0dXRlIHF1ZXJ5 IGFuZCBsYXJnZSBzaXplIgorICAgKCsgMTAwIChleHB0IDIgNjMpKQorICAgKHdpdGgtc3Rv cmUKKyAgICAgcworICAgICAobGV0KiAoKHNpemUgKCsgMTAwIChleHB0IDIgNjMpKSkKKyAg ICAgICAgICAgIChpdGVtIChzdHJpbmctYXBwZW5kCisgICAgICAgICAgICAgICAgICAgICgl c3RvcmUtcHJlZml4KQorICAgICAgICAgICAgICAgICAgICAiL2FhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhLWJhZC1zaXplIikpKQorICAgICAgIChjYWxsLXdpdGgtb3V0cHV0 LWZpbGUKKyAgICAgICAgIChzdHJpbmctYXBwZW5kCisgICAgICAgICAgICglc3Vic3RpdHV0 ZS1kaXJlY3RvcnkpCisgICAgICAgICAgICIvIgorICAgICAgICAgICAoc3RvcmUtcGF0aC1o YXNoLXBhcnQgaXRlbSkKKyAgICAgICAgICAgIi5uYXJpbmZvIikKKyAgICAgICAgIChsYW1i ZGEgKHBvcnQpCisgICAgICAgICAgIChmb3JtYXQKKyAgICAgICAgICAgICBwb3J0CisgICAg ICAgICAgICAgIlN0b3JlUGF0aDogfmFcblVSTDogaHR0cDovL2V4YW1wbGUub3JnXG5Db21w cmVzc2lvbjogbm9uZVxuTmFyU2l6ZTogfmFcbk5hckhhc2g6IHNoYTI1NjowZmo5dmhibGZm Mjk5N3BpN3FqajdsaG15N3d6aG5qd21rbTJobXE2Z3I0ZnptZzEwczB3XG5SZWZlcmVuY2Vz OiBcblN5c3RlbTogeDg2XzY0LWxpbnV4fiUiCisgICAgICAgICAgICAgaXRlbQorICAgICAg ICAgICAgIHNpemUpKSkKKyAgICAgICAoZmFsc2UtaWYtZXhjZXB0aW9uCisgICAgICAgICAo ZGVsZXRlLWZpbGUtcmVjdXJzaXZlbHkKKyAgICAgICAgICAgKHN0cmluZy1hcHBlbmQKKyAg ICAgICAgICAgICAoZ2V0ZW52ICJYREdfQ0FDSEVfSE9NRSIpCisgICAgICAgICAgICAgIi9n dWl4L3N1YnN0aXR1dGUiKSkpCisgICAgICAgKHNldC1idWlsZC1vcHRpb25zCisgICAgICAg ICBzCisgICAgICAgICAjOnVzZS1zdWJzdGl0dXRlcz8KKyAgICAgICAgICN0CisgICAgICAg ICAjOnN1YnN0aXR1dGUtdXJscworICAgICAgICAgKCV0ZXN0LXN1YnN0aXR1dGUtdXJscykp CisgICAgICAgKG1hdGNoIChwayAnc3BpIChzdWJzdGl0dXRhYmxlLXBhdGgtaW5mbyBzIChs aXN0IGl0ZW0pKSkKKyAgICAgICAgICAgICAgKCgoPyBzdWJzdGl0dXRhYmxlPyBzKSkKKyAg ICAgICAgICAgICAgIChhbmQgKGVxdWFsPyAoc3Vic3RpdHV0YWJsZS1wYXRoIHMpIGl0ZW0p CisgICAgICAgICAgICAgICAgICAgIChzdWJzdGl0dXRhYmxlLW5hci1zaXplIHMpKSkpKSkp CmV4cGVjdGVkLXZhbHVlOiA5MjIzMzcyMDM2ODU0Nzc1OTA4CmFjdHVhbC12YWx1ZTogOTIy MzM3MjAzNjg1NDc3NTkwOApyZXN1bHQ6IFBBU1MKCnN1YnN0aXR1dGU6IGd1aXggc3Vic3Rp dHV0ZTogd2FybmluZzogQUNMIGZvciBhcmNoaXZlIGltcG9ydHMgc2VlbXMgdG8gYmUgdW5p bml0aWFsaXplZCwgc3Vic3RpdHV0ZXMgbWF5IGJlIHVuYXZhaWxhYmxlCnN1YnN0aXR1dGU6 IGd1aXggc3Vic3RpdHV0ZTogd2FybmluZzogYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6 YXRpb24gb2Ygc3Vic3RpdHV0ZXMgZGlzYWJsZWQhCkAgc3Vic3RpdHV0ZXItc3RhcnRlZCAv aG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUvYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWEtYmFkLXNpemUtYzlmNzU5NzFjNWJkZDI3NWIyMzIyOGJjNzYwZDYyYzdk MDE0Y2I5MDE3OTVmNDkwNmFjYzVkYmJlMjYyNGEwYSBzdWJzdGl0dXRlCmd1aXggc3Vic3Rp dHV0ZTogd2FybmluZzogQUNMIGZvciBhcmNoaXZlIGltcG9ydHMgc2VlbXMgdG8gYmUgdW5p bml0aWFsaXplZCwgc3Vic3RpdHV0ZXMgbWF5IGJlIHVuYXZhaWxhYmxlCkRvd25sb2FkaW5n IGZpbGU6L2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3Zhci80ODA2L3N1YnN0aXR1dGVy LWRhdGEvbmFyLi4uCg0bW0sgbmFyICAxMjhCICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDBCL3MgMDA6MDAgWyAgICAgICAgICAgICAgICAgIF0gICAwLjAlDRtbSyBuYXIgIDEy OEIgICAgICAgICAgICAgICAgICAgICAgICAgICAxNzBLaUIvcyAwMDowMCBbIyMjIyMjIyMj IyMjIyMjIyMjXSAxMDAuMCUNG1tLIG5hciAgMTI4QiAgICAgICAgICAgICAgICAgICAgICAg ICAgIDEyMEtpQi9zIDAwOjAwIFsjIyMjIyMjIyMjIyMjIyMjIyNdIDEwMC4wJQoKQCBzdWJz dGl0dXRlci1zdWNjZWVkZWQgL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL2Fh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhLWJhZC1zaXplLWM5Zjc1OTcxYzViZGQy NzViMjMyMjhiYzc2MGQ2MmM3ZDAxNGNiOTAxNzk1ZjQ5MDZhY2M1ZGJiZTI2MjRhMGEKdGVz dC1uYW1lOiBzdWJzdGl0dXRlIGFuZCBsYXJnZSBzaXplCmxvY2F0aW9uOiAvaG9tZS9zdW5k YnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjk4MApzb3VyY2U6CisgKHRlc3QtZXF1YWwKKyAg ICJzdWJzdGl0dXRlIGFuZCBsYXJnZSBzaXplIgorICAgKCsgMTAwIChleHB0IDIgMzEpKQor ICAgKHdpdGgtc3RvcmUKKyAgICAgcworICAgICAobGV0KiAoKHNpemUgKCsgMTAwIChleHB0 IDIgMzEpKSkKKyAgICAgICAgICAgIChpdGVtIChzdHJpbmctYXBwZW5kCisgICAgICAgICAg ICAgICAgICAgICglc3RvcmUtcHJlZml4KQorICAgICAgICAgICAgICAgICAgICAiL2FhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhLWJhZC1zaXplLSIKKyAgICAgICAgICAgICAg ICAgICAgKHJhbmRvbS10ZXh0KSkpCisgICAgICAgICAgICAobmFyIChzdHJpbmctYXBwZW5k ICglc3Vic3RpdHV0ZS1kaXJlY3RvcnkpICIvbmFyIikpKQorICAgICAgIChjYWxsLXdpdGgt b3V0cHV0LWZpbGUKKyAgICAgICAgIG5hcgorICAgICAgICAgKGxhbWJkYSAocG9ydCkKKyAg ICAgICAgICAgKHdyaXRlLWZpbGUtdHJlZQorICAgICAgICAgICAgIChzdG9yZS1wYXRoLXBh Y2thZ2UtbmFtZSBpdGVtKQorICAgICAgICAgICAgIHBvcnQKKyAgICAgICAgICAgICAjOmZp bGUtdHlwZStzaXplCisgICAgICAgICAgICAgKGxhbWJkYSBfICh2YWx1ZXMgJ3JlZ3VsYXIg MTIpKQorICAgICAgICAgICAgICM6ZmlsZS1wb3J0CisgICAgICAgICAgICAgKGxhbWJkYSBf IChvcGVuLWlucHV0LXN0cmluZyAiSGVsbG8gd29ybGQuIikpKSkpCisgICAgICAgKGNhbGwt d2l0aC1vdXRwdXQtZmlsZQorICAgICAgICAgKHN0cmluZy1hcHBlbmQKKyAgICAgICAgICAg KCVzdWJzdGl0dXRlLWRpcmVjdG9yeSkKKyAgICAgICAgICAgIi8iCisgICAgICAgICAgIChz dG9yZS1wYXRoLWhhc2gtcGFydCBpdGVtKQorICAgICAgICAgICAiLm5hcmluZm8iKQorICAg ICAgICAgKGxhbWJkYSAocG9ydCkKKyAgICAgICAgICAgKGZvcm1hdAorICAgICAgICAgICAg IHBvcnQKKyAgICAgICAgICAgICAiU3RvcmVQYXRoOiB+YVxuVVJMOiBmaWxlOi8vfmFcbkNv bXByZXNzaW9uOiBub25lXG5OYXJTaXplOiB+YVxuTmFySGFzaDogc2hhMjU2On5hXG5SZWZl cmVuY2VzOiBcblN5c3RlbTogeDg2XzY0LWxpbnV4fiUiCisgICAgICAgICAgICAgaXRlbQor ICAgICAgICAgICAgIG5hcgorICAgICAgICAgICAgIHNpemUKKyAgICAgICAgICAgICAoYnl0 ZXZlY3Rvci0+bml4LWJhc2UzMi1zdHJpbmcKKyAgICAgICAgICAgICAgIChnY3J5cHQ6Zmls ZS1zaGEyNTYgbmFyKSkpKSkKKyAgICAgICAoZmFsc2UtaWYtZXhjZXB0aW9uCisgICAgICAg ICAoZGVsZXRlLWZpbGUtcmVjdXJzaXZlbHkKKyAgICAgICAgICAgKHN0cmluZy1hcHBlbmQK KyAgICAgICAgICAgICAoZ2V0ZW52ICJYREdfQ0FDSEVfSE9NRSIpCisgICAgICAgICAgICAg Ii9ndWl4L3N1YnN0aXR1dGUiKSkpCisgICAgICAgKHNldC1idWlsZC1vcHRpb25zCisgICAg ICAgICBzCisgICAgICAgICAjOnVzZS1zdWJzdGl0dXRlcz8KKyAgICAgICAgICN0CisgICAg ICAgICAjOnN1YnN0aXR1dGUtdXJscworICAgICAgICAgKCV0ZXN0LXN1YnN0aXR1dGUtdXJs cykpCisgICAgICAgKGVuc3VyZS1wYXRoIHMgaXRlbSkKKyAgICAgICAocGF0aC1pbmZvLW5h ci1zaXplIChxdWVyeS1wYXRoLWluZm8gcyBpdGVtKSkpKSkKZXhwZWN0ZWQtdmFsdWU6IDIx NDc0ODM3NDgKYWN0dWFsLXZhbHVlOiAyMTQ3NDgzNzQ4CnJlc3VsdDogUEFTUwoKZmluZGlu ZyBnYXJiYWdlIGNvbGxlY3RvciByb290cy4uLgpkZWxldGluZyB1bnVzZWQgbGlua3MuLi4K dGVzdC1uYW1lOiBleHBvcnQvaW1wb3J0IHNldmVyYWwgcGF0aHMKbG9jYXRpb246IC9ob21l L3N1bmRicnkvZ3VpeC90ZXN0cy9zdG9yZS5zY206MTAyNApzb3VyY2U6CisgKHRlc3QtYXNz ZXJ0CisgICAiZXhwb3J0L2ltcG9ydCBzZXZlcmFsIHBhdGhzIgorICAgKGxldCogKCh0ZXh0 cyAodW5mb2xkCisgICAgICAgICAgICAgICAgICAgKGN1dCA+PSA8PiAxMCkKKyAgICAgICAg ICAgICAgICAgICAobGFtYmRhIF8gKHJhbmRvbS10ZXh0KSkKKyAgICAgICAgICAgICAgICAg ICAjezErfSMKKyAgICAgICAgICAgICAgICAgICAwKSkKKyAgICAgICAgICAoZmlsZXMgKG1h cCAoY3V0IGFkZC10ZXh0LXRvLXN0b3JlICVzdG9yZSAidGV4dCIgPD4pCisgICAgICAgICAg ICAgICAgICAgICAgdGV4dHMpKQorICAgICAgICAgIChkdW1wIChjYWxsLXdpdGgtYnl0ZXZl Y3Rvci1vdXRwdXQtcG9ydAorICAgICAgICAgICAgICAgICAgKGN1dCBleHBvcnQtcGF0aHMg JXN0b3JlIGZpbGVzIDw+KSkpKQorICAgICAoZGVsZXRlLXBhdGhzICVzdG9yZSBmaWxlcykK KyAgICAgKGFuZCAoZXZlcnkgKG5lZ2F0ZSBmaWxlLWV4aXN0cz8pIGZpbGVzKQorICAgICAg ICAgIChsZXQqICgoc291cmNlIChvcGVuLWJ5dGV2ZWN0b3ItaW5wdXQtcG9ydCBkdW1wKSkK KyAgICAgICAgICAgICAgICAgKGltcG9ydGVkIChpbXBvcnQtcGF0aHMgJXN0b3JlIHNvdXJj ZSkpKQorICAgICAgICAgICAgKGFuZCAoZXF1YWw/IGltcG9ydGVkIGZpbGVzKQorICAgICAg ICAgICAgICAgICAoZXZlcnkgZmlsZS1leGlzdHM/IGZpbGVzKQorICAgICAgICAgICAgICAg ICAoZXF1YWw/CisgICAgICAgICAgICAgICAgICAgdGV4dHMKKyAgICAgICAgICAgICAgICAg ICAobWFwIChsYW1iZGEgKGZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWxs LXdpdGgtaW5wdXQtZmlsZSBmaWxlIGdldC1zdHJpbmctYWxsKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgIGZpbGVzKSkpKSkpKQphY3R1YWwtdmFsdWU6ICN0CnJlc3VsdDogUEFTUwoK ZmluZGluZyBnYXJiYWdlIGNvbGxlY3RvciByb290cy4uLgpkZWxldGluZyB1bnVzZWQgbGlu a3MuLi4KdGVzdC1uYW1lOiBleHBvcnQvaW1wb3J0IHBhdGhzLCBlbnN1cmUgdG9wb2xvZ2lj YWwgb3JkZXIKbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0cy9zdG9yZS5zY206 MTA0NApzb3VyY2U6CisgKHRlc3QtYXNzZXJ0CisgICAiZXhwb3J0L2ltcG9ydCBwYXRocywg ZW5zdXJlIHRvcG9sb2dpY2FsIG9yZGVyIgorICAgKGxldCogKChmaWxlMCAoYWRkLXRleHQt dG8tc3RvcmUgJXN0b3JlICJiYXoiIChyYW5kb20tdGV4dCkpKQorICAgICAgICAgIChmaWxl MSAoYWRkLXRleHQtdG8tc3RvcmUKKyAgICAgICAgICAgICAgICAgICAlc3RvcmUKKyAgICAg ICAgICAgICAgICAgICAiZm9vIgorICAgICAgICAgICAgICAgICAgIChyYW5kb20tdGV4dCkK KyAgICAgICAgICAgICAgICAgICAobGlzdCBmaWxlMCkpKQorICAgICAgICAgIChmaWxlMiAo YWRkLXRleHQtdG8tc3RvcmUKKyAgICAgICAgICAgICAgICAgICAlc3RvcmUKKyAgICAgICAg ICAgICAgICAgICAiYmFyIgorICAgICAgICAgICAgICAgICAgIChyYW5kb20tdGV4dCkKKyAg ICAgICAgICAgICAgICAgICAobGlzdCBmaWxlMSkpKQorICAgICAgICAgIChmaWxlcyAobGlz dCBmaWxlMSBmaWxlMikpCisgICAgICAgICAgKGR1bXAxIChjYWxsLXdpdGgtYnl0ZXZlY3Rv ci1vdXRwdXQtcG9ydAorICAgICAgICAgICAgICAgICAgIChjdXRlIGV4cG9ydC1wYXRocyAl c3RvcmUgKGxpc3QgZmlsZTEgZmlsZTIpIDw+KSkpCisgICAgICAgICAgKGR1bXAyIChjYWxs LXdpdGgtYnl0ZXZlY3Rvci1vdXRwdXQtcG9ydAorICAgICAgICAgICAgICAgICAgIChjdXRl IGV4cG9ydC1wYXRocyAlc3RvcmUgKGxpc3QgZmlsZTIgZmlsZTEpIDw+KSkpKQorICAgICAo ZGVsZXRlLXBhdGhzICVzdG9yZSBmaWxlcykKKyAgICAgKGFuZCAoZXZlcnkgKG5lZ2F0ZSBm aWxlLWV4aXN0cz8pIGZpbGVzKQorICAgICAgICAgIChieXRldmVjdG9yPT8gZHVtcDEgZHVt cDIpCisgICAgICAgICAgKGxldCogKChzb3VyY2UgKG9wZW4tYnl0ZXZlY3Rvci1pbnB1dC1w b3J0IGR1bXAxKSkKKyAgICAgICAgICAgICAgICAgKGltcG9ydGVkIChpbXBvcnQtcGF0aHMg JXN0b3JlIHNvdXJjZSkpKQorICAgICAgICAgICAgKGFuZCAoZXF1YWw/IGltcG9ydGVkIChs aXN0IGZpbGUxIGZpbGUyKSkKKyAgICAgICAgICAgICAgICAgKGV2ZXJ5IGZpbGUtZXhpc3Rz PyBmaWxlcykKKyAgICAgICAgICAgICAgICAgKGVxdWFsPyAobGlzdCBmaWxlMCkgKHJlZmVy ZW5jZXMgJXN0b3JlIGZpbGUxKSkKKyAgICAgICAgICAgICAgICAgKGVxdWFsPyAobGlzdCBm aWxlMSkgKHJlZmVyZW5jZXMgJXN0b3JlIGZpbGUyKSkpKSkpKQphY3R1YWwtdmFsdWU6ICN0 CnJlc3VsdDogUEFTUwoKZmluZGluZyBnYXJiYWdlIGNvbGxlY3RvciByb290cy4uLgpkZWxl dGluZyB1bnVzZWQgbGlua3MuLi4KdGVzdC1uYW1lOiBleHBvcnQvaW1wb3J0IGluY29tcGxl dGUKbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0cy9zdG9yZS5zY206MTA2Ngpz b3VyY2U6CisgKHRlc3QtYXNzZXJ0CisgICAiZXhwb3J0L2ltcG9ydCBpbmNvbXBsZXRlIgor ICAgKGxldCogKChmaWxlMCAoYWRkLXRleHQtdG8tc3RvcmUgJXN0b3JlICJiYXoiIChyYW5k b20tdGV4dCkpKQorICAgICAgICAgIChmaWxlMSAoYWRkLXRleHQtdG8tc3RvcmUKKyAgICAg ICAgICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICAgICAiZm9vIgorICAgICAg ICAgICAgICAgICAgIChyYW5kb20tdGV4dCkKKyAgICAgICAgICAgICAgICAgICAobGlzdCBm aWxlMCkpKQorICAgICAgICAgIChmaWxlMiAoYWRkLXRleHQtdG8tc3RvcmUKKyAgICAgICAg ICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICAgICAiYmFyIgorICAgICAgICAg ICAgICAgICAgIChyYW5kb20tdGV4dCkKKyAgICAgICAgICAgICAgICAgICAobGlzdCBmaWxl MSkpKQorICAgICAgICAgIChkdW1wIChjYWxsLXdpdGgtYnl0ZXZlY3Rvci1vdXRwdXQtcG9y dAorICAgICAgICAgICAgICAgICAgKGN1dGUgZXhwb3J0LXBhdGhzICVzdG9yZSAobGlzdCBm aWxlMikgPD4pKSkpCisgICAgIChkZWxldGUtcGF0aHMgJXN0b3JlIChsaXN0IGZpbGUwIGZp bGUxIGZpbGUyKSkKKyAgICAgKGd1YXJkIChjICgoc3RvcmUtcHJvdG9jb2wtZXJyb3I/IGMp CisgICAgICAgICAgICAgICAgKGFuZCAobm90ICh6ZXJvPyAoc3RvcmUtcHJvdG9jb2wtZXJy b3Itc3RhdHVzIGMpKSkKKyAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctY29udGFpbnMK KyAgICAgICAgICAgICAgICAgICAgICAgKHN0b3JlLXByb3RvY29sLWVycm9yLW1lc3NhZ2Ug YykKKyAgICAgICAgICAgICAgICAgICAgICAgIm5vdCB2YWxpZCIpKSkpCisgICAgICAgICAg ICAoaW1wb3J0LXBhdGhzCisgICAgICAgICAgICAgICVzdG9yZQorICAgICAgICAgICAgICAo b3Blbi1ieXRldmVjdG9yLWlucHV0LXBvcnQgZHVtcCkpKSkpCmFjdHVhbC12YWx1ZTogODEK cmVzdWx0OiBQQVNTCgpmaW5kaW5nIGdhcmJhZ2UgY29sbGVjdG9yIHJvb3RzLi4uCmRlbGV0 aW5nIHVudXNlZCBsaW5rcy4uLgp0ZXN0LW5hbWU6IGV4cG9ydC9pbXBvcnQgcmVjdXJzaXZl CmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjEwODMKc291 cmNlOgorICh0ZXN0LWFzc2VydAorICAgImV4cG9ydC9pbXBvcnQgcmVjdXJzaXZlIgorICAg KGxldCogKChmaWxlMCAoYWRkLXRleHQtdG8tc3RvcmUgJXN0b3JlICJiYXoiIChyYW5kb20t dGV4dCkpKQorICAgICAgICAgIChmaWxlMSAoYWRkLXRleHQtdG8tc3RvcmUKKyAgICAgICAg ICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICAgICAiZm9vIgorICAgICAgICAg ICAgICAgICAgIChyYW5kb20tdGV4dCkKKyAgICAgICAgICAgICAgICAgICAobGlzdCBmaWxl MCkpKQorICAgICAgICAgIChmaWxlMiAoYWRkLXRleHQtdG8tc3RvcmUKKyAgICAgICAgICAg ICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICAgICAiYmFyIgorICAgICAgICAgICAg ICAgICAgIChyYW5kb20tdGV4dCkKKyAgICAgICAgICAgICAgICAgICAobGlzdCBmaWxlMSkp KQorICAgICAgICAgIChkdW1wIChjYWxsLXdpdGgtYnl0ZXZlY3Rvci1vdXRwdXQtcG9ydAor ICAgICAgICAgICAgICAgICAgKGN1dGUgZXhwb3J0LXBhdGhzCisgICAgICAgICAgICAgICAg ICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGZpbGUyKQor ICAgICAgICAgICAgICAgICAgICAgICAgPD4KKyAgICAgICAgICAgICAgICAgICAgICAgICM6 cmVjdXJzaXZlPworICAgICAgICAgICAgICAgICAgICAgICAgI3QpKSkpCisgICAgIChkZWxl dGUtcGF0aHMgJXN0b3JlIChsaXN0IGZpbGUwIGZpbGUxIGZpbGUyKSkKKyAgICAgKGxldCAo KGltcG9ydGVkCisgICAgICAgICAgICAgKGltcG9ydC1wYXRocworICAgICAgICAgICAgICAg JXN0b3JlCisgICAgICAgICAgICAgICAob3Blbi1ieXRldmVjdG9yLWlucHV0LXBvcnQgZHVt cCkpKSkKKyAgICAgICAoYW5kIChlcXVhbD8gaW1wb3J0ZWQgKGxpc3QgZmlsZTAgZmlsZTEg ZmlsZTIpKQorICAgICAgICAgICAgKGV2ZXJ5IGZpbGUtZXhpc3RzPyAobGlzdCBmaWxlMCBm aWxlMSBmaWxlMikpCisgICAgICAgICAgICAoZXF1YWw/IChsaXN0IGZpbGUwKSAocmVmZXJl bmNlcyAlc3RvcmUgZmlsZTEpKQorICAgICAgICAgICAgKGVxdWFsPyAobGlzdCBmaWxlMSkg KHJlZmVyZW5jZXMgJXN0b3JlIGZpbGUyKSkpKSkpCmFjdHVhbC12YWx1ZTogI3QKcmVzdWx0 OiBQQVNTCgpAIGJ1aWxkLXN0YXJ0ZWQgL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0 b3JlLzQyYzY5emFsZ3JsMWhqOHBmY2hwaWYwY2kwYzhoaGgzLWJ1bmNoLmRydiAtIHg4Nl82 NC1saW51eCAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvdmFyL2xvZy9ndWl4L2RydnMv NDIvL2M2OXphbGdybDFoajhwZmNocGlmMGNpMGM4aGhoMy1idW5jaC5kcnYuZ3ogNTc1MgpA IGJ1aWxkLXN1Y2NlZWRlZCAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUvNDJj Njl6YWxncmwxaGo4cGZjaHBpZjBjaTBjOGhoaDMtYnVuY2guZHJ2IC0KdGVzdC1uYW1lOiB3 cml0ZS1maWxlICYgZXhwb3J0LXBhdGggeWllbGQgdGhlIHNhbWUgcmVzdWx0CmxvY2F0aW9u OiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjEwOTkKc291cmNlOgorICh0 ZXN0LWFzc2VydAorICAgIndyaXRlLWZpbGUgJiBleHBvcnQtcGF0aCB5aWVsZCB0aGUgc2Ft ZSByZXN1bHQiCisgICAocnVuLXdpdGgtc3RvcmUKKyAgICAgJXN0b3JlCisgICAgIChtbGV0 KiAlc3RvcmUtbW9uYWQKKyAgICAgICAgICAgICgoZHJ2MSAocGFja2FnZS0+ZGVyaXZhdGlv biAlYm9vdHN0cmFwLWd1aWxlKSkKKyAgICAgICAgICAgICAob3V0MSAtPiAoZGVyaXZhdGlv bi0+b3V0cHV0LXBhdGggZHJ2MSkpCisgICAgICAgICAgICAgKGRhdGEgLT4KKyAgICAgICAg ICAgICAgICAgICAodW5mb2xkCisgICAgICAgICAgICAgICAgICAgICAoY3V0ID49IDw+IDI2 KQorICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoaSkgKHJhbmRvbS1ieXRldmVjdG9y IDEyOCkpCisgICAgICAgICAgICAgICAgICAgICAjezErfSMKKyAgICAgICAgICAgICAgICAg ICAgIDApKQorICAgICAgICAgICAgIChidWlsZCAtPgorICAgICAgICAgICAgICAgICAgICAo Z2V4cCAoYmVnaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodXNlLW1vZHVsZXMg KHJucnMgaW8gcG9ydHMpIChzcmZpIHNyZmktMSkpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxldCAoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmluZSBs ZXR0ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXAgKGxhbWJkYSAo aSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmcKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXItPmNoYXIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKyBpIChjaGFy LT5pbnRlZ2VyICNcYSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGlvdGEgMjYpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWZpbmUg KHRvdWNoIGZpbGUgZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNh bGwtd2l0aC1vdXRwdXQtZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChwb3J0 KSAocHV0LWJ5dGV2ZWN0b3IgcG9ydCBkYXRhKSkpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1rZGlyICh1bmdleHAgb3V0cHV0KSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChjaGRpciAodW5nZXhwIG91dHB1dCkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoZm9yLWVhY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dG91Y2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCAoZHJvcCBs ZXR0ZXJzIDEwKSAodGFrZSBsZXR0ZXJzIDEwKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpc3QgKHVuZ2V4cC1zcGxpY2luZyBkYXRhKSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjdCkpKSkKKyAgICAgICAgICAgICAoZHJ2MiAoZ2V4cC0+ZGVy aXZhdGlvbiAiYnVuY2giIGJ1aWxkKSkKKyAgICAgICAgICAgICAob3V0MiAtPiAoZGVyaXZh dGlvbi0+b3V0cHV0LXBhdGggZHJ2MikpCisgICAgICAgICAgICAgKGl0ZW0taW5mbyAtPiAo c3RvcmUtbGlmdCBxdWVyeS1wYXRoLWluZm8pKSkKKyAgICAgICAgICAgIChtYmVnaW4KKyAg ICAgICAgICAgICAgJXN0b3JlLW1vbmFkCisgICAgICAgICAgICAgIChidWlsdC1kZXJpdmF0 aW9ucyAobGlzdCBkcnYxIGRydjIpKQorICAgICAgICAgICAgICAoZm9sZG0gJXN0b3JlLW1v bmFkCisgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpdGVtIHJlc3VsdCkKKyAgICAg ICAgICAgICAgICAgICAgICAgKGRlZmluZSByZWYtaGFzaAorICAgICAgICAgICAgICAgICAg ICAgICAgIChsZXQtdmFsdWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChwb3J0 IGdldCkgKGdjcnlwdDpvcGVuLXNoYTI1Ni1wb3J0KSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAod3JpdGUtZmlsZSBpdGVtIHBvcnQpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAoY2xvc2UtcG9ydCBwb3J0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdl dCkpKQorICAgICAgICAgICAgICAgICAgICAgICAoPj49IChpdGVtLWluZm8gaXRlbSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpbmZvKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHJldHVybgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoYW5kIHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChieXRldmVjdG9yPT8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChwYXRoLWluZm8taGFzaCBpbmZvKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVmLWhhc2gpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICN0CisgICAg ICAgICAgICAgICAgICAgICAobGlzdCBvdXQxIG91dDIpKSkpCisgICAgICM6Z3VpbGUtZm9y LWJ1aWxkCisgICAgICglZ3VpbGUtZm9yLWJ1aWxkKSkpCmFjdHVhbC12YWx1ZTogI3QKcmVz dWx0OiBQQVNTCgp0ZXN0LW5hbWU6IGltcG9ydCBub3Qgc2lnbmVkCmxvY2F0aW9uOiAvaG9t ZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjExNjYKc291cmNlOgorICh0ZXN0LWFz c2VydAorICAgImltcG9ydCBub3Qgc2lnbmVkIgorICAgKGxldCogKCh0ZXh0IChyYW5kb20t dGV4dCkpCisgICAgICAgICAgKGZpbGUgKGFkZC1maWxlLXRyZWUtdG8tc3RvcmUKKyAgICAg ICAgICAgICAgICAgICVzdG9yZQorICAgICAgICAgICAgICAgICAgYCgidHJlZSIKKyAgICAg ICAgICAgICAgICAgICAgZGlyZWN0b3J5CisgICAgICAgICAgICAgICAgICAgICgidGV4dCIg cmVndWxhciAoZGF0YSAsdGV4dCkpCisgICAgICAgICAgICAgICAgICAgICgibGluayIgc3lt bGluayAidGV4dCIpKSkpCisgICAgICAgICAgKGR1bXAgKGNhbGwtd2l0aC1ieXRldmVjdG9y LW91dHB1dC1wb3J0CisgICAgICAgICAgICAgICAgICAobGFtYmRhIChwb3J0KQorICAgICAg ICAgICAgICAgICAgICAod3JpdGUtaW50IDEgcG9ydCkKKyAgICAgICAgICAgICAgICAgICAg KHdyaXRlLWZpbGUgZmlsZSBwb3J0KQorICAgICAgICAgICAgICAgICAgICAod3JpdGUtaW50 IDExNjM0MTM4MzggcG9ydCkKKyAgICAgICAgICAgICAgICAgICAgKHdyaXRlLXN0cmluZyBm aWxlIHBvcnQpCisgICAgICAgICAgICAgICAgICAgICh3cml0ZS1zdHJpbmctbGlzdCAnKCkg cG9ydCkKKyAgICAgICAgICAgICAgICAgICAgKHdyaXRlLXN0cmluZyAiIiBwb3J0KQorICAg ICAgICAgICAgICAgICAgICAod3JpdGUtaW50IDAgcG9ydCkKKyAgICAgICAgICAgICAgICAg ICAgKHdyaXRlLWludCAwIHBvcnQpKSkpKQorICAgICAoZ3VhcmQgKGMgKChzdG9yZS1wcm90 b2NvbC1lcnJvcj8gYykKKyAgICAgICAgICAgICAgICAoYW5kIChub3QgKHplcm8/IChzdG9y ZS1wcm90b2NvbC1lcnJvci1zdGF0dXMgYykpKQorICAgICAgICAgICAgICAgICAgICAgKHN0 cmluZy1jb250YWlucworICAgICAgICAgICAgICAgICAgICAgICAoc3RvcmUtcHJvdG9jb2wt ZXJyb3ItbWVzc2FnZSBjKQorICAgICAgICAgICAgICAgICAgICAgICAibGFja3MgYSBzaWdu YXR1cmUiKSkpKQorICAgICAgICAgICAgKGxldCogKChzb3VyY2UgKG9wZW4tYnl0ZXZlY3Rv ci1pbnB1dC1wb3J0IGR1bXApKQorICAgICAgICAgICAgICAgICAgIChpbXBvcnRlZCAoaW1w b3J0LXBhdGhzICVzdG9yZSBzb3VyY2UpKSkKKyAgICAgICAgICAgICAgKHBrICd1bnNpZ25l ZC1pbXBvcnRlZCBpbXBvcnRlZCkKKyAgICAgICAgICAgICAgI2YpKSkpCmFjdHVhbC12YWx1 ZTogOTQKcmVzdWx0OiBQQVNTCgp0ZXN0LW5hbWU6IGltcG9ydCBzaWduZWQgYnkgdW5hdXRo b3JpemVkIGtleQpsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNj bToxMTk1CnNvdXJjZToKKyAodGVzdC1hc3NlcnQKKyAgICJpbXBvcnQgc2lnbmVkIGJ5IHVu YXV0aG9yaXplZCBrZXkiCisgICAobGV0KiAoKHRleHQgKHJhbmRvbS10ZXh0KSkKKyAgICAg ICAgICAoZmlsZSAoYWRkLWZpbGUtdHJlZS10by1zdG9yZQorICAgICAgICAgICAgICAgICAg JXN0b3JlCisgICAgICAgICAgICAgICAgICBgKCJ0cmVlIgorICAgICAgICAgICAgICAgICAg ICBkaXJlY3RvcnkKKyAgICAgICAgICAgICAgICAgICAgKCJ0ZXh0IiByZWd1bGFyIChkYXRh ICx0ZXh0KSkKKyAgICAgICAgICAgICAgICAgICAgKCJsaW5rIiBzeW1saW5rICJ0ZXh0Iikp KSkKKyAgICAgICAgICAoa2V5IChnY3J5cHQ6Z2VuZXJhdGUta2V5CisgICAgICAgICAgICAg ICAgIChnY3J5cHQ6c3RyaW5nLT5jYW5vbmljYWwtc2V4cAorICAgICAgICAgICAgICAgICAg ICIoZ2Vua2V5IChlY2RzYSAoY3VydmUgRWQyNTUxOSkgKGZsYWdzIHJmYzY5NzkpKSkiKSkp CisgICAgICAgICAgKGR1bXAgKGNhbGwtd2l0aC1ieXRldmVjdG9yLW91dHB1dC1wb3J0Cisg ICAgICAgICAgICAgICAgICAobGFtYmRhIChwb3J0KQorICAgICAgICAgICAgICAgICAgICAo d3JpdGUtaW50IDEgcG9ydCkKKyAgICAgICAgICAgICAgICAgICAgKHdyaXRlLWZpbGUgZmls ZSBwb3J0KQorICAgICAgICAgICAgICAgICAgICAod3JpdGUtaW50IDExNjM0MTM4MzggcG9y dCkKKyAgICAgICAgICAgICAgICAgICAgKHdyaXRlLXN0cmluZyBmaWxlIHBvcnQpCisgICAg ICAgICAgICAgICAgICAgICh3cml0ZS1zdHJpbmctbGlzdCAnKCkgcG9ydCkKKyAgICAgICAg ICAgICAgICAgICAgKHdyaXRlLXN0cmluZyAiIiBwb3J0KQorICAgICAgICAgICAgICAgICAg ICAod3JpdGUtaW50IDEgcG9ydCkKKyAgICAgICAgICAgICAgICAgICAgKHdyaXRlLXN0cmlu ZworICAgICAgICAgICAgICAgICAgICAgIChnY3J5cHQ6Y2Fub25pY2FsLXNleHAtPnN0cmlu ZworICAgICAgICAgICAgICAgICAgICAgICAgKHNpZ25hdHVyZS1zZXhwCisgICAgICAgICAg ICAgICAgICAgICAgICAgIChnY3J5cHQ6Ynl0ZXZlY3Rvci0+aGFzaC1kYXRhCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGdjcnlwdDpzaGEyNTYgI3Z1OCgwIDEgMikpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIzprZXktdHlwZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdlY2MpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChnY3J5cHQ6Zmlu ZC1zZXhwLXRva2VuIGtleSAncHJpdmF0ZS1rZXkpCisgICAgICAgICAgICAgICAgICAgICAg ICAgIChnY3J5cHQ6ZmluZC1zZXhwLXRva2VuIGtleSAncHVibGljLWtleSkpKQorICAgICAg ICAgICAgICAgICAgICAgIHBvcnQpCisgICAgICAgICAgICAgICAgICAgICh3cml0ZS1pbnQg MCBwb3J0KSkpKSkKKyAgICAgKGd1YXJkIChjICgoc3RvcmUtcHJvdG9jb2wtZXJyb3I/IGMp CisgICAgICAgICAgICAgICAgKGFuZCAobm90ICh6ZXJvPyAoc3RvcmUtcHJvdG9jb2wtZXJy b3Itc3RhdHVzIGMpKSkKKyAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctY29udGFpbnMK KyAgICAgICAgICAgICAgICAgICAgICAgKHN0b3JlLXByb3RvY29sLWVycm9yLW1lc3NhZ2Ug YykKKyAgICAgICAgICAgICAgICAgICAgICAgInVuYXV0aG9yaXplZCBwdWJsaWMga2V5Iikp KSkKKyAgICAgICAgICAgIChsZXQqICgoc291cmNlIChvcGVuLWJ5dGV2ZWN0b3ItaW5wdXQt cG9ydCBkdW1wKSkKKyAgICAgICAgICAgICAgICAgICAoaW1wb3J0ZWQgKGltcG9ydC1wYXRo cyAlc3RvcmUgc291cmNlKSkpCisgICAgICAgICAgICAgIChwayAndW5hdXRob3JpemVkLWlt cG9ydGVkIGltcG9ydGVkKQorICAgICAgICAgICAgICAjZikpKSkKYWN0dWFsLXZhbHVlOiAw CnJlc3VsdDogUEFTUwoKZmluZGluZyBnYXJiYWdlIGNvbGxlY3RvciByb290cy4uLgpkZWxl dGluZyB1bnVzZWQgbGlua3MuLi4KCjs7OyAoYyAjPCZzdG9yZS1wcm90b2NvbC1lcnJvciBt ZXNzYWdlOiAic2lnbmVkIGhhc2ggZG9lc24ndCBtYXRjaCBhY3R1YWwgY29udGVudHMgb2Yg aW1wb3J0ZWQgYXJjaGl2ZTsgYXJjaGl2ZSBjb3VsZCBiZSBjb3JydXB0LCBvciBzb21lb25l IGlzIHRyeWluZyB0byBpbXBvcnQgYSBUcm9qYW4gaG9yc2UiIHN0YXR1czogMT4pCnRlc3Qt bmFtZTogaW1wb3J0IGNvcnJ1cHQgcGF0aApsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4 L3Rlc3RzL3N0b3JlLnNjbToxMjM1CnNvdXJjZToKKyAodGVzdC1hc3NlcnQKKyAgICJpbXBv cnQgY29ycnVwdCBwYXRoIgorICAgKGxldCogKCh0ZXh0IChyYW5kb20tdGV4dCkpCisgICAg ICAgICAgKGZpbGUgKGFkZC10ZXh0LXRvLXN0b3JlICVzdG9yZSAidGV4dCIgdGV4dCkpCisg ICAgICAgICAgKGR1bXAgKGNhbGwtd2l0aC1ieXRldmVjdG9yLW91dHB1dC1wb3J0CisgICAg ICAgICAgICAgICAgICAoY3V0IGV4cG9ydC1wYXRocyAlc3RvcmUgKGxpc3QgZmlsZSkgPD4p KSkpCisgICAgIChkZWxldGUtcGF0aHMgJXN0b3JlIChsaXN0IGZpbGUpKQorICAgICAobGV0 KiAoKGluZGV4IDExMikKKyAgICAgICAgICAgIChieXRlIChieXRldmVjdG9yLXU4LXJlZiBk dW1wIGluZGV4KSkpCisgICAgICAgKGJ5dGV2ZWN0b3ItdTgtc2V0ISBkdW1wIGluZGV4IChs b2d4b3IgMjU1IGJ5dGUpKSkKKyAgICAgKGFuZCAobm90IChmaWxlLWV4aXN0cz8gZmlsZSkp CisgICAgICAgICAgKGd1YXJkIChjICgoc3RvcmUtcHJvdG9jb2wtZXJyb3I/IGMpCisgICAg ICAgICAgICAgICAgICAgICAocGsgJ2MgYykKKyAgICAgICAgICAgICAgICAgICAgIChhbmQg KG5vdCAoemVybz8gKHN0b3JlLXByb3RvY29sLWVycm9yLXN0YXR1cyBjKSkpCisgICAgICAg ICAgICAgICAgICAgICAgICAgIChzdHJpbmctY29udGFpbnMKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc3RvcmUtcHJvdG9jb2wtZXJyb3ItbWVzc2FnZSBjKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJjb3JydXB0IikpKSkKKyAgICAgICAgICAgICAgICAgKGxl dCogKChzb3VyY2UgKG9wZW4tYnl0ZXZlY3Rvci1pbnB1dC1wb3J0IGR1bXApKQorICAgICAg ICAgICAgICAgICAgICAgICAgKGltcG9ydGVkIChpbXBvcnQtcGF0aHMgJXN0b3JlIHNvdXJj ZSkpKQorICAgICAgICAgICAgICAgICAgIChwayAnY29ycnVwdC1pbXBvcnRlZCBpbXBvcnRl ZCkKKyAgICAgICAgICAgICAgICAgICAjZikpKSkpCmFjdHVhbC12YWx1ZTogODAKcmVzdWx0 OiBQQVNTCgpyZWFkaW5nIHRoZSBzdG9yZS4uLgoKOzs7ICh2ZXJpZnkxICN0KQpyZWFkaW5n IHRoZSBzdG9yZS4uLgpwYXRoIGAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUv cW5uaGw3M3g0aHEwOWczNzRqaXljYzFteTBmc2YzamstZm9vJyBkaXNhcHBlYXJlZCwgYnV0 IGl0IHN0aWxsIGhhcyB2YWxpZCByZWZlcnJlcnMhCgo7OzsgKHZlcmlmeTIgI2YpCnJlYWRp bmcgdGhlIHN0b3JlLi4uCgo7OzsgKHZlcmlmeTMgI3QpCnRlc3QtbmFtZTogdmVyaWZ5LXN0 b3JlCmxvY2F0aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjEyNTkK c291cmNlOgorICh0ZXN0LWFzc2VydAorICAgInZlcmlmeS1zdG9yZSIKKyAgIChsZXQqICgo dGV4dCAocmFuZG9tLXRleHQpKQorICAgICAgICAgIChmaWxlMSAoYWRkLXRleHQtdG8tc3Rv cmUgJXN0b3JlICJmb28iIHRleHQpKQorICAgICAgICAgIChmaWxlMiAoYWRkLXRleHQtdG8t c3RvcmUKKyAgICAgICAgICAgICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICAgICAi YmFyIgorICAgICAgICAgICAgICAgICAgIChyYW5kb20tdGV4dCkKKyAgICAgICAgICAgICAg ICAgICAobGlzdCBmaWxlMSkpKSkKKyAgICAgKGFuZCAocGsgJ3ZlcmlmeTEgKHZlcmlmeS1z dG9yZSAlc3RvcmUpKQorICAgICAgICAgIChiZWdpbgorICAgICAgICAgICAgKGRlbGV0ZS1m aWxlIGZpbGUxKQorICAgICAgICAgICAgKG5vdCAocGsgJ3ZlcmlmeTIgKHZlcmlmeS1zdG9y ZSAlc3RvcmUpKSkpCisgICAgICAgICAgKGJlZ2luCisgICAgICAgICAgICAoY2FsbC13aXRo LW91dHB1dC1maWxlCisgICAgICAgICAgICAgIGZpbGUxCisgICAgICAgICAgICAgIChsYW1i ZGEgKHBvcnQpIChkaXNwbGF5IHRleHQgcG9ydCkpKQorICAgICAgICAgICAgKHBrICd2ZXJp ZnkzICh2ZXJpZnktc3RvcmUgJXN0b3JlKSkpKSkpCmFjdHVhbC12YWx1ZTogI3QKcmVzdWx0 OiBQQVNTCgovaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjEyODA6MTc6IHdh cm5pbmc6ICdidWlsZC1leHByZXNzaW9uLT5kZXJpdmF0aW9uJyBpcyBkZXByZWNhdGVkLCB1 c2UgJ2dleHAtPmRlcml2YXRpb24nIGluc3RlYWQKc3Vic3RpdHV0ZTogZ3VpeCBzdWJzdGl0 dXRlOiB3YXJuaW5nOiBBQ0wgZm9yIGFyY2hpdmUgaW1wb3J0cyBzZWVtcyB0byBiZSB1bmlu aXRpYWxpemVkLCBzdWJzdGl0dXRlcyBtYXkgYmUgdW5hdmFpbGFibGUKc3Vic3RpdHV0ZTog Z3VpeCBzdWJzdGl0dXRlOiB3YXJuaW5nOiBhdXRoZW50aWNhdGlvbiBhbmQgYXV0aG9yaXph dGlvbiBvZiBzdWJzdGl0dXRlcyBkaXNhYmxlZCEKZmV0Y2hpbmcgcGF0aCBgL2hvbWUvc3Vu ZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL3pka2pqZnBiNzhkN2dia2huYmt4YXFobWw2eDBx MXNnLWNvcnJ1cHQnLi4uCmd1aXggc3Vic3RpdHV0ZTogd2FybmluZzogQUNMIGZvciBhcmNo aXZlIGltcG9ydHMgc2VlbXMgdG8gYmUgdW5pbml0aWFsaXplZCwgc3Vic3RpdHV0ZXMgbWF5 IGJlIHVuYXZhaWxhYmxlCkRvd25sb2FkaW5nIGZpbGU6L2hvbWUvc3VuZGJyeS9ndWl4L3Rl c3QtdG1wL3Zhci80ODA2L3N1YnN0aXR1dGVyLWRhdGEvZXhhbXBsZS5uYXIuLi4KDRtbSyBl eGFtcGxlLm5hciAgMTc2QiAgICAgICAgICAgICAgICAgICAgICAgIDBCL3MgMDA6MDAgWyAg ICAgICAgICAgICAgICAgIF0gICAwLjAlDRtbSyBleGFtcGxlLm5hciAgMTc2QiAgICAgICAg ICAgICAgICAgICAgMjM3S2lCL3MgMDA6MDAgWyMjIyMjIyMjIyMjIyMjIyMjI10gMTAwLjAl DRtbSyBleGFtcGxlLm5hciAgMTc2QiAgICAgICAgICAgICAgICAgICAgMTY3S2lCL3MgMDA6 MDAgWyMjIyMjIyMjIyMjIyMjIyMjI10gMTAwLjAlCgpyZWFkaW5nIHRoZSBzdG9yZS4uLgpj aGVja2luZyBwYXRoIGV4aXN0ZW5jZS4uLgpjaGVja2luZyBoYXNoZXMuLi4KcGF0aCBgL2hv bWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL3A5YXZ3ODgzcmw0Z2JuZDBpOHl5aHo4 OWRreWhxaWs3LWNvcnJ1cHQnIHdhcyBtb2RpZmllZCEgZXhwZWN0ZWQgaGFzaCBgNjRhNGUx NTIzZTkyMGY2OTRjZWI3ZmMwNTRmNDcxNWY4NjRkOTM3MDc3YTEwZjIxNDM1ZDlmNTYzZjYx NTFlNCcsIGdvdCBgZTA5YzQ4MGUyZTkzMzM2Y2QzYzQ1YWExMjlmODFhMGQ3YmE1NmM0MTBi ODQ5ZDc3NzlhODEzNjA3NDQxM2IzZCcKdGVzdC1uYW1lOiB2ZXJpZnktc3RvcmUgKyBjaGVj ay1jb250ZW50cwpsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNj bToxMjc2CnNvdXJjZToKKyAodGVzdC1hc3NlcnQKKyAgICJ2ZXJpZnktc3RvcmUgKyBjaGVj ay1jb250ZW50cyIKKyAgICh3aXRoLXN0b3JlCisgICAgIHMKKyAgICAgKGxldCogKCh0ZXh0 IChyYW5kb20tdGV4dCkpCisgICAgICAgICAgICAoZHJ2IChidWlsZC1leHByZXNzaW9uLT5k ZXJpdmF0aW9uCisgICAgICAgICAgICAgICAgICAgcworICAgICAgICAgICAgICAgICAgICJj b3JydXB0IgorICAgICAgICAgICAgICAgICAgIGAobGV0ICgob3V0IChhc3NvYy1yZWYgJW91 dHB1dHMgIm91dCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAoY2FsbC13aXRoLW91dHB1 dC1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICBvdXQKKyAgICAgICAgICAgICAgICAg ICAgICAgIChsYW1iZGEgKHBvcnQpIChkaXNwbGF5ICx0ZXh0IHBvcnQpKSkKKyAgICAgICAg ICAgICAgICAgICAgICAjdCkKKyAgICAgICAgICAgICAgICAgICAjOmd1aWxlLWZvci1idWls ZAorICAgICAgICAgICAgICAgICAgIChwYWNrYWdlLWRlcml2YXRpb24KKyAgICAgICAgICAg ICAgICAgICAgIHMKKyAgICAgICAgICAgICAgICAgICAgICVib290c3RyYXAtZ3VpbGUKKyAg ICAgICAgICAgICAgICAgICAgICglY3VycmVudC1zeXN0ZW0pKSkpCisgICAgICAgICAgICAo ZmlsZSAoZGVyaXZhdGlvbi0+b3V0cHV0LXBhdGggZHJ2KSkpCisgICAgICAgKHdpdGgtZGVy aXZhdGlvbi1zdWJzdGl0dXRlCisgICAgICAgICBkcnYKKyAgICAgICAgIHRleHQKKyAgICAg ICAgIChhbmQgKGJ1aWxkLWRlcml2YXRpb25zIHMgKGxpc3QgZHJ2KSkKKyAgICAgICAgICAg ICAgKHZlcmlmeS1zdG9yZSBzICM6Y2hlY2stY29udGVudHM/ICN0KQorICAgICAgICAgICAg ICAoYmVnaW4KKyAgICAgICAgICAgICAgICAoY2htb2QgZmlsZSA0MjApCisgICAgICAgICAg ICAgICAgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZQorICAgICAgICAgICAgICAgICAgZmlsZQor ICAgICAgICAgICAgICAgICAgKGxhbWJkYSAocG9ydCkgKGRpc3BsYXkgImNvcnJ1cHQhIiBw b3J0KSkpCisgICAgICAgICAgICAgICAgI3QpCisgICAgICAgICAgICAgIChub3QgKHZlcmlm eS1zdG9yZSBzICM6Y2hlY2stY29udGVudHM/ICN0KSkKKyAgICAgICAgICAgICAgKGRlbGV0 ZS1wYXRocyBzIChsaXN0IGZpbGUpKSkpKSkpCmFjdHVhbC12YWx1ZTogI2YKcmVzdWx0OiBG QUlMCgovaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjEzMTk6MjA6IHdhcm5p bmc6ICdidWlsZC1leHByZXNzaW9uLT5kZXJpdmF0aW9uJyBpcyBkZXByZWNhdGVkLCB1c2Ug J2dleHAtPmRlcml2YXRpb24nIGluc3RlYWQKc3Vic3RpdHV0ZTogZ3VpeCBzdWJzdGl0dXRl OiB3YXJuaW5nOiBBQ0wgZm9yIGFyY2hpdmUgaW1wb3J0cyBzZWVtcyB0byBiZSB1bmluaXRp YWxpemVkLCBzdWJzdGl0dXRlcyBtYXkgYmUgdW5hdmFpbGFibGUKc3Vic3RpdHV0ZTogZ3Vp eCBzdWJzdGl0dXRlOiB3YXJuaW5nOiBhdXRoZW50aWNhdGlvbiBhbmQgYXV0aG9yaXphdGlv biBvZiBzdWJzdGl0dXRlcyBkaXNhYmxlZCEKYnVpbGRpbmcgcGF0aChzKSBgL2hvbWUvc3Vu ZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL3E5a243cnZ3a2s3YTlucjVpN2lxMHl3bGYzODJk ZDVhLW5vbi1kZXRlcm1pbmlzdGljJwpjaGVja2luZyBwYXRoKHMpIGAvaG9tZS9zdW5kYnJ5 L2d1aXgvdGVzdC10bXAvc3RvcmUvcTlrbjdydndrazdhOW5yNWk3aXEweXdsZjM4MmRkNWEt bm9uLWRldGVybWluaXN0aWMnCndhcm5pbmc6IHJld3JpdGluZyBoYXNoZXMgaW4gYC9ob21l L3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS9xOWtuN3J2d2trN2E5bnI1aTdpcTB5d2xm MzgyZGQ1YS1ub24tZGV0ZXJtaW5pc3RpYyc7IGNyb3NzIGZpbmdlcnMKCjs7OyAoZGV0ZXJt aW5pc20tZXhjZXB0aW9uICM8JnN0b3JlLXByb3RvY29sLWVycm9yIG1lc3NhZ2U6ICJkZXJp dmF0aW9uIGAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUvcGthZHkycTlyeThm Y2g3MTE2ZzVsNDhkbHpnOWJ3Z2ctbm9uLWRldGVybWluaXN0aWMuZHJ2JyBtYXkgbm90IGJl IGRldGVybWluaXN0aWM6IG91dHB1dCBgL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0 b3JlL3E5a243cnZ3a2s3YTlucjVpN2lxMHl3bGYzODJkZDVhLW5vbi1kZXRlcm1pbmlzdGlj JyBkaWZmZXJzIiBzdGF0dXM6IDE+KQp0ZXN0LW5hbWU6IGJ1aWxkLXRoaW5ncywgY2hlY2sg bW9kZQpsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbToxMzEz CnNvdXJjZToKKyAodGVzdC1hc3NlcnQKKyAgICJidWlsZC10aGluZ3MsIGNoZWNrIG1vZGUi CisgICAod2l0aC1zdG9yZQorICAgICBzdG9yZQorICAgICAoY2FsbC13aXRoLXRlbXBvcmFy eS1vdXRwdXQtZmlsZQorICAgICAgIChsYW1iZGEgKGVudHJvcHkgZW50cm9weS1wb3J0KQor ICAgICAgICAgKHdyaXRlIChyYW5kb20tdGV4dCkgZW50cm9weS1wb3J0KQorICAgICAgICAg KGZvcmNlLW91dHB1dCBlbnRyb3B5LXBvcnQpCisgICAgICAgICAobGV0KiAoKGRydiAoYnVp bGQtZXhwcmVzc2lvbi0+ZGVyaXZhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICBzdG9y ZQorICAgICAgICAgICAgICAgICAgICAgICAibm9uLWRldGVybWluaXN0aWMiCisgICAgICAg ICAgICAgICAgICAgICAgIGAoYmVnaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHVz ZS1tb2R1bGVzIChybnJzIGlvIHBvcnRzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg KGxldCAoKG91dCAoYXNzb2MtcmVmICVvdXRwdXRzICJvdXQiKSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb3V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFt YmRhIChwb3J0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGlzcGxheQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWxsLXdpdGgtaW5wdXQtZmls ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLGVudHJvcHkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldC1zdHJpbmctYWxsKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQpKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjdCkpCisgICAgICAgICAgICAgICAgICAgICAgICM6Z3VpbGUtZm9yLWJ1 aWxkCisgICAgICAgICAgICAgICAgICAgICAgIChwYWNrYWdlLWRlcml2YXRpb24KKyAgICAg ICAgICAgICAgICAgICAgICAgICBzdG9yZQorICAgICAgICAgICAgICAgICAgICAgICAgICVi b290c3RyYXAtZ3VpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAoJWN1cnJlbnQtc3lz dGVtKSkpKQorICAgICAgICAgICAgICAgIChmaWxlIChkZXJpdmF0aW9uLT5vdXRwdXQtcGF0 aCBkcnYpKSkKKyAgICAgICAgICAgKGFuZCAoYnVpbGQtdGhpbmdzCisgICAgICAgICAgICAg ICAgICBzdG9yZQorICAgICAgICAgICAgICAgICAgKGxpc3QgKGRlcml2YXRpb24tZmlsZS1u YW1lIGRydikpKQorICAgICAgICAgICAgICAgIChiZWdpbgorICAgICAgICAgICAgICAgICAg KHdyaXRlIChyYW5kb20tdGV4dCkgZW50cm9weS1wb3J0KQorICAgICAgICAgICAgICAgICAg KGZvcmNlLW91dHB1dCBlbnRyb3B5LXBvcnQpCisgICAgICAgICAgICAgICAgICAoZ3VhcmQg KGMgKChzdG9yZS1wcm90b2NvbC1lcnJvcj8gYykKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHBrICdkZXRlcm1pbmlzbS1leGNlcHRpb24gYykKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGFuZCAobm90ICh6ZXJvPyAoc3RvcmUtcHJvdG9jb2wtZXJyb3Itc3Rh dHVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1jb250YWlu cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0b3JlLXByb3RvY29s LWVycm9yLW1lc3NhZ2UgYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJkZXRlcm1pbmlzdGljIikpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoYnVpbGQt dGhpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpc3QgKGRlcml2YXRpb24tZmlsZS1uYW1lIGRydikpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAoYnVpbGQtbW9kZSBjaGVjaykpCisgICAgICAgICAg ICAgICAgICAgICAgICAgI2YpKSkpKSkpKQphY3R1YWwtdmFsdWU6IDgzCnJlc3VsdDogUEFT UwoKdGVzdC1uYW1lOiBidWlsZC1zdWNjZWVkZWQgdHJhY2UgaW4gY2hlY2sgbW9kZQpsb2Nh dGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbToxMzUwCnNvdXJjZToK KyAodGVzdC1hc3NlcnQKKyAgICJidWlsZC1zdWNjZWVkZWQgdHJhY2UgaW4gY2hlY2sgbW9k ZSIKKyAgIChzdHJpbmctY29udGFpbnMKKyAgICAgKGNhbGwtd2l0aC1vdXRwdXQtc3RyaW5n CisgICAgICAgKGxhbWJkYSAocG9ydCkKKyAgICAgICAgIChsZXQgKChkIChidWlsZC1leHBy ZXNzaW9uLT5kZXJpdmF0aW9uCisgICAgICAgICAgICAgICAgICAgICVzdG9yZQorICAgICAg ICAgICAgICAgICAgICAiZm9vIgorICAgICAgICAgICAgICAgICAgICAnKG1rZGlyIChhc3Nv Yy1yZWYgJW91dHB1dHMgIm91dCIpKQorICAgICAgICAgICAgICAgICAgICAjOmd1aWxlLWZv ci1idWlsZAorICAgICAgICAgICAgICAgICAgICAocGFja2FnZS1kZXJpdmF0aW9uICVzdG9y ZSAlYm9vdHN0cmFwLWd1aWxlKSkpKQorICAgICAgICAgICAoYnVpbGQtZGVyaXZhdGlvbnMg JXN0b3JlIChsaXN0IGQpKQorICAgICAgICAgICAocGFyYW1ldGVyaXplCisgICAgICAgICAg ICAgKChjdXJyZW50LWJ1aWxkLW91dHB1dC1wb3J0IHBvcnQpKQorICAgICAgICAgICAgIChi dWlsZC1kZXJpdmF0aW9ucworICAgICAgICAgICAgICAgJXN0b3JlCisgICAgICAgICAgICAg ICAobGlzdCBkKQorICAgICAgICAgICAgICAgKGJ1aWxkLW1vZGUgY2hlY2spKSkpKSkKKyAg ICAgIkAgYnVpbGQtc3VjY2VlZGVkIikpCmFjdHVhbC12YWx1ZTogMzIwCnJlc3VsdDogUEFT UwoKL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbToxMzU0OjE2OiB3YXJuaW5n OiAnYnVpbGQtZXhwcmVzc2lvbi0+ZGVyaXZhdGlvbicgaXMgZGVwcmVjYXRlZCwgdXNlICdn ZXhwLT5kZXJpdmF0aW9uJyBpbnN0ZWFkCi9ob21lL3N1bmRicnkvZ3VpeC90ZXN0cy9zdG9y ZS5zY206MTM3MjoyMDogd2FybmluZzogJ2J1aWxkLWV4cHJlc3Npb24tPmRlcml2YXRpb24n IGlzIGRlcHJlY2F0ZWQsIHVzZSAnZ2V4cC0+ZGVyaXZhdGlvbicgaW5zdGVhZApAIGJ1aWxk LXN0YXJ0ZWQgL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL3hjNmZmNnk2aThm Yjl4MDBsYmN4NmZidmxpYm1remp3LW5vbi1kZXRlcm1pbmlzdGljLmRydiAtIHg4Nl82NC1s aW51eCAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvdmFyL2xvZy9ndWl4L2RydnMveGMv LzZmZjZ5Nmk4ZmI5eDAwbGJjeDZmYnZsaWJta3pqdy1ub24tZGV0ZXJtaW5pc3RpYy5kcnYu Z3ogNTg5NgpAIGJ1aWxkLXN0YXJ0ZWQgL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0 b3JlL3hjNmZmNnk2aThmYjl4MDBsYmN4NmZidmxpYm1remp3LW5vbi1kZXRlcm1pbmlzdGlj LmRydiAtIHg4Nl82NC1saW51eCAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAvdmFyL2xv Zy9ndWl4L2RydnMveGMvLzZmZjZ5Nmk4ZmI5eDAwbGJjeDZmYnZsaWJta3pqdy1ub24tZGV0 ZXJtaW5pc3RpYy5kcnYuZ3ogNTg5NwpvdXRwdXQgPy9ob21lL3N1bmRicnkvZ3VpeC90ZXN0 LXRtcC9zdG9yZS9xcGpsaHIyZGdjejFkcXMwNW1rZzM1bW1sY2t3MHpkai1ub24tZGV0ZXJt aW5pc3RpYz8gb2YgPy9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS94YzZmZjZ5 Nmk4ZmI5eDAwbGJjeDZmYnZsaWJta3pqdy1ub24tZGV0ZXJtaW5pc3RpYy5kcnY/IGRpZmZl cnMgZnJvbSBwcmV2aW91cyByb3VuZApAIGJ1aWxkLWZhaWxlZCAvaG9tZS9zdW5kYnJ5L2d1 aXgvdGVzdC10bXAvc3RvcmUveGM2ZmY2eTZpOGZiOXgwMGxiY3g2ZmJ2bGlibWt6anctbm9u LWRldGVybWluaXN0aWMuZHJ2IC0gMSBvdXRwdXQgPy9ob21lL3N1bmRicnkvZ3VpeC90ZXN0 LXRtcC9zdG9yZS9xcGpsaHIyZGdjejFkcXMwNW1rZzM1bW1sY2t3MHpkai1ub24tZGV0ZXJt aW5pc3RpYz8gb2YgPy9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9zdG9yZS94YzZmZjZ5 Nmk4ZmI5eDAwbGJjeDZmYnZsaWJta3pqdy1ub24tZGV0ZXJtaW5pc3RpYy5kcnY/IGRpZmZl cnMgZnJvbSBwcmV2aW91cyByb3VuZAoKOzs7IChtdWx0aXBsZS1idWlsZCAjPCZzdG9yZS1w cm90b2NvbC1lcnJvciBtZXNzYWdlOiAiYnVpbGQgb2YgYC9ob21lL3N1bmRicnkvZ3VpeC90 ZXN0LXRtcC9zdG9yZS94YzZmZjZ5Nmk4ZmI5eDAwbGJjeDZmYnZsaWJta3pqdy1ub24tZGV0 ZXJtaW5pc3RpYy5kcnYnIGZhaWxlZCIgc3RhdHVzOiAxPikKdGVzdC1uYW1lOiBidWlsZCBt dWx0aXBsZSB0aW1lcwpsb2NhdGlvbjogL2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3Jl LnNjbToxMzYzCnNvdXJjZToKKyAodGVzdC1hc3NlcnQKKyAgICJidWlsZCBtdWx0aXBsZSB0 aW1lcyIKKyAgICh3aXRoLXN0b3JlCisgICAgIHN0b3JlCisgICAgIChzZXQtYnVpbGQtb3B0 aW9ucworICAgICAgIHN0b3JlCisgICAgICAgIzpyb3VuZHMKKyAgICAgICAyCisgICAgICAg Izp1c2Utc3Vic3RpdHV0ZXM/CisgICAgICAgI2YpCisgICAgIChjYWxsLXdpdGgtdGVtcG9y YXJ5LW91dHB1dC1maWxlCisgICAgICAgKGxhbWJkYSAoZW50cm9weSBlbnRyb3B5LXBvcnQp CisgICAgICAgICAod3JpdGUgKHJhbmRvbS10ZXh0KSBlbnRyb3B5LXBvcnQpCisgICAgICAg ICAoZm9yY2Utb3V0cHV0IGVudHJvcHktcG9ydCkKKyAgICAgICAgIChsZXQqICgoZHJ2IChi dWlsZC1leHByZXNzaW9uLT5kZXJpdmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgIHN0 b3JlCisgICAgICAgICAgICAgICAgICAgICAgICJub24tZGV0ZXJtaW5pc3RpYyIKKyAgICAg ICAgICAgICAgICAgICAgICAgYChiZWdpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAo dXNlLW1vZHVsZXMgKHJucnMgaW8gcG9ydHMpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAobGV0ICgob3V0IChhc3NvYy1yZWYgJW91dHB1dHMgIm91dCIpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY2FsbC13aXRoLW91dHB1dC1maWxlCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs YW1iZGEgKHBvcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNwbGF5 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGwtd2l0aC1pbnB1dC1m aWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsZW50cm9weQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LXN0cmluZy1hbGwpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydCkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICxlbnRyb3B5CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxhbWJkYSAocG9ydCkgKHdyaXRlICdmb29iYXIgcG9ydCkpKSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgI3QpKQorICAgICAgICAgICAgICAgICAgICAgICAj Omd1aWxlLWZvci1idWlsZAorICAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS1kZXJp dmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAlYm9vdHN0cmFwLWd1aWxlCisgICAgICAgICAgICAgICAgICAgICAgICAg KCVjdXJyZW50LXN5c3RlbSkpKSkKKyAgICAgICAgICAgICAgICAoZmlsZSAoZGVyaXZhdGlv bi0+b3V0cHV0LXBhdGggZHJ2KSkpCisgICAgICAgICAgIChndWFyZCAoYyAoKHN0b3JlLXBy b3RvY29sLWVycm9yPyBjKQorICAgICAgICAgICAgICAgICAgICAgIChwayAnbXVsdGlwbGUt YnVpbGQgYykKKyAgICAgICAgICAgICAgICAgICAgICAoYW5kIChub3QgKHplcm8/IChzdG9y ZS1wcm90b2NvbC1lcnJvci1zdGF0dXMgYykpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN0cmluZy1jb250YWlucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Rv cmUtcHJvdG9jb2wtZXJyb3ItbWVzc2FnZSBjKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiZGV0ZXJtaW5pc3RpYyIpKSkpCisgICAgICAgICAgICAgICAgICAoY3VycmVudC1i dWlsZC1vdXRwdXQtcG9ydCAoY3VycmVudC1lcnJvci1wb3J0KSkKKyAgICAgICAgICAgICAg ICAgIChidWlsZC10aGluZ3MKKyAgICAgICAgICAgICAgICAgICAgc3RvcmUKKyAgICAgICAg ICAgICAgICAgICAgKGxpc3QgKGRlcml2YXRpb24tZmlsZS1uYW1lIGRydikpKQorICAgICAg ICAgICAgICAgICAgI2YpKSkpKSkKYWN0dWFsLXZhbHVlOiA4MQpyZXN1bHQ6IFBBU1MKCnRl c3QtbmFtZTogc3RvcmUtbG93ZXIKbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0 cy9zdG9yZS5zY206MTQwMQpzb3VyY2U6CisgKHRlc3QtZXF1YWwKKyAgICJzdG9yZS1sb3dl ciIKKyAgICJMb3dlcmVkLiIKKyAgIChsZXQqICgoYWRkIChzdG9yZS1sb3dlciB0ZXh0LWZp bGUpKQorICAgICAgICAgIChmaWxlIChhZGQgJXN0b3JlICJmb28iICJMb3dlcmVkLiIpKSkK KyAgICAgKGNhbGwtd2l0aC1pbnB1dC1maWxlIGZpbGUgZ2V0LXN0cmluZy1hbGwpKSkKZXhw ZWN0ZWQtdmFsdWU6ICJMb3dlcmVkLiIKYWN0dWFsLXZhbHVlOiAiTG93ZXJlZC4iCnJlc3Vs dDogUEFTUwoKdGVzdC1uYW1lOiBjdXJyZW50LXN5c3RlbQpsb2NhdGlvbjogL2hvbWUvc3Vu ZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbToxNDA3CnNvdXJjZToKKyAodGVzdC1lcXVhbAor ICAgImN1cnJlbnQtc3lzdGVtIgorICAgImJhciIKKyAgIChwYXJhbWV0ZXJpemUKKyAgICAg KCglY3VycmVudC1zeXN0ZW0gImZyb2IiKSkKKyAgICAgKHJ1bi13aXRoLXN0b3JlCisgICAg ICAgJXN0b3JlCisgICAgICAgKG1iZWdpbgorICAgICAgICAgJXN0b3JlLW1vbmFkCisgICAg ICAgICAoc2V0LWN1cnJlbnQtc3lzdGVtICJiYXIiKQorICAgICAgICAgKGN1cnJlbnQtc3lz dGVtKSkKKyAgICAgICAjOnN5c3RlbQorICAgICAgICJmb28iKSkpCmV4cGVjdGVkLXZhbHVl OiAiYmFyIgphY3R1YWwtdmFsdWU6ICJiYXIiCnJlc3VsdDogUEFTUwoKdGVzdC1uYW1lOiBx dWVyeS1wYXRoLWluZm8KbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0cy9zdG9y ZS5zY206MTQxNgpzb3VyY2U6CisgKHRlc3QtYXNzZXJ0CisgICAicXVlcnktcGF0aC1pbmZv IgorICAgKGxldCogKChyZWYgKGFkZC10ZXh0LXRvLXN0b3JlICVzdG9yZSAicmVmIiAiZm9v IikpCisgICAgICAgICAgKGl0ZW0gKGFkZC10ZXh0LXRvLXN0b3JlCisgICAgICAgICAgICAg ICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICAgICJpdGVtIgorICAgICAgICAgICAgICAg ICAgImJhciIKKyAgICAgICAgICAgICAgICAgIChsaXN0IHJlZikpKQorICAgICAgICAgIChp bmZvIChxdWVyeS1wYXRoLWluZm8gJXN0b3JlIGl0ZW0pKSkKKyAgICAgKGFuZCAoZXF1YWw/ IChwYXRoLWluZm8tcmVmZXJlbmNlcyBpbmZvKSAobGlzdCByZWYpKQorICAgICAgICAgIChl cXVhbD8KKyAgICAgICAgICAgIChwYXRoLWluZm8taGFzaCBpbmZvKQorICAgICAgICAgICAg KGdjcnlwdDpzaGEyNTYKKyAgICAgICAgICAgICAgKHN0cmluZy0+dXRmOAorICAgICAgICAg ICAgICAgIChjYWxsLXdpdGgtb3V0cHV0LXN0cmluZworICAgICAgICAgICAgICAgICAgKGN1 dCB3cml0ZS1maWxlIGl0ZW0gPD4pKSkpKSkpKQphY3R1YWwtdmFsdWU6ICN0CnJlc3VsdDog UEFTUwoKd2FybmluZzogaW4gJ3RoZS10aGluZyc6IGRlcHJlY2F0ZWQgJ2Rlcml2YXRpb24n IGNhbGxpbmcgY29udmVudGlvbiB1c2VkCndhcm5pbmc6IGluICd0aGUtdGhpbmcnOiBkZXBy ZWNhdGVkICdkZXJpdmF0aW9uJyBjYWxsaW5nIGNvbnZlbnRpb24gdXNlZAp3YXJuaW5nOiBp biAndGhlLXRoaW5nJzogZGVwcmVjYXRlZCAnZGVyaXZhdGlvbicgY2FsbGluZyBjb252ZW50 aW9uIHVzZWQKd2FybmluZzogaW4gJ3RoZS10aGluZyc6IGRlcHJlY2F0ZWQgJ2Rlcml2YXRp b24nIGNhbGxpbmcgY29udmVudGlvbiB1c2VkCkAgYnVpbGQtc3RhcnRlZCAvaG9tZS9zdW5k YnJ5L2d1aXgvdGVzdC10bXAvc3RvcmUvbnFiZHJ5OHI4MGs5ZmhrejI5Mjk1azN5czgxODJt YTYtdGhlLXRoaW5nLmRydiAtIHg4Nl82NC1saW51eCAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVz dC10bXAvdmFyL2xvZy9ndWl4L2RydnMvbnEvL2Jkcnk4cjgwazlmaGt6MjkyOTVrM3lzODE4 Mm1hNi10aGUtdGhpbmcuZHJ2Lmd6IDU5MTcKQCBidWlsZC1zdWNjZWVkZWQgL2hvbWUvc3Vu ZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL25xYmRyeThyODBrOWZoa3oyOTI5NWszeXM4MTgy bWE2LXRoZS10aGluZy5kcnYgLQp0ZXN0LW5hbWU6IHBhdGgtaW5mby1kZXJpdmVyCmxvY2F0 aW9uOiAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdHMvc3RvcmUuc2NtOjE0MjYKc291cmNlOgor ICh0ZXN0LWFzc2VydAorICAgInBhdGgtaW5mby1kZXJpdmVyIgorICAgKGxldCogKChiIChh ZGQtdGV4dC10by1zdG9yZQorICAgICAgICAgICAgICAgJXN0b3JlCisgICAgICAgICAgICAg ICAiYnVpbGQiCisgICAgICAgICAgICAgICAiZWNobyAkZm9vID4gJG91dCIKKyAgICAgICAg ICAgICAgICcoKSkpCisgICAgICAgICAgKHMgKGFkZC10by1zdG9yZQorICAgICAgICAgICAg ICAgJXN0b3JlCisgICAgICAgICAgICAgICAiYmFzaCIKKyAgICAgICAgICAgICAgICN0Cisg ICAgICAgICAgICAgICAic2hhMjU2IgorICAgICAgICAgICAgICAgKHNlYXJjaC1ib290c3Ry YXAtYmluYXJ5CisgICAgICAgICAgICAgICAgICJiYXNoIgorICAgICAgICAgICAgICAgICAo JWN1cnJlbnQtc3lzdGVtKSkpKQorICAgICAgICAgIChkIChkZXJpdmF0aW9uCisgICAgICAg ICAgICAgICAlc3RvcmUKKyAgICAgICAgICAgICAgICJ0aGUtdGhpbmciCisgICAgICAgICAg ICAgICBzCisgICAgICAgICAgICAgICBgKCItZSIgLGIpCisgICAgICAgICAgICAgICAjOmVu di12YXJzCisgICAgICAgICAgICAgICBgKCgiZm9vIiB1bnF1b3RlIChyYW5kb20tdGV4dCkp KQorICAgICAgICAgICAgICAgIzppbnB1dHMKKyAgICAgICAgICAgICAgIGAoKCxiKSAoLHMp KSkpCisgICAgICAgICAgKG8gKGRlcml2YXRpb24tPm91dHB1dC1wYXRoIGQpKSkKKyAgICAg KGFuZCAoYnVpbGQtZGVyaXZhdGlvbnMgJXN0b3JlIChsaXN0IGQpKQorICAgICAgICAgIChu b3QgKHBhdGgtaW5mby1kZXJpdmVyIChxdWVyeS1wYXRoLWluZm8gJXN0b3JlIGIpKSkKKyAg ICAgICAgICAoc3RyaW5nPT8KKyAgICAgICAgICAgIChkZXJpdmF0aW9uLWZpbGUtbmFtZSBk KQorICAgICAgICAgICAgKHBhdGgtaW5mby1kZXJpdmVyIChxdWVyeS1wYXRoLWluZm8gJXN0 b3JlIG8pKSkpKSkKYWN0dWFsLXZhbHVlOiAjdApyZXN1bHQ6IFBBU1MKCndhcm5pbmc6IGlu ICd0aGUtdGhpbmcnOiBkZXByZWNhdGVkICdkZXJpdmF0aW9uJyBjYWxsaW5nIGNvbnZlbnRp b24gdXNlZAp3YXJuaW5nOiBpbiAndGhlLXRoaW5nJzogZGVwcmVjYXRlZCAnZGVyaXZhdGlv bicgY2FsbGluZyBjb252ZW50aW9uIHVzZWQKd2FybmluZzogaW4gJ3RoZS10aGluZyc6IGRl cHJlY2F0ZWQgJ2Rlcml2YXRpb24nIGNhbGxpbmcgY29udmVudGlvbiB1c2VkCndhcm5pbmc6 IGluICd0aGUtdGhpbmcnOiBkZXByZWNhdGVkICdkZXJpdmF0aW9uJyBjYWxsaW5nIGNvbnZl bnRpb24gdXNlZAp3YXJuaW5nOiBpbiAndGhlLXRoaW5nJzogZGVwcmVjYXRlZCAnZGVyaXZh dGlvbicgY2FsbGluZyBjb252ZW50aW9uIHVzZWQKd2FybmluZzogaW4gJ3RoZS10aGluZyc6 IGRlcHJlY2F0ZWQgJ2Rlcml2YXRpb24nIGNhbGxpbmcgY29udmVudGlvbiB1c2VkCndhcm5p bmc6IGluICd0aGUtdGhpbmcnOiBkZXByZWNhdGVkICdkZXJpdmF0aW9uJyBjYWxsaW5nIGNv bnZlbnRpb24gdXNlZAp3YXJuaW5nOiBpbiAndGhlLXRoaW5nJzogZGVwcmVjYXRlZCAnZGVy aXZhdGlvbicgY2FsbGluZyBjb252ZW50aW9uIHVzZWQKc3Vic3RpdHV0ZTogZ3VpeCBzdWJz dGl0dXRlOiB3YXJuaW5nOiBBQ0wgZm9yIGFyY2hpdmUgaW1wb3J0cyBzZWVtcyB0byBiZSB1 bmluaXRpYWxpemVkLCBzdWJzdGl0dXRlcyBtYXkgYmUgdW5hdmFpbGFibGUKc3Vic3RpdHV0 ZTogZ3VpeCBzdWJzdGl0dXRlOiB3YXJuaW5nOiBhdXRoZW50aWNhdGlvbiBhbmQgYXV0aG9y aXphdGlvbiBvZiBzdWJzdGl0dXRlcyBkaXNhYmxlZCEKYnVpbGRpbmcgcGF0aChzKSBgL2hv bWUvc3VuZGJyeS9ndWl4L3Rlc3QtdG1wL3N0b3JlL2Q3ZmFuamRtazl6ejZ4N2Y5OW1sOGZ3 eWR2d2NnbDRhLXRoZS10aGluZycKc3Vic3RpdHV0ZTogZ3VpeCBzdWJzdGl0dXRlOiB3YXJu aW5nOiBhdXRoZW50aWNhdGlvbiBhbmQgYXV0aG9yaXphdGlvbiBvZiBzdWJzdGl0dXRlcyBk aXNhYmxlZCEKQCBidWlsZC1zdGFydGVkIC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC9z dG9yZS8yOW5jbnM5NXN6N2M5cDN6Z21tNXZoODd2bThzOHFyai10aGUtdGhpbmcuZHJ2IC0g eDg2XzY0LWxpbnV4IC9ob21lL3N1bmRicnkvZ3VpeC90ZXN0LXRtcC92YXIvbG9nL2d1aXgv ZHJ2cy8yOS8vbmNuczk1c3o3YzlwM3pnbW01dmg4N3ZtOHM4cXJqLXRoZS10aGluZy5kcnYu Z3ogNTk3NApAIGJ1aWxkLXN1Y2NlZWRlZCAvaG9tZS9zdW5kYnJ5L2d1aXgvdGVzdC10bXAv c3RvcmUvMjluY25zOTVzejdjOXAzemdtbTV2aDg3dm04czhxcmotdGhlLXRoaW5nLmRydiAt CnRlc3QtbmFtZTogYnVpbGQtY29yZXMKbG9jYXRpb246IC9ob21lL3N1bmRicnkvZ3VpeC90 ZXN0cy9zdG9yZS5zY206MTQ0MQpzb3VyY2U6CisgKHRlc3QtZXF1YWwKKyAgICJidWlsZC1j b3JlcyIKKyAgIChsaXN0IDAgNDIpCisgICAod2l0aC1zdG9yZQorICAgICBzdG9yZQorICAg ICAobGV0KiAoKGJ1aWxkIChhZGQtdGV4dC10by1zdG9yZQorICAgICAgICAgICAgICAgICAg ICAgc3RvcmUKKyAgICAgICAgICAgICAgICAgICAgICJidWlsZC5zaCIKKyAgICAgICAgICAg ICAgICAgICAgICJlY2hvICROSVhfQlVJTERfQ09SRVMgPiAkb3V0IikpCisgICAgICAgICAg ICAoYmFzaCAoYWRkLXRvLXN0b3JlCisgICAgICAgICAgICAgICAgICAgIHN0b3JlCisgICAg ICAgICAgICAgICAgICAgICJiYXNoIgorICAgICAgICAgICAgICAgICAgICAjdAorICAgICAg ICAgICAgICAgICAgICAic2hhMjU2IgorICAgICAgICAgICAgICAgICAgICAoc2VhcmNoLWJv b3RzdHJhcC1iaW5hcnkKKyAgICAgICAgICAgICAgICAgICAgICAiYmFzaCIKKyAgICAgICAg ICAgICAgICAgICAgICAoJWN1cnJlbnQtc3lzdGVtKSkpKQorICAgICAgICAgICAgKGRydjEg KGRlcml2YXRpb24KKyAgICAgICAgICAgICAgICAgICAgc3RvcmUKKyAgICAgICAgICAgICAg ICAgICAgInRoZS10aGluZyIKKyAgICAgICAgICAgICAgICAgICAgYmFzaAorICAgICAgICAg ICAgICAgICAgICBgKCItZSIgLGJ1aWxkKQorICAgICAgICAgICAgICAgICAgICAjOmlucHV0 cworICAgICAgICAgICAgICAgICAgICBgKCgsYmFzaCkgKCxidWlsZCkpCisgICAgICAgICAg ICAgICAgICAgICM6ZW52LXZhcnMKKyAgICAgICAgICAgICAgICAgICAgYCgoIngiIHVucXVv dGUgKHJhbmRvbS10ZXh0KSkpKSkKKyAgICAgICAgICAgIChkcnYyIChkZXJpdmF0aW9uCisg ICAgICAgICAgICAgICAgICAgIHN0b3JlCisgICAgICAgICAgICAgICAgICAgICJ0aGUtdGhp bmciCisgICAgICAgICAgICAgICAgICAgIGJhc2gKKyAgICAgICAgICAgICAgICAgICAgYCgi LWUiICxidWlsZCkKKyAgICAgICAgICAgICAgICAgICAgIzppbnB1dHMKKyAgICAgICAgICAg ICAgICAgICAgYCgoLGJhc2gpICgsYnVpbGQpKQorICAgICAgICAgICAgICAgICAgICAjOmVu di12YXJzCisgICAgICAgICAgICAgICAgICAgIGAoKCJ4IiB1bnF1b3RlIChyYW5kb20tdGV4 dCkpKSkpKQorICAgICAgIChhbmQgKGJ1aWxkLWRlcml2YXRpb25zIHN0b3JlIChsaXN0IGRy djEpKQorICAgICAgICAgICAgKGJlZ2luCisgICAgICAgICAgICAgIChzZXQtYnVpbGQtb3B0 aW9ucyBzdG9yZSAjOmJ1aWxkLWNvcmVzIDQyKQorICAgICAgICAgICAgICAoYnVpbGQtZGVy aXZhdGlvbnMgc3RvcmUgKGxpc3QgZHJ2MikpKQorICAgICAgICAgICAgKGxpc3QgKGNhbGwt d2l0aC1pbnB1dC1maWxlCisgICAgICAgICAgICAgICAgICAgIChkZXJpdmF0aW9uLT5vdXRw dXQtcGF0aCBkcnYxKQorICAgICAgICAgICAgICAgICAgICByZWFkKQorICAgICAgICAgICAg ICAgICAgKGNhbGwtd2l0aC1pbnB1dC1maWxlCisgICAgICAgICAgICAgICAgICAgIChkZXJp dmF0aW9uLT5vdXRwdXQtcGF0aCBkcnYyKQorICAgICAgICAgICAgICAgICAgICByZWFkKSkp KSkpCmV4cGVjdGVkLXZhbHVlOiAoMCA0MikKYWN0dWFsLXZhbHVlOiAoMCA0MikKcmVzdWx0 OiBQQVNTCgp0ZXN0LW5hbWU6IG11bHRpcGxleGVkLWJ1aWxkLW91dHB1dApsb2NhdGlvbjog L2hvbWUvc3VuZGJyeS9ndWl4L3Rlc3RzL3N0b3JlLnNjbToxNDY2CnNvdXJjZToKKyAodGVz dC1lcXVhbAorICAgIm11bHRpcGxleGVkLWJ1aWxkLW91dHB1dCIKKyAgICcoIkhlbGxvIGZy b20gZmlyc3QuIiAiSGVsbG8gZnJvbSBzZWNvbmQuIikKKyAgICh3aXRoLXN0b3JlCisgICAg IHN0b3JlCisgICAgIChsZXQqICgoYnVpbGQgKGFkZC10ZXh0LXRvLXN0b3JlCisgICAgICAg ICAgICAgICAgICAgICBzdG9yZQorICAgICAgICAgICAgICAgICAgICAgImJ1aWxkLnNoIgor ICAgICAgICAgICAgICAgICAgICAgImVjaG8gSGVsbG8gZnJvbSAkTkFNRS47IGVjaG8gPiAk b3V0IikpCisgICAgICAgICAgICAoYmFzaCAoYWRkLXRvLXN0b3JlCisgICAgICAgICAgICAg ICAgICAgIHN0b3JlCisgICAgICAgICAgICAgICAgICAgICJiYXNoIgorICAgICAgICAgICAg ICAgICAgICAjdAorICAgICAgICAgICAgICAgICAgICAic2hhMjU2IgorICAgICAgICAgICAg ICAgICAgICAoc2VhcmNoLWJvb3RzdHJhcC1iaW5hcnkKKyAgICAgICAgICAgICAgICAgICAg ICAiYmFzaCIKKyAgICAgICAgICAgICAgICAgICAgICAoJWN1cnJlbnQtc3lzdGVtKSkpKQor ICAgICAgICAgICAgKGRydjEgKGRlcml2YXRpb24KKyAgICAgICAgICAgICAgICAgICAgc3Rv cmUKKyAgICAgICAgICAgICAgICAgICAgIm9uZSIKKyAgICAgICAgICAgICAgICAgICAgYmFz aAorICAgICAgICAgICAgICAgICAgICBgKCItZSIgLGJ1aWxkKQorICAgICAgICAgICAgICAg ICAgICAjOmlucHV0cworICAgICAgICAgICAgICAgICAgICBgKCgsYmFzaCkgKCxidWlsZCkp CisgICAgICAgICAgICAgICAgICAgICM6ZW52LXZhcnMKKyAgICAgICAgICAgICAgICAgICAg YCgoIk5BTUUiIC4gImZpcnN0IikgKCJ4IiB1bnF1b3RlIChyYW5kb20tdGV4dCkpKSkpCisg ICAgICAgICAgICAoZHJ2MiAoZGVyaXZhdGlvbgorICAgICAgICAgICAgICAgICAgICBzdG9y ZQorICAgICAgICAgICAgICAgICAgICAidHdvIgorICAgICAgICAgICAgICAgICAgICBiYXNo CisgICAgICAgICAgICAgICAgICAgIGAoIi1lIiAsYnVpbGQpCisgICAgICAgICAgICAgICAg ICAgICM6aW5wdXRzCisgICAgICAgICAgICAgICAgICAgIGAoKCxiYXNoKSAoLGJ1aWxkKSkK KyAgICAgICAgICAgICAgICAgICAgIzplbnYtdmFycworICAgICAgICAgICAgICAgICAgICBg KCgiTkFNRSIgLiAic2Vjb25kIikgKCJ4IiB1bnF1b3RlIChyYW5kb20tdGV4dCkpKSkpKQor ICAgICAgIChzZXQtYnVpbGQtb3B0aW9ucworICAgICAgICAgc3RvcmUKKyAgICAgICAgICM6 cHJpbnQtYnVpbGQtdHJhY2UKKyAgICAgICAgICN0CisgICAgICAgICAjOm11bHRpcGxleGVk LWJ1aWxkLW91dHB1dD8KKyAgICAgICAgICN0CisgICAgICAgICAjOm1heC1idWlsZC1qb2Jz CisgICAgICAgICAxMCkKKyAgICAgICAobGV0ICgocG9ydCAob3Blbi1vdXRwdXQtc3RyaW5n KSkpCisgICAgICAgICAocGFyYW1ldGVyaXplCisgICAgICAgICAgICgoY3VycmVudC1idWls ZC1vdXRwdXQtcG9ydCBwb3J0KSkKKyAgICAgICAgICAgKGJ1aWxkLWRlcml2YXRpb25zIHN0 b3JlIChsaXN0IGRydjEgZHJ2MikpKQorICAgICAgICAgKGxldCogKChsb2cgKGdldC1vdXRw dXQtc3RyaW5nIHBvcnQpKQorICAgICAgICAgICAgICAgIChzdGFydGVkCisgICAgICAgICAg ICAgICAgICAoZm9sZC1tYXRjaGVzCisgICAgICAgICAgICAgICAgICAgIChtYWtlLXJlZ2V4 cAorICAgICAgICAgICAgICAgICAgICAgICJAIGJ1aWxkLXN0YXJ0ZWQgKFteIF0rKSAtIChb XiBdKykgKFteIF0rKSAoWzAtOV0rKSIpCisgICAgICAgICAgICAgICAgICAgIGxvZworICAg ICAgICAgICAgICAgICAgICAnKCkKKyAgICAgICAgICAgICAgICAgICAgY29ucykpCisgICAg ICAgICAgICAgICAgKGRvbmUgKGZvbGQtbWF0Y2hlcworICAgICAgICAgICAgICAgICAgICAg ICAgKG1ha2UtcmVnZXhwCisgICAgICAgICAgICAgICAgICAgICAgICAgICJAIGJ1aWxkLXN1 Y2NlZWRlZCAoLiopIC0gKC4qKSAoLiopICguKikiKQorICAgICAgICAgICAgICAgICAgICAg ICAgbG9nCisgICAgICAgICAgICAgICAgICAgICAgICAnKCkKKyAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnMpKQorICAgICAgICAgICAgICAgIChvdXRwdXQKKyAgICAgICAgICAgICAg ICAgIChmb2xkLW1hdGNoZXMKKyAgICAgICAgICAgICAgICAgICAgKG1ha2UtcmVnZXhwCisg ICAgICAgICAgICAgICAgICAgICAgIkAgYnVpbGQtbG9nIChbWzpkaWdpdDpdXSspIChbWzpk aWdpdDpdXSspXG4oW0EtWmEteiAuKl0rKVxuIikKKyAgICAgICAgICAgICAgICAgICAgbG9n CisgICAgICAgICAgICAgICAgICAgICcoKQorICAgICAgICAgICAgICAgICAgICBjb25zKSkK KyAgICAgICAgICAgICAgICAoZHJ2LXBpZAorICAgICAgICAgICAgICAgICAgKGxhbWJkYSAo bmFtZSkKKyAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAobSkKKyAgICAgICAgICAgICAg ICAgICAgICAobGV0ICgoZHJ2IChtYXRjaDpzdWJzdHJpbmcgbSAxKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAocGlkIChzdHJpbmctPm51bWJlciAobWF0Y2g6c3Vic3RyaW5n IG0gNCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKHN0cmluZy1zdWZmaXg/ IG5hbWUgZHJ2KSBwaWQpKSkpKQorICAgICAgICAgICAgICAgIChwaWQtbG9nCisgICAgICAg ICAgICAgICAgICAobGFtYmRhIChwaWQpCisgICAgICAgICAgICAgICAgICAgIChsYW1iZGEg KG0pCisgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKG4gKHN0cmluZy0+bnVtYmVyICht YXRjaDpzdWJzdHJpbmcgbSAxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxl biAoc3RyaW5nLT5udW1iZXIgKG1hdGNoOnN1YnN0cmluZyBtIDIpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3RyIChtYXRjaDpzdWJzdHJpbmcgbSAzKSkpCisgICAgICAg ICAgICAgICAgICAgICAgICAoYW5kICg9IHBpZCBuKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoPSAoc3RyaW5nLWxlbmd0aCBzdHIpICgtIGxlbiAxKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyKSkpKSkKKyAgICAgICAgICAgICAgICAocGlkMSAoYW55 IChkcnYtcGlkICJvbmUuZHJ2Iikgc3RhcnRlZCkpCisgICAgICAgICAgICAgICAgKHBpZDIg KGFueSAoZHJ2LXBpZCAidHdvLmRydiIpIHN0YXJ0ZWQpKSkKKyAgICAgICAgICAgKGxpc3Qg KGFueSAocGlkLWxvZyBwaWQxKSBvdXRwdXQpCisgICAgICAgICAgICAgICAgIChhbnkgKHBp ZC1sb2cgcGlkMikgb3V0cHV0KSkpKSkpKQpleHBlY3RlZC12YWx1ZTogKCJIZWxsbyBmcm9t IGZpcnN0LiIgIkhlbGxvIGZyb20gc2Vjb25kLiIpCmFjdHVhbC12YWx1ZTogKCJIZWxsbyBm cm9tIGZpcnN0LiIgIkhlbGxvIGZyb20gc2Vjb25kLiIpCnJlc3VsdDogUEFTUwoKd2Fybmlu ZzogaW4gJ29uZSc6IGRlcHJlY2F0ZWQgJ2Rlcml2YXRpb24nIGNhbGxpbmcgY29udmVudGlv biB1c2VkCndhcm5pbmc6IGluICdvbmUnOiBkZXByZWNhdGVkICdkZXJpdmF0aW9uJyBjYWxs aW5nIGNvbnZlbnRpb24gdXNlZAp3YXJuaW5nOiBpbiAnb25lJzogZGVwcmVjYXRlZCAnZGVy aXZhdGlvbicgY2FsbGluZyBjb252ZW50aW9uIHVzZWQKd2FybmluZzogaW4gJ29uZSc6IGRl cHJlY2F0ZWQgJ2Rlcml2YXRpb24nIGNhbGxpbmcgY29udmVudGlvbiB1c2VkCndhcm5pbmc6 IGluICd0d28nOiBkZXByZWNhdGVkICdkZXJpdmF0aW9uJyBjYWxsaW5nIGNvbnZlbnRpb24g dXNlZAp3YXJuaW5nOiBpbiAndHdvJzogZGVwcmVjYXRlZCAnZGVyaXZhdGlvbicgY2FsbGlu ZyBjb252ZW50aW9uIHVzZWQKd2FybmluZzogaW4gJ3R3byc6IGRlcHJlY2F0ZWQgJ2Rlcml2 YXRpb24nIGNhbGxpbmcgY29udmVudGlvbiB1c2VkCndhcm5pbmc6IGluICd0d28nOiBkZXBy ZWNhdGVkICdkZXJpdmF0aW9uJyBjYWxsaW5nIGNvbnZlbnRpb24gdXNlZAoK --------------5CV7AsdnQOhBWMFcMJbRgDcS-- --------------tNOaKiY0yIhdORW0oJuQOzVl-- --------------45UUjUTN2FF0Ndb0hWdeL0l5 Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsB5BAABCAAjFiEEyVG5Gm1pvFAzyXC2aiMi+MCr96sFAmNEVVQFAwAAAAAACgkQaiMi+MCr96vf Zgf/ae8hbG7N2r1EallCoMY5PJVbTxwI9yGzWwtSYDAHNJLzvSli+/UX/g9kAzj5TDOxQ61/0/eC Hk8H9WTE4lrU/q/UkrxoZ8t/Se6V08984sBq5jqSo0+IyR6Lm3N/W+ffDogYA6DeJII2FGWxtcYL rXbk3NyESmny/DncoN1khE8SeVQD+HPavsccRKB9rtWvuxJVRurqLk6U4Lxr1UxsKyfhf/jDmtSr E3DD7etRC2Lis7WBxl73c30hgu7rqAHkUAzzuv6DeBtNhdMUYnfRFb2yArpNA3E0QyDO1Qd79es+ oaHR3FCi3tStEFD6abt9Bo90b3+NInYP/EIsMiOw8Q== =WmAg -----END PGP SIGNATURE----- --------------45UUjUTN2FF0Ndb0hWdeL0l5--
bug-guix@HIDDEN
:bug#25018
; Package guix
.
Full text available.Received: (at 25018-done) by debbugs.gnu.org; 10 Oct 2022 14:53:45 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 10 10:53:45 2022 Received: from localhost ([127.0.0.1]:49548 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ohuA4-0007Jk-Q2 for submit <at> debbugs.gnu.org; Mon, 10 Oct 2022 10:53:45 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39042) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1ohuA2-0007JU-VR for 25018-done <at> debbugs.gnu.org; Mon, 10 Oct 2022 10:53:43 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34964) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1ohu9v-0000s7-Ae; Mon, 10 Oct 2022 10:53:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=rRMkGZdjUpjlFkuRlwncYbHLE/baUEJZo1iFl0vjUOI=; b=FRJXrhpNA2I1RTIgXBzC 2WWb1ET/oWwUw4s3fV2zO+uhBDlyz9kidVxBs9XPn5liOuY7rdjZI8VrqQI6I0x7F14YWL6Rb16b0 Lu2pv6rM+DD9JTg8E42cwwDiPbJIXyUFna8phTH7L2Fpx2ohtk6cLT4NfseRW5tEAfVGtdQWHNKbr V/niz8uj6xT4MSWy8RjuYMX8wGD0ngJfFlKGlQz3Hg+s6tfagi+YbNNuyMeIc9v7emfk2IhAOuCyD P/AoMBd3mKFr+gRpTL+RzniXlPzICPqYphGJKWYHpHnGXsnCmU4GTaP6GbaPS7ULuNweLdiqOnZER +FGuPpq+HYW8ww==; Received: from [193.50.110.253] (port=43298 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1ohu9u-0002wZ-OM; Mon, 10 Oct 2022 10:53:34 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Maxime Devos <maximedevos@HIDDEN> Subject: Re: bug#25018: GC incorrectly removes the temporary root file of the calling process References: <87d1hl55ur.fsf@HIDDEN> <87pmf34afr.fsf@HIDDEN> <87zge43y6a.fsf@HIDDEN> <82e0b6b6-402b-8505-7fa1-24dd013c4646@HIDDEN> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: Nonidi 19 =?utf-8?Q?Vend=C3=A9miaire?= an 231 de la =?utf-8?Q?R=C3=A9volution=2C?= jour du Tournesol X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 10 Oct 2022 16:53:32 +0200 In-Reply-To: <82e0b6b6-402b-8505-7fa1-24dd013c4646@HIDDEN> (Maxime Devos's message of "Mon, 10 Oct 2022 12:29:58 +0200") Message-ID: <87ilkr20ib.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 25018-done Cc: h.goebel@HIDDEN, Eelco Dolstra <eelco.dolstra@HIDDEN>, 25018-done <at> debbugs.gnu.org, Maxim Cournoyer <maxim.cournoyer@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Maxime Devos <maximedevos@HIDDEN> skribis: > On 10-10-2022 10:01, Ludovic Court=C3=A8s wrote: >> Hi Maxim, >> [...] >>> and pushed! >> Thank you! (Your bug triage work is much appreciated!) We could >> turn >> the example here in a unit test; the only downside is that running the >> GC in a test is expensive. > > It should be possible to run the GC on the test store instead of > /gnu/store, no? Yes, that=E2=80=99s what I meant and several tests already do this, but it= =E2=80=99s quite expensive. > If that's still too expensive, how about creating an additional > temporary test store only for the GC test? Bah, that sounds complicated to me. Ludo=E2=80=99.
bug-guix@HIDDEN
:bug#25018
; Package guix
.
Full text available.Received: (at 25018-done) by debbugs.gnu.org; 10 Oct 2022 10:30:04 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 10 06:30:04 2022 Received: from localhost ([127.0.0.1]:46212 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ohq2t-00063e-NF for submit <at> debbugs.gnu.org; Mon, 10 Oct 2022 06:30:04 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:42542) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maximedevos@HIDDEN>) id 1ohq2r-00062j-5j for 25018-done <at> debbugs.gnu.org; Mon, 10 Oct 2022 06:30:01 -0400 Received: from [IPV6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16] ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by laurent.telenet-ops.be with bizsmtp id WAVy2800b20ykKC01AVyhe; Mon, 10 Oct 2022 12:30:00 +0200 Message-ID: <82e0b6b6-402b-8505-7fa1-24dd013c4646@HIDDEN> Date: Mon, 10 Oct 2022 12:29:58 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.0 Subject: Re: bug#25018: GC incorrectly removes the temporary root file of the calling process Content-Language: en-US To: =?UTF-8?Q?Ludovic_Court=c3=a8s?= <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> References: <87d1hl55ur.fsf@HIDDEN> <87pmf34afr.fsf@HIDDEN> <87zge43y6a.fsf@HIDDEN> From: Maxime Devos <maximedevos@HIDDEN> In-Reply-To: <87zge43y6a.fsf@HIDDEN> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------BRj0ncXyRzwH3D0mY0bCvSOJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1665397800; bh=n+HPBJ1RIKESVXYDSHfYqYBdOvxLnJdXKDp6iAgiDjo=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=luxr2CclVWkHpy7Hpf7AxHP8NKtPm236AbtazJHWOXBI+GklBjzkdUM6gxv1uizx6 9CZePO7BdSA7BvHnwLLbBofw6BG6zQ176GhTz1mdl/yCGf7wIfVmzJCjTrtcvb0VXs qIqotm5BGQX86p/ZDWmBYT55j9nXHuNiMWHIjiS600haIfLiFq3VqtnfkezXlfPt61 2A3zmI24fYbzO5mF2ONUFYrzXGTC4fcR0QH1uH3aAwM0pE7RY1sO04UuoggCi4aS5U hhP0cBUPHke2cFRpmtp92x7EdNyyhF7A22xQWz3keBfsf6Eld1f9RO7/3cDQhBjD7K By9+OkmeqAsqg== X-Spam-Score: -1.8 (-) X-Debbugs-Envelope-To: 25018-done Cc: h.goebel@HIDDEN, Eelco Dolstra <eelco.dolstra@HIDDEN>, 25018-done <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.8 (--) This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------BRj0ncXyRzwH3D0mY0bCvSOJ Content-Type: multipart/mixed; boundary="------------odpi0pPFfWbbrzEQl4GsO91J"; protected-headers="v1" From: Maxime Devos <maximedevos@HIDDEN> To: =?UTF-8?Q?Ludovic_Court=c3=a8s?= <ludo@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN> Cc: h.goebel@HIDDEN, Eelco Dolstra <eelco.dolstra@HIDDEN>, 25018-done <at> debbugs.gnu.org Message-ID: <82e0b6b6-402b-8505-7fa1-24dd013c4646@HIDDEN> Subject: Re: bug#25018: GC incorrectly removes the temporary root file of the calling process References: <87d1hl55ur.fsf@HIDDEN> <87pmf34afr.fsf@HIDDEN> <87zge43y6a.fsf@HIDDEN> In-Reply-To: <87zge43y6a.fsf@HIDDEN> --------------odpi0pPFfWbbrzEQl4GsO91J Content-Type: multipart/mixed; boundary="------------EVes8QvSdvZKMA1loOL0e1Aw" --------------EVes8QvSdvZKMA1loOL0e1Aw Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQoNCk9uIDEwLTEwLTIwMjIgMTA6MDEsIEx1ZG92aWMgQ291cnTDqHMgd3JvdGU6DQo+IEhp IE1heGltLA0KPiANCj4gWy4uLl0NCj4+IGFuZCBwdXNoZWQhDQo+IA0KPiBUaGFuayB5b3Uh ICAoWW91ciBidWcgdHJpYWdlIHdvcmsgaXMgbXVjaCBhcHByZWNpYXRlZCEpICBXZSBjb3Vs ZCB0dXJuDQo+IHRoZSBleGFtcGxlIGhlcmUgaW4gYSB1bml0IHRlc3Q7IHRoZSBvbmx5IGRv d25zaWRlIGlzIHRoYXQgcnVubmluZyB0aGUNCj4gR0MgaW4gYSB0ZXN0IGlzIGV4cGVuc2l2 ZS4NCg0KSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHJ1biB0aGUgR0Mgb24gdGhlIHRlc3Qg c3RvcmUgaW5zdGVhZCBvZiANCi9nbnUvc3RvcmUsIG5vPyAgSWYgdGhhdCdzIHN0aWxsIHRv byBleHBlbnNpdmUsIGhvdyBhYm91dCBjcmVhdGluZyBhbiANCmFkZGl0aW9uYWwgdGVtcG9y YXJ5IHRlc3Qgc3RvcmUgb25seSBmb3IgdGhlIEdDIHRlc3Q/DQoNCkdyZWV0aW5ncywNCk1h eGltZS4NCg== --------------EVes8QvSdvZKMA1loOL0e1Aw Content-Type: application/pgp-keys; name="OpenPGP_0x49E3EE22191725EE.asc" Content-Disposition: attachment; filename="OpenPGP_0x49E3EE22191725EE.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xjMEX4ch6BYJKwYBBAHaRw8BAQdANPb/d6MrGnGi5HyvODCkBUJPRjiFQcRU5V+m xvMaAa/NL01heGltZSBEZXZvcyA8bWF4aW1lLmRldm9zQHN0dWRlbnQua3VsZXV2 ZW4uYmU+wpAEExYIADgWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCX4ch6AIbAwUL CQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBJ4+4iGRcl7japAQC3opZ2KGWzWmRc /gIWSu0AAcfMwyinFEEPa/QhUt2CogD/e2RdF4CYAgaRHJJmZ9WU7piKbLZ7llB4 LzgezVDHggzNJU1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT7C kAQTFggAOBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJf56ycAhsDBQsJCAcDBRUK CQgLBRYCAwEAAh4BAheAAAoJEEnj7iIZFyXujpQBAKV1SwDDl4f24rXciDlB9L8W ycZt30CgbewMSRQk4mvbAP9dFMbVVixYBd6C8cfhR+NsOBGiOJnQABlUmgNuqGFJ Dc44BF+HIegSCisGAQQBl1UBBQEBB0BOlzIWiJzgobMF6/cqwLaLk7jIcFSZ++c0 k9cCNT6YXwMBCAfCeAQYFggAIBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJfhyHo AhsMAAoJEEnj7iIZFyXuMr0BAJc8cl5PGvVmVuSQVKjleNl4DK1/XAaPAYPe34AE fZJPAP9IqLCQhH/FeJanHqBP8gNdGNI2qn8RnnLVfRJgUjZ1BA=3D=3D =3DOVqp -----END PGP PUBLIC KEY BLOCK----- --------------EVes8QvSdvZKMA1loOL0e1Aw-- --------------odpi0pPFfWbbrzEQl4GsO91J-- --------------BRj0ncXyRzwH3D0mY0bCvSOJ Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCY0P0JgUDAAAAAAAKCRBJ4+4iGRcl7o+x AP0UEThZNN+0AEG8z2gtNriZUhO1ZcXwa7OMV4vkbXmcEgD/cCcAxsqg6m/eOrOph3Pp/gdNMosZ du+n4WxLNhALwwA= =rzpp -----END PGP SIGNATURE----- --------------BRj0ncXyRzwH3D0mY0bCvSOJ--
bug-guix@HIDDEN
:bug#25018
; Package guix
.
Full text available.Received: (at 25018-done) by debbugs.gnu.org; 10 Oct 2022 08:01:29 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 10 04:01:29 2022 Received: from localhost ([127.0.0.1]:45803 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ohnj6-000621-Uj for submit <at> debbugs.gnu.org; Mon, 10 Oct 2022 04:01:29 -0400 Received: from eggs.gnu.org ([209.51.188.92]:57996) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1ohnj5-00061n-5J for 25018-done <at> debbugs.gnu.org; Mon, 10 Oct 2022 04:01:27 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:55040) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1ohniw-0006Rj-0g; Mon, 10 Oct 2022 04:01:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=F387zBzV1EZHUmrtfp59kmZu0clPy8pDK848XD5x17Y=; b=OzjOJNXNLo3TxYbuTc0H cHU/qdUUMcTZTd55qsAaZn/Q4KqyW9XLoJAwEw5p5koxPxyE60mTVO2Bid5vevJT3VkjYQo+kL79P 6jzCS/QVp/k5CtedxoEMhj78L4ooeCBGfh4XnpQw88XZ127sl99EfgF02dytkOCB9XNiw8buwuTnZ K6o+RO6xDlAUCVXvS6Px0yM3cNDovnYo/FDTBunWGnssJ+lEHCIhjhgGeZB4FnApSyeqtJOw5/awi +l2NmUXvzze6O+FVgWkvV20qeZM7yM4Qes8uMZ6PX4I9LAwKB4HIT5l7zjQo/x3Zdvwfubps8QQAG 8N2wh6IqL1mNaQ==; Received: from [193.50.110.253] (port=38668 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1ohnii-0008Ou-2E; Mon, 10 Oct 2022 04:01:07 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Maxim Cournoyer <maxim.cournoyer@HIDDEN> Subject: Re: bug#25018: GC incorrectly removes the temporary root file of the calling process References: <87d1hl55ur.fsf@HIDDEN> <87pmf34afr.fsf@HIDDEN> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: Nonidi 19 =?utf-8?Q?Vend=C3=A9miaire?= an 231 de la =?utf-8?Q?R=C3=A9volution=2C?= jour du Tournesol X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 10 Oct 2022 10:01:01 +0200 In-Reply-To: <87pmf34afr.fsf@HIDDEN> (Maxim Cournoyer's message of "Fri, 07 Oct 2022 16:59:20 -0400") Message-ID: <87zge43y6a.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 25018-done Cc: h.goebel@HIDDEN, Eelco Dolstra <eelco.dolstra@HIDDEN>, 25018-done <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hi Maxim, Maxim Cournoyer <maxim.cournoyer@HIDDEN> skribis: > I'm not Eelco, but your change LGTM. Note that the upstream version > still uses the original code [0]. Right. > I've installed the change, tested that it had the expected result: > > reading temporary root file `/var/guix/temproots/8386' > waiting for read lock on `/var/guix/temproots/8386' > got temporary root `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' > considering whether to delete `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2= d-foo' > | cannot delete `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' becau= se it's a root > | cannot delete `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' becau= se it's still reachable > ice-9/boot-9.scm:1685:16: In procedure raise-exception: > ERROR: > 1. &store-protocol-error: > message: "cannot delete path `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa= 974h2d-foo' since it is still alive" > status: 1 > > and pushed! Thank you! (Your bug triage work is much appreciated!) We could turn the example here in a unit test; the only downside is that running the GC in a test is expensive. Ludo=E2=80=99.
bug-guix@HIDDEN
:bug#25018
; Package guix
.
Full text available.Received: (at 25018-done) by debbugs.gnu.org; 7 Oct 2022 20:59:29 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 07 16:59:29 2022 Received: from localhost ([127.0.0.1]:37570 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1oguRN-00045t-Aq for submit <at> debbugs.gnu.org; Fri, 07 Oct 2022 16:59:29 -0400 Received: from mail-qk1-f172.google.com ([209.85.222.172]:45662) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <maxim.cournoyer@HIDDEN>) id 1oguRM-00045g-Bf for 25018-done <at> debbugs.gnu.org; Fri, 07 Oct 2022 16:59:28 -0400 Received: by mail-qk1-f172.google.com with SMTP id y1so3639849qky.12 for <25018-done <at> debbugs.gnu.org>; Fri, 07 Oct 2022 13:59:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=bultWQ5bt03bHCnJSm+ifciVBZmcA/FdP2OFWfieEoM=; b=QCj2wyANvpcWjsCEU5sbuKdfUwrL/1c6vEJY9GWk/IObU1bbRuqZpIgVQxxj9ZEF2d 5/V0d7eEiqxfeeCYxZIvL06RLlds6+sNbqso+T4kMB8u7VF4x44Wmjtw9n17QKlm1Xf3 qy3eiETNKbcIa73gv2irwRhY2k6wUOy8MCI2W8c0u+pORXzGedeNzQ3r3zkKlfDrHqoj DFIsgRz6EpZVbfeb8NdVYn7THQM9WwMgSfAEprMofrR49m96hYzF0kn4HZMW9+AqV1ld sUmtuG6HYPbJJPnrtY+EVTBN0l8a4ulqFqTulJdScWHbni8Ybo4OIpMm5/+0EgXSvXHe 0Yyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=bultWQ5bt03bHCnJSm+ifciVBZmcA/FdP2OFWfieEoM=; b=YIOT4xooXbvLP3sYafubt1qjyWdMlP7PHpcroRqUXxEgVVWzqdG2/Q1AXYM0wLCEQM +dkwI4LR+XzqBM+wPzvvb2BuKrNvrJji0dKhyVJQAVhMCC2jZanYAgfkCArJQOkv0ea7 ktZXeJwJpHQrPGt2G6Eiij2PnmJTXgnUd0JKWVnIY4b4UFc5bYmy1jgz5M/D4HE7VKV+ RUoOlTfI1JcR9KKlv+B1cPZV55p3S6ucDJm6NjAsi5ZrkiVoxBBnU7WErBsGX3RqWQyw Ko4xf/PcLakq6W1hCx7bt0ot2Iq0Igo9uycInyq2pM2mkrRNUraVqOYsdD6xm7Qth/fW EYqw== X-Gm-Message-State: ACrzQf2xaxcIi/dGBfNq9EogqFhV5o9ymcps4rZxQSnE0ZWlQ3yXGJ0+ Sv+XGl+tQarytHt3Ecddgvm/JIC9GjFJ/g== X-Google-Smtp-Source: AMsMyM7mJz6QckdZ0H2MfPhVHxPhD4g5KfouL0EVAb6jVEkcYIAVv8PxkMXLu/y4cu7wncZB2van+w== X-Received: by 2002:a37:348:0:b0:6e5:a3ed:c5d9 with SMTP id 69-20020a370348000000b006e5a3edc5d9mr5115500qkd.284.1665176362661; Fri, 07 Oct 2022 13:59:22 -0700 (PDT) Received: from hurd ([2607:fad8:4:3::1005]) by smtp.gmail.com with ESMTPSA id z6-20020ac87ca6000000b003913996dce3sm2855700qtv.6.2022.10.07.13.59.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Oct 2022 13:59:22 -0700 (PDT) From: Maxim Cournoyer <maxim.cournoyer@HIDDEN> To: ludo@HIDDEN (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: bug#25018: GC incorrectly removes the temporary root file of the calling process References: <87d1hl55ur.fsf@HIDDEN> Date: Fri, 07 Oct 2022 16:59:20 -0400 In-Reply-To: <87d1hl55ur.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Thu, 24 Nov 2016 15:07:24 +0100") Message-ID: <87pmf34afr.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 25018-done Cc: h.goebel@HIDDEN, Eelco Dolstra <eelco.dolstra@HIDDEN>, 25018-done <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hi Ludo, ludo@HIDDEN (Ludovic Court=C3=A8s) writes: > Hello, > > The =E2=80=98readTempRoots=E2=80=99 function in gc.cc has this: > > /* Try to acquire a write lock without blocking. This can > only succeed if the owning process has died. In that case > we don't care about its temporary roots. */ > if (lockFile(*fd, ltWrite, false)) { > printMsg(lvlError, format("removing stale temporary roots fil= e `%1%'") % path); > unlink(path.c_str()); > > There=E2=80=99s a thinko here: locking the file also succeeds when the lo= ck is > already held by the calling process. > > In that case, this code ends up removing the temporary root file of > calling process, which is bad. Here=E2=80=99s a sample session: > > scheme@(guile-user)> ,use(guix) > scheme@(guile-user)> (define s (open-connection)) > scheme@(guile-user)> (current-build-output-port (current-error-port)) > $2 =3D #<output: file /dev/pts/9> > scheme@(guile-user)> (set-build-options s #:verbosity 10) > $3 =3D #t > scheme@(guile-user)> (add-text-to-store s "foo" "bar!") > acquiring global GC lock `/var/guix/gc.lock' > acquiring read lock on `/var/guix/temproots/4259' > acquiring write lock on `/var/guix/temproots/4259' > downgrading to read lock on `/var/guix/temproots/4259' > locking path `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' > lock acquired on `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo.lock' > `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' has hash `c756ef12a70ba= d10c9ac276ecd1213ea7cc3a2e6c462ba47e4f9a88756a055d0' > lock released on `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo.lock' > $4 =3D "/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo" > scheme@(guile-user)> (delete-paths s (list $4)) > acquiring global GC lock `/var/guix/gc.lock' > finding garbage collector roots... > executing `/gnu/store/l99rkv2713nl53kr3gn4akinvifsx19h-guix-0.11.0-3.7ca3= /libexec/guix/list-runtime-roots' to find additional roots > [=E2=80=A6] > reading temporary root file `/var/guix/temproots/4259' > removing stale temporary roots file `/var/guix/temproots/4259' > [=E2=80=A6] > considering whether to delete `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2= d-foo' > | invalidating path `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' > | deleting `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' > | recursively deleting path `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2= d-foo' > | | /gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo > deleting `/gnu/store/trash' > recursively deleting path `/gnu/store/trash' > | /gnu/store/trash > deleting unused links... > deleting unused link `/gnu/store/.links/1l2ml1b8ga7rwi3vlqn4wsic6z7a2c9cs= vi7mk4i1b8blw9fymn7' > note: currently hard linking saves 6699.22 MiB > $5 =3D ("/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo") > $6 =3D 4096 > > Notice the =E2=80=9Cremoving stale temporary roots file=E2=80=9D message. > > Eelco: shouldn=E2=80=99t it be changed along the lines of the attached pa= th? > > > Thanks, > Ludo=E2=80=99. > > diff --git a/nix/libstore/gc.cc b/nix/libstore/gc.cc > index 72eff52..d92388f 100644 > --- a/nix/libstore/gc.cc > +++ b/nix/libstore/gc.cc > @@ -2,6 +2,7 @@ > #include "misc.hh" > #include "local-store.hh" >=20=20 > +#include <string> > #include <functional> > #include <queue> > #include <algorithm> > @@ -225,10 +226,10 @@ static void readTempRoots(PathSet & tempRoots, FDs = & fds) > //FDPtr fd(new AutoCloseFD(openLockFile(path, false))); > //if (*fd =3D=3D -1) continue; >=20=20 > - /* Try to acquire a write lock without blocking. This can > - only succeed if the owning process has died. In that case > - we don't care about its temporary roots. */ > - if (lockFile(*fd, ltWrite, false)) { > + /* Try to acquire a write lock without blocking. This can only > + succeed if the owning process has died, in which case we don'= t care > + about its temporary roots, or if we are the owning process. = */ > + if (i.name !=3D std::to_string(getpid()) && lockFile(*fd, ltWrit= e, false)) { > printMsg(lvlError, format("removing stale temporary roots fi= le `%1%'") % path); > unlink(path.c_str()); > writeFull(*fd, "d"); > I'm not Eelco, but your change LGTM. Note that the upstream version still uses the original code [0]. I've installed the change, tested that it had the expected result: --8<---------------cut here---------------start------------->8--- reading temporary root file `/var/guix/temproots/8386' waiting for read lock on `/var/guix/temproots/8386' got temporary root `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' considering whether to delete `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-= foo' | cannot delete `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' because= it's a root | cannot delete `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' because= it's still reachable ice-9/boot-9.scm:1685:16: In procedure raise-exception: ERROR: 1. &store-protocol-error: message: "cannot delete path `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa97= 4h2d-foo' since it is still alive" status: 1 --8<---------------cut here---------------end--------------->8--- and pushed! Closing. [0] https://github.com/NixOS/nix/blob/master/src/libstore/gc.cc#L194 --=20 Thanks, Maxim
ludo@HIDDEN (Ludovic Courtès)
:Maxim Cournoyer <maxim.cournoyer@HIDDEN>
:ludo@HIDDEN (Ludovic Courtès)
to control <at> debbugs.gnu.org
.
Full text available.Received: (at submit) by debbugs.gnu.org; 24 Nov 2016 14:07:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 24 09:07:57 2016 Received: from localhost ([127.0.0.1]:40028 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1c9ugv-00021s-3K for submit <at> debbugs.gnu.org; Thu, 24 Nov 2016 09:07:57 -0500 Received: from eggs.gnu.org ([208.118.235.92]:36224) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1c9ugr-00021a-Hm for submit <at> debbugs.gnu.org; Thu, 24 Nov 2016 09:07:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <ludo@HIDDEN>) id 1c9ugl-00055f-Dk for submit <at> debbugs.gnu.org; Thu, 24 Nov 2016 09:07:48 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:34537) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from <ludo@HIDDEN>) id 1c9ugl-00055R-A8 for submit <at> debbugs.gnu.org; Thu, 24 Nov 2016 09:07:47 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55404) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <ludo@HIDDEN>) id 1c9ugh-0000fr-0d for bug-guix@HIDDEN; Thu, 24 Nov 2016 09:07:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <ludo@HIDDEN>) id 1c9ugd-00051i-RU for bug-guix@HIDDEN; Thu, 24 Nov 2016 09:07:42 -0500 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:45485) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <ludo@HIDDEN>) id 1c9ugR-0004x4-GQ; Thu, 24 Nov 2016 09:07:27 -0500 Received: from pluto.bordeaux.inria.fr ([193.50.110.57]:57750 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <ludo@HIDDEN>) id 1c9ugQ-0001ud-Ud; Thu, 24 Nov 2016 09:07:27 -0500 From: ludo@HIDDEN (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: Eelco Dolstra <eelco.dolstra@HIDDEN> Subject: GC incorrectly removes the temporary root file of the calling process X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 4 Frimaire an 225 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-unknown-linux-gnu Date: Thu, 24 Nov 2016 15:07:24 +0100 Message-ID: <87d1hl55ur.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -8.0 (--------) X-Debbugs-Envelope-To: submit Cc: Hartmut Goebel <h.goebel@HIDDEN>, bug-guix@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -8.0 (--------) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello, The =E2=80=98readTempRoots=E2=80=99 function in gc.cc has this: /* Try to acquire a write lock without blocking. This can only succeed if the owning process has died. In that case we don't care about its temporary roots. */ if (lockFile(*fd, ltWrite, false)) { printMsg(lvlError, format("removing stale temporary roots file = `%1%'") % path); unlink(path.c_str()); There=E2=80=99s a thinko here: locking the file also succeeds when the lock= is already held by the calling process. In that case, this code ends up removing the temporary root file of calling process, which is bad. Here=E2=80=99s a sample session: --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> ,use(guix) scheme@(guile-user)> (define s (open-connection)) scheme@(guile-user)> (current-build-output-port (current-error-port)) $2 =3D #<output: file /dev/pts/9> scheme@(guile-user)> (set-build-options s #:verbosity 10) $3 =3D #t scheme@(guile-user)> (add-text-to-store s "foo" "bar!") acquiring global GC lock `/var/guix/gc.lock' acquiring read lock on `/var/guix/temproots/4259' acquiring write lock on `/var/guix/temproots/4259' downgrading to read lock on `/var/guix/temproots/4259' locking path `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' lock acquired on `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo.lock' `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' has hash `c756ef12a70bad1= 0c9ac276ecd1213ea7cc3a2e6c462ba47e4f9a88756a055d0' lock released on `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo.lock' $4 =3D "/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo" scheme@(guile-user)> (delete-paths s (list $4)) acquiring global GC lock `/var/guix/gc.lock' finding garbage collector roots... executing `/gnu/store/l99rkv2713nl53kr3gn4akinvifsx19h-guix-0.11.0-3.7ca3/l= ibexec/guix/list-runtime-roots' to find additional roots [=E2=80=A6] reading temporary root file `/var/guix/temproots/4259' removing stale temporary roots file `/var/guix/temproots/4259' [=E2=80=A6] considering whether to delete `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-= foo' | invalidating path `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' | deleting `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo' | recursively deleting path `/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-= foo' | | /gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo deleting `/gnu/store/trash' recursively deleting path `/gnu/store/trash' | /gnu/store/trash deleting unused links... deleting unused link `/gnu/store/.links/1l2ml1b8ga7rwi3vlqn4wsic6z7a2c9csvi= 7mk4i1b8blw9fymn7' note: currently hard linking saves 6699.22 MiB $5 =3D ("/gnu/store/0siy93lggjw7sfdg8gsvrzafaa974h2d-foo") $6 =3D 4096 --8<---------------cut here---------------end--------------->8--- Notice the =E2=80=9Cremoving stale temporary roots file=E2=80=9D message. Eelco: shouldn=E2=80=99t it be changed along the lines of the attached path? Thanks, Ludo=E2=80=99. --=-=-= Content-Type: text/x-patch Content-Disposition: inline diff --git a/nix/libstore/gc.cc b/nix/libstore/gc.cc index 72eff52..d92388f 100644 --- a/nix/libstore/gc.cc +++ b/nix/libstore/gc.cc @@ -2,6 +2,7 @@ #include "misc.hh" #include "local-store.hh" +#include <string> #include <functional> #include <queue> #include <algorithm> @@ -225,10 +226,10 @@ static void readTempRoots(PathSet & tempRoots, FDs & fds) //FDPtr fd(new AutoCloseFD(openLockFile(path, false))); //if (*fd == -1) continue; - /* Try to acquire a write lock without blocking. This can - only succeed if the owning process has died. In that case - we don't care about its temporary roots. */ - if (lockFile(*fd, ltWrite, false)) { + /* Try to acquire a write lock without blocking. This can only + succeed if the owning process has died, in which case we don't care + about its temporary roots, or if we are the owning process. */ + if (i.name != std::to_string(getpid()) && lockFile(*fd, ltWrite, false)) { printMsg(lvlError, format("removing stale temporary roots file `%1%'") % path); unlink(path.c_str()); writeFull(*fd, "d"); --=-=-=--
ludo@HIDDEN (Ludovic Courtès)
:bug-guix@HIDDEN
.
Full text available.bug-guix@HIDDEN
:bug#25018
; Package guix
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.