GNU logs - #25018, boring messages


Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#25018: GC incorrectly removes the temporary root file of the calling process
Resent-From: ludo@HIDDEN (Ludovic =?UTF-8?Q?Court=C3=A8s?=)
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Thu, 24 Nov 2016 14:08:01 +0000
Resent-Message-ID: <handler.25018.B.14799964777809 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 25018
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Eelco Dolstra <eelco.dolstra@HIDDEN>
Cc: h.goebel@HIDDEN, 25018 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: Hartmut Goebel <h.goebel@HIDDEN>, bug-guix@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.14799964777809
          (code B ref -1); Thu, 24 Nov 2016 14:08:01 +0000
Received: (at submit) by debbugs.gnu.org; 24 Nov 2016 14:07:57 +0000
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?=)
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-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");

--=-=-=--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: ludo@HIDDEN (Ludovic =?UTF-8?Q?Court=C3=A8s?=)
Subject: bug#25018: Acknowledgement (GC incorrectly removes the temporary
 root file of the calling process)
Message-ID: <handler.25018.B.14799964777809.ack <at> debbugs.gnu.org>
References: <87d1hl55ur.fsf@HIDDEN>
X-Gnu-PR-Message: ack 25018
X-Gnu-PR-Package: guix
Reply-To: 25018 <at> debbugs.gnu.org
Date: Thu, 24 Nov 2016 14:08:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-guix@HIDDEN

If you wish to submit further information on this problem, please
send it to 25018 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
25018: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D25018
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 23 Jan 2017 22:15:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 23 17:15:06 2017
Received: from localhost ([127.0.0.1]:39507 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1cVmtG-0002QE-5v
	for submit <at> debbugs.gnu.org; Mon, 23 Jan 2017 17:15:06 -0500
Received: from eggs.gnu.org ([208.118.235.92]:56031)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1cVmtF-0002KR-Jc
 for control <at> debbugs.gnu.org; Mon, 23 Jan 2017 17:15:05 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <ludo@HIDDEN>) id 1cVmt5-0007Jk-JK
 for control <at> debbugs.gnu.org; Mon, 23 Jan 2017 17:15:00 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-3.2 required=5.0 tests=BAYES_20,RP_MATCHES_RCVD
 autolearn=disabled version=3.3.2
Received: from fencepost.gnu.org ([2001:4830:134:3::e]:60853)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <ludo@HIDDEN>)
 id 1cVmt5-0007Jg-Gk
 for control <at> debbugs.gnu.org; Mon, 23 Jan 2017 17:14:55 -0500
Received: from reverse-83.fdn.fr ([80.67.176.83]:48804 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <ludo@HIDDEN>) id 1cVmt4-00073X-Uo
 for control <at> debbugs.gnu.org; Mon, 23 Jan 2017 17:14:55 -0500
Date: Mon, 23 Jan 2017 23:14:53 +0100
Message-Id: <87wpdll8yq.fsf@HIDDEN>
To: control <at> debbugs.gnu.org
From: ludo@HIDDEN (Ludovic =?utf-8?Q?Court=C3=A8s?=)
Subject: control message for bug #25018
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Received-From: 2001:4830:134:3::e
X-Spam-Score: -8.2 (--------)
X-Debbugs-Envelope-To: control
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.2 (--------)

severity 25018 important




Message sent:


MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Subject: bug#25018: closed (GC incorrectly removes the temporary root file
 of the calling process)
CC: tracker <at> debbugs.gnu.org
Message-ID: <handler.25018.D25018.166517636915745.ackdone <at> debbugs.gnu.org>
References: <87pmf34afr.fsf@HIDDEN> <87d1hl55ur.fsf@HIDDEN>
X-Gnu-PR-Message: closed 25018
X-Gnu-PR-Package: guix
Date: Fri, 07 Oct 2022 21:00:02 +0000
Content-Type: multipart/mixed; boundary="----------=_1665176402-15808-0"

This is a multi-part message in MIME format...

------------=_1665176402-15808-0
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=utf-8

Your message dated Fri, 07 Oct 2022 16:59:20 -0400
with message-id <87pmf34afr.fsf@HIDDEN>
and subject line Re: bug#25018: GC incorrectly removes the temporary root f=
ile of the calling process
has caused the debbugs.gnu.org bug report #25018,
regarding GC incorrectly removes the temporary root file of the calling pro=
cess
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@HIDDEN)


--=20
25018: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D25018
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems

------------=_1665176402-15808-0
Content-Type: message/rfc822
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

Received: (at submit) by debbugs.gnu.org; 24 Nov 2016 14:07:57 +0000
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");

--=-=-=--



------------=_1665176402-15808-0
Content-Type: message/rfc822
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

Received: (at 25018-done) by debbugs.gnu.org; 7 Oct 2022 20:59:29 +0000
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


------------=_1665176402-15808-0--


Message sent:


MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: ludo@HIDDEN (Ludovic =?UTF-8?Q?Court=C3=A8s?=)
Subject: bug#25018: closed (Re: bug#25018: GC incorrectly removes the
 temporary root file of the calling process)
Message-ID: <handler.25018.D25018.166517636915745.notifdone <at> debbugs.gnu.org>
References: <87pmf34afr.fsf@HIDDEN> <87d1hl55ur.fsf@HIDDEN>
X-Gnu-PR-Message: they-closed 25018
X-Gnu-PR-Package: guix
Reply-To: 25018 <at> debbugs.gnu.org
Date: Fri, 07 Oct 2022 21:00:03 +0000
Content-Type: multipart/mixed; boundary="----------=_1665176403-15808-1"

This is a multi-part message in MIME format...

------------=_1665176403-15808-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="utf-8"

Your bug report

#25018: GC incorrectly removes the temporary root file of the calling proce=
ss

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 25018 <at> debbugs.gnu.org.

--=20
25018: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D25018
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems

------------=_1665176403-15808-1
Content-Type: message/rfc822
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

Received: (at 25018-done) by debbugs.gnu.org; 7 Oct 2022 20:59:29 +0000
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


------------=_1665176403-15808-1
Content-Type: message/rfc822
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

Received: (at submit) by debbugs.gnu.org; 24 Nov 2016 14:07:57 +0000
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");

--=-=-=--



------------=_1665176403-15808-1--


Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#25018: GC incorrectly removes the temporary root file of the calling process
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Mon, 10 Oct 2022 08:02:01 +0000
Resent-Message-ID: <handler.25018.D25018.166538888923193 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 25018
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Cc: h.goebel@HIDDEN, Eelco Dolstra <eelco.dolstra@HIDDEN>, 25018-done <at> debbugs.gnu.org
Received: via spool by 25018-done <at> debbugs.gnu.org id=D25018.166538888923193
          (code D ref 25018); Mon, 10 Oct 2022 08:02:01 +0000
Received: (at 25018-done) by debbugs.gnu.org; 10 Oct 2022 08:01:29 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
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,?= 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-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.




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#25018: GC incorrectly removes the temporary root file of the calling process
Resent-From: Maxime Devos <maximedevos@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Mon, 10 Oct 2022 10:31:01 +0000
Resent-Message-ID: <handler.25018.D25018.166539780423294 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 25018
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Ludovic =?UTF-8?Q?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
Received: via spool by 25018-done <at> debbugs.gnu.org id=D25018.166539780423294
          (code D ref 25018); Mon, 10 Oct 2022 10:31:01 +0000
Received: (at 25018-done) by debbugs.gnu.org; 10 Oct 2022 10:30:04 +0000
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
Content-Language: en-US
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-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--




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#25018: GC incorrectly removes the temporary root file of the calling process
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Mon, 10 Oct 2022 14:54:01 +0000
Resent-Message-ID: <handler.25018.D25018.166541362528136 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 25018
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Maxime Devos <maximedevos@HIDDEN>
Cc: h.goebel@HIDDEN, Eelco Dolstra <eelco.dolstra@HIDDEN>, 25018-done <at> debbugs.gnu.org, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Received: via spool by 25018-done <at> debbugs.gnu.org id=D25018.166541362528136
          (code D ref 25018); Mon, 10 Oct 2022 14:54:01 +0000
Received: (at 25018-done) by debbugs.gnu.org; 10 Oct 2022 14:53:45 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
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,?= 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-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.




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#25018: Broken test suite
References: <87d1hl55ur.fsf@HIDDEN>
In-Reply-To: <87d1hl55ur.fsf@HIDDEN>
Resent-From: Ryan Sundberg <ryan@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Mon, 10 Oct 2022 17:25:02 +0000
Resent-Message-ID: <handler.25018.B25018.166542268519299 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 25018
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: 25018 <at> debbugs.gnu.org
Received: via spool by 25018-submit <at> debbugs.gnu.org id=B25018.166542268519299
          (code B ref 25018); Mon, 10 Oct 2022 17:25:02 +0000
Received: (at 25018) by debbugs.gnu.org; 10 Oct 2022 17:24:45 +0000
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
From: Ryan Sundberg <ryan@HIDDEN>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------45UUjUTN2FF0Ndb0hWdeL0l5"
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--




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#25018: GC incorrectly removes the temporary root file of the calling process
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Fri, 14 Oct 2022 20:31:01 +0000
Resent-Message-ID: <handler.25018.B25018.166577944527560 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 25018
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Cc: 25018 <at> debbugs.gnu.org
Received: via spool by 25018-submit <at> debbugs.gnu.org id=B25018.166577944527560
          (code B ref 25018); Fri, 14 Oct 2022 20:31:01 +0000
Received: (at 25018) by debbugs.gnu.org; 14 Oct 2022 20:30:45 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
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?="'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-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.




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#25018: GC incorrectly removes the temporary root file of the calling process
Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Mon, 17 Oct 2022 01:26:02 +0000
Resent-Message-ID: <handler.25018.B25018.166596995418691 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 25018
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Cc: 25018 <at> debbugs.gnu.org
Received: via spool by 25018-submit <at> debbugs.gnu.org id=B25018.166596995418691
          (code B ref 25018); Mon, 17 Oct 2022 01:26:02 +0000
Received: (at 25018) by debbugs.gnu.org; 17 Oct 2022 01:25:54 +0000
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>
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?="'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-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




Message received at fakecontrol@fakecontrolmessage:


Received: (at fakecontrol) by fakecontrolmessage;
To: internal_control <at> debbugs.gnu.org
From: Debbugs Internal Request <help-debbugs@HIDDEN>
Subject: Internal Control
Message-Id: Did not alter fixed versions and reopened.
Date: Mon, 17 Oct 2022 07:37:01 +0000
User-Agent: Fakemail v42.6.9

# This is a fake control message.
#
# The action:
# Did not alter fixed versions and reopened.
thanks
# This fakemail brought to you by your local debbugs
# administrator


Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#25018: GC incorrectly removes the temporary root file of the calling process
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Mon, 17 Oct 2022 08:52:02 +0000
Resent-Message-ID: <handler.25018.B25018.166599670518925 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 25018
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Cc: 25018 <at> debbugs.gnu.org
Received: via spool by 25018-submit <at> debbugs.gnu.org id=B25018.166599670518925
          (code B ref 25018); Mon, 17 Oct 2022 08:52:02 +0000
Received: (at 25018) by debbugs.gnu.org; 17 Oct 2022 08:51:45 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
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-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.




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#25018: GC incorrectly removes the temporary root file of the calling process
Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Tue, 18 Oct 2022 15:34:02 +0000
Resent-Message-ID: <handler.25018.B25018.166610722231214 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 25018
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Cc: 25018 <at> debbugs.gnu.org, GNU Debbugs <control <at> debbugs.gnu.org>
Received: via spool by 25018-submit <at> debbugs.gnu.org id=B25018.166610722231214
          (code B ref 25018); Tue, 18 Oct 2022 15:34:02 +0000
Received: (at 25018) by debbugs.gnu.org; 18 Oct 2022 15:33:42 +0000
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>
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?="'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-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





Last modified: Tue, 18 Oct 2022 15:45:01 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.