GNU logs - #33827, boring messages


Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#33827: SRFI 69 weak hash-tables is broken
Resent-From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Fri, 21 Dec 2018 16:23:01 +0000
Resent-Message-ID: <handler.33827.B.154540933131085 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 33827
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 33827 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-guile@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.154540933131085
          (code B ref -1); Fri, 21 Dec 2018 16:23:01 +0000
Received: (at submit) by debbugs.gnu.org; 21 Dec 2018 16:22:11 +0000
Received: from localhost ([127.0.0.1]:58702 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gaNYw-00085J-Mw
	for submit <at> debbugs.gnu.org; Fri, 21 Dec 2018 11:22:10 -0500
Received: from eggs.gnu.org ([208.118.235.92]:38466)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1gaIl3-0004l1-FX
 for submit <at> debbugs.gnu.org; Fri, 21 Dec 2018 06:14:21 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <jessymilare@HIDDEN>) id 1gaIkw-0002XP-2b
 for submit <at> debbugs.gnu.org; Fri, 21 Dec 2018 06:14:15 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=1.0 required=5.0 tests=BAYES_40,FREEMAIL_FROM,
 FROM_EXCESS_BASE64,HTML_MESSAGE autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:47113)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <jessymilare@HIDDEN>)
 id 1gaIks-0002VH-Vj
 for submit <at> debbugs.gnu.org; Fri, 21 Dec 2018 06:14:12 -0500
Received: from eggs.gnu.org ([2001:4830:134:3::10]:48052)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <jessymilare@HIDDEN>) id 1gaIks-0000H5-6C
 for bug-guile@HIDDEN; Fri, 21 Dec 2018 06:14:10 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <jessymilare@HIDDEN>) id 1gaIkq-0002TZ-7l
 for bug-guile@HIDDEN; Fri, 21 Dec 2018 06:14:10 -0500
Received: from mail-it1-x132.google.com ([2607:f8b0:4864:20::132]:50343)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <jessymilare@HIDDEN>)
 id 1gaIko-0002O5-4I
 for bug-guile@HIDDEN; Fri, 21 Dec 2018 06:14:08 -0500
Received: by mail-it1-x132.google.com with SMTP id z7so6299507iti.0
 for <bug-guile@HIDDEN>; Fri, 21 Dec 2018 03:14:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=tQuJtSolxmnboASWju1QdWd1dlujOQQsBsIbcgLjK3E=;
 b=IJ0Rh4Bmd2+63UsLz8WcNjzV2udlMK1UvNmEe2Ufgy3R/ds0mas8G9PrgzqbYL44QW
 6geH1Jy7a9ZKz1UnZpmsIyieLlJtXy3ZFgELV5S5h+38cFy8CGus/G4KcZZEi9W7RNTf
 ID+GW/u7Q/3rQntS2xVAxK0ZC4vfXlRQiKXHmp+og6shl1Z++gQ2PUr3gCq2eQpXPIUK
 D/3+mj6SRswGTVbq94J/rnBVTX37dP0wdy4dS+18BTnAfofq1DxhWk+sQ5ugJWYrntkE
 PpbYcV7pCl8nqGHGbvu4UeOWV3FAMJjVL3B/4C9NZnu+GOpGkk0D6BDKogSay8kK0Ksv
 QAeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=tQuJtSolxmnboASWju1QdWd1dlujOQQsBsIbcgLjK3E=;
 b=aTLw4ayikTBGQqq5s6lh4LRHa4kms4aTbR92Tc37KsFwiVSwrydhU4C/0iBiaal2M4
 Q/jF3l+53Rg5CDBsNXrwkYt7evU+WtLXMIrjrn2uqi9bDcs8f8N8JlJkq3P/HGlIAvTB
 J6ExWNGJsOa6zzDlEwqq/Xmgy3vSF5fDW1YPkPGWc71wUMyvXQFr27jH2iZITN4huhaK
 qXnwOSb1bk8F1MclJQXWobEobCtXUSCx9/O3Tx45GODZ7XqktKabBBJKx3cqzWwsVdMg
 djDf25r2wIpWdK9ygnfz5PtKsmkfMsRHvm2g5ml0k5KPc+sbTrMmN4ggq9M+Kjpe58jK
 nEow==
X-Gm-Message-State: AA+aEWY6b2GbAnGFd9kLBHA7zshFhx5tI4gCRDRssHMUgyo1F8NfasAF
 LksYZywGFHVje1RQ2y9fQ0RdMyXQil/OsTya13UussCI
X-Google-Smtp-Source: AFSGD/U5zkF7HlRvCRPqgsS4pyUGY9biT/Nn9KOO+Sh7IqoIyKVT9VBLyHrnO26oYWb5C3h/DBuKNaMDiADpU9GR8sg=
X-Received: by 2002:a24:6c12:: with SMTP id w18mr1822384itb.14.1545390841804; 
 Fri, 21 Dec 2018 03:14:01 -0800 (PST)
MIME-Version: 1.0
From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Date: Fri, 21 Dec 2018 09:13:50 -0200
Message-ID: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000002a3f90057d865886"
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
 recognized.
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -3.9 (---)
X-Mailman-Approved-At: Fri, 21 Dec 2018 11:22:09 -0500
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: -4.9 (----)

--0000000000002a3f90057d865886
Content-Type: text/plain; charset="UTF-8"

The srfi-69 implementation that comes with Guile doesn't function properly
when some non-false #:weak argument is provided. The problems seems to be
that it tries to use handles, which are only available for non-weak
hash-tables.

scheme@(guile-user)> (import (srfi :69))
scheme@(guile-user)> (define ht (make-hash-table eq? hashq #:weak 'key))
scheme@(guile-user)> (hash-table-set! ht 10 10)
ERROR: In procedure hashx-create-handle!:
In procedure scm_hash_fn_create_handle_x: Wrong type argument in position 1
(expecting hash-table): #<weak-table 0/31>

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(guile-user) [1]>


Regards,
Jessica

--0000000000002a3f90057d865886
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr">The srf=
i-69 implementation that comes with Guile doesn&#39;t function properly whe=
n some non-false #:weak argument is provided. The problems seems to be that=
 it tries to use handles, which are only available for non-weak hash-tables=
.<div><br></div></div></div></div><blockquote style=3D"margin:0 0 0 40px;bo=
rder:none;padding:0px"><div><div><div><div><div><font face=3D"monospace, mo=
nospace">scheme@(guile-user)&gt; (import (srfi :69))</font></div></div></di=
v></div></div><div><div><div><div><div><font face=3D"monospace, monospace">=
scheme@(guile-user)&gt; (define ht (make-hash-table eq? hashq #:weak &#39;k=
ey))</font></div></div></div></div></div><div><div><div><div><div><font fac=
e=3D"monospace, monospace">scheme@(guile-user)&gt; (hash-table-set! ht 10 1=
0)</font></div></div></div></div></div><div><div><div><div><div><font face=
=3D"monospace, monospace">ERROR: In procedure hashx-create-handle!:</font><=
/div></div></div></div></div><div><div><div><div><div><font face=3D"monospa=
ce, monospace">In procedure scm_hash_fn_create_handle_x: Wrong type argumen=
t in position 1 (expecting hash-table): #&lt;weak-table 0/31&gt;</font></di=
v></div></div></div></div><div><div><div><div><div><font face=3D"monospace,=
 monospace"><br></font></div></div></div></div></div><div><div><div><div><d=
iv><font face=3D"monospace, monospace">Entering a new prompt.=C2=A0 Type `,=
bt&#39; for a backtrace or `,q&#39; to continue.</font></div></div></div></=
div></div><div><div><div><div><div><font face=3D"monospace, monospace">sche=
me@(guile-user) [1]&gt;</font></div></div></div></div></div></blockquote><d=
iv dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div><br></div><div>Regard=
s,</div><div>Jessica</div></div></div></div></div>

--0000000000002a3f90057d865886--




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: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Subject: bug#33827: Acknowledgement (SRFI 69 weak hash-tables is broken)
Message-ID: <handler.33827.B.154540933131085.ack <at> debbugs.gnu.org>
References: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
X-Gnu-PR-Message: ack 33827
X-Gnu-PR-Package: guile
Reply-To: 33827 <at> debbugs.gnu.org
Date: Fri, 21 Dec 2018 16:23: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-guile@HIDDEN

If you wish to submit further information on this problem, please
send it to 33827 <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
33827: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D33827
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#33827: Attempt to fix
References: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
In-Reply-To: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
Resent-From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Sat, 22 Dec 2018 17:46:01 +0000
Resent-Message-ID: <handler.33827.B33827.154550070420551 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 33827
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 33827 <at> debbugs.gnu.org
Received: via spool by 33827-submit <at> debbugs.gnu.org id=B33827.154550070420551
          (code B ref 33827); Sat, 22 Dec 2018 17:46:01 +0000
Received: (at 33827) by debbugs.gnu.org; 22 Dec 2018 17:45:04 +0000
Received: from localhost ([127.0.0.1]:60201 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1galKh-0005LO-Nq
	for submit <at> debbugs.gnu.org; Sat, 22 Dec 2018 12:45:03 -0500
Received: from mail-io1-f51.google.com ([209.85.166.51]:46874)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1galKf-0005Kc-PL
 for 33827 <at> debbugs.gnu.org; Sat, 22 Dec 2018 12:45:02 -0500
Received: by mail-io1-f51.google.com with SMTP id v10so6216110ios.13
 for <33827 <at> debbugs.gnu.org>; Sat, 22 Dec 2018 09:45:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=HoyMrOlzoXi0NvLyzRanSvWmKeA2kYKGV6cb+7sYV2Y=;
 b=MYPlJOHd0BgOEVu4uJ9OJDXzE2Xz0cPnR9v0zumEJI8d6hqK519PPsBu1/dw/3WHEf
 8YKpEiayCGqqwIuxonZYg5gtYil2lhqFPZIq/MNa0i5A73SQwfa5PxcpKVu5PmkNh2AS
 nRR/0AQ6HXg7uObetMvWwPpxv3Dp3A63YVSXdS8A3FNN9PdQ5AbXCvwfBjp1x4wejkB0
 u1iBNy7j9LjeqYtgRBdvBTF2JfhELi/MFWDj+Q4H1M5o8ymaMmXe+pZLZG8gxoWDBXUx
 8BQyOhAjOn69+kMGCIVSgigFZBoJjdxbTSTvSChQMAkYT9pmjbgfmWXhnxWnWMudUcfv
 QiiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=HoyMrOlzoXi0NvLyzRanSvWmKeA2kYKGV6cb+7sYV2Y=;
 b=Ja/vZG8dHpF1nLuuYUVHMp2iKU0lGha/nTR3C3y/v/GrtZPQJ9HWTmIc4PGwBMayaR
 yaXs5oLXHLzjWQW52M6s0WQq9hmzVVY6pXuLePEdgLkKUzI6RQLG1NBEqe1zIfiGcSpn
 GTDZF6b+UtsMmrCl2DcQh5UiVttMUYHpKUl661TCgy58AF/YM5CE10WGGBhqzgp3l4Gv
 T8bVfZ6Lwq4kqQbN5Kqcb1uZ84yP4oRGkoI7GYoo/sChrNujbt613YIbcsIsRStSyxYq
 X2NIknW8jLBI5ztLqJijihw1qV2cJCrRqp1yK9Cfv8ybElMFq6y3lsmIUWvJPAUERDKU
 4CGA==
X-Gm-Message-State: AJcUukfi7o4c6mxny+/uXwq+SMYrsL/71SoaxgwGhXKCLKxdFyQYlQqo
 w2k1N3Y/BF/zjkRPG982FGvwWWoUc6PU4zR5LjxN4Q==
X-Google-Smtp-Source: ALg8bN5a2KJ+XJsvyMBt2vIGwUOKcYw+HtGeobbYqQR8fHTJIHAwgE4xzNUPOUkg1zOFeR2wzCiEkSdLA8VhaIVdX94=
X-Received: by 2002:a6b:156:: with SMTP id 83mr4743257iob.63.1545500695595;
 Sat, 22 Dec 2018 09:44:55 -0800 (PST)
MIME-Version: 1.0
From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Date: Sat, 22 Dec 2018 15:44:44 -0200
Message-ID: <CAGBcF1YqKUqkNzSW_=hNVVE86WU2Hdh6RGBW3KD7AU7dj_iQRA@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000f60eab057d9febc3"
X-Spam-Score: 0.1 (/)
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: -0.9 (/)

--000000000000f60eab057d9febc3
Content-Type: text/plain; charset="UTF-8"

I'll try to fix this bug and create some tests, then I send a format-patch
here. I'll need to do that anyway.

--000000000000f60eab057d9febc3
Content-Type: text/html; charset="UTF-8"

<div dir="ltr">I&#39;ll try to fix this bug and create some tests, then I send a format-patch here. I&#39;ll need to do that anyway.</div>

--000000000000f60eab057d9febc3--




Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#33827: Patch
References: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
In-Reply-To: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
Resent-From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Sun, 23 Dec 2018 17:10:02 +0000
Resent-Message-ID: <handler.33827.B33827.154558498222678 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 33827
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 33827 <at> debbugs.gnu.org
Received: via spool by 33827-submit <at> debbugs.gnu.org id=B33827.154558498222678
          (code B ref 33827); Sun, 23 Dec 2018 17:10:02 +0000
Received: (at 33827) by debbugs.gnu.org; 23 Dec 2018 17:09:42 +0000
Received: from localhost ([127.0.0.1]:33966 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gb7G1-0005th-Ia
	for submit <at> debbugs.gnu.org; Sun, 23 Dec 2018 12:09:42 -0500
Received: from mail-io1-f47.google.com ([209.85.166.47]:43217)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1gb7Fz-0005tU-A2
 for 33827 <at> debbugs.gnu.org; Sun, 23 Dec 2018 12:09:40 -0500
Received: by mail-io1-f47.google.com with SMTP id q17so4151119ior.10
 for <33827 <at> debbugs.gnu.org>; Sun, 23 Dec 2018 09:09:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=gPxRgx/PXSiUvuxxbLLlD7TRxE9/gR3n6MpbGVuzHGs=;
 b=nV6BldKApEzuHtIR+P9O0inLtyaK6Vs1JlBsr+1yvpLM7sH/YcqPE101MNDK2YFIHU
 4V/AI2AoseP1nWXEgB900NHmJuyIQxbwrVzDXUxlgykZ+MSSkyHUTRcxt/go5NYM+cem
 7eELVrvpoaFzdW+t7fVzEABeeTnfv5uBs7KXFE8g+kg5//7decjmYBIbPMPMKTj7/seQ
 qxya20PR9f7m3P/49T1Cknv5xZY4XVmHOAV81SyNA1pAy0uPzd2k1lEx6POepRC6bfSf
 rhAKelXPCRE5PqkKZzbWJzBezTZMt1EZ1jrYI4flxHNZ9mFBh+Honkc1r6iOkUzdUhhv
 w2dQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=gPxRgx/PXSiUvuxxbLLlD7TRxE9/gR3n6MpbGVuzHGs=;
 b=k1OXwsdTmkJ0nSmrcvl0DlQiC8FK2AKE+Aaw8OGc56I+Hjz0IhE4Q8to3XHr/r7oQA
 KEibkUUmEMRgyOlKIPnp0Pj1QzGqPE821rvmKgX0U+isA2HobQWj2se1UziJ6wIW5e8A
 lQd7r71jtVpWdP7x1d9ycfVDUWsa0JDflQLUXMGBAFwcJ+iQlZAmx0BJcbseA1myT0Kw
 gHeomQv0tMyihFlD2gbH/imwuf9MTPshs7OhRYR+0qPXBljn4EAJXVRwbpONh7itWMuB
 yWF6Cv4dspkwzZdRZdqAqFhyLq1pnzII3dbaEi5OfAhTWGrk5fgCgjYGzzS2ayRKjkD4
 cIjg==
X-Gm-Message-State: AJcUukcA05edCyoh6/+sL7z1KlaxF+HIgRueI+8xJIG6jmPMYUaJ8GWz
 Fb2eAbn7Q3UFPAMy8Yl4wBaxFpUi9aEoD1sFc8awWQ==
X-Google-Smtp-Source: ALg8bN5B1ZrQ3bVVjPhIcFf9A3pX4ejXKy/bsQY/r+Fb9Mp5HAI8VJw8wLDnx5tZobD0NXnBQP2C4Ow1DI0hRkcTmMU=
X-Received: by 2002:a6b:600b:: with SMTP id r11mr7537125iog.259.1545584973273; 
 Sun, 23 Dec 2018 09:09:33 -0800 (PST)
MIME-Version: 1.0
From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Date: Sun, 23 Dec 2018 15:09:22 -0200
Message-ID: <CAGBcF1Z5WmXij2vX+EhxQHvWkmmOkeL-hV+Y-SUSpByH0tZQHw@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000004d8042057db38bed"
X-Spam-Score: 0.1 (/)
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: -0.9 (/)

--0000000000004d8042057db38bed
Content-Type: multipart/alternative; boundary="0000000000004d8040057db38beb"

--0000000000004d8040057db38beb
Content-Type: text/plain; charset="UTF-8"



--0000000000004d8040057db38beb
Content-Type: text/html; charset="UTF-8"

<div dir="ltr"><br></div>

--0000000000004d8040057db38beb--

--0000000000004d8042057db38bed
Content-Type: text/x-patch; charset="UTF-8"; 
	name="0001-Fix-SRFI-69-don-t-use-handles-with-weak-tables-anymo.patch"
Content-Disposition: attachment; 
	filename="0001-Fix-SRFI-69-don-t-use-handles-with-weak-tables-anymo.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jq15dexw0>
X-Attachment-Id: f_jq15dexw0

RnJvbSA4N2ZmNTE5YjkyODhkZWRjYzYyYTJmZDFiMmMwM2VjY2JmNjMxZTU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBTdW4sIDIzIERlYyAyMDE4IDE1OjA3OjMy
IC0wMjAwClN1YmplY3Q6IFtQQVRDSF0gRml4OiAoU1JGSSA6NjkpIGRvbid0IHVzZSBoYW5kbGVz
IHdpdGggd2VhayB0YWJsZXMgYW55bW9yZS4KCk1hbnkgcHJvY2VkdXJlcyB1c2VkIGhhc2h4LWdl
dC1oYW5kbGUgYW5kIGhhc2h4LWNyZWF0ZS1oYW5kbGUhIHdpdGhvdXQKY2hlY2tpbmcgd2hldGhl
ciByZWFsLWhhc2gtdGFibGUgd2FzIHdlYWsuIE5vdyB0aGF0IGlzbid0IHRoZSBjYXNlCmFueW1v
cmUgKEJ1ZyAzMzgyNykuIEEgYnVnIHdhcyBmaXhlZCBpbiBoYXNoLXRhYmxlLW1lcmdlISBhbmQg
YSB0ZXN0IGNhc2UKd2FzIGFkZGVkLiBBIGZldyBvdGhlciBvcHRpbWl6YXRpb25zIHdlcmUgbWFk
ZS4KCiogbW9kdWxlL3NyZmkvc3JmaS02OS5zY20gKGFsaXN0LT5oYXNoLXRhYmxlKToKKGhhc2gt
dGFibGUtZGVsZXRlISk6CihoYXNoLXRhYmxlLWV4aXN0cz8pOgooaGFzaC10YWJsZS1yZWYpOiBE
b24ndCB1c2UgaGFzaHgtZ2V0LWhhbmRsZS4KKGhhc2gtdGFibGUtc2V0ISk6IElmIHdlYWtuZXNz
IGlzIHNldCwgZG9uJ3QgdXNlIGhhc2h4LWNyZWF0ZS1oYW5kbGUhCmFuZCBkb24ndCB1cGRhdGUg
c2l6ZS4KKGhhc2gtdGFibGUtdXBkYXRlISk6IElmIHdlYWtuZXNzIGlzIHNldCwgZG9uJ3QgdXNl
IGhhc2h4LWdldC1oYW5kbGUKYW5kIGRvbid0IHVwZGF0ZSBzaXplLiBPdGhlcndpc2UsIGNoZWNr
IHdoZXRoZXIgZGVmYXVsdC10aHVuayBpcyBnaXZlbgphbmQsIGlmIHNvLCB1c2UgaGFzaHgtY3Jl
YXRlLWhhbmRsZSEgdG8gYXZvaWQgZG91YmxlIGxvb2t1cC4KKGhhc2gtdGFibGUtdXBkYXRlIS9k
ZWZhdWx0KTogQWRkZWQgYW4gaW1wbGVtZW50YXRpb24gdGhhdCBkb2Vzbid0IGNhbGwKaGFzaC10
YWJsZS11cGRhdGUhLCBhdm9pZGluZyBhbGxvY2F0aW5nIGEgcHJvY2VkdXJlLgooaGFzaC10YWJs
ZS1zaXplKTogU2V0IGh0LXNpemUgZm9yIHdlYWsgaGFzaC10YWJsZXMuCihoYXNoLXRhYmxlLXdh
bGspOgooaGFzaC10YWJsZS1jb3B5KTogVXNlIG5hdGl2ZSBoYXNoLWZvci1lYWNoIGluc3RlYWQg
b2YgaGFzaC10YWJsZS1mb2xkLgooaGFzaC10YWJsZS0+YWxpc3QpOiBVc2UgbmF0aXZlIGhhc2gt
bWFwLT5saXN0IGluc3RlYWQgb2YgaGFzaC10YWJsZS1mb2xkLgooaGFzaC10YWJsZS1tZXJnZSEp
OiBVc2UgbmF0aXZlIGhhc2gtZm9yLWVhY2ggaW5zdGVhZCBvZiBoYXNoLXRhYmxlLWZvbGQuCldh
bGtzIG92ZXIgb3RoZXItaHQgcmF0aGVyIHRoYW4gd2Fsa2luZyBodCAoYW5kIGRvaW5nIG5vdGhp
bmcpLgoqIHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0OiBhbGwgYXBwcm9wcmlhdGUgdGVz
dCBhcmUgcmVwbGljYXRlZCBmb3IKYWxsIHBvc3NpYmxlIHdlYWs6IGFyZ3VtZW50cy4gQWRkZWQg
YSB0ZXN0IGZvciBoYXNoLXRhYmxlLW1lcmdlIS4KLS0tCiBUSEFOS1MgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMSArCiBtb2R1bGUvc3JmaS9zcmZpLTY5LnNjbSAgICAgICB8IDE0OSArKysr
KysrKysrKysrKysrKy0tLS0tLS0tLS0tCiB0ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdCB8
IDE3NyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQs
IDIwNSBpbnNlcnRpb25zKCspLCAxMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvVEhBTktT
IGIvVEhBTktTCmluZGV4IDYxNmQzYjA0Yi4uOTA1NmE3OTVjIDEwMDY0NAotLS0gYS9USEFOS1MK
KysrIGIvVEhBTktTCkBAIC0yMCw2ICsyMCw3IEBAIENvbnRyaWJ1dG9ycyBzaW5jZSB0aGUgbGFz
dCByZWxlYXNlOgogICAgICAgICAgICBOb2FoIExhdmluZQogICAgICAgICAgRGFuaWVsIExsb3Jl
bnMKICAgICAgICAgR3JlZ29yeSBNYXJ0b24KKyAgICAgICAgSsOpc3NpY2EgTWlsYXLDqQogICAg
ICAgVGhpZW4tVGhpIE5ndXllbgogICAgICAgICBIYW4tV2VuIE5pZW5odXlzCiAgICAgICAgICAg
ICBKYW4gTmlldXdlbmh1aXplbgpkaWZmIC0tZ2l0IGEvbW9kdWxlL3NyZmkvc3JmaS02OS5zY20g
Yi9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQppbmRleCBiOTQ4NmM0NjUuLmEwNWVjNjFlYSAxMDA2
NDQKLS0tIGEvbW9kdWxlL3NyZmkvc3JmaS02OS5zY20KKysrIGIvbW9kdWxlL3NyZmkvc3JmaS02
OS5zY20KQEAgLTYyLDYgKzYyLDE0IEBACiA7OyBpbXBsZW1lbnRhdGlvbiwgYm90aCBhbnN3ZXIg
KCJ4WSIpLiAgSG93ZXZlciwgSSBkb24ndCBndWFyYW50ZWUgdGhhdAogOzsgdGhpcyB3b24ndCBj
aGFuZ2UgaW4gdGhlIGZ1dHVyZS4KIAorCis7Ozs7IENvbW1lbnRhcnkgYnkgSmVzc2ljYSBNaWxh
cmUgMjAxOAorCis7OyBNYWtlIGJ1ZyBmaXhlcyBmb3Igd2VhayBoYXNoLXRhYmxlcywgc2luY2Ug
aGFuZGxlcyBkb24ndCB3b3JrIGFueW1vcmUsCis7OyBhbmQgYWxzbyBzb21lIG9wdGltaXphdGlv
bnMuCis7OworOzsgTXkgcGVyc29uYWwgY29tbWVudHMgYXJlIG1hcmtlZCBieSBKLk0uCisKIDs7
OyBDb2RlOgogDAogOzs7OyBNb2R1bGUgZGVmaW5pdGlvbiAmIGV4cG9ydHMKQEAgLTczLDE4ICs4
MSwxOCBAQAogICAjOnVzZS1tb2R1bGUgKGljZS05IG9wdGFyZ3MpCiAgICM6ZXhwb3J0ICg7OyBU
eXBlIGNvbnN0cnVjdG9ycyAmIHByZWRpY2F0ZQogCSAgICBtYWtlLWhhc2gtdGFibGUgaGFzaC10
YWJsZT8gYWxpc3QtPmhhc2gtdGFibGUKLQkgICAgOzsgUmVmbGVjdGl2ZSBxdWVyaWVzCi0JICAg
IGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9u
Ci0JICAgIDs7IERlYWxpbmcgd2l0aCBzaW5nbGUgZWxlbWVudHMKLQkgICAgaGFzaC10YWJsZS1y
ZWYgaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBoYXNoLXRhYmxlLXNldCEKLQkgICAgaGFzaC10YWJs
ZS1kZWxldGUhIGhhc2gtdGFibGUtZXhpc3RzPyBoYXNoLXRhYmxlLXVwZGF0ZSEKLQkgICAgaGFz
aC10YWJsZS11cGRhdGUhL2RlZmF1bHQKLQkgICAgOzsgRGVhbGluZyB3aXRoIHRoZSB3aG9sZSBj
b250ZW50cwotCSAgICBoYXNoLXRhYmxlLXNpemUgaGFzaC10YWJsZS1rZXlzIGhhc2gtdGFibGUt
dmFsdWVzCi0JICAgIGhhc2gtdGFibGUtd2FsayBoYXNoLXRhYmxlLWZvbGQgaGFzaC10YWJsZS0+
YWxpc3QKLQkgICAgaGFzaC10YWJsZS1jb3B5IGhhc2gtdGFibGUtbWVyZ2UhCi0JICAgIDs7IEhh
c2hpbmcKLQkgICAgc3RyaW5nLWNpLWhhc2ggaGFzaC1ieS1pZGVudGl0eSkKKyAgICAgICAgICAg
IDs7IFJlZmxlY3RpdmUgcXVlcmllcworICAgICAgICAgICAgaGFzaC10YWJsZS1lcXVpdmFsZW5j
ZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgIDs7IERlYWxp
bmcgd2l0aCBzaW5nbGUgZWxlbWVudHMKKyAgICAgICAgICAgIGhhc2gtdGFibGUtcmVmIGhhc2gt
dGFibGUtcmVmL2RlZmF1bHQgaGFzaC10YWJsZS1zZXQhCisgICAgICAgICAgICBoYXNoLXRhYmxl
LWRlbGV0ZSEgaGFzaC10YWJsZS1leGlzdHM/IGhhc2gtdGFibGUtdXBkYXRlIQorICAgICAgICAg
ICAgaGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQKKyAgICAgICAgICAgIDs7IERlYWxpbmcgd2l0
aCB0aGUgd2hvbGUgY29udGVudHMKKyAgICAgICAgICAgIGhhc2gtdGFibGUtc2l6ZSBoYXNoLXRh
YmxlLWtleXMgaGFzaC10YWJsZS12YWx1ZXMKKyAgICAgICAgICAgIGhhc2gtdGFibGUtd2FsayBo
YXNoLXRhYmxlLWZvbGQgaGFzaC10YWJsZS0+YWxpc3QKKyAgICAgICAgICAgIGhhc2gtdGFibGUt
Y29weSBoYXNoLXRhYmxlLW1lcmdlIQorICAgICAgICAgICAgOzsgSGFzaGluZworICAgICAgICAg
ICAgc3RyaW5nLWNpLWhhc2ggaGFzaC1ieS1pZGVudGl0eSkKICAgIzpyZS1leHBvcnQgKHN0cmlu
Zy1oYXNoKQogICAjOnJlcGxhY2UgKGhhc2ggbWFrZS1oYXNoLXRhYmxlIGhhc2gtdGFibGU/KSkK
IApAQCAtMjA0LDMwICsyMTIsMzIgQEAgbWFudWFsIGZvciBzcGVjaWZpY3MsIG9mIHdoaWNoIHRo
ZXJlIGFyZSBtYW55LiIKIAkgKHNpemUgKGh0LXNpemUgcmVzdWx0KSkpCiAgICAgKHdpdGgtaGFz
aHgtdmFsdWVzIChoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlKSByZXN1bHQKICAgICAg
IChmb3ItZWFjaCAobGFtYmRhIChwYWlyKQotCQkgIChsZXQgKChoYW5kbGUgKGhhc2h4LWdldC1o
YW5kbGUgaGFzaC1wcm9jIGFzc29jaWF0b3IKLQkJCQkJCSAgcmVhbC10YWJsZSAoY2FyIHBhaXIp
KSkpCi0JCSAgICAoY29uZCAoKG5vdCBoYW5kbGUpCi0JCQkgICAoc2V0ISBzaXplICgxKyBzaXpl
KSkKLQkJCSAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUKLQkJ
CQkgICAgICAgKGNhciBwYWlyKSAoY2RyIHBhaXIpKSkpKSkKLQkJYWxpc3QpKQorICAgICAgICAg
ICAgICAgICAgKGxldCAoKHZhbHVlIChoYXNoeC1yZWYgaGFzaC1wcm9jIGFzc29jaWF0b3IKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWwtdGFibGUgKGNhciBw
YWlyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHQtdW5zcGVj
aWZpZWQpKSkKKyAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChlcT8gaHQtdW5zcGVjaWZpZWQg
dmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBzaXplICgxKyBzaXplKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBhc3NvY2lh
dG9yIHJlYWwtdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj
YXIgcGFpcikgKGNkciBwYWlyKSkpKSkpCisgICAgICAgICAgICAgICAgYWxpc3QpKQogICAgICho
dC1zaXplISByZXN1bHQgc2l6ZSkKICAgICByZXN1bHQpKQogDAogOzs7OyBBY2Nlc3NpbmcgdGFi
bGUgaXRlbXMKIAogOzsgV2UgdXNlIHRoaXMgdG8gZGVub3RlIG1pc3Npbmcgb3IgdW5zcGVjaWZp
ZWQgdmFsdWVzIHRvIGF2b2lkCisKIDs7IHBvc3NpYmxlIGNvbGxpc2lvbiB3aXRoICp1bnNwZWNp
ZmllZCouCiAoZGVmaW5lIGh0LXVuc3BlY2lmaWVkIChjb25zICp1bnNwZWNpZmllZCogImh0LXZh
bHVlIikpCiAKLShkZWZpbmUgKGhhc2gtdGFibGUtcmVmIGh0IGtleSAuIGRlZmF1bHQtdGh1bmst
bHN0KQorKGRlZmluZSogKGhhc2gtdGFibGUtcmVmIGh0IGtleSAgIzpvcHRpb25hbCAoZGVmYXVs
dC10aHVuayBodC11bnNwZWNpZmllZCkpCiAgICJMb29rdXAgS0VZIGluIEhUIGFuZCBhbnN3ZXIg
dGhlIHZhbHVlLCBpbnZva2UgREVGQVVMVC1USFVOSyBpZiBLRVkKIGlzbid0IHByZXNlbnQsIG9y
IHNpZ25hbCBhbiBlcnJvciBpZiBERUZBVUxULVRIVU5LIGlzbid0IHByb3ZpZGVkLiIKICAgKGxl
dCAoKHJlc3VsdCAoaGFzaHgtaW52b2tlIGhhc2h4LXJlZiBodCBrZXkgaHQtdW5zcGVjaWZpZWQp
KSkKICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCByZXN1bHQpCi0JKGlmIChwYWlyPyBkZWZh
dWx0LXRodW5rLWxzdCkKLQkgICAgKChmaXJzdCBkZWZhdWx0LXRodW5rLWxzdCkpCi0JICAgIChl
cnJvciAiS2V5IG5vdCBpbiB0YWJsZSIga2V5IGh0KSkKKwkoaWYgKGVxPyBodC11bnNwZWNpZmll
ZCBkZWZhdWx0LXRodW5rKQorCSAgICAoZXJyb3IgIktleSBub3QgaW4gdGFibGUiIGtleSBodCkK
KwkgICAgKGRlZmF1bHQtdGh1bmspKQogCXJlc3VsdCkpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxl
LXJlZi9kZWZhdWx0IGh0IGtleSBkZWZhdWx0KQpAQCAtMjM3LDQ5ICsyNDcsNzkgQEAgcHJlc2Vu
dC4iCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtc2V0ISBodCBrZXkgbmV3LXZhbHVlKQogICAiU2V0
IEtFWSB0byBORVctVkFMVUUgaW4gSFQuIgotICAobGV0ICgoaGFuZGxlIChoYXNoeC1pbnZva2Ug
aGFzaHgtY3JlYXRlLWhhbmRsZSEgaHQga2V5IGh0LXVuc3BlY2lmaWVkKSkpCi0gICAgKGlmIChl
cT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5kbGUpKQotCShodC1zaXplISBodCAoMSsgKGh0LXNp
emUgaHQpKSkpCi0gICAgKHNldC1jZHIhIGhhbmRsZSBuZXctdmFsdWUpKQorICAoaWYgKGh0LXdl
YWtuZXNzIGh0KQorICAgICAgOzsgSi5NLiBzZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3
ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQorICAgICAgOzsgSi5NLiBkb24ndCBuZWVkIHRvIHVwZGF0
ZSBzaXplIGZvciB3ZWFrIGhhc2gtdGFibGVzCisgICAgICAoaGFzaHgtaW52b2tlIGhhc2h4LXNl
dCEgaHQga2V5IG5ldy12YWx1ZSkKKyAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWludm9rZSBo
YXNoeC1jcmVhdGUtaGFuZGxlISBodCBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAo
Y2RyIGhhbmRsZSkpCisgICAgICAgICAgICAoaHQtc2l6ZSEgaHQgKDErIChodC1zaXplIGh0KSkp
KQorICAgICAgICAoc2V0LWNkciEgaGFuZGxlIG5ldy12YWx1ZSkpKQogICAqdW5zcGVjaWZpZWQq
KQogCiAoZGVmaW5lIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQga2V5KQogICAiUmVtb3ZlIEtFWSdz
IGFzc29jaWF0aW9uIGluIEhULiIKICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC1odCkg
aHQKLSAgICAoaWYgKGhhc2h4LWdldC1oYW5kbGUgaCBhIHJlYWwtaHQga2V5KQotCShiZWdpbgot
CSAgKGh0LXNpemUhIGh0ICgxLSAoaHQtc2l6ZSBodCkpKQotCSAgKGhhc2h4LXJlbW92ZSEgaCBh
IHJlYWwtaHQga2V5KSkpKQorICAgIChpZiAobm90IChlcT8gaHQtdW5zcGVjaWZpZWQgKGhhc2h4
LXJlZiBoIGEgcmVhbC1odCBrZXkgaHQtdW5zcGVjaWZpZWQpKSkKKyAgICAgICAgKGJlZ2luCisg
ICAgICAgICAgKGh0LXNpemUhIGh0ICgxLSAoaHQtc2l6ZSBodCkpKQorICAgICAgICAgIChoYXNo
eC1yZW1vdmUhIGggYSByZWFsLWh0IGtleSkpKSkKICAgKnVuc3BlY2lmaWVkKikKIAogKGRlZmlu
ZSAoaGFzaC10YWJsZS1leGlzdHM/IGh0IGtleSkKICAgIlJldHVybiB3aGV0aGVyIEtFWSBpcyBh
IGtleSBpbiBIVC4iCi0gIChhbmQgKGhhc2h4LWludm9rZSBoYXNoeC1nZXQtaGFuZGxlIGh0IGtl
eSkgI3QpKQorICAobm90IChlcT8gaHQtdW5zcGVjaWZpZWQgKGhhc2h4LWludm9rZSBoYXNoeC1y
ZWYgaHQga2V5IGh0LXVuc3BlY2lmaWVkKSkpKQogCi07OzsgYGhhc2h4LXNldCEnIGR1cGxpY2F0
ZXMgdGhlIGhhc2ggbG9va3VwLCBidXQgd2UgdXNlIGl0IGFueXdheSB0bwotOzs7IGF2b2lkIGNy
ZWF0aW5nIGEgaGFuZGxlIGluIGNhc2UgREVGQVVMVC1USFVOSyBleGl0cwogOzs7IGBoYXNoLXRh
YmxlLXVwZGF0ZSEnIG5vbi1sb2NhbGx5LgotKGRlZmluZSAoaGFzaC10YWJsZS11cGRhdGUhIGh0
IGtleSBtb2RpZmllciAuIGRlZmF1bHQtdGh1bmstbHN0KQorKGRlZmluZSogKGhhc2gtdGFibGUt
dXBkYXRlISBodCBrZXkgbW9kaWZpZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpv
cHRpb25hbCAoZGVmYXVsdC10aHVuayBodC11bnNwZWNpZmllZCkpCiAgICJNb2RpZnkgSFQncyB2
YWx1ZSBhdCBLRVkgYnkgcGFzc2luZyBpdHMgdmFsdWUgdG8gTU9ESUZJRVIgYW5kCiBzZXR0aW5n
IGl0IHRvIHRoZSByZXN1bHQgdGhlcmVvZi4gIEludm9rZSBERUZBVUxULVRIVU5LIGZvciB0aGUg
b2xkCiB2YWx1ZSBpZiBLRVkgaXNuJ3QgaW4gSFQsIG9yIHNpZ25hbCBhbiBlcnJvciBpZiBERUZB
VUxULVRIVU5LIGlzIG5vdAogcHJvdmlkZWQuIgogICAod2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gt
cHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUpIGh0Ci0gICAgKGxldCAoKGhhbmRsZSAoaGFzaHgt
Z2V0LWhhbmRsZSBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlIGtleSkpKQotICAgICAg
KGNvbmQgKGhhbmRsZQotCSAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgKGNkciBoYW5k
bGUpKSkpCi0JICAgIChlbHNlCi0JICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRv
ciByZWFsLXRhYmxlIGtleQotCQkJIChpZiAocGFpcj8gZGVmYXVsdC10aHVuay1sc3QpCi0JCQkg
ICAgIChtb2RpZmllciAoKGNhciBkZWZhdWx0LXRodW5rLWxzdCkpKQotCQkJICAgICAoZXJyb3Ig
IktleSBub3QgaW4gdGFibGUiIGtleSBodCkpKQotCSAgICAgKGh0LXNpemUhIGh0ICgxKyAoaHQt
c2l6ZSBodCkpKSkpKSkKKyAgICAoaWYgKGh0LXdlYWtuZXNzIGh0KQorICAgICAgICA7OyBKLk0u
IHNlcGFyYXRlIHRoZSBjYXNlIHdoZXJlIGh0IGlzIHdlYWsgLSBkb24ndCB1c2UgaGFuZGxlCisg
ICAgICAgIChsZXQqICgob2xkIChoYXNoeC1yZWYgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10
YWJsZSBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodC11bnNwZWNpZmllZCkp
KQorICAgICAgICAgIChjb25kICgoZXE/IGh0LXVuc3BlY2lmaWVkIG9sZCkKKyAgICAgICAgICAg
ICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgZGVmYXVsdC10aHVuaykKKyAgICAgICAgICAg
ICAgICAgICAgIChlcnJvciAiS2V5IG5vdCBpbiB0YWJsZSIga2V5IGh0KQorICAgICAgICAgICAg
ICAgICAgICAgKGhhc2h4LXNldCEgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10YWJsZSBrZXkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RpZmllciAoZGVmYXVsdC10aHVu
aykpKSkpCisgICAgICAgICAgICAgICAgKGVsc2UKKyAgICAgICAgICAgICAgICAgKGhhc2h4LXNl
dCEgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10YWJsZSBrZXkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1vZGlmaWVyIG9sZCkpKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUKKyAg
ICAgICAgICAgICAgIChpZiAoZXE/IGh0LXVuc3BlY2lmaWVkIGRlZmF1bHQtdGh1bmspCisgICAg
ICAgICAgICAgICAgICAgKGhhc2h4LWdldC1oYW5kbGUgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVh
bC10YWJsZSBrZXkpCisgICAgICAgICAgICAgICAgICAgKGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGhh
c2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGh0LXVuc3BlY2lmaWVkKSkpKQorICAgICAgICAgIChjb25kICho
YW5kbGUKKyAgICAgICAgICAgICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5k
bGUpKQorICAgICAgICAgICAgICAgICAgICAgKGJlZ2luIChodC1zaXplISBodCAoMSsgKGh0LXNp
emUgaHQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlICht
b2RpZmllciAoZGVmYXVsdC10aHVuaykpKSkKKyAgICAgICAgICAgICAgICAgICAgIChzZXQtY2Ry
ISBoYW5kbGUgKG1vZGlmaWVyIChjZHIgaGFuZGxlKSkpKSkKKyAgICAgICAgICAgICAgICAoZWxz
ZQorICAgICAgICAgICAgICAgICAoZXJyb3IgIktleSBub3QgaW4gdGFibGUiIGtleSBodCkpKSkp
KQogICAqdW5zcGVjaWZpZWQqKQogCis7OzsgSi5NLiBDdXN0b20gaW1wbGVtZW50YXRpb24gaW5z
dGVhZCBvZiB1c2luZyBoYXNoLXRhYmxlLXVwZGF0ZSEKIChkZWZpbmUgKGhhc2gtdGFibGUtdXBk
YXRlIS9kZWZhdWx0IGh0IGtleSBtb2RpZmllciBkZWZhdWx0KQogICAiTW9kaWZ5IEhUJ3MgdmFs
dWUgYXQgS0VZIGJ5IHBhc3NpbmcgaXRzIG9sZCB2YWx1ZSwgb3IgREVGQVVMVCBpZiBpdAogZG9l
c24ndCBoYXZlIG9uZSwgdG8gTU9ESUZJRVIsIGFuZCBzZXR0aW5nIGl0IHRvIHRoZSByZXN1bHQg
dGhlcmVvZi4iCi0gIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQga2V5IG1vZGlmaWVyIChsYW1iZGEg
KCkgZGVmYXVsdCkpKQorICAod2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9y
IHJlYWwtdGFibGUpIGh0CisgICAgKGlmIChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgOzsgSi5N
LiBzZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQor
ICAgICAgICAobGV0KiAoKG9sZCAoaGFzaHgtcmVmIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwt
dGFibGUga2V5IGRlZmF1bHQpKSkKKyAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNz
b2NpYXRvciByZWFsLXRhYmxlIGtleSAobW9kaWZpZXIgb2xkKSkpCisgICAgICAgIChsZXQgKCho
YW5kbGUgKGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFi
bGUga2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVu
c3BlY2lmaWVkKSkpCisgICAgICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5k
bGUpKQorICAgICAgICAgICAgICAoYmVnaW4gKGh0LXNpemUhIGh0ICgxKyAoaHQtc2l6ZSBodCkp
KQorICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgZGVmYXVs
dCkpKQorICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIChtb2RpZmllciAoY2RyIGhhbmRs
ZSkpKSkpKSkpCiAMCiA7Ozs7IEFjY2Vzc2luZyB3aG9sZSB0YWJsZXMKIApAQCAtMjg3LDcgKzMy
Nyw5IEBAIGRvZXNuJ3QgaGF2ZSBvbmUsIHRvIE1PRElGSUVSLCBhbmQgc2V0dGluZyBpdCB0byB0
aGUgcmVzdWx0IHRoZXJlb2YuIgogICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgYXNzb2NpYXRpb25z
IGluIEhULiAgVGhpcyBpcyBndWFyYW50ZWVkIE8oMSkKIGZvciB0YWJsZXMgd2hlcmUgIzp3ZWFr
IHdhcyAjZiBvciBub3Qgc3BlY2lmaWVkIGF0IGNyZWF0aW9uIHRpbWUuIgogICAoaWYgKGh0LXdl
YWtuZXNzIGh0KQotICAgICAgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYgYW5zKSAo
MSsgYW5zKSkgMCkKKyAgICAgIChsZXQgKChzaXplIChoYXNoLXRhYmxlLWZvbGQgaHQgKGxhbWJk
YSAoayB2IGFucykgKDErIGFucykpIDApKSkKKyAgICAgICAgKGh0LXNpemUhIGh0IHNpemUpCisg
ICAgICAgIHNpemUpCiAgICAgICAoaHQtc2l6ZSBodCkpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxl
LWtleXMgaHQpCkBAIC0zMDAsMTAgKzM0Miw3IEBAIGZvciB0YWJsZXMgd2hlcmUgIzp3ZWFrIHdh
cyAjZiBvciBub3Qgc3BlY2lmaWVkIGF0IGNyZWF0aW9uIHRpbWUuIgogCiAoZGVmaW5lIChoYXNo
LXRhYmxlLXdhbGsgaHQgcHJvYykKICAgIkNhbGwgUFJPQyB3aXRoIGVhY2gga2V5IGFuZCB2YWx1
ZSBhcyB0d28gYXJndW1lbnRzLiIKLSAgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYg
dW5zcGVjKQotICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGwtd2l0aC12YWx1ZXMgKGxhbWJk
YSAoKSAocHJvYyBrIHYpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIHZhbHMg
dW5zcGVjKSkpCi0JCSAgICp1bnNwZWNpZmllZCopKQorICAoaGFzaC1mb3ItZWFjaCBwcm9jICho
dC1yZWFsLXRhYmxlIGh0KSkpCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtZm9sZCBodCBmIGtuaWwp
CiAgICJJbnZva2UgKEYgS0VZIFZBTCBQUkVWKSBmb3IgZWFjaCBLRVkgYW5kIFZBTCBpbiBIVCwg
d2hlcmUgUFJFViBpcwpAQCAtMzEzLDE1ICszNTIsMTUgQEAgQW5zd2VyIHRoZSBmaW5hbCBGIHJl
c3VsdC4iCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtPmFsaXN0IGh0KQogICAiUmV0dXJuIGFuIGFs
aXN0IGZvciBIVC4iCi0gIChoYXNoLXRhYmxlLWZvbGQgaHQgYWxpc3QtY29ucyAnKCkpKQorICAo
aGFzaC1tYXAtPmxpc3QgY29ucyAoaHQtcmVhbC10YWJsZSBodCkpKQogCiAoZGVmaW5lIChoYXNo
LXRhYmxlLWNvcHkgaHQpCiAgICJBbnN3ZXIgYSBjb3B5IG9mIEhULiIKICAgKHdpdGgtaGFzaHgt
dmFsdWVzIChoIGEgcmVhbC1odCkgaHQKICAgICAobGV0KiAoKHNpemUgKGhhc2gtdGFibGUtc2l6
ZSBodCkpICh3ZWFrIChodC13ZWFrbmVzcyBodCkpCiAJICAgKG5ldy1yZWFsLWh0ICgoZ3VpbGUt
aHQtY3RvciB3ZWFrKSBzaXplKSkpCi0gICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGsgdiBpZ24p
IChoYXNoeC1zZXQhIGggYSBuZXctcmVhbC1odCBrIHYpKQotCQkgI2YgcmVhbC1odCkKKyAgICAg
IChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2h4LXNldCEgaCBhIG5ldy1yZWFsLWh0
IGsgdikpCisgICAgICAgICAgICAgICAgICAgICByZWFsLWh0KQogICAgICAgKG1ha2Utc3JmaS02
OS1oYXNoLXRhYmxlCQk7cmVhbCxhc3NvYyxzaXplLHdlYWssZXF1aXYsaAogICAgICAgIG5ldy1y
ZWFsLWh0IGEgc2l6ZSB3ZWFrCiAgICAgICAgKGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rp
b24gaHQpIGgpKSkpCkBAIC0zMjksOCArMzY4LDggQEAgQW5zd2VyIHRoZSBmaW5hbCBGIHJlc3Vs
dC4iCiAoZGVmaW5lIChoYXNoLXRhYmxlLW1lcmdlISBodCBvdGhlci1odCkKICAgIkFkZCBhbGwg
a2V5L3ZhbHVlIHBhaXJzIGZyb20gT1RIRVItSFQgdG8gSFQsIG92ZXJyaWRpbmcgSFQncwogbWFw
cGluZ3Mgd2hlcmUgcHJlc2VudC4gIFJldHVybiBIVC4iCi0gIChoYXNoLXRhYmxlLWZvbGQKLSAg
IGh0IChsYW1iZGEgKGsgdiBpZ24pIChoYXNoLXRhYmxlLXNldCEgaHQgayB2KSkgI2YpCisgICho
YXNoLWZvci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2gtdGFibGUtc2V0ISBodCBrIHYpKQorICAg
ICAgICAgICAgICAgICAoaHQtcmVhbC10YWJsZSBvdGhlci1odCkpCiAgIGh0KQogCiA7Ozsgc3Jm
aS02OS5zY20gZW5kcyBoZXJlCmRpZmYgLS1naXQgYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjku
dGVzdCBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0CmluZGV4IGU5OWI3NmM2ZC4uMTA1
YWUzNzU5IDEwMDY0NAotLS0gYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdAorKysgYi90
ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdApAQCAtMjgsODAgKzI4LDEyMyBAQCBjYXNlLWlu
c2Vuc2l0aXZlIHN0cmluZ3MgdG8gYGVxdWFsPyctdGVzdGVkIHZhbHVlcy4iCiAgIChhbmQgKHN0
cmluZy1jaT0/IChjYXIgbGVmdCkgKGNhciByaWdodCkpCiAgICAgICAgKGVxdWFsPyAoY2RyIGxl
ZnQpIChjZHIgcmlnaHQpKSkpCiAKKyhkZWZpbmUtc3ludGF4IHdpdGgtd2Vha25lc3MtbGlzdAor
ICAoc3ludGF4LXJ1bGVzICgpCisgICAgKCh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3Mgd2Vh
a25lc3MtbGlzdCBleHByIC4uLikKKyAgICAgKGxldCBsb29wICgod2Vha25lc3MtbGlzdCogd2Vh
a25lc3MtbGlzdCkpCisgICAgICAgKG9yIChudWxsPyB3ZWFrbmVzcy1saXN0KikKKyAgICAgICAg
ICAgKGFuZCAobGV0ICgod2Vha25lc3MgKGNhciB3ZWFrbmVzcy1saXN0KikpKQorICAgICAgICAg
ICAgICAgICAgZXhwciAuLi4pCisgICAgICAgICAgICAgICAgKGxvb3AgKGNkciB3ZWFrbmVzcy1s
aXN0KikpKSkpKSkpCisKKyhkZWZpbmUgKHRlc3Qtc3RyLXdlYWtuZXNzIHN0ciB3ZWFrbmVzcykK
KyAgKGlmIChub3Qgd2Vha25lc3MpIHN0ciAoZm9ybWF0ICNmICJ+YSAod2VhazogfmEpIiBzdHIg
d2Vha25lc3MpKSkKKwogKHdpdGgtdGVzdC1wcmVmaXggIlNSRkktNjkiCiAKLSAgKHBhc3MtaWYg
InNtYWxsIGFsaXN0PC0+aGFzaCB0YWJsZXMgcm91bmQtdHJpcCIKLSAgICAobGV0KiAoKHN0YXJ0
LWFsaXN0ICcoKGEgLiAxKSAoYiAuIDIpIChjIC4gMykgKGEgLiA0MikpKQotCSAgIChodCAoYWxp
c3QtPmhhc2gtdGFibGUgc3RhcnQtYWxpc3QgZXE/KSkKLQkgICAoZW5kLWFsaXN0IChoYXNoLXRh
YmxlLT5hbGlzdCBodCkpKQotICAgICAgKGFuZCAoPSAzIChoYXNoLXRhYmxlLXNpemUgaHQpKQot
CSAgIChsc2V0PSBlcXVhbD8gZW5kLWFsaXN0ICh0YWtlIHN0YXJ0LWFsaXN0IDMpKQotCSAgICg9
IDEgKGhhc2gtdGFibGUtcmVmIGh0ICdhKSkKLQkgICAoPSAyIChoYXNoLXRhYmxlLXJlZiBodCAn
YikpCi0JICAgKD0gMyAoaGFzaC10YWJsZS1yZWYgaHQgJ2MpKSkpKQotCi0gIChwYXNzLWlmICJz
dHJpbmctY2k9PyB0YWJsZXMgd29yayBieSBkZWZhdWx0IgotICAgIChsZXQgKChodCAoYWxpc3Qt
Pmhhc2gtdGFibGUgJygoInhZIiAuIDIpICgiYWJjIiAuIDU0KSkgc3RyaW5nLWNpPT8pKSkKLSAg
ICAgIChoYXNoLXRhYmxlLXNldCEgaHQgIlhZIiA0MikKLSAgICAgIChoYXNoLXRhYmxlLXNldCEg
aHQgInFxcSIgMTAwKQotICAgICAgKGFuZCAoPSA1NCAoaGFzaC10YWJsZS1yZWYgaHQgIkFCYyIp
KQotCSAgICg9IDQyIChoYXNoLXRhYmxlLXJlZiBodCAieHkiKSkKLQkgICAoPSAzIChoYXNoLXRh
YmxlLXNpemUgaHQpKQotCSAgIChsc2V0PSBzdHJpbmctY2ktYXNzb2MtZXF1YWw/Ci0JCSAgJygo
Inh5IiAuIDQyKSAoImFiYyIgLiA1NCkgKCJxcXEiIC4gMTAwKSkKLQkJICAoaGFzaC10YWJsZS0+
YWxpc3QgaHQpKSkpKQorICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdr
ZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNz
ICJzbWFsbCBhbGlzdDwtPmhhc2ggdGFibGVzIHJvdW5kLXRyaXAiIHdlYWtuZXNzKQorICAgICAg
KGxldCogKChzdGFydC1hbGlzdCAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpIChhIC4gNDIpKSkK
KyAgICAgICAgICAgICAoaHQgKGFsaXN0LT5oYXNoLXRhYmxlIHN0YXJ0LWFsaXN0IGVxPykpCisg
ICAgICAgICAgICAgKGVuZC1hbGlzdCAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkKKyAgICAgICAg
KGFuZCAoPSAzIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChsc2V0PSBlcXVh
bD8gZW5kLWFsaXN0ICh0YWtlIHN0YXJ0LWFsaXN0IDMpKQorICAgICAgICAgICAgICg9IDEgKGhh
c2gtdGFibGUtcmVmIGh0ICdhKSkKKyAgICAgICAgICAgICAoPSAyIChoYXNoLXRhYmxlLXJlZiBo
dCAnYikpCisgICAgICAgICAgICAgKD0gMyAoaGFzaC10YWJsZS1yZWYgaHQgJ2MpKSkpKSkKKwor
ICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3ZhbHVlICdrZXkt
b3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJzdHJpbmctY2k9PyB0
YWJsZXMgd29yayBieSBkZWZhdWx0IiB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3Qt
Pmhhc2gtdGFibGUgJygoInhZIiAuIDIpICgiYWJjIiAuIDU0KSkgc3RyaW5nLWNpPT8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrIHdlYWtuZXNzKSkpCisgICAgICAg
IChoYXNoLXRhYmxlLXNldCEgaHQgIlhZIiA0MikKKyAgICAgICAgKGhhc2gtdGFibGUtc2V0ISBo
dCAicXFxIiAxMDApCisgICAgICAgIChhbmQgKD0gNTQgKGhhc2gtdGFibGUtcmVmIGh0ICJBQmMi
KSkKKyAgICAgICAgICAgICAoPSA0MiAoaGFzaC10YWJsZS1yZWYgaHQgInh5IikpCisgICAgICAg
ICAgICAgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICAgICAobHNldD0gc3Ry
aW5nLWNpLWFzc29jLWVxdWFsPworICAgICAgICAgICAgICAgICAgICAnKCgieHkiIC4gNDIpICgi
YWJjIiAuIDU0KSAoInFxcSIgLiAxMDApKQorICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJs
ZS0+YWxpc3QgaHQpKSkpKSkKIAogICAocGFzcy1pZi1leGNlcHRpb24gIkJhZCB3ZWFrbmVzcyBh
cmcgdG8gbWh0IHNpZ25hbHMgYW4gZXJyb3IiCi0JCSAgICAgJyhtaXNjLWVycm9yIC4gIl5JbnZh
bGlkIHdlYWsgaGFzaCB0YWJsZSB0eXBlIikKKyAgICAgICAgICAgICAgICAgICAgICcobWlzYy1l
cnJvciAuICJeSW52YWxpZCB3ZWFrIGhhc2ggdGFibGUgdHlwZSIpCiAgICAgKG1ha2UtaGFzaC10
YWJsZSBlcXVhbD8gaGFzaCAjOndlYWsgJ2tleS1hbmQtdmFsdWUpKQogCi0gIChwYXNzLWlmICJl
bXB0eSBoYXNoIHRhYmxlcyBhcmUgZW1wdHkiCi0gICAgKG51bGw/IChoYXNoLXRhYmxlLT5hbGlz
dCAobWFrZS1oYXNoLXRhYmxlIGVxPykpKSkKLQotICAocGFzcy1pZiAiaGFzaC10YWJsZS1yZWYg
dXNlcyBkZWZhdWx0IgotICAgIChlcXVhbD8gJyg0KQotCSAgICAoaGFzaC10YWJsZS1yZWYgKGFs
aXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSkgZXE/KQotCQkJICAgICdiIChjdXQgbGlzdCAoKyAy
IDIpKSkpKQotCi0gIChwYXNzLWlmICJoYXNoLXRhYmxlLWRlbGV0ZSEgZGVsZXRlcyBwcmVzZW50
IGFzc29jcywgaWdub3JlcyBvdGhlcnMiCi0gICAgKGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJs
ZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/KSkpCi0gICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0
ICdjKQotICAgICAgKGFuZCAoPSAyIChoYXNoLXRhYmxlLXNpemUgaHQpKQotCSAgIChiZWdpbgot
CSAgICAgKGhhc2gtdGFibGUtZGVsZXRlISBodCAnYSkKLQkgICAgICg9IDEgKGhhc2gtdGFibGUt
c2l6ZSBodCkpKQotCSAgIChsc2V0PSBlcXVhbD8gJygoYiAuIDIpKSAoaGFzaC10YWJsZS0+YWxp
c3QgaHQpKSkpKQotCi0gIChwYXNzLWlmICJhbGlzdC0+aGFzaC10YWJsZSBkb2VzIG5vdCByZXF1
aXJlIGxpbmVhciBzdGFjayBzcGFjZSIKLSAgICAoZXF2PyA5OTk5OQotCSAgKGhhc2gtdGFibGUt
cmVmIChhbGlzdC0+aGFzaC10YWJsZQotCQkJICAgKHVuZm9sZC1yaWdodCAoY3V0ID49IDw+IDEw
MDAwMCkKLQkJCQkJIChsYW1iZGEgKHMpIGAoeCAuICxzKSkgMSsgMCkKLQkJCSAgIGVxPykKLQkJ
CSAgJ3gpKSkKLQotICAocGFzcy1pZiAiaGFzaC10YWJsZS13YWxrIGlnbm9yZXMgcmV0dXJuIHZh
bHVlcyIKLSAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIp
IChjIC4gMykpIGVxPykpKQotICAgICAgKGZvci1lYWNoIChjdXQgaGFzaC10YWJsZS13YWxrIGh0
IDw+KQotCQkobGlzdCAobGFtYmRhIChrIHYpICh2YWx1ZXMpKQotCQkgICAgICAobGFtYmRhIChr
IHYpICh2YWx1ZXMgMSAyIDMpKSkpCi0gICAgICAjdCkpCi0KLSAgKHBhc3MtaWYgImhhc2gtdGFi
bGUtdXBkYXRlISBtb2RpZmllcyBleGlzdGluZyBiaW5kaW5nIgotICAgIChsZXQgKChodCAoYWxp
c3QtPmhhc2gtdGFibGUgJygoYSAuIDEpKSBlcT8pKSkKLSAgICAgIChoYXNoLXRhYmxlLXVwZGF0
ZSEgaHQgJ2EgMSspCi0gICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0ICdhIChjdXQgKyA0IDw+
KSAobGFtYmRhICgpIDQyKSkKLSAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkK
LQkgICAobHNldD0gZXF1YWw/ICcoKGEgLiA2KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkK
LQotICAocGFzcy1pZiAiaGFzaC10YWJsZS11cGRhdGUhIGNyZWF0ZXMgbmV3IGJpbmRpbmcgd2hl
biBhcHByb3ByaWF0ZSIKLSAgICAobGV0ICgoaHQgKG1ha2UtaGFzaC10YWJsZSBlcT8pKSkKLSAg
ICAgIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQgJ2IgMSsgKGxhbWJkYSAoKSA0MikpCi0gICAgICAo
aGFzaC10YWJsZS11cGRhdGUhIGh0ICdiIChjdXQgKyAxMCA8PikpCi0gICAgICAoYW5kICg9IDEg
KGhhc2gtdGFibGUtc2l6ZSBodCkpCi0JICAgKGxzZXQ9IGVxdWFsPyAnKChiIC4gNTMpKSAoaGFz
aC10YWJsZS0+YWxpc3QgaHQpKSkpKQorICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChs
aXN0ICNmICdrZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3Ry
LXdlYWtuZXNzICJlbXB0eSBoYXNoIHRhYmxlcyBhcmUgZW1wdHkiIHdlYWtuZXNzKQorICAgICAg
KGxldCBsb29wICgod2Vha25lc3MtbGlzdCAobGlzdCAjZiAna2V5ICd2YWx1ZSAna2V5LW9yLXZh
bHVlKSkpCisgICAgICAgIChvciAobnVsbD8gd2Vha25lc3MtbGlzdCkKKyAgICAgICAgICAgIChs
ZXQgKCh3ZWFrbmVzcyAoY2FyIHdlYWtuZXNzLWxpc3QpKSkKKyAgICAgICAgICAgICAgKGFuZCAo
bnVsbD8gKGhhc2gtdGFibGUtPmFsaXN0IChtYWtlLWhhc2gtdGFibGUgZXE/ICM6d2VhayB3ZWFr
bmVzcykpKQorICAgICAgICAgICAgICAgICAgIChsb29wIChjZHIgd2Vha25lc3MtbGlzdCkpKSkp
KSkpCisKKyAgKHdpdGgtd2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAna2V5ICd2YWx1
ZSAna2V5LW9yLXZhbHVlKQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10
YWJsZS1yZWYgdXNlcyBkZWZhdWx0IiB3ZWFrbmVzcykKKyAgICAgIChlcXVhbD8gJyg0KQorICAg
ICAgICAgICAgICAoaGFzaC10YWJsZS1yZWYgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSkg
ZXE/ICM6d2VhayB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiIChj
dXQgbGlzdCAoKyAyIDIpKSkpKSkKKworICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChs
aXN0ICNmICdrZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3Ry
LXdlYWtuZXNzICJoYXNoLXRhYmxlLWRlbGV0ZSEgZGVsZXRlcyBwcmVzZW50IGFzc29jcywgaWdu
b3JlcyBvdGhlcnMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNzKQor
ICAgICAgKGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/
ICM6d2VhayB3ZWFrbmVzcykpKQorICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0ICdjKQor
ICAgICAgICAoYW5kICg9IDIgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAgICAgKGJl
Z2luCisgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0ICdhKQorICAgICAgICAg
ICAgICAgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkpCisgICAgICAgICAgICAgKGxzZXQ9IGVx
dWFsPyAnKChiIC4gMikpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkpKQorCisgICh3aXRoLXdl
YWtuZXNzLWxpc3Qgd2Vha25lc3MgKGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1vci12YWx1ZSkK
KyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImFsaXN0LT5oYXNoLXRhYmxlIGRvZXMg
bm90IHJlcXVpcmUgbGluZWFyIHN0YWNrIHNwYWNlIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3ZWFrbmVzcykKKyAgICAgIChlcXY/IDk5OTk5CisgICAgICAgICAgICAoaGFzaC10
YWJsZS1yZWYgKGFsaXN0LT5oYXNoLXRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh1bmZvbGQtcmlnaHQgKGN1dCA+PSA8PiAxMDAwMDApCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAocykgYCh4IC4gLHMpKSAxKyAwKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcT8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Izp3ZWFrIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4KSkpKQorCisg
ICh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3MgKGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1v
ci12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtd2Fs
ayBpZ25vcmVzIHJldHVybiB2YWx1ZXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkg
KGIgLiAyKSAoYyAuIDMpKSBlcT8pKSkKKyAgICAgICAgKGZvci1lYWNoIChjdXQgaGFzaC10YWJs
ZS13YWxrIGh0IDw+KQorICAgICAgICAgICAgICAgICAgKGxpc3QgKGxhbWJkYSAoayB2KSAodmFs
dWVzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGsgdikgKHZhbHVlcyAxIDIg
MykpKSkKKyAgICAgICAgI3QpKSkKKworICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChs
aXN0ICNmICdrZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3Ry
LXdlYWtuZXNzICJoYXNoLXRhYmxlLXVwZGF0ZSEgbW9kaWZpZXMgZXhpc3RpbmcgYmluZGluZyIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3MpCisgICAgICAobGV0ICgo
aHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSkgZXE/ICM6d2VhayB3ZWFrbmVzcykpKQor
ICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0ICdhIDErKQorICAgICAgICAoaGFzaC10YWJs
ZS11cGRhdGUhIGh0ICdhIChjdXQgKyA0IDw+KSAobGFtYmRhICgpIDQyKSkKKyAgICAgICAgKGFu
ZCAoPSAxIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChsc2V0PSBlcXVhbD8g
JygoYSAuIDYpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpKSkKKworICAod2l0aC13ZWFrbmVz
cy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAg
KHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlLXVwZGF0ZSEgY3JlYXRlcyBu
ZXcgYmluZGluZyB3aGVuIGFwcHJvcHJpYXRlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGVxPyAjOndl
YWsgd2Vha25lc3MpKSkKKyAgICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYiAxKyAobGFt
YmRhICgpIDQyKSkKKyAgICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYiAoY3V0ICsgMTAg
PD4pKQorICAgICAgICAoYW5kICg9IDEgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAg
ICAgKGxzZXQ9IGVxdWFsPyAnKChiIC4gNTMpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpKSkK
KworICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3ZhbHVlICdr
ZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxl
LW1lcmdlISBmdW5jdGlvbnMgcHJvcGVybHkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdlYWtuZXNzKQorICAgICAgKGxldCogKChodDEgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEg
LiAxKSAoYiAuIDIpKSBlcT8gIzp3ZWFrIHdlYWtuZXNzKSkKKyAgICAgICAgICAgICAoaHQyIChh
bGlzdC0+aGFzaC10YWJsZSAnKChiIC4gMykgKGMgLiA0KSkgZXE/ICM6d2VhayB3ZWFrbmVzcykp
KQorICAgICAgICAoc2V0ISBodDEgKGhhc2gtdGFibGUtbWVyZ2UhIGh0MSBodDIpKQorICAgICAg
ICAoYW5kICg9IDMgKGhhc2gtdGFibGUtc2l6ZSBodDEpKQorICAgICAgICAgICAgICg9IDIgKGhh
c2gtdGFibGUtc2l6ZSBodDIpKQorICAgICAgICAgICAgIChsc2V0PSBlcXVhbD8gJygoYSAuIDEp
IChiIC4gMykgKGMgLiA0KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0MSkpCisgICAgICAgICAgICAg
KGxzZXQ9IGVxdWFsPyAnKChiIC4gMykgKGMgLiA0KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0Mikp
KSkpKQogCiAgIChwYXNzLWlmICJjYW4gdXNlIGFsbCBhcmd1bWVudHMsIGluY2x1ZGluZyBzaXpl
IgogICAgIChoYXNoLXRhYmxlPyAobWFrZS1oYXNoLXRhYmxlIGVxdWFsPyBoYXNoICM6d2VhayAn
a2V5IDMxKSkpCiAKLSkKKyAgKQotLSAKMi4xOS4xCgo=
--0000000000004d8042057db38bed--




Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#33827: Patches
Resent-From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Wed, 09 Jan 2019 00:22:01 +0000
Resent-Message-ID: <handler.33827.B33827.15469932844542 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 33827
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 33827 <at> debbugs.gnu.org
Received: via spool by 33827-submit <at> debbugs.gnu.org id=B33827.15469932844542
          (code B ref 33827); Wed, 09 Jan 2019 00:22:01 +0000
Received: (at 33827) by debbugs.gnu.org; 9 Jan 2019 00:21:24 +0000
Received: from localhost ([127.0.0.1]:50659 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gh1ca-0001BC-BX
	for submit <at> debbugs.gnu.org; Tue, 08 Jan 2019 19:21:24 -0500
Received: from mail-io1-f46.google.com ([209.85.166.46]:36210)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1gh1cY-0001Az-Cy
 for 33827 <at> debbugs.gnu.org; Tue, 08 Jan 2019 19:21:22 -0500
Received: by mail-io1-f46.google.com with SMTP id m19so4670880ioh.3
 for <33827 <at> debbugs.gnu.org>; Tue, 08 Jan 2019 16:21:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
 bh=hPKnBztstyAL426C2WIwSz5LV+xsm3dsuY3t6JHnAso=;
 b=NL//hpDbAMiwhkko4+/sp7eVvq+ZuLD1HS3eVVjUQk4mXi+r9VBcpiACXOiE1vtWuR
 +kiHfV4hbR9oezSucw0xAIFtPNHG5Fhay+htKSCe534wJop6Ix1fUcrRkvYP5eQX3/me
 njAww2Nej9vjwmJdfVU1ct7q0vMUHdOgZKubnCu05MwuJYB+PXtKWzV2ZIM7G5b8p3Xn
 nQV8wNX/5+hh1u7aRTNNdIuJV0RMohpCJKArQdQNcHjUs7wqUA2pRFHB9Bh8bPMiEN0B
 noS/wjmAo3HgOvSxAJ4Lvpw0XnW/fVBJSTORX50y5xO76VI+wRQmifzyUF2KxVKETsJf
 Dp6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to;
 bh=hPKnBztstyAL426C2WIwSz5LV+xsm3dsuY3t6JHnAso=;
 b=WuSM/7LfpqbS2/xVH23XBDqdpnSZmnANCDjD7TtPtR3c9iWP2De82trH7P9T8coczd
 wCHpzBrxdEnl9zMJgBoXLNFX7jspZeglUw6N/bB1KUgnacpwXS4Eelprn+se9KpCouih
 hsIwSwrmLmXBhESxn+72gGZ5tdSe8IG//RyyIEyttmAxdV585Dd0Cl805wLxIqN580Tj
 vaNQRXa2HPkHikzymjS1ATQAHmE+WZ9oowylPQcT4W6DGWyzibfukg0exmYomGGurckd
 QivgLSYMU1vkREdfokp2xaeEZnwv6gSwKYveLUllrlyde4yQ1BgUJz4Lt66m0UQjpIuN
 +W2Q==
X-Gm-Message-State: AJcUukfYEzRdp43BotxlwFlXMw1NKeNR3dmPpjNLQYxyAv7fgcNAJsak
 EfXevIEWAh3aOGYu4DMRoq9PdLhl9oOkNFe2p60yCgkX
X-Google-Smtp-Source: ALg8bN7ihvv9V9CukS3mjcnYDlYQNnloZO8y7cVJUx5tVqNpRf2Owzl7Psni3r7GUdNZyUAZJFttf0UVQQ96GsGbqr0=
X-Received: by 2002:a6b:da10:: with SMTP id x16mr2494069iob.101.1546993276398; 
 Tue, 08 Jan 2019 16:21:16 -0800 (PST)
MIME-Version: 1.0
References: <CAGBcF1Z5WmXij2vX+EhxQHvWkmmOkeL-hV+Y-SUSpByH0tZQHw@HIDDEN>
In-Reply-To: <CAGBcF1Z5WmXij2vX+EhxQHvWkmmOkeL-hV+Y-SUSpByH0tZQHw@HIDDEN>
From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Date: Tue, 8 Jan 2019 22:21:04 -0200
Message-ID: <CAGBcF1aZrZhBjEk=tvsJHLJnMDc1ERt-ZaCiwOzqMksnfZsP_Q@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000b6a39d057efb700b"
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>

--000000000000b6a39d057efb700b
Content-Type: multipart/alternative; boundary="000000000000b6a39a057efb7009"

--000000000000b6a39a057efb7009
Content-Type: text/plain; charset="UTF-8"

Patch 0001 fixes SRFI-69 bugs as specified. Patches 0002 to 0005 implement
the module (ice-9 generic-hash-tables) and then reimplement SRFI-69 and
(rnrs hashtables) and add an implementation of SRFI 126, all of them using
generic-hash-tables (and therefore compatible to each other).

I've called `make check' after each commit and all tests PASS: or XFAIL:,
except the four tests in linker.test, as reported in Bug 33991[1].

[1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33991

--000000000000b6a39a057efb7009
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr">Patch 0001 fixes SRFI-69=
 bugs as specified. Patches 0002 to 0005 implement the module (ice-9 generi=
c-hash-tables) and then reimplement SRFI-69 and (rnrs hashtables) and add a=
n implementation of SRFI 126, all of them using generic-hash-tables (and th=
erefore compatible to each other).<div><br></div><div>I&#39;ve called `make=
 check&#39; after each commit and all tests PASS: or XFAIL:, except the fou=
r tests in linker.test, as reported in Bug=C2=A033991[1].</div><div><br></d=
iv><div>[1]=C2=A0<a href=3D"https://debbugs.gnu.org/cgi/bugreport.cgi?bug=
=3D33991">https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D33991</a></div></=
div></div></div>

--000000000000b6a39a057efb7009--

--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0003-Reimplemented-SRFI-69-using-GENERIC-HASH-TABLES.patch"
Content-Disposition: attachment; 
	filename="0003-Reimplemented-SRFI-69-using-GENERIC-HASH-TABLES.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofmio12>
X-Attachment-Id: f_jqofmio12

RnJvbSBhODM5NDZmMGNkOGFiYjY0YjliODkwNjY4OTM4Njc1OTU1ODE1OTE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjI6MDI6MjUg
LTAyMDAKU3ViamVjdDogW1BBVENIIDMvNV0gUmVpbXBsZW1lbnRlZCBTUkZJLTY5IHVzaW5nIEdF
TkVSSUMtSEFTSC1UQUJMRVMKCi0tLQogbW9kdWxlL3JucnMvaGFzaHRhYmxlcy5zY20gICAgfCAg
MjkgKystLQogbW9kdWxlL3NyZmkvc3JmaS02OS5zY20gICAgICAgfCAzMTggKysrKysrKystLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTY5LnRlc3QgfCAg
IDMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgMjU3IGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL21vZHVsZS9ybnJzL2hhc2h0YWJsZXMuc2NtIGIvbW9kdWxlL3JucnMv
aGFzaHRhYmxlcy5zY20KaW5kZXggMjJiYWU3ZjA5Li40ODY0NTJhMmEgMTAwNjQ0Ci0tLSBhL21v
ZHVsZS9ybnJzL2hhc2h0YWJsZXMuc2NtCisrKyBiL21vZHVsZS9ybnJzL2hhc2h0YWJsZXMuc2Nt
CkBAIC02Nyw2ICs2Nyw3IEBACiAJCQkJICAgaGFzaC10YWJsZS1mb2xkKQogCQkgIChoYXNoIGVx
dWFsLWhhc2gpCiAJCSAgKGhhc2gtYnktaWRlbnRpdHkgc3ltYm9sLWhhc2gpKQorICAgICAgICAg
IChvbmx5IChpY2UtOSBnZW5lcmljLWhhc2gtdGFibGVzKSBoYXNoLWJ5LXZhbHVlKQogCSAgKHJu
cnMgYmFzZSAoNikpCiAJICAocm5ycyByZWNvcmRzIHByb2NlZHVyYWwgKDYpKSkKICAgCkBAIC05
MCw5ICs5MSw5IEBACiAKICAgKGRlZmluZSBoYXNodGFibGUtbXV0YWJsZT8gcjZyczpoYXNodGFi
bGUtbXV0YWJsZT8pCiAKLSAgKGRlZmluZSBoYXNoLWJ5LXZhbHVlICgoQEAgKHNyZmkgc3JmaS02
OSkgY2FsbGVyLXdpdGgtZGVmYXVsdC1zaXplKSBoYXNodikpCi0gIChkZWZpbmUgKHdyYXAtaGFz
aC1mdW5jdGlvbiBwcm9jKSAKLSAgICAobGFtYmRhIChrZXkgY2FwYWNpdHkpIChtb2R1bG8gKHBy
b2Mga2V5KSBjYXBhY2l0eSkpKQorICA7OyAoZGVmaW5lIGhhc2gtYnktdmFsdWUgKChAQCAoc3Jm
aSBzcmZpLTY5KSBjYWxsZXItd2l0aC1kZWZhdWx0LXNpemUpIGhhc2h2KSkKKyAgOzsgKGRlZmlu
ZSAod3JhcC1oYXNoLWZ1bmN0aW9uIHByb2MpCisgIDs7ICAgKGxhbWJkYSAoa2V5IGNhcGFjaXR5
KSAobW9kdWxvIChwcm9jIGtleSkgY2FwYWNpdHkpKSkKIAogICAoZGVmaW5lKiAobWFrZS1lcS1o
YXNodGFibGUgIzpvcHRpb25hbCBrKQogICAgIChtYWtlLXI2cnMtaGFzaHRhYmxlIApAQCAtMTA5
LDE0ICsxMTAsMTMgQEAKICAgICAgJ2VxdikpCiAKICAgKGRlZmluZSogKG1ha2UtaGFzaHRhYmxl
IGhhc2gtZnVuY3Rpb24gZXF1aXYgIzpvcHRpb25hbCBrKQotICAgIChsZXQgKCh3cmFwcGVkLWhh
c2gtZnVuY3Rpb24gKHdyYXAtaGFzaC1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSkpCi0gICAgICAo
bWFrZS1yNnJzLWhhc2h0YWJsZQotICAgICAgIChpZiBrIAotCSAgIChtYWtlLWhhc2gtdGFibGUg
ZXF1aXYgd3JhcHBlZC1oYXNoLWZ1bmN0aW9uIGspCi0JICAgKG1ha2UtaGFzaC10YWJsZSBlcXVp
diB3cmFwcGVkLWhhc2gtZnVuY3Rpb24pKQotICAgICAgIGhhc2gtZnVuY3Rpb24KLSAgICAgICAj
dAotICAgICAgICdjdXN0b20pKSkKKyAgICAobWFrZS1yNnJzLWhhc2h0YWJsZQorICAgICAoaWYg
aworICAgICAgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVpdiBoYXNoLWZ1bmN0aW9uIGspCisgICAg
ICAgICAobWFrZS1oYXNoLXRhYmxlIGVxdWl2IGhhc2gtZnVuY3Rpb24pKQorICAgICBoYXNoLWZ1
bmN0aW9uCisgICAgICN0CisgICAgICdjdXN0b20pKQogIAogICAoZGVmaW5lIChoYXNodGFibGUt
c2l6ZSBoYXNodGFibGUpCiAgICAgKGhhc2gtdGFibGUtc2l6ZSAocjZyczpoYXNodGFibGUtd3Jh
cHBlZC10YWJsZSBoYXNodGFibGUpKSkKQEAgLTE1NiwxMyArMTU2LDEyIEBACiAgICAgKGlmIChy
NnJzOmhhc2h0YWJsZS1tdXRhYmxlPyBoYXNodGFibGUpCiAJKGxldCogKChodCAocjZyczpoYXNo
dGFibGUtd3JhcHBlZC10YWJsZSBoYXNodGFibGUpKQogCSAgICAgICAoZXF1aXYgKGhhc2gtdGFi
bGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQpKQotCSAgICAgICAoaGFzaC1mdW5jdGlvbiAocjZy
czpoYXNodGFibGUtb3JpZy1oYXNoLWZ1bmN0aW9uIGhhc2h0YWJsZSkpCi0JICAgICAgICh3cmFw
cGVkLWhhc2gtZnVuY3Rpb24gKHdyYXAtaGFzaC1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSkpCisJ
ICAgICAgIChoYXNoLWZ1bmN0aW9uIChyNnJzOmhhc2h0YWJsZS1vcmlnLWhhc2gtZnVuY3Rpb24g
aGFzaHRhYmxlKSkpCiAJICAocjZyczpoYXNodGFibGUtc2V0LXdyYXBwZWQtdGFibGUhCiAJICAg
aGFzaHRhYmxlCiAJICAgKGlmIGsgCi0JICAgICAgIChtYWtlLWhhc2gtdGFibGUgZXF1aXYgd3Jh
cHBlZC1oYXNoLWZ1bmN0aW9uIGspCi0JICAgICAgIChtYWtlLWhhc2gtdGFibGUgZXF1aXYgd3Jh
cHBlZC1oYXNoLWZ1bmN0aW9uKSkpKSkKKwkgICAgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVpdiBo
YXNoLWZ1bmN0aW9uIGspCisJICAgICAgIChtYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1mdW5j
dGlvbikpKSkpCiAgICAgKnVuc3BlY2lmaWVkKikKIAogICAoZGVmaW5lIChoYXNodGFibGUta2V5
cyBoYXNodGFibGUpCmRpZmYgLS1naXQgYS9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbSBiL21vZHVs
ZS9zcmZpL3NyZmktNjkuc2NtCmluZGV4IDJiN2ZiOWE3Zi4uYWU1YmM3ZjA2IDEwMDY0NAotLS0g
YS9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQorKysgYi9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQpA
QCAtMTYsNyArMTYsOCBAQAogOzsgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogOzsgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQog
DAotOzs7OyBDb21tZW50YXJ5OgorCis7Ozs7IE9yaWdpbmFsIChzdGFsZSkgU1JGSS02OSBjb21t
ZW50YXJ5OgogCiA7OyBNeSBgaGFzaCcgaXMgY29tcGF0aWJsZSB3aXRoIGNvcmUgYGhhc2gnLCBz
byBJIHJlcGxhY2UgaXQuCiA7OyBIb3dldmVyLCBteSBgaGFzaC10YWJsZT8nIGFuZCBgbWFrZS1o
YXNoLXRhYmxlJyBhcmUgZGlmZmVyZW50LCBzbwpAQCAtNjUsOCArNjYsNyBAQAogCiA7Ozs7IENv
bW1lbnRhcnkgYnkgSmVzc2ljYSBNaWxhcmUgMjAxOAogCi07OyBNYWtlIGJ1ZyBmaXhlcyBmb3Ig
d2VhayBoYXNoLXRhYmxlcywgc2luY2UgaGFuZGxlcyBkb24ndCB3b3JrIGFueW1vcmUsCi07OyBh
bmQgYWxzbyBzb21lIG9wdGltaXphdGlvbnMuCis7OyBOb3cgaW1wbGVtZW50ZWQgdXNpbmcgbW9k
dWxlIChpY2UtOSBnZW5lcmljLWhhc2gtdGFibGVzKQogOzsKIDs7IE15IHBlcnNvbmFsIGNvbW1l
bnRzIGFyZSBtYXJrZWQgYnkgSi5NLgogCkBAIC03NSwzMDAgKzc1LDEzNiBAQAogOzs7OyBNb2R1
bGUgZGVmaW5pdGlvbiAmIGV4cG9ydHMKIAogKGRlZmluZS1tb2R1bGUgKHNyZmkgc3JmaS02OSkK
LSAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkJO2FsaXN0LWNvbnMsc2Vjb25kJmMsYXNzb2MK
LSAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktOSkKLSAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmkt
MTMpCTtzdHJpbmctaGFzaCxzdHJpbmctaGFzaC1jaQotICAjOnVzZS1tb2R1bGUgKGljZS05IG9w
dGFyZ3MpCi0gICM6ZXhwb3J0ICg7OyBUeXBlIGNvbnN0cnVjdG9ycyAmIHByZWRpY2F0ZQotCSAg
ICBtYWtlLWhhc2gtdGFibGUgaGFzaC10YWJsZT8gYWxpc3QtPmhhc2gtdGFibGUKKyAgIzp1c2Ut
bW9kdWxlIChzcmZpIHNyZmktMSkKKyAgIzp1c2UtbW9kdWxlICgoaWNlLTkgZ2VuZXJpYy1oYXNo
LXRhYmxlcykgIzpwcmVmaXggZ2VuOikKKyAgIzpyZXBsYWNlIChtYWtlLWhhc2gtdGFibGUgaGFz
aC10YWJsZT8gaGFzaCkKKyAgIzpleHBvcnQgKDs7IFR5cGUgY29uc3RydWN0b3JzCisgICAgICAg
ICAgICBtYWtlLWhhc2gtdGFibGUKKyAgICAgICAgICAgIGhhc2gtdGFibGU/IGFsaXN0LT5oYXNo
LXRhYmxlCiAgICAgICAgICAgICA7OyBSZWZsZWN0aXZlIHF1ZXJpZXMKICAgICAgICAgICAgIGhh
c2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uCiAg
ICAgICAgICAgICA7OyBEZWFsaW5nIHdpdGggc2luZ2xlIGVsZW1lbnRzCiAgICAgICAgICAgICBo
YXNoLXRhYmxlLXJlZiBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGhhc2gtdGFibGUtc2V0IQotICAg
ICAgICAgICAgaGFzaC10YWJsZS1kZWxldGUhIGhhc2gtdGFibGUtZXhpc3RzPyBoYXNoLXRhYmxl
LXVwZGF0ZSEKKyAgICAgICAgICAgIGhhc2gtdGFibGUtZGVsZXRlISBoYXNoLXRhYmxlLXVwZGF0
ZSEKICAgICAgICAgICAgIGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0CisgICAgICAgICAgICBo
YXNoLXRhYmxlLWV4aXN0cz8KICAgICAgICAgICAgIDs7IERlYWxpbmcgd2l0aCB0aGUgd2hvbGUg
Y29udGVudHMKICAgICAgICAgICAgIGhhc2gtdGFibGUtc2l6ZSBoYXNoLXRhYmxlLWtleXMgaGFz
aC10YWJsZS12YWx1ZXMKLSAgICAgICAgICAgIGhhc2gtdGFibGUtd2FsayBoYXNoLXRhYmxlLWZv
bGQgaGFzaC10YWJsZS0+YWxpc3QKLSAgICAgICAgICAgIGhhc2gtdGFibGUtY29weSBoYXNoLXRh
YmxlLW1lcmdlIQorICAgICAgICAgICAgaGFzaC10YWJsZS0+YWxpc3QgaGFzaC10YWJsZS1mb2xk
CisgICAgICAgICAgICBoYXNoLXRhYmxlLXdhbGsgaGFzaC10YWJsZS1tZXJnZSEKKyAgICAgICAg
ICAgIGhhc2gtdGFibGUtY29weQogICAgICAgICAgICAgOzsgSGFzaGluZwotICAgICAgICAgICAg
c3RyaW5nLWNpLWhhc2ggaGFzaC1ieS1pZGVudGl0eSkKLSAgIzpyZS1leHBvcnQgKHN0cmluZy1o
YXNoKQotICAjOnJlcGxhY2UgKGhhc2ggbWFrZS1oYXNoLXRhYmxlIGhhc2gtdGFibGU/KSkKKyAg
ICAgICAgICAgIHN0cmluZy1jaS1oYXNoIGhhc2gtYnktaWRlbnRpdHkgaGFzaCkKKyAgIzpyZS1l
eHBvcnQgKHN0cmluZy1oYXNoKSkKIAogKGNvbmQtZXhwYW5kLXByb3ZpZGUgKGN1cnJlbnQtbW9k
dWxlKSAnKHNyZmktNjkpKQotDAotOzs7OyBJbnRlcm5hbCBoZWxwZXIgbWFjcm9zCi0KLTs7IERl
ZmluZSB0aGVzZSBmaXJzdCwgc28gdGhlIGNvbXBpbGVyIHdpbGwgcGljayB0aGVtIHVwLgotCi07
OyBJIGFtIGEgbWFjcm8gb25seSBmb3IgZWZmaWNpZW5jeSwgdG8gYXZvaWQgdmFyYXJncy9hcHBs
eS4KLShkZWZpbmUtbWFjcm8gKGhhc2h4LWludm9rZSBoYXNoeC1wcm9jIGh0LXZhciAuIGFyZ3Mp
Ci0gICJJbnZva2UgSEFTSFgtUFJPQywgYSBgaGFzaHgtKicgcHJvY2VkdXJlIHRha2luZyBhIGhh
c2gtZnVuY3Rpb24sCi1hc3NvYy1mdW5jdGlvbiwgYW5kIHRoZSBoYXNoLXRhYmxlIGFzIGZpcnN0
IGFyZ3MuIgotICBgKCxoYXNoeC1wcm9jIChoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24gLGh0LXZh
cikKLQkJKGh0LWFzc29jaWF0b3IgLGh0LXZhcikKLQkJKGh0LXJlYWwtdGFibGUgLGh0LXZhcikK
LQkJLiAsYXJncykpCiAKLShkZWZpbmUtbWFjcm8gKHdpdGgtaGFzaHgtdmFsdWVzIGJpbmRpbmdz
IGh0LXZhciAuIGJvZHktZm9ybXMpCi0gICJCaW5kIEJJTkRJTkdTIHRvIHRoZSBoYXNoLWZ1bmN0
aW9uLCBhc3NvY2lhdG9yLCBhbmQgcmVhbC10YWJsZSBvZgotSFQtVkFSLCB3aGlsZSBldmFsdWF0
aW5nIEJPRFktRk9STVMuIgotICBgKGxldCAoKCwoZmlyc3QgYmluZGluZ3MpIChoYXNoLXRhYmxl
LWhhc2gtZnVuY3Rpb24gLGh0LXZhcikpCi0JICgsKHNlY29uZCBiaW5kaW5ncykgKGh0LWFzc29j
aWF0b3IgLGh0LXZhcikpCi0JICgsKHRoaXJkIGJpbmRpbmdzKSAoaHQtcmVhbC10YWJsZSAsaHQt
dmFyKSkpCi0gICAgIC4gLGJvZHktZm9ybXMpKQotCi0MCiA7Ozs7IEhhc2hpbmcKLQotOzs7IFRo
ZSBsYXJnZXN0IGZpeG51bSBpcyBpbiBgbW9zdC1wb3NpdGl2ZS1maXhudW0nIGluIG1vZHVsZSAo
Z3VpbGUpLAotOzs7IHRob3VnaCBub3QgZG9jdW1lbnRlZCBhbnl3aGVyZSBidXQgbGliZ3VpbGUv
bnVtYmVycy5jLgotCi0oZGVmaW5lIChjYWxsZXItd2l0aC1kZWZhdWx0LXNpemUgaGFzaC1mbikK
LSAgIkFuc3dlciBhIGZ1bmN0aW9uIHRoYXQgbWFrZXMgYG1vc3QtcG9zaXRpdmUtZml4bnVtJyB0
aGUgZGVmYXVsdAotc2Vjb25kIGFyZ3VtZW50IHRvIEhBU0gtRk4sIGEgMi1hcmcgcHJvY2VkdXJl
LiIKLSAgKGxhbWJkYSogKG9iaiAjOm9wdGlvbmFsIChzaXplIG1vc3QtcG9zaXRpdmUtZml4bnVt
KSkKLSAgICAoaGFzaC1mbiBvYmogc2l6ZSkpKQotCi0oZGVmaW5lIGhhc2ggKGNhbGxlci13aXRo
LWRlZmF1bHQtc2l6ZSAoQCAoZ3VpbGUpIGhhc2gpKSkKLQogKGRlZmluZSBzdHJpbmctY2ktaGFz
aCBzdHJpbmctaGFzaC1jaSkKKyhkZWZpbmUgaGFzaCBnZW46aGFzaCkKKyhkZWZpbmUgaGFzaC1i
eS1pZGVudGl0eSBnZW46aGFzaC1ieS1pZGVudGl0eSkKIAotKGRlZmluZSBoYXNoLWJ5LWlkZW50
aXR5IChjYWxsZXItd2l0aC1kZWZhdWx0LXNpemUgaGFzaHEpKQogDAogOzs7OyBSZWZsZWN0aXZl
IHF1ZXJpZXMsIGNvbnN0cnVjdGlvbiwgcHJlZGljYXRlCiAKLShkZWZpbmUtcmVjb3JkLXR5cGUg
c3JmaS02OTpoYXNoLXRhYmxlCi0gIChtYWtlLXNyZmktNjktaGFzaC10YWJsZSByZWFsLXRhYmxl
IGFzc29jaWF0b3Igc2l6ZSB3ZWFrbmVzcwotCQkJICAgZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFz
aC1mdW5jdGlvbikKLSAgaGFzaC10YWJsZT8KLSAgKHJlYWwtdGFibGUgaHQtcmVhbC10YWJsZSkK
LSAgKGFzc29jaWF0b3IgaHQtYXNzb2NpYXRvcikKLSAgOzsgcmVxdWlyZWQgZm9yIE8oMSkgYnkg
U1JGSS02OS4gIEl0IHJlYWxseSBtYWtlcyBhIG1lc3Mgb2YgdGhpbmdzLAotICA7OyBhbmQgSSdk
IGxpa2UgdG8gY29tcHV0ZSBpdCBpbiBPKG4pIGFuZCBtZW1vaXplIGl0IGJlY2F1c2UgaXQKLSAg
OzsgZG9lc24ndCBzZWVtIHRlcnJpYmx5IHVzZWZ1bCwgYnV0IFNSRkktNjkgaXMgZmluYWwuCi0g
IChzaXplIGh0LXNpemUgaHQtc2l6ZSEpCi0gIDs7IHJlcXVpcmVkIGZvciBgaGFzaC10YWJsZS1j
b3B5JwotICAod2Vha25lc3MgaHQtd2Vha25lc3MpCi0gIDs7IHVzZWQgb25seSB0byBpbXBsZW1l
bnQgaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbjsgSSBkb24ndAotICA7OyB1c2UgaXQg
aW50ZXJuYWxseSBvdGhlciB0aGFuIGZvciBgaHQtYXNzb2NpYXRvcicuCi0gIChlcXVpdmFsZW5j
ZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uKQotICAoaGFzaC1mdW5j
dGlvbiBoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24pKQorKGRlZmluZSBoYXNoLXRhYmxlPyBnZW46
aGFzaC10YWJsZT8pCiAKIChkZWZpbmUgKGd1ZXNzLWhhc2gtZnVuY3Rpb24gZXF1YWwtcHJvYykK
ICAgIkd1ZXNzIGEgaGFzaCBmdW5jdGlvbiBmb3IgRVFVQUwtUFJPQywgZmFsbGluZyBiYWNrIG9u
IGBoYXNoJywgYXMKIHNwZWNpZmllZCBpbiBTUkZJLTY5IGZvciBgbWFrZS1oYXNoLXRhYmxlJy4i
Ci0gIChjb25kICgoZXE/IGVxdWFsPyBlcXVhbC1wcm9jKSAoQCAoZ3VpbGUpIGhhc2gpKSA7c2hv
cnRjdXQgbW9zdCBjb21tb24gY2FzZQotCSgoZXE/IGVxPyBlcXVhbC1wcm9jKSBoYXNocSkKLQko
KGVxPyBlcXY/IGVxdWFsLXByb2MpIGhhc2h2KQotCSgoZXE/IHN0cmluZz0/IGVxdWFsLXByb2Mp
IHN0cmluZy1oYXNoKQotCSgoZXE/IHN0cmluZy1jaT0/IGVxdWFsLXByb2MpIHN0cmluZy1jaS1o
YXNoKQotCShlbHNlIChAIChndWlsZSkgaGFzaCkpKSkKLQotKGRlZmluZSAod2l0aG91dC1rZXl3
b3JkLWFyZ3MgcmVzdC1saXN0KQotICAiQW5zd2VyIFJFU1QtTElTVCB3aXRoIGFsbCBrZXl3b3Jk
cyByZW1vdmVkIGFsb25nIHdpdGggaXRlbXMgdGhhdAotZm9sbG93IHRoZW0uIgotICAobGV0IGxw
ICgoYWNjICcoKSkgKHJlc3QtbGlzdCByZXN0LWxpc3QpKQotICAgIChjb25kICgobnVsbD8gcmVz
dC1saXN0KSAocmV2ZXJzZSEgYWNjKSkKLQkgICgoa2V5d29yZD8gKGZpcnN0IHJlc3QtbGlzdCkp
Ci0JICAgKGxwIGFjYyAoY2RkciByZXN0LWxpc3QpKSkKLQkgIChlbHNlIChscCAoY29ucyAoZmly
c3QgcmVzdC1saXN0KSBhY2MpIChjZHIgcmVzdC1saXN0KSkpKSkpCi0KLShkZWZpbmUgKGd1aWxl
LWh0LWN0b3Igd2Vha25lc3MpCi0gICJBbnN3ZXIgdGhlIEd1aWxlIEhUIGNvbnN0cnVjdG9yIGZv
ciB0aGUgZ2l2ZW4gV0VBS05FU1MuIgotICAoY2FzZSB3ZWFrbmVzcwotICAgICgoI2YpIChAIChn
dWlsZSkgbWFrZS1oYXNoLXRhYmxlKSkKLSAgICAoKGtleSkgbWFrZS13ZWFrLWtleS1oYXNoLXRh
YmxlKQotICAgICgodmFsdWUpIG1ha2Utd2Vhay12YWx1ZS1oYXNoLXRhYmxlKQotICAgICgoa2V5
LW9yLXZhbHVlKSBtYWtlLWRvdWJseS13ZWFrLWhhc2gtdGFibGUpCi0gICAgKGVsc2UgKGVycm9y
ICJJbnZhbGlkIHdlYWsgaGFzaCB0YWJsZSB0eXBlIiB3ZWFrbmVzcykpKSkKLQotKGRlZmluZSAo
ZXF1aXZhbGVuY2UtcHJvYy0+YXNzb2NpYXRvciBlcXVhbC1wcm9jKQotICAiQW5zd2VyIGFuIGBh
c3NvYyctbGlrZSBwcm9jZWR1cmUgdGhhdCBjb21wYXJlcyB0aGUgYXJndW1lbnQga2V5IHRvCi1h
bGlzdCBrZXlzIHdpdGggRVFVQUwtUFJPQy4iCi0gIChjb25kICgob3IgKGVxPyBlcXVhbD8gZXF1
YWwtcHJvYykKLQkgICAgIChlcT8gc3RyaW5nPT8gZXF1YWwtcHJvYykpIChAIChndWlsZSkgYXNz
b2MpKQotCSgoZXE/IGVxPyBlcXVhbC1wcm9jKSBhc3NxKQotCSgoZXE/IGVxdj8gZXF1YWwtcHJv
YykgYXNzdikKLQkoZWxzZSAobGFtYmRhIChpdGVtIGFsaXN0KQotCQkoYXNzb2MgaXRlbSBhbGlz
dCBlcXVhbC1wcm9jKSkpKSkKLQotKGRlZmluZSogKG1ha2UtaGFzaC10YWJsZQotCSAgIzpvcHRp
b25hbCAoZXF1YWwtcHJvYyBlcXVhbD8pCi0JICAoaGFzaC1wcm9jIChndWVzcy1oYXNoLWZ1bmN0
aW9uIGVxdWFsLXByb2MpKQotCSAgIzprZXkgKHdlYWsgI2YpICM6cmVzdCBndWlsZS1vcHRzKQor
ICAoY29uZCAoKGVxPyBlcXVhbD8gZXF1YWwtcHJvYykgZ2VuOmhhc2gpIDtzaG9ydGN1dCBtb3N0
IGNvbW1vbiBjYXNlCisJKChlcT8gZXE/IGVxdWFsLXByb2MpIGdlbjpoYXNoLWJ5LWlkZW50aXR5
KQorCSgoZXE/IGVxdj8gZXF1YWwtcHJvYykgZ2VuOmhhc2gtYnktdmFsdWUpCisJKChlcT8gc3Ry
aW5nPT8gZXF1YWwtcHJvYykgZ2VuOnN0cmluZy1oYXNoKQorCSgoZXE/IHN0cmluZy1jaT0/IGVx
dWFsLXByb2MpIGdlbjpzdHJpbmctY2ktaGFzaCkKKwkoZWxzZSBnZW46aGFzaCkpKQorCisoZGVm
aW5lIChub3JtYWxpemUtd2Vha25lc3Mgd2VhaykKKyAgIk5vcm1hbGl6ZXMgU1JGSS02OSBzdGFu
ZGFyZCAjOndlYWsgdG8gU1JGSS0xMjYgd2Vha25lc3MgYXJndW1lbnQuIgorICAoY2FzZSB3ZWFr
CisgICAgKCgjZikgI2YpCisgICAgKChrZXkpICd3ZWFrLWtleSkKKyAgICAoKHZhbHVlKSAnd2Vh
ay12YWx1ZSkKKyAgICAoKGtleS1vci12YWx1ZSkgJ3dlYWsta2V5LWFuZC12YWx1ZSkKKyAgICAo
ZWxzZSAoZXJyb3IgIkludmFsaWQgd2VhayBoYXNoIHRhYmxlIHR5cGUiIHdlYWspKSkpCisKKyhk
ZWZpbmUqIChtYWtlLWhhc2gtdGFibGUgIzpvcHRpb25hbCAoZXF1YWwtcHJvYyBlcXVhbD8pCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoLXByb2MgKGd1ZXNzLWhhc2gtZnVuY3Rpb24g
ZXF1YWwtcHJvYykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICM6a2V5ICh3ZWFrICNmKSAj
OnJlc3QgYXJncykKICAgIkFuc3dlciBhIG5ldyBoYXNoIHRhYmxlIHVzaW5nIEVRVUFMLVBST0Mg
YXMgdGhlIGNvbXBhcmlzb24KIGZ1bmN0aW9uLCBhbmQgSEFTSC1QUk9DIGFzIHRoZSBoYXNoIGZ1
bmN0aW9uLiAgU2VlIHRoZSByZWZlcmVuY2UKIG1hbnVhbCBmb3Igc3BlY2lmaWNzLCBvZiB3aGlj
aCB0aGVyZSBhcmUgbWFueS4iCi0gIChtYWtlLXNyZmktNjktaGFzaC10YWJsZQotICAgKGFwcGx5
IChndWlsZS1odC1jdG9yIHdlYWspICh3aXRob3V0LWtleXdvcmQtYXJncyBndWlsZS1vcHRzKSkK
LSAgIChlcXVpdmFsZW5jZS1wcm9jLT5hc3NvY2lhdG9yIGVxdWFsLXByb2MpCi0gICAwIHdlYWsg
ZXF1YWwtcHJvYyBoYXNoLXByb2MpKQorICAobGV0ICgoY2FwYWNpdHkgKGZpbmQgaW50ZWdlcj8g
YXJncykpKQorICAgIChnZW46bWFrZS1oYXNoLXRhYmxlIGVxdWFsLXByb2MgaGFzaC1wcm9jCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyAobm9ybWFsaXplLXdlYWtuZXNzIHdl
YWspCisgICAgICAgICAgICAgICAgICAgICAgICAgIzpjYXBhY2l0eSAob3IgY2FwYWNpdHkgMSkp
KSkKKworKGRlZmluZSBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGdlbjpoYXNoLXRh
YmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uKQorKGRlZmluZSBoYXNoLXRhYmxlLWhhc2gtZnVuY3Rp
b24gZ2VuOmhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbikKKyhkZWZpbmUqIChhbGlzdC0+aGFzaC10
YWJsZSBhbGlzdCAjOm9wdGlvbmFsIChlcXVhbC1wcm9jIGVxdWFsPykKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoaGFzaC1wcm9jIChndWVzcy1oYXNoLWZ1bmN0aW9uIGVxdWFsLXByb2Mp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6a2V5ICh3ZWFrICNmKSAjOnJlc3QgYXJn
cykKKyAgKGxldCAoKGNhcGFjaXR5IChmaW5kIGludGVnZXI/IGFyZ3MpKSkKKyAgICAoZ2VuOmFs
aXN0LT5oYXNoLXRhYmxlIGFsaXN0IGVxdWFsLXByb2MgaGFzaC1wcm9jCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAjOndlYWtuZXNzIChub3JtYWxpemUtd2Vha25lc3Mgd2VhaykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICM6Y2FwYWNpdHkgKG9yIGNhcGFjaXR5IDEpKSkpCiAKLShk
ZWZpbmUgKGFsaXN0LT5oYXNoLXRhYmxlIGFsaXN0IC4gbWh0LWFyZ3MpCi0gICJDb252ZXJ0IEFM
SVNUIHRvIGEgaGFzaCB0YWJsZSBjcmVhdGVkIHdpdGggTUhULUFSR1MuIgotICAobGV0KiAoKHJl
c3VsdCAoYXBwbHkgbWFrZS1oYXNoLXRhYmxlIG1odC1hcmdzKSkKLQkgKHNpemUgKGh0LXNpemUg
cmVzdWx0KSkpCi0gICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoYXNoLXByb2MgYXNzb2NpYXRvciBy
ZWFsLXRhYmxlKSByZXN1bHQKLSAgICAgIChmb3ItZWFjaCAobGFtYmRhIChwYWlyKQotICAgICAg
ICAgICAgICAgICAgKGxldCAoKHZhbHVlIChoYXNoeC1yZWYgaGFzaC1wcm9jIGFzc29jaWF0b3IK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWwtdGFibGUgKGNh
ciBwYWlyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHQtdW5z
cGVjaWZpZWQpKSkKLSAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChlcT8gaHQtdW5zcGVjaWZp
ZWQgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBzaXplICgxKyBzaXpl
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBhc3Nv
Y2lhdG9yIHJlYWwtdGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChjYXIgcGFpcikgKGNkciBwYWlyKSkpKSkpCi0gICAgICAgICAgICAgICAgYWxpc3QpKQotICAg
IChodC1zaXplISByZXN1bHQgc2l6ZSkKLSAgICByZXN1bHQpKQogDAotOzs7OyBBY2Nlc3Npbmcg
dGFibGUgaXRlbXMKLQotOzsgV2UgdXNlIHRoaXMgdG8gZGVub3RlIG1pc3Npbmcgb3IgdW5zcGVj
aWZpZWQgdmFsdWVzIHRvIGF2b2lkCi0KLTs7IHBvc3NpYmxlIGNvbGxpc2lvbiB3aXRoICp1bnNw
ZWNpZmllZCouCi0oZGVmaW5lIGh0LXVuc3BlY2lmaWVkIChjb25zICp1bnNwZWNpZmllZCogImh0
LXZhbHVlIikpCis7OyBEZWFsaW5nIHdpdGggc2luZ2xlIGVsZW1lbnRzCiAKLShkZWZpbmUqICho
YXNoLXRhYmxlLXJlZiBodCBrZXkgICM6b3B0aW9uYWwgKGRlZmF1bHQtdGh1bmsgaHQtdW5zcGVj
aWZpZWQpKQorKGRlZmluZSogKGhhc2gtdGFibGUtcmVmIGh0IGtleSAjOm9wdGlvbmFsIGZhaWx1
cmUpCiAgICJMb29rdXAgS0VZIGluIEhUIGFuZCBhbnN3ZXIgdGhlIHZhbHVlLCBpbnZva2UgREVG
QVVMVC1USFVOSyBpZiBLRVkKIGlzbid0IHByZXNlbnQsIG9yIHNpZ25hbCBhbiBlcnJvciBpZiBE
RUZBVUxULVRIVU5LIGlzbid0IHByb3ZpZGVkLiIKLSAgKGxldCAoKHJlc3VsdCAoaGFzaHgtaW52
b2tlIGhhc2h4LXJlZiBodCBrZXkgaHQtdW5zcGVjaWZpZWQpKSkKLSAgICAoaWYgKGVxPyBodC11
bnNwZWNpZmllZCByZXN1bHQpCi0JKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgZGVmYXVsdC10aHVu
aykKLQkgICAgKGVycm9yICJLZXkgbm90IGluIHRhYmxlIiBrZXkgaHQpCi0JICAgIChkZWZhdWx0
LXRodW5rKSkKLQlyZXN1bHQpKSkKLQotKGRlZmluZSAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBo
dCBrZXkgZGVmYXVsdCkKLSAgIkxvb2t1cCBLRVkgaW4gSFQgYW5kIGFuc3dlciB0aGUgdmFsdWUu
ICBBbnN3ZXIgREVGQVVMVCBpZiBLRVkgaXNuJ3QKLXByZXNlbnQuIgotICAoaGFzaHgtaW52b2tl
IGhhc2h4LXJlZiBodCBrZXkgZGVmYXVsdCkpCi0KLShkZWZpbmUgKGhhc2gtdGFibGUtc2V0ISBo
dCBrZXkgbmV3LXZhbHVlKQotICAiU2V0IEtFWSB0byBORVctVkFMVUUgaW4gSFQuIgotICAoaWYg
KGh0LXdlYWtuZXNzIGh0KQotICAgICAgOzsgSi5NLiBzZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBo
dCBpcyB3ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQotICAgICAgOzsgSi5NLiBkb24ndCBuZWVkIHRv
IHVwZGF0ZSBzaXplIGZvciB3ZWFrIGhhc2gtdGFibGVzCi0gICAgICAoaGFzaHgtaW52b2tlIGhh
c2h4LXNldCEgaHQga2V5IG5ldy12YWx1ZSkKLSAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWlu
dm9rZSBoYXNoeC1jcmVhdGUtaGFuZGxlISBodCBrZXkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBodC11bnNwZWNpZmllZCkpKQotICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNp
ZmllZCAoY2RyIGhhbmRsZSkpCi0gICAgICAgICAgICAoaHQtc2l6ZSEgaHQgKDErIChodC1zaXpl
IGh0KSkpKQotICAgICAgICAoc2V0LWNkciEgaGFuZGxlIG5ldy12YWx1ZSkpKQotICAqdW5zcGVj
aWZpZWQqKQorICAoaWYgZmFpbHVyZQorICAgICAgKGdlbjpoYXNoLXRhYmxlLXJlZiBodCBrZXkg
ZmFpbHVyZSkKKyAgICAgIChnZW46aGFzaC10YWJsZS1yZWYgaHQga2V5KSkpCiAKKyhkZWZpbmUg
aGFzaC10YWJsZS1yZWYvZGVmYXVsdCBnZW46aGFzaC10YWJsZS1yZWYvZGVmYXVsdCkKKyhkZWZp
bmUgaGFzaC10YWJsZS1leGlzdHM/IGdlbjpoYXNoLXRhYmxlLWNvbnRhaW5zPykKKyhkZWZpbmUg
aGFzaC10YWJsZS1zZXQhIGdlbjpoYXNoLXRhYmxlLXNldC1zaW5nbGUhKQogKGRlZmluZSAoaGFz
aC10YWJsZS1kZWxldGUhIGh0IGtleSkKLSAgIlJlbW92ZSBLRVkncyBhc3NvY2lhdGlvbiBpbiBI
VC4iCi0gICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtaHQpIGh0Ci0gICAgKGlmIChub3Qg
KGVxPyBodC11bnNwZWNpZmllZCAoaGFzaHgtcmVmIGggYSByZWFsLWh0IGtleSBodC11bnNwZWNp
ZmllZCkpKQotICAgICAgICAoYmVnaW4KLSAgICAgICAgICAoaHQtc2l6ZSEgaHQgKDEtIChodC1z
aXplIGh0KSkpCi0gICAgICAgICAgKGhhc2h4LXJlbW92ZSEgaCBhIHJlYWwtaHQga2V5KSkpKQor
ICAoZ2VuOmhhc2gtdGFibGUtZGVsZXRlLXNpbmdsZSEgaHQga2V5KQogICAqdW5zcGVjaWZpZWQq
KQogCi0oZGVmaW5lIChoYXNoLXRhYmxlLWV4aXN0cz8gaHQga2V5KQotICAiUmV0dXJuIHdoZXRo
ZXIgS0VZIGlzIGEga2V5IGluIEhULiIKLSAgKG5vdCAoZXE/IGh0LXVuc3BlY2lmaWVkIChoYXNo
eC1pbnZva2UgaGFzaHgtcmVmIGh0IGtleSBodC11bnNwZWNpZmllZCkpKSkKLQotOzs7IGBoYXNo
LXRhYmxlLXVwZGF0ZSEnIG5vbi1sb2NhbGx5LgotKGRlZmluZSogKGhhc2gtdGFibGUtdXBkYXRl
ISBodCBrZXkgbW9kaWZpZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpvcHRpb25h
bCAoZGVmYXVsdC10aHVuayBodC11bnNwZWNpZmllZCkpCisoZGVmaW5lKiAoaGFzaC10YWJsZS11
cGRhdGUhIGh0IGtleSBtb2RpZmllciAjOm9wdGlvbmFsIGRlZmF1bHQtdGh1bmspCiAgICJNb2Rp
ZnkgSFQncyB2YWx1ZSBhdCBLRVkgYnkgcGFzc2luZyBpdHMgdmFsdWUgdG8gTU9ESUZJRVIgYW5k
CiBzZXR0aW5nIGl0IHRvIHRoZSByZXN1bHQgdGhlcmVvZi4gIEludm9rZSBERUZBVUxULVRIVU5L
IGZvciB0aGUgb2xkCiB2YWx1ZSBpZiBLRVkgaXNuJ3QgaW4gSFQsIG9yIHNpZ25hbCBhbiBlcnJv
ciBpZiBERUZBVUxULVRIVU5LIGlzIG5vdAogcHJvdmlkZWQuIgotICAod2l0aC1oYXNoeC12YWx1
ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUpIGh0Ci0gICAgKGlmIChodC13ZWFr
bmVzcyBodCkKLSAgICAgICAgOzsgSi5NLiBzZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3
ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQotICAgICAgICAobGV0KiAoKG9sZCAoaGFzaHgtcmVmIGhh
c2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaHQtdW5zcGVjaWZpZWQpKSkKLSAgICAgICAgICAoY29uZCAoKGVxPyBodC11bnNw
ZWNpZmllZCBvbGQpCi0gICAgICAgICAgICAgICAgIChpZiAoZXE/IGh0LXVuc3BlY2lmaWVkIGRl
ZmF1bHQtdGh1bmspCi0gICAgICAgICAgICAgICAgICAgICAoZXJyb3IgIktleSBub3QgaW4gdGFi
bGUiIGtleSBodCkKLSAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBh
c3NvY2lhdG9yIHJlYWwtdGFibGUga2V5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobW9kaWZpZXIgKGRlZmF1bHQtdGh1bmspKSkpKQotICAgICAgICAgICAgICAgIChlbHNlCi0g
ICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFi
bGUga2V5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RpZmllciBvbGQpKSkpKQot
ICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1nZXQtaGFuZGxlIGhhc2gtcHJvYyBhc3NvY2lh
dG9yIHJlYWwtdGFibGUga2V5KSkpCi0gICAgICAgICAgKGNvbmQgKGhhbmRsZSAoaWYgKGVxPyBo
dC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGJlZ2luIChodC1zaXplISBodCAoMSsgKGh0LXNpemUgaHQpKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgKGRlZmF1bHQtdGh1
bmspKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9k
aWZpZXIgKGNkciBoYW5kbGUpKSkpKQotICAgICAgICAgICAgICAgIChlbHNlIChpZiAoZXE/IGh0
LXVuc3BlY2lmaWVkIGRlZmF1bHQtdGh1bmspCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChl
cnJvciAiS2V5IG5vdCBpbiB0YWJsZSIga2V5IGh0KQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGV0ICgoZGVmYXVsdCAoZGVmYXVsdC10aHVuaykpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChodC1zaXplISBodCAoMSsgKGh0LXNpemUgaHQpKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlIGtl
eQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RpZmllciBkZWZh
dWx0KSkpKSkpKSkpCi0gICp1bnNwZWNpZmllZCopCisgIChpZiBkZWZhdWx0LXRodW5rCisgICAg
ICAoZ2VuOmhhc2gtdGFibGUtdXBkYXRlISBodCBrZXkgbW9kaWZpZXIgZGVmYXVsdC10aHVuaykK
KyAgICAgIChnZW46aGFzaC10YWJsZS11cGRhdGUhIGh0IGtleSBtb2RpZmllcikpKQorCisoZGVm
aW5lIGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0IGdlbjpoYXNoLXRhYmxlLXVwZGF0ZSEvZGVm
YXVsdCkKIAotOzs7IEouTS4gQ3VzdG9tIGltcGxlbWVudGF0aW9uIGluc3RlYWQgb2YgdXNpbmcg
aGFzaC10YWJsZS11cGRhdGUhCi0oZGVmaW5lIChoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdCBo
dCBrZXkgbW9kaWZpZXIgZGVmYXVsdCkKLSAgIk1vZGlmeSBIVCdzIHZhbHVlIGF0IEtFWSBieSBw
YXNzaW5nIGl0cyBvbGQgdmFsdWUsIG9yIERFRkFVTFQgaWYgaXQKLWRvZXNuJ3QgaGF2ZSBvbmUs
IHRvIE1PRElGSUVSLCBhbmQgc2V0dGluZyBpdCB0byB0aGUgcmVzdWx0IHRoZXJlb2YuIgotICAo
d2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUpIGh0Ci0g
ICAgKGlmIChodC13ZWFrbmVzcyBodCkKLSAgICAgICAgOzsgSi5NLiBzZXBhcmF0ZSB0aGUgY2Fz
ZSB3aGVyZSBodCBpcyB3ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQotICAgICAgICAobGV0KiAoKG9s
ZCAoaGFzaHgtcmVmIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5IGRlZmF1bHQp
KSkKLSAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxl
IGtleSAobW9kaWZpZXIgb2xkKSkpCi0gICAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWNyZWF0
ZS1oYW5kbGUhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVuc3BlY2lmaWVkKSkpCi0gICAg
ICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5kbGUpKQotICAgICAgICAgICAg
ICAoYmVnaW4gKGh0LXNpemUhIGh0ICgxKyAoaHQtc2l6ZSBodCkpKQotICAgICAgICAgICAgICAg
ICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgZGVmYXVsdCkpKQotICAgICAgICAgICAg
ICAoc2V0LWNkciEgaGFuZGxlIChtb2RpZmllciAoY2RyIGhhbmRsZSkpKSkpKSkpCiAMCiA7Ozs7
IEFjY2Vzc2luZyB3aG9sZSB0YWJsZXMKIAotKGRlZmluZSAoaGFzaC10YWJsZS1zaXplIGh0KQot
ICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgYXNzb2NpYXRpb25zIGluIEhULiAgVGhpcyBpcyBndWFy
YW50ZWVkIE8oMSkKLWZvciB0YWJsZXMgd2hlcmUgIzp3ZWFrIHdhcyAjZiBvciBub3Qgc3BlY2lm
aWVkIGF0IGNyZWF0aW9uIHRpbWUuIgotICAoaWYgKGh0LXdlYWtuZXNzIGh0KQotICAgICAgKGxl
dCAoKHNpemUgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYgYW5zKSAoMSsgYW5zKSkg
MCkpKQotICAgICAgICAoaHQtc2l6ZSEgaHQgc2l6ZSkKLSAgICAgICAgc2l6ZSkKLSAgICAgICho
dC1zaXplIGh0KSkpCi0KLShkZWZpbmUgKGhhc2gtdGFibGUta2V5cyBodCkKLSAgIlJldHVybiBh
IGxpc3Qgb2YgdGhlIGtleXMgaW4gSFQuIgotICAoaGFzaC10YWJsZS1mb2xkIGh0IChsYW1iZGEg
KGsgdiBsc3QpIChjb25zIGsgbHN0KSkgJygpKSkKLQotKGRlZmluZSAoaGFzaC10YWJsZS12YWx1
ZXMgaHQpCi0gICJSZXR1cm4gYSBsaXN0IG9mIHRoZSB2YWx1ZXMgaW4gSFQuIgotICAoaGFzaC10
YWJsZS1mb2xkIGh0IChsYW1iZGEgKGsgdiBsc3QpIChjb25zIHYgbHN0KSkgJygpKSkKKyhkZWZp
bmUgaGFzaC10YWJsZS1zaXplIGdlbjpoYXNoLXRhYmxlLXNpemUpCisoZGVmaW5lIGhhc2gtdGFi
bGUta2V5cyBnZW46aGFzaC10YWJsZS1rZXlzKQorKGRlZmluZSBoYXNoLXRhYmxlLXZhbHVlcyBn
ZW46aGFzaC10YWJsZS12YWx1ZXMpCisoZGVmaW5lIGhhc2gtdGFibGUtPmFsaXN0IGdlbjpoYXNo
LXRhYmxlLT5hbGlzdCkKIAogKGRlZmluZSAoaGFzaC10YWJsZS13YWxrIGh0IHByb2MpCiAgICJD
YWxsIFBST0Mgd2l0aCBlYWNoIGtleSBhbmQgdmFsdWUgYXMgdHdvIGFyZ3VtZW50cy4iCi0gICho
YXNoLWZvci1lYWNoIHByb2MgKGh0LXJlYWwtdGFibGUgaHQpKSkKKyAgKGdlbjpoYXNoLXRhYmxl
LWZvci1lYWNoIHByb2MgaHQpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxlLWZvbGQgaHQgZiBrbmls
KQogICAiSW52b2tlIChGIEtFWSBWQUwgUFJFVikgZm9yIGVhY2ggS0VZIGFuZCBWQUwgaW4gSFQs
IHdoZXJlIFBSRVYgaXMKIHRoZSByZXN1bHQgb2YgdGhlIHByZXZpb3VzIGludm9jYXRpb24sIHVz
aW5nIEtOSUwgYXMgdGhlIGZpcnN0IFBSRVYuCiBBbnN3ZXIgdGhlIGZpbmFsIEYgcmVzdWx0LiIK
LSAgKGhhc2gtZm9sZCBmIGtuaWwgKGh0LXJlYWwtdGFibGUgaHQpKSkKLQotKGRlZmluZSAoaGFz
aC10YWJsZS0+YWxpc3QgaHQpCi0gICJSZXR1cm4gYW4gYWxpc3QgZm9yIEhULiIKLSAgKGhhc2gt
bWFwLT5saXN0IGNvbnMgKGh0LXJlYWwtdGFibGUgaHQpKSkKKyAgKGdlbjpoYXNoLXRhYmxlLWZv
bGQgZiBrbmlsIGh0KSkKIAogKGRlZmluZSAoaGFzaC10YWJsZS1jb3B5IGh0KQogICAiQW5zd2Vy
IGEgY29weSBvZiBIVC4iCi0gICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtaHQpIGh0Ci0g
ICAgKGxldCogKChzaXplIChoYXNoLXRhYmxlLXNpemUgaHQpKSAod2VhayAoaHQtd2Vha25lc3Mg
aHQpKQotCSAgIChuZXctcmVhbC1odCAoKGd1aWxlLWh0LWN0b3Igd2Vhaykgc2l6ZSkpKQotICAg
ICAgKGhhc2gtZm9yLWVhY2ggKGxhbWJkYSAoayB2KSAoaGFzaHgtc2V0ISBoIGEgbmV3LXJlYWwt
aHQgayB2KSkKLSAgICAgICAgICAgICAgICAgICAgIHJlYWwtaHQpCi0gICAgICAobWFrZS1zcmZp
LTY5LWhhc2gtdGFibGUJCTtyZWFsLGFzc29jLHNpemUsd2VhayxlcXVpdixoCi0gICAgICAgbmV3
LXJlYWwtaHQgYSBzaXplIHdlYWsKLSAgICAgICAoaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5j
dGlvbiBodCkgaCkpKSkKKyAgKGdlbjpoYXNoLXRhYmxlLWNvcHkgaHQpKQogCiAoZGVmaW5lICho
YXNoLXRhYmxlLW1lcmdlISBodCBvdGhlci1odCkKICAgIkFkZCBhbGwga2V5L3ZhbHVlIHBhaXJz
IGZyb20gT1RIRVItSFQgdG8gSFQsIG92ZXJyaWRpbmcgSFQncwogbWFwcGluZ3Mgd2hlcmUgcHJl
c2VudC4gIFJldHVybiBIVC4iCi0gIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2gt
dGFibGUtc2V0ISBodCBrIHYpKQotICAgICAgICAgICAgICAgICAoaHQtcmVhbC10YWJsZSBvdGhl
ci1odCkpCisgIDs7IEhBU0gtVEFCTEUtU0VUISB0ZXN0cyBpZiBIVCBpcyBtdXRhYmxlLgorICAo
Z2VuOmhhc2gtdGFibGUtZm9yLWVhY2ggKGxhbWJkYSAoayB2KSAoaGFzaC10YWJsZS1zZXQhIGh0
IGsgdikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlci1odCkKICAgaHQpCiAKIDs7
OyBzcmZpLTY5LnNjbSBlbmRzIGhlcmUKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3Jm
aS02OS50ZXN0IGIvdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTY5LnRlc3QKaW5kZXggYzJhNTU0ZGIz
Li5lMTU3OWY3M2EgMTAwNjQ0Ci0tLSBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0Cisr
KyBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0CkBAIC0xNDEsNiArMTQxLDcgQEAgY2Fz
ZS1pbnNlbnNpdGl2ZSBzdHJpbmdzIHRvIGBlcXVhbD8nLXRlc3RlZCB2YWx1ZXMuIgogICAgICAg
ICAgICAgIChsc2V0PSBlcXVhbD8gJygoYiAuIDMpIChjIC4gNCkpIChoYXNoLXRhYmxlLT5hbGlz
dCBodDIpKSkpKSkKIAogICAocGFzcy1pZiAiY2FuIHVzZSBhbGwgYXJndW1lbnRzLCBpbmNsdWRp
bmcgc2l6ZSIKLSAgICAoaGFzaC10YWJsZT8gKG1ha2UtaGFzaC10YWJsZSBlcXVhbD8gaGFzaCAj
OndlYWsgJ2tleSAzMSkpKQorICAgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGVxdWFsPyBo
YXNoICM6d2VhayAna2V5IDMxKSkpCisgICAgICAoaGFzaC10YWJsZT8gaHQpKSkKIAogICApCi0t
IAoyLjE5LjEKCg==
--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="UTF-8"; 
	name="0001-Fix-SRFI-69-don-t-use-handles-with-weak-tables.patch"
Content-Disposition: attachment; 
	filename="0001-Fix-SRFI-69-don-t-use-handles-with-weak-tables.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofminb0>
X-Attachment-Id: f_jqofminb0

RnJvbSBjZTEwOTk0ZmQ3Y2Q3NTQ2Yjc3MDdhNDA3MTJlYzk2MDNlNzQwMTA3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjE6NTU6NDAg
LTAyMDAKU3ViamVjdDogW1BBVENIIDEvNV0gRml4OiBTUkZJLTY5IGRvbid0IHVzZSBoYW5kbGVz
IHdpdGggd2VhayB0YWJsZXMgIGFueW1vcmUuCgpNYW55IHByb2NlZHVyZXMgdXNlZCBoYXNoeC1n
ZXQtaGFuZGxlIGFuZCBoYXNoeC1jcmVhdGUtaGFuZGxlISB3aXRob3V0CmNoZWNraW5nIHdoZXRo
ZXIgcmVhbC1oYXNoLXRhYmxlIHdhcyB3ZWFrLiBOb3cgdGhhdCBpc24ndCB0aGUgY2FzZQphbnlt
b3JlIChCdWcgMzM4MjcpLiBBIGJ1ZyB3YXMgZml4ZWQgaW4gaGFzaC10YWJsZS1tZXJnZSEgYW5k
IGEgdGVzdCBjYXNlCndhcyBhZGRlZC4gQSBmZXcgb3RoZXIgb3B0aW1pemF0aW9ucyB3ZXJlIG1h
ZGUuCgoqIG1vZHVsZS9zcmZpL3NyZmktNjkuc2NtIChhbGlzdC0+aGFzaC10YWJsZSk6CihoYXNo
LXRhYmxlLWRlbGV0ZSEpOgooaGFzaC10YWJsZS1leGlzdHM/KToKKGhhc2gtdGFibGUtcmVmKTog
RG9uJ3QgdXNlIGhhc2h4LWdldC1oYW5kbGUuCihoYXNoLXRhYmxlLXNldCEpOiBJZiB3ZWFrbmVz
cyBpcyBzZXQsIGRvbid0IHVzZSBoYXNoeC1jcmVhdGUtaGFuZGxlIQphbmQgZG9uJ3QgdXBkYXRl
IHNpemUuCihoYXNoLXRhYmxlLXVwZGF0ZSEpOiBJZiB3ZWFrbmVzcyBpcyBzZXQsIGRvbid0IHVz
ZSBoYXNoeC1nZXQtaGFuZGxlCmFuZCBkb24ndCB1cGRhdGUgc2l6ZS4KKGhhc2gtdGFibGUtdXBk
YXRlIS9kZWZhdWx0KTogQWRkZWQgYW4gaW1wbGVtZW50YXRpb24gdGhhdCBkb2Vzbid0IGNhbGwK
aGFzaC10YWJsZS11cGRhdGUhLCBhdm9pZGluZyBhbGxvY2F0aW5nIGEgcHJvY2VkdXJlLgooaGFz
aC10YWJsZS1zaXplKTogU2V0IGh0LXNpemUgZm9yIHdlYWsgaGFzaC10YWJsZXMuCihoYXNoLXRh
YmxlLXdhbGspOgooaGFzaC10YWJsZS1jb3B5KTogVXNlIG5hdGl2ZSBoYXNoLWZvci1lYWNoIGlu
c3RlYWQgb2YgaGFzaC10YWJsZS1mb2xkLgooaGFzaC10YWJsZS0+YWxpc3QpOiBVc2UgbmF0aXZl
IGhhc2gtbWFwLT5saXN0IGluc3RlYWQgb2YgaGFzaC10YWJsZS1mb2xkLgooaGFzaC10YWJsZS1t
ZXJnZSEpOiBVc2UgbmF0aXZlIGhhc2gtZm9yLWVhY2ggaW5zdGVhZCBvZiBoYXNoLXRhYmxlLWZv
bGQuCldhbGtzIG92ZXIgb3RoZXItaHQgcmF0aGVyIHRoYW4gd2Fsa2luZyBodCAoYW5kIGRvaW5n
IG5vdGhpbmcpLgoqIHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0OiBhbGwgYXBwcm9wcmlh
dGUgdGVzdCBhcmUgcmVwbGljYXRlZCBmb3IKYWxsIHBvc3NpYmxlICM6d2VhayBhcmd1bWVudHMu
IEFkZGVkIGEgdGVzdCBmb3IgaGFzaC10YWJsZS1tZXJnZSEuCi0tLQogVEhBTktTICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEgKwogbW9kdWxlL3NyZmkvc3JmaS02OS5zY20gICAgICAgfCAx
NDggKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS02
OS50ZXN0IHwgMTczICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDMgZmlsZXMg
Y2hhbmdlZCwgMjAwIGluc2VydGlvbnMoKyksIDEyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9USEFOS1MgYi9USEFOS1MKaW5kZXggNjE2ZDNiMDRiLi45MDU2YTc5NWMgMTAwNjQ0Ci0tLSBh
L1RIQU5LUworKysgYi9USEFOS1MKQEAgLTIwLDYgKzIwLDcgQEAgQ29udHJpYnV0b3JzIHNpbmNl
IHRoZSBsYXN0IHJlbGVhc2U6CiAgICAgICAgICAgIE5vYWggTGF2aW5lCiAgICAgICAgICBEYW5p
ZWwgTGxvcmVucwogICAgICAgICBHcmVnb3J5IE1hcnRvbgorICAgICAgICBKw6lzc2ljYSBNaWxh
csOpCiAgICAgICBUaGllbi1UaGkgTmd1eWVuCiAgICAgICAgIEhhbi1XZW4gTmllbmh1eXMKICAg
ICAgICAgICAgIEphbiBOaWV1d2VuaHVpemVuCmRpZmYgLS1naXQgYS9tb2R1bGUvc3JmaS9zcmZp
LTY5LnNjbSBiL21vZHVsZS9zcmZpL3NyZmktNjkuc2NtCmluZGV4IGI5NDg2YzQ2NS4uMmI3ZmI5
YTdmIDEwMDY0NAotLS0gYS9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQorKysgYi9tb2R1bGUvc3Jm
aS9zcmZpLTY5LnNjbQpAQCAtNjIsNiArNjIsMTQgQEAKIDs7IGltcGxlbWVudGF0aW9uLCBib3Ro
IGFuc3dlciAoInhZIikuICBIb3dldmVyLCBJIGRvbid0IGd1YXJhbnRlZSB0aGF0CiA7OyB0aGlz
IHdvbid0IGNoYW5nZSBpbiB0aGUgZnV0dXJlLgogCisKKzs7OzsgQ29tbWVudGFyeSBieSBKZXNz
aWNhIE1pbGFyZSAyMDE4CisKKzs7IE1ha2UgYnVnIGZpeGVzIGZvciB3ZWFrIGhhc2gtdGFibGVz
LCBzaW5jZSBoYW5kbGVzIGRvbid0IHdvcmsgYW55bW9yZSwKKzs7IGFuZCBhbHNvIHNvbWUgb3B0
aW1pemF0aW9ucy4KKzs7Cis7OyBNeSBwZXJzb25hbCBjb21tZW50cyBhcmUgbWFya2VkIGJ5IEou
TS4KKwogOzs7IENvZGU6CiAMCiA7Ozs7IE1vZHVsZSBkZWZpbml0aW9uICYgZXhwb3J0cwpAQCAt
NzMsMTggKzgxLDE4IEBACiAgICM6dXNlLW1vZHVsZSAoaWNlLTkgb3B0YXJncykKICAgIzpleHBv
cnQgKDs7IFR5cGUgY29uc3RydWN0b3JzICYgcHJlZGljYXRlCiAJICAgIG1ha2UtaGFzaC10YWJs
ZSBoYXNoLXRhYmxlPyBhbGlzdC0+aGFzaC10YWJsZQotCSAgICA7OyBSZWZsZWN0aXZlIHF1ZXJp
ZXMKLQkgICAgaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWhhc2gt
ZnVuY3Rpb24KLQkgICAgOzsgRGVhbGluZyB3aXRoIHNpbmdsZSBlbGVtZW50cwotCSAgICBoYXNo
LXRhYmxlLXJlZiBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGhhc2gtdGFibGUtc2V0IQotCSAgICBo
YXNoLXRhYmxlLWRlbGV0ZSEgaGFzaC10YWJsZS1leGlzdHM/IGhhc2gtdGFibGUtdXBkYXRlIQot
CSAgICBoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdAotCSAgICA7OyBEZWFsaW5nIHdpdGggdGhl
IHdob2xlIGNvbnRlbnRzCi0JICAgIGhhc2gtdGFibGUtc2l6ZSBoYXNoLXRhYmxlLWtleXMgaGFz
aC10YWJsZS12YWx1ZXMKLQkgICAgaGFzaC10YWJsZS13YWxrIGhhc2gtdGFibGUtZm9sZCBoYXNo
LXRhYmxlLT5hbGlzdAotCSAgICBoYXNoLXRhYmxlLWNvcHkgaGFzaC10YWJsZS1tZXJnZSEKLQkg
ICAgOzsgSGFzaGluZwotCSAgICBzdHJpbmctY2ktaGFzaCBoYXNoLWJ5LWlkZW50aXR5KQorICAg
ICAgICAgICAgOzsgUmVmbGVjdGl2ZSBxdWVyaWVzCisgICAgICAgICAgICBoYXNoLXRhYmxlLWVx
dWl2YWxlbmNlLWZ1bmN0aW9uIGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbgorICAgICAgICAgICAg
OzsgRGVhbGluZyB3aXRoIHNpbmdsZSBlbGVtZW50cworICAgICAgICAgICAgaGFzaC10YWJsZS1y
ZWYgaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBoYXNoLXRhYmxlLXNldCEKKyAgICAgICAgICAgIGhh
c2gtdGFibGUtZGVsZXRlISBoYXNoLXRhYmxlLWV4aXN0cz8gaGFzaC10YWJsZS11cGRhdGUhCisg
ICAgICAgICAgICBoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdAorICAgICAgICAgICAgOzsgRGVh
bGluZyB3aXRoIHRoZSB3aG9sZSBjb250ZW50cworICAgICAgICAgICAgaGFzaC10YWJsZS1zaXpl
IGhhc2gtdGFibGUta2V5cyBoYXNoLXRhYmxlLXZhbHVlcworICAgICAgICAgICAgaGFzaC10YWJs
ZS13YWxrIGhhc2gtdGFibGUtZm9sZCBoYXNoLXRhYmxlLT5hbGlzdAorICAgICAgICAgICAgaGFz
aC10YWJsZS1jb3B5IGhhc2gtdGFibGUtbWVyZ2UhCisgICAgICAgICAgICA7OyBIYXNoaW5nCisg
ICAgICAgICAgICBzdHJpbmctY2ktaGFzaCBoYXNoLWJ5LWlkZW50aXR5KQogICAjOnJlLWV4cG9y
dCAoc3RyaW5nLWhhc2gpCiAgICM6cmVwbGFjZSAoaGFzaCBtYWtlLWhhc2gtdGFibGUgaGFzaC10
YWJsZT8pKQogCkBAIC0yMDQsMzAgKzIxMiwzMiBAQCBtYW51YWwgZm9yIHNwZWNpZmljcywgb2Yg
d2hpY2ggdGhlcmUgYXJlIG1hbnkuIgogCSAoc2l6ZSAoaHQtc2l6ZSByZXN1bHQpKSkKICAgICAo
d2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUpIHJlc3Vs
dAogICAgICAgKGZvci1lYWNoIChsYW1iZGEgKHBhaXIpCi0JCSAgKGxldCAoKGhhbmRsZSAoaGFz
aHgtZ2V0LWhhbmRsZSBoYXNoLXByb2MgYXNzb2NpYXRvcgotCQkJCQkJICByZWFsLXRhYmxlIChj
YXIgcGFpcikpKSkKLQkJICAgIChjb25kICgobm90IGhhbmRsZSkKLQkJCSAgIChzZXQhIHNpemUg
KDErIHNpemUpKQotCQkJICAgKGhhc2h4LXNldCEgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10
YWJsZQotCQkJCSAgICAgICAoY2FyIHBhaXIpIChjZHIgcGFpcikpKSkpKQotCQlhbGlzdCkpCisg
ICAgICAgICAgICAgICAgICAobGV0ICgodmFsdWUgKGhhc2h4LXJlZiBoYXNoLXByb2MgYXNzb2Np
YXRvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhbC10YWJs
ZSAoY2FyIHBhaXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
dC11bnNwZWNpZmllZCkpKQorICAgICAgICAgICAgICAgICAgICAoY29uZCAoKGVxPyBodC11bnNw
ZWNpZmllZCB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXQhIHNpemUgKDEr
IHNpemUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4LXNldCEgaGFzaC1wcm9j
IGFzc29jaWF0b3IgcmVhbC10YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNhciBwYWlyKSAoY2RyIHBhaXIpKSkpKSkKKyAgICAgICAgICAgICAgICBhbGlzdCkp
CiAgICAgKGh0LXNpemUhIHJlc3VsdCBzaXplKQogICAgIHJlc3VsdCkpCiAMCiA7Ozs7IEFjY2Vz
c2luZyB0YWJsZSBpdGVtcwogCiA7OyBXZSB1c2UgdGhpcyB0byBkZW5vdGUgbWlzc2luZyBvciB1
bnNwZWNpZmllZCB2YWx1ZXMgdG8gYXZvaWQKKwogOzsgcG9zc2libGUgY29sbGlzaW9uIHdpdGgg
KnVuc3BlY2lmaWVkKi4KIChkZWZpbmUgaHQtdW5zcGVjaWZpZWQgKGNvbnMgKnVuc3BlY2lmaWVk
KiAiaHQtdmFsdWUiKSkKIAotKGRlZmluZSAoaGFzaC10YWJsZS1yZWYgaHQga2V5IC4gZGVmYXVs
dC10aHVuay1sc3QpCisoZGVmaW5lKiAoaGFzaC10YWJsZS1yZWYgaHQga2V5ICAjOm9wdGlvbmFs
IChkZWZhdWx0LXRodW5rIGh0LXVuc3BlY2lmaWVkKSkKICAgIkxvb2t1cCBLRVkgaW4gSFQgYW5k
IGFuc3dlciB0aGUgdmFsdWUsIGludm9rZSBERUZBVUxULVRIVU5LIGlmIEtFWQogaXNuJ3QgcHJl
c2VudCwgb3Igc2lnbmFsIGFuIGVycm9yIGlmIERFRkFVTFQtVEhVTksgaXNuJ3QgcHJvdmlkZWQu
IgogICAobGV0ICgocmVzdWx0IChoYXNoeC1pbnZva2UgaGFzaHgtcmVmIGh0IGtleSBodC11bnNw
ZWNpZmllZCkpKQogICAgIChpZiAoZXE/IGh0LXVuc3BlY2lmaWVkIHJlc3VsdCkKLQkoaWYgKHBh
aXI/IGRlZmF1bHQtdGh1bmstbHN0KQotCSAgICAoKGZpcnN0IGRlZmF1bHQtdGh1bmstbHN0KSkK
LQkgICAgKGVycm9yICJLZXkgbm90IGluIHRhYmxlIiBrZXkgaHQpKQorCShpZiAoZXE/IGh0LXVu
c3BlY2lmaWVkIGRlZmF1bHQtdGh1bmspCisJICAgIChlcnJvciAiS2V5IG5vdCBpbiB0YWJsZSIg
a2V5IGh0KQorCSAgICAoZGVmYXVsdC10aHVuaykpCiAJcmVzdWx0KSkpCiAKIChkZWZpbmUgKGhh
c2gtdGFibGUtcmVmL2RlZmF1bHQgaHQga2V5IGRlZmF1bHQpCkBAIC0yMzcsNDkgKzI0Nyw3OCBA
QCBwcmVzZW50LiIKIAogKGRlZmluZSAoaGFzaC10YWJsZS1zZXQhIGh0IGtleSBuZXctdmFsdWUp
CiAgICJTZXQgS0VZIHRvIE5FVy1WQUxVRSBpbiBIVC4iCi0gIChsZXQgKChoYW5kbGUgKGhhc2h4
LWludm9rZSBoYXNoeC1jcmVhdGUtaGFuZGxlISBodCBrZXkgaHQtdW5zcGVjaWZpZWQpKSkKLSAg
ICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCi0JKGh0LXNpemUhIGh0ICgx
KyAoaHQtc2l6ZSBodCkpKSkKLSAgICAoc2V0LWNkciEgaGFuZGxlIG5ldy12YWx1ZSkpCisgIChp
ZiAoaHQtd2Vha25lc3MgaHQpCisgICAgICA7OyBKLk0uIHNlcGFyYXRlIHRoZSBjYXNlIHdoZXJl
IGh0IGlzIHdlYWsgLSBkb24ndCB1c2UgaGFuZGxlCisgICAgICA7OyBKLk0uIGRvbid0IG5lZWQg
dG8gdXBkYXRlIHNpemUgZm9yIHdlYWsgaGFzaC10YWJsZXMKKyAgICAgIChoYXNoeC1pbnZva2Ug
aGFzaHgtc2V0ISBodCBrZXkgbmV3LXZhbHVlKQorICAgICAgKGxldCAoKGhhbmRsZSAoaGFzaHgt
aW52b2tlIGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGh0IGtleQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgIChpZiAoZXE/IGh0LXVuc3Bl
Y2lmaWVkIChjZHIgaGFuZGxlKSkKKyAgICAgICAgICAgIChodC1zaXplISBodCAoMSsgKGh0LXNp
emUgaHQpKSkpCisgICAgICAgIChzZXQtY2RyISBoYW5kbGUgbmV3LXZhbHVlKSkpCiAgICp1bnNw
ZWNpZmllZCopCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtZGVsZXRlISBodCBrZXkpCiAgICJSZW1v
dmUgS0VZJ3MgYXNzb2NpYXRpb24gaW4gSFQuIgogICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSBy
ZWFsLWh0KSBodAotICAgIChpZiAoaGFzaHgtZ2V0LWhhbmRsZSBoIGEgcmVhbC1odCBrZXkpCi0J
KGJlZ2luCi0JICAoaHQtc2l6ZSEgaHQgKDEtIChodC1zaXplIGh0KSkpCi0JICAoaGFzaHgtcmVt
b3ZlISBoIGEgcmVhbC1odCBrZXkpKSkpCisgICAgKGlmIChub3QgKGVxPyBodC11bnNwZWNpZmll
ZCAoaGFzaHgtcmVmIGggYSByZWFsLWh0IGtleSBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAo
YmVnaW4KKyAgICAgICAgICAoaHQtc2l6ZSEgaHQgKDEtIChodC1zaXplIGh0KSkpCisgICAgICAg
ICAgKGhhc2h4LXJlbW92ZSEgaCBhIHJlYWwtaHQga2V5KSkpKQogICAqdW5zcGVjaWZpZWQqKQog
CiAoZGVmaW5lIChoYXNoLXRhYmxlLWV4aXN0cz8gaHQga2V5KQogICAiUmV0dXJuIHdoZXRoZXIg
S0VZIGlzIGEga2V5IGluIEhULiIKLSAgKGFuZCAoaGFzaHgtaW52b2tlIGhhc2h4LWdldC1oYW5k
bGUgaHQga2V5KSAjdCkpCisgIChub3QgKGVxPyBodC11bnNwZWNpZmllZCAoaGFzaHgtaW52b2tl
IGhhc2h4LXJlZiBodCBrZXkgaHQtdW5zcGVjaWZpZWQpKSkpCiAKLTs7OyBgaGFzaHgtc2V0IScg
ZHVwbGljYXRlcyB0aGUgaGFzaCBsb29rdXAsIGJ1dCB3ZSB1c2UgaXQgYW55d2F5IHRvCi07Ozsg
YXZvaWQgY3JlYXRpbmcgYSBoYW5kbGUgaW4gY2FzZSBERUZBVUxULVRIVU5LIGV4aXRzCiA7Ozsg
YGhhc2gtdGFibGUtdXBkYXRlIScgbm9uLWxvY2FsbHkuCi0oZGVmaW5lIChoYXNoLXRhYmxlLXVw
ZGF0ZSEgaHQga2V5IG1vZGlmaWVyIC4gZGVmYXVsdC10aHVuay1sc3QpCisoZGVmaW5lKiAoaGFz
aC10YWJsZS11cGRhdGUhIGh0IGtleSBtb2RpZmllcgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjOm9wdGlvbmFsIChkZWZhdWx0LXRodW5rIGh0LXVuc3BlY2lmaWVkKSkKICAgIk1vZGlm
eSBIVCdzIHZhbHVlIGF0IEtFWSBieSBwYXNzaW5nIGl0cyB2YWx1ZSB0byBNT0RJRklFUiBhbmQK
IHNldHRpbmcgaXQgdG8gdGhlIHJlc3VsdCB0aGVyZW9mLiAgSW52b2tlIERFRkFVTFQtVEhVTksg
Zm9yIHRoZSBvbGQKIHZhbHVlIGlmIEtFWSBpc24ndCBpbiBIVCwgb3Igc2lnbmFsIGFuIGVycm9y
IGlmIERFRkFVTFQtVEhVTksgaXMgbm90CiBwcm92aWRlZC4iCiAgICh3aXRoLWhhc2h4LXZhbHVl
cyAoaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10YWJsZSkgaHQKLSAgICAobGV0ICgoaGFuZGxl
IChoYXNoeC1nZXQtaGFuZGxlIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5KSkp
Ci0gICAgICAoY29uZCAoaGFuZGxlCi0JICAgICAoc2V0LWNkciEgaGFuZGxlIChtb2RpZmllciAo
Y2RyIGhhbmRsZSkpKSkKLQkgICAgKGVsc2UKLQkgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBh
c3NvY2lhdG9yIHJlYWwtdGFibGUga2V5Ci0JCQkgKGlmIChwYWlyPyBkZWZhdWx0LXRodW5rLWxz
dCkKLQkJCSAgICAgKG1vZGlmaWVyICgoY2FyIGRlZmF1bHQtdGh1bmstbHN0KSkpCi0JCQkgICAg
IChlcnJvciAiS2V5IG5vdCBpbiB0YWJsZSIga2V5IGh0KSkpCi0JICAgICAoaHQtc2l6ZSEgaHQg
KDErIChodC1zaXplIGh0KSkpKSkpKQorICAgIChpZiAoaHQtd2Vha25lc3MgaHQpCisgICAgICAg
IDs7IEouTS4gc2VwYXJhdGUgdGhlIGNhc2Ugd2hlcmUgaHQgaXMgd2VhayAtIGRvbid0IHVzZSBo
YW5kbGUKKyAgICAgICAgKGxldCogKChvbGQgKGhhc2h4LXJlZiBoYXNoLXByb2MgYXNzb2NpYXRv
ciByZWFsLXRhYmxlIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVuc3Bl
Y2lmaWVkKSkpCisgICAgICAgICAgKGNvbmQgKChlcT8gaHQtdW5zcGVjaWZpZWQgb2xkKQorICAg
ICAgICAgICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCBkZWZhdWx0LXRodW5rKQorICAg
ICAgICAgICAgICAgICAgICAgKGVycm9yICJLZXkgbm90IGluIHRhYmxlIiBrZXkgaHQpCisgICAg
ICAgICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRh
YmxlIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGlmaWVyIChkZWZh
dWx0LXRodW5rKSkpKSkKKyAgICAgICAgICAgICAgICAoZWxzZQorICAgICAgICAgICAgICAgICAo
aGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlIGtleQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAobW9kaWZpZXIgb2xkKSkpKSkKKyAgICAgICAgKGxldCAoKGhh
bmRsZSAoaGFzaHgtZ2V0LWhhbmRsZSBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlIGtl
eSkpKQorICAgICAgICAgIChjb25kIChoYW5kbGUgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNk
ciBoYW5kbGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbiAoaHQtc2l6ZSEg
aHQgKDErIChodC1zaXplIGh0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChzZXQtY2RyISBoYW5kbGUgKG1vZGlmaWVyIChkZWZhdWx0LXRodW5rKSkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChzZXQtY2RyISBoYW5kbGUgKG1vZGlmaWVyIChjZHIgaGFuZGxl
KSkpKSkKKyAgICAgICAgICAgICAgICAoZWxzZSAoaWYgKGVxPyBodC11bnNwZWNpZmllZCBkZWZh
dWx0LXRodW5rKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IgIktleSBub3QgaW4g
dGFibGUiIGtleSBodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGRlZmF1bHQg
KGRlZmF1bHQtdGh1bmspKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaHQtc2l6ZSEg
aHQgKDErIChodC1zaXplIGh0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4
LXNldCEgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10YWJsZSBrZXkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kaWZpZXIgZGVmYXVsdCkpKSkpKSkpKQogICAq
dW5zcGVjaWZpZWQqKQogCis7OzsgSi5NLiBDdXN0b20gaW1wbGVtZW50YXRpb24gaW5zdGVhZCBv
ZiB1c2luZyBoYXNoLXRhYmxlLXVwZGF0ZSEKIChkZWZpbmUgKGhhc2gtdGFibGUtdXBkYXRlIS9k
ZWZhdWx0IGh0IGtleSBtb2RpZmllciBkZWZhdWx0KQogICAiTW9kaWZ5IEhUJ3MgdmFsdWUgYXQg
S0VZIGJ5IHBhc3NpbmcgaXRzIG9sZCB2YWx1ZSwgb3IgREVGQVVMVCBpZiBpdAogZG9lc24ndCBo
YXZlIG9uZSwgdG8gTU9ESUZJRVIsIGFuZCBzZXR0aW5nIGl0IHRvIHRoZSByZXN1bHQgdGhlcmVv
Zi4iCi0gIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQga2V5IG1vZGlmaWVyIChsYW1iZGEgKCkgZGVm
YXVsdCkpKQorICAod2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwt
dGFibGUpIGh0CisgICAgKGlmIChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgOzsgSi5NLiBzZXBh
cmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQorICAgICAg
ICAobGV0KiAoKG9sZCAoaGFzaHgtcmVmIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUg
a2V5IGRlZmF1bHQpKSkKKyAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRv
ciByZWFsLXRhYmxlIGtleSAobW9kaWZpZXIgb2xkKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUg
KGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVuc3BlY2lm
aWVkKSkpCisgICAgICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5kbGUpKQor
ICAgICAgICAgICAgICAoYmVnaW4gKGh0LXNpemUhIGh0ICgxKyAoaHQtc2l6ZSBodCkpKQorICAg
ICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgZGVmYXVsdCkpKQor
ICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIChtb2RpZmllciAoY2RyIGhhbmRsZSkpKSkp
KSkpCiAMCiA7Ozs7IEFjY2Vzc2luZyB3aG9sZSB0YWJsZXMKIApAQCAtMjg3LDcgKzMyNiw5IEBA
IGRvZXNuJ3QgaGF2ZSBvbmUsIHRvIE1PRElGSUVSLCBhbmQgc2V0dGluZyBpdCB0byB0aGUgcmVz
dWx0IHRoZXJlb2YuIgogICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgYXNzb2NpYXRpb25zIGluIEhU
LiAgVGhpcyBpcyBndWFyYW50ZWVkIE8oMSkKIGZvciB0YWJsZXMgd2hlcmUgIzp3ZWFrIHdhcyAj
ZiBvciBub3Qgc3BlY2lmaWVkIGF0IGNyZWF0aW9uIHRpbWUuIgogICAoaWYgKGh0LXdlYWtuZXNz
IGh0KQotICAgICAgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYgYW5zKSAoMSsgYW5z
KSkgMCkKKyAgICAgIChsZXQgKChzaXplIChoYXNoLXRhYmxlLWZvbGQgaHQgKGxhbWJkYSAoayB2
IGFucykgKDErIGFucykpIDApKSkKKyAgICAgICAgKGh0LXNpemUhIGh0IHNpemUpCisgICAgICAg
IHNpemUpCiAgICAgICAoaHQtc2l6ZSBodCkpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxlLWtleXMg
aHQpCkBAIC0zMDAsMTAgKzM0MSw3IEBAIGZvciB0YWJsZXMgd2hlcmUgIzp3ZWFrIHdhcyAjZiBv
ciBub3Qgc3BlY2lmaWVkIGF0IGNyZWF0aW9uIHRpbWUuIgogCiAoZGVmaW5lIChoYXNoLXRhYmxl
LXdhbGsgaHQgcHJvYykKICAgIkNhbGwgUFJPQyB3aXRoIGVhY2gga2V5IGFuZCB2YWx1ZSBhcyB0
d28gYXJndW1lbnRzLiIKLSAgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYgdW5zcGVj
KQotICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGwtd2l0aC12YWx1ZXMgKGxhbWJkYSAoKSAo
cHJvYyBrIHYpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIHZhbHMgdW5zcGVj
KSkpCi0JCSAgICp1bnNwZWNpZmllZCopKQorICAoaGFzaC1mb3ItZWFjaCBwcm9jIChodC1yZWFs
LXRhYmxlIGh0KSkpCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtZm9sZCBodCBmIGtuaWwpCiAgICJJ
bnZva2UgKEYgS0VZIFZBTCBQUkVWKSBmb3IgZWFjaCBLRVkgYW5kIFZBTCBpbiBIVCwgd2hlcmUg
UFJFViBpcwpAQCAtMzEzLDE1ICszNTEsMTUgQEAgQW5zd2VyIHRoZSBmaW5hbCBGIHJlc3VsdC4i
CiAKIChkZWZpbmUgKGhhc2gtdGFibGUtPmFsaXN0IGh0KQogICAiUmV0dXJuIGFuIGFsaXN0IGZv
ciBIVC4iCi0gIChoYXNoLXRhYmxlLWZvbGQgaHQgYWxpc3QtY29ucyAnKCkpKQorICAoaGFzaC1t
YXAtPmxpc3QgY29ucyAoaHQtcmVhbC10YWJsZSBodCkpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxl
LWNvcHkgaHQpCiAgICJBbnN3ZXIgYSBjb3B5IG9mIEhULiIKICAgKHdpdGgtaGFzaHgtdmFsdWVz
IChoIGEgcmVhbC1odCkgaHQKICAgICAobGV0KiAoKHNpemUgKGhhc2gtdGFibGUtc2l6ZSBodCkp
ICh3ZWFrIChodC13ZWFrbmVzcyBodCkpCiAJICAgKG5ldy1yZWFsLWh0ICgoZ3VpbGUtaHQtY3Rv
ciB3ZWFrKSBzaXplKSkpCi0gICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGsgdiBpZ24pIChoYXNo
eC1zZXQhIGggYSBuZXctcmVhbC1odCBrIHYpKQotCQkgI2YgcmVhbC1odCkKKyAgICAgIChoYXNo
LWZvci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2h4LXNldCEgaCBhIG5ldy1yZWFsLWh0IGsgdikp
CisgICAgICAgICAgICAgICAgICAgICByZWFsLWh0KQogICAgICAgKG1ha2Utc3JmaS02OS1oYXNo
LXRhYmxlCQk7cmVhbCxhc3NvYyxzaXplLHdlYWssZXF1aXYsaAogICAgICAgIG5ldy1yZWFsLWh0
IGEgc2l6ZSB3ZWFrCiAgICAgICAgKGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQp
IGgpKSkpCkBAIC0zMjksOCArMzY3LDggQEAgQW5zd2VyIHRoZSBmaW5hbCBGIHJlc3VsdC4iCiAo
ZGVmaW5lIChoYXNoLXRhYmxlLW1lcmdlISBodCBvdGhlci1odCkKICAgIkFkZCBhbGwga2V5L3Zh
bHVlIHBhaXJzIGZyb20gT1RIRVItSFQgdG8gSFQsIG92ZXJyaWRpbmcgSFQncwogbWFwcGluZ3Mg
d2hlcmUgcHJlc2VudC4gIFJldHVybiBIVC4iCi0gIChoYXNoLXRhYmxlLWZvbGQKLSAgIGh0IChs
YW1iZGEgKGsgdiBpZ24pIChoYXNoLXRhYmxlLXNldCEgaHQgayB2KSkgI2YpCisgIChoYXNoLWZv
ci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2gtdGFibGUtc2V0ISBodCBrIHYpKQorICAgICAgICAg
ICAgICAgICAoaHQtcmVhbC10YWJsZSBvdGhlci1odCkpCiAgIGh0KQogCiA7Ozsgc3JmaS02OS5z
Y20gZW5kcyBoZXJlCmRpZmYgLS1naXQgYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdCBi
L3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0CmluZGV4IGU5OWI3NmM2ZC4uYzJhNTU0ZGIz
IDEwMDY0NAotLS0gYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdAorKysgYi90ZXN0LXN1
aXRlL3Rlc3RzL3NyZmktNjkudGVzdApAQCAtMjgsODAgKzI4LDExOSBAQCBjYXNlLWluc2Vuc2l0
aXZlIHN0cmluZ3MgdG8gYGVxdWFsPyctdGVzdGVkIHZhbHVlcy4iCiAgIChhbmQgKHN0cmluZy1j
aT0/IChjYXIgbGVmdCkgKGNhciByaWdodCkpCiAgICAgICAgKGVxdWFsPyAoY2RyIGxlZnQpIChj
ZHIgcmlnaHQpKSkpCiAKKyhkZWZpbmUtc3ludGF4IHdpdGgtd2Vha25lc3MtbGlzdAorICAoc3lu
dGF4LXJ1bGVzICgpCisgICAgKCh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3Mgd2Vha25lc3Mt
bGlzdCBleHByIC4uLikKKyAgICAgKGxldCBsb29wICgod2Vha25lc3MtbGlzdCogd2Vha25lc3Mt
bGlzdCkpCisgICAgICAgKG9yIChudWxsPyB3ZWFrbmVzcy1saXN0KikKKyAgICAgICAgICAgKGFu
ZCAobGV0ICgod2Vha25lc3MgKGNhciB3ZWFrbmVzcy1saXN0KikpKQorICAgICAgICAgICAgICAg
ICAgZXhwciAuLi4pCisgICAgICAgICAgICAgICAgKGxvb3AgKGNkciB3ZWFrbmVzcy1saXN0Kikp
KSkpKSkpCisKKyhkZWZpbmUgKHRlc3Qtc3RyLXdlYWtuZXNzIHN0ciB3ZWFrbmVzcykKKyAgKGlm
IChub3Qgd2Vha25lc3MpIHN0ciAoZm9ybWF0ICNmICJ+YSAod2VhazogfmEpIiBzdHIgd2Vha25l
c3MpKSkKKwogKHdpdGgtdGVzdC1wcmVmaXggIlNSRkktNjkiCiAKLSAgKHBhc3MtaWYgInNtYWxs
IGFsaXN0PC0+aGFzaCB0YWJsZXMgcm91bmQtdHJpcCIKLSAgICAobGV0KiAoKHN0YXJ0LWFsaXN0
ICcoKGEgLiAxKSAoYiAuIDIpIChjIC4gMykgKGEgLiA0MikpKQotCSAgIChodCAoYWxpc3QtPmhh
c2gtdGFibGUgc3RhcnQtYWxpc3QgZXE/KSkKLQkgICAoZW5kLWFsaXN0IChoYXNoLXRhYmxlLT5h
bGlzdCBodCkpKQotICAgICAgKGFuZCAoPSAzIChoYXNoLXRhYmxlLXNpemUgaHQpKQotCSAgIChs
c2V0PSBlcXVhbD8gZW5kLWFsaXN0ICh0YWtlIHN0YXJ0LWFsaXN0IDMpKQotCSAgICg9IDEgKGhh
c2gtdGFibGUtcmVmIGh0ICdhKSkKLQkgICAoPSAyIChoYXNoLXRhYmxlLXJlZiBodCAnYikpCi0J
ICAgKD0gMyAoaGFzaC10YWJsZS1yZWYgaHQgJ2MpKSkpKQotCi0gIChwYXNzLWlmICJzdHJpbmct
Y2k9PyB0YWJsZXMgd29yayBieSBkZWZhdWx0IgotICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gt
dGFibGUgJygoInhZIiAuIDIpICgiYWJjIiAuIDU0KSkgc3RyaW5nLWNpPT8pKSkKLSAgICAgICho
YXNoLXRhYmxlLXNldCEgaHQgIlhZIiA0MikKLSAgICAgIChoYXNoLXRhYmxlLXNldCEgaHQgInFx
cSIgMTAwKQotICAgICAgKGFuZCAoPSA1NCAoaGFzaC10YWJsZS1yZWYgaHQgIkFCYyIpKQotCSAg
ICg9IDQyIChoYXNoLXRhYmxlLXJlZiBodCAieHkiKSkKLQkgICAoPSAzIChoYXNoLXRhYmxlLXNp
emUgaHQpKQotCSAgIChsc2V0PSBzdHJpbmctY2ktYXNzb2MtZXF1YWw/Ci0JCSAgJygoInh5IiAu
IDQyKSAoImFiYyIgLiA1NCkgKCJxcXEiIC4gMTAwKSkKLQkJICAoaGFzaC10YWJsZS0+YWxpc3Qg
aHQpKSkpKQorICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3Zh
bHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJzbWFs
bCBhbGlzdDwtPmhhc2ggdGFibGVzIHJvdW5kLXRyaXAiIHdlYWtuZXNzKQorICAgICAgKGxldCog
KChzdGFydC1hbGlzdCAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpIChhIC4gNDIpKSkKKyAgICAg
ICAgICAgICAoaHQgKGFsaXN0LT5oYXNoLXRhYmxlIHN0YXJ0LWFsaXN0IGVxPyAjOndlYWsgd2Vh
a25lc3MpKQorICAgICAgICAgICAgIChlbmQtYWxpc3QgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkp
CisgICAgICAgIChhbmQgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICAgICAo
bHNldD0gZXF1YWw/IGVuZC1hbGlzdCAodGFrZSBzdGFydC1hbGlzdCAzKSkKKyAgICAgICAgICAg
ICAoPSAxIChoYXNoLXRhYmxlLXJlZiBodCAnYSkpCisgICAgICAgICAgICAgKD0gMiAoaGFzaC10
YWJsZS1yZWYgaHQgJ2IpKQorICAgICAgICAgICAgICg9IDMgKGhhc2gtdGFibGUtcmVmIGh0ICdj
KSkpKSkpCisKKyAgKHdpdGgtd2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAna2V5ICd2
YWx1ZSAna2V5LW9yLXZhbHVlKQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAic3Ry
aW5nLWNpPT8gdGFibGVzIHdvcmsgYnkgZGVmYXVsdCIgd2Vha25lc3MpCisgICAgICAobGV0ICgo
aHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKCJ4WSIgLiAyKSAoImFiYyIgLiA1NCkpIHN0cmluZy1j
aT0/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6d2VhayB3ZWFrbmVzcykp
KQorICAgICAgICAoaGFzaC10YWJsZS1zZXQhIGh0ICJYWSIgNDIpCisgICAgICAgIChoYXNoLXRh
YmxlLXNldCEgaHQgInFxcSIgMTAwKQorICAgICAgICAoYW5kICg9IDU0IChoYXNoLXRhYmxlLXJl
ZiBodCAiQUJjIikpCisgICAgICAgICAgICAgKD0gNDIgKGhhc2gtdGFibGUtcmVmIGh0ICJ4eSIp
KQorICAgICAgICAgICAgICg9IDMgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAgICAg
KGxzZXQ9IHN0cmluZy1jaS1hc3NvYy1lcXVhbD8KKyAgICAgICAgICAgICAgICAgICAgJygoInh5
IiAuIDQyKSAoImFiYyIgLiA1NCkgKCJxcXEiIC4gMTAwKSkKKyAgICAgICAgICAgICAgICAgICAg
KGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkpCiAKICAgKHBhc3MtaWYtZXhjZXB0aW9uICJCYWQg
d2Vha25lc3MgYXJnIHRvIG1odCBzaWduYWxzIGFuIGVycm9yIgotCQkgICAgICcobWlzYy1lcnJv
ciAuICJeSW52YWxpZCB3ZWFrIGhhc2ggdGFibGUgdHlwZSIpCisgICAgICAnKG1pc2MtZXJyb3Ig
LiAiXkludmFsaWQgd2VhayBoYXNoIHRhYmxlIHR5cGUiKQogICAgIChtYWtlLWhhc2gtdGFibGUg
ZXF1YWw/IGhhc2ggIzp3ZWFrICdrZXktYW5kLXZhbHVlKSkKIAotICAocGFzcy1pZiAiZW1wdHkg
aGFzaCB0YWJsZXMgYXJlIGVtcHR5IgotICAgIChudWxsPyAoaGFzaC10YWJsZS0+YWxpc3QgKG1h
a2UtaGFzaC10YWJsZSBlcT8pKSkpCi0KLSAgKHBhc3MtaWYgImhhc2gtdGFibGUtcmVmIHVzZXMg
ZGVmYXVsdCIKLSAgICAoZXF1YWw/ICcoNCkKLQkgICAgKGhhc2gtdGFibGUtcmVmIChhbGlzdC0+
aGFzaC10YWJsZSAnKChhIC4gMSkpIGVxPykKLQkJCSAgICAnYiAoY3V0IGxpc3QgKCsgMiAyKSkp
KSkKLQotICAocGFzcy1pZiAiaGFzaC10YWJsZS1kZWxldGUhIGRlbGV0ZXMgcHJlc2VudCBhc3Nv
Y3MsIGlnbm9yZXMgb3RoZXJzIgotICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygo
YSAuIDEpIChiIC4gMikpIGVxPykpKQotICAgICAgKGhhc2gtdGFibGUtZGVsZXRlISBodCAnYykK
LSAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0KSkKLQkgICAoYmVnaW4KLQkgICAg
IChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgJ2EpCi0JICAgICAoPSAxIChoYXNoLXRhYmxlLXNpemUg
aHQpKSkKLQkgICAobHNldD0gZXF1YWw/ICcoKGIgLiAyKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0
KSkpKSkKLQotICAocGFzcy1pZiAiYWxpc3QtPmhhc2gtdGFibGUgZG9lcyBub3QgcmVxdWlyZSBs
aW5lYXIgc3RhY2sgc3BhY2UiCi0gICAgKGVxdj8gOTk5OTkKLQkgIChoYXNoLXRhYmxlLXJlZiAo
YWxpc3QtPmhhc2gtdGFibGUKLQkJCSAgICh1bmZvbGQtcmlnaHQgKGN1dCA+PSA8PiAxMDAwMDAp
Ci0JCQkJCSAobGFtYmRhIChzKSBgKHggLiAscykpIDErIDApCi0JCQkgICBlcT8pCi0JCQkgICd4
KSkpCi0KLSAgKHBhc3MtaWYgImhhc2gtdGFibGUtd2FsayBpZ25vcmVzIHJldHVybiB2YWx1ZXMi
Ci0gICAgKGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSAoYyAu
IDMpKSBlcT8pKSkKLSAgICAgIChmb3ItZWFjaCAoY3V0IGhhc2gtdGFibGUtd2FsayBodCA8PikK
LQkJKGxpc3QgKGxhbWJkYSAoayB2KSAodmFsdWVzKSkKLQkJICAgICAgKGxhbWJkYSAoayB2KSAo
dmFsdWVzIDEgMiAzKSkpKQotICAgICAgI3QpKQotCi0gIChwYXNzLWlmICJoYXNoLXRhYmxlLXVw
ZGF0ZSEgbW9kaWZpZXMgZXhpc3RpbmcgYmluZGluZyIKLSAgICAobGV0ICgoaHQgKGFsaXN0LT5o
YXNoLXRhYmxlICcoKGEgLiAxKSkgZXE/KSkpCi0gICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0
ICdhIDErKQotICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYSAoY3V0ICsgNCA8PikgKGxh
bWJkYSAoKSA0MikpCi0gICAgICAoYW5kICg9IDEgKGhhc2gtdGFibGUtc2l6ZSBodCkpCi0JICAg
KGxzZXQ9IGVxdWFsPyAnKChhIC4gNikpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkpCi0KLSAg
KHBhc3MtaWYgImhhc2gtdGFibGUtdXBkYXRlISBjcmVhdGVzIG5ldyBiaW5kaW5nIHdoZW4gYXBw
cm9wcmlhdGUiCi0gICAgKGxldCAoKGh0IChtYWtlLWhhc2gtdGFibGUgZXE/KSkpCi0gICAgICAo
aGFzaC10YWJsZS11cGRhdGUhIGh0ICdiIDErIChsYW1iZGEgKCkgNDIpKQotICAgICAgKGhhc2gt
dGFibGUtdXBkYXRlISBodCAnYiAoY3V0ICsgMTAgPD4pKQotICAgICAgKGFuZCAoPSAxIChoYXNo
LXRhYmxlLXNpemUgaHQpKQotCSAgIChsc2V0PSBlcXVhbD8gJygoYiAuIDUzKSkgKGhhc2gtdGFi
bGUtPmFsaXN0IGh0KSkpKSkKKyAgKHdpdGgtd2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAj
ZiAna2V5ICd2YWx1ZSAna2V5LW9yLXZhbHVlKQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFr
bmVzcyAiZW1wdHkgaGFzaCB0YWJsZXMgYXJlIGVtcHR5IiB3ZWFrbmVzcykKKyAgICAgIChudWxs
PyAoaGFzaC10YWJsZS0+YWxpc3QgKG1ha2UtaGFzaC10YWJsZSBlcT8gIzp3ZWFrIHdlYWtuZXNz
KSkpKSkKKworICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3Zh
bHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNo
LXRhYmxlLXJlZiB1c2VzIGRlZmF1bHQiIHdlYWtuZXNzKQorICAgICAgKGVxdWFsPyAnKDQpCisg
ICAgICAgICAgICAgIChoYXNoLXRhYmxlLXJlZiAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEp
KSBlcT8gIzp3ZWFrIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Ig
KGN1dCBsaXN0ICgrIDIgMikpKSkpKQorCisgICh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3Mg
KGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1vci12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1z
dHItd2Vha25lc3MgImhhc2gtdGFibGUtZGVsZXRlISBkZWxldGVzIHByZXNlbnQgYXNzb2NzLCBp
Z25vcmVzIG90aGVycyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3Mp
CisgICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIpKSBl
cT8gIzp3ZWFrIHdlYWtuZXNzKSkpCisgICAgICAgIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgJ2Mp
CisgICAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICAgICAo
YmVnaW4KKyAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgJ2EpCisgICAgICAg
ICAgICAgICAoPSAxIChoYXNoLXRhYmxlLXNpemUgaHQpKSkKKyAgICAgICAgICAgICAobHNldD0g
ZXF1YWw/ICcoKGIgLiAyKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkpCisKKyAgKHdpdGgt
d2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAna2V5ICd2YWx1ZSAna2V5LW9yLXZhbHVl
KQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiYWxpc3QtPmhhc2gtdGFibGUgZG9l
cyBub3QgcmVxdWlyZSBsaW5lYXIgc3RhY2sgc3BhY2UiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdlYWtuZXNzKQorICAgICAgKGVxdj8gOTk5OTkKKyAgICAgICAgICAgIChoYXNo
LXRhYmxlLXJlZiAoYWxpc3QtPmhhc2gtdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHVuZm9sZC1yaWdodCAoY3V0ID49IDw+IDEwMDAwMCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChzKSBgKHggLiAscykpIDErIDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVxPworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAjOndlYWsgd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3gpKSkpCisK
KyAgKHdpdGgtd2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAna2V5ICd2YWx1ZSAna2V5
LW9yLXZhbHVlKQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS13
YWxrIGlnbm9yZXMgcmV0dXJuIHZhbHVlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAx
KSAoYiAuIDIpIChjIC4gMykpIGVxPykpKQorICAgICAgICAoZm9yLWVhY2ggKGN1dCBoYXNoLXRh
YmxlLXdhbGsgaHQgPD4pCisgICAgICAgICAgICAgICAgICAobGlzdCAobGFtYmRhIChrIHYpICh2
YWx1ZXMpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoayB2KSAodmFsdWVzIDEg
MiAzKSkpKQorICAgICAgICAjdCkpKQorCisgICh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3Mg
KGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1vci12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1z
dHItd2Vha25lc3MgImhhc2gtdGFibGUtdXBkYXRlISBtb2RpZmllcyBleGlzdGluZyBiaW5kaW5n
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWFrbmVzcykKKyAgICAgIChsZXQg
KChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEpKSBlcT8gIzp3ZWFrIHdlYWtuZXNzKSkp
CisgICAgICAgIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQgJ2EgMSspCisgICAgICAgIChoYXNoLXRh
YmxlLXVwZGF0ZSEgaHQgJ2EgKGN1dCArIDQgPD4pIChsYW1iZGEgKCkgNDIpKQorICAgICAgICAo
YW5kICg9IDEgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFs
PyAnKChhIC4gNikpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkpKQorCisgICh3aXRoLXdlYWtu
ZXNzLWxpc3Qgd2Vha25lc3MgKGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1vci12YWx1ZSkKKyAg
ICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtdXBkYXRlISBjcmVhdGVz
IG5ldyBiaW5kaW5nIHdoZW4gYXBwcm9wcmlhdGUiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChtYWtlLWhhc2gtdGFibGUgZXE/ICM6
d2VhayB3ZWFrbmVzcykpKQorICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0ICdiIDErIChs
YW1iZGEgKCkgNDIpKQorICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0ICdiIChjdXQgKyAx
MCA8PikpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAg
ICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiA1MykpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkp
KQorCisgICh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3MgKGxpc3QgI2YgJ2tleSAndmFsdWUg
J2tleS1vci12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFi
bGUtbWVyZ2UhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2Vha25lc3MpCisgICAgICAobGV0KiAoKGh0MSAoYWxpc3QtPmhhc2gtdGFibGUgJygo
YSAuIDEpIChiIC4gMikpIGVxPyAjOndlYWsgd2Vha25lc3MpKQorICAgICAgICAgICAgIChodDIg
KGFsaXN0LT5oYXNoLXRhYmxlICcoKGIgLiAzKSAoYyAuIDQpKSBlcT8gIzp3ZWFrIHdlYWtuZXNz
KSkpCisgICAgICAgIChzZXQhIGh0MSAoaGFzaC10YWJsZS1tZXJnZSEgaHQxIGh0MikpCisgICAg
ICAgIChhbmQgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0MSkpCisgICAgICAgICAgICAgKD0gMiAo
aGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKChhIC4g
MSkgKGIgLiAzKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQxKSkKKyAgICAgICAgICAg
ICAobHNldD0gZXF1YWw/ICcoKGIgLiAzKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQy
KSkpKSkpCiAKICAgKHBhc3MtaWYgImNhbiB1c2UgYWxsIGFyZ3VtZW50cywgaW5jbHVkaW5nIHNp
emUiCiAgICAgKGhhc2gtdGFibGU/IChtYWtlLWhhc2gtdGFibGUgZXF1YWw/IGhhc2ggIzp3ZWFr
ICdrZXkgMzEpKSkKIAotKQorICApCi0tIAoyLjE5LjEKCg==
--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0004-Reimplemented-RNRS-HASHTABLES-using-GENERIC-HASH-TAB.patch"
Content-Disposition: attachment; 
	filename="0004-Reimplemented-RNRS-HASHTABLES-using-GENERIC-HASH-TAB.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofmioc3>
X-Attachment-Id: f_jqofmioc3

RnJvbSBiOWU0ZWJmZWViOGQ5YjE2YTExZWZmYmU0OWY0YTdlODI2ODQ0ZGI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjI6MDY6MTAg
LTAyMDAKU3ViamVjdDogW1BBVENIIDQvNV0gUmVpbXBsZW1lbnRlZCAoUk5SUyBIQVNIVEFCTEVT
KSB1c2luZyBHRU5FUklDLUhBU0gtVEFCTEVTCgotLS0KIG1vZHVsZS9ybnJzL2hhc2h0YWJsZXMu
c2NtIHwgMjEyICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj
aGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAxMzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
bW9kdWxlL3JucnMvaGFzaHRhYmxlcy5zY20gYi9tb2R1bGUvcm5ycy9oYXNodGFibGVzLnNjbQpp
bmRleCA0ODY0NTJhMmEuLmZkMjdjNTRjNiAxMDA2NDQKLS0tIGEvbW9kdWxlL3JucnMvaGFzaHRh
Ymxlcy5zY20KKysrIGIvbW9kdWxlL3JucnMvaGFzaHRhYmxlcy5zY20KQEAgLTQzLDE0NyArNDMs
ODUgQEAKIAkgIHN0cmluZy1jaS1oYXNoCiAJICBzeW1ib2wtaGFzaCkKICAgKGltcG9ydCAocmVu
YW1lIChvbmx5IChndWlsZSkgc3RyaW5nLWhhc2gtY2kgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cmluZy1oYXNoIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YXNocSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaHYKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kdWxvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICp1bnNwZWNpZmllZCoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQEApCisg
ICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmctaGFzaAorICAgICAgICAgICAgICAgICAgICAg
ICAgaGFzaHEKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2h2CisgICAgICAgICAgICAgICAg
ICAgICAgICBtb2R1bG8KKyAgICAgICAgICAgICAgICAgICAgICAgICp1bnNwZWNpZmllZCopCiAJ
CSAgKHN0cmluZy1oYXNoLWNpIHN0cmluZy1jaS1oYXNoKSkKIAkgIChvbmx5IChpY2UtOSBvcHRh
cmdzKSBkZWZpbmUqKQotCSAgKHJlbmFtZSAob25seSAoc3JmaSA6NjkpIG1ha2UtaGFzaC10YWJs
ZQotCQkJICAgICAgICAgICBoYXNoCi0JCQkJICAgaGFzaC1ieS1pZGVudGl0eQotCQkJICAgICAg
ICAgICBoYXNoLXRhYmxlLXNpemUKLQkJCQkgICBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0Ci0JCQkJ
ICAgaGFzaC10YWJsZS1zZXQhCi0JCQkJICAgaGFzaC10YWJsZS1kZWxldGUhCi0JCQkJICAgaGFz
aC10YWJsZS1leGlzdHM/Ci0JCQkJICAgaGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQKLQkJCQkg
ICBoYXNoLXRhYmxlLWNvcHkKLQkJCQkgICBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9u
Ci0JCQkJICAgaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uCi0JCQkJICAgaGFzaC10YWJsZS1rZXlz
Ci0JCQkJICAgaGFzaC10YWJsZS1mb2xkKQotCQkgIChoYXNoIGVxdWFsLWhhc2gpCi0JCSAgKGhh
c2gtYnktaWRlbnRpdHkgc3ltYm9sLWhhc2gpKQotICAgICAgICAgIChvbmx5IChpY2UtOSBnZW5l
cmljLWhhc2gtdGFibGVzKSBoYXNoLWJ5LXZhbHVlKQorCSAgKHJlbmFtZSAob25seSAoaWNlLTkg
Z2VuZXJpYy1oYXNoLXRhYmxlcykKKyAgICAgICAgICAgICAgICAgICAgICAgIG1ha2UtaGFzaC10
YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZT8KKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhhc2gtdGFibGUtbXV0YWJsZT8KKyAgICAgICAgICAgICAgICAgICAgICAgIGhh
c2gKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gtYnktaWRlbnRpdHkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGhhc2gtYnktdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gt
dGFibGUtc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZS1yZWYvZGVmYXVs
dAorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZS1zZXQtc2luZ2xlIQorICAgICAg
ICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZS1kZWxldGUtc2luZ2xlIQorICAgICAgICAgICAg
ICAgICAgICAgICAgaGFzaC10YWJsZS1jb250YWlucz8KKyAgICAgICAgICAgICAgICAgICAgICAg
IGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNo
LXRhYmxlLWNsZWFyIQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZS1jb3B5Cisg
ICAgICAgICAgICAgICAgICAgICAgICBoYXNoLXRhYmxlLWVudHJ5LXZlY3RvcnMKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbgorICAgICAgICAgICAgICAg
ICAgICAgICAgaGFzaC10YWJsZS1rZXktdmVjdG9yKQorICAgICAgICAgICAgICAgICAgKG1ha2Ut
aGFzaC10YWJsZSBnZW46bWFrZS1oYXNoLXRhYmxlKQorCQkgIChoYXNoIGVxdWFsLWhhc2gpKQor
ICAgICAgICAgIChvbmx5IChzcmZpIHNyZmktNjkpIGhhc2gtdGFibGUtc2V0ISBoYXNoLXRhYmxl
LWRlbGV0ZSEpCiAJICAocm5ycyBiYXNlICg2KSkKIAkgIChybnJzIHJlY29yZHMgcHJvY2VkdXJh
bCAoNikpKQorCisgIChkZWZpbmUgaGFzaHRhYmxlPyBoYXNoLXRhYmxlPykKKworICAoZGVmaW5l
IGhhc2h0YWJsZS1tdXRhYmxlPyBoYXNoLXRhYmxlLW11dGFibGU/KQorCisgIChkZWZpbmUgc3lt
Ym9sLWhhc2ggaGFzaC1ieS1pZGVudGl0eSkKKworICAoZGVmaW5lKiAobWFrZS1lcS1oYXNodGFi
bGUgIzpvcHRpb25hbCBjYXBhY2l0eSkKKyAgICAoaWYgY2FwYWNpdHkKKyAgICAgICAgKGdlbjpt
YWtlLWhhc2gtdGFibGUgZXE/ICNmICM6Y2FwYWNpdHkgY2FwYWNpdHkpCisgICAgICAgIChnZW46
bWFrZS1oYXNoLXRhYmxlIGVxPyAjZikpKQorCisgIChkZWZpbmUqIChtYWtlLWVxdi1oYXNodGFi
bGUgIzpvcHRpb25hbCBjYXBhY2l0eSkKKyAgICAoaWYgY2FwYWNpdHkKKyAgICAgICAgKGdlbjpt
YWtlLWhhc2gtdGFibGUgZXF2PyAjZiAjOmNhcGFjaXR5IGNhcGFjaXR5KQorICAgICAgICAoZ2Vu
Om1ha2UtaGFzaC10YWJsZSBlcXY/ICNmKSkpCisKKyAgKGRlZmluZSogKG1ha2UtaGFzaHRhYmxl
IGhhc2gtZnVuY3Rpb24gZXF1aXYgIzpvcHRpb25hbCBjYXBhY2l0eSkKKyAgICAoaWYgY2FwYWNp
dHkKKyAgICAgICAgKGdlbjptYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1mdW5jdGlvbiAjOmNh
cGFjaXR5IGNhcGFjaXR5KQorICAgICAgICAoZ2VuOm1ha2UtaGFzaC10YWJsZSBlcXVpdiBoYXNo
LWZ1bmN0aW9uKSkpCiAgIAotICAoZGVmaW5lIHI2cnM6aGFzaHRhYmxlIAotICAgIChtYWtlLXJl
Y29yZC10eXBlLWRlc2NyaXB0b3IgCi0gICAgICdyNnJzOmhhc2h0YWJsZSAjZiAjZiAjdCAjdCAK
LSAgICAgJyMoKG11dGFibGUgd3JhcHBlZC10YWJsZSkKLSAgICAgICAgKGltbXV0YWJsZSBvcmln
LWhhc2gtZnVuY3Rpb24pCi0gICAgICAgIChpbW11dGFibGUgbXV0YWJsZSkKLSAgICAgICAgKGlt
bXV0YWJsZSB0eXBlKSkpKQotCi0gIChkZWZpbmUgaGFzaHRhYmxlPyAocmVjb3JkLXByZWRpY2F0
ZSByNnJzOmhhc2h0YWJsZSkpCi0gIChkZWZpbmUgbWFrZS1yNnJzLWhhc2h0YWJsZSAKLSAgICAo
cmVjb3JkLWNvbnN0cnVjdG9yIChtYWtlLXJlY29yZC1jb25zdHJ1Y3Rvci1kZXNjcmlwdG9yIAot
CQkJIHI2cnM6aGFzaHRhYmxlICNmICNmKSkpCi0gIChkZWZpbmUgcjZyczpoYXNodGFibGUtd3Jh
cHBlZC10YWJsZSAocmVjb3JkLWFjY2Vzc29yIHI2cnM6aGFzaHRhYmxlIDApKQotICAoZGVmaW5l
IHI2cnM6aGFzaHRhYmxlLXNldC13cmFwcGVkLXRhYmxlISAocmVjb3JkLW11dGF0b3IgcjZyczpo
YXNodGFibGUgMCkpCi0gIChkZWZpbmUgcjZyczpoYXNodGFibGUtb3JpZy1oYXNoLWZ1bmN0aW9u
IChyZWNvcmQtYWNjZXNzb3IgcjZyczpoYXNodGFibGUgMSkpCi0gIChkZWZpbmUgcjZyczpoYXNo
dGFibGUtbXV0YWJsZT8gKHJlY29yZC1hY2Nlc3NvciByNnJzOmhhc2h0YWJsZSAyKSkKLSAgKGRl
ZmluZSByNnJzOmhhc2h0YWJsZS10eXBlIChyZWNvcmQtYWNjZXNzb3IgcjZyczpoYXNodGFibGUg
MykpCi0KLSAgKGRlZmluZSBoYXNodGFibGUtbXV0YWJsZT8gcjZyczpoYXNodGFibGUtbXV0YWJs
ZT8pCi0KLSAgOzsgKGRlZmluZSBoYXNoLWJ5LXZhbHVlICgoQEAgKHNyZmkgc3JmaS02OSkgY2Fs
bGVyLXdpdGgtZGVmYXVsdC1zaXplKSBoYXNodikpCi0gIDs7IChkZWZpbmUgKHdyYXAtaGFzaC1m
dW5jdGlvbiBwcm9jKQotICA7OyAgIChsYW1iZGEgKGtleSBjYXBhY2l0eSkgKG1vZHVsbyAocHJv
YyBrZXkpIGNhcGFjaXR5KSkpCi0KLSAgKGRlZmluZSogKG1ha2UtZXEtaGFzaHRhYmxlICM6b3B0
aW9uYWwgaykKLSAgICAobWFrZS1yNnJzLWhhc2h0YWJsZSAKLSAgICAgKGlmIGsgKG1ha2UtaGFz
aC10YWJsZSBlcT8gaGFzaHEgaykgKG1ha2UtaGFzaC10YWJsZSBlcT8gc3ltYm9sLWhhc2gpKQot
ICAgICBzeW1ib2wtaGFzaAotICAgICAjdAotICAgICAnZXEpKQotCi0gIChkZWZpbmUqIChtYWtl
LWVxdi1oYXNodGFibGUgIzpvcHRpb25hbCBrKQotICAgIChtYWtlLXI2cnMtaGFzaHRhYmxlIAot
ICAgICAoaWYgayAobWFrZS1oYXNoLXRhYmxlIGVxdj8gaGFzaHYgaykgKG1ha2UtaGFzaC10YWJs
ZSBlcXY/IGhhc2gtYnktdmFsdWUpKQotICAgICBoYXNoLWJ5LXZhbHVlCi0gICAgICN0Ci0gICAg
ICdlcXYpKQotCi0gIChkZWZpbmUqIChtYWtlLWhhc2h0YWJsZSBoYXNoLWZ1bmN0aW9uIGVxdWl2
ICM6b3B0aW9uYWwgaykKLSAgICAobWFrZS1yNnJzLWhhc2h0YWJsZQotICAgICAoaWYgawotICAg
ICAgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVpdiBoYXNoLWZ1bmN0aW9uIGspCi0gICAgICAgICAo
bWFrZS1oYXNoLXRhYmxlIGVxdWl2IGhhc2gtZnVuY3Rpb24pKQotICAgICBoYXNoLWZ1bmN0aW9u
Ci0gICAgICN0Ci0gICAgICdjdXN0b20pKQotIAotICAoZGVmaW5lIChoYXNodGFibGUtc2l6ZSBo
YXNodGFibGUpCi0gICAgKGhhc2gtdGFibGUtc2l6ZSAocjZyczpoYXNodGFibGUtd3JhcHBlZC10
YWJsZSBoYXNodGFibGUpKSkKLQotICAoZGVmaW5lIChoYXNodGFibGUtcmVmIGhhc2h0YWJsZSBr
ZXkgZGVmYXVsdCkKLSAgICAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCAKLSAgICAgKHI2cnM6aGFz
aHRhYmxlLXdyYXBwZWQtdGFibGUgaGFzaHRhYmxlKSBrZXkgZGVmYXVsdCkpCi0KLSAgKGRlZmlu
ZSAoaGFzaHRhYmxlLXNldCEgaGFzaHRhYmxlIGtleSBvYmopCi0gICAgKGlmIChyNnJzOmhhc2h0
YWJsZS1tdXRhYmxlPyBoYXNodGFibGUpCi0gICAgICAgIChoYXNoLXRhYmxlLXNldCEgKHI2cnM6
aGFzaHRhYmxlLXdyYXBwZWQtdGFibGUgaGFzaHRhYmxlKSBrZXkgb2JqKQotICAgICAgICAoYXNz
ZXJ0aW9uLXZpb2xhdGlvbgotICAgICAgICAgJ2hhc2h0YWJsZS1zZXQhICJIYXNodGFibGUgaXMg
aW1tdXRhYmxlLiIgaGFzaHRhYmxlKSkpCi0KLSAgKGRlZmluZSAoaGFzaHRhYmxlLWRlbGV0ZSEg
aGFzaHRhYmxlIGtleSkKLSAgICAoaWYgKHI2cnM6aGFzaHRhYmxlLW11dGFibGU/IGhhc2h0YWJs
ZSkKLQkoaGFzaC10YWJsZS1kZWxldGUhIChyNnJzOmhhc2h0YWJsZS13cmFwcGVkLXRhYmxlIGhh
c2h0YWJsZSkga2V5KSkKLSAgICAqdW5zcGVjaWZpZWQqKQotCi0gIChkZWZpbmUgKGhhc2h0YWJs
ZS1jb250YWlucz8gaGFzaHRhYmxlIGtleSkKLSAgICAoaGFzaC10YWJsZS1leGlzdHM/IChyNnJz
Omhhc2h0YWJsZS13cmFwcGVkLXRhYmxlIGhhc2h0YWJsZSkga2V5KSkKLQotICAoZGVmaW5lICho
YXNodGFibGUtdXBkYXRlISBoYXNodGFibGUga2V5IHByb2MgZGVmYXVsdCkKLSAgICAoaWYgKHI2
cnM6aGFzaHRhYmxlLW11dGFibGU/IGhhc2h0YWJsZSkKLQkoaGFzaC10YWJsZS11cGRhdGUhL2Rl
ZmF1bHQgCi0JIChyNnJzOmhhc2h0YWJsZS13cmFwcGVkLXRhYmxlIGhhc2h0YWJsZSkga2V5IHBy
b2MgZGVmYXVsdCkpCi0gICAgKnVuc3BlY2lmaWVkKikKLQotICAoZGVmaW5lKiAoaGFzaHRhYmxl
LWNvcHkgaGFzaHRhYmxlICM6b3B0aW9uYWwgbXV0YWJsZSkKLSAgICAobWFrZS1yNnJzLWhhc2h0
YWJsZSAKLSAgICAgKGhhc2gtdGFibGUtY29weSAocjZyczpoYXNodGFibGUtd3JhcHBlZC10YWJs
ZSBoYXNodGFibGUpKQotICAgICAocjZyczpoYXNodGFibGUtb3JpZy1oYXNoLWZ1bmN0aW9uIGhh
c2h0YWJsZSkKLSAgICAgKGFuZCBtdXRhYmxlICN0KQotICAgICAocjZyczpoYXNodGFibGUtdHlw
ZSBoYXNodGFibGUpKSkKLQotICAoZGVmaW5lKiAoaGFzaHRhYmxlLWNsZWFyISBoYXNodGFibGUg
IzpvcHRpb25hbCBrKQotICAgIChpZiAocjZyczpoYXNodGFibGUtbXV0YWJsZT8gaGFzaHRhYmxl
KQotCShsZXQqICgoaHQgKHI2cnM6aGFzaHRhYmxlLXdyYXBwZWQtdGFibGUgaGFzaHRhYmxlKSkK
LQkgICAgICAgKGVxdWl2IChoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGh0KSkKLQkg
ICAgICAgKGhhc2gtZnVuY3Rpb24gKHI2cnM6aGFzaHRhYmxlLW9yaWctaGFzaC1mdW5jdGlvbiBo
YXNodGFibGUpKSkKLQkgIChyNnJzOmhhc2h0YWJsZS1zZXQtd3JhcHBlZC10YWJsZSEKLQkgICBo
YXNodGFibGUKLQkgICAoaWYgayAKLQkgICAgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVpdiBoYXNo
LWZ1bmN0aW9uIGspCi0JICAgICAgIChtYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1mdW5jdGlv
bikpKSkpCi0gICAgKnVuc3BlY2lmaWVkKikKLQotICAoZGVmaW5lIChoYXNodGFibGUta2V5cyBo
YXNodGFibGUpCi0gICAgKGxpc3QtPnZlY3RvciAoaGFzaC10YWJsZS1rZXlzIChyNnJzOmhhc2h0
YWJsZS13cmFwcGVkLXRhYmxlIGhhc2h0YWJsZSkpKSkKLQotICAoZGVmaW5lIChoYXNodGFibGUt
ZW50cmllcyBoYXNodGFibGUpCi0gICAgKGxldCogKChodCAocjZyczpoYXNodGFibGUtd3JhcHBl
ZC10YWJsZSBoYXNodGFibGUpKQotCSAgIChzaXplIChoYXNoLXRhYmxlLXNpemUgaHQpKQotCSAg
IChrZXlzIChtYWtlLXZlY3RvciBzaXplKSkKLQkgICAodmFscyAobWFrZS12ZWN0b3Igc2l6ZSkp
KQotICAgICAgKGhhc2gtdGFibGUtZm9sZCAocjZyczpoYXNodGFibGUtd3JhcHBlZC10YWJsZSBo
YXNodGFibGUpCi0JCSAgICAgICAobGFtYmRhIChrIHYgaSkKLQkJCSAodmVjdG9yLXNldCEga2V5
cyBpIGspCi0JCQkgKHZlY3Rvci1zZXQhIHZhbHMgaSB2KQotCQkJICgrIGkgMSkpCi0JCSAgICAg
ICAwKQotICAgICAgKHZhbHVlcyBrZXlzIHZhbHMpKSkKLQotICAoZGVmaW5lIChoYXNodGFibGUt
ZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFzaHRhYmxlKQotICAgIChoYXNoLXRhYmxlLWVxdWl2YWxl
bmNlLWZ1bmN0aW9uIChyNnJzOmhhc2h0YWJsZS13cmFwcGVkLXRhYmxlIGhhc2h0YWJsZSkpKQor
ICAoZGVmaW5lIGhhc2h0YWJsZS1zaXplIGhhc2gtdGFibGUtc2l6ZSkKKworICAoZGVmaW5lIGhh
c2h0YWJsZS1yZWYgaGFzaC10YWJsZS1yZWYvZGVmYXVsdCkKKworICAoZGVmaW5lIGhhc2h0YWJs
ZS1zZXQhIGhhc2gtdGFibGUtc2V0ISkKKworICAoZGVmaW5lIGhhc2h0YWJsZS1kZWxldGUhIGhh
c2gtdGFibGUtZGVsZXRlISkKKworICAoZGVmaW5lIGhhc2h0YWJsZS1jb250YWlucz8gaGFzaC10
YWJsZS1jb250YWlucz8pCisKKyAgKGRlZmluZSBoYXNodGFibGUtdXBkYXRlISBoYXNoLXRhYmxl
LXVwZGF0ZSEvZGVmYXVsdCkKKworICAoZGVmaW5lKiAoaGFzaHRhYmxlLWNvcHkgaHQgIzpvcHRp
b25hbCBtdXRhYmxlKQorICAgIChoYXNoLXRhYmxlLWNvcHkgaHQgIzptdXRhYmxlIG11dGFibGUp
KQorCisgIChkZWZpbmUgaGFzaHRhYmxlLWNsZWFyISBoYXNoLXRhYmxlLWNsZWFyISkKKworICAo
ZGVmaW5lIGhhc2h0YWJsZS1rZXlzIGhhc2gtdGFibGUta2V5LXZlY3RvcikKKworICAoZGVmaW5l
IGhhc2h0YWJsZS1lbnRyaWVzIGhhc2gtdGFibGUtZW50cnktdmVjdG9ycykKKworICAoZGVmaW5l
IGhhc2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1
bmN0aW9uKQogCiAgIChkZWZpbmUgKGhhc2h0YWJsZS1oYXNoLWZ1bmN0aW9uIGhhc2h0YWJsZSkK
LSAgICAoY2FzZSAocjZyczpoYXNodGFibGUtdHlwZSBoYXNodGFibGUpCi0gICAgICAoKGVxIGVx
dikgI2YpCi0gICAgICAoZWxzZSAocjZyczpoYXNodGFibGUtb3JpZy1oYXNoLWZ1bmN0aW9uIGhh
c2h0YWJsZSkpKSkpCisgICAgKGxldCAoKGhhc2gtZnVuY3Rpb24gKGhhc2gtdGFibGUtaGFzaC1m
dW5jdGlvbiBoYXNodGFibGUpKSkKKyAgICAgIChjb25kICgob3IgKGVxPyBoYXNoLWJ5LWlkZW50
aXR5IGhhc2gtZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgIChlcT8gaGFzaC1ieS12YWx1ZSAg
ICBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAjZikKKyAgICAgICAgICAgIChlbHNlIGhh
c2gtZnVuY3Rpb24pKSkpKQotLSAKMi4xOS4xCgo=
--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0005-Implemented-SRFI-126-using-GENERIC-HASH-TABLES.patch"
Content-Disposition: attachment; 
	filename="0005-Implemented-SRFI-126-using-GENERIC-HASH-TABLES.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofmiol4>
X-Attachment-Id: f_jqofmiol4

RnJvbSA1NzVhMzMxNjkxNmZkZGRiYzMwYTQwNGYxOTAyNzdlMWI1YzBlNzFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjI6MDc6MDIg
LTAyMDAKU3ViamVjdDogW1BBVENIIDUvNV0gSW1wbGVtZW50ZWQgU1JGSS0xMjYgdXNpbmcgR0VO
RVJJQy1IQVNILVRBQkxFUwoKLS0tCiBtb2R1bGUvTWFrZWZpbGUuYW0gICAgICAgICAgICAgfCAg
IDEgKwogbW9kdWxlL3NyZmkvc3JmaS0xMjYuc2NtICAgICAgIHwgMjE1ICsrKysrKysrKysrKysr
KysrKysrKwogdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbSAgICAgICAgIHwgICAxICsKIHRlc3Qtc3Vp
dGUvdGVzdHMvc3JmaS0xMjYudGVzdCB8IDM0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNTYxIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBtb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0LXN1
aXRlL3Rlc3RzL3NyZmktMTI2LnRlc3QKCmRpZmYgLS1naXQgYS9tb2R1bGUvTWFrZWZpbGUuYW0g
Yi9tb2R1bGUvTWFrZWZpbGUuYW0KaW5kZXggNmRiYTg3Y2U4Li42ZTczOWZlZDAgMTAwNjQ0Ci0t
LSBhL21vZHVsZS9NYWtlZmlsZS5hbQorKysgYi9tb2R1bGUvTWFrZWZpbGUuYW0KQEAgLTI5NCw2
ICsyOTQsNyBAQCBTT1VSQ0VTID0JCQkJCVwKICAgc3JmaS9zcmZpLTg4LnNjbQkJCQlcCiAgIHNy
Zmkvc3JmaS05OC5zY20JCQkJXAogICBzcmZpL3NyZmktMTExLnNjbQkJCQlcCisgIHNyZmkvc3Jm
aS0xMjYuc2NtCQkJCVwKIAkJCQkJCVwKICAgc3RhdHByb2Yuc2NtCQkJCQlcCiAJCQkJCQlcCmRp
ZmYgLS1naXQgYS9tb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20gYi9tb2R1bGUvc3JmaS9zcmZpLTEy
Ni5zY20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43YTY1OTQ0MzQKLS0t
IC9kZXYvbnVsbAorKysgYi9tb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20KQEAgLTAsMCArMSwyMTUg
QEAKKzs7OyBzcmZpLTY5LnNjbSAtLS0gQmFzaWMgaGFzaCB0YWJsZXMKKworOzsgCUNvcHlyaWdo
dCAoQykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKzs7Cis7OyBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCis7
OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCis7OyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKzs7IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7Cis7OyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKzs7IGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OyBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorOzsgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
Kzs7Cis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCis7OyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisM
CisKKyhkZWZpbmUtbW9kdWxlIChzcmZpIHNyZmktMTI2KQorICAjOnVzZS1tb2R1bGUgKHNyZmkg
c3JmaS0xKQorICAjOnVzZS1tb2R1bGUgKChpY2UtOSBnZW5lcmljLWhhc2gtdGFibGVzKSAjOnBy
ZWZpeCBnZW46KQorICAjOnVzZS1tb2R1bGUgKChybnJzIGhhc2h0YWJsZXMpCisgICAgICAgICAg
ICAgICAgIzpzZWxlY3QgKGhhc2h0YWJsZT8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGFz
aHRhYmxlLWNvbnRhaW5zPyBoYXNodGFibGUtbXV0YWJsZT8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGFzaHRhYmxlLXNldCEgaGFzaHRhYmxlLWRlbGV0ZSEgaGFzaHRhYmxlLWNsZWFyIQor
ICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNodGFibGUtc2l6ZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICBoYXNodGFibGUta2V5cyBoYXNodGFibGUtZW50cmllcworICAgICAgICAgICAg
ICAgICAgICAgICAgICBoYXNodGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGFzaHRhYmxlLWhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgZXF1YWwtaGFzaCBzeW1ib2wtaGFzaAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJpbmctaGFzaCBzdHJpbmctY2ktaGFzaCkpCisgICM6cmUtZXhwb3J0IChoYXNodGFibGU/
CisgICAgICAgICAgICAgICBoYXNodGFibGUtY29udGFpbnM/IGhhc2h0YWJsZS1tdXRhYmxlPwor
ICAgICAgICAgICAgICAgaGFzaHRhYmxlLXNldCEgaGFzaHRhYmxlLWRlbGV0ZSEgaGFzaHRhYmxl
LWNsZWFyIQorICAgICAgICAgICAgICAgaGFzaHRhYmxlLXNpemUKKyAgICAgICAgICAgICAgIGhh
c2h0YWJsZS1rZXlzIGhhc2h0YWJsZS1lbnRyaWVzCisgICAgICAgICAgICAgICBoYXNodGFibGUt
ZXF1aXZhbGVuY2UtZnVuY3Rpb24KKyAgICAgICAgICAgICAgIGhhc2h0YWJsZS1oYXNoLWZ1bmN0
aW9uCisgICAgICAgICAgICAgICBlcXVhbC1oYXNoIHN5bWJvbC1oYXNoCisgICAgICAgICAgICAg
ICBzdHJpbmctaGFzaCBzdHJpbmctY2ktaGFzaCkKKyAgIzpleHBvcnQgKG1ha2UtZXEtaGFzaHRh
YmxlCisgICAgICAgICAgICBtYWtlLWVxdi1oYXNodGFibGUgbWFrZS1oYXNodGFibGUKKyAgICAg
ICAgICAgIGFsaXN0LT5lcS1oYXNodGFibGUgYWxpc3QtPmVxdi1oYXNodGFibGUgYWxpc3QtPmhh
c2h0YWJsZQorICAgICAgICAgICAgaGFzaHRhYmxlLXdlYWtuZXNzCisgICAgICAgICAgICBoYXNo
dGFibGUtcmVmIGhhc2h0YWJsZS1sb29rdXAKKyAgICAgICAgICAgIGhhc2h0YWJsZS11cGRhdGUh
IGhhc2h0YWJsZS1pbnRlcm4hCisgICAgICAgICAgICBoYXNodGFibGUtY29weSBoYXNodGFibGUt
ZW1wdHktY29weQorICAgICAgICAgICAgaGFzaHRhYmxlLXZhbHVlcworICAgICAgICAgICAgaGFz
aHRhYmxlLWtleS1saXN0IGhhc2h0YWJsZS12YWx1ZS1saXN0IGhhc2h0YWJsZS1lbnRyeS1saXN0
cworICAgICAgICAgICAgaGFzaHRhYmxlLXdhbGsgaGFzaHRhYmxlLXVwZGF0ZS1hbGwhCisgICAg
ICAgICAgICBoYXNodGFibGUtcHJ1bmUhIGhhc2h0YWJsZS1tZXJnZSEgaGFzaHRhYmxlLXN1bQor
ICAgICAgICAgICAgaGFzaHRhYmxlLW1hcC0+bHNldAorICAgICAgICAgICAgaGFzaHRhYmxlLWZp
bmQgaGFzaHRhYmxlLWVtcHR5PworICAgICAgICAgICAgaGFzaHRhYmxlLXBvcCEKKyAgICAgICAg
ICAgIGhhc2h0YWJsZS1pbmMhIGhhc2h0YWJsZS1kZWMhCisgICAgICAgICAgICBoYXNoLXNhbHQp
KQorCisoY29uZC1leHBhbmQtcHJvdmlkZSAoY3VycmVudC1tb2R1bGUpICcoc3JmaS0xMjYpKQor
CisoZGVmaW5lIGhhc2h0YWJsZT8gZ2VuOmhhc2gtdGFibGU/KQorCisoZGVmaW5lKiAobWFrZS1o
YXNodGFibGUgaGFzaC1mdW5jdGlvbiBlcXVpdi1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgICM6b3B0aW9uYWwgY2FwYWNpdHkgd2Vha25lc3MpCisgICJDcmVhdGVzIGEgbmV3IGhh
c2ggdGFibGUuIEVRVUlWLUZVTkNUSU9OIGlzIHVzZWQgYXMgdGhlIGNvbXBhcmlzb24KK2Z1bmN0
aW9uIGFuZCBIQVNILUZVTkNUSU9OLCBpZiBwcm92aWRlZCBhbmQgbm90IGZhbHNlLCBpcyB1c2Vk
IGFzIHRoZQoraGFzaCBmdW5jdGlvbiwgb3RoZXJ3aXNlIGEgc3VpdGFibGUgaGFzaC1mdW5jdGlv
biBmb3IgdGhlIGhhc2ggdGFibGUgaXMKK2d1ZXNzZWQgb3IsIGlmIG9uZSBjYW4ndCBiZSBndWVz
c2VkLCBhbiBlcnJvciBpcyBzaWduYWxlZC4gV0VBS05FU1MKK3Nob3VsZCBiZSBlaXRoZXIgI2Ys
IFdFQUstS0VZLCBXRUFLLVZBTFVFIG9yIFdFQUstS0VZLUFORC1WQUxVRS4KK0NBUEFDSVRZIGlz
IHRoZSBtaW5pbWFsIG51bWJlciBvZiBidWNrZXRzIG9mIHRoZSBoYXNoIHRhYmxlLiIKKyAgKGdl
bjptYWtlLWhhc2gtdGFibGUgZXF1aXYtZnVuY3Rpb24gKGlmIChwYWlyPyBoYXNoLWZ1bmN0aW9u
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhciBoYXNoLWZ1
bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC1m
dW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIzpjYXBhY2l0eSAob3IgY2FwYWNpdHkg
MSkKKyAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpCisKKyhkZWZp
bmUqIChtYWtlLWVxLWhhc2h0YWJsZSAjOm9wdGlvbmFsIGNhcGFjaXR5IHdlYWtuZXNzKQorICAo
Z2VuOm1ha2UtaGFzaC10YWJsZSBlcT8gZ2VuOmhhc2gtYnktaWRlbnRpdHkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIzpjYXBhY2l0eSAob3IgY2FwYWNpdHkgMSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpCisKKyhkZWZpbmUqIChtYWtlLWVxdi1oYXNodGFi
bGUgIzpvcHRpb25hbCBjYXBhY2l0eSB3ZWFrbmVzcykKKyAgKGdlbjptYWtlLWhhc2gtdGFibGUg
ZXF2PyBnZW46aGFzaC1ieS12YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAjOmNhcGFjaXR5
IChvciBjYXBhY2l0eSAxKQorICAgICAgICAgICAgICAgICAgICAgICAjOndlYWtuZXNzIHdlYWtu
ZXNzKSkKKworKGRlZmluZSBhbGlzdC0+aGFzaHRhYmxlCisgIChjYXNlLWxhbWJkYQorICAgICgo
aGFzaC1mdW5jdGlvbiBlcXVpdi1mdW5jdGlvbiBhbGlzdCkKKyAgICAgKGdlbjphbGlzdC0+aGFz
aC10YWJsZSBhbGlzdCBlcXVpdi1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChpZiAocGFpcj8gaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNhciBoYXNoLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YXNoLWZ1bmN0aW9uKSkpCisgICAgKChoYXNoLWZ1bmN0aW9uIGVxdWl2LWZ1bmN0aW9uIGNhcGFj
aXR5IGFsaXN0KQorICAgICAoZ2VuOmFsaXN0LT5oYXNoLXRhYmxlIGFsaXN0IGVxdWl2LWZ1bmN0
aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChwYWlyPyBoYXNoLWZ1bmN0aW9u
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FyIGhhc2gtZnVuY3Rpb24pCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gtZnVuY3Rpb24pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIzpjYXBhY2l0eSAob3IgY2FwYWNpdHkgMSkpKQorICAgICgoaGFz
aC1mdW5jdGlvbiBlcXVpdi1mdW5jdGlvbiBjYXBhY2l0eSB3ZWFrbmVzcyBhbGlzdCkKKyAgICAg
KGdlbjphbGlzdC0+aGFzaC10YWJsZSBhbGlzdCBlcXVpdi1mdW5jdGlvbgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChpZiAocGFpcj8gaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGNhciBoYXNoLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoYXNoLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICM6Y2FwYWNpdHkgKG9yIGNhcGFjaXR5IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Izp3ZWFrbmVzcyB3ZWFrbmVzcykpKSkKKworKGRlZmluZSAoYWxpc3QtPmVxLWhhc2h0YWJsZSAu
IGFyZ3MpCisgIChhcHBseSBhbGlzdC0+aGFzaHRhYmxlICNmIGVxPyBhcmdzKSkKKworKGRlZmlu
ZSAoYWxpc3QtPmVxdi1oYXNodGFibGUgLiBhcmdzKQorICAoYXBwbHkgYWxpc3QtPmhhc2h0YWJs
ZSAjZiBlcXY/IGFyZ3MpKQorCisoZGVmaW5lKiAoaGFzaHRhYmxlLXJlZiBodCBrZXkgIzpvcHRp
b25hbCBkZWZhdWx0KQorICAoaWYgZGVmYXVsdAorICAgICAgKGdlbjpoYXNoLXRhYmxlLXJlZi9k
ZWZhdWx0IGh0IGtleSBkZWZhdWx0KQorICAgICAgKGdlbjpoYXNoLXRhYmxlLXJlZiBodCBrZXkp
KSkKKworOzsgKGRlZmluZSBoYXNodGFibGUtY29udGFpbnM/IHJucnM6aGFzaHRhYmxlLWNvbnRh
aW5zPykKKzs7IChkZWZpbmUgaGFzaHRhYmxlLXNldCEgcm5yczpoYXNodGFibGUtc2V0ISkKKzs7
IChkZWZpbmUgaGFzaHRhYmxlLWRlbGV0ZSEgcm5yczpoYXNodGFibGUtZGVsZXRlISkKKworKGRl
ZmluZSAoaGFzaHRhYmxlLWxvb2t1cCBoYXNodGFibGUga2V5KQorICAobGV0KiAoKGZvdW5kPyAj
dCkKKyAgICAgICAgICh2YWx1ZSAoZ2VuOmhhc2gtdGFibGUtcmVmIGhhc2h0YWJsZSBrZXkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKCkgKHNldCEgZm91bmQ/
ICNmKSAjZikpKSkKKyAgICAodmFsdWVzIHZhbHVlIGZvdW5kPykpKQorCisoZGVmaW5lKiAoaGFz
aHRhYmxlLXVwZGF0ZSEgaHQga2V5IG1vZGlmaWVyICM6b3B0aW9uYWwgZGVmYXVsdCkKKyAgKGlm
IGRlZmF1bHQKKyAgICAgIChnZW46aGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQgaHQga2V5IG1v
ZGlmaWVyIGRlZmF1bHQpCisgICAgICAoZ2VuOmhhc2gtdGFibGUtdXBkYXRlISBodCBrZXkgbW9k
aWZpZXIpKSkKKworKGRlZmluZSBoYXNodGFibGUtaW50ZXJuISBnZW46aGFzaC10YWJsZS1pbnRl
cm4hKQorCisoZGVmaW5lKiAoaGFzaHRhYmxlLWNvcHkgaGFzaHRhYmxlICM6b3B0aW9uYWwgbXV0
YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICh3ZWFrbmVzcyAoaGFzaHRhYmxlLXdlYWtu
ZXNzIGhhc2h0YWJsZSkpKQorICAoZ2VuOmhhc2gtdGFibGUtY29weSBoYXNodGFibGUgIzptdXRh
YmxlIG11dGFibGUgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpCisKKzs7IChkZWZpbmUgaGFzaHRhYmxl
LWNsZWFyISBybnJzOmhhc2h0YWJsZS1jbGVhciEpCisKKyhkZWZpbmUqIChoYXNodGFibGUtZW1w
dHktY29weSBoYXNodGFibGUgIzpvcHRpb25hbCBjYXBhY2l0eQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh3ZWFrbmVzcyAoaGFzaHRhYmxlLXdlYWtuZXNzIGhhc2h0YWJsZSkpKQor
ICAobGV0ICgoY2FwYWNpdHkgKGNhc2UgY2FwYWNpdHkKKyAgICAgICAgICAgICAgICAgICAgKCgj
ZikgMSkKKyAgICAgICAgICAgICAgICAgICAgKCgjdCkgKGhhc2h0YWJsZS1zaXplIGhhc2h0YWJs
ZSkpCisgICAgICAgICAgICAgICAgICAgIChlbHNlIGNhcGFjaXR5KSkpKQorICAgIChnZW46aGFz
aC10YWJsZS1lbXB0eS1jb3B5IGhhc2h0YWJsZSAjOmNhcGFjaXR5IGNhcGFjaXR5ICM6d2Vha25l
c3Mgd2Vha25lc3MpKSkKKworDAorOzs7OyBBY2Nlc3Npbmcgd2hvbGUgdGFibGVzCisKKzs7IChk
ZWZpbmUgaGFzaHRhYmxlLXNpemUgcm5yczpoYXNodGFibGUtc2l6ZSkKKzs7IChkZWZpbmUgaGFz
aHRhYmxlLWtleXMgZ2VuOmhhc2gtdGFibGUta2V5LXZlY3RvcikKKyhkZWZpbmUgaGFzaHRhYmxl
LXZhbHVlcyBnZW46aGFzaC10YWJsZS12YWx1ZS12ZWN0b3IpCis7OyAoZGVmaW5lIGhhc2h0YWJs
ZS1lbnRyaWVzIHJucnM6aGFzaHRhYmxlLWVudHJpZXMpCisoZGVmaW5lIGhhc2h0YWJsZS1rZXkt
bGlzdCBnZW46aGFzaC10YWJsZS1rZXlzKQorKGRlZmluZSBoYXNodGFibGUtdmFsdWUtbGlzdCBn
ZW46aGFzaC10YWJsZS12YWx1ZXMpCisoZGVmaW5lIGhhc2h0YWJsZS1lbnRyeS1saXN0cyBnZW46
aGFzaC10YWJsZS1lbnRyaWVzKQorKGRlZmluZSBoYXNodGFibGUtPmFsaXN0IGdlbjpoYXNoLXRh
YmxlLT5hbGlzdCkKKworKGRlZmluZSAoaGFzaHRhYmxlLXdhbGsgaGFzaHRhYmxlIHByb2MpCisg
IChnZW46aGFzaC10YWJsZS1mb3ItZWFjaCBwcm9jIGhhc2h0YWJsZSkpCisKKyhkZWZpbmUgKGhh
c2h0YWJsZS11cGRhdGUtYWxsISBoYXNodGFibGUgcHJvYykKKyAgKGdlbjpoYXNoLXRhYmxlLW1h
cCEgcHJvYyBoYXNodGFibGUpKQorCisoZGVmaW5lIChoYXNodGFibGUtcHJ1bmUhIGhhc2h0YWJs
ZSBwcm9jKQorICAoZ2VuOmhhc2gtdGFibGUtcHJ1bmUhIHByb2MgaGFzaHRhYmxlKSkKKworKGRl
ZmluZSAoaGFzaHRhYmxlLXN1bSBoYXNodGFibGUgaW5pdCBwcm9jKQorICAoZ2VuOmhhc2gtdGFi
bGUtZm9sZCBwcm9jIGluaXQgaGFzaHRhYmxlKSkKKworKGRlZmluZSAoaGFzaHRhYmxlLW1lcmdl
ISBodCBvdGhlci1odCkKKyAgKGdlbjpoYXNoLXRhYmxlLWZvci1lYWNoIChsYW1iZGEgKGsgdikg
KGhhc2h0YWJsZS1zZXQhIGh0IGsgdikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhl
ci1odCkKKyAgaHQpCisKKyhkZWZpbmUgKGhhc2h0YWJsZS1tYXAtPmxzZXQgaGFzaHRhYmxlIHBy
b2MpCisgIChnZW46aGFzaC10YWJsZS1tYXAtPmxpc3QgcHJvYyBoYXNodGFibGUpKQorCisoZGVm
aW5lIChoYXNodGFibGUtZmluZCBoYXNodGFibGUgcHJvYykKKyAgKGNhbGwvY2MgKGxhbWJkYSAo
cmV0dXJuKQorICAgICAgICAgICAgIChnZW46aGFzaC10YWJsZS1mb3ItZWFjaCAobGFtYmRhIChr
IHYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKHByb2Mg
ayB2KSAocmV0dXJuIGsgdiAjdCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoYXNodGFibGUpCisgICAgICAgICAgICAgKHZhbHVlcyAqdW5zcGVjaWZpZWQqICp1bnNw
ZWNpZmllZCogI2YpKSkpCisKKyhkZWZpbmUgaGFzaHRhYmxlLWVtcHR5PyBnZW46aGFzaC10YWJs
ZS1lbXB0eT8pCisoZGVmaW5lIGhhc2h0YWJsZS1wb3AhIGdlbjpoYXNoLXRhYmxlLXBvcCEpCisK
KyhkZWZpbmUqIChoYXNodGFibGUtaW5jISBoYXNodGFibGUga2V5ICM6b3B0aW9uYWwgKG51bWJl
ciAxKSkKKyAgKGhhc2h0YWJsZS11cGRhdGUhIGhhc2h0YWJsZSBrZXkgKGxhbWJkYSAodikgKCsg
diBudW1iZXIpKSAwKSkKKworKGRlZmluZSogKGhhc2h0YWJsZS1kZWMhIGhhc2h0YWJsZSBrZXkg
IzpvcHRpb25hbCAobnVtYmVyIDEpKQorICAoaGFzaHRhYmxlLXVwZGF0ZSEgaGFzaHRhYmxlIGtl
eSAobGFtYmRhICh2KSAoLSB2IG51bWJlcikpIDApKQorCisoZGVmaW5lIGhhc2h0YWJsZS13ZWFr
bmVzcyBnZW46aGFzaC10YWJsZS13ZWFrbmVzcykKKzs7IChkZWZpbmUgaGFzaHRhYmxlLW11dGFi
bGU/IHJucnM6aGFzaHRhYmxlLW11dGFibGU/KQorOzsgKGRlZmluZSBoYXNodGFibGUtZXF1aXZh
bGVuY2UtZnVuY3Rpb24gcm5yczpoYXNodGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24pCis7OyAo
ZGVmaW5lIGhhc2h0YWJsZS1oYXNoLWZ1bmN0aW9uIHJucnM6aGFzaHRhYmxlLWhhc2gtZnVuY3Rp
b24pCis7OyAoZGVmaW5lIGVxdWFsLWhhc2ggcm5yczplcXVhbC1oYXNoKQorOzsgKGRlZmluZSBz
dHJpbmctaGFzaCBybnJzOnN0cmluZy1oYXNoKQorOzsgKGRlZmluZSBzdHJpbmctY2ktaGFzaCBy
bnJzOnN0cmluZy1jaS1oYXNoKQorOzsgKGRlZmluZSBzeW1ib2wtaGFzaCBybnJzOnN5bWJvbC1o
YXNoKQorCisoZGVmaW5lICpoYXNoLXNhbHQqCisgIChsZXQgKChzZWVkIChnZXRlbnYgIlNSRklf
MTI2X0hBU0hfU0VFRCIpKSkKKyAgICAoaWYgKG9yIChub3Qgc2VlZCkgKHN0cmluZz0/IHNlZWQg
IiIpKQorICAgICAgICAocmFuZG9tIG1vc3QtcG9zaXRpdmUtZml4bnVtKQorICAgICAgICAobW9k
dWxvIChzdHJpbmctaGFzaCBzZWVkKSBtb3N0LXBvc2l0aXZlLWZpeG51bSkpKSkKKworKGRlZmlu
ZSAoaGFzaC1zYWx0KSAqaGFzaC1zYWx0KikKKworOzsgZW9mCmRpZmYgLS1naXQgYS90ZXN0LXN1
aXRlL01ha2VmaWxlLmFtIGIvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQppbmRleCBlMTU0NjAyYTcu
LmYwYWQ4YmI5MSAxMDA2NDQKLS0tIGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQorKysgYi90ZXN0
LXN1aXRlL01ha2VmaWxlLmFtCkBAIC0xNjIsNiArMTYyLDcgQEAgU0NNX1RFU1RTID0gdGVzdHMv
MDAtaW5pdGlhbC1lbnYudGVzdAkJXAogCSAgICB0ZXN0cy9zcmZpLTk4LnRlc3QJCQlcCiAJICAg
IHRlc3RzL3NyZmktMTA1LnRlc3QJCQlcCiAJICAgIHRlc3RzL3NyZmktMTExLnRlc3QJCQlcCisJ
ICAgIHRlc3RzL3NyZmktMTI2LnRlc3QJCQlcCiAJICAgIHRlc3RzL3NyZmktNC50ZXN0CQkJXAog
CSAgICB0ZXN0cy9zcmZpLTkudGVzdAkJCVwKIAkgICAgdGVzdHMvc3RhdHByb2YudGVzdAkJCVwK
ZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjYudGVzdCBiL3Rlc3Qtc3VpdGUv
dGVzdHMvc3JmaS0xMjYudGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu
LmU2YTRlNjZhOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjYu
dGVzdApAQCAtMCwwICsxLDM0NCBAQAorOzs7OyBzcmZpLTY5LnRlc3QgLS0tIFRlc3Qgc3VpdGUg
Zm9yIFNSRkkgNjkgLSotIHNjaGVtZSAtKi0KKzs7OzsKKzs7OzsgCUNvcHlyaWdodCAoQykgMjAw
NyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKzs7OzsKKzs7OzsgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorOzs7OyBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
Cis7Ozs7IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorOzs7OyB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCis7Ozs7Cis7Ozs7IFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzs7OyBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
Ozs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorOzs7OyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorOzs7OworOzs7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7Ozs7IExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKzs7OzsgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAwMjExMC0xMzAxIFVTQQorCis7OzsgVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgdGhlIHRlc3Rz
IGZyb20gU1JGSS0xMjYgcmVmZXJlbmNlCis7OzsgaW1wbGVtZW50YXRpb24gcG9ydGVkIHRvIEd1
aWxlIHRlc3Qgc3VpdGUuCisKKyhkZWZpbmUtbW9kdWxlICh0ZXN0LXNyZmktMTI2KQorICAjOnVz
ZS1tb2R1bGUgKHRlc3Qtc3VpdGUgbGliKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xMjYp
CisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZp
LTIpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTgpKQorCisoZGVmaW5lLXN5bnRheCB3aXRo
LWVsdC1pbi1saXN0CisgIChzeW50YXgtcnVsZXMgKCkKKyAgICAoKHdpdGgtZWx0LWluLWxpc3Qg
YXJnIGFyZy1saXN0IGV4cHIgLi4uKQorICAgICAobGV0IGxvb3AgKChhcmctbGlzdCogYXJnLWxp
c3QpKQorICAgICAgIChvciAobnVsbD8gYXJnLWxpc3QqKQorICAgICAgICAgICAoYW5kIChsZXQg
KChhcmcgKGNhciBhcmctbGlzdCopKSkKKyAgICAgICAgICAgICAgICAgIGV4cHIgLi4uKQorICAg
ICAgICAgICAgICAgIChsb29wIChjZHIgYXJnLWxpc3QqKSkpKSkpKSkKKworKGRlZmluZSAoZXhh
Y3QtaW50ZWdlcj8gb2JqKQorICAoYW5kIChpbnRlZ2VyPyBvYmopIChleGFjdD8gb2JqKSkpCisK
KyhkZWZpbmUgKHRlc3Qtc3RyLXdlYWtuZXNzIHN0ciB3ZWFrbmVzcykKKyAgKGlmIChub3Qgd2Vh
a25lc3MpIHN0ciAoZm9ybWF0ICNmICJ+YSAod2Vha25lc3M6IH5hKSIgc3RyIHdlYWtuZXNzKSkp
CisKKworCisod2l0aC10ZXN0LXByZWZpeCAiU1JGSS0xMjYiCisKKyAgOzsgVGhlIGZvbGxvd2lu
ZyB0ZXN0cyBhcmUgZG9uZSBvbmNlIHdpdGggZWFjaCBraW5kIG9mIHdlYWtuZXNzCisgICh3aXRo
LWVsdC1pbi1saXN0IHdlYWtuZXNzIChsaXN0ICNmICd3ZWFrLWtleSAnd2Vhay12YWx1ZSAnd2Vh
ay1rZXktYW5kLXZhbHVlKQorCisgICAgKHdpdGgtdGVzdC1wcmVmaXggImVxIgorICAgICAgKGxl
dCAoKHRhYmxlcyAobGlzdCAoYW5kIChub3Qgd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1ha2UtZXEtaGFzaHRhYmxlKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG1ha2UtZXEtaGFzaHRhYmxlIDEwIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAobWFrZS1lcS1oYXNodGFibGUgI2Ygd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYWtlLWhhc2h0YWJsZSAjZiBlcT8gI2Ygd2Vha25lc3MpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIChhbmQgKG5vdCB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChhIC4gYikgKGMgLiBkKSkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmVxLWhhc2h0YWJsZSAxMCB3ZWFrbmVzcyAnKChh
IC4gYikgKGMgLiBkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC0+ZXEtaGFz
aHRhYmxlICNmIHdlYWtuZXNzICcoKGEgLiBiKSAoYyAuIGQpKSkpKSkKKyAgICAgICAgKGRvICgo
dGFibGVzIHRhYmxlcyAoY2RyIHRhYmxlcykpCisgICAgICAgICAgICAgKGkgMCAoKyBpIDEpKSkK
KyAgICAgICAgICAgICgobnVsbD8gdGFibGVzKSkKKyAgICAgICAgICAoYW5kLWxldCogKCh0YWJs
ZSAoY2FyIHRhYmxlcykpKQorICAgICAgICAgICAgKHdpdGgtdGVzdC1wcmVmaXggKHRlc3Qtc3Ry
LXdlYWtuZXNzIChmb3JtYXQgI2YgInRhYmxlIH5hIiBpKSB3ZWFrbmVzcykKKyAgICAgICAgICAg
ICAgKHBhc3MtaWYgKGhhc2h0YWJsZT8gdGFibGUpKQorICAgICAgICAgICAgICAocGFzcy1pZi1l
cXVhbCAjZiAoaGFzaHRhYmxlLWhhc2gtZnVuY3Rpb24gdGFibGUpKQorICAgICAgICAgICAgICAo
cGFzcy1pZi1lcXVhbCBlcT8gKGhhc2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJsZSkp
CisgICAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIHdlYWtuZXNzIChoYXNodGFibGUtd2Vha25l
c3MgdGFibGUpKQorICAgICAgICAgICAgICAocGFzcy1pZiAoaGFzaHRhYmxlLW11dGFibGU/IHRh
YmxlKSkpKSkpKQorCisgICAgKHdpdGgtdGVzdC1wcmVmaXggImVxdiIKKyAgICAgIChsZXQgKCh0
YWJsZXMgKGxpc3QgKGFuZCAobm90IHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYWtlLWVxdi1oYXNodGFibGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo
bWFrZS1lcXYtaGFzaHRhYmxlIDEwIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAobWFrZS1lcXYtaGFzaHRhYmxlICNmIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAobWFrZS1oYXNodGFibGUgI2YgZXF2PyAjZiB3ZWFrbmVzcykKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGFuZCAobm90IHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChhbGlzdC0+ZXF2LWhhc2h0YWJsZSAnKChhIC4gYikgKGMgLiBkKSkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmVxdi1oYXNodGFibGUgMTAgd2Vha25lc3MgJygo
YSAuIGIpIChjIC4gZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmVxdi1o
YXNodGFibGUgI2Ygd2Vha25lc3MgJygoYSAuIGIpIChjIC4gZCkpKSkpKQorICAgICAgICAoZG8g
KCh0YWJsZXMgdGFibGVzIChjZHIgdGFibGVzKSkKKyAgICAgICAgICAgICAoaSAwICgrIGkgMSkp
KQorICAgICAgICAgICAgKChudWxsPyB0YWJsZXMpKQorICAgICAgICAgIChhbmQtbGV0KiAoKHRh
YmxlIChjYXIgdGFibGVzKSkpCisgICAgICAgICAgICAod2l0aC10ZXN0LXByZWZpeCAodGVzdC1z
dHItd2Vha25lc3MgKGZvcm1hdCAjZiAidGFibGUgfmEiIGkpIHdlYWtuZXNzKQorICAgICAgICAg
ICAgICAocGFzcy1pZiAoaGFzaHRhYmxlPyB0YWJsZSkpCisgICAgICAgICAgICAgIChwYXNzLWlm
LWVxdWFsICNmIChoYXNodGFibGUtaGFzaC1mdW5jdGlvbiB0YWJsZSkpCisgICAgICAgICAgICAg
IChwYXNzLWlmLWVxdWFsIGVxdj8gKGhhc2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJs
ZSkpCisgICAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIHdlYWtuZXNzIChoYXNodGFibGUtd2Vh
a25lc3MgdGFibGUpKQorICAgICAgICAgICAgICAocGFzcy1pZiAoaGFzaHRhYmxlLW11dGFibGU/
IHRhYmxlKSkpKSkpKQorCisgICAgKHdpdGgtdGVzdC1wcmVmaXggImVxdWFsIgorICAgICAgKGxl
dCAoKHRhYmxlcyAobGlzdCAoYW5kIChub3Qgd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1ha2UtaGFzaHRhYmxlIGVxdWFsLWhhc2ggZXF1YWw/KSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKG1ha2UtaGFzaHRhYmxlIGVxdWFsLWhhc2ggZXF1YWw/IDEwIHdl
YWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1oYXNodGFibGUgZXF1YWwt
aGFzaCBlcXVhbD8gI2Ygd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQg
KG5vdCB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmhh
c2h0YWJsZSBlcXVhbC1oYXNoIGVxdWFsPyAnKChhIC4gYikgKGMgLiBkKSkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAoYWxpc3QtPmhhc2h0YWJsZSBlcXVhbC1oYXNoIGVxdWFsPyAxMCB3
ZWFrbmVzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChh
IC4gYikgKGMgLiBkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC0+aGFzaHRh
YmxlIGVxdWFsLWhhc2ggZXF1YWw/ICNmIHdlYWtuZXNzCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICcoKGEgLiBiKSAoYyAuIGQpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGFuZCAobm90IHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYWtlLWhhc2h0YWJsZSAoY29ucyBlcXVhbC1oYXNoIGVxdWFsLWhhc2gpIGVxdWFs
PykpKSkpCisgICAgICAgIChkbyAoKHRhYmxlcyB0YWJsZXMgKGNkciB0YWJsZXMpKQorICAgICAg
ICAgICAgIChpIDAgKCsgaSAxKSkpCisgICAgICAgICAgICAoKG51bGw/IHRhYmxlcykpCisgICAg
ICAgICAgKGFuZC1sZXQqICgodGFibGUgKGNhciB0YWJsZXMpKSkKKyAgICAgICAgICAgICh3aXRo
LXRlc3QtcHJlZml4ICh0ZXN0LXN0ci13ZWFrbmVzcyAoZm9ybWF0ICNmICJ0YWJsZSB+YSIgaSkg
d2Vha25lc3MpCisgICAgICAgICAgICAgIChwYXNzLWlmIChoYXNodGFibGU/IHRhYmxlKSkKKyAg
ICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgZXF1YWwtaGFzaCAoaGFzaHRhYmxlLWhhc2gtZnVu
Y3Rpb24gdGFibGUpKQorICAgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbD8gKGhhc2h0
YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJsZSkpCisgICAgICAgICAgICAgIChwYXNzLWlm
LWVxdWFsIHdlYWtuZXNzIChoYXNodGFibGUtd2Vha25lc3MgdGFibGUpKQorICAgICAgICAgICAg
ICAocGFzcy1pZiAoaGFzaHRhYmxlLW11dGFibGU/IHRhYmxlKSkpKSkpKQorCisgICAgKHdpdGgt
dGVzdC1wcmVmaXggImFsaXN0IgorICAgICAgKGxldCAoKHRhYmxlcyAobGlzdCAoYW5kIChub3Qg
d2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFsaXN0LT5lcS1oYXNo
dGFibGUgJygoYSAuIGIpIChhIC4gYykpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGFu
ZCAobm90IHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC0+
ZXF2LWhhc2h0YWJsZSAnKChhIC4gYikgKGEgLiBjKSkpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYW5kIChub3Qgd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGFsaXN0LT5oYXNodGFibGUgZXF1YWwtaGFzaCBlcXVhbD8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChhIC4gYikgKGEgLiBjKSkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmVxLWhhc2h0YWJsZSAjZiB3ZWFrbmVzcyAnKChh
IC4gYikgKGEgLiBjKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC0+ZXF2LWhh
c2h0YWJsZSAjZiB3ZWFrbmVzcyAnKChhIC4gYikgKGEgLiBjKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChhbGlzdC0+aGFzaHRhYmxlIGVxdWFsLWhhc2ggZXF1YWw/ICNmIHdlYWtuZXNz
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKGEgLiBiKSAo
YSAuIGMpKSkpKSkKKyAgICAgICAgKGRvICgodGFibGVzIHRhYmxlcyAoY2RyIHRhYmxlcykpCisg
ICAgICAgICAgICAgKGkgMCAoKyBpIDEpKSkKKyAgICAgICAgICAgICgobnVsbD8gdGFibGVzKSkK
KyAgICAgICAgICAoYW5kLWxldCogKCh0YWJsZSAoY2FyIHRhYmxlcykpKQorICAgICAgICAgICAg
KHdpdGgtdGVzdC1wcmVmaXggKHRlc3Qtc3RyLXdlYWtuZXNzIChmb3JtYXQgI2YgInRhYmxlIH5h
IiBpKSB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgJ2IgKGhhc2h0YWJs
ZS1yZWYgdGFibGUgJ2EpKSkpKSkpCisKKyAgICAod2l0aC10ZXN0LXByZWZpeCAicHJvY2VkdXJl
cyIKKyAgICAgICh3aXRoLXRlc3QtcHJlZml4ICJiYXNpY3MiCisgICAgICAgIChsZXQgKCh0YWJs
ZSAobWFrZS1lcS1oYXNodGFibGUgI2Ygd2Vha25lc3MpKSkKKyAgICAgICAgICAod2l0aC10ZXN0
LXByZWZpeCAicmVmIgorICAgICAgICAgICAgKHBhc3MtaWYtZXhjZXB0aW9uICJrZXkgbm90IGZv
dW5kIgorICAgICAgICAgICAgICAgICcobWlzYy1lcnJvciAuICJeS2V5IG5vdCBpbiB0YWJsZSIp
CisgICAgICAgICAgICAgIChoYXNodGFibGUtcmVmIHRhYmxlICdhKSkKKyAgICAgICAgICAgIChw
YXNzLWlmLWVxdWFsICdiIChoYXNodGFibGUtcmVmIHRhYmxlICdhICdiKSkKKyAgICAgICAgICAg
IChwYXNzLWlmIChub3QgKGhhc2h0YWJsZS1jb250YWlucz8gdGFibGUgJ2EpKSkKKyAgICAgICAg
ICAgIChwYXNzLWlmLWVxdWFsIDAgKGhhc2h0YWJsZS1zaXplIHRhYmxlKSkpCisgICAgICAgICAg
KHdpdGgtdGVzdC1wcmVmaXggInNldCIKKyAgICAgICAgICAgIChoYXNodGFibGUtc2V0ISB0YWJs
ZSAnYSAnYykKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsICdjIChoYXNodGFibGUtcmVmIHRh
YmxlICdhKSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsICdjIChoYXNodGFibGUtcmVmIHRh
YmxlICdhICdiKSkKKyAgICAgICAgICAgIChwYXNzLWlmIChoYXNodGFibGUtY29udGFpbnM/IHRh
YmxlICdhKSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIDEgKGhhc2h0YWJsZS1zaXplIHRh
YmxlKSkpCisgICAgICAgICAgKHdpdGgtdGVzdC1wcmVmaXggImRlbGV0ZSIKKyAgICAgICAgICAg
IChoYXNodGFibGUtZGVsZXRlISB0YWJsZSAnYSkKKyAgICAgICAgICAgIChwYXNzLWlmLWV4Y2Vw
dGlvbiAia2V5IG5vdCBmb3VuZCIKKyAgICAgICAgICAgICAgICAnKG1pc2MtZXJyb3IgLiAiXktl
eSBub3QgaW4gdGFibGUiKQorICAgICAgICAgICAgICAoaGFzaHRhYmxlLXJlZiB0YWJsZSAnYSkp
CisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAnYiAoaGFzaHRhYmxlLXJlZiB0YWJsZSAnYSAn
YikpCisgICAgICAgICAgICAocGFzcy1pZiAobm90IChoYXNodGFibGUtY29udGFpbnM/IHRhYmxl
ICdhKSkpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAwIChoYXNodGFibGUtc2l6ZSB0YWJs
ZSkpKSkpKQorCisgICAgKHdpdGgtdGVzdC1wcmVmaXggImFkdmFuY2VkIgorICAgICAgKGxldCAo
KHRhYmxlIChtYWtlLWVxLWhhc2h0YWJsZSkpKQorICAgICAgICAod2l0aC10ZXN0LXByZWZpeCAi
bG9va3VwIgorICAgICAgICAgIChyZWNlaXZlICh4IGZvdW5kPykgKGhhc2h0YWJsZS1sb29rdXAg
dGFibGUgJ2EpCisgICAgICAgICAgICAocGFzcy1pZiAobm90IGZvdW5kPykpKSkKKyAgICAgICAg
KHdpdGgtdGVzdC1wcmVmaXggInVwZGF0ZSIKKyAgICAgICAgICAocGFzcy1pZi1leGNlcHRpb24g
ImtleSBub3QgZm91bmQiCisgICAgICAgICAgICAgICcobWlzYy1lcnJvciAuICJeS2V5IG5vdCBp
biB0YWJsZSIpCisgICAgICAgICAgICAoaGFzaHRhYmxlLXVwZGF0ZSEgdGFibGUgJ2EgKGxhbWJk
YSAoeCkgKCsgeCAxKSkpKQorICAgICAgICAgIChoYXNodGFibGUtdXBkYXRlISB0YWJsZSAnYSAo
bGFtYmRhICh4KSAoKyB4IDEpKSAwKQorICAgICAgICAgIChyZWNlaXZlICh4IGZvdW5kPykgKGhh
c2h0YWJsZS1sb29rdXAgdGFibGUgJ2EpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAxIHgp
CisgICAgICAgICAgICAocGFzcy1pZiBmb3VuZD8pKQorICAgICAgICAgIChoYXNodGFibGUtdXBk
YXRlISB0YWJsZSAnYSAobGFtYmRhICh4KSAoKyB4IDEpKSkKKyAgICAgICAgICAocmVjZWl2ZSAo
eCBmb3VuZD8pIChoYXNodGFibGUtbG9va3VwIHRhYmxlICdhKQorICAgICAgICAgICAgKHBhc3Mt
aWYtZXF1YWwgeCAyKQorICAgICAgICAgICAgKHBhc3MtaWYgZm91bmQ/KSkKKyAgICAgICAgICAo
aGFzaHRhYmxlLXVwZGF0ZSEgdGFibGUgJ2EgKGxhbWJkYSAoeCkgKCsgeCAxKSkgMCkKKyAgICAg
ICAgICAocmVjZWl2ZSAoeCBmb3VuZD8pIChoYXNodGFibGUtbG9va3VwIHRhYmxlICdhKQorICAg
ICAgICAgICAgKHBhc3MtaWYtZXF1YWwgeCAzKQorICAgICAgICAgICAgKHBhc3MtaWYgZm91bmQ/
KSkpCisgICAgICAgICh3aXRoLXRlc3QtcHJlZml4ICJpbnRlcm4iCisgICAgICAgICAgKHBhc3Mt
aWYtZXF1YWwgMCAoaGFzaHRhYmxlLWludGVybiEgdGFibGUgJ2IgKGxhbWJkYSAoKSAwKSkpCisg
ICAgICAgICAgKHBhc3MtaWYtZXF1YWwgMCAoaGFzaHRhYmxlLWludGVybiEgdGFibGUgJ2IgKGxh
bWJkYSAoKSAxKSkpKSkpCisKKyAgICAod2l0aC10ZXN0LXByZWZpeCAiY29weS9jbGVhciIKKyAg
ICAgIChsZXQgKCh0YWJsZSAoYWxpc3QtPmhhc2h0YWJsZSBlcXVhbC1oYXNoIGVxdWFsPyAjZiB3
ZWFrbmVzcyAnKChhIC4gYikpKSkpCisgICAgICAgICh3aXRoLXRlc3QtcHJlZml4ICJjb3B5Igor
ICAgICAgICAgIChsZXQgKCh0YWJsZTIgKGhhc2h0YWJsZS1jb3B5IHRhYmxlKSkpCisgICAgICAg
ICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbC1oYXNoIChoYXNodGFibGUtaGFzaC1mdW5jdGlvbiB0
YWJsZTIpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgZXF1YWw/IChoYXNodGFibGUtZXF1
aXZhbGVuY2UtZnVuY3Rpb24gdGFibGUyKSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsICdi
IChoYXNodGFibGUtcmVmIHRhYmxlMiAnYSkpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCB3
ZWFrbmVzcyAoaGFzaHRhYmxlLXdlYWtuZXNzIHRhYmxlMikpCisgICAgICAgICAgICAocGFzcy1p
Zi1leGNlcHRpb24gInNldCEgaW1tdXRhYmxlIHRhYmxlIgorICAgICAgICAgICAgICAgICcobWlz
Yy1lcnJvciAuICJeSGFzaCB0YWJsZSBpcyBub3QgbXV0YWJsZSIpCisgICAgICAgICAgICAgICho
YXNodGFibGUtc2V0ISB0YWJsZTIgJ2EgJ2MpKSkKKyAgICAgICAgICAobGV0ICgodGFibGUyICho
YXNodGFibGUtY29weSB0YWJsZSAjZikpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgZXF1
YWwtaGFzaCAoaGFzaHRhYmxlLWhhc2gtZnVuY3Rpb24gdGFibGUyKSkKKyAgICAgICAgICAgIChw
YXNzLWlmLWVxdWFsIGVxdWFsPyAoaGFzaHRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIHRhYmxl
MikpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAnYiAoaGFzaHRhYmxlLXJlZiB0YWJsZTIg
J2EpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgd2Vha25lc3MgKGhhc2h0YWJsZS13ZWFr
bmVzcyB0YWJsZTIpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXhjZXB0aW9uICJzZXQhIGltbXV0
YWJsZSB0YWJsZSIKKyAgICAgICAgICAgICAgICAnKG1pc2MtZXJyb3IgLiAiXkhhc2ggdGFibGUg
aXMgbm90IG11dGFibGUiKQorICAgICAgICAgICAgICAoaGFzaHRhYmxlLXNldCEgdGFibGUyICdh
ICdjKSkpCisgICAgICAgICAgKGxldCAoKHRhYmxlMiAoaGFzaHRhYmxlLWNvcHkgdGFibGUgI3Qp
KSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIGVxdWFsLWhhc2ggKGhhc2h0YWJsZS1oYXNo
LWZ1bmN0aW9uIHRhYmxlMikpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbD8gKGhh
c2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJsZTIpKQorICAgICAgICAgICAgKHBhc3Mt
aWYtZXF1YWwgJ2IgKGhhc2h0YWJsZS1yZWYgdGFibGUyICdhKSkKKyAgICAgICAgICAgIChwYXNz
LWlmLWVxdWFsIHdlYWtuZXNzIChoYXNodGFibGUtd2Vha25lc3MgdGFibGUyKSkKKyAgICAgICAg
ICAgIChoYXNodGFibGUtc2V0ISB0YWJsZTIgJ2EgJ2MpCisgICAgICAgICAgICAocGFzcy1pZi1l
cXVhbCAnYyAoaGFzaHRhYmxlLXJlZiB0YWJsZTIgJ2EpKSkKKyAgICAgICAgICAobGV0ICgodGFi
bGUyIChoYXNodGFibGUtY29weSB0YWJsZSAjZiAjZikpKQorICAgICAgICAgICAgKHBhc3MtaWYt
ZXF1YWwgZXF1YWwtaGFzaCAoaGFzaHRhYmxlLWhhc2gtZnVuY3Rpb24gdGFibGUyKSkKKyAgICAg
ICAgICAgIChwYXNzLWlmLWVxdWFsIGVxdWFsPyAoaGFzaHRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0
aW9uIHRhYmxlMikpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAjZiAoaGFzaHRhYmxlLXdl
YWtuZXNzIHRhYmxlMikpKSkKKworICAgICAgICAod2l0aC10ZXN0LXByZWZpeCAiY2xlYXIiCisg
ICAgICAgICAgKGxldCAoKHRhYmxlMiAoaGFzaHRhYmxlLWNvcHkgdGFibGUgI3QpKSkKKyAgICAg
ICAgICAgIChoYXNodGFibGUtY2xlYXIhIHRhYmxlMikKKyAgICAgICAgICAgIChwYXNzLWlmLWVx
dWFsIDAgKGhhc2h0YWJsZS1zaXplIHRhYmxlMikpKQorICAgICAgICAgIChsZXQgKCh0YWJsZTIg
KGhhc2h0YWJsZS1jb3B5IHRhYmxlICN0KSkpCisgICAgICAgICAgICAoaGFzaHRhYmxlLWNsZWFy
ISB0YWJsZTIgMTApCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAwIChoYXNodGFibGUtc2l6
ZSB0YWJsZTIpKSkpCisKKyAgICAgICAgKHdpdGgtdGVzdC1wcmVmaXggImVtcHR5LWNvcHkiCisg
ICAgICAgICAgKGxldCAoKHRhYmxlMiAoaGFzaHRhYmxlLWVtcHR5LWNvcHkgdGFibGUpKSkKKyAg
ICAgICAgICAgIChwYXNzLWlmLWVxdWFsIGVxdWFsLWhhc2ggKGhhc2h0YWJsZS1oYXNoLWZ1bmN0
aW9uIHRhYmxlMikpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbD8gKGhhc2h0YWJs
ZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJsZTIpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1
YWwgMCAoaGFzaHRhYmxlLXNpemUgdGFibGUyKSkpCisgICAgICAgICAgKGxldCAoKHRhYmxlMiAo
aGFzaHRhYmxlLWVtcHR5LWNvcHkgdGFibGUgMTApKSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVx
dWFsIGVxdWFsLWhhc2ggKGhhc2h0YWJsZS1oYXNoLWZ1bmN0aW9uIHRhYmxlMikpCisgICAgICAg
ICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbD8gKGhhc2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlv
biB0YWJsZTIpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgMCAoaGFzaHRhYmxlLXNpemUg
dGFibGUyKSkpKSkpCisKKyAgICAod2l0aC10ZXN0LXByZWZpeCAia2V5cy92YWx1ZXMiCisgICAg
ICAobGV0ICgodGFibGUgKGFsaXN0LT5lcS1oYXNodGFibGUgJygoYSAuIGIpIChjIC4gZCkpKSkp
CisgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhhIGMpICh2ZWN0b3ItPmxpc3QgKGhhc2h0
YWJsZS1rZXlzIHRhYmxlKSkpKQorICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICcoYiBkKSAo
dmVjdG9yLT5saXN0IChoYXNodGFibGUtdmFsdWVzIHRhYmxlKSkpKQorICAgICAgICAocmVjZWl2
ZSAoa2V5cyB2YWx1ZXMpIChoYXNodGFibGUtZW50cmllcyB0YWJsZSkKKyAgICAgICAgICAocGFz
cy1pZiAobHNldD0gZXE/ICcoYSBjKSAodmVjdG9yLT5saXN0IGtleXMpKSkKKyAgICAgICAgICAo
cGFzcy1pZiAobHNldD0gZXE/ICcoYiBkKSAodmVjdG9yLT5saXN0IHZhbHVlcykpKSkKKyAgICAg
ICAgKHBhc3MtaWYgKGxzZXQ9IGVxPyAnKGEgYykgKGhhc2h0YWJsZS1rZXktbGlzdCB0YWJsZSkp
KQorICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICcoYiBkKSAoaGFzaHRhYmxlLXZhbHVlLWxp
c3QgdGFibGUpKSkKKyAgICAgICAgKHJlY2VpdmUgKGtleXMgdmFsdWVzKSAoaGFzaHRhYmxlLWVu
dHJ5LWxpc3RzIHRhYmxlKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhhIGMpIGtl
eXMpKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhiIGQpIHZhbHVlcykpKSkpCisK
KyAgICAod2l0aC10ZXN0LXByZWZpeCAiaXRlcmF0aW9uIgorICAgICAgKHdpdGgtdGVzdC1wcmVm
aXggIndhbGsiCisgICAgICAgIChsZXQgKChrZXlzICcoKSkKKyAgICAgICAgICAgICAgKHZhbHVl
cyAnKCkpKQorICAgICAgICAgIChoYXNodGFibGUtd2FsayAoYWxpc3QtPmVxLWhhc2h0YWJsZSAn
KChhIC4gYikgKGMgLiBkKSkpCisgICAgICAgICAgICAobGFtYmRhIChrIHYpCisgICAgICAgICAg
ICAgIChzZXQhIGtleXMgKGNvbnMgayBrZXlzKSkKKyAgICAgICAgICAgICAgKHNldCEgdmFsdWVz
IChjb25zIHYgdmFsdWVzKSkpKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhhIGMp
IGtleXMpKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhiIGQpIHZhbHVlcykpKSkK
KworICAgICAgKHdpdGgtdGVzdC1wcmVmaXggInVwZGF0ZS1hbGwiCisgICAgICAgIChsZXQgKCh0
YWJsZSAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChhIC4gYikgKGMgLiBkKSkpKSkKKyAgICAgICAg
ICAoaGFzaHRhYmxlLXVwZGF0ZS1hbGwhIHRhYmxlCisgICAgICAgICAgICAobGFtYmRhIChrIHYp
CisgICAgICAgICAgICAgIChzdHJpbmctPnN5bWJvbCAoc3RyaW5nLWFwcGVuZCAoc3ltYm9sLT5z
dHJpbmcgdikgIngiKSkpKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhhIGMpICho
YXNodGFibGUta2V5LWxpc3QgdGFibGUpKSkKKyAgICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/
ICcoYnggZHgpIChoYXNodGFibGUtdmFsdWUtbGlzdCB0YWJsZSkpKSkpCisKKyAgICAgICh3aXRo
LXRlc3QtcHJlZml4ICJwcnVuZSIKKyAgICAgICAgKGxldCAoKHRhYmxlIChhbGlzdC0+ZXEtaGFz
aHRhYmxlICcoKGEgLiBiKSAoYyAuIGQpKSkpKQorICAgICAgICAgIChoYXNodGFibGUtcHJ1bmUh
IHRhYmxlIChsYW1iZGEgKGsgdikgKGVxPyBrICdhKSkpCisgICAgICAgICAgKHBhc3MtaWYgKG5v
dCAoaGFzaHRhYmxlLWNvbnRhaW5zPyB0YWJsZSAnYSkpKQorICAgICAgICAgIChwYXNzLWlmICho
YXNodGFibGUtY29udGFpbnM/IHRhYmxlICdjKSkpKQorCisgICAgICAod2l0aC10ZXN0LXByZWZp
eCAibWVyZ2UiCisgICAgICAgIChsZXQgKCh0YWJsZSAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChh
IC4gYikgKGMgLiBkKSkpKQorICAgICAgICAgICAgICAodGFibGUyIChhbGlzdC0+ZXEtaGFzaHRh
YmxlICcoKGEgLiB4KSAoZSAuIGYpKSkpKQorICAgICAgICAgIChoYXNodGFibGUtbWVyZ2UhIHRh
YmxlIHRhYmxlMikKKyAgICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICcoYSBjIGUpIChoYXNo
dGFibGUta2V5LWxpc3QgdGFibGUpKSkKKyAgICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICco
eCBkIGYpIChoYXNodGFibGUtdmFsdWUtbGlzdCB0YWJsZSkpKSkpCisKKyAgICAgICh3aXRoLXRl
c3QtcHJlZml4ICJzdW0iCisgICAgICAgIChsZXQgKCh0YWJsZSAoYWxpc3QtPmVxLWhhc2h0YWJs
ZSAnKChhIC4gYikgKGMgLiBkKSkpKSkKKyAgICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICco
YSBiIGMgZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h0YWJsZS1zdW0gdGFibGUg
JygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoayB2IGFjYykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsc2V0LWFkam9pbiBlcT8gYWNjIGsgdikpKSkpKSkK
KworICAgICAgKHdpdGgtdGVzdC1wcmVmaXggIm1hcC0+bHNldCIKKyAgICAgICAgKGxldCAoKHRh
YmxlIChhbGlzdC0+ZXEtaGFzaHRhYmxlICcoKGEgLiBiKSAoYyAuIGQpKSkpKQorICAgICAgICAg
IChwYXNzLWlmIChsc2V0PSBlcXVhbD8gJygoYSAuIGIpIChjIC4gZCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIChoYXNodGFibGUtbWFwLT5sc2V0IHRhYmxlIGNvbnMpKSkpKQorCisgICAg
ICAod2l0aC10ZXN0LXByZWZpeCAiZmluZCIKKyAgICAgICAgKGxldCAoKHRhYmxlIChhbGlzdC0+
ZXEtaGFzaHRhYmxlICcoKGEgLiBiKSAoYyAuIGQpKSkpKQorICAgICAgICAgIChyZWNlaXZlIChr
IHYgZj8pIChoYXNodGFibGUtZmluZCB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGxhbWJkYSAoayB2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXE/IGsg
J2EpKSkKKyAgICAgICAgICAgIChwYXNzLWlmIChhbmQgZj8gKGVxPyBrICdhKSAoZXE/IHYgJ2Ip
KSkpCisgICAgICAgICAgKHJlY2VpdmUgKGsgdiBmPykgKGhhc2h0YWJsZS1maW5kIHRhYmxlIChs
YW1iZGEgKGsgdikgI2YpKQorICAgICAgICAgICAgKHBhc3MtaWYgKG5vdCBmPykpKSkpCisKKyAg
ICAgICh3aXRoLXRlc3QtcHJlZml4ICJtaXNjIgorCisgICAgICAgICh3aXRoLXRlc3QtcHJlZml4
ICJlbXB0eT8iCisgICAgICAgICAgKHBhc3MtaWYgKGhhc2h0YWJsZS1lbXB0eT8gKGFsaXN0LT5l
cS1oYXNodGFibGUgJygpKSkpCisgICAgICAgICAgKHBhc3MtaWYgKG5vdCAoaGFzaHRhYmxlLWVt
cHR5PyAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChhIC4gYikpKSkpKSkKKworICAgICAgICAod2l0
aC10ZXN0LXByZWZpeCAicG9wISIKKyAgICAgICAgICAocGFzcy1pZi1leGNlcHRpb24gIiIKKyAg
ICAgICAgICAgICAgJyhtaXNjLWVycm9yIC4gIl5IYXNoIHRhYmxlIGlzIGVtcHR5IikKKyAgICAg
ICAgICAgIChoYXNodGFibGUtcG9wISAobWFrZS1lcS1oYXNodGFibGUpKSkKKyAgICAgICAgICAo
bGV0ICgodGFibGUgKGFsaXN0LT5lcS1oYXNodGFibGUgJygoYSAuIGIpKSkpKQorICAgICAgICAg
ICAgKHJlY2VpdmUgKGsgdikgKGhhc2h0YWJsZS1wb3AhIHRhYmxlKQorICAgICAgICAgICAgICAo
cGFzcy1pZi1lcXVhbCAnYSBrKQorICAgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAnYiB2KQor
ICAgICAgICAgICAgICAocGFzcy1pZiAoaGFzaHRhYmxlLWVtcHR5PyB0YWJsZSkpKSkpCisKKyAg
ICAgICAgKHdpdGgtdGVzdC1wcmVmaXggImluYyEiCisgICAgICAgICAgKGxldCAoKHRhYmxlIChh
bGlzdC0+ZXEtaGFzaHRhYmxlICcoKGEgLiAwKSkpKSkKKyAgICAgICAgICAgIChoYXNodGFibGUt
aW5jISB0YWJsZSAnYSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIDEgKGhhc2h0YWJsZS1y
ZWYgdGFibGUgJ2EpKQorICAgICAgICAgICAgKGhhc2h0YWJsZS1pbmMhIHRhYmxlICdhIDIpCisg
ICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAzIChoYXNodGFibGUtcmVmIHRhYmxlICdhKSkpKQor
CisgICAgICAgICh3aXRoLXRlc3QtcHJlZml4ICJkZWMhIgorICAgICAgICAgIChsZXQgKCh0YWJs
ZSAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChhIC4gMCkpKSkpCisgICAgICAgICAgICAoaGFzaHRh
YmxlLWRlYyEgdGFibGUgJ2EpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAtMSAoaGFzaHRh
YmxlLXJlZiB0YWJsZSAnYSkpCisgICAgICAgICAgICAoaGFzaHRhYmxlLWRlYyEgdGFibGUgJ2Eg
MikKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIC0zIChoYXNodGFibGUtcmVmIHRhYmxlICdh
KSkpKSkpCisKKyAgICAod2l0aC10ZXN0LXByZWZpeCAiaGFzaGluZyIKKyAgICAgIChwYXNzLWlm
IChleGFjdC1pbnRlZ2VyPyAoaGFzaC1zYWx0KSkpCisgICAgICAocGFzcy1pZiAobm90IChuZWdh
dGl2ZT8gKGhhc2gtc2FsdCkpKSkKKyAgICAgIChwYXNzLWlmICg9IChoYXNoLXNhbHQpIChoYXNo
LXNhbHQpKSkKKyAgICAgIChwYXNzLWlmICg9IChlcXVhbC1oYXNoIChsaXN0ICJmb28iICdiYXIg
NDIpKQorICAgICAgICAgICAgICAgICAgKGVxdWFsLWhhc2ggKGxpc3QgImZvbyIgJ2JhciA0Mikp
KSkKKyAgICAgIChwYXNzLWlmICg9IChzdHJpbmctaGFzaCAoc3RyaW5nLWNvcHkgImZvbyIpKQor
ICAgICAgICAgICAgICAgICAgKHN0cmluZy1oYXNoIChzdHJpbmctY29weSAiZm9vIikpKSkKKyAg
ICAgIChwYXNzLWlmICg9IChzdHJpbmctY2ktaGFzaCAoc3RyaW5nLWNvcHkgImZvbyIpKQorICAg
ICAgICAgICAgICAgICAgKHN0cmluZy1jaS1oYXNoIChzdHJpbmctY29weSAiRk9PIikpKSkKKyAg
ICAgIChwYXNzLWlmICg9IChzeW1ib2wtaGFzaCAoc3RyaW5nLT5zeW1ib2wgImZvbyIpKQorICAg
ICAgICAgICAgICAgICAgKHN5bWJvbC1oYXNoIChzdHJpbmctPnN5bWJvbCAiZm9vIikpKSkpCisg
ICAgKQorICApCi0tIAoyLjE5LjEKCg==
--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0002-Implemented-GENERIC-HASH-TABLES-module.patch"
Content-Disposition: attachment; 
	filename="0002-Implemented-GENERIC-HASH-TABLES-module.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofminu1>
X-Attachment-Id: f_jqofminu1

RnJvbSA0NzI1NmMwY2JmZjliMWNhNmUyNjhkNWQ0NDA3NjcxODA3ZWRjMjAyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjE6NTg6Mzcg
LTAyMDAKU3ViamVjdDogW1BBVENIIDIvNV0gSW1wbGVtZW50ZWQgR0VORVJJQy1IQVNILVRBQkxF
UyBtb2R1bGUuCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSB0byBpbnRlcm1l
ZGlhdGUgaGFzaCB0YWJsZXMgYW5kIGNhbgpiZSB1c2VkIHRvIGltcGxlbWVudCBTUkZJLTY5LCBT
UkZJLTEyNSwgU1JGSS0xMjYgYW5kIFI2UlMgaGFzaCB0YWJsZQpsaWJyYXJpZXMuIFRoYXQgd2F5
LCB3ZSBhdm9pZCBkdXBsaWNhdGlvbiBvZiBjb2RlLCBtaXNzaW5nIGZlYXR1cmVzIGFuZAppbmNv
bXBhdGliaWxpdGllcy4gSXQgcmV1c2VzIGN1cnJlbnQgU1JGSS02OSBjb2RlIGFuZCBpdHMgcHJv
Y2VkdXJlcyBhcmUKbW9zdGx5IGJhc2VkIG9uIFNSRkktMTI1IHNwZWNpZmljYXRpb25zIHdpdGgg
c29tZSBjaGFuZ2VzLiBJdCBkb2VzIG5vdApkZXBlbmQgb24gU1JGSS0xMjg6IGluc3RlYWQgb2Yg
dXNpbmcgY29tcGFyYXRvcnMsIHRoZSBwcm9jZWR1cmVzIGFjY2VwdAp0aGUgc2FtZSBhcmd1bWVu
dHMgdGhhdCBhcmUgYWNjZXB0ZWQgYnkgTUFLRS1IQVNILVRBQkxFLiBUaGUgd2Vha25lc3MKYXJn
dW1lbnQgaXMgYXMgc3BlY2lmaWVkIGJ5IFNSRkkgMTI2LgotLS0KIG1vZHVsZS9NYWtlZmlsZS5h
bSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIG1vZHVsZS9pY2UtOS9nZW5lcmljLWhh
c2gtdGFibGVzLnNjbSAgICAgIHwgOTE1ICsrKysrKysrKysrKysrKysrKysrKysKIHRlc3Qtc3Vp
dGUvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHRlc3Qtc3VpdGUvdGVz
dHMvZ2VuZXJpYy1oYXNoLXRhYmxlcy50ZXN0IHwgNDE1ICsrKysrKysrKysKIDQgZmlsZXMgY2hh
bmdlZCwgMTMzMiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbW9kdWxlL2ljZS05
L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC1zdWl0ZS90
ZXN0cy9nZW5lcmljLWhhc2gtdGFibGVzLnRlc3QKCmRpZmYgLS1naXQgYS9tb2R1bGUvTWFrZWZp
bGUuYW0gYi9tb2R1bGUvTWFrZWZpbGUuYW0KaW5kZXggYzcyZmI5MjI4Li42ZGJhODdjZTggMTAw
NjQ0Ci0tLSBhL21vZHVsZS9NYWtlZmlsZS5hbQorKysgYi9tb2R1bGUvTWFrZWZpbGUuYW0KQEAg
LTY2LDYgKzY2LDcgQEAgU09VUkNFUyA9CQkJCQlcCiAgIGljZS05L2Z1dHVyZXMuc2NtCQkJCVwK
ICAgaWNlLTkvZ2FwLWJ1ZmZlci5zY20JCQkJXAogICBpY2UtOS9nZXRvcHQtbG9uZy5zY20JCQkJ
XAorICBpY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNjbSAgICAgICAgICAgICAgICAgXAogICBp
Y2UtOS9oYXNoLXRhYmxlLnNjbQkJCQlcCiAgIGljZS05L2hjb25zLnNjbQkJCQlcCiAgIGljZS05
L2hpc3Rvcnkuc2NtCQkJCVwKZGlmZiAtLWdpdCBhL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gt
dGFibGVzLnNjbSBiL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNjbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjAzM2MzZWNkYQotLS0gL2Rldi9udWxsCisr
KyBiL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNjbQpAQCAtMCwwICsxLDkxNSBA
QAorOzs7IGdlbmVyaWMtaGFzaC10YWJsZXMuc2NtIC0tLSBJbnRlcm1lZGlhdGUgaGFzaCB0YWJs
ZXMKKworOzsgCUNvcHlyaWdodCAoQykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4KKzs7Cis7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCis7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKzs7IHZlcnNpb24gMyBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7Cis7OyBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
Kzs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorOzsgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKzs7Cis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCis7OyBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B
IDAyMTEwLTEzMDEgVVNBCisMCisKKzs7OzsgQ29tbWVudGFyeSBieSBKZXNzaWNhIE1pbGFyZSAy
MDE4CisKKzs7IFRoaXMgaW1wbGVtZW50YXRpb24gd2FzIGNyZWF0ZWQgb24gdG9wIG9mIFNSRkkt
NjkgKG9sZCkgR3VpbGUgY29kZSwKKzs7IGV4dGVuZGluZyBpdCB0byBzdXBwb3J0IFNSRkktMTI1
IHNwZWNpZmljYXRpb25zIGFuZCBpbnRlbmRlZCB0byBiZQorOzsgdXNlZCBieSBTUkZJLTY5LCBT
UkZJLTEyNSwgU1JGSS0xMjYgYW5kIFI2UlMuIE9uZSBzaW5nbGUgaGFzaCB0YWJsZXMKKzs7IGlt
cGxlbWVudGF0aW9uIGNvdWxkIGJlIGV4cG9ydGVkIHRvIGFsbCBvZiB0aGVzZSBsaWJyYXJpZXMs
IGF2b2lkaW5nCis7OyBkdXBsaWNhdGlvbiBvZiBjb2RlLCBtaXNzaW5nIGZlYXR1cmVzIGFuZCBp
bmNvbXBhdGliaWxpdGllcy4KKzs7Cis7OyBIYXNoIHRhYmxlcyBoZXJlIGhhdmUgMiBoYXNoIGZ1
bmN0aW9ucywgb25lIGludGVybmFsICh0aGF0IGlzIHVzZWQgYnkKKzs7IEd1aWxlKSBhbmQgb25l
IGV4dGVybmFsICh0aGF0IGlzIHJldHVybmVkIGJ5IGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbiku
Cis7OyBJbnRlcm5hbCBoYXNoIGZ1bmN0aW9ucyBhY2NlcHRzIHR3byBhcmd1bWVudHMsIHdoaWxl
IGV4dGVybmFsIGZ1bmN0aW9ucworOzsgYWNjZXB0IG9uZSBhcmd1bWVudCAoYW5kIHBvc3NpYmx5
IG1vcmUgb3B0aW9uYWwgYXJndW1lbnRzKS4KKworOzs7IENvZGU6CisMCis7Ozs7IE1vZHVsZSBk
ZWZpbml0aW9uICYgZXhwb3J0cworCisoZGVmaW5lLW1vZHVsZSAoaWNlLTkgZ2VuZXJpYy1oYXNo
LXRhYmxlcykKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkJO2FsaXN0LWNvbnMsc2Vjb25k
JmMsYXNzb2MKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktOCkgICAgO3JlY2VpdmUKKyAgIzp1
c2UtbW9kdWxlIChzcmZpIHNyZmktOSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktOSBnbnUp
CisgICM6dXNlLW1vZHVsZSAoaWNlLTkgZm9ybWF0KQorICAjOmV4cG9ydCAoOzsgVHlwZSBjb25z
dHJ1Y3RvcnMgJiBwcmVkaWNhdGUKKwkgICAgbWFrZS1oYXNoLXRhYmxlCisgICAgICAgICAgICBo
YXNoLXRhYmxlPyBoYXNoLXRhYmxlIGhhc2gtdGFibGUtdW5mb2xkIGFsaXN0LT5oYXNoLXRhYmxl
CisgICAgICAgICAgICA7OyBSZWZsZWN0aXZlIHF1ZXJpZXMKKyAgICAgICAgICAgIGhhc2gtdGFi
bGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uCisgICAgICAg
ICAgICBoYXNoLXRhYmxlLXdlYWtuZXNzIGhhc2gtdGFibGUta2V5LXdlYWtuZXNzIGhhc2gtdGFi
bGUtdmFsdWUtd2Vha25lc3MKKyAgICAgICAgICAgIDs7IFByZWRpY2F0ZXMKKyAgICAgICAgICAg
IGhhc2gtdGFibGUtbXV0YWJsZT8gaGFzaC10YWJsZS1jb250YWlucz8KKyAgICAgICAgICAgIGhh
c2gtdGFibGUtZW1wdHk/IGhhc2gtdGFibGU9PworICAgICAgICAgICAgOzsgQWNjZXNzb3JzCisg
ICAgICAgICAgICBoYXNoLXRhYmxlLXJlZiBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0CisgICAgICAg
ICAgICA7OyBNdXRhdG9ycworICAgICAgICAgICAgaGFzaC10YWJsZS1zZXQhIGhhc2gtdGFibGUt
c2V0LXNpbmdsZSEKKyAgICAgICAgICAgIGhhc2gtdGFibGUtZGVsZXRlISBoYXNoLXRhYmxlLWRl
bGV0ZS1zaW5nbGUhCisgICAgICAgICAgICBoYXNoLXRhYmxlLWludGVybiEgaGFzaC10YWJsZS1p
bnRlcm4hL2RlZmF1bHQKKyAgICAgICAgICAgIGhhc2gtdGFibGUtdXBkYXRlISBoYXNoLXRhYmxl
LXVwZGF0ZSEvZGVmYXVsdAorICAgICAgICAgICAgaGFzaC10YWJsZS1wb3AhIGhhc2gtdGFibGUt
Y2xlYXIhCisgICAgICAgICAgICA7OyBUaGUgd2hvbGUgaGFzaCB0YWJsZQorICAgICAgICAgICAg
aGFzaC10YWJsZS1zaXplIGhhc2gtdGFibGUtZmluZCBoYXNoLXRhYmxlLWNvdW50CisgICAgICAg
ICAgICBoYXNoLXRhYmxlLWtleXMgaGFzaC10YWJsZS12YWx1ZXMgaGFzaC10YWJsZS1lbnRyaWVz
CisgICAgICAgICAgICBoYXNoLXRhYmxlLWtleS12ZWN0b3IgaGFzaC10YWJsZS12YWx1ZS12ZWN0
b3IgaGFzaC10YWJsZS1lbnRyeS12ZWN0b3JzCisgICAgICAgICAgICA7OyBNYXBwaW5nIGFuZCBm
b2xkaW5nCisgICAgICAgICAgICBoYXNoLXRhYmxlLW1hcCBoYXNoLXRhYmxlLWZvci1lYWNoIGhh
c2gtdGFibGUtbWFwISBoYXNoLXRhYmxlLW1hcC0+bGlzdAorICAgICAgICAgICAgaGFzaC10YWJs
ZS1mb2xkIGhhc2gtdGFibGUtcHJ1bmUhCisgICAgICAgICAgICA7OyBDb3B5aW5nCisgICAgICAg
ICAgICBoYXNoLXRhYmxlLWNvcHkgaGFzaC10YWJsZS1lbXB0eS1jb3B5CisgICAgICAgICAgICA7
OyBDb252ZXJzaW9uCisgICAgICAgICAgICBoYXNoLXRhYmxlLT5hbGlzdAorICAgICAgICAgICAg
OzsgSGFzaCB0YWJsZXMgYXMgc2V0cworICAgICAgICAgICAgaGFzaC10YWJsZS11bmlvbiEgaGFz
aC10YWJsZS1pbnRlcnNlY3Rpb24hIGhhc2gtdGFibGUtZGlmZmVyZW5jZSEKKyAgICAgICAgICAg
IGhhc2gtdGFibGUteG9yIQorICAgICAgICAgICAgOzsgSGFzaGluZworICAgICAgICAgICAgc3Ry
aW5nLWNpLWhhc2ggaGFzaC1ieS1pZGVudGl0eSBoYXNoLWJ5LXZhbHVlIGhhc2gpCisgICM6cmUt
ZXhwb3J0IChzdHJpbmctaGFzaCkKKyAgIzpyZXBsYWNlIChoYXNoIG1ha2UtaGFzaC10YWJsZSBo
YXNoLXRhYmxlPykpCisKKwwKKzs7OzsgSW50ZXJuYWwgaGVscGVyIG1hY3JvcworCis7OyBEZWZp
bmUgdGhlc2UgZmlyc3QsIHNvIHRoZSBjb21waWxlciB3aWxsIHBpY2sgdGhlbSB1cC4KKworOzsg
SSBhbSBhIG1hY3JvIG9ubHkgZm9yIGVmZmljaWVuY3ksIHRvIGF2b2lkIHZhcmFyZ3MvYXBwbHku
CisoZGVmaW5lLW1hY3JvIChoYXNoeC1pbnZva2UgaGFzaHgtcHJvYyBodC12YXIgLiBhcmdzKQor
ICAiSW52b2tlIEhBU0hYLVBST0MsIGEgYGhhc2h4LSonIHByb2NlZHVyZSB0YWtpbmcgYSBoYXNo
LWZ1bmN0aW9uLAorYXNzb2MtZnVuY3Rpb24sIGFuZCB0aGUgaGFzaC10YWJsZSBhcyBmaXJzdCBh
cmdzLiIKKyAgYCgsaGFzaHgtcHJvYyAoaHQtaGFzaC1mdW5jdGlvbiAsaHQtdmFyKQorCQkoaHQt
YXNzb2NpYXRvciAsaHQtdmFyKQorCQkoaHQtcmVhbC10YWJsZSAsaHQtdmFyKQorCQkuICxhcmdz
KSkKKworKGRlZmluZS1tYWNybyAod2l0aC1oYXNoeC12YWx1ZXMgYmluZGluZ3MgaHQtdmFyIC4g
Ym9keS1mb3JtcykKKyAgIkJpbmQgQklORElOR1MgdG8gdGhlIGhhc2gtZnVuY3Rpb24sIGFzc29j
aWF0b3IsIGFuZCByZWFsLXRhYmxlIG9mCitIVC1WQVIsIHdoaWxlIGV2YWx1YXRpbmcgQk9EWS1G
T1JNUy4iCisgIGAobGV0ICgoLCh0aGlyZCBiaW5kaW5ncykgKGh0LXJlYWwtdGFibGUgLGh0LXZh
cikpCisgICAgICAgICAoLChmaXJzdCBiaW5kaW5ncykgKGh0LWhhc2gtZnVuY3Rpb24gLGh0LXZh
cikpCisJICgsKHNlY29uZCBiaW5kaW5ncykgKGh0LWFzc29jaWF0b3IgLGh0LXZhcikpKQorICAg
ICAuICxib2R5LWZvcm1zKSkKKworKGRlZmluZS1zeW50YXggYXNzZXJ0LW11dGFibGUKKyAgKHN5
bnRheC1ydWxlcyAoKQorICAgICgoYXNzZXJ0LW11dGFibGUgaHQpCisgICAgIChvciAoaGFzaC10
YWJsZS1tdXRhYmxlPyBodCkKKyAgICAgICAgIChlcnJvciAiSGFzaCB0YWJsZSBpcyBub3QgbXV0
YWJsZSIgaHQpKSkpKQorCisMCis7Ozs7IEhhc2hpbmcKKworOzs7IFNSRkktMTI1IGFuZCBSNlJT
IGhhc2ggZnVuY3Rpb25zIGFyZSBzdXBwb3NlZCB0byBhY2NlcHQgb25seSBvbmUKKzs7OyBhcmd1
bWVudCwgYnV0IEd1aWxlIHN0YW5kYXJkIGhhc2ggdGFibGVzIG5lZWRzIHR3byBhcmdzLgorOzs7
IFRoZXJlZm9yZSwgdGhlIGhhc2ggZnVuY3Rpb25zIGluc2lkZSB0aGUgaGFzaCB0YWJsZSBhbHdh
eXMgYWNjZXB0cworOzs7IG9uZSAocmVxdWlyZWQpIGFyZ3VtZW50IGFuZCBhdCBsZWFzdCBvbmUg
cG9zc2libGUgYXJndW1lbnQsIHdoaWNoCis7OzsgbXVzdCBiZSBhIGZpeG51bS4KKworOzs7IFRo
ZSBsYXJnZXN0IGZpeG51bSBpcyBpbiBgbW9zdC1wb3NpdGl2ZS1maXhudW0nIGluIG1vZHVsZSAo
Z3VpbGUpLAorOzs7IHRob3VnaCBub3QgZG9jdW1lbnRlZCBhbnl3aGVyZSBidXQgbGliZ3VpbGUv
bnVtYmVycy5jLgorCisoZGVmaW5lIChjYWxsZXItd2l0aC1kZWZhdWx0LXNpemUgaGFzaC1mbikK
KyAgIkFuc3dlciBhIGZ1bmN0aW9uIHRoYXQgbWFrZXMgYG1vc3QtcG9zaXRpdmUtZml4bnVtJyB0
aGUgZGVmYXVsdAorc2Vjb25kIGFyZ3VtZW50IHRvIEhBU0gtRk4sIGEgMi1hcmcgcHJvY2VkdXJl
LiIKKyAgKGxhbWJkYSogKG9iaiAjOm9wdGlvbmFsIChzaXplIG1vc3QtcG9zaXRpdmUtZml4bnVt
KSkKKyAgICAoaGFzaC1mbiBvYmogc2l6ZSkpKQorCisoZGVmaW5lIGhhc2ggKGNhbGxlci13aXRo
LWRlZmF1bHQtc2l6ZSAoQCAoZ3VpbGUpIGhhc2gpKSkKKworKGRlZmluZSBzdHJpbmctY2ktaGFz
aCBzdHJpbmctaGFzaC1jaSkKKworKGRlZmluZSBoYXNoLWJ5LWlkZW50aXR5IChjYWxsZXItd2l0
aC1kZWZhdWx0LXNpemUgaGFzaHEpKQorKGRlZmluZSBoYXNoLWJ5LXZhbHVlICAgIChjYWxsZXIt
d2l0aC1kZWZhdWx0LXNpemUgaGFzaHYpKQorCisoZGVmaW5lICh3cmFwLWhhc2gtZnVuY3Rpb24g
aGFzaC1mdW5jdGlvbikKKyAgKGxhbWJkYSogKG9iaiBzaXplKQorICAgIChtb2R1bG8gKGhhc2gt
ZnVuY3Rpb24gb2JqKSBzaXplKSkpCisKKwwKKzs7OzsgUmVmbGVjdGl2ZSBxdWVyaWVzLCBjb25z
dHJ1Y3Rpb24sIHByZWRpY2F0ZQorCisoZGVmaW5lIChnZXQtaGFzaC1mdW5jdGlvbnMgZXF1aXYt
ZnVuY3Rpb24gaGFzaC1mdW5jdGlvbikKKyAgIlJldHVybnMgYW4gaW50ZXJuYWwgYW5kIGFuIGV4
dGVybmFsIGhhc2ggZnVuY3Rpb24uIgorICAoY29uZAorICAgKGhhc2gtZnVuY3Rpb24gKGNvbmQK
KyAgICAgICAgICAgICAgICAgICA7OyBTUkZJLTY5IHNob3VsZCBnaXZlIEhBU0ggYXMgZGVmYXVs
dCBoYXNoLWZ1bmN0aW9uLgorICAgICAgICAgICAgICAgICAgICgob3IgKGVxPyAoQCAoZ3VpbGUp
IGhhc2gpIGhhc2gtZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAoZXE/IGhhc2gg
aGFzaC1mdW5jdGlvbikpCisgICAgICAgICAgICAgICAgICAgICh2YWx1ZXMgKEAgKGd1aWxlKSBo
YXNoKSBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICA7OyBUaGVzZSBwcm9jZWR1
cmVzIGRvbid0IG5lZWQgdG8gYmUgd3JhcHBlZC4KKyAgICAgICAgICAgICAgICAgICAoKG9yIChl
cT8gc3RyaW5nLWhhc2ggaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIChl
cT8gc3RyaW5nLWNpLWhhc2ggaGFzaC1mdW5jdGlvbikpCisgICAgICAgICAgICAgICAgICAgICh2
YWx1ZXMgaGFzaC1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAo
KG9yIChlcT8gaGFzaHEgaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIChl
cT8gaGFzaC1ieS1pZGVudGl0eSBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAg
KHZhbHVlcyBoYXNocSBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAoKG9yIChl
cT8gaGFzaHYgaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIChlcT8gaGFz
aC1ieS12YWx1ZSBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAgKHZhbHVlcyBo
YXNodiBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICA7OyBPdGhlcndpc2UsIHdy
YXAgdGhlIGdpdmVuIGZ1bmN0aW9uLgorICAgICAgICAgICAgICAgICAgIChlbHNlICh2YWx1ZXMg
KHdyYXAtaGFzaC1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSBoYXNoLWZ1bmN0aW9uKSkpKQorICAg
KChlcT8gZXF1YWw/IGVxdWl2LWZ1bmN0aW9uKSAodmFsdWVzIChAIChndWlsZSkgaGFzaCkgaGFz
aCkpCisgICAoKGVxPyBlcT8gZXF1aXYtZnVuY3Rpb24pICh2YWx1ZXMgaGFzaHEgaGFzaC1ieS1p
ZGVudGl0eSkpCisgICAoKGVxPyBlcXY/IGVxdWl2LWZ1bmN0aW9uKSAodmFsdWVzIGhhc2h2IGhh
c2gtYnktdmFsdWUpKQorICAgKChlcT8gc3RyaW5nPT8gZXF1aXYtZnVuY3Rpb24pICh2YWx1ZXMg
c3RyaW5nLWhhc2ggc3RyaW5nLWhhc2gpKQorICAgKChlcT8gc3RyaW5nLWNpPT8gZXF1aXYtZnVu
Y3Rpb24pICh2YWx1ZXMgc3RyaW5nLWNpLWhhc2ggc3RyaW5nLWNpLWhhc2gpKQorICAgKGVsc2Ug
KGVycm9yICJBIHN1aXRhYmxlIGhhc2ggZnVuY3Rpb24gY291bGQgbm90IGJlIGRldGVybWluZWQi
IGVxdWl2LWZ1bmN0aW9uKSkpKQorCisoZGVmaW5lIChndWlsZS1odC1jdG9yIHdlYWtuZXNzKQor
ICAiQW5zd2VyIHRoZSBHdWlsZSBIVCBjb25zdHJ1Y3RvciBmb3IgdGhlIGdpdmVuIFdFQUtORVNT
LCB3aGVyZQorV0VBS05FU1MgaXMgYXMgc3BlY2lmaWVkIGJ5IFNSRkktMTI2LiIKKyAgKGNhc2Ug
d2Vha25lc3MKKyAgICAoKCNmKSAoQCAoZ3VpbGUpIG1ha2UtaGFzaC10YWJsZSkpCisgICAgKCh3
ZWFrLWtleSkgbWFrZS13ZWFrLWtleS1oYXNoLXRhYmxlKQorICAgICgod2Vhay12YWx1ZSkgbWFr
ZS13ZWFrLXZhbHVlLWhhc2gtdGFibGUpCisgICAgKCh3ZWFrLWtleS1hbmQtdmFsdWUpIG1ha2Ut
ZG91Ymx5LXdlYWstaGFzaC10YWJsZSkKKyAgICAoKGVwaGVtZXJhbC1rZXkgZXBoZW1lcmFsLXZh
bHVlIGVwaGVtZXJhbC1rZXktYW5kLXZhbHVlKQorICAgICAoZXJyb3IgIlVuc3VwcG9ydGVkIGhh
c2ggdGFibGUgd2Vha25lc3MiIHdlYWtuZXNzKSkKKyAgICAoZWxzZSAoZXJyb3IgIkludmFsaWQg
aGFzaCB0YWJsZSB3ZWFrbmVzcyIgd2Vha25lc3MpKSkpCisKKyhkZWZpbmUgKGVxdWl2YWxlbmNl
LXByb2MtPmFzc29jaWF0b3IgZXF1aXYtZnVuY3Rpb24pCisgICJBbnN3ZXIgYW4gYGFzc29jJy1s
aWtlIHByb2NlZHVyZSB0aGF0IGNvbXBhcmVzIHRoZSBhcmd1bWVudCBrZXkgdG8KK2FsaXN0IGtl
eXMgd2l0aCBFUVVJVi1GVU5DVElPTi4iCisgIChjb25kICgob3IgKGVxPyBlcXVhbD8gZXF1aXYt
ZnVuY3Rpb24pCisJICAgICAoZXE/IHN0cmluZz0/IGVxdWl2LWZ1bmN0aW9uKSkgKEAgKGd1aWxl
KSBhc3NvYykpCisJKChlcT8gZXE/IGVxdWl2LWZ1bmN0aW9uKSBhc3NxKQorCSgoZXE/IGVxdj8g
ZXF1aXYtZnVuY3Rpb24pIGFzc3YpCisJKGVsc2UgKGxhbWJkYSAoaXRlbSBhbGlzdCkKKwkJKGFz
c29jIGl0ZW0gYWxpc3QgZXF1aXYtZnVuY3Rpb24pKSkpKQorCisoZGVmaW5lLXJlY29yZC10eXBl
IGdlbmVyaWMtaGFzaC10YWJsZQorICAobWFrZS1nZW5lcmljLWhhc2gtdGFibGUgcmVhbC10YWJs
ZSBoYXNoLWZ1bmN0aW9uIGFzc29jaWF0b3Igd2Vha25lc3MKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG11dGFibGU/IHNpemUgZXF1aXZhbGVuY2UtZnVuY3Rpb24gb3JpZ2luYWwtaGFzaC1m
dW5jdGlvbikKKyAgaGFzaC10YWJsZT8KKyAgOzsgVGhlc2UgdGhyZWUgYXJlIHRoZSBtb3N0IGFj
Y2Vzc2VkIGZpZWxkcy4KKyAgKHJlYWwtdGFibGUgaHQtcmVhbC10YWJsZSBodC1yZWFsLXRhYmxl
ISkKKyAgKGhhc2gtZnVuY3Rpb24gaHQtaGFzaC1mdW5jdGlvbikKKyAgKGFzc29jaWF0b3IgaHQt
YXNzb2NpYXRvcikKKyAgOzsgV2VhayBoYXNoIHRhYmxlcyBkb24ndCB1c2UgaGFuZGxlcyBhbmQg
ZG9uJ3QgdXBkYXRlIGh0LXNpemUuCisgICh3ZWFrbmVzcyBodC13ZWFrbmVzcykKKyAgOzsgU3Vw
cG9ydHMgaW1tdXRhYmlsaXR5LgorICAobXV0YWJsZT8gaGFzaC10YWJsZS1tdXRhYmxlPykKKyAg
OzsgU2l6ZSBvZiBoYXNoLXRhYmxlLCBhbGxvd2luZyBPKDEpIGhhc2gtdGFibGUtc2l6ZSBmb3IK
KyAgOzsgbm9uLXdlYWsgaGFzaCB0YWJsZXMuCisgIChzaXplIGh0LXNpemUgaHQtc2l6ZSEpCisg
IDs7IFRoZXNlIGFyZSBtb3N0bHkgbmVlZGVkIGZvciByZWZsZWN0aXZlIHF1ZXJpZXMKKyAgKGVx
dWl2YWxlbmNlLWZ1bmN0aW9uIGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24pCisgIChv
cmlnaW5hbC1oYXNoLWZ1bmN0aW9uIGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbikpCisKKzs7IFNo
b3cgc29tZSBpbmZvcm1hdGlvbnMuCisoZGVmaW5lIChwcmludC1oYXNoLXRhYmxlIGh0IHBvcnQp
CisgIChsZXQgKChlcXVpdi1uYW1lIChwcm9jZWR1cmUtbmFtZSAoaGFzaC10YWJsZS1lcXVpdmFs
ZW5jZS1mdW5jdGlvbiBodCkpKSkKKyAgICAoZm9ybWF0IHBvcnQgIiM8Z2VuZXJpYy1oYXNoLXRh
YmxlIH5AW35hIH5dfkBbfmEgfl1zaXplOiB+YSBtdXRhYmxlPyB+YT4iCisgICAgICAgICAgICBl
cXVpdi1uYW1lIChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgICAgIChoYXNoLXRhYmxlLXNpemUg
aHQpIChoYXNoLXRhYmxlLW11dGFibGU/IGh0KSkpKQorCisoc2V0LXJlY29yZC10eXBlLXByaW50
ZXIhIGdlbmVyaWMtaGFzaC10YWJsZSBwcmludC1oYXNoLXRhYmxlKQorCisoZGVmaW5lIChoYXNo
LXRhYmxlLWtleS13ZWFrbmVzcyBodCkKKyAgIlJldHVybnMgV0VBSy1LRVlTIGlmIEhUIGhhcyB3
ZWFrIGtleXMsIG9yICNmIG90aGVyd2lzZS4iCisgIDs7IElmIEd1aWxlIGV2ZXIgc3VwcG9ydHMg
ZXBoZW1lcmFsIGtleXMsIHRoaXMgcHJvY2VkdXJlIHNob3VsZAorICA7OyByZXR1cm4gRVBIRU1F
UkFMLUtFWVMgaWYgdGhlIEhUIGtleXMgYXJlIGVwaGVtZXJhbC4KKyAgKGNhc2UgKGh0LXdlYWtu
ZXNzIGh0KQorICAgICgoI2Ygd2Vhay12YWx1ZSkgI2YpCisgICAgKCh3ZWFrLWtleSB3ZWFrLWtl
eS1hbmQtdmFsdWUpICd3ZWFrLWtleXMpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS12YWx1ZS13
ZWFrbmVzcyBodCkKKyAgIlJldHVybnMgV0VBSy1WQUxVRVMgaWYgSFQgaGFzIHdlYWsgdmFsdWVz
LCBvciAjZiBvdGhlcndpc2UuIgorICA7OyBJZiBHdWlsZSBldmVyIHN1cHBvcnRzIGVwaGVtZXJh
bCB2YWx1ZXMsIHRoaXMgcHJvY2VkdXJlIHNob3VsZAorICA7OyByZXR1cm4gRVBIRU1FUkFMLVZB
TFVFUyBpZiB0aGUgSFQgdmFsdWVzIGFyZSBlcGhlbWVyYWwuCisgIChjYXNlIChodC13ZWFrbmVz
cyBodCkKKyAgICAoKCNmIHdlYWsta2V5KSAjZikKKyAgICAoKHdlYWstdmFsdWUgd2Vhay1rZXkt
YW5kLXZhbHVlKSAnd2Vhay12YWx1ZXMpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS13ZWFrbmVz
cyBodCkKKyAgIlJldHVybiB0aGUgd2Vha25lc3Mgb2YgSFQgYWNjb3JkaW5nIHRvIFNSRkktMTI2
IHNwZWMuIgorICAoaHQtd2Vha25lc3MgaHQpKQorCis7OyBUaGlzIGludGVybmFsIGZ1bmN0aW9u
IGFsbG93cyB1cyB0byBjcmVhdGUgaW1tdXRhYmxlIGhhc2ggdGFibGVzCisoZGVmaW5lICglbWFr
ZS1oYXNoLXRhYmxlIGVxdWl2LWZ1bmN0aW9uIGhhc2gtZnVuY3Rpb24gbXV0YWJsZSBjYXBhY2l0
eSB3ZWFrbmVzcykKKyAgKHJlY2VpdmUgKGludGVybmFsLWhhc2gtZnVuY3Rpb24gaGFzaC1mdW5j
dGlvbikKKyAgICAgIChnZXQtaGFzaC1mdW5jdGlvbnMgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5j
dGlvbikKKyAgICAobGV0ICgocmVhbC10YWJsZSAoKGd1aWxlLWh0LWN0b3Igd2Vha25lc3MpIGNh
cGFjaXR5KSkpCisgICAgICA7OyBBcmd1bWVudHM6IHJlYWwtdGFibGUgaGFzaC1mdW5jdGlvbiBh
c3NvY2lhdG9yCisgICAgICA7OyAgICAgICAgICAgIHdlYWtuZXNzIG11dGFibGU/IHNpemUgZXF1
aXZhbGVuY2UtZnVuY3Rpb24gb3JpZy1oYXNoLWZ1bmN0aW9uCisgICAgICAobWFrZS1nZW5lcmlj
LWhhc2gtdGFibGUgcmVhbC10YWJsZSBpbnRlcm5hbC1oYXNoLWZ1bmN0aW9uCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGVxdWl2YWxlbmNlLXByb2MtPmFzc29jaWF0b3IgZXF1aXYt
ZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3MgKGFuZCBt
dXRhYmxlICN0KSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXF1aXYtZnVuY3Rp
b24gaGFzaC1mdW5jdGlvbikpKSkKKworOzsgSWYgdGhlIGxpc3Qgb2YgYXJndW1lbnRzIGlzIHVw
ZGF0ZWQsIEhBU0gtVEFCTEUsIEFMSVNULT5IQVNILVRBQkxFLAorOzsgSEFTSC1UQUJMRS1VTkZP
TEQgYW5kIEhBU0gtVEFCTEUtTUFQIHNob3VsZCBiZSB1cGRhdGVkIGFzIHdlbGwuCisoZGVmaW5l
KiAobWFrZS1oYXNoLXRhYmxlIGVxdWl2LWZ1bmN0aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIzprZXkgKGNhcGFjaXR5IDEpICh3ZWFrbmVzcyAjZikgIzpyZXN0
IGFyZ3MpCisgICJDcmVhdGVzIGEgbmV3IGhhc2ggdGFibGUuIEVRVUlWLUZVTkNUSU9OIGlzIHVz
ZWQgYXMgdGhlIGNvbXBhcmlzb24KK2Z1bmN0aW9uIGFuZCBIQVNILUZVTkNUSU9OLCBpZiBub3Qg
ZmFsc2UsIGlzIHVzZWQgYXMgdGhlIGhhc2ggZnVuY3Rpb24sCitvdGhlcndpc2UgYSBzdWl0YWJs
ZSBoYXNoLWZ1bmN0aW9uIGZvciB0aGUgaGFzaCB0YWJsZSBpcyBndWVzc2VkIG9yLCBpZgorb25l
IGNhbid0IGJlIGd1ZXNzZWQsIGFuIGVycm9yIGlzIHNpZ25hbGVkLiAjOldFQUtORVNTIHNob3Vs
ZCBiZSBlaXRoZXIKKyNmLCBXRUFLLUtFWSwgV0VBSy1WQUxVRSBvciBXRUFLLUtFWS1BTkQtVkFM
VUUsIGFzIHNwZWNpZmllZCBieQorU1JGSS0xMjYuICM6Q0FQQUNJVFkgaXMgdGhlIG1pbmltYWwg
bnVtYmVyIG9mIGJ1Y2tldHMgb2YgdGhlIGhhc2ggdGFibGUuCisKK0FSR1MgaXMgaWdub3JlZCBh
bmQgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSBleHRlbnNpb25zLiIKKyAgKCVtYWtlLWhhc2gtdGFibGUg
ZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlvbiAjdCBjYXBhY2l0eSB3ZWFrbmVzcykpCisKKzs7
IFdlIHVzZSB0aGlzIHRvIGRlbm90ZSBtaXNzaW5nIG9yIHVuc3BlY2lmaWVkIHZhbHVlcyB0byBh
dm9pZAorOzsgcG9zc2libGUgY29sbGlzaW9uIHdpdGggKnVuc3BlY2lmaWVkKi4KKworKGRlZmlu
ZSBodC11bnNwZWNpZmllZCAoY29ucyAqdW5zcGVjaWZpZWQqICJodC12YWx1ZSIpKQorCisoZGVm
aW5lKiAoaGFzaC10YWJsZSBlcXVpdi1mdW5jdGlvbi1vci1taHQtYXJncyAuIGFyZ3MpCisgICJD
cmVhdGVzIGEgbmV3IGltbXV0YWJsZSBoYXNoIHRhYmxlIHdpdGggdGhlIGFzc29jaWF0aW9ucyBn
aXZlbiBieQorQVJHUy4gSWYgRVFVSVYtRlVOQ1RJT04tT1ItTUhULUFSR1MgaXMgYSBsaXN0LCB0
aGUgbmV3IGhhc2ggdGFibGUgaXMKK2NyZWF0ZWQgYnkgKEFQUExZIE1BS0UtSEFTSC1UQUJMRSBF
UVVJVi1GVU5DVElPTi1PUi1NSFQtQVJHUyksIG90aGVyd2lzZQoraXQgaXMgY3JlYXRlZCBieSAo
TUFLRS1IQVNILVRBQkxFIEVRVUlWLUZVTkNUSU9OLU9SLU1IVC1BUkdTKSB3aXRoIHRoZQoraW5p
dGlhbCBjYXBhY2l0eSBzZXQgdG8gdGhlIG51bWJlciBvZiBhc3NvY2lhdGlvbnMgaW4gYXJncy4K
KworVGhlIEFSR1MgYWx0ZXJuYXRlIGJldHdlZW4ga2V5cyBhbmQgdmFsdWVzLiBJZiB0aGUgc2Ft
ZSBrZXkgKGluIHRoZQorc2Vuc2Ugb2YgdGhlIGVxdWFsaXR5IHByb2NlZHVyZSkgaXMgc3BlY2lm
aWVkIG1vcmUgdGhlbiBvbmNlLCBhbiBlcnJvcgoraXMgc2lnbmFsZWQuIgorICAobGV0ICgobGVu
IChsZW5ndGggYXJncykpKQorICAgICh1bmxlc3MgKGV2ZW4/IGxlbikKKyAgICAgIChlcnJvciAi
T2RkIG51bWJlciBvZiBrZXktdmFsdWUgcGFpcnMiIGFyZ3MpKQorICAgIChsZXQqICgoY2FwYWNp
dHkgKHF1b3RpZW50IGxlbiAyKSkKKyAgICAgICAgICAgKGh0IChpZiAocGFpcj8gZXF1aXYtZnVu
Y3Rpb24tb3ItbWh0LWFyZ3MpCisgICAgICAgICAgICAgICAgICAgKGNvbmQgKChudWxsPyBlcXVp
di1mdW5jdGlvbi1vci1taHQtYXJncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgU1JG
SS0xMjUgU3BlYyBzYXlzIHRoaXMgc2hvdWxkIHJldHVybiBhbiBpbW11dGFibGUgaGFzaCB0YWJs
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAoJW1ha2UtaGFzaC10YWJsZSBlcXVhbD8gI2Yg
I2YgY2FwYWNpdHkgI2YpKQorICAgICAgICAgICAgICAgICAgICAgICAgICgobnVsbD8gKGNkciBl
cXVpdi1mdW5jdGlvbi1vci1taHQtYXJncykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICgl
bWFrZS1oYXNoLXRhYmxlIChjYXIgZXF1aXYtZnVuY3Rpb24tb3ItbWh0LWFyZ3MpICNmCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmIGNhcGFjaXR5ICNmKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAoKG51bGw/IChjZGRyIGVxdWl2LWZ1bmN0aW9uLW9y
LW1odC1hcmdzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCVtYWtlLWhhc2gtdGFibGUg
KGNhciBlcXVpdi1mdW5jdGlvbi1vci1taHQtYXJncykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGNhZHIgZXF1aXYtZnVuY3Rpb24tb3ItbWh0LWFyZ3MpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmIGNhcGFjaXR5ICNm
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYXBwbHkgKGxhbWJkYSogKGVxdWl2LWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICM6a2V5IChtdXRhYmxlICNmKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXBhY2l0eSBjYXBhY2l0eSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2Vha25lc3MgI2YpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpyZXN0IGFyZ3MpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICglbWFrZS1oYXNoLXRhYmxlIGVxdWl2LWZ1
bmN0aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXV0YWJsZSBjYXBhY2l0eSB3ZWFrbmVzcykpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoY2FyIGVxdWl2LWZ1bmN0aW9uLW9yLW1odC1hcmdzKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhZHIgZXF1aXYtZnVuY3Rpb24tb3It
bWh0LWFyZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmNhcGFjaXR5IGNh
cGFjaXR5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RkciBlcXVpdi1mdW5j
dGlvbi1vci1taHQtYXJncykpKSkKKyAgICAgICAgICAgICAgICAgICAoJW1ha2UtaGFzaC10YWJs
ZSBlcXVpdi1mdW5jdGlvbi1vci1taHQtYXJncyAjZiAjZiBjYXBhY2l0eSAjZikpKSkKKyAgICAg
ICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUpIGh0CisgICAgICAgIChpZiAoaHQt
d2Vha25lc3MgaHQpCisgICAgICAgICAgICAobGV0IGxvb3AgKChrdnMgYXJncykpCisgICAgICAg
ICAgICAgIChjb25kCisgICAgICAgICAgICAgICAoKG51bGw/IGt2cykgI2YpCisgICAgICAgICAg
ICAgICAoKG5vdCAoZXE/IGh0LXVuc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICAgICAgICAg
IChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUgKGNhciBrdnMpIGh0LXVuc3BlY2lmaWVkKSkpCisg
ICAgICAgICAgICAgICAgKGVycm9yICJUd28gZXF1aXZhbGVudCBrZXlzIHdlcmUgcHJvdmlkZWQi
CisgICAgICAgICAgICAgICAgICAgICAgIChjYXIgKG1lbWJlciAoY2FyIGt2cykgKGhhc2gtdGFi
bGUta2V5cyBodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoLXRh
YmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGh0KSkpCisgICAgICAgICAgICAgICAgICAgICAgIChj
YXIga3ZzKSkpCisgICAgICAgICAgICAgICAoZWxzZSAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJs
ZSAoY2FyIGt2cykgKGNhZHIga3ZzKSkKKyAgICAgICAgICAgICAgICAgICAgIChsb29wIChjZGRy
IGt2cykpKSkpCisgICAgICAgICAgICAobGV0IGxvb3AgKChrdnMgYXJncykpCisgICAgICAgICAg
ICAgIChjb25kCisgICAgICAgICAgICAgICAoKG51bGw/IGt2cykgI2YpCisgICAgICAgICAgICAg
ICAoZWxzZSAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFuZGxlISBoIGEgcmVhbC10YWJs
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNhciBrdnMpIGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICh1
bmxlc3MgKGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgKGVycm9yICJUd28gZXF1aXZhbGVudCBrZXlzIHdlcmUgcHJvdmlkZWQiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXIgaGFuZGxlKSAoY2FyIGt2cykpKQorICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIChjYWRyIGt2cykpKQorICAgICAg
ICAgICAgICAgICAgICAgKGxvb3AgKGNkZHIga3ZzKSkpKQorICAgICAgICAgICAgICAoaHQtc2l6
ZSEgaHQgY2FwYWNpdHkpKSkpCisgICAgICBodCkpKQorCisoZGVmaW5lKiAoaGFzaC10YWJsZS11
bmZvbGQgc3RvcD8gbWFwcGVyIHN1Y2Nlc3NvciBzZWVkCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICM6a2V5IChtdXRhYmxlICN0KSAod2Vha25lc3MgI2YpIChjYXBhY2l0eSAxKSAjOnJl
c3QgYXJncykKKyAgIlJldHVybnMgYSBuZXcgaGFzaCB0YWJsZSBjcmVhdGVkIGJ5IE1BS0UtSEFT
SC1UQUJMRSB3aXRoIHRoZSBnaXZlbgorYXJndW1lbnRzLiBJZiB0aGUgcmVzdWx0IG9mIGFwcGx5
aW5nIHRoZSBwcmVkaWNhdGUgU1RPUD8gdG8gU0VFRCBpcwordHJ1ZSwgcmV0dXJucyB0aGUgaGFz
aCB0YWJsZS4gT3RoZXJ3aXNlLCBhcHBseSB0aGUgcHJvY2VkdXJlIE1BUFBFUiB0bworU0VFRC4g
TUFQUEVSIHJldHVybnMgdHdvIHZhbHVlcywgd2hpY2ggYXJlIGluc2VydGVkIGludG8gdGhlIGhh
c2ggdGFibGUKK2FzIHRoZSBrZXkgYW5kIHRoZSB2YWx1ZSByZXNwZWN0aXZlbHkuIFRoZW4gZ2V0
IGEgbmV3IHNlZWQgYnkgYXBwbHlpbmcKK3RoZSBwcm9jZWR1cmUgU1VDQ0VTU09SIHRvIFNFRUQs
IGFuZCByZXBlYXQgdGhpcyBhbGdvcml0aG0uIgorICAobGV0ICgocmVzdWx0ICglbWFrZS1oYXNo
LXRhYmxlIGVxdWl2LWZ1bmN0aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtdXRhYmxlIGNhcGFjaXR5IHdlYWtuZXNzKSkpCisgICAgKHdpdGgtaGFz
aHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgcmVzdWx0CisgICAgICAoaWYgKGh0LXdlYWtuZXNz
IHJlc3VsdCkKKyAgICAgICAgICAobGV0IGxvb3AgKChzZWVkIHNlZWQpKQorICAgICAgICAgICAg
KGlmIChzdG9wPyBzZWVkKQorICAgICAgICAgICAgICAgIHJlc3VsdAorICAgICAgICAgICAgICAg
IChyZWNlaXZlIChrZXkgdmFsKSAobWFwcGVyIHNlZWQpCisgICAgICAgICAgICAgICAgICAoaGFz
aHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkgdmFsKQorICAgICAgICAgICAgICAgICAgKGxvb3Ag
KHN1Y2Nlc3NvciBzZWVkKSkpKSkKKyAgICAgICAgICAobGV0ICgoc2l6ZSAoaHQtc2l6ZSByZXN1
bHQpKSkKKyAgICAgICAgICAgIChsZXQgbG9vcCAoKHNlZWQgc2VlZCkpCisgICAgICAgICAgICAg
IChpZiAoc3RvcD8gc2VlZCkKKyAgICAgICAgICAgICAgICAgIHJlc3VsdAorICAgICAgICAgICAg
ICAgICAgKHJlY2VpdmUgKGtleSB2YWwpIChtYXBwZXIgc2VlZCkKKyAgICAgICAgICAgICAgICAg
ICAgKGxldCAoKGhhbmRsZSAoaGFzaHgtY3JlYXRlLWhhbmRsZSEgaCBhIHJlYWwtdGFibGUga2V5
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcT8gaHQtdW5z
cGVjaWZpZWQgKGNkciBoYW5kbGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBz
aXplICgrIDEgc2l6ZSkpKQorICAgICAgICAgICAgICAgICAgICAgIChzZXQtY2RyISBoYW5kbGUg
dmFsKSkKKyAgICAgICAgICAgICAgICAgICAgKGxvb3AgKHN1Y2Nlc3NvciBzZWVkKSkpKSkKKyAg
ICAgICAgICAgIChodC1zaXplISByZXN1bHQgc2l6ZSkpKSkKKyAgICByZXN1bHQpKQorCisoZGVm
aW5lKiAoYWxpc3QtPmhhc2gtdGFibGUgYWxpc3QgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlv
bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6a2V5IChtdXRhYmxlICN0KSAoY2FwYWNp
dHkgKGxlbmd0aCBhbGlzdCkpICh3ZWFrbmVzcyAjZikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjOnJlc3QgYXJncykKKyAgIlJldHVybnMgYSBuZXcgaGFzaC10YWJsZSBjcmVhdGVkIGJ5
IE1BS0UtSEFTSC1UQUJMRSB3aXRoIHRoZSBnaXZlbgorYXJndW1lbnRzLiBJdCBpcyBpbml0aWFs
aXplZCBmcm9tIHRoZSBhc3NvY2lhdGlvbnMgb2YgYWxpc3QuCitBc3NvY2lhdGlvbnMgZWFybGll
ciBpbiB0aGUgbGlzdCB0YWtlIHByZWNlZGVuY2Ugb3ZlciB0aG9zZSB0aGF0Citjb21lIGxhdGVy
LiIKKyAgKGxldCAoKHJlc3VsdCAoJW1ha2UtaGFzaC10YWJsZSBlcXVpdi1mdW5jdGlvbiBoYXNo
LWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0YWJsZSBjYXBh
Y2l0eSB3ZWFrbmVzcykpKQorICAgICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUp
IHJlc3VsdAorICAgICAgKGlmIChodC13ZWFrbmVzcyByZXN1bHQpCisgICAgICAgICAgKGZvci1l
YWNoIChsYW1iZGEgKHBhaXIpCisgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4LXNldCEgaCBh
IHJlYWwtdGFibGUgKGNhciBwYWlyKSAoY2RyIHBhaXIpKSkKKyAgICAgICAgICAgICAgICAgICAg
KHJldmVyc2UgYWxpc3QpKQorICAgICAgICAgIChsZXQgKChzaXplIChodC1zaXplIHJlc3VsdCkp
KQorICAgICAgICAgICAgKGZvci1lYWNoIChsYW1iZGEgKHBhaXIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFuZGxlIQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaCBhIHJlYWwtdGFibGUgKGNhciBwYWlyKSBodC11
bnNwZWNpZmllZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoZXE/IGh0LXVu
c3BlY2lmaWVkIChjZHIgaGFuZGxlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
ISBzaXplICgrIDEgc2l6ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIh
IGhhbmRsZSAoY2RyIHBhaXIpKSkpKQorICAgICAgICAgICAgICAgICAgICAgIGFsaXN0KQorICAg
ICAgICAgICAgKGh0LXNpemUhIHJlc3VsdCBzaXplKSkpKQorICAgIHJlc3VsdCkpCisKKwwKKzs7
OzsgQWNjZXNzaW5nIHRhYmxlIGl0ZW1zCisKKyhkZWZpbmUqIChoYXNoLXRhYmxlLXJlZiBodCBr
ZXkgIzpvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgIChmYWlsdXJlIChsYW1iZGEg
KCkgKGVycm9yICJLZXkgbm90IGluIHRhYmxlIiBrZXkgaHQpKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBzdWNjZXNzKQorICAiRXh0cmFjdHMgdGhlIHZhbHVlIGFzc29jaWF0ZWQgdG8gS0VZ
IGluIEhULCBpbnZva2VzIHRoZSBwcm9jZWR1cmUKK1NVQ0NFU1Mgb24gaXQsIGFuZCByZXR1cm5z
IGl0cyByZXN1bHQ7IGlmIFNVQ0NFU1MgaXMgbm90IHByb3ZpZGVkLCB0aGVuCit0aGUgdmFsdWUg
aXRzZWxmIGlzIHJldHVybmVkLiBJZiBrZXkgaXMgbm90IGNvbnRhaW5lZCBpbiBoYXNoLXRhYmxl
IGFuZAorRkFJTFVSRSBpcyBzdXBwbGllZCwgdGhlbiBGQUlMVVJFIGlzIGludm9rZWQgb24gbm8g
YXJndW1lbnRzIGFuZCBpdHMKK3Jlc3VsdCBpcyByZXR1cm5lZC4gT3RoZXJ3aXNlLCBhbiBlcnJv
ciBpcyBzaWduYWxlZC4iCisgIChsZXQgKChyZXN1bHQgKGhhc2h4LWludm9rZSBoYXNoeC1yZWYg
aHQga2V5IGh0LXVuc3BlY2lmaWVkKSkpCisgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgcmVz
dWx0KQorICAgICAgICAoZmFpbHVyZSkKKyAgICAgICAgKGlmIHN1Y2Nlc3MgKHN1Y2Nlc3MgcmVz
dWx0KSByZXN1bHQpKSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQga2V5
IGRlZmF1bHQpCisgICJMb29rdXBzIEtFWSBpbiBIVCBhbmQgcmV0dXJucyB0aGUgYXNzb2NpYXRl
ZCB2YWx1ZS4gUmV0dXJucyBERUZBVUxUIGlmCitLRVkgaXNuJ3QgcHJlc2VudC4iCisgIChoYXNo
eC1pbnZva2UgaGFzaHgtcmVmIGh0IGtleSBkZWZhdWx0KSkKKworDAorOzs7IFByZWRpY2F0ZXMu
CisKKzs7IChkZWZpbmUgKGhhc2gtdGFibGU/IG9iaikpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUt
ZW1wdHk/IGh0KQorICAiUmV0dXJucyB3aGV0aGVyIEtFWSBpcyBlbXB0eS4iCisgIChpZiAoaHQt
d2Vha25lc3MgaHQpCisgICAgICAoY2FsbC9jYyAobGFtYmRhIChleGl0KQorICAgICAgICAgICAg
ICAgICAoaGFzaC1mb3ItZWFjaCAobGFtYmRhIChrZXkgdmFsKSAoZXhpdCAjZikpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChodC1yZWFsLXRhYmxlIGh0KSkKKyAgICAgICAgICAg
ICAgICAgI3QpKQorICAgICAgKHplcm8/IChodC1zaXplIGh0KSkpKQorCisoZGVmaW5lIChoYXNo
LXRhYmxlLWNvbnRhaW5zPyBodCBrZXkpCisgICJSZXR1cm4gd2hldGhlciBLRVkgaXMgYSBrZXkg
aW4gSFQuIgorICAobm90IChlcT8gaHQtdW5zcGVjaWZpZWQgKGhhc2h4LWludm9rZSBoYXNoeC1y
ZWYgaHQga2V5IGh0LXVuc3BlY2lmaWVkKSkpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlPT8gdmFs
PT8gaHQxIGh0MikKKyAgIlJldHVybnMgI3QgaWYgdGhlIGhhc2ggdGFibGVzIEhUMSBhbmQgSFQy
IGhhdmUgdGhlIHNhbWUga2V5cyAoaW4gdGhlCitzZW5zZSBvZiB0aGVpciBjb21tb24gZXF1YWxp
dHkgcHJlZGljYXRlKSBhbmQgZWFjaCBrZXkgaGFzIHRoZSBzYW1lCit2YWx1ZSAoaW4gdGhlIHNl
bnNlIG9mIFZBTD0/KSwgYW5kICNmIG90aGVyd2lzZS4iCisgIChsZXQgKChuMSAoaGFzaC10YWJs
ZS1zaXplIGh0MSkpCisgICAgICAgIChuMiAoaGFzaC10YWJsZS1zaXplIGh0MikpKQorICAgIChh
bmQgKD0gbjEgbjIpCisgICAgICAgICAoZXE/IChoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0
aW9uIGh0MSkKKyAgICAgICAgICAgICAgKGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24g
aHQyKSkKKyAgICAgICAgIChyZWNlaXZlIChrZXlzIHZhbHMpIChoYXNoLXRhYmxlLWVudHJpZXMg
aHQxKQorICAgICAgICAgICAoZXZlcnkgKGxhbWJkYSAoa2V5IHZhbDEpCisgICAgICAgICAgICAg
ICAgICAgIChhbmQgKGhhc2gtdGFibGUtY29udGFpbnM/IGh0MiBrZXkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKHZhbD0/IHZhbDEgKGhhc2gtdGFibGUtcmVmIGh0MiBrZXkpKSkpCisgICAg
ICAgICAgICAgICAgICBrZXlzIHZhbHMpKSkpKQorCisMCis7OzsgTXV0YXRvcnMuCisKKyhkZWZp
bmUgKGhhc2gtdGFibGUtc2V0LXNpbmdsZSEgaHQga2V5IHZhbCkKKyAgIklmIEhUIGlzIGltbXV0
YWJsZSwgYW4gZXJyb3IgaXMgc2lnbmFsZWQuIE90aGVyd2lzZSwgYSBuZXcKK2Fzc29jaWF0aW9u
IGlzIGNyZWF0ZWQgYmV0d2VlbiBLRVkgYW5kIFZBTC4gSWYgdGhlcmUgaXMgYSBwcmV2aW91cwor
YXNzb2NpYXRpb24gZm9yIEtFWSwgaXQgaXMgZGVsZXRlZC4iCisgIChhc3NlcnQtbXV0YWJsZSBo
dCkKKyAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAoaWYgKGh0
LXdlYWtuZXNzIGh0KQorICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkgdmFs
KQorICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFuZGxlIQorICAgICAgICAg
ICAgICAgICAgICAgICBoIGEgcmVhbC10YWJsZSBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAg
aHQtdW5zcGVjaWZpZWQpKSkKKyAgICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoY2Ry
IGhhbmRsZSkpCisgICAgICAgICAgICAgIChodC1zaXplISBodCAoKyAxIChodC1zaXplIGh0KSkp
KQorICAgICAgICAgIChzZXQtY2RyISBoYW5kbGUgdmFsKSkpKSkKKworKGRlZmluZSogKGhhc2gt
dGFibGUtc2V0ISBodCAjOm9wdGlvbmFsIChrZXkxIGh0LXVuc3BlY2lmaWVkKSAodmFsMSBodC11
bnNwZWNpZmllZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIzpyZXN0IGFyZ3MpCisgICJJ
ZiBIVCBpcyBpbW11dGFibGUsIGFuIGVycm9yIGlzIHNpZ25hbGVkLiBPdGhlcndpc2UsIHJlcGVh
dGVkbHkKK211dGF0ZXMgdGhlIGhhc2ggdGFibGUgSFQsIGNyZWF0aW5nIG5ldyBhc3NvY2lhdGlv
bnMgaW4gaXQgYnkgcHJvY2Vzc2luZwordGhlIGFyZ3VtZW50cyBmcm9tIGxlZnQgdG8gcmlnaHQu
IFRoZSBBUkdTIGFsdGVybmF0ZSBiZXR3ZWVuIGtleXMgYW5kCit2YWx1ZXMuIFdoZW5ldmVyIHRo
ZXJlIGlzIGEgcHJldmlvdXMgYXNzb2NpYXRpb24gZm9yIGEga2V5LCBpdCBpcworZGVsZXRlZC4i
CisgIChpZiAobnVsbD8gYXJncykKKyAgICAgIChpZiAoZXE/IHZhbDEgaHQtdW5zcGVjaWZpZWQp
CisgICAgICAgICAgKGlmIChlcT8ga2V5MSBodC11bnNwZWNpZmllZCkKKyAgICAgICAgICAgICAg
OzsgSWYgb25lIGNhbGxzIChoYXNoLXRhYmxlLXNldCEgaHQpIHdpdGggYW4KKyAgICAgICAgICAg
ICAgOzsgaW1tdXRhYmxlIGhhc2ggdGFibGUsIHNvbWV0aGluZyBpcyByZWFsbHkgd3JvbmcuCisg
ICAgICAgICAgICAgIChhc3NlcnQtbXV0YWJsZSBodCkKKyAgICAgICAgICAgICAgKGVycm9yICJO
byB2YWx1ZSBwcm92aWRlZCBmb3Iga2V5IiBrZXkxKSkKKyAgICAgICAgICAoaGFzaC10YWJsZS1z
ZXQtc2luZ2xlISBodCBrZXkxIHZhbDEpKQorICAgICAgKGJlZ2luCisgICAgICAgIChhc3NlcnQt
bXV0YWJsZSBodCkKKyAgICAgICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkg
aHQKKyAgICAgICAgICAobGV0ICgoc2V0LW9uZSEgKGlmIChodC13ZWFrbmVzcyBodCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGtleSB2YWwpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWwpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoa2V5IHZhbCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGhhbmRsZSAoaGFzaHgtY3JlYXRlLWhhbmRs
ZSEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaCBhIHJl
YWwtdGFibGUga2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5kbGUpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoaHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIHZhbCkpKSkp
KQorICAgICAgICAgICAgKHNldC1vbmUhIGtleTEgdmFsMSkKKyAgICAgICAgICAgIChsZXQgbG9v
cCAoKGt2cyBhcmdzKSkKKyAgICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICgobnVs
bD8ga3ZzKSAqdW5zcGVjaWZpZWQqKQorICAgICAgICAgICAgICAgKChudWxsPyAoY2RyIGt2cykp
CisgICAgICAgICAgICAgICAgKGVycm9yICJPZGQgbnVtYmVyIG9mIGtleS12YWx1ZSBwYWlycyIK
KyAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMqIGtleTEgdmFsMSBhcmdzKSkpCisgICAgICAg
ICAgICAgICAoZWxzZSAoc2V0LW9uZSEgKGNhciBrdnMpIChjYWRyIGt2cykpCisgICAgICAgICAg
ICAgICAgICAgICAobG9vcCAoY2RkciBrdnMpKSkpKSkpKSkpCisKKyhkZWZpbmUgKGhhc2gtdGFi
bGUtZGVsZXRlLXNpbmdsZSEgaHQga2V5KQorICAiRGVsZXRlcyBLRVkgYW5kIGFzc29jaWF0ZWQg
dmFsdWUgaW4gaGFzaCB0YWJsZSBIVC4gUmV0dXJucyAjdCBpZiBLRVkKK2hhZCBhbiBhc3NvY2lh
dGlvbiBhbmQgI2Ygb3RoZXJ3aXNlLiIKKyAgKGFzc2VydC1tdXRhYmxlIGh0KQorICAod2l0aC1o
YXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAorICAgIChpZiAoZXE/IGh0LXVuc3BlY2lm
aWVkIChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUga2V5IGh0LXVuc3BlY2lmaWVkKSkKKyAgICAg
ICAgI2YKKyAgICAgICAgKGJlZ2luIChoYXNoeC1yZW1vdmUhIGggYSByZWFsLXRhYmxlIGtleSkK
KyAgICAgICAgICAgICAgIChodC1zaXplISBodCAoLSAoaHQtc2l6ZSBodCkgMSkpCisgICAgICAg
ICAgICAgICAjdCkpKSkKKworKGRlZmluZSogKGhhc2gtdGFibGUtZGVsZXRlISBodCAjOm9wdGlv
bmFsIChrZXkxIGh0LXVuc3BlY2lmaWVkKSAjOnJlc3Qga2V5cykKKyAgIkRlbGV0ZXMgYW55IGFz
c29jaWF0aW9uIHRvIGVhY2gga2V5IGluIGhhc2ggdGFibGUgSFQgYW5kIHJldHVybnMgdGhlCitu
dW1iZXIgb2Yga2V5cyB0aGF0IGhhZCBhc3NvY2lhdGlvbnMuIgorICAoaWYgKG51bGw/IGtleXMp
CisgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCBrZXkxKQorICAgICAgICAgIChiZWdpbiAo
YXNzZXJ0LW11dGFibGUgaHQpIDApCisgICAgICAgICAgKGlmIChoYXNoLXRhYmxlLWRlbGV0ZS1z
aW5nbGUhIGh0IGtleTEpIDEgMCkpCisgICAgICAoYmVnaW4KKyAgICAgICAgKGFzc2VydC1tdXRh
YmxlIGh0KQorICAgICAgICAobGV0KiAoKGNvdW50IDApCisgICAgICAgICAgICAgICAoZGVsZXRl
LW9uZSEgKGxhbWJkYSAoa2V5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpdGgt
aGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHdoZW4gKG5vdCAoZXE/IGh0LXVuc3BlY2lmaWVkCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgtcmVmIGggYSByZWFsLXRhYmxl
IGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzZXQhIGNvdW50ICgrIDEgY291bnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChoYXNoeC1yZW1vdmUhIGggYSByZWFsLXRhYmxlIGtleSkpKSkpKQorICAgICAgICAg
IChkZWxldGUtb25lISBrZXkxKQorICAgICAgICAgIChmb3ItZWFjaCBkZWxldGUtb25lISBrZXlz
KQorICAgICAgICAgICh1bmxlc3MgKG9yIChodC13ZWFrbmVzcyBodCkgKHplcm8/IGNvdW50KSkK
KyAgICAgICAgICAgIChodC1zaXplISBodCAoLSAoaHQtc2l6ZSBodCkgY291bnQpKSkKKyAgICAg
ICAgICBjb3VudCkpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1pbnRlcm4hIGh0IGtleSBmYWls
dXJlKQorICAiRWZmZWN0aXZlbHkgaW52b2tlcyBIQVNILVRBQkxFLVJFRiB3aXRoIHRoZSBnaXZl
biBhcmd1bWVudHMgYW5kCityZXR1cm5zIHdoYXQgaXQgcmV0dXJucy4gSWYgS0VZIHdhcyBub3Qg
Zm91bmQgaW4gaGFzaC10YWJsZSwgaXRzIHZhbHVlCitpcyBzZXQgdG8gdGhlIHJlc3VsdCBvZiBj
YWxsaW5nIEZBSUxVUkUgYW5kIHRoZSBuZXcgdmFsdWUgaXMgcmV0dXJuZWQuIgorICAoYXNzZXJ0
LW11dGFibGUgaHQpCisgICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUpIGh0Cisg
ICAgKGlmIChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgOzsgU2VwYXJhdGUgdGhlIGNhc2Ugd2hl
cmUgaHQgaXMgd2VhayAtIGRvbid0IHVzZSBoYW5kbGUKKyAgICAgICAgKGxldCogKCh2YWx1ZSAo
aGFzaHgtcmVmIGggYSByZWFsLXRhYmxlIGtleSBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAg
IChjb25kICgoZXE/IGh0LXVuc3BlY2lmaWVkIHZhbHVlKQorICAgICAgICAgICAgICAgICAobGV0
ICgodmFsdWUgKGZhaWx1cmUpKSkKKyAgICAgICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEg
cmVhbC10YWJsZSBrZXkgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgdmFsdWUpKQorICAgICAg
ICAgICAgICAgIChlbHNlIHZhbHVlKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUKKyAgICAgICAg
ICAgICAgIChoYXNoeC1jcmVhdGUtaGFuZGxlISBoIGEgcmVhbC10YWJsZSBrZXkgaHQtdW5zcGVj
aWZpZWQpKSkKKyAgICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkp
CisgICAgICAgICAgICAgIChiZWdpbiAoaHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKQor
ICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAoZmFpbHVyZSkpKSkKKyAgICAg
ICAgICAoY2RyIGhhbmRsZSkpKSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtaW50ZXJuIS9kZWZh
dWx0IGh0IGtleSBkZWZhdWx0KQorICAiRWZmZWN0aXZlbHkgaW52b2tlcyBIQVNILVRBQkxFLVJF
RiB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHMgYW5kCityZXR1cm5zIHdoYXQgaXQgcmV0dXJucy4g
SWYgS0VZIHdhcyBub3QgZm91bmQgaW4gaGFzaC10YWJsZSwgaXRzIHZhbHVlCitpcyBzZXQgdG8g
REVGQVVMVCBhbmQgREVGQVVMVCBpcyByZXR1cm5lZC4iCisgIChhc3NlcnQtbXV0YWJsZSBodCkK
KyAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAoaWYgKGh0LXdl
YWtuZXNzIGh0KQorICAgICAgICA7OyBTZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3ZWFr
IC0gZG9uJ3QgdXNlIGhhbmRsZQorICAgICAgICAobGV0KiAoKHZhbHVlIChoYXNoeC1yZWYgaCBh
IHJlYWwtdGFibGUga2V5IGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgICAgKGNvbmQgKChlcT8g
aHQtdW5zcGVjaWZpZWQgdmFsdWUpCisgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGggYSBy
ZWFsLXRhYmxlIGtleSBkZWZhdWx0KQorICAgICAgICAgICAgICAgICBkZWZhdWx0KQorICAgICAg
ICAgICAgICAgIChlbHNlIHZhbHVlKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUKKyAgICAgICAg
ICAgICAgIChoYXNoeC1jcmVhdGUtaGFuZGxlISBoIGEgcmVhbC10YWJsZSBrZXkgaHQtdW5zcGVj
aWZpZWQpKSkKKyAgICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkp
CisgICAgICAgICAgICAgIChiZWdpbiAoaHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKQor
ICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSBkZWZhdWx0KSkpCisgICAgICAg
ICAgKGNkciBoYW5kbGUpKSkpKQorCisoZGVmaW5lKiAoaGFzaC10YWJsZS11cGRhdGUhIGh0IGtl
eSB1cGRhdGVyICM6b3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhaWx1
cmUgKGxhbWJkYSAoKSAoZXJyb3IgIktleSBub3QgaW4gdGFibGUiIGtleSBodCkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKQorICAiU2VtYW50aWNhbGx5IGVxdWl2YWxl
bnQgdG8sIGJ1dCBtYXkgYmUgbW9yZSBlZmZpY2llbnQgdGhhbiwgdGhlCisgZm9sbG93aW5nIGNv
ZGU6CisgKEhBU0gtVEFCTEUtU0VUISBIVCBLRVkgKFVQREFURVIgKEhBU0gtVEFCTEUtUkVGIEhU
IEtFWSBbRkFJTFVSRSBbU1VDQ0VTU11dKSkpCisKK1NpZ25hbHMgYW4gZXJyb3IgaWYgSFQgaXMg
aW1tdXRhYmxlLiBPdGhlcndpc2UsIGlmIEtFWSBpcyBmb3VuZCBpbiBoYXNoCit0YWJsZSBIVCwg
aXRzIGFzc29jaWF0ZWQgVkFMVUUgaXMgc2V0IHRvIChVUERBVEVSIChTVUNDRVNTIFZBTFVFKSks
CitvciAoVVBEQVRFUiBWQUxVRSkgaWYgU1VDQ0VTUyBpc24ndCBwcm92aWRlZC4gSWYgS0VZIGlz
IG5vdCBmb3VuZCwgc2V0cwordGhlIG5ldyB2YWx1ZSB0byB0aGUgcmVzdWx0IG9mIChVUERBVEVS
IChGQUlMVVJFKSkgaWYgRkFJTFVSRSBpcworcHJvdmlkZWQsIG9yIHNpZ25hbHMgYW4gZXJyb3Ig
b3RoZXJ3aXNlLiIKKyAgKGFzc2VydC1tdXRhYmxlIGh0KQorICAod2l0aC1oYXNoeC12YWx1ZXMg
KGggYSByZWFsLXRhYmxlKSBodAorICAgIChpZiAoaHQtd2Vha25lc3MgaHQpCisgICAgICAgIDs7
IFNlcGFyYXRlIHRoZSBjYXNlIHdoZXJlIGh0IGlzIHdlYWsgLSBkb24ndCB1c2UgaGFuZGxlCisg
ICAgICAgIChsZXQqICgob2xkIChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUga2V5IGh0LXVuc3Bl
Y2lmaWVkKSkKKyAgICAgICAgICAgICAgIChuZXcgKHVwZGF0ZXIgKGlmIChlcT8gb2xkIGh0LXVu
c3BlY2lmaWVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhaWx1cmUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgc3VjY2VzcyAoc3VjY2VzcyBvbGQp
IG9sZCkpKSkpCisgICAgICAgICAgKGhhc2h4LXNldCEgaCBhIHJlYWwtdGFibGUga2V5IG5ldykp
CisgICAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWdldC1oYW5kbGUgaCBhIHJlYWwtdGFibGUg
a2V5KSkpCisgICAgICAgICAgKGNvbmQgKGhhbmRsZQorICAgICAgICAgICAgICAgICAobGV0KiAo
KG9sZCAoY2RyIGhhbmRsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAobmV3ICh1cGRhdGVy
IChpZiBzdWNjZXNzIChzdWNjZXNzIG9sZCkgb2xkKSkpKQorICAgICAgICAgICAgICAgICAgIChz
ZXQtY2RyISBoYW5kbGUgbmV3KSkpCisgICAgICAgICAgICAgICAgKGVsc2UKKyAgICAgICAgICAg
ICAgICAgKGxldCAoKG5ldyAodXBkYXRlciAoZmFpbHVyZSkpKSkKKyAgICAgICAgICAgICAgICAg
ICAoaHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKQorICAgICAgICAgICAgICAgICAgICho
YXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSBuZXcpKSkpKSkpCisgICp1bnNwZWNpZmllZCop
CisKKyhkZWZpbmUgKGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0IGh0IGtleSB1cGRhdGVyIGRl
ZmF1bHQpCisgICJTZW1hbnRpY2FsbHkgZXF1aXZhbGVudCB0bywgYnV0IG1heSBiZSBtb3JlIGVm
ZmljaWVudCB0aGFuLCB0aGUKK2ZvbGxvd2luZyBjb2RlOgorIChIQVNILVRBQkxFLVNFVCEgSFQg
S0VZIChVUERBVEVSIChIQVNILVRBQkxFLVJFRi9ERUZBVUxUIEhUIEtFWSBERUZBVUxUKSkpCisK
K1NpZ25hbHMgYW4gZXJyb3IgaWYgSFQgaXMgaW1tdXRhYmxlLiBPdGhlcndpc2UsIG1vZGlmaWVz
IEhUJ3MgdmFsdWUgYXQKK0tFWSBieSBwYXNzaW5nIGl0cyBvbGQgdmFsdWUsIG9yIERFRkFVTFQg
aWYgaXQgZG9lc24ndCBoYXZlIG9uZSwgdG8KK1VQREFURVIsIGFuZCBzZXR0aW5nIGl0IHRvIHRo
ZSByZXN1bHQgdGhlcmVvZi4iCisgIChhc3NlcnQtbXV0YWJsZSBodCkKKyAgKHdpdGgtaGFzaHgt
dmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAoaWYgKGh0LXdlYWtuZXNzIGh0KQorICAg
ICAgICA7OyBKLk0uIHNlcGFyYXRlIHRoZSBjYXNlIHdoZXJlIGh0IGlzIHdlYWsgLSBkb24ndCB1
c2UgaGFuZGxlCisgICAgICAgIChsZXQqICgob2xkIChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUg
a2V5IGRlZmF1bHQpKSkKKyAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkg
KHVwZGF0ZXIgb2xkKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWNyZWF0ZS1oYW5k
bGUhIGggYSByZWFsLXRhYmxlIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAgIChpZiAoZXE/IGh0LXVuc3Bl
Y2lmaWVkIChjZHIgaGFuZGxlKSkKKyAgICAgICAgICAgICAgKGJlZ2luIChodC1zaXplISBodCAo
KyAxIChodC1zaXplIGh0KSkpCisgICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxl
ICh1cGRhdGVyIGRlZmF1bHQpKSkKKyAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAodXBk
YXRlciAoY2RyIGhhbmRsZSkpKSkpKSkKKyAgKnVuc3BlY2lmaWVkKikKKworKGRlZmluZSAoaGFz
aC10YWJsZS1wb3AhIGh0KQorICAiU2lnbmFscyBhbiBlcnJvciBpZiBIVCBpcyBpbW11dGFibGUg
b3IgZW1wdHkuIE90aGVyd2lzZSwgY2hvb3NlcyBhbgorYXJiaXRyYXJ5IGFzc29jaWF0aW9uIGZy
b20gaGFzaC10YWJsZSBhbmQgcmVtb3ZlcyBpdCwgcmV0dXJuaW5nIHRoZSBrZXkKK2FuZCB2YWx1
ZSBhcyB0d28gdmFsdWVzLiIKKyAgKGFzc2VydC1tdXRhYmxlIGh0KQorICAoY2FsbC9jYworICAg
KGxhbWJkYSAocmV0dXJuKQorICAgICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxl
KSBodAorICAgICAgIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGtleSB2YWx1ZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIChoYXNoeC1yZW1vdmUhIGggYSByZWFsLXRhYmxlIGtleSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh1bmxlc3MgKGh0LXdlYWtuZXNzIGh0KQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAoaHQtc2l6ZSEgaHQgKC0gKGh0LXNpemUgaHQpIDEpKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIChyZXR1cm4ga2V5IHZhbHVlKSkKKyAgICAgICAgICAgICAgICAgICAg
ICByZWFsLXRhYmxlKSkKKyAgICAgKGVycm9yICJIYXNoIHRhYmxlIGlzIGVtcHR5IiBodCkpKSkK
KworKGRlZmluZSogKGhhc2gtdGFibGUtY2xlYXIhIGh0ICM6b3B0aW9uYWwgY2FwYWNpdHkpCisg
ICJEZWxldGVzIGFsbCBhc3NvY2lhdGlvbnMgZnJvbSBIVC4iCisgIChhc3NlcnQtbXV0YWJsZSBo
dCkKKyAgKGlmIGNhcGFjaXR5CisgICAgICAoaHQtcmVhbC10YWJsZSEgaHQgKChndWlsZS1odC1j
dG9yIChodC13ZWFrbmVzcyBodCkpIGNhcGFjaXR5KSkKKyAgICAgIChoYXNoLWNsZWFyISAoaHQt
cmVhbC10YWJsZSBodCkpKQorICAoaHQtc2l6ZSEgaHQgMCkKKyAgKnVuc3BlY2lmaWVkKikKKwor
DAorOzsgVGhlIHdob2xlIGhhc2ggdGFibGUuCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtc2l6ZSBo
dCkKKyAgIlJldHVybnMgdGhlIG51bWJlciBvZiBhc3NvY2lhdGlvbnMgaW4gSFQuIFRoaXMgaXMg
Z3VhcmFudGVlZCBPKDEpIGZvcgordGFibGVzIHdoZXJlICM6V0VBS05FU1MgaXMgI2YuIgorICAo
aWYgKGh0LXdlYWtuZXNzIGh0KQorICAgICAgKGhhc2gtZm9sZCAobGFtYmRhIChrZXkgdmFsIGFu
cykgKCsgMSBhbnMpKQorICAgICAgICAgICAgICAgICAwIChodC1yZWFsLXRhYmxlIGh0KSkKKyAg
ICAgIChodC1zaXplIGh0KSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUta2V5cyBodCkKKyAgIlJl
dHVybnMgYSBsaXN0IG9mIHRoZSBrZXlzIGluIEhULiIKKyAgKGhhc2gtZm9sZCAobGFtYmRhIChr
ZXkgdmFsIGxzdCkgKGNvbnMga2V5IGxzdCkpCisgICAgICAgICAgICAgJygpIChodC1yZWFsLXRh
YmxlIGh0KSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtdmFsdWVzIGh0KQorICAiUmV0dXJucyBh
IGxpc3Qgb2YgdGhlIHZhbHVlcyBpbiBIVC4iCisgIChoYXNoLWZvbGQgKGxhbWJkYSAoa2V5IHZh
bCBsc3QpIChjb25zIHZhbCBsc3QpKQorICAgICAgICAgICAgICcoKSAoaHQtcmVhbC10YWJsZSBo
dCkpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLWVudHJpZXMgaHQpCisgICJSZXR1cm5zIHR3byB2
YWx1ZXM6IGEgbGlzdCBvZiB0aGUga2V5cyBhbmQgYSBsaXN0IG9mIHRoZSBhc3NvY2lhdGVkCit2
YWx1ZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgb3JkZXIuIgorICAobGV0ICgoa2V5cyAnKCkpICh2
YWxzICcoKSkpCisgICAgKGhhc2gtZm9yLWVhY2ggKGxhbWJkYSAoa2V5IHZhbCkKKyAgICAgICAg
ICAgICAgICAgICAgIChzZXQhIGtleXMgKGNvbnMga2V5IGtleXMpKQorICAgICAgICAgICAgICAg
ICAgICAgKHNldCEgdmFscyAoY29ucyB2YWwgdmFscykpKQorICAgICAgICAgICAgICAgICAgICho
dC1yZWFsLXRhYmxlIGh0KSkKKyAgICAodmFsdWVzIGtleXMgdmFscykpKQorCis7OzsgSW4gYSBu
b24td2VhayBoYXNoIHRhYmxlLCB3ZSBrbm93IHRoZSBzaXplIHRoYXQgdGhlIGtleS92YWx1ZSB2
ZWN0b3IKKzs7OyB3aWxsIGhhdmUuIEluIGEgd2VhayBoYXNoIHRhYmxlLCB3ZSBoYXZlIHRvIGl0
ZXJhdGUgdGhyb3cKKzs7OyBhc3NvY2lhdGlvbnMgb2YgdGhlIGhhc2ggdGFibGUgdG8gY29tcHV0
ZSBpdHMgc2l6ZSwgc28gaXQgaXMgZWFzaWVyCis7OzsgdG8gc2ltcGx5IGNhbGwgSEFTSC1UQUJM
RS1LRVlTL0hBU0gtVEFCTEUtVkFMVUVTLgorKGRlZmluZSAoaGFzaC10YWJsZS1rZXktdmVjdG9y
IGh0KQorICAiUmV0dXJucyBhIHZlY3RvciBvZiB0aGUga2V5cyBpbiBIVC4iCisgIChpZiAoaHQt
d2Vha25lc3MgaHQpCisgICAgICAobGlzdC0+dmVjdG9yIChoYXNoLXRhYmxlLWtleXMgaHQpKQor
ICAgICAgKGxldCogKChsZW4gKGh0LXNpemUgaHQpKQorICAgICAgICAgICAgIChrZXlzIChtYWtl
LXZlY3RvciBsZW4pKSkKKyAgICAgICAgKGhhc2gtZm9sZCAobGFtYmRhIChrZXkgdmFsIGkpCisg
ICAgICAgICAgICAgICAgICAgICAodmVjdG9yLXNldCEga2V5cyBpIGtleSkKKyAgICAgICAgICAg
ICAgICAgICAgICgrIGkgMSkpCisgICAgICAgICAgICAgICAgICAgMCAoaHQtcmVhbC10YWJsZSBo
dCkpCisgICAgICAgIGtleXMpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS12YWx1ZS12ZWN0b3Ig
aHQpCisgICJSZXR1cm5zIGEgdmVjdG9yIG9mIHRoZSB2YWx1ZXMgaW4gSFQuIgorICAoaWYgKGh0
LXdlYWtuZXNzIGh0KQorICAgICAgKGxpc3QtPnZlY3RvciAoaGFzaC10YWJsZS12YWx1ZXMgaHQp
KQorICAgICAgKGxldCogKChsZW4gKGh0LXNpemUgaHQpKQorICAgICAgICAgICAgICh2YWxzICht
YWtlLXZlY3RvciBsZW4pKSkKKyAgICAgICAgKGhhc2gtZm9sZCAobGFtYmRhIChrZXkgdmFsIGkp
CisgICAgICAgICAgICAgICAgICAgICAodmVjdG9yLXNldCEgdmFscyBpIHZhbCkKKyAgICAgICAg
ICAgICAgICAgICAgICgrIGkgMSkpCisgICAgICAgICAgICAgICAgICAgMCAoaHQtcmVhbC10YWJs
ZSBodCkpCisgICAgICAgIHZhbHMpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1lbnRyeS12ZWN0
b3JzIGh0KQorICAiUmV0dXJucyB0d28gdmFsdWVzOiBhIHZlY3RvciBvZiB0aGUga2V5cyBhbmQg
YSB2ZWN0b3Igb2YgdGhlCithc3NvY2lhdGVkIHZhbHVlcyBpbiB0aGUgY29ycmVzcG9uZGluZyBv
cmRlci4iCisgIChpZiAoaHQtd2Vha25lc3MgaHQpCisgICAgICAocmVjZWl2ZSAoa2V5cyB2YWxz
KSAoaGFzaC10YWJsZS1lbnRyaWVzIGh0KQorICAgICAgICAodmFsdWVzIChsaXN0LT52ZWN0b3Ig
a2V5cykgKGxpc3QtPnZlY3RvciB2YWxzKSkpCisgICAgICAobGV0KiAoKGxlbiAoaHQtc2l6ZSBo
dCkpCisgICAgICAgICAgICAgKGtleXMgKG1ha2UtdmVjdG9yIGxlbikpCisgICAgICAgICAgICAg
KHZhbHMgKG1ha2UtdmVjdG9yIGxlbikpKQorICAgICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGtl
eSB2YWwgaSkKKyAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Itc2V0ISBrZXlzIGkga2V5KQor
ICAgICAgICAgICAgICAgICAgICAgKHZlY3Rvci1zZXQhIHZhbHMgaSB2YWwpCisgICAgICAgICAg
ICAgICAgICAgICAoKyBpIDEpKQorICAgICAgICAgICAgICAgICAgIDAgKGh0LXJlYWwtdGFibGUg
aHQpKQorICAgICAgICAodmFsdWVzIGtleXMgdmFscykpKSkKKworKGRlZmluZSAoaGFzaC10YWJs
ZS1maW5kIHByb2MgaHQgZmFpbHVyZSkKKyAgIkZvciBlYWNoIGFzc29jaWF0aW9uIG9mIHRoZSBo
YXNoIHRhYmxlIEhULCBpbnZva2UgUFJPQyBvbiBpdHMga2V5IGFuZAordmFsdWUuIElmIFBST0Mg
cmV0dXJucyB0cnVlLCB0aGVuIEhBU0gtVEFCTEUtRklORCByZXR1cm5zIHdoYXQgUFJPQworcmV0
dXJucy4gSWYgYWxsIHRoZSBjYWxscyB0byBQUk9DIHJldHVybiAjZiwgcmV0dXJucyB0aGUgcmVz
dWx0IG9mCitpbnZva2luZyB0aGUgdGh1bmsgRkFJTFVSRS4iCisgIChjYWxsL2NjIChsYW1iZGEg
KHJldHVybikKKyAgICAgICAgICAgICAoaGFzaC1mb3ItZWFjaCAobGFtYmRhIChrZXkgdmFsKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHggKHByb2Mga2V5IHZhbCkpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgeCAocmV0dXJuIHgpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGh0LXJlYWwtdGFibGUgaHQpKQorICAgICAgICAgICAg
IChmYWlsdXJlKSkpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLWNvdW50IHByZWQgaHQpCisgICJG
b3IgZWFjaCBhc3NvY2lhdGlvbiBvZiBIVCwgaW52b2tlIFBSRUQgb24gaXRzIGtleSBhbmQgdmFs
dWUuIFJldHVybgordGhlIG51bWJlciBvZiBjYWxscyB0byBQUkVEIHdoaWNoIHJldHVybmVkIHRy
dWUuIgorICAoaGFzaC1mb2xkIChsYW1iZGEgKGtleSB2YWwgbikKKyAgICAgICAgICAgICAgIChp
ZiAocHJlZCBrZXkgdmFsKSAoKyAxIG4pIG4pKQorICAgICAgICAgICAgIDAgKGh0LXJlYWwtdGFi
bGUgaHQpKSkKKworDAorOzs7IE1hcHBpbmcgYW5kIGZvbGRpbmcuCisKKyhkZWZpbmUqIChoYXNo
LXRhYmxlLW1hcCBwcm9jIGh0IGVxdWl2LWZ1bmN0aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAjOmtleSAobXV0YWJsZSAjdCkgKGNhcGFjaXR5IChoYXNoLXRhYmxl
LXNpemUgaHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICh3ZWFrbmVzcyAjZikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAjOnJlc3QgYXJncykKKyAgIkNyZWF0ZXMgYSBuZXcgaGFzaCB0
YWJsZSBieSBjYWxsaW5nIE1BS0UtSEFTSC1UQUJMRSB3aXRoIHRoZSBnaXZlbgorYXJndW1lbnRz
LiBBZnRlciBjcmVhdGlvbiwgSEFTSC1UQUJMRS1NQVAgY2FsbHMgUFJPQyBmb3IgZXZlcnkKK2Fz
c29jaWF0aW9uIGluIGhhc2gtdGFibGUgd2l0aCB0aGUgdmFsdWUgb2YgdGhlIGFzc29jaWF0aW9u
LiBUaGUga2V5IG9mCit0aGUgYXNzb2NpYXRpb24gYW5kIHRoZSByZXN1bHQgb2YgaW52b2tpbmcg
UFJPQyBhcmUgZW50ZXJlZCBpbnRvIHRoZSBuZXcKK2hhc2ggdGFibGUsIHdoaWNoIGlzIHRoZW4g
cmV0dXJuZWQuIgorICAobGV0ICgocmVzdWx0ICglbWFrZS1oYXNoLXRhYmxlIGVxdWl2LWZ1bmN0
aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRh
YmxlIGNhcGFjaXR5IHdlYWtuZXNzKSkKKyAgICAgICAgKHNpemUgMCkpCisgICAgKHdpdGgtaGFz
aHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgcmVzdWx0CisgICAgICAoaGFzaC1mb3ItZWFjaAor
ICAgICAgIChsYW1iZGEgKGtleSB2YWwpCisgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10
YWJsZSBrZXkgKHByb2MgdmFsKSkKKyAgICAgICAgIChzZXQhIHNpemUgKCsgMSBzaXplKSkpCisg
ICAgICAgKGh0LXJlYWwtdGFibGUgaHQpKSkKKyAgICAoaHQtc2l6ZSEgcmVzdWx0IHNpemUpCisg
ICAgcmVzdWx0KSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1tYXAtPmxpc3QgcHJvYyBodCkKKyAg
IkNhbGxzIFBST0MgZm9yIGV2ZXJ5IGFzc29jaWF0aW9uIGluIEhUIHdpdGggdHdvIGFyZ3VtZW50
czoKK3RoZSBrZXkgb2YgdGhlIGFzc29jaWF0aW9uIGFuZCB0aGUgdmFsdWUgb2YgdGhlIGFzc29j
aWF0aW9uLiBUaGUgdmFsdWVzCityZXR1cm5lZCBieSB0aGUgaW52b2NhdGlvbnMgb2YgUFJPQyBh
cmUgYWNjdW11bGF0ZWQgaW50byBhIGxpc3QsIHdoaWNoCitpcyByZXR1cm5lZC4iCisgIChoYXNo
LW1hcC0+bGlzdCBwcm9jIChodC1yZWFsLXRhYmxlIGh0KSkpCisKKzs7OyBXaXRoIHRoaXMgcGFy
dGljdWxhciBpbXBsZW1lbnRhdGlvbiwgdGhlIHByb2MgY2FuIHNhZmVseSBtdXRhdGUgaHQuCis7
OzsgVGhhdCBwcm9wZXJ0eSBpcyBub3QgZ3VhcmFudGVlZCBieSB0aGUgc3BlY2lmaWNhdGlvbiwg
YnV0IGNhbiBiZQorOzs7IHJlbGllZCB1cG9uIGJ5IHByb2NlZHVyZXMgZGVmaW5lZCBpbiB0aGlz
IGZpbGUuCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtZm9yLWVhY2ggcHJvYyBodCkKKyAgIkNhbGxz
IFBST0Mgd2l0aCBlYWNoIGtleSBhbmQgdmFsdWUgYXMgdHdvIGFyZ3VtZW50cy4gUmV0dXJucyBh
bgordW5zcGVjaWZpZWQgdmFsdWUuIgorICAoaGFzaC1mb3ItZWFjaCBwcm9jIChodC1yZWFsLXRh
YmxlIGh0KSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtbWFwISBwcm9jIGh0KQorICAiU2lnbmFs
cyBhbiBlcnJvciBpZiBIVCBpcyBpbW11dGFibGUuIE90aGVyd2lzZSwgY2FsbHMgUFJPQyBmb3Ig
ZXZlcnkKK2Fzc29jaWF0aW9uIGluIEhUIHdpdGggdHdvIGFyZ3VtZW50czogdGhlIGtleSBvZiB0
aGUgYXNzb2NpYXRpb24gYW5kIHRoZQordmFsdWUgb2YgdGhlIGFzc29jaWF0aW9uLiBUaGUgdmFs
dWUgcmV0dXJuZWQgYnkgUFJPQyBpcyB1c2VkIHRvIHVwZGF0ZQordGhlIHZhbHVlIG9mIHRoZSBh
c3NvY2lhdGlvbi4gUmV0dXJuIGFuIHVuc3BlY2lmaWVkIHZhbHVlLiIKKyAgKGFzc2VydC1tdXRh
YmxlIGh0KQorICAoaWYgKGh0LXdlYWtuZXNzIGh0KQorICAgICAgKHdpdGgtaGFzaHgtdmFsdWVz
IChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAgICAgKGhhc2gtZm9yLWVhY2ggKGxhbWJkYSAoa2V5
IHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJs
ZSBrZXkgKHByb2Mga2V5IHZhbCkpKQorICAgICAgICAgICAgICAgICAgICAgICByZWFsLXRhYmxl
KSkKKyAgICAgIChsZXQgKChyZWFsLXRhYmxlIChodC1yZWFsLXRhYmxlIGh0KSkpCisgICAgICAg
IChoYXNoLWZvci1lYWNoLWhhbmRsZSAobGFtYmRhIChoYW5kbGUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsZXQgKChrZXkgKGNhciBoYW5kbGUpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodmFsIChjZHIgaGFuZGxlKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAocHJvYyBrZXkgdmFsKSkpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhbC10YWJsZSkpKSkKKworKGRlZmluZSAo
aGFzaC10YWJsZS1mb2xkIHByb2MgaW5pdCBodCkKKyAgIkNhbGxzIFBST0MgZm9yIGV2ZXJ5IGFz
c29jaWF0aW9uIGluIEhUIHdpdGggdGhyZWUgYXJndW1lbnRzOiB0aGUga2V5CitvZiB0aGUgYXNz
b2NpYXRpb24sIHRoZSB2YWx1ZSBvZiB0aGUgYXNzb2NpYXRpb24sIGFuZCBhbiBhY2N1bXVsYXRl
ZAordmFsdWUgVkFMLiBWQUwgaXMgU0VFRCBmb3IgdGhlIGZpcnN0IGludm9jYXRpb24gb2YgcHJv
Y2VkdXJlLCBhbmQgZm9yCitzdWJzZXF1ZW50IGludm9jYXRpb25zIG9mIFBST0MsIHRoZSByZXR1
cm5lZCB2YWx1ZSBvZiB0aGUgcHJldmlvdXMKK2ludm9jYXRpb24uIFRoZSB2YWx1ZSByZXR1cm5l
ZCBieSBIQVNILVRBQkxFLUZPTEQgaXMgdGhlIHJldHVybiB2YWx1ZSBvZgordGhlIGxhc3QgaW52
b2NhdGlvbiBvZiBQUk9DLiIKKyAgKGhhc2gtZm9sZCBwcm9jIGluaXQgKGh0LXJlYWwtdGFibGUg
aHQpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1wcnVuZSEgcHJvYyBodCkKKyAgIklmIEhUIGlz
IGltbXV0YWJsZSwgc2lnbmFscyBhbiBlcnJvci4gT3RoZXJ3aXNlLCBjYWxscyBQUk9DIGZvciBl
dmVyeQorYXNzb2NpYXRpb24gaW4gaGFzaC10YWJsZSB3aXRoIHR3byBhcmd1bWVudHMsIHRoZSBr
ZXkgYW5kIHRoZSB2YWx1ZSBvZgordGhlIGFzc29jaWF0aW9uLCBhbmQgcmVtb3ZlcyBhbGwgYXNz
b2NpYXRpb25zIGZyb20gaGFzaC10YWJsZSBmb3Igd2hpY2gKK1BST0MgcmV0dXJucyB0cnVlLiBS
ZXR1cm5zIGFuIHVuc3BlY2lmaWVkIHZhbHVlLiIKKyAgKGFzc2VydC1tdXRhYmxlIGh0KQorICAo
d2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAorICAgIChoYXNoLWZvci1lYWNo
IChsYW1iZGEgKGtleSB2YWwpCisgICAgICAgICAgICAgICAgICAgICAoaWYgKHByb2Mga2V5IHZh
bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgtcmVtb3ZlISBoIGEgcmVhbC10YWJs
ZSBrZXkpKSkKKyAgICAgICAgICAgICAgICAgICByZWFsLXRhYmxlKSkpCisKKwwKKzs7OyBDb3B5
aW5nIGFuZCBjb252ZXJzaW9uLgorCisoZGVmaW5lKiAoaGFzaC10YWJsZS1jb3B5IGh0ICM6a2V5
IChtdXRhYmxlIChoYXNoLXRhYmxlLW11dGFibGU/IGh0KSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNhcGFjaXR5IChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAod2Vha25lc3MgKGhhc2gtdGFibGUtd2Vha25lc3MgaHQpKSkKKyAgIlJldHVybnMg
YSBuZXdseSBhbGxvY2F0ZWQgaGFzaCB0YWJsZSB3aXRoIHRoZSBhc3NvY2lhdGlvbnMgYXMgSFQg
YW5kCitwcm9wZXJ0aWVzIGFzIGdpdmVuIGJ5IGtleXdvcmQgYXJndW1lbnRzLCB3aGljaCBkZWZh
dWx0IHRvIEhUCitwcm9wZXJ0aWVzLiBJZiBNVVRBQkxFIGlzIHRydWUsIHRoZSBuZXcgaGFzaCB0
YWJsZSBpcyBtdXRhYmxlLAorb3RoZXJ3aXNlLCBpdCBpcyBpbW11dGFibGUuIgorICAod2l0aC1o
YXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAorICAgIChsZXQgKChuZXctcmVhbC10YWJs
ZSAoKGd1aWxlLWh0LWN0b3Igd2Vha25lc3MpIGNhcGFjaXR5KSkKKyAgICAgICAgICAoc2l6ZSAw
KSkKKyAgICAgIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGtleSB2YWwpCisgICAgICAgICAgICAg
ICAgICAgICAgIChoYXNoeC1zZXQhIGggYSBuZXctcmVhbC10YWJsZSBrZXkgdmFsKQorICAgICAg
ICAgICAgICAgICAgICAgICAoc2V0ISBzaXplICgrIDEgc2l6ZSkpKQorICAgICAgICAgICAgICAg
ICAgICAgcmVhbC10YWJsZSkKKyAgICAgIDs7IEFyZ3VtZW50czogcmVhbC10YWJsZSBoYXNoLWZ1
bmN0aW9uIGFzc29jaWF0b3IKKyAgICAgIDs7ICAgICAgICAgICAgd2Vha25lc3MgbXV0YWJsZT8g
c2l6ZSBlcXVpdmFsZW5jZS1mdW5jdGlvbiBvcmlnLWhhc2gtZnVuY3Rpb24KKyAgICAgIChtYWtl
LWdlbmVyaWMtaGFzaC10YWJsZSBuZXctcmVhbC10YWJsZSBoIGEgd2Vha25lc3MgKGFuZCBtdXRh
YmxlICN0KSBzaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFibGUt
ZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbiBodCkpKSkpCisKKyhkZWZpbmUqIChoYXNoLXRhYmxl
LWVtcHR5LWNvcHkgaHQgIzprZXkgKG11dGFibGUgI3QpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChjYXBhY2l0eSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
d2Vha25lc3MgKGhhc2gtdGFibGUtd2Vha25lc3MgaHQpKSkKKyAgIlJldHVybnMgYSBuZXdseSBh
bGxvY2F0ZWQgbXV0YWJsZSBoYXNoIHRhYmxlIHdpdGggdGhlIHNhbWUgcHJvcGVydGllcworYXMg
SFQsIGJ1dCB3aXRoIG5vIGFzc29jaWF0aW9ucy4iCisgICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBh
IHJlYWwtdGFibGUpIGh0CisgICAgKGxldCAoKG5ldy1yZWFsLXRhYmxlICgoZ3VpbGUtaHQtY3Rv
ciB3ZWFrbmVzcykgY2FwYWNpdHkpKSkKKyAgICAgIDs7IEFyZ3VtZW50czogcmVhbC10YWJsZSBo
YXNoLWZ1bmN0aW9uIGFzc29jaWF0b3IKKyAgICAgIDs7ICAgICAgICAgICAgd2Vha25lc3MgbXV0
YWJsZT8gc2l6ZSBlcXVpdmFsZW5jZS1mdW5jdGlvbiBvcmlnLWhhc2gtZnVuY3Rpb24KKyAgICAg
IChtYWtlLWdlbmVyaWMtaGFzaC10YWJsZSBuZXctcmVhbC10YWJsZSBoIGEgd2Vha25lc3MgKGFu
ZCBtdXRhYmxlICN0KSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFi
bGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbiBodCkpKSkpCisKKyhkZWZpbmUgKGhhc2gtdGFi
bGUtPmFsaXN0IGh0KQorICAiUmV0dXJucyBhbiBhbGlzdCB3aXRoIHRoZSBzYW1lIGFzc29jaWF0
aW9ucyBhcyBoYXNoLXRhYmxlIGluIGFuCit1bnNwZWNpZmllZCBvcmRlci4iCisgIChoYXNoLW1h
cC0+bGlzdCBjb25zIChodC1yZWFsLXRhYmxlIGh0KSkpCisKKwwKKzs7OyBIYXNoIHRhYmxlcyBh
cyBzZXRzLgorCisoZGVmaW5lIChoYXNoLXRhYmxlLXVuaW9uISBodDEgaHQyKQorICAiSWYgSFQx
IGlzIGltbXV0YWJsZSwgc2lnbmFscyBhbiBlcnJvci4gT3RoZXJ3aXNlLCBhZGRzIHRoZSBhc3Nv
Y2lhdGlvbnMKK29mIEhUMiB0byBIVDEgYW5kIHJldHVybiBIVDEuIElmIGEga2V5IGFwcGVhcnMg
aW4gYm90aCBoYXNoIHRhYmxlcywgaXRzCit2YWx1ZSBpcyBzZXQgdG8gdGhlIHZhbHVlIGFwcGVh
cmluZyBpbiBIVDEuIgorICAoYXNzZXJ0LW11dGFibGUgaHQxKQorICAoaGFzaC1mb3ItZWFjaCAo
bGFtYmRhIChrZXkyIHZhbDIpCisgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFibGUtaW50ZXJu
IS9kZWZhdWx0IGh0MSBrZXkyIHZhbDIpKQorICAgICAgICAgICAgICAgICAoaHQtcmVhbC10YWJs
ZSBodDIpKQorICBodDEpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtaW50ZXJzZWN0aW9uISBodDEg
aHQyKQorICAiSWYgSFQxIGlzIGltbXV0YWJsZSwgc2lnbmFscyBhbiBlcnJvci4gT3RoZXJ3aXNl
LCBkZWxldGVzIHRoZQorYXNzb2NpYXRpb25zIGZyb20gSFQgd2hvc2Uga2V5cyBkb24ndCBhbHNv
IGFwcGVhciBpbiBIVDIgYW5kIHJldHVybnMKK0hUMS4iCisgIChhc3NlcnQtbXV0YWJsZSBodDEp
CisgIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGtleTEgdmFsMSkKKyAgICAgICAgICAgICAgICAg
ICAoaWYgKG5vdCAoaGFzaC10YWJsZS1jb250YWlucz8gaHQyIGtleTEpKQorICAgICAgICAgICAg
ICAgICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0MSBrZXkxKSkpCisgICAgICAgICAgICAg
ICAgIChodC1yZWFsLXRhYmxlIGh0MSkpCisgIGh0MSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1k
aWZmZXJlbmNlISBodDEgaHQyKQorICAiSWYgSFQxIGlzIGltbXV0YWJsZSwgc2lnbmFscyBhbiBl
cnJvci4gT3RoZXJ3aXNlLCBkZWxldGVzIHRoZQorYXNzb2NpYXRpb25zIG9mIEhUMSB3aG9zZSBr
ZXlzIGFyZSBhbHNvIHByZXNlbnQgaW4gSFQyIGFuZCByZXR1cm5zIEhUMS4iCisgIChhc3NlcnQt
bXV0YWJsZSBodDEpCisgIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGtleTEgdmFsMSkKKyAgICAg
ICAgICAgICAgICAgICAoaWYgKGhhc2gtdGFibGUtY29udGFpbnM/IGh0MiBrZXkxKQorICAgICAg
ICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0MSBrZXkxKSkpCisgICAgICAg
ICAgICAgICAgIChodC1yZWFsLXRhYmxlIGh0MSkpCisgIGh0MSkKKworKGRlZmluZSAoaGFzaC10
YWJsZS14b3IhIGh0MSBodDIpCisgICJJZiBIVDEgaXMgaW1tdXRhYmxlLCBzaWduYWxzIGFuIGVy
cm9yLiBPdGhlcndpc2UsIGRlbGV0ZXMgdGhlCithc3NvY2lhdGlvbnMgb2YgSFQxIHdob3NlIGtl
eXMgYXJlIGFsc28gcHJlc2VudCBpbiBIVDIsIGFuZCB0aGVuIGFkZHMKK3RoZSBhc3NvY2lhdGlv
bnMgb2YgSFQyIHdob3NlIGtleXMgYXJlIG5vdCBwcmVzZW50IGluIEhUMSB0bworSFQxLiBSZXR1
cm5zIEhUMS4iCisgIChhc3NlcnQtbXV0YWJsZSBodDEpCisgIChoYXNoLWZvci1lYWNoIChsYW1i
ZGEgKGtleTIgdmFsMikKKyAgICAgICAgICAgICAgICAgICAoaWYgKGhhc2gtdGFibGUtY29udGFp
bnM/IGh0MSBrZXkyKQorICAgICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUh
IGh0MSBrZXkyKQorICAgICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1zZXQhIGh0MSBr
ZXkyIHZhbDIpKSkKKyAgICAgICAgICAgICAgICAgKGh0LXJlYWwtdGFibGUgaHQyKSkKKyAgaHQx
KQorCis7OyBlb2YKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0gYi90ZXN0LXN1
aXRlL01ha2VmaWxlLmFtCmluZGV4IDA5MzRkYmIzNC4uZTE1NDYwMmE3IDEwMDY0NAotLS0gYS90
ZXN0LXN1aXRlL01ha2VmaWxlLmFtCisrKyBiL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0KQEAgLTYz
LDYgKzYzLDcgQEAgU0NNX1RFU1RTID0gdGVzdHMvMDAtaW5pdGlhbC1lbnYudGVzdAkJXAogCSAg
ICB0ZXN0cy9mdHcudGVzdAkJCVwKIAkgICAgdGVzdHMvZnV0dXJlLnRlc3QJCQlcCiAJICAgIHRl
c3RzL2djLnRlc3QJCQlcCisgICAgICAgICAgICB0ZXN0cy9nZW5lcmljLWhhc2gtdGFibGVzLnRl
c3QgICAgICBcCiAJICAgIHRlc3RzL2dldG9wdC1sb25nLnRlc3QJCVwKIAkgICAgdGVzdHMvZ29v
cHMudGVzdAkJCVwKIAkgICAgdGVzdHMvZ3VhcmRpYW5zLnRlc3QJCVwKZGlmZiAtLWdpdCBhL3Rl
c3Qtc3VpdGUvdGVzdHMvZ2VuZXJpYy1oYXNoLXRhYmxlcy50ZXN0IGIvdGVzdC1zdWl0ZS90ZXN0
cy9nZW5lcmljLWhhc2gtdGFibGVzLnRlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwLi40OTRjYmY3MGEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0LXN1aXRlL3Rlc3RzL2dl
bmVyaWMtaGFzaC10YWJsZXMudGVzdApAQCAtMCwwICsxLDQxNSBAQAorOzs7OyBzcmZpLTY5LnRl
c3QgLS0tIFRlc3Qgc3VpdGUgZm9yIFNSRkkgNjkgLSotIHNjaGVtZSAtKi0KKzs7OzsKKzs7Ozsg
CUNvcHlyaWdodCAoQykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKzs7OzsK
Kzs7OzsgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorOzs7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCis7Ozs7IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorOzs7OyB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCis7Ozs7Cis7Ozs7IFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorOzs7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorOzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorOzs7OyBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7OworOzs7OyBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7Ozs7IExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKzs7OzsgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorCisoZGVmaW5lLW1vZHVsZSAodGVz
dC1nZW5lcmljLWhhc2gtdGFibGVzKQorICAjOnVzZS1tb2R1bGUgKHRlc3Qtc3VpdGUgbGliKQor
ICAjOnVzZS1tb2R1bGUgKGljZS05IGdlbmVyaWMtaGFzaC10YWJsZXMpCisgICM6dXNlLW1vZHVs
ZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTgpCisgICM6dXNlLW1v
ZHVsZSAoc3JmaSBzcmZpLTI2KSkKKworKGRlZmluZSAoc3RyaW5nLWNpLWFzc29jLWVxdWFsPyBs
ZWZ0IHJpZ2h0KQorICAiQW5zd2VyIHdoZXRoZXIgTEVGVCBhbmQgUklHSFQgYXJlIGVxdWFsLCBi
ZWluZyBhc3NvY2lhdGlvbnMgb2YKK2Nhc2UtaW5zZW5zaXRpdmUgc3RyaW5ncyB0byBgZXF1YWw/
Jy10ZXN0ZWQgdmFsdWVzLiIKKyAgKGFuZCAoc3RyaW5nLWNpPT8gKGNhciBsZWZ0KSAoY2FyIHJp
Z2h0KSkKKyAgICAgICAoZXF1YWw/IChjZHIgbGVmdCkgKGNkciByaWdodCkpKSkKKworKGRlZmlu
ZS1zeW50YXggd2l0aC1lbHQtaW4tbGlzdAorICAoc3ludGF4LXJ1bGVzICgpCisgICAgKCh3aXRo
LWVsdC1pbi1saXN0IGFyZyBhcmctbGlzdCBleHByIC4uLikKKyAgICAgKGxldCBsb29wICgoYXJn
LWxpc3QqIGFyZy1saXN0KSkKKyAgICAgICAob3IgKG51bGw/IGFyZy1saXN0KikKKyAgICAgICAg
ICAgKGFuZCAobGV0ICgoYXJnIChjYXIgYXJnLWxpc3QqKSkpCisgICAgICAgICAgICAgICAgICBl
eHByIC4uLikKKyAgICAgICAgICAgICAgICAobG9vcCAoY2RyIGFyZy1saXN0KikpKSkpKSkpCisK
KyhkZWZpbmUgKHRlc3Qtc3RyLXdlYWtuZXNzIHN0ciB3ZWFrbmVzcykKKyAgKGlmIChub3Qgd2Vh
a25lc3MpIHN0ciAoZm9ybWF0ICNmICJ+YSAod2Vha25lc3M6IH5hKSIgc3RyIHdlYWtuZXNzKSkp
CisKKyh3aXRoLXRlc3QtcHJlZml4ICJnZW5lcmljLWhhc2gtdGFibGVzIgorCisgIChwYXNzLWlm
LWV4Y2VwdGlvbiAiYmFkIHdlYWtuZXNzIGFyZyB0byBtaHQgc2lnbmFscyBhbiBlcnJvciIKKyAg
ICAgICcobWlzYy1lcnJvciAuICJeSW52YWxpZCBoYXNoIHRhYmxlIHdlYWtuZXNzIikKKyAgICAo
bWFrZS1oYXNoLXRhYmxlIGVxdWFsPyBoYXNoICM6d2Vha25lc3MgJ3dlYWsta2V5LW9yLXZhbHVl
KSkKKworICAocGFzcy1pZi1leGNlcHRpb24gInVuc3VwcG9ydGVkIHdlYWtuZXNzIGFyZyB0byBt
aHQgc2lnbmFscyBhbiBlcnJvciIKKyAgICAgICcobWlzYy1lcnJvciAuICJeVW5zdXBwb3J0ZWQg
aGFzaCB0YWJsZSB3ZWFrbmVzcyIpCisgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVhbD8gaGFzaCAj
OndlYWtuZXNzICdlcGhlbWVyYWwta2V5KSkKKworICAocGFzcy1pZiAiY2FuIHVzZSBhbGwgYXJn
dW1lbnRzLCBpbmNsdWRpbmcgc2l6ZSIKKyAgICAoaGFzaC10YWJsZT8gKG1ha2UtaGFzaC10YWJs
ZSBlcXVhbD8gaGFzaCAjOndlYWtuZXNzICd3ZWFrLWtleSAzMSkpKQorCisgIDs7IFRoZSBmb2xs
b3dpbmcgdGVzdHMgYXJlIGRvbmUgb25jZSB3aXRoIGVhY2gga2luZCBvZiB3ZWFrbmVzcworICAo
d2l0aC1lbHQtaW4tbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAnd2Vhay1rZXkgJ3dlYWstdmFsdWUg
J3dlYWsta2V5LWFuZC12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgInJl
ZmxlY3RpdmUgcXVlcmllcyBmdW5jdGlvbiBwcm9wZXJseSIgd2Vha25lc3MpCisgICAgICAobGV0
ICgoaHQgKG1ha2UtaGFzaC10YWJsZSBlcXY/ICNmICM6d2Vha25lc3Mgd2Vha25lc3MpKSkKKyAg
ICAgICAgKGFuZCAoaGFzaC10YWJsZS1tdXRhYmxlPyBodCkKKyAgICAgICAgICAgICAoZXE/IGVx
dj8gKGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQpKQorICAgICAgICAgICAgIChl
cT8gaGFzaC1ieS12YWx1ZSAoaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uIGh0KSkKKyAgICAgICAg
ICAgICAoZXE/IHdlYWtuZXNzIChoYXNoLXRhYmxlLXdlYWtuZXNzIGh0KSkKKyAgICAgICAgICAg
ICAoZXF1YWw/IChsaXN0IChoYXNoLXRhYmxlLWtleS13ZWFrbmVzcyBodCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLXZhbHVlLXdlYWtuZXNzIGh0KSkKKyAgICAgICAg
ICAgICAgICAgICAgIChjYXNlIHdlYWtuZXNzCisgICAgICAgICAgICAgICAgICAgICAgICgoI2Yp
ICcoI2YgI2YpKQorICAgICAgICAgICAgICAgICAgICAgICAoKHdlYWsta2V5KSAnKHdlYWsta2V5
cyAjZikpCisgICAgICAgICAgICAgICAgICAgICAgICgod2Vhay12YWx1ZSkgJygjZiB3ZWFrLXZh
bHVlcykpCisgICAgICAgICAgICAgICAgICAgICAgICgod2Vhay1rZXktYW5kLXZhbHVlKSAnKHdl
YWsta2V5cyB3ZWFrLXZhbHVlcykpKSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFr
bmVzcyAiaGFzaC10YWJsZS1jb250YWlucz8gZnVuY3Rpb25zIHByb3Blcmx5IiB3ZWFrbmVzcykK
KyAgICAgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtu
ZXNzKSkpCisgICAgICAgIChoYXNoLXRhYmxlLXNldC1zaW5nbGUhIGh0ICdhIDEpCisgICAgICAg
IChhbmQgKGhhc2gtdGFibGUtY29udGFpbnM/IGh0ICdhKQorICAgICAgICAgICAgIChub3QgKGhh
c2gtdGFibGUtY29udGFpbnM/IGh0ICdiKSkKKyAgICAgICAgICAgICAoYmVnaW4gKGhhc2gtdGFi
bGUtc2V0LXNpbmdsZSEgaHQgJ2IgMSkKKyAgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFibGUt
Y29udGFpbnM/IGh0ICdiKSkKKyAgICAgICAgICAgICAoYmVnaW4gKGhhc2gtdGFibGUtZGVsZXRl
LXNpbmdsZSEgaHQgJ2EpCisgICAgICAgICAgICAgICAgICAgIChub3QgKGhhc2gtdGFibGUtY29u
dGFpbnM/IGh0ICdhKSkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgInNt
YWxsIGFsaXN0PC0+aGFzaCB0YWJsZXMgcm91bmQtdHJpcCIgd2Vha25lc3MpCisgICAgICAobGV0
KiAoKHN0YXJ0LWFsaXN0ICcoKGEgLiAxKSAoYiAuIDIpIChjIC4gMykgKGEgLiA0MikpKQorICAg
ICAgICAgICAgIChodCAoYWxpc3QtPmhhc2gtdGFibGUgc3RhcnQtYWxpc3QgZXE/ICNmICM6d2Vh
a25lc3Mgd2Vha25lc3MpKQorICAgICAgICAgICAgIChlbmQtYWxpc3QgKGhhc2gtdGFibGUtPmFs
aXN0IGh0KSkpCisgICAgICAgIChhbmQgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAg
ICAgICAgICAobHNldD0gZXF1YWw/IGVuZC1hbGlzdCAodGFrZSBzdGFydC1hbGlzdCAzKSkKKyAg
ICAgICAgICAgICAoPSAxIChoYXNoLXRhYmxlLXJlZiBodCAnYSkpCisgICAgICAgICAgICAgKD0g
MiAoaGFzaC10YWJsZS1yZWYgaHQgJ2IpKQorICAgICAgICAgICAgICg9IDMgKGhhc2gtdGFibGUt
cmVmIGh0ICdjKSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAic3RyaW5n
LWNpPT8gdGFibGVzIHdvcmsgYnkgZGVmYXVsdCIgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQg
KGFsaXN0LT5oYXNoLXRhYmxlICcoKCJ4WSIgLiAyKSAoImFiYyIgLiA1NCkpIHN0cmluZy1jaT0/
ICNmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6d2Vha25lc3Mgd2Vha25l
c3MpKSkKKyAgICAgICAgKGhhc2gtdGFibGUtc2V0ISBodCAiWFkiIDQyICJxcXEiIDEwMCkKKyAg
ICAgICAgKGFuZCAoPSA1NCAoaGFzaC10YWJsZS1yZWYgaHQgIkFCYyIpKQorICAgICAgICAgICAg
ICg9IDQyIChoYXNoLXRhYmxlLXJlZiBodCAieHkiKSkKKyAgICAgICAgICAgICAoPSAzIChoYXNo
LXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChsc2V0PSBzdHJpbmctY2ktYXNzb2MtZXF1
YWw/CisgICAgICAgICAgICAgICAgICAgICcoKCJ4eSIgLiA0MikgKCJhYmMiIC4gNTQpICgicXFx
IiAuIDEwMCkpCisgICAgICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkp
CisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImVtcHR5IGhhc2ggdGFibGVzIGFy
ZSBlbXB0eSIgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKG1ha2UtaGFzaC10YWJsZSBlcT8g
I2YgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kICg9IDAgKGhhc2gtdGFibGUt
c2l6ZSBodCkpCisgICAgICAgICAgICAgKGhhc2gtdGFibGUtZW1wdHk/IGh0KQorICAgICAgICAg
ICAgIChudWxsPyAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpKQorCisgICAgKHBhc3MtaWYgKHRl
c3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlIGZ1bmN0aW9ucyBwcm9wZXJseSIgd2Vha25lc3Mp
CisgICAgICAobGV0ICgoaHQgKGhhc2gtdGFibGUgKGxpc3QgZXE/ICNmICM6d2Vha25lc3Mgd2Vh
a25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2EgMSAnYiAyICdjIDMpKSkKKyAg
ICAgICAgKGFuZCAoPSAzIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChsc2V0
PSBlcXVhbD8gJygoYSAuIDEpIChiIC4gMikgKGMgLiAzKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0
KSkKKyAgICAgICAgICAgICAoZXE/IHdlYWtuZXNzIChoYXNoLXRhYmxlLXdlYWtuZXNzIGh0KSkK
KyAgICAgICAgICAgICAobm90IChoYXNoLXRhYmxlLW11dGFibGU/IGh0KSkpKSkKKworICAgIChw
YXNzLWlmLWV4Y2VwdGlvbgorICAgICAgICAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUg
d2l0aCBlcXVpdmFsZW50IGtleXMgc2lnbmFscyBhbiBlcnJvciIgd2Vha25lc3MpCisgICAgICAg
ICcobWlzYy1lcnJvciAuICJeVHdvIGVxdWl2YWxlbnQga2V5cyB3ZXJlIHByb3ZpZGVkIikKKyAg
ICAgIChoYXNoLXRhYmxlIChsaXN0IHN0cmluZz0/ICNmICM6d2Vha25lc3Mgd2Vha25lc3MpCisg
ICAgICAgICAgICAgICAgICAiYSIgMSAiYiIgMiAiYyIgMyAiYSIgNCkpCisKKyAgICAocGFzcy1p
ZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtdW5mb2xkIGZ1bmN0aW9ucyBwcm9wZXJs
eSIgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKGhhc2gtdGFibGUtdW5mb2xkIChsYW1iZGEg
KGkpICg+PSBpIDUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRh
IChpKSAodmFsdWVzIGkgKCogaSAxMCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxKyAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxdj8gI2YgIzp3
ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kICg9IDUgKGhhc2gtdGFibGUtc2l6ZSBo
dCkpCisgICAgICAgICAgICAgKGVxPyB3ZWFrbmVzcyAoaGFzaC10YWJsZS13ZWFrbmVzcyBodCkp
CisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKCgwIC4gMCkgKDEgLiAxMCkgKDIgLiAyMCkg
KDMgLiAzMCkgKDQgLiA0MCkpCisgICAgICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLT5hbGlz
dCBodCkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGU9
PyBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0MSAoaGFzaC10
YWJsZS11bmZvbGQgKGxhbWJkYSAoaSkgKD49IGkgNSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAobGFtYmRhIChpKSAodmFsdWVzIGkgKCogaSAxMCkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMSsgMAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXF2PyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkKKyAgICAgICAgICAgICho
dDIgKGFsaXN0LT5oYXNoLXRhYmxlICcoKDAgLiAwKSAoMSAuIDEwKSAoMiAuIDIwKSAoMyAuIDMw
KSAoNCAuIDQwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxdj8gI2Yg
Izp3ZWFrbmVzcyB3ZWFrbmVzcykpCisgICAgICAgICAgICAoaHQzIChhbGlzdC0+aGFzaC10YWJs
ZSAnKCgwIC4gMCkgKDEgLiAxMCkgKDIgLiAyMCkgKDMgLiAzMCkgKDQgLiA0MCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcXVhbD8gI2YgIzp3ZWFrbmVzcyB3ZWFrbmVz
cykpCisgICAgICAgICAgICAoaHQ0IChhbGlzdC0+aGFzaC10YWJsZSAnKCgwIC4gMTApICgxIC4g
MTApICgyIC4gMjApICgzIC4gMzApICg0IC4gNDApKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXF2PyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkpCisgICAgICAgIChhbmQg
KGhhc2gtdGFibGU9PyBlcXY/IGh0MSBodDIpCisgICAgICAgICAgICAgKG5vdCAoaGFzaC10YWJs
ZT0/IGVxdj8gaHQxIGh0MykpCisgICAgICAgICAgICAgKG5vdCAoaGFzaC10YWJsZT0/IGVxdj8g
aHQxIGh0NCkpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKCgwIC4gMCkgKDEgLiAxMCkg
KDIgLiAyMCkgKDMgLiAzMCkgKDQgLiA0MCkpCisgICAgICAgICAgICAgICAgICAgIChoYXNoLXRh
YmxlLT5hbGlzdCBodDMpKSkpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJo
YXNoLXRhYmxlLXJlZiB1c2VzIGRlZmF1bHQiIHdlYWtuZXNzKQorICAgICAgKGVxdWFsPyAnKDQp
CisgICAgICAgICAgICAgIChoYXNoLXRhYmxlLXJlZiAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAu
IDEpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjOndlYWtuZXNzIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2IgKGN1dCBsaXN0ICgrIDIgMikpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25l
c3MgImhhc2gtdGFibGUtcmVmL2RlZmF1bHQgdXNlcyBkZWZhdWx0IiB3ZWFrbmVzcykKKyAgICAg
IChlcXVhbD8gJ2ZvbworICAgICAgICAgICAgICAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCAoYWxp
c3QtPmhhc2gtdGFibGUgJygoYSAuIDEpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6d2Vha25lc3Mgd2Vha25lc3MpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiICdmb28pKSkKKworICAgIChw
YXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1kZWxldGUhIGRlbGV0ZXMgcHJl
c2VudCBhc3NvY3MsIGlnbm9yZXMgb3RoZXJzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAu
IDEpIChiIC4gMikpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkpCisgICAgICAgIChhbmQg
KD0gMCAoaGFzaC10YWJsZS1kZWxldGUhIGh0ICdjKSkKKyAgICAgICAgICAgICAoPSAyIChoYXNo
LXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgICg9IDEgKGhhc2gtdGFibGUtZGVsZXRlISBo
dCAnYSkpCisgICAgICAgICAgICAgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAg
ICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiAyKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkK
KworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1kZWxldGUhIGRl
bGV0ZXMgc2V2ZXJhbCBrZXlzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWFr
bmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEpIChiIC4g
MikgKGQgLiA0KSAoZSAuIDUpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kICg9IDQgKGhhc2gtdGFi
bGUtc2l6ZSBodCkpCisgICAgICAgICAgICAgKD0gMyAoaGFzaC10YWJsZS1kZWxldGUhIGh0ICdh
ICdiICdjICdlKSkKKyAgICAgICAgICAgICAoPSAxIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAg
ICAgICAgICAgIChsc2V0PSBlcXVhbD8gJygoZCAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQp
KSkpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJhbGlzdC0+aGFzaC10YWJs
ZSBkb2VzIG5vdCByZXF1aXJlIGxpbmVhciBzdGFjayBzcGFjZSIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2Vha25lc3MpCisgICAgICAoZXF2PyA5OTk5OQorICAgICAgICAgICAg
KGhhc2gtdGFibGUtcmVmCisgICAgICAgICAgICAgKGFsaXN0LT5oYXNoLXRhYmxlICh1bmZvbGQt
cmlnaHQgKGN1dCA+PSA8PiAxMDAwMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGxhbWJkYSAocykgYCh4IC4gLHMpKSAxKyAwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykKKyAgICAgICAgICAgICAneCkpKQorCisgICAgKHBhc3Mt
aWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlLXVwZGF0ZSEgbW9kaWZpZXMgZXhpc3Rp
bmcgYmluZGluZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3MpCisg
ICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSkgZXE/ICNmICM6d2Vh
a25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYSAxKykK
KyAgICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYSAoY3V0ICsgNCA8PikgKGxhbWJkYSAo
KSA0MikpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAg
ICAgICAobHNldD0gZXF1YWw/ICcoKGEgLiA2KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkK
KworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS11cGRhdGUhIGNy
ZWF0ZXMgbmV3IGJpbmRpbmcgd2hlbiBhcHByb3ByaWF0ZSIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKG1ha2UtaGFzaC10YWJsZSBl
cT8gI2YgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUh
IGh0ICdiIDErIChsYW1iZGEgKCkgNDIpKQorICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0
ICdiIChjdXQgKyAxMCA8PikpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0
KSkKKyAgICAgICAgICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiA1MykpIChoYXNoLXRhYmxlLT5h
bGlzdCBodCkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFi
bGUtaW50ZXJuISBjcmVhdGVzIG5ldyBiaW5kaW5nIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGVxPyAj
ZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1p
bnRlcm4hIGh0ICdiIChjb25zdCAxKSkpCisgICAgICAgICAgICAgKD0gMSAoaGFzaC10YWJsZS1z
aXplIGh0KSkKKyAgICAgICAgICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiAxKSkgKGhhc2gtdGFi
bGUtPmFsaXN0IGh0KSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFz
aC10YWJsZS1pbnRlcm4hIGRvZXNuJ3QgbW9kaWZ5IGV4aXN0aW5nIGJpbmRpbmciCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChhbGlz
dC0+aGFzaC10YWJsZSAnKChhIC4gMSkpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkpCisg
ICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1pbnRlcm4hIGh0ICdhIChjb25zdCAyKSkpCisg
ICAgICAgICAgICAgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICAgICAobHNl
dD0gZXF1YWw/ICcoKGEgLiAxKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkKKworICAgIChw
YXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1wb3AhIGZ1bmN0aW9ucyBwcm9w
ZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3MpCisgICAgICAo
bGV0KiAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/ICNmICM6
d2Vha25lc3Mgd2Vha25lc3MpKQorICAgICAgICAgICAgIChwb3BwZWQgKHJlY2VpdmUgKGtleSB2
YWwpIChoYXNoLXRhYmxlLXBvcCEgaHQpIChsaXN0IGtleSB2YWwpKSkpCisgICAgICAgIChvciAo
YW5kIChlcXVhbD8gJyhhIDEpIHBvcHBlZCkKKyAgICAgICAgICAgICAgICAgKGVxdWFsPyAnKChi
IC4gMikpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKQorICAgICAgICAgICAgKGFuZCAoZXF1YWw/
ICcoYiAyKSBwb3BwZWQpCisgICAgICAgICAgICAgICAgIChlcXVhbD8gJygoYSAuIDEpKSAoaGFz
aC10YWJsZS0+YWxpc3QgaHQpKSkpKSkKKworICAgIChwYXNzLWlmLWV4Y2VwdGlvbgorICAgICAg
ICAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtcG9wISB3aXRoIGVtcHR5IGhhc2ggdGFi
bGUgc2lnbmFscyBhbiBlcnJvciIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNz
KQorICAgICAgICAnKG1pc2MtZXJyb3IgLiAiXkhhc2ggdGFibGUgaXMgZW1wdHkiKQorICAgICAg
KGhhc2gtdGFibGUtcG9wISAobWFrZS1oYXNoLXRhYmxlIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtu
ZXNzKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtY2xl
YXIhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAo
YiAuIDIpKSBlcT8gI2YgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoaGFzaC10YWJs
ZS1jbGVhciEgaHQpCisgICAgICAgIChhbmQgKD0gMCAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAg
ICAgICAgICAgICAoaGFzaC10YWJsZS1lbXB0eT8gaHQpCisgICAgICAgICAgICAgKG51bGw/ICho
YXNoLXRhYmxlLT5hbGlzdCBodCkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25l
c3MgImhhc2gtdGFibGUtZmluZCBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAg
KGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpKSBl
cT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFr
bmVzcykpKQorICAgICAgICAoYW5kIChlcT8gJ2IgKGhhc2gtdGFibGUtZmluZCAobGFtYmRhIChr
ZXkgdmFsKSAoYW5kIChldmVuPyB2YWwpIGtleSkpIGh0CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsYW1iZGEgKCkgI2YpKSkKKyAgICAgICAgICAgICAobm90IChoYXNo
LXRhYmxlLWZpbmQgKGxhbWJkYSAoa2V5IHZhbCkgKD0gdmFsIDQpKSBodAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhICgpICNmKSkpKSkpCisKKyAgICAocGFzcy1p
ZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtY291bnQgZnVuY3Rpb25zIHByb3Blcmx5
IiB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEp
IChiIC4gMikgKGMgLiAzKSAoZCAuIDQpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kICg9IDIgKGhh
c2gtdGFibGUtY291bnQgKGxhbWJkYSAoa2V5IHZhbCkgKGV2ZW4/IHZhbCkpIGh0KSkKKyAgICAg
ICAgICAgICAoPSAxIChoYXNoLXRhYmxlLWNvdW50IChsYW1iZGEgKGtleSB2YWwpICg9IHZhbCA0
KSkgaHQpKQorICAgICAgICAgICAgICg9IDAgKGhhc2gtdGFibGUtY291bnQgKGxhbWJkYSAoa2V5
IHZhbCkgKD0gdmFsIDUpKSBodCkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25l
c3MgImhhc2ggdGFibGUga2V5cyBhbmQgdmFsdWVzIGFyZSBjb3JyZWN0IiB3ZWFrbmVzcykKKyAg
ICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEpIChiIC4gMikgKGMgLiAz
KSAoZCAuIDQpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3
ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kIChsc2V0PSBlcT8gJyhhIGIgYyBkKSAo
aGFzaC10YWJsZS1rZXlzIGh0KSkKKyAgICAgICAgICAgICAobHNldD0gPSAgICcoMSAyIDMgNCkg
KGhhc2gtdGFibGUtdmFsdWVzIGh0KSkKKyAgICAgICAgICAgICAocmVjZWl2ZSAoa2V5cyB2YWxz
KSAoaGFzaC10YWJsZS1lbnRyaWVzIGh0KQorICAgICAgICAgICAgICAgKGFuZCAobHNldD0gZXE/
ICcoYSBiIGMgZCkga2V5cykKKyAgICAgICAgICAgICAgICAgICAgKGxzZXQ9ID0gICAnKDEgMiAz
IDQpIHZhbHMpKSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaCB0
YWJsZSBrZXkgYW5kIHZhbHVlIHZlY3RvcnMgYXJlIGNvcnJlY3QiIHdlYWtuZXNzKQorICAgICAg
KGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpIChk
IC4gNCkpIGVxPyAjZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOndlYWtu
ZXNzIHdlYWtuZXNzKSkpCisgICAgICAgIChhbmQgKGxzZXQ9IGVxPyAnKGEgYiBjIGQpICh2ZWN0
b3ItPmxpc3QgKGhhc2gtdGFibGUta2V5LXZlY3RvciBodCkpKQorICAgICAgICAgICAgIChsc2V0
PSA9ICAgJygxIDIgMyA0KSAodmVjdG9yLT5saXN0IChoYXNoLXRhYmxlLXZhbHVlLXZlY3RvciBo
dCkpKQorICAgICAgICAgICAgIChyZWNlaXZlIChrZXlzIHZhbHMpIChoYXNoLXRhYmxlLWVudHJ5
LXZlY3RvcnMgaHQpCisgICAgICAgICAgICAgICAoYW5kIChsc2V0PSBlcT8gJyhhIGIgYyBkKSAo
dmVjdG9yLT5saXN0IGtleXMpKQorICAgICAgICAgICAgICAgICAgICAobHNldD0gPSAgICcoMSAy
IDMgNCkgKHZlY3Rvci0+bGlzdCB2YWxzKSkpKSkpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3Ry
LXdlYWtuZXNzICJoYXNoLXRhYmxlLW1hcCBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQor
ICAgICAgKGxldCogKChodDEgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIpKSBl
cT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOndlYWtuZXNzIHdl
YWtuZXNzKSkKKyAgICAgICAgICAgICAoaHQyIChoYXNoLXRhYmxlLW1hcCAxKyBodDEgZXE/ICNm
KSkpCisgICAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAg
ICAgKGxzZXQ9IGVxdWFsPyAnKChhIC4gMikgKGIgLiAzKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0
MikpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtbWFw
ISBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChhbGlzdC0+
aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/ICNmCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICM6d2Vha25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKGhhc2gtdGFi
bGUtbWFwISAobGFtYmRhIChrZXkgdmFsKSAoKyB2YWwgMSkpIGh0KQorICAgICAgICAoYW5kICg9
IDIgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKChh
IC4gMikgKGIgLiAzKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkKKworICAgIChwYXNzLWlm
ICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1mb3ItZWFjaCBpZ25vcmVzIHJldHVybiB2
YWx1ZXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNzKQorICAgICAg
KGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpKSBl
cT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFr
bmVzcykpKQorICAgICAgICAoZm9yLWVhY2ggKGN1dCBoYXNoLXRhYmxlLWZvci1lYWNoIDw+IGh0
KQorICAgICAgICAgICAgICAgICAgKGxpc3QgKGxhbWJkYSAoayB2KSAodmFsdWVzKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGsgdikgKHZhbHVlcyAxIDIgMykpKSkKKyAgICAg
ICAgI3QpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlLW1h
cC0+bGlzdCBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChh
bGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/ICNmCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICM6d2Vha25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKGFu
ZCAobHNldD0gZXE/ICcoYSBiKSAoaGFzaC10YWJsZS1tYXAtPmxpc3QgKGxhbWJkYSAoa2V5IHZh
bCkga2V5KSBodCkpCisgICAgICAgICAgICAgKGxzZXQ9ID0gJygxIDIpIChoYXNoLXRhYmxlLW1h
cC0+bGlzdCAobGFtYmRhIChrZXkgdmFsKSB2YWwpIGh0KSkpKSkKKworICAgIChwYXNzLWlmICh0
ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1mb2xkIGZ1bmN0aW9ucyBwcm9wZXJseSIgd2Vh
a25lc3MpCisgICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAu
IDIpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVz
cyB3ZWFrbmVzcykpKQorICAgICAgICAoPSAzIChoYXNoLXRhYmxlLWZvbGQgKGxhbWJkYSAoa2V5
IHZhbCBhY2MpICgrIHZhbCBhY2MpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCBo
dCkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1wcnVu
ZSEgZnVuY3Rpb25zIHByb3Blcmx5IiB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3Qt
Pmhhc2gtdGFibGUgJygoYSAuIDEpIChiIC4gMikgKGMgLiAzKSAoZCAuIDQpKSBlcT8gI2YKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQor
ICAgICAgICAoaGFzaC10YWJsZS1wcnVuZSEgKGxhbWJkYSAoa2V5IHZhbCkgKGV2ZW4/IHZhbCkp
IGh0KQorICAgICAgICAobHNldD0gZXF1YWw/ICcoKGEgLiAxKSAoYyAuIDMpKSAoaGFzaC10YWJs
ZS0+YWxpc3QgaHQpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gt
dGFibGUtY29weSBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0
IChoYXNoLXRhYmxlLWNvcHkgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIpKSBl
cT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAjOndlYWtuZXNzIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IzptdXRhYmxlICN0KSkpCisgICAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0KSkK
KyAgICAgICAgICAgICAobHNldD0gZXF1YWw/ICcoKGEgLiAxKSAoYiAuIDIpKSAoaGFzaC10YWJs
ZS0+YWxpc3QgaHQpKQorICAgICAgICAgICAgIChoYXNoLXRhYmxlLW11dGFibGU/IGh0KSkpKQor
CisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlLXVuaW9uISBmdW5j
dGlvbnMgcHJvcGVybHkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNz
KQorICAgICAgKGxldCogKChodDEgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIp
KSBlcT8gI2YgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpCisgICAgICAgICAgICAgKGh0MiAoYWxpc3Qt
Pmhhc2gtdGFibGUgJygoYiAuIDMpIChjIC4gNCkpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNz
KSkpCisgICAgICAgIChzZXQhIGh0MSAoaGFzaC10YWJsZS11bmlvbiEgaHQxIGh0MikpCisgICAg
ICAgIChhbmQgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0MSkpCisgICAgICAgICAgICAgKD0gMiAo
aGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKChhIC4g
MSkgKGIgLiAyKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQxKSkKKyAgICAgICAgICAg
ICAobHNldD0gZXF1YWw/ICcoKGIgLiAzKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQy
KSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1pbnRl
cnNlY3Rpb24hIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2Vha25lc3MpCisgICAgICAobGV0KiAoKGh0MSAoYWxpc3QtPmhhc2gtdGFibGUgJygo
YSAuIDEpIChiIC4gMikpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkKKyAgICAgICAgICAg
ICAoaHQyIChhbGlzdC0+aGFzaC10YWJsZSAnKChiIC4gMykgKGMgLiA0KSkgZXE/ICNmICM6d2Vh
a25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKHNldCEgaHQxIChoYXNoLXRhYmxlLWludGVyc2Vj
dGlvbiEgaHQxIGh0MikpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0MSkp
CisgICAgICAgICAgICAgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAgICAg
KGxzZXQ9IGVxdWFsPyAnKChiIC4gMikpIChoYXNoLXRhYmxlLT5hbGlzdCBodDEpKQorICAgICAg
ICAgICAgIChsc2V0PSBlcXVhbD8gJygoYiAuIDMpIChjIC4gNCkpIChoYXNoLXRhYmxlLT5hbGlz
dCBodDIpKSkpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxl
LWRpZmZlcmVuY2UhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2Vha25lc3MpCisgICAgICAobGV0KiAoKGh0MSAoYWxpc3QtPmhhc2gtdGFibGUg
JygoYSAuIDEpIChiIC4gMikpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkKKyAgICAgICAg
ICAgICAoaHQyIChhbGlzdC0+aGFzaC10YWJsZSAnKChiIC4gMykgKGMgLiA0KSkgZXE/ICNmICM6
d2Vha25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKHNldCEgaHQxIChoYXNoLXRhYmxlLWRpZmZl
cmVuY2UhIGh0MSBodDIpKQorICAgICAgICAoYW5kICg9IDEgKGhhc2gtdGFibGUtc2l6ZSBodDEp
KQorICAgICAgICAgICAgICg9IDIgKGhhc2gtdGFibGUtc2l6ZSBodDIpKQorICAgICAgICAgICAg
IChsc2V0PSBlcXVhbD8gJygoYSAuIDEpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQxKSkKKyAgICAg
ICAgICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiAzKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxp
c3QgaHQyKSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJs
ZS14b3IhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2Vha25lc3MpCisgICAgICAobGV0KiAoKGh0MSAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAu
IDEpIChiIC4gMikpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkKKyAgICAgICAgICAgICAo
aHQyIChhbGlzdC0+aGFzaC10YWJsZSAnKChiIC4gMykgKGMgLiA0KSkgZXE/ICNmICM6d2Vha25l
c3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKHNldCEgaHQxIChoYXNoLXRhYmxlLXhvciEgaHQxIGh0
MikpCisgICAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0MSkpCisgICAgICAgICAg
ICAgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFs
PyAnKChhIC4gMSkgKGMgLiA0KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0MSkpCisgICAgICAgICAg
ICAgKGxzZXQ9IGVxdWFsPyAnKChiIC4gMykgKGMgLiA0KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0
MikpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImltbXV0YWJsZSBoYXNo
IHRhYmxlcyBhcmUgaW1tdXRhYmxlIiB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoaGFzaC10
YWJsZS1jb3B5IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/ICNmCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFr
bmVzcyB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6bXV0YWJs
ZSAjZikpKQorICAgICAgICAoYW5kICg9IDIgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAg
ICAgICAgKG5vdCAoaGFzaC10YWJsZS1tdXRhYmxlPyBodCkpKSkpCisKKyAgICA7OyBUZXN0cyB3
aGV0aGVyIGVhY2ggb2YgdGhlIGZvbGxvd2luZyBwcm9jZWR1cmUgc2lnbmFscyBhbiBlcnJvciBv
bgorICAgIDs7IGltbXV0YWJsZSBoYXNoIHRhYmxlcworICAgICh3aXRoLWVsdC1pbi1saXN0IHN5
bStwcm9jCisgICAgICAgIChsaXN0CisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS1zZXQhCisg
ICAgICAgICAgICAgICAobGFtYmRhIChodCkgKGhhc2gtdGFibGUtc2V0ISBodCAnYSAyICdiIDMp
KSkKKyAgICAgICAgIChjb25zICdoYXNoLXRhYmxlLXNldC1zaW5nbGUhCisgICAgICAgICAgICAg
ICAobGFtYmRhIChodCkgKGhhc2gtdGFibGUtc2V0LXNpbmdsZSEgaHQgJ2EgMikpKQorICAgICAg
ICAgKGNvbnMgJ2hhc2gtdGFibGUtZGVsZXRlIQorICAgICAgICAgICAgICAgKGxhbWJkYSAoaHQp
IChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgJ2EgJ2IpKSkKKyAgICAgICAgIChjb25zICdoYXNoLXRh
YmxlLWRlbGV0ZS1zaW5nbGUhCisgICAgICAgICAgICAgICAobGFtYmRhIChodCkgKGhhc2gtdGFi
bGUtZGVsZXRlLXNpbmdsZSEgaHQgJ2EpKSkKKyAgICAgICAgIChjb25zICdoYXNoLXRhYmxlLWlu
dGVybiEKKyAgICAgICAgICAgICAgIChsYW1iZGEgKGh0KSAoaGFzaC10YWJsZS1pbnRlcm4hIGh0
ICdhIChjb25zdCAyKSkpKQorICAgICAgICAgKGNvbnMgJ2hhc2gtdGFibGUtdXBkYXRlIQorICAg
ICAgICAgICAgICAgKGxhbWJkYSAoaHQpIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQgJ2EgMSspKSkK
KyAgICAgICAgIChjb25zICdoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdAorICAgICAgICAgICAg
ICAgKGxhbWJkYSAoaHQpIChoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdCBodCAnYSAxKyAwKSkp
CisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS1wb3AhCisgICAgICAgICAgICAgICAobGFtYmRh
IChodCkgKGhhc2gtdGFibGUtcG9wISBodCkpKQorICAgICAgICAgKGNvbnMgJ2hhc2gtdGFibGUt
Y2xlYXIhCisgICAgICAgICAgICAgICAobGFtYmRhIChodCkgKGhhc2gtdGFibGUtY2xlYXIhIGh0
KSkpCisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS1wcnVuZSEKKyAgICAgICAgICAgICAgIChs
YW1iZGEgKGh0KSAoaGFzaC10YWJsZS1wcnVuZSEgKGxhbWJkYSAoa2V5IHZhbCkgI3QpIGh0KSkp
CisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS11bmlvbiEKKyAgICAgICAgICAgICAgIChsYW1i
ZGEgKGh0KSAoaGFzaC10YWJsZS11bmlvbiEgaHQgaHQpKSkKKyAgICAgICAgIChjb25zICdoYXNo
LXRhYmxlLWludGVyc2VjdGlvbiEKKyAgICAgICAgICAgICAgIChsYW1iZGEgKGh0KSAoaGFzaC10
YWJsZS1pbnRlcnNlY3Rpb24hIGh0IGh0KSkpCisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS1k
aWZmZXJlbmNlIQorICAgICAgICAgICAgICAgKGxhbWJkYSAoaHQpIChoYXNoLXRhYmxlLWRpZmZl
cmVuY2UhIGh0IGh0KSkpCisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS14b3IhCisgICAgICAg
ICAgICAgICAobGFtYmRhIChodCkgKGhhc2gtdGFibGUteG9yISBodCBodCkpKSkKKyAgICAgIChw
YXNzLWlmLWV4Y2VwdGlvbgorICAgICAgICAgICh0ZXN0LXN0ci13ZWFrbmVzcworICAgICAgICAg
ICAoZm9ybWF0ICNmICJ+YSB3aXRoIGltbXV0YWJsZSBoYXNoIHRhYmxlIHNpZ25hbHMgYW4gZXJy
b3IiIChjYXIgc3ltK3Byb2MpKQorICAgICAgICAgICB3ZWFrbmVzcykKKyAgICAgICAgICAnKG1p
c2MtZXJyb3IgLiAiXkhhc2ggdGFibGUgaXMgbm90IG11dGFibGUiKQorICAgICAgICAobGV0ICgo
aHQgKGhhc2gtdGFibGUtY29weSAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEpIChiIC4gMikp
IGVxPyAjZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIzptdXRhYmxlICNmKSkpCisgICAgICAgICAgKChjZHIgc3ltK3Byb2MpIGh0KSkpKQor
ICAgICkKKyAgKQotLSAKMi4xOS4xCgo=
--000000000000b6a39d057efb700b--





Last modified: Wed, 9 Jan 2019 00:30:01 UTC

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