From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/91124 Path: news.gmane.org!not-for-mail From: Hans Hagen Newsgroups: gmane.comp.tex.context Subject: Re: A macro which gives a random name Date: Sun, 19 Apr 2015 11:55:26 +0200 Message-ID: <55337B8E.7070804@wxs.nl> References: <6DC048B9-D53F-46B3-973D-C25FD93D3C27@gmail.com> <088338A7-A713-415A-9DF5-26804CDA9C7F@gmail.com> <5532C044.4000008@wxs.nl> <978C7BA8-CB59-4958-80EF-84C2B4EAB344@gmail.com> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 X-Trace: ger.gmane.org 1429437383 14949 80.91.229.3 (19 Apr 2015 09:56:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 19 Apr 2015 09:56:23 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Sun Apr 19 11:56:09 2015 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([5.39.185.229]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YjlxR-0003rK-82 for gctc-ntg-context-518@m.gmane.org; Sun, 19 Apr 2015 11:56:09 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 65A9910224 for ; Sun, 19 Apr 2015 11:56:08 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id IK85mJu1J7Aj for ; Sun, 19 Apr 2015 11:56:07 +0200 (CEST) Original-Received: from balder.ntg.nl (localhost [IPv6:::1]) by balder.ntg.nl (Postfix) with ESMTP id 4DC6A10230 for ; Sun, 19 Apr 2015 11:55:35 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 91E1B101FA for ; Sun, 19 Apr 2015 11:55:31 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id W9J4VzXjqXIh for ; Sun, 19 Apr 2015 11:55:30 +0200 (CEST) Original-Received: from filter1-utr.mf.surf.net (filter1-utr.mf.surf.net [195.169.124.152]) by balder.ntg.nl (Postfix) with ESMTP id 06863101EA for ; Sun, 19 Apr 2015 11:55:29 +0200 (CEST) Original-Received: from smtp.ziggozakelijk.nl (D57D1DA2.static.ziggozakelijk.nl [213.125.29.162]) by filter1-utr.mf.surf.net (8.14.3/8.14.3/Debian-9.4) with ESMTP id t3J9tShO006088 for ; Sun, 19 Apr 2015 11:55:29 +0200 X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=10.100.1.103; Original-Received: from [10.100.1.103] (unverified [10.100.1.103]) by pragma-net.nl (SurgeMail 6.7c) with ESMTP id 279-1713362 for ; Sun, 19 Apr 2015 11:55:28 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 In-Reply-To: <978C7BA8-CB59-4958-80EF-84C2B4EAB344@gmail.com> X-Authenticated-User: hagen@controller-9 X-Bayes-Prob: 0.0001 (Score 0, tokens from: ntg-context@ntg.nl, base:default, @@RPTN) X-CanIt-Geo: ip=213.125.29.162; country=NL; region=Provincie Overijssel; city=Zwartsluis; latitude=52.6408; longitude=6.0694; http://maps.google.com/maps?q=52.6408,6.0694&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 07OhJTsxG - e99e40940fc3 - 20150419 (trained as not-spam) Received-SPF: none (filter1-utr.mf.surf.net: domain of pragma@wxs.nl does not designate permitted sender hosts) receiver=filter1-utr.mf.surf.net; client-ip=213.125.29.162; envelope-from=; helo=smtp.ziggozakelijk.nl; identity=mailfrom X-Scanned-By: CanIt (www . roaringpenguin . com) X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.16 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: "ntg-context" Xref: news.gmane.org gmane.comp.tex.context:91124 Archived-At: T24gNC8xOS8yMDE1IDk6NTEgQU0sIE90YXJlZCBLYXZpYW4gd3JvdGU6Cj4gSGkgSGFucywKPgo+ IE1hbnkgdGhhbmtzIGZvciB5b3VyIHdvbmRlcmZ1bCBjb2Rl4oCmCj4gSSBtb2RpZmllZCBhIGxp dHRsZSBiaXQgdGhlIG5hbWVzIHlvdSB1c2UgaW4geW91ciBjb2RlIHNvIHRoYXQgaXQgbWF5IGJl IHVzZWQgZm9yIG90aGVyIHB1cnBvc2VzIGFzIHdlbGwgKGZvciBpbnN0YW5jZSBpZiBvbmUgd2lz aGVzIHRvIHNlbGVjdCBhdCByYW5kb20gYSBjZXJ0YWluIG51bWJlciBvZiBleGVyY2lzZXMgZnJv bSBkaWZmZXJlbnQgc3Vic2V0cyBhbW9uZyBhIGh1Z2UgYSBkYXRhc2V0IG9mIHByb2JsZW1zKS4K PiBBZ2FpbiwgZm9yIG90aGVyIHBlb3BsZSdzIHBvc3NpYmxlIG5lZWRzLCBJIHB1dCB0aGUgbW9k aWZpZWQgY29kZSBiZWxvdyAoSSBkb27igJl0IGtub3cgaW4gd2hhdCBjYXRlZ29yeSBvbmUgbWln aHQgcHV0IHlvdXIgc29sdXRpb24gb24gdGhlIFdpa2kpLgo+Cj4gSWYgSSBtYXkgYXNrIHRocmVl IHF1ZXN0aW9ucyBpbiBvcmRlciB0byB1bmRlcnN0YW5kIGJldHRlciB5b3VyIGNvZGUsIEkgd291 bGQgbGlrZSB0byBrbm93Cj4KPiAxKSBXaHkgaXMgaXQgbmVjZXNzYXJ5IHRvIGhhdmUgdGhpcyBs aW5lIChwbGVhc2Ugc2VlIGJlbG93KQo+IAlsb2NhbCBMaXN0T2ZOYW1lcyA9IHsgIkciICwgIlcg wrsgfQo+IGluIHRoZSBsdWFjb2RlLiBJcyBpdCBvbmx5IGEgc29ydCBvZiBpbnRpdGlhbGlzYXRp b24/CgppIGp1c3Qgd2FudGVkIGEgc3RhcnRpbmcgcG9pbnQgKGFmdGVyIGFsbCB5b3UgcHV0IHRo ZW0gaW4gdGhlcmUpIGJ1dCB5b3UgCmNhbiBzdGFydCBvdXQKCmxvY2FsIExpc3RPZk5hbWVzID0g eyAidW5zZXQiIH0KCj4gMikgWW91IHVzZSBhIGJ1aWx0LWluIGZ1bmN0aW9uCj4gCXV0aWxpdGll cy5wYXJzZXJzLnNldHRpbmdzX3RvX2FycmF5KGxpc3QpCj4gaXMgaXQgYSBDb25UZVh0IGZ1bmN0 aW9uIGRlZmluZWQgc29tZXdoZXJlIGluIHRoZSBjb3JlLCBvciBhIEx1YSBmdW5jdGlvbj8KCm5v LCBvbmUgb2YgdGhlIGNvbnRleHQgb25lcyAoc2VlIGNsZCBtYW51YWwgZm9yIG1vcmUpIC4uLiBs b3RzIG9mIHN1Y2ggCmhlbHBlcnMKCj4gMykgQXNzdW1pbmcgb25lIGhhcyBhIGxpc3Qgb2YgbmFt ZXMgaW4gYSBmaWxlIG5hbWVzIChzYXkgaW4gYSBjb21tYSBzZXBhcmF0ZWQgZm9ybWF0KSBpbiBh IGZpbGUKPiAJbmFtZWQgbXktbGlzdC50ZXgKPiBob3cgaXMgaXQgcG9zc2libGUgdG8gdXNlIGl0 IGluIFxTZXRMaXN0T2ZGdW5jdGlvbk5hbWVzPyBVc2luZwo+IAlcU2V0TGlzdE9mRnVuY3Rpb25O YW1lc1tcaW5wdXQgbmFtZWQgbXktbGlzdC50ZXhdCj4gcmVzdWx0cyBpbiBhbiBlcnJvciBzaW5j ZSBcZGlyZWN0bHVhIGRvZXMgbm90IGFjY2VwdCBcaW5wdXQuCgpzb21ldGhpbmcKCnN0cmluZy5z dHJpcChpby5sb2FkZGF0YShyZXNvbHZlcnMuZmluZGZpbGUoImZvby50eHQiKSkpCgpvcgoKXGNs ZGxvYWRmaWxle2Zvby50eHR9CgoKPiBCZXN0IHJlZ2FyZHM6IE9LCj4gJSUlJSBiZWdpbiBjaG9v c2UtcmFuZG9tLW5hbWVzLnRleCBieSBIYW5zCj4gXHN0YXJ0bHVhY29kZQo+ICAgICBsb2NhbCBM aXN0T2ZOYW1lcyA9IHsgIkciICwgIlciIH0KPiAgICAgbG9jYWwgQ2hvc2VuTmFtZSAgPSBMaXN0 T2ZOYW1lc1sxXQo+Cj4gICAgIGZ1bmN0aW9uIGRvY3VtZW50LlNldExpc3RPZk5hbWVzKGxpc3Qp Cj4gICAgICAgICBMaXN0T2ZOYW1lcyA9IHV0aWxpdGllcy5wYXJzZXJzLnNldHRpbmdzX3RvX2Fy cmF5KGxpc3QpCj4gICAgIGVuZAo+ICAgICBmdW5jdGlvbiBkb2N1bWVudC5HZXRDaG9zZW5OYW1l KG5ldykKPiAgICAgICAgIGlmIG5ldyB0aGVuCj4gICAgICAgICAgICAgQ2hvc2VuTmFtZSA9IExp c3RPZk5hbWVzW21hdGgucmFuZG9tKDEsI0xpc3RPZk5hbWVzKV0KPiAgICAgICAgIGVuZAo+ICAg ICAgICAgY29udGV4dChDaG9zZW5OYW1lKQo+ICAgICBlbmQKPiBcc3RvcGx1YWNvZGUKPgo+IFxk ZWZcU2V0TGlzdE9mRnVuY3Rpb25OYW1lc1sjMV17XGN0eGx1YXtkb2N1bWVudC5TZXRMaXN0T2ZO YW1lcygiIzEiKX19Cj4gXGRlZlxOZXdGdW5jdGlvbk5hbWUgICAgIHtcY3R4bHVhe2RvY3VtZW50 LkdldENob3Nlbk5hbWUodHJ1ZSl9fQo+IFxkZWZcRnVuY3Rpb25OYW1lICAgICB7XGN0eGx1YXtk b2N1bWVudC5HZXRDaG9zZW5OYW1lKCl9fQo+Cj4gXFNldExpc3RPZkZ1bmN0aW9uTmFtZXNbYSxi LGMsZF0KPgo+IFxkb3JlY3Vyc2V7MTB9ewo+ICAgICBHaXZlIGFuIGV4YW1wbGUgb2YgYSBmdW5j dGlvbgo+ICAgICAgICAgJFxOZXdGdW5jdGlvbk5hbWUgOiB7XEJiYiBSfSBcbG9uZ3JpZ2h0YXJy b3cge1xCYmIgUn0kCj4gICAgIHdoaWNoIGhhcyBhIGRlcml2YXRpdmUgb25seSBhdCB0aGUgb3Jp Z2luLCBhbmQgc3VjaCB0aGF0Cj4gICAgICAgICAkXEZ1bmN0aW9uTmFtZSgwKSA9IDEkLgo+ICAg ICBccGFyIFxoYWlybGluZVxwYXIKPiB9Cj4KPiBcc3RvcHRleHQKPiAlJSUlIGVuZCBjaG9vc2Ut cmFuZG9tLW5hbWVzLnRleCBieSBIYW5zCj4KPgo+PiBPbiAxOCBBcHIgMjAxNSwgYXQgMjI6MzYs IEhhbnMgSGFnZW4gPHByYWdtYUB3eHMubmw+IHdyb3RlOgo+Pgo+PiBPbiA0LzE4LzIwMTUgMTA6 MjQgUE0sIE90YXJlZCBLYXZpYW4gd3JvdGU6Cj4+PiBIaSBhZ2FpbiBXb2xmZ2FuZywKPj4+Cj4+ PiBUaGFua3MgdG8geW91ciBoaW50LCBJIGNvdWxkIHNvbHZlIHRoZSBwcm9ibGVt4oCmCj4+PiBJ biBjYXNlIHNvbWVvbmUgZWxzZSB3b3VsZCBlbmNvdW50ZXIgYSBzaW1pbGFyIHByb2JsZW0gdG8g c29sdmUsIGJlbG93IGlzIGEgbWFjcm8gd2hpY2ggY2hvb3NlcyBhbiBlbGVtZW50IGZyb20gYSBs aXN0LCBpdCBjcmVhdGVzIGEgY29udHJvbCBzZXF1ZW5jZSAoQ1MpIGNvbnRhaW5pbmcgdGhhdCBl bGVtZW50IGFuZCBpdCBrZWVwcyB0aGUgQ1MgdW50aWwgdGhlIG5leHQgdGltZSB0aGUgbWFjcm8g aXMgaW52b2tlZCBhZ2FpbiB0byBjaG9vc2UgYW5vdGhlciBlbGVtZW50Lgo+Pj4KPj4+IFRoYW5r cyBhZ2FpbiBhbmQgYmVzdCByZWdhcmRzOiBPSwo+Pj4KPj4+ICUlJSUgYmVnaW4gY2hvb3NlLWVs ZW1lbnQudGV4Cj4+PiBcc2V0dXByYW5kb21pemVbMTk4OV0gJSBzZXQgYSBzZWVkCj4+Pgo+Pj4g XHN0YXJ0dGV4dAo+Pj4KPj4+ICUgaGVyZSBpcyBhIGxpc3QgZnJvbSB3aGljaCBhIG5hbWUgaXMg Y2hvc2VuCj4+PiBcc3RhcnRsdWFjb2RlCj4+PiAJTGlzdE9mTmFtZXMgPSB7J0YnLCAnRycsICd1 JywgJ3YnLCAnVyd9Cj4+PiBcc3RvcGx1YWNvZGUKPj4+Cj4+PiAlIHRoaXMgbWFjcm8gaGFzIHR3 byBhcmd1bWVudHM6Cj4+PiAlIHRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgY29udHJvbCBzZXF1 ZW5jZSBuYW1lIGF0dGFjaGVkIHRvIENob3NlbiwKPj4+ICUgdGhlIHNlY29uZCBhcmd1bWVudCBp cyB0aGUgbmFtZSBvZiB0aGUgbGlzdCBmcm9tIHdoaWNoIHNvbWV0aGluZyBpcyBjaG9zZW4KPj4+ IFxkZWZpbmVbMl1cUmFuZG9tQ2hvaWNleyUKPj4+IAlcc2V0ZXZhbHVle0Nob3NlbiMxfXtcY3R4 bHVheyUKPj4+IAkJbG9jYWwgbGlzdHNpemUgPSBcbGV0dGVyaGFzaCAjMiA7Cj4+PiAJCWxvY2Fs IExOYW1lID0gIzIgOwo+Pj4gCQl0ZXgucHJpbnQoTE5hbWVbbWF0aC5yYW5kb20oMSxsaXN0c2l6 ZSldKX19fQo+Pj4KPj4+IFxkb3JlY3Vyc2V7MTB9e1xSYW5kb21DaG9pY2V7RnVuY3Rpb259e0xp c3RPZk5hbWVzfSUKPj4+IEdpdmUgYW4gZXhhbXBsZSBvZiBhIGZ1bmN0aW9uICRcQ2hvc2VuRnVu Y3Rpb24gOiB7XEJiYiBSfSBcbG9uZ3JpZ2h0YXJyb3cge1xCYmIgUn0kIHdoaWNoIGhhcyBhIGRl cml2YXRpdmUgb25seSBhdCB0aGUgb3JpZ2luLCBhbmQgc3VjaCB0aGF0ICR7XENob3NlbkZ1bmN0 aW9ufScoMCkgPSAxJC5ccGFyIFxoYWlybGluZVxwYXJ9Cj4+Pgo+Pj4gXHN0b3B0ZXh0Cj4+PiAl JSUlIGVuZCBjaG9vc2UtZWxlbWVudC50ZXgKPj4KPj4gXHN0YXJ0dGV4dAo+Pgo+PiBcc3RhcnRs dWFjb2RlCj4+ICAgICBsb2NhbCBGdW5jdGlvbk5hbWVzID0geyAiRyIgLCAiVyIgfQo+PiAgICAg bG9jYWwgRnVuY3Rpb25OYW1lICA9IEZ1bmN0aW9uTmFtZXNbMV0KPj4KPj4gICAgIGZ1bmN0aW9u IGRvY3VtZW50LlNldEZ1bmN0aW9uTmFtZXMobGlzdCkKPj4gICAgICAgICBGdW5jdGlvbk5hbWVz ID0gdXRpbGl0aWVzLnBhcnNlcnMuc2V0dGluZ3NfdG9fYXJyYXkobGlzdCkKPj4gICAgIGVuZAo+ PiAgICAgZnVuY3Rpb24gZG9jdW1lbnQuR2V0RnVuY3Rpb25OYW1lKG5ldykKPj4gICAgICAgICBp ZiBuZXcgdGhlbgo+PiAgICAgICAgICAgICBGdW5jdGlvbk5hbWUgPSBGdW5jdGlvbk5hbWVzW21h dGgucmFuZG9tKDEsI0Z1bmN0aW9uTmFtZXMpXQo+PiAgICAgICAgIGVuZAo+PiAgICAgICAgIGNv bnRleHQoRnVuY3Rpb25OYW1lKQo+PiAgICAgZW5kCj4+IFxzdG9wbHVhY29kZQo+Pgo+PiBcZGVm XFNldEZ1bmN0aW9uTmFtZXNbIzFde1xjdHhsdWF7ZG9jdW1lbnQuU2V0RnVuY3Rpb25OYW1lcygi IzEiKX19Cj4+IFxkZWZcTmV3RnVuY3Rpb25OYW1lICAgICB7XGN0eGx1YXtkb2N1bWVudC5HZXRG dW5jdGlvbk5hbWUodHJ1ZSl9fQo+PiBcZGVmXEdldEZ1bmN0aW9uTmFtZSAgICAge1xjdHhsdWF7 ZG9jdW1lbnQuR2V0RnVuY3Rpb25OYW1lKCl9fQo+Pgo+PiBcU2V0RnVuY3Rpb25OYW1lc1thLGIs YyxkXQo+Pgo+PiBcZG9yZWN1cnNlezEwfXsKPj4gICAgIEdpdmUgYW4gZXhhbXBsZSBvZiBhIGZ1 bmN0aW9uCj4+ICAgICAgICAgJFxOZXdGdW5jdGlvbk5hbWUgOiB7XEJiYiBSfSBcbG9uZ3JpZ2h0 YXJyb3cge1xCYmIgUn0kCj4+ICAgICB3aGljaCBoYXMgYSBkZXJpdmF0aXZlIG9ubHkgYXQgdGhl IG9yaWdpbiwgYW5kIHN1Y2ggdGhhdAo+PiAgICAgICAgICRcR2V0RnVuY3Rpb25OYW1lKDApID0g MSQuCj4+ICAgICBccGFyIFxoYWlybGluZVxwYXIKPj4gfQo+Pgo+Pgo+PiBcc3RvcHRleHQKPj4K Pj4KPj4KPj4+PiBPbiAxOCBBcHIgMjAxNSwgYXQgMTk6MjMsIFdvbGZnYW5nIFNjaHVzdGVyIDxz Y2h1c3Rlci53b2xmZ2FuZ0BnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Cj4+Pj4KPj4+Pj4gQW0gMTgu MDQuMjAxNSB1bSAxODo1NSBzY2hyaWViIE90YXJlZCBLYXZpYW4gPG90YXJlZEBnbWFpbC5jb20+ Ogo+Pj4+Pgo+Pj4+PiBIaSBldmVyeW9uZSwKPj4+Pj4KPj4+Pj4gSW4gdGhlIGV4YW1wbGUgYmVs b3cgSSBkZWZpbmUgYSBtYWNybyB3aGljaCBjaG9vc2VzIGF0IHJhbmRvbSBhIG5hbWUgZnJvbSBh IGxpc3Qgb2YgbmFtZXMuIEJ1dCBJIHdvbmRlciB3aGV0aGVyIHRoaXMgY2FuIGJlIGRvbmUgaW4g YSBtb3JlIGNsZXZlciB3YXkgd2l0aG91dCB1c2luZyBhIG51bWVyaWNhbCBtYWNybyBjcmVhdGVk IHdpdGggbWF0aC5yYW5kb20gaW4gTHVhLiBUaGUgc2hvcnRjb21pbmcgb2YgdGhlIG1hY3JvIGJl bG93IGlzIHRoYXQgYmVmb3JlIGhhbmQgSSBtdXN0IGtub3cgdGhlIG5vbWJlciBvZiBlbGVtZW50 cyBpbiB0aGUgbGlzdCBvZiBuYW1lcyAoZm9yIGluc3RhbmNlIDUgaW4gdGhlIGV4YW1wbGUgYmVs b3cpLCB3aGlsZSBpdCBtYXkgaGFwcGVuIHRoYXQgSSBuZWVkIHRvIGNyZWF0ZSBhcyBtYW55IGFz IHJhbmRvbSBuYW1lcyB0aGF0IHRoZXJlIGFyZSBlbGVtZW50cyBpbiB0aGUgbGlzdCwgYnV0IHNv bWV0aW1lcyBJIGRvbuKAmXQga25vdyB3aGF0IGlzIHRoaXMgbnVtYmVyLgo+Pj4+Pgo+Pj4+PiBU aGFua3MgZm9yIGFueSBpbnNpZ2h0IGFuZCBoZWxwLgo+Pj4+PiBCZXN0IHJlZ2FyZHM6IE9LCj4+ Pj4+ICUlJSUgYmVnaW4gcmFuZG9tLW5hbWVzLnRleAo+Pj4+PiBcc2V0dXByYW5kb21pemVbMjAx NV0gJSBzZXQgYSBzZWVkCj4+Pj4+Cj4+Pj4+IFxzdGFydHRleHQKPj4+Pj4KPj4+Pj4gXHN0YXJ0 bHVhY29kZQo+Pj4+PiAJTmFtZSA9IHsnRicsICdHJywgJ3UnLCAndicsICdXJ30KPj4+Pj4gXHN0 b3BsdWFjb2RlCj4+Pj4+Cj4+Pj4+IFxkZWZpbmVbM11cUmFuZG9tTmFtZXslCj4+Pj4+IAlcc2V0 ZXZhbHVle05hbWVkIzF9e1xjdHhsdWF7dGV4LnByaW50KG1hdGgucmFuZG9tKCMyLCMzKSl9fX0K Pj4+Pj4gXGRlZmluZVxSYW5kb21GdW5jdGlvbk5hbWV7XGN0eGx1YXt0ZXgucHJpbnQoTmFtZVtc TmFtZWRGdW5jdGlvbk51bWJlcl0pfX0KPj4+Pj4KPj4+Pj4gXGRvcmVjdXJzZXsxMH17XFJhbmRv bU5hbWV7RnVuY3Rpb25OdW1iZXJ9ezF9ezV9JQo+Pj4+PiBHaXZlIGFuIGV4YW1wbGUgb2YgYSBm dW5jdGlvbiAkXFJhbmRvbUZ1bmN0aW9uTmFtZSA6IHtcQmJiIFJ9IFxsb25ncmlnaHRhcnJvdyB7 XEJiYiBSfSQgd2hpY2ggaGFzIGEgZGVyaXZhdGl2ZSBvbmx5IGF0IHRoZSBvcmlnaW4sIGFuZCBz dWNoIHRoYXQgJFxSYW5kb21GdW5jdGlvbk5hbWUoMCkgPSAxJC5ccGFyIFxoYWlybGluZVxwYXJ9 Cj4+Pj4+Cj4+Pj4+IFxzdG9wdGV4dAo+Pj4+PiAlJSUlIGJlZ2luIHJhbmRvbS1uYW1lcy50ZXgK Pj4+Pgo+Pj4+IFlvdSBjYW4gYWNjZXNzIHRoZSBzaXplIG9mIHlvdXIgTmFtZSB0YWJsZSB3aXRo ICNOYW1lIGJ1dCBoYXZlIHRvIHJlcGxhY2UgIyB3aXRoIFxsZXR0ZXJoYXNoIHdoZW4geW91IHVz ZSBpdCBpbiBhIFRlWCBjb21tYW5kIGJlY2F1c2UgIyBpcyBhbHJlYWR5IHRha2VuIGZvciB0aGUg VGVYIGFyZ3VtZW50cy4KPj4+Pgo+Pj4+IFxzdGFydHRleHQKPj4+Pgo+Pj4+IFxzdGFydGx1YWNv ZGUKPj4+PiAJTmFtZSA9IHsnRicsICdHJywgJ3UnLCAndicsICdXJ30KPj4+PiBcc3RvcGx1YWNv ZGUKPj4+Pgo+Pj4+IFxkZWZpbmVcUmFuZG9tRnVuY3Rpb25OYW1lCj4+Pj4gICB7XHN0YXJ0bHVh Cj4+Pj4gICAgbG9jYWwgbGlzdHNpemUgICAgPSBcbGV0dGVyaGFzaCBOYW1lIDsKPj4+PiAgICBs b2NhbCByYW5kb212YWx1ZSA9IG1hdGgucmFuZG9tKDEsbGlzdHNpemUpIDsKPj4+PiAgICBjb250 ZXh0KE5hbWVbcmFuZG9tdmFsdWVdKQo+Pj4+ICAgIFxzdG9wbHVhfQo+Pj4+Cj4+Pj4gXGRvcmVj dXJzZXsxMH17R2l2ZSBhbiBleGFtcGxlIG9mIGEgZnVuY3Rpb24gJFxSYW5kb21GdW5jdGlvbk5h bWUgOiB7XEJiYiBSfSBcbG9uZ3JpZ2h0YXJyb3cge1xCYmIgUn0kIHdoaWNoIGhhcyBhIGRlcml2 YXRpdmUgb25seSBhdCB0aGUgb3JpZ2luLCBhbmQgc3VjaCB0aGF0ICRcUmFuZG9tRnVuY3Rpb25O YW1lKDApID0gMSQuXHBhciBcaGFpcmxpbmVccGFyfQo+Pj4+Cj4+Pj4gXHN0b3B0ZXh0Cj4+Pj4K Pj4+PiBXb2xmZ2FuZwo+Pj4+Cj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+PiBJ ZiB5b3VyIHF1ZXN0aW9uIGlzIG9mIGludGVyZXN0IHRvIG90aGVycyBhcyB3ZWxsLCBwbGVhc2Ug YWRkIGFuIGVudHJ5IHRvIHRoZSBXaWtpIQo+Pj4+Cj4+Pj4gbWFpbGxpc3QgOiBudGctY29udGV4 dEBudGcubmwgLyBodHRwOi8vd3d3Lm50Zy5ubC9tYWlsbWFuL2xpc3RpbmZvL250Zy1jb250ZXh0 Cj4+Pj4gd2VicGFnZSAgOiBodHRwOi8vd3d3LnByYWdtYS1hZGUubmwgLyBodHRwOi8vdGV4LmFh bmhldC5uZXQKPj4+PiBhcmNoaXZlICA6IGh0dHA6Ly9mb3VuZHJ5LnN1cGVsZWMuZnIvcHJvamVj dHMvY29udGV4dHJldi8KPj4+PiB3aWtpICAgICA6IGh0dHA6Ly9jb250ZXh0Z2FyZGVuLm5ldAo+ Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pgo+Pj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPj4+IElmIHlvdXIgcXVlc3Rpb24gaXMgb2YgaW50ZXJlc3QgdG8gb3RoZXJzIGFz IHdlbGwsIHBsZWFzZSBhZGQgYW4gZW50cnkgdG8gdGhlIFdpa2khCj4+Pgo+Pj4gbWFpbGxpc3Qg OiBudGctY29udGV4dEBudGcubmwgLyBodHRwOi8vd3d3Lm50Zy5ubC9tYWlsbWFuL2xpc3RpbmZv L250Zy1jb250ZXh0Cj4+PiB3ZWJwYWdlICA6IGh0dHA6Ly93d3cucHJhZ21hLWFkZS5ubCAvIGh0 dHA6Ly90ZXguYWFuaGV0Lm5ldAo+Pj4gYXJjaGl2ZSAgOiBodHRwOi8vZm91bmRyeS5zdXBlbGVj LmZyL3Byb2plY3RzL2NvbnRleHRyZXYvCj4+PiB3aWtpICAgICA6IGh0dHA6Ly9jb250ZXh0Z2Fy ZGVuLm5ldAo+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Cj4+Cj4+Cj4+IC0tCj4+ Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEhhbnMgSGFnZW4gfCBQUkFHTUEgQURFCj4+ICAgICAgICAgICAgICAgUmlkZGVyc3RyYWF0IDI3 IHwgODA2MSBHSCBIYXNzZWx0IHwgVGhlIE5ldGhlcmxhbmRzCj4+ICAgICB0ZWw6IDAzOCA0Nzcg NTMgNjkgfCB2b2lwOiAwODcgODc1IDY4IDc0IHwgd3d3LnByYWdtYS1hZGUuY29tCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgd3d3LnByYWdtYS1wb2Qu bmwKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gSWYgeW91ciBx dWVzdGlvbiBpcyBvZiBpbnRlcmVzdCB0byBvdGhlcnMgYXMgd2VsbCwgcGxlYXNlIGFkZCBhbiBl bnRyeSB0byB0aGUgV2lraSEKPj4KPj4gbWFpbGxpc3QgOiBudGctY29udGV4dEBudGcubmwgLyBo dHRwOi8vd3d3Lm50Zy5ubC9tYWlsbWFuL2xpc3RpbmZvL250Zy1jb250ZXh0Cj4+IHdlYnBhZ2Ug IDogaHR0cDovL3d3dy5wcmFnbWEtYWRlLm5sIC8gaHR0cDovL3RleC5hYW5oZXQubmV0Cj4+IGFy Y2hpdmUgIDogaHR0cDovL2ZvdW5kcnkuc3VwZWxlYy5mci9wcm9qZWN0cy9jb250ZXh0cmV2Lwo+ PiB3aWtpICAgICA6IGh0dHA6Ly9jb250ZXh0Z2FyZGVuLm5ldAo+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJZiB5b3VyIHF1ZXN0 aW9uIGlzIG9mIGludGVyZXN0IHRvIG90aGVycyBhcyB3ZWxsLCBwbGVhc2UgYWRkIGFuIGVudHJ5 IHRvIHRoZSBXaWtpIQo+Cj4gbWFpbGxpc3QgOiBudGctY29udGV4dEBudGcubmwgLyBodHRwOi8v d3d3Lm50Zy5ubC9tYWlsbWFuL2xpc3RpbmZvL250Zy1jb250ZXh0Cj4gd2VicGFnZSAgOiBodHRw Oi8vd3d3LnByYWdtYS1hZGUubmwgLyBodHRwOi8vdGV4LmFhbmhldC5uZXQKPiBhcmNoaXZlICA6 IGh0dHA6Ly9mb3VuZHJ5LnN1cGVsZWMuZnIvcHJvamVjdHMvY29udGV4dHJldi8KPiB3aWtpICAg ICA6IGh0dHA6Ly9jb250ZXh0Z2FyZGVuLm5ldAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4KCgotLSAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBIYW5zIEhhZ2VuIHwgUFJBR01BIEFERQogICAgICAgICAgICAgICBSaWRkZXJzdHJhYXQg MjcgfCA4MDYxIEdIIEhhc3NlbHQgfCBUaGUgTmV0aGVybGFuZHMKICAgICB0ZWw6IDAzOCA0Nzcg NTMgNjkgfCB2b2lwOiAwODcgODc1IDY4IDc0IHwgd3d3LnByYWdtYS1hZGUuY29tCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHd3dy5wcmFnbWEtcG9kLm5s Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklmIHlvdXIgcXVlc3Rpb24gaXMg b2YgaW50ZXJlc3QgdG8gb3RoZXJzIGFzIHdlbGwsIHBsZWFzZSBhZGQgYW4gZW50cnkgdG8gdGhl IFdpa2khCgptYWlsbGlzdCA6IG50Zy1jb250ZXh0QG50Zy5ubCAvIGh0dHA6Ly93d3cubnRnLm5s L21haWxtYW4vbGlzdGluZm8vbnRnLWNvbnRleHQKd2VicGFnZSAgOiBodHRwOi8vd3d3LnByYWdt YS1hZGUubmwgLyBodHRwOi8vdGV4LmFhbmhldC5uZXQKYXJjaGl2ZSAgOiBodHRwOi8vZm91bmRy eS5zdXBlbGVjLmZyL3Byb2plY3RzL2NvbnRleHRyZXYvCndpa2kgICAgIDogaHR0cDovL2NvbnRl eHRnYXJkZW4ubmV0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f