From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergey Litvinov Subject: [org-babel] a patch with fortran support Date: Sun, 17 Jul 2011 15:42:33 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=00504502e4340b749104a8440e67 Return-path: Received: from eggs.gnu.org ([140.186.70.92]:59066) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QiRcE-0005m5-N8 for emacs-orgmode@gnu.org; Sun, 17 Jul 2011 09:42:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QiRcC-0007GJ-M2 for emacs-orgmode@gnu.org; Sun, 17 Jul 2011 09:42:38 -0400 Received: from mail-fx0-f52.google.com ([209.85.161.52]:50503) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QiRcC-0007GE-4S for emacs-orgmode@gnu.org; Sun, 17 Jul 2011 09:42:36 -0400 Received: by fxd18 with SMTP id 18so4282042fxd.39 for ; Sun, 17 Jul 2011 06:42:34 -0700 (PDT) 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: emacs-orgmode@gnu.org --00504502e4340b749104a8440e67 Content-Type: text/plain; charset=ISO-8859-1 Please consider an implementation of fortran support for org-babel. The patch adds contrib/babel/langs/ob-fortran.el (modification of lisp/ob-C.el) and testing/examples/ob-fortran-test.org with tests. --00504502e4340b749104a8440e67 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Add-fortran-support-to-babel.patch" Content-Disposition: attachment; filename="0001-Add-fortran-support-to-babel.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gq8214ib0 RnJvbSBhMThjYmM4MDc3MGQ5ODVkNmNhNmJkYWRhMDcxMjBmN2RhZjY1YzAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXR2aW5vdiBTZXJnZXkgPHNsaXR2aW5vdkBnbWFpbC5jb20+ CkRhdGU6IFN1biwgMTcgSnVsIDIwMTEgMTU6MzE6MDMgKzAyMDAKU3ViamVjdDogW1BBVENIXSBB ZGQgZm9ydHJhbiBzdXBwb3J0IHRvIGJhYmVsCgotLS0KIGNvbnRyaWIvYmFiZWwvbGFuZ3Mvb2It Zm9ydHJhbi5lbCAgICB8ICAxOTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog dGVzdGluZy9leGFtcGxlcy9vYi1mb3J0cmFuLXRlc3Qub3JnIHwgICA2NyArKysrKysrKysrKysK IDIgZmlsZXMgY2hhbmdlZCwgMjU4IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgY29udHJpYi9iYWJlbC9sYW5ncy9vYi1mb3J0cmFuLmVsCiBjcmVhdGUg bW9kZSAxMDA2NDQgdGVzdGluZy9leGFtcGxlcy9vYi1mb3J0cmFuLXRlc3Qub3JnCgpkaWZmIC0t Z2l0IGEvY29udHJpYi9iYWJlbC9sYW5ncy9vYi1mb3J0cmFuLmVsIGIvY29udHJpYi9iYWJlbC9s YW5ncy9vYi1mb3J0cmFuLmVsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJi Njk0OGYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2JhYmVsL2xhbmdzL29iLWZvcnRyYW4u ZWwKQEAgLTAsMCArMSwxOTEgQEAKKzs7OyBvYi1mb3J0cmFuLmVsIC0tLSBvcmctYmFiZWwgZnVu Y3Rpb25zIGZvciBmb3J0cmFuCis7OyBDb3B5cmlnaHQgKEMpIDIwMTAgIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorCis7OyBBdXRob3I6IFNlcmdleSBMaXR2aW5vdiAoYmFzZWQgb24g b2ItQy5lbCBieSBFcmljIFNjaHVsdGUpCis7OyBLZXl3b3JkczogbGl0ZXJhdGUgcHJvZ3JhbW1p bmcsIHJlcHJvZHVjaWJsZSByZXNlYXJjaCwgZm9ydHJhbgorOzsgSG9tZXBhZ2U6IGh0dHA6Ly9v cmdtb2RlLm9yZworOzsgVmVyc2lvbjogNy42CisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdO VSBFbWFjcy4KKworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorOzsg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworOzsgR05VIEVtYWNzIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7OyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKzs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCis7OzsgQ29tbWVudGFyeToKKworOzsgT3Jn LUJhYmVsIHN1cHBvcnQgZm9yIGV2YWx1YXRpbmcgZm9ydHJhbiBjb2RlLgorOzsKKworOzs7IENv ZGU6CisKKzs7IE9yZy1CYWJlbCBzdXBwb3J0IGZvciBldmFsdWF0aW5nIGZvcnRyYW4gY29kZS4K Kzs7CisKKyhyZXF1aXJlICdvYikKKyhyZXF1aXJlICdvYi1ldmFsKQorKHJlcXVpcmUgJ2NjLW1v ZGUpCisKKyhkZWNsYXJlLWZ1bmN0aW9uIG9yZy1lbnRyeS1nZXQgIm9yZyIKKwkJICAocG9tIHBy b3BlcnR5ICZvcHRpb25hbCBpbmhlcml0IGxpdGVyYWwtbmlsKSkKKworKGRlZnZhciBvcmctYmFi ZWwtdGFuZ2xlLWxhbmctZXh0cykKKyhhZGQtdG8tbGlzdCAnb3JnLWJhYmVsLXRhbmdsZS1sYW5n LWV4dHMgJygiZm9ydHJhbiIgLiAiRjkwIikpCisKKyhkZWZ2YXIgb3JnLWJhYmVsLWRlZmF1bHQt aGVhZGVyLWFyZ3M6Zm9ydHJhbiAnKCkpCisKKyhkZWZ2YXIgb3JnLWJhYmVsLWZvcnRyYW4tY29t cGlsZXIgImdmb3J0cmFuIgorICAiZm9ydHJhbiBjb21tYW5kIHVzZWQgdG8gY29tcGlsZSBhIGZv cnRyYW4gc291cmNlIGNvZGUgZmlsZSBpbnRvIGFuCisgIGV4ZWN1dGFibGUuIikKKworKGRlZnVu IG9yZy1iYWJlbC1leGVjdXRlOmZvcnRyYW4gKGJvZHkgcGFyYW1zKQorICAiRXhlY3V0ZSBCT0RZ IGFjY29yZGluZyB0byBQQVJBTVMuICBUaGlzIGZ1bmN0aW9uIGNhbGxzCitgb3JnLWJhYmVsLWV4 ZWN1dGU6Zm9ydHJhbicuIgorICAob3JnLWJhYmVsLWV4ZWN1dGU6Zm9ydHJhbiBib2R5IHBhcmFt cykpCisKKyhkZWZ1biBvcmctYmFiZWwtZXhlY3V0ZTpmb3J0cmFuIChib2R5IHBhcmFtcykKKyAg ICAiRXhlY3V0ZSBhIGJsb2NrIG9mIGZvcnRyYW4gY29kZSB3aXRoIG9yZy1iYWJlbC4gIFRoaXMg ZnVuY3Rpb24gaXMKK2NhbGxlZCBieSBgb3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrJy4iCisg IChvcmctYmFiZWwtZm9ydHJhbi1leGVjdXRlIGJvZHkgcGFyYW1zKSkKKworKGRlZnVuIG9yZy1i YWJlbC1leHBhbmQtYm9keTpmb3J0cmFuIChib2R5IHBhcmFtcykKKyAgIkV4cGFuZCBhIGJsb2Nr IG9mIGZvcnRyYW4gY29kZSB3aXRoIG9yZy1iYWJlbCBhY2NvcmRpbmcgdG8gaXQncworaGVhZGVy IGFyZ3VtZW50cyAoY2FsbHMgYG9yZy1iYWJlbC1mb3J0cmFuLWV4cGFuZCcpLiIKKyAgKG9yZy1i YWJlbC1mb3J0cmFuLWV4cGFuZCBib2R5IHBhcmFtcykpCisKKyhkZWZ1biBvcmctYmFiZWwtZXhl Y3V0ZTpmb3J0cmFuIChib2R5IHBhcmFtcykKKyAgIkV4ZWN1dGUgYSBibG9jayBvZiBmb3J0cmFu IGNvZGUgd2l0aCBvcmctYmFiZWwuICBUaGlzIGZ1bmN0aW9uIGlzCitjYWxsZWQgYnkgYG9yZy1i YWJlbC1leGVjdXRlLXNyYy1ibG9jaycuIgorICAob3JnLWJhYmVsLWZvcnRyYW4tZXhlY3V0ZSBi b2R5IHBhcmFtcykpCisKKyhkZWZ1biBvcmctYmFiZWwtZXhwYW5kLWJvZHk6Zm9ydHJhbiAoYm9k eSBwYXJhbXMpCisgICJFeHBhbmQgYSBibG9jayBvZiBmb3J0cmFuIGNvZGUgd2l0aCBvcmctYmFi ZWwgYWNjb3JkaW5nIHRvIGl0J3MKK2hlYWRlciBhcmd1bWVudHMgKGNhbGxzIGBvcmctYmFiZWwt Zm9ydHJhbi1leHBhbmQnKS4iCisgIChvcmctYmFiZWwtZm9ydHJhbi1leHBhbmQgYm9keSBwYXJh bXMpKQorCisoZGVmdW4gb3JnLWJhYmVsLWZvcnRyYW4tZXhlY3V0ZSAoYm9keSBwYXJhbXMpCisg ICJUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSBgb3JnLWJhYmVsLWV4ZWN1 dGU6Zm9ydHJhbiciCisgIChsZXQqICgodG1wLXNyYy1maWxlIChvcmctYmFiZWwtdGVtcC1maWxl CisJCQkiZm9ydHJhbi1zcmMtIgorCQkJIi5GOTAiKSkKKyAgICAgICAgICh0bXAtYmluLWZpbGUg KG9yZy1iYWJlbC10ZW1wLWZpbGUgImZvcnRyYW4tYmluLSIpKQorICAgICAgICAgKGNtZGxpbmUg KGNkciAoYXNzb2MgOmNtZGxpbmUgcGFyYW1zKSkpCisgICAgICAgICAoZmxhZ3MgKGNkciAoYXNz b2MgOmZsYWdzIHBhcmFtcykpKQorICAgICAgICAgKGZ1bGwtYm9keSAob3JnLWJhYmVsLWZvcnRy YW4tZXhwYW5kIGJvZHkgcGFyYW1zKSkKKyAgICAgICAgIChjb21waWxlCisJICAocHJvZ24KKwkg ICAgKHdpdGgtdGVtcC1maWxlIHRtcC1zcmMtZmlsZSAoaW5zZXJ0IGZ1bGwtYm9keSkpCisJICAg IChvcmctYmFiZWwtZXZhbAorCSAgICAgKGZvcm1hdCAiJXMgLW8gJXMgJXMgJXMiCisJCSAgICAg b3JnLWJhYmVsLWZvcnRyYW4tY29tcGlsZXIKKwkJICAgICAob3JnLWJhYmVsLXByb2Nlc3MtZmls ZS1uYW1lIHRtcC1iaW4tZmlsZSkKKwkJICAgICAobWFwY29uY2F0ICdpZGVudGl0eQorCQkJCShp ZiAobGlzdHAgZmxhZ3MpIGZsYWdzIChsaXN0IGZsYWdzKSkgIiAiKQorCQkgICAgIChvcmctYmFi ZWwtcHJvY2Vzcy1maWxlLW5hbWUgdG1wLXNyYy1maWxlKSkgIiIpKSkpCisgICAgKChsYW1iZGEg KHJlc3VsdHMpCisgICAgICAgKG9yZy1iYWJlbC1yZWFzc2VtYmxlLXRhYmxlCisJKGlmIChtZW1i ZXIgInZlY3RvciIgKGNkciAoYXNzb2MgOnJlc3VsdC1wYXJhbXMgcGFyYW1zKSkpCisJICAgIChs ZXQgKCh0bXAtZmlsZSAob3JnLWJhYmVsLXRlbXAtZmlsZSAiZi0iKSkpCisJICAgICAgKHdpdGgt dGVtcC1maWxlIHRtcC1maWxlIChpbnNlcnQgcmVzdWx0cykpCisJICAgICAgKG9yZy1iYWJlbC1p bXBvcnQtZWxpc3AtZnJvbS1maWxlIHRtcC1maWxlKSkKKwkgIChvcmctYmFiZWwtcmVhZCByZXN1 bHRzKSkKKwkob3JnLWJhYmVsLXBpY2stbmFtZQorCSAoY2RyIChhc3NvYyA6Y29sbmFtZS1uYW1l cyBwYXJhbXMpKSAoY2RyIChhc3NvYyA6Y29sbmFtZXMgcGFyYW1zKSkpCisJKG9yZy1iYWJlbC1w aWNrLW5hbWUKKwkgKGNkciAoYXNzb2MgOnJvd25hbWUtbmFtZXMgcGFyYW1zKSkgKGNkciAoYXNz b2MgOnJvd25hbWVzIHBhcmFtcykpKSkpCisgICAgIChvcmctYmFiZWwtdHJpbQorICAgICAgIChv cmctYmFiZWwtZXZhbAorCShjb25jYXQgdG1wLWJpbi1maWxlIChpZiBjbWRsaW5lIChjb25jYXQg IiAiIGNtZGxpbmUpICIiKSkgIiIpKSkpKQorCisoZGVmdW4gb3JnLWJhYmVsLWZvcnRyYW4tZXhw YW5kIChib2R5IHBhcmFtcykKKyAgIkV4cGFuZCBhIGJsb2NrIG9mIGZvcnRyYW4gb3IgZm9ydHJh biBjb2RlIHdpdGggb3JnLWJhYmVsIGFjY29yZGluZyB0bworaXQncyBoZWFkZXIgYXJndW1lbnRz LiIKKyAgKGxldCAoKHZhcnMgKG1hcGNhciAjJ2NkciAob3JnLWJhYmVsLWdldC1oZWFkZXIgcGFy YW1zIDp2YXIpKSkKKyAgICAgICAgKG1haW4tcCAobm90IChzdHJpbmc9IChjZHIgKGFzc29jIDpt YWluIHBhcmFtcykpICJubyIpKSkKKyAgICAgICAgKGluY2x1ZGVzIChvciAoY2RyIChhc3NvYyA6 aW5jbHVkZXMgcGFyYW1zKSkKKyAgICAgICAgICAgICAgICAgICAgICAob3JnLWJhYmVsLXJlYWQg KG9yZy1lbnRyeS1nZXQgbmlsICJpbmNsdWRlcyIgdCkpKSkKKyAgICAgICAgKGRlZmluZXMgKG9y Zy1iYWJlbC1yZWFkCisgICAgICAgICAgICAgICAgICAob3IgKGNkciAoYXNzb2MgOmRlZmluZXMg cGFyYW1zKSkKKyAgICAgICAgICAgICAgICAgICAgICAob3JnLWJhYmVsLXJlYWQgKG9yZy1lbnRy eS1nZXQgbmlsICJkZWZpbmVzIiB0KSkpKSkpCisgICAgIChtYXBjb25jYXQgJ2lkZW50aXR5CisJ CShsaXN0CisJCSA7OyBpbmNsdWRlcworCQkgKG1hcGNvbmNhdAorCQkgIChsYW1iZGEgKGluYykg KGZvcm1hdCAiI2luY2x1ZGUgJXMiIGluYykpCisJCSAgKGlmIChsaXN0cCBpbmNsdWRlcykgaW5j bHVkZXMgKGxpc3QgaW5jbHVkZXMpKSAiXG4iKQorCQkgOzsgZGVmaW5lcworCQkgKG1hcGNvbmNh dAorCQkgIChsYW1iZGEgKGluYykgKGZvcm1hdCAiI2RlZmluZSAlcyIgaW5jKSkKKwkJICAoaWYg KGxpc3RwIGRlZmluZXMpIGRlZmluZXMgKGxpc3QgZGVmaW5lcykpICJcbiIpCisJCSA7OyBib2R5 CisJCSAoaWYgbWFpbi1wCisJCSAgICAgKG9yZy1iYWJlbC1mb3J0cmFuLWVuc3VyZS1tYWluLXdy YXAgCisJCSAgICAgIChjb25jYXQgCisJCSAgICAgICA7OyB2YXJpYWJsZXMKKwkJICAgICAgICht YXBjb25jYXQgJ29yZy1iYWJlbC1mb3J0cmFuLXZhci10by1mb3J0cmFuIHZhcnMgIlxuIikgCisJ CSAgICAgICBib2R5KSkKKwkJICAgYm9keSkgIlxuIikgIlxuIikpKQorCisoZGVmdW4gb3JnLWJh YmVsLWZvcnRyYW4tZW5zdXJlLW1haW4td3JhcCAoYm9keSkKKyAgIldyYXAgYm9keSBpbiBhIFwi cHJvZ3JhbSAuLi4gZW5kIHByb2dyYW1cIiBibG9jayBpZiBub25lIGV4aXN0cy4iCisgIChpZiAo c3RyaW5nLW1hdGNoICJeWyBcdF0qcHJvZ3JhbVsgXHRdKi4qIiAoY2FwaXRhbGl6ZSBib2R5KSkK KyAgICAgICAobGV0ICgodmFycyAobWFwY2FyICMnY2RyIChvcmctYmFiZWwtZ2V0LWhlYWRlciBw YXJhbXMgOnZhcikpKSkKKwkgKGlmIHZhcnMgKGVycm9yICJjYW5ub3QgdXNlIDp2YXJzIGlmICdw cm9ncmFtJyBzdGF0bWVudCBpcyBwcmVzZW50IikpCisJIGJvZHkpCisgICAgKGZvcm1hdCAicHJv Z3JhbSBtYWluXG4lc1xuZW5kIHByb2dyYW0gbWFpblxuIiBib2R5KSkpCisKKyhkZWZ1biBvcmct YmFiZWwtcHJlcC1zZXNzaW9uOmZvcnRyYW4gKHNlc3Npb24gcGFyYW1zKQorICAiVGhpcyBmdW5j dGlvbiBkb2VzIG5vdGhpbmcgYXMgZm9ydHJhbiBpcyBhIGNvbXBpbGVkIGxhbmd1YWdlIHdpdGgg bm8KK3N1cHBvcnQgZm9yIHNlc3Npb25zIgorICAoZXJyb3IgImZvcnRyYW4gaXMgYSBjb21waWxl ZCBsYW5ndWFnZXMgLS0gbm8gc3VwcG9ydCBmb3Igc2Vzc2lvbnMiKSkKKworKGRlZnVuIG9yZy1i YWJlbC1sb2FkLXNlc3Npb246Zm9ydHJhbiAoc2Vzc2lvbiBib2R5IHBhcmFtcykKKyAgIlRoaXMg ZnVuY3Rpb24gZG9lcyBub3RoaW5nIGFzIGZvcnRyYW4gaXMgYSBjb21waWxlZCBsYW5ndWFnZSB3 aXRoIG5vCitzdXBwb3J0IGZvciBzZXNzaW9ucyIKKyAgKGVycm9yICJmb3J0cmFuIGlzIGEgY29t cGlsZWQgbGFuZ3VhZ2VzIC0tIG5vIHN1cHBvcnQgZm9yIHNlc3Npb25zIikpCisKKzs7IGhlbHBl ciBmdW5jdGlvbnMKKworKGRlZnVuIG9yZy1iYWJlbC1mb3J0cmFuLXZhci10by1mb3J0cmFuIChw YWlyKQorICAiZm9ydHJhbm9udmVydCBhbiBlbGlzcCB2YWwgaW50byBhIHN0cmluZyBvZiBmb3J0 cmFuIGNvZGUgc3BlY2lmeWluZyBhIHZhcgorb2YgdGhlIHNhbWUgdmFsdWUuIgorICA7OyBUT0RP IGxpc3Qgc3VwcG9ydAorICAobGV0ICgodmFyIChjYXIgcGFpcikpCisgICAgICAgICh2YWwgKGNk ciBwYWlyKSkpCisgICAgKHdoZW4gKHN5bWJvbHAgdmFsKQorICAgICAgKHNldHEgdmFsIChzeW1i b2wtbmFtZSB2YWwpKQorICAgICAgKHdoZW4gKD0gKGxlbmd0aCB2YWwpIDEpCisgICAgICAgIChz ZXRxIHZhbCAoc3RyaW5nLXRvLWNoYXIgdmFsKSkpKQorICAgIChjb25kCisgICAgICgoaW50ZWdl cnAgdmFsKQorICAgICAgKGZvcm1hdCAiaW50ZWdlciwgcGFyYW1ldGVyICA6OiAgJVMgPSAlU1xu IiB2YXIgdmFsKSkKKyAgICAgKChmbG9hdHAgdmFsKQorICAgICAgKGZvcm1hdCAicmVhbCwgcGFy YW1ldGVyIDo6ICAlUyA9ICVTXG4iIHZhciB2YWwpKQorICAgICAoKG9yIChjaGFyYWN0ZXJwIHZh bCkpCisgICAgICAoZm9ybWF0ICJjaGFyYWN0ZXIsIHBhcmFtZXRlciA6OiAlUyA9ICclUydcbiIg dmFyIHZhbCkpCisgICAgICgoc3RyaW5ncCB2YWwpCisgICAgICAoZm9ybWF0ICJjaGFyYWN0ZXIs IHBhcmFtZXRlciA6OiAgJVMoJWQpID0gJyVzJ1xuIgorICAgICAgICAgICAgICB2YXIgKGxlbmd0 aCB2YWwpIHZhbCkpCisgICAgICgobGlzdHAgdmFsKQorICAgICAgKGZvcm1hdCAicmVhbCwgcGFy YW1ldGVyIDo6ICVTKCVkKSA9ICVzXG4iIHZhciAobGVuZ3RoIHZhbCkgKG9iLWZvcnRyYW4tdHJh bnNmb3JtLWxpc3QgdmFsKSkpCisgICAgICh0CisgICAgICAoZXJyb3IgKGZvcm1hdCAidGhlIHR5 cGUgb2YgcGFyYW1ldGVyICVzIGlzIG5vdCBzdXBwb3J0ZWQgYnkgb2ItZm9ydHJhbiIgdmFyKSkp KSkpCisKKyhkZWZ1biBvYi1mb3J0cmFuLXRyYW5zZm9ybS1saXN0ICh2YWwpCisgICJSZXR1cm4g YSBmb3J0cmFuIHJlcHJlc2VudGF0aW9uIG9mIGVuY2xvc2Ugc3ludGFjdGljIGxpc3RzLiIKKyAg KGlmIChsaXN0cCB2YWwpCisgICAgICAoY29uY2F0ICIoLyIgKG1hcGNvbmNhdCAjJ29iLWZvcnRy YW4tcGFyc2UtbGlzdCB2YWwgIiwgIikgIi8pIikKKyAgICAoZm9ybWF0ICIlUyIgdmFsKSkpCisK Kyhwcm92aWRlICdvYi1mb3J0cmFuKQorCis7Ozsgb2ItZm9ydHJhbi5lbCBlbmRzIGhlcmUKZGlm ZiAtLWdpdCBhL3Rlc3RpbmcvZXhhbXBsZXMvb2ItZm9ydHJhbi10ZXN0Lm9yZyBiL3Rlc3Rpbmcv ZXhhbXBsZXMvb2ItZm9ydHJhbi10ZXN0Lm9yZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi42OTA2YjI0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9leGFtcGxlcy9vYi1m b3J0cmFuLXRlc3Qub3JnCkBAIC0wLDAgKzEsNjcgQEAKKyogVGVzdCBvcmcgZm9ydHJhbiBmaWxl CisjK2JlZ2luX3NyYyBmb3J0cmFuCitwcmludCAqLCAnSGVsbG8gd29ybGQnCisjK2VuZF9zcmMK KworIytiZWdpbl9zcmMgZm9ydHJhbgoraW50ZWdlciwgcGFyYW1ldGVyIDo6IGkgPSAxMAorcHJp bnQgKiwgJ2kgPSAnLCBpCisjK2VuZF9zcmMKKworIytiZWdpbl9zcmMgZm9ydHJhbiA6dmFyIE4g PSAxMAorcHJpbnQgKiwgJ04gPSAnLCBOCisjK2VuZF9zcmMKKworRGVmaW5lIGZvciBwcmVwcm9j ZXNzZWQgZm9ydHJhbgorIytiZWdpbl9zcmMgZm9ydHJhbiA6ZGVmaW5lcyBOIDQyCitpbXBsaWNp dCBub25lCitwcmludCAqLCAnTiA9ICcsIE4KKyMrZW5kX3NyYworCisjK2JlZ2luX3NyYyBmb3J0 cmFuIDp2YXIgcz0id29yZCIKK3ByaW50ICosICdzID0gJywgcworcHJpbnQgKiwgJ3NpemUocykg PSAnLCBzaXplKHMpCisjK2VuZF9zcmMKKworIytiZWdpbl9zcmMgZm9ydHJhbiA6dmFyIHM9NDIu MAorcHJpbnQgKiwgJ3MgPSAnLCBzCitwcmludCAqLCAna2luZChzKSA9ICcsIGtpbmQocykKKyMr ZW5kX3NyYworCisjK2JlZ2luX3NyYyBmb3J0cmFuCitwcm9ncmFtIGV4CitwcmludCAqLCAib3V0 cHV0IG9mIGV4IHByb2dyYW0iCitlbmQgcHJvZ3JhbSBleAorIytlbmRfc3JjCisKK1Nob3VsZCBm YWlsIChUT0RPOiBhZGQgaW5wdXQgdmFyaWFibGVzIGZvciB0aGUgY2FzZSB3aXRoIGV4cGxpY2l0 Citwcm9ncmFtIHN0YXRlbWVudCkKKyMrYmVnaW5fc3JjIGZvcnRyYW4gOnZhciBzPSJ3b3JkIgor cHJvZ3JhbSBleAorcHJpbnQgKiwgIm91dHB1dCBvZiBleCBwcm9ncmFtIgorZW5kIHByb2dyYW0g ZXgKKyMrZW5kX3NyYworCitSZWFsIGFycmF5IGFzIGlucHV0CisjK2JlZ2luX3NyYyBmb3J0cmFu IDp2YXIgcz0nKDEuMCAyLjAgMy4wKQorcHJpbnQgKiwgcworIytlbmRfc3JjCisKK0ZhaWxzIHRv IGNvbXBpbGUgKFRPRE86IGVycm9yIGNoZWNrIGluIG9iLWZvcnRyYW4uZWwpCisjK2JlZ2luX3Ny YyBmb3J0cmFuIDp2YXIgcz0nKDEgKCkpCitwcmludCAqLCBzCisjK2VuZF9zcmMKKworU2hvdWxk IGZhaWwgdG8gY29tcGlsZSB3aXRoIGdmb3J0cmFuCisjK2JlZ2luX3NyYyBmb3J0cmFuIDpmbGFn cyAtLXN0ZD1mOTUgLS1wZWRhbnRpYy1lcnJvcgorcHJvZ3JhbSBleAoraW50ZWdlcio4IDo6IGkK K2VuZCBwcm9ncmFtIGV4CisjK2VuZF9zcmMKKworUGFzcyBwYXJhbWV0ZXJzIHRvIHRoZSBwcm9n cmFtCisjK2JlZ2luX3NyYyBmb3J0cmFuIDpjbWRsaW5lICIyMyIKK2NoYXJhY3RlcihsZW49MjU1 KSA6OiBjbWQKK2NhbGwgZ2V0X2NvbW1hbmQoY21kKQord3JpdGUgKCosKikgdHJpbShjbWQpCisj K2VuZF9zcmMKLS0gCjEuNy40LjEKCg== --00504502e4340b749104a8440e67--