From mboxrd@z Thu Jan 1 00:00:00 1970 From: "numbchild@gmail.com" Subject: Re: a patch to ob-lisp.el Date: Wed, 6 Apr 2016 22:51:10 +0800 Message-ID: References: <874mbtz0pb.fsf@gmail.com> <87oa9zxnbp.fsf@pierrot.dokosmarshall.org> <877fgbdr5p.fsf@nicolasgoaziou.fr> <874mbedhro.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a11c02a627aab70052fd219b1 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54032) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anoo3-0001Uv-Do for emacs-orgmode@gnu.org; Wed, 06 Apr 2016 10:51:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1anoo1-00041K-EM for emacs-orgmode@gnu.org; Wed, 06 Apr 2016 10:51:43 -0400 Received: from mail-yw0-x235.google.com ([2607:f8b0:4002:c05::235]:36422) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anoo1-000410-6F for emacs-orgmode@gnu.org; Wed, 06 Apr 2016 10:51:41 -0400 Received: by mail-yw0-x235.google.com with SMTP id g3so59415884ywa.3 for ; Wed, 06 Apr 2016 07:51:41 -0700 (PDT) In-Reply-To: <874mbedhro.fsf@nicolasgoaziou.fr> 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: "numbchild@gmail.com" , "Thomas S. Dye" , Nick Dokos , Org-mode --001a11c02a627aab70052fd219b1 Content-Type: multipart/alternative; boundary=001a11c02a627aab6b052fd219af --001a11c02a627aab6b052fd219af Content-Type: text/plain; charset=UTF-8 Oh, right. I should attach it. ```diff >From 30eec5a63e4f720fa3880b9aef06aedd84072078 Mon Sep 17 00:00:00 2001 From: stardiviner Date: Sat, 2 Apr 2016 00:46:36 +0800 Subject: [PATCH] add SLY support in ob-lisp * ob-lisp.el (org-babel-execute:lisp): Support using SLY to evaluate lisp src block. SLY has some advantages over SLIME, let user can evaluate Lisp src block with SLY. modified from a patch proposal by stardiviner. TINYCHANGE --- etc/ORG-NEWS | 2 ++ lisp/ob-lisp.el | 51 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 3ddc3f9..bb8a00d 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -819,6 +819,8 @@ See the docstring of ~org-latex-classes~ and *** `org-insert-heading' can be forced to insert top-level headline +*** let ob-lisp supporting use SLY to evaluate + ** Removed functions *** Removed function ~org-translate-time~ diff --git a/lisp/ob-lisp.el b/lisp/ob-lisp.el index 64b032d..68ea5e2 100644 --- a/lisp/ob-lisp.el +++ b/lisp/ob-lisp.el @@ -25,16 +25,26 @@ ;;; Commentary: -;;; support for evaluating common lisp code, relies on slime for all eval +;;; Support for evaluating Common Lisp code, relies on SLY or SLIME for all eval. ;;; Requirements: -;; Requires SLIME (Superior Lisp Interaction Mode for Emacs.) -;; See http://common-lisp.net/project/slime/ +;; Requires SLY (Sylvester the Cat's Common Lisp IDE) or SLIME. +;; See: +;; - https://github.com/capitaomorte/sly +;; - http://common-lisp.net/project/slime/ ;;; Code: (require 'ob) +(defcustom org-babel-lisp-eval-fn "sly-eval" + "The function to be called to evaluate code on the Lisp side." + :group 'org-babel + :version "24.1" + :options '("sly-eval" "slime-eval") + :type 'stringp) + +(declare-function sly-eval "ext:sly" (sexp &optional package)) (declare-function slime-eval "ext:slime" (sexp &optional package)) (defvar org-babel-tangle-lang-exts) @@ -72,24 +82,27 @@ current directory string." body))) (defun org-babel-execute:lisp (body params) - "Execute a block of Common Lisp code with Babel." - (require 'slime) + "Execute a block `BODY' with `PARAMS' of Common Lisp code with Babel." + (pcase org-babel-lisp-eval-fn + ("slime-eval" (require 'slime)) + ("sly-eval" (require 'sly))) (org-babel-reassemble-table (let ((result - (funcall (if (member "output" (cdr (assoc :result-params params))) - #'car #'cadr) - (with-temp-buffer - (insert (org-babel-expand-body:lisp body params)) - (slime-eval `(swank:eval-and-grab-output - ,(let ((dir (if (assoc :dir params) - (cdr (assoc :dir params)) - default-directory))) - (format - (if dir (format org-babel-lisp-dir-fmt dir) - "(progn %s\n)") - (buffer-substring-no-properties - (point-min) (point-max))))) - (cdr (assoc :package params))))))) + (funcall (if (member "output" (cdr (assoc :result-params params))) + #'car #'cadr) + (with-temp-buffer + (insert (org-babel-expand-body:lisp body params)) + (funcall org-babel-lisp-eval-fn + `(swank:eval-and-grab-output + ,(let ((dir (if (assoc :dir params) + (cdr (assoc :dir params)) + default-directory))) + (format + (if dir (format org-babel-lisp-dir-fmt dir) + "(progn %s\n)") + (buffer-substring-no-properties + (point-min) (point-max))))) + (cdr (assoc :package params))))))) (org-babel-result-cond (cdr (assoc :result-params params)) result (condition-case nil -- 2.8.0 ``` [stardiviner] GPG key ID: 47C32433 IRC(freeenode): stardiviner Twitter: @numbchild Key fingerprint = 9BAA 92BC CDDD B9EF 3B36 CB99 B8C4 B8E5 47C3 2433 Blog: http://stardiviner.github.io/ On Wed, Apr 6, 2016 at 8:49 PM, Nicolas Goaziou wrote: > Hello, > > "numbchild@gmail.com" writes: > > > Hi, Nicolas, the another email which you commented many places is > outdated. > > That patch is modified from the version of MELPA package > `org-plus-conrtib`. > > > > I cloned org-mode git repo, and created public repo branch at here: > > https://github.com/stardiviner/org-mode/tree/sly-support-for-ob-lisp > > > > I checked this branch's diff with your mentioned places. All checked. > > I followed org-mode contrib guide to create this commit. > > Please let me know if there is any place need to modify. > > From your local branch, use > > git format-patch master > > This will generate a patch file, which you can send to this ML. > > Regards, > > -- > Nicolas Goaziou > --001a11c02a627aab6b052fd219af Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Oh, right. I should attach it.
=
```diff
From 30eec5a63e4f72= 0fa3880b9aef06aedd84072078 Mon Sep 17 00:00:00 2001
From: stardivine= r <numbchild@gmail.com>
Date: Sat, 2 Apr 2016 00:46:36 +0800
Subject: [PATCH] add SLY sup= port in ob-lisp

* ob-lisp.el (org-babel-execute:lisp): Sup= port using SLY to evaluate
=C2=A0 lisp src block.

SL= Y has some advantages over SLIME, let user can evaluate Lisp src block

modified from a patch proposal by stardiviner= .

TINYCHANGE
---
=C2=A0etc/ORG-NEWS =C2=A0 =C2= =A0| =C2=A02 ++
=C2=A0lisp/ob-lisp.el | 51 ++++++++++++++++++++++++++= ++++++-------------------
=C2=A02 files changed, 34 insertions(+), 19= deletions(-)

diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 3ddc3f9..bb8a00d 100644
<= font face=3D"trebuchet ms, sans-serif">--- a/etc/ORG-NEWS
+++ b/etc/O= RG-NEWS
@@ -819,6 +819,8 @@ See the docstring of ~org-latex-classes~ = and
=C2=A0
=C2=A0*** `org-insert-heading' can be forced to = insert top-level headline
=C2=A0
+*** let ob-lisp supporting us= e SLY to evaluate
+
=C2=A0** Removed functions
=C2=A0
=C2=A0*** Removed function ~org-translate-time~
diff --git a/lis= p/ob-lisp.el b/lisp/ob-lisp.el
index 64b032d..68ea5e2 100644
--= - a/lisp/ob-lisp.el
+++ b/lisp/ob-lisp.el
@@ -25,16 +25,26 @@
=C2=A0
=C2=A0;;; Commentary:
=C2=A0
-;;; support for= evaluating common lisp code, relies on slime for all eval
+;;; Suppo= rt for evaluating Common Lisp code, relies on SLY or SLIME for all eval.
=C2=A0
=C2=A0;;; Requirements:
=C2=A0
-;; Requires SL= IME (Superior Lisp Interaction Mode for Emacs.)
=C2=A0
=C2=A0;;; Code:
<= font face=3D"trebuchet ms, sans-serif">=C2=A0(require 'ob)
=
=C2=A0=
+(defcustom org-babel-lisp-eval-fn "sly-eval"
=
+ =C2= =A0"The function to be called to evaluate code on the Lisp side."=
+ =C2=A0:group 'org-babel
+ =C2=A0:version "24.1"= ;
+ =C2=A0:options '("sly-eval" "slime-eval")=
+ =C2=A0:type 'stringp)
+
+(declare-function sly-eva= l "ext:sly" (sexp &optional package))
=C2=A0(declare-f= unction slime-eval "ext:slime" (sexp &optional package))
=C2=A0(defvar org-babel-tangle-lang-exts)
@@ -72,24 +8= 2,27 @@ current directory string."
=C2=A0 =C2=A0 =C2=A0 =C2=A0bo= dy)))
=C2=A0
=C2=A0(defun org-babel-execute:lisp (body params)<= /font>
- =C2=A0"Execute a block of Common Lisp code with Babel."
- =C2=A0(require 'slime)
= + =C2=A0"Execute a block `BODY= ' with `PARAMS' of Common Lisp code with Babel."
<= div class=3D"gmail_default">+ =C2= =A0(pcase org-babel-lisp-eval-fn
<= font face=3D"trebuchet ms, sans-serif">+ =C2=A0 =C2=A0("slime-eval&quo= t; (require 'slime))
+ =C2=A0 =C2=A0("sly-eval" (requir= e 'sly)))
=C2=A0 =C2=A0(org-babel-reassemble-table
=C2=A0 = =C2=A0 (let ((result
- =C2=A0(funcall (if (member "output" (cdr (assoc :result-para= ms params)))
- = =C2=A0 =C2=A0 =C2=A0 #'car #'cadr)
- =C2=A0 (with-temp-buffer
- =C2=A0 =C2=A0 (insert (org-babel-expa= nd-body:lisp body params))
- =C2=A0 =C2=A0 (slime-eval `(swank:eval-and-grab-output
-<= span class=3D"" style=3D"white-space:pre"> =C2=A0 ,(let ((dir (i= f (assoc :dir params)
- = =C2=A0 (cdr (assoc :dir params))
- default-directory)))
- =C2=A0 =C2=A0 =C2=A0(format
- =C2=A0 =C2=A0 = =C2=A0 (if dir (format org-babel-lisp-dir-fmt dir)
- "(progn %s\n)")
-<= span class=3D"" style=3D"white-space:pre"> =C2=A0 =C2=A0 =C2=A0 = (buffer-substring-no-properties
- (point-min) (point-max)))))
- (cdr (assoc :package params)))))))=
= + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(funcall (if (member "output"= (cdr (assoc :result-params params)))
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 #'car #'cadr)
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 (insert (org-babel-expand-body:lisp body params))
+ =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (funcall= org-babel-lisp-eval-fn
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0`(swank:eval-= and-grab-output
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0,(let ((dir (= if (assoc :dir params)
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(cdr (assoc :dir params= ))
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0default-directory)))
+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 (format
<= font face=3D"trebuchet ms, sans-serif">+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(if dir (format org-babel-lisp-dir-fmt dir)
+ =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"(progn %s\n)"= ;)
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(buffer-subst= ring-no-properties
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (point-min) (point-max)))))
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(cdr (= assoc :package params)))))))
=C2=A0 =C2=A0 =C2=A0 (org-babel-result-c= ond (cdr (assoc :result-params params))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 r= esult
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (condition-case nil
--=C2=A0<= /font>
2.8.0
```

[stardiviner]=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 <Hack this world!>=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0 GPG key ID: 47C32433
IRC(freeenode): stardiviner =C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 Twitter:=C2=A0 @numbchild
Key fingerprint =3D 9= BAA 92BC CDDD B9EF 3B36=C2=A0 CB99 B8C4 B8E5 47C3 2433
Blog: http://stardiviner.github.= io/

On Wed, Apr 6, 2016 at 8:49 PM, Nicolas Goaz= iou <mail@nicolasgoaziou.fr> wrote:
Hello,

"numbchild@gmail.com" = <numbchild@gmail.com> writ= es:

> Hi, Nicolas, the another email which you commented many places is outd= ated.
> That patch is modified from the version of MELPA package `org-plus-con= rtib`.
>
> I cloned org-mode git repo, and created public repo branch at here: > https://github.com/stardivi= ner/org-mode/tree/sly-support-for-ob-lisp
>
> I checked this branch's diff with your mentioned places. All check= ed.
> I followed org-mode contrib guide to create this commit.
> Please let me know if there is any place need to modify.

From your local branch, use

=C2=A0 git format-patch master

This will generate a patch file, which you can send to this ML.

Regards,

--
Nicolas Goaziou

--001a11c02a627aab6b052fd219af-- --001a11c02a627aab70052fd219b1 Content-Type: text/x-patch; charset=US-ASCII; name="0001-add-SLY-support-in-ob-lisp.patch" Content-Disposition: attachment; filename="0001-add-SLY-support-in-ob-lisp.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_imozhfrd0 RnJvbSAzMGVlYzVhNjNlNGY3MjBmYTM4ODBiOWFlZjA2YWVkZDg0MDcyMDc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzdGFyZGl2aW5lciA8bnVtYmNoaWxkQGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAyIEFwciAyMDE2IDAwOjQ2OjM2ICswODAwClN1YmplY3Q6IFtQQVRDSF0gYWRkIFNM WSBzdXBwb3J0IGluIG9iLWxpc3AKCiogb2ItbGlzcC5lbCAob3JnLWJhYmVsLWV4ZWN1dGU6bGlz cCk6IFN1cHBvcnQgdXNpbmcgU0xZIHRvIGV2YWx1YXRlCiAgbGlzcCBzcmMgYmxvY2suCgpTTFkg aGFzIHNvbWUgYWR2YW50YWdlcyBvdmVyIFNMSU1FLCBsZXQgdXNlciBjYW4gZXZhbHVhdGUgTGlz cCBzcmMgYmxvY2sKd2l0aCBTTFkuCgptb2RpZmllZCBmcm9tIGEgcGF0Y2ggcHJvcG9zYWwgYnkg c3RhcmRpdmluZXIuCgpUSU5ZQ0hBTkdFCi0tLQogZXRjL09SRy1ORVdTICAgIHwgIDIgKysKIGxp c3Avb2ItbGlzcC5lbCB8IDUxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAxOSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ldGMvT1JHLU5FV1MgYi9ldGMvT1JHLU5FV1MKaW5kZXgg M2RkYzNmOS4uYmI4YTAwZCAxMDA2NDQKLS0tIGEvZXRjL09SRy1ORVdTCisrKyBiL2V0Yy9PUkct TkVXUwpAQCAtODE5LDYgKzgxOSw4IEBAIFNlZSB0aGUgZG9jc3RyaW5nIG9mIH5vcmctbGF0ZXgt Y2xhc3Nlc34gYW5kCiAKICoqKiBgb3JnLWluc2VydC1oZWFkaW5nJyBjYW4gYmUgZm9yY2VkIHRv IGluc2VydCB0b3AtbGV2ZWwgaGVhZGxpbmUKIAorKioqIGxldCBvYi1saXNwIHN1cHBvcnRpbmcg dXNlIFNMWSB0byBldmFsdWF0ZQorCiAqKiBSZW1vdmVkIGZ1bmN0aW9ucwogCiAqKiogUmVtb3Zl ZCBmdW5jdGlvbiB+b3JnLXRyYW5zbGF0ZS10aW1lfgpkaWZmIC0tZ2l0IGEvbGlzcC9vYi1saXNw LmVsIGIvbGlzcC9vYi1saXNwLmVsCmluZGV4IDY0YjAzMmQuLjY4ZWE1ZTIgMTAwNjQ0Ci0tLSBh L2xpc3Avb2ItbGlzcC5lbAorKysgYi9saXNwL29iLWxpc3AuZWwKQEAgLTI1LDE2ICsyNSwyNiBA QAogCiA7OzsgQ29tbWVudGFyeToKIAotOzs7IHN1cHBvcnQgZm9yIGV2YWx1YXRpbmcgY29tbW9u IGxpc3AgY29kZSwgcmVsaWVzIG9uIHNsaW1lIGZvciBhbGwgZXZhbAorOzs7IFN1cHBvcnQgZm9y IGV2YWx1YXRpbmcgQ29tbW9uIExpc3AgY29kZSwgcmVsaWVzIG9uIFNMWSBvciBTTElNRSBmb3Ig YWxsIGV2YWwuCiAKIDs7OyBSZXF1aXJlbWVudHM6CiAKLTs7IFJlcXVpcmVzIFNMSU1FIChTdXBl cmlvciBMaXNwIEludGVyYWN0aW9uIE1vZGUgZm9yIEVtYWNzLikKLTs7IFNlZSBodHRwOi8vY29t bW9uLWxpc3AubmV0L3Byb2plY3Qvc2xpbWUvCis7OyBSZXF1aXJlcyBTTFkgKFN5bHZlc3RlciB0 aGUgQ2F0J3MgQ29tbW9uIExpc3AgSURFKSBvciBTTElNRS4KKzs7IFNlZToKKzs7IC0gaHR0cHM6 Ly9naXRodWIuY29tL2NhcGl0YW9tb3J0ZS9zbHkKKzs7IC0gaHR0cDovL2NvbW1vbi1saXNwLm5l dC9wcm9qZWN0L3NsaW1lLwogCiA7OzsgQ29kZToKIChyZXF1aXJlICdvYikKIAorKGRlZmN1c3Rv bSBvcmctYmFiZWwtbGlzcC1ldmFsLWZuICJzbHktZXZhbCIKKyAgIlRoZSBmdW5jdGlvbiB0byBi ZSBjYWxsZWQgdG8gZXZhbHVhdGUgY29kZSBvbiB0aGUgTGlzcCBzaWRlLiIKKyAgOmdyb3VwICdv cmctYmFiZWwKKyAgOnZlcnNpb24gIjI0LjEiCisgIDpvcHRpb25zICcoInNseS1ldmFsIiAic2xp bWUtZXZhbCIpCisgIDp0eXBlICdzdHJpbmdwKQorCisoZGVjbGFyZS1mdW5jdGlvbiBzbHktZXZh bCAiZXh0OnNseSIgKHNleHAgJm9wdGlvbmFsIHBhY2thZ2UpKQogKGRlY2xhcmUtZnVuY3Rpb24g c2xpbWUtZXZhbCAiZXh0OnNsaW1lIiAoc2V4cCAmb3B0aW9uYWwgcGFja2FnZSkpCiAKIChkZWZ2 YXIgb3JnLWJhYmVsLXRhbmdsZS1sYW5nLWV4dHMpCkBAIC03MiwyNCArODIsMjcgQEAgY3VycmVu dCBkaXJlY3Rvcnkgc3RyaW5nLiIKICAgICAgIGJvZHkpKSkKIAogKGRlZnVuIG9yZy1iYWJlbC1l eGVjdXRlOmxpc3AgKGJvZHkgcGFyYW1zKQotICAiRXhlY3V0ZSBhIGJsb2NrIG9mIENvbW1vbiBM aXNwIGNvZGUgd2l0aCBCYWJlbC4iCi0gIChyZXF1aXJlICdzbGltZSkKKyAgIkV4ZWN1dGUgYSBi bG9jayBgQk9EWScgd2l0aCBgUEFSQU1TJyBvZiBDb21tb24gTGlzcCBjb2RlIHdpdGggQmFiZWwu IgorICAocGNhc2Ugb3JnLWJhYmVsLWxpc3AtZXZhbC1mbgorICAgICgic2xpbWUtZXZhbCIgKHJl cXVpcmUgJ3NsaW1lKSkKKyAgICAoInNseS1ldmFsIiAocmVxdWlyZSAnc2x5KSkpCiAgIChvcmct YmFiZWwtcmVhc3NlbWJsZS10YWJsZQogICAgKGxldCAoKHJlc3VsdAotCSAgKGZ1bmNhbGwgKGlm IChtZW1iZXIgIm91dHB1dCIgKGNkciAoYXNzb2MgOnJlc3VsdC1wYXJhbXMgcGFyYW1zKSkpCi0J CSAgICAgICAjJ2NhciAjJ2NhZHIpCi0JCSAgICh3aXRoLXRlbXAtYnVmZmVyCi0JCSAgICAgKGlu c2VydCAob3JnLWJhYmVsLWV4cGFuZC1ib2R5Omxpc3AgYm9keSBwYXJhbXMpKQotCQkgICAgIChz bGltZS1ldmFsIGAoc3dhbms6ZXZhbC1hbmQtZ3JhYi1vdXRwdXQKLQkJCQkgICAsKGxldCAoKGRp ciAoaWYgKGFzc29jIDpkaXIgcGFyYW1zKQotCQkJCQkJICAgKGNkciAoYXNzb2MgOmRpciBwYXJh bXMpKQotCQkJCQkJIGRlZmF1bHQtZGlyZWN0b3J5KSkpCi0JCQkJICAgICAgKGZvcm1hdAotCQkJ CSAgICAgICAoaWYgZGlyIChmb3JtYXQgb3JnLWJhYmVsLWxpc3AtZGlyLWZtdCBkaXIpCi0JCQkJ CSAiKHByb2duICVzXG4pIikKLQkJCQkgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVy dGllcwotCQkJCQkocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKSkKLQkJCQkgKGNkciAoYXNzb2Mg OnBhY2thZ2UgcGFyYW1zKSkpKSkpKQorICAgICAgICAgIChmdW5jYWxsIChpZiAobWVtYmVyICJv dXRwdXQiIChjZHIgKGFzc29jIDpyZXN1bHQtcGFyYW1zIHBhcmFtcykpKQorICAgICAgICAgICAg ICAgICAgICAgICAjJ2NhciAjJ2NhZHIpCisgICAgICAgICAgICAgICAgICAgKHdpdGgtdGVtcC1i dWZmZXIKKyAgICAgICAgICAgICAgICAgICAgIChpbnNlcnQgKG9yZy1iYWJlbC1leHBhbmQtYm9k eTpsaXNwIGJvZHkgcGFyYW1zKSkKKyAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIG9yZy1i YWJlbC1saXNwLWV2YWwtZm4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAoc3dhbms6 ZXZhbC1hbmQtZ3JhYi1vdXRwdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLChs ZXQgKChkaXIgKGlmIChhc3NvYyA6ZGlyIHBhcmFtcykKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjZHIgKGFzc29jIDpkaXIgcGFyYW1zKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0LWRpcmVjdG9y eSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgZGlyIChmb3JtYXQgb3JnLWJhYmVsLWxp c3AtZGlyLWZtdCBkaXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIo cHJvZ24gJXNcbikiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZl ci1zdWJzdHJpbmctbm8tcHJvcGVydGllcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChwb2ludC1taW4pIChwb2ludC1tYXgpKSkpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNkciAoYXNzb2MgOnBhY2thZ2UgcGFyYW1zKSkpKSkpKQogICAgICAob3JnLWJh YmVsLXJlc3VsdC1jb25kIChjZHIgKGFzc29jIDpyZXN1bHQtcGFyYW1zIHBhcmFtcykpCiAgICAg ICAgcmVzdWx0CiAgICAgICAgKGNvbmRpdGlvbi1jYXNlIG5pbAotLSAKMi44LjAKCg== --001a11c02a627aab70052fd219b1--