You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ORPA-pyOpenRPA/Wiki/RUS_Guide/html/Agent/02_Defs.html

410 lines
23 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html class="writer-html5" lang="ru" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>2. Defs &mdash; документация pyOpenRPA v1.2.12 v1.2.12</title>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/translations.js"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<link rel="index" title="Алфавитный указатель" href="../genindex.html" />
<link rel="search" title="Поиск" href="../search.html" />
<link rel="next" title="2. Defs StopSafe" href="../Tools/02_Defs.html" />
<link rel="prev" title="6. Defs Managers" href="../Orchestrator/06_Defs%20Managers.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> pyOpenRPA v1.2.12
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Поиск в документации" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">ОБЩЕЕ</span></p>
<ul>
<li class="toctree-l1"><a class="reference external" href="https://pyopenrpa.ru/wiki/guide/index">Выбрать версию</a></li>
<li class="toctree-l1"><a class="reference internal" href="../01_HowToInstall.html">1. Первый запуск</a></li>
<li class="toctree-l1"><a class="reference internal" href="../03_Copyrights_Contacts.html">2. Права &amp; Контакты</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ РОБОТ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Robot/01_Robot.html">1. Описание</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/02_Defs.html">2. Функции</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/03_HowToUse.html">3. Как использовать?</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Robot/04_Dependencies.html">4. Зависимости</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ СТУДИЯ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Studio/01_Studio.html">1. Описание</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Studio/02_HowToUse.html">2. Как использовать?</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ ОРКЕСТРАТОР</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/01_Orchestrator.html">1. Description</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/02_Defs.html">2. Defs</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/03_gSettingsTemplate.html">3. gSettings Template</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/04_HowToUse.html">4. How to use</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/05_UAC.html">5. UAC - User Access Control</a></li>
<li class="toctree-l1"><a class="reference internal" href="../Orchestrator/06_Defs%20Managers.html">6. Defs Managers</a></li>
</ul>
<p class="caption"><span class="caption-text">МОДУЛЬ АГЕНТ</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">2. Defs</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#module-pyOpenRPA.Agent.__Agent__">pyOpenRPA.Agent.__Agent__</a></li>
<li class="toctree-l2"><a class="reference internal" href="#references">References</a></li>
</ul>
</li>
</ul>
<p class="caption"><span class="caption-text">ИНСТРУМЕНТЫ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../Tools/02_Defs.html">2. Defs StopSafe</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">pyOpenRPA v1.2.12</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>2. Defs</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/Agent/02_Defs.rst.txt" rel="nofollow"> Просмотреть исходный код страницы</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="defs">
<h1>2. Defs<a class="headerlink" href="#defs" title="Ссылка на этот заголовок"></a></h1>
<div class="section" id="module-pyOpenRPA.Agent.__Agent__">
<span id="pyopenrpa-agent-agent"></span><h2>pyOpenRPA.Agent.__Agent__<a class="headerlink" href="#module-pyOpenRPA.Agent.__Agent__" title="Ссылка на этот заголовок"></a></h2>
<p><strong>Functions:</strong></p>
<table class="longtable docutils align-default">
<colgroup>
<col style="width: 10%" />
<col style="width: 90%" />
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Agent.__Agent__.OSCMD" title="pyOpenRPA.Agent.__Agent__.OSCMD"><code class="xref py py-obj docutils literal notranslate"><span class="pre">OSCMD</span></code></a>(inCMDStr[, inRunAsyncBool, …])</p></td>
<td><p>Execute CMD on the Agent daemonic process</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Agent.__Agent__.OSFileBinaryDataBase64StrAppend" title="pyOpenRPA.Agent.__Agent__.OSFileBinaryDataBase64StrAppend"><code class="xref py py-obj docutils literal notranslate"><span class="pre">OSFileBinaryDataBase64StrAppend</span></code></a>(…[, …])</p></td>
<td><p>Create binary file by the base64 string (safe for JSON transmition)</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Agent.__Agent__.OSFileBinaryDataBase64StrCreate" title="pyOpenRPA.Agent.__Agent__.OSFileBinaryDataBase64StrCreate"><code class="xref py py-obj docutils literal notranslate"><span class="pre">OSFileBinaryDataBase64StrCreate</span></code></a>(…[, …])</p></td>
<td><p>Create binary file by the base64 string (safe for JSON transmition)</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Agent.__Agent__.OSFileBinaryDataBase64StrReceive" title="pyOpenRPA.Agent.__Agent__.OSFileBinaryDataBase64StrReceive"><code class="xref py py-obj docutils literal notranslate"><span class="pre">OSFileBinaryDataBase64StrReceive</span></code></a>(inFilePathStr)</p></td>
<td><p>Read binary file and encode in base64 to transmit (safe for JSON transmition)</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Agent.__Agent__.OSFileMTimeGet" title="pyOpenRPA.Agent.__Agent__.OSFileMTimeGet"><code class="xref py py-obj docutils literal notranslate"><span class="pre">OSFileMTimeGet</span></code></a>(inFilePathStr)</p></td>
<td><p>Read file modification time timestamp format (float)</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Agent.__Agent__.OSFileTextDataStrCreate" title="pyOpenRPA.Agent.__Agent__.OSFileTextDataStrCreate"><code class="xref py py-obj docutils literal notranslate"><span class="pre">OSFileTextDataStrCreate</span></code></a>(inFilePathStr, …)</p></td>
<td><p>Create text file in the agent GUI session</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#pyOpenRPA.Agent.__Agent__.OSFileTextDataStrReceive" title="pyOpenRPA.Agent.__Agent__.OSFileTextDataStrReceive"><code class="xref py py-obj docutils literal notranslate"><span class="pre">OSFileTextDataStrReceive</span></code></a>(inFilePathStr[, …])</p></td>
<td><p>Read text file in the agent GUI session</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#pyOpenRPA.Agent.__Agent__.ProcessWOExeUpperUserListGet" title="pyOpenRPA.Agent.__Agent__.ProcessWOExeUpperUserListGet"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ProcessWOExeUpperUserListGet</span></code></a>()</p></td>
<td><p>Return the process list only for the current user (where Agent is running) without .EXE in upper case.</p></td>
</tr>
</tbody>
</table>
<dl class="py function">
<dt id="pyOpenRPA.Agent.__Agent__.OSCMD">
<code class="sig-prename descclassname">pyOpenRPA.Agent.__Agent__.</code><code class="sig-name descname">OSCMD</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inCMDStr</span></em>, <em class="sig-param"><span class="n">inRunAsyncBool</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">inGSettings</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">inSendOutputToOrchestratorLogsBool</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">inCMDEncodingStr</span><span class="o">=</span><span class="default_value">'cp1251'</span></em>, <em class="sig-param"><span class="n">inCaptureBool</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Agent/__Agent__.html#OSCMD"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Agent.__Agent__.OSCMD" title="Ссылка на это определение"></a></dt>
<dd><p>Execute CMD on the Agent daemonic process</p>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inCMDStr</strong> command to execute on the Agent session</p></li>
<li><p><strong>inRunAsyncBool</strong> True - Agent processor dont wait execution; False - Agent processor wait cmd execution</p></li>
<li><p><strong>inGSettings</strong> Agent global settings dict</p></li>
<li><p><strong>inSendOutputToOrchestratorLogsBool</strong> True - catch cmd execution output and send it to the Orchestrator logs; Flase - else case; Default True</p></li>
<li><p><strong>inCMDEncodingStr</strong> Set the encoding of the DOS window on the Agent server session. Windows is beautiful :) . Default is «cp1251» early was «cp866» - need test</p></li>
<li><p><strong>inCaptureBool</strong> !ATTENTION! If you need to start absolutely encapsulated app - set this flag as False. If you set True - the app output will come to Agent</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p></p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Agent.__Agent__.OSFileBinaryDataBase64StrAppend">
<code class="sig-prename descclassname">pyOpenRPA.Agent.__Agent__.</code><code class="sig-name descname">OSFileBinaryDataBase64StrAppend</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inFilePathStr</span></em>, <em class="sig-param"><span class="n">inFileDataBase64Str</span></em>, <em class="sig-param"><span class="n">inGSettings</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Agent/__Agent__.html#OSFileBinaryDataBase64StrAppend"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Agent.__Agent__.OSFileBinaryDataBase64StrAppend" title="Ссылка на это определение"></a></dt>
<dd><p>Create binary file by the base64 string (safe for JSON transmition)</p>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Agent.__Agent__.OSFileBinaryDataBase64StrCreate">
<code class="sig-prename descclassname">pyOpenRPA.Agent.__Agent__.</code><code class="sig-name descname">OSFileBinaryDataBase64StrCreate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inFilePathStr</span></em>, <em class="sig-param"><span class="n">inFileDataBase64Str</span></em>, <em class="sig-param"><span class="n">inGSettings</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Agent/__Agent__.html#OSFileBinaryDataBase64StrCreate"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Agent.__Agent__.OSFileBinaryDataBase64StrCreate" title="Ссылка на это определение"></a></dt>
<dd><p>Create binary file by the base64 string (safe for JSON transmition)</p>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Agent.__Agent__.OSFileBinaryDataBase64StrReceive">
<code class="sig-prename descclassname">pyOpenRPA.Agent.__Agent__.</code><code class="sig-name descname">OSFileBinaryDataBase64StrReceive</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inFilePathStr</span></em>, <em class="sig-param"><span class="n">inGSettings</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Agent/__Agent__.html#OSFileBinaryDataBase64StrReceive"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Agent.__Agent__.OSFileBinaryDataBase64StrReceive" title="Ссылка на это определение"></a></dt>
<dd><p>Read binary file and encode in base64 to transmit (safe for JSON transmition)</p>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inFilePathStr</strong> File path to read</p></li>
<li><p><strong>inGSettings</strong> global settings of the Agent (singleton)</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>File content in string base64 format (use base64.b64decode to decode data). Return None if file is not exist</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Agent.__Agent__.OSFileMTimeGet">
<code class="sig-prename descclassname">pyOpenRPA.Agent.__Agent__.</code><code class="sig-name descname">OSFileMTimeGet</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inFilePathStr</span><span class="p">:</span> <span class="n">str</span></em><span class="sig-paren">)</span> &#x2192; float<a class="reference internal" href="../_modules/pyOpenRPA/Agent/__Agent__.html#OSFileMTimeGet"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Agent.__Agent__.OSFileMTimeGet" title="Ссылка на это определение"></a></dt>
<dd><p>Read file modification time timestamp format (float)</p>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><p><strong>inFilePathStr</strong> File path to read</p>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>timestamp (float) Return None if file is not exist</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Agent.__Agent__.OSFileTextDataStrCreate">
<code class="sig-prename descclassname">pyOpenRPA.Agent.__Agent__.</code><code class="sig-name descname">OSFileTextDataStrCreate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inFilePathStr</span></em>, <em class="sig-param"><span class="n">inFileDataStr</span></em>, <em class="sig-param"><span class="n">inEncodingStr</span><span class="o">=</span><span class="default_value">'utf-8'</span></em>, <em class="sig-param"><span class="n">inGSettings</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Agent/__Agent__.html#OSFileTextDataStrCreate"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Agent.__Agent__.OSFileTextDataStrCreate" title="Ссылка на это определение"></a></dt>
<dd><p>Create text file in the agent GUI session</p>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inFilePathStr</strong> File abs path</p></li>
<li><p><strong>inFileDataStr</strong> File data text content</p></li>
<li><p><strong>inEncodingStr</strong> Write file encoding</p></li>
<li><p><strong>inGSettings</strong> global settings of the Agent (singleton)</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p></p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Agent.__Agent__.OSFileTextDataStrReceive">
<code class="sig-prename descclassname">pyOpenRPA.Agent.__Agent__.</code><code class="sig-name descname">OSFileTextDataStrReceive</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inFilePathStr</span></em>, <em class="sig-param"><span class="n">inEncodingStr</span><span class="o">=</span><span class="default_value">'utf-8'</span></em>, <em class="sig-param"><span class="n">inGSettings</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Agent/__Agent__.html#OSFileTextDataStrReceive"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Agent.__Agent__.OSFileTextDataStrReceive" title="Ссылка на это определение"></a></dt>
<dd><p>Read text file in the agent GUI session</p>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inFilePathStr</strong> File abs path</p></li>
<li><p><strong>inEncodingStr</strong> Read file encoding. Default utf-8</p></li>
<li><p><strong>inGSettings</strong> global settings of the Agent (singleton)</p></li>
</ul>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>File text content in string format (use base64.b64decode to decode data). Return None if file is not exist</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="pyOpenRPA.Agent.__Agent__.ProcessWOExeUpperUserListGet">
<code class="sig-prename descclassname">pyOpenRPA.Agent.__Agent__.</code><code class="sig-name descname">ProcessWOExeUpperUserListGet</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/pyOpenRPA/Agent/__Agent__.html#ProcessWOExeUpperUserListGet"><span class="viewcode-link">[исходный код]</span></a><a class="headerlink" href="#pyOpenRPA.Agent.__Agent__.ProcessWOExeUpperUserListGet" title="Ссылка на это определение"></a></dt>
<dd><p>Return the process list only for the current user (where Agent is running) without .EXE in upper case. Can use in ActivityItem from Orchestrator to Agent</p>
<dl class="field-list simple">
<dt class="field-odd">Параметры</dt>
<dd class="field-odd"><p><strong>inProcessNameWOExeList</strong> </p>
</dd>
<dt class="field-even">Результат</dt>
<dd class="field-even"><p>list of the agent user process in upper case without .EXE. Example [«NOTEPAD»,»…»],</p>
</dd>
</dl>
</dd></dl>
</div>
<div class="section" id="references">
<h2>References<a class="headerlink" href="#references" title="Ссылка на этот заголовок"></a></h2>
<p><a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> <a class="footnote-reference brackets" href="#id3" id="id4">1</a></p>
<dl class="footnote brackets">
<dt class="label" id="id3"><span class="brackets"><a class="fn-backref" href="#id4">1</a></span></dt>
<dd><p><a class="reference external" href="http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
</dd>
</dl>
<p> .. v1.2.12 replace:: v1.2.12
.. <a href="#id1"><span class="problematic" id="id2">|author|</span></a> replace:: Ivan Maslov &lt;<a class="reference external" href="mailto:ivan&#46;maslov&#37;&#52;&#48;unicodelabs&#46;ru">ivan<span>&#46;</span>maslov<span>&#64;</span>unicodelabs<span>&#46;</span>ru</a>&gt;</p>
<p></p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="../Tools/02_Defs.html" class="btn btn-neutral float-right" title="2. Defs StopSafe" accesskey="n" rel="next">Следующая <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="../Orchestrator/06_Defs%20Managers.html" class="btn btn-neutral float-left" title="6. Defs Managers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Предыдущая</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&#169; Copyright 2022, ООО &#34;ОПЕН РПА&#34;.
</p>
</div>
Собрано при помощи <a href="https://www.sphinx-doc.org/">Sphinx</a> с использованием
<a href="https://github.com/readthedocs/sphinx_rtd_theme">темы,</a>
предоставленной <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>