From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Kangas Newsgroups: gmane.emacs.devel Subject: Re: Consistent face for keys in *Help* and `substitute-command-keys' Date: Fri, 5 Mar 2021 10:18:25 -0600 Message-ID: References: <87h7m5iagw.fsf@gnus.org> <83blc9tnvz.fsf@gnu.org> <83y2fcrzkt.fsf@gnu.org> <831rd4romg.fsf@gnu.org> <83zgzsq7xn.fsf@gnu.org> <83v9afriqp.fsf@gnu.org> <83zgzjhvdn.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000001bbf5a05bccc6fbd" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5909"; mail-complaints-to="usenet@ciao.gmane.io" Cc: larsi@gnus.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Mar 05 17:20:49 2021 Return-path: Envelope-to: ged-emacs-devel@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 1lIDC4-0001O1-Nz for ged-emacs-devel@m.gmane-mx.org; Fri, 05 Mar 2021 17:20:49 +0100 Original-Received: from localhost ([::1]:42328 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIDC3-00066x-NO for ged-emacs-devel@m.gmane-mx.org; Fri, 05 Mar 2021 11:20:47 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45752) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lID9s-0005Kz-Uy for emacs-devel@gnu.org; Fri, 05 Mar 2021 11:18:33 -0500 Original-Received: from mail-pf1-f170.google.com ([209.85.210.170]:34055) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lID9p-0005zk-G7; Fri, 05 Mar 2021 11:18:32 -0500 Original-Received: by mail-pf1-f170.google.com with SMTP id m6so2520807pfk.1; Fri, 05 Mar 2021 08:18:28 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=KCs3HiTkL+/KoRfJdKMSazONFKZjcKkyOAsBYDdbX9E=; b=LI+D1ilV8mILFjQA4pqkCs3De5CCbLdu8Ds7WexeAtCskeSlxKSok/vYA6gKjfJsl+ zlk2498kseuI2Fuy3oV7nyXKEymZ+WDzbrO5N65HNiuh4lqM2sNaC/BljhG7iD4ctZ2d KxzxSBN9SVb4g6CZrGKIijA9byTUj4Iexs0fQ6GKvehpr39R58GEOc1YYsHt1VkBv+GL xorR7Xy2NYFJL+k0RQv3S5dljIbvXuIahB+vCIm7sPJ7pjY9DHc/1ZMMWNdd59OuCtwU zgN541c/VkBIsfWA2iWtVeVkuyM2ULB1Exj5c9GQzYAeRUDSmVBWs9A4ReON6cgT42kE ez8A== X-Gm-Message-State: AOAM531KdTXbbqrs4LiWYu0jhcQBKLyaTRadj5o0O/WPVGiOVlZ54E9M WboyzujzxRgS7G4sHU/GvCKVTIFMNXs50IKZCdYiY0MP X-Google-Smtp-Source: ABdhPJwYSdEzBtMbBHQNdZldQxrVCtvC5ASxc8d21E8FxF4wwrj/SdJY7GLcgl8jtOp0PQ6zqw55lZb0hmJ1hyMvauA= X-Received: by 2002:a63:6206:: with SMTP id w6mr7276305pgb.363.1614961106984; Fri, 05 Mar 2021 08:18:26 -0800 (PST) Original-Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Fri, 5 Mar 2021 10:18:25 -0600 In-Reply-To: <83zgzjhvdn.fsf@gnu.org> Received-SPF: pass client-ip=209.85.210.170; envelope-from=stefankangas@gmail.com; helo=mail-pf1-f170.google.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:266030 Archived-At: --0000000000001bbf5a05bccc6fbd Content-Type: text/plain; charset="UTF-8" Eli Zaretskii writes: >> Could we just use `add-face-text-property' here, perhaps? >> >> It seems to do what we want: >> >> (let ((foo "x") bar) >> (add-face-text-property 0 (length foo) 'bold nil foo) >> (setq bar (concat "y" foo "y")) >> (add-face-text-property 0 (length bar) 'italic nil bar) >> bar) >> >> => #("yxy" 0 1 (face italic) 1 2 (face (italic bold)) 2 3 (face italic)) > > That's because you add a property which was unspecified by the > original face. But in the tooltip case, the function tooltip-show > propertizes the entire text it receives with the 'tooltip' face, so > any face attributes in the text that are also specified by the > 'tooltip' face will be overwritten. So, for example, if the tooltip > text had a :background attribute, that attribute would be overwritten > by the background color of the 'tooltip' face. Isn't that what you > see? But that just comes down to which face takes priority, right? So if we we would need to set the APPEND argument of `add-face-text-property' to t. See the attached latest version of the patch, which seems to work as you'd expect: the `help-key-binding' face overrides any attributes in the `tooltip' face (tested using --with-x-toolkit={no,lucid}). The interesting part for tooltips is: modified lisp/tooltip.el @@ -248,7 +248,8 @@ tooltip-show (setf (alist-get 'border-color params) fg)) (when (stringp bg) (setf (alist-get 'background-color params) bg)) - (x-show-tip (propertize text 'face 'tooltip) + (add-face-text-property 0 (length text) 'tooltip t text) + (x-show-tip text (selected-frame) params Unless I am missing something, I think this is what we want here. --0000000000001bbf5a05bccc6fbd Content-Type: text/x-diff; charset="US-ASCII"; name="0001-Colorize-keybindings-in-help.patch" Content-Disposition: attachment; filename="0001-Colorize-keybindings-in-help.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: 4957b35aabdb31ec_0.1 RnJvbSBiNzcyYjQyZWUzOWY0NTk1Y2Y2ZGYyMWQ5YzBiNzY5NDc3MWYxY2I2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gS2FuZ2FzIDxzdGVmYW5AbWFyeGlzdC5zZT4KRGF0 ZTogV2VkLCAyNCBGZWIgMjAyMSAwMToxODoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIENvbG9y aXplIGtleWJpbmRpbmdzIGluIGhlbHAKCi0tLQogZXRjL05FV1MgICAgICAgICAgIHwgICAzICsK IGxpc3AvZmFjZXMuZWwgICAgICB8ICAgNSArCiBsaXNwL2hlbHAtZm5zLmVsICAgfCAgMjEgKysr LS0KIGxpc3AvaGVscC1tYWNyby5lbCB8IDIyMyArKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIGxpc3AvaGVscC5lbCAgICAgICB8IDEzOSArKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tCiBsaXNwL2lzZWFyY2guZWwgICAgfCAgIDggKy0KIGxpc3AvdG9vbHRp cC5lbCAgICB8ICAgMyArLQogc3JjL2tleW1hcC5jICAgICAgIHwgIDI3ICsrKysrLQogOCBmaWxl cyBjaGFuZ2VkLCAyMzkgaW5zZXJ0aW9ucygrKSwgMTkwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggMzUyMmZjZTAzYS4uOTI3MDVkMmE3YiAxMDA2 NDQKLS0tIGEvZXRjL05FV1MKKysrIGIvZXRjL05FV1MKQEAgLTkxMSw2ICs5MTEsOSBAQCBza2lw cGVkLgogCiAqKiBIZWxwCiAKKy0tLQorKioqIEtleWJpbmRpbmdzIGluICdoZWxwLW1vZGUnIHVz ZSB0aGUgbmV3IGBoZWxwLWtleS1iaW5kaW5nJyBmYWNlLgorCiAtLS0KICoqKiAnZycgKCdyZXZl cnQtYnVmZmVyJykgaW4gJ2hlbHAtbW9kZScgbm8gbG9uZ2VyIHJlcXVpcmVzIGNvbmZpcm1hdGlv bi4KIApkaWZmIC0tZ2l0IGEvbGlzcC9mYWNlcy5lbCBiL2xpc3AvZmFjZXMuZWwKaW5kZXggOTBm MTFiYmUzYi4uZmZlOGVjY2RiZSAxMDA2NDQKLS0tIGEvbGlzcC9mYWNlcy5lbAorKysgYi9saXNw L2ZhY2VzLmVsCkBAIC0yODE1LDYgKzI4MTUsMTEgQEAgaGVscC1hcmd1bWVudC1uYW1lCiAgICJG YWNlIHRvIGhpZ2hsaWdodCBhcmd1bWVudCBuYW1lcyBpbiAqSGVscCogYnVmZmVycy4iCiAgIDpn cm91cCAnaGVscCkKIAorKGRlZmZhY2UgaGVscC1rZXktYmluZGluZyAnKCh0IDpmb3JlZ3JvdW5k ICJGb3Jlc3RHcmVlbiIpKQorICAiRmFjZSBmb3Iga2V5YmluZGluZ3MgaW4gKkhlbHAqIGJ1ZmZl cnMuIgorICA6dmVyc2lvbiAiMjguMSIKKyAgOmdyb3VwICdoZWxwKQorCiAoZGVmZmFjZSBnbHlw aGxlc3MtY2hhcgogICAnKCgoKHR5cGUgdHR5KSkgOmluaGVyaXQgdW5kZXJsaW5lKQogICAgICgo KHR5cGUgcGMpKSA6aW5oZXJpdCBlc2NhcGUtZ2x5cGgpCmRpZmYgLS1naXQgYS9saXNwL2hlbHAt Zm5zLmVsIGIvbGlzcC9oZWxwLWZucy5lbAppbmRleCAyOTBiZWJmN2U1Li5mYzU3ZWMxY2NhIDEw MDY0NAotLS0gYS9saXNwL2hlbHAtZm5zLmVsCisrKyBiL2xpc3AvaGVscC1mbnMuZWwKQEAgLTQ2 NiwxMyArNDY2LDE2IEBAIGhlbHAtZm5zLS1rZXktYmluZGluZ3MKICAgICAgICAgICAgICAgOzsg SWYgbG90cyBvZiBvcmRpbmFyeSB0ZXh0IGNoYXJhY3RlcnMgcnVuIHRoaXMgY29tbWFuZCwKICAg ICAgICAgICAgICAgOzsgZG9uJ3QgbWVudGlvbiB0aGVtIG9uZSBieSBvbmUuCiAgICAgICAgICAg ICAgIChpZiAoPCAobGVuZ3RoIG5vbi1tb2RpZmllZC1rZXlzKSAxMCkKLSAgICAgICAgICAgICAg ICAgIChwcmluYyAobWFwY29uY2F0ICMna2V5LWRlc2NyaXB0aW9uIGtleXMgIiwgIikpCisgICAg ICAgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBzdGFuZGFyZC1vdXRwdXQKKyAgICAg ICAgICAgICAgICAgICAgKGluc2VydCAobWFwY29uY2F0ICMnaGVscC0ta2V5LWRlc2NyaXB0aW9u LWZvbnRpZmllZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5cyAi LCAiKSkpCiAgICAgICAgICAgICAgICAgKGRvbGlzdCAoa2V5IG5vbi1tb2RpZmllZC1rZXlzKQog ICAgICAgICAgICAgICAgICAgKHNldHEga2V5cyAoZGVscSBrZXkga2V5cykpKQogICAgICAgICAg ICAgICAgIChpZiBrZXlzCi0gICAgICAgICAgICAgICAgICAgIChwcm9nbgotICAgICAgICAgICAg ICAgICAgICAgIChwcmluYyAobWFwY29uY2F0ICMna2V5LWRlc2NyaXB0aW9uIGtleXMgIiwgIikp Ci0gICAgICAgICAgICAgICAgICAgICAgKHByaW5jICIsIGFuZCBtYW55IG9yZGluYXJ5IHRleHQg Y2hhcmFjdGVycyIpKQorICAgICAgICAgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBz dGFuZGFyZC1vdXRwdXQKKyAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0IChtYXBjb25jYXQg IydoZWxwLS1rZXktZGVzY3JpcHRpb24tZm9udGlmaWVkCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAga2V5cyAiLCAiKSkKKyAgICAgICAgICAgICAgICAgICAgICAoaW5z ZXJ0ICIsIGFuZCBtYW55IG9yZGluYXJ5IHRleHQgY2hhcmFjdGVycyIpKQogICAgICAgICAgICAg ICAgICAgKHByaW5jICJtYW55IG9yZGluYXJ5IHRleHQgY2hhcmFjdGVycyIpKSkpCiAgICAgICAg ICAgICAod2hlbiAob3IgcmVtYXBwZWQga2V5cyBub24tbW9kaWZpZWQta2V5cykKICAgICAgICAg ICAgICAgKHByaW5jICIuIikKQEAgLTE4MjQsMTAgKzE4MjcsMTIgQEAgZGVzY3JpYmUtbW9kZQog CSAgICAgIChzYXZlLWV4Y3Vyc2lvbgogCQkocmUtc2VhcmNoLWJhY2t3YXJkIChzdWJzdGl0dXRl LWNvbW1hbmQta2V5cyAiYFxcKFteYCddK1xcKSciKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbmlsIHQpCi0JCShoZWxwLXhyZWYtYnV0dG9uIDEgJ2hlbHAtZnVuY3Rpb24t ZGVmIG1vZGUgZmlsZS1uYW1lKSkpKSkKLQkocHJpbmMgIjpcbiIpCi0JKHByaW5jIChoZWxwLXNw bGl0LWZ1bmRvYyAoZG9jdW1lbnRhdGlvbiBtYWpvci1tb2RlKSBuaWwgJ2RvYykpCi0gICAgICAg IChwcmluYyAoaGVscC1mbnMtLWxpc3QtbG9jYWwtY29tbWFuZHMpKSkpKQorICAgICAgICAgICAg ICAgIChoZWxwLXhyZWYtYnV0dG9uIDEgJ2hlbHAtZnVuY3Rpb24tZGVmIG1vZGUgZmlsZS1uYW1l KSkpKSkKKyAgICAgICAgKGxldCAoKGZ1bmRvYyAoaGVscC1zcGxpdC1mdW5kb2MgKGRvY3VtZW50 YXRpb24gbWFqb3ItbW9kZSkgbmlsICdkb2MpKSkKKyAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1 ZmZlciBzdGFuZGFyZC1vdXRwdXQKKyAgICAgICAgICAgIChpbnNlcnQgIjpcbiIpCisgICAgICAg ICAgICAoaW5zZXJ0IGZ1bmRvYykKKyAgICAgICAgICAgIChpbnNlcnQgKGhlbHAtZm5zLS1saXN0 LWxvY2FsLWNvbW1hbmRzKSkpKSkpKQogICA7OyBGb3IgdGhlIHNha2Ugb2YgSUVMTSBhbmQgbWF5 YmUgb3RoZXJzCiAgIG5pbCkKIApkaWZmIC0tZ2l0IGEvbGlzcC9oZWxwLW1hY3JvLmVsIGIvbGlz cC9oZWxwLW1hY3JvLmVsCmluZGV4IDc5MWIxMGE4NzguLjc0Njg5Y2I1YjQgMTAwNjQ0Ci0tLSBh L2xpc3AvaGVscC1tYWNyby5lbAorKysgYi9saXNwL2hlbHAtbWFjcm8uZWwKQEAgLTkyLDExOSAr OTIsMTE2IEBAIG1ha2UtaGVscC1zY3JlZW4KIHdpdGggdGhlIGtleSBzZXF1ZW5jZSB0aGF0IGlu dm9rZWQgRk5BTUUuCiBXaGVuIEZOQU1FIGZpbmFsbHkgZG9lcyBnZXQgYSBjb21tYW5kLCBpdCBl eGVjdXRlcyB0aGF0IGNvbW1hbmQKIGFuZCB0aGVuIHJldHVybnMuIgotICAobGV0ICgoZG9jLWZu IChpbnRlcm4gKGNvbmNhdCAoc3ltYm9sLW5hbWUgZm5hbWUpICItZG9jIikpKSkKLSAgICBgKHBy b2duCi0gICAgICAgKGRlZnVuICxkb2MtZm4gKCkgLGhlbHAtdGV4dCBuaWwpCi0gICAgICAgKGRl ZnVuICxmbmFtZSAoKQotCSAiSGVscCBjb21tYW5kLiIKLQkgKGludGVyYWN0aXZlKQotCSAobGV0 ICgobGluZS1wcm9tcHQKLQkJKHN1YnN0aXR1dGUtY29tbWFuZC1rZXlzICxoZWxwLWxpbmUpKSkK LQkgICAod2hlbiB0aHJlZS1zdGVwLWhlbHAKLQkgICAgIChtZXNzYWdlICIlcyIgbGluZS1wcm9t cHQpKQotCSAgIChsZXQqICgoaGVscC1zY3JlZW4gKGRvY3VtZW50YXRpb24gKHF1b3RlICxkb2Mt Zm4pKSkKLQkJICA7OyBXZSBiaW5kIG92ZXJyaWRpbmctbG9jYWwtbWFwIGZvciB2ZXJ5IHNtYWxs Ci0JCSAgOzsgc2VjdGlvbnMsICpleGNsdWRpbmcqIHdoZXJlIHdlIHN3aXRjaCBidWZmZXJzCi0J CSAgOzsgYW5kIHdoZXJlIHdlIGV4ZWN1dGUgdGhlIGNob3NlbiBoZWxwIGNvbW1hbmQuCi0JCSAg KGxvY2FsLW1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSkKLQkJICAobmV3LW1pbm9yLW1vZGUtbWFw LWFsaXN0IG1pbm9yLW1vZGUtbWFwLWFsaXN0KQotCQkgIChwcmV2LWZyYW1lIChzZWxlY3RlZC1m cmFtZSkpCi0JCSAgY29uZmlnIG5ldy1mcmFtZSBrZXkgY2hhcikKLQkgICAgICh3aGVuIChzdHJp bmctbWF0Y2ggIiVUSElTLUtFWSUiIGhlbHAtc2NyZWVuKQotCSAgICAgICAoc2V0cSBoZWxwLXNj cmVlbgotCQkgICAgIChyZXBsYWNlLW1hdGNoIChrZXktZGVzY3JpcHRpb24KLQkJCQkgICAgIChz dWJzdHJpbmcgKHRoaXMtY29tbWFuZC1rZXlzKSAwIC0xKSkKLQkJCQkgICAgdCB0IGhlbHAtc2Ny ZWVuKSkpCi0JICAgICAodW53aW5kLXByb3RlY3QKLQkJIChsZXQgKChtaW5vci1tb2RlLW1hcC1h bGlzdCBuaWwpKQotCQkgICAoc2V0Y2RyIGxvY2FsLW1hcCAsaGVscGVkLW1hcCkKLQkJICAgKGRl ZmluZS1rZXkgbG9jYWwtbWFwIFt0XSAndW5kZWZpbmVkKQotCQkgICA7OyBNYWtlIHRoZSBzY3Jv bGwgYmFyIGtlZXAgd29ya2luZyBub3JtYWxseS4KLQkJICAgKGRlZmluZS1rZXkgbG9jYWwtbWFw IFt2ZXJ0aWNhbC1zY3JvbGwtYmFyXQotCQkgICAgIChsb29rdXAta2V5IGdsb2JhbC1tYXAgW3Zl cnRpY2FsLXNjcm9sbC1iYXJdKSkKLQkJICAgKGlmIHRocmVlLXN0ZXAtaGVscAotCQkgICAgICAg KHByb2duCi0JCQkgKHNldHEga2V5IChsZXQgKChvdmVycmlkaW5nLWxvY2FsLW1hcCBsb2NhbC1t YXApKQotCQkJCSAgICAgKHJlYWQta2V5LXNlcXVlbmNlIG5pbCkpKQotCQkJIDs7IE1ha2UgdGhl IEhFTFAga2V5IHRyYW5zbGF0ZSB0byBDLWguCi0JCQkgKGlmIChsb29rdXAta2V5IGZ1bmN0aW9u LWtleS1tYXAga2V5KQotCQkJICAgICAoc2V0cSBrZXkgKGxvb2t1cC1rZXkgZnVuY3Rpb24ta2V5 LW1hcCBrZXkpKSkKLQkJCSAoc2V0cSBjaGFyIChhcmVmIGtleSAwKSkpCi0JCSAgICAgKHNldHEg Y2hhciA/PykpCi0JCSAgICh3aGVuIChvciAoZXEgY2hhciA/PykgKGVxIGNoYXIgaGVscC1jaGFy KQotCQkJICAgICAobWVtcSBjaGFyIGhlbHAtZXZlbnQtbGlzdCkpCi0JCSAgICAgKHNldHEgY29u ZmlnIChjdXJyZW50LXdpbmRvdy1jb25maWd1cmF0aW9uKSkKLQkJICAgICAocG9wLXRvLWJ1ZmZl ciAiICpNZXRhaGVscCoiIG5pbCB0KQotCQkgICAgIChhbmQgKGZib3VuZHAgJ21ha2UtZnJhbWUp Ci0JCQkgIChub3QgKGVxICh3aW5kb3ctZnJhbWUpCi0JCQkJICAgcHJldi1mcmFtZSkpCi0JCQkg IChzZXRxIG5ldy1mcmFtZSAod2luZG93LWZyYW1lKQotCQkJCWNvbmZpZyBuaWwpKQotCQkgICAg IChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgbmlsKQotCQkgICAgIChsZXQgKChpbmhpYml0LXJlYWQt b25seSB0KSkKLQkJICAgICAgIChlcmFzZS1idWZmZXIpCi0JCSAgICAgICAoaW5zZXJ0IGhlbHAt c2NyZWVuKSkKLQkJICAgICAobGV0ICgobWlub3ItbW9kZS1tYXAtYWxpc3QgbmV3LW1pbm9yLW1v ZGUtbWFwLWFsaXN0KSkKLQkJICAgICAgIChoZWxwLW1vZGUpCi0JCSAgICAgICAoc2V0cSBuZXct bWlub3ItbW9kZS1tYXAtYWxpc3QgbWlub3ItbW9kZS1tYXAtYWxpc3QpKQotCQkgICAgIChnb3Rv LWNoYXIgKHBvaW50LW1pbikpCi0JCSAgICAgKHdoaWxlIChvciAobWVtcSBjaGFyIChhcHBlbmQg aGVscC1ldmVudC1saXN0Ci0JCQkJCQkgICAoY29ucyBoZWxwLWNoYXIgJyg/PyA/XEMtdiA/XHMg P1wxNzcgZGVsZXRlIGJhY2tzcGFjZSB2ZXJ0aWNhbC1zY3JvbGwtYmFyID9cTS12KSkpKQotCQkJ CShlcSAoY2FyLXNhZmUgY2hhcikgJ3N3aXRjaC1mcmFtZSkKLQkJCQkoZXF1YWwga2V5ICJcTS12 IikpCi0JCSAgICAgICAoY29uZGl0aW9uLWNhc2UgbmlsCi0JCQkgICAoY29uZAotCQkJICAgICgo ZXEgKGNhci1zYWZlIGNoYXIpICdzd2l0Y2gtZnJhbWUpCi0JCQkgICAgIChoYW5kbGUtc3dpdGNo LWZyYW1lIGNoYXIpKQotCQkJICAgICgobWVtcSBjaGFyICcoP1xDLXYgP1xzKSkKLQkJCSAgICAg KHNjcm9sbC11cCkpCi0JCQkgICAgKChvciAobWVtcSBjaGFyICcoP1wxNzcgP1xNLXYgZGVsZXRl IGJhY2tzcGFjZSkpCi0JCQkJIChlcXVhbCBrZXkgIlxNLXYiKSkKLQkJCSAgICAgKHNjcm9sbC1k b3duKSkpCi0JCQkgKGVycm9yIG5pbCkpCi0JCSAgICAgICAobGV0ICgoY3Vyc29yLWluLWVjaG8t YXJlYSB0KQotCQkJICAgICAob3ZlcnJpZGluZy1sb2NhbC1tYXAgbG9jYWwtbWFwKSkKLQkJCSAo c2V0cSBrZXkgKHJlYWQta2V5LXNlcXVlbmNlCi0JCQkJICAgIChmb3JtYXQgIlR5cGUgb25lIG9m IHRoZSBvcHRpb25zIGxpc3RlZCVzOiAiCi0JCQkJCSAgICAoaWYgKHBvcy12aXNpYmxlLWluLXdp bmRvdy1wCi0JCQkJCQkgKHBvaW50LW1heCkpCi0JCQkJCQkiIiAiLCBvciBTUEFDRSBvciBERUwg dG8gc2Nyb2xsIikpKQotCQkJICAgICAgIGNoYXIgKGFyZWYga2V5IDApKSkKLQotCQkgICAgICAg OzsgSWYgdGhpcyBpcyBhIHNjcm9sbCBiYXIgY29tbWFuZCwganVzdCBydW4gaXQuCi0JCSAgICAg ICAod2hlbiAoZXEgY2hhciAndmVydGljYWwtc2Nyb2xsLWJhcikKLQkJCSAoY29tbWFuZC1leGVj dXRlIChsb29rdXAta2V5IGxvY2FsLW1hcCBrZXkpIG5pbCBrZXkpKSkpCi0JCSAgIDs7IFdlIGRv bid0IG5lZWQgdGhlIHByb21wdCBhbnkgbW9yZS4KLQkJICAgKG1lc3NhZ2UgIiIpCi0JCSAgIDs7 IE1vdXNlIGNsaWNrcyBhcmUgbm90IHBhcnQgb2YgdGhlIGhlbHAgZmVhdHVyZSwKLQkJICAgOzsg c28gcmVleGVjdXRlIHRoZW0gaW4gdGhlIHN0YW5kYXJkIGVudmlyb25tZW50LgotCQkgICAoaWYg KGxpc3RwIGNoYXIpCi0JCSAgICAgICAoc2V0cSB1bnJlYWQtY29tbWFuZC1ldmVudHMKLQkJCSAg ICAgKGNvbnMgY2hhciB1bnJlYWQtY29tbWFuZC1ldmVudHMpCi0JCQkgICAgIGNvbmZpZyBuaWwp Ci0JCSAgICAgKGxldCAoKGRlZm4gKGxvb2t1cC1rZXkgbG9jYWwtbWFwIGtleSkpKQotCQkgICAg ICAgKGlmIGRlZm4KLQkJCSAgIChwcm9nbgotCQkJICAgICAod2hlbiBjb25maWcKLQkJCSAgICAg ICAoc2V0LXdpbmRvdy1jb25maWd1cmF0aW9uIGNvbmZpZykKLQkJCSAgICAgICAoc2V0cSBjb25m aWcgbmlsKSkKLQkJCSAgICAgOzsgVGVtcG9yYXJpbHkgcmViaW5kIGBtaW5vci1tb2RlLW1hcC1h bGlzdCcKLQkJCSAgICAgOzsgdG8gYG5ldy1taW5vci1tb2RlLW1hcC1hbGlzdCcgKEJ1ZyMxMDQ1 NCkuCi0JCQkgICAgIChsZXQgKChtaW5vci1tb2RlLW1hcC1hbGlzdCBuZXctbWlub3ItbW9kZS1t YXAtYWxpc3QpKQotCQkJICAgICAgIDs7IGBkZWZuJyBtdXN0IG1ha2Ugc3VyZSB0aGF0IGl0cyBm cmFtZSBpcwotCQkJICAgICAgIDs7IHNlbGVjdGVkLCBzbyB3ZSB3b24ndCBpY29uaWZ5IGl0IGJl bG93LgotCQkJICAgICAgIChjYWxsLWludGVyYWN0aXZlbHkgZGVmbikpCi0JCQkgICAgICh3aGVu IG5ldy1mcmFtZQotCQkJICAgICAgIDs7IERvIG5vdCBpY29uaWZ5IHRoZSBzZWxlY3RlZCBmcmFt ZS4KLQkJCSAgICAgICAodW5sZXNzIChlcSBuZXctZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkKLQkJ CQkgKGljb25pZnktZnJhbWUgbmV3LWZyYW1lKSkKLQkJCSAgICAgICAoc2V0cSBuZXctZnJhbWUg bmlsKSkpCi0JCQkgKGRpbmcpKSkpKQotCSAgICAgICAod2hlbiBjb25maWcKLQkJIChzZXQtd2lu ZG93LWNvbmZpZ3VyYXRpb24gY29uZmlnKSkKLQkgICAgICAgKHdoZW4gbmV3LWZyYW1lCi0JCSAo aWNvbmlmeS1mcmFtZSBuZXctZnJhbWUpKQotCSAgICAgICAoc2V0cSBtaW5vci1tb2RlLW1hcC1h bGlzdCBuZXctbWlub3ItbW9kZS1tYXAtYWxpc3QpKSkpKSkpKQorICBgKGRlZnVuICxmbmFtZSAo KQorICAgICAiSGVscCBjb21tYW5kLiIKKyAgICAgKGludGVyYWN0aXZlKQorICAgICAobGV0ICgo bGluZS1wcm9tcHQKKyAgICAgICAgICAgIChzdWJzdGl0dXRlLWNvbW1hbmQta2V5cyAsaGVscC1s aW5lKSkpCisgICAgICAgKHdoZW4gdGhyZWUtc3RlcC1oZWxwCisgICAgICAgICAobWVzc2FnZSAi JXMiIGxpbmUtcHJvbXB0KSkKKyAgICAgICAobGV0KiAoKGhlbHAtc2NyZWVuICxoZWxwLXRleHQp CisgICAgICAgICAgICAgIDs7IFdlIGJpbmQgb3ZlcnJpZGluZy1sb2NhbC1tYXAgZm9yIHZlcnkg c21hbGwKKyAgICAgICAgICAgICAgOzsgc2VjdGlvbnMsICpleGNsdWRpbmcqIHdoZXJlIHdlIHN3 aXRjaCBidWZmZXJzCisgICAgICAgICAgICAgIDs7IGFuZCB3aGVyZSB3ZSBleGVjdXRlIHRoZSBj aG9zZW4gaGVscCBjb21tYW5kLgorICAgICAgICAgICAgICAobG9jYWwtbWFwIChtYWtlLXNwYXJz ZS1rZXltYXApKQorICAgICAgICAgICAgICAobmV3LW1pbm9yLW1vZGUtbWFwLWFsaXN0IG1pbm9y LW1vZGUtbWFwLWFsaXN0KQorICAgICAgICAgICAgICAocHJldi1mcmFtZSAoc2VsZWN0ZWQtZnJh bWUpKQorICAgICAgICAgICAgICBjb25maWcgbmV3LWZyYW1lIGtleSBjaGFyKQorICAgICAgICAg KHdoZW4gKHN0cmluZy1tYXRjaCAiJVRISVMtS0VZJSIgaGVscC1zY3JlZW4pCisgICAgICAgICAg IChzZXRxIGhlbHAtc2NyZWVuCisgICAgICAgICAgICAgICAgIChyZXBsYWNlLW1hdGNoIChoZWxw LS1rZXktZGVzY3JpcHRpb24tZm9udGlmaWVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc3Vic3RyaW5nICh0aGlzLWNvbW1hbmQta2V5cykgMCAtMSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHQgdCBoZWxwLXNjcmVlbikpKQorICAgICAgICAgKHVud2luZC1w cm90ZWN0CisgICAgICAgICAgICAgKGxldCAoKG1pbm9yLW1vZGUtbWFwLWFsaXN0IG5pbCkpCisg ICAgICAgICAgICAgICAoc2V0Y2RyIGxvY2FsLW1hcCAsaGVscGVkLW1hcCkKKyAgICAgICAgICAg ICAgIChkZWZpbmUta2V5IGxvY2FsLW1hcCBbdF0gJ3VuZGVmaW5lZCkKKyAgICAgICAgICAgICAg IDs7IE1ha2UgdGhlIHNjcm9sbCBiYXIga2VlcCB3b3JraW5nIG5vcm1hbGx5LgorICAgICAgICAg ICAgICAgKGRlZmluZS1rZXkgbG9jYWwtbWFwIFt2ZXJ0aWNhbC1zY3JvbGwtYmFyXQorICAgICAg ICAgICAgICAgICAobG9va3VwLWtleSBnbG9iYWwtbWFwIFt2ZXJ0aWNhbC1zY3JvbGwtYmFyXSkp CisgICAgICAgICAgICAgICAoaWYgdGhyZWUtc3RlcC1oZWxwCisgICAgICAgICAgICAgICAgICAg KHByb2duCisgICAgICAgICAgICAgICAgICAgICAoc2V0cSBrZXkgKGxldCAoKG92ZXJyaWRpbmct bG9jYWwtbWFwIGxvY2FsLW1hcCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo cmVhZC1rZXktc2VxdWVuY2UgbmlsKSkpCisgICAgICAgICAgICAgICAgICAgICA7OyBNYWtlIHRo ZSBIRUxQIGtleSB0cmFuc2xhdGUgdG8gQy1oLgorICAgICAgICAgICAgICAgICAgICAgKGlmIChs b29rdXAta2V5IGZ1bmN0aW9uLWtleS1tYXAga2V5KQorICAgICAgICAgICAgICAgICAgICAgICAg IChzZXRxIGtleSAobG9va3VwLWtleSBmdW5jdGlvbi1rZXktbWFwIGtleSkpKQorICAgICAgICAg ICAgICAgICAgICAgKHNldHEgY2hhciAoYXJlZiBrZXkgMCkpKQorICAgICAgICAgICAgICAgICAo c2V0cSBjaGFyID8/KSkKKyAgICAgICAgICAgICAgICh3aGVuIChvciAoZXEgY2hhciA/PykgKGVx IGNoYXIgaGVscC1jaGFyKQorICAgICAgICAgICAgICAgICAgICAgICAgIChtZW1xIGNoYXIgaGVs cC1ldmVudC1saXN0KSkKKyAgICAgICAgICAgICAgICAgKHNldHEgY29uZmlnIChjdXJyZW50LXdp bmRvdy1jb25maWd1cmF0aW9uKSkKKyAgICAgICAgICAgICAgICAgKHBvcC10by1idWZmZXIgIiAq TWV0YWhlbHAqIiBuaWwgdCkKKyAgICAgICAgICAgICAgICAgKGFuZCAoZmJvdW5kcCAnbWFrZS1m cmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAobm90IChlcSAod2luZG93LWZyYW1lKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXYtZnJhbWUpKQorICAgICAgICAgICAgICAg ICAgICAgIChzZXRxIG5ldy1mcmFtZSAod2luZG93LWZyYW1lKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbmZpZyBuaWwpKQorICAgICAgICAgICAgICAgICAoc2V0cSBidWZmZXItcmVh ZC1vbmx5IG5pbCkKKyAgICAgICAgICAgICAgICAgKGxldCAoKGluaGliaXQtcmVhZC1vbmx5IHQp KQorICAgICAgICAgICAgICAgICAgIChlcmFzZS1idWZmZXIpCisgICAgICAgICAgICAgICAgICAg KGluc2VydCAoc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMgaGVscC1zY3JlZW4pKSkKKyAgICAgICAg ICAgICAgICAgKGxldCAoKG1pbm9yLW1vZGUtbWFwLWFsaXN0IG5ldy1taW5vci1tb2RlLW1hcC1h bGlzdCkpCisgICAgICAgICAgICAgICAgICAgKGhlbHAtbW9kZSkKKyAgICAgICAgICAgICAgICAg ICAoc2V0cSBuZXctbWlub3ItbW9kZS1tYXAtYWxpc3QgbWlub3ItbW9kZS1tYXAtYWxpc3QpKQor ICAgICAgICAgICAgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgICAgICAgICAgICAg ICAod2hpbGUgKG9yIChtZW1xIGNoYXIgKGFwcGVuZCBoZWxwLWV2ZW50LWxpc3QKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMgaGVscC1jaGFyICco Pz8gP1xDLXYgP1xzID9cMTc3IGRlbGV0ZSBiYWNrc3BhY2UgdmVydGljYWwtc2Nyb2xsLWJhciA/ XE0tdikpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgKGNhci1zYWZlIGNoYXIp ICdzd2l0Y2gtZnJhbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsIGtleSAi XE0tdiIpKQorICAgICAgICAgICAgICAgICAgIChjb25kaXRpb24tY2FzZSBuaWwKKyAgICAgICAg ICAgICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICgoZXEgKGNhci1z YWZlIGNoYXIpICdzd2l0Y2gtZnJhbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGhhbmRs ZS1zd2l0Y2gtZnJhbWUgY2hhcikpCisgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbXEgY2hh ciAnKD9cQy12ID9ccykpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHNjcm9sbC11cCkpCisg ICAgICAgICAgICAgICAgICAgICAgICAoKG9yIChtZW1xIGNoYXIgJyg/XDE3NyA/XE0tdiBkZWxl dGUgYmFja3NwYWNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsIGtleSAi XE0tdiIpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChzY3JvbGwtZG93bikpKQorICAgICAg ICAgICAgICAgICAgICAgKGVycm9yIG5pbCkpCisgICAgICAgICAgICAgICAgICAgKGxldCAoKGN1 cnNvci1pbi1lY2hvLWFyZWEgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAob3ZlcnJpZGlu Zy1sb2NhbC1tYXAgbG9jYWwtbWFwKSkKKyAgICAgICAgICAgICAgICAgICAgIChzZXRxIGtleSAo cmVhZC1rZXktc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1h dCAiVHlwZSBvbmUgb2YgdGhlIG9wdGlvbnMgbGlzdGVkJXM6ICIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHBvcy12aXNpYmxlLWluLXdpbmRvdy1wCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQtbWF4KSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgIiwgb3IgU1BBQ0Ug b3IgREVMIHRvIHNjcm9sbCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKGFy ZWYga2V5IDApKSkKKworICAgICAgICAgICAgICAgICAgIDs7IElmIHRoaXMgaXMgYSBzY3JvbGwg YmFyIGNvbW1hbmQsIGp1c3QgcnVuIGl0LgorICAgICAgICAgICAgICAgICAgICh3aGVuIChlcSBj aGFyICd2ZXJ0aWNhbC1zY3JvbGwtYmFyKQorICAgICAgICAgICAgICAgICAgICAgKGNvbW1hbmQt ZXhlY3V0ZSAobG9va3VwLWtleSBsb2NhbC1tYXAga2V5KSBuaWwga2V5KSkpKQorICAgICAgICAg ICAgICAgOzsgV2UgZG9uJ3QgbmVlZCB0aGUgcHJvbXB0IGFueSBtb3JlLgorICAgICAgICAgICAg ICAgKG1lc3NhZ2UgIiIpCisgICAgICAgICAgICAgICA7OyBNb3VzZSBjbGlja3MgYXJlIG5vdCBw YXJ0IG9mIHRoZSBoZWxwIGZlYXR1cmUsCisgICAgICAgICAgICAgICA7OyBzbyByZWV4ZWN1dGUg dGhlbSBpbiB0aGUgc3RhbmRhcmQgZW52aXJvbm1lbnQuCisgICAgICAgICAgICAgICAoaWYgKGxp c3RwIGNoYXIpCisgICAgICAgICAgICAgICAgICAgKHNldHEgdW5yZWFkLWNvbW1hbmQtZXZlbnRz CisgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMgY2hhciB1bnJlYWQtY29tbWFuZC1ldmVu dHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnIG5pbCkKKyAgICAgICAgICAgICAg ICAgKGxldCAoKGRlZm4gKGxvb2t1cC1rZXkgbG9jYWwtbWFwIGtleSkpKQorICAgICAgICAgICAg ICAgICAgIChpZiBkZWZuCisgICAgICAgICAgICAgICAgICAgICAgIChwcm9nbgorICAgICAgICAg ICAgICAgICAgICAgICAgICh3aGVuIGNvbmZpZworICAgICAgICAgICAgICAgICAgICAgICAgICAg KHNldC13aW5kb3ctY29uZmlndXJhdGlvbiBjb25maWcpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc2V0cSBjb25maWcgbmlsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICA7OyBUZW1w b3JhcmlseSByZWJpbmQgYG1pbm9yLW1vZGUtbWFwLWFsaXN0JworICAgICAgICAgICAgICAgICAg ICAgICAgIDs7IHRvIGBuZXctbWlub3ItbW9kZS1tYXAtYWxpc3QnIChCdWcjMTA0NTQpLgorICAg ICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChtaW5vci1tb2RlLW1hcC1hbGlzdCBuZXctbWlu b3ItbW9kZS1tYXAtYWxpc3QpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgYGRlZm4n IG11c3QgbWFrZSBzdXJlIHRoYXQgaXRzIGZyYW1lIGlzCisgICAgICAgICAgICAgICAgICAgICAg ICAgICA7OyBzZWxlY3RlZCwgc28gd2Ugd29uJ3QgaWNvbmlmeSBpdCBiZWxvdy4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIChjYWxsLWludGVyYWN0aXZlbHkgZGVmbikpCisgICAgICAgICAg ICAgICAgICAgICAgICAgKHdoZW4gbmV3LWZyYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAg ICA7OyBEbyBub3QgaWNvbmlmeSB0aGUgc2VsZWN0ZWQgZnJhbWUuCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAodW5sZXNzIChlcSBuZXctZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGljb25pZnktZnJhbWUgbmV3LWZyYW1lKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzZXRxIG5ldy1mcmFtZSBuaWwpKSkKKyAgICAgICAgICAg ICAgICAgICAgIChkaW5nKSkpKSkKKyAgICAgICAgICAgKHdoZW4gY29uZmlnCisgICAgICAgICAg ICAgKHNldC13aW5kb3ctY29uZmlndXJhdGlvbiBjb25maWcpKQorICAgICAgICAgICAod2hlbiBu ZXctZnJhbWUKKyAgICAgICAgICAgICAoaWNvbmlmeS1mcmFtZSBuZXctZnJhbWUpKQorICAgICAg ICAgICAoc2V0cSBtaW5vci1tb2RlLW1hcC1hbGlzdCBuZXctbWlub3ItbW9kZS1tYXAtYWxpc3Qp KSkpKSkKIAogKHByb3ZpZGUgJ2hlbHAtbWFjcm8pCiAKZGlmZiAtLWdpdCBhL2xpc3AvaGVscC5l bCBiL2xpc3AvaGVscC5lbAppbmRleCAwODRlOTQxNTQ5Li41MGFiYjI4Y2IxIDEwMDY0NAotLS0g YS9saXNwL2hlbHAuZWwKKysrIGIvbGlzcC9oZWxwLmVsCkBAIC0xMDQsOCArMTA0LDggQEAgaGVs cC1tYXAKICAgICAoZGVmaW5lLWtleSBtYXAgIlIiICdpbmZvLWRpc3BsYXktbWFudWFsKQogICAg IChkZWZpbmUta2V5IG1hcCAicyIgJ2Rlc2NyaWJlLXN5bnRheCkKICAgICAoZGVmaW5lLWtleSBt YXAgInQiICdoZWxwLXdpdGgtdHV0b3JpYWwpCi0gICAgKGRlZmluZS1rZXkgbWFwICJ3IiAnd2hl cmUtaXMpCiAgICAgKGRlZmluZS1rZXkgbWFwICJ2IiAnZGVzY3JpYmUtdmFyaWFibGUpCisgICAg KGRlZmluZS1rZXkgbWFwICJ3IiAnd2hlcmUtaXMpCiAgICAgKGRlZmluZS1rZXkgbWFwICJxIiAn aGVscC1xdWl0KQogICAgIG1hcCkKICAgIktleW1hcCBmb3IgY2hhcmFjdGVycyBmb2xsb3dpbmcg dGhlIEhlbHAga2V5LiIpCkBAIC0xODcsMTEgKzE4Nyw4IEBAIGhlbHAtcHJpbnQtcmV0dXJuLW1l c3NhZ2UKIDs7IFNvIGtleWJvYXJkIG1hY3JvIGRlZmluaXRpb25zIGFyZSBkb2N1bWVudGVkIGNv cnJlY3RseQogKGZzZXQgJ2RlZmluaW5nLWtiZC1tYWNybyAoc3ltYm9sLWZ1bmN0aW9uICdzdGFy dC1rYmQtbWFjcm8pKQogCi0oZGVmYWxpYXMgJ2hlbHAgJ2hlbHAtZm9yLWhlbHAtaW50ZXJuYWwp Ci07OyBmaW5kLWZ1bmN0aW9uIGNhbiBmaW5kIHRoaXMuCi0oZGVmYWxpYXMgJ2hlbHAtZm9yLWhl bHAgJ2hlbHAtZm9yLWhlbHAtaW50ZXJuYWwpCi07OyBJdCBjYW4ndCBmaW5kIHRoaXMsIGJ1dCBu b2JvZHkgd2lsbCBsb29rLgotKG1ha2UtaGVscC1zY3JlZW4gaGVscC1mb3ItaGVscC1pbnRlcm5h bAorKGRlZmFsaWFzICdoZWxwICdoZWxwLWZvci1oZWxwKQorKG1ha2UtaGVscC1zY3JlZW4gaGVs cC1mb3ItaGVscAogICAocHVyZWNvcHkgIlR5cGUgYSBoZWxwIG9wdGlvbjogW2FiY0NkZWZGZ2lJ a0tsTG1ucHJzdHZ3Ll0gQy1bY2RlZm1ub3B0d10gb3IgPyIpCiAgIDs7IERvbid0IHB1cmVjb3B5 IHRoaXMgb25lLCBiZWNhdXNlIGl0J3Mgbm90IGV2YWx1YXRlZCAoaXQncwogICA7OyBkaXJlY3Rs eSB1c2VkIGFzIGEgZG9jc3RyaW5nIGluIGEgZnVuY3Rpb24gZGVmaW5pdGlvbiwgc28gaXQnbGwK QEAgLTE5OSw1MiArMTk2LDUyIEBAICdoZWxwLWZvci1oZWxwCiAgICJZb3UgaGF2ZSB0eXBlZCAl VEhJUy1LRVklLCB0aGUgaGVscCBjaGFyYWN0ZXIuICBUeXBlIGEgSGVscCBvcHRpb246CiBcKFVz ZSBTUEMgb3IgREVMIHRvIHNjcm9sbCB0aHJvdWdoIHRoaXMgdGV4dC4gIFR5cGUgXFw8aGVscC1t YXA+XFxbaGVscC1xdWl0XSB0byBleGl0IHRoZSBIZWxwIGNvbW1hbmQuKQogCi1hIFBBVFRFUk4g ICBTaG93IGNvbW1hbmRzIHdob3NlIG5hbWUgbWF0Y2hlcyB0aGUgUEFUVEVSTiAoYSBsaXN0IG9m IHdvcmRzCitcXFthcHJvcG9zLWNvbW1hbmRdIFBBVFRFUk4gICBTaG93IGNvbW1hbmRzIHdob3Nl IG5hbWUgbWF0Y2hlcyB0aGUgUEFUVEVSTiAoYSBsaXN0IG9mIHdvcmRzCiAgICAgICAgICAgICAg IG9yIGEgcmVnZXhwKS4gIFNlZSBhbHNvIHRoZSBgYXByb3BvcycgY29tbWFuZC4KLWIgICAgICAg ICAgIERpc3BsYXkgYWxsIGtleSBiaW5kaW5ncy4KLWMgS0VZUyAgICAgIERpc3BsYXkgdGhlIGNv bW1hbmQgbmFtZSBydW4gYnkgdGhlIGdpdmVuIGtleSBzZXF1ZW5jZS4KLUMgQ09ESU5HICAgIERl c2NyaWJlIHRoZSBnaXZlbiBjb2Rpbmcgc3lzdGVtLCBvciBSRVQgZm9yIGN1cnJlbnQgb25lcy4K LWQgUEFUVEVSTiAgIFNob3cgYSBsaXN0IG9mIGZ1bmN0aW9ucywgdmFyaWFibGVzLCBhbmQgb3Ro ZXIgaXRlbXMgd2hvc2UKK1xcW2Rlc2NyaWJlLWJpbmRpbmdzXSAgICAgICAgICAgRGlzcGxheSBh bGwga2V5IGJpbmRpbmdzLgorXFxbZGVzY3JpYmUta2V5LWJyaWVmbHldIEtFWVMgICAgICBEaXNw bGF5IHRoZSBjb21tYW5kIG5hbWUgcnVuIGJ5IHRoZSBnaXZlbiBrZXkgc2VxdWVuY2UuCitcXFtk ZXNjcmliZS1jb2Rpbmctc3lzdGVtXSBDT0RJTkcgICAgRGVzY3JpYmUgdGhlIGdpdmVuIGNvZGlu ZyBzeXN0ZW0sIG9yIFJFVCBmb3IgY3VycmVudCBvbmVzLgorXFxbYXByb3Bvcy1kb2N1bWVudGF0 aW9uXSBQQVRURVJOICAgU2hvdyBhIGxpc3Qgb2YgZnVuY3Rpb25zLCB2YXJpYWJsZXMsIGFuZCBv dGhlciBpdGVtcyB3aG9zZQogICAgICAgICAgICAgICBkb2N1bWVudGF0aW9uIG1hdGNoZXMgdGhl IFBBVFRFUk4gKGEgbGlzdCBvZiB3b3JkcyBvciBhIHJlZ2V4cCkuCi1lICAgICAgICAgICBHbyB0 byB0aGUgKk1lc3NhZ2VzKiBidWZmZXIgd2hpY2ggbG9ncyBlY2hvLWFyZWEgbWVzc2FnZXMuCi1m IEZVTkNUSU9OICBEaXNwbGF5IGRvY3VtZW50YXRpb24gZm9yIHRoZSBnaXZlbiBmdW5jdGlvbi4K LUYgQ09NTUFORCAgIFNob3cgdGhlIEVtYWNzIG1hbnVhbCdzIHNlY3Rpb24gdGhhdCBkZXNjcmli ZXMgdGhlIGNvbW1hbmQuCi1nICAgICAgICAgICBEaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHRo ZSBHTlUgcHJvamVjdC4KLWggICAgICAgICAgIERpc3BsYXkgdGhlIEhFTExPIGZpbGUgd2hpY2gg aWxsdXN0cmF0ZXMgdmFyaW91cyBzY3JpcHRzLgotaSAgICAgICAgICAgU3RhcnQgdGhlIEluZm8g ZG9jdW1lbnRhdGlvbiByZWFkZXI6IHJlYWQgaW5jbHVkZWQgbWFudWFscy4KLUkgTUVUSE9EICAg IERlc2NyaWJlIGEgc3BlY2lmaWMgaW5wdXQgbWV0aG9kLCBvciBSRVQgZm9yIGN1cnJlbnQuCi1r IEtFWVMgICAgICBEaXNwbGF5IHRoZSBmdWxsIGRvY3VtZW50YXRpb24gZm9yIHRoZSBrZXkgc2Vx dWVuY2UuCi1LIEtFWVMgICAgICBTaG93IHRoZSBFbWFjcyBtYW51YWwncyBzZWN0aW9uIGZvciB0 aGUgY29tbWFuZCBib3VuZCB0byBLRVlTLgotbCAgICAgICAgICAgU2hvdyBsYXN0IDMwMCBpbnB1 dCBrZXlzdHJva2VzIChsb3NzYWdlKS4KLUwgTEFORy1FTlYgIERlc2NyaWJlcyBhIHNwZWNpZmlj IGxhbmd1YWdlIGVudmlyb25tZW50LCBvciBSRVQgZm9yIGN1cnJlbnQuCi1tICAgICAgICAgICBE aXNwbGF5IGRvY3VtZW50YXRpb24gb2YgY3VycmVudCBtaW5vciBtb2RlcyBhbmQgY3VycmVudCBt YWpvciBtb2RlLAotICAgICAgICAgICAgICBpbmNsdWRpbmcgdGhlaXIgc3BlY2lhbCBjb21tYW5k cy4KLW4gICAgICAgICAgIERpc3BsYXkgbmV3cyBvZiByZWNlbnQgRW1hY3MgY2hhbmdlcy4KLW8g U1lNQk9MICAgIERpc3BsYXkgdGhlIGdpdmVuIGZ1bmN0aW9uIG9yIHZhcmlhYmxlJ3MgZG9jdW1l bnRhdGlvbiBhbmQgdmFsdWUuCi1wIFRPUElDICAgICBGaW5kIHBhY2thZ2VzIG1hdGNoaW5nIGEg Z2l2ZW4gdG9waWMga2V5d29yZC4KLVAgUEFDS0FHRSAgIERlc2NyaWJlIHRoZSBnaXZlbiBFbWFj cyBMaXNwIHBhY2thZ2UuCi1yICAgICAgICAgICBEaXNwbGF5IHRoZSBFbWFjcyBtYW51YWwgaW4g SW5mbyBtb2RlLgotUiAgICAgICAgICAgUHJvbXB0IGZvciBhIG1hbnVhbCBhbmQgdGhlbiBkaXNw bGF5IGl0IGluIEluZm8gbW9kZS4KLXMgICAgICAgICAgIERpc3BsYXkgY29udGVudHMgb2YgY3Vy cmVudCBzeW50YXggdGFibGUsIHBsdXMgZXhwbGFuYXRpb25zLgotUyBTWU1CT0wgICAgU2hvdyB0 aGUgc2VjdGlvbiBmb3IgdGhlIGdpdmVuIHN5bWJvbCBpbiB0aGUgSW5mbyBtYW51YWwKK1xcW3Zp ZXctZWNoby1hcmVhLW1lc3NhZ2VzXSAgICAgICAgICAgR28gdG8gdGhlICpNZXNzYWdlcyogYnVm ZmVyIHdoaWNoIGxvZ3MgZWNoby1hcmVhIG1lc3NhZ2VzLgorXFxbZGVzY3JpYmUtZnVuY3Rpb25d IEZVTkNUSU9OICBEaXNwbGF5IGRvY3VtZW50YXRpb24gZm9yIHRoZSBnaXZlbiBmdW5jdGlvbi4K K1xcW0luZm8tZ290by1lbWFjcy1jb21tYW5kLW5vZGVdIENPTU1BTkQgICBTaG93IHRoZSBFbWFj cyBtYW51YWwncyBzZWN0aW9uIHRoYXQgZGVzY3JpYmVzIHRoZSBjb21tYW5kLgorXFxbZGVzY3Jp YmUtZ251LXByb2plY3RdICAgICAgICAgICBEaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBH TlUgcHJvamVjdC4KK1xcW3ZpZXctaGVsbG8tZmlsZV0gICAgICAgICAgIERpc3BsYXkgdGhlIEhF TExPIGZpbGUgd2hpY2ggaWxsdXN0cmF0ZXMgdmFyaW91cyBzY3JpcHRzLgorXFxbaW5mb10gICAg ICAgICAgIFN0YXJ0IHRoZSBJbmZvIGRvY3VtZW50YXRpb24gcmVhZGVyOiByZWFkIGluY2x1ZGVk IG1hbnVhbHMuCitcXFtkZXNjcmliZS1pbnB1dC1tZXRob2RdIE1FVEhPRCAgICBEZXNjcmliZSBh IHNwZWNpZmljIGlucHV0IG1ldGhvZCwgb3IgUkVUIGZvciBjdXJyZW50LgorXFxbZGVzY3JpYmUt a2V5XSBLRVlTICAgICAgRGlzcGxheSB0aGUgZnVsbCBkb2N1bWVudGF0aW9uIGZvciB0aGUga2V5 IHNlcXVlbmNlLgorXFxbSW5mby1nb3RvLWVtYWNzLWtleS1jb21tYW5kLW5vZGVdIEtFWVMgICAg ICBTaG93IHRoZSBFbWFjcyBtYW51YWwncyBzZWN0aW9uIGZvciB0aGUgY29tbWFuZCBib3VuZCB0 byBLRVlTLgorXFxbdmlldy1sb3NzYWdlXSAgICAgICAgICAgU2hvdyBsYXN0IDMwMCBpbnB1dCBr ZXlzdHJva2VzIChsb3NzYWdlKS4KK1xcW2Rlc2NyaWJlLWxhbmd1YWdlLWVudmlyb25tZW50XSBM QU5HLUVOViAgRGVzY3JpYmVzIGEgc3BlY2lmaWMgbGFuZ3VhZ2UgZW52aXJvbm1lbnQsIG9yIFJF VCBmb3IgY3VycmVudC4KK1xcW2Rlc2NyaWJlLW1vZGVdICAgICAgICAgICBEaXNwbGF5IGRvY3Vt ZW50YXRpb24gb2YgY3VycmVudCBtaW5vciBtb2RlcyBhbmQgY3VycmVudCBtYWpvciBtb2RlLAor ICAgICAgICAgICAgIGluY2x1ZGluZyB0aGVpciBzcGVjaWFsIGNvbW1hbmRzLgorXFxbdmlldy1l bWFjcy1uZXdzXSAgICAgICAgICAgRGlzcGxheSBuZXdzIG9mIHJlY2VudCBFbWFjcyBjaGFuZ2Vz LgorXFxbZGVzY3JpYmUtc3ltYm9sXSBTWU1CT0wgICAgRGlzcGxheSB0aGUgZ2l2ZW4gZnVuY3Rp b24gb3IgdmFyaWFibGUncyBkb2N1bWVudGF0aW9uIGFuZCB2YWx1ZS4KK1xcW2ZpbmRlci1ieS1r ZXl3b3JkXSBUT1BJQyAgICAgRmluZCBwYWNrYWdlcyBtYXRjaGluZyBhIGdpdmVuIHRvcGljIGtl eXdvcmQuCitcXFtkZXNjcmliZS1wYWNrYWdlXSBQQUNLQUdFICAgRGVzY3JpYmUgdGhlIGdpdmVu IEVtYWNzIExpc3AgcGFja2FnZS4KK1xcW2luZm8tZW1hY3MtbWFudWFsXSAgICAgICAgICAgRGlz cGxheSB0aGUgRW1hY3MgbWFudWFsIGluIEluZm8gbW9kZS4KK1xcW2luZm8tZGlzcGxheS1tYW51 YWxdICAgICAgICAgICBQcm9tcHQgZm9yIGEgbWFudWFsIGFuZCB0aGVuIGRpc3BsYXkgaXQgaW4g SW5mbyBtb2RlLgorXFxbZGVzY3JpYmUtc3ludGF4XSAgICAgICAgICAgRGlzcGxheSBjb250ZW50 cyBvZiBjdXJyZW50IHN5bnRheCB0YWJsZSwgcGx1cyBleHBsYW5hdGlvbnMuCitcXFtpbmZvLWxv b2t1cC1zeW1ib2xdIFNZTUJPTCAgICBTaG93IHRoZSBzZWN0aW9uIGZvciB0aGUgZ2l2ZW4gc3lt Ym9sIGluIHRoZSBJbmZvIG1hbnVhbAogICAgICAgICAgICAgICBmb3IgdGhlIHByb2dyYW1taW5n IGxhbmd1YWdlIHVzZWQgaW4gdGhpcyBidWZmZXIuCi10ICAgICAgICAgICBTdGFydCB0aGUgRW1h Y3MgbGVhcm4tYnktZG9pbmcgdHV0b3JpYWwuCi12IFZBUklBQkxFICBEaXNwbGF5IHRoZSBnaXZl biB2YXJpYWJsZSdzIGRvY3VtZW50YXRpb24gYW5kIHZhbHVlLgotdyBDT01NQU5EICAgRGlzcGxh eSB3aGljaCBrZXlzdHJva2VzIGludm9rZSB0aGUgZ2l2ZW4gY29tbWFuZCAod2hlcmUtaXMpLgot LiAgICAgICAgICAgRGlzcGxheSBhbnkgYXZhaWxhYmxlIGxvY2FsIGhlbHAgYXQgcG9pbnQgaW4g dGhlIGVjaG8gYXJlYS4KLQotQy1hICAgICAgICAgSW5mb3JtYXRpb24gYWJvdXQgRW1hY3MuCi1D LWMgICAgICAgICBFbWFjcyBjb3B5aW5nIHBlcm1pc3Npb24gKEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlKS4KLUMtZCAgICAgICAgIEluc3RydWN0aW9ucyBmb3IgZGVidWdnaW5nIEdOVSBFbWFj cy4KLUMtZSAgICAgICAgIEV4dGVybmFsIHBhY2thZ2VzIGFuZCBpbmZvcm1hdGlvbiBhYm91dCBF bWFjcy4KLUMtZiAgICAgICAgIEVtYWNzIEZBUS4KK1xcW2hlbHAtd2l0aC10dXRvcmlhbF0gICAg ICAgICAgIFN0YXJ0IHRoZSBFbWFjcyBsZWFybi1ieS1kb2luZyB0dXRvcmlhbC4KK1xcW2Rlc2Ny aWJlLXZhcmlhYmxlXSBWQVJJQUJMRSAgRGlzcGxheSB0aGUgZ2l2ZW4gdmFyaWFibGUncyBkb2N1 bWVudGF0aW9uIGFuZCB2YWx1ZS4KK1xcW3doZXJlLWlzXSBDT01NQU5EICAgRGlzcGxheSB3aGlj aCBrZXlzdHJva2VzIGludm9rZSB0aGUgZ2l2ZW4gY29tbWFuZCAod2hlcmUtaXMpLgorXFxbZGlz cGxheS1sb2NhbC1oZWxwXSAgICAgICAgICAgRGlzcGxheSBhbnkgYXZhaWxhYmxlIGxvY2FsIGhl bHAgYXQgcG9pbnQgaW4gdGhlIGVjaG8gYXJlYS4KKworXFxbYWJvdXQtZW1hY3NdICAgICAgICAg SW5mb3JtYXRpb24gYWJvdXQgRW1hY3MuCitcXFtkZXNjcmliZS1jb3B5aW5nXSAgICAgICAgIEVt YWNzIGNvcHlpbmcgcGVybWlzc2lvbiAoR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UpLgorXFxb dmlldy1lbWFjcy1kZWJ1Z2dpbmddICAgICAgICAgSW5zdHJ1Y3Rpb25zIGZvciBkZWJ1Z2dpbmcg R05VIEVtYWNzLgorXFxbdmlldy1leHRlcm5hbC1wYWNrYWdlc10gICAgICAgICBFeHRlcm5hbCBw YWNrYWdlcyBhbmQgaW5mb3JtYXRpb24gYWJvdXQgRW1hY3MuCitcXFt2aWV3LWVtYWNzLUZBUV0g ICAgICAgICBFbWFjcyBGQVEuCiBDLW0gICAgICAgICBIb3cgdG8gb3JkZXIgcHJpbnRlZCBFbWFj cyBtYW51YWxzLgogQy1uICAgICAgICAgTmV3cyBvZiByZWNlbnQgRW1hY3MgY2hhbmdlcy4KLUMt byAgICAgICAgIEVtYWNzIG9yZGVyaW5nIGFuZCBkaXN0cmlidXRpb24gaW5mb3JtYXRpb24uCi1D LXAgICAgICAgICBJbmZvIGFib3V0IGtub3duIEVtYWNzIHByb2JsZW1zLgotQy1zICAgICAgICAg U2VhcmNoIGZvcndhcmQgXCJoZWxwIHdpbmRvd1wiLgotQy10ICAgICAgICAgRW1hY3MgVE9ETyBs aXN0LgotQy13ICAgICAgICAgSW5mb3JtYXRpb24gb24gYWJzZW5jZSBvZiB3YXJyYW50eSBmb3Ig R05VIEVtYWNzLiIKK1xcW2Rlc2NyaWJlLWRpc3RyaWJ1dGlvbl0gICAgICAgICBFbWFjcyBvcmRl cmluZyBhbmQgZGlzdHJpYnV0aW9uIGluZm9ybWF0aW9uLgorXFxbdmlldy1lbWFjcy1wcm9ibGVt c10gICAgICAgICBJbmZvIGFib3V0IGtub3duIEVtYWNzIHByb2JsZW1zLgorXFxbc2VhcmNoLWZv cndhcmQtaGVscC1mb3ItaGVscF0gICAgICAgICBTZWFyY2ggZm9yd2FyZCBcImhlbHAgd2luZG93 XCIuCitcXFt2aWV3LWVtYWNzLXRvZG9dICAgICAgICAgRW1hY3MgVE9ETyBsaXN0LgorXFxbZGVz Y3JpYmUtbm8td2FycmFudHldICAgICAgICAgSW5mb3JtYXRpb24gb24gYWJzZW5jZSBvZiB3YXJy YW50eSBmb3IgR05VIEVtYWNzLiIKICAgaGVscC1tYXApCiAKIAwKQEAgLTQ5Miw2ICs0ODksMTUg QEAgdmlldy1sb3NzYWdlCiAMCiA7OyBLZXkgYmluZGluZ3MKIAorKGRlZnVuIGhlbHAtLWtleS1k ZXNjcmlwdGlvbi1mb250aWZpZWQgKGtleXMgJm9wdGlvbmFsIHByZWZpeCkKKyAgIkxpa2UgYGtl eS1kZXNjcmlwdGlvbicgYnV0IGFkZCBmYWNlIGZvciBcIipIZWxwKlwiIGJ1ZmZlcnMuIgorICA7 OyBXZSBhZGQgYm90aCB0aGUgYGZvbnQtbG9jay1mYWNlJyBhbmQgYGZhY2UnIHByb3BlcnRpZXMg aGVyZSwgYXMgdGhpcworICA7OyBzZWVtcyB0byBiZSB0aGUgb25seSB3YXkgdG8gZ2V0IHRoaXMg dG8gd29yayByZWxpYWJseSBpbiBhbnkKKyAgOzsgYnVmZmVyLgorICAocHJvcGVydGl6ZSAoa2V5 LWRlc2NyaXB0aW9uIGtleXMgcHJlZml4KQorICAgICAgICAgICAgICAnZm9udC1sb2NrLWZhY2Ug J2hlbHAta2V5LWJpbmRpbmcKKyAgICAgICAgICAgICAgJ2ZhY2UgJ2hlbHAta2V5LWJpbmRpbmcp KQorCiAoZGVmdW4gZGVzY3JpYmUtYmluZGluZ3MgKCZvcHRpb25hbCBwcmVmaXggYnVmZmVyKQog ICAiRGlzcGxheSBhIGJ1ZmZlciBzaG93aW5nIGEgbGlzdCBvZiBhbGwgZGVmaW5lZCBrZXlzLCBh bmQgdGhlaXIgZGVmaW5pdGlvbnMuCiBUaGUga2V5cyBhcmUgZGlzcGxheWVkIGluIG9yZGVyIG9m IHByZWNlZGVuY2UuCkBAIC01MTEsNyArNTE3LDYgQEAgZGVzY3JpYmUtYmluZGluZ3MKICAgICAo d2l0aC1jdXJyZW50LWJ1ZmZlciAoaGVscC1idWZmZXIpCiAgICAgICAoZGVzY3JpYmUtYnVmZmVy LWJpbmRpbmdzIGJ1ZmZlciBwcmVmaXgpKSkpCiAKLTs7IFRoaXMgZnVuY3Rpb24gdXNlZCB0byBi ZSBpbiBrZXltYXAuYy4KIChkZWZ1biBkZXNjcmliZS1iaW5kaW5ncy1pbnRlcm5hbCAoJm9wdGlv bmFsIG1lbnVzIHByZWZpeCkKICAgIlNob3cgYSBsaXN0IG9mIGFsbCBkZWZpbmVkIGtleXMsIGFu ZCB0aGVpciBkZWZpbml0aW9ucy4KIFdlIHB1dCB0aGF0IGxpc3QgaW4gYSBidWZmZXIsIGFuZCBk aXNwbGF5IHRoZSBidWZmZXIuCkBAIC01NTksNyArNTY0LDggQEAgd2hlcmUtaXMKICAgICAgIChs ZXQqICgocmVtYXBwZWQgKGNvbW1hbmQtcmVtYXBwaW5nIHN5bWJvbCkpCiAJICAgICAoa2V5cyAo d2hlcmUtaXMtaW50ZXJuYWwKIAkJICAgIHN5bWJvbCBvdmVycmlkaW5nLWxvY2FsLW1hcCBuaWwg bmlsIHJlbWFwcGVkKSkKLQkgICAgIChrZXlzIChtYXBjb25jYXQgJ2tleS1kZXNjcmlwdGlvbiBr ZXlzICIsICIpKQorICAgICAgICAgICAgIChrZXlzIChtYXBjb25jYXQgIydoZWxwLS1rZXktZGVz Y3JpcHRpb24tZm9udGlmaWVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzICIs ICIpKQogCSAgICAgc3RyaW5nKQogCShzZXRxIHN0cmluZwogCSAgICAgIChpZiBpbnNlcnQKQEAg LTU4NywxMSArNTkzLDExIEBAIHdoZXJlLWlzCiAgIG5pbCkKIAogKGRlZnVuIGhlbHAta2V5LWRl c2NyaXB0aW9uIChrZXkgdW50cmFuc2xhdGVkKQotICAobGV0ICgoc3RyaW5nIChrZXktZGVzY3Jp cHRpb24ga2V5KSkpCisgIChsZXQgKChzdHJpbmcgKGhlbHAtLWtleS1kZXNjcmlwdGlvbi1mb250 aWZpZWQga2V5KSkpCiAgICAgKGlmIChvciAobm90IHVudHJhbnNsYXRlZCkKIAkgICAgKGFuZCAo ZXEgKGFyZWYgdW50cmFuc2xhdGVkIDApID9cZSkgKG5vdCAoZXEgKGFyZWYga2V5IDApID9cZSkp KSkKIAlzdHJpbmcKLSAgICAgIChsZXQgKChvdGhlcnN0cmluZyAoa2V5LWRlc2NyaXB0aW9uIHVu dHJhbnNsYXRlZCkpKQorICAgICAgKGxldCAoKG90aGVyc3RyaW5nIChoZWxwLS1rZXktZGVzY3Jp cHRpb24tZm9udGlmaWVkIHVudHJhbnNsYXRlZCkpKQogCShpZiAoZXF1YWwgc3RyaW5nIG90aGVy c3RyaW5nKQogCSAgICBzdHJpbmcKIAkgIChmb3JtYXQgIiVzICh0cmFuc2xhdGVkIGZyb20gJXMp IiBzdHJpbmcgb3RoZXJzdHJpbmcpKSkpKSkKQEAgLTk3OSw3ICs5ODUsNyBAQCBzdWJzdGl0dXRl LWNvbW1hbmQta2V5cwogICAiU3Vic3RpdHV0ZSBrZXkgZGVzY3JpcHRpb25zIGZvciBjb21tYW5k IG5hbWVzIGluIFNUUklORy4KIEVhY2ggc3Vic3RyaW5nIG9mIHRoZSBmb3JtIFxcXFw9W0NPTU1B TkRdIGlzIHJlcGxhY2VkIGJ5IGVpdGhlciBhCiBrZXlzdHJva2Ugc2VxdWVuY2UgdGhhdCBpbnZv a2VzIENPTU1BTkQsIG9yIFwiTS14IENPTU1BTkRcIiBpZiBDT01NQU5ECi1pcyBub3Qgb24gYW55 IGtleXMuCitpcyBub3Qgb24gYW55IGtleXMuICBLZXliaW5kaW5ncyB3aWxsIHVzZSB0aGUgZmFj ZSBgaGVscC1rZXktYmluZGluZycuCiAKIEVhY2ggc3Vic3RyaW5nIG9mIHRoZSBmb3JtIFxcXFw9 e01BUFZBUn0gaXMgcmVwbGFjZWQgYnkgYSBzdW1tYXJ5IG9mCiB0aGUgdmFsdWUgb2YgTUFQVkFS IGFzIGEga2V5bWFwLiAgVGhpcyBzdW1tYXJ5IGlzIHNpbWlsYXIgdG8gdGhlIG9uZQpAQCAtOTk5 LDcgKzEwMDUsNyBAQCBzdWJzdGl0dXRlLWNvbW1hbmQta2V5cwogb3V0cHV0LgogCiBSZXR1cm4g dGhlIG9yaWdpbmFsIFNUUklORyBpZiBubyBzdWJzdGl0dXRpb25zIGFyZSBtYWRlLgotT3RoZXJ3 aXNlLCByZXR1cm4gYSBuZXcgc3RyaW5nICh3aXRob3V0IGFueSB0ZXh0IHByb3BlcnRpZXMpLiIK K090aGVyd2lzZSwgcmV0dXJuIGEgbmV3IHN0cmluZy4iCiAgICh3aGVuIChub3QgKG51bGwgc3Ry aW5nKSkKICAgICA7OyBLRVlNQVAgaXMgZWl0aGVyIG5pbCAod2hpY2ggbWVhbnMgc2VhcmNoIGFs bCB0aGUgYWN0aXZlCiAgICAgOzsga2V5bWFwcykgb3IgYSBzcGVjaWZpZWQgbG9jYWwgbWFwICh3 aGljaCBtZWFucyBzZWFyY2gganVzdCB0aGF0CkBAIC0xMDUzLDEyICsxMDU5LDE1IEBAIHN1YnN0 aXR1dGUtY29tbWFuZC1rZXlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVy ZS1pcy1pbnRlcm5hbCBmdW4ga2V5bWFwIHQpKSkpCiAgICAgICAgICAgICAgICAgICAoaWYgKG5v dCBrZXkpCiAgICAgICAgICAgICAgICAgICAgICAgOzsgRnVuY3Rpb24gaXMgbm90IG9uIGFueSBr ZXkuCi0gICAgICAgICAgICAgICAgICAgICAgKHByb2duIChpbnNlcnQgIk0teCAiKQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyICgrIGVuZC1wb2ludCAzKSkKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZS1jaGFyIDEpKQorICAgICAgICAgICAgICAg ICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAgICAgICAgICAgKGluc2VydCAocHJvcGVydGl6 ZSAiTS14ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zh Y2UgJ2hlbHAta2V5LWJpbmRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2ZvbnQtbG9jay1mYWNlICdoZWxwLWtleS1iaW5kaW5nKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgIChnb3RvLWNoYXIgKCsgZW5kLXBvaW50IDMpKQorICAgICAgICAgICAgICAg ICAgICAgICAgKGRlbGV0ZS1jaGFyIDEpKQogICAgICAgICAgICAgICAgICAgICA7OyBGdW5jdGlv biBpcyBvbiBhIGtleS4KICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZS1jaGFyICgtIGVuZC1w b2ludCAocG9pbnQpKSkKLSAgICAgICAgICAgICAgICAgICAgKGluc2VydCAoa2V5LWRlc2NyaXB0 aW9uIGtleSkpKSkpCisgICAgICAgICAgICAgICAgICAgIChpbnNlcnQgKGhlbHAtLWtleS1kZXNj cmlwdGlvbi1mb250aWZpZWQga2V5KSkpKSkKICAgICAgICAgICAgICAgIDs7IDFELiBce2Zvb30g aXMgcmVwbGFjZWQgd2l0aCBhIHN1bW1hcnkgb2YgdGhlIGtleW1hcAogICAgICAgICAgICAgICAg OzsgICAgICAgICAgICAoc3ltYm9sLXZhbHVlIGZvbykuCiAgICAgICAgICAgICAgICA7OyAgICAg XDxmb28+IGp1c3Qgc2V0cyB0aGUga2V5bWFwIHVzZWQgZm9yIFxbY21kXS4KQEAgLTExNzIsNyAr MTE4MSw3IEBAIGRlc2NyaWJlLW1hcC10cmVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChj b25jYXQgdGl0bGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgcHJlZml4 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgIiBTdGFydGlu ZyBXaXRoICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo a2V5LWRlc2NyaXB0aW9uIHByZWZpeCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChoZWxwLS1rZXktZGVzY3JpcHRpb24tZm9udGlmaWVkIHByZWZpeCkp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6XG4iKSkKICAgICAgICAgICAg ICAgICAgICAgICAia2V5ICAgICAgICAgICAgIGJpbmRpbmdcbiIKICAgICAgICAgICAgICAgICAg ICAgICAiLS0tICAgICAgICAgICAgIC0tLS0tLS1cbiIpKSkKQEAgLTEyMjgsNiArMTIzNyw4IEBA IGhlbHAtLWRlc2NyaWJlLWNvbW1hbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICg9IGhlbHAtLXByZXZpb3VzLWRlc2NyaXB0aW9uLWNvbHVtbiAzMikpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICh0IDE2KSkpKQorICAgIDs7IEluc2VydCB0YWIgd2l0aG91dCBm YWNlIHRvIGF2b2lkIHVzaW5nIHRoZSBgaGVscC1rZXltYXAnIGZhY2UuCisgICAgKGluc2VydCAo cHJvcGVydGl6ZSAiXHQiICdmYWNlIG5pbCAnZm9udC1sb2NrLWZhY2UgbmlsKSkKICAgICAoaW5k ZW50LXRvIGRlc2NyaXB0aW9uLWNvbHVtbiAxKQogICAgIChzZXRxIGhlbHAtLXByZXZpb3VzLWRl c2NyaXB0aW9uLWNvbHVtbiBkZXNjcmlwdGlvbi1jb2x1bW4pCiAgICAgKGNvbmQgKChzeW1ib2xw IGRlZmluaXRpb24pCkBAIC0xMjQwLDYgKzEyNTEsOCBAQCBoZWxwLS1kZXNjcmliZS1jb21tYW5k CiAKIChkZWZ1biBoZWxwLS1kZXNjcmliZS10cmFuc2xhdGlvbiAoZGVmaW5pdGlvbikKICAgOzsg Q29udmVydGVkIGZyb20gZGVzY3JpYmVfdHJhbnNsYXRpb24gaW4ga2V5bWFwLmMuCisgIDs7IElu c2VydCB0YWIgd2l0aG91dCBmYWNlIHRvIGF2b2lkIHVzaW5nIHRoZSBgaGVscC1rZXltYXAnIGZh Y2UuCisgIChpbnNlcnQgKHByb3BlcnRpemUgIlx0IiAnZmFjZSBuaWwgJ2ZvbnQtbG9jay1mYWNl IG5pbCkpCiAgIChpbmRlbnQtdG8gMTYgMSkKICAgKGNvbmQgKChzeW1ib2xwIGRlZmluaXRpb24p CiAgICAgICAgICAoaW5zZXJ0IChzeW1ib2wtbmFtZSBkZWZpbml0aW9uKSAiXG4iKSkKQEAgLTEz NTEsOSArMTM2NCw5IEBAIGRlc2NyaWJlLW1hcAogICAgICAgICAgICAgICAoc2V0cSBlbmQgKGNh YXIgdmVjdCkpKSkKICAgICAgICAgICA7OyBOb3cgU1RBUlQgLi4gRU5EIGlzIHRoZSByYW5nZSB0 byBkZXNjcmliZSBuZXh0LgogICAgICAgICAgIDs7IEluc2VydCB0aGUgc3RyaW5nIHRvIGRlc2Ny aWJlIHRoZSBldmVudCBTVEFSVC4KLSAgICAgICAgICAoaW5zZXJ0IChrZXktZGVzY3JpcHRpb24g KHZlY3RvciBzdGFydCkgcHJlZml4KSkKKyAgICAgICAgICAoaW5zZXJ0IChoZWxwLS1rZXktZGVz Y3JpcHRpb24tZm9udGlmaWVkICh2ZWN0b3Igc3RhcnQpIHByZWZpeCkpCiAgICAgICAgICAgKHdo ZW4gKG5vdCAoZXEgc3RhcnQgZW5kKSkKLSAgICAgICAgICAgIChpbnNlcnQgIiAuLiAiIChrZXkt ZGVzY3JpcHRpb24gKHZlY3RvciBlbmQpIHByZWZpeCkpKQorICAgICAgICAgICAgKGluc2VydCAi IC4uICIgKGhlbHAtLWtleS1kZXNjcmlwdGlvbi1mb250aWZpZWQgKHZlY3RvciBlbmQpIHByZWZp eCkpKQogICAgICAgICAgIDs7IFByaW50IGEgZGVzY3JpcHRpb24gb2YgdGhlIGRlZmluaXRpb24g b2YgdGhpcyBjaGFyYWN0ZXIuCiAgICAgICAgICAgOzsgQ2FsbGVkIGZ1bmN0aW9uIHdpbGwgdGFr ZSBjYXJlIG9mIHNwYWNpbmcgb3V0IGZhciBlbm91Z2gKICAgICAgICAgICA7OyBmb3IgYWxpZ25t ZW50IHB1cnBvc2VzLgpAQCAtMTQyMCw3ICsxNDMzLDcgQEAgZGVzY3JpYmUtbWFwCiA7OyAgICAg ICAgICAgICAoc2V0cSBmaXJzdCBuaWwpKQogOzsgICAgICAgICAgICh3aGVuIChhbmQgcHJlZml4 ICg+IChsZW5ndGggcHJlZml4KSAwKSkKIDs7ICAgICAgICAgICAgIChpbnNlcnQgKGZvcm1hdCAi JXMiIHByZWZpeCkpKQotOzsgICAgICAgICAgIChpbnNlcnQgKGtleS1kZXNjcmlwdGlvbiAodmVj dG9yIHN0YXJ0LWlkeCkgcHJlZml4KSkKKzs7ICAgICAgICAgICAoaW5zZXJ0IChoZWxwLS1rZXkt ZGVzY3JpcHRpb24tZm9udGlmaWVkICh2ZWN0b3Igc3RhcnQtaWR4KSBwcmVmaXgpKQogOzsgICAg ICAgICAgIDs7IEZpbmQgYWxsIGNvbnNlY3V0aXZlIGNoYXJhY3RlcnMgb3Igcm93cyB0aGF0IGhh dmUgdGhlCiA7OyAgICAgICAgICAgOzsgc2FtZSBkZWZpbml0aW9uLgogOzsgICAgICAgICAgICh3 aGlsZSAoZXF1YWwgKGtleW1hcC0tZ2V0LWtleWVsdCAoYXJlZiB2ZWN0b3IgKDErIGlkeCkpIG5p bCkKQEAgLTE0MzMsNyArMTQ0Niw3IEBAIGRlc2NyaWJlLW1hcAogOzsgICAgICAgICAgICAgKGlu c2VydCAiIC4uICIpCiA7OyAgICAgICAgICAgICAod2hlbiAoYW5kIHByZWZpeCAoPiAobGVuZ3Ro IHByZWZpeCkgMCkpCiA7OyAgICAgICAgICAgICAgIChpbnNlcnQgKGZvcm1hdCAiJXMiIHByZWZp eCkpKQotOzsgICAgICAgICAgICAgKGluc2VydCAoa2V5LWRlc2NyaXB0aW9uICh2ZWN0b3IgaWR4 KSBwcmVmaXgpKSkKKzs7ICAgICAgICAgICAgIChpbnNlcnQgKGhlbHAtLWtleS1kZXNjcmlwdGlv bi1mb250aWZpZWQgKHZlY3RvciBpZHgpIHByZWZpeCkpKQogOzsgICAgICAgICAgIChpZiB0cmFu c2wKIDs7ICAgICAgICAgICAgICAgKGhlbHAtLWRlc2NyaWJlLXRyYW5zbGF0aW9uIGRlZmluaXRp b24pCiA7OyAgICAgICAgICAgICAoaGVscC0tZGVzY3JpYmUtY29tbWFuZCBkZWZpbml0aW9uKSkK QEAgLTE5MjQsNiArMTkzNyw4IEBAIGhlbHAtY29tbWFuZC1lcnJvci1jb25mdXNhYmxlLXN1Z2dl c3Rpb25zCiAoYWRkLWZ1bmN0aW9uIDphZnRlciBjb21tYW5kLWVycm9yLWZ1bmN0aW9uCiAgICAg ICAgICAgICAgICMnaGVscC1jb21tYW5kLWVycm9yLWNvbmZ1c2FibGUtc3VnZ2VzdGlvbnMpCiAK KyhkZWZpbmUtb2Jzb2xldGUtZnVuY3Rpb24tYWxpYXMgJ2hlbHAtZm9yLWhlbHAtaW50ZXJuYWwg IydoZWxwLWZvci1oZWxwICIyOC4xIikKKwogDAogKHByb3ZpZGUgJ2hlbHApCiAKZGlmZiAtLWdp dCBhL2xpc3AvaXNlYXJjaC5lbCBiL2xpc3AvaXNlYXJjaC5lbAppbmRleCBlNzkyNmFjMDhjLi45 NDNlMjRhYTU2IDEwMDY0NAotLS0gYS9saXNwL2lzZWFyY2guZWwKKysrIGIvbGlzcC9pc2VhcmNo LmVsCkBAIC00NjAsMTEgKzQ2MCwxMSBAQCBpc2VhcmNoLWhlbHAtbWFwCiAobWFrZS1oZWxwLXNj cmVlbiBpc2VhcmNoLWhlbHAtZm9yLWhlbHAtaW50ZXJuYWwKICAgKHB1cmVjb3B5ICJUeXBlIGEg aGVscCBvcHRpb246IFtia21dIG9yID8iKQogICAiWW91IGhhdmUgdHlwZWQgJVRISVMtS0VZJSwg dGhlIGhlbHAgY2hhcmFjdGVyLiAgVHlwZSBhIEhlbHAgb3B0aW9uOgotXChUeXBlIFxcPGhlbHAt bWFwPlxcW2hlbHAtcXVpdF0gdG8gZXhpdCB0aGUgSGVscCBjb21tYW5kLikKK1woVHlwZSBcXDxp c2VhcmNoLWhlbHAtbWFwPlxcW2hlbHAtcXVpdF0gdG8gZXhpdCB0aGUgSGVscCBjb21tYW5kLikK IAotYiAgICAgICAgICAgRGlzcGxheSBhbGwgSXNlYXJjaCBrZXkgYmluZGluZ3MuCi1rIEtFWVMg ICAgICBEaXNwbGF5IGZ1bGwgZG9jdW1lbnRhdGlvbiBvZiBJc2VhcmNoIGtleSBzZXF1ZW5jZS4K LW0gICAgICAgICAgIERpc3BsYXkgZG9jdW1lbnRhdGlvbiBvZiBJc2VhcmNoIG1vZGUuCitcXFtp c2VhcmNoLWRlc2NyaWJlLWJpbmRpbmdzXSAgICAgICAgICAgRGlzcGxheSBhbGwgSXNlYXJjaCBr ZXkgYmluZGluZ3MuCitcXFtpc2VhcmNoLWRlc2NyaWJlLWtleV0gS0VZUyAgICAgIERpc3BsYXkg ZnVsbCBkb2N1bWVudGF0aW9uIG9mIElzZWFyY2gga2V5IHNlcXVlbmNlLgorXFxbaXNlYXJjaC1k ZXNjcmliZS1tb2RlXSAgICAgICAgICAgRGlzcGxheSBkb2N1bWVudGF0aW9uIG9mIElzZWFyY2gg bW9kZS4KIAogWW91IGNhbid0IHR5cGUgaGVyZSBvdGhlciBoZWxwIGtleXMgYXZhaWxhYmxlIGlu IHRoZSBnbG9iYWwgaGVscCBtYXAsCiBidXQgb3V0c2lkZSBvZiB0aGlzIGhlbHAgd2luZG93IHdo ZW4geW91IHR5cGUgdGhlbSBpbiBJc2VhcmNoIG1vZGUsCmRpZmYgLS1naXQgYS9saXNwL3Rvb2x0 aXAuZWwgYi9saXNwL3Rvb2x0aXAuZWwKaW5kZXggOGUwMGFhNWMyYS4uMDllZTk3N2NmMiAxMDA2 NDQKLS0tIGEvbGlzcC90b29sdGlwLmVsCisrKyBiL2xpc3AvdG9vbHRpcC5lbApAQCAtMjQ4LDcg KzI0OCw4IEBAIHRvb2x0aXAtc2hvdwogCSAgICAoc2V0ZiAoYWxpc3QtZ2V0ICdib3JkZXItY29s b3IgcGFyYW1zKSBmZykpCiAJICAod2hlbiAoc3RyaW5ncCBiZykKIAkgICAgKHNldGYgKGFsaXN0 LWdldCAnYmFja2dyb3VuZC1jb2xvciBwYXJhbXMpIGJnKSkKLQkgICh4LXNob3ctdGlwIChwcm9w ZXJ0aXplIHRleHQgJ2ZhY2UgJ3Rvb2x0aXApCisgICAgICAgICAgKGFkZC1mYWNlLXRleHQtcHJv cGVydHkgMCAobGVuZ3RoIHRleHQpICd0b29sdGlwIHQgdGV4dCkKKyAgICAgICAgICAoeC1zaG93 LXRpcCB0ZXh0CiAJCSAgICAgIChzZWxlY3RlZC1mcmFtZSkKIAkJICAgICAgcGFyYW1zCiAJCSAg ICAgIHRvb2x0aXAtaGlkZS1kZWxheQpkaWZmIC0tZ2l0IGEvc3JjL2tleW1hcC5jIGIvc3JjL2tl eW1hcC5jCmluZGV4IDc4MjkzMWZhZGYuLmUzOGM5YjkwOGEgMTAwNjQ0Ci0tLSBhL3NyYy9rZXlt YXAuYworKysgYi9zcmMva2V5bWFwLmMKQEAgLTI4NDYsNiArMjg0NiwyMyBAQCBERUZVTiAoImRl c2NyaWJlLXZlY3RvciIsIEZkZXNjcmliZV92ZWN0b3IsIFNkZXNjcmliZV92ZWN0b3IsIDEsIDIs IDAsCiAgIHJldHVybiB1bmJpbmRfdG8gKGNvdW50LCBRbmlsKTsKIH0KIAorc3RhdGljIExpc3Bf T2JqZWN0IGZvbnRpZnlfa2V5X3Byb3BlcnRpZXM7CisKK3N0YXRpYyBMaXNwX09iamVjdAorZGVz Y3JpYmVfa2V5X21heWJlX2ZvbnRpZnkgKExpc3BfT2JqZWN0IHN0ciwgTGlzcF9PYmplY3QgcHJl Zml4LAorCQkJCSAgIGJvb2wga2V5bWFwX3ApCit7CisgIExpc3BfT2JqZWN0IGtleV9kZXNjID0g RmtleV9kZXNjcmlwdGlvbiAoc3RyLCBwcmVmaXgpOworCisgIGlmIChrZXltYXBfcCkKKyAgICBy ZXR1cm4gRmFkZF90ZXh0X3Byb3BlcnRpZXMgKG1ha2VfZml4bnVtICgwKSwKKwkJCQkgbWFrZV9m aXhudW0gKFNDSEFSUyAoa2V5X2Rlc2MpKSwKKwkJCQkgZm9udGlmeV9rZXlfcHJvcGVydGllcywK KwkJCQkga2V5X2Rlc2MpOworICBlbHNlCisgICAgcmV0dXJuIGtleV9kZXNjOworfQorCiBERUZV TiAoImhlbHAtLWRlc2NyaWJlLXZlY3RvciIsIEZoZWxwX19kZXNjcmliZV92ZWN0b3IsIFNoZWxw X19kZXNjcmliZV92ZWN0b3IsIDcsIDcsIDAsCiAgICAgICAgZG9jOiAvKiBJbnNlcnQgaW4gdGhl IGN1cnJlbnQgYnVmZmVyIGEgZGVzY3JpcHRpb24gb2YgdGhlIGNvbnRlbnRzIG9mIFZFQ1RPUi4K IENhbGwgREVTQ1JJQkVSIHRvIGluc2VydCB0aGUgZGVzY3JpcHRpb24gb2Ygb25lIHZhbHVlIGZv dW5kIGluIFZFQ1RPUi4KQEAgLTMwMjEsNyArMzAzOCw3IEBAIGRlc2NyaWJlX3ZlY3RvciAoTGlz cF9PYmplY3QgdmVjdG9yLCBMaXNwX09iamVjdCBwcmVmaXgsIExpc3BfT2JqZWN0IGFyZ3MsCiAg ICAgICBpZiAoIU5JTFAgKGVsdF9wcmVmaXgpKQogCWluc2VydDEgKGVsdF9wcmVmaXgpOwogCi0g ICAgICBpbnNlcnQxIChGa2V5X2Rlc2NyaXB0aW9uIChrbHVkZ2UsIHByZWZpeCkpOworICAgICAg aW5zZXJ0MSAoZGVzY3JpYmVfa2V5X21heWJlX2ZvbnRpZnkgKGtsdWRnZSwgcHJlZml4LCBrZXlt YXBfcCkpOwogCiAgICAgICAvKiBGaW5kIGFsbCBjb25zZWN1dGl2ZSBjaGFyYWN0ZXJzIG9yIHJv d3MgdGhhdCBoYXZlIHRoZSBzYW1lCiAJIGRlZmluaXRpb24uICBCdXQsIGlmIFZFQ1RPUiBpcyBh IGNoYXItdGFibGUsIHdlIGhhZCBiZXR0ZXIKQEAgLTMwNzEsNyArMzA4OCw3IEBAIGRlc2NyaWJl X3ZlY3RvciAoTGlzcF9PYmplY3QgdmVjdG9yLCBMaXNwX09iamVjdCBwcmVmaXgsIExpc3BfT2Jq ZWN0IGFyZ3MsCiAJICBpZiAoIU5JTFAgKGVsdF9wcmVmaXgpKQogCSAgICBpbnNlcnQxIChlbHRf cHJlZml4KTsKIAotCSAgaW5zZXJ0MSAoRmtleV9kZXNjcmlwdGlvbiAoa2x1ZGdlLCBwcmVmaXgp KTsKKwkgIGluc2VydDEgKGRlc2NyaWJlX2tleV9tYXliZV9mb250aWZ5IChrbHVkZ2UsIHByZWZp eCwga2V5bWFwX3ApKTsKIAl9CiAKICAgICAgIC8qIFByaW50IGEgZGVzY3JpcHRpb24gb2YgdGhl IGRlZmluaXRpb24gb2YgdGhpcyBjaGFyYWN0ZXIuCkBAIC0zMjAwLDYgKzMyMTcsMTIgQEAgc3lt c19vZl9rZXltYXAgKHZvaWQpCiAgIHN0YXRpY3BybyAoJndoZXJlX2lzX2NhY2hlKTsKICAgc3Rh dGljcHJvICgmd2hlcmVfaXNfY2FjaGVfa2V5bWFwcyk7CiAKKyAgREVGU1lNIChRZm9udF9sb2Nr X2ZhY2UsICJmb250LWxvY2stZmFjZSIpOworICBERUZTWU0gKFFoZWxwX2tleV9iaW5kaW5nLCAi aGVscC1rZXktYmluZGluZyIpOworICBzdGF0aWNwcm8gKCZmb250aWZ5X2tleV9wcm9wZXJ0aWVz KTsKKyAgZm9udGlmeV9rZXlfcHJvcGVydGllcyA9IEZjb25zIChRZm9udF9sb2NrX2ZhY2UsCisJ CQkJICBGY29ucyAoUWhlbHBfa2V5X2JpbmRpbmcsIFFuaWwpKTsKKwogICBkZWZzdWJyICgmU2tl eW1hcHApOwogICBkZWZzdWJyICgmU2tleW1hcF9wYXJlbnQpOwogICBkZWZzdWJyICgmU2tleW1h cF9wcm9tcHQpOwotLSAKMi4zMC4xCgo= --0000000000001bbf5a05bccc6fbd--