From mboxrd@z Thu Jan  1 00:00:00 1970
Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail
From: Okamsn via "Bug reports for GNU Emacs,
 the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
Newsgroups: gmane.emacs.bugs
Subject: bug#67611: [PATCH] Add a Pcase pattern `cl-lambda` equivalent to
 `cl-destructuring-bind`
Date: Sun, 03 Dec 2023 20:33:35 +0000
Message-ID: <277dd49a-e96d-4faf-a22e-aca952354a37@protonmail.com>
Reply-To: Okamsn <okamsn@protonmail.com>
Mime-Version: 1.0
Content-Type: multipart/mixed;
 boundary="b1_TJ92SD8NGM37oLvDrnzOJ5ksQWEvU5jEnoHfJPwkcjE"
Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214";
	logging-data="3338"; mail-complaints-to="usenet@ciao.gmane.io"
Cc: Stefan Monnier <monnier@iro.umontreal.ca>
To: 67611@debbugs.gnu.org
Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Dec 03 21:35:11 2023
Return-path: <bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org>
Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org
Original-Received: from lists.gnu.org ([209.51.188.17])
	by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
	(Exim 4.92)
	(envelope-from <bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org>)
	id 1r9tBF-0000cg-KO
	for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 03 Dec 2023 21:35:09 +0100
Original-Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <bug-gnu-emacs-bounces@gnu.org>)
	id 1r9tAz-0002MW-KH; Sun, 03 Dec 2023 15:34:53 -0500
Original-Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <Debian-debbugs@debbugs.gnu.org>)
 id 1r9tAy-0002ML-9J
 for bug-gnu-emacs@gnu.org; Sun, 03 Dec 2023 15:34:52 -0500
Original-Received: from debbugs.gnu.org ([2001:470:142:5::43])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <Debian-debbugs@debbugs.gnu.org>)
 id 1r9tAy-0002Gh-0F
 for bug-gnu-emacs@gnu.org; Sun, 03 Dec 2023 15:34:52 -0500
Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2)
 (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1r9tB7-0006dl-SR
 for bug-gnu-emacs@gnu.org; Sun, 03 Dec 2023 15:35:01 -0500
X-Loop: help-debbugs@gnu.org
Resent-From: Okamsn <okamsn@protonmail.com>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@gnu.org
Resent-Date: Sun, 03 Dec 2023 20:35:01 +0000
Resent-Message-ID: <handler.67611.B.170163566725476@debbugs.gnu.org>
Resent-Sender: help-debbugs@gnu.org
X-GNU-PR-Message: report 67611
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
X-Debbugs-Original-To: bug-gnu-emacs@gnu.org
Original-Received: via spool by submit@debbugs.gnu.org id=B.170163566725476
 (code B ref -1); Sun, 03 Dec 2023 20:35:01 +0000
Original-Received: (at submit) by debbugs.gnu.org; 3 Dec 2023 20:34:27 +0000
Original-Received: from localhost ([127.0.0.1]:32832 helo=debbugs.gnu.org)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>)
 id 1r9tAX-0006cm-Um
 for submit@debbugs.gnu.org; Sun, 03 Dec 2023 15:34:27 -0500
Original-Received: from lists.gnu.org ([2001:470:142::17]:48282)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <okamsn@protonmail.com>) id 1r9tAR-0006cU-Mg
 for submit@debbugs.gnu.org; Sun, 03 Dec 2023 15:34:24 -0500
Original-Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <okamsn@protonmail.com>)
 id 1r9tAB-0002Im-U4
 for bug-gnu-emacs@gnu.org; Sun, 03 Dec 2023 15:34:03 -0500
Original-Received: from mail-4316.protonmail.ch ([185.70.43.16])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <okamsn@protonmail.com>)
 id 1r9tA7-0002Br-Ie
 for bug-gnu-emacs@gnu.org; Sun, 03 Dec 2023 15:34:03 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1701635634; x=1701894834;
 bh=X2WCsbkau0mgG/FEVaIEzsg5CvdsVYkrsXlJq/+EPe8=;
 h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
 b=OoV+beY8BBviqD5GPi+mS4l3ylwSkcFkJzuTC8Io7kk33DxSuzeamd4NVwMXL3jIM
 y03zRBmg6i+6Am+5vDnZaxdlgk7dMEVw+O/iarH+/LQzAJEIFWoTnOYef4mblKm5FJ
 9U6RWs5qkV8+gt6QO5LrcAG6mdeq7gE9rzkZKFq9GXOgKUagWnhY26EIUVzH5u3fko
 NwME0ySiq4weGNMhs2KVzLgyM8uoZC2qLXdwOPqdxvdIN9hPs+W+wuH2IU3wD7hnGz
 jt/WvOz/RSLoJ/dG5ZZhx8k9/HTQX8RWwwODzTekpJVRkO+HXRMAQPdsP48yw1HclD
 RhOyPfXOpjuZg==
Feedback-ID: 25935600:user:proton
Received-SPF: pass client-ip=185.70.43.16; envelope-from=okamsn@protonmail.com;
 helo=mail-4316.protonmail.ch
X-Spam_score_int: -30
X-Spam_score: -3.1
X-Spam_bar: ---
X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, 
 RCVD_IN_MSPIKE_H5=-1, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-BeenThere: debbugs-submit@debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
X-BeenThere: bug-gnu-emacs@gnu.org
List-Id: "Bug reports for GNU Emacs,
 the Swiss army knife of text editors" <bug-gnu-emacs.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/bug-gnu-emacs>,
 <mailto:bug-gnu-emacs-request@gnu.org?subject=unsubscribe>
List-Archive: <https://lists.gnu.org/archive/html/bug-gnu-emacs>
List-Post: <mailto:bug-gnu-emacs@gnu.org>
List-Help: <mailto:bug-gnu-emacs-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/bug-gnu-emacs>,
 <mailto:bug-gnu-emacs-request@gnu.org?subject=subscribe>
Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org
Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org
Xref: news.gmane.io gmane.emacs.bugs:275451
Archived-At: <http://permalink.gmane.org/gmane.emacs.bugs/275451>

This is a multi-part message in MIME format.

--b1_TJ92SD8NGM37oLvDrnzOJ5ksQWEvU5jEnoHfJPwkcjE
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

The attached patch adds the pattern `cl-lambda` for Pcase, which works=20
like `cl-destructuring-bind`. There are two differences with the lambda=20
lists:

1. It does not support `&environment`
2. Without `&allow-other-keys` or `:allow-other-keys t`, the pattern=20
will fail to match if their are unmatched keys in EXPVAL, but it does=20
not throw an error.

The variable that would be bound in the lambda list can be Pcase=20
patterns themselves, with two exceptions:

1. Using a sub-pattern as the cdr of a dotted list, like "(cl-lambda (a=20
. `(,b . ,c))" doesn't work, since the pattern won't always look like a=20
dotted list.
2. For constructs that use a sub-list to provide additional values, such=20
as `&optional`, `&key`, and `&aux`, the sub-pattern only works inside=20
the sub-list.  For example, one could do "(cl-lambda (&optional (`(,a=20
,b))" but not "(cl-lambda (&optional `(,a ,b)))".

The pattern is useful when one wants to combine the features of `pcase`=20
and `cl-destructuring-bind`, such combining the optional values with the=20
`pred` or `guard` patterns.

Thank you.
--b1_TJ92SD8NGM37oLvDrnzOJ5ksQWEvU5jEnoHfJPwkcjE
Content-Type: text/x-patch; charset=UTF-8; name=0001-Add-the-Pcase-pattern-cl-lambda-for-matching-lambda-.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=0001-Add-the-Pcase-pattern-cl-lambda-for-matching-lambda-.patch

RnJvbSBhMTZiZjFkZWQ1ODdiN2NjOTc0ZGFmYTVmNzI0MjdmM2ExZjZjNWZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBFYXJsIEh5YXR0IDxva2Ftc25AcHJvdG9ubWFpbC5jb20+CkRh
dGU6IFNhdCwgMjUgTm92IDIwMjMgMTM6MDA6MDMgLTA1MDAKU3ViamVjdDogW1BBVENIXSBBZGQg
dGhlIFBjYXNlIHBhdHRlcm4gYGNsLWxhbWJkYScgZm9yIG1hdGNoaW5nIGxhbWJkYSBsaXN0LgoK
VGhpcyBwYXR0ZXJuIG1hdGNoZXMgZnVuY3Rpb24gYXJndW1lbnQgbGlzdHMgYXMgZGVzY3JpYmVk
IGluIHRoZSBJbmZvCm5vZGUgYChjbClBcmd1bWVudCBMaXN0cycuCgoqIGxpc3AvZW1hY3MtbGlz
cC9jbC1tYWNzLmVsIChjbC1sYW1iZGEtLXBjYXNlLW1hY3JvZXhwYW5kZXIpCihjbC1sYW1iZGEs
IGNsLS1wY2FzZS1sYW1iZGEtbGlzdC1nZXQtdmFyLWdyb3VwcykKKGNsLS1wY2FzZS1jbC1sYW1i
ZGEtcG9zaXRpb25hbC1wYXR0ZXJuKQooY2wtLXBjYXNlLWNsLWxhbWJkYS1wbGlzdC1rZXlzKQoo
Y2wtLXBjYXNlLWNsLWxhbWJkYS0ma2V5LXBhdHRlcm4pCihjbC0tcGNhc2UtY2wtbGFtYmRhLSZh
dXgtcGF0dGVybik6CkFkZCBwYXR0ZXJuIGFuZCBzdXBwb3J0aW5nIGZ1bmN0aW9ucy4KCiogdGVz
dC9saXNwL2VtYWNzLWxpc3AvcGNhc2UtdGVzdHMuZWw6CihwY2FzZS10ZXN0cy1jbC1sYW1iZGEt
Jndob2xlLXNob3VsZC1lcnJvcikKKHBjYXNlLXRlc3RzLWNsLWxhbWJkYS0md2hvbGUpCihwY2Fz
ZS10ZXN0cy1jbC1sYW1iZGEtcG9zLCBwY2FzZS10ZXN0cy1jbC1sYW1iZGEtcG9zLXN1Yi1wYXR0
ZXJucykKKHBjYXNlLXRlc3RzLWNsLWxhbWJkYS0mb3B0aW9uYWwtc2hvdWxkLWVycm9yKQoocGNh
c2UtdGVzdHMtY2wtbGFtYmRhLSZvcHRpb25hbCkKKHBjYXNlLXRlc3RzLWNsLWxhbWJkYS0mb3B0
aW9uYWwtc3ViLXBhdHRlcm5zKQoocGNhc2UtdGVzdHMtY2wtbGFtYmRhLSZyZXN0LXNob3VsZC1l
cnJvcikKKHBjYXNlLXRlc3RzLWNsLWxhbWJkYS0mcmVzdC1ub25saXN0LWNkcikKKHBjYXNlLXRl
c3RzLWNsLWxhbWJkYS0mcmVzdC13aXRoLSZ3aG9sZSkKKHBjYXNlLXRlc3RzLWNsLWxhbWJkYS0m
cmVzdC1vbmx5KQoocGNhc2UtdGVzdHMtY2wtbGFtYmRhLSZyZXN0LWFmdGVyLSZvcHRpb25hbCkK
KHBjYXNlLXRlc3RzLWNsLWxhbWJkYS0mcmVzdC1zdWItcGF0dGVybnMpCihwY2FzZS10ZXN0cy1j
bC1sYW1iZGEtJmtleS1zaG91bGQtZXJyb3IpCihwY2FzZS10ZXN0cy1jbC1sYW1iZGEtJmtleS1l
eGFjdCkKKHBjYXNlLXRlc3RzLWNsLWxhbWJkYS0ma2V5LXBlcm1pc3NpdmUpCihwY2FzZS10ZXN0
cy1jbC1sYW1iZGEtJmtleS1ub3QtZmlyc3QpCihwY2FzZS10ZXN0cy1jbC1sYW1iZGEtJmtleS1m
dWxsLWZvcm0pCihwY2FzZS10ZXN0cy1jbC1sYW1iZGEtJmtleS1zdWItcGF0dGVybnMpCihwY2Fz
ZS10ZXN0cy1jbC1sYW1iZGEtJmF1eC1zaG91bGQtZXJyb3IpCihwY2FzZS10ZXN0cy1jbC1sYW1i
ZGEtJmF1eCkKKHBjYXNlLXRlc3RzLWNsLWxhbWJkYS0mYXV4LXN1Yi1wYXR0ZXJucykKKHBjYXNl
LXRlc3RzLWNsLWxhbWJkYS1hbGwpOgpBZGQgdGVzdHMuCi0tLQogbGlzcC9lbWFjcy1saXNwL2Ns
LW1hY3MuZWwgICAgICAgICAgfCAzMjUgKysrKysrKysrKysrKysrKysrCiB0ZXN0L2xpc3AvZW1h
Y3MtbGlzcC9wY2FzZS10ZXN0cy5lbCB8IDUxNSArKysrKysrKysrKysrKysrKysrKysrKysrKysr
CiAyIGZpbGVzIGNoYW5nZWQsIDg0MCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGlzcC9l
bWFjcy1saXNwL2NsLW1hY3MuZWwgYi9saXNwL2VtYWNzLWxpc3AvY2wtbWFjcy5lbAppbmRleCA3
YzIwN2QzNzJmYy4uMDBjMTBmNjQ1OGYgMTAwNjQ0Ci0tLSBhL2xpc3AvZW1hY3MtbGlzcC9jbC1t
YWNzLmVsCisrKyBiL2xpc3AvZW1hY3MtbGlzcC9jbC1tYWNzLmVsCkBAIC0zODI1LDYgKzM4MjUs
MzMxIEBAIGNsLXR5cGUKIFRZUEUgaXMgYSB0eXBlIGRlc2NyaXB0b3IgYXMgYWNjZXB0ZWQgYnkg
YGNsLXR5cGVwJywgd2hpY2ggc2VlLiIKICAgYChwcmVkIChwY2FzZS0tZmxpcCBjbC10eXBlcCAn
LHR5cGUpKSkKIAorOzs7IFBjYXNlIGxhbWJkYS1saXN0IHBhdHRlcm4KKworOzsgVGhpcyBwYXR0
ZXJuIGlzIGxpa2UgYGNsLWRlc3RydWN0dXJpbmctYmluZCcsIGJ1dCB3aXRoIGBwY2FzZScuICBX
ZQorOzsgY2FuJ3QgdXNlIGBjbC0tZG8tYXJnbGlzdCcgZm9yIHRoaXMsIGJlY2F1c2UgYGNsLS1k
by1hcmdsaXN0JyB1c2VzCis7OyBgcG9wJyB0byBtb2RpZnkgZWFybGllciB2YXJpYWJsZXMgd2hp
bGUgc2V0dGluZyBsYXRlciBvbmVzLCB3aGljaAorOzsgZG9lc24ndCBzZWVtIHRvIHdvcmsgd2l0
aCBgcGNhc2UnLgorCisoZGVmY29uc3QgY2wtLXBjYXNlLWxhbWJkYS1saXN0LWNvbnN0cnVjdHMK
KyAgJygmd2hvbGUgJm9wdGlvbmFsICZyZXN0ICZrZXkgJmFsbG93LW90aGVyLWtleXMgJmF1eCkK
KyAgIlN5bWJvbHMgdGhhdCBjaGFuZ2UgaG93IHRoZSBmb2xsb3dpbmcgZWxlbWVudHMgYXJlIHVu
ZGVyc3Rvb2QuIikKKworKGRlZmluZS1lcnJvciAnY2wtLXBjYXNlLWxhbWJkYS1saXN0LWJhZC1s
YW1iZGEtbGlzdAorICAgICAgICAgICAgICAiRXJyb3IgaW4gYGNsLWxhbWJkYScgcGF0dGVybi4i
KQorCisoZGVmdW4gY2wtLXBjYXNlLWNsLWxhbWJkYS12YXItZ3JvdXBzIChsYW1iZGEtbGlzdCkK
KyAgIlJldHVybiB0aGUgYWxpc3Qgb2YgdmFyaWFibGUgZ3JvdXBzIGluIExBTUJEQS1MSVNULgor
CitMaXN0cyBhcmUgb2YgdGhlIGZvcm0KK2AoWyZ3aG9sZSBXSE9MRS1WQVJdIFtQT1MtVkFSU10g
WyZvcHRpb25hbCBPUFQtVkFSU10gWyZyZXN0IFJFU1QtVkFSXQorWyZrZXkgS0VZLVZBUlNdIFsm
YXV4IEFVWC1WQVJTXSknLiIKKyAgKGxldCAoKHdob2xlLXZhcikgKHByb2Nlc3Npbmctd2hvbGUp
CisgICAgICAgIChwb3MtdmFyKQorICAgICAgICAob3B0LXZhcikgKHByb2Nlc3Npbmctb3B0cykK
KyAgICAgICAgKHJlc3QtdmFyKSAocHJvY2Vzc2luZy1yZXN0KSAoZG90dGVkLXJlc3QtdmFyKQor
ICAgICAgICAoa2V5LXZhcikgKHByb2Nlc3Npbmcta2V5cykgKGFsbG93LW90aGVyLWtleXMpCisg
ICAgICAgIChhdXgtdmFyKSAocHJvY2Vzc2luZy1hdXhzKQorICAgICAgICAocmVtYWluaW5nLWxp
c3QgKGNsLWNvcHktbGlzdCBsYW1iZGEtbGlzdCkpKQorCisgICAgKHdoZW4gKG5vdCAocHJvcGVy
LWxpc3QtcCByZW1haW5pbmctbGlzdCkpCisgICAgICAoY2wtc2hpZnRmIGRvdHRlZC1yZXN0LXZh
cgorICAgICAgICAgICAgICAgICAoY2RyIChsYXN0IHJlbWFpbmluZy1saXN0KSkKKyAgICAgICAg
ICAgICAgICAgbmlsKSkKKworICAgIChjbC1mbGV0ICgobWlzc2luZy1hZnRlciAoY2RyKSAob3Ig
KG51bGwgY2RyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbXEg
KGNhciBjZHIpIGNsLS1wY2FzZS1sYW1iZGEtbGlzdC1jb25zdHJ1Y3RzKSkpCisgICAgICAgICAg
ICAgIChzdG9wLXByb2Nlc3NpbmcgKCkgKHNldHEgcHJvY2Vzc2luZy13aG9sZSBuaWwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzaW5nLW9wdHMgbmlsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2luZy1yZXN0IG5p
bAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Npbmcta2V5
cyBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzaW5n
LWF1eHMgbmlsKSkpCisgICAgICAoY2wtbG9vcAorICAgICAgIGZvciAoZmlyc3QgLiByZXN0KSBv
biBsYW1iZGEtbGlzdAorICAgICAgIGRvCisgICAgICAgKHBjYXNlIGZpcnN0CisgICAgICAgICAo
JyZ3aG9sZQorICAgICAgICAgIChpZiAob3IgKG1pc3NpbmctYWZ0ZXIgcmVzdCkKKyAgICAgICAg
ICAgICAgICAgIHdob2xlLXZhciBwb3MtdmFyIG9wdC12YXIKKyAgICAgICAgICAgICAgICAgIHJl
c3QtdmFyIGtleS12YXIgYWxsb3ctb3RoZXIta2V5cyBhdXgtdmFyKQorICAgICAgICAgICAgICAo
c2lnbmFsICdjbC0tcGNhc2UtbGFtYmRhLWxpc3QtYmFkLWxhbWJkYS1saXN0IChsaXN0IGxhbWJk
YS1saXN0KSkKKyAgICAgICAgICAgIChzdG9wLXByb2Nlc3NpbmcpCisgICAgICAgICAgICAoc2V0
cSBwcm9jZXNzaW5nLXdob2xlIHQpKSkKKworICAgICAgICAgKCcmb3B0aW9uYWwKKyAgICAgICAg
ICAoaWYgKG9yIChtaXNzaW5nLWFmdGVyIHJlc3QpCisgICAgICAgICAgICAgICAgICBvcHQtdmFy
IHJlc3QtdmFyIGtleS12YXIgYWxsb3ctb3RoZXIta2V5cyBhdXgtdmFyKQorICAgICAgICAgICAg
ICAoc2lnbmFsICdjbC0tcGNhc2UtbGFtYmRhLWxpc3QtYmFkLWxhbWJkYS1saXN0CisgICAgICAg
ICAgICAgICAgICAgICAgKGxpc3QgbGFtYmRhLWxpc3QpKQorICAgICAgICAgICAgKHN0b3AtcHJv
Y2Vzc2luZykKKyAgICAgICAgICAgIChzZXRxIHByb2Nlc3Npbmctb3B0cyB0KSkpCisKKyAgICAg
ICAgICgob3IgJyZyZXN0ICcmYm9keSkKKyAgICAgICAgICAoaWYgKG9yIChtaXNzaW5nLWFmdGVy
IHJlc3QpCisgICAgICAgICAgICAgICAgICByZXN0LXZhciBrZXktdmFyIGFsbG93LW90aGVyLWtl
eXMgYXV4LXZhcgorICAgICAgICAgICAgICAgICAgZG90dGVkLXJlc3QtdmFyKQorICAgICAgICAg
ICAgICAoc2lnbmFsICdjbC0tcGNhc2UtbGFtYmRhLWxpc3QtYmFkLWxhbWJkYS1saXN0CisgICAg
ICAgICAgICAgICAgICAgICAgKGxpc3QgbGFtYmRhLWxpc3QpKQorICAgICAgICAgICAgKHN0b3At
cHJvY2Vzc2luZykKKyAgICAgICAgICAgIChzZXRxIHByb2Nlc3NpbmctcmVzdCB0KSkpCisKKyAg
ICAgICAgICgnJmtleQorICAgICAgICAgIChpZiAob3IgKG1pc3NpbmctYWZ0ZXIgcmVzdCkKKyAg
ICAgICAgICAgICAgICAgIGtleS12YXIgYWxsb3ctb3RoZXIta2V5cyBhdXgtdmFyCisgICAgICAg
ICAgICAgICAgICBkb3R0ZWQtcmVzdC12YXIpCisgICAgICAgICAgICAgIChzaWduYWwgJ2NsLS1w
Y2FzZS1sYW1iZGEtbGlzdC1iYWQtbGFtYmRhLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAo
bGlzdCBsYW1iZGEtbGlzdCkpCisgICAgICAgICAgICAoc3RvcC1wcm9jZXNzaW5nKQorICAgICAg
ICAgICAgKHNldHEgcHJvY2Vzc2luZy1rZXlzIHQpKSkKKworICAgICAgICAgKCcmYWxsb3ctb3Ro
ZXIta2V5cworICAgICAgICAgIChpZiAob3IgKG5vdCBwcm9jZXNzaW5nLWtleXMpCisgICAgICAg
ICAgICAgICAgICBhbGxvdy1vdGhlci1rZXlzCisgICAgICAgICAgICAgICAgICBkb3R0ZWQtcmVz
dC12YXIpCisgICAgICAgICAgICAgIChzaWduYWwgJ2NsLS1wY2FzZS1sYW1iZGEtbGlzdC1iYWQt
bGFtYmRhLWxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAobGlzdCBsYW1iZGEtbGlzdCkpCisg
ICAgICAgICAgICAoc3RvcC1wcm9jZXNzaW5nKQorICAgICAgICAgICAgKHNldHEgYWxsb3ctb3Ro
ZXIta2V5cyB0KSkpCisKKyAgICAgICAgICgnJmF1eAorICAgICAgICAgIChpZiAob3IgKG1pc3Np
bmctYWZ0ZXIgcmVzdCkKKyAgICAgICAgICAgICAgICAgIGF1eC12YXIKKyAgICAgICAgICAgICAg
ICAgIGRvdHRlZC1yZXN0LXZhcikKKyAgICAgICAgICAgICAgKHNpZ25hbCAnY2wtLXBjYXNlLWxh
bWJkYS1saXN0LWJhZC1sYW1iZGEtbGlzdAorICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGxh
bWJkYS1saXN0KSkKKyAgICAgICAgICAgIChzdG9wLXByb2Nlc3NpbmcpCisgICAgICAgICAgICAo
c2V0cSBwcm9jZXNzaW5nLWF1eHMgdCkpKQorCisgICAgICAgICAoKGd1YXJkIHByb2Nlc3Npbmct
d2hvbGUpCisgICAgICAgICAgKHNldHEgd2hvbGUtdmFyIGZpcnN0CisgICAgICAgICAgICAgICAg
cHJvY2Vzc2luZy13aG9sZSBuaWwpKQorCisgICAgICAgICAoKGd1YXJkIHByb2Nlc3NpbmctcmVz
dCkKKyAgICAgICAgICAoc2V0cSByZXN0LXZhciBmaXJzdAorICAgICAgICAgICAgICAgIHByb2Nl
c3NpbmctcmVzdCBuaWwpKQorCisgICAgICAgICAoKGd1YXJkIHByb2Nlc3Npbmctb3B0cykKKyAg
ICAgICAgICAocHVzaCBmaXJzdCBvcHQtdmFyKSkKKworICAgICAgICAgKChndWFyZCBwcm9jZXNz
aW5nLWtleXMpCisgICAgICAgICAgKHB1c2ggZmlyc3Qga2V5LXZhcikpCisKKyAgICAgICAgICgo
Z3VhcmQgcHJvY2Vzc2luZy1hdXhzKQorICAgICAgICAgIChwdXNoIGZpcnN0IGF1eC12YXIpKQor
CisgICAgICAgICAoJyZlbnZpcm9ubWVudAorICAgICAgICAgIChzaWduYWwgJ2NsLS1wY2FzZS1s
YW1iZGEtbGlzdC1iYWQtbGFtYmRhLWxpc3QKKyAgICAgICAgICAgICAgICAgIChsaXN0IGxhbWJk
YS1saXN0KSkpCisKKyAgICAgICAgIChfCisgICAgICAgICAgKGlmIChvciBvcHQtdmFyIHJlc3Qt
dmFyIGtleS12YXIgYXV4LXZhcgorICAgICAgICAgICAgICAgICAgYWxsb3ctb3RoZXIta2V5cykK
KyAgICAgICAgICAgICAgKHNpZ25hbCAnY2wtLXBjYXNlLWxhbWJkYS1saXN0LWJhZC1sYW1iZGEt
bGlzdAorICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGxhbWJkYS1saXN0KSkKKyAgICAgICAg
ICAgIChwdXNoIGZpcnN0IHBvcy12YXIpKSkpKSkKKworICAgIGAoKHdob2xlIC4gLHdob2xlLXZh
cikKKyAgICAgIChwb3MgLiAsKG5yZXZlcnNlIHBvcy12YXIpKQorICAgICAgKG9wdCAuICwobnJl
dmVyc2Ugb3B0LXZhcikpCisgICAgICAocmVzdCAuICwob3IgZG90dGVkLXJlc3QtdmFyIHJlc3Qt
dmFyKSkKKyAgICAgIChrZXkgLiAsKG5yZXZlcnNlIGtleS12YXIpKQorICAgICAgKGFsbG93LW90
aGVyLWtleXMgLiAsYWxsb3ctb3RoZXIta2V5cykKKyAgICAgIChhdXggLiAsKG5yZXZlcnNlIGF1
eC12YXIpKSkpKQorCisoZGVmdW4gY2wtLXBjYXNlLWNsLWxhbWJkYS1wb3NpdGlvbmFsLXBhdHRl
cm4gKHBvcy12YXJzIG9wdC12YXJzIHJlc3QtdmFyIGtleS12YXJzKQorICAiQnVpbGQgYSBwYXR0
ZXJuIGZvciB0aGUgcG9zaXRpb25hbCwgYCZvcHRpb25hbCcsIGFuZCBgJnJlc3QnIHZhcmlhYmxl
cy4KKworUE9TLVZBUlMgaXMgdGhlIGxpc3Qgb2YgdGhlIHBvc2l0aW9uYWwgdmFyaWFibGVzLiAg
T1BULVZBUlMgaXMgdGhlIGxpc3Qgb2YKK3RoZSBvcHRpb25hbCB2YXJpYWJsZXMuICBSRVNULVZB
UiBpcyB0aGUgYCZyZXN0JyB2YXJpYWJsZS4iCisgIDs7IEEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0
aGUgYmFjay1xdW90ZSBwYXR0ZXJuIHRvIGJldHRlciB3b3JrIHdpdGgKKyAgOzsgb3B0aW9uYWwg
dmFsdWVzLgorICAoY29uZAorICAgKHBvcy12YXJzIGAoYW5kIChwcmVkIGNvbnNwKQorICAgICAg
ICAgICAgICAgICAgIChhcHAgY2FyLXNhZmUgLChjYXIgcG9zLXZhcnMpKQorICAgICAgICAgICAg
ICAgICAgIChhcHAgY2RyLXNhZmUgLChjbC0tcGNhc2UtY2wtbGFtYmRhLXBvc2l0aW9uYWwtcGF0
dGVybgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIHBvcy12YXJzKSBv
cHQtdmFycworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0LXZhciBrZXkt
dmFycykpKSkKKyAgIChvcHQtdmFycyAocGNhc2UtbGV0ICgoKG9yIGAoLHZhciAsZGVmYXVsdCAs
c3VwcGxpZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKCx2YXIgLGRlZmF1bHQp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKCx2YXIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXIgb3B0LXZh
cnMpKSkKKyAgICAgICAgICAgICAgIGAoYW5kIChwcmVkIGxpc3RwKQorICAgICAgICAgICAgICAg
ICAgICAgKGFwcCBjYXItc2FmZSAob3IgKGFuZCAocHJlZCBudWxsKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsQCh3aGVuIHN1cHBsaWVkIGAoKGxldCAsc3Vw
cGxpZWQgbmlsKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICxAKHdoZW4gZGVmYXVsdCBgKChsZXQgLHZhciAsZGVmYXVsdCkpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICwoaWYgc3VwcGxpZWQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYChhbmQgKGxldCAsc3VwcGxpZWQgdCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLHZhcikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcikpKQorICAgICAgICAgICAg
ICAgICAgICAgKGFwcCBjZHItc2FmZSAsKGNsLS1wY2FzZS1jbC1sYW1iZGEtcG9zaXRpb25hbC1w
YXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsIChjZHIgb3B0
LXZhcnMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdC12YXIga2V5
LXZhcnMpKSkpKQorICAgKHJlc3QtdmFyIHJlc3QtdmFyKQorICAgOzsgYHBjYXNlJyBhbGxvd3Mg
YCgsYSAsYikgdG8gbWF0Y2ggKDEgMiAzKSwgc28gd2UgbmVlZCB0byBtYWtlCisgICA7OyBzdXJl
IHRoZXJlIGFyZW4ndCBtb3JlIHZhbHVlcyBsZWZ0LiAgSG93ZXZlciwgaWYgd2UgYXJlIHVzaW5n
CisgICA7OyBgJmtleScsIHRoZW4gd2UgYWxsb3cgbW9yZSB2YWx1ZXMuCisgICAoa2V5LXZhcnMg
J18pCisgICAodCAnKHByZWQgbnVsbCkpKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBjbC0t
cGNhc2UtY2wtbGFtYmRhLXBsaXN0LWtleXMgKGxpc3QpCisgICJHZXQgZXZlcnkgb3RoZXIgZWxl
bWVudCBpbiBMSVNULCB0byBnZXQgdGhlIGtleXMgaW4gYSBwcm9wZXJ0eSBsaXN0LiIKKyAgKGNs
LWxvb3AgZm9yIGtleSBpbiBsaXN0IGJ5ICMnY2RkciBjb2xsZWN0IGtleSkpCisKKyhkZWZ1biBj
bC0tcGNhc2UtY2wtbGFtYmRhLSZrZXktcGF0dGVybiAoa2V5LXZhcnMgYWxsb3ctb3RoZXIta2V5
cyBwbGlzdC12YXIpCisgICJCdWlsZCBhIGBwY2FzZScgcGF0dGVybiBmb3IgdGhlIGAma2V5JyB2
YXJpYWJsZXMuCisKK0tFWS1WQVJTIGFyZSB0aGUgZm9ybXMgb2YgdGhlIGtleSB2YXJpYWJsZXMu
ICBBTExPVy1PVEhFUi1LRVlTIGlzCit3aGV0aGVyIGAmYWxsb3ctb3RoZXIta2V5cycgd2FzIHVz
ZWQuICBQTElTVC1WQVIgaXMgdGhlIHZhcmlhYmxlCitob2xkaW5nIHRoZSBwcm9wZXJ0eSBsaXN0
LiIKKyAgKGxldCogKChzcGVjaWZpZWQta2V5cyBuaWwpCisgICAgICAgICAocGF0LWxpc3QKKyAg
ICAgICAgICAoY2wtbG9vcAorICAgICAgICAgICBmb3IgYmluZCBpbiBrZXktdmFycworICAgICAg
ICAgICBhcHBlbmQgKHBjYXNlLWxldCogKCgob3IgKG9yIGAoKCxrZXkgLHZhcikgLGRlZmF1bHQg
LHN1cHBsaWVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAoKCxr
ZXkgLHZhcikgLGRlZmF1bHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYCgoLGtleSAsdmFyKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
YW5kIChvciBgKCx2YXIgLGRlZmF1bHQgLHN1cHBsaWVkKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYCgsdmFyICxkZWZhdWx0KQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCgsdmFyKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAocHJlZCBzeW1ib2xwKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBTdHJpcCBhIGxlYWRpbmcgdW5kZXJz
Y29yZSwgc2luY2UgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ozsgb25seSBtZWFucyB0aGF0IHRoaXMgYXJndW1lbnQgaXMKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOzsgdW51c2VkLCBidXQgc2hvdWxkbid0IGFmZmVjdCB0aGUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsga2V5J3MgbmFtZSAo
YnVnIzEyMzY3KS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxl
dCBrZXkgKGludGVybgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGZvcm1hdCAiOiVzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgobmFtZSAoc3ltYm9sLW5hbWUgdmFyKSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGlmIChlcSA/XyAoYXJlZiBuYW1lIDApKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIG5hbWUg
MSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5hbWUpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJp
bmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0LWtleSAobWFjcm9leHAt
Y29uc3QtcCBrZXkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1c2VkLWtleSAo
aWYgY29uc3Qta2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2Vuc3lt
IChmb3JtYXQgInBsaXN0LWtleS0lcyIgdmFyKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgKHVu
bGVzcyBhbGxvdy1vdGhlci1rZXlzCisgICAgICAgICAgICAgICAgICAgICAgKHB1c2gga2V5IHNw
ZWNpZmllZC1rZXlzKSkKKyAgICAgICAgICAgICAgICAgICAgYCgsQCh1bmxlc3MgKGVxdWFsIHVz
ZWQta2V5IGtleSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYCgobGV0ICx1c2VkLWtleSAs
a2V5KSkpCisgICAgICAgICAgICAgICAgICAgICAgLEAoY29uZAorICAgICAgICAgICAgICAgICAg
ICAgICAgIChzdXBwbGllZAorICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoa2V5LWZv
dW5kIChnZW5zeW0gImtleS1mb3VuZCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBg
KChsZXQgLGtleS1mb3VuZCAocGxpc3QtbWVtYmVyICxwbGlzdC12YXIgLHVzZWQta2V5CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj
J2VxdWFsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvciAoYW5kIChndWFyZCAs
a2V5LWZvdW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAs
dmFyIChjYWRyICxrZXktZm91bmQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxldCAsc3VwcGxpZWQgdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGFuZCAobGV0ICx2YXIgLGRlZmF1bHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAobGV0ICxzdXBwbGllZCBuaWwpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAoZGVmYXVsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoa2V5LWZvdW5k
IChnZW5zeW0gImtleS1mb3VuZCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKChs
ZXQgLHZhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYtbGV0ICgoLGtleS1m
b3VuZCAocGxpc3QtbWVtYmVyICxwbGlzdC12YXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsdXNlZC1rZXkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjJ2VxdWFsKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2wt
c2Vjb25kICxrZXktZm91bmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLGRl
ZmF1bHQpKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAg
ICAgICAgICAgIGAoKGxldCAsdmFyICAocGxpc3QtZ2V0ICxwbGlzdC12YXIgLHVzZWQta2V5ICMn
ZXF1YWwpKSkpKSkpKSkpCisgICAgYChhbmQgLEAodW5sZXNzIGFsbG93LW90aGVyLWtleXMKKyAg
ICAgICAgICAgICAgYCgoZ3VhcmQgKG9yIChudWxsIChjbC1zZXQtZGlmZmVyZW5jZSAoY2wtLXBj
YXNlLWNsLWxhbWJkYS1wbGlzdC1rZXlzICxwbGlzdC12YXIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgLEBzcGVjaWZpZWQta2V5cykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dGVz
dCAjJ2VxdWFsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgLHBsaXN0
LXZhciA6YWxsb3ctb3RoZXIta2V5cykpKSkpCisgICAgICAgICAgLEBwYXQtbGlzdCkpKQorCiso
ZGVmdW4gY2wtLXBjYXNlLWNsLWxhbWJkYS0mYXV4LXBhdHRlcm4gKGF1eC12YXJzKQorICAiQnVp
bGQgYHBjYXNlJyBwYXR0ZXJuIGZvciBgJmF1eCcgdmFyaWFibGVzLgorCitBVVgtVkFSUyBpcyB0
aGUgbGlzdCBvZiBiaW5kaW5ncy4iCisgIGAoYW5kICxAKGNsLWxvb3AgZm9yIGJpbmQgaW4gYXV4
LXZhcnMKKyAgICAgICAgICAgICAgICAgICBjb2xsZWN0IChwY2FzZS1sZXQgKCgob3IgYCgsdmFy
ICx2YWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAoLHZh
cikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmQpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBgKGxldCAsdmFyICx2YWwpKSkpKQorCis7OzsjIyNhdXRvbG9hZAor
KHBjYXNlLWRlZm1hY3JvIGNsLWxhbWJkYSAobGFtYmRhLWxpc3QpCisgICJNYXRjaCBhIENMIGxh
bWJkYSBsaXN0LiAgU2VlIHRoZSBJbmZvIG5vZGUgYChjbClBcmd1bWVudCBMaXN0cycuCisKK1Ro
aXMgcGF0dGVybiBkb2VzIG5vdCBzdXBwb3J0IGAmZW52aXJvbm1lbnQnLgorCitgJmtleScgd2ls
bCBmYWlsIHRvIG1hdGNoIGlmIHRoZXJlIGFyZSBtb3JlIGtleXMgaW4gdGhlIHBsaXN0Cit0aGVu
IHNwZWNpZmllZCwgdW5sZXNzIGAmYWxsb3ctb3RoZXIta2V5cycgaXMgZ2l2ZW4gb3IgdW5sZXNz
IHRoZQorcGxpc3QgYXNzb2NpYXRlcyB0aGUga2V5IGA6YWxsb3ctb3RoZXIta2V5cycgd2l0aCBh
IG5vbi1uaWwKK3ZhbHVlLiAgVW5saWtlIGBjbC1kZXN0cnVjdHVyaW5nLWJpbmQnLCB0aGlzIHBh
dHRlcm4gZG9lcyBub3QKK3NpZ25hbCBhbiBlcnJvciBpZiB0aGVyZSBhcmUgdW5tYXRjaGVkIGtl
eXMgaW4gdGhlIHBsaXN0LgorCitVbmxpa2UgdGhlIGJhY2stcXVvdGUgcGF0dGVybiwgdGhlIHBh
dHRlcm4gd2lsbCBmYWlsIHRvIG1hdGNoIGlmIHRoZQorbm9uLW9wdGlvbmFsIHBhcnQgb2YgTEFN
QkRBLUxJU1QgaXMgc2hvcnRlciB0aGFuIEVYUFZBTC4KKworRm9yIHRoaXMgYHBjYXNlJyBwYXR0
ZXJuLCB0aGUgdmFyaWFibGVzIGluIExBTUJEQS1MSVNUIGNhbgordGhlbXNlbHZlcyBiZSBgcGNh
c2UnIHBhdHRlcm5zLCBpbnN0ZWFkIG9mIGp1c3Qgc3ltYm9scyBhcyBpbiBhCitub3JtYWwgQ0wg
bGFtYmRhIGxpc3QuICBIb3dldmVyLCBsYW1iZGEtbGlzdCBjb25zdHJ1Y3RzIGxpa2UKK2Amb3B0
aW9uYWwnLCBgJmtleScsIGFuZCBgJmF1eCcgdXNlIHN1Yi1saXN0cyB0byBzcGVjaWZ5IGRlZmF1
bHQKK3ZhbHVlcyBhbmQgb3RoZXIgZmVhdHVyZXMuICBGb3IgZXhhbXBsZSwKKworICAgIChjbC1s
YW1iZGEgKCZvcHRpb25hbCAob3B0MSBkZWZhdWx0MSBvcHQxLXN1cHBsaWVkKSkpCisKK1RoZXJl
Zm9yZSwgdG8gYXZvaWQgYW1iaWd1aXR5LCB0aGUgdXNlIG9mIHN1Yi1wYXR0ZXJucyBjYW4gb25s
eQorYmUgZG9uZSB3aXRoaW4gdGhlIHN1Yi1saXN0IGZvciB0aG9zZSBjb25zdHJ1Y3RzLiAgRm9y
IGV4YW1wbGUsCisKKyAgICAoY2wtbGFtYmRhICgmb3B0aW9uYWwgKChhbmQgb3B0MSAoZ3VhcmQg
KGxpc3RwIG9wdDEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCkpKQorCitGb3Ig
c2ltaWxhciByZWFzb25zLCB0aGUgY2RyIG9mIGEgZG90dGVkIGxpc3QgKGFzIG9wcG9zZWQgdG8g
dGhlCitlbGVtZW50IGZvbGxvd2luZyBgJnJlc3QnKSBmb3IgdGhlIHJlbWFpbmRlciBvZiBhIGxp
c3QgY2Fubm90IGJlCithIHN1Yi1wYXR0ZXJuLiIKKyAgKGxldCogKChncm91cHMgKGNsLS1wY2Fz
ZS1jbC1sYW1iZGEtdmFyLWdyb3VwcyBsYW1iZGEtbGlzdCkpCisgICAgICAgICAod2hvbGUtdmFy
IChhbGlzdC1nZXQgJ3dob2xlIGdyb3VwcykpCisgICAgICAgICAocG9zLXZhcnMgKGFsaXN0LWdl
dCAncG9zIGdyb3VwcykpCisgICAgICAgICAob3B0LXZhcnMgKGFsaXN0LWdldCAnb3B0IGdyb3Vw
cykpCisgICAgICAgICAocmVzdC12YXIgKGFsaXN0LWdldCAncmVzdCBncm91cHMpKQorICAgICAg
ICAgKGtleS12YXJzIChhbGlzdC1nZXQgJ2tleSBncm91cHMpKQorICAgICAgICAgKGFsbG93LW90
aGVyLWtleXMgKGFsaXN0LWdldCAnYWxsb3ctb3RoZXIta2V5cyBncm91cHMpKQorICAgICAgICAg
KGF1eC12YXJzIChhbGlzdC1nZXQgJ2F1eCBncm91cHMpKSkKKyAgICAocmVtcSBuaWwKKyAgICAg
ICAgICBgKGFuZCAocHJlZCBsaXN0cCkKKyAgICAgICAgICAgICAgICAsKHdoZW4gd2hvbGUtdmFy
CisgICAgICAgICAgICAgICAgICAgd2hvbGUtdmFyKQorICAgICAgICAgICAgICAgICwod2hlbiAo
b3IgcG9zLXZhcnMgb3B0LXZhcnMgcmVzdC12YXIpCisgICAgICAgICAgICAgICAgICAgKGNsLS1w
Y2FzZS1jbC1sYW1iZGEtcG9zaXRpb25hbC1wYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgIHBv
cy12YXJzIG9wdC12YXJzCisgICAgICAgICAgICAgICAgICAgIHJlc3QtdmFyIGtleS12YXJzKSkK
KyAgICAgICAgICAgICAgICAsQCh3aGVuIGtleS12YXJzCisgICAgICAgICAgICAgICAgICAgIChs
ZXQgKChwbGlzdC12YXIgKGdlbnN5bSAibWF5YmUtcGxpc3QiKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgKHJlc3QtdmFyCisgICAgICAgICAg
ICAgICAgICAgICAgICAobGlzdCAoY2wtLXBjYXNlLWNsLWxhbWJkYS0ma2V5LXBhdHRlcm4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXktdmFycyBhbGxvdy1vdGhlci1rZXlzCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdC12YXIpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgKChvciBwb3MtdmFycyBvcHQtdmFycykKKyAgICAgICAgICAgICAgICAgICAgICAg
IChpZiB3aG9sZS12YXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKChsZXQgLHBsaXN0
LXZhciAobnRoY2RyICwoKyAobGVuZ3RoIHBvcy12YXJzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggb3B0LXZhcnMpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLHdo
b2xlLXZhcikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsKGNsLS1wY2FzZS1jbC1s
YW1iZGEtJmtleS1wYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleS12
YXJzIGFsbG93LW90aGVyLWtleXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxp
c3QtdmFyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYCgoYXBwIChudGhjZHIgLCgrIChs
ZW5ndGggcG9zLXZhcnMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAobGVuZ3RoIG9wdC12YXJzKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAscGxpc3QtdmFyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICwoY2wtLXBjYXNlLWNs
LWxhbWJkYS0ma2V5LXBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleS12
YXJzIGFsbG93LW90aGVyLWtleXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsaXN0
LXZhcikpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGAoKGFuZCAscGxpc3QtdmFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLChj
bC0tcGNhc2UtY2wtbGFtYmRhLSZrZXktcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga2V5LXZhcnMgYWxsb3ctb3RoZXIta2V5cworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGxpc3QtdmFyKSkpKSkpKQorICAgICAgICAgICAgICAgICwod2hlbiBhdXgt
dmFycworICAgICAgICAgICAgICAgICAgIChjbC0tcGNhc2UtY2wtbGFtYmRhLSZhdXgtcGF0dGVy
biBhdXgtdmFycykpKSkpKQorCiA7OyBMb2NhbCB2YXJpYWJsZXM6CiA7OyBnZW5lcmF0ZWQtYXV0
b2xvYWQtZmlsZTogImNsLWxvYWRkZWZzLmVsIgogOzsgRW5kOgpkaWZmIC0tZ2l0IGEvdGVzdC9s
aXNwL2VtYWNzLWxpc3AvcGNhc2UtdGVzdHMuZWwgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9wY2Fz
ZS10ZXN0cy5lbAppbmRleCA3OTllOGQzNjY0Ny4uOWMzMjI1OWU5NTMgMTAwNjQ0Ci0tLSBhL3Rl
c3QvbGlzcC9lbWFjcy1saXNwL3BjYXNlLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9lbWFjcy1s
aXNwL3BjYXNlLXRlc3RzLmVsCkBAIC0xNjAsNCArMTYwLDUxOSBAQCBwY2FzZS10ZXN0cy1zZXRx
CiAgIChzaG91bGQtZXJyb3IgKHBjYXNlLXNldHEgYSkKICAgICAgICAgICAgICAgICA6dHlwZSAn
KHdyb25nLW51bWJlci1vZi1hcmd1bWVudHMpKSkKIAorOzs7IFRlc3RzIGZvciB0aGUgYGNsLWxh
bWJkYScgYHBjYXNlJyBwYXR0ZXJuLgorCisoZXJ0LWRlZnRlc3QgcGNhc2UtdGVzdHMtY2wtbGFt
YmRhLSZ3aG9sZS1zaG91bGQtZXJyb3IgKCkKKyAgImAmd2hvbGUnIG11c3QgY29tZSBmaXJzdCBp
ZiBnaXZlbiwgYW5kIG11c3QgYmUgZm9sbG93ZWQgYnkgYSBwYXR0ZXIuIgorICAoc2hvdWxkLWVy
cm9yIChwY2FzZSAobGlzdCAxIDIgMykKKyAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhICgm
d2hvbGUpKQorICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYiBjKSkpCisgICAgICAgICAgICAg
ICAgOnR5cGUgJ2NsLS1wY2FzZS1sYW1iZGEtbGlzdC1iYWQtbGFtYmRhLWxpc3QpCisKKyAgKHNo
b3VsZC1lcnJvciAocGNhc2UgKGxpc3QgMSAyIDMpCisgICAgICAgICAgICAgICAgICAoKGNsLWxh
bWJkYSAoYSBiICZ3aG9sZSBjKSkKKyAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgYykpKQor
ICAgICAgICAgICAgICAgIDp0eXBlICdjbC0tcGNhc2UtbGFtYmRhLWxpc3QtYmFkLWxhbWJkYS1s
aXN0KQorCisgIChzaG91bGQtZXJyb3IgKHBjYXNlIChsaXN0IDEgMiAzKQorICAgICAgICAgICAg
ICAgICAgKChjbC1sYW1iZGEgKCZyZXN0IGEgJndob2xlIGMpKQorICAgICAgICAgICAgICAgICAg
IChsaXN0IGEgYiBjKSkpCisgICAgICAgICAgICAgICAgOnR5cGUgJ2NsLS1wY2FzZS1sYW1iZGEt
bGlzdC1iYWQtbGFtYmRhLWxpc3QpCisKKyAgKHNob3VsZC1lcnJvciAocGNhc2UgKGxpc3QgMSAy
IDMpCisgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoJmtleSBhICZ3aG9sZSBjKSkKKyAg
ICAgICAgICAgICAgICAgICAobGlzdCBhIGIgYykpKQorICAgICAgICAgICAgICAgIDp0eXBlICdj
bC0tcGNhc2UtbGFtYmRhLWxpc3QtYmFkLWxhbWJkYS1saXN0KQorCisgIChzaG91bGQtZXJyb3Ig
KHBjYXNlIChsaXN0IDEgMiAzKQorICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKCZhdXgg
KGEgMSkgJndob2xlIGMpKQorICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYiBjKSkpCisgICAg
ICAgICAgICAgICAgOnR5cGUgJ2NsLS1wY2FzZS1sYW1iZGEtbGlzdC1iYWQtbGFtYmRhLWxpc3Qp
CisKKyAgKHNob3VsZC1lcnJvciAocGNhc2UgKGxpc3QgMSAyIDMpCisgICAgICAgICAgICAgICAg
ICAoKGNsLWxhbWJkYSAoJm9wdGlvbmFsIChhIDEpICZ3aG9sZSBjKSkKKyAgICAgICAgICAgICAg
ICAgICAobGlzdCBhIGIgYykpKQorICAgICAgICAgICAgICAgIDp0eXBlICdjbC0tcGNhc2UtbGFt
YmRhLWxpc3QtYmFkLWxhbWJkYS1saXN0KQorCisgIChzaG91bGQtZXJyb3IgKHBjYXNlIChsaXN0
IDEgMiAzKQorICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKCZ3aG9sZSB3aG9sZTEgJndo
b2xlIHdob2xlMikpCisgICAgICAgICAgICAgICAgICAgKGxpc3Qgd2hvbGUxIHdob2xlMikpKQor
ICAgICAgICAgICAgICAgIDp0eXBlICdjbC0tcGNhc2UtbGFtYmRhLWxpc3QtYmFkLWxhbWJkYS1s
aXN0KSkKKworKGVydC1kZWZ0ZXN0IHBjYXNlLXRlc3RzLWNsLWxhbWJkYS0md2hvbGUgKCkKKyAg
ImAmd2hvbGUnIGNhbiBiZSBhIGBwY2FzZScgcGF0dGVybi4iCisgIChzaG91bGQgKGVxdWFsIChs
aXN0IChsaXN0IDEgMiAzKSAxIDIgMykKKyAgICAgICAgICAgICAgICAgKHBjYXNlIChsaXN0IDEg
MiAzKQorICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhICgmd2hvbGUgd2hvbGUgYSBiIGMp
KQorICAgICAgICAgICAgICAgICAgICAobGlzdCB3aG9sZSBhIGIgYykpKSkpCisKKyAgKHNob3Vs
ZCAoZXF1YWwgKGxpc3QgMSAyIDMgMSAyIDMpCisgICAgICAgICAgICAgICAgIChwY2FzZSAobGlz
dCAxIDIgMykKKyAgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoJndob2xlIGAoLGEwICxi
MCAsYzApIGEgYiBjKSkKKyAgICAgICAgICAgICAgICAgICAgKGxpc3QgYTAgYjAgYzAgYSBiIGMp
KSkpKSkKKworKGVydC1kZWZ0ZXN0IHBjYXNlLXRlc3RzLWNsLWxhbWJkYS1wb3MgKCkKKyAgIlBv
c2l0aW9uYWwgdmFyaWFibGVzIG11c3QgbWF0Y2ggdGhlIGxlbmd0aCBvZiBFWFBWQUwuIgorICAo
c2hvdWxkIChlcXVhbCAobGlzdCAxIDIgMykKKyAgICAgICAgICAgICAgICAgKHBjYXNlIChsaXN0
IDEgMiAzKQorICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhIChhIGIgYykpCisgICAgICAg
ICAgICAgICAgICAgIChsaXN0IGEgYiBjKSkpKSkKKworICAoc2hvdWxkIChlcXVhbCBuaWwKKyAg
ICAgICAgICAgICAgICAgKHBjYXNlIChsaXN0IChsaXN0IDEpKQorICAgICAgICAgICAgICAgICAg
ICgoY2wtbGFtYmRhIChhIGIpKQorICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIpKSkpKQor
CisgIChzaG91bGQgKGVxdWFsIG5pbAorICAgICAgICAgICAgICAgICAocGNhc2UgKGxpc3QgKGxp
c3QgMSAyIDMpKQorICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhIChhIGIpKQorICAgICAg
ICAgICAgICAgICAgICAobGlzdCBhIGIpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHBjYXNlLXRlc3Rz
LWNsLWxhbWJkYS1wb3Mtc3ViLXBhdHRlcm5zICgpCisgIChzaG91bGQgKGVxdWFsIChsaXN0IDEg
MiAzIDQpCisgICAgICAgICAgICAgICAgIChwY2FzZSAobGlzdCAxIDIgKGxpc3QgMyA0KSkKKyAg
ICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoYSBiIChjbC1sYW1iZGEgKGMgZCkpKSkKKyAg
ICAgICAgICAgICAgICAgICAgKGxpc3QgYSBiIGMgZCkpKSkpCisKKyAgKHNob3VsZCAoZXF1YWwg
KGxpc3QgMSAyKQorICAgICAgICAgICAgICAgICAocGNhc2UgKGxpc3QgKGxpc3QgMSAyKSkKKyAg
ICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoYCgsYSAsYikpKQorICAgICAgICAgICAgICAg
ICAgICAobGlzdCBhIGIpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHBjYXNlLXRlc3RzLWNsLWxhbWJk
YS0mb3B0aW9uYWwtc2hvdWxkLWVycm9yICgpCisgICJgJm9wdGlvbmFsJyBjYW5ub3QgYmUgdXNl
ZCBhZnRlciBgJm9wdGlvbmFsJywgYCZyZXN0JywgYCZrZXknLCBhbmQgYCZhdXgnLiIKKyAgKHNo
b3VsZC1lcnJvciAoZXF1YWwgKGxpc3QgMSAyIDMpCisgICAgICAgICAgICAgICAgICAgICAgIChw
Y2FzZSAobGlzdCAxIDIgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAo
JnJlc3QgYSAmb3B0aW9uYWwgYiBjKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3Qg
YSBiIGMpKSkpCisgICAgICAgICAgICAgICAgOnR5cGUgJ2NsLS1wY2FzZS1sYW1iZGEtbGlzdC1i
YWQtbGFtYmRhLWxpc3QpCisKKyAgKHNob3VsZC1lcnJvciAocGNhc2UgKGxpc3QgMSAyIDMpCisg
ICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoJmJvZHkgYSAmb3B0aW9uYWwgYiBjKSkKKyAg
ICAgICAgICAgICAgICAgICAobGlzdCBhIGIgYykpKQorICAgICAgICAgICAgICAgIDp0eXBlICdj
bC0tcGNhc2UtbGFtYmRhLWxpc3QtYmFkLWxhbWJkYS1saXN0KQorCisgIChzaG91bGQtZXJyb3Ig
KHBjYXNlIChsaXN0IDEgMiAzKQorICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKCZrZXkg
YSAmb3B0aW9uYWwgYiBjKSkKKyAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgYykpKQorICAg
ICAgICAgICAgICAgIDp0eXBlICdjbC0tcGNhc2UtbGFtYmRhLWxpc3QtYmFkLWxhbWJkYS1saXN0
KQorCisgIChzaG91bGQtZXJyb3IgKHBjYXNlIChsaXN0IDEgMiAzKQorICAgICAgICAgICAgICAg
ICAgKChjbC1sYW1iZGEgKCZhbGxvdy1vdGhlci1rZXlzICZvcHRpb25hbCBiIGMpKQorICAgICAg
ICAgICAgICAgICAgIChsaXN0IGEgYiBjKSkpCisgICAgICAgICAgICAgICAgOnR5cGUgJ2NsLS1w
Y2FzZS1sYW1iZGEtbGlzdC1iYWQtbGFtYmRhLWxpc3QpCisKKyAgKHNob3VsZC1lcnJvciAocGNh
c2UgKGxpc3QgMSAyIDMpCisgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoJmF1eCAoYSAx
KSAmb3B0aW9uYWwgYiBjKSkKKyAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgYykpKQorICAg
ICAgICAgICAgICAgIDp0eXBlICdjbC0tcGNhc2UtbGFtYmRhLWxpc3QtYmFkLWxhbWJkYS1saXN0
KQorCisgIChzaG91bGQtZXJyb3IgKHBjYXNlIChsaXN0IDEgMiAzKQorICAgICAgICAgICAgICAg
ICAgKChjbC1sYW1iZGEgKCZvcHRpb25hbCBhICZvcHRpb25hbCBiIGMpKQorICAgICAgICAgICAg
ICAgICAgIChsaXN0IGEgYiBjKSkpCisgICAgICAgICAgICAgICAgOnR5cGUgJ2NsLS1wY2FzZS1s
YW1iZGEtbGlzdC1iYWQtbGFtYmRhLWxpc3QpKQorCisoZXJ0LWRlZnRlc3QgcGNhc2UtdGVzdHMt
Y2wtbGFtYmRhLSZvcHRpb25hbCAoKQorICAoc2hvdWxkIChlcXVhbCAobGlzdCAxIDIgMykKKyAg
ICAgICAgICAgICAgICAgKHBjYXNlIChsaXN0IDEgMiAzKQorICAgICAgICAgICAgICAgICAgICgo
Y2wtbGFtYmRhIChhIGIgJm9wdGlvbmFsIGMpKQorICAgICAgICAgICAgICAgICAgICAobGlzdCBh
IGIgYykpKSkpCisKKyAgKHNob3VsZCAoZXF1YWwgKGxpc3QgMSAyIG5pbCkKKyAgICAgICAgICAg
ICAgICAgKHBjYXNlIChsaXN0IDEgMikKKyAgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAo
YSBiICZvcHRpb25hbCBjKSkKKyAgICAgICAgICAgICAgICAgICAgKGxpc3QgYSBiIGMpKSkpKQor
CisgIChzaG91bGQgKGVxdWFsIChsaXN0IDEgMiAxMykKKyAgICAgICAgICAgICAgICAgKHBjYXNl
IChsaXN0IDEgMikKKyAgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoYSBiICZvcHRpb25h
bCAoYyAxMykpKQorICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgYykpKSkpCisKKyAgKHNo
b3VsZCAoZXF1YWwgKGxpc3QgMSAyIDEzIG5pbCkKKyAgICAgICAgICAgICAgICAgKHBjYXNlIChs
aXN0IDEgMikKKyAgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoYSBiICZvcHRpb25hbCAo
YyAxMyBjLXN1cHBsaWVkKSkpCisgICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYiBjIGMtc3Vw
cGxpZWQpKSkpKQorCisgIChzaG91bGQgKGVxdWFsIChsaXN0IDEgMiAzIHQpCisgICAgICAgICAg
ICAgICAgIChwY2FzZSAobGlzdCAxIDIgMykKKyAgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJk
YSAoYSBiICZvcHRpb25hbCAoYyAxMyBjLXN1cHBsaWVkKSkpCisgICAgICAgICAgICAgICAgICAg
IChsaXN0IGEgYiBjIGMtc3VwcGxpZWQpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHBjYXNlLXRlc3Rz
LWNsLWxhbWJkYS0mb3B0aW9uYWwtc3ViLXBhdHRlcm5zICgpCisgICJUZXN0IHVzaW5nIHN1Yi1w
YXR0ZXJucyBpbiBgY2wtbGFtYmRhJyBwYXR0ZXJuLgorU3ViLXBhdHRlcm5zIG11c3QgYmUgY29u
dGFpbmVkIHdpdGhpbiBhIHN1Yi1saXN0LCBzaW5jZSBhIHN1Yi1saXN0CithbHNvIHByb3ZpZGVz
IGEgZGVmYXVsdCB2YWx1ZS4iCisgIChzaG91bGQtZXJyb3IgKHBjYXNlIChsaXN0IDEgMiAobGlz
dCAzIDQpKQorICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKGEgYiAmb3B0aW9uYWwgYCgs
YyAsZCkpKQorICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYiBjIGQpKSkpCisKKyAgKHNob3Vs
ZCAoZXF1YWwgKGxpc3QgMSAyIDMzKQorICAgICAgICAgICAgICAgICAocGNhc2UgKGxpc3QgMSAy
KQorICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhIChhIGIgJm9wdGlvbmFsICgoYW5kIG9w
dDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
Z3VhcmQgKG51bWJlcnAgb3B0MSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzMykpKQorICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgb3B0MSkp
KSkpCisKKyAgKHNob3VsZCAoZXF1YWwgbmlsCisgICAgICAgICAgICAgICAgIChwY2FzZSAobGlz
dCAxIDIgJ25vdC1udW0pCisgICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKGEgYiAmb3B0
aW9uYWwgKChhbmQgb3B0MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChndWFyZCAobnVtYmVycCBvcHQxKSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMzKSkpCisgICAgICAgICAgICAgICAgICAgIChs
aXN0IGEgYiBvcHQxKSkpKSkKKworICAoc2hvdWxkIChlcXVhbCBuaWwKKyAgICAgICAgICAgICAg
ICAgKHBjYXNlIChsaXN0IDEgMiBuaWwpCisgICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEg
KGEgYiAmb3B0aW9uYWwgKChhbmQgb3B0MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChndWFyZCAobnVtYmVycCBvcHQxKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub3QtbnVtKSkpCisgICAgICAg
ICAgICAgICAgICAgIChsaXN0IGEgYiBvcHQxKSkpKSkKKworICAoc2hvdWxkIChlcXVhbCAobGlz
dCAxIDIgMyA0KQorICAgICAgICAgICAgICAgICAocGNhc2UgKGxpc3QgMSAyIChsaXN0IDMgNCkp
CisgICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKGEgYiAmb3B0aW9uYWwgKGAoLGMgLGQp
KSkpCisgICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYiBjIGQpKSkpKQorCisgIChzaG91bGQg
KGVxdWFsIChsaXN0IDEgMiBuaWwgbmlsKQorICAgICAgICAgICAgICAgICAocGNhc2UgKGxpc3Qg
MSAyKQorICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhIChhIGIgJm9wdGlvbmFsIChgKCxj
ICxkKSkpKQorICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgYyBkKSkpKSkKKworICAoc2hv
dWxkIChlcXVhbCAobGlzdCAxIDIgMTMgMTQpCisgICAgICAgICAgICAgICAgIChwY2FzZSAobGlz
dCAxIDIpCisgICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKGEgYiAmb3B0aW9uYWwgKGAo
LGMgLGQpIChsaXN0IDEzIDE0KSkpKQorICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgYyBk
KSkpKSkKKworICAoc2hvdWxkIChlcXVhbCAobGlzdCAxIDIgMTMgMTQpCisgICAgICAgICAgICAg
ICAgIChwY2FzZSAobGlzdCAxIDIpCisgICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKCBh
IGIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvcHRpb25hbCAoKGNsLWxhbWJk
YSAoYyAmb3B0aW9uYWwgKGQgMTQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGxpc3QgMTMpKSkpCisgICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYiBj
IGQpKSkpKQorCisgIChzaG91bGQgKGVxdWFsIChsaXN0IDEgMiAxMyAxNCBuaWwpCisgICAgICAg
ICAgICAgICAgIChwY2FzZSAobGlzdCAxIDIpCisgICAgICAgICAgICAgICAgICAgKChjbC1sYW1i
ZGEgKGEgYiAmb3B0aW9uYWwgKGAoLGMgLGQpIChsaXN0IDEzIDE0KSBjZC1zdXBwbGllZCkpKQor
ICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgYyBkIGNkLXN1cHBsaWVkKSkpKSkKKworICAo
c2hvdWxkIChlcXVhbCAobGlzdCAxIDIgMTMgMTQgbmlsIHQgbmlsKQorICAgICAgICAgICAgICAg
ICAocGNhc2UgKGxpc3QgMSAyKQorICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhICggYSBi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3B0aW9uYWwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhICgmb3B0aW9uYWwgKGMgMjcgYy1zdWIt
c3VwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZCAxNCBkLXN1Yi1zdXApKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGlzdCAxMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZC1zdXBwbGll
ZCkpKQorICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgYyBkIGNkLXN1cHBsaWVkIGMtc3Vi
LXN1cCBkLXN1Yi1zdXApKSkpKSkKKworKGVydC1kZWZ0ZXN0IHBjYXNlLXRlc3RzLWNsLWxhbWJk
YS0mcmVzdC1zaG91bGQtZXJyb3IgKCkKKyAgImAmcmVzdCcgKGAmYm9keScsIGAuJykgY2Fubm90
IGJlIHVzZWQgYWZ0ZXIgYCZyZXN0JywgYCZib2R5JywgYCZrZXknLGFuZCBgJmF1eCcuIgorICAo
c2hvdWxkLWVycm9yIChlcXVhbCAobGlzdCAxIDIgMykKKyAgICAgICAgICAgICAgICAgICAgICAg
KHBjYXNlIChsaXN0IDEgMiAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRh
ICgmcmVzdCBhICZyZXN0IGIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIg
YykpKSkKKyAgICAgICAgICAgICAgICA6dHlwZSAnY2wtLXBjYXNlLWxhbWJkYS1saXN0LWJhZC1s
YW1iZGEtbGlzdCkKKworICAoc2hvdWxkLWVycm9yIChlcXVhbCAobGlzdCAxIDIgMykKKyAgICAg
ICAgICAgICAgICAgICAgICAgKHBjYXNlIChsaXN0IDEgMiAzKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICgoY2wtbGFtYmRhICgmYm9keSBhICZib2R5IGIpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAobGlzdCBhIGIgYykpKSkKKyAgICAgICAgICAgICAgICA6dHlwZSAnY2wtLXBjYXNl
LWxhbWJkYS1saXN0LWJhZC1sYW1iZGEtbGlzdCkKKworICAoc2hvdWxkLWVycm9yIChlcXVhbCAo
bGlzdCAxIDIgMykKKyAgICAgICAgICAgICAgICAgICAgICAgKHBjYXNlIChsaXN0IDEgMiAzKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhICgmYm9keSBhIC4gYikpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYiBjKSkpKQorICAgICAgICAgICAgICAgIDp0
eXBlICdjbC0tcGNhc2UtbGFtYmRhLWxpc3QtYmFkLWxhbWJkYS1saXN0KQorCisgIChzaG91bGQt
ZXJyb3IgKHBjYXNlIChsaXN0IDEgMiAzKQorICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEg
KCZib2R5IGEgJnJlc3QgYikpCisgICAgICAgICAgICAgICAgICAgKGxpc3QgYSBiIGMpKSkKKyAg
ICAgICAgICAgICAgICA6dHlwZSAnY2wtLXBjYXNlLWxhbWJkYS1saXN0LWJhZC1sYW1iZGEtbGlz
dCkKKworICAoc2hvdWxkLWVycm9yIChwY2FzZSAobGlzdCAxIDIgMykKKyAgICAgICAgICAgICAg
ICAgICgoY2wtbGFtYmRhICgmcmVzdCBhICZib2R5IGIpKQorICAgICAgICAgICAgICAgICAgIChs
aXN0IGEgYiBjKSkpCisgICAgICAgICAgICAgICAgOnR5cGUgJ2NsLS1wY2FzZS1sYW1iZGEtbGlz
dC1iYWQtbGFtYmRhLWxpc3QpCisKKyAgKHNob3VsZC1lcnJvciAocGNhc2UgKGxpc3QgMSAyIDMp
CisgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoJmtleSBhICZyZXN0IGIpKQorICAgICAg
ICAgICAgICAgICAgIChsaXN0IGEgYiBjKSkpCisgICAgICAgICAgICAgICAgOnR5cGUgJ2NsLS1w
Y2FzZS1sYW1iZGEtbGlzdC1iYWQtbGFtYmRhLWxpc3QpCisKKyAgKHNob3VsZC1lcnJvciAocGNh
c2UgKGxpc3QgMSAyIDMpCisgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoJmtleSBhICZi
b2R5IGIpKQorICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYiBjKSkpCisgICAgICAgICAgICAg
ICAgOnR5cGUgJ2NsLS1wY2FzZS1sYW1iZGEtbGlzdC1iYWQtbGFtYmRhLWxpc3QpCisKKyAgKHNo
b3VsZC1lcnJvciAocGNhc2UgKGxpc3QgMSAyIDMpCisgICAgICAgICAgICAgICAgICAoKGNsLWxh
bWJkYSAoJmtleSBhIC4gYikpCisgICAgICAgICAgICAgICAgICAgKGxpc3QgYSBiIGMpKSkKKyAg
ICAgICAgICAgICAgICA6dHlwZSAnY2wtLXBjYXNlLWxhbWJkYS1saXN0LWJhZC1sYW1iZGEtbGlz
dCkKKworICAoc2hvdWxkLWVycm9yIChwY2FzZSAobGlzdCAxIDIgMykKKyAgICAgICAgICAgICAg
ICAgICgoY2wtbGFtYmRhICgmYWxsb3ctb3RoZXIta2V5cyAmcmVzdCBiKSkKKyAgICAgICAgICAg
ICAgICAgICAobGlzdCBhIGIgYykpKQorICAgICAgICAgICAgICAgIDp0eXBlICdjbC0tcGNhc2Ut
bGFtYmRhLWxpc3QtYmFkLWxhbWJkYS1saXN0KQorCisgIChzaG91bGQtZXJyb3IgKHBjYXNlIChs
aXN0IDEgMiAzKQorICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKCZhbGxvdy1vdGhlci1r
ZXlzICZib2R5IGIpKQorICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYiBjKSkpCisgICAgICAg
ICAgICAgICAgOnR5cGUgJ2NsLS1wY2FzZS1sYW1iZGEtbGlzdC1iYWQtbGFtYmRhLWxpc3QpCisK
KyAgKHNob3VsZC1lcnJvciAocGNhc2UgKGxpc3QgMSAyIDMpCisgICAgICAgICAgICAgICAgICAo
KGNsLWxhbWJkYSAoJmFsbG93LW90aGVyLWtleXMgLiBiKSkKKyAgICAgICAgICAgICAgICAgICAo
bGlzdCBhIGIgYykpKQorICAgICAgICAgICAgICAgIDp0eXBlICdjbC0tcGNhc2UtbGFtYmRhLWxp
c3QtYmFkLWxhbWJkYS1saXN0KQorCisgIChzaG91bGQtZXJyb3IgKHBjYXNlIChsaXN0IDEgMiAz
KQorICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKCZhdXggKGEgMSkgJnJlc3QgYikpCisg
ICAgICAgICAgICAgICAgICAgKGxpc3QgYSBiIGMpKSkKKyAgICAgICAgICAgICAgICA6dHlwZSAn
Y2wtLXBjYXNlLWxhbWJkYS1saXN0LWJhZC1sYW1iZGEtbGlzdCkKKworICAoc2hvdWxkLWVycm9y
IChwY2FzZSAobGlzdCAxIDIgMykKKyAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhICgmYXV4
IChhIDEpICZib2R5IGIpKQorICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYiBjKSkpCisgICAg
ICAgICAgICAgICAgOnR5cGUgJ2NsLS1wY2FzZS1sYW1iZGEtbGlzdC1iYWQtbGFtYmRhLWxpc3Qp
CisKKyAgKHNob3VsZC1lcnJvciAocGNhc2UgKGxpc3QgMSAyIDMpCisgICAgICAgICAgICAgICAg
ICAoKGNsLWxhbWJkYSAoJmF1eCAoYSAxKSAuIGIpKQorICAgICAgICAgICAgICAgICAgIChsaXN0
IGEgYiBjKSkpCisgICAgICAgICAgICAgICAgOnR5cGUgJ2NsLS1wY2FzZS1sYW1iZGEtbGlzdC1i
YWQtbGFtYmRhLWxpc3QpKQorCisoZXJ0LWRlZnRlc3QgcGNhc2UtdGVzdHMtY2wtbGFtYmRhLSZy
ZXN0LW5vbmxpc3QtY2RyICgpCisgIChzaG91bGQgKGVxdWFsIChsaXN0IDEgMikKKyAgICAgICAg
ICAgICAgICAgKHBjYXNlIChjb25zIDEgMikKKyAgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJk
YSAoYSAmcmVzdCBiKSkKKyAgICAgICAgICAgICAgICAgICAgKGxpc3QgYSBiKSkpKSkKKworICAo
c2hvdWxkIChlcXVhbCAobGlzdCAxIDIpCisgICAgICAgICAgICAgICAgIChwY2FzZSAoY29ucyAx
IDIpCisgICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKGEgJmJvZHkgYikpCisgICAgICAg
ICAgICAgICAgICAgIChsaXN0IGEgYikpKSkpCisKKyAgKHNob3VsZCAoZXF1YWwgKGxpc3QgMSAy
KQorICAgICAgICAgICAgICAgICAocGNhc2UgKGNvbnMgMSAyKQorICAgICAgICAgICAgICAgICAg
ICgoY2wtbGFtYmRhIChhIC4gYikpCisgICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYikpKSkp
KQorCisoZXJ0LWRlZnRlc3QgcGNhc2UtdGVzdHMtY2wtbGFtYmRhLSZyZXN0LXdpdGgtJndob2xl
ICgpCisgIChzaG91bGQgKGVxdWFsIChsaXN0IChjb25zIDEgMikgMSAyKQorICAgICAgICAgICAg
ICAgICAocGNhc2UgKGNvbnMgMSAyKQorICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhICgm
d2hvbGUgd2hvbGUgYSAmcmVzdCBiKSkKKyAgICAgICAgICAgICAgICAgICAgKGxpc3Qgd2hvbGUg
YSBiKSkpKSkKKworICAoc2hvdWxkIChlcXVhbCAobGlzdCAoY29ucyAxIDIpIDEgMikKKyAgICAg
ICAgICAgICAgICAgKHBjYXNlIChjb25zIDEgMikKKyAgICAgICAgICAgICAgICAgICAoKGNsLWxh
bWJkYSAoJndob2xlIHdob2xlIGEgJmJvZHkgYikpCisgICAgICAgICAgICAgICAgICAgIChsaXN0
IHdob2xlIGEgYikpKSkpCisKKyAgKHNob3VsZCAoZXF1YWwgKGxpc3QgKGNvbnMgMSAyKSAxIDIp
CisgICAgICAgICAgICAgICAgIChwY2FzZSAoY29ucyAxIDIpCisgICAgICAgICAgICAgICAgICAg
KChjbC1sYW1iZGEgKCZ3aG9sZSB3aG9sZSBhIC4gYikpCisgICAgICAgICAgICAgICAgICAgIChs
aXN0IHdob2xlIGEgYikpKSkpKQorCisoZXJ0LWRlZnRlc3QgcGNhc2UtdGVzdHMtY2wtbGFtYmRh
LSZyZXN0LW9ubHkgKCkKKyAgIlVzaW5nIG9ubHkgYCZyZXN0JyBzaG91bGQgd29yayBsaWtlIGAm
d2hvbGUnLiIKKyAgKHNob3VsZCAoZXF1YWwgKGxpc3QgKGxpc3QgMSAyKSkKKyAgICAgICAgICAg
ICAgICAgKHBjYXNlIChsaXN0IDEgMikKKyAgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAo
JnJlc3QgYSkpCisgICAgICAgICAgICAgICAgICAgIChsaXN0IGEpKSkpKQorCisgIChzaG91bGQg
KGVxdWFsIChsaXN0IChjb25zIDEgMikpCisgICAgICAgICAgICAgICAgIChwY2FzZSAoY29ucyAx
IDIpCisgICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKCZib2R5IGEpKQorICAgICAgICAg
ICAgICAgICAgICAobGlzdCBhKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBwY2FzZS10ZXN0cy1jbC1s
YW1iZGEtJnJlc3QtYWZ0ZXItJm9wdGlvbmFsICgpCisgIChzaG91bGQgKGVxdWFsIChsaXN0IDEg
MiAzIChsaXN0IDQgNSkpCisgICAgICAgICAgICAgICAgIChwY2FzZSAobGlzdCAxIDIgMyA0IDUp
CisgICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKCZvcHRpb25hbCBhIGIgYyAmcmVzdCBk
KSkKKyAgICAgICAgICAgICAgICAgICAgKGxpc3QgYSBiIGMgZCkpKSkpCisKKyAgKHNob3VsZCAo
ZXF1YWwgKGxpc3QgMSAyIDMgKGxpc3QgNCA1KSkKKyAgICAgICAgICAgICAgICAgKHBjYXNlIChs
aXN0IDEgMiAzIDQgNSkKKyAgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoJm9wdGlvbmFs
IGEgYiBjICZib2R5IGQpKQorICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgYyBkKSkpKSkK
KworICAoc2hvdWxkIChlcXVhbCAobGlzdCAxIDIgMyAobGlzdCA0IDUpKQorICAgICAgICAgICAg
ICAgICAocGNhc2UgKGxpc3QgMSAyIDMgNCA1KQorICAgICAgICAgICAgICAgICAgICgoY2wtbGFt
YmRhICgmb3B0aW9uYWwgYSBiIGMgLiBkKSkKKyAgICAgICAgICAgICAgICAgICAgKGxpc3QgYSBi
IGMgZCkpKSkpKQorCisoZXJ0LWRlZnRlc3QgcGNhc2UtdGVzdHMtY2wtbGFtYmRhLSZyZXN0LXN1
Yi1wYXR0ZXJucyAoKQorICA7OyBXZSBjYW4ndCBkbyAoYSAuIGAoLGIgLiAsYykpLCBzbyB3ZSBk
b24ndCB0ZXN0IHRoYXQuCisgIChzaG91bGQgKGVxdWFsIChsaXN0IDEgMiAzKQorICAgICAgICAg
ICAgICAgICAocGNhc2UgKGxpc3QgMSAyIDMpCisgICAgICAgICAgICAgICAgICAgKChjbC1sYW1i
ZGEgKGEgJnJlc3QgKGNsLWxhbWJkYSAoYiBjKSkpKQorICAgICAgICAgICAgICAgICAgICAobGlz
dCBhIGIgYykpKSkpCisKKyAgKHNob3VsZCAoZXF1YWwgKGxpc3QgMSAyIDMpCisgICAgICAgICAg
ICAgICAgIChwY2FzZSAobGlzdCAxIDIgMykKKyAgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJk
YSAoYSAmYm9keSBgKCxiICxjKSkpCisgICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYiBjKSkp
KSkpCisKKyhlcnQtZGVmdGVzdCBwY2FzZS10ZXN0cy1jbC1sYW1iZGEtJmtleS1zaG91bGQtZXJy
b3IgKCkKKyAgImAma2V5JyBjYW5ub3QgYmUgdXNlZCBhZnRlciBgJmtleScsIGAmYWxsb3ctb3Ro
ZXIta2V5cycsIGFuZCBgJmF1eCcuIgorICAoc2hvdWxkLWVycm9yIChwY2FzZSAobGlzdCA6YSAx
IDpiIDIpCisgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoJmtleSBhICZrZXkgYikpCisg
ICAgICAgICAgICAgICAgICAgKGxpc3QgYSBiKSkpCisgICAgICAgICAgICAgICAgOnR5cGUgJ2Ns
LS1wY2FzZS1sYW1iZGEtbGlzdC1iYWQtbGFtYmRhLWxpc3QpCisKKyAgKHNob3VsZC1lcnJvciAo
cGNhc2UgKGxpc3QgOmEgMSA6YiAyKQorICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKCZh
dXggKGEgMSkgJmtleSBiKSkKKyAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIpKSkKKyAgICAg
ICAgICAgICAgICA6dHlwZSAnY2wtLXBjYXNlLWxhbWJkYS1saXN0LWJhZC1sYW1iZGEtbGlzdCkK
KworICAoc2hvdWxkLWVycm9yIChwY2FzZSAobGlzdCA6YSAxIDpiIDIpCisgICAgICAgICAgICAg
ICAgICAoKGNsLWxhbWJkYSAoJmFsbG93LW90aGVyLWtleXMgJmtleSBiKSkKKyAgICAgICAgICAg
ICAgICAgICAobGlzdCBhIGIpKSkKKyAgICAgICAgICAgICAgICA6dHlwZSAnY2wtLXBjYXNlLWxh
bWJkYS1saXN0LWJhZC1sYW1iZGEtbGlzdCkpCisKKyhlcnQtZGVmdGVzdCBwY2FzZS10ZXN0cy1j
bC1sYW1iZGEtJmtleS1leGFjdCAoKQorICAiYCZrZXknIGRvZXNuJ3QgbWF0Y2ggdW5zcGVjaWZp
ZWQga2V5cyB1bmxlc3MgYCZhbGxvdy1vdGhlci1rZXlzJyBvciBgOmFsbG93LW90aGVyLWtleXMn
IGlzIGdpdmVuLiIKKyAgKHNob3VsZCAoZXF1YWwgKGxpc3QgMSAyKQorICAgICAgICAgICAgICAg
ICAocGNhc2UgKGxpc3QgOmEgMSA6YiAyKQorICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRh
ICgma2V5IGEgYikpCisgICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYikpKSkpCisKKyAgKHNo
b3VsZCAoZXF1YWwgbmlsCisgICAgICAgICAgICAgICAgIChwY2FzZSAobGlzdCA6YSAxIDpiIDIg
OmMgMykKKyAgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoJmtleSBhIGIpKQorICAgICAg
ICAgICAgICAgICAgICAobGlzdCBhIGIpKSkpKQorCisgIChzaG91bGQgKGVxdWFsIChsaXN0IDEg
MiBuaWwpCisgICAgICAgICAgICAgICAgIChwY2FzZSAobGlzdCA6YSAxIDpiIDIpCisgICAgICAg
ICAgICAgICAgICAgKChjbC1sYW1iZGEgKCZrZXkgYSBiIGMpKQorICAgICAgICAgICAgICAgICAg
ICAobGlzdCBhIGIgYykpKSkpKQorCisoZXJ0LWRlZnRlc3QgcGNhc2UtdGVzdHMtY2wtbGFtYmRh
LSZrZXktcGVybWlzc2l2ZSAoKQorICAiYCZrZXknIGRvZXNuJ3QgbWF0Y2ggdW5zcGVjaWZpZWQg
a2V5cyB1bmxlc3MgYCZhbGxvdy1vdGhlci1rZXlzJyBvciBgOmFsbG93LW90aGVyLWtleXMnIGlz
IGdpdmVuLiIKKyAgKHNob3VsZCAoZXF1YWwgKGxpc3QgMSAyKQorICAgICAgICAgICAgICAgICAo
cGNhc2UgKGxpc3QgOmEgMSA6YiAyIDpjIDMpCisgICAgICAgICAgICAgICAgICAgKChjbC1sYW1i
ZGEgKCZrZXkgYSBiICZhbGxvdy1vdGhlci1rZXlzKSkKKyAgICAgICAgICAgICAgICAgICAgKGxp
c3QgYSBiKSkpKSkKKworICAoc2hvdWxkIChlcXVhbCAobGlzdCAxIDIpCisgICAgICAgICAgICAg
ICAgIChwY2FzZSAobGlzdCA6YSAxIDpiIDIgOmMgMyA6YWxsb3ctb3RoZXIta2V5cyB0KQorICAg
ICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhICgma2V5IGEgYikpCisgICAgICAgICAgICAgICAg
ICAgIChsaXN0IGEgYikpKSkpKQorCisoZXJ0LWRlZnRlc3QgcGNhc2UtdGVzdHMtY2wtbGFtYmRh
LSZrZXktbm90LWZpcnN0ICgpCisgICJUaGUgcGxpc3Qgc2hvdWxkIGJlIGFmdGVyIHBvc2l0aW9u
YWwgdmFsdWVzIGFuZCBlcXVhbCB0byBgJnJlc3QnLiIKKyAgKHNob3VsZCAoZXF1YWwgKGxpc3Qg
MSAyIDMgMTEgMjIpCisgICAgICAgICAgICAgICAgIChwY2FzZSAobGlzdCAxIDIgMyA6azEgMTEg
OmsyIDIyKQorICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhIChhIGIgYyAma2V5IGsxIGsy
KSkKKyAgICAgICAgICAgICAgICAgICAgKGxpc3QgYSBiIGMgazEgazIpKSkpKQorCisgIChzaG91
bGQgKGVxdWFsIChsaXN0IDEgMiAzIChsaXN0IDprMSAxMSA6azIgMjIpIDExIDIyKQorICAgICAg
ICAgICAgICAgICAocGNhc2UgKGxpc3QgMSAyIDMgOmsxIDExIDprMiAyMikKKyAgICAgICAgICAg
ICAgICAgICAoKGNsLWxhbWJkYSAoYSBiIGMgJnJlc3QgcjEgJmtleSBrMSBrMikpCisgICAgICAg
ICAgICAgICAgICAgIChsaXN0IGEgYiBjIHIxIGsxIGsyKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBw
Y2FzZS10ZXN0cy1jbC1sYW1iZGEtJmtleS1mdWxsLWZvcm0gKCkKKyAgKHNob3VsZCAoZXF1YWwg
KGxpc3QgMSAyKQorICAgICAgICAgICAgICAgICAocGNhc2UgKGxpc3QgOmEgMSA6YiAyKQorICAg
ICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhICgma2V5IGEgKGIgMTMpKSkKKyAgICAgICAgICAg
ICAgICAgICAgKGxpc3QgYSBiKSkpKSkKKworICAoc2hvdWxkIChlcXVhbCAobGlzdCAxIDEzKQor
ICAgICAgICAgICAgICAgICAocGNhc2UgKGxpc3QgOmEgMSkKKyAgICAgICAgICAgICAgICAgICAo
KGNsLWxhbWJkYSAoJmtleSBhIChiIDEzKSkpCisgICAgICAgICAgICAgICAgICAgIChsaXN0IGEg
YikpKSkpCisKKyAgKHNob3VsZCAoZXF1YWwgKGxpc3QgMSAxMyBuaWwpCisgICAgICAgICAgICAg
ICAgIChwY2FzZSAobGlzdCA6YSAxKQorICAgICAgICAgICAgICAgICAgICgoY2wtbGFtYmRhICgm
a2V5IGEgKGIgMTMgYi1zdXBwbGllZCkpKQorICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIg
Yi1zdXBwbGllZCkpKSkpCisKKyAgKHNob3VsZCAoZXF1YWwgKGxpc3QgMSAyIHQpCisgICAgICAg
ICAgICAgICAgIChwY2FzZSAobGlzdCA6YSAxIDpiIDIpCisgICAgICAgICAgICAgICAgICAgKChj
bC1sYW1iZGEgKCZrZXkgYSAoYiAxMyBiLXN1cHBsaWVkKSkpCisgICAgICAgICAgICAgICAgICAg
IChsaXN0IGEgYiBiLXN1cHBsaWVkKSkpKSkKKworICAoc2hvdWxkIChlcXVhbCAobGlzdCAxIDIg
dCkKKyAgICAgICAgICAgICAgICAgKHBjYXNlIChsaXN0IDphIDEgOmJhdCAyKQorICAgICAgICAg
ICAgICAgICAgICgoY2wtbGFtYmRhICgma2V5IGEgKCg6YmF0IGIpIDEzIGItc3VwcGxpZWQpKSkK
KyAgICAgICAgICAgICAgICAgICAgKGxpc3QgYSBiIGItc3VwcGxpZWQpKSkpKQorCisgIChzaG91
bGQgKGVxdWFsIChsaXN0IDEgMiB0KQorICAgICAgICAgICAgICAgICAobGV0ICgoa2V5IDpiYXQp
KQorICAgICAgICAgICAgICAgICAgIChwY2FzZSAobGlzdCA6YSAxIDpiYXQgMikKKyAgICAgICAg
ICAgICAgICAgICAgICgoY2wtbGFtYmRhICgma2V5IGEgKChrZXkgYikgMTMgYi1zdXBwbGllZCkp
KQorICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYiBiLXN1cHBsaWVkKSkpKSkpKQorCiso
ZXJ0LWRlZnRlc3QgcGNhc2UtdGVzdHMtY2wtbGFtYmRhLSZrZXktc3ViLXBhdHRlcm5zICgpCisg
IChzaG91bGQgKGVxdWFsICcoMSAyICg6YyA3NyA6ZSBzaG91bGQtaWdub3JlKSBuaWwgNzcgdCA5
OSBuaWwpCisgICAgICAgICAgICAgICAgIChwY2FzZSAnKDphYiAoMSAyKSkKKyAgICAgICAgICAg
ICAgICAgICAoKGNsLWxhbWJkYSAoJmtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoKDphYiBgKCxhICxiKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoOmNk
IChjbC1sYW1iZGEgKCAmd2hvbGUgY2QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChjIDg4IGMtc3VwcCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoOmQgZCkgOTkgZC1zdXBwKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFsbG93LW90aGVyLWtl
eXMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IDpjIDc3IDplICdz
aG91bGQtaWdub3JlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Qtc3VwcCkp
KQorICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgY2QgY2Qtc3VwcCBjIGMtc3VwcCBkIGQt
c3VwcCkpKSkpCisKKyAgKHNob3VsZCAoZXF1YWwgJyggMSAyICg6YyA3NyA6ZSBzaG91bGQtaWdu
b3JlIDphbGxvdy1vdGhlci1rZXlzIHQpIG5pbAorICAgICAgICAgICAgICAgICAgICA3NyB0IDk5
IG5pbCkKKyAgICAgICAgICAgICAgICAgKHBjYXNlICcoOmFiICgxIDIpKQorICAgICAgICAgICAg
ICAgICAgICgoY2wtbGFtYmRhICgma2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgoOmFiIGAoLGEgLGIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCg6Y2Qg
KGNsLWxhbWJkYSAoICZ3aG9sZSBjZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJmtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGMgODggYy1zdXBwKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCg6ZCBkKSA5OSBkLXN1cHApKSkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCA6YyA3NyA6ZSAnc2hvdWxkLWlnbm9yZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmFsbG93LW90aGVyLWtleXMg
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNkLXN1cHApKSkKKyAgICAgICAg
ICAgICAgICAgICAgKGxpc3QgYSBiIGNkIGNkLXN1cHAgYyBjLXN1cHAgZCBkLXN1cHApKSkpKQor
CisgIChzaG91bGQgKGVxdWFsIG5pbAorICAgICAgICAgICAgICAgICAocGNhc2UgJyg6YWIgKDEg
MikpCisgICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKCZrZXkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCg6YWIgYCgsYSAsYikpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoKDpjZCAoY2wtbGFtYmRhICggJndob2xlIGNkCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYyA4OCBjLXN1cHApCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDpkIGQpIDk5IGQt
c3VwcCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IDpjIDc3IDpl
ICdzaG91bGQtZmFpbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNkLXN1cHAp
KSkKKyAgICAgICAgICAgICAgICAgICAgKGxpc3QgYSBiIGNkIGNkLXN1cHAgYyBjLXN1cHAgZCBk
LXN1cHApKSkpKSkKKworKGVydC1kZWZ0ZXN0IHBjYXNlLXRlc3RzLWNsLWxhbWJkYS0mYXV4LXNo
b3VsZC1lcnJvciAoKQorICAiYCZhdXgnIGNhbm5vdCBiZSB1c2VkIGFmdGVyIGAmYXV4Jy4iCisg
IChzaG91bGQtZXJyb3IgKHBjYXNlIG5pbAorICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEg
KCZhdXggYSAmYXV4IGIpKQorICAgICAgICAgICAgICAgICAgIChsaXN0IGEgYikpKQorICAgICAg
ICAgICAgICAgIDp0eXBlICdjbC0tcGNhc2UtbGFtYmRhLWxpc3QtYmFkLWxhbWJkYS1saXN0KSkK
KworKGVydC1kZWZ0ZXN0IHBjYXNlLXRlc3RzLWNsLWxhbWJkYS0mYXV4ICgpCisgIChzaG91bGQg
KGVxdWFsIChsaXN0IDEgMiBuaWwgbmlsKQorICAgICAgICAgICAgICAgICAocGNhc2UgbmlsCisg
ICAgICAgICAgICAgICAgICAgKChjbC1sYW1iZGEgKCZhdXggKGEgMSkgKGIgMikgKGMpIGQpKQor
ICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgYyBkKSkpKSkKKworICAoc2hvdWxkIChlcXVh
bCAobGlzdCAwIDEgMiBuaWwgbmlsKQorICAgICAgICAgICAgICAgICAocGNhc2UgKGxpc3QgMCkK
KyAgICAgICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoejAgJmF1eCAoYSAxKSAoYiAyKSAoYykg
ZCkpCisgICAgICAgICAgICAgICAgICAgIChsaXN0IHowIGEgYiBjIGQpKSkpKSkKKworKGVydC1k
ZWZ0ZXN0IHBjYXNlLXRlc3RzLWNsLWxhbWJkYS0mYXV4LXN1Yi1wYXR0ZXJucyAoKQorICAoc2hv
dWxkIChlcXVhbCAobGlzdCAxIDIpCisgICAgICAgICAgICAgICAgIChwY2FzZSBuaWwKKyAgICAg
ICAgICAgICAgICAgICAoKGNsLWxhbWJkYSAoJmF1eCAoYCgsYSAsYikgKGxpc3QgMSAyKSkpKQor
ICAgICAgICAgICAgICAgICAgICAobGlzdCBhIGIgKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBwY2Fz
ZS10ZXN0cy1jbC1sYW1iZGEtYWxsICgpCisgIChzaG91bGQgKGVxdWFsICcoMSAyIDMgNCA1ICg6
azEgMTExIDprMiAyMjIpIDExMSAyMjIgMzMzIDQ0NCkKKyAgICAgICAgICAgICAgICAgKHBjYXNl
IChsaXN0IDEgMiAzIDQgNSA6azEgMTExIDprMiAyMjIpCisgICAgICAgICAgICAgICAgICAgKChj
bC1sYW1iZGEgKCBhIGIgYworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wdGlv
bmFsIGQgZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlc3QgcgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleSBrMSBrMgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJmF1eCAoeDEgMzMzKSAoeDIgNDQ0KSkpCisgICAgICAgICAgICAgICAg
ICAgIChsaXN0IGEgYiBjIGQgZSByIGsxIGsyIHgxIHgyKSkpKSkpCisKIDs7OyBwY2FzZS10ZXN0
cy5lbCBlbmRzIGhlcmUuCi0tIAoyLjM0LjEKCg==

--b1_TJ92SD8NGM37oLvDrnzOJ5ksQWEvU5jEnoHfJPwkcjE--