<!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>[145259] trunk/dports/python/py-spyder-devel</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">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/145259">145259</a></dd>
<dt>Author</dt> <dd>eborisch@macports.org</dd>
<dt>Date</dt> <dd>2016-01-29 15:52:42 -0800 (Fri, 29 Jan 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>py-spyder-devel: Move to github; update to 3.0.0b2; add +qt5 variant.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportspythonpyspyderdevelPortfile">trunk/dports/python/py-spyder-devel/Portfile</a></li>
<li><a href="#trunkdportspythonpyspyderdevelfilespatchwidgetspylintguipydiff">trunk/dports/python/py-spyder-devel/files/patch-widgets-pylintgui.py.diff</a></li>
<li><a href="#trunkdportspythonpyspyderdevelfilesspyderlib_baseconfigpydiff">trunk/dports/python/py-spyder-devel/files/spyderlib_baseconfig.py.diff</a></li>
<li><a href="#trunkdportspythonpyspyderdevelfilesspyderlib_start_apppydiff">trunk/dports/python/py-spyder-devel/files/spyderlib_start_app.py.diff</a></li>
<li><a href="#trunkdportspythonpyspyderdevelfilesspyderlib_utils_programspydiff">trunk/dports/python/py-spyder-devel/files/spyderlib_utils_programs.py.diff</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportspythonpyspyderdevelPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/python/py-spyder-devel/Portfile (145258 => 145259)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/python/py-spyder-devel/Portfile        2016-01-29 23:35:54 UTC (rev 145258)
+++ trunk/dports/python/py-spyder-devel/Portfile        2016-01-29 23:52:42 UTC (rev 145259)
</span><span class="lines">@@ -2,8 +2,10 @@
</span><span class="cx"> # $Id$
</span><span class="cx"> 
</span><span class="cx"> PortSystem          1.0
</span><ins>+PortGroup           github 1.0
+
+github.setup        spyder-ide spyder 3.0.0b2 v
</ins><span class="cx"> name                py-spyder-devel
</span><del>-version             2.3.4
</del><span class="cx"> revision            0
</span><span class="cx"> # Preference on mailing list is to use small numbers for epoch.
</span><span class="cx"> # This is already a date code, so sticking with dates.
</span><span class="lines">@@ -13,7 +15,6 @@
</span><span class="cx"> 
</span><span class="cx"> python.versions     27 34 35
</span><span class="cx"> 
</span><del>-PortGroup           qt4 1.0
</del><span class="cx"> categories-append   devel
</span><span class="cx"> platforms           darwin
</span><span class="cx"> maintainers         eborisch openmaintainer
</span><span class="lines">@@ -32,9 +33,6 @@
</span><span class="cx">                     development environment with advanced editing, \
</span><span class="cx">                     interactive testing, debugging and introspection features.
</span><span class="cx"> 
</span><del>-master_sites        https://bitbucket.org/spyder-ide/spyderlib/downloads
-distname            spyder-${version}
-use_zip             yes
</del><span class="cx"> supported_archs     noarch
</span><span class="cx"> 
</span><span class="cx"> #pyNN-scipy doesn't build universal
</span><span class="lines">@@ -42,11 +40,19 @@
</span><span class="cx"> 
</span><span class="cx"> if {${name} ne ${subport}} {
</span><span class="cx">     checksums \
</span><del>-        rmd160  dd274f122189fe5f2e4a7c7c34799bc13e6a88c6 \
-        sha256  da4b13d6faed3e8810c0418f8274b26fde4f265ea4f93bee154af128a755c184
</del><ins>+        rmd160  e35eed3debe141c610346a5fb2fd0a2e49c2361d \
+        sha256  60353e331547f2a1c4bec31df487525e3cac04a4f942f86dc650a32a6d000afa
</ins><span class="cx"> 
</span><span class="cx">     conflicts           py${python.version}-spyder
</span><del>-    
</del><ins>+
+    # Will *work* with either/both under the hood, but for dependencies,
+    # provide variants to determine what we label depends_lib.
+
+    variant qt5 description {Default to Qt5 GUI.} {
+        depends_lib-delete  port:py${python.version}-pyqt4
+        depends_lib-append  port:py${python.version}-pyqt5
+    }
+
</ins><span class="cx">     # Set the pylint executable name
</span><span class="cx">     set LINT_BIN_NAME   pylint-${python.branch}
</span><span class="cx">     set WINPDB_BIN_NAME winpdb-${python.branch}
</span><span class="lines">@@ -61,7 +67,7 @@
</span><span class="cx">         reinplace &quot;s|@@WINPDB_BIN_NAME@@|${WINPDB_BIN_NAME}|g&quot; \
</span><span class="cx">             ${worksrcpath}/spyderlib/plugins/editor.py
</span><span class="cx">         reinplace &quot;s|@@LINT_BIN_NAME@@|${LINT_BIN_NAME}|g&quot; \
</span><del>-            ${worksrcpath}/spyderplugins/widgets/pylintgui.py
</del><ins>+            ${worksrcpath}/spyplugins/ui/pylint/widgets/pylintgui.py
</ins><span class="cx">         reinplace &quot;s|\&quot;assistant\&quot;|\&quot;Assistant\&quot;|g&quot; \
</span><span class="cx">             ${worksrcpath}/spyderlib/spyder.py
</span><span class="cx">         reinplace &quot;s|\&quot;linguist\&quot;|\&quot;Linguist\&quot;|g&quot; \
</span><span class="lines">@@ -70,21 +76,31 @@
</span><span class="cx">             ${worksrcpath}/spyderlib/spyder.py
</span><span class="cx">         reinplace &quot;s|@@PREFIX@@|${prefix}|g&quot; \
</span><span class="cx">             ${worksrcpath}/spyderlib/spyder.py
</span><del>-        reinplace &quot;s|@@APPS_DIR@@|${applications_dir}|g&quot; \
-            ${worksrcpath}/spyderlib/utils/programs.py
</del><span class="cx">         reinplace &quot;s|Ctrl\+I|Cmd+I|&quot; \
</span><span class="cx">             ${worksrcpath}/spyderlib/plugins/inspector.py
</span><del>-        # Windows newlines in the file cause compile() (in 2.6) to choke
-        reinplace &quot;s|\r||g&quot; \
-            ${worksrcpath}/doc/conf.py
</del><ins>+        reinplace -E &quot;s|IPython\.qt(\.console)?|qtconsole|g&quot; \
+            ${worksrcpath}/spyderlib/config/ipython.py \
+            ${worksrcpath}/spyderlib/plugins/ipythonconsole.py \
+            ${worksrcpath}/spyderlib/widgets/ipython.py
+        if {[variant_isset qt5]} {
+            reinplace &quot;s|@@APPS_DIR@@|${applications_dir}/Qt5|g&quot; \
+                ${worksrcpath}/spyderlib/utils/programs.py
+            reinplace -E &quot;/setdefault/s/pyqt/pyqt5/&quot; spyderlib/qt/__init__.py
+        } else {
+            reinplace &quot;s|@@APPS_DIR@@|${applications_dir}/Qt4|g&quot; \
+                ${worksrcpath}/spyderlib/utils/programs.py
+        }
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    # Can use either py*-pyqt4 or py*-pyqt4-devel.
</del><span class="cx">     # Bare minimum
</span><span class="cx">     depends_lib-append  \
</span><del>-        path:share/py${python.version}-sip/PyQt4:py${python.version}-pyqt4 \
</del><span class="cx">         port:py${python.version}-sphinx \
</span><del>-        port:py${python.version}-zmq
</del><ins>+        port:py${python.version}-zmq \
+        port:py${python.version}-qtpy \
+        port:py${python.version}-qtawesome \
+        port:py${python.version}-pickleshare \
+        port:py${python.version}-path \
+        port:py${python.version}-pyqt4
</ins><span class="cx"> 
</span><span class="cx">     depends_build-append \
</span><span class="cx">         port:GraphicsMagick
</span><span class="lines">@@ -103,17 +119,16 @@
</span><span class="cx">         patchfiles-append   no_AA.diff
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    variant optimized description {Create .pyo files. Fails on BuildBot.} {
-    }
-
</del><span class="cx">     # These add very little to the install time
</span><span class="cx">     if {![ variant_isset tiny ]} {
</span><span class="cx">         depends_lib-append \
</span><del>-            port:py${python.version}-htmldocs \
</del><span class="cx">             port:py${python.version}-pylint \
</span><span class="cx">             path:${python.pkgd}/pep8:py${python.version}-pep8-157 \
</span><span class="cx">             port:py${python.version}-pyflakes \
</span><del>-            port:py${python.version}-rope
</del><ins>+            port:py${python.version}-rope \
+            port:py${python.version}-psutil
+        # Until spyder supports jedi &gt;= 0.9.0, this doesn't do anything
+        #    port:py${python.version}-jedi
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     # These add substantially to the install time
</span><span class="lines">@@ -121,11 +136,21 @@
</span><span class="cx">         ![ variant_isset tiny  ] } {
</span><span class="cx">         depends_lib-append \
</span><span class="cx">             path:${python.pkgd}/h5py/__init__.py:py${python.version}-h5py \
</span><del>-            port:py${python.version}-ipython \
</del><ins>+            port:py${python.version}-qtconsole \
</ins><span class="cx">             port:py${python.version}-matplotlib \
</span><del>-            port:py${python.version}-scipy
</del><ins>+            port:py${python.version}-scipy \
+            port:py${python.version}-nbconvert \
+            port:py${python.version}-pandas \
+            port:py${python.version}-sympy
</ins><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    variant docs description {Include python and Qt offline documentation.} {
+        if {[variant_isset qt5]} {
+            depends_lib-append  port:qt5-docs
+        }
+        depends_lib-append  port:py${python.version}-htmldocs
+    }
+
</ins><span class="cx">     variant pil description {
</span><span class="cx">            Support image objects in editor through PIL or Pillow (many dependencies.)
</span><span class="cx">     } {
</span><span class="lines">@@ -147,18 +172,13 @@
</span><span class="cx">         system -W ${destroot}${prefix} \
</span><span class="cx">             &quot;find . -name *.png -print0 | xargs -0 gm mogrify -strip&quot;
</span><span class="cx">         
</span><del>-        if {[variant_isset optimized]} {
-            set OPTCMD    [concat &quot;HOME=${destroot}/tmp/spyder &quot;  \
-                           &quot;PYTHONPATH=${destroot}${python.pkgd} &quot;  \
-                           &quot;./spyder --optimize&quot;]
-            
-            file mkdir ${destroot}/tmp/spyder
-            system &quot;cd ${destroot}${python.prefix}/bin &amp;&amp; ${OPTCMD}&quot;
-            delete ${destroot}/tmp/spyder
-        }
</del><span class="cx">         delete \
</span><span class="cx">           ${destroot}${prefix}/bin/spyder_win_post_install.py-${python.branch}
</span><span class="cx">         delete ${destroot}${python.prefix}/bin/spyder_win_post_install.py
</span><ins>+
+        file mkdir ${destroot}${prefix}/share/doc/${subport}
+        copy ${worksrcpath}/LICENSE \
+            ${destroot}${prefix}/share/doc/${subport}
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if {${python.version} == ${python.default_version}} {
</span><span class="lines">@@ -172,8 +192,9 @@
</span><span class="cx"> ##############################################################
</span><span class="cx"> ### Spyder is launched from the terminal with ${EXENAME} ###
</span><span class="cx"> ##############################################################&quot;
</span><ins>+    livecheck.type      none
+} else {
+    livecheck.type      regex
+    livecheck.url       https://bitbucket.org/spyder-ide/spyderlib/downloads
+    livecheck.regex     spyder-(\[0-9\]+(\.\[0-9betarc]+)*)\.zip
</ins><span class="cx"> }
</span><del>-
-livecheck.type      regex
-livecheck.url       https://bitbucket.org/spyder-ide/spyderlib/downloads
-livecheck.regex     spyder-(\[0-9\]+(\.\[0-9betarc]+)*)\.zip
</del></span></pre></div>
<a id="trunkdportspythonpyspyderdevelfilespatchwidgetspylintguipydiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/python/py-spyder-devel/files/patch-widgets-pylintgui.py.diff (145258 => 145259)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/python/py-spyder-devel/files/patch-widgets-pylintgui.py.diff        2016-01-29 23:35:54 UTC (rev 145258)
+++ trunk/dports/python/py-spyder-devel/files/patch-widgets-pylintgui.py.diff        2016-01-29 23:52:42 UTC (rev 145259)
</span><span class="lines">@@ -1,11 +1,19 @@
</span><del>---- spyderplugins/widgets/pylintgui.py.orig        2011-09-08 08:45:35.000000000 -0500
-+++ spyderplugins/widgets/pylintgui.py        2011-09-08 08:46:52.000000000 -0500
-@@ -40,7 +40,7 @@
-                                           is_module_or_package)
</del><ins>+--- spyplugins/ui/pylint/widgets/pylintgui.py.orig        2015-06-23 09:49:01.000000000 -0500
++++ spyplugins/ui/pylint/widgets/pylintgui.py        2015-06-23 09:49:31.000000000 -0500
+@@ -40,14 +40,8 @@
</ins><span class="cx">  _ = get_translation(&quot;p_pylint&quot;, dirname=&quot;spyderplugins&quot;)
</span><span class="cx">  
</span><del>--PYLINT_PATH = programs.find_program('pylint')
</del><ins>+ 
+-PYLINT = 'pylint'
+-if PY3:
+-    if programs.find_program('pylint3'):
+-        PYLINT = 'pylint3'
+-    elif programs.find_program('python3-pylint'):
+-        PYLINT = 'python3-pylint'
+-
+-PYLINT_PATH = programs.find_program(PYLINT)
++PYLINT = '@@LINT_BIN_NAME@@'
</ins><span class="cx"> +PYLINT_PATH = programs.find_program('@@LINT_BIN_NAME@@')
</span><span class="cx">  
</span><span class="cx">  
</span><del>- #TODO: display results on 3 columns instead of 1: msg_id, lineno, message
</del><ins>+ def get_pylint_version():
</ins></span></pre></div>
<a id="trunkdportspythonpyspyderdevelfilesspyderlib_baseconfigpydiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/python/py-spyder-devel/files/spyderlib_baseconfig.py.diff (145258 => 145259)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/python/py-spyder-devel/files/spyderlib_baseconfig.py.diff        2016-01-29 23:35:54 UTC (rev 145258)
+++ trunk/dports/python/py-spyder-devel/files/spyderlib_baseconfig.py.diff        2016-01-29 23:52:42 UTC (rev 145259)
</span><span class="lines">@@ -1,10 +1,18 @@
</span><del>---- spyderlib/baseconfig.py.orig        2013-10-21 08:43:46.000000000 -0500
-+++ spyderlib/baseconfig.py        2013-10-21 08:44:24.000000000 -0500
-@@ -60,7 +60,9 @@
- #==============================================================================
- # Spyder settings dir
</del><ins>+--- spyderlib/config/base.py.orig        2015-06-23 10:06:48.000000000 -0500
++++ spyderlib/config/base.py        2015-06-23 10:08:03.000000000 -0500
+@@ -21,6 +21,7 @@
+ import sys

+ # Local imports
++from spyderlib import __version__
+ from spyderlib.utils import encoding
+ from spyderlib.py3compat import (is_unicode, TEXT_TYPES, INT_TYPES, PY3,
+                                  to_text_string, is_text_string)
+@@ -72,7 +73,9 @@
+ # updates in version (required when we change APIs by Linux
+ # packagers)
</ins><span class="cx">  if TEST is None:
</span><del>--    SUBFOLDER = '.spyder%s' % __version__.split('.')[0]
</del><ins>+-    SUBFOLDER = '.spyder'
</ins><span class="cx"> +    SUBFOLDER = '.spyder%s-%s%s' % (__version__.split('.')[0],
</span><span class="cx"> +                                    sys.version_info[0],
</span><span class="cx"> +                                    sys.version_info[1])
</span></span></pre></div>
<a id="trunkdportspythonpyspyderdevelfilesspyderlib_start_apppydiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/python/py-spyder-devel/files/spyderlib_start_app.py.diff (145258 => 145259)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/python/py-spyder-devel/files/spyderlib_start_app.py.diff        2016-01-29 23:35:54 UTC (rev 145258)
+++ trunk/dports/python/py-spyder-devel/files/spyderlib_start_app.py.diff        2016-01-29 23:52:42 UTC (rev 145259)
</span><span class="lines">@@ -1,18 +1,12 @@
</span><del>---- spyderlib/start_app.py.orig        2013-11-04 09:51:03.000000000 -0600
-+++ spyderlib/start_app.py        2013-11-04 09:55:55.000000000 -0600
-@@ -8,6 +8,15 @@
</del><ins>+--- spyderlib/start_app.py-orig        2013-10-14 12:43:43.000000000 -0500
++++ spyderlib/start_app.py        2013-10-14 12:45:50.000000000 -0500
+@@ -7,6 +7,9 @@
+ import atexit
</ins><span class="cx">  import random
</span><del>- import sys
</del><span class="cx">  
</span><del>-+# Make sure LANG isn't set to 'UTF-8' (without en_US. prefix)
</del><span class="cx"> +if os.environ.get('LANG') == 'UTF-8':
</span><del>-+    os.environ['LANG'] = 'en_US.UTF-8'
</del><ins>++  os.environ['LANG'] = 'en_US.UTF-8'
</ins><span class="cx"> +
</span><del>-+# Modified to support MacPorts' buildbot environment
-+username = os.environ.get('USER')
-+if not username:
-+    os.environ['USER'] = 'NO_USER_ENV'
-+
</del><span class="cx">  # Local imports
</span><span class="cx">  from spyderlib.cli_options import get_options
</span><span class="cx">  from spyderlib.baseconfig import get_conf_path
</span></span></pre></div>
<a id="trunkdportspythonpyspyderdevelfilesspyderlib_utils_programspydiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/python/py-spyder-devel/files/spyderlib_utils_programs.py.diff (145258 => 145259)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/python/py-spyder-devel/files/spyderlib_utils_programs.py.diff        2016-01-29 23:35:54 UTC (rev 145258)
+++ trunk/dports/python/py-spyder-devel/files/spyderlib_utils_programs.py.diff        2016-01-29 23:52:42 UTC (rev 145259)
</span><span class="lines">@@ -1,13 +1,14 @@
</span><span class="cx"> --- spyderlib/utils/programs.py.orig        2011-10-12 11:06:09.000000000 -0500
</span><span class="cx"> +++ spyderlib/utils/programs.py        2011-10-12 11:07:28.000000000 -0500
</span><del>-@@ -20,6 +20,10 @@
</del><ins>+@@ -20,6 +20,11 @@
</ins><span class="cx">          abspath = osp.join(path, basename)
</span><span class="cx">          if osp.isfile(abspath):
</span><span class="cx">              return abspath
</span><del>-+        else:
-+            abspath = &quot;@@APPS_DIR@@/Qt4/&quot; + basename + &quot;.app/Contents/MacOS/&quot; + basename
-+            if osp.isfile(abspath):
-+                return abspath
</del><ins>++    else:
++        abspath = &quot;@@APPS_DIR@@/&quot; + basename + &quot;.app/Contents/MacOS/&quot; + basename
++        if osp.isfile(abspath):
++            return abspath
++    return None
</ins><span class="cx">  
</span><span class="cx">  
</span><span class="cx">  def find_program(basename):
</span></span></pre>
</div>
</div>

</body>
</html>