From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adonay Felipe Nogueira Subject: Re: Continuing the work on the recipes related to GNU Ring Date: Fri, 09 Jun 2017 16:00:44 -0300 Message-ID: <87y3t1dm03.fsf@openmailbox.org> References: <87shma18an.fsf@openmailbox.org> <871ssnuqta.fsf@openmailbox.org> <87tw5jf6g6.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47651) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dJP9S-0000Dt-LW for guix-devel@gnu.org; Fri, 09 Jun 2017 15:00:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dJP9O-0003je-QC for guix-devel@gnu.org; Fri, 09 Jun 2017 15:00:54 -0400 Received: from lb1.openmailbox.org ([5.79.108.160]:58945 helo=mail.openmailbox.org) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dJP9O-0003jE-7W for guix-devel@gnu.org; Fri, 09 Jun 2017 15:00:50 -0400 In-Reply-To: <87tw5jf6g6.fsf@gmail.com> (Maxim Cournoyer's message of "Fri, 21 Apr 2017 00:24:09 +0900") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable More improvements, as described in: - [[http://lists.gnu.org/archive/html/ring/2017-06/msg00004.html]]. - The above reference was also made in an Enhancement tracker in Ring's Tuleap instance, but I'm currently unable to visit/access their Tuleap instance. For the sake of transparency, once their tracker is available again, look for enhancement by searching for "Send patches upstream". I have attached a set of package recipes for those wanting to test. The problem with the customized flags, and the problem with the highly patched pjsip/pjproject still persists, but patches for other packages are mostly upstream now, except for a few two or three patches. --=20 - [[https://libreplanet.org/wiki/User:Adfeno]] - Palestrante e consultor sobre /software/ livre (n=C3=A3o confundir com gratis). - "WhatsApp"? Ele n=C3=A3o =C3=A9 livre, por isso n=C3=A3o uso. Iguais a el= e prefiro GNU Ring, ou Tox. Quer outras formas de contato? Adicione o vCard que est=C3=A1 no endere=C3=A7o acima aos teus contatos. - Pretende me enviar arquivos .doc, .ppt, .cdr, ou .mp3? OK, eu aceito, mas n=C3=A3o repasso. Entrego apenas em formatos favor=C3=A1veis = ao /software/ livre. Favor entrar em contato em caso de d=C3=BAvida. --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=ring.scm Content-Transfer-Encoding: base64 Ozs7IENvcHlyaWdodCDCqSAyMDE2IEx1a2FzIEdyYWRsCjs7OyBDb3B5cmlnaHQgwqkgMjAxNyBN YXJpdXMgQmFra2UKOzs7IENvcHlyaWdodCDCqSAyMDE3IEFkb25heSAiYWRmZW5vIiBGZWxpcGUg Tm9ndWVpcmEgPGh0dHBzOi8vbGlicmVwbGFuZXQub3JnL3dpa2kvVXNlcjpBZGZlbm8+IDxhZGZl bm9Ab3Blbm1haWxib3gub3JnPgoKOzs7IEJlZm9yZSBjcmVhdGluZyBwYXRjaGVzIG91dCBvZiB0 aGVzZSByZWNpcGVzLCBwbGVhc2UgZ3VhcmFudGVlIHRoYXQgdGhlcmUncyBjb250YWN0IGluZm9y bWF0aW9uIGZvciBNeC4gR3JhZGwgYW5kIE14LiBCYWtrZS4KCjs7OyBUT0RPIEZvciBvdGhlciBh dHJpYnV0aW9ucywgbG9vayBmb3I6Cjs7OyAtIDxodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZl L2h0bWwvZ3VpeC1kZXZlbC8yMDE2LTA5L21zZzAxNTQxLmh0bWw+Lgo7OzsgLSA8aHR0cDovL2xp c3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2d1aXgtZGV2ZWwvMjAxNi0wOS9tc2cwMTkzNy5odG1s Pi4KOzs7IC0gPGh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ndWl4LWRldmVsLzIw MTYtMDkvbXNnMDE5MzguaHRtbD4uCjs7OyAtIDxodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZl L2h0bWwvZ3VpeC1kZXZlbC8yMDE3LTAxL21zZzAxMjE2Lmh0bWw+Lgo7OzsgLSA8aHR0cDovL2xp c3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2d1aXgtZGV2ZWwvMjAxNi0wOS9tc2cwMTA2MS5odG1s Pi4KOzs7IC0gPGh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ndWl4LWRldmVsLzIw MTYtMDkvbXNnMDEwNjIuaHRtbD4uCjs7OyAtIDxodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZl L2h0bWwvZ3VpeC1kZXZlbC8yMDE2LTA5L21zZzAxMDYzLmh0bWw+LgoKKGRlZmluZS1tb2R1bGUg KHJpbmcpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMpCiAgIzp1c2UtbW9kdWxlIChnbnUg cGFja2FnZXMgYWlkYykKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBhdWRpbykKICAjOnVz ZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBhdXRvdG9vbHMpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFj a2FnZXMgYmFzZSkKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBib29zdCkKICAjOnVzZS1t b2R1bGUgKGdudSBwYWNrYWdlcyBjaGVjaykKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBj b21wcmVzc2lvbikKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBjcnlwdG8pCiAgIzp1c2Ut bW9kdWxlIChnbnUgcGFja2FnZXMgZG9jdW1lbnRhdGlvbikKICAjOnVzZS1tb2R1bGUgKGdudSBw YWNrYWdlcyBnZXR0ZXh0KQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGdsaWIpCiAgIzp1 c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZ25vbWUpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2Fn ZXMgZ3RrKQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGxpYnVwbnApCiAgIzp1c2UtbW9k dWxlIChnbnUgcGFja2FnZXMgbGludXgpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgbXVs dGlwcmVjaXNpb24pCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgbmV0dGxlKQogICM6dXNl LW1vZHVsZSAoZ251IHBhY2thZ2VzIHBjcmUpCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMg cGVybCkKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBwa2ctY29uZmlnKQogICM6dXNlLW1v ZHVsZSAoZ251IHBhY2thZ2VzIHB5dGhvbikKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBw dWxzZWF1ZGlvKQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHF0KQogICM6dXNlLW1vZHVs ZSAoZ251IHBhY2thZ2VzIHJlYWRsaW5lKQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHNl cmlhbGl6YXRpb24pCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgdGVsZXBob255KQogICM6 dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHRscykKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdl cyB2aWRlbykKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyB3ZWJraXQpCiAgIzp1c2UtbW9k dWxlIChnbnUgcGFja2FnZXMgeGlwaCkKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyB4b3Jn KQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHppcCkKICAjOnVzZS1tb2R1bGUgKGd1aXgg YnVpbGQtc3lzdGVtIGdudSkKICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtIGNtYWtl KQogICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gdHJpdmlhbCkKICAjOnVzZS1tb2R1 bGUgKGd1aXggZG93bmxvYWQpCiAgIzp1c2UtbW9kdWxlIChndWl4IGdpdC1kb3dubG9hZCkKICAj OnVzZS1tb2R1bGUgKChndWl4IGxpY2Vuc2VzKSAjOnByZWZpeCBsaWNlbnNlOikKICAjOnVzZS1t b2R1bGUgKGd1aXggcGFja2FnZXMpCiAgIzp1c2UtbW9kdWxlIChndWl4IHV0aWxzKQogICM6dXNl LW1vZHVsZSAoaWNlLTkgbWF0Y2gpCiAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkpCgo7Ozsg RklYTUUgQ29udmluY2UgdXBzdHJlYW0sIFJpbmcsIHRvIHNlbmQgcGF0Y2hlcyB0byB0aGVpciB1 cHN0cmVhbXMuCjs7OyBGSVhNRSBTZWUgaWYgdGhlIGNvbWJpbmF0aW9uIG9mIFNhdm9pci1mYWly ZSBMaW51eCdzIHBqcHJvamVjdCArCjs7OyByZXN0YmVkICsgUmluZyBkYWVtb24gaXMgT0suCgo7 OzsgRGVwZW5kZW5jaWVzIG9uIE9wZW5TU0wgd2VyZSBkaXNhYmxlZCBkdWUgdG8gbGljZW5zaW5n IGlzc3Vlcy4KCihkZWZpbmUtcHVibGljIGdudS1yaW5nLXJlbGVhc2UKICAobGV0ICgocmVsZWFz ZSAiMjAxNzA1MjQuMi43NDVlZmNlIikKCShyZXZpc2lvbiA0KSkKICAgIChwYWNrYWdlCiAgICAg KG5hbWUgImdudS1yaW5nLXJlbGVhc2UiKQogICAgICh2ZXJzaW9uIChpZiAoemVybz8gcmV2aXNp b24pCiAgICAgCQkgIHJlbGVhc2UKICAgICAJCSAgKHN0cmluZy1hcHBlbmQgcmVsZWFzZSAiLSIK ICAgICAJCQkJIChudW1iZXItPnN0cmluZyByZXZpc2lvbikpKSkKICAgICAoc291cmNlIChvcmln aW4KCSAgICAgIChtZXRob2QgdXJsLWZldGNoKQoJICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZCAi aHR0cDovL2RsLnJpbmcuY3gvcmluZy1yZWxlYXNlL3RhcmJhbGxzL3JpbmdfIgoJCQkJICByZWxl YXNlICIudGFyLmd6IikpCgkgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUgIi0i IHZlcnNpb24gIi50YXIuZ3oiKSkKCSAgICAgIChzaGEyNTYKCSAgICAgICAoYmFzZTMyCgkJIjB4 Y3AwZGNqbjNtN2F5OGpiOGYza203NzZkYTJtNDlzYjB4ejRjbHFpM25qaWgyZmtjNDUiKSkpKQog ICAgIChidWlsZC1zeXN0ZW0gdHJpdmlhbC1idWlsZC1zeXN0ZW0pCiAgICAgKGFyZ3VtZW50cwog ICAgICBgKCM6bW9kdWxlcyAoKGd1aXggYnVpbGQgdXRpbHMpKQoJIzpidWlsZGVyCgkoYmVnaW4K CSAgKHVzZS1tb2R1bGVzIChndWl4IGJ1aWxkIHV0aWxzKSkKCSAgKGxldCAoKGd6aXAgKGFzc29j LXJlZiAlYnVpbGQtaW5wdXRzICJnemlwIikpCgkgIAkoc291cmNlIChhc3NvYy1yZWYgJWJ1aWxk LWlucHV0cyAic291cmNlIikpCgkgIAkodGFyIChhc3NvYy1yZWYgJWJ1aWxkLWlucHV0cyAidGFy IikpKQoJICAgIChzZXRlbnYgIlBBVEgiIChzdHJpbmctYXBwZW5kIGd6aXAgIi9iaW46IgoJICAJ CQkJICB0YXIgIi9iaW4iKSkgCgkgICAgKG1rZGlyLXAgJW91dHB1dCkKCSAgICAoc3lzdGVtKiAi dGFyIiAiLXh2ZiIgc291cmNlICItQyIgJW91dHB1dCkKCSAgICAoY2hkaXIgKHN0cmluZy1hcHBl bmQgJW91dHB1dCAiL3JpbmctcHJvamVjdCIpKSkpKSkKICAgICAobmF0aXZlLWlucHV0cwogICAg ICBgKCgic291cmNlIiAsc291cmNlKQoJKCJ0YXIiICx0YXIpCgkoImd6aXAiICxnemlwKSkpCiAg ICAgKHN5bm9wc2lzICJEaXN0cmlidXRlZCBtdWx0aW1lZGlhIGNvbW11bmljYXRpb25zIHBsYXRm b3JtIikKICAgICAoZGVzY3JpcHRpb24gIlJpbmcgaXMgYSBzZWN1cmUgYW5kIGRpc3RyaWJ1dGVk IHZvaWNlLCB2aWRlbyBhbmQgY2hhdApjb21tdW5pY2F0aW9uIHBsYXRmb3JtIHRoYXQgcmVxdWly ZXMgbm8gY2VudHJhbGl6ZWQgc2VydmVyIGFuZCBsZWF2ZXMgdGhlCnBvd2VyIG9mIHByaXZhY3kg aW4gdGhlIGhhbmRzIG9mIHRoZSB1c2VyLiAgSXQgc3VwcG9ydHMgdGhlIFNJUCBhbmQgSUFYCnBy b3RvY29scywgYXMgd2VsbCBhcyBkZWNlbnRyYWxpemVkIGNhbGxpbmcgdXNpbmcgUDJQLURIVC4i KQogICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ251Lm9yZy9zb2Z0d2FyZS9yaW5nIikKICAgICAo bGljZW5zZSBsaWNlbnNlOmdwbDMrKSkpKQoKOzs7IEJhc2VkIG9uCjs7OyA8aHR0cDovL2xpc3Rz LmdudS5vcmcvYXJjaGl2ZS9odG1sL2d1aXgtZGV2ZWwvMjAxNi0wOS9tc2cwMTU0MS5odG1sPi4K KGRlZmluZS1wdWJsaWMgc2F2b2lyLWZhaXJlLWxpbnV4LXBqcHJvamVjdAogIChsZXQgKChyZWxl YXNlICIyLjUuNSIpCgkocmV2aXNpb24gMykpCiAgICAocGFja2FnZQogICAgIChuYW1lICJwanBy b2plY3QiKQogICAgICh2ZXJzaW9uIChpZiAoemVybz8gcmV2aXNpb24pCiAgICAgCQkgIHJlbGVh c2UKICAgICAJCSAgKHN0cmluZy1hcHBlbmQgcmVsZWFzZSAiLSIKICAgICAJCQkJIChudW1iZXIt PnN0cmluZyByZXZpc2lvbikpKSkKICAgICAoc291cmNlIChvcmlnaW4KCSAgICAgIChtZXRob2Qg dXJsLWZldGNoKQoJICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZCAiaHR0cDovL3d3dy5wanNpcC5v cmcvcmVsZWFzZS8iCgkJCQkgIHJlbGVhc2UgIi8iIG5hbWUgIi0iIHJlbGVhc2UgIi50YXIuYnoy IikpCgkgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi50 YXIuYnoyIikpCgkgICAgICAobW9kdWxlcyAnKChndWl4IGJ1aWxkIHV0aWxzKSkpCgkgICAgICAo c25pcHBldAoJICAgICAgICcoYmVnaW4KCQkgIChsZXQgKCh0aGlyZC1wYXJ0eS1kaXJlY3Rvcmll cwoJCQkgJyggIkJhc2VDbGFzc2VzIiAiYmRzb3VuZCIgImJpbiIgImc3MjIxIiAiZ3NtIgoJCQkg ICAgImlsYmMiICJsaWIiICJtaWxlbmFnZSIgIm1wMyIgInNwZWV4IiAic3J0cCIKCQkJICAgICJy ZXNhbXBsZSIgInl1diIKCQkJICAgIDs7IEtlZXAgb25seSByZXNhbXBsZSwgYnVpbGQgYW5kIFJF QURNRS50eHQuCgkJCSAgICAiYnVpbGQvYmFzZWNsYXNzZXMiICJidWlsZC9nNzIyMSIgImJ1aWxk L2dzbSIKCQkJICAgICJidWlsZC9pbGJjIiAiYnVpbGQvbWlsZW5hZ2UiICJidWlsZC9zYW1wbGVy YXRlIgoJCQkgICAgImJ1aWxkL3NwZWV4IiAiYnVpbGQvc3J0cCIKCQkJICAgIDs7IEtlZXAgb25s eSBNYWtlZmlsZXMgcmVsYXRlZCB0byByZXNhbXBsZS4KCQkJICAgICJidWlsZC9yZXNhbXBsZSIg ImJ1aWxkL3l1diIpKSkKCQkgICAgKGZvci1lYWNoIChsYW1iZGEgKGZpbGUpCgkJCQkoZGVsZXRl LWZpbGUtcmVjdXJzaXZlbHkgKHN0cmluZy1hcHBlbmQgInRoaXJkX3BhcnR5LyIKCQkJCQkJCQkJ ZmlsZSkpKQoJCQkgICAgICB0aGlyZC1wYXJ0eS1kaXJlY3RvcmllcykKCQkgICAgI3QpCgkJICAo bGV0ICgodGhpcmQtcGFydHktZGlyZWN0b3JpZXMKCQkJICcoICJnc20iICJpbGJjIiAic3BlZXgi ICJnNzIyMSIgInNydHAiCgkJCSAgICAicG9ydGF1ZGlvIgoJCQkgICAgInJlc2FtcGxlIikpKQoJ CSAgICAoZm9yLWVhY2gKCQkgICAgIChsYW1iZGEgKGRpcmVjdG9yeS1wYXRoKQoJCSAgICAgICAo c3Vic3RpdHV0ZSogInRoaXJkX3BhcnR5L2J1aWxkL29zLWxpbnV4Lm1hayIKCQkJCSAgICAoKChz dHJpbmctYXBwZW5kICJESVJTICs9ICIgZGlyZWN0b3J5LXBhdGgpKSAiIikpKQoJCSAgICAgdGhp cmQtcGFydHktZGlyZWN0b3JpZXMpKSkpCgkgICAgICAoc2hhMjU2CgkgICAgICAgKGJhc2UzMgoJ CSIxd3E4bHBmY2Q0ZGZyYmw3Ymd5Mnl6Z3AzbGRqenE1NDMwZnFraGNxYWQweGZyeGowZmRiIikp KSkKICAgICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCiAgICAgKGlucHV0cwogICAg ICBgKCgicG9ydGF1ZGlvIiAscG9ydGF1ZGlvKSkpCiAgICAgKHByb3BhZ2F0ZWQtaW5wdXRzCiAg ICAgIDs7IFRoZXNlIHBhY2thZ2VzIGFyZSByZWZlcmVuY2VkIGluIHRoZSBMaWJzIGZpZWxkIG9m IHRoZSBwa2ctY29uZmlnCiAgICAgIDs7IGZpbGUgdGhhdCB3aWxsIGJlIGluc3RhbGxlZCBieSBw anByb2plY3QuCiAgICAgIGAoKCJzcGVleCIgLHNwZWV4KQoJKCJsaWJzcnRwIiAsbGlic3J0cCkK CSgiZ251dGxzIiAsZ251dGxzKQoJKCJ1dGlsLWxpbnV4IiAsdXRpbC1saW51eCkpKQogICAgIChu YXRpdmUtaW5wdXRzCiAgICAgIGAoKCJnbnUtcmluZy1yZWxlYXNlIiAsZ251LXJpbmctcmVsZWFz ZSkKCSgiYXV0b2NvbmYiICxhdXRvY29uZikKCSgiYXV0b21ha2UiICxhdXRvbWFrZSkKCSgicGtn LWNvbmZpZyIgLHBrZy1jb25maWcpCgkoImxpYnRvb2wiICxsaWJ0b29sKSkpCiAgICAgKGFyZ3Vt ZW50cwogICAgICBgKCM6dGVzdHM/ICNmIDsgRklYTUUgbWFrZTogTm8gcnVsZSB0byBtYWtlIHRh cmdldAoJICAgICAgICAgICAgOyAncGpsaWIvYmluL3BqbGliLXRlc3QtaTY4Ni11bmtub3duLWxp bnV4LWdudScuCgk7OyAjOnRlc3QtdGFyZ2V0ICJzZWxmdGVzdCIKCSM6Y29uZmlndXJlLWZsYWdz Cgk7OyBUaGUgZGlzYWJsZWQgZmVhdHVyZXMgYXJlIG5vdCB1c2VkIGJ5IGxpYnJpbmcuICBDb21l cyBmcm9tCgk7OyAicmluZy1wcm9qZWN0L2RhZW1vbi9jb250cmliL3NyYy9wanByb2plY3QvcnVs ZXMubWFrIi4KCTs7IE5PVEUgVGhpcyBkb2Vzbid0IHNlZW0gcmlnaHQsIG90aGVyIHBhY2thZ2Vz IG1pZ2h0IHdhbnQKCTs7IHNvbWUgb2YgdGhlc2UuIFdlIG11c3QgdGFsayB0byBSaW5nIHByb2pl Y3QgYW5kIGFzayB3aHkgd2UKCTs7IG5lZWQgdGhpbmdzIHRvIGJlIGJ1aWx0IHRoaXMgd2F5LiBP bmUgd2F5IG91dCBvZiB0aGlzIHdvdWxkCgk7OyBiZSB0byB0ZWxsIGl0IHRvIHVzZSBleHRlcm5h bCB0aGluZ3MgaW5zdGVhZCBvZiBkaXNhYmxpbmcuCgknKCAiLS1kaXNhYmxlLW9zcyIKCSAgICIt LWRpc2FibGUtc291bmQiCgkgICAiLS1kaXNhYmxlLXZpZGVvIgoJICAgIi0tZW5hYmxlLWV4dC1z b3VuZCIKCSAgICItLWRpc2FibGUtc3BlZXgtYWVjIgoJICAgIi0tZGlzYWJsZS1nNzExLWNvZGVj IgoJICAgIi0tZGlzYWJsZS1sMTYtY29kZWMiCgkgICAiLS1kaXNhYmxlLWdzbS1jb2RlYyIKCSAg ICItLWRpc2FibGUtZzcyMi1jb2RlYyIKCSAgICItLWRpc2FibGUtZzcyMjEtY29kZWMiCgkgICAi LS1kaXNhYmxlLXNwZWV4LWNvZGVjIgoJICAgIi0tZGlzYWJsZS1pbGJjLWNvZGVjIgoJICAgIi0t ZGlzYWJsZS1vcGVuY29yZS1hbXIiCgkgICAiLS1kaXNhYmxlLXNpbGsiCgkgICAiLS1kaXNhYmxl LXNkbCIKCSAgICItLWRpc2FibGUtZmZtcGVnIgoJICAgIi0tZGlzYWJsZS12NGwyIgoJICAgIi0t ZGlzYWJsZS1vcGVuaDI2NCIKCSAgICItLWRpc2FibGUtcmVzYW1wbGUiCgkgICAiLS1lbmFibGUt c3NsPWdudXRscyIKCSAgIDs7IE5vdyBkZXZpYXRpbmcgZnJvbSB0aGUgcnVsZXMubWFrIGZpbGUu CgkgICAiLS13aXRoLWV4dGVybmFsLXNydHAiCgkgICA7OyBOb3cgYmFjayB0byBmb2xsb3dpbmcg dGhlIHJ1bGVzLm1hayBmaWxlLgoJICAgIkNGTEFHUz0tRFBKX0lDRV9NQVhfQ0FORD0zMiAtRFBK X0lDRV9NQVhfQ0hFQ0tTPTE1MCAtRFBKX0lDRV9DT01QX0JJVFM9MiAtRFBKX0lDRV9NQVhfU1RV Tj0zIC1EUEpTSVBfTUFYX1BLVF9MRU49ODAwMCIpCgkjOnBoYXNlcwoJKG1vZGlmeS1waGFzZXMg JXN0YW5kYXJkLXBoYXNlcwoJCSAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgJ2FwcGx5LXBhdGNo ZXMKCQkJCSAgKGxhbWJkYSogKCM6a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCgkJCQkJ ICAgOzsgQ29tZXMgZnJvbQoJCQkJCSAgIDs7ICJyaW5nLXByb2plY3QvZGFlbW9uL2NvbnRyaWIv c3JjL3BqcHJvamVjdC9ydWxlcy5tYWsiLgoJCQkJCSAgIDs7IFdlIGFscmVhZHkgYXNrZWQKCQkJ CQkgICA7OyBSaW5nIHRvIGNvbnRyaWJ1dGUKCQkJCQkgICA7OyB1cHN0cmVhLCBwbGVhc2UKCQkJ CQkgICA7OyBzZWU6CgkJCQkJICAgOzsgaHR0cHM6Ly90dWxlYXAucmluZy5jeC9wbHVnaW5zL3Ry YWNrZXIvP2FpZD0xNTQ2LgoJCQkJCSAgIDs7IE5PVEUgVGhlc2UgYW1vdW50CgkJCQkJICAgOzsg Zm9yIGh1Z2UgY2hhbmdlcwoJCQkJCSAgIDs7IGluIHBqcHJvamVjdC4KCQkJCQkgICA7OyBQYXJ0 aWN1bGFybHksIHRoZXkKCQkJCQkgICA7OyBhZGQgc3VwcG9ydCBmb3IKCQkJCQkgICA7OyBHbnVU TFMsIHdoaWNoIGlzCgkJCQkJICAgOzsgY29tcGxldGVseSBsYWNraW5nCgkJCQkJICAgOzsgaW4g cGpwcm9qZWN0CgkJCQkJICAgOzsgMi41LjUuCgkJCQkJICAgKGxldCAoKHNhdm9pci1mYWlyZS1s aW51eC1wYXRjaGVzCgkJCQkJCSAgJygiZW5kaWFubmVzcyIKCQkJCQkJICAgICJnbnV0bHMiCgkJ CQkJCSAgICAibm90ZXN0c2FwcHMiCgkJCQkJCSAgICAiZml4X2Jhc2U2NCIKCQkJCQkJICAgICJp cHY2IgoJCQkJCQkgICAgImljZV9jb25maWciCgkJCQkJCSAgICAibXVsdGlwbGVfbGlzdGVuZXJz IgoJCQkJCQkgICAgInBqX2ljZV9zZXNzIgoJCQkJCQkgICAgImZpeF90dXJuX2ZhbGxiYWNrIgoJ CQkJCQkgICAgImZpeF9pb3F1ZXVlX2lwdjZfc2VuZHRvIgoJCQkJCQkgICAgImFkZF9kdGxzX3Ry YW5zcG9ydCIpKQoJCQkJCQkgKHBhdGNoZXMtZGlyZWN0b3J5ICJzYXZvaXItZmFpcmUtbGludXgt cGF0Y2hlcyIpKQoJCQkJCSAgICAgKG1rZGlyIHBhdGNoZXMtZGlyZWN0b3J5KQoJCQkJCSAgICAg KGZvci1lYWNoCgkJCQkJICAgICAgKGxhbWJkYSAoZmlsZSkKCQkJCQkJKGNvcHktZmlsZQoJCQkJ CQkgKHN0cmluZy1hcHBlbmQgKGFzc29jLXJlZiBpbnB1dHMgImdudS1yaW5nLXJlbGVhc2UiKQoJ CQkJCQkJCSIvcmluZy1wcm9qZWN0L2RhZW1vbi9jb250cmliL3NyYy9wanByb2plY3QvIiBmaWxl ICIucGF0Y2giKQoJCQkJCQkgKHN0cmluZy1hcHBlbmQgcGF0Y2hlcy1kaXJlY3RvcnkKCQkJCQkJ CQkiLyIgZmlsZSAiLnBhdGNoIikpCgkJCQkJCSh6ZXJvPyAoc3lzdGVtKiAicGF0Y2giICItZiIg Ii1wMSIgIi1pIgoJCQkJCQkJCShzdHJpbmctYXBwZW5kIHBhdGNoZXMtZGlyZWN0b3J5CgkJCQkJ CQkJCSAgICAgICAiLyIgZmlsZSAiLnBhdGNoIikpKSkKCQkJCQkgICAgICBzYXZvaXItZmFpcmUt bGludXgtcGF0Y2hlcykpKSkKCQkgICAgICAgKGFkZC1iZWZvcmUgJ2J1aWxkICdidWlsZC1kZXBl bmRlbmNpZXMKCQkJCSAgIChsYW1iZGEgXwoJCQkJICAgICAoemVybz8gKHN5c3RlbSogIm1ha2Ui ICJkZXAiKSkpKQoJCSAgICAgICAoYWRkLWJlZm9yZSAncGF0Y2gtc291cmNlLXNoZWJhbmdzICdh dXRvY29uZgoJCQkJICAgKGxhbWJkYSBfCgkJCQkgICAgICh6ZXJvPyAoc3lzdGVtKiAiYXV0b2Nv bmYiICItdiIgIi1mIiAiLWkiICItbyIKCQkJCQkJICAgICAiYWNvbmZpZ3VyZSIgImFjb25maWd1 cmUuYWMiKSkpKQoJCSAgICAgICAoYWRkLWJlZm9yZSAnYXV0b2NvbmYgJ2Rpc2FibGUtc29tZS10 ZXN0cwoJCQkJICAgOzsgVGhyZWUgb2YgdGhlIHNpeCB0ZXN0IHByb2dyYW1zCgkJCQkgICA7OyBm YWlsIGR1ZSB0byBtaXNzaW5nIG5ldHdvcmsKCQkJCSAgIDs7IGFjY2Vzcy4KCQkJCSAgIChsYW1i ZGEgXwoJCQkJICAgICAoc3Vic3RpdHV0ZSogIk1ha2VmaWxlIgoJCQkJCQkgICgoInNlbGZ0ZXN0 OiBwamxpYi10ZXN0IHBqbGliOzNSLXV0aWwtdGVzdCBwam5hdGgtdGVzdCBwam1lZGlhLXRlc3Qg cGpzaXAtdGVzdCBwanN1YS10ZXN0IikKCQkJCQkJICAgInNlbGZ0ZXN0OiBwamxpYi10ZXN0IHBq bGliLXV0aWwtdGVzdCBwam1lZGlhLXRlc3QiKSkpKSkpKQogICAgIChob21lLXBhZ2UgInd3dy5w anNpcC5vcmciKQogICAgIChzeW5vcHNpcyAiU2Vzc2lvbiBJbml0aWF0aW9uIFByb3RvY29sIChT SVApIHN0YWNrIikKICAgICAoZGVzY3JpcHRpb24gIlBKUHJvamVjdCBwcm92aWRlcyBhbiBpbXBs ZW1lbnRhdGlvbiBvZiB0aGUgU2Vzc2lvbgpJbml0aWF0aW9uIFByb3RvY29sIChTSVApIGFuZCBh IG11bHRpbWVkaWEgZnJhbWV3b3JrLiBUaGlzIHBhY2thZ2UgaXMgaW50ZW5kZWQKZm9yIHVzZSB3 aXRoIGxpYnJpbmcuICBUaGVyZSBhcmUgc2V2ZXJhbCBjdXN0b20gcGF0Y2hlcywgbW9zdCBub3Rh Ymx5IHRoZSB1c2UKb2YgZ251dGxzIGluc3RlYWQgb2Ygb3BlbnNzbCBmb3IgZW5jcnlwdGlvbi4i KQogICAgIDs7IFdlIHNob3VsZCBtYWtlIHRoZSBsaWNlbnNlIG9ubHkgb25lLCB0aGUgb25lIHdo aWNoIGlzCiAgICAgOzsgZWZmZWN0aXZlIGFzIHJlc3VsdCBvZiBhcHBseWluZyBzYXZvaXItZmFp cmUtbGludXgtcGF0Y2hlcywKICAgICA7OyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gc2F5IHRo YXQgdGhlIHdob2xlIHBhY2thZ2UgaGFzIHR3bwogICAgIDs7IGxpY2Vuc2VzIGZvciB3aGljaCB0 aGUgdXNlciBjYW4gImNob29zZSIgZnJvbSAoZHVhbCBsaWNlbnNpbmcpLgogICAgIDs7IE5FVyBw anByb2plY3QgaXMgdW5kZXIgR05VIEdQTCAyKywgbm90IEdQTCAyIChvbmx5KS4KICAgICA7OyBM YXN0IHRpbWUgd2UgY2hlY2tlZCwgdGhlCiAgICAgOzsgU2F2b2lyLWZhaXJlIExpbnV4IHBhdGNo ZXMgd2VyZSB1bmRlcgogICAgIDs7IEdOVSBHUEwgMyAob25seSkuIElzIHRoaXMgc3RpbGwgdHJ1 ZT8KICAgICAobGljZW5zZSAnKGxpY2Vuc2U6Z3BsMisKCQlsaWNlbnNlOmdwbDMpKSkpKQoKKGRl ZmluZS1wdWJsaWMgc2F2b2lyLWZhaXJlLWxpbnV4LWFzaW8KICAobGV0ICgocmVsZWFzZSAiMS4x MC44IikKCShjb21taXQgIjI4ZDliOGQ2ZGY3MDgwMjRhZjUyMjdjNTUxNjczZmRiMjUxOWY1YmYi KQoJKHJldmlzaW9uIDIpKQogICAgKHBhY2thZ2UKICAgICAobmFtZSAiYXNpbyIpCiAgICAgKHZl cnNpb24gKGlmICh6ZXJvPyByZXZpc2lvbikKICAgICAJCSAgcmVsZWFzZQogICAgIAkJICAoc3Ry aW5nLWFwcGVuZCByZWxlYXNlICItIgogICAgIAkJCQkgKG51bWJlci0+c3RyaW5nIHJldmlzaW9u KQogICAgIAkJCQkgIi4iIChzdHJpbmctdGFrZSBjb21taXQgNykpKSkKICAgICAoc291cmNlIChv cmlnaW4KCSAgICAgIChtZXRob2QgdXJsLWZldGNoKQoJICAgICAgKHVyaSAoc3RyaW5nLWFwcGVu ZCAiaHR0cHM6Ly9naXRodWIuY29tL2Nocmlza29obGhvZmYvYXNpby9hcmNoaXZlLyIKCQkJCSAg Y29tbWl0ICIudGFyLmd6IikpCgkgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUg Ii0iIHZlcnNpb24gIi50YXIuZ3oiKSkKCSAgICAgIChzaGEyNTYKCSAgICAgICAoYmFzZTMyCgkJ IjA3d3A1NnZpYnFwMXFwOGNhMWFoYmhzOG1kN2syMmltN25tbHgwaGFxeGRnc3pwMXpjdmIiKSkp KQogICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKICAgICAoaW5wdXRzCiAgICAg IGAoKCJib29zdCIgLGJvb3N0KSkpCiAgICAgKG5hdGl2ZS1pbnB1dHMKICAgICAgYCgoImF1dG9j b25mIiAsYXV0b2NvbmYpCgkoImF1dG9tYWtlIiAsYXV0b21ha2UpCgkoImdudS1yaW5nLXJlbGVh c2UiICxnbnUtcmluZy1yZWxlYXNlKSkpCiAgICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y29uZmln dXJlLWZsYWdzCglgKCwoc3RyaW5nLWFwcGVuZCAiLS13aXRoLWJvb3N0PVwiIgoJCQkgIChhc3Nv Yy1yZWYgJWJ1aWxkLWlucHV0cyAiYm9vc3QiKSAiXCIiKSkKCSM6cGhhc2VzCgkobW9kaWZ5LXBo YXNlcyAlc3RhbmRhcmQtcGhhc2VzCgkJICAgICAgIChhZGQtYWZ0ZXIgJ3VucGFjayAnY2hhbmdl LWRpcmVjdG9yeS1hbmQtYXBwbHktcGF0Y2hlcwoJCQkJICAobGFtYmRhKiAoIzprZXkgaW5wdXRz ICM6YWxsb3ctb3RoZXIta2V5cykKCQkJCQkgICA7OyBXZSBhc2tlZCBSaW5nIHRvCgkJCQkJICAg Ozsgc2VuZCBwYXRjaGVzIHRvCgkJCQkJICAgOzsgdGhlaXIgdXBzdHJlYW0sCgkJCQkJICAgOzsg c3RhdHVzIGNhbiBiZSBzZWVuCgkJCQkJICAgOzsgYXQ6CgkJCQkJICAgOzsgaHR0cHM6Ly90dWxl YXAucmluZy5jeC9wbHVnaW5zL3RyYWNrZXIvP2FpZD0xNTQ2LgoJCQkJCSAgIDs7IFRoZXNlIHBh dGNoZXMganVzdAoJCQkJCSAgIDs7IGRpc2FibGUgdGVzdHMgYW5kCgkJCQkJICAgOzsgZXhhbXBs ZXMuICBXZQoJCQkJCSAgIDs7IHNob3VsZCBjb252aW5jZQoJCQkJCSAgIDs7IFJpbmcgdG8gc2Vu ZCB0aGVzZQoJCQkJCSAgIDs7IHBhdGNoZXMgdG8gdGhlaXIKCQkJCQkgICA7OyB1cHN0cmVhbSwg YXNpby4KCQkJCQkgICAobGV0ICgoc2F2b2lyLWZhaXJlLWxpbnV4LXBhdGNoZXMKCQkJCQkJICAn KCJub190ZXN0c19leGFtcGxlcyIpKQoJCQkJCQkgKHBhdGNoZXMtZGlyZWN0b3J5ICJzYXZvaXIt ZmFpcmUtbGludXgtcGF0Y2hlcyIpKQoJCQkJCSAgICAgKGNoZGlyICJhc2lvIikKCQkJCQkgICAg IChta2RpciBwYXRjaGVzLWRpcmVjdG9yeSkKCQkJCQkgICAgIChmb3ItZWFjaAoJCQkJCSAgICAg IChsYW1iZGEgKGZpbGUpCgkJCQkJCShjb3B5LWZpbGUKCQkJCQkJIChzdHJpbmctYXBwZW5kIChh c3NvYy1yZWYgaW5wdXRzICJnbnUtcmluZy1yZWxlYXNlIikKCQkJCQkJCQkiL3JpbmctcHJvamVj dC9kYWVtb24vY29udHJpYi9zcmMvYXNpby8iIGZpbGUgIi5wYXRjaCIpCgkJCQkJCSAoc3RyaW5n LWFwcGVuZCBwYXRjaGVzLWRpcmVjdG9yeQoJCQkJCQkJCSIvIiBmaWxlICIucGF0Y2giKSkKCQkJ CQkJKHplcm8/IChzeXN0ZW0qICJwYXRjaCIgIi1mIiAiLXAxIiAiLWkiCgkJCQkJCQkJKHN0cmlu Zy1hcHBlbmQgcGF0Y2hlcy1kaXJlY3RvcnkKCQkJCQkJCQkJICAgICAgICIvIiBmaWxlICIucGF0 Y2giKSkpKQoJCQkJCSAgICAgIHNhdm9pci1mYWlyZS1saW51eC1wYXRjaGVzKSkpKQoJCSAgICAg ICAoYWRkLWJlZm9yZSAnY29uZmlndXJlICdydW4tYXV0b2dlbgoJCQkJICAgKGxhbWJkYSBfCgkJ CQkgICAgICh6ZXJvPyAoc3lzdGVtKiAiLi9hdXRvZ2VuLnNoIikpKSkpKSkKICAgICAoc3lub3Bz aXMgIkFzaW8gQysrIExpYnJhcnkiKQogICAgIChkZXNjcmlwdGlvbiAiQXNpbyBpcyBhIGNyb3Nz LXBsYXRmb3JtIEMrKyBsaWJyYXJ5IGZvciBuZXR3b3JrCmFuZCBsb3ctbGV2ZWwgSS9PIHByb2dy YW1taW5nIHRoYXQgcHJvdmlkZXMgZGV2ZWxvcGVycyB3aXRoIGEKY29uc2lzdGVudCBhc3luY2hy b25vdXMgbW9kZWwgdXNpbmcgYSBtb2Rlcm4gQysrIGFwcHJvYWNoLiIpCiAgICAgKGhvbWUtcGFn ZSAiaHR0cHM6Ly9naXRodWIuY29tL2Nocmlza29obGhvZmYvYXNpbyIpCiAgICAgKGxpY2Vuc2Ug bGljZW5zZTpib29zdDEuMCkpKSkKCihkZWZpbmUtcHVibGljIHNhdm9pci1mYWlyZS1saW51eC1y ZXN0YmVkCiAgKGxldCAoKHJlbGVhc2UgIjQ1LjUtUkMxIikKCShjb21taXQgIjZkZDQ2ZTFkOWFi MzgwMWE2YzZlMWFhYmFlZTc0ZDA2NmUxMmM1ZTEiKQoJKHJldmlzaW9uIDIpKQogICAgKHBhY2th Z2UKICAgICAobmFtZSAicmVzdGJlZCIpCiAgICAgKHZlcnNpb24gKGlmICh6ZXJvPyByZXZpc2lv bikKICAgICAJCSAgcmVsZWFzZQogICAgIAkJICAoc3RyaW5nLWFwcGVuZCByZWxlYXNlICItIgog ICAgIAkJCQkgKG51bWJlci0+c3RyaW5nIHJldmlzaW9uKQogICAgIAkJCQkgIi4iIChzdHJpbmct dGFrZSBjb21taXQgNykpKSkKICAgICAoc291cmNlIChvcmlnaW4KCSAgICAgIChtZXRob2QgdXJs LWZldGNoKQoJICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZCAiaHR0cHM6Ly9naXRodWIuY29tL0Nv cnZ1c29mdC9yZXN0YmVkL2FyY2hpdmUvIgoJCQkJICBjb21taXQgIi50YXIuZ3oiKSkKCSAgICAg IChmaWxlLW5hbWUgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLnRhci5neiIpKQoJ ICAgICAgKHNoYTI1NgoJICAgICAgIChiYXNlMzIKCQkiMHdsNTJxbXBteG1ycThtY204Y2twcWZx cnJqNmRmY3ZtYzNxa2lneW1mM21qMmNrZjluMyIpKSkpCiAgICAgKGJ1aWxkLXN5c3RlbSBjbWFr ZS1idWlsZC1zeXN0ZW0pCiAgICAgKGlucHV0cwogICAgICBgKCgiYXNpbyIgLHNhdm9pci1mYWly ZS1saW51eC1hc2lvKQoJKCJjYXRjaCIgLGNhdGNoLWZyYW1ld29yaykKCSgiZ2xpYmMiICxnbGli YykKCSgia2FzaG1pciIgLGthc2htaXIpKSkKICAgICAobmF0aXZlLWlucHV0cwogICAgICBgKCgi Z251LXJpbmctcmVsZWFzZSIgLGdudS1yaW5nLXJlbGVhc2UpKSkKICAgICAoYXJndW1lbnRzCiAg ICAgIGAoIzp0ZXN0cz8gI2YKCTs7IENvbWVzIGZyb20gInJpbmctcHJvamVjdC9kYWVtb24vY29u dHJpYi9zcmMvcmVzdGJlZC9ydWxlcy5tYWsiLgoJIzpjb25maWd1cmUtZmxhZ3MKCWAoLChzdHJp bmctYXBwZW5kICItRENNQUtFX0lOU1RBTExfTElCRElSPSIKCQkJIChhc3NvYy1yZWYgJW91dHB1 dHMgIm91dCIpICIvbGliIikKCSAgIi1EQlVJTERfVEVTVFM9Tk8iCgkgICItREJVSUxEX0VYQU1Q TEVTPU5PIgoJICAiLURCVUlMRF9TU0w9Tk8iCgkgICItREJVSUxEX1NIQVJFRD1OTyIpCgkjOnBo YXNlcwoJKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwoJCSAgICAgICAoYWRkLWFmdGVy ICd1bnBhY2sgJ2FwcGx5LXBhdGNoZXMtYW5kLWZpeC1wYXRocwoJCQkJICAobGFtYmRhKiAoIzpr ZXkgaW5wdXRzICM6YWxsb3ctb3RoZXIta2V5cykKCQkJCQkgICAobGV0ICgoYXNpbyAoYXNzb2Mt cmVmIGlucHV0cyAiYXNpbyIpKQoJCQkJCQkgKGNhdGNoIChhc3NvYy1yZWYgaW5wdXRzICJjYXRj aCIpKQoJCQkJCQkgKGdsaWJjIChhc3NvYy1yZWYgaW5wdXRzICJnbGliYyIpKQoJCQkJCQkgKGth c2htaXIgKGFzc29jLXJlZiBpbnB1dHMgImthc2htaXIiKSkKCQkJCQkJIDs7IFdlIGFza2VkIFJp bmcgdG8KCQkJCQkJIDs7IHNlbmQgcGF0Y2hlcwoJCQkJCQkgOzsgdXBzdHJlYW0sIHN0YXR1cwoJ CQkJCQkgOzsgY2FuIGJlIHNlZW4gYXQ6CgkJCQkJCSA7OyBodHRwczovL3R1bGVhcC5yaW5nLmN4 L3BsdWdpbnMvdHJhY2tlci8/YWlkPTE1NDYuCgkJCQkJCSA7OyBUaGVzZSBwYXRjaGVzIGRlYWwK CQkJCQkJIDs7IHdpdGggbWlub3IgZml4ZXMuCgkJCQkJCSA7OyBXZSBzaG91bGQgY29udmluY2UK CQkJCQkJIDs7IFJpbmcgdXBzdHJlYW0gdG8KCQkJCQkJIDs7IHNlbmQgdGhlc2UgcGF0Y2hlcwoJ CQkJCQkgOzsgdG8gdGhlaXIgdXBzdHJlYW0sCgkJCQkJCSA7OyByZXN0YmVkLgoJCQkJCQkgKHNh dm9pci1mYWlyZS1saW51eC1wYXRjaGVzCgkJCQkJCSAgJygic3RyYW5kIikpCgkJCQkJCSAocGF0 Y2hlcy1kaXJlY3RvcnkgInNhdm9pci1mYWlyZS1saW51eC1wYXRjaGVzIikpCgkJCQkJICAgICAo bWtkaXIgcGF0Y2hlcy1kaXJlY3RvcnkpCgkJCQkJICAgICAoZm9yLWVhY2gKCQkJCQkgICAgICAo bGFtYmRhIChmaWxlKQoJCQkJCQkoY29weS1maWxlCgkJCQkJCSAoc3RyaW5nLWFwcGVuZCAoYXNz b2MtcmVmIGlucHV0cyAiZ251LXJpbmctcmVsZWFzZSIpCgkJCQkJCQkJIi9yaW5nLXByb2plY3Qv ZGFlbW9uL2NvbnRyaWIvc3JjL3Jlc3RiZWQvIiBmaWxlICIucGF0Y2giKQoJCQkJCQkgKHN0cmlu Zy1hcHBlbmQgcGF0Y2hlcy1kaXJlY3RvcnkKCQkJCQkJCQkiLyIgZmlsZSAiLnBhdGNoIikpCgkJ CQkJCSh6ZXJvPyAoc3lzdGVtKiAicGF0Y2giICItZiIgIi1wMSIgIi1pIgoJCQkJCQkJCShzdHJp bmctYXBwZW5kIHBhdGNoZXMtZGlyZWN0b3J5CgkJCQkJCQkJCSAgICAgICAiLyIgZmlsZSAiLnBh dGNoIikpKSkKCQkJCQkgICAgICBzYXZvaXItZmFpcmUtbGludXgtcGF0Y2hlcykKCQkJCQkgICAg IChzdWJzdGl0dXRlKiAiY21ha2UvbW9kdWxlcy9GaW5kYXNpby5jbWFrZSIKCQkJCQkJCSAgKCgi KGZpbmRfcGF0aFxcKCBhc2lvX0lOQ0xVREUgYXNpb1xcLmhwcCBISU5UUyApW15cbl0qXG4iIF8g YmVnaW4pCgkJCQkJCQkgICAoc3RyaW5nLWFwcGVuZCBiZWdpbiAiXCIiIGFzaW8gIi9pbmNsdWRl XCIgKVxuIikpKQoJCQkJCSAgICAgKHN1YnN0aXR1dGUqICJjbWFrZS9tb2R1bGVzL0ZpbmRjYXRj aC5jbWFrZSIKCQkJCQkJCSAgKCgiKGZpbmRfcGF0aFxcKCBjYXRjaF9JTkNMVURFIGNhdGNoXFwu aHBwIEhJTlRTIClbXlxuXSpcbiIgXyBiZWdpbikKCQkJCQkJCSAgIChzdHJpbmctYXBwZW5kIGJl Z2luICJcIiIgY2F0Y2ggIi9pbmNsdWRlXCIgKVxuIikpKQoJCQkJCSAgICAgKHN1YnN0aXR1dGUq ICJjbWFrZS9tb2R1bGVzL0ZpbmRrYXNobWlyLmNtYWtlIgoJCQkJCQkJICAoKCIoZmluZF9wYXRo XFwoIGthc2htaXJfSU5DTFVERSBrYXNobWlyIEhJTlRTIClbXlxuXSpcbiIgXyBiZWdpbikKCQkJ CQkJCSAgIChzdHJpbmctYXBwZW5kIGJlZ2luICJcIiIga2FzaG1pciAiL2thc2htaXItZGVwZW5k ZW5jeVwiIClcbiIpKSkKCQkJCQkgICAgIChzdWJzdGl0dXRlKiAiY21ha2UvbW9kdWxlcy9GaW5k c3lzbG9nLmNtYWtlIgoJCQkJCQkJICAoKCIoZmluZF9wYXRoXFwoIHN5c2xvZ19JTkNMVURFIHN5 c2xvZ1xcLmggSElOVFMgKVteXG5dKlxuIiBfIGJlZ2luKQoJCQkJCQkJICAgKHN0cmluZy1hcHBl bmQgYmVnaW4gIlwiIiBnbGliYyAiL2luY2x1ZGVcIiApXG4iKSkpKSkpKSkpCiAgICAgKHN5bm9w c2lzICJBc3luY2hyb25vdXMgUkVTVGZ1bCBmdW5jdGlvbmFsaXR5IHRvIEMrKzExIGFwcGxpY2F0 aW9ucyIpCiAgICAgKGRlc2NyaXB0aW9uICJSZXN0YmVkIGlzIGEgY29tcHJlaGVuc2l2ZSBhbmQg Y29uc2lzdGVudCBwcm9ncmFtbWluZwptb2RlbCBmb3IgYnVpbGRpbmcgYXBwbGljYXRpb25zIHRo YXQgcmVxdWlyZSBzZWFtbGVzcyBhbmQgc2VjdXJlCmNvbW11bmljYXRpb24gb3ZlciBIVFRQLiIp CiAgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL0NvcnZ1c29mdC9yZXN0YmVkIikK ICAgICAobGljZW5zZSBsaWNlbnNlOmFncGwzKykpKSkKCjs7OyBCYXNlZCBvbgo7OzsgPGh0dHA6 Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ndWl4LWRldmVsLzIwMTYtMDkvbXNnMDEwNjEu aHRtbD4uCihkZWZpbmUtcHVibGljIGxpYnJpbmcKICAocGFja2FnZQogICAoaW5oZXJpdCBnbnUt cmluZy1yZWxlYXNlKQogICAobmFtZSAibGlicmluZyIpCiAgIChzb3VyY2UgKG9yaWdpbgoJICAg IChpbmhlcml0IChwYWNrYWdlLXNvdXJjZSBnbnUtcmluZy1yZWxlYXNlKSkKCSAgICAobW9kdWxl cyAnKChndWl4IGJ1aWxkIHV0aWxzKSkpCgkgICAgKHNuaXBwZXQKCSAgICAgJyhiZWdpbgoJCShk ZWxldGUtZmlsZS1yZWN1cnNpdmVseSAiZGFlbW9uL2NvbnRyaWIiKSkpKSkKICAgKGJ1aWxkLXN5 c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQogICAoaW5wdXRzCiAgICBgKCgiYWxzYS1saWIiICxhbHNh LWxpYikKICAgICAgKCJib29zdCIgLGJvb3N0KQogICAgICAoImRidXMtYysrIiAsZGJ1cy1jKysp CiAgICAgICgiZXVkZXYiICxldWRldikKICAgICAgKCJmZm1wZWciICxmZm1wZWcpCiAgICAgICgi ZmxhYyIgLGZsYWMpCiAgICAgICgiZ21wIiAsZ21wKQogICAgICAoImdzbSIgLGdzbSkKICAgICAg KCJqYWNrIiAsamFjay0xKQogICAgICAoImpzb25jcHAiICxqc29uY3BwKQogICAgICAoImxpYm9n ZyIgLGxpYm9nZykKICAgICAgKCJsaWJzYW1wbGVyYXRlIiAsbGlic2FtcGxlcmF0ZSkKICAgICAg KCJsaWJzbmRmaWxlIiAsbGlic25kZmlsZSkKICAgICAgKCJsaWJ1cG5wIiAsbGlidXBucCkKICAg ICAgKCJsaWJ2YSIgLGxpYnZhKQogICAgICAoImxpYnZvcmJpcyIgLGxpYnZvcmJpcykKICAgICAg KCJsaWJ4MjY0IiAsbGlieDI2NCkKICAgICAgKCJvcGVuZGh0LXdpdGgtbXNncGFjay1jKystMTEi ICxvcGVuZGh0LXdpdGgtbXNncGFjay1jKystMTEpCiAgICAgICgib3B1cyIgLG9wdXMpCiAgICAg ICgicGNyZSIgLHBjcmUpCiAgICAgICgicGpwcm9qZWN0IiAsc2F2b2lyLWZhaXJlLWxpbnV4LXBq cHJvamVjdCkKICAgICAgKCJwdWxzZWF1ZGlvIiAscHVsc2VhdWRpbykKICAgICAgKCJzcGVleCIg LHNwZWV4KQogICAgICAoInlhbWwtY3BwIiAseWFtbC1jcHApCiAgICAgICgiemxpYiIgLHpsaWIp CiAgICAgICgiY3J5cHRvKysiICxjcnlwdG8rKykKICAgICAgKCJsaWJ4MTEiICxsaWJ4MTEpCiAg ICAgICgicHl0aG9uIiAscHl0aG9uKQogICAgICAoInB5dGhvbi13cmFwcGVyIiAscHl0aG9uLXdy YXBwZXIpCiAgICAgICgicmVzdGJlZCIgLHNhdm9pci1mYWlyZS1saW51eC1yZXN0YmVkKQogICAg ICAoInNwZWV4ZHNwIiAsc3BlZXhkc3ApKSkKICAgKG5hdGl2ZS1pbnB1dHMKICAgIGAoKCJhdXRv Y29uZiIgLGF1dG9jb25mKQogICAgICAoImF1dG9tYWtlIiAsYXV0b21ha2UpCiAgICAgICgiY3Bw dW5pdCIgLGNwcHVuaXQpCiAgICAgICgibGlidG9vbCIgLGxpYnRvb2wpCiAgICAgICgicGVybCIg LHBlcmwpCiAgICAgICgicGtnLWNvbmZpZyIgLHBrZy1jb25maWcpKSkKICAgKGFyZ3VtZW50cwog ICAgYCgjOnRlc3RzPyAjZiA7IEZJWE1FIFRoZSB0ZXN0cyBmYWlsIHRvIGNvbXBpbGUgZHVlIHRv IG1pc3NpbmcgaGVhZGVycy4KICAgICAgIzpwaGFzZXMKICAgICAgKG1vZGlmeS1waGFzZXMgJXN0 YW5kYXJkLXBoYXNlcwoJCSAgICAgKGFkZC1hZnRlciAndW5wYWNrICdjaGFuZ2UtZGlyZWN0b3J5 CgkJCQkobGFtYmRhIF8KCQkJCSAgKGNoZGlyICJkYWVtb24iKSkpCgkJICAgICAoYWRkLWJlZm9y ZSAnY29uZmlndXJlICdhdXRvY29uZgoJCQkJIChsYW1iZGEgXwoJCQkJICAgKHplcm8/IChzeXN0 ZW0qICJhdXRvcmVjb25mIiAiLXZmaSIpKSkpCgkJICAgICAoYWRkLWJlZm9yZSAnYnVpbGQgJ2Fk ZC1saWItZGlyCgkJCQkgKGxhbWJkYSBfCgkJCQkgICAobWtkaXIgInNyYy9saWIiKSkpKSkpCiAg IChkZXNjcmlwdGlvbgogICAgKHN0cmluZy1hcHBlbmQgKHBhY2thZ2UtZGVzY3JpcHRpb24gZ251 LXJpbmctcmVsZWFzZSkgIgoKVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgbGlicmFyeSBhbmQgZGFl bW9uIGltcGxlbWVudGluZyB0aGUgUmluZyBjb3JlCmZ1bmN0aW9uYWxpdHkuIikpKSkKCjs7OyBC YXNlZCBvbgo7OzsgPGh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ndWl4LWRldmVs LzIwMTYtMDkvbXNnMDEwNjIuaHRtbD4uCihkZWZpbmUtcHVibGljIGxpYnJpbmdjbGllbnQKICAo cGFja2FnZQogICAoaW5oZXJpdCBnbnUtcmluZy1yZWxlYXNlKQogICAobmFtZSAibGlicmluZ2Ns aWVudCIpCiAgIChidWlsZC1zeXN0ZW0gY21ha2UtYnVpbGQtc3lzdGVtKQogICAocHJvcGFnYXRl ZC1pbnB1dHMKICAgIGAoKCJsaWJyaW5nIiAsbGlicmluZykgOyBGb3IgJ2RyaW5nJy4KICAgICAg KCJxdGJhc2UiICxxdGJhc2UpIDsgUXQgaXMgaW5jbHVkZWQgaW4gc2V2ZXJhbCBpbnN0YWxsZWQg aGVhZGVycy4KICAgICAgKCJxdHRvb2xzIiAscXR0b29scykpKQogICAoYXJndW1lbnRzCiAgICBg KCM6dGVzdHM/ICNmIDsgVGhlcmUgaXMgbm8gdGVzdHN1aXRlLgogICAgICAjOmNvbmZpZ3VyZS1m bGFncwogICAgICBgKCwoc3RyaW5nLWFwcGVuZCAiLURSSU5HX0JVSUxEX0RJUj0iCgkJCShhc3Nv Yy1yZWYgJWJ1aWxkLWlucHV0cyAibGlicmluZyIpICIvaW5jbHVkZSIpKQogICAgICAjOnBoYXNl cwogICAgICAobW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCgkJICAgICAoYWRkLWFmdGVy ICd1bnBhY2sgJ2NoYW5nZS1kaXJlY3RvcnkKCQkJCShsYW1iZGEgXwoJCQkJICAoY2hkaXIgImxy YyIpKSkKCQkgICAgIChhZGQtYmVmb3JlICdjb25maWd1cmUgJ2ZpeC1kYnVzLWludGVyZmFjZXMt cGF0aAoJCQkJIChsYW1iZGEqICgjOmtleSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQoJCQkJ CSAgKHN1YnN0aXR1dGUqICJDTWFrZUxpc3RzLnR4dCIKCQkJCQkJICAgICAgICgoIlxcJFxce0NN QUtFX0lOU1RBTExfUFJFRklYXFx9KC9zaGFyZS9kYnVzLTEvaW50ZXJmYWNlcykiIF8gZGJ1cy1p bnRlcmZhY2VzLXBhdGgtc3VmZml4KQoJCQkJCQkJKHN0cmluZy1hcHBlbmQgKGFzc29jLXJlZiBp bnB1dHMgImxpYnJpbmciKQoJCQkJCQkJCSAgICAgICBkYnVzLWludGVyZmFjZXMtcGF0aC1zdWZm aXgpKSkpKSkpKQogICAoZGVzY3JpcHRpb24KICAgIChzdHJpbmctYXBwZW5kIChwYWNrYWdlLWRl c2NyaXB0aW9uIGdudS1yaW5nLXJlbGVhc2UpICIKClRoaXMgcGFja2FnZSBwcm92aWRlcyBhIGxp YnJhcnkgY29tbW9uIHRvIGFsbCBSaW5nIGNsaWVudHMuIikpKSkKCjs7OyBCYXNlZCBvbgo7Ozsg PGh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ndWl4LWRldmVsLzIwMTYtMDkvbXNn MDEwNjMuaHRtbD4uCihkZWZpbmUtcHVibGljIHJpbmctY2xpZW50LWdub21lCiAgKHBhY2thZ2UK ICAgKGluaGVyaXQgZ251LXJpbmctcmVsZWFzZSkKICAgKG5hbWUgInJpbmctY2xpZW50LWdub21l IikKICAgKGJ1aWxkLXN5c3RlbSBjbWFrZS1idWlsZC1zeXN0ZW0pCiAgIChpbnB1dHMKICAgIGAo KCJsaWJyaW5nY2xpZW50IiAsbGlicmluZ2NsaWVudCkKICAgICAgKCJndGsrIiAsZ3RrKykKICAg ICAgKCJnbGliOmJpbiIgLGdsaWIgImJpbiIpCiAgICAgICgicXJlbmNvZGUiICxxcmVuY29kZSkK ICAgICAgKCJsaWJub3RpZnkiICxsaWJub3RpZnkpCiAgICAgICgiY2x1dHRlciIgLGNsdXR0ZXIp CiAgICAgICgiY2x1dHRlci1ndGsiICxjbHV0dGVyLWd0aykKICAgICAgKCJnZXR0ZXh0IiAsZ251 LWdldHRleHQpCiAgICAgICgid2Via2l0Z3RrIiAsd2Via2l0Z3RrKSkpCiAgIChuYXRpdmUtaW5w dXRzCiAgICBgKCgicGtnLWNvbmZpZyIgLHBrZy1jb25maWcpCiAgICAgICgiZG94eWdlbiIgLGRv eHlnZW4pKSkKICAgKHByb3BhZ2F0ZWQtaW5wdXRzCiAgICBgKCgibGlicmluZyIgLGxpYnJpbmcp IDsgVGhpcyBpcyBuZWVkZWQgdG8gcnVuIGRyaW5nLgogICAgICAoImFkd2FpdGEtaWNvbi10aGVt ZSIgLGFkd2FpdGEtaWNvbi10aGVtZSkKICAgICAgKCJldm9sdXRpb24tZGF0YS1zZXJ2ZXIiICxl dm9sdXRpb24tZGF0YS1zZXJ2ZXIpKSkKICAgKGFyZ3VtZW50cwogICAgYCgjOnRlc3RzPyAjZiA7 IFRoZXJlIGlzIG5vIHRlc3RzdWl0ZS4KICAgICAgIzpwaGFzZXMKICAgICAgKG1vZGlmeS1waGFz ZXMgJXN0YW5kYXJkLXBoYXNlcwoJCSAgICAgKGFkZC1hZnRlciAndW5wYWNrICdjaGFuZ2UtZGly ZWN0b3J5CgkJCQkobGFtYmRhIF8KCQkJCSAgKGNoZGlyICJjbGllbnQtZ25vbWUiKSkpKSkpCiAg IChkZXNjcmlwdGlvbgogICAgKHN0cmluZy1hcHBlbmQgKHBhY2thZ2UtZGVzY3JpcHRpb24gZ251 LXJpbmctcmVsZWFzZSkgIgoKVGhpcyBwYWNrYWdlIHByb3ZpZGVzIHRoZSBSaW5nIGNsaWVudCBm b3IgdGhlIEdub21lIERlc2t0b3AuIikpKSkKCjs7OyBGcm9tIDxodHRwOi8vbGlzdHMuZ251Lm9y Zy9hcmNoaXZlL2h0bWwvZ3VpeC1kZXZlbC8yMDE2LTA5L21zZzAxOTM3Lmh0bWw+LgooZGVmaW5l LXB1YmxpYyBhcmdvbjIKICAobGV0ICgocmVsZWFzZSAiMjAxNjEwMjkiKQoJKGNvbW1pdCAiOWUz YWUwZjVlOTFlY2VkNmRlM2MyOGE5YjYxZjJkOTEyMDAxMTllMyIpCgkocmV2aXNpb24gNCkpCiAg ICAocGFja2FnZQogICAgIChuYW1lICJhcmdvbjIiKQogICAgICh2ZXJzaW9uIChpZiAoemVybz8g cmV2aXNpb24pCiAgICAgCQkgIHJlbGVhc2UKICAgICAJCSAgKHN0cmluZy1hcHBlbmQgcmVsZWFz ZSAiLSIKICAgICAJCQkJIChudW1iZXItPnN0cmluZyByZXZpc2lvbikKICAgICAJCQkJICIuIiAo c3RyaW5nLXRha2UgY29tbWl0IDcpKSkpCiAgICAgKHNvdXJjZSAob3JpZ2luCgkgICAgICAobWV0 aG9kIHVybC1mZXRjaCkKCSAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vZ2l0aHVi LmNvbS9QLUgtQy9waGMtd2lubmVyLWFyZ29uMi9hcmNoaXZlLyIKCQkJCSAgY29tbWl0ICIudGFy Lmd6IikpCgkgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24g Ii50YXIuZ3oiKSkKCSAgICAgIChtb2R1bGVzICcoKGd1aXggYnVpbGQgdXRpbHMpKSkKCSAgICAg IChzbmlwcGV0CgkgICAgICAgJyhiZWdpbgoJCSAgKHN1YnN0aXR1dGUqICJNYWtlZmlsZSIKCQkJ ICAgICAgICgoImlmbmVxIFxcKFxcJFxcKE9QVFRFU1RcXCksIDBcXCkiKQoJCQkJImlmbmVxICgx LCAwKSIpKSkpCgkgICAgICAoc2hhMjU2CgkgICAgICAgKGJhc2UzMgoJCSIxMjJycGJybDJsYmhn d2o3c2FuYmd5bjgxZG5wM2F6cjh5ZHhyNXNjMHJ3cWx5ZzNpcWRwIikpKSkKICAgICAoYnVpbGQt c3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCiAgICAgKGFyZ3VtZW50cwogICAgICBgKCM6dGVzdC10 YXJnZXQgInRlc3QiCgkjOm1ha2UtZmxhZ3MgJygiQ0M9Z2NjIikKCSM6cGhhc2VzCgkobW9kaWZ5 LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCgkJICAgICAgIChkZWxldGUgJ2NvbmZpZ3VyZSkKCQkg ICAgICAgKGFkZC1hZnRlciAndW5wYWNrICdmaXgtcGtnLWNvbmZpZy1hbmQtbWFrZWZpbGUKCQkJ CSAgKGxhbWJkYSBfCgkJCQkgICAgKHN1YnN0aXR1dGUqICJsaWJhcmdvbjIucGMiCgkJCQkJCSAo KCIvdXNyIikKCQkJCQkJICAoYXNzb2MtcmVmICVvdXRwdXRzICJvdXQiKSkKCQkJCQkJICgoIkBI T1NUX01VTFRJQVJDSEAiKQoJCQkJCQkgICwob3IgKCVjdXJyZW50LXRhcmdldC1zeXN0ZW0pCgkJ CQkJCSAgICAgICAoJWN1cnJlbnQtc3lzdGVtKSkpCgkJCQkJCSAoKCJAVVBTVFJFQU1fVkVSQCIp CgkJCQkJCSAgLHJlbGVhc2UpKSkpCgkJICAgICAgIChyZXBsYWNlICdpbnN0YWxsCgkJCQkobGFt YmRhIF8KCQkJCSAgKGxldCAoKG91dCAoYXNzb2MtcmVmICVvdXRwdXRzICJvdXQiKSkpCgkJCQkg ICAgKGluc3RhbGwtZmlsZSAiYXJnb24yIgoJCQkJCQkgIChzdHJpbmctYXBwZW5kIG91dCAiL2Jp biIpKQoJCQkJICAgIChpbnN0YWxsLWZpbGUgImxpYmFyZ29uMi5hIgoJCQkJCQkgIChzdHJpbmct YXBwZW5kIG91dCAiL2xpYiIpKQoJCQkJICAgIChpbnN0YWxsLWZpbGUgImxpYmFyZ29uMi5zby4w IgoJCQkJCQkgIChzdHJpbmctYXBwZW5kIG91dCAiL2xpYiIpKQoJCQkJICAgIChpbnN0YWxsLWZp bGUgImxpYmFyZ29uMi5wYyIKCQkJCSAgICAJCSAgKHN0cmluZy1hcHBlbmQgb3V0ICIvbGliL3Br Z2NvbmZpZyIpKQoJCQkJICAgIChjb3B5LXJlY3Vyc2l2ZWx5ICJpbmNsdWRlIgoJCQkJCQkgICAg ICAoc3RyaW5nLWFwcGVuZCBvdXQgIi9pbmNsdWRlIikpCgkJCQkgICAgKHN5bWxpbmsgKHN0cmlu Zy1hcHBlbmQgb3V0ICIvbGliL2xpYmFyZ29uMi5zby4wIikKCQkJCSAgICAJICAgICAoc3RyaW5n LWFwcGVuZCBvdXQgIi9saWIvbGliYXJnb24yLnNvIikpKSkpKSkpCiAgICAgKGhvbWUtcGFnZSAi aHR0cHM6Ly93d3cuYXJnb24yLmNvbS8iKQogICAgIChzeW5vcHNpcyAiUGFzc3dvcmQgaGFzaGlu ZyBsaWJyYXJ5IikKICAgICAoZGVzY3JpcHRpb24gIkFyZ29uMiBwcm92aWRlcyBhIGtleSBkZXJp dmF0aW9uIGZ1bmN0aW9uIHRoYXQgd2FzIGRlY2xhcmVkCndpbm5lciBvZiB0aGUgMjAxNSBQYXNz d29yZCBIYXNoaW5nIENvbXBldGl0aW9uLiIpCiAgICAgKGxpY2Vuc2UgbGljZW5zZTpjYzApKSkp CgooZGVmaW5lLXB1YmxpYyBtc2dwYWNrLWMrKy0xMQogIChwYWNrYWdlCiAgIChpbmhlcml0IG1z Z3BhY2spCiAgIChuYW1lICJtc2dwYWNrLWMrKy0xMSIpCiAgIChhcmd1bWVudHMKICAgIChzdWJz dGl0dXRlLWtleXdvcmQtYXJndW1lbnRzIChwYWNrYWdlLWFyZ3VtZW50cyBtc2dwYWNrKQoJCQkJ ICAoKCM6bWFrZS1mbGFncyBtc2dwYWNrLW1ha2UtZmxhZ3MpCgkJCQkgICBgKGFwcGVuZCAsbXNn cGFjay1tYWtlLWZsYWdzCgkJCQkJICAgICcoIi1ETVNHUEFDS19DWFgxMT1PTiIpKSkpKSkpCgo7 OzsgQmFzZWQgb24KOzs7IDxodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZ3VpeC1k ZXZlbC8yMDE2LTA5L21zZzAxOTM4Lmh0bWw+LgooZGVmaW5lLXB1YmxpYyBvcGVuZGh0CiAgKGxl dCAoKHJlbGVhc2UgIjEuMy4zIikKCShyZXZpc2lvbiA1KSkKICAgIChwYWNrYWdlCiAgICAgKG5h bWUgIm9wZW5kaHQiKSAKICAgICAodmVyc2lvbiAoaWYgKHplcm8/IHJldmlzaW9uKQogICAgIAkJ ICByZWxlYXNlCiAgICAgCQkgIChzdHJpbmctYXBwZW5kIHJlbGVhc2UgIi0iCiAgICAgCQkJCSAo bnVtYmVyLT5zdHJpbmcgcmV2aXNpb24pKSkpCiAgICAgKHNvdXJjZSAob3JpZ2luCgkgICAgICAo bWV0aG9kIHVybC1mZXRjaCkKCSAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vZ2l0 aHViLmNvbS9zYXZvaXJmYWlyZWxpbnV4LyIgbmFtZQoJCQkJICAiL2FyY2hpdmUvIiByZWxlYXNl ICIudGFyLmd6IikpCgkgICAgICAoZmlsZS1uYW1lIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZl cnNpb24gIi50YXIuZ3oiKSkKCSAgICAgIChzaGEyNTYKCSAgICAgICAoYmFzZTMyCgkJIjA3Yzhw ajN3ZDd2bXo1MDV3NTA4bmxjNHBzc3YzOGNhOXMxYXN2OHlkcTlxdnBwZDc4MGIiKSkpKQogICAg IChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKICAgICAoaW5wdXRzCiAgICAgIGAoKCJn bnV0bHMiICxnbnV0bHMpCgkoIm5ldHRsZSIgLG5ldHRsZSkKCSgicmVhZGxpbmUiICxyZWFkbGlu ZSkpKQogICAgIChwcm9wYWdhdGVkLWlucHV0cwogICAgICBgKCgiYXJnb24yIiAsYXJnb24yKQoJ KCJtc2dwYWNrIiAsbXNncGFjaykpKSA7IGluY2x1ZGVkIGluIHNldmVyYWwgaW5zdGFsbGVkIGhl YWRlcnMKICAgICAobmF0aXZlLWlucHV0cwogICAgICBgKCgiYXV0b2NvbmYiICxhdXRvY29uZikK CSgicGtnLWNvbmZpZyIgLHBrZy1jb25maWcpCgkoImF1dG9tYWtlIiAsYXV0b21ha2UpCgkoImxp YnRvb2wiICxsaWJ0b29sKSkpCiAgICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y29uZmlndXJlLWZs YWdzICcoIi0td2l0aC1hcmdvbjIiKQoJIzpwaGFzZXMgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJk LXBoYXNlcwoJCQkJKGFkZC1iZWZvcmUgJ2NvbmZpZ3VyZSAnYXV0b2NvbmYKCQkJCQkgICAgKGxh bWJkYSBfCgkJCQkJICAgICAgKHplcm8/CgkJCQkJICAgICAgIChzeXN0ZW0qICJhdXRvcmVjb25m IiAiLXZmaSIpKSkpKSkpCiAgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3Nhdm9p cmZhaXJlbGludXgvb3BlbmRodC8iKQogICAgIChzeW5vcHNpcyAiRGlzdHJpYnV0ZWQgSGFzaCBU YWJsZSAoREhUKSBsaWJyYXJ5IikKICAgICAoZGVzY3JpcHRpb24gIk9wZW5ESFQgaXMgYSBEaXN0 cmlidXRlZCBIYXNoIFRhYmxlIChESFQpIGxpYnJhcnkuICBJdCBtYXkKYmUgdXNlZCB0byBtYW5h Z2UgcGVlci10by1wZWVyIG5ldHdvcmsgY29ubmVjdGlvbnMgYXMgbmVlZGVkIGZvciByZWFsIHRp bWUKY29tbXVuaWNhdGlvbi4iKQogICAgIDs7IE5FVyBJdCdzIHVuZGVyIEdOVSBHUEwzKy4KICAg ICAobGljZW5zZSBsaWNlbnNlOmdwbDMrKSkpKQoKKGRlZmluZS1wdWJsaWMgb3BlbmRodC13aXRo LW1zZ3BhY2stYysrLTExCiAgKHBhY2thZ2UKICAgKGluaGVyaXQgb3BlbmRodCkKICAgKG5hbWUg Im9wZW5kaHQtd2l0aC1tc2dwYWNrLWMrKy0xMSIpCiAgIChwcm9wYWdhdGVkLWlucHV0cwogICAg YCgoIm1zZ3BhY2stYysrLTExIiAsbXNncGFjay1jKystMTEpCiAgICAgICxAKGFsaXN0LWRlbGV0 ZSAibXNncGFjayIgKHBhY2thZ2UtcHJvcGFnYXRlZC1pbnB1dHMgb3BlbmRodCkpKSkpKQoKOzs7 IEZyb20KOzs7IDxodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZ3VpeC1kZXZlbC8y MDE3LTAxL21zZzAxMjE2Lmh0bWw+Lgo7OzsgTm90IGluY2x1ZGluZwo7OzsgPGh0dHA6Ly9saXN0 cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ndWl4LWRldmVsLzIwMTctMDEvbXNnMDEzOTIuaHRtbD4u Cjs7OyBXaGVuIHByZWFyaW5nIHBhdGNoZXMsIG11c3QgaW5jbHVkZSB0aGlzIGF0dHJpYnV0aW9u LgooZGVmaW5lLXB1YmxpYyBjcnlwdG8rKwogIChsZXQgKChyZWxlYXNlICI1LjYuNSIpCgkocmV2 aXNpb24gMSkpCiAgICAocGFja2FnZQogICAgIChuYW1lICJjcnlwdG8rKyIpCiAgICAgKHZlcnNp b24gKGlmICh6ZXJvPyByZXZpc2lvbikKICAgICAJCSAgcmVsZWFzZQogICAgIAkJICAoc3RyaW5n LWFwcGVuZCByZWxlYXNlICItIgogICAgIAkJCQkgKG51bWJlci0+c3RyaW5nIHJldmlzaW9uKSkp KQogICAgIChzb3VyY2UgKG9yaWdpbgoJICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCgkgICAgICAo dXJpIChsZXQgKChudW1lcmljLXZlcnNpb24KCQkJICAobWF0Y2ggKHN0cmluZy1zcGxpdCByZWxl YXNlICNcLikKCQkJCSAoKGZpcnN0LWRpZ2l0IG90aGVyLWRpZ2l0cyAuLi4pCgkJCQkgIChzdHJp bmctYXBwZW5kIGZpcnN0LWRpZ2l0CgkJCQkJCSAoc3RyaW5nLWNvbmNhdGVuYXRlCgkJCQkJCSAg b3RoZXItZGlnaXRzKSkpKSkpCgkJICAgICAoc3RyaW5nLWFwcGVuZCAiaHR0cHM6Ly9jcnlwdG9w cC5jb20vY3J5cHRvcHAiCgkJCQkgICAgbnVtZXJpYy12ZXJzaW9uICIuemlwIikpKQoJICAgICAg KHNoYTI1NgoJICAgICAgIChiYXNlMzIKCQkiMGQxY3FkejM2OWl2aTA4Mms1OTAyNXd2eHp5d3Zr aXp3N2kwcGY1aDBhMWl6czNnOHBtNyIpKSkpCiAgICAgKGJ1aWxkLXN5c3RlbSBnbnUtYnVpbGQt c3lzdGVtKQogICAgIChhcmd1bWVudHMKICAgICAgYCgjOm1ha2UtZmxhZ3MKCWAoLChzdHJpbmct YXBwZW5kICJQUkVGSVg9IiAoYXNzb2MtcmVmICVvdXRwdXRzICJvdXQiKSkKCSAgLChzdHJpbmct YXBwZW5kICJCSU5ESVI9IiAoYXNzb2MtcmVmICVvdXRwdXRzICJiaW4iKSAiL2JpbiIpCgkgICwo c3RyaW5nLWFwcGVuZCAiREFUQURJUj0iIChhc3NvYy1yZWYgJW91dHB1dHMgImRvYyIpICIvc2hh cmUiKQoJICAiRElTQUJMRV9DWFhGTEFHU19PUFRJTUlaQVRJT05TPTEiCgkgIDs7IE92ZXJyaWRl ICIvc2Jpbi9sZGNvbmZpZyIgd2l0aCBzaW1wbHkgImVjaG8iIHNpbmNlCgkgIDs7IHdlIGRvbid0 IG5lZWQgbGRjb25maWcoOCkuCgkgICJMRENPTkY9ZWNobyIpCgkjOnBoYXNlcwoJKG1vZGlmeS1w aGFzZXMgJXN0YW5kYXJkLXBoYXNlcwoJCSAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgJ2VudGVy LXNvdXJjZQoJCQkJICA7OyBUaGV5IGhhdmUgbWFkZSBhIHppcC1ib21iLgoJCQkJICAobGFtYmRh IF8gKGNoZGlyICIuLiIpICN0KSkKCQkgICAgICAgKGFkZC1hZnRlciAnZW50ZXItc291cmNlICdk aXNhYmxlLW9wdGltaXphdGlvbnMKCQkJCSAgKGxhbWJkYSBfCgkJCQkgICAgOzsgWFhYOiBUaGUg ZGlzYWJsZSBvcHRpbWl6YXRpb25zCgkJCQkgICAgOzsgZmxhZyBhYm92ZSBpcyBub3QgcmVjb2du aXplZCBpbgoJCQkJICAgIDs7IHRoZSBjdXJyZW50IHZlcnNpb24uIFNlZQoJCQkJICAgIDs7IGh0 dHBzOi8vZ2l0aHViLmNvbS93ZWlkYWkxMS9jcnlwdG9wcC9wdWxsLzM1NC4KCQkJCSAgICA7OyBG b3Igbm93LCBqdXN0IHJlbW92ZSBpdCB0aGUgZGlydHkKCQkJCSAgICA7OyB3YXkuCgkJCQkgICAg KHN1YnN0aXR1dGUqICJHTlVtYWtlZmlsZSIKCQkJCQkJICgoIi1tYXJjaD1uYXRpdmUiKSAiIikp CgkJCQkgICAgI3QpKQoJCSAgICAgICAoZGVsZXRlICdjb25maWd1cmUpCgkJICAgICAgIChhZGQt YWZ0ZXIgJ2J1aWxkICdidWlsZC1zaGFyZWQKCQkJCSAgKGxhbWJkYSBfCgkJCQkgICAgOzsgQnkg ZGVmYXVsdCwgb25seSB0aGUgc3RhdGljCgkJCQkgICAgOzsgbGlicmFyeSBpcyBidWlsdC4KCQkJ CSAgICAoemVybz8KCQkJCSAgICAgKHN5c3RlbSogIm1ha2UiICJzaGFyZWQiKSkpKQoJCSAgICAg ICAoYWRkLWFmdGVyICdpbnN0YWxsICdtb3ZlLXN0YXRpYy1saWJyYXJ5CgkJCQkgIChsYW1iZGEq ICgjOmtleSBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykKCQkJCQkgICAobGV0KiAoKG91dCAo YXNzb2MtcmVmIG91dHB1dHMgIm91dCIpKQoJCQkJCQkgIChsaWIgKHN0cmluZy1hcHBlbmQgb3V0 ICIvbGliIikpCgkJCQkJCSAgKHN0YXRpYyAoYXNzb2MtcmVmIG91dHB1dHMgInN0YXRpYyIpKQoJ CQkJCQkgIChzbGliIChzdHJpbmctYXBwZW5kIHN0YXRpYyAiL2xpYiIpKSkKCQkJCQkgICAgICht a2Rpci1wIHNsaWIpCgkJCQkJICAgICAoZm9yLWVhY2ggKGxhbWJkYSAoZmlsZSkKCQkJCQkJCSAo aW5zdGFsbC1maWxlIGZpbGUgc2xpYikKCQkJCQkJCSAoZGVsZXRlLWZpbGUgZmlsZSkpCgkJCQkJ CSAgICAgICAoZmluZC1maWxlcyBsaWIgIlxcLmw/YSQiKSkKCQkJCQkgICAgICN0KSkpCgkJICAg ICAgIChhZGQtYWZ0ZXIgJ21vdmUtc3RhdGljLWxpYnJhcnkgJ2FkZC1zby12ZXJzaW9uLXN5bWxp bmsKCQkJCSAgOzsgVGhlIGxpYnJhcnkgaXMgbmFtZWQKCQkJCSAgOzsgTUFKT1IuTUlOT1IuUEFU Q0hMRVZFTC4gU29tZQoJCQkJICA7OyBwcm9ncmFtcyBleHBlY3QgYSBNQUpPUi5NSU5PUgoJCQkJ ICA7OyBzeW1saW5rLgoJCQkJICAobGFtYmRhKiAoIzprZXkgb3V0cHV0cyAjOmFsbG93LW90aGVy LWtleXMpCgkJCQkJICAgKGxldCAoKG91dCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpKQoJCQkJ CQkgKG1ham9yK21pbm9yICwodmVyc2lvbi1tYWpvcittaW5vciByZWxlYXNlKSkpCgkJCQkJICAg ICAod2l0aC1kaXJlY3RvcnktZXhjdXJzaW9uIChzdHJpbmctYXBwZW5kIG91dCAiL2xpYiIpCgkJ CQkJCQkJICAgICAgIChzeW1saW5rIChzdHJpbmctYXBwZW5kICJsaWJjcnlwdG9wcC5zby4iICxy ZWxlYXNlKQoJCQkJCQkJCQkJKHN0cmluZy1hcHBlbmQgImxpYmNyeXB0b3BwLnNvLiIgbWFqb3Ir bWlub3IpKQoJCQkJCQkJCSAgICAgICAjdCkpKSkpKSkKICAgICAob3V0cHV0cwogICAgICAnKCJv dXQiIDsgNi40TSBzaGFyZWQgbGlicmFyeSBhbmQgaGVhZGVycwoJImJpbiIgOyA2LjNNIGNyeXB0 ZXN0LmV4ZQoJImRvYyIgOyA2LjRNIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzCgkic3RhdGlj IikpIDsgMTVNIHN0YXRpYyBsaWJyYXJ5CiAgICAgKG5hdGl2ZS1pbnB1dHMKICAgICAgYCgoInVu emlwIiAsdW56aXApKSkKICAgICAoc3lub3BzaXMgIkMrKyBjbGFzcyBsaWJyYXJ5IG9mIGNyeXB0 b2dyYXBoaWMgc2NoZW1lcyIpCiAgICAgKGRlc2NyaXB0aW9uICJDcnlwdG8rKyBpcyBhIGxhcmdl IGNvbGxlY3Rpb24gb2YgY3J5cHRvZ3JhaGljCmFsZ29yaXRobXMgYW5kIHJlbGF0ZWQgdXRpbGl0 aWVzIGZvciBDKysuIikKICAgICAoaG9tZS1wYWdlICJodHRwczovL2NyeXB0b3BwLmNvbSIpCiAg ICAgOzsgVGhlIGNvbXBpbGF0aW9uIGlzIGxpY2Vuc2VkIHVuZGVyIEJvb3N0IDEuMCwgd2hpbGUK ICAgICA7OyBtb3N0IGluZGl2aWR1YWwgZmlsZXMgYXJlIGluIHRoZSBwdWJsaWMgZG9tYWluLgog ICAgIDs7IFNob3VsZCB3ZSBhZGQgdHdvIGxpY2Vuc2VzPwogICAgIChsaWNlbnNlICcobGljZW5z ZTpib29zdDEuMAoJCWxpY2Vuc2U6cHVibGljLWRvbWFpbikpKSkpCgooZGVmaW5lLXB1YmxpYyBr YXNobWlyCiAgKGxldCAoKHJlbGVhc2UgIjAiKQoJKGNvbW1pdCAiMmYzOTEzZjQ5YzRhYzdmOWJm ZjkyMjRkYjUxNzhmNmY4ZjBmZjNlZSIpCgkocmV2aXNpb24gMSkpCiAgICAocGFja2FnZQogICAg IChuYW1lICJrYXNobWlyIikKICAgICAodmVyc2lvbiAoaWYgKHplcm8/IHJldmlzaW9uKQogICAg IAkJICByZWxlYXNlCiAgICAgCQkgIChzdHJpbmctYXBwZW5kIHJlbGVhc2UgIi0iCiAgICAgCQkJ CSAobnVtYmVyLT5zdHJpbmcgcmV2aXNpb24pCiAgICAgCQkJCSAiLiIgKHN0cmluZy10YWtlIGNv bW1pdCA3KSkpKQogICAgIChzb3VyY2UgKG9yaWdpbgoJICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gp CgkgICAgICAodXJpIChzdHJpbmctYXBwZW5kICJodHRwczovL2dpdGh1Yi5jb20vQ29ydnVzb2Z0 LyIgbmFtZQoJCQkJICAiLWRlcGVuZGVuY3kvYXJjaGl2ZS8iIGNvbW1pdCAiLnRhci5neiIpKQoJ ICAgICAgKGZpbGUtbmFtZSAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIudGFyLmd6 IikpCgkgICAgICAoc2hhMjU2CgkgICAgICAgKGJhc2UzMgoJCSIxMWhiaDNkN3c3NGduZzlxZ3oz aGRyenZ4amdpbDFweW1rMmJ6eHYxYWpoOXZwNjB4eHM5IikpKSkKICAgICAoYnVpbGQtc3lzdGVt IHRyaXZpYWwtYnVpbGQtc3lzdGVtKQogICAgIChhcmd1bWVudHMKICAgICAgYCgjOm1vZHVsZXMg KChndWl4IGJ1aWxkIHV0aWxzKSkKCSM6YnVpbGRlcgoJKGJlZ2luCgkgICh1c2UtbW9kdWxlcyAo Z3VpeCBidWlsZCB1dGlscykpCgkgIChsZXQgKChnemlwIChhc3NvYy1yZWYgJWJ1aWxkLWlucHV0 cyAiZ3ppcCIpKQoJCShzb3VyY2UgKGFzc29jLXJlZiAlYnVpbGQtaW5wdXRzICJzb3VyY2UiKSkK CQkodGFyIChhc3NvYy1yZWYgJWJ1aWxkLWlucHV0cyAidGFyIikpKQoJICAgIChzZXRlbnYgIlBB VEgiIChzdHJpbmctYXBwZW5kIGd6aXAgIi9iaW46IgoJCQkJCSAgdGFyICIvYmluIikpCgkgICAg KG1rZGlyLXAgJW91dHB1dCkKCSAgICAoc3lzdGVtKiAidGFyIiAiLXh2ZiIgc291cmNlICItQyIg JW91dHB1dCkKCSAgICAoY2hkaXIgJW91dHB1dCkKCSAgICAoZm9yLWVhY2ggKGxhbWJkYSAoZmls ZSkKCQkJKHJlbmFtZS1maWxlIGZpbGUgImthc2htaXItZGVwZW5kZW5jeSIpKQoJCSAgICAgIChm aW5kLWZpbGVzICIuIiAia2FzaG1pci1kZXBlbmRlbmN5LSIgIzpkaXJlY3Rvcmllcz8gI3QpKSkp KSkKICAgICAobmF0aXZlLWlucHV0cwogICAgICBgKCgic291cmNlIiAsc291cmNlKQoJKCJ0YXIi ICx0YXIpCgkoImd6aXAiICxnemlwKSkpCiAgICAgKHN5bm9wc2lzICJDKysgbGlicmFyeSBwcm92 aWRpbmcgZXh0cmEgZnVuY3Rpb25hbGl0eSBmb3IgcHJvamVjdHMiKQogICAgIChkZXNjcmlwdGlv biAiVGhlIEthc2htaXIgTGlicmFyeSBpcyBpbnRlbmRlZCB0byBwcm92aWRlCmZ1bmN0aW9uYWxp dHkgbmVlZGVkIGluIG1hbnkgc29mdHdhcmUgcHJvamVjdHMsIGJ1dCBub3QgcHJlc2VudCBpbiB0 aGUKQysrIHN0YW5kYXJkIGxpYnJhcnkuIikKICAgICAoaG9tZS1wYWdlICJ0cHM6Ly9naXRodWIu Y29tL2NvcnZ1c29mdC9rYXNobWlyLWRlcGVuZGVuY3kiKQogICAgIChsaWNlbnNlIGxpY2Vuc2U6 Ym9vc3QxLjApKSkpCg== --=-=-=--