From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lennart Borgman Subject: Re: Re: Freemind conversion and Notes Date: Tue, 28 Sep 2010 00:38:23 +0200 Message-ID: References: <87sk1divdb.fsf@gmx.ch> <064091AB-C447-4955-9C54-4CDDC5C74EFD@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001636310673212dad0491456439 Return-path: Received: from [140.186.70.92] (port=33471 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1P0MLP-0003cW-W7 for emacs-orgmode@gnu.org; Mon, 27 Sep 2010 18:38:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1P0MLO-0002r2-Rx for emacs-orgmode@gnu.org; Mon, 27 Sep 2010 18:38:48 -0400 Received: from mail-qy0-f176.google.com ([209.85.216.176]:60135) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1P0MLO-0002qp-KD for emacs-orgmode@gnu.org; Mon, 27 Sep 2010 18:38:46 -0400 Received: by qyk36 with SMTP id 36so1496193qyk.0 for ; Mon, 27 Sep 2010 15:38:45 -0700 (PDT) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Carsten Dominik Cc: org-mode List , Charles Cave --001636310673212dad0491456439 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Thanks for the bug report. I have attached a new version of org-freemind.el (and a patch for it). Please test it and let me know what problems you find. On Tue, Sep 14, 2010 at 11:13 AM, Lennart Borgman wrote: > Thanks, I have noticed this and will look into it, but I have a lack > of time so I can't do it right now. But please send me an example. > > On Tue, Sep 14, 2010 at 9:29 AM, Carsten Dominik > wrote: >> >> On Sep 14, 2010, at 9:25 AM, Charles Cave wrote: >> >>>> org-freemind.el suggests that notes from a Freemind mindmap become >>>> converted to org by org-freemind-to-org-mode. However, all I get is th= e >>>> nodes and subnodes structure as orgmode's headings. My various notes >>>> (including many draft sentences of the article I'm about to write, so >>>> the most important thing) are ignored. >>> >>> Sven, >>> >>> I encountered this problem as well which makes the conversion quite >>> useless. I am not sure who owns the freemind package or who would >>> be willing to fix it up! >> >> Lennart Borgman wrote the org-freemind converter. =C2=A0May be you >> can talk him into looking into this problem? =C2=A0I am >> CCing him on this mail. >> >> Cheers >> >> - Carsten >> >> > --001636310673212dad0491456439 Content-Type: application/octet-stream; name="org-freemind.el" Content-Disposition: attachment; filename="org-freemind.el" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gelx46py0 Ozs7IG9yZy1mcmVlbWluZC5lbCAtLS0gRXhwb3J0IE9yZyBmaWxlcyB0byBmcmVlbWluZAoKOzsg Q29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgoK OzsgQXV0aG9yOiBMZW5uYXJ0IEJvcmdtYW4gKGxlbm5hcnQgTyBib3JnbWFuIEEgZ21haWwgTyBj b20pCjs7IEtleXdvcmRzOiBvdXRsaW5lcywgaHlwZXJtZWRpYSwgY2FsZW5kYXIsIHdwCjs7IEhv bWVwYWdlOiBodHRwOi8vb3JnbW9kZS5vcmcKOzsgVmVyc2lvbjogNi4zNWkKOzsKOzsgVGhpcyBm aWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgo7Owo7OyBHTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2Fy ZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo7OyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo7 OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBM aWNlbnNlLCBvcgo7OyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKOzsgR05V IEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Cjs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCjs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KCjs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCjs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKOzsgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KOzsgRmVh dHVyZXMgdGhhdCBtaWdodCBiZSByZXF1aXJlZCBieSB0aGlzIGxpYnJhcnk6Cjs7Cjs7IGBiYWNr cXVvdGUnLCBgYnl0ZWNvbXAnLCBgY2wnLCBgZWFzeW1lbnUnLCBgZm9udC1sb2NrJywKOzsgYG5v dXRsaW5lJywgYG9yZycsIGBvcmctY29tcGF0JywgYG9yZy1mYWNlcycsIGBvcmctZm9vdG5vdGUn LAo7OyBgb3JnLWxpc3QnLCBgb3JnLW1hY3MnLCBgb3JnLXNyYycsIGBvdXRsaW5lJywgYHN5bnRh eCcsCjs7IGB0aW1lLWRhdGUnLCBgeG1sJy4KOzsKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7Owo7OzsgQ29tbWVu dGFyeToKOzsKOzsgVGhpcyBmaWxlIHRyaWVzIHRvIGltcGxlbWVudCBzb21lIGZ1bmN0aW9ucyB1 c2VmdWwgZm9yCjs7IHRyYW5zZm9ybWF0aW9uIGJldHdlZW4gb3JnLW1vZGUgYW5kIEZyZWVNaW5k IGZpbGVzLgo7Owo7OyBIZXJlIGFyZSB0aGUgY29tbWFuZHMgeW91IGNhbiB1c2U6Cjs7Cjs7ICAg IE0teCBgb3JnLWZyZWVtaW5kLWZyb20tb3JnLW1vZGUnCjs7ICAgIE0teCBgb3JnLWZyZWVtaW5k LWZyb20tb3JnLW1vZGUtbm9kZScKOzsgICAgTS14IGBvcmctZnJlZW1pbmQtZnJvbS1vcmctc3Bh cnNlLXRyZWUnCjs7Cjs7ICAgIE0teCBgb3JnLWZyZWVtaW5kLXRvLW9yZy1tb2RlJwo7Owo7OyAg ICBNLXggYG9yZy1mcmVlbWluZC1zaG93Jwo7Owo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7Cjs7OyBDaGFuZ2Ug bG9nOgo7Owo7OyAyMDA5LTAyLTE1OiBBZGRlZCBjaGVjayBmb3IgbmV4dCBsZXZlbD1jdXJyZW50 KzEKOzsgMjAwOS0wMi0yMTogRml4ZWQgYnVnIGluIGBvcmctZnJlZW1pbmQtdG8tb3JnLW1vZGUn Lgo7OyAyMDA5LTEwLTI1OiBBZGRlZCBzdXBwb3J0IGZvciBgb3JnLW9kZC1sZXZlbHMtb25seScu Cjs7ICAgICAgICAgICAgIEFkZGVkIHkvbiBxdWVzdGlvbiBiZWZvcmUgc2hvd2luZyBpbiBGcmVl TWluZC4KOzsgMjAwOS0xMS0wNDogQWRkZWQgc3VwcG9ydCBmb3IgIytCRUdJTl9IVE1MLgo7Owo7 Owo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7Cjs7IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKOzsgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKOzsgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yCjs7IChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCjs7Cjs7IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo7OyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7OyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl IEdOVQo7OyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCjs7Cjs7IFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCjs7IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4g IElmIG5vdCwgd3JpdGUgdG8KOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aAo7OyBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAx LCBVU0EuCjs7Cjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKOzsKOzs7IENvZGU6CgoocmVxdWlyZSAneG1sKQoocmVx dWlyZSAnb3JnKQoocmVxdWlyZSAncngpCihyZXF1aXJlICdvcmctZXhwKQooZXZhbC13aGVuLWNv bXBpbGUgKHJlcXVpcmUgJ2NsKSkKCjs7IEZpeC1tZTogSSBhbSBub3Qgc3VyZSB0aGVzZSBhcmUg dXNlZnVsOgo7Owo7OyAoZGVmY3VzdG9tIG9yZy1mcmVlbWluZC1tYWluLWZnY29sb3IgImJsYWNr Igo7OyAgICJDb2xvciBvZiBtYWluIG5vZGUncyB0ZXh0LiIKOzsgICA6dHlwZSAnY29sb3IKOzsg ICA6Z3JvdXAgJ2ZyZWVtaW5kKQoKOzsgKGRlZmN1c3RvbSBvcmctZnJlZW1pbmQtbWFpbi1jb2xv ciAiYmxhY2siCjs7ICAgIkJhY2tncm91bmQgY29sb3Igb2YgbWFpbiBub2RlLiIKOzsgICA6dHlw ZSAnY29sb3IKOzsgICA6Z3JvdXAgJ2ZyZWVtaW5kKQoKOzsgKGRlZmN1c3RvbSBvcmctZnJlZW1p bmQtY2hpbGQtZmdjb2xvciAiYmxhY2siCjs7ICAgIkNvbG9yIG9mIGNoaWxkIG5vZGVzJyB0ZXh0 LiIKOzsgICA6dHlwZSAnY29sb3IKOzsgICA6Z3JvdXAgJ2ZyZWVtaW5kKQoKOzsgKGRlZmN1c3Rv bSBvcmctZnJlZW1pbmQtY2hpbGQtY29sb3IgImJsYWNrIgo7OyAgICJCYWNrZ3JvdW5kIGNvbG9y IG9mIGNoaWxkIG5vZGVzLiIKOzsgICA6dHlwZSAnY29sb3IKOzsgICA6Z3JvdXAgJ2ZyZWVtaW5k KQoKKGRlZnZhciBvcmctZnJlZW1pbmQtbm9kZS1zdHlsZSBuaWwgIkludGVybmFsIHVzZS4iKQoK KGRlZmN1c3RvbSBvcmctZnJlZW1pbmQtbm9kZS1zdHlsZXMgbmlsCiAgIlN0eWxlcyB0byBhcHBs eSB0byBub2RlLgpOT1QgUkVBRFkgWUVULiIKICA6dHlwZSAnKHJlcGVhdAogICAgICAgICAgKGxp c3QgOnRhZyAiTm9kZSBzdHlsZXMgZm9yIGZpbGUiCiAgICAgICAgICAgICAgICAocmVnZXhwIDp0 YWcgIkZpbGUgbmFtZSIpCiAgICAgICAgICAgICAgICAocmVwZWF0CiAgICAgICAgICAgICAgICAg KGxpc3QgOnRhZyAiTm9kZSIKICAgICAgICAgICAgICAgICAgICAgICAocmVnZXhwIDp0YWcgIk5v ZGUgbmFtZSByZWdleHAiKQogICAgICAgICAgICAgICAgICAgICAgIChzZXQgOnRhZyAiTm9kZSBw cm9wZXJ0aWVzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgOmZvcm1hdCAiJXYi IChjb25zdCA6Zm9ybWF0ICIiIG5vZGUtc3R5bGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoY2hvaWNlIDp0YWcgIlN0eWxlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6dmFsdWUgYnViYmxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjb25zdCBidWJibGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjb25zdCBmb3JrKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGlzdCA6Zm9ybWF0ICIldiIgKGNvbnN0IDpmb3JtYXQgIiIgY29sb3IpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoY29sb3IgOnRhZyAiQ29sb3IiIDp2YWx1ZSAicmVkIikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCA6Zm9ybWF0ICIldiIgKGNvbnN0IDpmb3Jt YXQgIiIgYmFja2dyb3VuZC1jb2xvcikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjb2xvciA6dGFnICJCYWNrZ3JvdW5kIGNvbG9yIiA6dmFsdWUgInllbGxvdyIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpc3QgOmZvcm1hdCAiJXYiIChjb25zdCA6Zm9ybWF0ICIi IGVkZ2UtY29sb3IpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29sb3IgOnRh ZyAiRWRnZSBjb2xvciIgOnZhbHVlICJncmVlbiIpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpc3QgOmZvcm1hdCAiJXYiIChjb25zdCA6Zm9ybWF0ICIiIGVkZ2Utc3R5bGUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hvaWNlIDp0YWcgIkVkZ2Ugc3R5bGUiIDp2 YWx1ZSBiZXppZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv bnN0IDp0YWcgIkxpbmVhciIgbGluZWFyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY29uc3QgOnRhZyAiQmV6aWVyIiBiZXppZXIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJTaGFycCBMaW5lYXIiIHNoYXJw LWxpbmVhcikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0 IDp0YWcgIlNoYXJwIEJlemllciIgc2hhcnAtYmV6aWVyKSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGlzdCA6Zm9ybWF0ICIldiIgKGNvbnN0IDpmb3JtYXQgIiIgZWRnZS13aWR0aCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaG9pY2UgOnRhZyAiRWRnZSB3aWR0 aCIgOnZhbHVlIHRoaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGNvbnN0IDp0YWcgIlBhcmVudCIgcGFyZW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiVGhpbiIgdGhpbikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IDEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChjb25zdCAyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoY29uc3QgNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0IDgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IDpm b3JtYXQgIiV2IiAoY29uc3QgOmZvcm1hdCAiIiBpdGFsaWMpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiSXRhbGljIGZvbnQiIHQpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpc3QgOmZvcm1hdCAiJXYiIChjb25zdCA6Zm9ybWF0ICIiIGJvbGQp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiQm9sZCBmb250 IiB0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IDpmb3JtYXQgIiV2IiAoY29u c3QgOmZvcm1hdCAiIiBmb250LW5hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc3RyaW5nIDp0YWcgIkZvbnQgbmFtZSIgOnZhbHVlICJTYW5zU2VyaWYiKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaXN0IDpmb3JtYXQgIiV2IiAoY29uc3QgOmZvcm1hdCAiIiBm b250LXNpemUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlciA6dGFn ICJGb250IHNpemUiIDp2YWx1ZSAxMikpKSkpKSkKICA6Z3JvdXAgJ2ZyZWVtaW5kKQoKOzs7IyMj YXV0b2xvYWQKKGRlZnVuIG9yZy1leHBvcnQtYXMtZnJlZW1pbmQgKCZvcHRpb25hbCBoaWRkZW4g ZXh0LXBsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8tYnVm ZmVyIGJvZHktb25seSBwdWItZGlyKQogICJFeHBvcnQgdGhlIGN1cnJlbnQgYnVmZmVyIGFzIGEg RnJlZW1pbmQgZmlsZS4KSWYgdGhlcmUgaXMgYW4gYWN0aXZlIHJlZ2lvbiwgZXhwb3J0IG9ubHkg dGhlIHJlZ2lvbi4gIEhJRERFTiBpcwpvYnNvbGV0ZSBhbmQgZG9lcyBub3RoaW5nLiAgRVhULVBM SVNUIGlzIGEgcHJvcGVydHkgbGlzdCB3aXRoCmV4dGVybmFsIHBhcmFtZXRlcnMgb3ZlcnJpZGlu ZyBvcmctbW9kZSdzIGRlZmF1bHQgc2V0dGluZ3MsIGJ1dApzdGlsbCBpbmZlcmlvciB0byBmaWxl LWxvY2FsIHNldHRpbmdzLiAgV2hlbiBUTy1CVUZGRVIgaXMKbm9uLW5pbCwgY3JlYXRlIGEgYnVm ZmVyIHdpdGggdGhhdCBuYW1lIGFuZCBleHBvcnQgdG8gdGhhdApidWZmZXIuICBJZiBUTy1CVUZG RVIgaXMgdGhlIHN5bWJvbCBgc3RyaW5nJywgZG9uJ3QgbGVhdmUgYW55CmJ1ZmZlciBiZWhpbmQg YnV0IGp1c3QgcmV0dXJuIHRoZSByZXN1bHRpbmcgSFRNTCBhcyBhIHN0cmluZy4KV2hlbiBCT0RZ LU9OTFkgaXMgc2V0LCBkb24ndCBwcm9kdWNlIHRoZSBmaWxlIGhlYWRlciBhbmQgZm9vdGVyLApz aW1wbHkgcmV0dXJuIHRoZSBjb250ZW50IG9mIHRoZSBkb2N1bWVudCAoYWxsIHRvcCBsZXZlbApz ZWN0aW9ucykuICBXaGVuIFBVQi1ESVIgaXMgc2V0LCB1c2UgdGhpcyBhcyB0aGUgcHVibGlzaGlu ZwpkaXJlY3RvcnkuCgpTZWUgYG9yZy1mcmVlbWluZC1mcm9tLW9yZy1tb2RlJyBmb3IgbW9yZSBp bmZvcm1hdGlvbi4iCiAgKGludGVyYWN0aXZlICJQIikKICAobGV0KiAoKG9wdC1wbGlzdCAob3Jn LWNvbWJpbmUtcGxpc3RzIChvcmctZGVmYXVsdC1leHBvcnQtcGxpc3QpCgkJCQkJZXh0LXBsaXN0 CgkJCQkJKG9yZy1pbmZpbGUtZXhwb3J0LXBsaXN0KSkpCgkgKHJlZ2lvbi1wIChvcmctcmVnaW9u LWFjdGl2ZS1wKSkKCSAocmJlZyAoYW5kIHJlZ2lvbi1wIChyZWdpb24tYmVnaW5uaW5nKSkpCgkg KHJlbmQgKGFuZCByZWdpb24tcCAocmVnaW9uLWVuZCkpKQoJIChzdWJ0cmVlLXAKCSAgKGlmIChw bGlzdC1nZXQgb3B0LXBsaXN0IDppZ25vcmUtc3VidHJlZS1wKQoJICAgICAgbmlsCgkgICAgKHdo ZW4gcmVnaW9uLXAKCSAgICAgIChzYXZlLWV4Y3Vyc2lvbgoJCShnb3RvLWNoYXIgcmJlZykKCQko YW5kIChvcmctYXQtaGVhZGluZy1wKQoJCSAgICAgKD49IChvcmctZW5kLW9mLXN1YnRyZWUgdCB0 KSByZW5kKSkpKSkpCgkgKG9wdC1wbGlzdCAoc2V0cSBvcmctZXhwb3J0LW9wdC1wbGlzdAoJCQkg IChpZiBzdWJ0cmVlLXAKCQkJICAgICAgKG9yZy1leHBvcnQtYWRkLXN1YnRyZWUtb3B0aW9ucyBv cHQtcGxpc3QgcmJlZykKCQkJICAgIG9wdC1wbGlzdCkpKQoJIChiZm5hbWUgKGJ1ZmZlci1maWxl LW5hbWUgKG9yIChidWZmZXItYmFzZS1idWZmZXIpIChjdXJyZW50LWJ1ZmZlcikpKSkKCSAoZmls ZW5hbWUgKGNvbmNhdCAoZmlsZS1uYW1lLWFzLWRpcmVjdG9yeQoJCQkgICAgKG9yIHB1Yi1kaXIK CQkJCShvcmctZXhwb3J0LWRpcmVjdG9yeSA6YXNjaWkgb3B0LXBsaXN0KSkpCgkJCSAgIChmaWxl LW5hbWUtc2Fucy1leHRlbnNpb24KCQkJICAgIChvciAoYW5kIHN1YnRyZWUtcAoJCQkJICAgICAo b3JnLWVudHJ5LWdldCAocmVnaW9uLWJlZ2lubmluZykKCQkJCQkJICAgICJFWFBPUlRfRklMRV9O QU1FIiB0KSkKCQkJCShmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IGJmbmFtZSkpKQoJCQkgICAiLm1t IikpKQogICAgKHdoZW4gKGZpbGUtZXhpc3RzLXAgZmlsZW5hbWUpCiAgICAgIChkZWxldGUtZmls ZSBmaWxlbmFtZSkpCiAgICAoY29uZAogICAgIChzdWJ0cmVlLXAKICAgICAgKG9yZy1mcmVlbWlu ZC1mcm9tLW9yZy1tb2RlLW5vZGUgKGxpbmUtbnVtYmVyLWF0LXBvcyByYmVnKQoJCQkJICAgICAg IGZpbGVuYW1lKSkKICAgICAodCAob3JnLWZyZWVtaW5kLWZyb20tb3JnLW1vZGUgYmZuYW1lIGZp bGVuYW1lKSkpKSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBvcmctZnJlZW1pbmQtc2hvdyAobW0t ZmlsZSkKICAiU2hvdyBmaWxlIE1NLUZJTEUgaW4gRnJlZW1pbmQuIgogIChpbnRlcmFjdGl2ZQog ICAobGlzdAogICAgKHNhdmUtbWF0Y2gtZGF0YQogICAgICAobGV0ICgobmFtZSAocmVhZC1maWxl LW5hbWUgIkZyZWVNaW5kIGZpbGU6ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5pbCBuaWwgbmlsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGJ1ZmZl ci1maWxlLW5hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCog KChuYW1lLWV4dCAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSAoYnVmZmVyLWZpbGUtbmFtZSkpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmFtZSAoZmlsZS1u YW1lLXNhbnMtZXh0ZW5zaW9uIG5hbWUtZXh0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGV4dCAoZmlsZS1uYW1lLWV4dGVuc2lvbiBuYW1lLWV4dCkpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZz0gIm1tIiBleHQpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUtZXh0KQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5nPSAib3JnIiBleHQpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChuYW1lLW1tIChjb25jYXQg bmFtZSAiLm1tIikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChpZiAoZmlsZS1leGlzdHMtcCBuYW1lLW1tKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuYW1lLW1tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobWVzc2FnZSAiTm90IGV4cG9ydGVkIHRvIEZyZWVtaW5kIGZvcm1h dCB5ZXQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIp KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIikpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7 IEZpeC1tZTogSXMgdGhpcyBhbiBFbWFjcyBidWc/CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7OyBUaGlzIHByZWRpY2F0ZSBmdW5jdGlvbiBpcyBuZXZlcgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOzsgY2FsbGVkLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxhbWJkYSAoZm4pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChzdHJpbmctbWF0Y2ggIl5tbSQiIChmaWxlLW5hbWUtZXh0ZW5zaW9uIGZuKSkpKSkpCiAgICAg ICAgKHNldHEgbmFtZSAoZXhwYW5kLWZpbGUtbmFtZSBuYW1lKSkKICAgICAgICBuYW1lKSkpKQog IChvcmctb3Blbi1maWxlIG1tLWZpbGUpKQoKKGRlZmNvbnN0IG9yZy1mcmVlbWluZC1vcmctbmZp eCAiLS1vcmctbW9kZTogIikKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Owo7OzsgRm9ybWF0IGNvbnZlcnRlcnMKCihkZWZ1biBvcmctZnJlZW1pbmQt ZXNjYXBlLXN0ci1mcm9tLW9yZyAob3JnLXN0cikKICAiRG8gc29tZSBodG1sLWVzY2FwaW5nIG9m IE9SRy1TVFIgYW5kIHJldHVybiB0aGUgcmVzdWx0LgpUaGUgY2hhcmFjdGVycyBcIiY8PiB3aWxs IGJlIGVzY2FwZWQuIgogIChsZXQgKChjaGFycyAoYXBwZW5kIG9yZy1zdHIgbmlsKSkKICAgICAg ICAoZm0tc3RyICIiKSkKICAgIChkb2xpc3QgKGNjIGNoYXJzKQogICAgICAoc2V0cSBmbS1zdHIK ICAgICAgICAgICAgKGNvbmNhdCBmbS1zdHIKICAgICAgICAgICAgICAgICAgICAoaWYgKDwgY2Mg MTYwKQogICAgICAgICAgICAgICAgICAgICAgICAoY29uZAogICAgICAgICAgICAgICAgICAgICAg ICAgKCg9IGNjID9cIikgIiZxdW90OyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAoKD0gY2Mg P1wmKSAiJmFtcDsiKQogICAgICAgICAgICAgICAgICAgICAgICAgKCg9IGNjID9cPCkgIiZsdDsi KQogICAgICAgICAgICAgICAgICAgICAgICAgKCg9IGNjID9cPikgIiZndDsiKQogICAgICAgICAg ICAgICAgICAgICAgICAgKHQgKGNoYXItdG8tc3RyaW5nIGNjKSkpCiAgICAgICAgICAgICAgICAg ICAgICA7OyBGb3JtYXR0aW5nIGFzICYjbnVtYmVyOyBpcyBtYXliZSBuZWVkZWQKICAgICAgICAg ICAgICAgICAgICAgIDs7IGFjY29yZGluZyB0byBhIGJ1ZyByZXBvcnQgZnJvbSBrYXp1bwogICAg ICAgICAgICAgICAgICAgICAgOzsgZnVqaW1vdG8sIGJ1dCBJIGhhdmUgbm93IGluc3RlYWQgYWRk ZWQgYSB4bWwKICAgICAgICAgICAgICAgICAgICAgIDs7IHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24g c2F5aW5nIHRoYXQgdGhlIG1tCiAgICAgICAgICAgICAgICAgICAgICA7OyBmaWxlIGlzIHV0Zi04 OgogICAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICAgIDs7IChmb3Jt YXQgIiYjeCV4OyIgKC0gY2MgOzsgP1x4ODAwKSkKCQkgICAgICAoZm9ybWF0ICImI3gleDsiIChl bmNvZGUtY2hhciBjYyAndWNzKSkKICAgICAgICAgICAgICAgICAgICAgICkpKSkKICAgIGZtLXN0 cikpCgo7OyhvcmctZnJlZW1pbmQtdW5lc2NhcGUtc3RyLXRvLW9yZyAiJiN4NmQ7QSYjeDIyNEM7 QiZsdDtDJiN4M0M7JiN4M0Q7IikKOzsob3JnLWZyZWVtaW5kLXVuZXNjYXBlLXN0ci10by1vcmcg IiYjeDNDOyZsdDsiKQooZGVmdW4gb3JnLWZyZWVtaW5kLXVuZXNjYXBlLXN0ci10by1vcmcgKGZt LXN0cikKICJEbyBzb21lIGh0bWwtdW5lc2NhcGluZyBvZiBGTS1TVFIgYW5kIHJldHVybiB0aGUg cmVzdWx0LgpUaGlzIGlzIHRoZSBvcHBvc2l0ZSBvZiBgb3JnLWZyZWVtaW5kLWVzY2FwZS1zdHIt ZnJvbS1vcmcnIGJ1dCBpdAp3aWxsIGFsc28gdW5lc2NhcGUgJiNubjsuIgogKGxldCAoKG9yZy1z dHIgZm0tc3RyKSkKICAgKHNldHEgb3JnLXN0ciAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICIm cXVvdDsiICJcIiIgb3JnLXN0cikpCiAgIChzZXRxIG9yZy1zdHIgKHJlcGxhY2UtcmVnZXhwLWlu LXN0cmluZyAiJmFtcDsiICImIiBvcmctc3RyKSkKICAgKHNldHEgb3JnLXN0ciAocmVwbGFjZS1y ZWdleHAtaW4tc3RyaW5nICImbHQ7IiAiPCIgb3JnLXN0cikpCiAgIChzZXRxIG9yZy1zdHIgKHJl cGxhY2UtcmVnZXhwLWluLXN0cmluZyAiJmd0OyIgIj4iIG9yZy1zdHIpKQogICAoc2V0cSBvcmct c3RyIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKICAgICAgICAgICAgICAgICAgIiYjeFxcKFth LWYwLTldXFx7Miw0XFx9XFwpOyIKICAgICAgICAgICAgICAgICAgKGxhbWJkYSAobSkKICAgICAg ICAgICAgICAgICAgICAoY2hhci10by1zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgKCsgKHN0 cmluZy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAxIG0pIDE2KQogICAgICAgICAgICAgICAgICAg ICAgICAwIDs/XHg4MDAgOzsgV2hhdCBpcyB0aGlzIGZvcj8gRW5jb2Rpbmc/CiAgICAgICAgICAg ICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgICAgICBvcmctc3RyKSkpKQoKOzsgKGxldCog KChzdHIxICJhIHF1b3RlOiBcIiwgYW4gYW1wOiAmLCBsdDogPDsgb3ZlciAyNTY6IPbl5NbFxCIp Cjs7ICAgICAgICAoc3RyMiAob3JnLWZyZWVtaW5kLWVzY2FwZS1zdHItZnJvbS1vcmcgc3RyMSkp Cjs7ICAgICAgICAoc3RyMyAob3JnLWZyZWVtaW5kLXVuZXNjYXBlLXN0ci10by1vcmcgc3RyMikp KQo7OyAgICAgKHVubGVzcyAoc3RyaW5nPSBzdHIxIHN0cjMpCjs7ICAgICAgIChlcnJvciAiRXJy b3Igc3RyMz0lcyIgc3RyMykpKQoKKGRlZnVuIG9yZy1mcmVlbWluZC1jb252ZXJ0LWxpbmtzLWhl bHBlciAobWF0Y2hlZCkKICAiSGVscGVyIGZvciBgb3JnLWZyZWVtaW5kLWNvbnZlcnQtbGlua3Mt ZnJvbS1vcmcnLgpNQVRDSEVEIGlzIHRoZSBsaW5rIGp1c3QgbWF0Y2hlZC4iCiAgKGxldCogKChs aW5rIChtYXRjaC1zdHJpbmcgMSBtYXRjaGVkKSkKICAgICAgICAgKHRleHQgKG1hdGNoLXN0cmlu ZyAyIG1hdGNoZWQpKQogICAgICAgICAoZXh0IChmaWxlLW5hbWUtZXh0ZW5zaW9uIGxpbmspKQog ICAgICAgICAoY29sLXBvcyAoc3RyaW5nLW1hdGNoLXAgIjoiIGxpbmspKQogICAgICAgICAoaXMt aW1nIChhbmQgKGltYWdlLXR5cGUtZnJvbS1maWxlLW5hbWUgbGluaykKICAgICAgICAgICAgICAg ICAgICAgIChsZXQgKCh1cmwtdHlwZSAoc3Vic3RyaW5nIGxpbmsgMCBjb2wtcG9zKSkpCiAgICAg ICAgICAgICAgICAgICAgICAgIChtZW1iZXIgdXJsLXR5cGUgJygiZmlsZSIgImh0dHAiICJodHRw cyIpKSkpKQogICAgICAgICApCiAgICAoaWYgaXMtaW1nCiAgICAgICAgOzsgRml4LW1lOiBJIGNh bid0IGZpbmQgYSB3YXkgdG8gZ2V0IHRoZSBib3JkZXIgdG8gInNocmluawogICAgICAgIDs7IHdy YXAiIGFyb3VuZCB0aGUgaW1hZ2UgdXNpbmcgPGRpdj4uCiAgICAgICAgOzsKICAgICAgICA7OyAo Y29uY2F0ICI8ZGl2IHN0eWxlPVwiYm9yZGVyOiBzb2xpZCAxcHggI2RkZDsgd2lkdGg6YXV0bztc Ij4iCiAgICAgICAgOzsgICAgICAgICAiPGltZyBzcmM9XCIiIGxpbmsgIlwiIGFsdD1cIiIgdGV4 dCAiXCIgLz4iCiAgICAgICAgOzsgICAgICAgICAiPGJyIC8+IgogICAgICAgIDs7ICAgICAgICAg IjxpPiIgdGV4dCAiPC9pPiIKICAgICAgICA7OyAgICAgICAgICI8L2Rpdj4iKQogICAgICAgIChj b25jYXQgIjx0YWJsZSBib3JkZXI9XCIwXCIgc3R5bGU9XCJib3JkZXI6IHNvbGlkIDFweCAjZGRk O1wiPjx0cj48dGQ+IgogICAgICAgICAgICAgICAgIjxpbWcgc3JjPVwiIiBsaW5rICJcIiBhbHQ9 XCIiIHRleHQgIlwiIC8+IgogICAgICAgICAgICAgICAgIjxiciAvPiIKICAgICAgICAgICAgICAg ICI8aT4iIHRleHQgIjwvaT4iCiAgICAgICAgICAgICAgICAiPC90ZD48L3RyPjwvdGFibGU+IikK ICAgICAgKGNvbmNhdCAiPGEgaHJlZj1cIiIgbGluayAiXCI+IiB0ZXh0ICI8L2E+IikpKSkKCihk ZWZ1biBvcmctZnJlZW1pbmQtY29udmVydC1saW5rcy1mcm9tLW9yZyAob3JnLXN0cikKICAiQ29u dmVydCBvcmcgbGlua3MgaW4gT1JHLVNUUiB0byBmcmVlbWluZCBsaW5rcyBhbmQgcmV0dXJuIHRo ZSByZXN1bHQuIgogIChsZXQgKChmbS1zdHIgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZwogICAg ICAgICAgICAgICAgIChyeCAobm90IChhbnkgIltcIiIpKQogICAgICAgICAgICAgICAgICAgICAo c3VibWF0Y2gKICAgICAgICAgICAgICAgICAgICAgICJodHRwIgogICAgICAgICAgICAgICAgICAg ICAgKG9wdCA/XHMpCiAgICAgICAgICAgICAgICAgICAgICAiOi8vIgogICAgICAgICAgICAgICAg ICAgICAgKDErCiAgICAgICAgICAgICAgICAgICAgICAgKGFueSAiLSUuP0BhLXpBLVowLTkoKV8v On49JiMiKSkpKQogICAgICAgICAgICAgICAgICJbW1xcMV1bXFwxXV0iCiAgICAgICAgICAgICAg ICAgb3JnLXN0cgogICAgICAgICAgICAgICAgIG5pbCA7OyBmaXhlZGNhc2UKICAgICAgICAgICAg ICAgICBuaWwgOzsgbGl0ZXJhbAogICAgICAgICAgICAgICAgIDEgICA7OyBzdWJleHAKICAgICAg ICAgICAgICAgICApKSkKICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgKHJ4ICJbWyIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJtYXRjaCAoKj8gbm9ubCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXVsiCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc3VibWF0Y2ggKCo/IG5vbmwpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIl1dIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsiPGEgaHJlZj1c IlxcMVwiPlxcMjwvYT4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmctZnJlZW1p bmQtY29udmVydC1saW5rcy1oZWxwZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm0t c3RyKSkpCgo7OyhvcmctZnJlZW1pbmQtY29udmVydC1saW5rcy10by1vcmcgIjxhIGhyZWY9XCJo dHRwOi8vd3d3LnNvbWV3aGVyZS9cIj5saW5rLXRleHQ8L2E+IikKKGRlZnVuIG9yZy1mcmVlbWlu ZC1jb252ZXJ0LWxpbmtzLXRvLW9yZyAoZm0tc3RyKQogICJDb252ZXJ0IGZyZWVtaW5kIGxpbmtz IGluIEZNLVNUUiB0byBvcmcgbGlua3MgYW5kIHJldHVybiB0aGUgcmVzdWx0LiIKICAobGV0ICgo b3JnLXN0ciAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCiAgICAgICAgICAgICAgICAgIChyeCAi PGEiCiAgICAgICAgICAgICAgICAgICAgICBzcGFjZQogICAgICAgICAgICAgICAgICAgICAgKDAr CiAgICAgICAgICAgICAgICAgICAgICAgKDArIChub3QgKGFueSAiPiIpKSkKICAgICAgICAgICAg ICAgICAgICAgICBzcGFjZSkKICAgICAgICAgICAgICAgICAgICAgICJocmVmPVwiIgogICAgICAg ICAgICAgICAgICAgICAgKHN1Ym1hdGNoICgwKyAobm90IChhbnkgIlwiIikpKSkKICAgICAgICAg ICAgICAgICAgICAgICJcIiIKICAgICAgICAgICAgICAgICAgICAgICgwKyAobm90IChhbnkgIj4i KSkpCiAgICAgICAgICAgICAgICAgICAgICAgIj4iCiAgICAgICAgICAgICAgICAgICAgICAgKHN1 Ym1hdGNoICgwKyAobm90IChhbnkgIjwiKSkpKQogICAgICAgICAgICAgICAgICAgICAgICI8L2E+ IikKICAgICAgICAgICAgICAgICAgIltbXFwxXVtcXDJdXSIKICAgICAgICAgICAgICAgICAgZm0t c3RyKSkpCiAgICBvcmctc3RyKSkKCjs7IEZpeC1tZToKOzsoZGVmdW4gb3JnLWZyZWVtaW5kLWNv bnZlcnQtZHJhd2Vycy1mcm9tLW9yZyAodGV4dCkKOzsgICkKCjs7IChsZXQqICgoc3RyMSAiW1to dHRwOi8vd3d3LnNvbWV3aGVyZS9dW2xpbmstdGV4dF0iKQo7OyAgICAgICAgKHN0cjIgKG9yZy1m cmVlbWluZC1jb252ZXJ0LWxpbmtzLWZyb20tb3JnIHN0cjEpKQo7OyAgICAgICAgKHN0cjMgKG9y Zy1mcmVlbWluZC1jb252ZXJ0LWxpbmtzLXRvLW9yZyBzdHIyKSkpCjs7ICAgKHVubGVzcyAoc3Ry aW5nPSBzdHIxIHN0cjMpCjs7ICAgICAoZXJyb3IgIkVycm9yIHN0cjM9JXMiIHN0cjMpKSkKCjs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7OzsgT3Jn ID0+IEZyZWVNaW5kCgooZGVmdW4gb3JnLWZyZWVtaW5kLWJvbC1oZWxwZXIgKG1hdGNoZWQpCiAg IkhlbHBlciBmb3IgYG9yZy1mcmVlbWluZC1jb252ZXJ0LXRleHQtcCcuCk1BVENIRUQgaXMgdGhl IGxpbmsganVzdCBtYXRjaGVkLiIKICAobGV0ICgocmVzICIiKSkKICAgIChkb2xpc3QgKGNjIChh cHBlbmQgbWF0Y2hlZCBuaWwpKQogICAgICAoaWYgKD0gMzIgY2MpCiAgICAgICAgICA7OyhzZXRx IHJlcyAoY29uY2F0IHJlcyAiJm5ic3A7IikpCiAgICAgICAgICA7OyBXZSBuZWVkIHRvIHVzZSB0 aGUgbnVtZXJpY2FsIHZlcnNpb24uIE90aGVyd2lzZSBGcmVlbWluZAogICAgICAgICAgOzsgdmVy IDAuOS4wIFJDOSBjYW4gbm90IGV4cG9ydCB0byBodG1sL2phdmFzY3JpcHQuCiAgICAgICAgICAo c2V0cSByZXMgKGNvbmNhdCByZXMgIiYjMTYwOyIpKQogICAgICAgIChzZXRxIHJlcyAoY29uY2F0 IHJlcyAoY2hhci10by1zdHJpbmcgY2MpKSkpKQogICAgcmVzKSkKOzsgKHNldHEgeCAocmVwbGFj ZS1yZWdleHAtaW4tc3RyaW5nICJcbiArIiAnb3JnLWZyZWVtaW5kLWJvbC1uYnNwLWhlbHBlciAi XG4gICIpKQoKKGRlZnVuIG9yZy1mcmVlbWluZC1jb252ZXJ0LXRleHQtcCAodGV4dCkKICAiQ29u dmVydCBURVhUIHRvIGh0bWwgd2l0aCA8cD4gcGFyYWdyYXBocy4iCiAgKHNldHEgdGV4dCAob3Jn LWZyZWVtaW5kLWVzY2FwZS1zdHItZnJvbS1vcmcgdGV4dCkpCgogIChzZXRxIHRleHQgKHJlcGxh Y2UtcmVnZXhwLWluLXN0cmluZyAiXFwoW1s6c3BhY2U6XV1cXClcXCgvXFwpXFwoW14vXStcXClc XCgvXFwpXFwoW1s6c3BhY2U6XV1cXCkiICJcXDE8aT5cXDM8L2k+XFw1IiB0ZXh0KSkKICAoc2V0 cSB0ZXh0IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIlxcKFtbOnNwYWNlOl1dXFwpXFwoXCpc XClcXChbXipdK1xcKVxcKFwqXFwpXFwoW1s6c3BhY2U6XV1cXCkiICJcXDE8Yj5cXDM8L2I+XFw1 IiB0ZXh0KSkKCiAgKHNldHEgdGV4dCAoY29uY2F0ICI8cD4iIHRleHQpKQogIChzZXRxIHRleHQg KHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAocnggIlxuIiAoMCsgYmxhbmspICJcbiIpICI8L3A+ PHA+IiB0ZXh0KSkKICAoc2V0cSB0ZXh0IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIlxcKD86 PHA+XFx8XG5cXCkgKyIgJ29yZy1mcmVlbWluZC1ib2wtaGVscGVyIHRleHQpKQogIChzZXRxIHRl eHQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiXG4iICI8YnIgLz4iIHRleHQpKQogIChzZXRx IHRleHQgKGNvbmNhdCB0ZXh0ICI8L3A+IikpCgogIChvcmctZnJlZW1pbmQtY29udmVydC1saW5r cy1mcm9tLW9yZyB0ZXh0KSkKCihkZWZ1biBvcmctZnJlZW1pbmQtb3JnLXRleHQtdG8tZnJlZW1p bmQtc3Vibm9kZS9ub3RlIChub2RlLW5hbWUgc3RhcnQgZW5kIGRyYXdlcnMtcmVnZXhwKQogICJD b252ZXJ0IHRleHQgcGFydCBvZiBvcmcgbm9kZSB0byBmcmVlbWluZCBzdWJub2RlIG9yIG5vdGUu CkNvbnZlcnQgdGhlIHRleHQgcGFydCBvZiB0aGUgb3JnIG5vZGUgbmFtZWQgTk9ERS1OQU1FLiAg VGhlIHRleHQKaXMgaW4gdGhlIGN1cnJlbnQgYnVmZmVyIGJldHdlZW4gU1RBUlQgYW5kIEVORC4g IERyYXdlcnMgbWF0Y2hpbmcKRFJBV0VSUy1SRUdFWFAgYXJlIGNvbnZlcnRlZCB0byBmcmVlbWlu ZCBub3Rlcy4iCiAgOzsgZml4LW1lOiBkb2MKICAobGV0ICgodGV4dCAoYnVmZmVyLXN1YnN0cmlu Zy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpCiAgICAgICAgKG5vZGUtcmVzICIiKQogICAgICAg IChub3RlLXJlcyAiIikpCiAgICAoc2F2ZS1tYXRjaC1kYXRhCiAgICAgIDs7KHNldHEgdGV4dCAo b3JnLWZyZWVtaW5kLWVzY2FwZS1zdHItZnJvbS1vcmcgdGV4dCkpCiAgICAgIDs7IEZpcnN0IHNl ZSBpZiB0aGVyZSBpcyBzb21ldGhpbmcgdGhhdCBzaG91bGQgYmUgbW92ZWQgdG8gdGhlCiAgICAg IDs7IG5vdGUgcGFydDoKICAgICAgKGxldCAoZHJhd2VycykKICAgICAgICAod2hpbGUgKHN0cmlu Zy1tYXRjaCBkcmF3ZXJzLXJlZ2V4cCB0ZXh0KQogICAgICAgICAgKHNldHEgZHJhd2VycyAoY29u cyAobWF0Y2gtc3RyaW5nIDAgdGV4dCkgZHJhd2VycykpCiAgICAgICAgICAoc2V0cSB0ZXh0CiAg ICAgICAgICAgICAgICAoY29uY2F0IChzdWJzdHJpbmcgdGV4dCAwIChtYXRjaC1iZWdpbm5pbmcg MCkpCiAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgdGV4dCAobWF0Y2gtZW5kIDAp KSkpCiAgICAgICAgICApCiAgICAgICAgKHdoZW4gZHJhd2VycwogICAgICAgICAgKGRvbGlzdCAo ZHJhd2VyIGRyYXdlcnMpCiAgICAgICAgICAgIChsZXQgKChsaW5lcyAoc3BsaXQtc3RyaW5nIGRy YXdlciAiXG4iKSkpCiAgICAgICAgICAgICAgKGRvbGlzdCAobGluZSBsaW5lcykKICAgICAgICAg ICAgICAgIChzZXRxIG5vdGUtcmVzIChjb25jYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBub3RlLXJlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1mcmVlbWlu ZC1vcmctbmZpeCBsaW5lICI8YnIgLz5cbiIpKSkKICAgICAgICAgICAgICApKSkpCgogICAgICAo d2hlbiAoPiAobGVuZ3RoIG5vdGUtcmVzKSAwKQogICAgICAgIChzZXRxIG5vdGUtcmVzIChjb25j YXQKICAgICAgICAgICAgICAgICAgICAgICAgIjxyaWNoY29udGVudCBUWVBFPVwiTk9URVwiPjxo dG1sPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAiPGhlYWQ+XG4iCiAgICAgICAgICAgICAg ICAgICAgICAgICI8L2hlYWQ+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICI8Ym9keT5cbiIK ICAgICAgICAgICAgICAgICAgICAgICAgbm90ZS1yZXMKICAgICAgICAgICAgICAgICAgICAgICAg IjwvYm9keT5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgIjwvaHRtbD5cbiIKICAgICAgICAg ICAgICAgICAgICAgICAgIjwvcmljaGNvbnRlbnQ+XG4iKSkKICAgICAgICApCgogICAgICA7OyBU aGVyZSBpcyBhbHdheXMgYW4gTEYgY2hhcjoKICAgICAgKHdoZW4gKD4gKGxlbmd0aCB0ZXh0KSAx KQogICAgICAgIChzZXRxIG5vZGUtcmVzIChjb25jYXQKICAgICAgICAgICAgICAgICAgICAgICAg Ijxub2RlIHN0eWxlPVwiYnViYmxlXCIgYmFja2dyb3VuZF9jb2xvcj1cIiNlZWVlMDBcIj5cbiIK ICAgICAgICAgICAgICAgICAgICAgICAgIjxyaWNoY29udGVudCBUWVBFPVwiTk9ERVwiPjxodG1s PlxuIgogICAgICAgICAgICAgICAgICAgICAgICAiPGhlYWQ+XG4iCiAgICAgICAgICAgICAgICAg ICAgICAgICI8c3R5bGUgdHlwZT1cInRleHQvY3NzXCI+XG4iCiAgICAgICAgICAgICAgICAgICAg ICAgICI8IS0tXG4iCiAgICAgICAgICAgICAgICAgICAgICAgIDs7IEZyZWVtaW5kIGNhbid0IGV4 cG9ydCB0byB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgOzsgaHRtbC9qYXZhc2NyaXB0IHZl cnNpb24gdW5sZXNzIG1hcmdpbi10b3AKICAgICAgICAgICAgICAgICAgICAgICAgOzsgaXMgMCBi ZWNhdXNlIG9mIHNvbWUgZXJyb3IgaW4gdGhlIHhzbHQKICAgICAgICAgICAgICAgICAgICAgICAg OzsgcHJvY2Vzc2luZyAoRnJlZW1pbmQgMC45LjAgUkM5KS4gVGhpcyBkb2VzCiAgICAgICAgICAg ICAgICAgICAgICAgIDs7IG5vdCBsb29rIHZlcnkgbmljZSBpbiBmcmVlbWluZCBob3dldmVyLgog ICAgICAgICAgICAgICAgICAgICAgICAicCB7IG1hcmdpbi10b3A6IDAgfVxuIgogICAgICAgICAg ICAgICAgICAgICAgICAiLS0+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICI8L3N0eWxlPlxu IgogICAgICAgICAgICAgICAgICAgICAgICAiPC9oZWFkPlxuIgogICAgICAgICAgICAgICAgICAg ICAgICAiPGJvZHk+XG4iKSkKICAgICAgICAobGV0ICgoYmVnaW4taHRtbC1tYXJrIChyZWdleHAt cXVvdGUgIiMrQkVHSU5fSFRNTCIpKQogICAgICAgICAgICAgIChlbmQtaHRtbC1tYXJrICAgKHJl Z2V4cC1xdW90ZSAiIytFTkRfSFRNTCIpKQogICAgICAgICAgICAgIGhlYWQKICAgICAgICAgICAg ICBlbmQtcG9zCiAgICAgICAgICAgICAgZW5kLXBvcy1tYXRjaAogICAgICAgICAgICAgICkKICAg ICAgICAgIDs7IFRha2UgY2FyZSBvZiAjK0JFR0lOX0hUTUwgLSAjK0VORF9IVE1MCiAgICAgICAg ICAod2hpbGUgKHN0cmluZy1tYXRjaCBiZWdpbi1odG1sLW1hcmsgdGV4dCkKICAgICAgICAgICAg KHNldHEgaGVhZCAoc3Vic3RyaW5nIHRleHQgMCAobWF0Y2gtYmVnaW5uaW5nIDApKSkKICAgICAg ICAgICAgKHNldHEgZW5kLXBvcy1tYXRjaCAobWF0Y2gtZW5kIDApKQogICAgICAgICAgICAoc2V0 cSBub2RlLXJlcyAoY29uY2F0IG5vZGUtcmVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG9yZy1mcmVlbWluZC1jb252ZXJ0LXRleHQtcCBoZWFkKSkpCiAgICAgICAgICAgIChz ZXRxIHRleHQgKHN1YnN0cmluZyB0ZXh0IGVuZC1wb3MtbWF0Y2gpKQogICAgICAgICAgICAoc2V0 cSBlbmQtcG9zIChzdHJpbmctbWF0Y2ggZW5kLWh0bWwtbWFyayB0ZXh0KSkKICAgICAgICAgICAg KGlmIGVuZC1wb3MKICAgICAgICAgICAgICAgIChzZXRxIGVuZC1wb3MtbWF0Y2ggKG1hdGNoLWVu ZCAwKSkKICAgICAgICAgICAgICAobWVzc2FnZSAib3JnLWZyZWVtaW5kOiBNaXNzaW5nICMrRU5E X0hUTUwiKQogICAgICAgICAgICAgIChzZXRxIGVuZC1wb3MgKGxlbmd0aCB0ZXh0KSkKICAgICAg ICAgICAgICAoc2V0cSBlbmQtcG9zLW1hdGNoIGVuZC1wb3MpKQogICAgICAgICAgICAoc2V0cSBu b2RlLXJlcyAoY29uY2F0IG5vZGUtcmVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN1YnN0cmluZyB0ZXh0IDAgZW5kLXBvcykpKQogICAgICAgICAgICAoc2V0cSB0ZXh0IChz dWJzdHJpbmcgdGV4dCBlbmQtcG9zLW1hdGNoKSkpCiAgICAgICAgICAoc2V0cSBub2RlLXJlcyAo Y29uY2F0IG5vZGUtcmVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmctZnJl ZW1pbmQtY29udmVydC10ZXh0LXAgdGV4dCkpKSkKICAgICAgICAoc2V0cSBub2RlLXJlcyAoY29u Y2F0CiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtcmVzCiAgICAgICAgICAgICAgICAgICAg ICAgICI8L2JvZHk+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICI8L2h0bWw+XG4iCiAgICAg ICAgICAgICAgICAgICAgICAgICI8L3JpY2hjb250ZW50PlxuIgogICAgICAgICAgICAgICAgICAg ICAgICA7OyBQdXQgYSBub3RlIHRoYXQgdGhpcyBpcyBmb3IgdGhlIHBhcmVudCBub2RlCiAgICAg ICAgICAgICAgICAgICAgICAgICI8cmljaGNvbnRlbnQgVFlQRT1cIk5PVEVcIj48aHRtbD4iCiAg ICAgICAgICAgICAgICAgICAgICAgICI8aGVhZD4iCiAgICAgICAgICAgICAgICAgICAgICAgICI8 L2hlYWQ+IgogICAgICAgICAgICAgICAgICAgICAgICAiPGJvZHk+IgogICAgICAgICAgICAgICAg ICAgICAgICAiPHA+IgogICAgICAgICAgICAgICAgICAgICAgICAiLS0gVGhpcyBpcyBtb3JlIGFi b3V0IFwiIiBub2RlLW5hbWUgIlwiIC0tIgogICAgICAgICAgICAgICAgICAgICAgICAiPC9wPiIK ICAgICAgICAgICAgICAgICAgICAgICAgIjwvYm9keT4iCiAgICAgICAgICAgICAgICAgICAgICAg ICI8L2h0bWw+IgogICAgICAgICAgICAgICAgICAgICAgICAiPC9yaWNoY29udGVudD5cbiIKICAg ICAgICAgICAgICAgICAgICAgICAgIjwvbm9kZT5cbiIgOzsgb2sKICAgICAgICAgICAgICAgICAg ICAgICAgKSkpCiAgICAgIChsaXN0IG5vZGUtcmVzIG5vdGUtcmVzKSkpKQoKKGRlZnVuIG9yZy1m cmVlbWluZC13cml0ZS1ub2RlIChtbS1idWZmZXIgZHJhd2Vycy1yZWdleHAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBudW0tbGVmdC1ub2RlcyBiYXNlLWxldmVsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY3VycmVudC1sZXZlbCBuZXh0LWxldmVsIHRoaXMtbTIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLW5vZGUtZW5kCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGhpcy1jaGlsZHJlbi12aXNpYmxlCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmV4dC1ub2RlLXN0YXJ0CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmV4dC1oYXMtc29tZS12aXNpYmxlLWNoaWxkKQogIChsZXQqICh0aGlzLWljb25zCiAg ICAgICAgIHRoaXMtYmctY29sb3IKICAgICAgICAgdGhpcy1tMi1lc2NhcGVkCiAgICAgICAgIHRo aXMtcmljaC1ub2RlCiAgICAgICAgIHRoaXMtcmljaC1ub3RlCiAgICAgICAgICkKICAgICh3aGVu IChzdHJpbmctbWF0Y2ggIlRPRE8iIHRoaXMtbTIpCiAgICAgIChzZXRxIHRoaXMtbTIgKHJlcGxh Y2UtbWF0Y2ggIiIgbmlsIG5pbCB0aGlzLW0yKSkKICAgICAgKGFkZC10by1saXN0ICd0aGlzLWlj b25zICJidXR0b25fY2FuY2VsIikKICAgICAgKHNldHEgdGhpcy1iZy1jb2xvciAiI2ZmZmY4OCIp CiAgICAgICh3aGVuIChzdHJpbmctbWF0Y2ggIlxcWyNcXCguXFwpXFxdIiB0aGlzLW0yKQogICAg ICAgIChsZXQgKChwcmlvciAoc3RyaW5nLXRvLWNoYXIgKG1hdGNoLXN0cmluZyAxIHRoaXMtbTIp KSkpCiAgICAgICAgICAoc2V0cSB0aGlzLW0yIChyZXBsYWNlLW1hdGNoICIiIG5pbCBuaWwgdGhp cy1tMikpCiAgICAgICAgICAoY29uZAogICAgICAgICAgICgoPSBwcmlvciA/QSkKICAgICAgICAg ICAgKGFkZC10by1saXN0ICd0aGlzLWljb25zICJmdWxsLTEiKQogICAgICAgICAgICAoc2V0cSB0 aGlzLWJnLWNvbG9yICIjZmYwMDAwIikpCiAgICAgICAgICAgKCg9IHByaW9yID9CKQogICAgICAg ICAgICAoYWRkLXRvLWxpc3QgJ3RoaXMtaWNvbnMgImZ1bGwtMiIpCiAgICAgICAgICAgIChzZXRx IHRoaXMtYmctY29sb3IgIiNmZmFhMDAiKSkKICAgICAgICAgICAoKD0gcHJpb3IgP0MpCiAgICAg ICAgICAgIChhZGQtdG8tbGlzdCAndGhpcy1pY29ucyAiZnVsbC0zIikKICAgICAgICAgICAgKHNl dHEgdGhpcy1iZy1jb2xvciAiI2ZmZGQwMCIpKQogICAgICAgICAgICgoPSBwcmlvciA/RCkKICAg ICAgICAgICAgKGFkZC10by1saXN0ICd0aGlzLWljb25zICJmdWxsLTQiKQogICAgICAgICAgICAo c2V0cSB0aGlzLWJnLWNvbG9yICIjZmZmZjAwIikpCiAgICAgICAgICAgKCg9IHByaW9yID9FKQog ICAgICAgICAgICAoYWRkLXRvLWxpc3QgJ3RoaXMtaWNvbnMgImZ1bGwtNSIpKQogICAgICAgICAg ICgoPSBwcmlvciA/RikKICAgICAgICAgICAgKGFkZC10by1saXN0ICd0aGlzLWljb25zICJmdWxs LTYiKSkKICAgICAgICAgICAoKD0gcHJpb3IgP0cpCiAgICAgICAgICAgIChhZGQtdG8tbGlzdCAn dGhpcy1pY29ucyAiZnVsbC03IikpCiAgICAgICAgICAgKSkpKQogICAgKHNldHEgdGhpcy1tMiAo b3JnLXRyaW0gdGhpcy1tMikpCiAgICAoc2V0cSB0aGlzLW0yLWVzY2FwZWQgKG9yZy1mcmVlbWlu ZC1lc2NhcGUtc3RyLWZyb20tb3JnIHRoaXMtbTIpKQogICAgKGxldCAoKG5vZGUtbm90ZXMgKG9y Zy1mcmVlbWluZC1vcmctdGV4dC10by1mcmVlbWluZC1zdWJub2RlL25vdGUKICAgICAgICAgICAg ICAgICAgICAgICB0aGlzLW0yLWVzY2FwZWQKICAgICAgICAgICAgICAgICAgICAgICB0aGlzLW5v ZGUtZW5kCiAgICAgICAgICAgICAgICAgICAgICAgKDEtIG5leHQtbm9kZS1zdGFydCkKICAgICAg ICAgICAgICAgICAgICAgICBkcmF3ZXJzLXJlZ2V4cCkpKQogICAgICAoc2V0cSB0aGlzLXJpY2gt bm9kZSAobnRoIDAgbm9kZS1ub3RlcykpCiAgICAgIChzZXRxIHRoaXMtcmljaC1ub3RlIChudGgg MSBub2RlLW5vdGVzKSkpCiAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBtbS1idWZmZXIKICAgICAg KGluc2VydCAiPG5vZGUgdGV4dD1cIiIgdGhpcy1tMi1lc2NhcGVkICJcIiIpCiAgICAgIChvcmct ZnJlZW1pbmQtZ2V0LW5vZGUtc3R5bGUgdGhpcy1tMikKICAgICAgKHdoZW4gKD4gbmV4dC1sZXZl bCBjdXJyZW50LWxldmVsKQogICAgICAgICh1bmxlc3MgKG9yIHRoaXMtY2hpbGRyZW4tdmlzaWJs ZQogICAgICAgICAgICAgICAgICAgIG5leHQtaGFzLXNvbWUtdmlzaWJsZS1jaGlsZCkKICAgICAg ICAgIChpbnNlcnQgIiBmb2xkZWQ9XCJ0cnVlXCIiKSkpCiAgICAgICh3aGVuIChhbmQgKD0gY3Vy cmVudC1sZXZlbCAoMSsgYmFzZS1sZXZlbCkpCiAgICAgICAgICAgICAgICAgKD4gbnVtLWxlZnQt bm9kZXMgMCkpCiAgICAgICAgKHNldHEgbnVtLWxlZnQtbm9kZXMgKDEtIG51bS1sZWZ0LW5vZGVz KSkKICAgICAgICAoaW5zZXJ0ICIgcG9zaXRpb249XCJsZWZ0XCIiKSkKICAgICAgKHdoZW4gdGhp cy1iZy1jb2xvcgogICAgICAgIChpbnNlcnQgIiBiYWNrZ3JvdW5kX2NvbG9yPVwiIiB0aGlzLWJn LWNvbG9yICJcIiIpKQogICAgICAoaW5zZXJ0ICI+XG4iKQogICAgICAod2hlbiB0aGlzLWljb25z CiAgICAgICAgKGRvbGlzdCAoaWNvbiB0aGlzLWljb25zKQogICAgICAgICAgKGluc2VydCAiPGlj b24gYnVpbHRpbj1cIiIgaWNvbiAiXCIvPlxuIikpKQogICAgICApCiAgICAod2l0aC1jdXJyZW50 LWJ1ZmZlciBtbS1idWZmZXIKICAgICAgKHdoZW4gdGhpcy1yaWNoLW5vdGUgKGluc2VydCB0aGlz LXJpY2gtbm90ZSkpCiAgICAgICh3aGVuIHRoaXMtcmljaC1ub2RlIChpbnNlcnQgdGhpcy1yaWNo LW5vZGUpKSkpCiAgbnVtLWxlZnQtbm9kZXMpCgooZGVmdW4gb3JnLWZyZWVtaW5kLWNoZWNrLW92 ZXJ3cml0ZSAoZmlsZSBpbnRlcmFjdGl2ZWx5KQogICJDaGVjayBpZiBmaWxlIEZJTEUgYWxyZWFk eSBleGlzdHMuCklmIEZJTEUgZG9lcyBub3QgZXhpc3RzIHJldHVybiB0LgoKSWYgSU5URVJBQ1RJ VkVMWSBpcyBub24tbmlsIGFzayBpZiB0aGUgZmlsZSBzaG91bGQgYmUgcmVwbGFjZWQKYW5kIHJl dHVybiB0L25pbCBpZiBpdCBzaG91bGQvc2hvdWxkIG5vdCBiZSByZXBsYWNlZC4KCk90aGVyd2lz ZSBnaXZlIGFuIGVycm9yIHNheSB0aGUgZmlsZSBleGlzdHMuIgogIChpZiAoZmlsZS1leGlzdHMt cCBmaWxlKQogICAgICAoaWYgaW50ZXJhY3RpdmVseQogICAgICAgICAgKHktb3Itbi1wIChmb3Jt YXQgIkZpbGUgJXMgZXhpc3RzLCByZXBsYWNlIGl0PyAiIGZpbGUpKQogICAgICAgIChlcnJvciAi RmlsZSAlcyBhbHJlYWR5IGV4aXN0cyIgZmlsZSkpCiAgICB0KSkKCihkZWZ2YXIgb3JnLWZyZWVt aW5kLW5vZGUtcGF0dGVybiAocnggYm9sCiAgICAgICAgICAgICAgICAgICAgICAgICAoc3VibWF0 Y2ggKDErICIqIikpCiAgICAgICAgICAgICAgICAgICAgICAgICAoMSsgc3BhY2UpCiAgICAgICAg ICAgICAgICAgICAgICAgICAoc3VibWF0Y2ggKCo/IG5vbmwpKQogICAgICAgICAgICAgICAgICAg ICAgICAgZW9sKSkKCihkZWZ1biBvcmctZnJlZW1pbmQtbG9vay1mb3ItdmlzaWJsZS1jaGlsZCAo bm9kZS1sZXZlbCkKICAoc2F2ZS1leGN1cnNpb24KICAgIChzYXZlLW1hdGNoLWRhdGEKICAgICAg KGxldCAoKGZvdW5kLXZpc2libGUtY2hpbGQgbmlsKSkKICAgICAgICAod2hpbGUgKGFuZCAobm90 IGZvdW5kLXZpc2libGUtY2hpbGQpCiAgICAgICAgICAgICAgICAgICAgKHJlLXNlYXJjaC1mb3J3 YXJkIG9yZy1mcmVlbWluZC1ub2RlLXBhdHRlcm4gbmlsIHQpKQogICAgICAgICAgKGxldCogKCht MSAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgMSkpCiAgICAgICAgICAgICAgICAgKGxldmVs IChsZW5ndGggbTEpKSkKICAgICAgICAgICAgKGlmICg+PSBub2RlLWxldmVsIGxldmVsKQogICAg ICAgICAgICAgICAgKHNldHEgZm91bmQtdmlzaWJsZS1jaGlsZCAnbm9uZSkKICAgICAgICAgICAg ICAodW5sZXNzIChnZXQtY2hhci1wcm9wZXJ0eSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pICdp bnZpc2libGUpCiAgICAgICAgICAgICAgICAoc2V0cSBmb3VuZC12aXNpYmxlLWNoaWxkICdmb3Vu ZCkpKSkpCiAgICAgICAgKGVxIGZvdW5kLXZpc2libGUtY2hpbGQgJ2ZvdW5kKQogICAgICAgICkp KSkKCihkZWZ1biBvcmctZnJlZW1pbmQtZ290by1saW5lIChsaW5lKQogICJHbyB0byBsaW5lIG51 bWJlciBMSU5FLiIKICAoc2F2ZS1yZXN0cmljdGlvbgogICAgKHdpZGVuKQogICAgKGdvdG8tY2hh ciAocG9pbnQtbWluKSkKICAgIChmb3J3YXJkLWxpbmUgKDEtIGxpbmUpKSkpCgooZGVmdW4gb3Jn LWZyZWVtaW5kLXdyaXRlLW1tLWJ1ZmZlciAob3JnLWJ1ZmZlciBtbS1idWZmZXIgbm9kZS1hdC1s aW5lKQogICh3aXRoLWN1cnJlbnQtYnVmZmVyIG9yZy1idWZmZXIKICAgIChkb2xpc3QgKG5vZGUt c3R5bGUgb3JnLWZyZWVtaW5kLW5vZGUtc3R5bGVzKQogICAgICAod2hlbiAoc3RyaW5nLW1hdGNo LXAgKGNhciBub2RlLXN0eWxlKSBidWZmZXItZmlsZS1uYW1lKQogICAgICAgIChzZXRxIG9yZy1m cmVlbWluZC1ub2RlLXN0eWxlIChjYWRyIG5vZGUtc3R5bGUpKSkpCiAgICA7OyhtZXNzYWdlICJv cmctZnJlZW1pbmQtbm9kZS1zdHlsZSA9JXMiIG9yZy1mcmVlbWluZC1ub2RlLXN0eWxlKQogICAg KHNhdmUtbWF0Y2gtZGF0YQogICAgICAobGV0KiAoKGRyYXdlcnMgKGNvcHktc2VxdWVuY2Ugb3Jn LWRyYXdlcnMpKQogICAgICAgICAgICAgZHJhd2Vycy1yZWdleHAKICAgICAgICAgICAgIChudW0t dG9wMS1ub2RlcyAwKQogICAgICAgICAgICAgKG51bS10b3AyLW5vZGVzIDApCiAgICAgICAgICAg ICBudW0tbGVmdC1ub2RlcwogICAgICAgICAgICAgKHVuY2xvc2VkLW5vZGVzIDApCgkgICAgIChv ZGQtb25seSBvcmctb2RkLWxldmVscy1vbmx5KQogICAgICAgICAgICAgKGZpcnN0LXRpbWUgdCkK ICAgICAgICAgICAgIChjdXJyZW50LWxldmVsIDEpCiAgICAgICAgICAgICBiYXNlLWxldmVsCiAg ICAgICAgICAgICBwcmV2LW5vZGUtZW5kCiAgICAgICAgICAgICByaWNoLXRleHQKICAgICAgICAg ICAgIHVuZmluaXNoZWQtdGFnCiAgICAgICAgICAgICBub2RlLWF0LWxpbmUtbGV2ZWwKICAgICAg ICAgICAgIG5vZGUtYXQtbGluZS1sYXN0KQogICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIG1t LWJ1ZmZlcgogICAgICAgICAgKGVyYXNlLWJ1ZmZlcikKICAgICAgICAgIChzZXRxIGJ1ZmZlci1m aWxlLWNvZGluZy1zeXN0ZW0gJ3V0Zi04KQogICAgICAgICAgOzsgRml4LW1lOiBDdXJyZW50bCBG cmVlbWluZCAodmVyIDAuOS4wIFJDOSkgZG9lcyBub3Qgc3VwcG9ydCB0aGlzOgogICAgICAgICAg OzsoaW5zZXJ0ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiIp CiAgICAgICAgICAoaW5zZXJ0ICI8bWFwIHZlcnNpb249XCIwLjkuMFwiPlxuIikKICAgICAgICAg IChpbnNlcnQgIjwhLS0gVG8gdmlldyB0aGlzIGZpbGUsIGRvd25sb2FkIGZyZWUgbWluZCBtYXBw aW5nIHNvZnR3YXJlIEZyZWVNaW5kIGZyb20gaHR0cDovL2ZyZWVtaW5kLnNvdXJjZWZvcmdlLm5l dCAtLT5cbiIpKQogICAgICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAgICAgOzsgR2V0IHNwZWNp YWwgYnVmZmVyIHZhcnM6CiAgICAgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQogICAgICAg ICAgKG1lc3NhZ2UgIldyaXRpbmcgRnJlZW1pbmQgZmlsZS4uLiIpCiAgICAgICAgICAod2hpbGUg KHJlLXNlYXJjaC1mb3J3YXJkIChyeCBib2wgIiMrRFJBV0VSUzoiKSBuaWwgdCkKICAgICAgICAg ICAgKGxldCAoKGRyLXR4dCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChtYXRjaC1l bmQgMCkgKGxpbmUtZW5kLXBvc2l0aW9uKSkpKQogICAgICAgICAgICAgIChzZXRxIGRyYXdlcnMg KGFwcGVuZCBkcmF3ZXJzIChzcGxpdC1zdHJpbmcgZHItdHh0KSBuaWwpKSkpCiAgICAgICAgICAo c2V0cSBkcmF3ZXJzLXJlZ2V4cAogICAgICAgICAgICAgICAgKGNvbmNhdCAocnggYm9sICgwKyBi bGFuaykgIjoiKQogICAgICAgICAgICAgICAgICAgICAgICAocmVnZXhwLW9wdCBkcmF3ZXJzKQog ICAgICAgICAgICAgICAgICAgICAgICAocnggIjoiICgwKyBibGFuaykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqPyBhbnl0aGlu ZykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcbiIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgwKyBibGFuaykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6RU5EOiIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgwKyBibGFuaykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVvbCkKICAgICAgICAgICAgICAgICAgICAgICAgKSkKCiAgICAgICAgICAoaWYgbm9k ZS1hdC1saW5lCiAgICAgICAgICAgICAgOzsgR2V0IG51bWJlciBvZiB0b3Agbm9kZXMgYW5kIGxh c3QgbGluZSBmb3IgdGhpcyBub2RlCiAgICAgICAgICAgICAgKHByb2duCiAgICAgICAgICAgICAg ICAob3JnLWZyZWVtaW5kLWdvdG8tbGluZSBub2RlLWF0LWxpbmUpCiAgICAgICAgICAgICAgICAo dW5sZXNzIChsb29raW5nLWF0IG9yZy1mcmVlbWluZC1ub2RlLXBhdHRlcm4pCiAgICAgICAgICAg ICAgICAgIChlcnJvciAiTm8gbm9kZSBhdCBsaW5lICVzIiBub2RlLWF0LWxpbmUpKQogICAgICAg ICAgICAgICAgKHNldHEgbm9kZS1hdC1saW5lLWxldmVsIChsZW5ndGggKG1hdGNoLXN0cmluZy1u by1wcm9wZXJ0aWVzIDEpKSkKICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpCiAgICAgICAg ICAgICAgICAoc2V0cSBub2RlLWF0LWxpbmUtbGFzdAogICAgICAgICAgICAgICAgICAgICAgKGNh dGNoICdsYXN0LWxpbmUKICAgICAgICAgICAgICAgICAgICAgICAgKHdoaWxlIChyZS1zZWFyY2gt Zm9yd2FyZCBvcmctZnJlZW1pbmQtbm9kZS1wYXR0ZXJuIG5pbCB0KQogICAgICAgICAgICAgICAg ICAgICAgICAgIChsZXQqICgobTEgKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDEpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV2ZWwgKGxlbmd0aCBtMSkpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGlmICg8PSBsZXZlbCBub2RlLWF0LWxpbmUtbGV2ZWwpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2duCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAodGhyb3cgJ2xhc3QtbGluZSAoMS0gKHBvaW50KSkpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoaWYgKD0gbGV2ZWwgKDErIG5vZGUtYXQtbGluZS1sZXZlbCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBudW0tdG9wMi1ub2RlcyAoMSsg bnVtLXRvcDItbm9kZXMpKSkpKSkpKQogICAgICAgICAgICAgICAgKHNldHEgY3VycmVudC1sZXZl bCBub2RlLWF0LWxpbmUtbGV2ZWwpCiAgICAgICAgICAgICAgICAoc2V0cSBudW0tdG9wMS1ub2Rl cyAxKQogICAgICAgICAgICAgICAgKG9yZy1mcmVlbWluZC1nb3RvLWxpbmUgbm9kZS1hdC1saW5l KSkKCiAgICAgICAgICAgIDs7IEZpcnN0IGdldCBudW1iZXIgb2YgdG9wIG5vZGVzCiAgICAgICAg ICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAgICAgICAgICh3aGlsZSAocmUtc2VhcmNo LWZvcndhcmQgb3JnLWZyZWVtaW5kLW5vZGUtcGF0dGVybiBuaWwgdCkKICAgICAgICAgICAgICAo bGV0KiAoKG0xIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAxKSkKICAgICAgICAgICAgICAg ICAgICAgKGxldmVsIChsZW5ndGggbTEpKSkKICAgICAgICAgICAgICAgIChpZiAoPSBsZXZlbCAx KQogICAgICAgICAgICAgICAgICAgIChzZXRxIG51bS10b3AxLW5vZGVzICgxKyBudW0tdG9wMS1u b2RlcykpCiAgICAgICAgICAgICAgICAgIChpZiAoPSBsZXZlbCAyKQogICAgICAgICAgICAgICAg ICAgICAgKHNldHEgbnVtLXRvcDItbm9kZXMgKDErIG51bS10b3AyLW5vZGVzKSkpKSkpCiAgICAg ICAgICAgIDs7IElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgdG9wIG5vZGUgd2UgbmVlZCB0byBp bnNlcnQgYSBub2RlCiAgICAgICAgICAgIDs7IHRvIGtlZXAgdGhlbSB0b2dldGhlci4KICAgICAg ICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKICAgICAgICAgICAgKHdoZW4gKD4gbnVtLXRv cDEtbm9kZXMgMSkKICAgICAgICAgICAgICAoc2V0cSBudW0tdG9wMi1ub2RlcyBudW0tdG9wMS1u b2RlcykKICAgICAgICAgICAgICAoc2V0cSBjdXJyZW50LWxldmVsIDApCiAgICAgICAgICAgICAg KGxldCAoKG9yaWctbmFtZSAoaWYgYnVmZmVyLWZpbGUtbmFtZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IChidWZmZXItZmlsZS1uYW1l KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1uYW1lKSkpKQogICAg ICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgbW0tYnVmZmVyCiAgICAgICAgICAgICAg ICAgIChpbnNlcnQgIjxub2RlIHRleHQ9XCIiIG9yaWctbmFtZSAiXCIgYmFja2dyb3VuZF9jb2xv cj1cIiMwMGJmZmZcIj5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBQdXQgYSBub3Rl IHRoYXQgdGhpcyBpcyBmb3IgdGhlIHBhcmVudCBub2RlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgIjxyaWNoY29udGVudCBUWVBFPVwiTk9URVwiPjxodG1sPiIKICAgICAgICAgICAgICAgICAg ICAgICAgICAiPGhlYWQ+IgogICAgICAgICAgICAgICAgICAgICAgICAgICI8L2hlYWQ+IgogICAg ICAgICAgICAgICAgICAgICAgICAgICI8Ym9keT4iCiAgICAgICAgICAgICAgICAgICAgICAgICAg IjxwPiIKICAgICAgICAgICAgICAgICAgICAgICAgICBvcmctZnJlZW1pbmQtb3JnLW5maXggIldI T0xFIEZJTEUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIjwvcD4iCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIjwvYm9keT4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgIjwvaHRtbD4i CiAgICAgICAgICAgICAgICAgICAgICAgICAgIjwvcmljaGNvbnRlbnQ+XG4iKSkpKSkKCiAgICAg ICAgICAoc2V0cSBudW0tbGVmdC1ub2RlcyAoZmxvb3IgbnVtLXRvcDItbm9kZXMgMikpCiAgICAg ICAgICAoc2V0cSBiYXNlLWxldmVsIGN1cnJlbnQtbGV2ZWwpCiAgICAgICAgICAobGV0ICh0aGlz LW0yCiAgICAgICAgICAgICAgICB0aGlzLW5vZGUtZW5kCiAgICAgICAgICAgICAgICB0aGlzLWNo aWxkcmVuLXZpc2libGUKICAgICAgICAgICAgICAgIG5leHQtbTIKICAgICAgICAgICAgICAgIG5l eHQtbm9kZS1zdGFydAogICAgICAgICAgICAgICAgbmV4dC1sZXZlbAogICAgICAgICAgICAgICAg bmV4dC1oYXMtc29tZS12aXNpYmxlLWNoaWxkCiAgICAgICAgICAgICAgICBuZXh0LWNoaWxkcmVu LXZpc2libGUKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgKHdoaWxlIChhbmQKICAgICAg ICAgICAgICAgICAgICAocmUtc2VhcmNoLWZvcndhcmQgb3JnLWZyZWVtaW5kLW5vZGUtcGF0dGVy biBuaWwgdCkKICAgICAgICAgICAgICAgICAgICAoaWYgbm9kZS1hdC1saW5lLWxhc3QgKDw9IChw b2ludCkgbm9kZS1hdC1saW5lLWxhc3QpIHQpCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAg ICAgICAgIChsZXQqICgobmV4dC1tMSAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgMSkpCiAg ICAgICAgICAgICAgICAgICAgIChuZXh0LW5vZGUtZW5kIChtYXRjaC1lbmQgMCkpCiAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIChzZXRxIG5leHQtbm9kZS1zdGFydCAobWF0 Y2gtYmVnaW5uaW5nIDApKQogICAgICAgICAgICAgICAgKHNldHEgbmV4dC1tMiAobWF0Y2gtc3Ry aW5nLW5vLXByb3BlcnRpZXMgMikpCiAgICAgICAgICAgICAgICAoc2V0cSBuZXh0LWxldmVsIChs ZW5ndGggbmV4dC1tMSkpCiAgICAgICAgICAgICAgICAoc2V0cSBuZXh0LWNoaWxkcmVuLXZpc2li bGUKICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxICdvdXRsaW5lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoZ2V0LWNoYXItcHJvcGVydHkgKGxpbmUtZW5kLXBvc2l0aW9uKSAn aW52aXNpYmxlKSkpKQogICAgICAgICAgICAgICAgKHNldHEgbmV4dC1oYXMtc29tZS12aXNpYmxl LWNoaWxkCiAgICAgICAgICAgICAgICAgICAgICAoaWYgbmV4dC1jaGlsZHJlbi12aXNpYmxlIHQK ICAgICAgICAgICAgICAgICAgICAgICAgKG9yZy1mcmVlbWluZC1sb29rLWZvci12aXNpYmxlLWNo aWxkIG5leHQtbGV2ZWwpKSkKICAgICAgICAgICAgICAgICh3aGVuIHRoaXMtbTIKICAgICAgICAg ICAgICAgICAgKHNldHEgbnVtLWxlZnQtbm9kZXMgKG9yZy1mcmVlbWluZC13cml0ZS1ub2RlIG1t LWJ1ZmZlciBkcmF3ZXJzLXJlZ2V4cCBudW0tbGVmdC1ub2RlcyBiYXNlLWxldmVsIGN1cnJlbnQt bGV2ZWwgbmV4dC1sZXZlbCB0aGlzLW0yIHRoaXMtbm9kZS1lbmQgdGhpcy1jaGlsZHJlbi12aXNp YmxlIG5leHQtbm9kZS1zdGFydCBuZXh0LWhhcy1zb21lLXZpc2libGUtY2hpbGQpKSkKICAgICAg ICAgICAgICAgICh3aGVuIChpZiAoPSBudW0tdG9wMS1ub2RlcyAxKSAoPiBjdXJyZW50LWxldmVs IGJhc2UtbGV2ZWwpIHQpCiAgICAgICAgICAgICAgICAgICh3aGlsZSAoPj0gY3VycmVudC1sZXZl bCBuZXh0LWxldmVsKQogICAgICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIG1t LWJ1ZmZlcgogICAgICAgICAgICAgICAgICAgICAgKGluc2VydCAiPC9ub2RlPlxuIikKICAgICAg ICAgICAgICAgICAgICAgIChzZXRxIGN1cnJlbnQtbGV2ZWwKCQkJICAgICgtIGN1cnJlbnQtbGV2 ZWwgKGlmIG9kZC1vbmx5IDIgMSkpKSkpKQogICAgICAgICAgICAgICAgKHNldHEgdGhpcy1ub2Rl LWVuZCAoMSsgbmV4dC1ub2RlLWVuZCkpCiAgICAgICAgICAgICAgICAoc2V0cSB0aGlzLW0yIG5l eHQtbTIpCiAgICAgICAgICAgICAgICAoc2V0cSBjdXJyZW50LWxldmVsIG5leHQtbGV2ZWwpCiAg ICAgICAgICAgICAgICAoc2V0cSB0aGlzLWNoaWxkcmVuLXZpc2libGUgbmV4dC1jaGlsZHJlbi12 aXNpYmxlKQogICAgICAgICAgICAgICAgKGZvcndhcmQtY2hhcikKICAgICAgICAgICAgICAgICkp Cjs7OyAgICAgICAgICAgICAodW5sZXNzIChpZiBub2RlLWF0LWxpbmUtbGFzdAo7OzsgICAgICAg ICAgICAgICAgICAgICAgICAgKD49IChwb2ludCkgbm9kZS1hdC1saW5lLWxhc3QpCjs7OyAgICAg ICAgICAgICAgICAgICAgICAgbmlsKQogICAgICAgICAgICAgIDs7IFdyaXRlIGxhc3Qgbm9kZToK ICAgICAgICAgICAgICAoc2V0cSB0aGlzLW0yIG5leHQtbTIpCiAgICAgICAgICAgICAgKHNldHEg Y3VycmVudC1sZXZlbCBuZXh0LWxldmVsKQogICAgICAgICAgICAgIChzZXRxIG5leHQtbm9kZS1z dGFydCAoaWYgbm9kZS1hdC1saW5lLWxhc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgxKyBub2RlLWF0LWxpbmUtbGFzdCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocG9pbnQtbWF4KSkpCiAgICAgICAgICAgICAgKHNldHEgbnVtLWxlZnQt bm9kZXMgKG9yZy1mcmVlbWluZC13cml0ZS1ub2RlIG1tLWJ1ZmZlciBkcmF3ZXJzLXJlZ2V4cCBu dW0tbGVmdC1ub2RlcyBiYXNlLWxldmVsIGN1cnJlbnQtbGV2ZWwgbmV4dC1sZXZlbCB0aGlzLW0y IHRoaXMtbm9kZS1lbmQgdGhpcy1jaGlsZHJlbi12aXNpYmxlIG5leHQtbm9kZS1zdGFydCBuZXh0 LWhhcy1zb21lLXZpc2libGUtY2hpbGQpKQogICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVm ZmVyIG1tLWJ1ZmZlciAoaW5zZXJ0ICI8L25vZGU+XG4iKSkKICAgICAgICAgICAgICA7KQogICAg ICAgICAgICApCiAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBtbS1idWZmZXIKICAgICAg ICAgICAgKHdoaWxlICg+IGN1cnJlbnQtbGV2ZWwgYmFzZS1sZXZlbCkKICAgICAgICAgICAgICAo aW5zZXJ0ICI8L25vZGU+XG4iKQoJICAgICAgKHNldHEgY3VycmVudC1sZXZlbAoJCSAgICAoLSBj dXJyZW50LWxldmVsIChpZiBvZGQtb25seSAyIDEpKSkKICAgICAgICAgICAgICApKQogICAgICAg ICAgKHdpdGgtY3VycmVudC1idWZmZXIgbW0tYnVmZmVyCiAgICAgICAgICAgIChpbnNlcnQgIjwv bWFwPiIpCiAgICAgICAgICAgIChkZWxldGUtdHJhaWxpbmctd2hpdGVzcGFjZSkKICAgICAgICAg ICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKICAgICAgICAgICAgKSkpKSkpCgooZGVmdW4gb3Jn LWZyZWVtaW5kLWdldC1ub2RlLXN0eWxlIChub2RlLW5hbWUpCiAgIk5PVCBSRUFEWSBZRVQuIgog IDs7PG5vZGUgQkFDS0dST1VORF9DT0xPUj0iI2VlZWUwMCIgQ1JFQVRFRD0iMTIzNDY2ODgxNTU5 MyIgTU9ESUZJRUQ9IjEyMzQ2Njg4MTU1OTMiIFNUWUxFPSJidWJibGUiPgogIDs7PGZvbnQgQk9M RD0idHJ1ZSIgTkFNRT0iU2Fuc1NlcmlmIiBTSVpFPSIxMiIvPgogIChsZXQgKG5vZGUtc3R5bGVz CiAgICAgICAgbm9kZS1zdHlsZSkKICAgIChkb2xpc3QgKHN0eWxlLWxpc3Qgb3JnLWZyZWVtaW5k LW5vZGUtc3R5bGUpCiAgICAgIChsZXQgKChub2RlLXJlZ2V4cCAoY2FyIHN0eWxlLWxpc3QpKSkK ICAgICAgICAobWVzc2FnZSAibm9kZS1yZWdleHA9JXMgbm9kZS1uYW1lPSVzIiBub2RlLXJlZ2V4 cCBub2RlLW5hbWUpCiAgICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaC1wIG5vZGUtcmVnZXhwIG5v ZGUtbmFtZSkKICAgICAgICAgIDs7KHNldHEgbm9kZS1zdHlsZSAob3JnLWZyZWVtaW5kLWRvLWFw cGx5LW5vZGUtc3R5bGUgc3R5bGUtbGlzdCkpCiAgICAgICAgICAoc2V0cSBub2RlLXN0eWxlIChj YWRyIHN0eWxlLWxpc3QpKQogICAgICAgICAgKHdoZW4gbm9kZS1zdHlsZQogICAgICAgICAgICAo bWVzc2FnZSAibm9kZS1zdHlsZT0lcyIgbm9kZS1zdHlsZSkKICAgICAgICAgICAgKHNldHEgbm9k ZS1zdHlsZXMgKGFwcGVuZCBub2RlLXN0eWxlcyBub2RlLXN0eWxlKSkpCiAgICAgICAgICApKSkp KQoKKGRlZnVuIG9yZy1mcmVlbWluZC1kby1hcHBseS1ub2RlLXN0eWxlIChzdHlsZS1saXN0KQog IChtZXNzYWdlICJzdHlsZS1saXN0PSVTIiBzdHlsZS1saXN0KQogIChsZXQgKChub2RlLXN0eWxl ICdmb3JrKQogICAgICAgIChjb2xvciAicmVkIikKICAgICAgICAoYmFja2dyb3VuZC1jb2xvciAi eWVsbG93IikKICAgICAgICAoZWRnZS1jb2xvciAiZ3JlZW4iKQogICAgICAgIChlZGdlLXN0eWxl ICdiZXppZXIpCiAgICAgICAgKGVkZ2Utd2lkdGggJ3RoaW4pCiAgICAgICAgKGl0YWxpYyB0KQog ICAgICAgIChib2xkIHQpCiAgICAgICAgKGZvbnQtbmFtZSAiU2Fuc1NlcmlmIikKICAgICAgICAo Zm9udC1zaXplIDEyKSkKICAgIChkb2xpc3QgKHN0eWxlIChjYWRyIHN0eWxlLWxpc3QpKQogICAg ICAobWVzc2FnZSAiICAgIHN0eWxlPSVzIiBzdHlsZSkKICAgICAgKGxldCAoKHdoYXQgKGNhciBz dHlsZSkpKQogICAgICAgIChjb25kCiAgICAgICAgICgoZXEgd2hhdCAnbm9kZS1zdHlsZSkKICAg ICAgICAgIChzZXRxIG5vZGUtc3R5bGUgKGNhZHIgc3R5bGUpKSkKICAgICAgICAgKChlcSB3aGF0 ICdjb2xvcikKICAgICAgICAgIChzZXRxIGNvbG9yIChjYWRyIHN0eWxlKSkpCiAgICAgICAgICgo ZXEgd2hhdCAnYmFja2dyb3VuZC1jb2xvcikKICAgICAgICAgIChzZXRxIGJhY2tncm91bmQtY29s b3IgKGNhZHIgc3R5bGUpKSkKCiAgICAgICAgICgoZXEgd2hhdCAnZWRnZS1jb2xvcikKICAgICAg ICAgIChzZXRxIGVkZ2UtY29sb3IgKGNhZHIgc3R5bGUpKSkKCiAgICAgICAgICgoZXEgd2hhdCAn ZWRnZS1zdHlsZSkKICAgICAgICAgIChzZXRxIGVkZ2Utc3R5bGUgKGNhZHIgc3R5bGUpKSkKCiAg ICAgICAgICgoZXEgd2hhdCAnZWRnZS13aWR0aCkKICAgICAgICAgIChzZXRxIGVkZ2Utd2lkdGgg KGNhZHIgc3R5bGUpKSkKCiAgICAgICAgICgoZXEgd2hhdCAnaXRhbGljKQogICAgICAgICAgKHNl dHEgaXRhbGljIChjYWRyIHN0eWxlKSkpCgogICAgICAgICAoKGVxIHdoYXQgJ2JvbGQpCiAgICAg ICAgICAoc2V0cSBib2xkIChjYWRyIHN0eWxlKSkpCgogICAgICAgICAoKGVxIHdoYXQgJ2ZvbnQt bmFtZSkKICAgICAgICAgIChzZXRxIGZvbnQtbmFtZSAoY2FkciBzdHlsZSkpKQoKICAgICAgICAg KChlcSB3aGF0ICdmb250LXNpemUpCiAgICAgICAgICAoc2V0cSBmb250LXNpemUgKGNhZHIgc3R5 bGUpKSkKICAgICAgICAgKQogICAgICAgIChpbnNlcnQgKGZvcm1hdCAiIHN0eWxlPVwiJXNcIiIg bm9kZS1zdHlsZSkpCiAgICAgICAgKGluc2VydCAoZm9ybWF0ICIgY29sb3I9XCIlc1wiIiBjb2xv cikpCiAgICAgICAgKGluc2VydCAoZm9ybWF0ICIgYmFja2dyb3VuZF9jb2xvcj1cIiVzXCIiIGJh Y2tncm91bmQtY29sb3IpKQogICAgICAgIChpbnNlcnQgIj5cbiIpCiAgICAgICAgKGluc2VydCAi PGVkZ2UiKQogICAgICAgIChpbnNlcnQgKGZvcm1hdCAiIGNvbG9yPVwiJXNcIiIgZWRnZS1jb2xv cikpCiAgICAgICAgKGluc2VydCAoZm9ybWF0ICIgc3R5bGU9XCIlc1wiIiBlZGdlLXN0eWxlKSkK ICAgICAgICAoaW5zZXJ0IChmb3JtYXQgIiB3aWR0aD1cIiVzXCIiIGVkZ2Utd2lkdGgpKQogICAg ICAgIChpbnNlcnQgIi8+XG4iKQogICAgICAgIChpbnNlcnQgIjxmb250IikKICAgICAgICAoaW5z ZXJ0IChmb3JtYXQgIiBpdGFsaWM9XCIlc1wiIiBpdGFsaWMpKQogICAgICAgIChpbnNlcnQgKGZv cm1hdCAiIGJvbGQ9XCIlc1wiIiBib2xkKSkKICAgICAgICAoaW5zZXJ0IChmb3JtYXQgIiBuYW1l PVwiJXNcIiIgZm9udC1uYW1lKSkKICAgICAgICAoaW5zZXJ0IChmb3JtYXQgIiBzaXplPVwiJXNc IiIgZm9udC1zaXplKSkKICAgICAgICApKSkpCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gb3JnLWZy ZWVtaW5kLWZyb20tb3JnLW1vZGUtbm9kZSAobm9kZS1saW5lIG1tLWZpbGUpCiAgIkNvbnZlcnQg bm9kZSBhdCBsaW5lIE5PREUtTElORSB0byB0aGUgRnJlZU1pbmQgZmlsZSBNTS1GSUxFLgpTZWUg YG9yZy1mcmVlbWluZC1mcm9tLW9yZy1tb2RlJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCiAgKGlu dGVyYWN0aXZlCiAgIChwcm9nbgogICAgICh1bmxlc3MgKG9yZy1iYWNrLXRvLWhlYWRpbmcgbmls KQogICAgICAgKGVycm9yICJDYW4ndCBmaW5kIG9yZy1tb2RlIG5vZGUgc3RhcnQiKSkKICAgICAo bGV0KiAoKGxpbmUgKGxpbmUtbnVtYmVyLWF0LXBvcykpCiAgICAgICAgICAgIChkZWZhdWx0LW1t LWZpbGUgKGNvbmNhdCAoaWYgYnVmZmVyLWZpbGUtbmFtZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IGJ1ZmZlci1maWxlLW5h bWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub2ZpbGUiKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1saW5lLSIgKG51bWJlci10by1zdHJp bmcgbGluZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIubW0iKSkKICAg ICAgICAgICAgKG1tLWZpbGUgKHJlYWQtZmlsZS1uYW1lICJPdXRwdXQgRnJlZU1pbmQgZmlsZTog IiBuaWwgbmlsIG5pbCBkZWZhdWx0LW1tLWZpbGUpKSkKICAgICAgIChsaXN0IGxpbmUgbW0tZmls ZSkpKSkKICAod2hlbiAob3JnLWZyZWVtaW5kLWNoZWNrLW92ZXJ3cml0ZSBtbS1maWxlIChjYWxs ZWQtaW50ZXJhY3RpdmVseS1wICdhbnkpKQogICAgKGxldCAoKG9yZy1idWZmZXIgKGN1cnJlbnQt YnVmZmVyKSkKICAgICAgICAgIChtbS1idWZmZXIgKGZpbmQtZmlsZS1ub3NlbGVjdCBtbS1maWxl KSkpCiAgICAgIChvcmctZnJlZW1pbmQtd3JpdGUtbW0tYnVmZmVyIG9yZy1idWZmZXIgbW0tYnVm ZmVyIG5vZGUtbGluZSkKICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgbW0tYnVmZmVyCiAgICAg ICAgKGJhc2ljLXNhdmUtYnVmZmVyKQogICAgICAgICh3aGVuIChjYWxsZWQtaW50ZXJhY3RpdmVs eS1wICdhbnkpCiAgICAgICAgICAoc3dpdGNoLXRvLWJ1ZmZlci1vdGhlci13aW5kb3cgbW0tYnVm ZmVyKQogICAgICAgICAgKHdoZW4gKHktb3Itbi1wICJTaG93IGluIEZyZWVNaW5kPyAiKQogICAg ICAgICAgICAob3JnLWZyZWVtaW5kLXNob3cgYnVmZmVyLWZpbGUtbmFtZSkpKSkpKSkKCjs7OyMj I2F1dG9sb2FkCihkZWZ1biBvcmctZnJlZW1pbmQtZnJvbS1vcmctbW9kZSAob3JnLWZpbGUgbW0t ZmlsZSkKICAiQ29udmVydCB0aGUgYG9yZy1tb2RlJyBmaWxlIE9SRy1GSUxFIHRvIHRoZSBGcmVl TWluZCBmaWxlIE1NLUZJTEUuCkFsbCB0aGUgbm9kZXMgd2lsbCBiZSBvcGVuZWQgb3IgY2xvc2Vk IGluIEZyZWVtaW5kIGp1c3QgYXMgeW91CmhhdmUgdGhlbSBpbiBgb3JnLW1vZGUnLgoKTm90ZSB0 aGF0IGV4cG9ydGluZyB0byBGcmVlbWluZCBhbHNvIGdpdmVzIHlvdSBhbiBhbHRlcm5hdGl2ZSB3 YXkKdG8gZXhwb3J0IGZyb20gYG9yZy1tb2RlJyB0byBodG1sLiAgWW91IGNhbiBjcmVhdGUgYSBk eW5hbWljIGh0bWwKdmVyc2lvbiBvZiB0aGUgeW91ciBvcmcgZmlsZSwgYnkgZmlyc3QgZXhwb3J0 aW5nIHRvIEZyZWVtaW5kIGFuZAp0aGVuIGV4cG9ydGluZyBmcm9tIEZyZWVtaW5kIHRvIGh0bWwu ICBUaGUgJ0FzClhIVE1MIChKYXZhU2NyaXB0KScgdmVyc2lvbiBpbiBGcmVlbWluZCB3b3JrcyB2 ZXJ5IHdlbGwgXChhbmQgeW91CmNhbiB1c2UgYSBDU1Mgc3R5bGVzaGVldCB0byBzdHlsZSBpdCku IgogIDs7IEZpeC1tZTogYmV0dGVyIGRvYywgaW5jbHVkZSByZWNvbW1lbmRhdGlvbnMgZXRjLgog IChpbnRlcmFjdGl2ZQogICAobGV0KiAoKG9yZy1maWxlIGJ1ZmZlci1maWxlLW5hbWUpCiAgICAg ICAgICAoZGVmYXVsdC1tbS1maWxlIChjb25jYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAg IChpZiBvcmctZmlsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlLW5hbWUt bm9uZGlyZWN0b3J5IG9yZy1maWxlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm9m aWxlIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIubW0iKSkKICAgICAgICAgIChtbS1m aWxlIChyZWFkLWZpbGUtbmFtZSAiT3V0cHV0IEZyZWVNaW5kIGZpbGU6ICIgbmlsIG5pbCBuaWwg ZGVmYXVsdC1tbS1maWxlKSkpCiAgICAgKGxpc3Qgb3JnLWZpbGUgbW0tZmlsZSkpKQogICh3aGVu IChvcmctZnJlZW1pbmQtY2hlY2stb3ZlcndyaXRlIG1tLWZpbGUgKGNhbGxlZC1pbnRlcmFjdGl2 ZWx5LXAgJ2FueSkpCiAgICAobGV0ICgob3JnLWJ1ZmZlciAoaWYgb3JnLWZpbGUgKGZpbmQtZmls ZS1ub3NlbGVjdCBvcmctZmlsZSkgKGN1cnJlbnQtYnVmZmVyKSkpCiAgICAgICAgICAobW0tYnVm ZmVyIChmaW5kLWZpbGUtbm9zZWxlY3QgbW0tZmlsZSkpKQogICAgICAob3JnLWZyZWVtaW5kLXdy aXRlLW1tLWJ1ZmZlciBvcmctYnVmZmVyIG1tLWJ1ZmZlciBuaWwpCiAgICAgICh3aXRoLWN1cnJl bnQtYnVmZmVyIG1tLWJ1ZmZlcgogICAgICAgIChiYXNpYy1zYXZlLWJ1ZmZlcikKICAgICAgICAo d2hlbiAoY2FsbGVkLWludGVyYWN0aXZlbHktcCAnYW55KQogICAgICAgICAgKHN3aXRjaC10by1i dWZmZXItb3RoZXItd2luZG93IG1tLWJ1ZmZlcikKICAgICAgICAgICh3aGVuICh5LW9yLW4tcCAi U2hvdyBpbiBGcmVlTWluZD8gIikKICAgICAgICAgICAgKG9yZy1mcmVlbWluZC1zaG93IGJ1ZmZl ci1maWxlLW5hbWUpKSkpKSkpCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gb3JnLWZyZWVtaW5kLWZy b20tb3JnLXNwYXJzZS10cmVlIChvcmctYnVmZmVyIG1tLWZpbGUpCiAgIkNvbnZlcnQgdmlzaWJs ZSBwYXJ0IG9mIGJ1ZmZlciBPUkctQlVGRkVSIHRvIEZyZWVNaW5kIGZpbGUgTU0tRklMRS4iCiAg KGludGVyYWN0aXZlCiAgIChsZXQqICgob3JnLWZpbGUgYnVmZmVyLWZpbGUtbmFtZSkKICAgICAg ICAgIChkZWZhdWx0LW1tLWZpbGUgKGNvbmNhdAogICAgICAgICAgICAgICAgICAgICAgICAgICAg KGlmIG9yZy1maWxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUtbmFtZS1u b25kaXJlY3Rvcnkgb3JnLWZpbGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub2Zp bGUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1zcGFyc2UubW0iKSkKICAgICAgICAg IChtbS1maWxlIChyZWFkLWZpbGUtbmFtZSAiT3V0cHV0IEZyZWVNaW5kIGZpbGU6ICIgbmlsIG5p bCBuaWwgZGVmYXVsdC1tbS1maWxlKSkpCiAgICAgKGxpc3QgKGN1cnJlbnQtYnVmZmVyKSBtbS1m aWxlKSkpCiAgKHdoZW4gKG9yZy1mcmVlbWluZC1jaGVjay1vdmVyd3JpdGUgbW0tZmlsZSAoY2Fs bGVkLWludGVyYWN0aXZlbHktcCAnYW55KSkKICAgIChsZXQgKG9yZy1idWZmZXIKICAgICAgICAg IChtbS1idWZmZXIgKGZpbmQtZmlsZS1ub3NlbGVjdCBtbS1maWxlKSkpCiAgICAgIChzYXZlLXdp bmRvdy1leGN1cnNpb24KICAgICAgICAob3JnLWV4cG9ydC12aXNpYmxlID9cICBuaWwpCiAgICAg ICAgKHNldHEgb3JnLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKSkKICAgICAgKG9yZy1mcmVlbWlu ZC13cml0ZS1tbS1idWZmZXIgb3JnLWJ1ZmZlciBtbS1idWZmZXIgbmlsKQogICAgICAod2l0aC1j dXJyZW50LWJ1ZmZlciBtbS1idWZmZXIKICAgICAgICAoYmFzaWMtc2F2ZS1idWZmZXIpCiAgICAg ICAgKHdoZW4gKGNhbGxlZC1pbnRlcmFjdGl2ZWx5LXAgJ2FueSkKICAgICAgICAgIChzd2l0Y2gt dG8tYnVmZmVyLW90aGVyLXdpbmRvdyBtbS1idWZmZXIpCiAgICAgICAgICAod2hlbiAoeS1vci1u LXAgIlNob3cgaW4gRnJlZU1pbmQ/ICIpCiAgICAgICAgICAgIChvcmctZnJlZW1pbmQtc2hvdyBi dWZmZXItZmlsZS1uYW1lKSkpKSkpKQoKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Owo7OzsgRnJlZU1pbmQgPT4gT3JnCgo7OyAoc29ydCAnKGIgYSBj KSAnb3JnLWZyZWVtaW5kLWx0LXN5bWJvbHMpCihkZWZ1biBvcmctZnJlZW1pbmQtbHQtc3ltYm9s cyAoc3ltLWEgc3ltLWIpCiAgKHN0cmluZzwgKHN5bWJvbC1uYW1lIHN5bS1hKSAoc3ltYm9sLW5h bWUgc3ltLWIpKSkKOzsgKHNvcnQgJygoYiAuIDEpIChhIC4gMikgKGMgLiAzKSkgJ29yZy1mcmVl bWluZC1sdC14bWwtYXR0cnMpCihkZWZ1biBvcmctZnJlZW1pbmQtbHQteG1sLWF0dHJzIChhdHRy LWEgYXR0ci1iKQogIChzdHJpbmc8IChzeW1ib2wtbmFtZSAoY2FyIGF0dHItYSkpIChzeW1ib2wt bmFtZSAoY2FyIGF0dHItYikpKSkKCjs7IHhtbC1wYXJzZS1yZWdpb24gZ2l2ZXMgdGhpbmdzIGxp a2UKOzsgKChwIG5pbCAiXG4iCjs7ICAgICAoYQo7OyAgICAgICgoaHJlZiAuICJsaW5rIikpCjs7 ICAgICAgInRleHQiKQo7OyAgICAgIlxuIgo7OyAgICAgKGIgbmlsICJoZWoiKQo7OyAgICAgIlxu IikpCgo7OyAnKGEgLiBuaWwpCgo7OyAob3JnLWZyZWVtaW5kLXN5bWJvbHM9ICdhIChjYXIgJyhB IEIpKSkKKGRlZnN1YnN0IG9yZy1mcmVlbWluZC1zeW1ib2xzPSAoc3ltLWEgc3ltLWIpCiAgIlJl dHVybiB0IGlmIGRvd25jYXNlZCBuYW1lcyBvZiBTWU0tQSBhbmQgU1lNLUIgYXJlIGVxdWFsLgpT WU0tQSBhbmQgU1lNLUIgc2hvdWxkIGJlIHN5bWJvbHMuIgogIChvciAoZXEgc3ltLWEgc3ltLWIp CiAgICAgIChzdHJpbmc9IChkb3duY2FzZSAoc3ltYm9sLW5hbWUgc3ltLWEpKQogICAgICAgICAg ICAgICAoZG93bmNhc2UgKHN5bWJvbC1uYW1lIHN5bS1iKSkpKSkKCihkZWZ1biBvcmctZnJlZW1p bmQtZ2V0LWNoaWxkcmVuIChwYXJlbnQgcGF0aCkKICAiRmluZCBjaGlsZHJlbiBub2RlIHRvIFBB UkVOVCBmcm9tIFBBVEguClBBVEggc2hvdWxkIGJlIGEgbGlzdCBvZiBzdGVwcywgd2hlcmUgZWFj aCBzdGVwIGhhcyB0aGUgZm9ybQoKICAnKE5PREUtTkFNRSAoQVRUUi1OQU1FIC4gQVRUUi1WQUxV RSkpIgogIDs7IEZpeC1tZTogbWF5YmUgaW1wbGVtZW50IG9wPyBzdGVwOiBOYW1lLCBudW1iZXIs IGF0dHIsIGF0dHIgb3AgdmFsCiAgOzsgRml4LW1lOiBjYXNlIGluc2Vuc2l0aXZlIHZlcnNpb24g Zm9yIGNoaWxkcmVuPwogIChsZXQqICgoY2hpbGRyZW4gKGlmIChub3QgKGxpc3RwIChjYXIgcGFy ZW50KSkpCiAgICAgICAgICAgICAgICAgICAgICAgKGNkZHIgcGFyZW50KQogICAgICAgICAgICAg ICAgICAgICAobGV0IChjcykKICAgICAgICAgICAgICAgICAgICAgICAoZG9saXN0IChwIHBhcmVu dCkKICAgICAgICAgICAgICAgICAgICAgICAgIChkb2xpc3QgKGMgKGNkZHIgcCkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIChhZGQtdG8tbGlzdCAnY3MgYykpKQogICAgICAgICAgICAgICAg ICAgICAgIGNzKQogICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAoc3RlcCAoY2FyIHBh dGgpKQogICAgICAgICAoc3RlcC1ub2RlIChpZiAobGlzdHAgc3RlcCkgKGNhciBzdGVwKSBzdGVw KSkKICAgICAgICAgKHN0ZXAtYXR0ci1saXN0ICh3aGVuIChsaXN0cCBzdGVwKSAoc29ydCAoY2Ry IHN0ZXApICdvcmctZnJlZW1pbmQtbHQteG1sLWF0dHJzKSkpCiAgICAgICAgIChwYXRoLXRhaWwg KGNkciBwYXRoKSkKICAgICAgICAgcGF0aC1jaGlsZHJlbikKICAgIChkb2xpc3QgKGNoaWxkIGNo aWxkcmVuKQogICAgICA7OyBza2lwIHhtbC5lbCBmb3JtYXR0aW5nIG5vZGVzCiAgICAgICh1bmxl c3MgKHN0cmluZ3AgY2hpbGQpCiAgICAgICAgOzsgY29tcGFyZSBub2RlIG5hbWUKICAgICAgICAo d2hlbiAoaWYgKG5vdCBzdGVwLW5vZGUpCiAgICAgICAgICAgICAgICAgIHQgOzsgYW55IG5vZGUg bmFtZQogICAgICAgICAgICAgICAgKG9yZy1mcmVlbWluZC1zeW1ib2xzPSBzdGVwLW5vZGUgKGNh ciBjaGlsZCkpKQogICAgICAgICAgKGlmIChub3Qgc3RlcC1hdHRyLWxpc3QpCiAgICAgICAgICAg ICAgOzsodGhyb3cgJ3BhdGgtY2hpbGQgY2hpbGQpIDs7IG5vIGF0dHIgdG8gY2FyZSBhYm91dAog ICAgICAgICAgICAgIChhZGQtdG8tbGlzdCAncGF0aC1jaGlsZHJlbiBjaGlsZCkKICAgICAgICAg ICAgKGxldCogKChjaGlsZC1hdHRyLWxpc3QgKGNhZHIgY2hpbGQpKQogICAgICAgICAgICAgICAg ICAgKHN0ZXAtYXR0ci1jb3B5IChjb3B5LXNlcXVlbmNlIHN0ZXAtYXR0ci1saXN0KSkpCiAgICAg ICAgICAgICAgKGRvbGlzdCAoY2hpbGQtYXR0ciBjaGlsZC1hdHRyLWxpc3QpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOzsgQ29tcGFyZSBhdHRyIG5hbWVzOgogICAgICAgICAg ICAgICAgKHdoZW4gKG9yZy1mcmVlbWluZC1zeW1ib2xzPSAoY2FhciBzdGVwLWF0dHItY29weSkg KGNhciBjaGlsZC1hdHRyKSkKICAgICAgICAgICAgICAgICAgOzsgQ29tcGFyZSB2YWx1ZXM6CiAg ICAgICAgICAgICAgICAgIChsZXQgKChzdGVwLXZhbCAoY2RhciBzdGVwLWF0dHItY29weSkpCiAg ICAgICAgICAgICAgICAgICAgICAgIChjaGlsZC12YWwgKGNkciBjaGlsZC1hdHRyKSkpCiAgICAg ICAgICAgICAgICAgICAgKHdoZW4gKGlmIChub3Qgc3RlcC12YWwpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHQgOzsgYW55IHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAo c3RyaW5nPSBzdGVwLXZhbCBjaGlsZC12YWwpKQogICAgICAgICAgICAgICAgICAgICAgKHNldHEg c3RlcC1hdHRyLWNvcHkgKGNkciBzdGVwLWF0dHItY29weSkpKSkpKQogICAgICAgICAgICAgIDs7 IERpZCB3ZSBmaW5kIGFsbD8KICAgICAgICAgICAgICAodW5sZXNzIHN0ZXAtYXR0ci1jb3B5CiAg ICAgICAgICAgICAgICA7Oyh0aHJvdyAncGF0aC1jaGlsZCBjaGlsZCkKICAgICAgICAgICAgICAg IChhZGQtdG8tbGlzdCAncGF0aC1jaGlsZHJlbiBjaGlsZCkKICAgICAgICAgICAgICAgICkpKSkp KQogICAgKGlmIHBhdGgtdGFpbAogICAgICAgIChvcmctZnJlZW1pbmQtZ2V0LWNoaWxkcmVuIHBh dGgtY2hpbGRyZW4gcGF0aC10YWlsKQogICAgICBwYXRoLWNoaWxkcmVuKSkpCgooZGVmdW4gb3Jn LWZyZWVtaW5kLWdldC1yaWNoY29udGVudC1ub2RlIChub2RlKQogIChsZXQgKChyYy1ub2Rlcwog ICAgICAgICAob3JnLWZyZWVtaW5kLWdldC1jaGlsZHJlbiBub2RlICcoKHJpY2hjb250ZW50ICh0 eXBlIC4gIk5PREUiKSkgaHRtbCBib2R5KSkpKQogICAgKHdoZW4gKD4gKGxlbmd0aCByYy1ub2Rl cykgMSkKICAgICAgKGx3YXJuIHQgOndhcm5pbmcgIlVuZXhwZWN0ZWQgc3RydWN0dXJlOiBzZXZl cmFsIDxyaWNoY29udGVudCB0eXBlPVwiTk9ERVwiIC4uLj4iKSkKICAgIChjYXIgcmMtbm9kZXMp KSkKCihkZWZ1biBvcmctZnJlZW1pbmQtZ2V0LXJpY2hjb250ZW50LW5vdGUgKG5vZGUpCiAgKGxl dCAoKHJjLW5vdGVzCiAgICAgICAgIChvcmctZnJlZW1pbmQtZ2V0LWNoaWxkcmVuIG5vZGUgJygo cmljaGNvbnRlbnQgKHR5cGUgLiAiTk9URSIpKSBodG1sIGJvZHkpKSkpCiAgICAod2hlbiAoPiAo bGVuZ3RoIHJjLW5vdGVzKSAxKQogICAgICAobHdhcm4gdCA6d2FybmluZyAiVW5leHBlY3RlZCBz dHJ1Y3R1cmU6IHNldmVyYWwgPHJpY2hjb250ZW50IHR5cGU9XCJOT1RFXCIgLi4uPiIpKQogICAg KGNhciByYy1ub3RlcykpKQoKKGRlZnVuIG9yZy1mcmVlbWluZC10ZXN0LWdldC10cmVlLXRleHQg KCkKICAobGV0ICgobm9kZSAnKHAgbmlsICJcbiIKICAgICAgICAgICAgICAgICAoYQogICAgICAg ICAgICAgICAgICAoKGhyZWYgLiAibGluayIpKQogICAgICAgICAgICAgICAgICAidGV4dCIpCiAg ICAgICAgICAgICAgICAgIlxuIgogICAgICAgICAgICAgICAgIChiIG5pbCAiaGVqIikKICAgICAg ICAgICAgICAgICAiXG4iKSkpCiAgICAob3JnLWZyZWVtaW5kLWdldC10cmVlLXRleHQgbm9kZSkp KQo7OyAob3JnLWZyZWVtaW5kLXRlc3QtZ2V0LXRyZWUtdGV4dCkKCihkZWZ1biBvcmctZnJlZW1p bmQtZ2V0LXRyZWUtdGV4dCAobm9kZSkKICAod2hlbiBub2RlCiAgICAobGV0ICgobnR4dCAiIikK ICAgICAgICAgIChsaW5rIG5pbCkKICAgICAgICAgIChsZi1hZnRlciBuaWwpKQogICAgICAoZG9s aXN0IChuIG5vZGUpCiAgICAgICAgKGNhc2UgbgogICAgICAgICAgOzsoYSAoc2V0cSBpcy1saW5r IHQpICkKICAgICAgICAgICgoaDEgaDIgaDMgaDQgaDUgaDYgcCkKICAgICAgICAgICA7OyhzZXRx IG50eHQgKGNvbmNhdCAiXG4iIG50eHQpKQogICAgICAgICAgIChzZXRxIGxmLWFmdGVyIDIpCiAg ICAgICAgICAgKQogICAgICAgICAgKGJyCiAgICAgICAgICAgKHNldHEgbGYtYWZ0ZXIgMSkKICAg ICAgICAgICApCiAgICAgICAgICAodAogICAgICAgICAgIChjb25kCiAgICAgICAgICAgICgoc3Ry aW5ncCBuKQogICAgICAgICAgICAgKHdoZW4gKHN0cmluZz0gbiAiXG4iKSAoc2V0cSBuICIiKSkK ICAgICAgICAgICAgIChpZiBsaW5rCiAgICAgICAgICAgICAgICAgKHNldHEgbnR4dCAoY29uY2F0 IG50eHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltbIiBsaW5rICJdWyIg biAiXV0iKSkKICAgICAgICAgICAgICAgKHNldHEgbnR4dCAoY29uY2F0IG50eHQgbikpKSkKICAg ICAgICAgICAgKChhbmQgbiAobGlzdHAgbikpCiAgICAgICAgICAgICAoaWYgKHN5bWJvbHAgKGNh ciBuKSkKICAgICAgICAgICAgICAgICAoc2V0cSBudHh0IChjb25jYXQgbnR4dCAob3JnLWZyZWVt aW5kLWdldC10cmVlLXRleHQgbikpKQogICAgICAgICAgICAgICA7OyBUaGlzIHNob3VsZCBiZSB0 aGUgYXR0cmlidXRlczoKICAgICAgICAgICAgICAgKGRvbGlzdCAoYXR0LXZhbCBuKQogICAgICAg ICAgICAgICAgIChsZXQgKChhdHQgKGNhciBhdHQtdmFsKSkKICAgICAgICAgICAgICAgICAgICAg ICAodmFsIChjZHIgYXR0LXZhbCkpKQogICAgICAgICAgICAgICAgICAgKHdoZW4gKGVxIGF0dCAn aHJlZikKICAgICAgICAgICAgICAgICAgICAgKHNldHEgbGluayB2YWwpKSkpKQogICAgICAgICAg ICAgKSkpKSkKICAgICAgKGlmIGxmLWFmdGVyCiAgICAgICAgICAoc2V0cSBudHh0IChjb25jYXQg bnR4dCAobWFrZS1zdHJpbmcgbGYtYWZ0ZXIgP1xuKSkpCiAgICAgICAgKHNldHEgbnR4dCAoY29u Y2F0IG50eHQgIiAiKSkpCiAgICAgIDs7KHNldHEgbnR4dCAoY29uY2F0IG50eHQgKGZvcm1hdCAi eyVzfSIgbikpKQogICAgICBudHh0KSkpCgooZGVmdW4gb3JnLWZyZWVtaW5kLWdldC1yaWNoY29u dGVudC1ub2RlLXRleHQgKG5vZGUpCiAgIkdldCB0aGUgbm9kZSB0ZXh0IGFzIGZyb20gdGhlIHJp Y2hjb250ZW50IG5vZGUgTk9ERS4iCiAgKHNhdmUtbWF0Y2gtZGF0YQogICAgKGxldCogKChyYyAo b3JnLWZyZWVtaW5kLWdldC1yaWNoY29udGVudC1ub2RlIG5vZGUpKQogICAgICAgICAgICh0eHQg KG9yZy1mcmVlbWluZC1nZXQtdHJlZS10ZXh0IHJjKSkpCiAgICAgIDs7KHdoZW4gdHh0IChzZXRx IHR4dCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChyeCAoMSsgd2hpdGVzcGFjZSkpICIgIiB0 eHQpKSkKICAgICAgdHh0CiAgICAgICkpKQoKKGRlZnVuIG9yZy1mcmVlbWluZC1nZXQtcmljaGNv bnRlbnQtbm90ZS10ZXh0IChub2RlKQogICJHZXQgdGhlIG5vZGUgdGV4dCBhcyBmcm9tIHRoZSBy aWNoY29udGVudCBub3RlIE5PREUuIgogIChzYXZlLW1hdGNoLWRhdGEKICAgIChsZXQqICgocmMg KG9yZy1mcmVlbWluZC1nZXQtcmljaGNvbnRlbnQtbm90ZSBub2RlKSkKICAgICAgICAgICAodHh0 ICh3aGVuIHJjIChvcmctZnJlZW1pbmQtZ2V0LXRyZWUtdGV4dCByYykpKSkKICAgICAgOzsod2hl biB0eHQgKHNldHEgdHh0IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgKHJ4ICgxKyB3aGl0ZXNw YWNlKSkgIiAiIHR4dCkpKQogICAgICB0eHQKICAgICAgKSkpCgooZGVmdW4gb3JnLWZyZWVtaW5k LWdldC1pY29uLW5hbWVzIChub2RlKQogIChsZXQqICgoaWNvbi1ub2RlcyAob3JnLWZyZWVtaW5k LWdldC1jaGlsZHJlbiBub2RlICcoKGljb24gKSkpKQogICAgICAgICBuYW1lcykKICAgIChkb2xp c3QgKGljbiBpY29uLW5vZGVzKQogICAgICAoc2V0cSBuYW1lcyAoY29ucyAoY2RyIChhc3NxICdi dWlsdGluIChjYWRyIGljbikpKSBuYW1lcykpKQogICAgOzsgKGljb24gKGJ1aWx0aW4gLiAiZnVs bC0xIikpCiAgICBuYW1lcykpCgooZGVmdW4gb3JnLWZyZWVtaW5kLW5vZGUtdG8tb3JnIChub2Rl IGxldmVsIHNraXAtbGV2ZWxzKQogIChsZXQgKChxbmFtZSAoY2FyIG5vZGUpKQogICAgICAgIChh dHRyaWJ1dGVzIChjYWRyIG5vZGUpKQogICAgICAgIHRleHQKICAgICAgICA7OyBGaXgtbWU6IG5v dGUgaXMgbmV2ZXIgaW5zZXJ0ZWQKICAgICAgICAobm90ZSAob3JnLWZyZWVtaW5kLWdldC1yaWNo Y29udGVudC1ub3RlLXRleHQgbm9kZSkpCiAgICAgICAgKG1hcmsgIi0tIFRoaXMgaXMgbW9yZSBh Ym91dCAiKQogICAgICAgIChpY29ucyAob3JnLWZyZWVtaW5kLWdldC1pY29uLW5hbWVzIG5vZGUp KQogICAgICAgIChjaGlsZHJlbiAoY2RkciBub2RlKSkpCiAgICAod2hlbiAoPCAwICgtIGxldmVs IHNraXAtbGV2ZWxzKSkKICAgICAgKGRvbGlzdCAoYXR0cmliIGF0dHJpYnV0ZXMpCiAgICAgICAg KGNhc2UgKGNhciBhdHRyaWIpCiAgICAgICAgICAoJ1RFWFQgKHNldHEgdGV4dCAoY2RyIGF0dHJp YikpKQogICAgICAgICAgKCd0ZXh0IChzZXRxIHRleHQgKGNkciBhdHRyaWIpKSkpKQogICAgICAo dW5sZXNzIHRleHQKICAgICAgICA7OyBUaGVyZSBzaG91bGQgYmUgYSByaWNoY29udGVudCBub2Rl IGhvbGRpbmcgdGhlIHRleHQ6CiAgICAgICAgKHNldHEgdGV4dCAob3JnLWZyZWVtaW5kLWdldC1y aWNoY29udGVudC1ub2RlLXRleHQgbm9kZSkpKQogICAgICAod2hlbiBpY29ucwogICAgICAgICh3 aGVuIChtZW1iZXIgImZ1bGwtMSIgaWNvbnMpIChzZXRxIHRleHQgKGNvbmNhdCAiWyNBXSAiIHRl eHQpKSkKICAgICAgICAod2hlbiAobWVtYmVyICJmdWxsLTIiIGljb25zKSAoc2V0cSB0ZXh0IChj b25jYXQgIlsjQl0gIiB0ZXh0KSkpCiAgICAgICAgKHdoZW4gKG1lbWJlciAiZnVsbC0zIiBpY29u cykgKHNldHEgdGV4dCAoY29uY2F0ICJbI0NdICIgdGV4dCkpKQogICAgICAgICh3aGVuIChtZW1i ZXIgImZ1bGwtNCIgaWNvbnMpIChzZXRxIHRleHQgKGNvbmNhdCAiWyNEXSAiIHRleHQpKSkKICAg ICAgICAod2hlbiAobWVtYmVyICJmdWxsLTUiIGljb25zKSAoc2V0cSB0ZXh0IChjb25jYXQgIlsj RV0gIiB0ZXh0KSkpCiAgICAgICAgKHdoZW4gKG1lbWJlciAiZnVsbC02IiBpY29ucykgKHNldHEg dGV4dCAoY29uY2F0ICJbI0ZdICIgdGV4dCkpKQogICAgICAgICh3aGVuIChtZW1iZXIgImZ1bGwt NyIgaWNvbnMpIChzZXRxIHRleHQgKGNvbmNhdCAiWyNHXSAiIHRleHQpKSkKICAgICAgICAod2hl biAobWVtYmVyICJidXR0b25fY2FuY2VsIiBpY29ucykgKHNldHEgdGV4dCAoY29uY2F0ICJUT0RP ICIgdGV4dCkpKQogICAgICAgICkKICAgICAgKGlmIChhbmQgbm90ZQogICAgICAgICAgICAgICAo c3RyaW5nPSBtYXJrIChzdWJzdHJpbmcgbm90ZSAwIChsZW5ndGggbWFyaykpKSkKICAgICAgICAg IChwcm9nbgogICAgICAgICAgICAoc2V0cSB0ZXh0IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcg IlxuICQiICIiIHRleHQpKQogICAgICAgICAgICAoaW5zZXJ0IHRleHQpKQogICAgICAgIChjYXNl IHFuYW1lCiAgICAgICAgICAoJ25vZGUKICAgICAgICAgICAoaW5zZXJ0IChtYWtlLXN0cmluZyAo LSBsZXZlbCBza2lwLWxldmVscykgPyopICIgIiB0ZXh0ICJcbiIpCiAgICAgICAgICAgKHdoZW4g bm90ZQogICAgICAgICAgICAgKGluc2VydCAiOkNPTU1FTlQ6XG4iIG5vdGUgIlxuOkVORDpcbiIp KQogICAgICAgICAgICkpKSkKICAgIChkb2xpc3QgKGNoaWxkIGNoaWxkcmVuKQogICAgICAodW5s ZXNzIChvciAobnVsbCBjaGlsZCkKICAgICAgICAgICAgICAgICAgKHN0cmluZ3AgY2hpbGQpKQog ICAgICAgIChvcmctZnJlZW1pbmQtbm9kZS10by1vcmcgY2hpbGQgKDErIGxldmVsKSBza2lwLWxl dmVscykpKSkpCgo7OyBGaXgtbWU6IHB1dCBiYWNrIHNwZWNpYWwgdGhpbmdzLCBsaWtlIGRyYXdl cnMgdGhhdCBhcmUgc3RvcmVkIGluCjs7IHRoZSBub3Rlcy4gU2hvdWxkIG1heWJlIGFsbCBub3Rl cyBjb250ZW50cyBiZSBwdXQgaW4gZHJhd2Vycz8KOzs7IyMjYXV0b2xvYWQKKGRlZnVuIG9yZy1m cmVlbWluZC10by1vcmctbW9kZSAobW0tZmlsZSBvcmctZmlsZSkKICAiQ29udmVydCBGcmVlTWlu ZCBmaWxlIE1NLUZJTEUgdG8gYG9yZy1tb2RlJyBmaWxlIE9SRy1GSUxFLiIKICAoaW50ZXJhY3Rp dmUKICAgKHNhdmUtbWF0Y2gtZGF0YQogICAgIChsZXQqICgobW0tZmlsZSAoYnVmZmVyLWZpbGUt bmFtZSkpCiAgICAgICAgICAgIChkZWZhdWx0LW9yZy1maWxlIChjb25jYXQgKGZpbGUtbmFtZS1u b25kaXJlY3RvcnkgbW0tZmlsZSkgIi5vcmciKSkKICAgICAgICAgICAgKG9yZy1maWxlIChyZWFk LWZpbGUtbmFtZSAiT3V0cHV0IG9yZy1tb2RlIGZpbGU6ICIgbmlsIG5pbCBuaWwgZGVmYXVsdC1v cmctZmlsZSkpKQogICAgICAgKGxpc3QgbW0tZmlsZSBvcmctZmlsZSkpKSkKICAod2hlbiAob3Jn LWZyZWVtaW5kLWNoZWNrLW92ZXJ3cml0ZSBvcmctZmlsZSAoY2FsbGVkLWludGVyYWN0aXZlbHkt cCAnYW55KSkKICAgIChsZXQgKChtbS1idWZmZXIgKGZpbmQtZmlsZS1ub3NlbGVjdCBtbS1maWxl KSkKICAgICAgICAgIChvcmctYnVmZmVyIChmaW5kLWZpbGUtbm9zZWxlY3Qgb3JnLWZpbGUpKSkK ICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgbW0tYnVmZmVyCiAgICAgICAgKGxldCogKCh4bWwt bGlzdCAoeG1sLXBhcnNlLWZpbGUgbW0tZmlsZSkpCiAgICAgICAgICAgICAgICh0b3Atbm9kZSAo Y2FkciAoY2RkYXIgeG1sLWxpc3QpKSkKICAgICAgICAgICAgICAgKG5vdGUgKG9yZy1mcmVlbWlu ZC1nZXQtcmljaGNvbnRlbnQtbm90ZS10ZXh0IHRvcC1ub2RlKSkKICAgICAgICAgICAgICAgKHNr aXAtbGV2ZWxzCiAgICAgICAgICAgICAgICAoaWYgKGFuZCBub3RlCiAgICAgICAgICAgICAgICAg ICAgICAgICAoc3RyaW5nLW1hdGNoIChyeCBib2wgIi0tb3JnLW1vZGU6IFdIT0xFIEZJTEUiIGVv bCkgbm90ZSkpCiAgICAgICAgICAgICAgICAgICAgMQogICAgICAgICAgICAgICAgICAwKSkpCiAg ICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBvcmctYnVmZmVyCiAgICAgICAgICAgIChlcmFz ZS1idWZmZXIpCiAgICAgICAgICAgIChvcmctZnJlZW1pbmQtbm9kZS10by1vcmcgdG9wLW5vZGUg MSBza2lwLWxldmVscykKICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKICAgICAg ICAgICAgKG9yZy1zZXQtdGFncyB0IHQpIDs7IEFsaWduIGFsbCB0YWdzCiAgICAgICAgICAgICkK ICAgICAgICAgIChzd2l0Y2gtdG8tYnVmZmVyLW90aGVyLXdpbmRvdyBvcmctYnVmZmVyKQogICAg ICAgICAgKSkpKSkKCihwcm92aWRlICdvcmctZnJlZW1pbmQpCgo7OyBhcmNoLXRhZzogZTdiMGQ3 NzYtOTRmZC00MDRhLWIzNWUtMGY4NTVmYWUzNjI3Cgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7OyBvcmctZnJl ZW1pbmQuZWwgZW5kcyBoZXJlCg== --001636310673212dad0491456439 Content-Type: application/octet-stream; name="org-freemind-various.diff" Content-Disposition: attachment; filename="org-freemind-various.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gelx5scr1 PT09IG1vZGlmaWVkIGZpbGUgJ2xpc3Avb3JnL29yZy1mcmVlbWluZC5lbCcNCi0tLSB0cnVuay9s aXNwL29yZy9vcmctZnJlZW1pbmQuZWwJMjAxMC0wNC0xNSAxMDoxMTo1MiArMDAwMA0KKysrIHBh dGNoZWQvbGlzcC9vcmcvb3JnLWZyZWVtaW5kLmVsCTIwMTAtMDktMjcgMjI6MzM6MDMgKzAwMDAN CkBAIC0xNTUsOCArMTU1LDIyIEBADQogICA6Z3JvdXAgJ2ZyZWVtaW5kKQ0KIA0KIDs7OyMjI2F1 dG9sb2FkDQotKGRlZnVuIG9yZy1leHBvcnQtYXMtZnJlZW1pbmQgKGFyZyAmb3B0aW9uYWwgaGlk ZGVuIGV4dC1wbGlzdA0KKyhkZWZ1biBvcmctZXhwb3J0LWFzLWZyZWVtaW5kICgmb3B0aW9uYWwg aGlkZGVuIGV4dC1wbGlzdA0KIAkJCQkgICB0by1idWZmZXIgYm9keS1vbmx5IHB1Yi1kaXIpDQor ICAiRXhwb3J0IHRoZSBjdXJyZW50IGJ1ZmZlciBhcyBhIEZyZWVtaW5kIGZpbGUuDQorSWYgdGhl cmUgaXMgYW4gYWN0aXZlIHJlZ2lvbiwgZXhwb3J0IG9ubHkgdGhlIHJlZ2lvbi4gIEhJRERFTiBp cw0KK29ic29sZXRlIGFuZCBkb2VzIG5vdGhpbmcuICBFWFQtUExJU1QgaXMgYSBwcm9wZXJ0eSBs aXN0IHdpdGgNCitleHRlcm5hbCBwYXJhbWV0ZXJzIG92ZXJyaWRpbmcgb3JnLW1vZGUncyBkZWZh dWx0IHNldHRpbmdzLCBidXQNCitzdGlsbCBpbmZlcmlvciB0byBmaWxlLWxvY2FsIHNldHRpbmdz LiAgV2hlbiBUTy1CVUZGRVIgaXMNCitub24tbmlsLCBjcmVhdGUgYSBidWZmZXIgd2l0aCB0aGF0 IG5hbWUgYW5kIGV4cG9ydCB0byB0aGF0DQorYnVmZmVyLiAgSWYgVE8tQlVGRkVSIGlzIHRoZSBz eW1ib2wgYHN0cmluZycsIGRvbid0IGxlYXZlIGFueQ0KK2J1ZmZlciBiZWhpbmQgYnV0IGp1c3Qg cmV0dXJuIHRoZSByZXN1bHRpbmcgSFRNTCBhcyBhIHN0cmluZy4NCitXaGVuIEJPRFktT05MWSBp cyBzZXQsIGRvbid0IHByb2R1Y2UgdGhlIGZpbGUgaGVhZGVyIGFuZCBmb290ZXIsDQorc2ltcGx5 IHJldHVybiB0aGUgY29udGVudCBvZiB0aGUgZG9jdW1lbnQgKGFsbCB0b3AgbGV2ZWwNCitzZWN0 aW9ucykuICBXaGVuIFBVQi1ESVIgaXMgc2V0LCB1c2UgdGhpcyBhcyB0aGUgcHVibGlzaGluZw0K K2RpcmVjdG9yeS4NCisNCitTZWUgYG9yZy1mcmVlbWluZC1mcm9tLW9yZy1tb2RlJyBmb3IgbW9y ZSBpbmZvcm1hdGlvbi4iDQogICAoaW50ZXJhY3RpdmUgIlAiKQ0KICAgKGxldCogKChvcHQtcGxp c3QgKG9yZy1jb21iaW5lLXBsaXN0cyAob3JnLWRlZmF1bHQtZXhwb3J0LXBsaXN0KQ0KIAkJCQkJ ZXh0LXBsaXN0DQpAQCAtMjAzLDcgKzIxNywyMCBAQA0KICAgICAgIChsZXQgKChuYW1lIChyZWFk LWZpbGUtbmFtZSAiRnJlZU1pbmQgZmlsZTogIg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBuaWwgbmlsIG5pbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo aWYgKGJ1ZmZlci1maWxlLW5hbWUpDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSAoYnVmZmVyLWZpbGUtbmFtZSkpDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0KiAoKG5hbWUtZXh0IChmaWxlLW5h bWUtbm9uZGlyZWN0b3J5IChidWZmZXItZmlsZS1uYW1lKSkpDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUgKGZpbGUtbmFtZS1zYW5zLWV4dGVuc2lv biBuYW1lLWV4dCkpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGV4dCAoZmlsZS1uYW1lLWV4dGVuc2lvbiBuYW1lLWV4dCkpKQ0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKChzdHJpbmc9ICJtbSIgZXh0KQ0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUtZXh0KQ0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmc9ICJvcmciIGV4dCkNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgobmFtZS1tbSAoY29uY2F0IG5hbWUg Ii5tbSIpKSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp ZiAoZmlsZS1leGlzdHMtcCBuYW1lLW1tKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5hbWUtbW0NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKG1lc3NhZ2UgIk5vdCBleHBvcnRlZCB0byBGcmVlbWluZCBmb3Jt YXQgeWV0IikNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IiIpKSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0DQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIpKSkNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiIikNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOzsgRml4LW1lOiBJcyB0aGlzIGFuIEVtYWNzIGJ1Zz8NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOzsgVGhpcyBwcmVkaWNhdGUgZnVuY3Rpb24gaXMgbmV2ZXIN CkBAIC0yMjcsNyArMjU0LDcgQEANCiAgICAgKGRvbGlzdCAoY2MgY2hhcnMpDQogICAgICAgKHNl dHEgZm0tc3RyDQogICAgICAgICAgICAgKGNvbmNhdCBmbS1zdHINCi0gICAgICAgICAgICAgICAg ICAgIChpZiAoPCBjYyAyNTYpDQorICAgICAgICAgICAgICAgICAgICAoaWYgKDwgY2MgMTYwKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25kDQogICAgICAgICAgICAgICAgICAgICAgICAg ICgoPSBjYyA/XCIpICImcXVvdDsiKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAoKD0gY2Mg P1wmKSAiJmFtcDsiKQ0KQEAgLTI2NSwxNSArMjkyLDM4IEBADQogICAgICAgICAgICAgICAgICAg ICAgICAgKSkpDQogICAgICAgICAgICAgICAgICAgb3JnLXN0cikpKSkNCiANCi07OyAob3JnLWZy ZWVtaW5kLXRlc3QtZXNjYXBlKQ0KLShkZWZ1biBvcmctZnJlZW1pbmQtdGVzdC1lc2NhcGUgKCkN Ci0gIChsZXQqICgoc3RyMSAiYSBxdW90ZTogXCIsIGFuIGFtcDogJiwgbHQ6IDw7IG92ZXIgMjU2 OiD25eTWxcQiKQ0KLSAgICAgICAgIChzdHIyIChvcmctZnJlZW1pbmQtZXNjYXBlLXN0ci1mcm9t LW9yZyBzdHIxKSkNCi0gICAgICAgICAoc3RyMyAob3JnLWZyZWVtaW5kLXVuZXNjYXBlLXN0ci10 by1vcmcgc3RyMikpDQorOzsgKGxldCogKChzdHIxICJhIHF1b3RlOiBcIiwgYW4gYW1wOiAmLCBs dDogPDsgb3ZlciAyNTY6IPbl5NbFxCIpDQorOzsgICAgICAgIChzdHIyIChvcmctZnJlZW1pbmQt ZXNjYXBlLXN0ci1mcm9tLW9yZyBzdHIxKSkNCis7OyAgICAgICAgKHN0cjMgKG9yZy1mcmVlbWlu ZC11bmVzY2FwZS1zdHItdG8tb3JnIHN0cjIpKSkNCis7OyAgICAgKHVubGVzcyAoc3RyaW5nPSBz dHIxIHN0cjMpDQorOzsgICAgICAgKGVycm9yICJFcnJvciBzdHIzPSVzIiBzdHIzKSkpDQorDQor KGRlZnVuIG9yZy1mcmVlbWluZC1jb252ZXJ0LWxpbmtzLWhlbHBlciAobWF0Y2hlZCkNCisgICJI ZWxwZXIgZm9yIGBvcmctZnJlZW1pbmQtY29udmVydC1saW5rcy1mcm9tLW9yZycuDQorTUFUQ0hF RCBpcyB0aGUgbGluayBqdXN0IG1hdGNoZWQuIg0KKyAgKGxldCogKChsaW5rIChtYXRjaC1zdHJp bmcgMSBtYXRjaGVkKSkNCisgICAgICAgICAodGV4dCAobWF0Y2gtc3RyaW5nIDIgbWF0Y2hlZCkp DQorICAgICAgICAgKGV4dCAoZmlsZS1uYW1lLWV4dGVuc2lvbiBsaW5rKSkNCisgICAgICAgICAo Y29sLXBvcyAoc3RyaW5nLW1hdGNoLXAgIjoiIGxpbmspKQ0KKyAgICAgICAgIChpcy1pbWcgKGFu ZCAoaW1hZ2UtdHlwZS1mcm9tLWZpbGUtbmFtZSBsaW5rKQ0KKyAgICAgICAgICAgICAgICAgICAg ICAobGV0ICgodXJsLXR5cGUgKHN1YnN0cmluZyBsaW5rIDAgY29sLXBvcykpKQ0KKyAgICAgICAg ICAgICAgICAgICAgICAgIChtZW1iZXIgdXJsLXR5cGUgJygiZmlsZSIgImh0dHAiICJodHRwcyIp KSkpKQ0KICAgICAgICAgKQ0KLSAgICAodW5sZXNzIChzdHJpbmc9IHN0cjEgc3RyMykNCi0gICAg ICAoZXJyb3IgInN0cjM9JXMiIHN0cjMpKQ0KLSAgICApKQ0KKyAgICAoaWYgaXMtaW1nDQorICAg ICAgICA7OyBGaXgtbWU6IEkgY2FuJ3QgZmluZCBhIHdheSB0byBnZXQgdGhlIGJvcmRlciB0byAi c2hyaW5rDQorICAgICAgICA7OyB3cmFwIiBhcm91bmQgdGhlIGltYWdlIHVzaW5nIDxkaXY+Lg0K KyAgICAgICAgOzsNCisgICAgICAgIDs7IChjb25jYXQgIjxkaXYgc3R5bGU9XCJib3JkZXI6IHNv bGlkIDFweCAjZGRkOyB3aWR0aDphdXRvO1wiPiINCisgICAgICAgIDs7ICAgICAgICAgIjxpbWcg c3JjPVwiIiBsaW5rICJcIiBhbHQ9XCIiIHRleHQgIlwiIC8+Ig0KKyAgICAgICAgOzsgICAgICAg ICAiPGJyIC8+Ig0KKyAgICAgICAgOzsgICAgICAgICAiPGk+IiB0ZXh0ICI8L2k+Ig0KKyAgICAg ICAgOzsgICAgICAgICAiPC9kaXY+IikNCisgICAgICAgIChjb25jYXQgIjx0YWJsZSBib3JkZXI9 XCIwXCIgc3R5bGU9XCJib3JkZXI6IHNvbGlkIDFweCAjZGRkO1wiPjx0cj48dGQ+Ig0KKyAgICAg ICAgICAgICAgICAiPGltZyBzcmM9XCIiIGxpbmsgIlwiIGFsdD1cIiIgdGV4dCAiXCIgLz4iDQor ICAgICAgICAgICAgICAgICI8YnIgLz4iDQorICAgICAgICAgICAgICAgICI8aT4iIHRleHQgIjwv aT4iDQorICAgICAgICAgICAgICAgICI8L3RkPjwvdHI+PC90YWJsZT4iKQ0KKyAgICAgIChjb25j YXQgIjxhIGhyZWY9XCIiIGxpbmsgIlwiPiIgdGV4dCAiPC9hPiIpKSkpDQogDQogKGRlZnVuIG9y Zy1mcmVlbWluZC1jb252ZXJ0LWxpbmtzLWZyb20tb3JnIChvcmctc3RyKQ0KICAgIkNvbnZlcnQg b3JnIGxpbmtzIGluIE9SRy1TVFIgdG8gZnJlZW1pbmQgbGlua3MgYW5kIHJldHVybiB0aGUgcmVz dWx0LiINCkBAIC0yODYsMTMgKzMzNiwxOCBAQA0KICAgICAgICAgICAgICAgICAgICAgICAoMSsN CiAgICAgICAgICAgICAgICAgICAgICAgIChhbnkgIi0lLj9AYS16QS1aMC05KClfLzp+PSYjIikp KSkNCiAgICAgICAgICAgICAgICAgICJbW1xcMV1bXFwxXV0iDQotICAgICAgICAgICAgICAgICBv cmctc3RyKSkpDQorICAgICAgICAgICAgICAgICBvcmctc3RyDQorICAgICAgICAgICAgICAgICBu aWwgOzsgZml4ZWRjYXNlDQorICAgICAgICAgICAgICAgICBuaWwgOzsgbGl0ZXJhbA0KKyAgICAg ICAgICAgICAgICAgMSAgIDs7IHN1YmV4cA0KKyAgICAgICAgICAgICAgICAgKSkpDQogICAgIChy ZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgKHJ4ICJbWyINCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHN1Ym1hdGNoICgqPyBub25sKSkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIl1bIg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vi bWF0Y2ggKCo/IG5vbmwpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXV0i KQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8YSBocmVmPVwiXFwxXCI+XFwyPC9h PiINCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyI8YSBocmVmPVwiXFwxXCI+XFwy PC9hPiINCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3JnLWZyZWVtaW5kLWNvbnZl cnQtbGlua3MtaGVscGVyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm0tc3RyKSkp DQogDQogOzsob3JnLWZyZWVtaW5kLWNvbnZlcnQtbGlua3MtdG8tb3JnICI8YSBocmVmPVwiaHR0 cDovL3d3dy5zb21ld2hlcmUvXCI+bGluay10ZXh0PC9hPiIpDQpAQCAtMzE5LDI5ICszNzQsNDMg QEANCiA7OyhkZWZ1biBvcmctZnJlZW1pbmQtY29udmVydC1kcmF3ZXJzLWZyb20tb3JnICh0ZXh0 KQ0KIDs7ICApDQogDQotOzsgKG9yZy1mcmVlbWluZC10ZXN0LWxpbmtzKQ0KLTs7IChkZWZ1biBv cmctZnJlZW1pbmQtdGVzdC1saW5rcyAoKQ0KIDs7ICAgKGxldCogKChzdHIxICJbW2h0dHA6Ly93 d3cuc29tZXdoZXJlL11bbGluay10ZXh0XSIpDQogOzsgICAgICAgICAgKHN0cjIgKG9yZy1mcmVl bWluZC1jb252ZXJ0LWxpbmtzLWZyb20tb3JnIHN0cjEpKQ0KLTs7ICAgICAgICAgIChzdHIzIChv cmctZnJlZW1pbmQtY29udmVydC1saW5rcy10by1vcmcgc3RyMikpDQotOzsgICAgICAgICApDQor OzsgICAgICAgIChzdHIzIChvcmctZnJlZW1pbmQtY29udmVydC1saW5rcy10by1vcmcgc3RyMikp KQ0KIDs7ICAgICAodW5sZXNzIChzdHJpbmc9IHN0cjEgc3RyMykNCi07OyAgICAgICAoZXJyb3Ig InN0cjM9JXMiIHN0cjMpKQ0KLTs7ICAgICApKQ0KKzs7ICAgICAoZXJyb3IgIkVycm9yIHN0cjM9 JXMiIHN0cjMpKSkNCiANCiA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7OzsNCiA7OzsgT3JnID0+IEZyZWVNaW5kDQogDQorKGRlZnVuIG9yZy1mcmVlbWlu ZC1ib2wtaGVscGVyIChtYXRjaGVkKQ0KKyAgIkhlbHBlciBmb3IgYG9yZy1mcmVlbWluZC1jb252 ZXJ0LXRleHQtcCcuDQorTUFUQ0hFRCBpcyB0aGUgbGluayBqdXN0IG1hdGNoZWQuIg0KKyAgKGxl dCAoKHJlcyAiIikpDQorICAgIChkb2xpc3QgKGNjIChhcHBlbmQgbWF0Y2hlZCBuaWwpKQ0KKyAg ICAgIChpZiAoPSAzMiBjYykNCisgICAgICAgICAgOzsoc2V0cSByZXMgKGNvbmNhdCByZXMgIiZu YnNwOyIpKQ0KKyAgICAgICAgICA7OyBXZSBuZWVkIHRvIHVzZSB0aGUgbnVtZXJpY2FsIHZlcnNp b24uIE90aGVyd2lzZSBGcmVlbWluZA0KKyAgICAgICAgICA7OyB2ZXIgMC45LjAgUkM5IGNhbiBu b3QgZXhwb3J0IHRvIGh0bWwvamF2YXNjcmlwdC4NCisgICAgICAgICAgKHNldHEgcmVzIChjb25j YXQgcmVzICImIzE2MDsiKSkNCisgICAgICAgIChzZXRxIHJlcyAoY29uY2F0IHJlcyAoY2hhci10 by1zdHJpbmcgY2MpKSkpKQ0KKyAgICByZXMpKQ0KKzs7IChzZXRxIHggKHJlcGxhY2UtcmVnZXhw LWluLXN0cmluZyAiXG4gKyIgJ29yZy1mcmVlbWluZC1ib2wtbmJzcC1oZWxwZXIgIlxuICAiKSkN CisNCiAoZGVmdW4gb3JnLWZyZWVtaW5kLWNvbnZlcnQtdGV4dC1wICh0ZXh0KQ0KICAgIkNvbnZl cnQgVEVYVCB0byBodG1sIHdpdGggPHA+IHBhcmFncmFwaHMuIg0KICAgKHNldHEgdGV4dCAob3Jn LWZyZWVtaW5kLWVzY2FwZS1zdHItZnJvbS1vcmcgdGV4dCkpDQotICAoc2V0cSB0ZXh0IChyZXBs YWNlLXJlZ2V4cC1pbi1zdHJpbmcgKHJ4ICJcbiIgKDArIGJsYW5rKSAiXG4iKSAiPC9wPjxwPlxu IiB0ZXh0KSkNCi0gIDs7KHNldHEgdGV4dCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChyeCBi b2wgKDErIGJsYW5rKSBlb2wpICIiIHRleHQpKQ0KLSAgOzsoc2V0cSB0ZXh0IChyZXBsYWNlLXJl Z2V4cC1pbi1zdHJpbmcgKHJ4IGJvbCAoMSsgYmxhbmspKSAiPGJyIC8+IiB0ZXh0KSkNCisNCisg IChzZXRxIHRleHQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiXFwoW1s6c3BhY2U6XV1cXClc XCgvXFwpXFwoW14vXStcXClcXCgvXFwpXFwoW1s6c3BhY2U6XV1cXCkiICJcXDE8aT5cXDM8L2k+ XFw1IiB0ZXh0KSkNCisgIChzZXRxIHRleHQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiXFwo W1s6c3BhY2U6XV1cXClcXChcKlxcKVxcKFteKl0rXFwpXFwoXCpcXClcXChbWzpzcGFjZTpdXVxc KSIgIlxcMTxiPlxcMzwvYj5cXDUiIHRleHQpKQ0KKw0KKyAgKHNldHEgdGV4dCAoY29uY2F0ICI8 cD4iIHRleHQpKQ0KKyAgKHNldHEgdGV4dCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChyeCAi XG4iICgwKyBibGFuaykgIlxuIikgIjwvcD48cD4iIHRleHQpKQ0KKyAgKHNldHEgdGV4dCAocmVw bGFjZS1yZWdleHAtaW4tc3RyaW5nICJcXCg/OjxwPlxcfFxuXFwpICsiICdvcmctZnJlZW1pbmQt Ym9sLWhlbHBlciB0ZXh0KSkNCiAgIChzZXRxIHRleHQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmlu ZyAiXG4iICI8YnIgLz4iIHRleHQpKQ0KLSAgKGNvbmNhdCAiPHA+Ig0KLSAgICAgICAgICAob3Jn LWZyZWVtaW5kLWNvbnZlcnQtbGlua3MtZnJvbS1vcmcgdGV4dCkNCi0gICAgICAgICAgIjwvcD5c biIpKQ0KKyAgKHNldHEgdGV4dCAoY29uY2F0IHRleHQgIjwvcD4iKSkNCisNCisgIChvcmctZnJl ZW1pbmQtY29udmVydC1saW5rcy1mcm9tLW9yZyB0ZXh0KSkNCiANCiAoZGVmdW4gb3JnLWZyZWVt aW5kLW9yZy10ZXh0LXRvLWZyZWVtaW5kLXN1Ym5vZGUvbm90ZSAobm9kZS1uYW1lIHN0YXJ0IGVu ZCBkcmF3ZXJzLXJlZ2V4cCkNCiAgICJDb252ZXJ0IHRleHQgcGFydCBvZiBvcmcgbm9kZSB0byBm cmVlbWluZCBzdWJub2RlIG9yIG5vdGUuDQpAQCAtMzkyLDYgKzQ2MSwxMSBAQA0KICAgICAgICAg ICAgICAgICAgICAgICAgICI8aGVhZD5cbiINCiAgICAgICAgICAgICAgICAgICAgICAgICAiPHN0 eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiPlxuIg0KICAgICAgICAgICAgICAgICAgICAgICAgICI8IS0t XG4iDQorICAgICAgICAgICAgICAgICAgICAgICAgOzsgRnJlZW1pbmQgY2FuJ3QgZXhwb3J0IHRv IHRoZQ0KKyAgICAgICAgICAgICAgICAgICAgICAgIDs7IGh0bWwvamF2YXNjcmlwdCB2ZXJzaW9u IHVubGVzcyBtYXJnaW4tdG9wDQorICAgICAgICAgICAgICAgICAgICAgICAgOzsgaXMgMCBiZWNh dXNlIG9mIHNvbWUgZXJyb3IgaW4gdGhlIHhzbHQNCisgICAgICAgICAgICAgICAgICAgICAgICA7 OyBwcm9jZXNzaW5nIChGcmVlbWluZCAwLjkuMCBSQzkpLiBUaGlzIGRvZXMNCisgICAgICAgICAg ICAgICAgICAgICAgICA7OyBub3QgbG9vayB2ZXJ5IG5pY2UgaW4gZnJlZW1pbmQgaG93ZXZlci4N CiAgICAgICAgICAgICAgICAgICAgICAgICAicCB7IG1hcmdpbi10b3A6IDAgfVxuIg0KICAgICAg ICAgICAgICAgICAgICAgICAgICItLT5cbiINCiAgICAgICAgICAgICAgICAgICAgICAgICAiPC9z dHlsZT5cbiINCkBAIC00NDEsNyArNTE1LDEzIEBADQogICAgICAgICAgICAgICAgICAgICAgICAg KSkpDQogICAgICAgKGxpc3Qgbm9kZS1yZXMgbm90ZS1yZXMpKSkpDQogDQotKGRlZnVuIG9yZy1m cmVlbWluZC13cml0ZS1ub2RlIChtbS1idWZmZXIgZHJhd2Vycy1yZWdleHAgbnVtLWxlZnQtbm9k ZXMgYmFzZS1sZXZlbCBjdXJyZW50LWxldmVsIG5leHQtbGV2ZWwgdGhpcy1tMiB0aGlzLW5vZGUt ZW5kIHRoaXMtY2hpbGRyZW4tdmlzaWJsZSBuZXh0LW5vZGUtc3RhcnQgbmV4dC1oYXMtc29tZS12 aXNpYmxlLWNoaWxkKQ0KKyhkZWZ1biBvcmctZnJlZW1pbmQtd3JpdGUtbm9kZSAobW0tYnVmZmVy IGRyYXdlcnMtcmVnZXhwDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW0tbGVm dC1ub2RlcyBiYXNlLWxldmVsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJy ZW50LWxldmVsIG5leHQtbGV2ZWwgdGhpcy1tMg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGhpcy1ub2RlLWVuZA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp cy1jaGlsZHJlbi12aXNpYmxlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0 LW5vZGUtc3RhcnQNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQtaGFzLXNv bWUtdmlzaWJsZS1jaGlsZCkNCiAgIChsZXQqICh0aGlzLWljb25zDQogICAgICAgICAgdGhpcy1i Zy1jb2xvcg0KICAgICAgICAgIHRoaXMtbTItZXNjYXBlZA0KQEAgLTU3MywxMiArNjUzLDE1IEBA DQogICAgICAgICAgICAgIG5vZGUtYXQtbGluZS1sYXN0KQ0KICAgICAgICAgKHdpdGgtY3VycmVu dC1idWZmZXIgbW0tYnVmZmVyDQogICAgICAgICAgIChlcmFzZS1idWZmZXIpDQotICAgICAgICAg IChpbnNlcnQgIjw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cInV0Zi04XCI/PlxuIikN CisgICAgICAgICAgKHNldHEgYnVmZmVyLWZpbGUtY29kaW5nLXN5c3RlbSAndXRmLTgpDQorICAg ICAgICAgIDs7IEZpeC1tZTogQ3VycmVudGwgRnJlZW1pbmQgKHZlciAwLjkuMCBSQzkpIGRvZXMg bm90IHN1cHBvcnQgdGhpczoNCisgICAgICAgICAgOzsoaW5zZXJ0ICI8P3htbCB2ZXJzaW9uPVwi MS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiIpDQogICAgICAgICAgIChpbnNlcnQgIjxtYXAg dmVyc2lvbj1cIjAuOS4wXCI+XG4iKQ0KICAgICAgICAgICAoaW5zZXJ0ICI8IS0tIFRvIHZpZXcg dGhpcyBmaWxlLCBkb3dubG9hZCBmcmVlIG1pbmQgbWFwcGluZyBzb2Z0d2FyZSBGcmVlTWluZCBm cm9tIGh0dHA6Ly9mcmVlbWluZC5zb3VyY2Vmb3JnZS5uZXQgLS0+XG4iKSkNCiAgICAgICAgIChz YXZlLWV4Y3Vyc2lvbg0KICAgICAgICAgICA7OyBHZXQgc3BlY2lhbCBidWZmZXIgdmFyczoNCiAg ICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkNCisgICAgICAgICAgKG1lc3NhZ2UgIldy aXRpbmcgRnJlZW1pbmQgZmlsZS4uLiIpDQogICAgICAgICAgICh3aGlsZSAocmUtc2VhcmNoLWZv cndhcmQgKHJ4IGJvbCAiIytEUkFXRVJTOiIpIG5pbCB0KQ0KICAgICAgICAgICAgIChsZXQgKChk ci10eHQgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAobWF0Y2gtZW5kIDApIChsaW5l LWVuZC1wb3NpdGlvbikpKSkNCiAgICAgICAgICAgICAgIChzZXRxIGRyYXdlcnMgKGFwcGVuZCBk cmF3ZXJzIChzcGxpdC1zdHJpbmcgZHItdHh0KSBuaWwpKSkpDQpAQCAtNzk1LDcgKzg3OCw4IEBA DQogDQogOzs7IyMjYXV0b2xvYWQNCiAoZGVmdW4gb3JnLWZyZWVtaW5kLWZyb20tb3JnLW1vZGUt bm9kZSAobm9kZS1saW5lIG1tLWZpbGUpDQotICAiQ29udmVydCBub2RlIGF0IGxpbmUgTk9ERS1M SU5FIHRvIHRoZSBGcmVlTWluZCBmaWxlIE1NLUZJTEUuIg0KKyAgIkNvbnZlcnQgbm9kZSBhdCBs aW5lIE5PREUtTElORSB0byB0aGUgRnJlZU1pbmQgZmlsZSBNTS1GSUxFLg0KK1NlZSBgb3JnLWZy ZWVtaW5kLWZyb20tb3JnLW1vZGUnIGZvciBtb3JlIGluZm9ybWF0aW9uLiINCiAgIChpbnRlcmFj dGl2ZQ0KICAgIChwcm9nbg0KICAgICAgKHVubGVzcyAob3JnLWJhY2stdG8taGVhZGluZyBuaWwp DQpAQCAtODIxLDcgKzkwNSwxNiBAQA0KIA0KIDs7OyMjI2F1dG9sb2FkDQogKGRlZnVuIG9yZy1m cmVlbWluZC1mcm9tLW9yZy1tb2RlIChvcmctZmlsZSBtbS1maWxlKQ0KLSAgIkNvbnZlcnQgdGhl IGBvcmctbW9kZScgZmlsZSBPUkctRklMRSB0byB0aGUgRnJlZU1pbmQgZmlsZSBNTS1GSUxFLiIN CisgICJDb252ZXJ0IHRoZSBgb3JnLW1vZGUnIGZpbGUgT1JHLUZJTEUgdG8gdGhlIEZyZWVNaW5k IGZpbGUgTU0tRklMRS4NCitBbGwgdGhlIG5vZGVzIHdpbGwgYmUgb3BlbmVkIG9yIGNsb3NlZCBp biBGcmVlbWluZCBqdXN0IGFzIHlvdQ0KK2hhdmUgdGhlbSBpbiBgb3JnLW1vZGUnLg0KKw0KK05v dGUgdGhhdCBleHBvcnRpbmcgdG8gRnJlZW1pbmQgYWxzbyBnaXZlcyB5b3UgYW4gYWx0ZXJuYXRp dmUgd2F5DQordG8gZXhwb3J0IGZyb20gYG9yZy1tb2RlJyB0byBodG1sLiAgWW91IGNhbiBjcmVh dGUgYSBkeW5hbWljIGh0bWwNCit2ZXJzaW9uIG9mIHRoZSB5b3VyIG9yZyBmaWxlLCBieSBmaXJz dCBleHBvcnRpbmcgdG8gRnJlZW1pbmQgYW5kDQordGhlbiBleHBvcnRpbmcgZnJvbSBGcmVlbWlu ZCB0byBodG1sLiAgVGhlICdBcw0KK1hIVE1MIChKYXZhU2NyaXB0KScgdmVyc2lvbiBpbiBGcmVl bWluZCB3b3JrcyB2ZXJ5IHdlbGwgXChhbmQgeW91DQorY2FuIHVzZSBhIENTUyBzdHlsZXNoZWV0 IHRvIHN0eWxlIGl0KS4iDQogICA7OyBGaXgtbWU6IGJldHRlciBkb2MsIGluY2x1ZGUgcmVjb21t ZW5kYXRpb25zIGV0Yy4NCiAgIChpbnRlcmFjdGl2ZQ0KICAgIChsZXQqICgob3JnLWZpbGUgYnVm ZmVyLWZpbGUtbmFtZSkNCkBAIC0xMDQ0LDYgKzExMzcsNyBAQA0KICAgKGxldCAoKHFuYW1lIChj YXIgbm9kZSkpDQogICAgICAgICAoYXR0cmlidXRlcyAoY2FkciBub2RlKSkNCiAgICAgICAgIHRl eHQNCisgICAgICAgIDs7IEZpeC1tZTogbm90ZSBpcyBuZXZlciBpbnNlcnRlZA0KICAgICAgICAg KG5vdGUgKG9yZy1mcmVlbWluZC1nZXQtcmljaGNvbnRlbnQtbm90ZS10ZXh0IG5vZGUpKQ0KICAg ICAgICAgKG1hcmsgIi0tIFRoaXMgaXMgbW9yZSBhYm91dCAiKQ0KICAgICAgICAgKGljb25zIChv cmctZnJlZW1pbmQtZ2V0LWljb24tbmFtZXMgbm9kZSkpDQpAQCAtMTA3NCw2ICsxMTY4LDggQEAN CiAgICAgICAgIChjYXNlIHFuYW1lDQogICAgICAgICAgICgnbm9kZQ0KICAgICAgICAgICAgKGlu c2VydCAobWFrZS1zdHJpbmcgKC0gbGV2ZWwgc2tpcC1sZXZlbHMpID8qKSAiICIgdGV4dCAiXG4i KQ0KKyAgICAgICAgICAgKHdoZW4gbm90ZQ0KKyAgICAgICAgICAgICAoaW5zZXJ0ICI6Q09NTUVO VDpcbiIgbm90ZSAiXG46RU5EOlxuIikpDQogICAgICAgICAgICApKSkpDQogICAgIChkb2xpc3Qg KGNoaWxkIGNoaWxkcmVuKQ0KICAgICAgICh1bmxlc3MgKG9yIChudWxsIGNoaWxkKQ0KDQo= --001636310673212dad0491456439 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode --001636310673212dad0491456439--