blob: 467fa906465f124f611dfbb6f11d915e3d5ba7e0 [file] [log] [blame]
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-alpha.70">
<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache Submarine Blog RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Submarine Blog Atom Feed"><title data-react-helmet="true">HowToRun | Apache Submarine</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_version" content="0.6.0"><meta data-react-helmet="true" name="docusaurus_tag" content="docs-default-0.6.0"><meta data-react-helmet="true" property="og:title" content="HowToRun | Apache Submarine"><meta data-react-helmet="true" name="description" content="&lt;!--"><meta data-react-helmet="true" property="og:description" content="&lt;!--"><meta data-react-helmet="true" property="og:url" content="https://submarine.apache.org//docs/adminDocs/yarn/workbench/HowToRun"><link data-react-helmet="true" rel="shortcut icon" href="/img/submarine.ico"><link data-react-helmet="true" rel="canonical" href="https://submarine.apache.org//docs/adminDocs/yarn/workbench/HowToRun"><link rel="stylesheet" href="/styles.39775f96.css">
<link rel="preload" href="/styles.f6b0c2f2.js" as="script">
<link rel="preload" href="/runtime~main.13a9404d.js" as="script">
<link rel="preload" href="/main.1c145c17.js" as="script">
<link rel="preload" href="/1.d23d1451.js" as="script">
<link rel="preload" href="/2.45bcb8a0.js" as="script">
<link rel="preload" href="/1f391b9e.785b37ba.js" as="script">
<link rel="preload" href="/127.875bba76.js" as="script">
<link rel="preload" href="/58f10d9f.e974ccf6.js" as="script">
<link rel="preload" href="/17896441.faf04472.js" as="script">
<link rel="preload" href="/5f165a74.c7183f51.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<nav aria-label="Skip navigation links"><button type="button" tabindex="0" class="skipToContent_11B0">Skip to main content</button></nav><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg aria-label="Menu" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></div><a class="navbar__brand" href="/"><img src="/img/icons/128.png" alt="Apache Submarine Site Logo" class="themedImage_YANc themedImage--light_3CMI navbar__logo"><img src="/img/icons/128.png" alt="Apache Submarine Site Logo" class="themedImage_YANc themedImage--dark_3ARp navbar__logo"><strong class="navbar__title">Apache Submarine</strong></a><a class="navbar__item navbar__link" href="/docs/gettingStarted/quickstart">Docs</a><a class="navbar__item navbar__link" href="/docs/api/environment">API</a><a class="navbar__item navbar__link navbar__link--active" href="/docs/download">Download</a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class="navbar__item navbar__link" href="/docs/gettingStarted/quickstart">0.6.0</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/next/gettingStarted/quickstart">master 🏃</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/docs/adminDocs/yarn/workbench/HowToRun">0.6.0</a></li><li><a class="dropdown__link" href="/versions">All versions</a></li></ul></div><a href="https://github.com/apache/submarine" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub</a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class="navbar__item navbar__link">Apache</a><ul class="dropdown__menu"><li><a href="https://www.apache.org/foundation/how-it-works.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Apache Software Foundation</a></li><li><a href="https://www.apache.org/events/current-event" target="_blank" rel="noopener noreferrer" class="dropdown__link">Events</a></li><li><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Apache License</a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Thanks</a></li><li><a href="https://www.apache.org/security/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Security</a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Sponsorship</a></li></ul></div><div class="react-toggle react-toggle--disabled displayOnlyInLargeViewport_2N3Q"><div class="react-toggle-track"><div class="react-toggle-track-check"><span class="toggle_3NWk">🌜</span></div><div class="react-toggle-track-x"><span class="toggle_3NWk">🌞</span></div></div><div class="react-toggle-thumb"></div><input type="checkbox" disabled="" aria-label="Dark mode toggle" class="react-toggle-screenreader-only"></div><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input type="search" id="search_input_react" placeholder="Search" aria-label="Search" class="navbar__search-input search-bar"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div><div class="navbar-sidebar"><div class="navbar-sidebar__brand"><a class="navbar__brand" href="/"><img src="/img/icons/128.png" alt="Apache Submarine Site Logo" class="themedImage_YANc themedImage--light_3CMI navbar__logo"><img src="/img/icons/128.png" alt="Apache Submarine Site Logo" class="themedImage_YANc themedImage--dark_3ARp navbar__logo"><strong class="navbar__title">Apache Submarine</strong></a></div><div class="navbar-sidebar__items"><div class="menu"><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" href="/docs/gettingStarted/quickstart">Docs</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/api/environment">API</a></li><li class="menu__list-item"><a class="menu__link navbar__link--active" href="/docs/download">Download</a></li><li class="menu__list-item"><a role="button" class="menu__link menu__link--sublist">Versions</a><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" href="/docs/next/gettingStarted/quickstart">master 🏃</a></li><li class="menu__list-item"><a aria-current="page" class="menu__link menu__link--active" href="/docs/adminDocs/yarn/workbench/HowToRun">0.6.0</a></li><li class="menu__list-item"><a class="menu__link" href="/versions">All versions</a></li></ul></li><li class="menu__list-item"><a href="https://github.com/apache/submarine" target="_blank" rel="noopener noreferrer" class="menu__link">GitHub</a></li><li class="menu__list-item menu__list-item--collapsed"><a role="button" class="menu__link menu__link--sublist">Apache</a><ul class="menu__list"><li class="menu__list-item"><a href="https://www.apache.org/foundation/how-it-works.html" target="_blank" rel="noopener noreferrer" class="menu__link">Apache Software Foundation</a></li><li class="menu__list-item"><a href="https://www.apache.org/events/current-event" target="_blank" rel="noopener noreferrer" class="menu__link">Events</a></li><li class="menu__list-item"><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener noreferrer" class="menu__link">Apache License</a></li><li class="menu__list-item"><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="menu__link">Thanks</a></li><li class="menu__list-item"><a href="https://www.apache.org/security/" target="_blank" rel="noopener noreferrer" class="menu__link">Security</a></li><li class="menu__list-item"><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="menu__link">Sponsorship</a></li></ul></li></ul></div></div></div></nav><div class="main-wrapper"><div class="docPage_vMrn"><main class="docMainContainer_2iGs"><div class="container padding-vert--lg docItemWrapper_1bxp"><div class="row"><div class="col docItemCol_U38p"><div class="docItemContainer_a7m4"><article><div><span class="badge badge--secondary">Version: 0.6.0</span></div><header><h1 class="docTitle_Oumm">HowToRun</h1></header><div class="markdown"><h1><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="how-to-run-submarine-workbench"></a>How To Run Submarine Workbench<a class="hash-link" href="#how-to-run-submarine-workbench" title="Direct link to heading">#</a></h1><p>We provide two methods to launch Submarine Workbench</p><ul><li>Method 1: Run Submarine Workbench on docker</li><li>Method 2: Run Submarine Workbench without docker</li></ul><h1><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="run-submarine-workbench-on-docker"></a>Run Submarine Workbench on docker<a class="hash-link" href="#run-submarine-workbench-on-docker" title="Direct link to heading">#</a></h1><p>By using the official images of Submarine, only a few docker commands are required to launch <strong>Submarine Workbench</strong>. The document includes information about how to launch the Submarine Workbench via the new docker images and the information about how to switch between different Submarine Workbench versions(version Vue &amp; version Angular).</p><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="two-versions-of-submarine-workbench"></a>Two versions of Submarine Workbench<a class="hash-link" href="#two-versions-of-submarine-workbench" title="Direct link to heading">#</a></h3><ol><li>Angular (default)</li><li>Vue (This is the old version, and it will be replaced by version Angular in the future.)</li></ol><h4><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="warning-please-restart-a-new-incognito-window-when-you-switch-to-different-versions-of-submarine-workbench"></a>(WARNING: Please restart a new <strong>incognito window</strong> when you switch to different versions of Submarine Workbench)<a class="hash-link" href="#warning-please-restart-a-new-incognito-window-when-you-switch-to-different-versions-of-submarine-workbench" title="Direct link to heading">#</a></h4><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="launch-the-submarine-workbenchangular"></a>Launch the Submarine Workbench(Angular)<a class="hash-link" href="#launch-the-submarine-workbenchangular" title="Direct link to heading">#</a></h3><ul><li>It should be noted that since Submarine Workbench depends on the Submarine database, so you need to run the docker container of the Submarine database first.</li></ul><div class="mdxCodeBlock_1zKU"><div class="codeBlockContent_actS"><div tabindex="0" class="prism-code language-undefined codeBlock_tuNs thin-scrollbar"><div class="codeBlockLines_3uvA" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">docker run -it -p 3306:3306 -d --name submarine-database -e MYSQL_ROOT_PASSWORD=password apache/submarine:database-&lt;REPLACE_VERSION&gt;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">docker run -it -p 8080:8080 -d --link=submarine-database:submarine-database --name submarine-server apache/submarine:server-&lt;REPLACE_VERSION&gt;</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_2GIj">Copy</button></div></div><ul><li>The login page of Submarine Workbench will be shown in <code>http://127.0.0.1:8080</code>.</li></ul><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="check-the-data-in-the-submarine-database"></a>Check the data in the submarine-database<a class="hash-link" href="#check-the-data-in-the-submarine-database" title="Direct link to heading">#</a></h3><ul><li>Step1: Enter the submarine-database container</li></ul><div class="mdxCodeBlock_1zKU"><div class="codeBlockContent_actS"><div tabindex="0" class="prism-code language-undefined codeBlock_tuNs thin-scrollbar"><div class="codeBlockLines_3uvA" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">docker exec -it submarine-database bash</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_2GIj">Copy</button></div></div><ul><li>Step2: Enter MySQL database</li></ul><div class="mdxCodeBlock_1zKU"><div class="codeBlockContent_actS"><div tabindex="0" class="prism-code language-undefined codeBlock_tuNs thin-scrollbar"><div class="codeBlockLines_3uvA" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">mysql -uroot -ppassword</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_2GIj">Copy</button></div></div><ul><li>Step3: List the data in the table</li></ul><div class="mdxCodeBlock_1zKU"><div class="codeBlockContent_actS"><div tabindex="0" class="prism-code language-undefined codeBlock_tuNs thin-scrollbar"><div class="codeBlockLines_3uvA" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">// list all databases</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">show databases;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">// choose a database</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">use ${target_database};</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">// list all tables</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">show tables;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">// list the data in the table</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">select * from ${target_table};</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_2GIj">Copy</button></div></div><h1><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="run-submarine-workbench-without-docker"></a>Run Submarine Workbench without docker<a class="hash-link" href="#run-submarine-workbench-without-docker" title="Direct link to heading">#</a></h1><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="run-submarine-workbench"></a>Run Submarine Workbench<a class="hash-link" href="#run-submarine-workbench" title="Direct link to heading">#</a></h3><div class="mdxCodeBlock_1zKU"><div class="codeBlockContent_actS"><div tabindex="0" class="prism-code language-undefined codeBlock_tuNs thin-scrollbar"><div class="codeBlockLines_3uvA" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">cd submarine</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">./bin/submarine-daemon.sh [start|stop|restart]</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_2GIj">Copy</button></div></div><p>To start workbench server, you need to download MySQL jdbc jar and put it in the
path of workbench/lib for the first time. Or you can add parameter, getMysqlJar,
to get MySQL jar automatically.</p><div class="mdxCodeBlock_1zKU"><div class="codeBlockContent_actS"><div tabindex="0" class="prism-code language-undefined codeBlock_tuNs thin-scrollbar"><div class="codeBlockLines_3uvA" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">cd submarine</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">./bin/submarine-daemon.sh start getMysqlJar</span></div></div></div><button type="button" aria-label="Copy code to clipboard" class="copyButton_2GIj">Copy</button></div></div><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="submarine-envsh"></a>submarine-env.sh<a class="hash-link" href="#submarine-envsh" title="Direct link to heading">#</a></h3><p><code>submarine-env.sh</code> is automatically executed each time the <code>submarine-daemon.sh</code> script is executed, so we can set the <code>submarine-daemon.sh</code> script and the environment variables in the <code>SubmarineServer</code> process via <code>submarine-env.sh</code>.</p><table><thead><tr><th>Name</th><th>Variable</th></tr></thead><tbody><tr><td>JAVA_HOME</td><td>Set your java home path, default is <code>java</code>.</td></tr><tr><td>SUBMARINE_JAVA_OPTS</td><td>Set the JAVA OPTS parameter when the Submarine Workbench process starts. If you need to debug the Submarine Workbench process, you can set it to <code>-agentlib:jdwp=transport=dt_socket, server=y,suspend=n,address=5005</code></td></tr><tr><td>SUBMARINE_MEM</td><td>Set the java memory parameter when the Submarine Workbench process starts.</td></tr><tr><td>MYSQL_JAR_URL</td><td>The customized URL to download MySQL jdbc jar.</td></tr><tr><td>MYSQL_VERSION</td><td>The version of MySQL jdbc jar to downloaded. The default value is 5.1.39. It&#x27;s used to generate the default value of MYSQL_JDBC_URL</td></tr></tbody></table><h3><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_prK2" id="submarine-sitexml"></a>submarine-site.xml<a class="hash-link" href="#submarine-sitexml" title="Direct link to heading">#</a></h3><p><code>submarine-site.xml</code> is the configuration file for the entire <code>Submarine</code> system to run.</p><table><thead><tr><th>Name</th><th>Variable</th></tr></thead><tbody><tr><td>submarine.server.addr</td><td>Submarine server address, default is <code>0.0.0.0</code></td></tr><tr><td>submarine.server.port</td><td>Submarine server port, default <code>8080</code></td></tr><tr><td>submarine.ssl</td><td>Should SSL be used by the Submarine servers?, default <code>false</code></td></tr><tr><td>submarine.server.ssl.port</td><td>Server ssl port. (used when ssl property is set to true), default <code>8483</code></td></tr><tr><td>submarine.ssl.client.auth</td><td>Should client authentication be used for SSL connections?</td></tr><tr><td>submarine.ssl.keystore.path</td><td>Path to keystore relative to Submarine configuration directory</td></tr><tr><td>submarine.ssl.keystore.type</td><td>The format of the given keystore (e.g. JKS or PKCS12)</td></tr><tr><td>submarine.ssl.keystore.password</td><td>Keystore password. Can be obfuscated by the Jetty Password tool</td></tr><tr><td>submarine.ssl.key.manager.password</td><td>Key Manager password. Defaults to keystore password. Can be obfuscated.</td></tr><tr><td>submarine.ssl.truststore.path</td><td>Path to truststore relative to Submarine configuration directory. Defaults to the keystore path</td></tr><tr><td>submarine.ssl.truststore.type</td><td>The format of the given truststore (e.g. JKS or PKCS12). Defaults to the same type as the keystore type</td></tr><tr><td>submarine.ssl.truststore.password</td><td>Truststore password. Can be obfuscated by the Jetty Password tool. Defaults to the keystore password</td></tr><tr><td>workbench.web.war</td><td>Submarine Workbench web war file path.</td></tr></tbody></table></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/apache/submarine/edit/master/website/versioned_docs/version-0.6.0/adminDocs/yarn/workbench/HowToRun.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" role="img" viewBox="0 0 40 40" class="iconEdit_2LL7"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div></div></div><div class="margin-vert--lg"><nav class="pagination-nav" aria-label="Blog list page navigation"><div class="pagination-nav__item"></div><div class="pagination-nav__item pagination-nav__item--next"></div></nav></div></div></div><div class="col col--3"><div class="tableOfContents_2xL- thin-scrollbar"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#two-versions-of-submarine-workbench" class="table-of-contents__link">Two versions of Submarine Workbench</a></li><li><a href="#launch-the-submarine-workbenchangular" class="table-of-contents__link">Launch the Submarine Workbench(Angular)</a></li><li><a href="#check-the-data-in-the-submarine-database" class="table-of-contents__link">Check the data in the submarine-database</a></li><li><a href="#run-submarine-workbench" class="table-of-contents__link">Run Submarine Workbench</a></li><li><a href="#submarine-envsh" class="table-of-contents__link">submarine-env.sh</a></li><li><a href="#submarine-sitexml" class="table-of-contents__link">submarine-site.xml</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container"><div class="row footer__links"><div class="col footer__col"><h4 class="footer__title">Docs</h4><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/docs/gettingStarted/quickstart">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/api/environment">API docs</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">Community</h4><ul class="footer__items"><li class="footer__item"><a href="https://stackoverflow.com/questions/tagged/apache-submarine" target="_blank" rel="noopener noreferrer" class="footer__link-item">Stack Overflow</a></li><li class="footer__item"><a href="https://s.apache.org/slack-invite" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">More</h4><ul class="footer__items"><li class="footer__item"><a href="https://medium.com/@apache.submarine" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog</a></li><li class="footer__item"><a href="https://github.com/apache/submarine" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub</a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_31Aa"><img class="footer__logo" alt="Apache Open Source Logo" src="https://hadoop.apache.org/asf_logo_wide.png"></a></div><div class="footer__copyright">Apache Submarine, Submarine, Apache, the Apache feather logo, and the Apache Submarine project logo are
either registered trademarks or trademarks of the Apache Software Foundation in the United States and other
countries.<br> Copyright © 2022 Apache Submarine is Apache2 Licensed software.</div></div></div></footer></div>
<script src="/styles.f6b0c2f2.js"></script>
<script src="/runtime~main.13a9404d.js"></script>
<script src="/main.1c145c17.js"></script>
<script src="/1.d23d1451.js"></script>
<script src="/2.45bcb8a0.js"></script>
<script src="/1f391b9e.785b37ba.js"></script>
<script src="/127.875bba76.js"></script>
<script src="/58f10d9f.e974ccf6.js"></script>
<script src="/17896441.faf04472.js"></script>
<script src="/5f165a74.c7183f51.js"></script>
</body>
</html>