<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[Freeswitch-trunk][16296] </title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<div id="header">FreeSWITCH Subversion</div>
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://fisheye.freeswitch.org/changelog/FreeSWITCH?cs=16296">16296</a></dd>
<dt>Author</dt> <dd>brian</dd>
<dt>Date</dt> <dd>2010-01-13 18:39:32 -0600 (Wed, 13 Jan 2010)</dd>
</dl>

<h3>Log Message</h3>
<pre> someone that knows TCL can figure this out... its there for the taking now </pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#freeswitchtrunklibseslMakefile">freeswitch/trunk/libs/esl/Makefile</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>freeswitch/trunk/libs/esl/tcl/</li>
<li><a href="#freeswitchtrunklibsesltclMakefile">freeswitch/trunk/libs/esl/tcl/Makefile</a></li>
<li><a href="#freeswitchtrunklibsesltclesl_wrapcpp">freeswitch/trunk/libs/esl/tcl/esl_wrap.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="freeswitchtrunklibseslMakefile"></a>
<div class="modfile"><h4>Modified: freeswitch/trunk/libs/esl/Makefile (16295 => 16296)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/esl/Makefile        2010-01-13 23:58:00 UTC (rev 16295)
+++ freeswitch/trunk/libs/esl/Makefile        2010-01-14 00:39:32 UTC (rev 16296)
</span><span class="lines">@@ -80,6 +80,9 @@
</span><span class="cx"> pymod: $(MYLIB)
</span><span class="cx">         $(MAKE) MYLIB=&quot;../$(MYLIB)&quot; SOLINK=&quot;$(SOLINK)&quot; CFLAGS=&quot;$(CFLAGS)&quot; CXXFLAGS=&quot;$(CXXFLAGS)&quot; CXX_CFLAGS=&quot;$(CXX_CFLAGS)&quot; -C python
</span><span class="cx"> 
</span><ins>+tclmod: $(MYLIB)
+        $(MAKE) MYLIB=&quot;../$(MYLIB)&quot; SOLINK=&quot;$(SOLINK)&quot; CFLAGS=&quot;$(CFLAGS)&quot; CXXFLAGS=&quot;$(CXXFLAGS)&quot; CXX_CFLAGS=&quot;$(CXX_CFLAGS)&quot; -C tcl
+
</ins><span class="cx"> rubymod: $(MYLIB)
</span><span class="cx">         $(MAKE) MYLIB=&quot;../$(MYLIB)&quot; SOLINK=&quot;$(SOLINK)&quot; CFLAGS=&quot;$(CFLAGS)&quot; CXXFLAGS=&quot;$(CXXFLAGS)&quot; CXX_CFLAGS=&quot;$(CXX_CFLAGS)&quot; -C ruby
</span><span class="cx"> 
</span></span></pre></div>
<a id="freeswitchtrunklibsesltclMakefile"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/esl/tcl/Makefile (0 => 16296)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/esl/tcl/Makefile                                (rev 0)
+++ freeswitch/trunk/libs/esl/tcl/Makefile        2010-01-14 00:39:32 UTC (rev 16296)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+LOCAL_CFLAGS=
+LOCAL_LDFLAGS=-ltcl
+WRAP_GCC_WARNING_SILENCE=-Wno-unused-function
+
+all: ESL.so
+
+esl_wrap.cpp:
+        swig -module ESL -tcl -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
+
+esl_wrap.o: esl_wrap.cpp
+        $(CXX) $(CXX_CFLAGS) $(CXXFLAGS) $(LOCAL_CFLAGS) $(WRAP_GCC_WARNING_SILENCE) -c esl_wrap.cpp -o esl_wrap.o
+
+ESL.so: esl_wrap.o
+        $(CXX) $(SOLINK) esl_wrap.o $(MYLIB) $(LOCAL_LDFLAGS) -o ESL.so -L. $(LIBS)
+
+clean:
+        rm -f *.o *.so *~
+
+swigclean:
+        rm -f esl_wrap.* ESL.so
+
+reswig:        swigclean esl_wrap.cpp
+
</ins></span></pre></div>
<a id="freeswitchtrunklibsesltclesl_wrapcpp"></a>
<div class="addfile"><h4>Added: freeswitch/trunk/libs/esl/tcl/esl_wrap.cpp (0 => 16296)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/trunk/libs/esl/tcl/esl_wrap.cpp                                (rev 0)
+++ freeswitch/trunk/libs/esl/tcl/esl_wrap.cpp        2010-01-14 00:39:32 UTC (rev 16296)
</span><span class="lines">@@ -0,0 +1,3646 @@
</span><ins>+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.35
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+
+#ifdef __cplusplus
+template&lt;typename T&gt; class SwigValueWrapper {
+    T *tt;
+public:
+    SwigValueWrapper() : tt(0) { }
+    SwigValueWrapper(const SwigValueWrapper&lt;T&gt;&amp; rhs) : tt(new T(*rhs.tt)) { }
+    SwigValueWrapper(const T&amp; t) : tt(new T(t)) { }
+    ~SwigValueWrapper() { delete tt; } 
+    SwigValueWrapper&amp; operator=(const T&amp; t) { delete tt; tt = new T(t); return *this; }
+    operator T&amp;() const { return *tt; }
+    T *operator&amp;() { return tt; }
+private:
+    SwigValueWrapper&amp; operator=(const SwigValueWrapper&lt;T&gt;&amp; rhs);
+};
+
+template &lt;typename T&gt; T SwigValueInit() {
+  return T();
+}
+#endif
+
+/* -----------------------------------------------------------------------------
+ *  This section contains generic SWIG labels for method/variable
+ *  declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) &amp;&amp; (__SUNPRO_CC &lt;= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC &lt;= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+#  define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) &amp;&amp; !defined(__STRICT_ANSI__))
+#   define SWIGINLINE inline
+# else
+#   define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ &gt; 3 || (__GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ &gt;= 4))
+#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#   else
+#     define SWIGUNUSED
+#   endif
+# elif defined(__ICC)
+#   define SWIGUNUSED __attribute__ ((__unused__)) 
+# else
+#   define SWIGUNUSED 
+# endif
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+#   define SWIGUNUSEDPARM(p)
+# else
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ &gt;= 4) || (__GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ &gt;= 4)
+#  ifndef GCC_HASCLASSVISIBILITY
+#    define GCC_HASCLASSVISIBILITY
+#  endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   if defined(STATIC_LINKED)
+#     define SWIGEXPORT
+#   else
+#     define SWIGEXPORT __declspec(dllexport)
+#   endif
+# else
+#   if defined(__GNUC__) &amp;&amp; defined(GCC_HASCLASSVISIBILITY)
+#     define SWIGEXPORT __attribute__ ((visibility(&quot;default&quot;)))
+#   else
+#     define SWIGEXPORT
+#   endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   define SWIGSTDCALL __stdcall
+# else
+#   define SWIGSTDCALL
+# endif 
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) &amp;&amp; defined(_MSC_VER) &amp;&amp; !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) &amp;&amp; defined(_MSC_VER) &amp;&amp; !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+#include &lt;stdio.h&gt;
+#include &lt;tcl.h&gt;
+#include &lt;errno.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;stdarg.h&gt;
+#include &lt;ctype.h&gt;
+
+/* -----------------------------------------------------------------------------
+ * swigrun.swg
+ *
+ * This file contains generic CAPI SWIG runtime support for pointer
+ * type checking.
+ * ----------------------------------------------------------------------------- */
+
+/* This should only be incremented when either the layout of swig_type_info changes,
+   or for whatever reason, the runtime changes incompatibly */
+#define SWIG_RUNTIME_VERSION &quot;4&quot;
+
+/* define SWIG_TYPE_TABLE_NAME as &quot;SWIG_TYPE_TABLE&quot; */
+#ifdef SWIG_TYPE_TABLE
+# define SWIG_QUOTE_STRING(x) #x
+# define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
+# define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
+#else
+# define SWIG_TYPE_TABLE_NAME
+#endif
+
+/*
+  You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
+  creating a static or dynamic library from the swig runtime code.
+  In 99.9% of the cases, swig just needs to declare them as 'static'.
+  
+  But only do this if is strictly necessary, ie, if you have problems
+  with your compiler or so.
+*/
+
+#ifndef SWIGRUNTIME
+# define SWIGRUNTIME SWIGINTERN
+#endif
+
+#ifndef SWIGRUNTIMEINLINE
+# define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
+#endif
+
+/*  Generic buffer size */
+#ifndef SWIG_BUFFER_SIZE
+# define SWIG_BUFFER_SIZE 1024
+#endif
+
+/* Flags for pointer conversions */
+#define SWIG_POINTER_DISOWN        0x1
+#define SWIG_CAST_NEW_MEMORY       0x2
+
+/* Flags for new pointer objects */
+#define SWIG_POINTER_OWN           0x1
+
+
+/* 
+   Flags/methods for returning states.
+   
+   The swig conversion methods, as ConvertPtr, return and integer 
+   that tells if the conversion was successful or not. And if not,
+   an error code can be returned (see swigerrors.swg for the codes).
+   
+   Use the following macros/flags to set or process the returning
+   states.
+   
+   In old swig versions, you usually write code as:
+
+     if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
+       // success code
+     } else {
+       //fail code
+     }
+
+   Now you can be more explicit as:
+
+    int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
+    if (SWIG_IsOK(res)) {
+      // success code
+    } else {
+      // fail code
+    }
+
+   that seems to be the same, but now you can also do
+
+    Type *ptr;
+    int res = SWIG_ConvertPtr(obj,(void **)(&amp;ptr),ty.flags);
+    if (SWIG_IsOK(res)) {
+      // success code
+      if (SWIG_IsNewObj(res) {
+        ...
+        delete *ptr;
+      } else {
+        ...
+      }
+    } else {
+      // fail code
+    }
+    
+   I.e., now SWIG_ConvertPtr can return new objects and you can
+   identify the case and take care of the deallocation. Of course that
+   requires also to SWIG_ConvertPtr to return new result values, as
+
+      int SWIG_ConvertPtr(obj, ptr,...) {         
+        if (&lt;obj is ok&gt;) {                               
+          if (&lt;need new object&gt;) {                       
+            *ptr = &lt;ptr to new allocated object&gt;; 
+            return SWIG_NEWOBJ;                       
+          } else {                                       
+            *ptr = &lt;ptr to old object&gt;;               
+            return SWIG_OLDOBJ;                       
+          }                                        
+        } else {                                       
+          return SWIG_BADOBJ;                       
+        }                                               
+      }
+
+   Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
+   more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
+   swig errors code.
+
+   Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
+   allows to return the 'cast rank', for example, if you have this
+
+       int food(double)
+       int fooi(int);
+
+   and you call

+      food(1)   // cast rank '1'  (1 -&gt; 1.0)
+      fooi(1)   // cast rank '0'
+
+   just use the SWIG_AddCast()/SWIG_CheckState()
+
+
+ */
+#define SWIG_OK                    (0) 
+#define SWIG_ERROR                 (-1)
+#define SWIG_IsOK(r)               (r &gt;= 0)
+#define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)  
+
+/* The CastRankLimit says how many bits are used for the cast rank */
+#define SWIG_CASTRANKLIMIT         (1 &lt;&lt; 8)
+/* The NewMask denotes the object was created (using new/malloc) */
+#define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  &lt;&lt; 1)
+/* The TmpMask is for in/out typemaps that use temporal objects */
+#define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK &lt;&lt; 1)
+/* Simple returning values */
+#define SWIG_BADOBJ                (SWIG_ERROR)
+#define SWIG_OLDOBJ                (SWIG_OK)
+#define SWIG_NEWOBJ                (SWIG_OK | SWIG_NEWOBJMASK)
+#define SWIG_TMPOBJ                (SWIG_OK | SWIG_TMPOBJMASK)
+/* Check, add and del mask methods */
+#define SWIG_AddNewMask(r)         (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
+#define SWIG_DelNewMask(r)         (SWIG_IsOK(r) ? (r &amp; ~SWIG_NEWOBJMASK) : r)
+#define SWIG_IsNewObj(r)           (SWIG_IsOK(r) &amp;&amp; (r &amp; SWIG_NEWOBJMASK))
+#define SWIG_AddTmpMask(r)         (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
+#define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r &amp; ~SWIG_TMPOBJMASK) : r)
+#define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) &amp;&amp; (r &amp; SWIG_TMPOBJMASK))
+
+
+/* Cast-Rank Mode */
+#if defined(SWIG_CASTRANK_MODE)
+#  ifndef SWIG_TypeRank
+#    define SWIG_TypeRank             unsigned long
+#  endif
+#  ifndef SWIG_MAXCASTRANK            /* Default cast allowed */
+#    define SWIG_MAXCASTRANK          (2)
+#  endif
+#  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
+#  define SWIG_CastRank(r)           (r &amp; SWIG_CASTRANKMASK)
+SWIGINTERNINLINE int SWIG_AddCast(int r) { 
+  return SWIG_IsOK(r) ? ((SWIG_CastRank(r) &lt; SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
+}
+SWIGINTERNINLINE int SWIG_CheckState(int r) { 
+  return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; 
+}
+#else /* no cast-rank mode */
+#  define SWIG_AddCast
+#  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
+#endif
+
+
+
+
+#include &lt;string.h&gt;
+
+#ifdef __cplusplus
+extern &quot;C&quot; {
+#endif
+
+typedef void *(*swig_converter_func)(void *, int *);
+typedef struct swig_type_info *(*swig_dycast_func)(void **);
+
+/* Structure to store information on one type */
+typedef struct swig_type_info {
+  const char             *name;                        /* mangled name of this type */
+  const char             *str;                        /* human readable name of this type */
+  swig_dycast_func        dcast;                /* dynamic cast function down a hierarchy */
+  struct swig_cast_info  *cast;                        /* linked list of types that can cast into this type */
+  void                   *clientdata;                /* language specific type data */
+  int                    owndata;                /* flag if the structure owns the clientdata */
+} swig_type_info;
+
+/* Structure to store a type and conversion function used for casting */
+typedef struct swig_cast_info {
+  swig_type_info         *type;                        /* pointer to type that is equivalent to this type */
+  swig_converter_func     converter;                /* function to cast the void pointers */
+  struct swig_cast_info  *next;                        /* pointer to next cast in linked list */
+  struct swig_cast_info  *prev;                        /* pointer to the previous cast */
+} swig_cast_info;
+
+/* Structure used to store module information
+ * Each module generates one structure like this, and the runtime collects
+ * all of these structures and stores them in a circularly linked list.*/
+typedef struct swig_module_info {
+  swig_type_info         **types;                /* Array of pointers to swig_type_info structures that are in this module */
+  size_t                 size;                        /* Number of types in this module */
+  struct swig_module_info *next;                /* Pointer to next element in circularly linked list */
+  swig_type_info         **type_initial;        /* Array of initially generated type structures */
+  swig_cast_info         **cast_initial;        /* Array of initially generated casting structures */
+  void                    *clientdata;                /* Language specific module data */
+} swig_module_info;
+
+/* 
+  Compare two type names skipping the space characters, therefore
+  &quot;char*&quot; == &quot;char *&quot; and &quot;Class&lt;int&gt;&quot; == &quot;Class&lt;int &gt;&quot;, etc.
+
+  Return 0 when the two name types are equivalent, as in
+  strncmp, but skipping ' '.
+*/
+SWIGRUNTIME int
+SWIG_TypeNameComp(const char *f1, const char *l1,
+                  const char *f2, const char *l2) {
+  for (;(f1 != l1) &amp;&amp; (f2 != l2); ++f1, ++f2) {
+    while ((*f1 == ' ') &amp;&amp; (f1 != l1)) ++f1;
+    while ((*f2 == ' ') &amp;&amp; (f2 != l2)) ++f2;
+    if (*f1 != *f2) return (*f1 &gt; *f2) ? 1 : -1;
+  }
+  return (int)((l1 - f1) - (l2 - f2));
+}
+
+/*
+  Check type equivalence in a name list like &lt;name1&gt;|&lt;name2&gt;|...
+  Return 0 if not equal, 1 if equal
+*/
+SWIGRUNTIME int
+SWIG_TypeEquiv(const char *nb, const char *tb) {
+  int equiv = 0;
+  const char* te = tb + strlen(tb);
+  const char* ne = nb;
+  while (!equiv &amp;&amp; *ne) {
+    for (nb = ne; *ne; ++ne) {
+      if (*ne == '|') break;
+    }
+    equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
+    if (*ne) ++ne;
+  }
+  return equiv;
+}
+
+/*
+  Check type equivalence in a name list like &lt;name1&gt;|&lt;name2&gt;|...
+  Return 0 if equal, -1 if nb &lt; tb, 1 if nb &gt; tb
+*/
+SWIGRUNTIME int
+SWIG_TypeCompare(const char *nb, const char *tb) {
+  int equiv = 0;
+  const char* te = tb + strlen(tb);
+  const char* ne = nb;
+  while (!equiv &amp;&amp; *ne) {
+    for (nb = ne; *ne; ++ne) {
+      if (*ne == '|') break;
+    }
+    equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
+    if (*ne) ++ne;
+  }
+  return equiv;
+}
+
+
+/* think of this as a c++ template&lt;&gt; or a scheme macro */
+#define SWIG_TypeCheck_Template(comparison, ty)         \
+  if (ty) {                                             \
+    swig_cast_info *iter = ty-&gt;cast;                    \
+    while (iter) {                                      \
+      if (comparison) {                                 \
+        if (iter == ty-&gt;cast) return iter;              \
+        /* Move iter to the top of the linked list */   \
+        iter-&gt;prev-&gt;next = iter-&gt;next;                  \
+        if (iter-&gt;next)                                 \
+          iter-&gt;next-&gt;prev = iter-&gt;prev;                \
+        iter-&gt;next = ty-&gt;cast;                          \
+        iter-&gt;prev = 0;                                 \
+        if (ty-&gt;cast) ty-&gt;cast-&gt;prev = iter;            \
+        ty-&gt;cast = iter;                                \
+        return iter;                                    \
+      }                                                 \
+      iter = iter-&gt;next;                                \
+    }                                                   \
+  }                                                     \
+  return 0
+
+/*
+  Check the typename
+*/
+SWIGRUNTIME swig_cast_info *
+SWIG_TypeCheck(const char *c, swig_type_info *ty) {
+  SWIG_TypeCheck_Template(strcmp(iter-&gt;type-&gt;name, c) == 0, ty);
+}
+
+/* Same as previous function, except strcmp is replaced with a pointer comparison */
+SWIGRUNTIME swig_cast_info *
+SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) {
+  SWIG_TypeCheck_Template(iter-&gt;type == from, into);
+}
+
+/*
+  Cast a pointer up an inheritance hierarchy
+*/
+SWIGRUNTIMEINLINE void *
+SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
+  return ((!ty) || (!ty-&gt;converter)) ? ptr : (*ty-&gt;converter)(ptr, newmemory);
+}
+
+/* 
+   Dynamic pointer casting. Down an inheritance hierarchy
+*/
+SWIGRUNTIME swig_type_info *
+SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
+  swig_type_info *lastty = ty;
+  if (!ty || !ty-&gt;dcast) return ty;
+  while (ty &amp;&amp; (ty-&gt;dcast)) {
+    ty = (*ty-&gt;dcast)(ptr);
+    if (ty) lastty = ty;
+  }
+  return lastty;
+}
+
+/*
+  Return the name associated with this type
+*/
+SWIGRUNTIMEINLINE const char *
+SWIG_TypeName(const swig_type_info *ty) {
+  return ty-&gt;name;
+}
+
+/*
+  Return the pretty name associated with this type,
+  that is an unmangled type name in a form presentable to the user.
+*/
+SWIGRUNTIME const char *
+SWIG_TypePrettyName(const swig_type_info *type) {
+  /* The &quot;str&quot; field contains the equivalent pretty names of the
+     type, separated by vertical-bar characters.  We choose
+     to print the last name, as it is often (?) the most
+     specific. */
+  if (!type) return NULL;
+  if (type-&gt;str != NULL) {
+    const char *last_name = type-&gt;str;
+    const char *s;
+    for (s = type-&gt;str; *s; s++)
+      if (*s == '|') last_name = s+1;
+    return last_name;
+  }
+  else
+    return type-&gt;name;
+}
+
+/* 
+   Set the clientdata field for a type
+*/
+SWIGRUNTIME void
+SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
+  swig_cast_info *cast = ti-&gt;cast;
+  /* if (ti-&gt;clientdata == clientdata) return; */
+  ti-&gt;clientdata = clientdata;
+  
+  while (cast) {
+    if (!cast-&gt;converter) {
+      swig_type_info *tc = cast-&gt;type;
+      if (!tc-&gt;clientdata) {
+        SWIG_TypeClientData(tc, clientdata);
+      }
+    }    
+    cast = cast-&gt;next;
+  }
+}
+SWIGRUNTIME void
+SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
+  SWIG_TypeClientData(ti, clientdata);
+  ti-&gt;owndata = 1;
+}
+  
+/*
+  Search for a swig_type_info structure only by mangled name
+  Search is a O(log #types)
+  
+  We start searching at module start, and finish searching when start == end.  
+  Note: if start == end at the beginning of the function, we go all the way around
+  the circular list.
+*/
+SWIGRUNTIME swig_type_info *
+SWIG_MangledTypeQueryModule(swig_module_info *start, 
+                            swig_module_info *end, 
+                            const char *name) {
+  swig_module_info *iter = start;
+  do {
+    if (iter-&gt;size) {
+      register size_t l = 0;
+      register size_t r = iter-&gt;size - 1;
+      do {
+        /* since l+r &gt;= 0, we can (&gt;&gt; 1) instead (/ 2) */
+        register size_t i = (l + r) &gt;&gt; 1; 
+        const char *iname = iter-&gt;types[i]-&gt;name;
+        if (iname) {
+          register int compare = strcmp(name, iname);
+          if (compare == 0) {            
+            return iter-&gt;types[i];
+          } else if (compare &lt; 0) {
+            if (i) {
+              r = i - 1;
+            } else {
+              break;
+            }
+          } else if (compare &gt; 0) {
+            l = i + 1;
+          }
+        } else {
+          break; /* should never happen */
+        }
+      } while (l &lt;= r);
+    }
+    iter = iter-&gt;next;
+  } while (iter != end);
+  return 0;
+}
+
+/*
+  Search for a swig_type_info structure for either a mangled name or a human readable name.
+  It first searches the mangled names of the types, which is a O(log #types)
+  If a type is not found it then searches the human readable names, which is O(#types).
+  
+  We start searching at module start, and finish searching when start == end.  
+  Note: if start == end at the beginning of the function, we go all the way around
+  the circular list.
+*/
+SWIGRUNTIME swig_type_info *
+SWIG_TypeQueryModule(swig_module_info *start, 
+                     swig_module_info *end, 
+                     const char *name) {
+  /* STEP 1: Search the name field using binary search */
+  swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
+  if (ret) {
+    return ret;
+  } else {
+    /* STEP 2: If the type hasn't been found, do a complete search
+       of the str field (the human readable name) */
+    swig_module_info *iter = start;
+    do {
+      register size_t i = 0;
+      for (; i &lt; iter-&gt;size; ++i) {
+        if (iter-&gt;types[i]-&gt;str &amp;&amp; (SWIG_TypeEquiv(iter-&gt;types[i]-&gt;str, name)))
+          return iter-&gt;types[i];
+      }
+      iter = iter-&gt;next;
+    } while (iter != end);
+  }
+  
+  /* neither found a match */
+  return 0;
+}
+
+/* 
+   Pack binary data into a string
+*/
+SWIGRUNTIME char *
+SWIG_PackData(char *c, void *ptr, size_t sz) {
+  static const char hex[17] = &quot;0123456789abcdef&quot;;
+  register const unsigned char *u = (unsigned char *) ptr;
+  register const unsigned char *eu =  u + sz;
+  for (; u != eu; ++u) {
+    register unsigned char uu = *u;
+    *(c++) = hex[(uu &amp; 0xf0) &gt;&gt; 4];
+    *(c++) = hex[uu &amp; 0xf];
+  }
+  return c;
+}
+
+/* 
+   Unpack binary data from a string
+*/
+SWIGRUNTIME const char *
+SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
+  register unsigned char *u = (unsigned char *) ptr;
+  register const unsigned char *eu = u + sz;
+  for (; u != eu; ++u) {
+    register char d = *(c++);
+    register unsigned char uu;
+    if ((d &gt;= '0') &amp;&amp; (d &lt;= '9'))
+      uu = ((d - '0') &lt;&lt; 4);
+    else if ((d &gt;= 'a') &amp;&amp; (d &lt;= 'f'))
+      uu = ((d - ('a'-10)) &lt;&lt; 4);
+    else 
+      return (char *) 0;
+    d = *(c++);
+    if ((d &gt;= '0') &amp;&amp; (d &lt;= '9'))
+      uu |= (d - '0');
+    else if ((d &gt;= 'a') &amp;&amp; (d &lt;= 'f'))
+      uu |= (d - ('a'-10));
+    else 
+      return (char *) 0;
+    *u = uu;
+  }
+  return c;
+}
+
+/* 
+   Pack 'void *' into a string buffer.
+*/
+SWIGRUNTIME char *
+SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
+  char *r = buff;
+  if ((2*sizeof(void *) + 2) &gt; bsz) return 0;
+  *(r++) = '_';
+  r = SWIG_PackData(r,&amp;ptr,sizeof(void *));
+  if (strlen(name) + 1 &gt; (bsz - (r - buff))) return 0;
+  strcpy(r,name);
+  return buff;
+}
+
+SWIGRUNTIME const char *
+SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
+  if (*c != '_') {
+    if (strcmp(c,&quot;NULL&quot;) == 0) {
+      *ptr = (void *) 0;
+      return name;
+    } else {
+      return 0;
+    }
+  }
+  return SWIG_UnpackData(++c,ptr,sizeof(void *));
+}
+
+SWIGRUNTIME char *
+SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
+  char *r = buff;
+  size_t lname = (name ? strlen(name) : 0);
+  if ((2*sz + 2 + lname) &gt; bsz) return 0;
+  *(r++) = '_';
+  r = SWIG_PackData(r,ptr,sz);
+  if (lname) {
+    strncpy(r,name,lname+1);
+  } else {
+    *r = 0;
+  }
+  return buff;
+}
+
+SWIGRUNTIME const char *
+SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
+  if (*c != '_') {
+    if (strcmp(c,&quot;NULL&quot;) == 0) {
+      memset(ptr,0,sz);
+      return name;
+    } else {
+      return 0;
+    }
+  }
+  return SWIG_UnpackData(++c,ptr,sz);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+/*  Errors in SWIG */
+#define  SWIG_UnknownError               -1 
+#define  SWIG_IOError                   -2 
+#define  SWIG_RuntimeError              -3 
+#define  SWIG_IndexError                -4 
+#define  SWIG_TypeError                 -5 
+#define  SWIG_DivisionByZero            -6 
+#define  SWIG_OverflowError             -7 
+#define  SWIG_SyntaxError               -8 
+#define  SWIG_ValueError                -9 
+#define  SWIG_SystemError               -10
+#define  SWIG_AttributeError            -11
+#define  SWIG_MemoryError               -12 
+#define  SWIG_NullReferenceError   -13
+
+
+
+/* -----------------------------------------------------------------------------
+ * error manipulation
+ * ----------------------------------------------------------------------------- */
+
+SWIGINTERN const char*
+SWIG_Tcl_ErrorType(int code) {
+  const char* type = 0;
+  switch(code) {
+  case SWIG_MemoryError:
+    type = &quot;MemoryError&quot;;
+    break;
+  case SWIG_IOError:
+    type = &quot;IOError&quot;;
+    break;
+  case SWIG_RuntimeError:
+    type = &quot;RuntimeError&quot;;
+    break;
+  case SWIG_IndexError:
+    type = &quot;IndexError&quot;;
+    break;
+  case SWIG_TypeError:
+    type = &quot;TypeError&quot;;
+    break;
+  case SWIG_DivisionByZero:
+    type = &quot;ZeroDivisionError&quot;;
+    break;
+  case SWIG_OverflowError:
+    type = &quot;OverflowError&quot;;
+    break;
+  case SWIG_SyntaxError:
+    type = &quot;SyntaxError&quot;;
+    break;
+  case SWIG_ValueError:
+    type = &quot;ValueError&quot;;
+    break;
+  case SWIG_SystemError:
+    type = &quot;SystemError&quot;;
+    break;
+  case SWIG_AttributeError:
+    type = &quot;AttributeError&quot;;
+    break;
+  default:
+    type = &quot;RuntimeError&quot;;
+  }
+  return type;
+}
+
+
+SWIGINTERN void
+SWIG_Tcl_SetErrorObj(Tcl_Interp *interp, const char *ctype, Tcl_Obj *obj)
+{
+  Tcl_ResetResult(interp);
+  Tcl_SetObjResult(interp, obj);
+  Tcl_SetErrorCode(interp, &quot;SWIG&quot;, ctype, NULL);
+}
+
+SWIGINTERN void
+SWIG_Tcl_SetErrorMsg(Tcl_Interp *interp, const char *ctype, const char *mesg)
+{
+  Tcl_ResetResult(interp);
+  Tcl_SetErrorCode(interp, &quot;SWIG&quot;, ctype, NULL);
+  Tcl_AppendResult(interp, ctype, &quot; &quot;, mesg, NULL);
+  /*
+  Tcl_AddErrorInfo(interp, ctype);
+  Tcl_AddErrorInfo(interp, &quot; &quot;);
+  Tcl_AddErrorInfo(interp, mesg);
+  */
+}
+
+SWIGINTERNINLINE void
+SWIG_Tcl_AddErrorMsg(Tcl_Interp *interp, const char* mesg)
+{
+  Tcl_AddErrorInfo(interp, mesg);
+}
+
+
+
+/* -----------------------------------------------------------------------------
+ * SWIG API. Portion that goes into the runtime
+ * ----------------------------------------------------------------------------- */
+#ifdef __cplusplus
+extern &quot;C&quot; {
+#endif
+
+/* -----------------------------------------------------------------------------
+ * Constant declarations
+ * ----------------------------------------------------------------------------- */
+
+/* Constant Types */
+#define SWIG_TCL_POINTER 4
+#define SWIG_TCL_BINARY  5
+
+/* Constant information structure */
+typedef struct swig_const_info {
+    int type;
+    char *name;
+    long lvalue;
+    double dvalue;
+    void   *pvalue;
+    swig_type_info **ptype;
+} swig_const_info;
+
+typedef int   (*swig_wrapper)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []);
+typedef int   (*swig_wrapper_func)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []);
+typedef char *(*swig_variable_func)(ClientData, Tcl_Interp *, char *, char *, int);
+typedef void  (*swig_delete_func)(ClientData);
+
+typedef struct swig_method {
+  const char     *name;
+  swig_wrapper   method;
+} swig_method;
+
+typedef struct swig_attribute {
+  const char     *name;
+  swig_wrapper   getmethod;
+  swig_wrapper   setmethod;
+} swig_attribute;
+
+typedef struct swig_class {
+  const char         *name;
+  swig_type_info   **type;
+  swig_wrapper       constructor;
+  void              (*destructor)(void *);
+  swig_method        *methods;
+  swig_attribute     *attributes;
+  struct swig_class **bases;
+  const char              **base_names;
+  swig_module_info   *module;
+} swig_class;
+
+typedef struct swig_instance {
+  Tcl_Obj       *thisptr;
+  void          *thisvalue;
+  swig_class   *classptr;
+  int            destroy;
+  Tcl_Command    cmdtok;
+} swig_instance;
+
+/* Structure for command table */
+typedef struct {
+  const char *name;
+  int       (*wrapper)(ClientData, Tcl_Interp *, int, Tcl_Obj *CONST []);
+  ClientData  clientdata;
+} swig_command_info;
+
+/* Structure for variable linking table */
+typedef struct {
+  const char *name;
+  void *addr;
+  char * (*get)(ClientData, Tcl_Interp *, char *, char *, int);
+  char * (*set)(ClientData, Tcl_Interp *, char *, char *, int);
+} swig_var_info;
+
+
+/* -----------------------------------------------------------------------------*
+ *  Install a constant object 
+ * -----------------------------------------------------------------------------*/
+
+static Tcl_HashTable   swigconstTable;
+static int             swigconstTableinit = 0;
+
+SWIGINTERN void
+SWIG_Tcl_SetConstantObj(Tcl_Interp *interp, const char* name, Tcl_Obj *obj) {
+  int newobj;
+  Tcl_ObjSetVar2(interp,Tcl_NewStringObj(name,-1), NULL, obj, TCL_GLOBAL_ONLY);
+  Tcl_SetHashValue(Tcl_CreateHashEntry(&amp;swigconstTable, name, &amp;newobj), (ClientData) obj);
+}
+
+SWIGINTERN Tcl_Obj *
+SWIG_Tcl_GetConstantObj(const char *key) {
+  Tcl_HashEntry *entryPtr;
+  if (!swigconstTableinit) return 0;
+  entryPtr = Tcl_FindHashEntry(&amp;swigconstTable, key);
+  if (entryPtr) {
+    return (Tcl_Obj *) Tcl_GetHashValue(entryPtr);
+  }
+  return 0;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
+/* -----------------------------------------------------------------------------
+ * See the LICENSE file for information on copyright, usage and redistribution
+ * of SWIG, and the README file for authors - http://www.swig.org/release.html.
+ *
+ * tclrun.swg
+ *
+ * This file contains the runtime support for Tcl modules and includes
+ * code for managing global variables and pointer type checking.
+ * ----------------------------------------------------------------------------- */
+
+/* Common SWIG API */
+
+/* for raw pointers */
+#define SWIG_ConvertPtr(oc, ptr, ty, flags)             SWIG_Tcl_ConvertPtr(interp, oc, ptr, ty, flags)
+#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Tcl_NewPointerObj(ptr, type, flags)
+
+/* for raw packed data */
+#define SWIG_ConvertPacked(obj, ptr, sz, ty)            SWIG_Tcl_ConvertPacked(interp, obj, ptr, sz, ty)
+#define SWIG_NewPackedObj(ptr, sz, type)                SWIG_Tcl_NewPackedObj(ptr, sz, type)
+
+/* for class or struct pointers */
+#define SWIG_ConvertInstance(obj, pptr, type, flags)    SWIG_Tcl_ConvertPtr(interp, obj, pptr, type, flags)
+#define SWIG_NewInstanceObj(thisvalue, type, flags)     SWIG_Tcl_NewInstanceObj(interp, thisvalue, type, flags)
+
+/* for C or C++ function pointers */
+#define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_Tcl_ConvertPtr(interp, obj, pptr, type, 0)
+#define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_Tcl_NewPointerObj(ptr, type, 0)
+
+/* for C++ member pointers, ie, member methods */
+#define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_Tcl_ConvertPacked(interp,obj, ptr, sz, ty)
+#define SWIG_NewMemberObj(ptr, sz, type)                SWIG_Tcl_NewPackedObj(ptr, sz, type)
+
+
+/* Runtime API */
+
+#define SWIG_GetModule(clientdata)                      SWIG_Tcl_GetModule((Tcl_Interp *) (clientdata))             
+#define SWIG_SetModule(clientdata, pointer)                  SWIG_Tcl_SetModule((Tcl_Interp *) (clientdata), pointer)
+
+
+/* Error manipulation */
+
+#define SWIG_ErrorType(code)                            SWIG_Tcl_ErrorType(code)                                      
+#define SWIG_Error(code, msg)                            SWIG_Tcl_SetErrorMsg(interp, SWIG_Tcl_ErrorType(code), msg)
+#define SWIG_fail                                        goto fail                                                    
+
+
+/* Tcl-specific SWIG API */
+
+#define SWIG_Acquire(ptr)                               SWIG_Tcl_Acquire(ptr)                                     
+#define SWIG_MethodCommand                                   SWIG_Tcl_MethodCommand                                       
+#define SWIG_Disown(ptr)                                     SWIG_Tcl_Disown(ptr)                                       
+#define SWIG_ConvertPtrFromString(c, ptr, ty, flags)         SWIG_Tcl_ConvertPtrFromString(interp, c, ptr, ty, flags)  
+#define SWIG_MakePtr(c, ptr, ty, flags)                      SWIG_Tcl_MakePtr(c, ptr, ty, flags)                       
+#define SWIG_PointerTypeFromString(c)                        SWIG_Tcl_PointerTypeFromString(c)                               
+#define SWIG_GetArgs                                         SWIG_Tcl_GetArgs                                               
+#define SWIG_GetConstantObj(key)                             SWIG_Tcl_GetConstantObj(key)                               
+#define SWIG_ObjectConstructor                               SWIG_Tcl_ObjectConstructor                                       
+#define SWIG_Thisown(ptr)                                    SWIG_Tcl_Thisown(ptr)                                       
+#define SWIG_ObjectDelete                                    SWIG_Tcl_ObjectDelete                                       
+
+
+#define SWIG_TCL_DECL_ARGS_2(arg1, arg2)                (Tcl_Interp *interp SWIGUNUSED, arg1, arg2)
+#define SWIG_TCL_CALL_ARGS_2(arg1, arg2)                (interp, arg1, arg2)
+/* -----------------------------------------------------------------------------
+ * pointers/data manipulation
+ * ----------------------------------------------------------------------------- */
+
+/* For backward compatibility only */
+#define SWIG_POINTER_EXCEPTION  0
+#define SWIG_GetConstant        SWIG_GetConstantObj
+#define SWIG_Tcl_GetConstant    SWIG_Tcl_GetConstantObj
+
+#include &quot;assert.h&quot;
+
+#ifdef __cplusplus
+extern &quot;C&quot; {
+#if 0
+} /* cc-mode */
+#endif
+#endif
+
+/* Object support */
+
+SWIGRUNTIME Tcl_HashTable*
+SWIG_Tcl_ObjectTable(void) {
+  static Tcl_HashTable  swigobjectTable;
+  static int            swigobjectTableinit = 0;
+  if (!swigobjectTableinit) {
+    Tcl_InitHashTable(&amp;swigobjectTable, TCL_ONE_WORD_KEYS);
+    swigobjectTableinit = 1;
+  }
+  return &amp;swigobjectTable;
+}
+
+/* Acquire ownership of a pointer */
+SWIGRUNTIME void
+SWIG_Tcl_Acquire(void *ptr) {
+  int newobj;
+  Tcl_CreateHashEntry(SWIG_Tcl_ObjectTable(), (char *) ptr, &amp;newobj);
+}
+
+SWIGRUNTIME int
+SWIG_Tcl_Thisown(void *ptr) {
+  if (Tcl_FindHashEntry(SWIG_Tcl_ObjectTable(), (char *) ptr)) {
+    return 1;
+  }
+  return 0;
+}
+
+/* Disown a pointer.  Returns 1 if we owned it to begin with */
+SWIGRUNTIME int
+SWIG_Tcl_Disown(void *ptr) {
+  Tcl_HashEntry *entryPtr = Tcl_FindHashEntry(SWIG_Tcl_ObjectTable(), (char *) ptr);
+  if (entryPtr) {
+    Tcl_DeleteHashEntry(entryPtr);
+    return 1;
+  }
+  return 0;
+}
+
+/* Convert a pointer value */
+SWIGRUNTIME int
+SWIG_Tcl_ConvertPtrFromString(Tcl_Interp *interp, const char *c, void **ptr, swig_type_info *ty, int flags) {
+  swig_cast_info *tc;
+  /* Pointer values must start with leading underscore */
+  while (*c != '_') {
+    *ptr = (void *) 0;
+    if (strcmp(c,&quot;NULL&quot;) == 0) return SWIG_OK;
+
+    /* Empty string: not a pointer */
+    if (*c == 0) return SWIG_ERROR; 
+
+    /* Hmmm. It could be an object name. */
+
+    /* Check if this is a command at all. Prevents &lt;c&gt; cget -this         */
+    /* from being called when c is not a command, firing the unknown proc */
+    if (Tcl_VarEval(interp,&quot;info commands &quot;, c, (char *) NULL) == TCL_OK) {
+      Tcl_Obj *result = Tcl_GetObjResult(interp);
+      if (*(Tcl_GetStringFromObj(result, NULL)) == 0) {
+        /* It's not a command, so it can't be a pointer */
+        Tcl_ResetResult(interp);
+        return SWIG_ERROR;
+      }
+    } else {
+      /* This will only fail if the argument is multiple words. */
+      /* Multiple words are also not commands.                  */
+      Tcl_ResetResult(interp);
+      return SWIG_ERROR;
+    }
+
+    /* Check if this is really a SWIG pointer */
+    if (Tcl_VarEval(interp,c,&quot; cget -this&quot;, (char *) NULL) != TCL_OK) {
+      Tcl_ResetResult(interp);
+      return SWIG_ERROR;
+    }
+
+    c = Tcl_GetStringFromObj(Tcl_GetObjResult(interp), NULL);
+  }
+
+  c++;
+  c = SWIG_UnpackData(c,ptr,sizeof(void *));
+  if (ty) {
+    tc = c ? SWIG_TypeCheck(c,ty) : 0;
+    if (!tc) {
+      return SWIG_ERROR;
+    }
+    if (flags &amp; SWIG_POINTER_DISOWN) {
+      SWIG_Disown((void *) *ptr);
+    }
+    {
+      int newmemory = 0;
+      *ptr = SWIG_TypeCast(tc,(void *) *ptr,&amp;newmemory);
+      assert(!newmemory); /* newmemory handling not yet implemented */
+    }
+  }
+  return SWIG_OK;
+}
+
+/* Convert a pointer value */
+SWIGRUNTIMEINLINE int
+SWIG_Tcl_ConvertPtr(Tcl_Interp *interp, Tcl_Obj *oc, void **ptr, swig_type_info *ty, int flags) {
+  return SWIG_Tcl_ConvertPtrFromString(interp, Tcl_GetStringFromObj(oc,NULL), ptr, ty, flags);
+}
+
+/* Convert a pointer value */
+SWIGRUNTIME char *
+SWIG_Tcl_PointerTypeFromString(char *c) {
+  char d;
+  /* Pointer values must start with leading underscore. NULL has no type */
+  if (*c != '_') {
+    return 0;
+  }
+  c++;
+  /* Extract hex value from pointer */
+  while ((d = *c)) {
+    if (!(((d &gt;= '0') &amp;&amp; (d &lt;= '9')) || ((d &gt;= 'a') &amp;&amp; (d &lt;= 'f')))) break;
+    c++;
+  }
+  return c;
+}
+
+/* Convert a packed value value */
+SWIGRUNTIME int
+SWIG_Tcl_ConvertPacked(Tcl_Interp *SWIGUNUSEDPARM(interp) , Tcl_Obj *obj, void *ptr, int sz, swig_type_info *ty) {
+  swig_cast_info *tc;
+  const char  *c;
+
+  if (!obj) goto type_error;
+  c = Tcl_GetStringFromObj(obj,NULL);
+  /* Pointer values must start with leading underscore */
+  if (*c != '_') goto type_error;
+  c++;
+  c = SWIG_UnpackData(c,ptr,sz);
+  if (ty) {
+    tc = SWIG_TypeCheck(c,ty);
+    if (!tc) goto type_error;
+  }
+  return SWIG_OK;
+
+ type_error:
+
+  return SWIG_ERROR;
+}
+
+
+/* Take a pointer and convert it to a string */
+SWIGRUNTIME void
+SWIG_Tcl_MakePtr(char *c, void *ptr, swig_type_info *ty, int flags) {
+  if (ptr) {
+    *(c++) = '_';
+    c = SWIG_PackData(c,&amp;ptr,sizeof(void *));
+    strcpy(c,ty-&gt;name);
+  } else {
+    strcpy(c,(char *)&quot;NULL&quot;);
+  }
+  flags = 0;
+}
+
+/* Create a new pointer object */
+SWIGRUNTIMEINLINE Tcl_Obj *
+SWIG_Tcl_NewPointerObj(void *ptr, swig_type_info *type, int flags) {
+  Tcl_Obj *robj;
+  char result[SWIG_BUFFER_SIZE];
+  SWIG_MakePtr(result,ptr,type,flags);
+  robj = Tcl_NewStringObj(result,-1);
+  return robj;
+}
+
+SWIGRUNTIME Tcl_Obj *
+SWIG_Tcl_NewPackedObj(void *ptr, int sz, swig_type_info *type) {
+  char result[1024];
+  char *r = result;
+  if ((2*sz + 1 + strlen(type-&gt;name)) &gt; 1000) return 0;
+  *(r++) = '_';
+  r = SWIG_PackData(r,ptr,sz);
+  strcpy(r,type-&gt;name);
+  return Tcl_NewStringObj(result,-1);
+}
+
+/* -----------------------------------------------------------------------------*
+ *  Get type list 
+ * -----------------------------------------------------------------------------*/
+
+SWIGRUNTIME swig_module_info * 
+SWIG_Tcl_GetModule(Tcl_Interp *interp) {
+  const char *data;
+  swig_module_info *ret = 0;
+  
+  /* first check if pointer already created */
+  data = Tcl_GetVar(interp, (char *)&quot;swig_runtime_data_type_pointer&quot; SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TCL_GLOBAL_ONLY);
+  if (data) {
+    SWIG_UnpackData(data, &amp;ret, sizeof(swig_type_info **));
+  }
+
+  return ret;
+}
+
+SWIGRUNTIME void
+SWIG_Tcl_SetModule(Tcl_Interp *interp, swig_module_info *module) {
+  char buf[SWIG_BUFFER_SIZE];
+  char *data;
+
+  /* create a new pointer */
+  data = SWIG_PackData(buf, &amp;module, sizeof(swig_type_info **));
+  *data = 0;
+  Tcl_SetVar(interp, (char *)&quot;swig_runtime_data_type_pointer&quot; SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, buf, 0);
+}
+
+/* -----------------------------------------------------------------------------*
+ *  Object auxiliars
+ * -----------------------------------------------------------------------------*/
+
+
+SWIGRUNTIME void
+SWIG_Tcl_ObjectDelete(ClientData clientData) {
+  swig_instance *si = (swig_instance *) clientData;
+  if ((si) &amp;&amp; (si-&gt;destroy) &amp;&amp; (SWIG_Disown(si-&gt;thisvalue))) {
+    if (si-&gt;classptr-&gt;destructor) {
+      (si-&gt;classptr-&gt;destructor)(si-&gt;thisvalue);
+    }
+  }
+  Tcl_DecrRefCount(si-&gt;thisptr);
+  free(si);
+}
+
+/* Function to invoke object methods given an instance */
+SWIGRUNTIME int
+SWIG_Tcl_MethodCommand(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST _objv[]) {
+  char *method,   *attrname;
+  swig_instance   *inst = (swig_instance *) clientData;
+  swig_method     *meth;
+  swig_attribute  *attr;
+  Tcl_Obj         *oldarg;
+  Tcl_Obj         **objv;
+  int              rcode;
+  swig_class      *cls;
+  swig_class      *cls_stack[64];
+  int              cls_stack_bi[64];
+  int              cls_stack_top = 0;
+  int              numconf = 2;
+  int              bi;
+
+  objv = (Tcl_Obj **) _objv;
+  if (objc &lt; 2) {
+    Tcl_SetResult(interp, (char *) &quot;wrong # args.&quot;, TCL_STATIC);
+    return TCL_ERROR;
+  }
+  method = Tcl_GetStringFromObj(objv[1],NULL);
+  if (strcmp(method,&quot;-acquire&quot;) == 0) {
+    inst-&gt;destroy = 1;
+    SWIG_Acquire(inst-&gt;thisvalue);
+    return TCL_OK;
+  }
+  if (strcmp(method,&quot;-disown&quot;) == 0) {
+    if (inst-&gt;destroy) {
+      SWIG_Disown(inst-&gt;thisvalue);
+    }
+    inst-&gt;destroy = 0;
+    return TCL_OK;
+  }
+  if (strcmp(method,&quot;-delete&quot;) == 0) {
+    Tcl_DeleteCommandFromToken(interp,inst-&gt;cmdtok);
+    return TCL_OK;
+  }
+  cls_stack[cls_stack_top] = inst-&gt;classptr;
+  cls_stack_bi[cls_stack_top] = -1;
+  cls = inst-&gt;classptr;
+  while (1) {
+    bi = cls_stack_bi[cls_stack_top];
+    cls = cls_stack[cls_stack_top];
+    if (bi != -1) {
+      if (!cls-&gt;bases[bi] &amp;&amp; cls-&gt;base_names[bi]) {
+        /* lookup and cache the base class */
+        swig_type_info *info = SWIG_TypeQueryModule(cls-&gt;module, cls-&gt;module, cls-&gt;base_names[bi]);
+        if (info) cls-&gt;bases[bi] = (swig_class *) info-&gt;clientdata;
+      }
+      cls = cls-&gt;bases[bi];
+      if (cls) {
+        cls_stack_bi[cls_stack_top]++;
+        cls_stack_top++;
+        cls_stack[cls_stack_top] = cls;
+        cls_stack_bi[cls_stack_top] = -1;
+        continue;
+      }
+    }
+    if (!cls) {
+      cls_stack_top--;
+      if (cls_stack_top &lt; 0) break;
+      else continue;
+    }
+    cls_stack_bi[cls_stack_top]++;
+
+    meth = cls-&gt;methods;
+    /* Check for methods */
+    while (meth &amp;&amp; meth-&gt;name) {
+      if (strcmp(meth-&gt;name,method) == 0) {
+        oldarg = objv[1];
+        objv[1] = inst-&gt;thisptr;
+        Tcl_IncrRefCount(inst-&gt;thisptr);
+        rcode = (*meth-&gt;method)(clientData,interp,objc,objv);
+        objv[1] = oldarg;
+        Tcl_DecrRefCount(inst-&gt;thisptr);
+        return rcode;
+      }
+      meth++;
+    }
+    /* Check class methods for a match */
+    if (strcmp(method,&quot;cget&quot;) == 0) {
+      if (objc &lt; 3) {
+        Tcl_SetResult(interp, (char *) &quot;wrong # args.&quot;, TCL_STATIC);
+        return TCL_ERROR;
+      }
+      attrname = Tcl_GetStringFromObj(objv[2],NULL);
+      attr = cls-&gt;attributes;
+      while (attr &amp;&amp; attr-&gt;name) {
+        if ((strcmp(attr-&gt;name, attrname) == 0) &amp;&amp; (attr-&gt;getmethod)) {
+          oldarg = objv[1];
+          objv[1] = inst-&gt;thisptr;
+          Tcl_IncrRefCount(inst-&gt;thisptr);
+          rcode = (*attr-&gt;getmethod)(clientData,interp,2, objv);
+          objv[1] = oldarg;
+          Tcl_DecrRefCount(inst-&gt;thisptr);
+          return rcode;
+        }
+        attr++;
+      }
+      if (strcmp(attrname, &quot;-this&quot;) == 0) {
+        Tcl_SetObjResult(interp, Tcl_DuplicateObj(inst-&gt;thisptr));
+        return TCL_OK;
+      }
+      if (strcmp(attrname, &quot;-thisown&quot;) == 0) {
+        if (SWIG_Thisown(inst-&gt;thisvalue)) {
+          Tcl_SetResult(interp,(char*)&quot;1&quot;,TCL_STATIC);
+        } else {
+          Tcl_SetResult(interp,(char*)&quot;0&quot;,TCL_STATIC);
+        }
+        return TCL_OK;
+      }
+    } else if (strcmp(method, &quot;configure&quot;) == 0) {
+      int i;
+      if (objc &lt; 4) {
+        Tcl_SetResult(interp, (char *) &quot;wrong # args.&quot;, TCL_STATIC);
+        return TCL_ERROR;
+      }
+      i = 2;
+      while (i &lt; objc) {
+        attrname = Tcl_GetStringFromObj(objv[i],NULL);
+        attr = cls-&gt;attributes;
+        while (attr &amp;&amp; attr-&gt;name) {
+          if ((strcmp(attr-&gt;name, attrname) == 0) &amp;&amp; (attr-&gt;setmethod)) {
+            oldarg = objv[i];
+            objv[i] = inst-&gt;thisptr;
+            Tcl_IncrRefCount(inst-&gt;thisptr);
+            rcode = (*attr-&gt;setmethod)(clientData,interp,3, &amp;objv[i-1]);
+            objv[i] = oldarg;
+            Tcl_DecrRefCount(inst-&gt;thisptr);
+            if (rcode != TCL_OK) return rcode;
+            numconf += 2;
+          }
+          attr++;
+        }
+        i+=2;
+      }
+    }
+  }
+  if (strcmp(method,&quot;configure&quot;) == 0) {
+    if (numconf &gt;= objc) {
+      return TCL_OK;
+    } else {
+      Tcl_SetResult(interp,(char *) &quot;Invalid attribute name.&quot;, TCL_STATIC);
+      return TCL_ERROR;
+    }
+  }
+  if (strcmp(method,&quot;cget&quot;) == 0) {
+    Tcl_SetResult(interp,(char *) &quot;Invalid attribute name.&quot;, TCL_STATIC);
+    return TCL_ERROR;
+  }
+  Tcl_SetResult(interp, (char *) &quot;Invalid method. Must be one of: configure cget -acquire -disown -delete&quot;, TCL_STATIC);
+  cls = inst-&gt;classptr;
+  bi = 0;
+  while (cls) {
+    meth = cls-&gt;methods;
+    while (meth &amp;&amp; meth-&gt;name) {
+      char *cr = (char *) Tcl_GetStringResult(interp);
+      size_t meth_len = strlen(meth-&gt;name);
+      char* where = strchr(cr,':');
+      while(where) {
+        where = strstr(where, meth-&gt;name);
+        if(where) {
+          if(where[-1] == ' ' &amp;&amp; (where[meth_len] == ' ' || where[meth_len]==0)) {
+            break;
+          } else {
+            where++;
+          }
+        }
+      }
+
+      if (!where)
+        Tcl_AppendElement(interp, (char *) meth-&gt;name);
+      meth++;
+    }
+    cls = inst-&gt;classptr-&gt;bases[bi++];
+  }
+  return TCL_ERROR;
+}
+
+/* This function takes the current result and turns it into an object command */
+SWIGRUNTIME Tcl_Obj *
+SWIG_Tcl_NewInstanceObj(Tcl_Interp *interp, void *thisvalue, swig_type_info *type, int flags) {
+  Tcl_Obj *robj = SWIG_NewPointerObj(thisvalue, type,0);
+  /* Check to see if this pointer belongs to a class or not */
+  if ((type-&gt;clientdata) &amp;&amp; (interp)) {
+    Tcl_CmdInfo    ci;
+    char          *name;
+    name = Tcl_GetStringFromObj(robj,NULL);
+    if (!Tcl_GetCommandInfo(interp,name, &amp;ci) || (flags)) {
+      swig_instance *newinst = (swig_instance *) malloc(sizeof(swig_instance));
+      newinst-&gt;thisptr = Tcl_DuplicateObj(robj);
+      Tcl_IncrRefCount(newinst-&gt;thisptr);
+      newinst-&gt;thisvalue = thisvalue;
+      newinst-&gt;classptr = (swig_class *) type-&gt;clientdata;
+      newinst-&gt;destroy = flags;
+      newinst-&gt;cmdtok = Tcl_CreateObjCommand(interp, Tcl_GetStringFromObj(robj,NULL), (swig_wrapper_func) SWIG_MethodCommand, (ClientData) newinst, (swig_delete_func) SWIG_ObjectDelete);
+      if (flags) {
+        SWIG_Acquire(thisvalue);
+      }
+    }
+  }
+  return robj;
+}
+
+/* Function to create objects */
+SWIGRUNTIME int
+SWIG_Tcl_ObjectConstructor(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  Tcl_Obj          *newObj = 0;
+  void             *thisvalue = 0;
+  swig_instance   *newinst = 0;
+  swig_class      *classptr = (swig_class *) clientData;
+  swig_wrapper     cons = 0;
+  char             *name = 0;
+  int               firstarg = 0;
+  int               thisarg = 0;
+  int               destroy = 1;
+
+  if (!classptr) {
+    Tcl_SetResult(interp, (char *) &quot;swig: internal runtime error. No class object defined.&quot;, TCL_STATIC);
+    return TCL_ERROR;
+  }
+  cons = classptr-&gt;constructor;
+  if (objc &gt; 1) {
+    char *s = Tcl_GetStringFromObj(objv[1],NULL);
+    if (strcmp(s,&quot;-this&quot;) == 0) {
+      thisarg = 2;
+      cons = 0;
+    } else if (strcmp(s,&quot;-args&quot;) == 0) {
+      firstarg = 1;
+    } else if (objc == 2) {
+      firstarg = 1;
+      name = s;
+    } else if (objc &gt;= 3) {
+      char *s1;
+      name = s;
+      s1 = Tcl_GetStringFromObj(objv[2],NULL);
+      if (strcmp(s1,&quot;-this&quot;) == 0) {
+        thisarg = 3;
+        cons = 0;
+      } else {
+        firstarg = 1;
+      }
+    }
+  }
+  if (cons) {
+    int result;
+    result = (*cons)(0, interp, objc-firstarg, &amp;objv[firstarg]);
+    if (result != TCL_OK) {
+      return result;
+    }
+    newObj = Tcl_DuplicateObj(Tcl_GetObjResult(interp));
+    if (!name) name = Tcl_GetStringFromObj(newObj,NULL);
+  } else if (thisarg &gt; 0) {
+    if (thisarg &lt; objc) {
+      destroy = 0;
+      newObj = Tcl_DuplicateObj(objv[thisarg]);
+      if (!name) name = Tcl_GetStringFromObj(newObj,NULL);
+    } else {
+      Tcl_SetResult(interp, (char *) &quot;wrong # args.&quot;, TCL_STATIC);
+      return TCL_ERROR;
+    }
+  } else {
+    Tcl_SetResult(interp, (char *) &quot;No constructor available.&quot;, TCL_STATIC);
+    return TCL_ERROR;
+  }
+  if (SWIG_Tcl_ConvertPtr(interp,newObj, (void **) &amp;thisvalue, *(classptr-&gt;type), 0) != SWIG_OK) {
+    Tcl_DecrRefCount(newObj);
+    return TCL_ERROR;
+  }
+  newinst = (swig_instance *) malloc(sizeof(swig_instance));
+  newinst-&gt;thisptr = newObj;
+  Tcl_IncrRefCount(newObj);
+  newinst-&gt;thisvalue = thisvalue;
+  newinst-&gt;classptr = classptr;
+  newinst-&gt;destroy = destroy;
+  if (destroy) {
+    SWIG_Acquire(thisvalue);
+  }
+  newinst-&gt;cmdtok = Tcl_CreateObjCommand(interp,name, (swig_wrapper) SWIG_MethodCommand, (ClientData) newinst, (swig_delete_func) SWIG_ObjectDelete);
+  return TCL_OK;
+}
+
+/* -----------------------------------------------------------------------------*
+ *   Get arguments 
+ * -----------------------------------------------------------------------------*/
+SWIGRUNTIME int
+SWIG_Tcl_GetArgs(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[], const char *fmt, ...) {
+  int        argno = 0, opt = 0;
+  long       tempi;
+  double     tempd;
+  const char *c;
+  va_list    ap;
+  void      *vptr;
+  Tcl_Obj   *obj = 0;
+  swig_type_info *ty;
+
+  va_start(ap,fmt);
+  for (c = fmt; (*c &amp;&amp; (*c != ':') &amp;&amp; (*c != ';')); c++,argno++) {
+    if (*c == '|') {
+      opt = 1;
+      c++;
+    }
+    if (argno &gt;= (objc-1)) {
+      if (!opt) {
+        Tcl_SetResult(interp, (char *) &quot;Wrong number of arguments &quot;, TCL_STATIC);
+        goto argerror;
+      } else {
+        va_end(ap);
+        return TCL_OK;
+      }
+    }
+
+    vptr = va_arg(ap,void *);
+    if (vptr) {
+      if (isupper(*c)) {
+        obj = SWIG_Tcl_GetConstantObj(Tcl_GetStringFromObj(objv[argno+1],0));
+        if (!obj) obj = objv[argno+1];
+      } else {
+        obj = objv[argno+1];
+      }
+      switch(*c) {
+      case 'i': case 'I':
+      case 'l': case 'L':
+      case 'h': case 'H':
+      case 'b': case 'B':
+        if (Tcl_GetLongFromObj(interp,obj,&amp;tempi) != TCL_OK) goto argerror;
+        if ((*c == 'i') || (*c == 'I')) *((int *)vptr) = (int)tempi;
+        else if ((*c == 'l') || (*c == 'L')) *((long *)vptr) = (long)tempi;
+        else if ((*c == 'h') || (*c == 'H')) *((short*)vptr) = (short)tempi;
+        else if ((*c == 'b') || (*c == 'B')) *((unsigned char *)vptr) = (unsigned char)tempi;
+        break;
+      case 'f': case 'F':
+      case 'd': case 'D':
+        if (Tcl_GetDoubleFromObj(interp,obj,&amp;tempd) != TCL_OK) goto argerror;
+        if ((*c == 'f') || (*c == 'F')) *((float *) vptr) = (float)tempd;
+        else if ((*c == 'd') || (*c == 'D')) *((double*) vptr) = tempd;
+        break;
+      case 's': case 'S':
+        if (*(c+1) == '#') {
+          int *vlptr = (int *) va_arg(ap, void *);
+          *((char **) vptr) = Tcl_GetStringFromObj(obj, vlptr);
+          c++;
+        } else {
+          *((char **)vptr) = Tcl_GetStringFromObj(obj,NULL);
+        }
+        break;
+      case 'c': case 'C':
+        *((char *)vptr) = *(Tcl_GetStringFromObj(obj,NULL));
+        break;
+      case 'p': case 'P':
+        ty = (swig_type_info *) va_arg(ap, void *);
+        if (SWIG_Tcl_ConvertPtr(interp, obj, (void **) vptr, ty, 0) != SWIG_OK) goto argerror;
+        break;
+      case 'o': case 'O':
+        *((Tcl_Obj **)vptr) = objv[argno+1];
+        break;
+      default:
+        break;
+      }
+    }
+  }
+
+  if ((*c != ';') &amp;&amp; ((objc-1) &gt; argno)) {
+    Tcl_SetResult(interp, (char *) &quot;Wrong # args.&quot;, TCL_STATIC);
+    goto argerror;
+  }
+  va_end(ap);
+  return TCL_OK;
+
+ argerror:
+  {
+    char temp[32];
+    sprintf(temp,&quot;%d&quot;, argno+1);
+    c = strchr(fmt,':');
+    if (!c) c = strchr(fmt,';');
+    if (!c) c = (char *)&quot;&quot;;
+    Tcl_AppendResult(interp,c,&quot; argument &quot;, temp, NULL);
+    va_end(ap);
+    return TCL_ERROR;
+  }
+}
+
+#ifdef __cplusplus
+#if 0
+{ /* cc-mode */
+#endif
+}
+#endif
+
+
+
+#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) 
+
+#define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else 
+
+
+
+/* -------- TYPES TABLE (BEGIN) -------- */
+
+#define SWIGTYPE_p_ESLconnection swig_types[0]
+#define SWIGTYPE_p_ESLevent swig_types[1]
+#define SWIGTYPE_p_char swig_types[2]
+#define SWIGTYPE_p_esl_event_t swig_types[3]
+#define SWIGTYPE_p_esl_priority_t swig_types[4]
+static swig_type_info *swig_types[6];
+static swig_module_info swig_module = {swig_types, 5, 0, 0, 0, 0};
+#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&amp;swig_module, &amp;swig_module, name)
+#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&amp;swig_module, &amp;swig_module, name)
+
+/* -------- TYPES TABLE (END) -------- */
+
+#define SWIG_init    Esl_Init
+#define SWIG_name    &quot;esl&quot;
+#define SWIG_prefix  &quot;&quot;
+#define SWIG_version &quot;0.0&quot;
+
+#define SWIGVERSION 0x010335 
+#define SWIG_VERSION SWIGVERSION
+
+
+#define SWIG_as_voidptr(a) const_cast&lt; void * &gt;(static_cast&lt; const void * &gt;(a)) 
+#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast&lt; void** &gt;(a)) 
+
+
+#include &lt;stdexcept&gt;
+
+
+
+#ifdef __cplusplus
+extern &quot;C&quot; {
+#endif
+#ifdef MAC_TCL
+#pragma export on
+#endif
+SWIGEXPORT int SWIG_init(Tcl_Interp *);
+#ifdef MAC_TCL
+#pragma export off
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+
+
+#include &quot;esl.h&quot;
+#include &quot;esl_oop.h&quot;
+
+
+SWIGINTERN int
+SWIG_AsCharPtrAndSize(Tcl_Obj *obj, char** cptr, size_t* psize, int *alloc)
+{ 
+  int len = 0;
+  char *cstr = Tcl_GetStringFromObj(obj, &amp;len);
+  if (cstr) {
+    if (cptr)  *cptr = cstr;
+    if (psize) *psize = len + 1;
+    if (alloc) *alloc = SWIG_OLDOBJ;
+    return SWIG_OK;
+  }
+  return SWIG_TypeError;
+}
+
+
+
+
+
+#include &lt;limits.h&gt;
+#if !defined(SWIG_NO_LLONG_MAX)
+# if !defined(LLONG_MAX) &amp;&amp; defined(__GNUC__) &amp;&amp; defined (__LONG_LONG_MAX__)
+#   define LLONG_MAX __LONG_LONG_MAX__
+#   define LLONG_MIN (-LLONG_MAX - 1LL)
+#   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
+# endif
+#endif
+
+
+SWIGINTERNINLINE Tcl_Obj *
+SWIG_FromCharPtrAndSize(const char* carray, size_t size)
+{
+  return (size &lt; INT_MAX) ? Tcl_NewStringObj(carray, static_cast&lt; int &gt;(size)) : NULL;
+}
+
+
+SWIGINTERNINLINE Tcl_Obj * 
+SWIG_FromCharPtr(const char *cptr)
+{ 
+  return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_long SWIG_TCL_DECL_ARGS_2(Tcl_Obj *obj, long* val)
+{
+  long v;
+  if (Tcl_GetLongFromObj(0,obj, &amp;v) == TCL_OK) {
+    if (val) *val = (long) v;
+    return SWIG_OK;
+  }
+  return SWIG_TypeError;
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_int SWIG_TCL_DECL_ARGS_2(Tcl_Obj * obj, int *val)
+{
+  long v;
+  int res = SWIG_AsVal_long SWIG_TCL_CALL_ARGS_2(obj, &amp;v);
+  if (SWIG_IsOK(res)) {
+    if ((v &lt; INT_MIN || v &gt; INT_MAX)) {
+      return SWIG_OverflowError;
+    } else {
+      if (val) *val = static_cast&lt; int &gt;(v);
+    }
+  }  
+  return res;
+}
+
+
+SWIGINTERNINLINE Tcl_Obj* 
+SWIG_From_long  (long value)
+{
+  if (((long) INT_MIN &lt;= value) &amp;&amp; (value &lt;= (long) INT_MAX)) {
+    return Tcl_NewIntObj(static_cast&lt; int &gt;(value));
+  } else {
+    return Tcl_NewLongObj(value);
+  }
+}
+
+
+SWIGINTERNINLINE Tcl_Obj *
+SWIG_From_int  (int value)
+{    
+  return SWIG_From_long  (value);
+}
+
+
+  #define SWIG_From_bool   Tcl_NewBooleanObj 
+
+#ifdef __cplusplus
+extern &quot;C&quot; {
+#endif
+SWIGINTERN int
+_wrap_ESLevent_event_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  esl_event_t *arg2 = (esl_event_t *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo:ESLevent_event_set self event &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_event_set&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  res2 = SWIG_ConvertPtr(objv[2], &amp;argp2,SWIGTYPE_p_esl_event_t, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLevent_event_set&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;esl_event_t *&quot;&quot;'&quot;); 
+  }
+  arg2 = reinterpret_cast&lt; esl_event_t * &gt;(argp2);
+  if (arg1) (arg1)-&gt;event = arg2;
+  
+  
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_event_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  esl_event_t *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:ESLevent_event_get self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_event_get&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  result = (esl_event_t *) ((arg1)-&gt;event);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_esl_event_t,0));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_serialized_string_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo:ESLevent_serialized_string_set self serialized_string &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_serialized_string_set&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLevent_serialized_string_set&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  if (arg1-&gt;serialized_string) delete[] arg1-&gt;serialized_string;
+  if (arg2) {
+    size_t size = strlen(reinterpret_cast&lt; const char * &gt;(arg2)) + 1;
+    arg1-&gt;serialized_string = (char *)reinterpret_cast&lt; char* &gt;(memcpy((new char[size]), reinterpret_cast&lt; const char * &gt;(arg2), sizeof(char)*(size)));
+  } else {
+    arg1-&gt;serialized_string = 0;
+  }
+  
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_serialized_string_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  char *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:ESLevent_serialized_string_get self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_serialized_string_get&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  result = (char *) ((arg1)-&gt;serialized_string);
+  Tcl_SetObjResult(interp,SWIG_FromCharPtr((const char *)result));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_mine_set(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo:ESLevent_mine_set self mine &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_mine_set&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  ecode2 = SWIG_AsVal_int SWIG_TCL_CALL_ARGS_2(objv[2], &amp;val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), &quot;in method '&quot; &quot;ESLevent_mine_set&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;int&quot;&quot;'&quot;);
+  } 
+  arg2 = static_cast&lt; int &gt;(val2);
+  if (arg1) (arg1)-&gt;mine = arg2;
+  
+  
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_mine_get(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  int result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:ESLevent_mine_get self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_mine_get&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  result = (int) ((arg1)-&gt;mine);
+  Tcl_SetObjResult(interp,SWIG_From_int(static_cast&lt; int &gt;(result)));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_new_ESLevent__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  char *arg1 = (char *) 0 ;
+  char *arg2 = (char *) NULL ;
+  ESLevent *result = 0 ;
+  int res1 ;
+  char *buf1 = 0 ;
+  int alloc1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o|o:new_ESLevent type ?subclass_name? &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_AsCharPtrAndSize(objv[1], &amp;buf1, NULL, &amp;alloc1);
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;new_ESLevent&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg1 = reinterpret_cast&lt; char * &gt;(buf1);
+  if (objc &gt; 2) {
+    res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;new_ESLevent&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+    }
+    arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  }
+  result = (ESLevent *)new ESLevent((char const *)arg1,(char const *)arg2);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent,0));
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_OK;
+fail:
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_new_ESLevent__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  esl_event_t *arg1 = (esl_event_t *) 0 ;
+  int arg2 = (int) 0 ;
+  ESLevent *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o|o:new_ESLevent wrap_me ?free_me? &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_esl_event_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;new_ESLevent&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;esl_event_t *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; esl_event_t * &gt;(argp1);
+  if (objc &gt; 2) {
+    ecode2 = SWIG_AsVal_int SWIG_TCL_CALL_ARGS_2(objv[2], &amp;val2);
+    if (!SWIG_IsOK(ecode2)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode2), &quot;in method '&quot; &quot;new_ESLevent&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;int&quot;&quot;'&quot;);
+    } 
+    arg2 = static_cast&lt; int &gt;(val2);
+  }
+  result = (ESLevent *)new ESLevent(arg1,arg2);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent,0));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_new_ESLevent__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  ESLevent *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:new_ESLevent me &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;new_ESLevent&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  result = (ESLevent *)new ESLevent(arg1);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent,0));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_new_ESLevent(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  Tcl_Obj *CONST *argv = objv+1;
+  int argc = objc-1;
+  if ((argc &gt;= 1) &amp;&amp; (argc &lt;= 2)) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &amp;vptr, SWIGTYPE_p_esl_event_t, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      if (argc &lt;= 1) {
+        return _wrap_new_ESLevent__SWIG_1(clientData, interp, objc, argv - 1);
+      }
+      {
+        int res = SWIG_AsVal_int SWIG_TCL_CALL_ARGS_2(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_new_ESLevent__SWIG_1(clientData, interp, objc, argv - 1);
+      }
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &amp;vptr, SWIGTYPE_p_ESLevent, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_new_ESLevent__SWIG_2(clientData, interp, objc, argv - 1);
+    }
+  }
+  if ((argc &gt;= 1) &amp;&amp; (argc &lt;= 2)) {
+    int _v;
+    int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      if (argc &lt;= 1) {
+        return _wrap_new_ESLevent__SWIG_0(clientData, interp, objc, argv - 1);
+      }
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_new_ESLevent__SWIG_0(clientData, interp, objc, argv - 1);
+      }
+    }
+  }
+  
+  Tcl_SetResult(interp,(char *) &quot;No matching function for overloaded 'new_ESLevent'&quot;, TCL_STATIC);
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_delete_ESLevent(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:delete_ESLevent self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;delete_ESLevent&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  delete arg1;
+  
+  
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_serialize(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  char *arg2 = (char *) NULL ;
+  char *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o|o:ESLevent_serialize self ?format? &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_serialize&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  if (objc &gt; 2) {
+    res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLevent_serialize&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+    }
+    arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  }
+  result = (char *)(arg1)-&gt;serialize((char const *)arg2);
+  Tcl_SetObjResult(interp,SWIG_FromCharPtr((const char *)result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_setPriority(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  esl_priority_t arg2 = (esl_priority_t) ESL_PRIORITY_NORMAL ;
+  bool result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o|o:ESLevent_setPriority self ?priority? &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_setPriority&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  if (objc &gt; 2) {
+    {
+      res2 = SWIG_ConvertPtr(objv[2], &amp;argp2, SWIGTYPE_p_esl_priority_t,  0 );
+      if (!SWIG_IsOK(res2)) {
+        SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLevent_setPriority&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;esl_priority_t&quot;&quot;'&quot;); 
+      }  
+      if (!argp2) {
+        SWIG_exception_fail(SWIG_ValueError, &quot;invalid null reference &quot; &quot;in method '&quot; &quot;ESLevent_setPriority&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;esl_priority_t&quot;&quot;'&quot;);
+      } else {
+        arg2 = *(reinterpret_cast&lt; esl_priority_t * &gt;(argp2));
+      }
+    }
+  }
+  result = (bool)(arg1)-&gt;setPriority(arg2);
+  Tcl_SetObjResult(interp,SWIG_From_bool(static_cast&lt; bool &gt;(result)));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_getHeader(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo:ESLevent_getHeader self header_name &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_getHeader&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLevent_getHeader&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  result = (char *)(arg1)-&gt;getHeader((char const *)arg2);
+  Tcl_SetObjResult(interp,SWIG_FromCharPtr((const char *)result));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_getBody(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  char *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:ESLevent_getBody self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_getBody&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  result = (char *)(arg1)-&gt;getBody();
+  Tcl_SetObjResult(interp,SWIG_FromCharPtr((const char *)result));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_getType(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  char *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:ESLevent_getType self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_getType&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  result = (char *)(arg1)-&gt;getType();
+  Tcl_SetObjResult(interp,SWIG_FromCharPtr((const char *)result));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_addBody(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  char *arg2 = (char *) 0 ;
+  bool result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo:ESLevent_addBody self value &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_addBody&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLevent_addBody&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  result = (bool)(arg1)-&gt;addBody((char const *)arg2);
+  Tcl_SetObjResult(interp,SWIG_From_bool(static_cast&lt; bool &gt;(result)));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_addHeader(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  bool result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;ooo:ESLevent_addHeader self header_name value &quot;,(void *)0,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_addHeader&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLevent_addHeader&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  res3 = SWIG_AsCharPtrAndSize(objv[3], &amp;buf3, NULL, &amp;alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), &quot;in method '&quot; &quot;ESLevent_addHeader&quot; &quot;', argument &quot; &quot;3&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg3 = reinterpret_cast&lt; char * &gt;(buf3);
+  result = (bool)(arg1)-&gt;addHeader((char const *)arg2,(char const *)arg3);
+  Tcl_SetObjResult(interp,SWIG_From_bool(static_cast&lt; bool &gt;(result)));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_delHeader(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  char *arg2 = (char *) 0 ;
+  bool result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo:ESLevent_delHeader self header_name &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_delHeader&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLevent_delHeader&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  result = (bool)(arg1)-&gt;delHeader((char const *)arg2);
+  Tcl_SetObjResult(interp,SWIG_From_bool(static_cast&lt; bool &gt;(result)));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_firstHeader(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  char *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:ESLevent_firstHeader self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_firstHeader&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  result = (char *)(arg1)-&gt;firstHeader();
+  Tcl_SetObjResult(interp,SWIG_FromCharPtr((const char *)result));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLevent_nextHeader(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLevent *arg1 = (ESLevent *) 0 ;
+  char *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:ESLevent_nextHeader self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLevent_nextHeader&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLevent * &gt;(argp1);
+  result = (char *)(arg1)-&gt;nextHeader();
+  Tcl_SetObjResult(interp,SWIG_FromCharPtr((const char *)result));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN void swig_delete_ESLevent(void *obj) {
+ESLevent *arg1 = (ESLevent *) obj;
+delete arg1;
+}
+static swig_method swig_ESLevent_methods[] = {
+    {&quot;serialize&quot;, _wrap_ESLevent_serialize}, 
+    {&quot;setPriority&quot;, _wrap_ESLevent_setPriority}, 
+    {&quot;getHeader&quot;, _wrap_ESLevent_getHeader}, 
+    {&quot;getBody&quot;, _wrap_ESLevent_getBody}, 
+    {&quot;getType&quot;, _wrap_ESLevent_getType}, 
+    {&quot;addBody&quot;, _wrap_ESLevent_addBody}, 
+    {&quot;addHeader&quot;, _wrap_ESLevent_addHeader}, 
+    {&quot;delHeader&quot;, _wrap_ESLevent_delHeader}, 
+    {&quot;firstHeader&quot;, _wrap_ESLevent_firstHeader}, 
+    {&quot;nextHeader&quot;, _wrap_ESLevent_nextHeader}, 
+    {0,0}
+};
+static swig_attribute swig_ESLevent_attributes[] = {
+    { &quot;-event&quot;,_wrap_ESLevent_event_get, _wrap_ESLevent_event_set},
+    { &quot;-serialized_string&quot;,_wrap_ESLevent_serialized_string_get, _wrap_ESLevent_serialized_string_set},
+    { &quot;-mine&quot;,_wrap_ESLevent_mine_get, _wrap_ESLevent_mine_set},
+    {0,0,0}
+};
+static swig_class *swig_ESLevent_bases[] = {0};
+static const char * swig_ESLevent_base_names[] = {0};
+static swig_class _wrap_class_ESLevent = { &quot;ESLevent&quot;, &amp;SWIGTYPE_p_ESLevent,_wrap_new_ESLevent, swig_delete_ESLevent, swig_ESLevent_methods, swig_ESLevent_attributes, swig_ESLevent_bases,swig_ESLevent_base_names, &amp;swig_module };
+SWIGINTERN int
+_wrap_new_ESLconnection__SWIG_0(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  char *arg1 = (char *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  ESLconnection *result = 0 ;
+  int res1 ;
+  char *buf1 = 0 ;
+  int alloc1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oooo:new_ESLconnection host port user password &quot;,(void *)0,(void *)0,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_AsCharPtrAndSize(objv[1], &amp;buf1, NULL, &amp;alloc1);
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;new_ESLconnection&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg1 = reinterpret_cast&lt; char * &gt;(buf1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;new_ESLconnection&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  res3 = SWIG_AsCharPtrAndSize(objv[3], &amp;buf3, NULL, &amp;alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), &quot;in method '&quot; &quot;new_ESLconnection&quot; &quot;', argument &quot; &quot;3&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg3 = reinterpret_cast&lt; char * &gt;(buf3);
+  res4 = SWIG_AsCharPtrAndSize(objv[4], &amp;buf4, NULL, &amp;alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), &quot;in method '&quot; &quot;new_ESLconnection&quot; &quot;', argument &quot; &quot;4&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg4 = reinterpret_cast&lt; char * &gt;(buf4);
+  result = (ESLconnection *)new ESLconnection((char const *)arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLconnection,0));
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return TCL_OK;
+fail:
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_new_ESLconnection__SWIG_1(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  char *arg1 = (char *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  ESLconnection *result = 0 ;
+  int res1 ;
+  char *buf1 = 0 ;
+  int alloc1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;ooo:new_ESLconnection host port password &quot;,(void *)0,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_AsCharPtrAndSize(objv[1], &amp;buf1, NULL, &amp;alloc1);
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;new_ESLconnection&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg1 = reinterpret_cast&lt; char * &gt;(buf1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;new_ESLconnection&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  res3 = SWIG_AsCharPtrAndSize(objv[3], &amp;buf3, NULL, &amp;alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), &quot;in method '&quot; &quot;new_ESLconnection&quot; &quot;', argument &quot; &quot;3&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg3 = reinterpret_cast&lt; char * &gt;(buf3);
+  result = (ESLconnection *)new ESLconnection((char const *)arg1,(char const *)arg2,(char const *)arg3);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLconnection,0));
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return TCL_OK;
+fail:
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_new_ESLconnection__SWIG_2(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  int arg1 ;
+  ESLconnection *result = 0 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:new_ESLconnection socket &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  ecode1 = SWIG_AsVal_int SWIG_TCL_CALL_ARGS_2(objv[1], &amp;val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), &quot;in method '&quot; &quot;new_ESLconnection&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;int&quot;&quot;'&quot;);
+  } 
+  arg1 = static_cast&lt; int &gt;(val1);
+  result = (ESLconnection *)new ESLconnection(arg1);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLconnection,0));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_new_ESLconnection(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  Tcl_Obj *CONST *argv = objv+1;
+  int argc = objc-1;
+  if (argc == 1) {
+    int _v;
+    {
+      int res = SWIG_AsVal_int SWIG_TCL_CALL_ARGS_2(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      return _wrap_new_ESLconnection__SWIG_2(clientData, interp, objc, argv - 1);
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_new_ESLconnection__SWIG_1(clientData, interp, objc, argv - 1);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_new_ESLconnection__SWIG_0(clientData, interp, objc, argv - 1);
+          }
+        }
+      }
+    }
+  }
+  
+  Tcl_SetResult(interp,(char *) &quot;No matching function for overloaded 'new_ESLconnection'&quot;, TCL_STATIC);
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_delete_ESLconnection(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:delete_ESLconnection self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;delete_ESLconnection&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  delete arg1;
+  
+  
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_socketDescriptor(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  int result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:ESLconnection_socketDescriptor self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_socketDescriptor&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  result = (int)(arg1)-&gt;socketDescriptor();
+  Tcl_SetObjResult(interp,SWIG_From_int(static_cast&lt; int &gt;(result)));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_connected(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  int result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:ESLconnection_connected self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_connected&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  result = (int)(arg1)-&gt;connected();
+  Tcl_SetObjResult(interp,SWIG_From_int(static_cast&lt; int &gt;(result)));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_getInfo(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  ESLevent *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:ESLconnection_getInfo self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_getInfo&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  result = (ESLevent *)(arg1)-&gt;getInfo();
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent,0));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_send(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo:ESLconnection_send self cmd &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_send&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLconnection_send&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  result = (int)(arg1)-&gt;send((char const *)arg2);
+  Tcl_SetObjResult(interp,SWIG_From_int(static_cast&lt; int &gt;(result)));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_sendRecv(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  char *arg2 = (char *) 0 ;
+  ESLevent *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo:ESLconnection_sendRecv self cmd &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_sendRecv&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLconnection_sendRecv&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  result = (ESLevent *)(arg1)-&gt;sendRecv((char const *)arg2);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent,0));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_api(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) NULL ;
+  ESLevent *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo|o:ESLconnection_api self cmd ?arg? &quot;,(void *)0,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_api&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLconnection_api&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  if (objc &gt; 3) {
+    res3 = SWIG_AsCharPtrAndSize(objv[3], &amp;buf3, NULL, &amp;alloc3);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), &quot;in method '&quot; &quot;ESLconnection_api&quot; &quot;', argument &quot; &quot;3&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+    }
+    arg3 = reinterpret_cast&lt; char * &gt;(buf3);
+  }
+  result = (ESLevent *)(arg1)-&gt;api((char const *)arg2,(char const *)arg3);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent,0));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_bgapi(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) NULL ;
+  ESLevent *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo|o:ESLconnection_bgapi self cmd ?arg? &quot;,(void *)0,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_bgapi&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLconnection_bgapi&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  if (objc &gt; 3) {
+    res3 = SWIG_AsCharPtrAndSize(objv[3], &amp;buf3, NULL, &amp;alloc3);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), &quot;in method '&quot; &quot;ESLconnection_bgapi&quot; &quot;', argument &quot; &quot;3&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+    }
+    arg3 = reinterpret_cast&lt; char * &gt;(buf3);
+  }
+  result = (ESLevent *)(arg1)-&gt;bgapi((char const *)arg2,(char const *)arg3);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent,0));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_sendEvent(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  ESLevent *arg2 = (ESLevent *) 0 ;
+  int result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo:ESLconnection_sendEvent self send_me &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_sendEvent&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  res2 = SWIG_ConvertPtr(objv[2], &amp;argp2,SWIGTYPE_p_ESLevent, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLconnection_sendEvent&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;ESLevent *&quot;&quot;'&quot;); 
+  }
+  arg2 = reinterpret_cast&lt; ESLevent * &gt;(argp2);
+  result = (int)(arg1)-&gt;sendEvent(arg2);
+  Tcl_SetObjResult(interp,SWIG_From_int(static_cast&lt; int &gt;(result)));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_recvEvent(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  ESLevent *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:ESLconnection_recvEvent self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_recvEvent&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  result = (ESLevent *)(arg1)-&gt;recvEvent();
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent,0));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_recvEventTimed(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  int arg2 ;
+  ESLevent *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo:ESLconnection_recvEventTimed self ms &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_recvEventTimed&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  ecode2 = SWIG_AsVal_int SWIG_TCL_CALL_ARGS_2(objv[2], &amp;val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), &quot;in method '&quot; &quot;ESLconnection_recvEventTimed&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;int&quot;&quot;'&quot;);
+  } 
+  arg2 = static_cast&lt; int &gt;(val2);
+  result = (ESLevent *)(arg1)-&gt;recvEventTimed(arg2);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent,0));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_filter(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  ESLevent *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;ooo:ESLconnection_filter self header value &quot;,(void *)0,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_filter&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLconnection_filter&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  res3 = SWIG_AsCharPtrAndSize(objv[3], &amp;buf3, NULL, &amp;alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), &quot;in method '&quot; &quot;ESLconnection_filter&quot; &quot;', argument &quot; &quot;3&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg3 = reinterpret_cast&lt; char * &gt;(buf3);
+  result = (ESLevent *)(arg1)-&gt;filter((char const *)arg2,(char const *)arg3);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent,0));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_events(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  int result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;ooo:ESLconnection_events self etype value &quot;,(void *)0,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_events&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLconnection_events&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  res3 = SWIG_AsCharPtrAndSize(objv[3], &amp;buf3, NULL, &amp;alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), &quot;in method '&quot; &quot;ESLconnection_events&quot; &quot;', argument &quot; &quot;3&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg3 = reinterpret_cast&lt; char * &gt;(buf3);
+  result = (int)(arg1)-&gt;events((char const *)arg2,(char const *)arg3);
+  Tcl_SetObjResult(interp,SWIG_From_int(static_cast&lt; int &gt;(result)));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_execute(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) NULL ;
+  char *arg4 = (char *) NULL ;
+  ESLevent *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo|oo:ESLconnection_execute self app ?arg? ?uuid? &quot;,(void *)0,(void *)0,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_execute&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLconnection_execute&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  if (objc &gt; 3) {
+    res3 = SWIG_AsCharPtrAndSize(objv[3], &amp;buf3, NULL, &amp;alloc3);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), &quot;in method '&quot; &quot;ESLconnection_execute&quot; &quot;', argument &quot; &quot;3&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+    }
+    arg3 = reinterpret_cast&lt; char * &gt;(buf3);
+  }
+  if (objc &gt; 4) {
+    res4 = SWIG_AsCharPtrAndSize(objv[4], &amp;buf4, NULL, &amp;alloc4);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), &quot;in method '&quot; &quot;ESLconnection_execute&quot; &quot;', argument &quot; &quot;4&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+    }
+    arg4 = reinterpret_cast&lt; char * &gt;(buf4);
+  }
+  result = (ESLevent *)(arg1)-&gt;execute((char const *)arg2,(char const *)arg3,(char const *)arg4);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent,0));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_executeAsync(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) NULL ;
+  char *arg4 = (char *) NULL ;
+  ESLevent *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo|oo:ESLconnection_executeAsync self app ?arg? ?uuid? &quot;,(void *)0,(void *)0,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_executeAsync&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLconnection_executeAsync&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  if (objc &gt; 3) {
+    res3 = SWIG_AsCharPtrAndSize(objv[3], &amp;buf3, NULL, &amp;alloc3);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), &quot;in method '&quot; &quot;ESLconnection_executeAsync&quot; &quot;', argument &quot; &quot;3&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+    }
+    arg3 = reinterpret_cast&lt; char * &gt;(buf3);
+  }
+  if (objc &gt; 4) {
+    res4 = SWIG_AsCharPtrAndSize(objv[4], &amp;buf4, NULL, &amp;alloc4);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), &quot;in method '&quot; &quot;ESLconnection_executeAsync&quot; &quot;', argument &quot; &quot;4&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+    }
+    arg4 = reinterpret_cast&lt; char * &gt;(buf4);
+  }
+  result = (ESLevent *)(arg1)-&gt;executeAsync((char const *)arg2,(char const *)arg3,(char const *)arg4);
+  Tcl_SetObjResult(interp, SWIG_NewInstanceObj( SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent,0));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  if (alloc3 == SWIG_NEWOBJ) delete[] buf3;
+  if (alloc4 == SWIG_NEWOBJ) delete[] buf4;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_setAsyncExecute(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo:ESLconnection_setAsyncExecute self val &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_setAsyncExecute&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLconnection_setAsyncExecute&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  result = (int)(arg1)-&gt;setAsyncExecute((char const *)arg2);
+  Tcl_SetObjResult(interp,SWIG_From_int(static_cast&lt; int &gt;(result)));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_setEventLock(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  char *arg2 = (char *) 0 ;
+  int result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;oo:ESLconnection_setEventLock self val &quot;,(void *)0,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_setEventLock&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  res2 = SWIG_AsCharPtrAndSize(objv[2], &amp;buf2, NULL, &amp;alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), &quot;in method '&quot; &quot;ESLconnection_setEventLock&quot; &quot;', argument &quot; &quot;2&quot;&quot; of type '&quot; &quot;char const *&quot;&quot;'&quot;);
+  }
+  arg2 = reinterpret_cast&lt; char * &gt;(buf2);
+  result = (int)(arg1)-&gt;setEventLock((char const *)arg2);
+  Tcl_SetObjResult(interp,SWIG_From_int(static_cast&lt; int &gt;(result)));
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_OK;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) delete[] buf2;
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN int
+_wrap_ESLconnection_disconnect(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  ESLconnection *arg1 = (ESLconnection *) 0 ;
+  int result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:ESLconnection_disconnect self &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  res1 = SWIG_ConvertPtr(objv[1], &amp;argp1,SWIGTYPE_p_ESLconnection, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), &quot;in method '&quot; &quot;ESLconnection_disconnect&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;ESLconnection *&quot;&quot;'&quot;); 
+  }
+  arg1 = reinterpret_cast&lt; ESLconnection * &gt;(argp1);
+  result = (int)(arg1)-&gt;disconnect();
+  Tcl_SetObjResult(interp,SWIG_From_int(static_cast&lt; int &gt;(result)));
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+SWIGINTERN void swig_delete_ESLconnection(void *obj) {
+ESLconnection *arg1 = (ESLconnection *) obj;
+delete arg1;
+}
+static swig_method swig_ESLconnection_methods[] = {
+    {&quot;socketDescriptor&quot;, _wrap_ESLconnection_socketDescriptor}, 
+    {&quot;connected&quot;, _wrap_ESLconnection_connected}, 
+    {&quot;getInfo&quot;, _wrap_ESLconnection_getInfo}, 
+    {&quot;send&quot;, _wrap_ESLconnection_send}, 
+    {&quot;sendRecv&quot;, _wrap_ESLconnection_sendRecv}, 
+    {&quot;api&quot;, _wrap_ESLconnection_api}, 
+    {&quot;bgapi&quot;, _wrap_ESLconnection_bgapi}, 
+    {&quot;sendEvent&quot;, _wrap_ESLconnection_sendEvent}, 
+    {&quot;recvEvent&quot;, _wrap_ESLconnection_recvEvent}, 
+    {&quot;recvEventTimed&quot;, _wrap_ESLconnection_recvEventTimed}, 
+    {&quot;filter&quot;, _wrap_ESLconnection_filter}, 
+    {&quot;events&quot;, _wrap_ESLconnection_events}, 
+    {&quot;execute&quot;, _wrap_ESLconnection_execute}, 
+    {&quot;executeAsync&quot;, _wrap_ESLconnection_executeAsync}, 
+    {&quot;setAsyncExecute&quot;, _wrap_ESLconnection_setAsyncExecute}, 
+    {&quot;setEventLock&quot;, _wrap_ESLconnection_setEventLock}, 
+    {&quot;disconnect&quot;, _wrap_ESLconnection_disconnect}, 
+    {0,0}
+};
+static swig_attribute swig_ESLconnection_attributes[] = {
+    {0,0,0}
+};
+static swig_class *swig_ESLconnection_bases[] = {0};
+static const char * swig_ESLconnection_base_names[] = {0};
+static swig_class _wrap_class_ESLconnection = { &quot;ESLconnection&quot;, &amp;SWIGTYPE_p_ESLconnection,_wrap_new_ESLconnection, swig_delete_ESLconnection, swig_ESLconnection_methods, swig_ESLconnection_attributes, swig_ESLconnection_bases,swig_ESLconnection_base_names, &amp;swig_module };
+SWIGINTERN int
+_wrap_eslSetLogLevel(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
+  int arg1 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  
+  if (SWIG_GetArgs(interp, objc, objv,&quot;o:eslSetLogLevel level &quot;,(void *)0) == TCL_ERROR) SWIG_fail;
+  ecode1 = SWIG_AsVal_int SWIG_TCL_CALL_ARGS_2(objv[1], &amp;val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), &quot;in method '&quot; &quot;eslSetLogLevel&quot; &quot;', argument &quot; &quot;1&quot;&quot; of type '&quot; &quot;int&quot;&quot;'&quot;);
+  } 
+  arg1 = static_cast&lt; int &gt;(val1);
+  eslSetLogLevel(arg1);
+  
+  return TCL_OK;
+fail:
+  return TCL_ERROR;
+}
+
+
+
+static swig_command_info swig_commands[] = {
+    { SWIG_prefix &quot;ESLevent_event_set&quot;, (swig_wrapper_func) _wrap_ESLevent_event_set, NULL},
+    { SWIG_prefix &quot;ESLevent_event_get&quot;, (swig_wrapper_func) _wrap_ESLevent_event_get, NULL},
+    { SWIG_prefix &quot;ESLevent_serialized_string_set&quot;, (swig_wrapper_func) _wrap_ESLevent_serialized_string_set, NULL},
+    { SWIG_prefix &quot;ESLevent_serialized_string_get&quot;, (swig_wrapper_func) _wrap_ESLevent_serialized_string_get, NULL},
+    { SWIG_prefix &quot;ESLevent_mine_set&quot;, (swig_wrapper_func) _wrap_ESLevent_mine_set, NULL},
+    { SWIG_prefix &quot;ESLevent_mine_get&quot;, (swig_wrapper_func) _wrap_ESLevent_mine_get, NULL},
+    { SWIG_prefix &quot;new_ESLevent&quot;, (swig_wrapper_func) _wrap_new_ESLevent, NULL},
+    { SWIG_prefix &quot;delete_ESLevent&quot;, (swig_wrapper_func) _wrap_delete_ESLevent, NULL},
+    { SWIG_prefix &quot;ESLevent_serialize&quot;, (swig_wrapper_func) _wrap_ESLevent_serialize, NULL},
+    { SWIG_prefix &quot;ESLevent_setPriority&quot;, (swig_wrapper_func) _wrap_ESLevent_setPriority, NULL},
+    { SWIG_prefix &quot;ESLevent_getHeader&quot;, (swig_wrapper_func) _wrap_ESLevent_getHeader, NULL},
+    { SWIG_prefix &quot;ESLevent_getBody&quot;, (swig_wrapper_func) _wrap_ESLevent_getBody, NULL},
+    { SWIG_prefix &quot;ESLevent_getType&quot;, (swig_wrapper_func) _wrap_ESLevent_getType, NULL},
+    { SWIG_prefix &quot;ESLevent_addBody&quot;, (swig_wrapper_func) _wrap_ESLevent_addBody, NULL},
+    { SWIG_prefix &quot;ESLevent_addHeader&quot;, (swig_wrapper_func) _wrap_ESLevent_addHeader, NULL},
+    { SWIG_prefix &quot;ESLevent_delHeader&quot;, (swig_wrapper_func) _wrap_ESLevent_delHeader, NULL},
+    { SWIG_prefix &quot;ESLevent_firstHeader&quot;, (swig_wrapper_func) _wrap_ESLevent_firstHeader, NULL},
+    { SWIG_prefix &quot;ESLevent_nextHeader&quot;, (swig_wrapper_func) _wrap_ESLevent_nextHeader, NULL},
+    { SWIG_prefix &quot;ESLevent&quot;, (swig_wrapper_func) SWIG_ObjectConstructor, (ClientData)&amp;_wrap_class_ESLevent},
+    { SWIG_prefix &quot;new_ESLconnection&quot;, (swig_wrapper_func) _wrap_new_ESLconnection, NULL},
+    { SWIG_prefix &quot;delete_ESLconnection&quot;, (swig_wrapper_func) _wrap_delete_ESLconnection, NULL},
+    { SWIG_prefix &quot;ESLconnection_socketDescriptor&quot;, (swig_wrapper_func) _wrap_ESLconnection_socketDescriptor, NULL},
+    { SWIG_prefix &quot;ESLconnection_connected&quot;, (swig_wrapper_func) _wrap_ESLconnection_connected, NULL},
+    { SWIG_prefix &quot;ESLconnection_getInfo&quot;, (swig_wrapper_func) _wrap_ESLconnection_getInfo, NULL},
+    { SWIG_prefix &quot;ESLconnection_send&quot;, (swig_wrapper_func) _wrap_ESLconnection_send, NULL},
+    { SWIG_prefix &quot;ESLconnection_sendRecv&quot;, (swig_wrapper_func) _wrap_ESLconnection_sendRecv, NULL},
+    { SWIG_prefix &quot;ESLconnection_api&quot;, (swig_wrapper_func) _wrap_ESLconnection_api, NULL},
+    { SWIG_prefix &quot;ESLconnection_bgapi&quot;, (swig_wrapper_func) _wrap_ESLconnection_bgapi, NULL},
+    { SWIG_prefix &quot;ESLconnection_sendEvent&quot;, (swig_wrapper_func) _wrap_ESLconnection_sendEvent, NULL},
+    { SWIG_prefix &quot;ESLconnection_recvEvent&quot;, (swig_wrapper_func) _wrap_ESLconnection_recvEvent, NULL},
+    { SWIG_prefix &quot;ESLconnection_recvEventTimed&quot;, (swig_wrapper_func) _wrap_ESLconnection_recvEventTimed, NULL},
+    { SWIG_prefix &quot;ESLconnection_filter&quot;, (swig_wrapper_func) _wrap_ESLconnection_filter, NULL},
+    { SWIG_prefix &quot;ESLconnection_events&quot;, (swig_wrapper_func) _wrap_ESLconnection_events, NULL},
+    { SWIG_prefix &quot;ESLconnection_execute&quot;, (swig_wrapper_func) _wrap_ESLconnection_execute, NULL},
+    { SWIG_prefix &quot;ESLconnection_executeAsync&quot;, (swig_wrapper_func) _wrap_ESLconnection_executeAsync, NULL},
+    { SWIG_prefix &quot;ESLconnection_setAsyncExecute&quot;, (swig_wrapper_func) _wrap_ESLconnection_setAsyncExecute, NULL},
+    { SWIG_prefix &quot;ESLconnection_setEventLock&quot;, (swig_wrapper_func) _wrap_ESLconnection_setEventLock, NULL},
+    { SWIG_prefix &quot;ESLconnection_disconnect&quot;, (swig_wrapper_func) _wrap_ESLconnection_disconnect, NULL},
+    { SWIG_prefix &quot;ESLconnection&quot;, (swig_wrapper_func) SWIG_ObjectConstructor, (ClientData)&amp;_wrap_class_ESLconnection},
+    { SWIG_prefix &quot;eslSetLogLevel&quot;, (swig_wrapper_func) _wrap_eslSetLogLevel, NULL},
+    {0, 0, 0}
+};
+
+static swig_var_info swig_variables[] = {
+    {0,0,0,0}
+};
+
+static swig_const_info swig_constants[] = {
+    {0,0,0,0,0,0}
+};
+
+/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
+
+static swig_type_info _swigt__p_ESLconnection = {&quot;_p_ESLconnection&quot;, &quot;ESLconnection *&quot;, 0, 0, (void*)&amp;_wrap_class_ESLconnection, 0};
+static swig_type_info _swigt__p_ESLevent = {&quot;_p_ESLevent&quot;, &quot;ESLevent *&quot;, 0, 0, (void*)&amp;_wrap_class_ESLevent, 0};
+static swig_type_info _swigt__p_char = {&quot;_p_char&quot;, &quot;char *&quot;, 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_esl_event_t = {&quot;_p_esl_event_t&quot;, &quot;esl_event_t *&quot;, 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_esl_priority_t = {&quot;_p_esl_priority_t&quot;, &quot;esl_priority_t *&quot;, 0, 0, (void*)0, 0};
+
+static swig_type_info *swig_type_initial[] = {
+  &amp;_swigt__p_ESLconnection,
+  &amp;_swigt__p_ESLevent,
+  &amp;_swigt__p_char,
+  &amp;_swigt__p_esl_event_t,
+  &amp;_swigt__p_esl_priority_t,
+};
+
+static swig_cast_info _swigc__p_ESLconnection[] = {  {&amp;_swigt__p_ESLconnection, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ESLevent[] = {  {&amp;_swigt__p_ESLevent, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_char[] = {  {&amp;_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_esl_event_t[] = {  {&amp;_swigt__p_esl_event_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_esl_priority_t[] = {  {&amp;_swigt__p_esl_priority_t, 0, 0, 0},{0, 0, 0, 0}};
+
+static swig_cast_info *swig_cast_initial[] = {
+  _swigc__p_ESLconnection,
+  _swigc__p_ESLevent,
+  _swigc__p_char,
+  _swigc__p_esl_event_t,
+  _swigc__p_esl_priority_t,
+};
+
+
+/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
+
+#ifdef __cplusplus
+}
+#endif
+/* -----------------------------------------------------------------------------
+ * Type initialization:
+ * This problem is tough by the requirement that no dynamic 
+ * memory is used. Also, since swig_type_info structures store pointers to 
+ * swig_cast_info structures and swig_cast_info structures store pointers back
+ * to swig_type_info structures, we need some lookup code at initialization. 
+ * The idea is that swig generates all the structures that are needed. 
+ * The runtime then collects these partially filled structures. 
+ * The SWIG_InitializeModule function takes these initial arrays out of 
+ * swig_module, and does all the lookup, filling in the swig_module.types
+ * array with the correct data and linking the correct swig_cast_info
+ * structures together.
+ *
+ * The generated swig_type_info structures are assigned staticly to an initial 
+ * array. We just loop through that array, and handle each type individually.
+ * First we lookup if this type has been already loaded, and if so, use the
+ * loaded structure instead of the generated one. Then we have to fill in the
+ * cast linked list. The cast data is initially stored in something like a
+ * two-dimensional array. Each row corresponds to a type (there are the same
+ * number of rows as there are in the swig_type_initial array). Each entry in
+ * a column is one of the swig_cast_info structures for that type.
+ * The cast_initial array is actually an array of arrays, because each row has
+ * a variable number of columns. So to actually build the cast linked list,
+ * we find the array of casts associated with the type, and loop through it 
+ * adding the casts to the list. The one last trick we need to do is making
+ * sure the type pointer in the swig_cast_info struct is correct.
+ *
+ * First off, we lookup the cast-&gt;type name to see if it is already loaded. 
+ * There are three cases to handle:
+ *  1) If the cast-&gt;type has already been loaded AND the type we are adding
+ *     casting info to has not been loaded (it is in this module), THEN we
+ *     replace the cast-&gt;type pointer with the type pointer that has already
+ *     been loaded.
+ *  2) If BOTH types (the one we are adding casting info to, and the 
+ *     cast-&gt;type) are loaded, THEN the cast info has already been loaded by
+ *     the previous module so we just ignore it.
+ *  3) Finally, if cast-&gt;type has not already been loaded, then we add that
+ *     swig_cast_info to the linked list (because the cast-&gt;type) pointer will
+ *     be correct.
+ * ----------------------------------------------------------------------------- */
+
+#ifdef __cplusplus
+extern &quot;C&quot; {
+#if 0
+} /* c-mode */
+#endif
+#endif
+
+#if 0
+#define SWIGRUNTIME_DEBUG
+#endif
+
+
+SWIGRUNTIME void
+SWIG_InitializeModule(void *clientdata) {
+  size_t i;
+  swig_module_info *module_head, *iter;
+  int found, init;
+  
+  clientdata = clientdata;
+  
+  /* check to see if the circular list has been setup, if not, set it up */
+  if (swig_module.next==0) {
+    /* Initialize the swig_module */
+    swig_module.type_initial = swig_type_initial;
+    swig_module.cast_initial = swig_cast_initial;
+    swig_module.next = &amp;swig_module;
+    init = 1;
+  } else {
+    init = 0;
+  }
+  
+  /* Try and load any already created modules */
+  module_head = SWIG_GetModule(clientdata);
+  if (!module_head) {
+    /* This is the first module loaded for this interpreter */
+    /* so set the swig module into the interpreter */
+    SWIG_SetModule(clientdata, &amp;swig_module);
+    module_head = &amp;swig_module;
+  } else {
+    /* the interpreter has loaded a SWIG module, but has it loaded this one? */
+    found=0;
+    iter=module_head;
+    do {
+      if (iter==&amp;swig_module) {
+        found=1;
+        break;
+      }
+      iter=iter-&gt;next;
+    } while (iter!= module_head);
+    
+    /* if the is found in the list, then all is done and we may leave */
+    if (found) return;
+    /* otherwise we must add out module into the list */
+    swig_module.next = module_head-&gt;next;
+    module_head-&gt;next = &amp;swig_module;
+  }
+  
+  /* When multiple interpeters are used, a module could have already been initialized in
+       a different interpreter, but not yet have a pointer in this interpreter.
+       In this case, we do not want to continue adding types... everything should be
+       set up already */
+  if (init == 0) return;
+  
+  /* Now work on filling in swig_module.types */
+#ifdef SWIGRUNTIME_DEBUG
+  printf(&quot;SWIG_InitializeModule: size %d\n&quot;, swig_module.size);
+#endif
+  for (i = 0; i &lt; swig_module.size; ++i) {
+    swig_type_info *type = 0;
+    swig_type_info *ret;
+    swig_cast_info *cast;
+    
+#ifdef SWIGRUNTIME_DEBUG
+    printf(&quot;SWIG_InitializeModule: type %d %s\n&quot;, i, swig_module.type_initial[i]-&gt;name);
+#endif
+    
+    /* if there is another module already loaded */
+    if (swig_module.next != &amp;swig_module) {
+      type = SWIG_MangledTypeQueryModule(swig_module.next, &amp;swig_module, swig_module.type_initial[i]-&gt;name);
+    }
+    if (type) {
+      /* Overwrite clientdata field */
+#ifdef SWIGRUNTIME_DEBUG
+      printf(&quot;SWIG_InitializeModule: found type %s\n&quot;, type-&gt;name);
+#endif
+      if (swig_module.type_initial[i]-&gt;clientdata) {
+        type-&gt;clientdata = swig_module.type_initial[i]-&gt;clientdata;
+#ifdef SWIGRUNTIME_DEBUG
+        printf(&quot;SWIG_InitializeModule: found and overwrite type %s \n&quot;, type-&gt;name);
+#endif
+      }
+    } else {
+      type = swig_module.type_initial[i];
+    }
+    
+    /* Insert casting types */
+    cast = swig_module.cast_initial[i];
+    while (cast-&gt;type) {
+      /* Don't need to add information already in the list */
+      ret = 0;
+#ifdef SWIGRUNTIME_DEBUG
+      printf(&quot;SWIG_InitializeModule: look cast %s\n&quot;, cast-&gt;type-&gt;name);
+#endif
+      if (swig_module.next != &amp;swig_module) {
+        ret = SWIG_MangledTypeQueryModule(swig_module.next, &amp;swig_module, cast-&gt;type-&gt;name);
+#ifdef SWIGRUNTIME_DEBUG
+        if (ret) printf(&quot;SWIG_InitializeModule: found cast %s\n&quot;, ret-&gt;name);
+#endif
+      }
+      if (ret) {
+        if (type == swig_module.type_initial[i]) {
+#ifdef SWIGRUNTIME_DEBUG
+          printf(&quot;SWIG_InitializeModule: skip old type %s\n&quot;, ret-&gt;name);
+#endif
+          cast-&gt;type = ret;
+          ret = 0;
+        } else {
+          /* Check for casting already in the list */
+          swig_cast_info *ocast = SWIG_TypeCheck(ret-&gt;name, type);
+#ifdef SWIGRUNTIME_DEBUG
+          if (ocast) printf(&quot;SWIG_InitializeModule: skip old cast %s\n&quot;, ret-&gt;name);
+#endif
+          if (!ocast) ret = 0;
+        }
+      }
+      
+      if (!ret) {
+#ifdef SWIGRUNTIME_DEBUG
+        printf(&quot;SWIG_InitializeModule: adding cast %s\n&quot;, cast-&gt;type-&gt;name);
+#endif
+        if (type-&gt;cast) {
+          type-&gt;cast-&gt;prev = cast;
+          cast-&gt;next = type-&gt;cast;
+        }
+        type-&gt;cast = cast;
+      }
+      cast++;
+    }
+    /* Set entry in modules-&gt;types array equal to the type */
+    swig_module.types[i] = type;
+  }
+  swig_module.types[i] = 0;
+  
+#ifdef SWIGRUNTIME_DEBUG
+  printf(&quot;**** SWIG_InitializeModule: Cast List ******\n&quot;);
+  for (i = 0; i &lt; swig_module.size; ++i) {
+    int j = 0;
+    swig_cast_info *cast = swig_module.cast_initial[i];
+    printf(&quot;SWIG_InitializeModule: type %d %s\n&quot;, i, swig_module.type_initial[i]-&gt;name);
+    while (cast-&gt;type) {
+      printf(&quot;SWIG_InitializeModule: cast type %s\n&quot;, cast-&gt;type-&gt;name);
+      cast++;
+      ++j;
+    }
+    printf(&quot;---- Total casts: %d\n&quot;,j);
+  }
+  printf(&quot;**** SWIG_InitializeModule: Cast List ******\n&quot;);
+#endif
+}
+
+/* This function will propagate the clientdata field of type to
+* any new swig_type_info structures that have been added into the list
+* of equivalent types.  It is like calling
+* SWIG_TypeClientData(type, clientdata) a second time.
+*/
+SWIGRUNTIME void
+SWIG_PropagateClientData(void) {
+  size_t i;
+  swig_cast_info *equiv;
+  static int init_run = 0;
+  
+  if (init_run) return;
+  init_run = 1;
+  
+  for (i = 0; i &lt; swig_module.size; i++) {
+    if (swig_module.types[i]-&gt;clientdata) {
+      equiv = swig_module.types[i]-&gt;cast;
+      while (equiv) {
+        if (!equiv-&gt;converter) {
+          if (equiv-&gt;type &amp;&amp; !equiv-&gt;type-&gt;clientdata)
+          SWIG_TypeClientData(equiv-&gt;type, swig_module.types[i]-&gt;clientdata);
+        }
+        equiv = equiv-&gt;next;
+      }
+    }
+  }
+}
+
+#ifdef __cplusplus
+#if 0
+{
+  /* c-mode */
+#endif
+}
+#endif
+
+
+#ifdef __cplusplus
+extern &quot;C&quot; {
+#endif
+  
+  /* -----------------------------------------------------------------------------
+   * constants/methods manipulation
+   * ----------------------------------------------------------------------------- */
+  
+  /* Install Constants */
+  
+  SWIGINTERN void
+  SWIG_Tcl_InstallConstants(Tcl_Interp *interp, swig_const_info constants[]) {
+    int i;
+    Tcl_Obj *obj;
+    
+    if (!swigconstTableinit) {
+      Tcl_InitHashTable(&amp;swigconstTable, TCL_STRING_KEYS);
+      swigconstTableinit = 1;
+    }
+    for (i = 0; constants[i].type; i++) {
+      switch(constants[i].type) {
+      case SWIG_TCL_POINTER:
+        obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
+        break;
+      case SWIG_TCL_BINARY:
+        obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
+        break;
+      default:
+        obj = 0;
+        break;
+      }
+      if (obj) {
+        SWIG_Tcl_SetConstantObj(interp, constants[i].name, obj);
+      }
+    }
+  }
+  
+#ifdef __cplusplus
+}
+#endif
+
+/* -----------------------------------------------------------------------------*
+ *  Partial Init method
+ * -----------------------------------------------------------------------------*/
+
+SWIGEXPORT int SWIG_init(Tcl_Interp *interp) {
+  int i;
+  if (interp == 0) return TCL_ERROR;
+#ifdef USE_TCL_STUBS
+  if (Tcl_InitStubs(interp, (char*)&quot;8.1&quot;, 0) == NULL) {
+    return TCL_ERROR;
+  }
+#endif  
+  Tcl_PkgProvide(interp, (char*)SWIG_name, (char*)SWIG_version);
+  
+#ifdef SWIG_namespace
+  Tcl_Eval(interp, &quot;namespace eval &quot; SWIG_namespace &quot; { }&quot;);
+#endif
+  
+  SWIG_InitializeModule((void *) interp);
+  SWIG_PropagateClientData();
+  
+  for (i = 0; swig_commands[i].name; i++) {
+    Tcl_CreateObjCommand(interp, (char *) swig_commands[i].name, (swig_wrapper_func) swig_commands[i].wrapper,
+      swig_commands[i].clientdata, NULL);
+  }
+  for (i = 0; swig_variables[i].name; i++) {
+    Tcl_SetVar(interp, (char *) swig_variables[i].name, (char *) &quot;&quot;, TCL_GLOBAL_ONLY);
+    Tcl_TraceVar(interp, (char *) swig_variables[i].name, TCL_TRACE_READS | TCL_GLOBAL_ONLY, 
+      (Tcl_VarTraceProc *) swig_variables[i].get, (ClientData) swig_variables[i].addr);
+    Tcl_TraceVar(interp, (char *) swig_variables[i].name, TCL_TRACE_WRITES | TCL_GLOBAL_ONLY, 
+      (Tcl_VarTraceProc *) swig_variables[i].set, (ClientData) swig_variables[i].addr);
+  }
+  
+  SWIG_Tcl_InstallConstants(interp, swig_constants);
+  
+  
+  return TCL_OK;
+}
+SWIGEXPORT int Esl_SafeInit(Tcl_Interp *interp) {
+  return SWIG_init(interp);
+}
+
</ins></span></pre>
</div>
</div>
<div id="footer">See you at ClueCon</div>

</body>
</html>