From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Okamsn via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#70208: [PATCH] Add command `list-keyboard-macros` Date: Fri, 05 Apr 2024 03:34:59 +0000 Message-ID: Reply-To: Okamsn Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_9a3xDn5WJ6Zk3v2FLab9HXWqwIbRXPkji9xsoqdI3VE" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30167"; mail-complaints-to="usenet@ciao.gmane.io" To: 70208@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Apr 05 05:36:29 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rsaNQ-0007f6-Fr for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 05 Apr 2024 05:36:28 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rsaMz-0003g3-KU; Thu, 04 Apr 2024 23:36:01 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rsaMw-0003fo-ID for bug-gnu-emacs@gnu.org; Thu, 04 Apr 2024 23:35:59 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rsaMw-0005HN-9H for bug-gnu-emacs@gnu.org; Thu, 04 Apr 2024 23:35:58 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rsaN1-0002ov-IE for bug-gnu-emacs@gnu.org; Thu, 04 Apr 2024 23:36:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Okamsn Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 05 Apr 2024 03:36:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 70208 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.171228813310686 (code B ref -1); Fri, 05 Apr 2024 03:36:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 5 Apr 2024 03:35:33 +0000 Original-Received: from localhost ([127.0.0.1]:35055 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rsaMS-0002lh-Es for submit@debbugs.gnu.org; Thu, 04 Apr 2024 23:35:33 -0400 Original-Received: from lists.gnu.org ([2001:470:142::17]:38894) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rsaMO-0002lC-T1 for submit@debbugs.gnu.org; Thu, 04 Apr 2024 23:35:26 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rsaME-0003eD-8V for bug-gnu-emacs@gnu.org; Thu, 04 Apr 2024 23:35:14 -0400 Original-Received: from mail-40134.protonmail.ch ([185.70.40.134]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rsaMA-0004uV-I1 for bug-gnu-emacs@gnu.org; Thu, 04 Apr 2024 23:35:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1712288103; x=1712547303; bh=MFdS9sbLbXFeLqLhk0mxPdryXYO067WIVLhPnpT1Eu8=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=u65RwNCtSl+zUygHbaFNovcv4xTItrvsml0BXkpXIwzGdWCNC/uPhSweQqdOxnnKL ROiVi2DSQG3nxbzffY1bJ0qvN4lXK/8kFz/e9dc6wqBpX9F4LdOaWneh0vmLmy6nSQ x8EMgQXTSrEm3VR5HvKFY3u4W3Cg20Zb8tYXSlSNuUheZzbWLlzw9L6l6tV7WTRy3V CwjqEXnXJurxyXPXZCfvrkL9LQuSUVl1WrnYQLv9KAUcHbXOpn7Q+Hy0lPBejJMBhF HHdTqoVQjBVWAwwI1dDP3kMd8W3nfUY5I0KPplL4mybNbED/EhrJcRnYVCitug1ZSJ sFon76o3sRMUA== Feedback-ID: 25935600:user:proton Received-SPF: pass client-ip=185.70.40.134; envelope-from=okamsn@protonmail.com; helo=mail-40134.protonmail.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:282684 Archived-At: This is a multi-part message in MIME format. --b1_9a3xDn5WJ6Zk3v2FLab9HXWqwIbRXPkji9xsoqdI3VE Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello, The attached patch adds the command `list-keyboard-macros`, which works=20 like `list-buffers` using `tabulated-list-mode`. It allows for=20 re-arranging the macros in the ring; editing their counters, counter=20 formats, and macro keys; deleting macros in the ring; and duplicating=20 macros for further editing. Please let me know what you think. I followed the naming scheme used by=20 Dired for a few of the commands, but don't know if that's best. Thank you. --b1_9a3xDn5WJ6Zk3v2FLab9HXWqwIbRXPkji9xsoqdI3VE Content-Type: text/x-patch; charset=UTF-8; name=0001-Add-command-list-keyboard-macros-that-works-like-lis.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-Add-command-list-keyboard-macros-that-works-like-lis.patch RnJvbSAzZGM3MmI2YTQxYzBlYTYxNjAyZGI0MzgyM2Q1Y2VmYWVkNWI1NGU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFYXJsIEh5YXR0IDxva2Ftc25AcHJvdG9ubWFpbC5jb20+CkRh dGU6IFN1biwgMjQgTWFyIDIwMjQgMTE6NDk6MjEgLTA0MDAKU3ViamVjdDogW1BBVENIXSBBZGQg Y29tbWFuZCAnbGlzdC1rZXlib2FyZC1tYWNyb3MnIHRoYXQgd29ya3MgbGlrZQogJ2xpc3QtYnVm ZmVycycuCgpUaGUgY29tbWFuZCAnbGlzdC1rZXlib2FyZC1tYWNyb3MnIGFsbG93cyBlZGl0aW5n IGFuZCByZS1hcnJhbmdpbmcKbWFjcm9zIHVzaW5nICd0YWJ1bGF0ZWQtbGlzdC1tb2RlJy4gIEV4 aXN0aW5nIGtleWJvYXJkIG1hY3JvcyBjYW4gYmUKZHVwbGljYXRlZCBvciBkZWxldGVkLiAgTWFj cm8gY291bnRlcnMgYW5kIGNvdW50ZXIgZm9ybWF0cyBjYW4gdGFrZSBuZXcKdmFsdWVzIHJlYWQg ZnJvbSB0aGUgbWluaWJ1ZmZlci4gIE1hY3JvIGtleXMgY2FuIGJlIGVkaXRlZCB1c2luZwonZWRp dC1rYmQtbWFjcm8nLgoKKiBkb2MvZW1hY3Mva21hY3JvLnRleGkgKEtleWJvYXJkIE1hY3Jvcyk6 IE1lbnRpb24gdGhlIG5ldyBjb21tYW5kCmluIHRoZSBzZWN0aW9uIGludHJvZHVjdGlvbiwgc2lu Y2UgaXQgcmVsYXRlcyB0byBtdWx0aXBsZSBzdWJzZWN0aW9ucy4KKiBldGMvTkVXUyAoS21hY3Jv IE1lbnUgTW9kZSk6IE1lbnRpb24gdGhlIG5ldyBtb2RlIGFuZCBjb21tYW5kLgoqIGxpc3Ava21h Y3JvLmVsIChrbWFjcm8tbWVudS1tYXJrLCBrbWFjcm8tbWVudS1tYXJrZWQpCihrbWFjcm8tbWVu dS1mbGFnZ2VkKTogQWRkIGZhY2VzIGZvciBtYXJrcyBhbmQgZmxhZ3MuCiogbGlzcC9rbWFjcm8u ZWwgKGttYWNyby1tZW51LW1vZGUtbWFwLCBrbWFjcm8tbWVudS1tb2RlKTogQWRkIG1vZGUKYW5k IG1hcC4KKiBsaXNwL2ttYWNyby5lbCAobGlzdC1rZXlib2FyZC1tYWNyb3MpOiBBZGQgY29tbWFu ZC4KKiBsaXNwL2ttYWNyby5lbCAoa21hY3JvLW1lbnUtLWRlbGV0aW9uLWZsYWdzLCBrbWFjcm8t bWVudS0tbWFya3MpCihrbWFjcm8tbWVudS0taWQta21hY3JvLCBrbWFjcm8tbWVudS0taWQtcG9z aXRpb24sIGttYWNyby1tZW51LS1rbWFjcm9zKQooa21hY3JvLW1lbnUtLXJlZnJlc2gsIGttYWNy by1tZW51LS1tYXAtaWRzLCBrbWFjcm8tbWVudS0tdXBkYXRlKQooa21hY3JvLW1lbnUtLXVwZGF0 ZS1hdCwga21hY3JvLW1lbnUtLXF1ZXJ5LXJldmVydCwga21hY3JvLW1lbnUtLWFzc2VydC1yb3cp CihrbWFjcm8tbWVudS0tcHJvcGVydGl6ZS1rZXlzLCBrbWFjcm8tbWVudS0tZG8tcmVnaW9uKQoo a21hY3JvLW1lbnUtLW1hcmtzLWV4aXN0LXApOiBBZGQgdXRpbGl0eSBmdW5jdGlvbnMgb2YgbW9k ZQphbmQgY29tbWFuZHMuCiogbGlzcC9rbWFjcm8uZWwgKGttYWNyby1tZW51LW1hcmssIGttYWNy by1tZW51LWZsYWctZm9yLWRlbGV0aW9uKQooa21hY3JvLW1lbnUtdW5tYXJrLCBrbWFjcm8tbWVu dS11bm1hcmstYmFja3dhcmQpCihrbWFjcm8tbWVudS11bm1hcmstYWxsKTogQWRkIGNvbW1hbmRz IGZvciBtYXJrcyBhbmQgZmxhZ3MuCiogbGlzcC9rbWFjcm8uZWwgKGttYWNyby1tZW51LWRvLWZs YWdnZWQtZGVsZXRlLCBrbWFjcm8tbWVudS1kby1jb3B5KQooa21hY3JvLW1lbnUtZG8tZGVsZXRl KTogQWRkIGNvbW1hbmRzIHRoYXQgbW9kaWZ5IHRoZSByaW5nLgoqIGxpc3Ava21hY3JvLmVsIChr bWFjcm8tbWVudS1lZGl0LXBvc2l0aW9uLCBrbWFjcm8tbWVudS10cmFuc3Bvc2UpCihrbWFjcm8t bWVudS1lZGl0LWZvcm1hdCwga21hY3JvLW1lbnUtZWRpdC1jb3VudGVyKQooa21hY3JvLW1lbnUt ZWRpdC1rZXlzLCBrbWFjcm8tbWVudS1lZGl0LWNvbHVtbik6IEFkZCBjb21tYW5kcyB0aGF0Cm1v ZGlmeSBhIGtleWJvYXJkIG1hY3JvLgotLS0KIGRvYy9lbWFjcy9rbWFjcm8udGV4aSB8ICAgNiAr CiBldGMvTkVXUyAgICAgICAgICAgICAgfCAgIDggKwogbGlzcC9rbWFjcm8uZWwgICAgICAgIHwg NTA4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBj aGFuZ2VkLCA1MjIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9lbWFjcy9rbWFjcm8u dGV4aSBiL2RvYy9lbWFjcy9rbWFjcm8udGV4aQppbmRleCBlMzBkZWYzNDQ3NS4uZDAxMDZmY2U1 ZDEgMTAwNjQ0Ci0tLSBhL2RvYy9lbWFjcy9rbWFjcm8udGV4aQorKysgYi9kb2MvZW1hY3Mva21h Y3JvLnRleGkKQEAgLTI0LDYgKzI0LDEyIEBAIEtleWJvYXJkIE1hY3Jvcwoga2V5Ym9hcmQgbWFj cm8gaXMgZGVmaW5lZCBhbmQgYWxzbyBoYXMgYmVlbiwgaW4gZWZmZWN0LCBleGVjdXRlZCBvbmNl LgogWW91IGNhbiB0aGVuIGRvIHRoZSB3aG9sZSB0aGluZyBvdmVyIGFnYWluIGJ5IGludm9raW5n IHRoZSBtYWNyby4KIAorICBUaGUgbGlzdCBvZiBkZWZpbmVkIGtleWJvYXJkIG1hY3JvcyBjYW4g YmUgc2VlbiB2aWEgQGtiZHtNLXgKK2xpc3Qta2V5Ym9hcmQtbWFjcm9zIEBrZXl7UkVUfX0uICBU aGlzIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gcmUtb3JkZXIKK3RoZSBsaXN0IG9mIGRlZmluZWQg bWFjcm9zICh0aGUgQGRmbntrZXlib2FyZCBtYWNybyByaW5nfSkgYW5kIHRvIGVkaXQKK3RoZSBw cm9wZXJ0aWVzIG9mIHRob3NlIGtleWJvYXJkIG1hY3Jvcywgd2hpY2ggYXJlIGRlc2NyaWJlZCBp biB0aGUKK2ZvbGxvd2luZyBzdWJzZWN0aW9ucy4KKwogICBLZXlib2FyZCBtYWNyb3MgZGlmZmVy IGZyb20gb3JkaW5hcnkgRW1hY3MgY29tbWFuZHMgaW4gdGhhdCB0aGV5IGFyZQogd3JpdHRlbiBp biB0aGUgRW1hY3MgY29tbWFuZCBsYW5ndWFnZSByYXRoZXIgdGhhbiBpbiBMaXNwLiAgVGhpcyBt YWtlcyBpdAogZWFzaWVyIGZvciB0aGUgbm92aWNlIHRvIHdyaXRlIHRoZW0sIGFuZCBtYWtlcyB0 aGVtIG1vcmUgY29udmVuaWVudCBhcwpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwpp bmRleCBlZGE4NGQ1ODhhOC4uZTU2MTIyY2QwMGQgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBi L2V0Yy9ORVdTCkBAIC0xMzg4LDYgKzEzODgsMTQgQEAgV2hlbiB0aGlzIGlzIG5vbi1uaWwsIHRo ZSBsaW5lcyBvZiBrZXkgc2VxdWVuY2VzIGFyZSBkaXNwbGF5ZWQgd2l0aAogdGhlIG1vc3QgcmVj ZW50IGxpbmUgZmlyc3QuICBUaGlzIGlzIGNhbiBiZSB1c2VmdWwgd2hlbiB3b3JraW5nIHdpdGgK IG1hY3JvcyB3aXRoIG1hbnkgbGluZXMsIHN1Y2ggYXMgZnJvbSAna21hY3JvLWVkaXQtbG9zc2Fn ZScuCiAKKyoqIEttYWNybyBNZW51IE1vZGUKKworKioqIE5ldyBtb2RlIGFuZCBuZXcgY29tbWFu ZCAnbGlzdC1rZXlib2FyZC1tYWNyb3MnLgorVGhpcyBpcyB0aGUgbWFjcm8gdmVyc2lvbiBvZiBj b21tYW5kcyBsaWtlICdsaXN0LWJ1ZmZlcnMnIGFuZAorJ2xpc3QtcHJvY2Vzc2VzJy4gIEl0IGFs bG93cyByZWFycmFuZ2luZyB0aGUgbWFjcm9zIGluIHRoZSByaW5nLAorZHVwbGljYXRpbmcgdGhl bSwgZGVsZXRpbmcgdGhlbSwgYW5kIGVkaXRpbmcgdGhlaXIgY291bnRlcnMsIGZvcm1hdHMsCith bmQga2V5cy4KKwogKiogTWlzY2VsbGFuZW91cwogCiAtLS0KZGlmZiAtLWdpdCBhL2xpc3Ava21h Y3JvLmVsIGIvbGlzcC9rbWFjcm8uZWwKaW5kZXggODk3ZWJmMTQzMzAuLjQ1NTk0MTYwZTZkIDEw MDY0NAotLS0gYS9saXNwL2ttYWNyby5lbAorKysgYi9saXNwL2ttYWNyby5lbApAQCAtMTM4OCw2 ICsxMzg4LDUxNCBAQCBrbWFjcm8tcmVkaXNwbGF5CiAgICAgKGxldCAoKGV4ZWN1dGluZy1rYmQt bWFjcm8gbmlsKSkKICAgICAgIChyZWRpc3BsYXkpKSkpCiAKKzs7OyBNb2RlIGFuZCBjb21tYW5k cyBmb3Igd29ya2luZyB3aXRoIHRoZSByaW5nIGluIGEgdGFibGUKKworKGRlZnZhciB0YWJ1bGF0 ZWQtbGlzdC1mb3JtYXQpCisoZGVmdmFyIHRhYnVsYXRlZC1saXN0LWVudHJpZXMpCisoZGVmdmFy IHRhYnVsYXRlZC1saXN0LXNvcnQta2V5KQorKGRlY2xhcmUtZnVuY3Rpb24gdGFidWxhdGVkLWxp c3QtaW5pdC1oZWFkZXIgICJ0YWJ1bGF0ZWQtbGlzdCIgKCkpCisoZGVjbGFyZS1mdW5jdGlvbiB0 YWJ1bGF0ZWQtbGlzdC1wcmludCAidGFidWxhdGVkLWxpc3QiCisgICAgICAgICAgICAgICAgICAo Jm9wdGlvbmFsIHJlbWVtYmVyLXBvcyB1cGRhdGUpKQorCisoZGVmZmFjZSBrbWFjcm8tbWVudS1t YXJrICcoKHQgKDppbmhlcml0IGZvbnQtbG9jay1jb25zdGFudC1mYWNlKSkpCisgICJGYWNlIHVz ZWQgZm9yIHRoZSBLZXlib2FyZCBNYWNybyBNZW51IG1hcmtzLiIKKyAgOmdyb3VwICdrbWFjcm8p CisKKyhkZWZmYWNlIGttYWNyby1tZW51LWZsYWdnZWQgJygodCAoOmluaGVyaXQgZXJyb3IpKSkK KyAgIkZhY2UgdXNlZCBmb3Iga2V5Ym9hcmQgbWFjcm9zIGZsYWdnZWQgZm9yIGRlbGV0aW9uLiIK KyAgOmdyb3VwICdrbWFjcm8pCisKKyhkZWZmYWNlIGttYWNyby1tZW51LW1hcmtlZCAnKCh0ICg6 aW5oZXJpdCB3YXJuaW5nKSkpCisgICJGYWNlIHVzZWQgZm9yIGtleWJvYXJkIG1hY3JvcyBtYXJr ZWQgZm9yIGR1cGxpY2F0aW9uLiIKKyAgOmdyb3VwICdrbWFjcm8pCisKKyhkZWZ2YXIta2V5bWFw IGttYWNyby1tZW51LW1vZGUtbWFwCisgIDpkb2MgIktleW1hcCBmb3IgYGttYWNyby1tZW51LW1v ZGUnLiIKKyAgOnBhcmVudCB0YWJ1bGF0ZWQtbGlzdC1tb2RlLW1hcAorICAiIyIgIydrbWFjcm8t bWVudS1lZGl0LXBvc2l0aW9uCisgICJjIiAjJ2ttYWNyby1tZW51LWVkaXQtY291bnRlcgorICAi ZSIgIydrbWFjcm8tbWVudS1lZGl0LWtleXMKKyAgImYiICMna21hY3JvLW1lbnUtZWRpdC1mb3Jt YXQKKyAgIlJFVCIgIydrbWFjcm8tbWVudS1lZGl0LWNvbHVtbgorCisgICJDIiAjJ2ttYWNyby1t ZW51LWRvLWNvcHkKKyAgIkQiICMna21hY3JvLW1lbnUtZG8tZGVsZXRlCisgICJtIiAjJ2ttYWNy by1tZW51LW1hcmsKKworICAiZCIgIydrbWFjcm8tbWVudS1mbGFnLWZvci1kZWxldGlvbgorICAi eCIgIydrbWFjcm8tbWVudS1kby1mbGFnZ2VkLWRlbGV0ZQorCisgICJ1IiAjJ2ttYWNyby1tZW51 LXVubWFyaworICAiVSIgIydrbWFjcm8tbWVudS11bm1hcmstYWxsCisgICJERUwiIydrbWFjcm8t bWVudS11bm1hcmstYmFja3dhcmQKKworICAiPHJlbWFwPiA8dHJhbnNwb3NlLWxpbmVzPiIgIydr bWFjcm8tbWVudS10cmFuc3Bvc2UpCisKKyhkZWZpbmUtZGVyaXZlZC1tb2RlIGttYWNyby1tZW51 LW1vZGUgdGFidWxhdGVkLWxpc3QtbW9kZQorICAiS2V5Ym9hcmQgTWFjcm8gTWVudSIKKyAgIk1h am9yIG1vZGUgZm9yIGxpc3Rpbmcga2V5Ym9hcmQgbWFjcm9zLiIKKyAgKG1ha2UtbG9jYWwtdmFy aWFibGUgJ2ttYWNyby1tZW51LS1tYXJrcykKKyAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2ttYWNy by1tZW51LS1kZWxldGlvbi1mbGFncykKKyAgKHNldHEtbG9jYWwgdGFidWxhdGVkLWxpc3QtZm9y bWF0CisgICAgICAgICAgICAgIFsoIlBvc2l0aW9uIiA4IHQpCisgICAgICAgICAgICAgICAoIkNv dW50ZXIiICA4IG5pbCA6cmlnaHQtYWxpZ24gdCA6cGFkLXJpZ2h0IDIpCisgICAgICAgICAgICAg ICAoIkZvcm1hdCIgIDggbmlsKQorICAgICAgICAgICAgICAgKCJGb3JtYXR0ZWQiIDEwIG5pbCkK KyAgICAgICAgICAgICAgICgiS2V5cyIgMSBuaWwpXSkKKyAgKHNldHEtbG9jYWwgdGFidWxhdGVk LWxpc3QtcGFkZGluZyAyKQorICAoYWRkLWhvb2sgJ3RhYnVsYXRlZC1saXN0LXJldmVydC1ob29r ICMna21hY3JvLW1lbnUtLXJlZnJlc2ggbmlsIHQpCisgICh0YWJ1bGF0ZWQtbGlzdC1pbml0LWhl YWRlcikKKyAgKHVubGVzcyAoa21hY3JvLXJpbmctZW1wdHktcCkKKyAgICAoa21hY3JvLW1lbnUt LXJlZnJlc2gpCisgICAgKHRhYnVsYXRlZC1saXN0LXByaW50KSkpCisKKyhkZWZ1biBsaXN0LWtl eWJvYXJkLW1hY3JvcyAoKQorICAiTGlzdCB0aGUga2V5Ym9hcmQgbWFjcm9zLiIKKyAgKGludGVy YWN0aXZlKQorICAobGV0ICgoYnVmIChnZXQtYnVmZmVyLWNyZWF0ZSAiKkxpc3QgS2V5Ym9hcmQg TWFjcm9zKiIpKSkKKyAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBidWYKKyAgICAgIChrbWFjcm8t bWVudS1tb2RlKSkKKyAgICAocG9wLXRvLWJ1ZmZlciBidWYpKSkKKworOzs7OyBVdGlsaXR5IGZ1 bmN0aW9ucyBhbmQgbW9kZSBkYXRhCisKKyhkZWZ2YXIga21hY3JvLW1lbnUtLWRlbGV0aW9uLWZs YWdzIG5pbAorICAiQWxpc3Qgb2YgZW50cmllcyBmbGFnZ2VkIGZvciBkZWxldGlvbi4iKQorCiso ZGVmdmFyIGttYWNyby1tZW51LS1tYXJrcyBuaWwKKyAgIkFsaXN0IG9mIGVudHJpZXMgbWFya2Vk IGZvciBjb3B5aW5nIGFuZCBkdXBsaWNhdGlvbi4iKQorCisoZGVmdW4ga21hY3JvLW1lbnUtLWlk LWttYWNybyAoZW50cnktaWQpCisgICJSZXR1cm4ga2V5Ym9hcmQgbWFjcm8gdGhhdCBpcyBwYXJ0 IG9mIHRoZSBFTlRSWS1JRC4iCisgIChjYXIgZW50cnktaWQpKQorCisoZGVmdW4ga21hY3JvLW1l bnUtLWlkLXBvc2l0aW9uIChlbnRyeS1pZCkKKyAgIlJldHVybiBvcmRpbmFsIHBvc2l0aW9uIHRo YXQgaXMgcGFydCBvZiB0aGUgRU5UUlktSUQuIgorICAoY2RyIGVudHJ5LWlkKSkKKworKGRlZnVu IGttYWNyby1tZW51LS1rbWFjcm9zICgpCisgICJSZXR1cm4gYSBsaXN0IG9mIHRoZSBleGlzdGlu ZyBrZXlib2FyZCBtYWNyb3MuIgorICAod2hlbiBsYXN0LWtiZC1tYWNybworICAgIChjb25zIChr bWFjcm8tcmluZy1oZWFkKQorICAgICAgICAgIGttYWNyby1yaW5nKSkpCisKKyhkZWZ1biBrbWFj cm8tbWVudS0tcmVmcmVzaCAoKQorICAiUmVzZXQgdGhlIGxpc3Qgb2Yga2V5Ym9hcmQgbWFjcm9z LiIKKyAgKHNldHEtbG9jYWwgdGFidWxhdGVkLWxpc3QtZW50cmllcworICAgICAgICAgICAgICAo c2VxLW1hcC1pbmRleGVkIChsYW1iZGEgKGttIGlkeCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsZXQgKChjbnQgKGttYWNyby0tY291bnRlciBrbSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZm10IChrbWFjcm8tLWZvcm1hdCBrbSkpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgKCgsa20gLiAsaWR4KQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFssKGZvcm1hdCAiJWQiIGlkeCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLChmb3JtYXQgIiVkIiBjbnQpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxmbXQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLChmb3JtYXQgZm10IGNudCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLChmb3JtYXQta2JkLW1hY3JvIChrbWFjcm8tLWtleXMga20pKV0p KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa21hY3JvLW1lbnUtLWttYWNyb3Mp KQorICAgICAgICAgICAgICBrbWFjcm8tbWVudS0tZGVsZXRpb24tZmxhZ3MgbmlsCisgICAgICAg ICAgICAgIGttYWNyby1tZW51LS1tYXJrcyBuaWwpCisgICh0YWJ1bGF0ZWQtbGlzdC1jbGVhci1h bGwtdGFncykpCisKKyhkZWZ1biBrbWFjcm8tbWVudS0tbWFwLWlkcyAoZnVuY3Rpb24pCisgICJN YXAgYSBGVU5DVElPTiB0byB0aGUgY3VycmVudCB0YWJsZSBlbnRyeSBJRHMgaW4gb3JkZXIuCisK K0lmIEZJTFRFUiBpcyBub24tbmlsLCB0aGVuIElEcyBmb3Igd2hpY2ggRklMVEVSIHJldHVybnMg bmlsIGFyZQorZXhjbHVkZWQuCisKK1JldHVybnMgYSBsaXN0IG9mIHRoZSBvdXRwdXQgb2YgRlVO Q1RJT04uIgorICAobWFwY2FyIGZ1bmN0aW9uCisgICAgICAgICAgKG1hcGNhciAjJ2NhcgorICAg ICAgICAgICAgICAgICAgKHNlcS1zb3J0LWJ5ICMnY2RhciAjJzwgdGFidWxhdGVkLWxpc3QtZW50 cmllcykpKSkKKworKGRlZnVuIGttYWNyby1tZW51LS11cGRhdGUgKGttYWNyb3MpCisgICJVcGRh dGUgdGhlIHZhcmlhYmxlcyBmb3IgdGhlIGN1cnJlbnQgYW5kIHByZXZpb3VzIGtleWJvYXJkIG1h Y3Jvcy4KKworS01BQ1JPUyBpcyBhIGxpc3Qgb2YgYGttYWNybycgb2JqZWN0cy4iCisgIChpZiAo bnVsbCBrbWFjcm9zKQorICAgICAgKHNldHEgbGFzdC1rYmQtbWFjcm8gbmlsCisgICAgICAgICAg ICBrbWFjcm8tY291bnRlci1mb3JtYXQga21hY3JvLWRlZmF1bHQtY291bnRlci1mb3JtYXQKKyAg ICAgICAgICAgIGttYWNyby1jb3VudGVyIDAKKyAgICAgICAgICAgIGttYWNyby1yaW5nIG5pbCkK KyAgICAoa21hY3JvLXNwbGl0LXJpbmctZWxlbWVudCAoY2FyIGttYWNyb3MpKQorICAgIChzZXRx IGttYWNyby1yaW5nIChjZHIga21hY3JvcykpKSkKKworKGRlZnVuIGttYWNyby1tZW51LS11cGRh dGUtYXQgKGttYWNybyBuKQorICAiVXBkYXRlIHRvIEtNQUNSTyBhdCBwb3NpdGlvbiBOLiIKKyAg KGttYWNyby1tZW51LS11cGRhdGUKKyAgIChrbWFjcm8tbWVudS0tbWFwLWlkcyAobGFtYmRhIChp ZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoPSBuIChrbWFjcm8tbWVudS0taWQt cG9zaXRpb24gaWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGttYWNybworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoa21hY3JvLW1lbnUtLWlkLWttYWNybyBpZCkpKSkp KQorCisoZGVmdW4ga21hY3JvLW1lbnUtLXF1ZXJ5LXJldmVydCAoKQorICAiV2hlbiB0aGUgdGFi bGUgZGlmZmVycyBmcm9tIHRoZSBleGlzdGluZyBtYWNyb3MsIGFzayB3aGV0aGVyIHRvIHJldmVy dCB0YWJsZS4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHdoZW4gKGFuZCAobm90IChlcXVhbCAoa21h Y3JvLW1lbnUtLWttYWNyb3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGttYWNyby1tZW51 LS1tYXAtaWRzICMna21hY3JvLW1lbnUtLWlkLWttYWNybykpKQorICAgICAgICAgICAgICh5ZXMt b3Itbm8tcCAiVGFibGUgZG9lcyBub3QgbWF0Y2ggZXhpc3Rpbmcga2V5Ym9hcmQgbWFjcm9zLiAg U3RvcCBhbmQgcmV2ZXJ0IHRhYmxlPyIpKQorICAgICh0YWJ1bGF0ZWQtbGlzdC1yZXZlcnQpCisg ICAgKHNpZ25hbCAncXVpdCBuaWwpKSkKKworKGRlZnVuIGttYWNyby1tZW51LS1hc3NlcnQtcm93 ICgmb3B0aW9uYWwgaWQpCisgICJTaWduYWwgYW4gZXJyb3IgaWYgcG9pbnQgaXMgbm90IG9uIGEg dGFibGUgcm93LgorCitJRCBpcyB0aGUgdGFidWxhdGVkIGxpc3QgaWQgb2YgdGhlIHN1cHBvc2Vk IGVudHJ5IGF0IHBvaW50LiIKKyAgKHVubGVzcyAob3IgaWQgKHRhYnVsYXRlZC1saXN0LWdldC1p ZCkpCisgICAgKHVzZXItZXJyb3IgIk5vdCBvbiBhIHRhYmxlIHJvdyIpKSkKKworKGRlZnVuIGtt YWNyby1tZW51LS1wcm9wZXJ0aXplLWtleXMgKGZhY2UpCisgICJSZWRpc3BsYXkgdGhlIG1hY3Jv IGF0IHBvaW50IHdpdGggRkFDRS4iCisgIChsZXQgKChkYXRhICh0YWJ1bGF0ZWQtbGlzdC1kZWxl dGUtZW50cnkpKSkKKyAgICAoc2V0ZiAoYXJlZiAoY2FkciBkYXRhKSA0KSAocHJvcGVydGl6ZSAo YXJlZiAoY2FkciBkYXRhKSA0KSAnZmFjZSBmYWNlKSkKKyAgICAodGFidWxhdGVkLWxpc3QtcHJp bnQtZW50cnkgKGNhciBkYXRhKSAoY2FkciBkYXRhKSkpCisgIChmb3J3YXJkLWxpbmUgLTEpKQor CisoZGVmdW4ga21hY3JvLW1lbnUtLWRvLXJlZ2lvbiAoZnVuY3Rpb24gJm9wdGlvbmFsIG5vLXJl Z2lvbi1oYWx0KQorICAiUnVuIEZVTkNUSU9OIG9uIG1hY3JvcyBpbiB0aGUgcmVnaW9uIG9yIG9u IHRoZSBjdXJyZW50IGxpbmUuCisKK0lmIE5PLVJFR0lPTi1IQUxUIGlzIG5vbi1uaWwsIHRoZW4g aWYgdGhlcmUgaXMgbm8gcmVnaW9uLCBkbyBub3QKK2FkdmFuY2UuIgorICAobGV0ICgoYWR2YW5j ZSBuaWwpKQorICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgKGxldCogKChsaW5lLWJlZykKKyAg ICAgICAgICAgICAobGluZS1lbmQpKQorICAgICAgICAoaWYgKGFuZCAodXNlLXJlZ2lvbi1wKQor ICAgICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAgICAobGV0ICgocmVnLWJl ZyAocmVnaW9uLWJlZ2lubmluZykpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHJlZy1lbmQg KHJlZ2lvbi1lbmQpKSkKKyAgICAgICAgICAgICAgICAgICAgIChzZXRxIGxpbmUtYmVnIChwcm9n bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIHJlZy1i ZWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3MtYm9sKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtZW5kIChwcm9nbgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIHJlZy1lbmQpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoYm9scCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlZy1lbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHBvaW50KSkpKSkKKyAgICAgICAgICAgICAgICAgICAoLz0gbGluZS1i ZWcgbGluZS1lbmQpKSkKKyAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAoZ290by1j aGFyIGxpbmUtYmVnKQorICAgICAgICAgICAgICAobGV0ICgoaWQpKQorICAgICAgICAgICAgICAg ICh3aGlsZSAoYW5kICg8IChwb2ludCkgbGluZS1lbmQpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHNldHEgaWQgKHRhYnVsYXRlZC1saXN0LWdldC1pZCkpKQorICAgICAgICAgICAgICAg ICAgKGttYWNyby1tZW51LS1hc3NlcnQtcm93IGlkKQorICAgICAgICAgICAgICAgICAgKGZ1bmNh bGwgZnVuY3Rpb24gaWQpCisgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lIDEpKSkpCisg ICAgICAgICAgKGxldCAoKGlkICh0YWJ1bGF0ZWQtbGlzdC1nZXQtaWQpKSkKKyAgICAgICAgICAg IChrbWFjcm8tbWVudS0tYXNzZXJ0LXJvdyBpZCkKKyAgICAgICAgICAgIChmdW5jYWxsIGZ1bmN0 aW9uIGlkKSkKKyAgICAgICAgICAoc2V0cSBhZHZhbmNlIChub3Qgbm8tcmVnaW9uLWhhbHQpKSkp KQorICAgICh3aGVuIGFkdmFuY2UKKyAgICAgIChmb3J3YXJkLWxpbmUgMSkpKSkKKworKGRlZnVu IGttYWNyby1tZW51LS1tYXJrcy1leGlzdC1wICgpCisgICJSZXR1cm4gbm9uLW5pbCBpZiBtYXJr ZXJzIGV4aXN0IGZvciBhbnkgdGFibGUgZW50cmllcy4iCisgIChsZXQgKCh0YWcgKGdlbnN5bSkp KQorICAgIChjYXRjaCB0YWcKKyAgICAgIChrbWFjcm8tbWVudS0tbWFwLWlkcyAobGFtYmRhIChp ZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChhbGlzdC1nZXQgKGttYWNy by1tZW51LS1pZC1wb3NpdGlvbiBpZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAga21hY3JvLW1lbnUtLW1hcmtzKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAodGhyb3cgdGFnIHQpKSkpCisgICAgICBuaWwpKSkKKworOzs7OyBDb21tYW5k cyBmb3IgTWFya3MgYW5kIEZsYWdzCisKKyhkZWZ1biBrbWFjcm8tbWVudS1tYXJrICgpCisgICJN YXJrIHRoZSBrZXlib2FyZCBtYWNybyBhdCBwb2ludCBmb3IgY29weWluZyB2aWEgYGttYWNyby1t ZW51LWRvLWNvcHknLgorCitJZiB0aGUgcmVnaW9uIGlzIGFjdGl2ZSwgbWFyayBhbGwgbWFjcm9z IGluIHRoZSByZWdpb24uIgorICAoZGVjbGFyZSAobW9kZXMga21hY3JvLW1lbnUtbW9kZSkpCisg IChpbnRlcmFjdGl2ZSkKKyAgKGttYWNyby1tZW51LS1xdWVyeS1yZXZlcnQpCisgIChrbWFjcm8t bWVudS0tZG8tcmVnaW9uCisgICAobGFtYmRhIChpZCkKKyAgICAgKHNldGYgKGFsaXN0LWdldCAo a21hY3JvLW1lbnUtLWlkLXBvc2l0aW9uIGlkKQorICAgICAgICAgICAgICAgICAgICAgIGttYWNy by1tZW51LS1tYXJrcykKKyAgICAgICAgICAgdCkKKyAgICAgKGttYWNyby1tZW51LS1wcm9wZXJ0 aXplLWtleXMgJ2ttYWNyby1tZW51LW1hcmtlZCkKKyAgICAgKHRhYnVsYXRlZC1saXN0LXB1dC10 YWcgIygiKiIgMCAxIChmYWNlIGttYWNyby1tZW51LW1hcmspKSkpKSkKKworKGRlZnVuIGttYWNy by1tZW51LWZsYWctZm9yLWRlbGV0aW9uICgpCisgICJGbGFnIHRoZSBrZXlib2FyZCBtYWNybyBm b3IgZGVsZXRpb24gYnkgYGttYWNyby1tZW51LWRvLWZsYWdnZWQtZGVsZXRlJy4KKworSWYgdGhl IHJlZ2lvbiBpcyBhY3RpdmUsIHRoZW4gZmxhZyBhbGwgbWFjcm9zIGluIHRoZSByZWdpb24uIgor ICAoZGVjbGFyZSAobW9kZXMga21hY3JvLW1lbnUtbW9kZSkpCisgIChpbnRlcmFjdGl2ZSkKKyAg KGttYWNyby1tZW51LS1xdWVyeS1yZXZlcnQpCisgIChrbWFjcm8tbWVudS0tZG8tcmVnaW9uCisg ICAobGFtYmRhIChpZCkKKyAgICAgKHNldGYgKGFsaXN0LWdldCAoa21hY3JvLW1lbnUtLWlkLXBv c2l0aW9uIGlkKQorICAgICAgICAgICAgICAgICAgICAgIGttYWNyby1tZW51LS1kZWxldGlvbi1m bGFncykKKyAgICAgICAgICAgdCkKKyAgICAgKGttYWNyby1tZW51LS1wcm9wZXJ0aXplLWtleXMg J2ttYWNyby1tZW51LWZsYWdnZWQpCisgICAgICh0YWJ1bGF0ZWQtbGlzdC1wdXQtdGFnICMoIkQi IDAgMSAoZmFjZSBrbWFjcm8tbWVudS1tYXJrKSkpKSkpCisKKyhkZWZ1biBrbWFjcm8tbWVudS11 bm1hcmsgKCkKKyAgIlVubWFyayBhbmQgdW5mbGFnIHRoZSBrZXlib2FyZCBtYWNybyBhdCBwb2lu dC4KKworSWYgdGhlIHJlZ2lvbiBpcyBhY3RpdmUsIHRoZW4gdW5tYXJrIGFsbCBtYWNyb3MgaW4g dGhlIHJlZ2lvbi4iCisgIChkZWNsYXJlIChtb2RlcyBrbWFjcm8tbWVudS1tb2RlKSkKKyAgKGlu dGVyYWN0aXZlKQorICAoa21hY3JvLW1lbnUtLXF1ZXJ5LXJldmVydCkKKyAgKGttYWNyby1tZW51 LS1kby1yZWdpb24KKyAgIChsYW1iZGEgKGlkKQorICAgICAoc2V0ZiAoYWxpc3QtZ2V0IChrbWFj cm8tbWVudS0taWQtcG9zaXRpb24gaWQpCisgICAgICAgICAgICAgICAgICAgICAga21hY3JvLW1l bnUtLWRlbGV0aW9uLWZsYWdzKQorICAgICAgICAgICBuaWwpCisgICAgIChzZXRmIChhbGlzdC1n ZXQgKGttYWNyby1tZW51LS1pZC1wb3NpdGlvbiBpZCkKKyAgICAgICAgICAgICAgICAgICAgICBr bWFjcm8tbWVudS0tbWFya3MpCisgICAgICAgICAgIG5pbCkKKyAgICAgKGttYWNyby1tZW51LS1w cm9wZXJ0aXplLWtleXMgJ2RlZmF1bHQpCisgICAgICh0YWJ1bGF0ZWQtbGlzdC1wdXQtdGFnICIg IikpKSkKKworKGRlZnVuIGttYWNyby1tZW51LXVubWFyay1iYWNrd2FyZCAoKQorICAiTGlrZSBg a21hY3JvLW1lbnUtdW5tYXJrJywgYnV0IG1vdmUgYmFja3dhcmRzIGluc3RlYWQgb2YgZm9yd2Fy ZHMuIgorICAoZGVjbGFyZSAobW9kZXMga21hY3JvLW1lbnUtbW9kZSkpCisgIChpbnRlcmFjdGl2 ZSkKKyAgKGttYWNyby1tZW51LS1xdWVyeS1yZXZlcnQpCisgIChsZXQgKChnby1iYWNrIChub3Qg KHVzZS1yZWdpb24tcCkpKSkKKyAgICAoa21hY3JvLW1lbnUtdW5tYXJrKQorICAgICh3aGVuIGdv LWJhY2sKKyAgICAgIChmb3J3YXJkLWxpbmUgLTIpKSkpCisKKyhkZWZ1biBrbWFjcm8tbWVudS11 bm1hcmstYWxsICgpCisgICJVbm1hcmsgYW5kIHVuZmxhZyBhbGwgbGlzdGVkIGtleWJvYXJkIG1h Y3Jvcy4iCisgIChkZWNsYXJlIChtb2RlcyBrbWFjcm8tbWVudS1tb2RlKSkKKyAgKGludGVyYWN0 aXZlKQorICAoa21hY3JvLW1lbnUtLXF1ZXJ5LXJldmVydCkKKyAgKHNldHEtbG9jYWwga21hY3Jv LW1lbnUtLWRlbGV0aW9uLWZsYWdzIG5pbAorICAgICAgICAgICAgICBrbWFjcm8tbWVudS0tbWFy a3MgbmlsKQorICAoc2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQor ICAgICh3aGlsZSAodGFidWxhdGVkLWxpc3QtZ2V0LWlkKQorICAgICAgKGttYWNyby1tZW51LS1w cm9wZXJ0aXplLWtleXMgJ2RlZmF1bHQpCisgICAgICAoZm9yd2FyZC1saW5lIDEpKQorICAgICh0 YWJ1bGF0ZWQtbGlzdC1jbGVhci1hbGwtdGFncykpKQorCis7Ozs7IENvbW1hbmRzIHRoYXQgTW9k aWZ5IHRoZSBSaW5nCisKKyhkZWZ1biBrbWFjcm8tbWVudS1kby1mbGFnZ2VkLWRlbGV0ZSAoKQor ICAiRGVsZXRlIGtleWJvYXJkIG1hY3JvcyBmbGFnZ2VkIHZpYSBga21hY3JvLW1lbnUtZmxhZy1m b3ItZGVsZXRpb24nLiIKKyAgKGRlY2xhcmUgKG1vZGVzIGttYWNyby1tZW51LW1vZGUpKQorICAo aW50ZXJhY3RpdmUpCisgIChrbWFjcm8tbWVudS0tcXVlcnktcmV2ZXJ0KQorICAobGV0ICgocmVz KQorICAgICAgICAobnVtLWRlbGV0ZXMgMCkpCisgICAgKGttYWNyby1tZW51LS1tYXAtaWRzIChs YW1iZGEgKGlkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoYWxpc3QtZ2V0IChr bWFjcm8tbWVudS0taWQtcG9zaXRpb24gaWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAga21hY3JvLW1lbnUtLWRlbGV0aW9uLWZsYWdzKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc2V0cSBudW0tZGVsZXRlcyAoMSsgbnVtLWRlbGV0ZXMpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggKGttYWNyby1tZW51LS1pZC1rbWFj cm8gaWQpIHJlcykpKSkKKyAgICAod2hlbiAoeWVzLW9yLW5vLXAgKGlmICg9IDEgbnVtLWRlbGV0 ZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVsZXRlIDEga2V5Ym9hcmQgbWFjcm8/ IgorICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIkRlbGV0ZSAlZCBrZXlib2FyZCBt YWNyb3M/IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtLWRlbGV0ZXMpKSkK KyAgICAgIChrbWFjcm8tbWVudS0tdXBkYXRlCisgICAgICAgKG5yZXZlcnNlIHJlcykpCisgICAg ICAodGFidWxhdGVkLWxpc3QtcmV2ZXJ0KSkpKQorCisoZGVmdW4ga21hY3JvLW1lbnUtZG8tY29w eSAoKQorICAiRHVwbGljYXRlIHRoZSBtYWNyb3MgaW4gdGhlIHJlZ2lvbiwgb3IgdGhlIG1hcmtl ZCBtYWNyb3MsIG9yIHRoZSBvbmUgYXQgcG9pbnQuCisKK01hY3JvcyBhcmUgZHVwbGljYXRlZCBh dCB0aGVpciBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBtYWNybyByaW5nLgorCitJZiB0aGUgcmVn aW9uIGlzIGFjdGl2ZSwgZHVwbGljYXRlIHRoZSBtYWNyb3MgaW4gdGhlIHJlZ2lvbiwgcmVnYXJk bGVzcworb2Ygd2hldGhlciB0aGVyZSBhcmUgbWFya2VkIG1hY3Jvcy4gIE90aGVyd2lzZSwgaWYg dGhlcmUgYXJlIG1hcmtlZAorbWFjcm9zLCBkZWxldGUgdGhvc2UuICBPdGhlcndpc2UsIGR1cGxp Y2F0ZSB0aGUgb25lIG1hY3JvIGF0IHBvaW50LiIKKyAgKGRlY2xhcmUgKG1vZGVzIGttYWNyby1t ZW51LW1vZGUpKQorICAoaW50ZXJhY3RpdmUpCisgIChrbWFjcm8tbWVudS0tcXVlcnktcmV2ZXJ0 KQorICAobGV0KiAoKHJlZ2lvbi1leGlzdHMgKHVzZS1yZWdpb24tcCkpCisgICAgICAgICAobWFy ay1leGlzdHMgKGttYWNyby1tZW51LS1tYXJrcy1leGlzdC1wKSkKKyAgICAgICAgIChpZC1hbGlz dCAoaWYgKG9yIHJlZ2lvbi1leGlzdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3Qg bWFyay1leGlzdHMpKQorICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgocmVnaW9uLWFsaXN0 KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoa21hY3JvLW1lbnUtLWRvLXJlZ2lvbgorICAg ICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChpZCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAocHVzaCAoY29ucyAoa21hY3JvLW1lbnUtLWlkLXBvc2l0aW9uIGlkKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVnaW9uLWFsaXN0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb24tYWxpc3QpCisgICAgICAgICAgICAg ICAgICAgICBrbWFjcm8tbWVudS0tbWFya3MpKQorICAgICAgICAgKG51bS1kdXBsaWNhdGVzIDAp KQorICAgIChsZXQgKChyZXMpKQorICAgICAgKGttYWNyby1tZW51LS1tYXAtaWRzIChsYW1iZGEg KGlkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggKGttYWNyby1tZW51LS1p ZC1rbWFjcm8gaWQpIHJlcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChh bGlzdC1nZXQgKGttYWNyby1tZW51LS1pZC1wb3NpdGlvbiBpZCkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQtYWxpc3QpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChwdXNoIChrbWFjcm8tbWVudS0taWQta21hY3JvIGlkKSByZXMpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIG51bS1kdXBsaWNhdGVzICgxKyBu dW0tZHVwbGljYXRlcykpKSkpCisgICAgICA7OyBDb25maXJtIHRoZSBhY3Rpb24gaWYgd2Ugb3Bl cmF0ZWQgb24gbWFya3Mgb3IgdGhlIHJlZ2lvbiwgYnV0CisgICAgICA7OyBkb24ndCBjb25maXJt IGlmIG9wZXJhdGluZyBvbiBhIHNpbmdsZSBsaW5lIHdpdGhvdXQgYSByZWdpb24uCisgICAgICAo d2hlbiAoaWYgKG9yIG1hcmstZXhpc3RzIHJlZ2lvbi1leGlzdHMpCisgICAgICAgICAgICAgICAg KHllcy1vci1uby1wIChpZiAoPSAxIG51bS1kdXBsaWNhdGVzKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkNvcHkgKGR1cGxpY2F0ZSkgMSBrZXlib2FyZCBtYWNybz8iCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiQ29weSAoZHVwbGljYXRlKSAlZCBr ZXlib2FyZCBtYWNyb3M/IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bnVtLWR1cGxpY2F0ZXMpKSkKKyAgICAgICAgICAgICAgdCkKKyAgICAgICAgKGttYWNyby1tZW51 LS11cGRhdGUgKG5yZXZlcnNlIHJlcykpCisgICAgICAgICh0YWJ1bGF0ZWQtbGlzdC1yZXZlcnQp KSkpKQorCisoZGVmdW4ga21hY3JvLW1lbnUtZG8tZGVsZXRlICgpCisgICJEZWxldGUgdGhlIG1h Y3JvcyBpbiB0aGUgcmVnaW9uLCB0aGUgbWFya2VkIG1hY3Jvcywgb3IgdGhlIG9uZSBhdCBwb2lu dC4KKworSWYgdGhlIHJlZ2lvbiBpcyBhY3RpdmUsIGRlbGV0ZSB0aGUgbWFjcm9zIGluIHRoZSBy ZWdpb24sIHJlZ2FyZGxlc3MKK29mIHdoZXRoZXIgdGhlcmUgYXJlIG1hcmtlZCBtYWNyb3MuICBP dGhlcndpc2UsIGlmIHRoZXJlIGFyZSBtYXJrZWQKK21hY3JvcywgZGVsZXRlIHRob3NlLiAgT3Ro ZXJ3aXNlLCBkZWxldGUgdGhlIG9uZSBtYWNybyBhdCBwb2ludC4iCisgIChkZWNsYXJlIChtb2Rl cyBrbWFjcm8tbWVudS1tb2RlKSkKKyAgKGludGVyYWN0aXZlKQorICAoa21hY3JvLW1lbnUtLXF1 ZXJ5LXJldmVydCkKKyAgKGxldCAoKG51bS1kZWxldGVzIDApCisgICAgICAgIChpZC1hbGlzdCAo aWYgKG9yICh1c2UtcmVnaW9uLXApCisgICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGtt YWNyby1tZW51LS1tYXJrcy1leGlzdC1wKSkpCisgICAgICAgICAgICAgICAgICAgICAgKGxldCAo KHJlZ2lvbi1hbGlzdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAoa21hY3JvLW1lbnUtLWRv LXJlZ2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGlkKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHB1c2ggKGNvbnMgKGttYWNyby1tZW51LS1pZC1wb3NpdGlvbiBp ZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZWdpb24tYWxpc3QpKQorICAgICAgICAgICAgICAgICAg ICAgICAgIHQpCisgICAgICAgICAgICAgICAgICAgICAgICByZWdpb24tYWxpc3QpCisgICAgICAg ICAgICAgICAgICAgIGttYWNyby1tZW51LS1tYXJrcykpKQorICAgIChsZXQgKChyZXMpKQorICAg ICAgKGttYWNyby1tZW51LS1tYXAtaWRzIChsYW1iZGEgKGlkKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGlmIChhbGlzdC1nZXQgKGttYWNyby1tZW51LS1pZC1wb3NpdGlvbiBpZCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkLWFsaXN0KQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIG51bS1kZWxldGVzICgxKyBu dW0tZGVsZXRlcykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwdXNoIChrbWFj cm8tbWVudS0taWQta21hY3JvIGlkKSByZXMpKSkpCisgICAgICAod2hlbiAoeWVzLW9yLW5vLXAg KGlmICg9IDEgbnVtLWRlbGV0ZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZWxl dGUgMSBrZXlib2FyZCBtYWNybz8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0 ICJEZWxldGUgJWQga2V5Ym9hcmQgbWFjcm9zPyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbnVtLWRlbGV0ZXMpKSkKKyAgICAgICAgKGttYWNyby1tZW51LS11cGRhdGUgKG5y ZXZlcnNlIHJlcykpCisgICAgICAgICh0YWJ1bGF0ZWQtbGlzdC1yZXZlcnQpKSkpKQorCis7Ozs7 IENvbW1hbmRzIHRoYXQgTW9kaWZ5IGEgS2V5Ym9hcmQgTWFjcm8KKworKGRlZnVuIGttYWNyby1t ZW51LWVkaXQtcG9zaXRpb24gKCkKKyAgIk1vdmUgdGhlIGtleWJvYXJkIG1hY3JvIGF0IHBvaW50 IHRvIGEgbmV3IHBvc2l0aW9uLiIKKyAgKGRlY2xhcmUgKG1vZGVzIGttYWNyby1tZW51LW1vZGUp KQorICAoaW50ZXJhY3RpdmUpCisgIChsZXQgKChpZCAodGFidWxhdGVkLWxpc3QtZ2V0LWlkKSkp CisgICAgKGttYWNyby1tZW51LS1hc3NlcnQtcm93IGlkKQorICAgIChrbWFjcm8tbWVudS0tcXVl cnktcmV2ZXJ0KQorICAgIChsZXQqICgobmV3LXBvc2l0aW9uIChyZWFkLW51bWJlciAiTmV3IHBv c2l0aW9uOiAiIDApKQorICAgICAgICAgICAob2xkLWttIChrbWFjcm8tbWVudS0taWQta21hY3Jv IGlkKSkKKyAgICAgICAgICAgKG9sZC1wb3MgKGttYWNyby1tZW51LS1pZC1wb3NpdGlvbiBpZCkp KQorICAgICAgKHVubGVzcyAoPSBvbGQtcG9zIG5ldy1wb3NpdGlvbikKKyAgICAgICAgKGttYWNy by1tZW51LS11cGRhdGUgKGxldCAoKHJlcyBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICh0cnVlLW5ldy1wb3MgKGlmICg+IG5ldy1wb3NpdGlvbiBvbGQtcG9zKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSsgbmV3 LXBvc2l0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmV3LXBvc2l0aW9uKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtt YWNyby1tZW51LS1tYXAtaWRzIChsYW1iZGEgKHRoaXMtaWQpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHRoaXMta20gKGttYWNy by1tZW51LS1pZC1rbWFjcm8gdGhpcy1pZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMtcG9zIChrbWFjcm8tbWVudS0t aWQtcG9zaXRpb24gdGhpcy1pZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHVubGVzcyAoPSBvbGQtcG9zIHRoaXMtcG9zKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo d2hlbiAoPSB0aGlzLXBvcyB0cnVlLW5ldy1wb3MpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggb2xkLWttIHJlcykpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChwdXNoIHRoaXMta20gcmVzKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo d2hlbiAoPj0gdHJ1ZS1uZXctcG9zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsZW5ndGggdGFidWxhdGVkLWxpc3QtZW50cmllcykpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAocHVzaCBvbGQta20gcmVzKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobnJldmVyc2UgcmVzKSkpCisgICAgICAgICh0YWJ1bGF0ZWQtbGlzdC1yZXZl cnQpKSkpKQorCisoZGVmdW4ga21hY3JvLW1lbnUtdHJhbnNwb3NlICgpCisgICJNb3ZlIHRoZSBr ZXlib2FyZCBtYWNybyBhdCBwb2ludCB0byB0aGUgbmV4dCBlYXJsaWVyIHBvc2l0aW9uLgorCitO b3RlIHRoYXQgdGhpcyBpcyB0aGUgZWFybGllciBwb3NpdGlvbiBpbiB0aGUgcmluZywgbm90IHRo ZSBzb3J0ZWQKK3RhYmxlLiIKKyAgKGRlY2xhcmUgKG1vZGVzIGttYWNyby1tZW51LW1vZGUpKQor ICAoaW50ZXJhY3RpdmUpCisgIChsZXQgKChpZCAodGFidWxhdGVkLWxpc3QtZ2V0LWlkKSkpCisg ICAgKGttYWNyby1tZW51LS1hc3NlcnQtcm93IGlkKQorICAgIChrbWFjcm8tbWVudS0tcXVlcnkt cmV2ZXJ0KQorICAgIChsZXQgKChvbGQtcG9zIChrbWFjcm8tbWVudS0taWQtcG9zaXRpb24gaWQp KSkKKyAgICAgICh1bmxlc3MgKD0gb2xkLXBvcyAwKQorICAgICAgICAobGV0ICgobmV3LXBvcyAo MS0gb2xkLXBvcykpKQorICAgICAgICAgIChrbWFjcm8tbWVudS0tdXBkYXRlCisgICAgICAgICAg IChsZXQgKChyZXMpKQorICAgICAgICAgICAgIChrbWFjcm8tbWVudS0tbWFwLWlkcworICAgICAg ICAgICAgICAobGFtYmRhICh0aGlzLWlkKQorICAgICAgICAgICAgICAgIChsZXQgKCh0aGlzLXBv cyAoa21hY3JvLW1lbnUtLWlkLXBvc2l0aW9uIHRoaXMtaWQpKSkKKyAgICAgICAgICAgICAgICAg ICh1bmxlc3MgKD0gb2xkLXBvcyB0aGlzLXBvcykKKyAgICAgICAgICAgICAgICAgICAgKHdoZW4g KD0gbmV3LXBvcyB0aGlzLXBvcykKKyAgICAgICAgICAgICAgICAgICAgICAocHVzaCAoa21hY3Jv LW1lbnUtLWlkLWttYWNybyBpZCkgcmVzKSkKKyAgICAgICAgICAgICAgICAgICAgKHB1c2ggKGtt YWNyby1tZW51LS1pZC1rbWFjcm8gdGhpcy1pZCkgcmVzKSkpKSkKKyAgICAgICAgICAgICAobnJl dmVyc2UgcmVzKSkpKQorICAgICAgICAodGFidWxhdGVkLWxpc3QtcmV2ZXJ0KSkpKSkKKworKGRl ZnVuIGttYWNyby1tZW51LWVkaXQtZm9ybWF0ICgpCisgICJFZGl0IHRoZSBjb3VudGVyIGZvcm1h dCBvZiB0aGUga2V5Ym9hcmQgbWFjcm8gYXQgcG9pbnQuIgorICAoZGVjbGFyZSAobW9kZXMga21h Y3JvLW1lbnUtbW9kZSkpCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCAoKGlkICh0YWJ1bGF0ZWQt bGlzdC1nZXQtaWQpKSkKKyAgICAoa21hY3JvLW1lbnUtLWFzc2VydC1yb3cgaWQpCisgICAgKGtt YWNyby1tZW51LS1xdWVyeS1yZXZlcnQpCisgICAgKGxldCAoKGttIChrbWFjcm8tbWVudS0taWQt a21hY3JvIGlkKSkpCisgICAgICAoa21hY3JvLW1lbnUtLXVwZGF0ZS1hdAorICAgICAgIChrbWFj cm8gKGttYWNyby0ta2V5cyBrbSkKKyAgICAgICAgICAgICAgIChrbWFjcm8tLWNvdW50ZXIga20p CisgICAgICAgICAgICAgICAocmVhZC1zdHJpbmcgIk5ldyBmb3JtYXQ6ICIgbmlsIG5pbAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGttYWNyby1kZWZhdWx0LWNvdW50ZXItZm9y bWF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGttYWNyby0tZm9ybWF0IGtt KSkpKQorICAgICAgIChrbWFjcm8tbWVudS0taWQtcG9zaXRpb24gaWQpKQorICAgICAgKHRhYnVs YXRlZC1saXN0LXJldmVydCkpKSkKKworKGRlZnVuIGttYWNyby1tZW51LWVkaXQtY291bnRlciAo KQorICAiRWRpdCB0aGUgY291bnRlciBvZiB0aGUga2V5Ym9hcmQgbWFjcm8gYXQgcG9pbnQuIgor ICAoZGVjbGFyZSAobW9kZXMga21hY3JvLW1lbnUtbW9kZSkpCisgIChpbnRlcmFjdGl2ZSkKKyAg KGxldCAoKGlkICh0YWJ1bGF0ZWQtbGlzdC1nZXQtaWQpKSkKKyAgICAoa21hY3JvLW1lbnUtLWFz c2VydC1yb3cgaWQpCisgICAgKGttYWNyby1tZW51LS1xdWVyeS1yZXZlcnQpCisgICAgKGxldCAo KGttIChrbWFjcm8tbWVudS0taWQta21hY3JvIGlkKSkpCisgICAgICAoa21hY3JvLW1lbnUtLXVw ZGF0ZS1hdAorICAgICAgIChrbWFjcm8gKGttYWNyby0ta2V5cyBrbSkKKyAgICAgICAgICAgICAg IChyZWFkLW51bWJlciAiTmV3IGNvdW50ZXI6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGlzdCAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGttYWNyby0tY291 bnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa21hY3JvLW1lbnUtLWlk LWttYWNybyBpZCkpKSkKKyAgICAgICAgICAgICAgIChrbWFjcm8tLWZvcm1hdCBrbSkpCisgICAg ICAgKGttYWNyby1tZW51LS1pZC1wb3NpdGlvbiBpZCkpCisgICAgICAodGFidWxhdGVkLWxpc3Qt cmV2ZXJ0KSkpKQorCisoZGVmdW4ga21hY3JvLW1lbnUtZWRpdC1rZXlzICgpCisgICJFZGl0IHRo ZSBrZXlzIG9mIHRoZSBrZXlib2FyZCBtYWNybyBhdCBwb2ludCB2aWEgYGVkbWFjcm8tbW9kZScu IgorICAoZGVjbGFyZSAobW9kZXMga21hY3JvLW1lbnUtbW9kZSkpCisgIChpbnRlcmFjdGl2ZSkK KyAgKGxldCAoKGlkICh0YWJ1bGF0ZWQtbGlzdC1nZXQtaWQpKSkKKyAgICAoa21hY3JvLW1lbnUt LWFzc2VydC1yb3cgaWQpCisgICAgKGttYWNyby1tZW51LS1xdWVyeS1yZXZlcnQpCisgICAgKGxl dCogKChvbGQta20gKGttYWNyby1tZW51LS1pZC1rbWFjcm8gaWQpKSkKKyAgICAgIChlZGl0LWti ZC1tYWNybyAoa21hY3JvLS1rZXlzIG9sZC1rbSkKKyAgICAgICAgICAgICAgICAgICAgICBuaWwK KyAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAobGFtYmRh IChtYWMpCisgICAgICAgICAgICAgICAgICAgICAgICAoa21hY3JvLW1lbnUtLXVwZGF0ZS1hdAor ICAgICAgICAgICAgICAgICAgICAgICAgIChrbWFjcm8gbWFjCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoa21hY3JvLS1jb3VudGVyIG9sZC1rbSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChrbWFjcm8tLWZvcm1hdCBvbGQta20pKQorICAgICAgICAgICAgICAg ICAgICAgICAgIChrbWFjcm8tbWVudS0taWQtcG9zaXRpb24gaWQpKQorICAgICAgICAgICAgICAg ICAgICAgICAgKHRhYnVsYXRlZC1saXN0LXJldmVydCkpKSkpKQorCisoZGVmdW4ga21hY3JvLW1l bnUtZWRpdC1jb2x1bW4gKCkKKyAgIkVkaXQgdGhlIHZhbHVlIGluIHRoZSBjdXJyZW50IGNvbHVt biBvZiB0aGUga2V5Ym9hcmQgbWFjcm8gYXQgcG9pbnQuIgorICAoZGVjbGFyZSAobW9kZXMga21h Y3JvLW1lbnUtbW9kZSkpCisgIChpbnRlcmFjdGl2ZSkKKyAgKGttYWNyby1tZW51LS1xdWVyeS1y ZXZlcnQpCisgIChsZXQgKChjb2wgKGdldC10ZXh0LXByb3BlcnR5IChwb2ludCkgJ3RhYnVsYXRl ZC1saXN0LWNvbHVtbi1uYW1lKSkpCisgICAgKGlmIChudWxsIGNvbCkKKyAgICAgICAgKHVzZXIt ZXJyb3IgIk5vIGNvbHVtbiBhdCBwb2ludCIpCisgICAgICAocGNhc2UgY29sCisgICAgICAgICgi UG9zaXRpb24iICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICMna21hY3JvLW1lbnUtZWRpdC1wb3NpdGlv bikpCisgICAgICAgICgiQ291bnRlciIgIChjYWxsLWludGVyYWN0aXZlbHkgIydrbWFjcm8tbWVu dS1lZGl0LWNvdW50ZXIpKQorICAgICAgICAoIkZvcm1hdCIgIChjYWxsLWludGVyYWN0aXZlbHkg IydrbWFjcm8tbWVudS1lZGl0LWZvcm1hdCkpCisgICAgICAgICgiRm9ybWF0dGVkIiAodXNlci1l cnJvciAiRm9ybWF0dGVkIGNvdW50ZXIgaXMgbm90IGVkaXRhYmxlIikpCisgICAgICAgICgiS2V5 cyIgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ2ttYWNyby1tZW51LWVkaXQta2V5cykpKSkpKQorCisK IChwcm92aWRlICdrbWFjcm8pCiAKIDs7OyBrbWFjcm8uZWwgZW5kcyBoZXJlCi0tIAoyLjM0LjEK Cg== --b1_9a3xDn5WJ6Zk3v2FLab9HXWqwIbRXPkji9xsoqdI3VE--