From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergey Litvinov Subject: Re: [BABEL][PATCH] construct a table from the output of maxima code block Date: Tue, 4 Oct 2011 19:57:07 +0200 Message-ID: References: <87ehywh2it.fsf@gmail.com> <87ipo4rc24.fsf@ucl.ac.uk> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016363ba254e22dca04ae7cd1a7 Return-path: Received: from eggs.gnu.org ([140.186.70.92]:53266) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RB9Es-0004oA-DU for emacs-orgmode@gnu.org; Tue, 04 Oct 2011 13:57:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RB9Eq-0002nz-NH for emacs-orgmode@gnu.org; Tue, 04 Oct 2011 13:57:10 -0400 Received: from mail-qw0-f41.google.com ([209.85.216.41]:51267) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RB9Eq-0002np-H6 for emacs-orgmode@gnu.org; Tue, 04 Oct 2011 13:57:08 -0400 Received: by qadb17 with SMTP id b17so743112qad.0 for ; Tue, 04 Oct 2011 10:57:07 -0700 (PDT) In-Reply-To: <87ipo4rc24.fsf@ucl.ac.uk> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Litvinov Sergey , emacs-orgmode@gnu.org --0016363ba254e22dca04ae7cd1a7 Content-Type: text/plain; charset=ISO-8859-1 > In any case, can you please post a patch against the standard > version? Or, maybe easier, simply post ob-maxima.el as the other > changes are not necessary for me to test your patch. I though my previous patch was applied. It is still under review due to copyright papers. I am attaching a patch against master branch and ob-maxima.el file. The commit message is ob-maxima.el: add input variables, png graphic output, table as an output --0016363ba254e22dca04ae7cd1a7 Content-Type: text/x-patch; charset=US-ASCII; name="0001-ob-maxima.el-add-input-variables-graphic-output-to-p.patch" Content-Disposition: attachment; filename="0001-ob-maxima.el-add-input-variables-graphic-output-to-p.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gtd6n0jx0 RnJvbSBkOWNmYTc2ZTgzYzEwZTg2ZmZhY2NhM2RhN2NiYzgzNzAyMjY4Y2MyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXR2aW5vdiBTZXJnZXkgPHNsaXR2aW5vdkBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgNCBPY3QgMjAxMSAxOTo0ODoxNCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIG9i LW1heGltYS5lbDogYWRkIGlucHV0IHZhcmlhYmxlcywgZ3JhcGhpYyBvdXRwdXQgdG8gcG5nIGZp bGUsIHRhYmxlIGFzIGFuIG91dHB1dAoKLS0tCiBsaXNwL29iLW1heGltYS5lbCB8ICAgOTcgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmls ZXMgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGlzcC9vYi1tYXhpbWEuZWwgYi9saXNwL29iLW1heGltYS5lbAppbmRleCAwODU2MDljLi45 YzM5YTVmIDEwMDY0NAotLS0gYS9saXNwL29iLW1heGltYS5lbAorKysgYi9saXNwL29iLW1heGlt YS5lbApAQCAtMzAsNDcgKzMwLDk2IEBACiA7OwogOzsgMSkgdGhlcmUgaXMgbm8gc3VjaCB0aGlu ZyBhcyBhICJzZXNzaW9uIiBpbiBtYXhpbWEKIDs7Ci07OyAyKSB3ZSBhcmUgZ2VuZXJhbGx5IG9u bHkgZ29pbmcgdG8gcmV0dXJuIG91dHB1dCBmcm9tIG1heGltYQotOzsKLTs7IDMpIHdlIGFyZSBh ZGRpbmcgdGhlICJjbWRsaW5lIiBoZWFkZXIgYXJndW1lbnQKLTs7Ci07OyA0KSB0aGVyZSBhcmUg bm8gdmFyaWFibGVzCis7OyAyKSB3ZSBhcmUgYWRkaW5nIHRoZSAiY21kbGluZSIgaGVhZGVyIGFy Z3VtZW50CiAKIDs7OyBDb2RlOgogKHJlcXVpcmUgJ29iKQogCisoZGVmdmFyIG9yZy1iYWJlbC10 YW5nbGUtbGFuZy1leHRzKQorKGFkZC10by1saXN0ICdvcmctYmFiZWwtdGFuZ2xlLWxhbmctZXh0 cyAnKCJtYXhpbWEiIC4gIm1heCIpKQorCiAoZGVmdmFyIG9yZy1iYWJlbC1kZWZhdWx0LWhlYWRl ci1hcmdzOm1heGltYSAnKCkpCiAKIChkZWZ1biBvcmctYmFiZWwtbWF4aW1hLWV4cGFuZCAoYm9k eSBwYXJhbXMpCiAgICJFeHBhbmQgYSBibG9jayBvZiBNYXhpbWEgY29kZSBhY2NvcmRpbmcgdG8g aXRzIGhlYWRlciBhcmd1bWVudHMuIgotICBib2R5KQorICAobGV0ICgodmFycyAobWFwY2FyICMn Y2RyIChvcmctYmFiZWwtZ2V0LWhlYWRlciBwYXJhbXMgOnZhcikpKSkKKyAgICAgKG1hcGNvbmNh dCAnaWRlbnRpdHkKKwkJKGxpc3QKKwkJIDs7IGdyYXBoaWMgb3V0cHV0CisJCSAobGV0ICgoZ3Jh cGhpYy1maWxlIChvcmctYmFiZWwtbWF4aW1hLWdyYXBoaWNhbC1vdXRwdXQtZmlsZSBwYXJhbXMp KSkKKwkJICAgKGlmIGdyYXBoaWMtZmlsZSAgCisJCSAgICAgICAoZm9ybWF0IAorCQkJInNldF9w bG90X29wdGlvbiAoW2dudXBsb3RfdGVybSwgcG5nXSk7IHNldF9wbG90X29wdGlvbiAoW2dudXBs b3Rfb3V0X2ZpbGUsICVTXSk7IiAKKwkJCWdyYXBoaWMtZmlsZSkKKwkJICAgICAiIikpCisJCSA7 OyB2YXJpYWJsZXMKKwkJIChtYXBjb25jYXQgJ29yZy1iYWJlbC1tYXhpbWEtdmFyLXRvLW1heGlt YSB2YXJzICJcbiIpCisJCSA7OyBib2R5CisJCSBib2R5CisJCSAiZ251cGxvdF9jbG9zZSAoKSQi KQorCQkiXG4iKSkpCiAKIChkZWZ1biBvcmctYmFiZWwtZXhlY3V0ZTptYXhpbWEgKGJvZHkgcGFy YW1zKQogICAiRXhlY3V0ZSBhIGJsb2NrIG9mIE1heGltYSBlbnRyaWVzIHdpdGggb3JnLWJhYmVs LiAgVGhpcyBmdW5jdGlvbiBpcwogY2FsbGVkIGJ5IGBvcmctYmFiZWwtZXhlY3V0ZS1zcmMtYmxv Y2snLiIKICAgKG1lc3NhZ2UgImV4ZWN1dGluZyBNYXhpbWEgc291cmNlIGNvZGUgYmxvY2siKQot ICAobGV0KiAoKHJlc3VsdC1wYXJhbXMgKHNwbGl0LXN0cmluZyAob3IgKGNkciAoYXNzb2MgOnJl c3VsdHMgcGFyYW1zKSkgIiIpKSkKLQkgKGNtZGxpbmUgKGNkciAoYXNzb2MgOmNtZGxpbmUgcGFy YW1zKSkpCi0JIChpbi1maWxlIChvcmctYmFiZWwtdGVtcC1maWxlICJtYXhpbWEtIikpCi0JIChj bWQgKGZvcm1hdCAibWF4aW1hIC0tdmVyeS1xdWlldCAtciAnYmF0Y2hsb2FkKCVTKSQnICVzIgot CQkgICAgICBpbi1maWxlIGNtZGxpbmUpKSkKLSAgICAod2l0aC10ZW1wLWZpbGUgaW4tZmlsZSAo aW5zZXJ0IGJvZHkpKQotICAgIChtZXNzYWdlIGNtZCkKLSAgICAoKGxhbWJkYSAocmF3KSA7OyAi IHwgZ3JlcCAtdiBiYXRjaCB8IGdyZXAgLXYgJ3JlcGxhY2VkJyB8IHNlZCAnL14kL2QnICIKLSAg ICAgICAobWFwY29uY2F0Ci0JIydpZGVudGl0eQotCShkZWxxIG5pbAotCSAgICAgIChtYXBjYXIg KGxhbWJkYSAobGluZSkKLQkJCSh1bmxlc3MgKG9yIChzdHJpbmctbWF0Y2ggImJhdGNoIiBsaW5l KQotCQkJCSAgICAoc3RyaW5nLW1hdGNoICJecmF0OiByZXBsYWNlZCAuKiQiIGxpbmUpCi0JCQkJ ICAgICg9IDAgKGxlbmd0aCBsaW5lKSkpCi0JCQkgIGxpbmUpKQotCQkgICAgICAoc3BsaXQtc3Ry aW5nIHJhdyAiW1xyXG5dIikpKSAiXG4iKSkKLSAgICAgKG9yZy1iYWJlbC1ldmFsIGNtZCAiIikp KSkKKyAgKGxldCAoKHJlc3VsdAorCSAobGV0KiAoKHJlc3VsdC1wYXJhbXMgKHNwbGl0LXN0cmlu ZyAob3IgKGNkciAoYXNzb2MgOnJlc3VsdHMgcGFyYW1zKSkgIiIpKSkKKwkJKGNtZGxpbmUgKGNk ciAoYXNzb2MgOmNtZGxpbmUgcGFyYW1zKSkpCisJCShpbi1maWxlIChvcmctYmFiZWwtdGVtcC1m aWxlICJtYXhpbWEtIiAiLm1heCIpKQorCQkoY21kIChmb3JtYXQgIm1heGltYSAtLXZlcnktcXVp ZXQgLXIgJ2JhdGNobG9hZCglUykkJyAlcyIKKwkJCSAgICAgaW4tZmlsZSBjbWRsaW5lKSkpCisJ ICAgKHdpdGgtdGVtcC1maWxlIGluLWZpbGUgKGluc2VydCAob3JnLWJhYmVsLW1heGltYS1leHBh bmQgYm9keSBwYXJhbXMpKSkKKwkgICAobWVzc2FnZSBjbWQpCisJICAgKChsYW1iZGEgKHJhdykg OzsgIiB8IGdyZXAgLXYgYmF0Y2ggfCBncmVwIC12ICdyZXBsYWNlZCcgfCBzZWQgJy9eJC9kJyAi CisJICAgICAgKG1hcGNvbmNhdAorCSAgICAgICAjJ2lkZW50aXR5CisJICAgICAgIChkZWxxIG5p bAorCQkgICAgIChtYXBjYXIgKGxhbWJkYSAobGluZSkKKwkJCSAgICAgICAodW5sZXNzIChvciAo c3RyaW5nLW1hdGNoICJiYXRjaCIgbGluZSkKKwkJCQkJICAgKHN0cmluZy1tYXRjaCAiXnJhdDog cmVwbGFjZWQgLiokIiBsaW5lKQorCQkJCQkgICAoPSAwIChsZW5ndGggbGluZSkpKQorCQkJCSBs aW5lKSkKKwkJCSAgICAgKHNwbGl0LXN0cmluZyByYXcgIltcclxuXSIpKSkgIlxuIikpCisJICAg IChvcmctYmFiZWwtZXZhbCBjbWQgIiIpKSkpKSAKKyAgICAoaWYgKG9yZy1iYWJlbC1tYXhpbWEt Z3JhcGhpY2FsLW91dHB1dC1maWxlIHBhcmFtcykgCisJbmlsCisgICAgICAoaWYgKG9yIChtZW1i ZXIgInNjYWxhciIgcmVzdWx0LXBhcmFtcykKKwkgICAgICAobWVtYmVyICJ2ZXJiYXRpbSIgcmVz dWx0LXBhcmFtcykKKwkgICAgICAobWVtYmVyICJvdXRwdXQiIHJlc3VsdC1wYXJhbXMpKQorCSAg cmVzdWx0CisJKGxldCAoKHRtcC1maWxlIChvcmctYmFiZWwtdGVtcC1maWxlICJtYXhpbWEtcmVz LSIpKSkKKwkgICh3aXRoLXRlbXAtZmlsZSB0bXAtZmlsZSAoaW5zZXJ0IHJlc3VsdCkpCisJICAo b3JnLWJhYmVsLWltcG9ydC1lbGlzcC1mcm9tLWZpbGUgdG1wLWZpbGUpKSkpKSkKKwogCiAoZGVm dW4gb3JnLWJhYmVsLXByZXAtc2Vzc2lvbjptYXhpbWEgKHNlc3Npb24gcGFyYW1zKQogICAoZXJy b3IgIk1heGltYSBkb2VzIG5vdCBzdXBwb3J0IHNlc3Npb25zIikpCiAKKyhkZWZ1biBvcmctYmFi ZWwtbWF4aW1hLXZhci10by1tYXhpbWEgKHBhaXIpCisgICJDb252ZXJ0IGFuIGVsaXNwIHZhbCBp bnRvIGEgc3RyaW5nIG9mIG1heGltYSBjb2RlIHNwZWNpZnlpbmcgYSB2YXIKK29mIHRoZSBzYW1l IHZhbHVlLiIKKyAgKGxldCAoKHZhciAoY2FyIHBhaXIpKQorICAgICAgICAodmFsIChjZHIgcGFp cikpKQorICAgICh3aGVuIChzeW1ib2xwIHZhbCkKKyAgICAgIChzZXRxIHZhbCAoc3ltYm9sLW5h bWUgdmFsKSkKKyAgICAgICh3aGVuICg9IChsZW5ndGggdmFsKSAxKQorICAgICAgICAoc2V0cSB2 YWwgKHN0cmluZy10by1jaGFyIHZhbCkpKSkKKyAgICAgIChmb3JtYXQgIiVTOiAlcyQiIHZhciAK KwkgICAgICAob3JnLWJhYmVsLW1heGltYS1lbGlzcC10by1tYXhpbWEgdmFsKSkpKQorCisoZGVm dW4gb3JnLWJhYmVsLW1heGltYS1ncmFwaGljYWwtb3V0cHV0LWZpbGUgKHBhcmFtcykKKyAgIk5h bWUgb2YgZmlsZSB0byB3aGljaCBtYXhpbWEgc2hvdWxkIHNlbmQgZ3JhcGhpY2FsIG91dHB1dC4i CisgIChhbmQgKG1lbWJlciAiZ3JhcGhpY3MiIChjZHIgKGFzc3EgOnJlc3VsdC1wYXJhbXMgcGFy YW1zKSkpCisgICAgICAgKGNkciAoYXNzcSA6ZmlsZSBwYXJhbXMpKSkpCisKKyhkZWZ1biBvcmct YmFiZWwtbWF4aW1hLWVsaXNwLXRvLW1heGltYSAodmFsKQorICAiUmV0dXJuIGEgc3RyaW5nIG9m IG1heGltYSBjb2RlIHdoaWNoIGV2YWx1YXRlcyB0byBWQUwuIgorICAoaWYgKGxpc3RwIHZhbCkK KyAgICAgIChjb25jYXQgIlsiIChtYXBjb25jYXQgIydvcmctYmFiZWwtbWF4aW1hLWVsaXNwLXRv LW1heGltYSB2YWwgIiwgIikgIl0iKQorICAgIChmb3JtYXQgIiVzIiB2YWwpKSkKKworCiAocHJv dmlkZSAnb2ItbWF4aW1hKQogCiAKLS0gCjEuNy40LjEKCg== --0016363ba254e22dca04ae7cd1a7 Content-Type: text/x-emacs-lisp; charset=US-ASCII; name="ob-maxima.el" Content-Disposition: attachment; filename="ob-maxima.el" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gtd6o89y1 Ozs7IG9iLW1heGltYS5lbCAtLS0gb3JnLWJhYmVsIGZ1bmN0aW9ucyBmb3IgbWF4aW1hIGV2YWx1 YXRpb24KCjs7IENvcHlyaWdodCAoQykgMjAwOS0yMDExICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KCjs7IEF1dGhvcjogRXJpYyBTIEZyYWdhCjs7CSAgIEVyaWMgU2NodWx0ZQo7OyBL ZXl3b3JkczogbGl0ZXJhdGUgcHJvZ3JhbW1pbmcsIHJlcHJvZHVjaWJsZSByZXNlYXJjaCwgbWF4 aW1hCjs7IEhvbWVwYWdlOiBodHRwOi8vb3JnbW9kZS5vcmcKCjs7IFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIEdOVSBFbWFjcy4KCjs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cjs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cjs7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCjs7 IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgo7OyBHTlUgRW1hY3MgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKOzsgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKOzsg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQo7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKOzsg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCgo7OzsgQ29tbWVudGFyeToKCjs7IE9yZy1CYWJlbCBzdXBw b3J0IGZvciBldmFsdWF0aW5nIG1heGltYSBlbnRyaWVzLgo7Owo7OyBUaGlzIGRpZmZlcnMgZnJv bSBtb3N0IHN0YW5kYXJkIGxhbmd1YWdlcyBpbiB0aGF0Cjs7Cjs7IDEpIHRoZXJlIGlzIG5vIHN1 Y2ggdGhpbmcgYXMgYSAic2Vzc2lvbiIgaW4gbWF4aW1hCjs7Cjs7IDIpIHdlIGFyZSBhZGRpbmcg dGhlICJjbWRsaW5lIiBoZWFkZXIgYXJndW1lbnQKCjs7OyBDb2RlOgoocmVxdWlyZSAnb2IpCgoo ZGVmdmFyIG9yZy1iYWJlbC10YW5nbGUtbGFuZy1leHRzKQooYWRkLXRvLWxpc3QgJ29yZy1iYWJl bC10YW5nbGUtbGFuZy1leHRzICcoIm1heGltYSIgLiAibWF4IikpCgooZGVmdmFyIG9yZy1iYWJl bC1kZWZhdWx0LWhlYWRlci1hcmdzOm1heGltYSAnKCkpCgooZGVmdW4gb3JnLWJhYmVsLW1heGlt YS1leHBhbmQgKGJvZHkgcGFyYW1zKQogICJFeHBhbmQgYSBibG9jayBvZiBNYXhpbWEgY29kZSBh Y2NvcmRpbmcgdG8gaXRzIGhlYWRlciBhcmd1bWVudHMuIgogIChsZXQgKCh2YXJzIChtYXBjYXIg IydjZHIgKG9yZy1iYWJlbC1nZXQtaGVhZGVyIHBhcmFtcyA6dmFyKSkpKQogICAgIChtYXBjb25j YXQgJ2lkZW50aXR5CgkJKGxpc3QKCQkgOzsgZ3JhcGhpYyBvdXRwdXQKCQkgKGxldCAoKGdyYXBo aWMtZmlsZSAob3JnLWJhYmVsLW1heGltYS1ncmFwaGljYWwtb3V0cHV0LWZpbGUgcGFyYW1zKSkp CgkJICAgKGlmIGdyYXBoaWMtZmlsZSAgCgkJICAgICAgIChmb3JtYXQgCgkJCSJzZXRfcGxvdF9v cHRpb24gKFtnbnVwbG90X3Rlcm0sIHBuZ10pOyBzZXRfcGxvdF9vcHRpb24gKFtnbnVwbG90X291 dF9maWxlLCAlU10pOyIgCgkJCWdyYXBoaWMtZmlsZSkKCQkgICAgICIiKSkKCQkgOzsgdmFyaWFi bGVzCgkJIChtYXBjb25jYXQgJ29yZy1iYWJlbC1tYXhpbWEtdmFyLXRvLW1heGltYSB2YXJzICJc biIpCgkJIDs7IGJvZHkKCQkgYm9keQoJCSAiZ251cGxvdF9jbG9zZSAoKSQiKQoJCSJcbiIpKSkK CihkZWZ1biBvcmctYmFiZWwtZXhlY3V0ZTptYXhpbWEgKGJvZHkgcGFyYW1zKQogICJFeGVjdXRl IGEgYmxvY2sgb2YgTWF4aW1hIGVudHJpZXMgd2l0aCBvcmctYmFiZWwuICBUaGlzIGZ1bmN0aW9u IGlzCmNhbGxlZCBieSBgb3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrJy4iCiAgKG1lc3NhZ2Ug ImV4ZWN1dGluZyBNYXhpbWEgc291cmNlIGNvZGUgYmxvY2siKQogIChsZXQgKChyZXN1bHQKCSAo bGV0KiAoKHJlc3VsdC1wYXJhbXMgKHNwbGl0LXN0cmluZyAob3IgKGNkciAoYXNzb2MgOnJlc3Vs dHMgcGFyYW1zKSkgIiIpKSkKCQkoY21kbGluZSAoY2RyIChhc3NvYyA6Y21kbGluZSBwYXJhbXMp KSkKCQkoaW4tZmlsZSAob3JnLWJhYmVsLXRlbXAtZmlsZSAibWF4aW1hLSIgIi5tYXgiKSkKCQko Y21kIChmb3JtYXQgIm1heGltYSAtLXZlcnktcXVpZXQgLXIgJ2JhdGNobG9hZCglUykkJyAlcyIK CQkJICAgICBpbi1maWxlIGNtZGxpbmUpKSkKCSAgICh3aXRoLXRlbXAtZmlsZSBpbi1maWxlIChp bnNlcnQgKG9yZy1iYWJlbC1tYXhpbWEtZXhwYW5kIGJvZHkgcGFyYW1zKSkpCgkgICAobWVzc2Fn ZSBjbWQpCgkgICAoKGxhbWJkYSAocmF3KSA7OyAiIHwgZ3JlcCAtdiBiYXRjaCB8IGdyZXAgLXYg J3JlcGxhY2VkJyB8IHNlZCAnL14kL2QnICIKCSAgICAgIChtYXBjb25jYXQKCSAgICAgICAjJ2lk ZW50aXR5CgkgICAgICAgKGRlbHEgbmlsCgkJICAgICAobWFwY2FyIChsYW1iZGEgKGxpbmUpCgkJ CSAgICAgICAodW5sZXNzIChvciAoc3RyaW5nLW1hdGNoICJiYXRjaCIgbGluZSkKCQkJCQkgICAo c3RyaW5nLW1hdGNoICJecmF0OiByZXBsYWNlZCAuKiQiIGxpbmUpCgkJCQkJICAgKD0gMCAobGVu Z3RoIGxpbmUpKSkKCQkJCSBsaW5lKSkKCQkJICAgICAoc3BsaXQtc3RyaW5nIHJhdyAiW1xyXG5d IikpKSAiXG4iKSkKCSAgICAob3JnLWJhYmVsLWV2YWwgY21kICIiKSkpKSkgCiAgICAoaWYgKG9y Zy1iYWJlbC1tYXhpbWEtZ3JhcGhpY2FsLW91dHB1dC1maWxlIHBhcmFtcykgCgluaWwKICAgICAg KGlmIChvciAobWVtYmVyICJzY2FsYXIiIHJlc3VsdC1wYXJhbXMpCgkgICAgICAobWVtYmVyICJ2 ZXJiYXRpbSIgcmVzdWx0LXBhcmFtcykKCSAgICAgIChtZW1iZXIgIm91dHB1dCIgcmVzdWx0LXBh cmFtcykpCgkgIHJlc3VsdAoJKGxldCAoKHRtcC1maWxlIChvcmctYmFiZWwtdGVtcC1maWxlICJt YXhpbWEtcmVzLSIpKSkKCSAgKHdpdGgtdGVtcC1maWxlIHRtcC1maWxlIChpbnNlcnQgcmVzdWx0 KSkKCSAgKG9yZy1iYWJlbC1pbXBvcnQtZWxpc3AtZnJvbS1maWxlIHRtcC1maWxlKSkpKSkpCgoK KGRlZnVuIG9yZy1iYWJlbC1wcmVwLXNlc3Npb246bWF4aW1hIChzZXNzaW9uIHBhcmFtcykKICAo ZXJyb3IgIk1heGltYSBkb2VzIG5vdCBzdXBwb3J0IHNlc3Npb25zIikpCgooZGVmdW4gb3JnLWJh YmVsLW1heGltYS12YXItdG8tbWF4aW1hIChwYWlyKQogICJDb252ZXJ0IGFuIGVsaXNwIHZhbCBp bnRvIGEgc3RyaW5nIG9mIG1heGltYSBjb2RlIHNwZWNpZnlpbmcgYSB2YXIKb2YgdGhlIHNhbWUg dmFsdWUuIgogIChsZXQgKCh2YXIgKGNhciBwYWlyKSkKICAgICAgICAodmFsIChjZHIgcGFpcikp KQogICAgKHdoZW4gKHN5bWJvbHAgdmFsKQogICAgICAoc2V0cSB2YWwgKHN5bWJvbC1uYW1lIHZh bCkpCiAgICAgICh3aGVuICg9IChsZW5ndGggdmFsKSAxKQogICAgICAgIChzZXRxIHZhbCAoc3Ry aW5nLXRvLWNoYXIgdmFsKSkpKQogICAgICAoZm9ybWF0ICIlUzogJXMkIiB2YXIgCgkgICAgICAo b3JnLWJhYmVsLW1heGltYS1lbGlzcC10by1tYXhpbWEgdmFsKSkpKQoKKGRlZnVuIG9yZy1iYWJl bC1tYXhpbWEtZ3JhcGhpY2FsLW91dHB1dC1maWxlIChwYXJhbXMpCiAgIk5hbWUgb2YgZmlsZSB0 byB3aGljaCBtYXhpbWEgc2hvdWxkIHNlbmQgZ3JhcGhpY2FsIG91dHB1dC4iCiAgKGFuZCAobWVt YmVyICJncmFwaGljcyIgKGNkciAoYXNzcSA6cmVzdWx0LXBhcmFtcyBwYXJhbXMpKSkKICAgICAg IChjZHIgKGFzc3EgOmZpbGUgcGFyYW1zKSkpKQoKKGRlZnVuIG9yZy1iYWJlbC1tYXhpbWEtZWxp c3AtdG8tbWF4aW1hICh2YWwpCiAgIlJldHVybiBhIHN0cmluZyBvZiBtYXhpbWEgY29kZSB3aGlj aCBldmFsdWF0ZXMgdG8gVkFMLiIKICAoaWYgKGxpc3RwIHZhbCkKICAgICAgKGNvbmNhdCAiWyIg KG1hcGNvbmNhdCAjJ29yZy1iYWJlbC1tYXhpbWEtZWxpc3AtdG8tbWF4aW1hIHZhbCAiLCAiKSAi XSIpCiAgICAoZm9ybWF0ICIlcyIgdmFsKSkpCgoKKHByb3ZpZGUgJ29iLW1heGltYSkKCgoKOzs7 IG9iLW1heGltYS5lbCBlbmRzIGhlcmUK --0016363ba254e22dca04ae7cd1a7--